diff --git a/packages/browser-sdk/eslint.config.js b/packages/browser-sdk/eslint.config.js index 53da33e1..44199df3 100644 --- a/packages/browser-sdk/eslint.config.js +++ b/packages/browser-sdk/eslint.config.js @@ -1,10 +1,16 @@ const base = require("@bucketco/eslint-config"); +const preactConfig = require("eslint-config-preact"); + +const compatPlugin = require("eslint-plugin-compat"); +const reactPlugin = require("eslint-plugin-react"); +const reactHooksPlugin = require("eslint-plugin-react-hooks"); module.exports = [ ...base, { // Preact projects - files: ["**/*.js", "**/*.jsx", "**/*.ts", "**/*.tsx"], + files: ["**/*.tsx"], + settings: { react: { // We only care about marking h() as being a used variable. @@ -13,10 +19,18 @@ module.exports = [ version: "16.0", }, }, + plugins: { + compat: compatPlugin, + react: reactPlugin, + "react-hooks": reactHooksPlugin, + }, rules: { + ...preactConfig.rules, // Ignore React attributes that are not valid in Preact. // Alternatively, we could use the preact/compat alias or turn off the rule. "react/no-unknown-property": ["off"], + "no-unused-vars": ["off"], + "react/no-danger": ["off"], }, }, { ignores: ["dist/", "example/"] }, diff --git a/packages/browser-sdk/package.json b/packages/browser-sdk/package.json index 488ffbc7..999634ce 100644 --- a/packages/browser-sdk/package.json +++ b/packages/browser-sdk/package.json @@ -50,6 +50,7 @@ "@vitest/coverage-v8": "^2.0.4", "c8": "~10.1.3", "eslint": "^9.21.0", + "eslint-config-preact": "^1.5.0", "http-server": "^14.1.1", "jsdom": "^24.1.0", "msw": "^2.3.4", diff --git a/packages/browser-sdk/src/feedback/ui/FeedbackForm.tsx b/packages/browser-sdk/src/feedback/ui/FeedbackForm.tsx index 086d9e32..35602681 100644 --- a/packages/browser-sdk/src/feedback/ui/FeedbackForm.tsx +++ b/packages/browser-sdk/src/feedback/ui/FeedbackForm.tsx @@ -90,8 +90,7 @@ export const FeedbackForm: FunctionComponent = ({ if (headerRef.current === null) return; if (expandedContentRef.current === null) return; - containerRef.current.style.maxHeight = - headerRef.current.clientHeight + "px"; + containerRef.current.style.maxHeight = `${headerRef.current.clientHeight}px`; expandedContentRef.current.style.position = "absolute"; expandedContentRef.current.style.opacity = "0"; @@ -103,11 +102,11 @@ export const FeedbackForm: FunctionComponent = ({ if (headerRef.current === null) return; if (expandedContentRef.current === null) return; - containerRef.current.style.maxHeight = + containerRef.current.style.maxHeight = `${ headerRef.current.clientHeight + // Header height expandedContentRef.current.clientHeight + // Comment + Button Height - 10 + // Gap height - "px"; + 10 // Gap height + }px`; expandedContentRef.current.style.position = "relative"; expandedContentRef.current.style.opacity = "1"; @@ -121,8 +120,7 @@ export const FeedbackForm: FunctionComponent = ({ formRef.current.style.opacity = "0"; formRef.current.style.pointerEvents = "none"; - containerRef.current.style.maxHeight = - submittedRef.current.clientHeight + "px"; + containerRef.current.style.maxHeight = `${submittedRef.current.clientHeight}px`; // Fade in "submitted" step once container has resized setTimeout(() => { diff --git a/packages/browser-sdk/src/feedback/ui/StarRating.tsx b/packages/browser-sdk/src/feedback/ui/StarRating.tsx index 41e42006..979aec05 100644 --- a/packages/browser-sdk/src/feedback/ui/StarRating.tsx +++ b/packages/browser-sdk/src/feedback/ui/StarRating.tsx @@ -52,7 +52,7 @@ const scores = [ }, ] as const; -type Score = (typeof scores)[number]; +type ScoreNumber = (typeof scores)[number]; export type StarRatingProps = { name: string; @@ -118,7 +118,7 @@ const Score = ({ isSelected: boolean; name: string; onChange?: h.JSX.GenericEventHandler; - score: Score; + score: ScoreNumber; t: FeedbackTranslations; }) => { const arrowRef = useRef(null); diff --git a/packages/eslint-config/base.js b/packages/eslint-config/base.js index 83f4a5a2..107ee2ac 100644 --- a/packages/eslint-config/base.js +++ b/packages/eslint-config/base.js @@ -7,8 +7,6 @@ const globals = require("globals"); const tsPlugin = require("@typescript-eslint/eslint-plugin"); const tsParser = require("@typescript-eslint/parser"); const prettierConfig = require("eslint-config-prettier"); -const reactPlugin = require("eslint-plugin-react"); -const hooksPlugin = require("eslint-plugin-react-hooks"); module.exports = [ { @@ -29,8 +27,6 @@ module.exports = [ import: importsPlugin, "unused-imports": unusedImportsPlugin, "simple-import-sort": sortImportsPlugin, - react: reactPlugin, - "react-hooks": hooksPlugin, }, languageOptions: { globals: { @@ -62,38 +58,6 @@ module.exports = [ rules: { ...jsPlugin.configs.recommended.rules, ...importsPlugin.configs.recommended.rules, - ...reactPlugin.configs.recommended.rules, - ...hooksPlugin.configs.recommended.rules, - - "react/jsx-key": [ - "error", - { - checkFragmentShorthand: true, - }, - ], - "react/self-closing-comp": ["error"], - "react/prefer-es6-class": ["error"], - "react/prefer-stateless-function": ["warn"], - "react/no-did-mount-set-state": ["error"], - "react/no-did-update-set-state": ["error"], - "react/jsx-filename-extension": [ - "warn", - { - extensions: [".mdx", ".jsx", ".tsx"], - }, - ], - "react/react-in-jsx-scope": ["off"], - "react/jsx-sort-props": [ - "error", - { - callbacksLast: true, - shorthandFirst: false, - shorthandLast: true, - ignoreCase: true, - noSortAlphabetically: false, - reservedFirst: true, - }, - ], // Imports "unused-imports/no-unused-vars": [ diff --git a/packages/eslint-config/package.json b/packages/eslint-config/package.json index bd1f4481..9444ff8c 100644 --- a/packages/eslint-config/package.json +++ b/packages/eslint-config/package.json @@ -16,6 +16,7 @@ "eslint-plugin-react-hooks": "^5.1.0", "eslint-plugin-simple-import-sort": "^12.1.1", "eslint-plugin-unused-imports": "^4.1.4", + "globals": "^16.2.0", "prettier": "^3.5.2", "typescript": "^5.7.3" } diff --git a/packages/react-sdk/eslint.config.js b/packages/react-sdk/eslint.config.js index cfc41730..41b6932a 100644 --- a/packages/react-sdk/eslint.config.js +++ b/packages/react-sdk/eslint.config.js @@ -1,3 +1,50 @@ const base = require("@bucketco/eslint-config"); +const reactPlugin = require("eslint-plugin-react"); +const hooksPlugin = require("eslint-plugin-react-hooks"); -module.exports = [...base, { ignores: ["dist/", "dev/"] }]; +module.exports = [ + ...base, + { ignores: ["dist/", "dev/"] }, + { + files: ["**/*.ts", "**/*.tsx"], + + rules: { + ...reactPlugin.configs.recommended.rules, + ...hooksPlugin.configs.recommended.rules, + + "react/jsx-key": [ + "error", + { + checkFragmentShorthand: true, + }, + ], + "react/self-closing-comp": ["error"], + "react/prefer-es6-class": ["error"], + "react/prefer-stateless-function": ["warn"], + "react/no-did-mount-set-state": ["error"], + "react/no-did-update-set-state": ["error"], + "react/jsx-filename-extension": [ + "warn", + { + extensions: [".mdx", ".jsx", ".tsx"], + }, + ], + "react/react-in-jsx-scope": ["off"], + "react/jsx-sort-props": [ + "error", + { + callbacksLast: true, + shorthandFirst: false, + shorthandLast: true, + ignoreCase: true, + noSortAlphabetically: false, + reservedFirst: true, + }, + ], + }, + plugins: { + react: reactPlugin, + "react-hooks": hooksPlugin, + }, + }, +]; diff --git a/yarn.lock b/yarn.lock index 9722925c..c09fb51d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -80,6 +80,17 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/code-frame@npm:7.27.1" + dependencies: + "@babel/helper-validator-identifier": "npm:^7.27.1" + js-tokens: "npm:^4.0.0" + picocolors: "npm:^1.1.1" + checksum: 10c0/5dd9a18baa5fce4741ba729acc3a3272c49c25cb8736c4b18e113099520e7ef7b545a4096a26d600e4416157e63e87d66db46aa3fbf0a5f2286da2705c12da00 + languageName: node + linkType: hard + "@babel/compat-data@npm:^7.24.7": version: 7.24.7 resolution: "@babel/compat-data@npm:7.24.7" @@ -87,6 +98,36 @@ __metadata: languageName: node linkType: hard +"@babel/compat-data@npm:^7.27.2": + version: 7.27.5 + resolution: "@babel/compat-data@npm:7.27.5" + checksum: 10c0/da2751fcd0b58eea958f2b2f7ff7d6de1280712b709fa1ad054b73dc7d31f589e353bb50479b9dc96007935f3ed3cada68ac5b45ce93086b7122ddc32e60dc00 + languageName: node + linkType: hard + +"@babel/core@npm:^7.13.16": + version: 7.27.4 + resolution: "@babel/core@npm:7.27.4" + dependencies: + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.27.1" + "@babel/generator": "npm:^7.27.3" + "@babel/helper-compilation-targets": "npm:^7.27.2" + "@babel/helper-module-transforms": "npm:^7.27.3" + "@babel/helpers": "npm:^7.27.4" + "@babel/parser": "npm:^7.27.4" + "@babel/template": "npm:^7.27.2" + "@babel/traverse": "npm:^7.27.4" + "@babel/types": "npm:^7.27.3" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10c0/d2d17b106a8d91d3eda754bb3f26b53a12eb7646df73c2b2d2e9b08d90529186bc69e3823f70a96ec6e5719dc2372fb54e14ad499da47ceeb172d2f7008787b5 + languageName: node + linkType: hard + "@babel/core@npm:~7.24.7": version: 7.24.7 resolution: "@babel/core@npm:7.24.7" @@ -110,6 +151,20 @@ __metadata: languageName: node linkType: hard +"@babel/eslint-parser@npm:^7.13.14": + version: 7.27.5 + resolution: "@babel/eslint-parser@npm:7.27.5" + dependencies: + "@nicolo-ribaudo/eslint-scope-5-internals": "npm:5.1.1-v1" + eslint-visitor-keys: "npm:^2.1.0" + semver: "npm:^6.3.1" + peerDependencies: + "@babel/core": ^7.11.0 + eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 + checksum: 10c0/c1159946c0b41687945adbc7457f9c0895e0a439d59eb7020f03f08fb471ebf67ca9c6a799f667f869c93a846c627d709ec9da4b51afccd52be51f97ec26ddf0 + languageName: node + linkType: hard + "@babel/generator@npm:^7.24.7": version: 7.24.7 resolution: "@babel/generator@npm:7.24.7" @@ -122,6 +177,19 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.27.3": + version: 7.27.5 + resolution: "@babel/generator@npm:7.27.5" + dependencies: + "@babel/parser": "npm:^7.27.5" + "@babel/types": "npm:^7.27.3" + "@jridgewell/gen-mapping": "npm:^0.3.5" + "@jridgewell/trace-mapping": "npm:^0.3.25" + jsesc: "npm:^3.0.2" + checksum: 10c0/8f649ef4cd81765c832bb11de4d6064b035ffebdecde668ba7abee68a7b0bce5c9feabb5dc5bb8aeba5bd9e5c2afa3899d852d2bd9ca77a711ba8c8379f416f0 + languageName: node + linkType: hard + "@babel/helper-compilation-targets@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-compilation-targets@npm:7.24.7" @@ -135,6 +203,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.27.2": + version: 7.27.2 + resolution: "@babel/helper-compilation-targets@npm:7.27.2" + dependencies: + "@babel/compat-data": "npm:^7.27.2" + "@babel/helper-validator-option": "npm:^7.27.1" + browserslist: "npm:^4.24.0" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 10c0/f338fa00dcfea931804a7c55d1a1c81b6f0a09787e528ec580d5c21b3ecb3913f6cb0f361368973ce953b824d910d3ac3e8a8ee15192710d3563826447193ad1 + languageName: node + linkType: hard + "@babel/helper-environment-visitor@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-environment-visitor@npm:7.24.7" @@ -173,6 +254,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-imports@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-module-imports@npm:7.27.1" + dependencies: + "@babel/traverse": "npm:^7.27.1" + "@babel/types": "npm:^7.27.1" + checksum: 10c0/e00aace096e4e29290ff8648455c2bc4ed982f0d61dbf2db1b5e750b9b98f318bf5788d75a4f974c151bd318fd549e81dbcab595f46b14b81c12eda3023f51e8 + languageName: node + linkType: hard + "@babel/helper-module-transforms@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-module-transforms@npm:7.24.7" @@ -188,6 +279,26 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.27.3": + version: 7.27.3 + resolution: "@babel/helper-module-transforms@npm:7.27.3" + dependencies: + "@babel/helper-module-imports": "npm:^7.27.1" + "@babel/helper-validator-identifier": "npm:^7.27.1" + "@babel/traverse": "npm:^7.27.3" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/fccb4f512a13b4c069af51e1b56b20f54024bcf1591e31e978a30f3502567f34f90a80da6a19a6148c249216292a8074a0121f9e52602510ef0f32dbce95ca01 + languageName: node + linkType: hard + +"@babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-plugin-utils@npm:7.27.1" + checksum: 10c0/94cf22c81a0c11a09b197b41ab488d416ff62254ce13c57e62912c85700dc2e99e555225787a4099ff6bae7a1812d622c80fbaeda824b79baa10a6c5ac4cf69b + languageName: node + linkType: hard + "@babel/helper-simple-access@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-simple-access@npm:7.24.7" @@ -228,6 +339,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-string-parser@npm:7.27.1" + checksum: 10c0/8bda3448e07b5583727c103560bcf9c4c24b3c1051a4c516d4050ef69df37bb9a4734a585fe12725b8c2763de0a265aa1e909b485a4e3270b7cfd3e4dbe4b602 + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-validator-identifier@npm:7.22.5" @@ -263,6 +381,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-validator-identifier@npm:7.27.1" + checksum: 10c0/c558f11c4871d526498e49d07a84752d1800bf72ac0d3dad100309a2eaba24efbf56ea59af5137ff15e3a00280ebe588560534b0e894a4750f8b1411d8f78b84 + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-validator-option@npm:7.24.7" @@ -270,6 +395,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-option@npm:^7.27.1": + version: 7.27.1 + resolution: "@babel/helper-validator-option@npm:7.27.1" + checksum: 10c0/6fec5f006eba40001a20f26b1ef5dbbda377b7b68c8ad518c05baa9af3f396e780bdfded24c4eef95d14bb7b8fd56192a6ed38d5d439b97d10efc5f1a191d148 + languageName: node + linkType: hard + "@babel/helpers@npm:^7.24.7": version: 7.26.10 resolution: "@babel/helpers@npm:7.26.10" @@ -280,6 +412,16 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.27.4": + version: 7.27.6 + resolution: "@babel/helpers@npm:7.27.6" + dependencies: + "@babel/template": "npm:^7.27.2" + "@babel/types": "npm:^7.27.6" + checksum: 10c0/448bac96ef8b0f21f2294a826df9de6bf4026fd023f8a6bb6c782fe3e61946801ca24381490b8e58d861fee75cd695a1882921afbf1f53b0275ee68c938bd6d3 + languageName: node + linkType: hard + "@babel/highlight@npm:^7.22.13": version: 7.22.13 resolution: "@babel/highlight@npm:7.22.13" @@ -355,6 +497,39 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.27.2, @babel/parser@npm:^7.27.4, @babel/parser@npm:^7.27.5": + version: 7.27.5 + resolution: "@babel/parser@npm:7.27.5" + dependencies: + "@babel/types": "npm:^7.27.3" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/f7faaebf21cc1f25d9ca8ac02c447ed38ef3460ea95be7ea760916dcf529476340d72a5a6010c6641d9ed9d12ad827c8424840277ec2295c5b082ba0f291220a + languageName: node + linkType: hard + +"@babel/plugin-syntax-class-properties@npm:^7.12.13": + version: 7.12.13 + resolution: "@babel/plugin-syntax-class-properties@npm:7.12.13" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.12.13" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/95168fa186416195280b1264fb18afcdcdcea780b3515537b766cb90de6ce042d42dd6a204a39002f794ae5845b02afb0fd4861a3308a861204a55e68310a120 + languageName: node + linkType: hard + +"@babel/plugin-syntax-jsx@npm:^7.12.13": + version: 7.27.1 + resolution: "@babel/plugin-syntax-jsx@npm:7.27.1" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.27.1" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/bc5afe6a458d5f0492c02a54ad98c5756a0c13bd6d20609aae65acd560a9e141b0876da5f358dce34ea136f271c1016df58b461184d7ae9c4321e0f98588bc84 + languageName: node + linkType: hard + "@babel/runtime@npm:^7.12.5": version: 7.26.10 resolution: "@babel/runtime@npm:7.26.10" @@ -386,6 +561,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.27.2": + version: 7.27.2 + resolution: "@babel/template@npm:7.27.2" + dependencies: + "@babel/code-frame": "npm:^7.27.1" + "@babel/parser": "npm:^7.27.2" + "@babel/types": "npm:^7.27.1" + checksum: 10c0/ed9e9022651e463cc5f2cc21942f0e74544f1754d231add6348ff1b472985a3b3502041c0be62dc99ed2d12cfae0c51394bf827452b98a2f8769c03b87aadc81 + languageName: node + linkType: hard + "@babel/traverse@npm:^7.24.7": version: 7.24.7 resolution: "@babel/traverse@npm:7.24.7" @@ -404,6 +590,21 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.27.1, @babel/traverse@npm:^7.27.3, @babel/traverse@npm:^7.27.4": + version: 7.27.4 + resolution: "@babel/traverse@npm:7.27.4" + dependencies: + "@babel/code-frame": "npm:^7.27.1" + "@babel/generator": "npm:^7.27.3" + "@babel/parser": "npm:^7.27.4" + "@babel/template": "npm:^7.27.2" + "@babel/types": "npm:^7.27.3" + debug: "npm:^4.3.1" + globals: "npm:^11.1.0" + checksum: 10c0/6de8aa2a0637a6ee6d205bf48b9e923928a02415771fdec60085ed754dcdf605e450bb3315c2552fa51c31a4662275b45d5ae4ad527ce55a7db9acebdbbbb8ed + languageName: node + linkType: hard + "@babel/types@npm:^7.24.7": version: 7.24.7 resolution: "@babel/types@npm:7.24.7" @@ -435,6 +636,16 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.27.1, @babel/types@npm:^7.27.3, @babel/types@npm:^7.27.6": + version: 7.27.6 + resolution: "@babel/types@npm:7.27.6" + dependencies: + "@babel/helper-string-parser": "npm:^7.27.1" + "@babel/helper-validator-identifier": "npm:^7.27.1" + checksum: 10c0/39d556be114f2a6d874ea25ad39826a9e3a0e98de0233ae6d932f6d09a4b222923a90a7274c635ed61f1ba49bbd345329226678800900ad1c8d11afabd573aaf + languageName: node + linkType: hard + "@babel/types@npm:^7.8.3": version: 7.24.5 resolution: "@babel/types@npm:7.24.5" @@ -486,6 +697,7 @@ __metadata: c8: "npm:~10.1.3" canonical-json: "npm:^0.0.4" eslint: "npm:^9.21.0" + eslint-config-preact: "npm:^1.5.0" http-server: "npm:^14.1.1" js-cookie: "npm:^3.0.5" jsdom: "npm:^24.1.0" @@ -550,6 +762,7 @@ __metadata: eslint-plugin-react-hooks: "npm:^5.1.0" eslint-plugin-simple-import-sort: "npm:^12.1.1" eslint-plugin-unused-imports: "npm:^4.1.4" + globals: "npm:^16.2.0" prettier: "npm:^3.5.2" typescript: "npm:^5.7.3" languageName: unknown @@ -2117,6 +2330,13 @@ __metadata: languageName: node linkType: hard +"@mdn/browser-compat-data@npm:^5.3.13, @mdn/browser-compat-data@npm:^5.6.19": + version: 5.7.6 + resolution: "@mdn/browser-compat-data@npm:5.7.6" + checksum: 10c0/918df768e734115bee0a43fb2eceaf6438cb9b294c27e13d0ac8a19ab9f00f59e4f306fc38c498b62bdec2d726d4f3874826fa2afccd2a29d50d306f687bfdff + languageName: node + linkType: hard + "@microsoft/api-extractor-model@npm:7.28.13": version: 7.28.13 resolution: "@microsoft/api-extractor-model@npm:7.28.13" @@ -2330,6 +2550,15 @@ __metadata: languageName: node linkType: hard +"@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1": + version: 5.1.1-v1 + resolution: "@nicolo-ribaudo/eslint-scope-5-internals@npm:5.1.1-v1" + dependencies: + eslint-scope: "npm:5.1.1" + checksum: 10c0/75dda3e623b8ad7369ca22552d6beee337a814b2d0e8a32d23edd13fcb65c8082b32c5d86e436f3860dd7ade30d91d5db55d4ef9a08fb5a976c718ecc0d88a74 + languageName: node + linkType: hard + "@nodelib/fs.scandir@npm:2.1.5": version: 2.1.5 resolution: "@nodelib/fs.scandir@npm:2.1.5" @@ -5450,6 +5679,15 @@ __metadata: languageName: node linkType: hard +"ast-metadata-inferer@npm:^0.8.0": + version: 0.8.1 + resolution: "ast-metadata-inferer@npm:0.8.1" + dependencies: + "@mdn/browser-compat-data": "npm:^5.6.19" + checksum: 10c0/4bfa6c268951f31123c2ea902d13d8fda5a226679a028eab7ccc063b5cc10964b07a30f075c3876fadaec315df9a894490ed24e6cb5c185afd373da42fff7a4f + languageName: node + linkType: hard + "ast-types-flow@npm:^0.0.8": version: 0.0.8 resolution: "ast-types-flow@npm:0.0.8" @@ -5665,6 +5903,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.24.0": + version: 4.25.0 + resolution: "browserslist@npm:4.25.0" + dependencies: + caniuse-lite: "npm:^1.0.30001718" + electron-to-chromium: "npm:^1.5.160" + node-releases: "npm:^2.0.19" + update-browserslist-db: "npm:^1.1.3" + bin: + browserslist: cli.js + checksum: 10c0/cc16c55b4468b18684a0e1ca303592b38635b1155d6724f172407192737a2f405b8030d87a05813729592793445b3d15e737b0055f901cdecccb29b1e580a1c5 + languageName: node + linkType: hard + "buffer-from@npm:^1.0.0": version: 1.1.2 resolution: "buffer-from@npm:1.1.2" @@ -5869,6 +6121,16 @@ __metadata: languageName: node linkType: hard +"call-bound@npm:^1.0.4": + version: 1.0.4 + resolution: "call-bound@npm:1.0.4" + dependencies: + call-bind-apply-helpers: "npm:^1.0.2" + get-intrinsic: "npm:^1.3.0" + checksum: 10c0/f4796a6a0941e71c766aea672f63b72bc61234c4f4964dc6d7606e3664c307e7d77845328a8f3359ce39ddb377fed67318f9ee203dea1d47e46165dcf2917644 + languageName: node + linkType: hard + "callsites@npm:^3.0.0": version: 3.1.0 resolution: "callsites@npm:3.1.0" @@ -5908,6 +6170,13 @@ __metadata: languageName: node linkType: hard +"caniuse-lite@npm:^1.0.30001524, caniuse-lite@npm:^1.0.30001718": + version: 1.0.30001723 + resolution: "caniuse-lite@npm:1.0.30001723" + checksum: 10c0/e019503061759b96017c4d27ddd7ca1b48533eabcd0431b51d2e3156f99f6b031075e46c279c0db63424cdfc874bba992caec2db51b922a0f945e686246886f6 + languageName: node + linkType: hard + "caniuse-lite@npm:^1.0.30001538, caniuse-lite@npm:^1.0.30001565": version: 1.0.30001576 resolution: "caniuse-lite@npm:1.0.30001576" @@ -7134,6 +7403,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.5.160": + version: 1.5.169 + resolution: "electron-to-chromium@npm:1.5.169" + checksum: 10c0/942b0fe95e05df8ae6c4a76e36a94788659927a9f7d4d718defbfff34153b98e9f9d8e028f424535a578a9775029442c1832ec681a4c0a85fdf76f3fa0360d75 + languageName: node + linkType: hard + "emoji-regex@npm:^10.3.0": version: 10.4.0 resolution: "emoji-regex@npm:10.4.0" @@ -7790,6 +8066,13 @@ __metadata: languageName: node linkType: hard +"escalade@npm:^3.2.0": + version: 3.2.0 + resolution: "escalade@npm:3.2.0" + checksum: 10c0/ced4dd3a78e15897ed3be74e635110bbf3b08877b0a41be50dcb325ee0e0b5f65fc2d50e9845194d7c4633f327e2e1c6cce00a71b617c5673df0374201d67f65 + languageName: node + linkType: hard + "escape-html@npm:~1.0.3": version: 1.0.3 resolution: "escape-html@npm:1.0.3" @@ -7834,6 +8117,23 @@ __metadata: languageName: node linkType: hard +"eslint-config-preact@npm:^1.5.0": + version: 1.5.0 + resolution: "eslint-config-preact@npm:1.5.0" + dependencies: + "@babel/core": "npm:^7.13.16" + "@babel/eslint-parser": "npm:^7.13.14" + "@babel/plugin-syntax-class-properties": "npm:^7.12.13" + "@babel/plugin-syntax-jsx": "npm:^7.12.13" + eslint-plugin-compat: "npm:^4.0.0" + eslint-plugin-react: "npm:^7.27.0" + eslint-plugin-react-hooks: "npm:^4.3.0" + peerDependencies: + eslint: 6.x || 7.x || 8.x + checksum: 10c0/8cfbdcc2cbc75fae98aa36bd66f9e5357b854106db7920e58e2e3543e5130b6ec1607dbb2a37447147bfcd4c68e39e2905c956ce3f98fb4b8b38d04d8d4de106 + languageName: node + linkType: hard + "eslint-config-prettier@npm:^10.0.1": version: 10.0.1 resolution: "eslint-config-prettier@npm:10.0.1" @@ -7922,6 +8222,23 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-compat@npm:^4.0.0": + version: 4.2.0 + resolution: "eslint-plugin-compat@npm:4.2.0" + dependencies: + "@mdn/browser-compat-data": "npm:^5.3.13" + ast-metadata-inferer: "npm:^0.8.0" + browserslist: "npm:^4.21.10" + caniuse-lite: "npm:^1.0.30001524" + find-up: "npm:^5.0.0" + lodash.memoize: "npm:^4.1.2" + semver: "npm:^7.5.4" + peerDependencies: + eslint: ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 + checksum: 10c0/d5452650522b4a1e7f68365550fdf1049050469ee6f7cf772f222391fda775bb5a3a73da044f0b454ef8c87a636fd078ed46f9fba574bc2bafe441f612e70cda + languageName: node + linkType: hard + "eslint-plugin-import@npm:^2.28.1": version: 2.29.1 resolution: "eslint-plugin-import@npm:2.29.1" @@ -8004,6 +8321,15 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-react-hooks@npm:^4.3.0": + version: 4.6.2 + resolution: "eslint-plugin-react-hooks@npm:4.6.2" + peerDependencies: + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 + checksum: 10c0/4844e58c929bc05157fb70ba1e462e34f1f4abcbc8dd5bbe5b04513d33e2699effb8bca668297976ceea8e7ebee4e8fc29b9af9d131bcef52886feaa2308b2cc + languageName: node + linkType: hard + "eslint-plugin-react-hooks@npm:^4.5.0 || 5.0.0-canary-7118f5dd7-20230705": version: 5.0.0-canary-7118f5dd7-20230705 resolution: "eslint-plugin-react-hooks@npm:5.0.0-canary-7118f5dd7-20230705" @@ -8022,6 +8348,34 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-react@npm:^7.27.0": + version: 7.37.5 + resolution: "eslint-plugin-react@npm:7.37.5" + dependencies: + array-includes: "npm:^3.1.8" + array.prototype.findlast: "npm:^1.2.5" + array.prototype.flatmap: "npm:^1.3.3" + array.prototype.tosorted: "npm:^1.1.4" + doctrine: "npm:^2.1.0" + es-iterator-helpers: "npm:^1.2.1" + estraverse: "npm:^5.3.0" + hasown: "npm:^2.0.2" + jsx-ast-utils: "npm:^2.4.1 || ^3.0.0" + minimatch: "npm:^3.1.2" + object.entries: "npm:^1.1.9" + object.fromentries: "npm:^2.0.8" + object.values: "npm:^1.2.1" + prop-types: "npm:^15.8.1" + resolve: "npm:^2.0.0-next.5" + semver: "npm:^6.3.1" + string.prototype.matchall: "npm:^4.0.12" + string.prototype.repeat: "npm:^1.0.0" + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + checksum: 10c0/c850bfd556291d4d9234f5ca38db1436924a1013627c8ab1853f77cac73ec19b020e861e6c7b783436a48b6ffcdfba4547598235a37ad4611b6739f65fd8ad57 + languageName: node + linkType: hard + "eslint-plugin-react@npm:^7.33.2": version: 7.34.4 resolution: "eslint-plugin-react@npm:7.34.4" @@ -8131,6 +8485,13 @@ __metadata: languageName: node linkType: hard +"eslint-visitor-keys@npm:^2.1.0": + version: 2.1.0 + resolution: "eslint-visitor-keys@npm:2.1.0" + checksum: 10c0/9f0e3a2db751d84067d15977ac4b4472efd6b303e369e6ff241a99feac04da758f46d5add022c33d06b53596038dbae4b4aceb27c7e68b8dfc1055b35e495787 + languageName: node + linkType: hard + "eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" @@ -9005,7 +9366,7 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.2.7": +"get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.2.7, get-intrinsic@npm:^1.3.0": version: 1.3.0 resolution: "get-intrinsic@npm:1.3.0" dependencies: @@ -9335,6 +9696,13 @@ __metadata: languageName: node linkType: hard +"globals@npm:^16.2.0": + version: 16.2.0 + resolution: "globals@npm:16.2.0" + checksum: 10c0/c2b3ea163faa6f8a38076b471b12f4bda891f7df7f7d2e8294fb4801d735a51a73431bf4c1696c5bf5dbca5e0a0db894698acfcbd3068730c6b12eef185dea25 + languageName: node + linkType: hard + "globalthis@npm:^1.0.3": version: 1.0.3 resolution: "globalthis@npm:1.0.3" @@ -10957,6 +11325,15 @@ __metadata: languageName: node linkType: hard +"jsesc@npm:^3.0.2": + version: 3.1.0 + resolution: "jsesc@npm:3.1.0" + bin: + jsesc: bin/jsesc + checksum: 10c0/531779df5ec94f47e462da26b4cbf05eb88a83d9f08aac2ba04206508fc598527a153d08bd462bae82fc78b3eaa1a908e1a4a79f886e9238641c4cdefaf118b1 + languageName: node + linkType: hard + "json-buffer@npm:3.0.1": version: 3.0.1 resolution: "json-buffer@npm:3.0.1" @@ -11379,6 +11756,13 @@ __metadata: languageName: node linkType: hard +"lodash.memoize@npm:^4.1.2": + version: 4.1.2 + resolution: "lodash.memoize@npm:4.1.2" + checksum: 10c0/c8713e51eccc650422716a14cece1809cfe34bc5ab5e242b7f8b4e2241c2483697b971a604252807689b9dd69bfe3a98852e19a5b89d506b000b4187a1285df8 + languageName: node + linkType: hard + "lodash.merge@npm:^4.6.2": version: 4.6.2 resolution: "lodash.merge@npm:4.6.2" @@ -12391,6 +12775,13 @@ __metadata: languageName: node linkType: hard +"node-releases@npm:^2.0.19": + version: 2.0.19 + resolution: "node-releases@npm:2.0.19" + checksum: 10c0/52a0dbd25ccf545892670d1551690fe0facb6a471e15f2cfa1b20142a5b255b3aa254af5f59d6ecb69c2bec7390bc643c43aa63b13bf5e64b6075952e716b1aa + languageName: node + linkType: hard + "nopt@npm:^7.0.0": version: 7.2.1 resolution: "nopt@npm:7.2.1" @@ -12828,6 +13219,18 @@ __metadata: languageName: node linkType: hard +"object.entries@npm:^1.1.9": + version: 1.1.9 + resolution: "object.entries@npm:1.1.9" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.4" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.1.1" + checksum: 10c0/d4b8c1e586650407da03370845f029aa14076caca4e4d4afadbc69cfb5b78035fd3ee7be417141abdb0258fa142e59b11923b4c44d8b1255b28f5ffcc50da7db + languageName: node + linkType: hard + "object.fromentries@npm:^2.0.7": version: 2.0.7 resolution: "object.fromentries@npm:2.0.7" @@ -17236,6 +17639,20 @@ __metadata: languageName: node linkType: hard +"update-browserslist-db@npm:^1.1.3": + version: 1.1.3 + resolution: "update-browserslist-db@npm:1.1.3" + dependencies: + escalade: "npm:^3.2.0" + picocolors: "npm:^1.1.1" + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 10c0/682e8ecbf9de474a626f6462aa85927936cdd256fe584c6df2508b0df9f7362c44c957e9970df55dfe44d3623807d26316ea2c7d26b80bb76a16c56c37233c32 + languageName: node + linkType: hard + "uri-js@npm:^4.2.2, uri-js@npm:^4.4.1": version: 4.4.1 resolution: "uri-js@npm:4.4.1"