From 1554bf22eda187577da66172b8b0483d6e06c934 Mon Sep 17 00:00:00 2001 From: JoseLion Date: Mon, 24 Jun 2024 02:58:00 -0500 Subject: [PATCH] chore(lint): Upgrade to ESLint v9 --- .eslintignore | 7 - .eslintrc.json | 253 ------ eslint.config.mjs | 291 +++++++ package.json | 25 +- packages/core/src/lib/Form.context.ts | 11 +- packages/core/src/lib/Form.provider.tsx | 21 +- .../lib/components/ArrayField.component.tsx | 7 +- .../src/lib/components/Field.component.tsx | 9 +- packages/core/src/lib/helpers/adapters.ts | 4 +- packages/core/src/lib/hooks/useArrayField.ts | 4 +- packages/core/src/lib/hooks/useField.ts | 4 +- .../core/src/lib/hooks/useFieldValidation.ts | 2 +- packages/core/src/main.ts | 70 +- packages/core/test/hooks.ts | 2 +- .../integration/lib/Form.provider.test.tsx | 6 +- .../components/ArrayField.component.test.tsx | 2 +- .../lib/components/Field.component.test.tsx | 2 +- .../lib/hooks/useArrayField.test.tsx | 6 +- .../integration/lib/hooks/useField.test.tsx | 12 +- .../lib/hooks/useFieldValidation.test.tsx | 11 +- .../test/types/lib/Form.context.typetest.ts | 2 +- .../ArrayField.component.typetest.ts | 4 +- .../components/Field.component.typetest.ts | 6 +- packages/core/typings/react.d.ts | 2 +- packages/native/jest.config.ts | 2 +- .../{metro.config.js => metro.config.cjs} | 0 .../native/src/lib/SubmitButton.component.tsx | 4 +- .../src/lib/SubmitHighlight.component.tsx | 4 +- .../lib/SubmitNativeFeedback.component.tsx | 4 +- .../src/lib/SubmitOpacity.component.tsx | 4 +- .../lib/SubmitWithoutFeedback.component.tsx | 4 +- .../src/lib/fields/TextField.component.tsx | 18 +- packages/native/src/main.ts | 12 +- packages/native/test/helpers/testSchema.ts | 2 +- .../lib/SubmitButton.component.test.tsx | 2 +- .../lib/SubmitHighlight.component.test.tsx | 2 +- .../SubmitNativeFeedback.component.test.tsx | 2 +- .../lib/SubmitOpacity.component.test.tsx | 2 +- .../SubmitWithoutFeedback.component.test.tsx | 2 +- .../lib/fields/TextField.component.test.tsx | 4 +- packages/native/typings/jest.d.ts | 8 +- packages/native/typings/react.d.ts | 2 +- packages/web/src/lib/Form.component.tsx | 26 +- packages/web/src/lib/Form.delegate.tsx | 7 +- .../web/src/lib/fields/Input.component.tsx | 12 +- .../web/src/lib/fields/Select.component.tsx | 13 +- .../web/src/lib/fields/Textarea.component.tsx | 12 +- packages/web/src/main.ts | 30 +- packages/web/test/hooks.ts | 2 +- .../integration/lib/Form.component.test.tsx | 2 +- .../lib/fields/Input.component.test.tsx | 4 +- .../lib/fields/Select.component.test.tsx | 4 +- .../lib/fields/Textarea.component.test.tsx | 4 +- packages/web/test/integration/main.test.ts | 2 +- packages/web/typings/react.d.ts | 2 +- yarn.lock | 787 ++++++++++++------ 56 files changed, 1001 insertions(+), 747 deletions(-) delete mode 100644 .eslintignore delete mode 100644 .eslintrc.json create mode 100644 eslint.config.mjs rename packages/native/{metro.config.js => metro.config.cjs} (100%) diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 79ed56c..0000000 --- a/.eslintignore +++ /dev/null @@ -1,7 +0,0 @@ -# Dependencies -.yarn/ -node_modules/ - -# Auto-generated -build/ -dist/ diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 4095871..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,253 +0,0 @@ -{ - "root": true, - "env": { - "browser": true, - "es6": true, - "node": true - }, - "settings": { - "import/resolver": { - "typescript": { - "alwaysTryTypes": true, - "project": "./tsconfig.json" - } - }, - "react": { - "version": "detect" - } - }, - "parserOptions": { - "ecmaVersion": "latest", - "project": "./tsconfig.json", - "sourceType": "module" - }, - "plugins": [ - "@typescript-eslint", - "eslint-plugin-import", - "eslint-plugin-jsdoc", - "eslint-plugin-react", - "etc", - "react-hooks", - "sonarjs" - ], - "extends": [ - "eslint:recommended", - "plugin:@typescript-eslint/recommended", - "plugin:@typescript-eslint/recommended-requiring-type-checking", - "plugin:etc/recommended", - "plugin:import/typescript", - "plugin:react/recommended", - "plugin:react/jsx-runtime", - "plugin:sonarjs/recommended" - ], - "overrides": [{ - "files": "*.ts?(x)", - "parser": "@typescript-eslint/parser" - }, { - "files": "*.test.ts?(x)", - "rules": { - "@typescript-eslint/no-non-null-assertion": "off", - "@typescript-eslint/restrict-template-expressions": "off", - "etc/throw-error": "off" - } - }, { - "files": "*.typetest.ts?(x)", - "rules": { - "@typescript-eslint/ban-ts-comment": ["error", { "ts-expect-error": false }], - "etc/throw-error": "off" - } - }, { - "files": "*.js?(x)", - "rules": { - "@typescript-eslint/explicit-function-return-type": "off", - "@typescript-eslint/explicit-member-accessibility": "off", - "@typescript-eslint/explicit-module-boundary-types": "off", - "@typescript-eslint/no-unsafe-argument": "off", - "@typescript-eslint/no-unsafe-assignment": "off", - "@typescript-eslint/no-unsafe-member-access": "off", - "@typescript-eslint/no-unsafe-call": "off", - "@typescript-eslint/no-unsafe-return": "off", - "@typescript-eslint/no-var-requires": "off", - "@typescript-eslint/restrict-plus-operands": "off", - "@typescript-eslint/restrict-template-expressions": "off" - } - }], - "rules": { - "@typescript-eslint/ban-types": "error", - "@typescript-eslint/comma-dangle": ["error", "always-multiline"], - "@typescript-eslint/consistent-type-assertions": "error", - "@typescript-eslint/dot-notation": "error", - "@typescript-eslint/explicit-function-return-type": ["error", { "allowExpressions": true }], - "@typescript-eslint/explicit-member-accessibility": "error", - "@typescript-eslint/explicit-module-boundary-types": "error", - "@typescript-eslint/member-ordering": ["error", { - "classes": [ - "static-field", - "field", - "constructor", - "static-method", - "abstract-method", - "protected-method", - "public-method", - "private-method" - ], - "interfaces": { "order": "alphabetically" }, - "typeLiterals": { "order": "alphabetically" } - }], - "@typescript-eslint/member-delimiter-style": ["error", { - "multiline": { - "delimiter": "semi", - "requireLast": true - }, - "singleline": { - "delimiter": "semi", - "requireLast": true - } - }], - "@typescript-eslint/no-empty-function": "error", - "@typescript-eslint/no-empty-interface": "error", - "@typescript-eslint/no-explicit-any": ["error", { "ignoreRestArgs": true }], - "@typescript-eslint/no-floating-promises": "off", - "@typescript-eslint/no-inferrable-types": ["error", { - "ignoreParameters": true, - "ignoreProperties": true - }], - "@typescript-eslint/no-misused-new": "error", - "@typescript-eslint/no-namespace": "off", - "@typescript-eslint/no-non-null-assertion": "error", - "@typescript-eslint/no-redundant-type-constituents": "error", - "@typescript-eslint/no-shadow": ["error", { "hoist": "all" }], - "@typescript-eslint/no-unused-expressions": ["error", { "allowTernary": true }], - "@typescript-eslint/no-unused-vars": ["error", { - "destructuredArrayIgnorePattern": "^_", - "ignoreRestSiblings": true - }], - "@typescript-eslint/no-use-before-define": ["error", { - "functions": false, - "classes": false - }], - "@typescript-eslint/no-var-requires": "error", - "@typescript-eslint/parameter-properties": "error", - "@typescript-eslint/prefer-for-of": "error", - "@typescript-eslint/prefer-function-type": "error", - "@typescript-eslint/prefer-namespace-keyword": "error", - "@typescript-eslint/quotes": ["error", "double", { - "avoidEscape": true, - "allowTemplateLiterals": false - }], - "@typescript-eslint/restrict-template-expressions": ["error", { - "allowNumber": true, - "allowBoolean": true, - "allowNullish": true - }], - "@typescript-eslint/semi": "error", - "@typescript-eslint/space-infix-ops": "error", - "@typescript-eslint/triple-slash-reference": "error", - "@typescript-eslint/type-annotation-spacing": "error", - "@typescript-eslint/unbound-method": ["error", { "ignoreStatic": true }], - "@typescript-eslint/unified-signatures": "error", - "array-bracket-spacing": "error", - "arrow-parens": ["error", "as-needed"], - "arrow-spacing": "error", - "brace-style": "error", - "camelcase": "error", - "comma-spacing": "error", - "computed-property-spacing": "error", - "constructor-super": "error", - "curly": "error", - "etc/no-commented-out-code": "error", - "etc/no-deprecated": "error", - "etc/throw-error": "error", - "eol-last": "error", - "eqeqeq": "error", - "func-style": ["error", "declaration", { "allowArrowFunctions": true }], - "import/newline-after-import": "error", - "import/no-absolute-path": "error", - "import/no-cycle": ["error", { - "allowUnsafeDynamicCyclicDependency": true, - "ignoreExternal": true - }], - "import/no-duplicates": "error", - "import/no-import-module-exports": "error", - "import/no-namespace": "error", - "import/no-relative-packages": "error", - "import/no-unresolved": "error", - "import/no-useless-path-segments": "error", - "import/order": ["error", { - "alphabetize": { - "caseInsensitive": false, - "order": "asc" - }, - "newlines-between": "always", - "groups": ["external", "parent", "sibling"] - }], - "jsdoc/check-alignment": "error", - "jsdoc/check-indentation": ["error", { "excludeTags": ["example", "param", "returns"] }], - "jsdoc/tag-lines": ["error", "any", { "startLines": 1 }], - "jsx-quotes": "error", - "keyword-spacing": "error", - "linebreak-style": "error", - "max-classes-per-file": ["error", 1], - "max-len": ["error", { - "code": 120, - "comments": 80, - "ignoreRegExpLiterals": true, - "ignorePattern": "^import (\\{ )?\\w+( \\})? from \".+\";$", - "ignoreUrls": true, - "tabWidth": 2 - }], - "new-parens": "error", - "no-caller": "error", - "no-cond-assign": "error", - "no-console": "error", - "no-duplicate-imports": "error", - "no-empty-function": "error", - "no-eval": "error", - "no-extra-boolean-cast": ["error", { "enforceForLogicalOperands": true }], - "no-invalid-this": "error", - "no-labels": "error", - "no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 0, "maxBOF": 0 }], - "no-multi-spaces": "error", - "no-new-wrappers": "error", - "no-param-reassign": "error", - "no-tabs": "error", - "no-throw-literal": "error", - "no-trailing-spaces": "error", - "no-underscore-dangle": "error", - "no-use-before-define": "off", - "no-useless-computed-key": ["error", { "enforceForClassMembers": true }], - "no-var": "error", - "object-curly-spacing": ["error", "always"], - "object-shorthand": "error", - "one-var": ["error", "never"], - "prefer-const": "error", - "quote-props": ["error", "as-needed"], - "radix": "error", - "rest-spread-spacing": "error", - "react/display-name": "off", - "react/hook-use-state": "error", - "react/jsx-boolean-value": ["error", "always"], - "react/jsx-closing-bracket-location": "error", - "react/jsx-curly-spacing": ["error", { "when": "never" }], - "react/jsx-equals-spacing": ["error", "never"], - "react/jsx-max-props-per-line": ["error", { - "maximum": 1, - "when": "multiline" - }], - "react/jsx-no-bind": "error", - "react/jsx-no-literals": "error", - "react/jsx-tag-spacing": "error", - "react/prop-types": "off", - "react/self-closing-comp": "error", - "react-hooks/rules-of-hooks": "error", - "semi-spacing": "error", - "sonarjs/cognitive-complexity": "off", - "sonarjs/no-duplicate-string": "off", - "sonarjs/no-inverted-boolean-check": "error", - "sort-keys": "error", - "space-before-blocks": "error", - "space-in-parens": "error", - "spaced-comment": "error", - "switch-colon-spacing": "error" - } -} diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..8ae2031 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,291 @@ +// @ts-check +import { fixupPluginRules } from "@eslint/compat"; +import { FlatCompat } from "@eslint/eslintrc"; +import eslintJs from "@eslint/js"; +import stylistic from "@stylistic/eslint-plugin"; +import etc from "eslint-plugin-etc"; +import jsdoc from "eslint-plugin-jsdoc"; +import reactJsxRuntime from "eslint-plugin-react/configs/jsx-runtime.js"; +import reactRecommended from "eslint-plugin-react/configs/recommended.js"; +import sonarjs from "eslint-plugin-sonarjs"; +import globals from "globals"; +import eslintTs from "typescript-eslint"; + +import path from "path"; +import { fileURLToPath } from "url"; + +const project = "./tsconfig.json"; +const filename = fileURLToPath(import.meta.url); +const dirname = path.dirname(filename); +const compat = new FlatCompat({ + baseDirectory: dirname, + recommendedConfig: eslintJs.configs.recommended, +}); + +/** + * @param {string} name the pugin name + * @param {string} alias the plugin alias + * @returns {import("eslint").ESLint.Plugin} + */ +function legacyPlugin(name, alias = name) { + const plugin = compat.plugins(name)[0]?.plugins?.[alias]; + + if (!plugin) { + throw new Error(`Unable to resolve plugin ${name} and/or alias ${alias}`); + } + + return fixupPluginRules(plugin); +} + +export default eslintTs.config( + eslintJs.configs.recommended, + ...eslintTs.configs.recommendedTypeChecked, + ...compat.extends("plugin:import/typescript"), + reactRecommended, + reactJsxRuntime, + sonarjs.configs.recommended, + stylistic.configs.customize({ + braceStyle: "1tbs", + flat: true, + quotes: "double", + semi: true, + }), + { + ignores: [ + "**/.yarn/**", + "**/build/**", + "**/dist/**", + "**/node_modules/**", + ], + }, + { + languageOptions: { + globals: { ...globals.browser, ...globals.node }, + parserOptions: { + ecmaFeatures: { jsx: true }, + ecmaVersion: 2024, + jsxPragma: null, + project, + tsconfigRootDir: import.meta.dirname, + }, + sourceType: "module", + }, + linterOptions: { + reportUnusedDisableDirectives: "error", + }, + plugins: { + deprecation: legacyPlugin("eslint-plugin-deprecation", "deprecation"), + etc: fixupPluginRules(etc), + "extra-rules": legacyPlugin("eslint-plugin-extra-rules", "extra-rules"), + import: legacyPlugin("eslint-plugin-import", "import"), + jsdoc, + }, + settings: { + "import/resolver": { + typescript: { + alwaysTryTypes: true, + project, + }, + }, + react: { + version: "detect", + }, + }, + }, + { + rules: { + "@stylistic/arrow-parens": ["error", "as-needed"], + "@stylistic/indent": "off", + "@stylistic/indent-binary-ops": "off", + "@stylistic/jsx-curly-brace-presence": ["error", { children: "always" }], + "@stylistic/jsx-curly-newline": "off", + "@stylistic/jsx-pascal-case": ["error", { allowNamespace: true }], + "@stylistic/jsx-props-no-multi-spaces": "error", + "@stylistic/jsx-self-closing-comp": "error", + "@stylistic/jsx-wrap-multilines": ["error", { prop: "ignore" }], + "@stylistic/linebreak-style": "error", + "@stylistic/max-len": ["error", { + code: 120, + comments: 80, + ignorePattern: "^import (\\{ )?\\w+( \\})? from \".+\";$", + ignoreRegExpLiterals: true, + ignoreUrls: true, + tabWidth: 2, + }], + "@stylistic/member-delimiter-style": ["error", { singleline: { requireLast: true } }], + "@stylistic/no-extra-semi": "error", + "@stylistic/no-mixed-spaces-and-tabs": "error", + "@stylistic/no-multiple-empty-lines": ["error", { max: 1, maxBOF: 0, maxEOF: 0 }], + "@stylistic/object-curly-spacing": ["error", "always"], + "@stylistic/padded-blocks": ["error", "never", { allowSingleLineBlocks: false }], + "@stylistic/quote-props": ["error", "as-needed"], + "@stylistic/quotes": ["error", "double", { + allowTemplateLiterals: false, + avoidEscape: true, + }], + "@stylistic/space-before-function-paren": ["error", { anonymous: "never", named: "never" }], + "@stylistic/switch-colon-spacing": "error", + "@typescript-eslint/ban-types": "error", + "@typescript-eslint/consistent-type-assertions": "error", + "@typescript-eslint/consistent-type-exports": "error", + "@typescript-eslint/consistent-type-imports": ["error", { fixStyle: "inline-type-imports" }], + "@typescript-eslint/dot-notation": "error", + "@typescript-eslint/explicit-function-return-type": ["error", { allowExpressions: true }], + "@typescript-eslint/explicit-member-accessibility": "error", + "@typescript-eslint/explicit-module-boundary-types": "error", + "@typescript-eslint/member-ordering": ["error", { + classes: [ + "static-field", + "field", + "constructor", + "static-method", + "abstract-method", + "protected-method", + "public-method", + "private-method", + ], + interfaces: { order: "alphabetically" }, + typeLiterals: { order: "alphabetically" }, + }], + "@typescript-eslint/no-empty-function": "error", + "@typescript-eslint/no-empty-interface": "error", + "@typescript-eslint/no-explicit-any": ["error", { ignoreRestArgs: true }], + "@typescript-eslint/no-floating-promises": "off", + "@typescript-eslint/no-import-type-side-effects": "error", + "@typescript-eslint/no-inferrable-types": ["error", { + ignoreParameters: true, + ignoreProperties: true, + }], + "@typescript-eslint/no-misused-new": "error", + "@typescript-eslint/no-namespace": "off", + "@typescript-eslint/no-non-null-assertion": "error", + "@typescript-eslint/no-redundant-type-constituents": "error", + "@typescript-eslint/no-shadow": ["error", { hoist: "all" }], + "@typescript-eslint/no-unused-expressions": ["error", { allowTernary: true }], + "@typescript-eslint/no-unused-vars": ["error", { + destructuredArrayIgnorePattern: "^_", + ignoreRestSiblings: true, + }], + "@typescript-eslint/no-use-before-define": ["error", { + classes: false, + functions: false, + }], + "@typescript-eslint/no-var-requires": "error", + "@typescript-eslint/only-throw-error": "error", + "@typescript-eslint/parameter-properties": "error", + "@typescript-eslint/prefer-for-of": "error", + "@typescript-eslint/prefer-function-type": "error", + "@typescript-eslint/prefer-namespace-keyword": "error", + "@typescript-eslint/restrict-template-expressions": ["error", { + allowBoolean: true, + allowNullish: true, + allowNumber: true, + }], + "@typescript-eslint/triple-slash-reference": "error", + "@typescript-eslint/unbound-method": ["error", { ignoreStatic: true }], + "@typescript-eslint/unified-signatures": "error", + camelcase: "error", + "constructor-super": "error", + curly: "error", + "deprecation/deprecation": "error", + eqeqeq: "error", + "etc/no-assign-mutated-array": "error", + "etc/no-implicit-any-catch": "error", + "etc/no-internal": "error", + "etc/throw-error": "error", + "extra-rules/no-commented-out-code": "error", + "extra-rules/potential-point-free": "error", + "func-style": ["error", "declaration", { allowArrowFunctions: true }], + "import/newline-after-import": "error", + "import/no-absolute-path": "error", + "import/no-cycle": ["error", { + allowUnsafeDynamicCyclicDependency: true, + ignoreExternal: true, + maxDepth: 1, + }], + "import/no-duplicates": ["error", { "prefer-inline": true }], + "import/no-import-module-exports": "error", + "import/no-namespace": "error", + "import/no-relative-packages": "error", + "import/no-unresolved": "error", + "import/no-useless-path-segments": "error", + "import/order": ["error", { + alphabetize: { + caseInsensitive: false, + order: "asc", + orderImportKind: "asc", + }, + groups: ["external", "parent", "sibling", "type"], + "newlines-between": "always", + }], + "jsdoc/check-alignment": "error", + "jsdoc/check-indentation": ["error", { excludeTags: ["example", "param", "returns"] }], + "jsdoc/tag-lines": ["error", "any", { startLines: 1 }], + "max-classes-per-file": ["error", 1], + "no-caller": "error", + "no-cond-assign": "error", + "no-console": "error", + "no-duplicate-imports": "error", + "no-empty-function": "error", + "no-eval": "error", + "no-extra-boolean-cast": ["error", { enforceForLogicalOperands: true }], + "no-inner-declarations": ["error", "both"], + "no-invalid-this": "error", + "no-labels": "error", + "no-new-wrappers": "error", + "no-param-reassign": "error", + "no-throw-literal": "off", + "no-underscore-dangle": "error", + "no-use-before-define": "off", + "no-useless-computed-key": ["error", { enforceForClassMembers: true }], + "no-var": "error", + "object-shorthand": "error", + "one-var": ["error", "never"], + "prefer-const": "error", + radix: "error", + "react/display-name": "off", + "react/hook-use-state": "error", + "react/jsx-boolean-value": ["error", "always"], + "react/jsx-no-bind": "error", + "react/jsx-no-literals": "error", + "react/prop-types": "off", + "sonarjs/cognitive-complexity": "off", + "sonarjs/no-duplicate-string": "off", + "sonarjs/no-inverted-boolean-check": "error", + "sort-imports": ["error", { ignoreDeclarationSort: true }], + "sort-keys": "error", + }, + }, + { + files: ["**/*.?(c|m)js"], + languageOptions: { + parserOptions: { + programs: null, + project: false, + }, + }, + rules: { + ...eslintTs.configs.disableTypeChecked.rules, + "@typescript-eslint/explicit-function-return-type": "off", + "deprecation/deprecation": "off", + "etc/no-assign-mutated-array": "off", + "etc/no-implicit-any-catch": "off", + "etc/no-internal": "off", + "etc/throw-error": "off", + }, + }, + { + files: ["**/*.cjs"], + rules: { + "@typescript-eslint/no-var-requires": "off", + }, + }, + { + files: ["**/*.test.ts?(x)"], + rules: { + "@typescript-eslint/no-non-null-assertion": "off", + "@typescript-eslint/restrict-template-expressions": "off", + "etc/throw-error": "off", + }, + }, +); diff --git a/package.json b/package.json index a29bede..dfe9696 100644 --- a/package.json +++ b/package.json @@ -17,23 +17,29 @@ "check": "turbo check && yarn lint", "compile": "turbo compile", "docs": "turbo docs", - "lint": "eslint . --report-unused-disable-directives", + "lint": "eslint .", "test": "turbo test", "release": "turbo release --concurrency=1", "turbo": "turbo" }, "devDependencies": { + "@eslint/compat": "^1.1.0", + "@eslint/eslintrc": "^3.1.0", + "@eslint/js": "^9.5.0", + "@stylistic/eslint-plugin": "^2.2.2", + "@types/eslint__eslintrc": "^2.1.1", + "@types/eslint__js": "^8.42.3", "@types/node": "^20.12.10", - "@typescript-eslint/eslint-plugin": "^6.21.0", - "@typescript-eslint/parser": "^6.21.0", - "eslint": "^8.57.0", + "eslint": "^9.5.0", "eslint-import-resolver-typescript": "^3.6.1", + "eslint-plugin-deprecation": "^3.0.0", "eslint-plugin-etc": "^2.0.3", + "eslint-plugin-extra-rules": "^0.0.0-development", "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jsdoc": "^48.2.3", - "eslint-plugin-react": "^7.34.1", - "eslint-plugin-react-hooks": "^4.6.2", - "eslint-plugin-sonarjs": "^0.23.0", + "eslint-plugin-jsdoc": "^48.3.0", + "eslint-plugin-react": "^7.34.3", + "eslint-plugin-sonarjs": "^1.0.3", + "globals": "^15.6.0", "semantic-release": "^23.0.8", "ts-node": "^10.9.2", "tslib": "^2.6.2", @@ -41,6 +47,7 @@ "typedoc": "^0.25.13", "typedoc-plugin-markdown": "^4.0.1", "typedoc-plugin-merge-modules": "^5.1.0", - "typescript": "^5.4.5" + "typescript": "^5.4.5", + "typescript-eslint": "^7.13.1" } } diff --git a/packages/core/src/lib/Form.context.ts b/packages/core/src/lib/Form.context.ts index e71957a..9d4837d 100644 --- a/packages/core/src/lib/Form.context.ts +++ b/packages/core/src/lib/Form.context.ts @@ -1,11 +1,12 @@ -import { Dispatch, SetStateAction, useMemo } from "react"; -import { Context, createContext, useContext, useContextSelector } from "use-context-selector"; -import type { ObjectSchema } from "yup"; -import type { ZodSchema } from "zod"; +import { type Dispatch, type SetStateAction, useMemo } from "react"; +import { type Context, createContext, useContext, useContextSelector } from "use-context-selector"; -import { noValidate, type Adapter } from "./helpers/adapters"; +import { type Adapter, noValidate } from "./helpers/adapters"; import { noop } from "./helpers/commons"; +import type { ObjectSchema } from "yup"; +import type { ZodSchema } from "zod"; + /** * Helper type alias to make another type optional (undefinable). * diff --git a/packages/core/src/lib/Form.provider.tsx b/packages/core/src/lib/Form.provider.tsx index 2a7698e..34f54f2 100644 --- a/packages/core/src/lib/Form.provider.tsx +++ b/packages/core/src/lib/Form.provider.tsx @@ -1,8 +1,8 @@ import { get, set } from "dot-prop-immutable"; import { - ReactElement, - ReactNode, - SetStateAction, + type ReactElement, + type ReactNode, + type SetStateAction, memo, useCallback, useLayoutEffect, @@ -10,12 +10,21 @@ import { useState, } from "react"; import isEqual from "react-fast-compare"; + +import { + type DeepPartial, + type FormCtxt, + type Optional, + type Path, + type Struct, + type ValueByPath, + safeFormContext, +} from "./Form.context"; +import { type Adapter, getAdapter, handleResult } from "./helpers/adapters"; + import type { ObjectSchema } from "yup"; import type { ZodSchema } from "zod"; -import { DeepPartial, FormCtxt, Optional, Path, Struct, ValueByPath, safeFormContext } from "./Form.context"; -import { Adapter, getAdapter, handleResult } from "./helpers/adapters"; - /** * Generic callback function. Infers the arguments types and the return type is * resolved from the path type. diff --git a/packages/core/src/lib/components/ArrayField.component.tsx b/packages/core/src/lib/components/ArrayField.component.tsx index bc78669..f4aa11b 100644 --- a/packages/core/src/lib/components/ArrayField.component.tsx +++ b/packages/core/src/lib/components/ArrayField.component.tsx @@ -1,8 +1,9 @@ -import { DependencyList, ReactElement, ReactNode, memo, useMemo } from "react"; +import { type DependencyList, type ReactElement, type ReactNode, memo, useMemo } from "react"; import isEqual from "react-fast-compare"; -import { Path, Struct, ValueByPath } from "../Form.context"; -import { UseArrayField, useArrayField } from "../hooks/useArrayField"; +import { type UseArrayField, useArrayField } from "../hooks/useArrayField"; + +import type { Path, Struct, ValueByPath } from "../Form.context"; /** * Helper type to look up the inner type of an array field. diff --git a/packages/core/src/lib/components/Field.component.tsx b/packages/core/src/lib/components/Field.component.tsx index 7f8b24c..a080d7d 100644 --- a/packages/core/src/lib/components/Field.component.tsx +++ b/packages/core/src/lib/components/Field.component.tsx @@ -1,9 +1,10 @@ -import { DependencyList, ReactElement, ReactNode, memo, useCallback, useMemo } from "react"; +import { type DependencyList, type ReactElement, type ReactNode, memo, useCallback, useMemo } from "react"; import isEqual from "react-fast-compare"; -import { Optional, Path, Struct, ValueByPath } from "../Form.context"; -import { UseField, useField } from "../hooks/useField"; -import { UseFieldValidation, useFieldValidation } from "../hooks/useFieldValidation"; +import { type UseField, useField } from "../hooks/useField"; +import { type UseFieldValidation, useFieldValidation } from "../hooks/useFieldValidation"; + +import type { Optional, Path, Struct, ValueByPath } from "../Form.context"; /** * Helper type to describe a {@link Field} component of an specific struct `T`. diff --git a/packages/core/src/lib/helpers/adapters.ts b/packages/core/src/lib/helpers/adapters.ts index 7502746..f670fbf 100644 --- a/packages/core/src/lib/helpers/adapters.ts +++ b/packages/core/src/lib/helpers/adapters.ts @@ -1,8 +1,8 @@ import { get } from "dot-prop-immutable"; -import type { ObjectSchema, ValidationError } from "yup"; -import type { ZodObject, ZodSchema } from "zod"; import type { Optional, Path, Struct, ValueByPath } from "../Form.context"; +import type { ObjectSchema, ValidationError } from "yup"; +import type { ZodObject, ZodSchema } from "zod"; /** * A result type used to represent either a success or an error value. diff --git a/packages/core/src/lib/hooks/useArrayField.ts b/packages/core/src/lib/hooks/useArrayField.ts index b607024..1380f65 100644 --- a/packages/core/src/lib/hooks/useArrayField.ts +++ b/packages/core/src/lib/hooks/useArrayField.ts @@ -1,10 +1,10 @@ import { v4 } from "@lukeed/uuid"; import { useCallback, useMemo, useRef } from "react"; -import { Path, Struct } from "../Form.context"; - import { useField } from "./useField"; +import type { Path, Struct } from "../Form.context"; + /** * The result of the {@link useArrayField} hook. * diff --git a/packages/core/src/lib/hooks/useField.ts b/packages/core/src/lib/hooks/useField.ts index 1b889ec..cbac0a4 100644 --- a/packages/core/src/lib/hooks/useField.ts +++ b/packages/core/src/lib/hooks/useField.ts @@ -1,8 +1,8 @@ import { get, set } from "dot-prop-immutable"; -import { Dispatch, SetStateAction, useCallback, useEffect, useMemo } from "react"; +import { type Dispatch, type SetStateAction, useCallback, useEffect, useMemo } from "react"; import { useContextSelector } from "use-context-selector"; -import { Optional, Path, Struct, ValueByPath, safeFormContext } from "../Form.context"; +import { type Optional, type Path, type Struct, type ValueByPath, safeFormContext } from "../Form.context"; import { getAdapter, handleResult } from "../helpers/adapters"; /** diff --git a/packages/core/src/lib/hooks/useFieldValidation.ts b/packages/core/src/lib/hooks/useFieldValidation.ts index 683391c..fd0c27e 100644 --- a/packages/core/src/lib/hooks/useFieldValidation.ts +++ b/packages/core/src/lib/hooks/useFieldValidation.ts @@ -1,7 +1,7 @@ import { useEffect, useMemo, useState } from "react"; import { useContextSelector } from "use-context-selector"; -import { Optional, Path, Struct, safeFormContext } from "../Form.context"; +import { type Optional, type Path, type Struct, safeFormContext } from "../Form.context"; import { getAdapter } from "../helpers/adapters"; /** diff --git a/packages/core/src/main.ts b/packages/core/src/main.ts index 3c97217..29add02 100644 --- a/packages/core/src/main.ts +++ b/packages/core/src/main.ts @@ -1,55 +1,17 @@ -export { - type DeepPartial, - type FormCtxt, - type Optional, - type Path, - type Struct, - type ValueByPath, - useForm, - useFormSelector, -} from "./lib/Form.context"; +export { useForm, useFormSelector } from "./lib/Form.context"; +export { FormProvider } from "./lib/Form.provider"; +export { ArrayField, arrayFieldOf } from "./lib/components/ArrayField.component"; +export { Field, fieldOf } from "./lib/components/Field.component"; +export { noValidate } from "./lib/helpers/adapters"; +export { useArrayField } from "./lib/hooks/useArrayField"; +export { useField } from "./lib/hooks/useField"; +export { useFieldValidation } from "./lib/hooks/useFieldValidation"; -export { - type ChangeCallback, - type FormProviderProps, - type RenderProps, - type SetValue, - FormProvider, -} from "./lib/Form.provider"; - -export { - type ArrayFieldOf, - type ArrayFieldProps, - type ArrayValue, - ArrayField, - arrayFieldOf, -} from "./lib/components/ArrayField.component"; - -export { - type FieldOf, - type FieldProps, - type FieldRenderProps, - Field, - fieldOf, -} from "./lib/components/Field.component"; - -export { - type Adapter, - type Result, - noValidate, -} from "./lib/helpers/adapters"; - -export { - type UseArrayField, - useArrayField, -} from "./lib/hooks/useArrayField"; - -export { - type UseField, - useField, -} from "./lib/hooks/useField"; - -export { - type UseFieldValidation, - useFieldValidation, -} from "./lib/hooks/useFieldValidation"; +export type { DeepPartial, FormCtxt, Optional, Path, Struct, ValueByPath } from "./lib/Form.context"; +export type { ChangeCallback, FormProviderProps, RenderProps, SetValue } from "./lib/Form.provider"; +export type { ArrayFieldOf, ArrayFieldProps, ArrayValue } from "./lib/components/ArrayField.component"; +export type { FieldOf, FieldProps, FieldRenderProps } from "./lib/components/Field.component"; +export type { Adapter, Result } from "./lib/helpers/adapters"; +export type { UseArrayField } from "./lib/hooks/useArrayField"; +export type { UseField } from "./lib/hooks/useField"; +export type { UseFieldValidation } from "./lib/hooks/useFieldValidation"; diff --git a/packages/core/test/hooks.ts b/packages/core/test/hooks.ts index 703f024..d61d09a 100644 --- a/packages/core/test/hooks.ts +++ b/packages/core/test/hooks.ts @@ -2,7 +2,7 @@ import Sinon from "sinon"; export const mochaHooks: () => Mocha.RootHookObject = () => { return { - afterEach() { + afterEach: () => { Sinon.restore(); }, }; diff --git a/packages/core/test/integration/lib/Form.provider.test.tsx b/packages/core/test/integration/lib/Form.provider.test.tsx index 1665824..8db674d 100644 --- a/packages/core/test/integration/lib/Form.provider.test.tsx +++ b/packages/core/test/integration/lib/Form.provider.test.tsx @@ -1,13 +1,13 @@ import { expect } from "@assertive-ts/core"; import { render, waitFor } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { ReactElement, useCallback, useState } from "react"; +import { type ReactElement, useCallback, useState } from "react"; import Sinon from "sinon"; -import { ObjectSchema, boolean, isSchema, number, object, string } from "yup"; +import { type ObjectSchema, boolean, isSchema, number, object, string } from "yup"; import { z } from "zod"; import { useFormSelector } from "../../../src/lib/Form.context"; -import { FormProvider, FormProviderProps } from "../../../src/lib/Form.provider"; +import { FormProvider, type FormProviderProps } from "../../../src/lib/Form.provider"; interface Foo { x: number; diff --git a/packages/core/test/integration/lib/components/ArrayField.component.test.tsx b/packages/core/test/integration/lib/components/ArrayField.component.test.tsx index 7cb17b7..2007f73 100644 --- a/packages/core/test/integration/lib/components/ArrayField.component.test.tsx +++ b/packages/core/test/integration/lib/components/ArrayField.component.test.tsx @@ -1,6 +1,6 @@ import { render, waitFor } from "@testing-library/react"; import Sinon from "sinon"; -import { ObjectSchema, array, number, object, string } from "yup"; +import { type ObjectSchema, array, number, object, string } from "yup"; import { FormProvider } from "../../../../src/lib/Form.provider"; import { arrayFieldOf } from "../../../../src/lib/components/ArrayField.component"; diff --git a/packages/core/test/integration/lib/components/Field.component.test.tsx b/packages/core/test/integration/lib/components/Field.component.test.tsx index c82078b..601b3cb 100644 --- a/packages/core/test/integration/lib/components/Field.component.test.tsx +++ b/packages/core/test/integration/lib/components/Field.component.test.tsx @@ -1,6 +1,6 @@ import { render, waitFor } from "@testing-library/react"; import Sinon from "sinon"; -import { ObjectSchema, boolean, object, string } from "yup"; +import { type ObjectSchema, boolean, object, string } from "yup"; import { FormProvider } from "../../../../src/lib/Form.provider"; import { fieldOf } from "../../../../src/lib/components/Field.component"; diff --git a/packages/core/test/integration/lib/hooks/useArrayField.test.tsx b/packages/core/test/integration/lib/hooks/useArrayField.test.tsx index 1dd14cd..da1271f 100644 --- a/packages/core/test/integration/lib/hooks/useArrayField.test.tsx +++ b/packages/core/test/integration/lib/hooks/useArrayField.test.tsx @@ -1,10 +1,10 @@ import { expect } from "@assertive-ts/core"; -import { RenderHookResult, renderHook } from "@testing-library/react"; +import { type RenderHookResult, renderHook } from "@testing-library/react"; import Sinon from "sinon"; -import { ObjectSchema, array, object, string } from "yup"; +import { type ObjectSchema, array, object, string } from "yup"; import { FormProvider } from "../../../../src/lib/Form.provider"; -import { UseArrayField, useArrayField } from "../../../../src/lib/hooks/useArrayField"; +import { type UseArrayField, useArrayField } from "../../../../src/lib/hooks/useArrayField"; interface User { name: string; diff --git a/packages/core/test/integration/lib/hooks/useField.test.tsx b/packages/core/test/integration/lib/hooks/useField.test.tsx index 969f5ec..873e6cb 100644 --- a/packages/core/test/integration/lib/hooks/useField.test.tsx +++ b/packages/core/test/integration/lib/hooks/useField.test.tsx @@ -1,14 +1,14 @@ import { expect } from "@assertive-ts/core"; -import { RenderHookResult, fireEvent, render, renderHook, waitFor } from "@testing-library/react"; +import { type RenderHookResult, fireEvent, render, renderHook, waitFor } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { ChangeEvent, ReactElement, useCallback } from "react"; +import { type ChangeEvent, type ReactElement, useCallback } from "react"; import Sinon from "sinon"; -import { ObjectSchema, isSchema, number, object, string } from "yup"; +import { type ObjectSchema, isSchema, number, object, string } from "yup"; import { z } from "zod"; -import { Optional, Path, ValueByPath, useFormSelector } from "../../../../src/lib/Form.context"; -import { FormProvider, FormProviderProps } from "../../../../src/lib/Form.provider"; -import { UseField, useField } from "../../../../src/lib/hooks/useField"; +import { type Optional, type Path, type ValueByPath, useFormSelector } from "../../../../src/lib/Form.context"; +import { FormProvider, type FormProviderProps } from "../../../../src/lib/Form.provider"; +import { type UseField, useField } from "../../../../src/lib/hooks/useField"; interface User { age: number; diff --git a/packages/core/test/integration/lib/hooks/useFieldValidation.test.tsx b/packages/core/test/integration/lib/hooks/useFieldValidation.test.tsx index 9093566..6c1f4a3 100644 --- a/packages/core/test/integration/lib/hooks/useFieldValidation.test.tsx +++ b/packages/core/test/integration/lib/hooks/useFieldValidation.test.tsx @@ -1,12 +1,13 @@ import { expect } from "@assertive-ts/core"; -import { RenderHookResult, renderHook, waitFor } from "@testing-library/react"; +import { type RenderHookResult, renderHook, waitFor } from "@testing-library/react"; import Sinon from "sinon"; -import { ObjectSchema, isSchema, number, object, string } from "yup"; +import { type ObjectSchema, isSchema, number, object, string } from "yup"; import { z } from "zod"; -import { Path } from "../../../../src/lib/Form.context"; -import { FormProvider, FormProviderProps } from "../../../../src/lib/Form.provider"; -import { UseFieldValidation, useFieldValidation } from "../../../../src/lib/hooks/useFieldValidation"; +import { FormProvider, type FormProviderProps } from "../../../../src/lib/Form.provider"; +import { type UseFieldValidation, useFieldValidation } from "../../../../src/lib/hooks/useFieldValidation"; + +import type { Path } from "../../../../src/lib/Form.context"; interface User { age?: number; diff --git a/packages/core/test/types/lib/Form.context.typetest.ts b/packages/core/test/types/lib/Form.context.typetest.ts index 8eb77a8..f6d0e14 100644 --- a/packages/core/test/types/lib/Form.context.typetest.ts +++ b/packages/core/test/types/lib/Form.context.typetest.ts @@ -1,6 +1,6 @@ import { expectTypeOf } from "expect-type"; -import { Path, ValueByPath } from "../../../src/lib/Form.context"; +import type { Path, ValueByPath } from "../../../src/lib/Form.context"; interface Foo { x: number; diff --git a/packages/core/test/types/lib/components/ArrayField.component.typetest.ts b/packages/core/test/types/lib/components/ArrayField.component.typetest.ts index dd8f0e4..6f11190 100644 --- a/packages/core/test/types/lib/components/ArrayField.component.typetest.ts +++ b/packages/core/test/types/lib/components/ArrayField.component.typetest.ts @@ -1,7 +1,7 @@ import { expectTypeOf } from "expect-type"; -import { ReactNode } from "react"; -import { ArrayFieldOf, ArrayFieldProps, ArrayValue } from "../../../../src/lib/components/ArrayField.component"; +import type { ArrayFieldOf, ArrayFieldProps, ArrayValue } from "../../../../src/lib/components/ArrayField.component"; +import type { ReactNode } from "react"; interface Foo { x: number; diff --git a/packages/core/test/types/lib/components/Field.component.typetest.ts b/packages/core/test/types/lib/components/Field.component.typetest.ts index f1ea854..5ecccf0 100644 --- a/packages/core/test/types/lib/components/Field.component.typetest.ts +++ b/packages/core/test/types/lib/components/Field.component.typetest.ts @@ -1,8 +1,8 @@ import { expectTypeOf } from "expect-type"; -import { ReactNode } from "react"; -import { Optional, Path, ValueByPath } from "../../../../src/lib/Form.context"; -import { FieldOf, FieldProps } from "../../../../src/lib/components/Field.component"; +import type { Optional, Path, ValueByPath } from "../../../../src/lib/Form.context"; +import type { FieldOf, FieldProps } from "../../../../src/lib/components/Field.component"; +import type { ReactNode } from "react"; interface Foo { x: number; diff --git a/packages/core/typings/react.d.ts b/packages/core/typings/react.d.ts index 316e35d..2563572 100644 --- a/packages/core/typings/react.d.ts +++ b/packages/core/typings/react.d.ts @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/ban-types */ -import { ComponentType, ComponentProps, ForwardedRef, ReactNode, RefAttributes } from "react"; +import type { ComponentProps, ComponentType, ForwardedRef, ReactNode, RefAttributes } from "react"; declare module "react" { diff --git a/packages/native/jest.config.ts b/packages/native/jest.config.ts index 6a0976f..260433a 100644 --- a/packages/native/jest.config.ts +++ b/packages/native/jest.config.ts @@ -1,4 +1,4 @@ -import { Config } from "jest"; +import type { Config } from "jest"; const jestConfig: Config = { preset: "react-native", diff --git a/packages/native/metro.config.js b/packages/native/metro.config.cjs similarity index 100% rename from packages/native/metro.config.js rename to packages/native/metro.config.cjs diff --git a/packages/native/src/lib/SubmitButton.component.tsx b/packages/native/src/lib/SubmitButton.component.tsx index a6a490b..add8f2b 100644 --- a/packages/native/src/lib/SubmitButton.component.tsx +++ b/packages/native/src/lib/SubmitButton.component.tsx @@ -1,7 +1,7 @@ import { useFormSelector } from "@lynxts/core"; -import { ReactElement, memo, useCallback } from "react"; +import { type ReactElement, memo, useCallback } from "react"; import isEqual from "react-fast-compare"; -import { GestureResponderEvent, Button, ButtonProps } from "react-native"; +import { Button, type ButtonProps, type GestureResponderEvent } from "react-native"; /** * Helper component based on {@link Button} which calls `submit()` from the diff --git a/packages/native/src/lib/SubmitHighlight.component.tsx b/packages/native/src/lib/SubmitHighlight.component.tsx index 7ecab01..f57ed9c 100644 --- a/packages/native/src/lib/SubmitHighlight.component.tsx +++ b/packages/native/src/lib/SubmitHighlight.component.tsx @@ -1,7 +1,7 @@ import { useFormSelector } from "@lynxts/core"; -import { ReactElement, memo, useCallback } from "react"; +import { type ReactElement, memo, useCallback } from "react"; import isEqual from "react-fast-compare"; -import { GestureResponderEvent, TouchableHighlight, TouchableHighlightProps } from "react-native"; +import { type GestureResponderEvent, TouchableHighlight, type TouchableHighlightProps } from "react-native"; /** * Helper component based on {@link TouchableHighlight} which calls `submit()` diff --git a/packages/native/src/lib/SubmitNativeFeedback.component.tsx b/packages/native/src/lib/SubmitNativeFeedback.component.tsx index eebc362..adb2e1e 100644 --- a/packages/native/src/lib/SubmitNativeFeedback.component.tsx +++ b/packages/native/src/lib/SubmitNativeFeedback.component.tsx @@ -1,7 +1,7 @@ import { useFormSelector } from "@lynxts/core"; -import { ReactElement, memo, useCallback } from "react"; +import { type ReactElement, memo, useCallback } from "react"; import isEqual from "react-fast-compare"; -import { GestureResponderEvent, TouchableNativeFeedback, TouchableNativeFeedbackProps } from "react-native"; +import { type GestureResponderEvent, TouchableNativeFeedback, type TouchableNativeFeedbackProps } from "react-native"; /** * Helper component based on {@link TouchableNativeFeedback} which calls diff --git a/packages/native/src/lib/SubmitOpacity.component.tsx b/packages/native/src/lib/SubmitOpacity.component.tsx index 9c25ae8..a4cecb6 100644 --- a/packages/native/src/lib/SubmitOpacity.component.tsx +++ b/packages/native/src/lib/SubmitOpacity.component.tsx @@ -1,7 +1,7 @@ import { useFormSelector } from "@lynxts/core"; -import { ReactElement, memo, useCallback } from "react"; +import { type ReactElement, memo, useCallback } from "react"; import isEqual from "react-fast-compare"; -import { GestureResponderEvent, TouchableOpacity, TouchableOpacityProps } from "react-native"; +import { type GestureResponderEvent, TouchableOpacity, type TouchableOpacityProps } from "react-native"; /** * Helper component based on {@link TouchableOpacity} which calls `submit()` diff --git a/packages/native/src/lib/SubmitWithoutFeedback.component.tsx b/packages/native/src/lib/SubmitWithoutFeedback.component.tsx index 1a1a580..e29bc11 100644 --- a/packages/native/src/lib/SubmitWithoutFeedback.component.tsx +++ b/packages/native/src/lib/SubmitWithoutFeedback.component.tsx @@ -1,7 +1,7 @@ import { useFormSelector } from "@lynxts/core"; -import { ReactElement, memo, useCallback } from "react"; +import { type ReactElement, memo, useCallback } from "react"; import isEqual from "react-fast-compare"; -import { GestureResponderEvent, TouchableWithoutFeedback, TouchableWithoutFeedbackProps } from "react-native"; +import { type GestureResponderEvent, TouchableWithoutFeedback, type TouchableWithoutFeedbackProps } from "react-native"; /** * Helper component based on {@link TouchableWithoutFeedback} which calls diff --git a/packages/native/src/lib/fields/TextField.component.tsx b/packages/native/src/lib/fields/TextField.component.tsx index 21677a5..48983ed 100644 --- a/packages/native/src/lib/fields/TextField.component.tsx +++ b/packages/native/src/lib/fields/TextField.component.tsx @@ -1,17 +1,17 @@ -import { Path, Struct, useField, useFieldValidation, useFormSelector } from "@lynxts/core"; -import { ReactElement, memo, useCallback } from "react"; +import { type Path, type Struct, useField, useFieldValidation, useFormSelector } from "@lynxts/core"; +import { type ReactElement, memo, useCallback } from "react"; import isEqual from "react-fast-compare"; import { - NativeSyntheticEvent, - StyleProp, + type NativeSyntheticEvent, + type StyleProp, Text, TextInput, - TextInputFocusEventData, - TextInputProps, - TextInputSubmitEditingEventData, - TextStyle, + type TextInputFocusEventData, + type TextInputProps, + type TextInputSubmitEditingEventData, + type TextStyle, View, - ViewStyle, + type ViewStyle, } from "react-native"; import { SS } from "./TextField.styles"; diff --git a/packages/native/src/main.ts b/packages/native/src/main.ts index 3881b3e..27e5827 100644 --- a/packages/native/src/main.ts +++ b/packages/native/src/main.ts @@ -1,16 +1,8 @@ export { SubmitButton } from "./lib/SubmitButton.component"; - export { SubmitHighlight } from "./lib/SubmitHighlight.component"; - export { SubmitNativeFeedback } from "./lib/SubmitNativeFeedback.component"; - export { SubmitOpacity } from "./lib/SubmitOpacity.component"; - export { SubmitWithoutFeedback } from "./lib/SubmitWithoutFeedback.component"; +export { TextField, textFieldOf } from "./lib/fields/TextField.component"; -export { - type TextFiedProps, - type TextFieldOf, - TextField, - textFieldOf, -} from "./lib/fields/TextField.component"; +export type { TextFiedProps, TextFieldOf } from "./lib/fields/TextField.component"; diff --git a/packages/native/test/helpers/testSchema.ts b/packages/native/test/helpers/testSchema.ts index f27b2b1..ceafc89 100644 --- a/packages/native/test/helpers/testSchema.ts +++ b/packages/native/test/helpers/testSchema.ts @@ -1,4 +1,4 @@ -import { ObjectSchema, number, object, string } from "yup"; +import { type ObjectSchema, number, object, string } from "yup"; export interface Foo { name: string; diff --git a/packages/native/test/integration/lib/SubmitButton.component.test.tsx b/packages/native/test/integration/lib/SubmitButton.component.test.tsx index 037844b..da2a5c0 100644 --- a/packages/native/test/integration/lib/SubmitButton.component.test.tsx +++ b/packages/native/test/integration/lib/SubmitButton.component.test.tsx @@ -3,7 +3,7 @@ import { fireEvent, render, waitFor } from "@testing-library/react-native"; import Sinon from "sinon"; import { SubmitButton } from "../../../src/lib/SubmitButton.component"; -import { Foo, foo, schema } from "../../helpers/testSchema"; +import { type Foo, foo, schema } from "../../helpers/testSchema"; describe("[Integration] SubmitButton.component.test.tsx", () => { context("when the button is pressed", () => { diff --git a/packages/native/test/integration/lib/SubmitHighlight.component.test.tsx b/packages/native/test/integration/lib/SubmitHighlight.component.test.tsx index d813b5b..6a62406 100644 --- a/packages/native/test/integration/lib/SubmitHighlight.component.test.tsx +++ b/packages/native/test/integration/lib/SubmitHighlight.component.test.tsx @@ -4,7 +4,7 @@ import { Text } from "react-native"; import Sinon from "sinon"; import { SubmitHighlight } from "../../../src/lib/SubmitHighlight.component"; -import { Foo, foo, schema } from "../../helpers/testSchema"; +import { type Foo, foo, schema } from "../../helpers/testSchema"; describe("[Integration] SubmitHighlight.component.test.tsx", () => { context("when the button is pressed", () => { diff --git a/packages/native/test/integration/lib/SubmitNativeFeedback.component.test.tsx b/packages/native/test/integration/lib/SubmitNativeFeedback.component.test.tsx index 45d40e8..7df1896 100644 --- a/packages/native/test/integration/lib/SubmitNativeFeedback.component.test.tsx +++ b/packages/native/test/integration/lib/SubmitNativeFeedback.component.test.tsx @@ -4,7 +4,7 @@ import { Text } from "react-native"; import Sinon from "sinon"; import { SubmitNativeFeedback } from "../../../src/lib/SubmitNativeFeedback.component"; -import { Foo, foo, schema } from "../../helpers/testSchema"; +import { type Foo, foo, schema } from "../../helpers/testSchema"; describe("[Integration] SubmitNativeFeedback.component.test.tsx", () => { context("when the button is pressed", () => { diff --git a/packages/native/test/integration/lib/SubmitOpacity.component.test.tsx b/packages/native/test/integration/lib/SubmitOpacity.component.test.tsx index effe28a..43307b8 100644 --- a/packages/native/test/integration/lib/SubmitOpacity.component.test.tsx +++ b/packages/native/test/integration/lib/SubmitOpacity.component.test.tsx @@ -4,7 +4,7 @@ import { Text } from "react-native"; import Sinon from "sinon"; import { SubmitOpacity } from "../../../src/lib/SubmitOpacity.component"; -import { Foo, foo, schema } from "../../helpers/testSchema"; +import { type Foo, foo, schema } from "../../helpers/testSchema"; describe("[Integration] SubmitOpacity.component.test.tsx", () => { context("when the button is pressed", () => { diff --git a/packages/native/test/integration/lib/SubmitWithoutFeedback.component.test.tsx b/packages/native/test/integration/lib/SubmitWithoutFeedback.component.test.tsx index e1b199f..eee7707 100644 --- a/packages/native/test/integration/lib/SubmitWithoutFeedback.component.test.tsx +++ b/packages/native/test/integration/lib/SubmitWithoutFeedback.component.test.tsx @@ -4,7 +4,7 @@ import { Text } from "react-native"; import Sinon from "sinon"; import { SubmitWithoutFeedback } from "../../../src/lib/SubmitWithoutFeedback.component"; -import { Foo, foo, schema } from "../../helpers/testSchema"; +import { type Foo, foo, schema } from "../../helpers/testSchema"; describe("[Integration] SubmitWithoutFeedback.component.test.tsx", () => { context("when the button is pressed", () => { diff --git a/packages/native/test/integration/lib/fields/TextField.component.test.tsx b/packages/native/test/integration/lib/fields/TextField.component.test.tsx index ff3cc80..e4d8301 100644 --- a/packages/native/test/integration/lib/fields/TextField.component.test.tsx +++ b/packages/native/test/integration/lib/fields/TextField.component.test.tsx @@ -1,10 +1,10 @@ import { expect } from "@assertive-ts/core"; import { FormProvider } from "@lynxts/core"; import { fireEvent, render, waitFor } from "@testing-library/react-native"; -import { ReactElement, useCallback, useState } from "react"; +import { type ReactElement, useCallback, useState } from "react"; import { Button } from "react-native"; import Sinon from "sinon"; -import { ObjectSchema, object, string } from "yup"; +import { type ObjectSchema, object, string } from "yup"; import { SubmitButton } from "../../../../src/lib/SubmitButton.component"; import { textFieldOf } from "../../../../src/lib/fields/TextField.component"; diff --git a/packages/native/typings/jest.d.ts b/packages/native/typings/jest.d.ts index d2bfca1..4e2899b 100644 --- a/packages/native/typings/jest.d.ts +++ b/packages/native/typings/jest.d.ts @@ -1,8 +1,8 @@ /* eslint-disable no-var */ -import { Global } from "@jest/types"; +import type { Global } from "@jest/types"; declare global { - var context: Global.Describe; - var describe: Global.Describe; - var it: Global.ItConcurrent; + export var context: Global.Describe; + export var describe: Global.Describe; + export var it: Global.ItConcurrent; } diff --git a/packages/native/typings/react.d.ts b/packages/native/typings/react.d.ts index 316e35d..2563572 100644 --- a/packages/native/typings/react.d.ts +++ b/packages/native/typings/react.d.ts @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/ban-types */ -import { ComponentType, ComponentProps, ForwardedRef, ReactNode, RefAttributes } from "react"; +import type { ComponentProps, ComponentType, ForwardedRef, ReactNode, RefAttributes } from "react"; declare module "react" { diff --git a/packages/web/src/lib/Form.component.tsx b/packages/web/src/lib/Form.component.tsx index ef3bea3..6e88575 100644 --- a/packages/web/src/lib/Form.component.tsx +++ b/packages/web/src/lib/Form.component.tsx @@ -1,8 +1,8 @@ -import { FormProvider, FormProviderProps, Struct } from "@lynxts/core"; -import { ReactElement, memo } from "react"; +import { FormProvider, type FormProviderProps, type Struct } from "@lynxts/core"; +import { type ReactElement, memo } from "react"; import isEqual from "react-fast-compare"; -import { HTMLFormProps, FormDelegate } from "./Form.delegate"; +import { FormDelegate, type HTMLFormProps } from "./Form.delegate"; /** * From component props @@ -29,16 +29,16 @@ export const Form = memo((props: FormProps): ReactElement = const { children, onSubmit, validation, values, ...rest } = props; return ( - - onSubmit={onSubmit} - validation={validation} - values={values} - > - {renderProps => ( - - {children} - + + onSubmit={onSubmit} + validation={validation} + values={values} + > + {renderProps => ( + + {children} + )} - + ); }, isEqual); diff --git a/packages/web/src/lib/Form.delegate.tsx b/packages/web/src/lib/Form.delegate.tsx index 76663f1..810e33a 100644 --- a/packages/web/src/lib/Form.delegate.tsx +++ b/packages/web/src/lib/Form.delegate.tsx @@ -1,7 +1,8 @@ -import { FormProviderProps, RenderProps, Struct } from "@lynxts/core"; -import { ComponentProps, FormEvent, ReactNode, memo, useCallback, useMemo } from "react"; +import { type ComponentProps, type FormEvent, type ReactNode, memo, useCallback, useMemo } from "react"; import isEqual from "react-fast-compare"; +import type { FormProviderProps, RenderProps, Struct } from "@lynxts/core"; + export type HTMLFormProps = Omit, "children" | "onSubmit">; interface FormDelegateProps extends RenderProps, HTMLFormProps { @@ -31,7 +32,7 @@ export const FormDelegate = memo((props: FormDelegateProps) return (
- <>{renderAsFunction ?? renderAsElement} + {renderAsFunction ?? renderAsElement}
); }, isEqual); diff --git a/packages/web/src/lib/fields/Input.component.tsx b/packages/web/src/lib/fields/Input.component.tsx index 6055662..ae9719e 100644 --- a/packages/web/src/lib/fields/Input.component.tsx +++ b/packages/web/src/lib/fields/Input.component.tsx @@ -1,10 +1,10 @@ -import { Path, Struct, useField, useFieldValidation } from "@lynxts/core"; +import { type Path, type Struct, useField, useFieldValidation } from "@lynxts/core"; import { - ChangeEvent, - FocusEvent, - InputHTMLAttributes, - ReactElement, - ReactNode, + type ChangeEvent, + type FocusEvent, + type InputHTMLAttributes, + type ReactElement, + type ReactNode, memo, useCallback, useMemo, diff --git a/packages/web/src/lib/fields/Select.component.tsx b/packages/web/src/lib/fields/Select.component.tsx index d209758..5f855a0 100644 --- a/packages/web/src/lib/fields/Select.component.tsx +++ b/packages/web/src/lib/fields/Select.component.tsx @@ -1,5 +1,14 @@ -import { Path, Struct, ValueByPath, useField, useFieldValidation } from "@lynxts/core"; -import { FocusEvent, HTMLAttributes, ReactElement, ReactNode, SyntheticEvent, memo, useCallback, useMemo } from "react"; +import { type Path, type Struct, type ValueByPath, useField, useFieldValidation } from "@lynxts/core"; +import { + type FocusEvent, + type HTMLAttributes, + type ReactElement, + type ReactNode, + type SyntheticEvent, + memo, + useCallback, + useMemo, +} from "react"; import isEqual from "react-fast-compare"; /** diff --git a/packages/web/src/lib/fields/Textarea.component.tsx b/packages/web/src/lib/fields/Textarea.component.tsx index 40c7a0b..1ffa437 100644 --- a/packages/web/src/lib/fields/Textarea.component.tsx +++ b/packages/web/src/lib/fields/Textarea.component.tsx @@ -1,10 +1,10 @@ -import { Path, Struct, useField, useFieldValidation } from "@lynxts/core"; +import { type Path, type Struct, useField, useFieldValidation } from "@lynxts/core"; import { - ChangeEvent, - FocusEvent, - ReactElement, - ReactNode, - TextareaHTMLAttributes, + type ChangeEvent, + type FocusEvent, + type ReactElement, + type ReactNode, + type TextareaHTMLAttributes, memo, useCallback, useMemo, diff --git a/packages/web/src/main.ts b/packages/web/src/main.ts index 0623b8e..c1bfb79 100644 --- a/packages/web/src/main.ts +++ b/packages/web/src/main.ts @@ -1,23 +1,9 @@ -export { - type FormProps, - Form, -} from "./lib/Form.component"; +export { Form } from "./lib/Form.component"; +export { Input, inputOf } from "./lib/fields/Input.component"; +export { Select, selectOf } from "./lib/fields/Select.component"; +export { Textarea, textareaOf } from "./lib/fields/Textarea.component"; -export { - type InputOf, - type InputProps, - Input, - inputOf, -} from "./lib/fields/Input.component"; - -export { Select, - type SelectOf, - type SelectProps, - selectOf, -} from "./lib/fields/Select.component"; - -export { Textarea, - type TextareaOf, - type TextareaProps, - textareaOf, -} from "./lib/fields/Textarea.component"; +export type { FormProps } from "./lib/Form.component"; +export type { InputOf, InputProps } from "./lib/fields/Input.component"; +export type { SelectOf, SelectProps } from "./lib/fields/Select.component"; +export type { TextareaOf, TextareaProps } from "./lib/fields/Textarea.component"; diff --git a/packages/web/test/hooks.ts b/packages/web/test/hooks.ts index 703f024..d61d09a 100644 --- a/packages/web/test/hooks.ts +++ b/packages/web/test/hooks.ts @@ -2,7 +2,7 @@ import Sinon from "sinon"; export const mochaHooks: () => Mocha.RootHookObject = () => { return { - afterEach() { + afterEach: () => { Sinon.restore(); }, }; diff --git a/packages/web/test/integration/lib/Form.component.test.tsx b/packages/web/test/integration/lib/Form.component.test.tsx index d5a87b6..f5f731a 100644 --- a/packages/web/test/integration/lib/Form.component.test.tsx +++ b/packages/web/test/integration/lib/Form.component.test.tsx @@ -1,7 +1,7 @@ import { render, waitFor, within } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; import Sinon from "sinon"; -import { ObjectSchema, number, object, string } from "yup"; +import { type ObjectSchema, number, object, string } from "yup"; import { Form } from "../../../src/lib/Form.component"; diff --git a/packages/web/test/integration/lib/fields/Input.component.test.tsx b/packages/web/test/integration/lib/fields/Input.component.test.tsx index d7f2e15..5785e26 100644 --- a/packages/web/test/integration/lib/fields/Input.component.test.tsx +++ b/packages/web/test/integration/lib/fields/Input.component.test.tsx @@ -1,9 +1,9 @@ import { expect } from "@assertive-ts/core"; import { fireEvent, render, waitFor } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { ReactElement, useCallback, useState } from "react"; +import { type ReactElement, useCallback, useState } from "react"; import Sinon from "sinon"; -import { ObjectSchema, object, string } from "yup"; +import { type ObjectSchema, object, string } from "yup"; import { Form } from "../../../../src/lib/Form.component"; import { inputOf } from "../../../../src/lib/fields/Input.component"; diff --git a/packages/web/test/integration/lib/fields/Select.component.test.tsx b/packages/web/test/integration/lib/fields/Select.component.test.tsx index b7f8caf..f96279b 100644 --- a/packages/web/test/integration/lib/fields/Select.component.test.tsx +++ b/packages/web/test/integration/lib/fields/Select.component.test.tsx @@ -1,9 +1,9 @@ import { expect } from "@assertive-ts/core"; import { fireEvent, render, waitFor } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { ReactElement, useCallback, useState } from "react"; +import { type ReactElement, useCallback, useState } from "react"; import Sinon from "sinon"; -import { ObjectSchema, object, string } from "yup"; +import { type ObjectSchema, object, string } from "yup"; import { Form } from "../../../../src/lib/Form.component"; import { selectOf } from "../../../../src/lib/fields/Select.component"; diff --git a/packages/web/test/integration/lib/fields/Textarea.component.test.tsx b/packages/web/test/integration/lib/fields/Textarea.component.test.tsx index d46ec71..ce5f86f 100644 --- a/packages/web/test/integration/lib/fields/Textarea.component.test.tsx +++ b/packages/web/test/integration/lib/fields/Textarea.component.test.tsx @@ -1,9 +1,9 @@ import { expect } from "@assertive-ts/core"; import { fireEvent, render, waitFor } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import { ReactElement, useCallback, useState } from "react"; +import { type ReactElement, useCallback, useState } from "react"; import Sinon from "sinon"; -import { ObjectSchema, object, string } from "yup"; +import { type ObjectSchema, object, string } from "yup"; import { Form } from "../../../../src/lib/Form.component"; import { textareaOf } from "../../../../src/lib/fields/Textarea.component"; diff --git a/packages/web/test/integration/main.test.ts b/packages/web/test/integration/main.test.ts index de576ec..bc90f59 100644 --- a/packages/web/test/integration/main.test.ts +++ b/packages/web/test/integration/main.test.ts @@ -1,6 +1,6 @@ import { expect } from "@assertive-ts/core"; -describe("[Integration] main.ts", () => { +describe("[Integration] main.test.ts", () => { it("re-exports the library exports", async () => { const web = await expect(import("../../src/main")).toBeResolved(); diff --git a/packages/web/typings/react.d.ts b/packages/web/typings/react.d.ts index 316e35d..2563572 100644 --- a/packages/web/typings/react.d.ts +++ b/packages/web/typings/react.d.ts @@ -1,6 +1,6 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/ban-types */ -import { ComponentType, ComponentProps, ForwardedRef, ReactNode, RefAttributes } from "react"; +import type { ComponentProps, ComponentType, ForwardedRef, ReactNode, RefAttributes } from "react"; declare module "react" { diff --git a/yarn.lock b/yarn.lock index 09ceda1..845aae1 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1667,14 +1667,17 @@ __metadata: languageName: node linkType: hard -"@es-joy/jsdoccomment@npm:~0.42.0": - version: 0.42.0 - resolution: "@es-joy/jsdoccomment@npm:0.42.0" +"@es-joy/jsdoccomment@npm:~0.43.1": + version: 0.43.1 + resolution: "@es-joy/jsdoccomment@npm:0.43.1" dependencies: + "@types/eslint": "npm:^8.56.5" + "@types/estree": "npm:^1.0.5" + "@typescript-eslint/types": "npm:^7.2.0" comment-parser: "npm:1.4.1" esquery: "npm:^1.5.0" jsdoc-type-pratt-parser: "npm:~4.0.0" - checksum: 10/413c058f224f91cf6370a514e7024944d20977819724878121178e598714cc4734ee9898b3eca6396f67542ad81acd9d46d5a0209e62306b0ef17a28626ec566 + checksum: 10/c7b30648f3959a6779df9f1939467916f46d40a87b4067a3e53f0492019d5f644cc5e2bb7ded5202a43a01b0627d7b751e9f1f1b10625f5a99a988894e55d2ac languageName: node linkType: hard @@ -1689,34 +1692,59 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.5.1, @eslint-community/regexpp@npm:^4.6.1": - version: 4.10.0 - resolution: "@eslint-community/regexpp@npm:4.10.0" - checksum: 10/8c36169c815fc5d726078e8c71a5b592957ee60d08c6470f9ce0187c8046af1a00afbda0a065cc40ff18d5d83f82aed9793c6818f7304a74a7488dc9f3ecbd42 +"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1": + version: 4.10.1 + resolution: "@eslint-community/regexpp@npm:4.10.1" + checksum: 10/54f13817caf90545502d7a19e1b61df79087aee9584342ffc558b6d067530764a47f1c484f493f43e2c70cfdff59ccfd5f26df2af298c4ad528469e599bd1d53 languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.4": - version: 2.1.4 - resolution: "@eslint/eslintrc@npm:2.1.4" +"@eslint/compat@npm:^1.1.0": + version: 1.1.0 + resolution: "@eslint/compat@npm:1.1.0" + checksum: 10/b3a081df313e20cb803af15eb66164fb36ba5e1663b8ec1bf65375425fe6bd4baef4b34383abafcc289936a3dedb04de2f74cabae817f23f37636ee40c0f8a7e + languageName: node + linkType: hard + +"@eslint/config-array@npm:^0.16.0": + version: 0.16.0 + resolution: "@eslint/config-array@npm:0.16.0" + dependencies: + "@eslint/object-schema": "npm:^2.1.4" + debug: "npm:^4.3.1" + minimatch: "npm:^3.0.5" + checksum: 10/6c1716f896a5bd290a2987ac28ec4fe18f052d2338ccf7822107eb0a6b974c44e6297cb7c9d6e0c5718c510e6c8e53043bea04cf4836dcb26a57e0255bfe99bc + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^3.1.0": + version: 3.1.0 + resolution: "@eslint/eslintrc@npm:3.1.0" dependencies: ajv: "npm:^6.12.4" debug: "npm:^4.3.2" - espree: "npm:^9.6.0" - globals: "npm:^13.19.0" + espree: "npm:^10.0.1" + globals: "npm:^14.0.0" ignore: "npm:^5.2.0" import-fresh: "npm:^3.2.1" js-yaml: "npm:^4.1.0" minimatch: "npm:^3.1.2" strip-json-comments: "npm:^3.1.1" - checksum: 10/7a3b14f4b40fc1a22624c3f84d9f467a3d9ea1ca6e9a372116cb92507e485260359465b58e25bcb6c9981b155416b98c9973ad9b796053fd7b3f776a6946bce8 + checksum: 10/02bf892d1397e1029209dea685e9f4f87baf643315df2a632b5f121ec7e8548a3b34f428a007234fa82772218fa8a3ac2d10328637b9ce63b7f8344035b74db3 + languageName: node + linkType: hard + +"@eslint/js@npm:9.5.0, @eslint/js@npm:^9.5.0": + version: 9.5.0 + resolution: "@eslint/js@npm:9.5.0" + checksum: 10/206364e3a074eaaeccc2b9e1e3f129539106a81ec634f32c51bc1699e0c4a47ab3e6480a6484a198bca6406888ba8f2917c35a87296680905d146075b5ed2738 languageName: node linkType: hard -"@eslint/js@npm:8.57.0": - version: 8.57.0 - resolution: "@eslint/js@npm:8.57.0" - checksum: 10/3c501ce8a997cf6cbbaf4ed358af5492875e3550c19b9621413b82caa9ae5382c584b0efa79835639e6e0ddaa568caf3499318e5bdab68643ef4199dce5eb0a0 +"@eslint/object-schema@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/object-schema@npm:2.1.4" + checksum: 10/221e8d9f281c605948cd6e030874aacce83fe097f8f9c1964787037bccf08e82b7aa9eff1850a30fffac43f1d76555727ec22a2af479d91e268e89d1e035131e languageName: node linkType: hard @@ -1736,17 +1764,6 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.14": - version: 0.11.14 - resolution: "@humanwhocodes/config-array@npm:0.11.14" - dependencies: - "@humanwhocodes/object-schema": "npm:^2.0.2" - debug: "npm:^4.3.1" - minimatch: "npm:^3.0.5" - checksum: 10/3ffb24ecdfab64014a230e127118d50a1a04d11080cbb748bc21629393d100850496456bbcb4e8c438957fe0934430d731042f1264d6a167b62d32fc2863580a - languageName: node - linkType: hard - "@humanwhocodes/module-importer@npm:^1.0.1": version: 1.0.1 resolution: "@humanwhocodes/module-importer@npm:1.0.1" @@ -1754,10 +1771,10 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^2.0.2": - version: 2.0.3 - resolution: "@humanwhocodes/object-schema@npm:2.0.3" - checksum: 10/05bb99ed06c16408a45a833f03a732f59bf6184795d4efadd33238ff8699190a8c871ad1121241bb6501589a9598dc83bf25b99dcbcf41e155cdf36e35e937a3 +"@humanwhocodes/retry@npm:^0.3.0": + version: 0.3.0 + resolution: "@humanwhocodes/retry@npm:0.3.0" + checksum: 10/e574bab58680867414e225c9002e9a97eb396f85871c180fbb1a9bcdf9ded4b4de0b327f7d0c43b775873362b7c92956d4b322e8bc4b90be56077524341f04b2 languageName: node linkType: hard @@ -2633,6 +2650,13 @@ __metadata: languageName: node linkType: hard +"@pkgr/core@npm:^0.1.0": + version: 0.1.1 + resolution: "@pkgr/core@npm:0.1.1" + checksum: 10/6f25fd2e3008f259c77207ac9915b02f1628420403b2630c92a07ff963129238c9262afc9e84344c7a23b5cc1f3965e2cd17e3798219f5fd78a63d144d3cceba + languageName: node + linkType: hard + "@pnpm/config.env-replace@npm:^1.1.0": version: 1.1.0 resolution: "@pnpm/config.env-replace@npm:1.1.0" @@ -3300,6 +3324,74 @@ __metadata: languageName: node linkType: hard +"@stylistic/eslint-plugin-js@npm:2.2.2, @stylistic/eslint-plugin-js@npm:^2.2.2": + version: 2.2.2 + resolution: "@stylistic/eslint-plugin-js@npm:2.2.2" + dependencies: + "@types/eslint": "npm:^8.56.10" + acorn: "npm:^8.11.3" + eslint-visitor-keys: "npm:^4.0.0" + espree: "npm:^10.0.1" + peerDependencies: + eslint: ">=8.40.0" + checksum: 10/9d07d22c48a9f2b0e3e8b12704a1542801a4bed0fb4e4d91a7db4126924d145297ed4054d82d95116556154e377fac5016d2e4d4096d1d7bafccd1ee2d920f16 + languageName: node + linkType: hard + +"@stylistic/eslint-plugin-jsx@npm:2.2.2": + version: 2.2.2 + resolution: "@stylistic/eslint-plugin-jsx@npm:2.2.2" + dependencies: + "@stylistic/eslint-plugin-js": "npm:^2.2.2" + "@types/eslint": "npm:^8.56.10" + estraverse: "npm:^5.3.0" + picomatch: "npm:^4.0.2" + peerDependencies: + eslint: ">=8.40.0" + checksum: 10/07a9829af2f97db5747b28ac856d13e73ac823122161c4cc71ba6c539f606a7bf052099e699a0d58ee4a6b5495dd9855b6e784fa993ad74fb264b3bb944a45be + languageName: node + linkType: hard + +"@stylistic/eslint-plugin-plus@npm:2.2.2": + version: 2.2.2 + resolution: "@stylistic/eslint-plugin-plus@npm:2.2.2" + dependencies: + "@types/eslint": "npm:^8.56.10" + "@typescript-eslint/utils": "npm:^7.12.0" + peerDependencies: + eslint: "*" + checksum: 10/8fe39f5f1cabf74f309380e2b37226865066648055ce71c5cacfb10d8ac4fb01f2e15c608059c6833e8cb427ab552e945d5b7ccd500659a849b8eb9d04598aa4 + languageName: node + linkType: hard + +"@stylistic/eslint-plugin-ts@npm:2.2.2": + version: 2.2.2 + resolution: "@stylistic/eslint-plugin-ts@npm:2.2.2" + dependencies: + "@stylistic/eslint-plugin-js": "npm:2.2.2" + "@types/eslint": "npm:^8.56.10" + "@typescript-eslint/utils": "npm:^7.12.0" + peerDependencies: + eslint: ">=8.40.0" + checksum: 10/57b27420e4311c0942dc840bbd2ef63e93e22cad63952cc3ceaf48f4698f30a3c41c2553e5f407d7be27eadf7c2193c64310f8c1afe27c5f266bdc7bad13cff9 + languageName: node + linkType: hard + +"@stylistic/eslint-plugin@npm:^2.2.2": + version: 2.2.2 + resolution: "@stylistic/eslint-plugin@npm:2.2.2" + dependencies: + "@stylistic/eslint-plugin-js": "npm:2.2.2" + "@stylistic/eslint-plugin-jsx": "npm:2.2.2" + "@stylistic/eslint-plugin-plus": "npm:2.2.2" + "@stylistic/eslint-plugin-ts": "npm:2.2.2" + "@types/eslint": "npm:^8.56.10" + peerDependencies: + eslint: ">=8.40.0" + checksum: 10/50c1baf88e1675401facd4ede1d56c183ee32213096e2334845fcaa9bd7a223ad96747936b0c82ce6920ef18cc055a5ae16409802b1f05481312ec4ee8adf99f + languageName: node + linkType: hard + "@testing-library/dom@npm:^10.0.0, @testing-library/dom@npm:^10.1.0": version: 10.1.0 resolution: "@testing-library/dom@npm:10.1.0" @@ -3455,6 +3547,41 @@ __metadata: languageName: node linkType: hard +"@types/eslint@npm:*, @types/eslint@npm:^8.56.10, @types/eslint@npm:^8.56.5": + version: 8.56.10 + resolution: "@types/eslint@npm:8.56.10" + dependencies: + "@types/estree": "npm:*" + "@types/json-schema": "npm:*" + checksum: 10/0cdd914b944ebba51c35827d3ef95bc3e16eb82b4c2741f6437fa57cdb00a4407c77f89c220afe9e4c9566982ec8a0fb9b97c956ac3bd4623a3b6af32eed8424 + languageName: node + linkType: hard + +"@types/eslint__eslintrc@npm:^2.1.1": + version: 2.1.1 + resolution: "@types/eslint__eslintrc@npm:2.1.1" + dependencies: + "@types/eslint": "npm:*" + checksum: 10/75b3cd589c152a2079fd8a84bf44066159fa8d9237a14f2b782bc37cd09e26b1647f5b0f0dc1145aaee53e26dc335c0d7ef3e8fdad5d7432329af371fd88479d + languageName: node + linkType: hard + +"@types/eslint__js@npm:^8.42.3": + version: 8.42.3 + resolution: "@types/eslint__js@npm:8.42.3" + dependencies: + "@types/eslint": "npm:*" + checksum: 10/e31f19de642d35a664695d0cab873ce6de19b8a3506755835b91f8a49a8c41099dcace449df49f1a486de6fa6565d21ceb1fa33be6004fc7adef9226e5d256a1 + languageName: node + linkType: hard + +"@types/estree@npm:*, @types/estree@npm:^1.0.5": + version: 1.0.5 + resolution: "@types/estree@npm:1.0.5" + checksum: 10/7de6d928dd4010b0e20c6919e1a6c27b61f8d4567befa89252055fad503d587ecb9a1e3eab1b1901f923964d7019796db810b7fd6430acb26c32866d126fd408 + languageName: node + linkType: hard + "@types/graceful-fs@npm:^4.1.3": version: 4.1.9 resolution: "@types/graceful-fs@npm:4.1.9" @@ -3489,7 +3616,7 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:^7.0.12, @types/json-schema@npm:^7.0.9": +"@types/json-schema@npm:*, @types/json-schema@npm:^7.0.9": version: 7.0.15 resolution: "@types/json-schema@npm:7.0.15" checksum: 10/1a3c3e06236e4c4aab89499c428d585527ce50c24fe8259e8b3926d3df4cfbbbcf306cfc73ddfb66cbafc973116efd15967020b0f738f63e09e64c7d260519e7 @@ -3579,7 +3706,7 @@ __metadata: languageName: node linkType: hard -"@types/semver@npm:^7.3.12, @types/semver@npm:^7.5.0": +"@types/semver@npm:^7.3.12": version: 7.5.8 resolution: "@types/semver@npm:7.5.8" checksum: 10/3496808818ddb36deabfe4974fd343a78101fa242c4690044ccdc3b95dcf8785b494f5d628f2f47f38a702f8db9c53c67f47d7818f2be1b79f2efb09692e1178 @@ -3634,28 +3761,26 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:^6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/eslint-plugin@npm:6.21.0" +"@typescript-eslint/eslint-plugin@npm:7.13.1": + version: 7.13.1 + resolution: "@typescript-eslint/eslint-plugin@npm:7.13.1" dependencies: - "@eslint-community/regexpp": "npm:^4.5.1" - "@typescript-eslint/scope-manager": "npm:6.21.0" - "@typescript-eslint/type-utils": "npm:6.21.0" - "@typescript-eslint/utils": "npm:6.21.0" - "@typescript-eslint/visitor-keys": "npm:6.21.0" - debug: "npm:^4.3.4" + "@eslint-community/regexpp": "npm:^4.10.0" + "@typescript-eslint/scope-manager": "npm:7.13.1" + "@typescript-eslint/type-utils": "npm:7.13.1" + "@typescript-eslint/utils": "npm:7.13.1" + "@typescript-eslint/visitor-keys": "npm:7.13.1" graphemer: "npm:^1.4.0" - ignore: "npm:^5.2.4" + ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" - semver: "npm:^7.5.4" - ts-api-utils: "npm:^1.0.1" + ts-api-utils: "npm:^1.3.0" peerDependencies: - "@typescript-eslint/parser": ^6.0.0 || ^6.0.0-alpha - eslint: ^7.0.0 || ^8.0.0 + "@typescript-eslint/parser": ^7.0.0 + eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/a57de0f630789330204cc1531f86cfc68b391cafb1ba67c8992133f1baa2a09d629df66e71260b040de4c9a3ff1252952037093c4128b0d56c4dbb37720b4c1d + checksum: 10/37fff8c302f93f5f88fc8d6e6c9151a7d1873a3c8af6e15547d737bdc066a6b8887fa54bcd8eb4e4ca6a11494051801c8e957eea8d8b4d4b078a477df6f10692 languageName: node linkType: hard @@ -3670,21 +3795,21 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/parser@npm:^6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/parser@npm:6.21.0" +"@typescript-eslint/parser@npm:7.13.1": + version: 7.13.1 + resolution: "@typescript-eslint/parser@npm:7.13.1" dependencies: - "@typescript-eslint/scope-manager": "npm:6.21.0" - "@typescript-eslint/types": "npm:6.21.0" - "@typescript-eslint/typescript-estree": "npm:6.21.0" - "@typescript-eslint/visitor-keys": "npm:6.21.0" + "@typescript-eslint/scope-manager": "npm:7.13.1" + "@typescript-eslint/types": "npm:7.13.1" + "@typescript-eslint/typescript-estree": "npm:7.13.1" + "@typescript-eslint/visitor-keys": "npm:7.13.1" debug: "npm:^4.3.4" peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/4d51cdbc170e72275efc5ef5fce48a81ec431e4edde8374f4d0213d8d370a06823e1a61ae31d502a5f1b0d1f48fc4d29a1b1b5c2dcf809d66d3872ccf6e46ac7 + checksum: 10/a76cfcf97c289110403b50a377e925f29cda74340de0526f68b0c34199ce643d9c31803e492217e0f3df28361d3019ced4806f974ea70529c559b26b70cec7ef languageName: node linkType: hard @@ -3698,30 +3823,30 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/scope-manager@npm:6.21.0" +"@typescript-eslint/scope-manager@npm:7.13.1": + version: 7.13.1 + resolution: "@typescript-eslint/scope-manager@npm:7.13.1" dependencies: - "@typescript-eslint/types": "npm:6.21.0" - "@typescript-eslint/visitor-keys": "npm:6.21.0" - checksum: 10/fe91ac52ca8e09356a71dc1a2f2c326480f3cccfec6b2b6d9154c1a90651ab8ea270b07c67df5678956c3bbf0bbe7113ab68f68f21b20912ea528b1214197395 + "@typescript-eslint/types": "npm:7.13.1" + "@typescript-eslint/visitor-keys": "npm:7.13.1" + checksum: 10/fea9ab8f72ace1dd55d835037efe038c70021275581855820cdb7fc4b01e8afb51723856537adff1fdb0ea3899c1f8b593fd75c34b5087ca2ef2f7c72e610050 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/type-utils@npm:6.21.0" +"@typescript-eslint/type-utils@npm:7.13.1": + version: 7.13.1 + resolution: "@typescript-eslint/type-utils@npm:7.13.1" dependencies: - "@typescript-eslint/typescript-estree": "npm:6.21.0" - "@typescript-eslint/utils": "npm:6.21.0" + "@typescript-eslint/typescript-estree": "npm:7.13.1" + "@typescript-eslint/utils": "npm:7.13.1" debug: "npm:^4.3.4" - ts-api-utils: "npm:^1.0.1" + ts-api-utils: "npm:^1.3.0" peerDependencies: - eslint: ^7.0.0 || ^8.0.0 + eslint: ^8.56.0 peerDependenciesMeta: typescript: optional: true - checksum: 10/d03fb3ee1caa71f3ce053505f1866268d7ed79ffb7fed18623f4a1253f5b8f2ffc92636d6fd08fcbaf5bd265a6de77bf192c53105131e4724643dfc910d705fc + checksum: 10/cc03cd44e125933511ea657e386c5cf427eb6a386fdb110cba0858598195fb4f8c71173b00b187f388a6713e16b919a2037a86e0be10f4c40c18bcbdbe06d5de languageName: node linkType: hard @@ -3732,10 +3857,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/types@npm:6.21.0" - checksum: 10/e26da86d6f36ca5b6ef6322619f8ec55aabcd7d43c840c977ae13ae2c964c3091fc92eb33730d8be08927c9de38466c5323e78bfb270a9ff1d3611fe821046c5 +"@typescript-eslint/types@npm:7.13.1, @typescript-eslint/types@npm:^7.2.0": + version: 7.13.1 + resolution: "@typescript-eslint/types@npm:7.13.1" + checksum: 10/006a5518608184c1d017b27fb4f66ce28bc75f89e2380ac42969ebdf0dc726af1cfcdf4ba36ce2858e9f6907d6f4295d3453859d7e9a35bc7855d4ebc900955d languageName: node linkType: hard @@ -3757,22 +3882,22 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/typescript-estree@npm:6.21.0" +"@typescript-eslint/typescript-estree@npm:7.13.1": + version: 7.13.1 + resolution: "@typescript-eslint/typescript-estree@npm:7.13.1" dependencies: - "@typescript-eslint/types": "npm:6.21.0" - "@typescript-eslint/visitor-keys": "npm:6.21.0" + "@typescript-eslint/types": "npm:7.13.1" + "@typescript-eslint/visitor-keys": "npm:7.13.1" debug: "npm:^4.3.4" globby: "npm:^11.1.0" is-glob: "npm:^4.0.3" - minimatch: "npm:9.0.3" - semver: "npm:^7.5.4" - ts-api-utils: "npm:^1.0.1" + minimatch: "npm:^9.0.4" + semver: "npm:^7.6.0" + ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10/b32fa35fca2a229e0f5f06793e5359ff9269f63e9705e858df95d55ca2cd7fdb5b3e75b284095a992c48c5fc46a1431a1a4b6747ede2dd08929dc1cbacc589b8 + checksum: 10/5c68b5faa962e5f984067aa91770486af817858d2fa35b54a44fa4d5c0c612ba23b52b191d8051d9e4439e5425251e32861c81239e9400a29de057f8360537fb languageName: node linkType: hard @@ -3794,20 +3919,17 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/utils@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/utils@npm:6.21.0" +"@typescript-eslint/utils@npm:7.13.1, @typescript-eslint/utils@npm:^7.0.0, @typescript-eslint/utils@npm:^7.12.0": + version: 7.13.1 + resolution: "@typescript-eslint/utils@npm:7.13.1" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@types/json-schema": "npm:^7.0.12" - "@types/semver": "npm:^7.5.0" - "@typescript-eslint/scope-manager": "npm:6.21.0" - "@typescript-eslint/types": "npm:6.21.0" - "@typescript-eslint/typescript-estree": "npm:6.21.0" - semver: "npm:^7.5.4" + "@typescript-eslint/scope-manager": "npm:7.13.1" + "@typescript-eslint/types": "npm:7.13.1" + "@typescript-eslint/typescript-estree": "npm:7.13.1" peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - checksum: 10/b404a2c55a425a79d054346ae123087d30c7ecf7ed7abcf680c47bf70c1de4fabadc63434f3f460b2fa63df76bc9e4a0b9fa2383bb8a9fcd62733fb5c4e4f3e3 + eslint: ^8.56.0 + checksum: 10/e1bc916dcb567c6b35819f635a84561e015f40b28d650b987f74c79b013ec43fb4f5b61199d4039fcdf9480281f945f622650cba2e68739600822da05808a706 languageName: node linkType: hard @@ -3821,20 +3943,13 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:6.21.0": - version: 6.21.0 - resolution: "@typescript-eslint/visitor-keys@npm:6.21.0" +"@typescript-eslint/visitor-keys@npm:7.13.1": + version: 7.13.1 + resolution: "@typescript-eslint/visitor-keys@npm:7.13.1" dependencies: - "@typescript-eslint/types": "npm:6.21.0" - eslint-visitor-keys: "npm:^3.4.1" - checksum: 10/30422cdc1e2ffad203df40351a031254b272f9c6f2b7e02e9bfa39e3fc2c7b1c6130333b0057412968deda17a3a68a578a78929a8139c6acef44d9d841dc72e1 - languageName: node - linkType: hard - -"@ungap/structured-clone@npm:^1.2.0": - version: 1.2.0 - resolution: "@ungap/structured-clone@npm:1.2.0" - checksum: 10/c6fe89a505e513a7592e1438280db1c075764793a2397877ff1351721fe8792a966a5359769e30242b3cd023f2efb9e63ca2ca88019d73b564488cc20e3eab12 + "@typescript-eslint/types": "npm:7.13.1" + eslint-visitor-keys: "npm:^3.4.3" + checksum: 10/811e9642851359b5197d45a9878143c4c608aaef887a20c26f57f8b012ce9e316d232b82a311bdd52a2af0c8b8da5d4bd9401ce565fc7bdb43cd44556e76d225 languageName: node linkType: hard @@ -3876,6 +3991,15 @@ __metadata: languageName: node linkType: hard +"acorn-jsx@npm:^2.0.1": + version: 2.0.1 + resolution: "acorn-jsx@npm:2.0.1" + dependencies: + acorn: "npm:^2.0.1" + checksum: 10/9f85a712658e57c8b77af1cd6c145548d703bf0c3038246823a0d1d7c376644e358ed0dd8b872da9dbcb459ff46ee9f765b8b660c572611281ff795be1d101cb + languageName: node + linkType: hard + "acorn-jsx@npm:^5.3.2": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" @@ -3892,7 +4016,25 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.4.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0": +"acorn@npm:^2.0.1, acorn@npm:^2.6.4": + version: 2.7.0 + resolution: "acorn@npm:2.7.0" + bin: + acorn: ./bin/acorn + checksum: 10/d8d94762d71c7191dd954924c2337e28a8f63d2024af70f7c99dc9c82cbad8836236697e400c608be2b57e899125e34b640946f61e6a921177bf063e74e0499f + languageName: node + linkType: hard + +"acorn@npm:^8.11.3, acorn@npm:^8.12.0": + version: 8.12.0 + resolution: "acorn@npm:8.12.0" + bin: + acorn: bin/acorn + checksum: 10/550cc5033184eb98f7fbe2e9ddadd0f47f065734cc682f25db7a244f52314eb816801b64dec7174effd978045bd1754892731a90b1102b0ede9d17a15cfde138 + languageName: node + linkType: hard + +"acorn@npm:^8.4.1, acorn@npm:^8.8.2": version: 8.11.3 resolution: "acorn@npm:8.11.3" bin: @@ -4144,7 +4286,7 @@ __metadata: languageName: node linkType: hard -"array-includes@npm:^3.1.6, array-includes@npm:^3.1.7": +"array-includes@npm:^3.1.6, array-includes@npm:^3.1.7, array-includes@npm:^3.1.8": version: 3.1.8 resolution: "array-includes@npm:3.1.8" dependencies: @@ -4165,7 +4307,7 @@ __metadata: languageName: node linkType: hard -"array.prototype.findlast@npm:^1.2.4": +"array.prototype.findlast@npm:^1.2.5": version: 1.2.5 resolution: "array.prototype.findlast@npm:1.2.5" dependencies: @@ -4229,16 +4371,16 @@ __metadata: languageName: node linkType: hard -"array.prototype.tosorted@npm:^1.1.3": - version: 1.1.3 - resolution: "array.prototype.tosorted@npm:1.1.3" +"array.prototype.tosorted@npm:^1.1.4": + version: 1.1.4 + resolution: "array.prototype.tosorted@npm:1.1.4" dependencies: - call-bind: "npm:^1.0.5" + call-bind: "npm:^1.0.7" define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.22.3" - es-errors: "npm:^1.1.0" + es-abstract: "npm:^1.23.3" + es-errors: "npm:^1.3.0" es-shim-unscopables: "npm:^1.0.2" - checksum: 10/9a5b7909a9ddd02a5f5489911766c314a11fb40f8f5106bdbedf6c21898763faeb78ba3af53f7038f288de9161d2605ad10d8b720e07f71a7ed1de49f39c0897 + checksum: 10/874694e5d50e138894ff5b853e639c29b0aa42bbd355acda8e8e9cd337f1c80565f21edc15e8c727fa4c0877fd9d8783c575809e440cc4d2d19acaa048bf967d languageName: node linkType: hard @@ -4567,13 +4709,6 @@ __metadata: languageName: node linkType: hard -"builtin-modules@npm:^3.3.0": - version: 3.3.0 - resolution: "builtin-modules@npm:3.3.0" - checksum: 10/62e063ab40c0c1efccbfa9ffa31873e4f9d57408cb396a2649981a0ecbce56aabc93c28feaccbc5658c95aab2703ad1d11980e62ec2e5e72637404e1eb60f39e - languageName: node - linkType: hard - "bytes@npm:3.0.0": version: 3.0.0 resolution: "bytes@npm:3.0.0" @@ -5075,6 +5210,13 @@ __metadata: languageName: node linkType: hard +"console-assert@npm:1.0.0": + version: 1.0.0 + resolution: "console-assert@npm:1.0.0" + checksum: 10/02c8e9c72b6cdfb474506598008870d1efc5f72c1dcb36bc0469893d30531e1f145d5f5e3d71dfd72b2848ff6df8659cb19e67fd6205d7ab75e5f15c6b404880 + languageName: node + linkType: hard + "conventional-changelog-angular@npm:^7.0.0": version: 7.0.0 resolution: "conventional-changelog-angular@npm:7.0.0" @@ -5325,7 +5467,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4": +"debug@npm:4, debug@npm:4.3.4, debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.4": version: 4.3.4 resolution: "debug@npm:4.3.4" dependencies: @@ -5346,6 +5488,18 @@ __metadata: languageName: node linkType: hard +"debug@npm:^4.3.2": + version: 4.3.5 + resolution: "debug@npm:4.3.5" + dependencies: + ms: "npm:2.1.2" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10/cb6eab424c410e07813ca1392888589972ce9a32b8829c6508f5e1f25f3c3e70a76731610ae55b4bbe58d1a2fffa1424b30e97fa8d394e49cd2656a9643aedd2 + languageName: node + linkType: hard + "decamelize@npm:^1.2.0": version: 1.2.0 resolution: "decamelize@npm:1.2.0" @@ -5519,15 +5673,6 @@ __metadata: languageName: node linkType: hard -"doctrine@npm:^3.0.0": - version: 3.0.0 - resolution: "doctrine@npm:3.0.0" - dependencies: - esutils: "npm:^2.0.2" - checksum: 10/b4b28f1df5c563f7d876e7461254a4597b8cabe915abe94d7c5d1633fed263fcf9a85e8d3836591fc2d040108e822b0d32758e5ec1fe31c590dc7e08086e3e48 - languageName: node - linkType: hard - "dom-accessibility-api@npm:^0.5.9": version: 0.5.16 resolution: "dom-accessibility-api@npm:0.5.16" @@ -5626,12 +5771,12 @@ __metadata: linkType: hard "enhanced-resolve@npm:^5.12.0": - version: 5.16.1 - resolution: "enhanced-resolve@npm:5.16.1" + version: 5.17.0 + resolution: "enhanced-resolve@npm:5.17.0" dependencies: graceful-fs: "npm:^4.2.4" tapable: "npm:^2.2.0" - checksum: 10/1c44474437ec52d938ee0776d5883d5fec8fc645bccbebf6eb58229f3223c111bc1f5cb94222949a5a4565e7a2d7c34f03a0f7e97c10d6cd800e7a46c95e3aec + checksum: 10/8f7bf71537d78e7d20a27363793f2c9e13ec44800c7c7830364a448f80a44994aa19d64beecefa1ab49e4de6f7fbe18cc0931dc449c115f02918ff5fcbe7705f languageName: node linkType: hard @@ -5766,14 +5911,14 @@ __metadata: languageName: node linkType: hard -"es-errors@npm:^1.1.0, es-errors@npm:^1.2.1, es-errors@npm:^1.3.0": +"es-errors@npm:^1.2.1, es-errors@npm:^1.3.0": version: 1.3.0 resolution: "es-errors@npm:1.3.0" checksum: 10/96e65d640156f91b707517e8cdc454dd7d47c32833aa3e85d79f24f9eb7ea85f39b63e36216ef0114996581969b59fe609a94e30316b08f5f4df1d44134cf8d5 languageName: node linkType: hard -"es-iterator-helpers@npm:^1.0.17": +"es-iterator-helpers@npm:^1.0.19": version: 1.0.19 resolution: "es-iterator-helpers@npm:1.0.19" dependencies: @@ -5795,6 +5940,13 @@ __metadata: languageName: node linkType: hard +"es-module-lexer@npm:^1.5.3": + version: 1.5.4 + resolution: "es-module-lexer@npm:1.5.4" + checksum: 10/f29c7c97a58eb17640dcbd71bd6ef754ad4f58f95c3073894573d29dae2cad43ecd2060d97ed5b866dfb7804d5590fb7de1d2c5339a5fceae8bd60b580387fc5 + languageName: node + linkType: hard + "es-object-atoms@npm:^1.0.0": version: 1.0.0 resolution: "es-object-atoms@npm:1.0.0" @@ -5932,6 +6084,20 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-deprecation@npm:^3.0.0": + version: 3.0.0 + resolution: "eslint-plugin-deprecation@npm:3.0.0" + dependencies: + "@typescript-eslint/utils": "npm:^7.0.0" + ts-api-utils: "npm:^1.3.0" + tslib: "npm:^2.3.1" + peerDependencies: + eslint: ^8.0.0 + typescript: ^4.2.4 || ^5.0.0 + checksum: 10/6b13f68be641b750b1e777d4818b554efe77df9900deb3f90580455991f32bad173245f11d628690096c99a01fb71e323c694bb2093329dc16da3417d3d90627 + languageName: node + linkType: hard + "eslint-plugin-etc@npm:^2.0.3": version: 2.0.3 resolution: "eslint-plugin-etc@npm:2.0.3" @@ -5949,6 +6115,17 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-extra-rules@npm:^0.0.0-development": + version: 0.0.0-development + resolution: "eslint-plugin-extra-rules@npm:0.0.0-development" + dependencies: + console-assert: "npm:1.0.0" + espree: "npm:3.0.0-alpha-1" + quote: "npm:0.4.0" + checksum: 10/4214fbf442a1419cf76ff457c4db85a23b72d68e44020fa9ebd1b9710297676da8101bced34273262b0ea5eb613781c514497a36eefd0a71c3d24f5f3d40479b + languageName: node + linkType: hard + "eslint-plugin-import@npm:^2.29.1": version: 2.29.1 resolution: "eslint-plugin-import@npm:2.29.1" @@ -5976,68 +6153,60 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-jsdoc@npm:^48.2.3": - version: 48.2.3 - resolution: "eslint-plugin-jsdoc@npm:48.2.3" +"eslint-plugin-jsdoc@npm:^48.3.0": + version: 48.3.0 + resolution: "eslint-plugin-jsdoc@npm:48.3.0" dependencies: - "@es-joy/jsdoccomment": "npm:~0.42.0" + "@es-joy/jsdoccomment": "npm:~0.43.1" are-docs-informative: "npm:^0.0.2" comment-parser: "npm:1.4.1" debug: "npm:^4.3.4" escape-string-regexp: "npm:^4.0.0" esquery: "npm:^1.5.0" - is-builtin-module: "npm:^3.2.1" - semver: "npm:^7.6.0" + parse-imports: "npm:^2.1.0" + semver: "npm:^7.6.2" spdx-expression-parse: "npm:^4.0.0" + synckit: "npm:^0.9.0" peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - checksum: 10/f7ab4dc3fcac320fa11777c84bc5c30aa6e68b1121c5a11e7c00a37d1e24c6599a8addb2ae5f0c2f90cb92713e9010640ace7f21962e1e946a14fd70fe4a0b59 - languageName: node - linkType: hard - -"eslint-plugin-react-hooks@npm:^4.6.2": - 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: 10/5a0680941f34e70cf505bcb6082df31a3e445d193ee95a88ff3483041eb944f4cefdaf7e81b0eb1feb4eeceee8c7c6ddb8a2a6e8c4c0388514a42e16ac7b7a69 + checksum: 10/444f9cfb787c37d71c4fe13c8bd9b4536b625336990c67792b6106c06888e896ce3129beef8dca2550140c3b3f8413cd9d2d74c9479660ac1c2579535931d641 languageName: node linkType: hard -"eslint-plugin-react@npm:^7.34.1": - version: 7.34.1 - resolution: "eslint-plugin-react@npm:7.34.1" +"eslint-plugin-react@npm:^7.34.3": + version: 7.34.3 + resolution: "eslint-plugin-react@npm:7.34.3" dependencies: - array-includes: "npm:^3.1.7" - array.prototype.findlast: "npm:^1.2.4" + array-includes: "npm:^3.1.8" + array.prototype.findlast: "npm:^1.2.5" array.prototype.flatmap: "npm:^1.3.2" array.prototype.toreversed: "npm:^1.1.2" - array.prototype.tosorted: "npm:^1.1.3" + array.prototype.tosorted: "npm:^1.1.4" doctrine: "npm:^2.1.0" - es-iterator-helpers: "npm:^1.0.17" + es-iterator-helpers: "npm:^1.0.19" estraverse: "npm:^5.3.0" jsx-ast-utils: "npm:^2.4.1 || ^3.0.0" minimatch: "npm:^3.1.2" - object.entries: "npm:^1.1.7" - object.fromentries: "npm:^2.0.7" - object.hasown: "npm:^1.1.3" - object.values: "npm:^1.1.7" + object.entries: "npm:^1.1.8" + object.fromentries: "npm:^2.0.8" + object.hasown: "npm:^1.1.4" + object.values: "npm:^1.2.0" prop-types: "npm:^15.8.1" resolve: "npm:^2.0.0-next.5" semver: "npm:^6.3.1" - string.prototype.matchall: "npm:^4.0.10" + string.prototype.matchall: "npm:^4.0.11" peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - checksum: 10/ee059971065ea7e73ab5d8728774235c7dbf7a5e9f937c3b47e97f8fa9a5a96ab511d2ae6d5ec76a7e705ca666673d454f1e75a94033720819d041827f50f9c8 + checksum: 10/f160a5b0a376e520b0cd5e2b6111e91966533708842270e460e2f93a45c80f42dc79232a38a6ccb1a397b1d9deba06f6dc819333d9e1af55d392bf52b20d6c9b languageName: node linkType: hard -"eslint-plugin-sonarjs@npm:^0.23.0": - version: 0.23.0 - resolution: "eslint-plugin-sonarjs@npm:0.23.0" +"eslint-plugin-sonarjs@npm:^1.0.3": + version: 1.0.3 + resolution: "eslint-plugin-sonarjs@npm:1.0.3" peerDependencies: - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 10/1cfe063a979ab139b4fd75fcb8c9a478c5a43c3bb3126faffe19192c28ae199fab6570da01b6ed6430cdf52e2d79a93079105af2c568db5d029d312beea41a60 + eslint: ^8.0.0 || ^9.0.0 + checksum: 10/39667bb0eea863c4f49971dad85bdc1e38afb14682f68e94a66a7ed64e8479c8e85ae6d83c30bebd77e3588d88ba8f901613cf262aa0c7049df14d7e46caa4c4 languageName: node linkType: hard @@ -6051,57 +6220,60 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^7.2.2": - version: 7.2.2 - resolution: "eslint-scope@npm:7.2.2" +"eslint-scope@npm:^8.0.1": + version: 8.0.1 + resolution: "eslint-scope@npm:8.0.1" dependencies: esrecurse: "npm:^4.3.0" estraverse: "npm:^5.2.0" - checksum: 10/5c660fb905d5883ad018a6fea2b49f3cb5b1cbf2cd4bd08e98646e9864f9bc2c74c0839bed2d292e90a4a328833accc197c8f0baed89cbe8d605d6f918465491 + checksum: 10/458513863d3c79005b599f40250437bddba923f18549058ea45820a8d3d4bbc67fe292751d522a0cab69dd01fe211ffde5c1a5fc867e86f2d28727b1d61610da 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": +"eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" checksum: 10/3f357c554a9ea794b094a09bd4187e5eacd1bc0d0653c3adeb87962c548e6a1ab8f982b86963ae1337f5d976004146536dcee5d0e2806665b193fbfbf1a9231b languageName: node linkType: hard -"eslint@npm:^8.57.0": - version: 8.57.0 - resolution: "eslint@npm:8.57.0" +"eslint-visitor-keys@npm:^4.0.0": + version: 4.0.0 + resolution: "eslint-visitor-keys@npm:4.0.0" + checksum: 10/c7617166e6291a15ce2982b5c4b9cdfb6409f5c14562712d12e2584480cdf18609694b21d7dad35b02df0fa2cd037505048ded54d2f405c64f600949564eb334 + languageName: node + linkType: hard + +"eslint@npm:^9.5.0": + version: 9.5.0 + resolution: "eslint@npm:9.5.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.6.1" - "@eslint/eslintrc": "npm:^2.1.4" - "@eslint/js": "npm:8.57.0" - "@humanwhocodes/config-array": "npm:^0.11.14" + "@eslint/config-array": "npm:^0.16.0" + "@eslint/eslintrc": "npm:^3.1.0" + "@eslint/js": "npm:9.5.0" "@humanwhocodes/module-importer": "npm:^1.0.1" + "@humanwhocodes/retry": "npm:^0.3.0" "@nodelib/fs.walk": "npm:^1.2.8" - "@ungap/structured-clone": "npm:^1.2.0" ajv: "npm:^6.12.4" chalk: "npm:^4.0.0" cross-spawn: "npm:^7.0.2" debug: "npm:^4.3.2" - doctrine: "npm:^3.0.0" escape-string-regexp: "npm:^4.0.0" - eslint-scope: "npm:^7.2.2" - eslint-visitor-keys: "npm:^3.4.3" - espree: "npm:^9.6.1" - esquery: "npm:^1.4.2" + eslint-scope: "npm:^8.0.1" + eslint-visitor-keys: "npm:^4.0.0" + espree: "npm:^10.0.1" + esquery: "npm:^1.5.0" esutils: "npm:^2.0.2" fast-deep-equal: "npm:^3.1.3" - file-entry-cache: "npm:^6.0.1" + file-entry-cache: "npm:^8.0.0" find-up: "npm:^5.0.0" glob-parent: "npm:^6.0.2" - globals: "npm:^13.19.0" - graphemer: "npm:^1.4.0" ignore: "npm:^5.2.0" imurmurhash: "npm:^0.1.4" is-glob: "npm:^4.0.0" is-path-inside: "npm:^3.0.3" - js-yaml: "npm:^4.1.0" json-stable-stringify-without-jsonify: "npm:^1.0.1" levn: "npm:^0.4.1" lodash.merge: "npm:^4.6.2" @@ -6112,18 +6284,31 @@ __metadata: text-table: "npm:^0.2.0" bin: eslint: bin/eslint.js - checksum: 10/00496e218b23747a7a9817bf58b522276d0dc1f2e546dceb4eea49f9871574088f72f1f069a6b560ef537efa3a75261b8ef70e51ef19033da1cc4c86a755ef15 + checksum: 10/47578c242659a398638918c6f61a12c3e1e0ca71733769a54fdfd7be6d7c4ca0824694861846959829784b23cbfca5aad9599714dc0f4ae48ffdcdafbfe67bea languageName: node linkType: hard -"espree@npm:^9.6.0, espree@npm:^9.6.1": - version: 9.6.1 - resolution: "espree@npm:9.6.1" +"espree@npm:3.0.0-alpha-1": + version: 3.0.0-alpha-1 + resolution: "espree@npm:3.0.0-alpha-1" dependencies: - acorn: "npm:^8.9.0" + acorn: "npm:^2.6.4" + acorn-jsx: "npm:^2.0.1" + bin: + esparse: ./bin/esparse.js + esvalidate: ./bin/esvalidate.js + checksum: 10/e56859f23e6b82bec7410f0e08e457d2063e93f317332956febb8bd79ae261e3e8a34db2194df00f4c58f083d18b5c4867d922fb33bb6238bfa3476ff874e551 + languageName: node + linkType: hard + +"espree@npm:^10.0.1": + version: 10.1.0 + resolution: "espree@npm:10.1.0" + dependencies: + acorn: "npm:^8.12.0" acorn-jsx: "npm:^5.3.2" - eslint-visitor-keys: "npm:^3.4.1" - checksum: 10/255ab260f0d711a54096bdeda93adff0eadf02a6f9b92f02b323e83a2b7fc258797919437ad331efec3930475feb0142c5ecaaf3cdab4befebd336d47d3f3134 + eslint-visitor-keys: "npm:^4.0.0" + checksum: 10/a673aa39a19a51763d92272f8f3772ae3d4b10624740bb72d5f273b631b43f1a5a32b385c1da6ae6bc10be05a5913bc4679ebd22a09c7b336a745204834806ea languageName: node linkType: hard @@ -6137,7 +6322,7 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.4.0, esquery@npm:^1.4.2, esquery@npm:^1.5.0": +"esquery@npm:^1.4.0, esquery@npm:^1.5.0": version: 1.5.0 resolution: "esquery@npm:1.5.0" dependencies: @@ -6346,12 +6531,12 @@ __metadata: languageName: node linkType: hard -"file-entry-cache@npm:^6.0.1": - version: 6.0.1 - resolution: "file-entry-cache@npm:6.0.1" +"file-entry-cache@npm:^8.0.0": + version: 8.0.0 + resolution: "file-entry-cache@npm:8.0.0" dependencies: - flat-cache: "npm:^3.0.4" - checksum: 10/099bb9d4ab332cb93c48b14807a6918a1da87c45dce91d4b61fd40e6505d56d0697da060cb901c729c90487067d93c9243f5da3dc9c41f0358483bfdebca736b + flat-cache: "npm:^4.0.0" + checksum: 10/afe55c4de4e0d226a23c1eae62a7219aafb390859122608a89fa4df6addf55c7fd3f1a2da6f5b41e7cdff496e4cf28bbd215d53eab5c817afa96d2b40c81bfb0 languageName: node linkType: hard @@ -6445,14 +6630,13 @@ __metadata: languageName: node linkType: hard -"flat-cache@npm:^3.0.4": - version: 3.2.0 - resolution: "flat-cache@npm:3.2.0" +"flat-cache@npm:^4.0.0": + version: 4.0.1 + resolution: "flat-cache@npm:4.0.1" dependencies: flatted: "npm:^3.2.9" - keyv: "npm:^4.5.3" - rimraf: "npm:^3.0.2" - checksum: 10/02381c6ece5e9fa5b826c9bbea481d7fd77645d96e4b0b1395238124d581d10e56f17f723d897b6d133970f7a57f0fab9148cbbb67237a0a0ffe794ba60c0c70 + keyv: "npm:^4.5.4" + checksum: 10/58ce851d9045fffc7871ce2bd718bc485ad7e777bf748c054904b87c351ff1080c2c11da00788d78738bfb51b71e4d5ea12d13b98eb36e3358851ffe495b62dc languageName: node linkType: hard @@ -6699,11 +6883,11 @@ __metadata: linkType: hard "get-tsconfig@npm:^4.5.0": - version: 4.7.4 - resolution: "get-tsconfig@npm:4.7.4" + version: 4.7.5 + resolution: "get-tsconfig@npm:4.7.5" dependencies: resolve-pkg-maps: "npm:^1.0.0" - checksum: 10/cd403df998476826cf3acddd8add87f16272461bf9f2faa85d295fe5ea2d3430a612c9f3e6387f9dc6df95ffe438d657ec48363a8e36c400aa483ab569bb411d + checksum: 10/de7de5e4978354e8e6d9985baf40ea32f908a13560f793bc989930c229cc8d5c3f7b6b2896d8e43eb1a9b4e9e30018ef4b506752fd2a4b4d0dfee4af6841b119 languageName: node linkType: hard @@ -6788,12 +6972,17 @@ __metadata: languageName: node linkType: hard -"globals@npm:^13.19.0": - version: 13.24.0 - resolution: "globals@npm:13.24.0" - dependencies: - type-fest: "npm:^0.20.2" - checksum: 10/62c5b1997d06674fc7191d3e01e324d3eda4d65ac9cc4e78329fa3b5c4fd42a0e1c8722822497a6964eee075255ce21ccf1eec2d83f92ef3f06653af4d0ee28e +"globals@npm:^14.0.0": + version: 14.0.0 + resolution: "globals@npm:14.0.0" + checksum: 10/03939c8af95c6df5014b137cac83aa909090c3a3985caef06ee9a5a669790877af8698ab38007e4c0186873adc14c0b13764acc754b16a754c216cc56aa5f021 + languageName: node + linkType: hard + +"globals@npm:^15.6.0": + version: 15.6.0 + resolution: "globals@npm:15.6.0" + checksum: 10/9b522b1eff444acaf331b0da7f072d5ef75b1cde02d89b3656039252f01b6bcda7a9ea42128e8644117c0ede9116249b1bcf830458b7dbe19fafd4de916a3dc0 languageName: node linkType: hard @@ -7113,7 +7302,7 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^5.2.0, ignore@npm:^5.2.4": +"ignore@npm:^5.2.0, ignore@npm:^5.2.4, ignore@npm:^5.3.1": version: 5.3.1 resolution: "ignore@npm:5.3.1" checksum: 10/0a884c2fbc8c316f0b9f92beaf84464253b73230a4d4d286697be45fca081199191ca33e1c2e82d9e5f851f5e9a48a78e25a35c951e7eb41e59f150db3530065 @@ -7355,15 +7544,6 @@ __metadata: languageName: node linkType: hard -"is-builtin-module@npm:^3.2.1": - version: 3.2.1 - resolution: "is-builtin-module@npm:3.2.1" - dependencies: - builtin-modules: "npm:^3.3.0" - checksum: 10/e8f0ffc19a98240bda9c7ada84d846486365af88d14616e737d280d378695c8c448a621dcafc8332dbf0fcd0a17b0763b845400709963fa9151ddffece90ae88 - languageName: node - linkType: hard - "is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": version: 1.2.7 resolution: "is-callable@npm:1.2.7" @@ -7380,7 +7560,16 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.0, is-core-module@npm:^2.13.1, is-core-module@npm:^2.8.1": +"is-core-module@npm:^2.11.0, is-core-module@npm:^2.13.1": + version: 2.14.0 + resolution: "is-core-module@npm:2.14.0" + dependencies: + hasown: "npm:^2.0.2" + checksum: 10/1e0d1a16cb3a94746f6a28db09ccab4562860c94c74bacedb3a6729736d61cfb97001d2052f9622637aa7ea8e0643a3f0f4f16965c70ba6ce30a8ccfe8074af8 + languageName: node + linkType: hard + +"is-core-module@npm:^2.13.0, is-core-module@npm:^2.8.1": version: 2.13.1 resolution: "is-core-module@npm:2.13.1" dependencies: @@ -8587,7 +8776,7 @@ __metadata: languageName: node linkType: hard -"keyv@npm:^4.5.3": +"keyv@npm:^4.5.4": version: 4.5.4 resolution: "keyv@npm:4.5.4" dependencies: @@ -8972,17 +9161,23 @@ __metadata: version: 0.0.0-use.local resolution: "lynxts@workspace:." dependencies: + "@eslint/compat": "npm:^1.1.0" + "@eslint/eslintrc": "npm:^3.1.0" + "@eslint/js": "npm:^9.5.0" + "@stylistic/eslint-plugin": "npm:^2.2.2" + "@types/eslint__eslintrc": "npm:^2.1.1" + "@types/eslint__js": "npm:^8.42.3" "@types/node": "npm:^20.12.10" - "@typescript-eslint/eslint-plugin": "npm:^6.21.0" - "@typescript-eslint/parser": "npm:^6.21.0" - eslint: "npm:^8.57.0" + eslint: "npm:^9.5.0" eslint-import-resolver-typescript: "npm:^3.6.1" + eslint-plugin-deprecation: "npm:^3.0.0" eslint-plugin-etc: "npm:^2.0.3" + eslint-plugin-extra-rules: "npm:^0.0.0-development" eslint-plugin-import: "npm:^2.29.1" - eslint-plugin-jsdoc: "npm:^48.2.3" - eslint-plugin-react: "npm:^7.34.1" - eslint-plugin-react-hooks: "npm:^4.6.2" - eslint-plugin-sonarjs: "npm:^0.23.0" + eslint-plugin-jsdoc: "npm:^48.3.0" + eslint-plugin-react: "npm:^7.34.3" + eslint-plugin-sonarjs: "npm:^1.0.3" + globals: "npm:^15.6.0" semantic-release: "npm:^23.0.8" ts-node: "npm:^10.9.2" tslib: "npm:^2.6.2" @@ -8991,6 +9186,7 @@ __metadata: typedoc-plugin-markdown: "npm:^4.0.1" typedoc-plugin-merge-modules: "npm:^5.1.0" typescript: "npm:^5.4.5" + typescript-eslint: "npm:^7.13.1" languageName: unknown linkType: soft @@ -9428,15 +9624,6 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:9.0.3": - version: 9.0.3 - resolution: "minimatch@npm:9.0.3" - dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 10/c81b47d28153e77521877649f4bab48348d10938df9e8147a58111fe00ef89559a2938de9f6632910c4f7bf7bb5cd81191a546167e58d357f0cfb1e18cecc1c5 - languageName: node - linkType: hard - "minimatch@npm:^3.0.2, minimatch@npm:^3.0.4, minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" @@ -10079,7 +10266,7 @@ __metadata: languageName: node linkType: hard -"object.entries@npm:^1.1.7": +"object.entries@npm:^1.1.8": version: 1.1.8 resolution: "object.entries@npm:1.1.8" dependencies: @@ -10090,7 +10277,7 @@ __metadata: languageName: node linkType: hard -"object.fromentries@npm:^2.0.7": +"object.fromentries@npm:^2.0.7, object.fromentries@npm:^2.0.8": version: 2.0.8 resolution: "object.fromentries@npm:2.0.8" dependencies: @@ -10113,7 +10300,7 @@ __metadata: languageName: node linkType: hard -"object.hasown@npm:^1.1.3": +"object.hasown@npm:^1.1.4": version: 1.1.4 resolution: "object.hasown@npm:1.1.4" dependencies: @@ -10124,7 +10311,7 @@ __metadata: languageName: node linkType: hard -"object.values@npm:^1.1.6, object.values@npm:^1.1.7": +"object.values@npm:^1.1.6, object.values@npm:^1.1.7, object.values@npm:^1.2.0": version: 1.2.0 resolution: "object.values@npm:1.2.0" dependencies: @@ -10407,6 +10594,16 @@ __metadata: languageName: node linkType: hard +"parse-imports@npm:^2.1.0": + version: 2.1.0 + resolution: "parse-imports@npm:2.1.0" + dependencies: + es-module-lexer: "npm:^1.5.3" + slashes: "npm:^3.0.12" + checksum: 10/2b4210c6af5309cc8e4f5d7f8eb8c628b2df690e456d4a686d3b618d7ca165e6b13ac9f64dfabc714e0d3bcefff70a0e771cdadc7fd6873e62d70c13d246e7d1 + languageName: node + linkType: hard + "parse-json@npm:^4.0.0": version: 4.0.0 resolution: "parse-json@npm:4.0.0" @@ -10579,6 +10776,13 @@ __metadata: languageName: node linkType: hard +"picomatch@npm:^4.0.2": + version: 4.0.2 + resolution: "picomatch@npm:4.0.2" + checksum: 10/ce617b8da36797d09c0baacb96ca8a44460452c89362d7cb8f70ca46b4158ba8bc3606912de7c818eb4a939f7f9015cef3c766ec8a0c6bfc725fdc078e39c717 + languageName: node + linkType: hard + "pify@npm:^3.0.0": version: 3.0.0 resolution: "pify@npm:3.0.0" @@ -10858,6 +11062,13 @@ __metadata: languageName: node linkType: hard +"quote@npm:0.4.0": + version: 0.4.0 + resolution: "quote@npm:0.4.0" + checksum: 10/862ced698117042603ca51e9fb7783108fbd043b6b8e5db497d207a2f18cd7980dd7554643fe5a2b7ed82c80b272155856e73f482531abb7bd2731a803985f6f + languageName: node + linkType: hard + "randombytes@npm:^2.1.0": version: 2.1.0 resolution: "randombytes@npm:2.1.0" @@ -11638,6 +11849,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.6.2": + version: 7.6.2 + resolution: "semver@npm:7.6.2" + bin: + semver: bin/semver.js + checksum: 10/296b17d027f57a87ef645e9c725bff4865a38dfc9caf29b26aa084b85820972fbe7372caea1ba6857162fa990702c6d9c1d82297cecb72d56c78ab29070d2ca2 + languageName: node + linkType: hard + "send@npm:0.18.0": version: 0.18.0 resolution: "send@npm:0.18.0" @@ -11866,6 +12086,13 @@ __metadata: languageName: node linkType: hard +"slashes@npm:^3.0.12": + version: 3.0.12 + resolution: "slashes@npm:3.0.12" + checksum: 10/c221d73765013db64f3eaf49dacc6b99a5d5477e63720c1bb71d1af647965dda23ab100ca1eb622e080f11ffe68e1e0a233b7b908073260bed4ec819ff1d3e42 + languageName: node + linkType: hard + "slice-ansi@npm:^2.0.0": version: 2.1.0 resolution: "slice-ansi@npm:2.1.0" @@ -12117,7 +12344,7 @@ __metadata: languageName: node linkType: hard -"string.prototype.matchall@npm:^4.0.10": +"string.prototype.matchall@npm:^4.0.11": version: 4.0.11 resolution: "string.prototype.matchall@npm:4.0.11" dependencies: @@ -12349,6 +12576,16 @@ __metadata: languageName: node linkType: hard +"synckit@npm:^0.9.0": + version: 0.9.0 + resolution: "synckit@npm:0.9.0" + dependencies: + "@pkgr/core": "npm:^0.1.0" + tslib: "npm:^2.6.2" + checksum: 10/e93f3f5ee43fa71d3bb2a345049642d9034f34fa9528706b5ef26e825335ca5446143c56c2b041810afe26aa6e343583ff08525f5530618a4707375270f87be1 + languageName: node + linkType: hard + "tapable@npm:^2.2.0": version: 2.2.1 resolution: "tapable@npm:2.2.1" @@ -12592,7 +12829,7 @@ __metadata: languageName: node linkType: hard -"ts-api-utils@npm:^1.0.1": +"ts-api-utils@npm:^1.3.0": version: 1.3.0 resolution: "ts-api-utils@npm:1.3.0" peerDependencies: @@ -12658,7 +12895,14 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.6.2": +"tslib@npm:^2.0.0, tslib@npm:^2.3.1": + version: 2.6.3 + resolution: "tslib@npm:2.6.3" + checksum: 10/52109bb681f8133a2e58142f11a50e05476de4f075ca906d13b596ae5f7f12d30c482feb0bff167ae01cfc84c5803e575a307d47938999246f5a49d174fc558c + languageName: node + linkType: hard + +"tslib@npm:^2.0.1, tslib@npm:^2.6.2": version: 2.6.2 resolution: "tslib@npm:2.6.2" checksum: 10/bd26c22d36736513980091a1e356378e8b662ded04204453d353a7f34a4c21ed0afc59b5f90719d4ba756e581a162ecbf93118dc9c6be5acf70aa309188166ca @@ -12790,13 +13034,6 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^0.20.2": - version: 0.20.2 - resolution: "type-fest@npm:0.20.2" - checksum: 10/8907e16284b2d6cfa4f4817e93520121941baba36b39219ea36acfe64c86b9dbc10c9941af450bd60832c8f43464974d51c0957f9858bc66b952b66b6914cbb9 - languageName: node - linkType: hard - "type-fest@npm:^0.21.3": version: 0.21.3 resolution: "type-fest@npm:0.21.3" @@ -12939,6 +13176,22 @@ __metadata: languageName: node linkType: hard +"typescript-eslint@npm:^7.13.1": + version: 7.13.1 + resolution: "typescript-eslint@npm:7.13.1" + dependencies: + "@typescript-eslint/eslint-plugin": "npm:7.13.1" + "@typescript-eslint/parser": "npm:7.13.1" + "@typescript-eslint/utils": "npm:7.13.1" + peerDependencies: + eslint: ^8.56.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10/01f4578c6174b5266f8082fbf069218145eae7cd175982c0460508c32dd0461f96c71c33727c4140e80f8ed1d649d9e2fd28ee9eaf6a5f4fd9707cc3461a95d1 + languageName: node + linkType: hard + "typescript@npm:^5.4.5": version: 5.4.5 resolution: "typescript@npm:5.4.5"