Commit Graph
100 Commits
Author SHA1 Message Date
Jack Westbrook 904c6f1ea9 Chore: update latest.json to 9.2.4 (#58433) 2022-11-08 09:26:32 -05:00
Jack Westbrook 68a3a867ce chore(npm): patch bump msw to fix nested dep vuln (#57671) 2022-11-02 04:20:33 -04:00
Jack Westbrook 588e64d9f5 Chore: Fix vulnerabilities in webpack loader-utils (#57533)
* chore: remove unused webpack loaders from core and toolkit

* chore: refresh yarn.lock file

* chore(yarn): refresh lock file for loader-utils update to 2.0.3

* chore: force ngtemplate-loader to use loader-utils@2.0.3

* chore(e2e): bump ts-loader@8.4.0 for loader-utils@2.0.3

* chore(yarn): remove unused packageExtensions

* chore(storybook): force unused webpack deps to v5. force plugins and loaders for loader-utils@2.0.3

* chore(storybook): update config for type changes from webpack v4 to v5
2022-10-25 11:37:41 +02:00
Jack WestbrookandTimur Olzhabayev 24c04740e3 Grafana UI: Export prop types for queryfield, modal and field components (#57097)
* chore(grafana-ui): export prop types for queryfield, modal and field components

* docs(migration-guide): add notes for react peerdependencies and additional type exposure

* Update docs/sources/developers/plugins/migration-guide.md

Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>

Co-authored-by: Timur Olzhabayev <timur.olzhabayev@grafana.com>
2022-10-17 17:54:43 +02:00
Jack Westbrook fd0fcffc24 Toolkit: Fix Cannot use "import statement outside" error in tests (#57071) 2022-10-17 16:31:12 +02:00
Jack Westbrook dcc02a8ebe Storybook: Fix asset paths for hosted storybooks (#56319)
* feat(sass): introduce font-file-path var to define where to load fonts from

* feat(storybook): introduce storybook sass theme styles to set font file paths

* chore(sass): change imports so treated as sass rather than css

* feat(storybook): filter assets so builds dont contain thousands of files
2022-10-05 12:10:29 +02:00
Jack Westbrook d7228829ad Grafana UI: Clean up bundle (#56100)
* chore(grafana-ui): don't bundle emotionPerfTest

* chore(grafana-ui): fix circular dependencies that cause esm chunks to not match up

* chore(grafana-ui): prevent bundling all css properties in package types
2022-10-04 17:51:45 +02:00
Jack Westbrook d1b21a5981 Grafana UI: Prevent built storybook being bundled with package (#56158) 2022-10-03 11:41:38 +02:00
Jack Westbrook 5c5228da61 Toolkit: Put back publishConfig access public (#55983) 2022-09-29 04:31:52 -04:00
Jack Westbrook b81f90cd0c Toolkit: Fix script failures due to missing import paths (#55857)
* fix(toolkit): package without dist folder so config file paths are correct

* chore(packages): make sure to bundle readme, changelog and apache2 license

* refactor(packages): recursively copy src when prepacking toolkit

* chore(toolkit): lock down babel dependencies. use grafana-eslint-config@5 for TS4.8 support
2022-09-28 17:04:55 +02:00
Jack Westbrook ba10548547 CI: Update grabpl to 3.0.10 (#55678) 2022-09-23 15:15:04 +02:00
Jack Westbrook db17a88193 Plugins: Expose emotion/react to plugins to prevent load failures (#55297) 2022-09-19 16:54:13 +02:00
Jack Westbrook ffdda9296a Chore: Refresh out of date yarn lock file (#54620) 2022-09-02 11:08:27 +02:00
Jack Westbrook 4179f94959 Fix: Make sure grafana/e2e cypress config file is in correct location (#54588)
* fix(grafana-e2e): make sure cypress can find config file

* chore(yarn): refresh lock file
2022-09-02 10:37:50 +02:00
Jack Westbrook 5ea01dc9b9 Build: Introduce webpack manifest plugin (#49798)
* build(webpack): introduce manifest plugin

* build(webpack): move manifest.json to root of project and git ignore
2022-08-30 05:18:55 -04:00
Jack Westbrook b1ce721cf1 Levitate: Update workflow to find type declaration via package.json (#53539)
* refactor(breaking-changes): make sure to pack and zip tarballed packages before artifact upload

* feat(check-breaking-changes): support extracting npm package tarballs before comparing packages

* chore(breaking-changes): fix typo preventing upload of pr_built_packages.zip
2022-08-11 15:17:51 +02:00
Jack Westbrook d87bf30e9e Build: Introduce ESM and Treeshaking to NPM package builds (#51517)
* Revert "Chore: Bump terser to fix security vulnerability (#53052)"

This reverts commit 7ae74d2a18.

* feat: use tsc and rollup directly with esbuild and publishConfig, files props

* refactor(grafana-data): fix isolatedModules re-export type error

* refactor(grafana-data): import paths from src not package name

* refactor(rollup): fix dts output.file

* chore(grafana-schema): delete dashboard_experimental.gen.ts - cannot work with isolatedModules

* refactor(grafana-e2e-selectors): fix export types isolatedModules error

* refactor(grafana-runtime): fix isolatedModules re-export type error

* refactor(grafana-ui): fix isolatedModules re-export type error

* feat(grafana-ui): use named imports for treeshaking

* refactor(grafana-ui): use named imports for treeshaking

* feat: react and react-dom as peerDeps for packages

* feat(grafana-ui): emotion packages as peerDeps

* feat(grafana-e2e): use tsc, rollup, esbuild for bundling

* chore(packages): clean up redundant dependencies

* chore(toolkit): deprecate unused package:build task

* chore(schema): put back dashboard_experimental and exclude to prevent isolatedModules error

* docs(packages): update readme

* chore(storybook): disable isolatedModules for builds

* chore: relax peerDeps for emotion and react

* revert(grafana-ui): put @emotion dependencies back

* refactor: replace relative package imports with package name

* build(packages): set emitDeclaration false for typecheck scripts to work

* test(publicdashboarddatasource): move test next to implementation. try to appease the betterer gods

* chore(storybook): override ts-node config for storybook compilation

* refactor(grafana-data): use ternary so babel doesnt complain about expecting flow types

* chore(toolkit): prefer files and publishConfig package.json props over copying

* build(npm): remove --contents dist arg from publishing commands

* chore(packages): introduce sideEffects prop to package.json to hint package can be treeshaken

* chore(packages): remove redundant index.js files

* feat(packages): set publishConfig.access to public

* feat(packages): use yarn berry and npm for packaging and publishing

* refactor(packages): simplify rollup configs

* chore(schema): add comment explaining need to exclude dashboard_experimental

* revert(toolkit): put back clean to prevent cli failures

* ci(packages): run packages:pack before a canary publish

* chore(gitignore): add npm-artifacts directory to ignore list

* test(publicdashboarddatasource): fix module mocking

* chore(packages): delete package.tgz when running clean

* chore(grafana-data): move dependencies from devDeps to prevent build resolution errors
2022-08-03 15:47:09 +02:00
Jack Westbrook 7ae74d2a18 Chore: Bump terser to fix security vulnerability (#53052) 2022-08-02 09:08:10 +02:00
Jack Westbrook edfbdc4b63 Chore: Bump parse-url to 6.0.2 to fix security vulnerabilities (#51796) 2022-07-06 13:21:41 +02:00
Jack Westbrook 0c04fe16aa Chore: Fix CVE-2021-3807 (#51753) 2022-07-06 13:01:08 +02:00
Jack Westbrook aa06328e8c Chore: Fix CVE-2021-43138 (#51751) 2022-07-06 13:00:37 +02:00
Jack Westbrook 3be4af87f6 Chore: Remove unused nodemon dependency (#51749) 2022-07-06 11:20:09 +02:00
Jack Westbrook c1ef68535b Chore: Fix CVE-2022-0155 (#51755) 2022-07-06 11:19:09 +02:00
Jack Westbrook f14cdc712c Chore: Fix CVE-2020-7753 (#51752) 2022-07-06 11:18:35 +02:00
Jack Westbrook 73e7a1cc92 Chore: Fix CVE-2021-3918 (#51745) 2022-07-06 11:16:57 +02:00
Jack Westbrook 177606ad34 Chore: Update Grafana package.json to 9.1.0-pre (#51428) 2022-06-27 13:21:28 +02:00
Jack Westbrook ead01e6e5d Build: Bump grafana/eslint-config to 4.0.0 (#51329) 2022-06-24 15:03:34 +02:00
Jack Westbrook 2d1ab27636 Grafana UI: Put back production build in rollup config (#50575) 2022-06-10 11:47:29 +02:00
Jack Westbrook 6a4906ef7e Grafana UI: Fix nonexistent indexof module for plugin tests (#50529)
* fix(grafana-ui): prevent module resolution failure where component-indexof appears as indexof

* chore(grafana-ui): update comment explaining need for alias plugin
2022-06-10 10:37:40 +02:00
Jack Westbrook ccd75d72f8 Chore: Remove react-testing-lib from bundles (#50442)
* refactor(selectoptiontest): move helper function out of grafana/ui so testing-lib isn't in bundle

* test(selectoptionintest): update import location of helper function

* test(amroutes): put back missing selectOptionInTest helper

* test(selectoptionintest): clean up remaining file imports / exports

* test(queryeditor): fix failing import

* refactor(grafana-ui): reuse selectOptionInTest in SelectBase test
2022-06-09 11:10:48 +02:00
Jack Westbrook 691a597f43 Plugins Catalog: Make tabs position consistent with other Grafana pages (#49997) 2022-06-03 10:01:14 +02:00
Jack Westbrook f4353bbbc4 Toolkit: Bump dependencies (#47826)
* chore(typescript): remove sanitize_url.d.ts in favour of npm package types

* chore(toolkit): bump all webpack related deps inline with grafana core

* refactor(toolkit): prefer webpack types and use from imports for bundling

* feat(toolkit): bundle plugins using webpack 5 and babel

* chore(toolkit): but all eslint deps inline with grafana core

* refactor(toolkit): rewrite linting step to use new eslint node api

* chore(toolkit): bump jest dependencies inline with grafana core

* refactor(toolkit): update jest config for jest 27

* fix(toolkit): resolve toolkit if using yarn berry

* docs(toolkit): update instructions for developing with yarn berry

* chore(toolkit): remove yarnlink code as won't work with yarn berry

* chore(toolkit): bump remaining dependencies

* chore(toolkit): remove unused core.start task

* feat(toolkit): use browserlist when building plugins

* chore(toolkit): add browserslist dependency

* refactor(toolkit): resolve style loaders, update postcss options for webpack5

* chore(toolkit): put back grafana/data and grafana/ui

* docs(toolkit): improve instructions for developing toolkit locally

* chore(toolkit): clean up webpack debug and warnings

* chore(input-datasource): remove pnpwebpack plugin and update browserslist to solve failing build

* chore(renovatebot): remove toolkit package.json from ignorePaths

* revert(renovate): put back toolkit package.json in ignorePaths

* feat(toolkit): introduce babel plugins

* refactor(toolkit): remove runtime automatic from preset-react for earlier versions of react

* refactor(toolkit): add missing fallbacks to webpack config

* fix(toolkit): remove spaces from copy webpack glob so files are copied

* refactor(toolkit): fix up babel typescript support and copy browserlist on build

* chore(yarn): refresh lock file

* revert(toolkit): remove browsers list so plugins compile to ES5

* revert(toolkit): remove copying .browserslistrc
2022-05-26 16:23:27 +02:00
Jack Westbrook 78bef7a26a Build: Enable long term caching for frontend assets (#47625)
* build(webpack): move CopyUniconsPlugin into own file

* chore(webpack): delete unused blobUrl and compile loaders

* build(webpack): prefer contenthash over fullhash for longer caching

* build(webpack): set optimization.moduleIds named only in dev

* build(webpack): introduce HTMLWebpackCSSChunks so templates can access theme css by name

* feat: inject css files with contenthash in html templates

* revert(error-template): remove ContentDeliveryURL from CSS href

* refactor(index-template): update grafanaBootData.themePaths

* chore(webpack): add typescript annotations for CopyUniconsPlugin
2022-05-26 11:49:18 +02:00
Jack Westbrook 39ee365b82 Swagger: Add integrity attributes (#48396) 2022-05-02 09:49:49 +02:00
Jack Westbrook 7341124b1e Chore: Update latest.json to 8.4.7 (#47956) 2022-04-20 15:52:38 +02:00
Jack Westbrook c3db3121b0 Chore: Bump moment to 2.29.2 (#47680)
* chore: bump moment to 2.29.2

* chore(yarn): clean up remaining moment nested deps
2022-04-13 14:46:58 +02:00
Jack Westbrook b8e3c77adb Chore: Bump minimist to 1.2.6 (#47401) 2022-04-13 09:52:51 +02:00
Jack Westbrook 398f2b3d18 Build: Fix failing recompile of Grafana packages (#47492)
* build(packages): remove incremental as cache fails to recompile

* build(packages): remove tsBuildInfoFile property from tsconfig files
2022-04-11 09:41:03 +02:00
Jack Westbrook a1ebcd520c Build: Remove redundant build_npm_packages_step (#47384) 2022-04-06 14:26:59 +02:00
Jack Westbrook 9a6fd8572a Build: Remove redundant NPM publishing code (#46425)
* chore(build): remove npm package:publishPrevious script and release-npm-packages.sh

* ci(drone): bump grabpl to v2.9.31
2022-04-06 10:48:00 +02:00
Jack Westbrook 30d0219de8 Chore: Remove deprecated @types/braintree__sanitize-url package (#47003) 2022-03-29 14:57:14 +02:00
Jack Westbrook a06329d988 Chore: Bump node-forge to 1.3.0 (#46953) 2022-03-25 15:22:59 +00:00
Jack Westbrook 36483eb6bf Chore: Remove prismjs@1.25.0 from yarn.lock (#46244) 2022-03-24 17:26:55 +01:00
Jack Westbrook 73ba04cda6 Build: Bump grabpl to 2.9.24 (#46420) 2022-03-11 11:05:41 +01:00
Jack Westbrook e2a283b6b9 Chore: Fix failing lerna publish commands (#46359) 2022-03-09 15:29:11 +01:00
Jack Westbrook 9b5a42845d Chore: Remove prettier-plugin from ESLint (#45910)
* chore(eslint): remove prettier-plugin

* chore(eslint): test changes by using grafana/eslint 3.0.0-alpha

* chore(prettier): add js,ts,tsx when checking / writing

* chore(prettier): dont check js files

* chore(linting): align prettier and eslint ignore files

* style: run prettier:write on FE codebase

* chore(eslint): use grafana/eslint-config@3.0.0
2022-03-04 10:49:50 +01:00
Jack Westbrook efe9eed758 Chore: Move Typescript cache file to root (#45964)
* chore(typescript): move TS cache file to root of repo

* chore(typescript): cache packages ts checks to disk for faster yarn typecheck
2022-03-04 09:26:25 +01:00
Jack Westbrook d0d5304662 Revert "Update dependency react-hook-form to v7.26.1" (#45761)
* Revert "Update dependency react-hook-form to v7.26.1 (#43670)"

This reverts commit 175891a5e3.

* chore(renovate): prevent bumping react-hook-form so plugins dont break
2022-02-23 12:22:45 +01:00
Jack WestbrookandMarcus Andersson 979907e9dd Chore: Set tsconfig target to ES6 (#44842)
* chore(tsconfig): update grafana/tsconfig to 1.2.0 for outputting es6

* rewrote the unsubscription part to use first().

* test: update failing tests to work with es6 output

* removed bug where we dispatch a promise instead of an array of ritch history.

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
2022-02-10 14:37:39 +01:00
Jack Westbrook 8610b95e07 Chore: update yarn.lock (#45212) 2022-02-10 12:06:25 +01:00
Jack Westbrook b409811005 Toolkit: Bump react-dev-utils to 12.0.0 (#44696)
* chore: bump react-dev-utils due to vulnerbility reports

* chore(yarn): update checksum, remove react-dev-utils packageExtensions
2022-02-08 12:36:59 +01:00
Jack Westbrook f885c2ede9 Chore: Make detect breaking changes workflow backport compatible (#45005)
* fix(detect-breaking-changes): use the base.ref for backport compatibility

* chore(check-breaking-changes): update path to previous package dist directory
2022-02-08 11:33:33 +01:00
Jack Westbrook ed7552db79 Renovate: Separate storybook from monthly patches (#44373) 2022-01-24 12:44:36 +01:00
Jack Westbrook c8406baac2 Storybook: Bump to 6.4.13 (#44091)
* chore(storybook): bump to 6.4.13

* revert(yarnrc): put back double quotes

* chore(storybook): fix issues with resolving process

* revert(yarnrc): put back storybook packageExtensions

* refactor(storybook): move process resolution fix to function. update comments
2022-01-24 11:50:34 +01:00
Jack Westbrook 5b61273497 CI: Update breaking changes workflow to compare against main (#44097)
* ci(breaking-changes): split into separate builds for pr and main

* ci(breaking-changes): add path for npm install steps

* ci(breaking-changes): fix up workflow, update bash script
2022-01-20 10:20:32 +01:00
Jack Westbrookandachatterjee-grafana e888a40531 Plugins: Add notices to docs to prevent NPX commands from hanging (#44043)
* docs(plugins): add notice about npm 7 flag to prevent commands from hanging

* Apply suggestions from code review

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>

Co-authored-by: achatterjee-grafana <70489351+achatterjee-grafana@users.noreply.github.com>
2022-01-17 15:58:36 +01:00
Jack Westbrook da75e4b910 Build: Publish canary packages to NPM registry (#42922)
* ci(packages): replace canary github publishing with npm registry

* chore(drone): refresh yaml config

* docs(packages): remove github package publish explanation
2021-12-13 09:50:19 +01:00
Jack Westbrook 36b0cb64fd Grafana Toolkit: Prevent installation of outdated FE dependencies (#42663) 2021-12-07 09:56:56 +01:00
Jack Westbrook 776d796bcb Grafana UI: Bump storybook to 6.4.4 (#42634)
* chore(storybook): bump dependencies to 6.4.4

* chore(yarn): update packageExtensions to match latest storybook

* fix(storybook): get webpack builds to pass

* fix(storybook): theme switching works in docs

* fix(storybook): use text logo so accessibility link doesnt break layout
2021-12-06 11:15:53 +01:00
Jack Westbrook b8c5ac63b1 Grafana UI: Prevent mandatory css prop in bundled types (#42216) 2021-11-24 14:35:06 +01:00
Jack Westbrook 694600ed04 Catalog: Provide default tab fallback in Plugin Details page (#41979)
* feat(catalog): introduce defaultTab to usePluginDetailsTabs hook

* feat(catalog): use defaultTab as fallback tab for PluginDetails

* chore(catalog): remove hardcoded page query param in list items

* refactor(catalog): prefer let over react ref when setting default tab in PluginDetails

* refactor(catalog): pass pageId to plugin details body rather than duplicate logic

* test(catalog): remove query param from List item test hrefs

* test(catalog): introduce a test for default app config page for installed app plugins
2021-11-23 15:38:08 +01:00
Jack Westbrook 8b3725b9f2 Chore: Bump versions to 8.4.0-pre (#42116) 2021-11-23 11:23:02 +01:00
3c3cf2eee9 Plugins Catalog: Install and show the latest compatible version of a plugin (#41003)
* fix(catalog): prefer rendering installed version over latest version

* feat(catalog): signify installed version in version history

* feat(catalog): introduce installedVersion and latestVersion

* refactor(catalog): use latestVersion for installation, simplify plugindetails header logic

* refactor(catalog): clean up installedVersion and latestVersion

* feat(catalog): use table-layout so versions list table has consistent column widths

* test(catalog): update failing tests

* removed the need of having a latest version in the plugin catalog type root level.

* fixed flaky test depending on what locale it was being running with.

* added missing test to verify version for a remote plugin.

* fixed version in header.

* preventing the UI from break if no versions are available.

* fixed failing test due to missing mock data.

* added todo as a reminder.

* refactor(catalog): prefer grafana plugin icons over gcom notfound images

* refactor(Plugins/Admin): change constant name

* refactor(Plugins/Admin): add comment to make condition easier to understand

* chore: update go modules

* feat(Backend/Plugins): add "dependencies" field to `PluginListItem`

* feat(Plugins/Admin): show the grafana dependency for the installed version

* refactor(Plugins/Admin): use the local version of links

* refactor(Plugins/Admin): prefer the local version for `.type`

* refactor(Plugins/ADmin): prefer the local `.description` field

* fix(Plugins/Admin): fix tests

* test(plugins/api): update the expected response for the `api/plugins` tests

* chore(Plugins/Admin): add todo comments to check preferation of remote/local values

* feat(backend/api): always send the grafana version as a header when proxying to GCOM

* feat(plugins/admin): use the `isCompatible` flag to get the latest compatible version

* feat(plugins/admin): show the latest compatible version in the versions list

* fix(plugins/admin): show the grafana dependency for the latest compatible version

* fix(plugins/admin): update the version list when installing/uninstalling a plugin

* test(plugins/admin): add some test-cases for the latest-compatible-version

* fix(plugins/admin): show the grafana dependency for the installed version (if installed)

* feat(plugins/backend): add the `dependencies.grafanaDependency` property to the plugin object

* test(plugins/backend): fix tests by adjusting expected response json

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
2021-11-12 11:07:12 +01:00
Jack Westbrook 5fad5511e9 Build: Enable persistent cache for faster Webpack builds (#41430)
* build(webpack): enable caching for development and production builds

* build(webpack): introduce unminified production build script

* build(typescript): introduce incremental flag to cache typechecking

* chore(git): ignore typescript cache file

* chore(webpack): bump dependencies to latest
2021-11-11 14:32:34 +01:00
Jack Westbrook c712c31721 Build: Use SWC to speed up Sass template builds (#41425)
* build(themes): use SWC to speed up template builds

* chore: remove superfluous dev deps
2021-11-11 14:03:53 +01:00
Jack Westbrook 8c98f24777 Chore: Fix failing frontend-metrics script (#41599) 2021-11-11 13:41:15 +01:00
Jack Westbrook cd5277befd Storybook: Fix decorator height (#41468)
* fix(storybook): make sure story background fills available height

* fix(storybook): add decorator to prevent badge filling all available height

* docs(badge): use centered story

* revert(badge): remove obsolete Meta typing
2021-11-10 10:51:10 +01:00
Jack Westbrook ab3ba4743d Chore: Bump prismjs from 1.24.0 to 1.25.0 in grafana/ui (#41310) 2021-11-04 15:30:34 +01:00
Jack Westbrook 1767e6aab6 Chore: bump Husky to v7 (#40797)
* chore: bump husky to v7 according to husky migration guide

* chore(renovate): remove husky from list of ignored deps
2021-11-02 11:53:27 +01:00
Jack Westbrook f2f31f60f2 Chore: Bump rollup and rollup plugins to latest (#40800) 2021-11-02 11:10:32 +01:00
Jack Westbrook 5d98155b5f Plugins Catalog: Set external manage link to installation tab (#40994)
* feat(catalog): set external manage link to installation tab

* fix(catalog): use pluginCatalogURL when getting external manage link
2021-10-29 12:23:05 +02:00
Jack Westbrook 1e471a6f76 Storybook: fix theme colors not updating (#40679) 2021-10-20 13:30:00 +02:00
Jack Westbrook 6e2237c02f Chore: Replace Sass-lint with Stylelint (#40617)
* chore(sass): introduce stylelint

* chore(sass): introduce stylelint config that closely matches sass-lint config

* chore: remove sass-lint from codebase

* style(theme): disable stylelint string-quotes rule

* chore(sass): introduce stylelint-prettier-config to prevent config conflicts

* chore: delete sass-lint file

* style(sass): fix remaining stylelint errors
2021-10-20 11:34:24 +02:00
Jack Westbrook 084a9b7d1a Chore: Fix frontend metrics (#40325)
* build(yarn): add yarn-outdated plugin for checking outdated dependencies

* refactor(frontend-metrics): update dep and vulnerablity commands to work with yarn berry

* feat(frontend-metrics): introduce critical vulnerabilities count

* feat(frontend-metrics): echo out critical vulnerabilities
2021-10-12 15:45:03 +02:00
Jack Westbrook fa03d2ae6a Chore: Bump Webpack dependencies (#40272)
* feat(yarn): introduce plugin-interactive-tools

* chore(webpack): bump webpack and loaders / plugins to latest
2021-10-12 11:04:36 +02:00
Jack Westbrook 7cf3c84c92 Datasources: Fix deletion of datasource if plugin cannot be found (#40095)
* fix(pluginsettings): reject with error so datasource plugin loading failures still render ui

* feat(pluginpage): handle plugin loading error

* refactor(datasources): separate out datasource and meta loading so store has info for deletion

* fix(datasourcesettings): introduce loading flag to wait for datasource and meta loading

* test(datasourcesettings): fix failing test

* test(datasources): assert loading status of datasource settings

* test(datasources): update action tests for latest changes
2021-10-08 12:31:43 +02:00
Jack Westbrook cc7f7e30e9 Plugins: Mock Icon component to prevent console errors (#39901)
* feat(grafana-ui): externalise react-inlinesvg for mocking

* feat(grafana-toolkit): mock react-inlinesvg to prevent svg fetch errors in tests

* test(toolkit): remove assertion on array length of moduleNameMapper overrides

* feat(toolkit): set testId to match the Icon name prop in react-inlinesvg mock
2021-10-01 15:07:22 +02:00
fffcee7c1f Plugin Catalog: support Grafana instances that cannot communicate with gcom (#39638)
* added possibility to track if remote plugins could be fetched.

* adding hook to detect if remote plugins are available.

* feat(catalog): disable installed/all filter if remote plugins are unavailable

* feat(Plugins/Admin): hide the install controls if GCOM is not available

* refactor(Plugins/Admin): group `@grafana` dependencies

* fix(Plugins/Admin): don't show an error alert if a remote plugin is not available

* feat(Plugins/Admin): prefer to use the local version of the readme

* chore(Plugins/Admin): type the mocked state properly

* test(Plugins/Admin): add tests for the Plugin Details when GCOM is not available

* test(Plugins/Admin): add tests for the Browse when GCOM is not available

Co-authored-by: Marcus Andersson <marcus.andersson@grafana.com>
Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
2021-09-28 16:46:29 +02:00
Jack Westbrook 6eceb69d43 Plugins Catalog: Remove notice asking user to refresh browser (#39592) 2021-09-27 18:07:31 +02:00
Jack Westbrook 4dc556445c Plugin Catalog: Use routing for PluginDetails Tabs (#39555)
* feat(catalog): introduce id and href to PluginDetailsTabs

* feat(catalog): add hrefs and ids to PluginDetails tabs. Pass queryParams to PluginDetailsBody

* feat(catalog): pass queryParams to PluginsDetailsBody and add page param to PluginListCard

* fix(catalog): prevent flicker of content by waiting for fetch details to finish loading

* feat(catalog): add tab icons to PluginDetails page

* feat(catalog): make breadcrumbs in PluginDetailsHeader aware of page queryparam

* fix(catalog): fix deeplinking to PluginDetails by comparing tabs length

* test(catalog): update tests with correct props and wrap in router
2021-09-27 18:06:47 +02:00
Jack Westbrook 4a11d0dab9 Plugins Catalog: Fix a11y issues (#39407)
* refactor(catalog): fix a11y issues in Browse and PluginListCard

* test(catalog): fix failing PluginListCard tests
2021-09-20 14:47:18 +02:00
Jack Westbrook c9620b2202 Catalog: Add update text to PluginListCard (#39087)
* feat(catalog): add update info to PluginListCard

* refactor(catalog): use IconName enum and minor styling changes to PluginHeaderDependencies

* fix(catalog): add a semver range to grafanaVersion for dependency checks in InstallControls
2021-09-10 17:17:57 +02:00
Jack Westbrook a4e253bcf9 Fix: Prevent yarn start exiting early on TS errors (#38777) 2021-09-01 12:31:50 +02:00
Jack Westbrook 56f61001a8 Chore: Bump Lerna to v4 (#38751) 2021-09-01 11:00:09 +02:00
Jack Westbrook fec50115b0 Chore: Bump dangerously-set-html-content to 1.0.9 (#38622) 2021-08-31 14:10:56 +02:00
Jack WestbrookandTorkel Ödegaard 8d3b31ff23 Build: Upgrade Webpack 5 (#36444)
* build(webpack): bump to v5 and successful yarn start compilation

* build(webpack): update postcss dependencies

* build(webpack): silence warnings about hash renamed to fullhash

* build(webpack): enable persistent cache to store generated webpack modules / chunks

* build(webpack): prefer eslintWebpackPlugin over tschecker so eslint doesn't block typechecking

* chore(yarn): run yarn-deduplicate to clean up dependencies

* chore(yarn): refresh lock file after clean install

* build(webpack): prefer output.clean over CleanWebpackPlugin

* build(webpack): prefer esbuild over babel-loader for dev config

* build(babel): turn off cache compression to improve build performance

* build(webpack): get production builds working

* build(webpack): remove phantomJS (removed from grafana in v7) specific loader

* build(webpack): put back babel for dev builds no performance gain in using esbuild in webpack

* build(webpack): prefer terser and optimise css plugins for prod. slower but smaller bundles

* build(webpack): clean up redundant code. inform postcss about node_modules

* build(webpack): remove deprecation warnings flag

* build(webpack): bump packages, dev performance optimisations, attempt to get hot working

* chore(storybook): use webpack 5 for dev and production builds

* build(storybook): speed up dev build

* chore(yarn): refresh lock file

* chore(webpack): bump webpack and related deps to latest

* refactor(webpack): put back inline-source-map, move start scripts out of grafana toolkit

* feat(webpack): prefer react-refresh over react-hot-loader

* build(webpack): update webpack.hot to use react-refresh

* chore: remove react-hot-loader from codebase

* refactor(queryeditorrow): fix circular dependency causing react-fast-refresh errors

* revert(webpack): remove stats.errorDetails from common config

* build(webpack): bump to v5 and successful yarn start compilation

* build(webpack): update postcss dependencies

* build(webpack): silence warnings about hash renamed to fullhash

* build(webpack): enable persistent cache to store generated webpack modules / chunks

* build(webpack): prefer eslintWebpackPlugin over tschecker so eslint doesn't block typechecking

* chore(yarn): run yarn-deduplicate to clean up dependencies

* chore(yarn): refresh lock file after clean install

* build(webpack): prefer output.clean over CleanWebpackPlugin

* build(webpack): prefer esbuild over babel-loader for dev config

* build(babel): turn off cache compression to improve build performance

* build(webpack): get production builds working

* build(webpack): remove phantomJS (removed from grafana in v7) specific loader

* build(webpack): put back babel for dev builds no performance gain in using esbuild in webpack

* build(webpack): prefer terser and optimise css plugins for prod. slower but smaller bundles

* build(webpack): clean up redundant code. inform postcss about node_modules

* build(webpack): remove deprecation warnings flag

* build(webpack): bump packages, dev performance optimisations, attempt to get hot working

* chore(storybook): use webpack 5 for dev and production builds

* build(storybook): speed up dev build

* chore(yarn): refresh lock file

* chore(webpack): bump webpack and related deps to latest

* refactor(webpack): put back inline-source-map, move start scripts out of grafana toolkit

* feat(webpack): prefer react-refresh over react-hot-loader

* build(webpack): update webpack.hot to use react-refresh

* chore: remove react-hot-loader from codebase

* refactor(queryeditorrow): fix circular dependency causing react-fast-refresh errors

* revert(webpack): remove stats.errorDetails from common config

* revert(webpack): remove include from babel-loader so symlinks (enterprise) work as before

* refactor(webpack): fix deprecation warnings in prod builds

* fix(storybook): fix failing builds due to replacing css-optimise webpack plugin

* fix(storybook): use raw-loader for svg icons

* build(webpack): fix dev script colors error

* chore(webpack): bump css-loader and react-refresh-webpack-plugin to latest versions

Co-authored-by: Torkel Ödegaard <torkel@grafana.com>
2021-08-31 12:55:05 +02:00
Jack Westbrook 5898824a48 Chore: Fix version format (#38649) 2021-08-27 18:12:37 +02:00
Jack Westbrook beeb8330c4 Chore: Update packages version to 8.2.0-pre (#38635)
* chore(packages): run packages:prepare script

* chore: update package.json version

* chore: put back semver compliant version
2021-08-27 17:01:19 +02:00
Jack WestbrookandLevente Balogh 2cb141d4ec Plugins: Refactor installation buttons component (#37642)
* refactor(catalog): split out installcontrols into multiple components

* test(catalog): update tests for plugindetails page

* refactor(catalog): rename installcontrols -> index

* refactor(catalog): remove redundant curlies

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>

* tests(plugindetails): fix assertions and naming of tests

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>

* refactor(installcontrols): prefer enum over duplicate union type, rename disabled prop

* refactor(installcontrols): use PluginStatus enum for installcontrols pluginStatus

* refactor(installcontrols): remove redundant curlies

Co-authored-by: Levente Balogh <balogh.levente.hu@gmail.com>
2021-08-26 17:15:43 +02:00
Jack Westbrook 5339275793 Grafana UI: Fix TS error property css is missing in type (#38078) 2021-08-26 16:00:52 +02:00
Jack Westbrook bafe16368a Chore: Migrate CustomScrollbar to react-custom-scrollbars-2 (#38013) 2021-08-23 09:28:58 +02:00
Jack Westbrook d9a2dd8a4b Chore: Align enzyme dependencies in root and jaeger workspace (#38006)
* chore: align enzyme dependencies in root and jaeger workspace

* chore(yarn): refresh lock file
2021-08-20 12:54:29 +02:00
Jack Westbrook 5ff3b7bf3f Chore: Bump storybook to 6.3.7 (#38008) 2021-08-20 11:40:20 +02:00
Jack WestbrookandDominik Prokop e988d9b56d Piechart: Update @visx dependencies to 2.1.0 and move to root package.json (#38000)
* chore: move visx dependencies to root package.json

* chore(piechart): bump visx dependencies to 2.1.0

Co-authored-by: Dominik Prokop <dominik.prokop@grafana.com>
2021-08-19 14:49:09 +02:00
Jack Westbrook 552ecfeda3 Chore: Update NPM packages with react peer deps (#36598)
* chore: bump npm packages with react peer deps

* chore: bump rc-cascader to 1.4.3

* chore: bump react-table to 7.7.0

* chore: bump types packages

* refactor(buttoncascader): use CascaderValueType (fixes typescript errors)

* refactor(cascader): use CascaderValueType (fixes typescript errors)

* chore: bump rc-drawer to 4.4.0

* refactor(drawer): update component to match rc-drawer 4.4.0 api changes

* refactor(cascader): provide backwards compatibility for component apis

* chore(react-test-renderer): bump to match react 17.0.1

* fix(drawer): defer opening RcDrawer so animations play correctly

* chore: bump rc-cascader to 1.5.0
2021-08-18 11:23:34 +02:00
Jack Westbrook 483c597740 Storybook: Fix Graph with Tooltip story (#37937) 2021-08-17 10:14:57 +02:00
Jack Westbrook e0ca9585fe Build: bump fork-ts-checker-webpack-plugin to 6.3.1 (#37472) 2021-08-06 10:34:49 +02:00
Jack Westbrook 6ff599e25a Plugins: Fix plugin signature status (#37583) 2021-08-06 09:49:29 +02:00
Jack Westbrook e21ecf237b Catalog: Update enterprise license messaging in PluginDetails (#37547)
* feat(catalog): change messaging if enterprise license is missing and add link

* test(catalog): fix failing PluginDetails test
2021-08-04 17:55:03 +02:00
Jack Westbrook cc7c54be0e Plugins: Update Catalog Card UI (#37350)
* feat(catalog): lazy load and add alt text to plugin logos

* refactor(catalog): use plugin types, make sure data is available for new ui

* test(catalog): fix up tests after types refactor

* feat(catalog): introduce Tile and PluginBadge components for ui updates

* refactor(catalog): update PluginList to use new components, lazy load images, add creditcard icon

* test(catalog): update Browse.test types

* fix(catalog): if local and remote make sure to get the correct local plugin from array

* refactor(catalog): prefer grafana/ui components over custom Tile component

* chore(catalog): delete redundant components

* feat(catalog): introduce ascending descending name sort for Browse

* refactor(catalog): prefer theme spacing over hardcoded values

* refactor(catalog): update Local and Remote plugin types to match api responses

* fix(catalog): prefer local.hasUpdate and local.signature so updateable plugin signature is valid

* test(catalog): update test plugin mocks

* test(catalog): add tests for sorting and categorise

* test(catalog): add tests for plugin cards, remove grid component

* test(catalog): add tests for PluginBadges component

* refactor(catalog): change enterprise learn more link to open plugin page on website
2021-08-04 15:09:57 +02:00