diff --git a/.eslintrc.js b/.eslintrc.js index f45cebf..a644709 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -1,5 +1,12 @@ -module.exports = require("@backstage/cli/config/eslint-factory")(__dirname, { - rules: { - "deprecation/deprecation": "error", +module.exports = { + root: true, + parser: "@typescript-eslint/parser", + extends: ["plugin:storybook/recommended", "plugin:deprecation/recommended"], + + ignorePatterns: ["*.js", "*.d.ts"], + + parserOptions: { + project: "./tsconfig.json", + tsconfigRootDir: __dirname, }, -}); +}; diff --git a/.prettierignore b/.prettierignore index b3798f2..20b4710 100644 --- a/.prettierignore +++ b/.prettierignore @@ -1,7 +1,6 @@ **/.git **/.svn **/.hg -**/.eslintrc.js **/node_modules # Ignore generated files diff --git a/app-config.yaml b/app-config.yaml new file mode 100644 index 0000000..0a53381 --- /dev/null +++ b/app-config.yaml @@ -0,0 +1,28 @@ +app: + title: Analytics module - Azure insights + baseUrl: http://localhost:3000 + +backend: + baseUrl: http://localhost:7007 + listen: + port: 7007 + csp: + connect-src: ["'self'", 'http:', 'https:'] + cors: + origin: http://localhost:3000 + methods: [GET, POST, PUT, DELETE] + credentials: true + database: + client: better-sqlite3 + connection: ':memory:' + cache: + store: memory + reading: + allow: + - host: localhost + +auth: + environment: development + providers: + guest: + userEntityRef: 'user:default/guest' diff --git a/dev/index.tsx b/dev/index.tsx index 33f9fa5..18afb36 100644 --- a/dev/index.tsx +++ b/dev/index.tsx @@ -16,12 +16,13 @@ import { createPlugin } from "@backstage/core-plugin-api"; import { createDevApp } from "@backstage/dev-utils"; -import { Playground } from "./Playground"; import React from "react"; +import { Playground } from "./Playground"; export const analyticsModuleAzureInsights = createPlugin({ id: "analytics-provider-azure-insights", }); + createDevApp() .registerPlugin(analyticsModuleAzureInsights) .addPage({ diff --git a/package.json b/package.json index 40f2665..ad31b40 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,8 @@ "test": "backstage-cli package test", "clean": "backstage-cli package clean", "prepack": "backstage-cli package prepack", - "postpack": "backstage-cli package postpack" + "postpack": "backstage-cli package postpack", + "tsc": "tsc" }, "dependencies": { "@backstage/config": "^1.2.0", @@ -54,9 +55,14 @@ "@testing-library/jest-dom": "^6.1.4", "@testing-library/react": "^15.0.2", "@types/node": "*", - "cross-fetch": "^4.0.0", + "@typescript-eslint/parser": "^7.7.0", "eslint": "^8.57.0", - "eslint-plugin-deprecation": "^3.0.0" + "eslint-plugin-deprecation": "^3.0.0", + "eslint-plugin-storybook": "^0.8.0", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router": "^6.19.0", + "react-router-dom": "^6.19.0" }, "files": [ "dist", diff --git a/src/index.ts b/src/index.ts index 35cac89..bf5dee7 100644 --- a/src/index.ts +++ b/src/index.ts @@ -15,4 +15,3 @@ */ export { AzureInsights } from "./AnalyticsApi"; -export { analyticsModuleAzurePlugin } from "./plugin"; diff --git a/src/plugin.test.ts b/src/plugin.test.ts deleted file mode 100644 index 7be44a0..0000000 --- a/src/plugin.test.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { analyticsModuleAzurePlugin } from './plugin'; - -describe('analytics-module-azure', () => { - it('should export plugin', () => { - expect(analyticsModuleAzurePlugin).toBeDefined(); - }); -}); diff --git a/src/plugin.ts b/src/plugin.ts deleted file mode 100644 index 2e94d07..0000000 --- a/src/plugin.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { createPlugin } from '@backstage/core-plugin-api'; - -export const analyticsModuleAzurePlugin = createPlugin({ - id: 'analytics-module-azure', -}); diff --git a/src/setupTests.ts b/src/setupTests.ts index 48c09b5..58f60f5 100644 --- a/src/setupTests.ts +++ b/src/setupTests.ts @@ -1,2 +1,6 @@ -import '@testing-library/jest-dom'; -import 'cross-fetch/polyfill'; +import "@testing-library/jest-dom"; + +// eslint-disable-next-line no-restricted-imports +import { TextDecoder, TextEncoder } from "util"; + +Object.assign(global, { TextDecoder, TextEncoder }); diff --git a/tsconfig.json b/tsconfig.json index acb99bd..ce34382 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,9 +1,10 @@ { "extends": "@backstage/cli/config/tsconfig.json", - "include": ["src", "dev"], + "include": ["src", "dev", "*/config.d.ts"], "exclude": ["node_modules"], "compilerOptions": { "outDir": "dist-types", - "incremental": false + "incremental": false, + "rootDir": "." } -} \ No newline at end of file +} diff --git a/yarn.lock b/yarn.lock index b7c2990..b4d0cef 100644 --- a/yarn.lock +++ b/yarn.lock @@ -33,9 +33,14 @@ __metadata: "@testing-library/jest-dom": "npm:^6.1.4" "@testing-library/react": "npm:^15.0.2" "@types/node": "npm:*" - cross-fetch: "npm:^4.0.0" + "@typescript-eslint/parser": "npm:^7.7.0" eslint: "npm:^8.57.0" eslint-plugin-deprecation: "npm:^3.0.0" + eslint-plugin-storybook: "npm:^0.8.0" + react: "npm:^18.2.0" + react-dom: "npm:^18.2.0" + react-router: "npm:^6.19.0" + react-router-dom: "npm:^6.19.0" peerDependencies: react: ^18.2.0 react-dom: ^18.2.0 @@ -4468,6 +4473,13 @@ __metadata: languageName: node linkType: hard +"@remix-run/router@npm:1.19.2": + version: 1.19.2 + resolution: "@remix-run/router@npm:1.19.2" + checksum: 10c0/ac7fc813350686705f2c29219e70e1e299d9a8e3b301e9e81f7e84f578c40c6462b590cf0d78863bac40dbc325b68c71ae070f4a1465793d1d1971b619618295 + languageName: node + linkType: hard + "@rollup/plugin-commonjs@npm:^26.0.0": version: 26.0.3 resolution: "@rollup/plugin-commonjs@npm:26.0.3" @@ -4746,6 +4758,15 @@ __metadata: languageName: node linkType: hard +"@storybook/csf@npm:^0.0.1": + version: 0.0.1 + resolution: "@storybook/csf@npm:0.0.1" + dependencies: + lodash: "npm:^4.17.15" + checksum: 10c0/7b0f75763415f9147692a460b44417ee56ea9639433716a1fd4d1df4c8b0221cbc71b8da0fbed4dcecb3ccd6c7ed64be39f5c255c713539a6088a1d6488aaa24 + languageName: node + linkType: hard + "@sucrase/webpack-loader@npm:^2.0.0": version: 2.0.0 resolution: "@sucrase/webpack-loader@npm:2.0.0" @@ -5687,7 +5708,7 @@ __metadata: languageName: node linkType: hard -"@types/semver@npm:7.5.8": +"@types/semver@npm:7.5.8, @types/semver@npm:^7.3.12": version: 7.5.8 resolution: "@types/semver@npm:7.5.8" checksum: 10c0/8663ff927234d1c5fcc04b33062cb2b9fcfbe0f5f351ed26c4d1e1581657deebd506b41ff7fdf89e787e3d33ce05854bc01686379b89e9c49b564c4cfa988efa @@ -5865,6 +5886,34 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/parser@npm:^7.7.0": + version: 7.18.0 + resolution: "@typescript-eslint/parser@npm:7.18.0" + dependencies: + "@typescript-eslint/scope-manager": "npm:7.18.0" + "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/typescript-estree": "npm:7.18.0" + "@typescript-eslint/visitor-keys": "npm:7.18.0" + debug: "npm:^4.3.4" + peerDependencies: + eslint: ^8.56.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/370e73fca4278091bc1b657f85e7d74cd52b24257ea20c927a8e17546107ce04fbf313fec99aed0cc2a145ddbae1d3b12e9cc2c1320117636dc1281bcfd08059 + languageName: node + linkType: hard + +"@typescript-eslint/scope-manager@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/scope-manager@npm:5.62.0" + dependencies: + "@typescript-eslint/types": "npm:5.62.0" + "@typescript-eslint/visitor-keys": "npm:5.62.0" + checksum: 10c0/861253235576c1c5c1772d23cdce1418c2da2618a479a7de4f6114a12a7ca853011a1e530525d0931c355a8fd237b9cd828fac560f85f9623e24054fd024726f + languageName: node + linkType: hard + "@typescript-eslint/scope-manager@npm:6.13.2": version: 6.13.2 resolution: "@typescript-eslint/scope-manager@npm:6.13.2" @@ -5932,6 +5981,13 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/types@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/types@npm:5.62.0" + checksum: 10c0/7febd3a7f0701c0b927e094f02e82d8ee2cada2b186fcb938bc2b94ff6fbad88237afc304cbaf33e82797078bbbb1baf91475f6400912f8b64c89be79bfa4ddf + languageName: node + linkType: hard + "@typescript-eslint/types@npm:6.13.2": version: 6.13.2 resolution: "@typescript-eslint/types@npm:6.13.2" @@ -5967,6 +6023,24 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/typescript-estree@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/typescript-estree@npm:5.62.0" + dependencies: + "@typescript-eslint/types": "npm:5.62.0" + "@typescript-eslint/visitor-keys": "npm:5.62.0" + debug: "npm:^4.3.4" + globby: "npm:^11.1.0" + is-glob: "npm:^4.0.3" + semver: "npm:^7.3.7" + tsutils: "npm:^3.21.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/d7984a3e9d56897b2481940ec803cb8e7ead03df8d9cfd9797350be82ff765dfcf3cfec04e7355e1779e948da8f02bc5e11719d07a596eb1cb995c48a95e38cf + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:6.13.2": version: 6.13.2 resolution: "@typescript-eslint/typescript-estree@npm:6.13.2" @@ -6077,6 +6151,24 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/utils@npm:^5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/utils@npm:5.62.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.2.0" + "@types/json-schema": "npm:^7.0.9" + "@types/semver": "npm:^7.3.12" + "@typescript-eslint/scope-manager": "npm:5.62.0" + "@typescript-eslint/types": "npm:5.62.0" + "@typescript-eslint/typescript-estree": "npm:5.62.0" + eslint-scope: "npm:^5.1.1" + semver: "npm:^7.3.7" + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 10c0/f09b7d9952e4a205eb1ced31d7684dd55cee40bf8c2d78e923aa8a255318d97279825733902742c09d8690f37a50243f4c4d383ab16bd7aefaf9c4b438f785e1 + languageName: node + linkType: hard + "@typescript-eslint/utils@npm:^6.0.0": version: 6.7.5 resolution: "@typescript-eslint/utils@npm:6.7.5" @@ -6122,6 +6214,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/visitor-keys@npm:5.62.0": + version: 5.62.0 + resolution: "@typescript-eslint/visitor-keys@npm:5.62.0" + dependencies: + "@typescript-eslint/types": "npm:5.62.0" + eslint-visitor-keys: "npm:^3.3.0" + checksum: 10c0/7c3b8e4148e9b94d9b7162a596a1260d7a3efc4e65199693b8025c71c4652b8042501c0bc9f57654c1e2943c26da98c0f77884a746c6ae81389fcb0b513d995d + languageName: node + linkType: hard + "@typescript-eslint/visitor-keys@npm:6.13.2": version: 6.13.2 resolution: "@typescript-eslint/visitor-keys@npm:6.13.2" @@ -9678,6 +9780,20 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-storybook@npm:^0.8.0": + version: 0.8.0 + resolution: "eslint-plugin-storybook@npm:0.8.0" + dependencies: + "@storybook/csf": "npm:^0.0.1" + "@typescript-eslint/utils": "npm:^5.62.0" + requireindex: "npm:^1.2.0" + ts-dedent: "npm:^2.2.0" + peerDependencies: + eslint: ">=6" + checksum: 10c0/c76f6decdd4c826cd6a8bb613085e0cde804f4648093a0464a39867cc0ba4e1d34be15ff91eed827730da5efbbf55ae5e71af648bb0b461946d5e41384669ab8 + languageName: node + linkType: hard + "eslint-plugin-unused-imports@npm:^3.0.0": version: 3.2.0 resolution: "eslint-plugin-unused-imports@npm:3.2.0" @@ -9700,7 +9816,7 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:5.1.1": +"eslint-scope@npm:5.1.1, eslint-scope@npm:^5.1.1": version: 5.1.1 resolution: "eslint-scope@npm:5.1.1" dependencies: @@ -13496,7 +13612,7 @@ __metadata: languageName: node linkType: hard -"loose-envify@npm:^1.4.0": +"loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" dependencies: @@ -16198,6 +16314,18 @@ __metadata: languageName: node linkType: hard +"react-dom@npm:^18.2.0": + version: 18.3.1 + resolution: "react-dom@npm:18.3.1" + dependencies: + loose-envify: "npm:^1.1.0" + scheduler: "npm:^0.23.2" + peerDependencies: + react: ^18.3.1 + checksum: 10c0/a752496c1941f958f2e8ac56239172296fcddce1365ce45222d04a1947e0cc5547df3e8447f855a81d6d39f008d7c32eab43db3712077f09e3f67c4874973e85 + languageName: node + linkType: hard + "react-double-scrollbar@npm:0.0.15": version: 0.0.15 resolution: "react-double-scrollbar@npm:0.0.15" @@ -16329,6 +16457,30 @@ __metadata: languageName: node linkType: hard +"react-router-dom@npm:^6.19.0": + version: 6.26.2 + resolution: "react-router-dom@npm:6.26.2" + dependencies: + "@remix-run/router": "npm:1.19.2" + react-router: "npm:6.26.2" + peerDependencies: + react: ">=16.8" + react-dom: ">=16.8" + checksum: 10c0/7515128a98eef0a6b2bf354ef9dfefad03556a06be00fa9220eda6526aaada8a42f294911083473d7ced6d7128c3088bd193218bbb3d62593f9f4f7053781c23 + languageName: node + linkType: hard + +"react-router@npm:6.26.2, react-router@npm:^6.19.0": + version: 6.26.2 + resolution: "react-router@npm:6.26.2" + dependencies: + "@remix-run/router": "npm:1.19.2" + peerDependencies: + react: ">=16.8" + checksum: 10c0/0d15a39b419c99fb5ccad76388bfc4ee2b01323b3b1b694595a9f9ea28e1fbeea25486b5398f5d3d93922f5c6a9aa751b6bb27419488d85279f6ca5ff9e0a6bb + languageName: node + linkType: hard + "react-side-effect@npm:^2.1.0": version: 2.1.2 resolution: "react-side-effect@npm:2.1.2" @@ -16438,6 +16590,15 @@ __metadata: languageName: node linkType: hard +"react@npm:^18.2.0": + version: 18.3.1 + resolution: "react@npm:18.3.1" + dependencies: + loose-envify: "npm:^1.1.0" + checksum: 10c0/283e8c5efcf37802c9d1ce767f302dd569dd97a70d9bb8c7be79a789b9902451e0d16334b05d73299b20f048cbc3c7d288bbbde10b701fa194e2089c237dbea3 + languageName: node + linkType: hard + "read-yaml-file@npm:^1.1.0": version: 1.1.0 resolution: "read-yaml-file@npm:1.1.0" @@ -16688,6 +16849,13 @@ __metadata: languageName: node linkType: hard +"requireindex@npm:^1.2.0": + version: 1.2.0 + resolution: "requireindex@npm:1.2.0" + checksum: 10c0/7fb42aed73bf8de9acc4d6716cf07acc7fbe180e58729433bafcf702e76e7bb10e54f8266c06bfec62d752e0ac14d50e8758833de539e6f4e2cd642077866153 + languageName: node + linkType: hard + "requires-port@npm:^1.0.0": version: 1.0.0 resolution: "requires-port@npm:1.0.0" @@ -17161,6 +17329,15 @@ __metadata: languageName: node linkType: hard +"scheduler@npm:^0.23.2": + version: 0.23.2 + resolution: "scheduler@npm:0.23.2" + dependencies: + loose-envify: "npm:^1.1.0" + checksum: 10c0/26383305e249651d4c58e6705d5f8425f153211aef95f15161c151f7b8de885f24751b377e4a0b3dd42cce09aad3f87a61dab7636859c0d89b7daf1a1e2a5c78 + languageName: node + linkType: hard + "schema-utils@npm:2.7.0": version: 2.7.0 resolution: "schema-utils@npm:2.7.0" @@ -17226,7 +17403,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.6.3, semver@npm:^7.6.0": +"semver@npm:7.6.3, semver@npm:^7.3.7, semver@npm:^7.6.0": version: 7.6.3 resolution: "semver@npm:7.6.3" bin: @@ -18428,6 +18605,13 @@ __metadata: languageName: node linkType: hard +"ts-dedent@npm:^2.2.0": + version: 2.2.0 + resolution: "ts-dedent@npm:2.2.0" + checksum: 10c0/175adea838468cc2ff7d5e97f970dcb798bbcb623f29c6088cb21aa2880d207c5784be81ab1741f56b9ac37840cbaba0c0d79f7f8b67ffe61c02634cafa5c303 + languageName: node + linkType: hard + "ts-easing@npm:^0.2.0": version: 0.2.0 resolution: "ts-easing@npm:0.2.0"