Commit Graph
35 Commits
Author SHA1 Message Date
Jack Westbrook 23a51ec9c5 CI: Fix frontend package validation (#116104)
* ci(frontend-lint): add frontend package change detection and add validate packed packages lint step

* ci(change-detection): add validate-npm-packages.sh to frontend-packages list

* ci(gh-workflows): add actions globs to frontend-packages detection

* ci(gh-workflows): fix typo - > _

* ci(frontend-lint): add missing needs

* chore(i18n): fix publint erroring for custom condition pointing to .cjs file

* ci(validate-npm-packages): make profile node16 default

* chore(validate-npm-packages): remove shellcheck disable comment
2026-01-12 16:08:32 +01:00
Jack WestbrookandTom Ratcliffe 5bedcc7bd7 Frontend: use custom conditions for development and build (#111685)
* build(frontend): enable custom condition for resolving source files during dev and build

* feat(packages): apply conditional name to export properties

* chore(packages): add standard exports to flamegraph and prometheus

* chore(packages): resolve main, module, types to built files

* build(packages): clean up prepare-npm-package for custom condition changes

* refactor(packages): reduce repetition in conditional exports

* build(storybook): add @grafana-app/source to conditionNames

* test(frontend): add grafana-app/source customCondition for jest tests

* refactor(frontend): remove nested package import paths

* chore(jest): use customExportConditions for source files and browser

* chore(i18n): use src for ./eslint-plugin export

* chore(packages): set packages tsconfigs to moduleResolution bundler

* chore(packages): fix rollup builds

* build(packages): build cjs as multiple files

* chore(sql): reference MonitoringLogger for moduleresolution bundler to pass typecheck

* chore(ui): add type refs for moduleresolution bundler to pass typecheck

* feat(schema): add exports for cleaner import paths

* refactor(frontend): clean up schema paths to point to exports instead of nested file paths

* build(storybook): hack the builder-manager for custom conditions to resolve

* build(decoupled-plugins): fix broken builds due to missing conditionNames

* chore(e2e): pass condition to playwright to resolve local packages

* build(frontend): fix failing build

* chore(select): fix typings

* style(frontend): clean up eslint suppressions

* chore(packages): fix type errors due to incorrect tsconfig settings

* build(generate-apis): use swc with ts-node and moduleResolution bundler

* chore(cypress): add conditionNames to resolve monorepo packages

* build(npm): update prepare to work with latest exports changes

* build(packages): fix prepare-npm-package script

* fix(e2e-selectors): update debugoverlay for data-testid change

* build(packages): stop editing package.json at pack n publish time

* rerun ci

* chore(api-clients): use moduleResolution: bundler for customConditions support

* chore(api-clients): fix generation

* build(packages): remove aliasing exports, remove exports with only customConditions

* Revert "refactor(frontend): clean up schema paths to point to exports instead of nested file paths"

This reverts commit 7949b6ea0e60e51989d2a8149b7a24647cd68916.

* revert(schema): remove exports from package so builds work

* build(api-clients): fix up api-clients exports and rollup config

* build(api-clients): Update generated package exports for api clients

* build(schema): add overrides to cjsOutput and esmOutput so built directory structure is correct

* fix(packages): use rootDirs to prevent types/src directories in built d.ts file paths

* build(packages): prevent empty exports added to package.json during pack

* docs(packages): update readme with custom conditions information

---------

Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
2025-12-18 11:47:38 +01:00
Leon Sorokin 2ac4d0a13e Chore: Remove Intl.DurationFormat polyfill from runtime (#113475) 2025-11-06 20:11:53 +00:00
grafana-delivery-bot[bot]andgrafana-delivery-bot[bot] 7236ba5fce Release: Bump version to 12.4.0-pre (#113480)
bump version 12.4.0-pre

Co-authored-by: grafana-delivery-bot[bot] <grafana-delivery-bot[bot]@users.noreply.github.com>
2025-11-05 23:54:05 +01:00
Matthew Thorning 9b72973293 Chore: Add Namespace Support To Grafana-i18n ESLint Rule (#112730) 2025-10-22 10:12:54 +01:00
Josh Hunt f7070b8ccc NPM: Improve package validation (#112426)
* update validation script to run all checks, but fail if any fail

* fix package validation

* reduce comment
2025-10-21 10:32:57 +01:00
Ashley Harrison 15ec2f0c17 Internationalisation: Allow parameterising basePaths for key generation in lint rule (#111999)
* allow parameterising the basePaths for autofixes

* add documentation
2025-10-03 16:38:31 +01:00
afc536118d Release: Bump version to 12.3.0-pre (#110974)
* update bump-version

* Add id-token: write

* update generate-token step

* pull-requests -> pull_requests

* clone with token and set right name

* bump version 12.3.0-pre

---------

Co-authored-by: Kevin Minehart <5140827+kminehart@users.noreply.github.com>
Co-authored-by: grafana-delivery-bot[bot] <grafana-delivery-bot[bot]@users.noreply.github.com>
2025-09-12 17:54:11 +00:00
Akhil Singh 113d61c027 I18n: Prevent Intl.DateTimeFormat crash with invalid locales (#110522)
* fix: prevent Intl.DateTimeFormat crash with invalid locales like 'c'

- Add locale validation utilities to prevent crashes when LANG=c is set
- Filter out invalid locales from navigator.languages before creating DateTimeFormat
- Add fallback handling to use browser defaults when all locales are invalid
- Fixes issue #110494 where Grafana crashes with 'RangeError: Incorrect locale information provided'
- Maintains backward compatibility for valid locales

Signed-off-by: Akhil Singh <singhakhil69@gmail.com>

* refactor: simplify locale fix to use direct try-catch approach

- Remove locale-utils.ts and locale-utils.test.ts files
- Use simple try-catch in dates.ts files: try locale, fallback to 'en-US'
- Use Laura's suggested approach in formats.ts with explicit variable declaration
- Remove unused utility exports from index.ts
- Maintains same functionality with cleaner, simpler code
- Avoids adding to public API while still preventing crashes with invalid locales like 'c'

Signed-off-by: Akhil Singh <singhakhil69@gmail.com>

* style: run prettier to fix linting issues

- Format code according to project prettier configuration
- Fixes failing Lint Frontend check

Signed-off-by: Akhil Singh <singhakhil69@gmail.com>

---------

Signed-off-by: Akhil Singh <singhakhil69@gmail.com>
2025-09-11 15:37:17 -04:00
Tom Ratcliffe 3d6d632686 Chore: Remove betterer (#110469) 2025-09-04 18:17:53 +01:00
Hugo Häggmark bba89fdb42 i18n: fixes translations for plugins before v12.1.0 (#109948)
i18n: fixes translated plugins before 12.1.0
2025-08-21 13:06:50 +02:00
Josh Hunt 72a56ad503 Chore: Remove @grafana/tsconfig (#109186)
* Chore: Remove @grafana/tsconfig

* update codeowners

* revert changes to grafana-plugin-configs
2025-08-06 15:34:34 +01:00
renovate[bot]andAshley Harrison bfa6bb0264 Update dependency typescript to v5.9.2 (#109025)
* Update dependency typescript to v5.9.2

* remove unused ts-expect-error

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-08-01 11:24:38 +01:00
Kevin Minehart 22bcd4dab4 Chore: bump version to 12.2.0-pre (#108623)
* bump version to 12.2.0-pre

* make gen-cue
2025-07-24 21:25:26 -05:00
Jack Westbrook 15d9df93f9 Fix: Prevent Rollup from treeshaking NPM packages (#108567)
fix(packages): prevent rollup from treeshaking libraries
2025-07-24 10:54:02 +02:00
Josh Hunt ba2804bcfe I18n: Use locale-aware date formatting in grafana-data (#108415)
* use intl locale-aware date formatting

* format range for time picker button

* comment

* fix test setup
2025-07-23 09:23:16 +01:00
renovate[bot] 381cd95932 Update dependency i18next to v25 (#107707)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-07-07 16:48:05 +01:00
Ashley Harrison 31b71f79dd Internationalisation: Manual mark up following review (#107625)
* mark up and add confirmText to lint rule

* mark up and add ariaLabel to lint rule

* add confirmText to propertiesToCheck

* mark up and add body to propsToCheck

* mark up latest

* mark up 'Dashboard saved'

* mark up filterbyvalue options

* mark up tooltip options

* mark up and add lint rules for noOptionsMessage/loadingMessage

* mark up 'Convert field type'

* mark up placeholderText/noOptionsMessage

* mark up run query

* mark up variable editor fields

* mark up week start options

* mark up dashboard link options

* mark up prom options

* mark up builder/code toggles

* make CI happy

* kick CI
2025-07-07 16:43:19 +01:00
renovate[bot]andAshley Harrison 17ecd4c051 Update dependency typescript to v5.8.3 (#101501)
* Update dependency typescript to v5.8.3

* get correct window type

* fix @grafana/data

* update lockfile

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-07-04 14:43:01 +01:00
Josh Hunt e1af2e15cb I18n: Import Scenes translations (#106852)
* wip

* use initScenesTranslations

* comment

* use just plain resource loaded from scenes lib

* update to the published scenes version

* rename loadPluginResources to loadNamespacedResources
2025-06-24 10:00:41 +01:00
Josh HuntandAshley Harrison e49c73533b I18n: Allow pseudo-locale to be enabled in production builds (#106738)
* I18n: Allow pseudo-locale to be enabled in production builds

* fix tests now that pseudo is around

* remove psuedo locale from i18n package

* load en-us from plugin resources for pseudo

* fix tests + remove 'hidden' option

---------

Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-06-17 10:55:15 +01:00
Hugo Häggmark a07f63fbef i18n: use @grafana/i18n within @grafana/ui (#106691) 2025-06-16 06:04:28 +02:00
Jack Westbrook e33ef2885f Chore: Remove rollup-plugin-dts (#106442)
* chore(packages): remove rollup dts plugin

* build(packages): add rollup copy plugin settings to copy ts declarations to esm and cjs builds

* build(packages): remove copy settings as result doesnt pass attw cli checks

* build(packages): use single types output in dist/types directory

* ci(packages): update prepare and validate scripts for single type builds

* fix(grafana-schema): copy raw types to dist/esm directory for grafana/scenes support
2025-06-12 15:25:16 +02:00
Hugo Häggmark 3c6da3f241 i18n: removes useTranslate from ESLint rules (#106597)
* i18n: removes useTranslate from eslint rules

* chore: remove some more useTranslate
2025-06-12 13:30:54 +02:00
Hugo Häggmark 2b8c74de2e i18n: removes useTranslate hook (#106556)
* i18n: removes useTranslate hook

* chore: fix duplicate imports

* chore: fix import sorting and hook dependencies
2025-06-12 11:03:52 +02:00
Ashley Harrison 0d695bba92 Internationalisation: Always initialise a default i18n instance (#106552)
always initialise a default i18n instance
2025-06-11 14:44:06 +01:00
Hugo Häggmark fd7b6091a2 i18n: removes unused include in tsconfig.json (#106431) 2025-06-11 06:07:18 +02:00
Ashley Harrison 0bdcb4d080 Internationalisation: Properly expose i18n lint rule (#106436)
* properlty expose lint rule

* don't need types

* use rollup plugin copy

* fix dist path
2025-06-10 14:45:34 +01:00
Tom Ratcliffe abb885c585 I18n: Move eslint rule to package (#105860) 2025-05-29 16:11:59 +02:00
b5b02e2c08 i18n: adds loading of translations from packages (#106141)
* I18n: Translate npm packages

(cherry picked from commit 5e1e640b940dd7b7cc9b3f74b9d166ff75c74836)

* chore: updates

* i18n: adds loading of translations from packages

* chore: adds tests

---------

Co-authored-by: joshhunt <josh.hunt@grafana.com>
Co-authored-by: Ashley Harrison <ashley.harrison@grafana.com>
2025-05-28 15:51:59 +01:00
Hugo Häggmark c7cd06d5f5 i18n: exports TFunction from @grafana/i18n package (#105921) 2025-05-23 10:34:35 +02:00
Hugo Häggmark 81ad16f25f i18n: cleans up exports and imports (#105669) 2025-05-20 15:31:53 +03:00
Laura Fernández 23ecb9d904 i18n: Use grafana/i18n to init the locale and manage the regionalFormat (#105281) 2025-05-19 13:24:33 +02:00
Hugo Häggmark 119d5897ea i18n: imports use @grafana/i18n (#105177)
* i18n: everything should target @grafana/i18n

* wip

* chore: updates after PR feedback

* Trigger build

* Trigger build

* Trigger build

* chore: skip flaky tests

* chore: skip flaky tests

* chore: skip flaky tests

* chore: skip flaky tests

* chore: skip flaky tests

* chore: skip flaky tests

* chore: revert all flaky tests

* chore: some incorrect usages of useTranslate
2025-05-15 09:17:14 +02:00
Hugo Häggmark 8a2af6166c i18n: adds @grafana/i18n package (#104603)
* i18n: adds grafana/i18n

* Trigger build

* chore: fix frontend lint

* chore: refactor

* chore: refactor

* chore: expose getI18nInstance in shared deps

* chore: refactors away second init

* Trigger build

* chore: updates after PR feedback

* chore: sync with enterprise

* chore: adds shouldUnescape

* Trigger build

* chore: makes functions internal

* Trigger build

* chore: fix for Pseudo locale

* chore: bumps package version

* chore: fix the version of i18n package
2025-05-09 05:45:20 +02:00