diff --git a/beachball.config.js b/beachball.config.js index a12a15e597..cb0e893091 100644 --- a/beachball.config.js +++ b/beachball.config.js @@ -5,9 +5,9 @@ module.exports = { renderEntry: entry => { if (entry.author === 'beachball') { return `- ${entry.comment}`; - } - // Imitate GitHub's commit format https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/autolinked-references-and-urls#commit-shas - return `- ${entry.comment} ([ni/nimble@${entry.commit.substring(0,7)}](https://github.com/ni/nimble/commit/${entry.commit}))`; + } + // Imitate GitHub's commit format https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/autolinked-references-and-urls#commit-shas + return `- ${entry.comment} ([ni/nimble@${entry.commit.substring(0, 7)}](https://github.com/ni/nimble/commit/${entry.commit}))`; } } } diff --git a/change/@ni-jasmine-parameterized-6c99369c-d30b-42ad-a468-fe1ff92ddb2c.json b/change/@ni-jasmine-parameterized-6c99369c-d30b-42ad-a468-fe1ff92ddb2c.json new file mode 100644 index 0000000000..b2469a1adb --- /dev/null +++ b/change/@ni-jasmine-parameterized-6c99369c-d30b-42ad-a468-fe1ff92ddb2c.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "Upgrade to ESLint v9 and update the configuration to use the flat configuration format", + "packageName": "@ni/jasmine-parameterized", + "email": "131153319+gokulprasanth-ni@users.noreply.github.com", + "dependentChangeType": "patch" +} diff --git a/change/@ni-nimble-angular-937e837a-be00-4a16-903c-eeb28cb80ece.json b/change/@ni-nimble-angular-937e837a-be00-4a16-903c-eeb28cb80ece.json new file mode 100644 index 0000000000..4d6b0b6fdc --- /dev/null +++ b/change/@ni-nimble-angular-937e837a-be00-4a16-903c-eeb28cb80ece.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "Upgrade to ESLint v9 and update the configuration to use the flat configuration format", + "packageName": "@ni/nimble-angular", + "email": "131153319+gokulprasanth-ni@users.noreply.github.com", + "dependentChangeType": "patch" +} diff --git a/change/@ni-nimble-components-e929d5b5-c2c0-4bad-806d-11da32c128a1.json b/change/@ni-nimble-components-e929d5b5-c2c0-4bad-806d-11da32c128a1.json new file mode 100644 index 0000000000..6eb3c8ff41 --- /dev/null +++ b/change/@ni-nimble-components-e929d5b5-c2c0-4bad-806d-11da32c128a1.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "Upgrade to ESLint v9 and update the configuration to use the flat configuration format", + "packageName": "@ni/nimble-components", + "email": "131153319+gokulprasanth-ni@users.noreply.github.com", + "dependentChangeType": "patch" +} diff --git a/change/@ni-nimble-react-e8da0210-a00f-4054-9cbf-b71956d06c73.json b/change/@ni-nimble-react-e8da0210-a00f-4054-9cbf-b71956d06c73.json new file mode 100644 index 0000000000..50a9799390 --- /dev/null +++ b/change/@ni-nimble-react-e8da0210-a00f-4054-9cbf-b71956d06c73.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "Upgrade to ESLint v9 and update the configuration to use the flat configuration format", + "packageName": "@ni/nimble-react", + "email": "131153319+gokulprasanth-ni@users.noreply.github.com", + "dependentChangeType": "patch" +} diff --git a/change/@ni-nimble-tokens-a1709922-af92-4354-abd5-8c978855ec81.json b/change/@ni-nimble-tokens-a1709922-af92-4354-abd5-8c978855ec81.json new file mode 100644 index 0000000000..ee0f64cb56 --- /dev/null +++ b/change/@ni-nimble-tokens-a1709922-af92-4354-abd5-8c978855ec81.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "Upgrade to ESLint v9 and update the configuration to use the flat configuration format", + "packageName": "@ni/nimble-tokens", + "email": "131153319+gokulprasanth-ni@users.noreply.github.com", + "dependentChangeType": "patch" +} diff --git a/change/@ni-ok-angular-b7bd1dbd-32e4-4feb-a577-b0888cc9b400.json b/change/@ni-ok-angular-b7bd1dbd-32e4-4feb-a577-b0888cc9b400.json new file mode 100644 index 0000000000..d9a6b9428c --- /dev/null +++ b/change/@ni-ok-angular-b7bd1dbd-32e4-4feb-a577-b0888cc9b400.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "Upgrade to ESLint v9 and update the configuration to use the flat configuration format", + "packageName": "@ni/ok-angular", + "email": "131153319+gokulprasanth-ni@users.noreply.github.com", + "dependentChangeType": "patch" +} diff --git a/change/@ni-ok-components-46c91ea3-1caa-4928-9d60-dca9c02b5797.json b/change/@ni-ok-components-46c91ea3-1caa-4928-9d60-dca9c02b5797.json new file mode 100644 index 0000000000..9e0347b36d --- /dev/null +++ b/change/@ni-ok-components-46c91ea3-1caa-4928-9d60-dca9c02b5797.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "Upgrade to ESLint v9 and update the configuration to use the flat configuration format", + "packageName": "@ni/ok-components", + "email": "131153319+gokulprasanth-ni@users.noreply.github.com", + "dependentChangeType": "patch" +} diff --git a/change/@ni-ok-react-7a9c8a7b-7a2e-407f-ac4e-d1ef241f23fa.json b/change/@ni-ok-react-7a9c8a7b-7a2e-407f-ac4e-d1ef241f23fa.json new file mode 100644 index 0000000000..14c5d854f3 --- /dev/null +++ b/change/@ni-ok-react-7a9c8a7b-7a2e-407f-ac4e-d1ef241f23fa.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "Upgrade to ESLint v9 and update the configuration to use the flat configuration format", + "packageName": "@ni/ok-react", + "email": "131153319+gokulprasanth-ni@users.noreply.github.com", + "dependentChangeType": "patch" +} diff --git a/change/@ni-spright-angular-2c887b6f-ab13-4675-ab28-e2289e1d47b6.json b/change/@ni-spright-angular-2c887b6f-ab13-4675-ab28-e2289e1d47b6.json new file mode 100644 index 0000000000..b24050715f --- /dev/null +++ b/change/@ni-spright-angular-2c887b6f-ab13-4675-ab28-e2289e1d47b6.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "Upgrade to ESLint v9 and update the configuration to use the flat configuration format", + "packageName": "@ni/spright-angular", + "email": "131153319+gokulprasanth-ni@users.noreply.github.com", + "dependentChangeType": "patch" +} diff --git a/change/@ni-spright-components-1c5f0ac7-e548-406d-bb8b-7b0273c385ab.json b/change/@ni-spright-components-1c5f0ac7-e548-406d-bb8b-7b0273c385ab.json new file mode 100644 index 0000000000..507425460f --- /dev/null +++ b/change/@ni-spright-components-1c5f0ac7-e548-406d-bb8b-7b0273c385ab.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "Upgrade to ESLint v9 and update the configuration to use the flat configuration format", + "packageName": "@ni/spright-components", + "email": "131153319+gokulprasanth-ni@users.noreply.github.com", + "dependentChangeType": "patch" +} diff --git a/change/@ni-spright-react-003b5663-da8a-4258-8d7b-b06dfbf0c21c.json b/change/@ni-spright-react-003b5663-da8a-4258-8d7b-b06dfbf0c21c.json new file mode 100644 index 0000000000..81b54ee1cb --- /dev/null +++ b/change/@ni-spright-react-003b5663-da8a-4258-8d7b-b06dfbf0c21c.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "Upgrade to ESLint v9 and update the configuration to use the flat configuration format", + "packageName": "@ni/spright-react", + "email": "131153319+gokulprasanth-ni@users.noreply.github.com", + "dependentChangeType": "patch" +} diff --git a/change/@ni-xliff-to-json-converter-dbea0b57-91b1-4a06-b7b9-07111d48a4b4.json b/change/@ni-xliff-to-json-converter-dbea0b57-91b1-4a06-b7b9-07111d48a4b4.json new file mode 100644 index 0000000000..7696ab73f1 --- /dev/null +++ b/change/@ni-xliff-to-json-converter-dbea0b57-91b1-4a06-b7b9-07111d48a4b4.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "Upgrade to ESLint v9 and update the configuration to use the flat configuration format", + "packageName": "@ni/xliff-to-json-converter", + "email": "131153319+gokulprasanth-ni@users.noreply.github.com", + "dependentChangeType": "patch" +} diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000000..225225b883 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,11 @@ +import { defineConfig, globalIgnores } from 'eslint/config'; +import { lintNimbleConfig, javascriptNimbleConfig } from '@ni-private/eslint-config-nimble'; + +export default defineConfig([ + globalIgnores(['**/packages/']), + lintNimbleConfig, + { + files: ['**/*.js'], + extends: javascriptNimbleConfig + } +]); diff --git a/package-lock.json b/package-lock.json index ac91bddf8b..1129aed22e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -42,9 +42,9 @@ } }, "node_modules/@11ty/dependency-tree": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@11ty/dependency-tree/-/dependency-tree-4.0.0.tgz", - "integrity": "sha512-PTOnwM8Xt+GdJmwRKg4pZ8EKAgGoK7pedZBfNSOChXu8MYk2FdEsxdJYecX4t62owpGw3xK60q9TQv/5JI59jw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@11ty/dependency-tree/-/dependency-tree-4.0.1.tgz", + "integrity": "sha512-6EPI9ZkGU4BX2KNZpWlf4WdV3vrmIWQpn//nAXicTzdPubI3jZlmFdqEv0Yj5M7oavRUGNzw9GbV9cBxhulZWw==", "dev": true, "license": "MIT", "dependencies": { @@ -52,9 +52,9 @@ } }, "node_modules/@11ty/dependency-tree-esm": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@11ty/dependency-tree-esm/-/dependency-tree-esm-2.0.2.tgz", - "integrity": "sha512-kSTmXneksQLBhwsfqjxiSi9ecRKENXmRtT5RG95rFoWSI8kkwLcGlYpoXsPkCD9uQwSU1rmDzXBDnqUJlWaIyw==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@11ty/dependency-tree-esm/-/dependency-tree-esm-2.0.3.tgz", + "integrity": "sha512-zlcfZq5WC9ksnLeLBROshNeE9P1jvOAPvUY9787cND/7SKf+QM7RGjNyF5taoCQww12B6Dx0Y9cwXsNbRipzlA==", "dev": true, "license": "MIT", "dependencies": { @@ -218,9 +218,9 @@ } }, "node_modules/@11ty/posthtml-urls": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@11ty/posthtml-urls/-/posthtml-urls-1.0.1.tgz", - "integrity": "sha512-6EFN/yYSxC/OzYXpq4gXDyDMlX/W+2MgCvvoxf11X1z76bqkqFJ8eep5RiBWfGT5j0323a1pwpelcJJdR46MCw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@11ty/posthtml-urls/-/posthtml-urls-1.0.2.tgz", + "integrity": "sha512-0vaV3Wt0surZ+oS1VdKKe0axeeupuM+l7W/Z866WFQwF+dGg2Tc/nmhk/5l74/Y55P8KyImnLN9CdygNw2huHg==", "dev": true, "license": "MIT", "dependencies": { @@ -234,9 +234,9 @@ } }, "node_modules/@11ty/recursive-copy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@11ty/recursive-copy/-/recursive-copy-4.0.2.tgz", - "integrity": "sha512-174nFXxL/6KcYbLYpra+q3nDbfKxLxRTNVY1atq2M1pYYiPfHse++3IFNl8mjPFsd7y2qQjxLORzIjHMjL3NDQ==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@11ty/recursive-copy/-/recursive-copy-4.0.3.tgz", + "integrity": "sha512-SX48BTLEGX8T/OsKWORsHAAeiDsbFl79Oa/0Wg/mv/d27b7trCVZs7fMHvpSgDvZz/fZqx5rDk8+nx5oyT7xBw==", "dev": true, "license": "ISC", "dependencies": { @@ -282,7 +282,6 @@ "version": "0.1802.21", "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1802.21.tgz", "integrity": "sha512-+Ll+xtpKwZ3iLWN/YypvnCZV/F0MVbP+/7ZpMR+Xv/uB0OmribhBVj9WGaCd9I/bGgoYBw8wBV/NFNCKkf0k3Q==", - "dev": true, "license": "MIT", "dependencies": { "@angular-devkit/core": "18.2.21", @@ -298,7 +297,6 @@ "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" @@ -437,7 +435,6 @@ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -715,7 +712,6 @@ "version": "18.2.21", "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-18.2.21.tgz", "integrity": "sha512-Lno6GNbJME85wpc/uqn+wamBxvfZJZFYSH8+oAkkyjU/hk8r5+X8DuyqsKAa0m8t46zSTUsonHsQhVe5vgrZeQ==", - "dev": true, "license": "MIT", "dependencies": { "ajv": "8.17.1", @@ -743,7 +739,6 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz", "integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==", - "dev": true, "license": "MIT", "engines": { "node": ">=12" @@ -756,7 +751,6 @@ "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" @@ -766,7 +760,6 @@ "version": "18.2.21", "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-18.2.21.tgz", "integrity": "sha512-yuC2vN4VL48JhnsaOa9J/o0Jl+cxOklRNQp5J2/ypMuRROaVCrZAPiX+ChSHh++kHYMpj8+ggNrrUwRNfMKACQ==", - "dev": true, "license": "MIT", "dependencies": { "@angular-devkit/core": "18.2.21", @@ -785,7 +778,6 @@ "version": "7.8.1", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dev": true, "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" @@ -795,7 +787,6 @@ "version": "18.4.3", "resolved": "https://registry.npmjs.org/@angular-eslint/builder/-/builder-18.4.3.tgz", "integrity": "sha512-NzmrXlr7GFE+cjwipY/CxBscZXNqnuK0us1mO6Z2T6MeH6m+rRcdlY/rZyKoRniyNNvuzl6vpEsfMIMmnfebrA==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -811,14 +802,13 @@ "version": "18.4.3", "resolved": "https://registry.npmjs.org/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-18.4.3.tgz", "integrity": "sha512-zdrA8mR98X+U4YgHzUKmivRU+PxzwOL/j8G7eTOvBuq8GPzsP+hvak+tyxlgeGm9HsvpFj9ERHLtJ0xDUPs8fg==", - "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@angular-eslint/eslint-plugin": { "version": "18.4.3", "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin/-/eslint-plugin-18.4.3.tgz", "integrity": "sha512-AyJbupiwTBR81P6T59v+aULEnPpZBCBxL2S5QFWfAhNCwWhcof4GihvdK2Z87yhvzDGeAzUFSWl/beJfeFa+PA==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -835,7 +825,6 @@ "version": "18.4.3", "resolved": "https://registry.npmjs.org/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-18.4.3.tgz", "integrity": "sha512-ijGlX2N01ayMXTpeQivOA31AszO8OEbu9ZQUCxnu9AyMMhxyi2q50bujRChAvN9YXQfdQtbxuajxV6+aiWb5BQ==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -855,8 +844,8 @@ "version": "18.4.3", "resolved": "https://registry.npmjs.org/@angular-eslint/schematics/-/schematics-18.4.3.tgz", "integrity": "sha512-D5maKn5e6n58+8n7jLFLD4g+RGPOPeDSsvPc1sqial5tEKLxAJQJS9WZ28oef3bhkob6C60D+1H0mMmEEVvyVA==", - "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@angular-devkit/core": ">= 18.0.0 < 19.0.0", "@angular-devkit/schematics": ">= 18.0.0 < 19.0.0", @@ -871,8 +860,8 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-6.0.2.tgz", "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==", - "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 4" } @@ -881,8 +870,8 @@ "version": "7.6.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", - "dev": true, "license": "ISC", + "peer": true, "bin": { "semver": "bin/semver.js" }, @@ -894,7 +883,6 @@ "version": "18.4.3", "resolved": "https://registry.npmjs.org/@angular-eslint/template-parser/-/template-parser-18.4.3.tgz", "integrity": "sha512-JZMPtEB8yNip3kg4WDEWQyObSo2Hwf+opq2ElYuwe85GQkGhfJSJ2CQYo4FSwd+c5MUQAqESNRg9QqGYauDsiw==", - "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -910,8 +898,8 @@ "version": "18.4.3", "resolved": "https://registry.npmjs.org/@angular-eslint/utils/-/utils-18.4.3.tgz", "integrity": "sha512-w0bJ9+ELAEiPBSTPPm9bvDngfu1d8JbzUhvs2vU+z7sIz/HMwUZT5S4naypj2kNN0gZYGYrW0lt+HIbW87zTAQ==", - "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@angular-eslint/bundled-angular-compiler": "18.4.3" }, @@ -1787,7 +1775,6 @@ "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", @@ -1962,7 +1949,6 @@ "resolved": "https://registry.npmjs.org/@angular/common/-/common-18.2.14.tgz", "integrity": "sha512-ZPRswzaVRiqcfZoowuAM22Hr2/z10ajWOUoFDoQ9tWqz/fH/773kJv2F9VvePIekgNPCzaizqv9gF6tGNqaAwg==", "license": "MIT", - "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -1979,7 +1965,6 @@ "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-18.2.14.tgz", "integrity": "sha512-Mpq3v/mztQzGAQAAFV+wAI1hlXxZ0m8eDBgaN2kD3Ue+r4S6bLm1Vlryw0iyUnt05PcFIdxPT6xkcphq5pl6lw==", "license": "MIT", - "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -2000,7 +1985,6 @@ "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-18.2.14.tgz", "integrity": "sha512-BmmjyrFSBSYkm0tBSqpu4cwnJX/b/XvhM36mj2k8jah3tNS5zLDDx5w6tyHmaPJa/1D95MlXx2h6u7K9D+Mhew==", "license": "MIT", - "peer": true, "dependencies": { "@babel/core": "7.25.2", "@jridgewell/sourcemap-codec": "^1.4.14", @@ -2102,7 +2086,6 @@ "resolved": "https://registry.npmjs.org/@angular/core/-/core-18.2.14.tgz", "integrity": "sha512-BIPrCs93ZZTY9ym7yfoTgAQ5rs706yoYeAdrgc8kh/bDbM9DawxKlgeKBx2FLt09Y0YQ1bFhKVp0cV4gDEaMxQ==", "license": "MIT", - "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -2119,7 +2102,6 @@ "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-18.2.14.tgz", "integrity": "sha512-fZVwXctmBJa5VdopJae/T9MYKPXNd04+6j4k/6X819y+9fiyWLJt2QicSc5Rc+YD9mmhXag3xaljlrnotf9VGA==", "license": "MIT", - "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -2138,7 +2120,6 @@ "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-18.2.14.tgz", "integrity": "sha512-VRe169SRSKxJfxJ+oZONwph0llTQHGrH9MhMjoej7XqTH3EVzrYJBNcS9j7Jhd0O/aKSfPY/wIJBeKUn+4O4gQ==", "license": "MIT", - "peer": true, "dependencies": { "@babel/core": "7.25.2", "@types/babel__core": "7.20.5", @@ -2224,7 +2205,6 @@ "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-18.2.14.tgz", "integrity": "sha512-W+JTxI25su3RiZVZT3Yrw6KNUCmOIy7OZIZ+612skPgYK2f2qil7VclnW1oCwG896h50cMJU/lnAfxZxefQgyQ==", "license": "MIT", - "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -2265,7 +2245,6 @@ "resolved": "https://registry.npmjs.org/@angular/router/-/router-18.2.14.tgz", "integrity": "sha512-v/gweh8MBjjDfh1QssuyjISa+6SVVIvIZox7MaMs81RkaoVHwS9grDtPud1pTKHzms2KxSVpvwwyvkRJQplueg==", "license": "MIT", - "peer": true, "dependencies": { "tslib": "^2.3.0" }, @@ -2307,7 +2286,6 @@ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz", "integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==", "license": "MIT", - "peer": true, "dependencies": { "@ampproject/remapping": "^2.2.0", "@babel/code-frame": "^7.26.2", @@ -3894,7 +3872,6 @@ "integrity": "sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/compat-data": "^7.26.8", "@babel/helper-compilation-targets": "^7.26.5", @@ -4407,6 +4384,7 @@ "integrity": "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==", "license": "MIT", "optional": true, + "peer": true, "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" @@ -4418,6 +4396,7 @@ "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", "license": "MIT", "optional": true, + "peer": true, "dependencies": { "tslib": "^2.4.0" } @@ -4428,6 +4407,7 @@ "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", "license": "MIT", "optional": true, + "peer": true, "dependencies": { "tslib": "^2.4.0" } @@ -4443,6 +4423,7 @@ "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.71.0.tgz", "integrity": "sha512-2p9+dXWNQnp5Kq/V0XVWZiVAabzlX6rUW8vXXvtX8Yc1CkKgD93IPDEnv1sYZFkkS6HMvg6H0RMZfob/Co0YXA==", "license": "MIT", + "peer": true, "dependencies": { "@types/estree": "^1.0.8", "@typescript-eslint/types": "^8.46.0", @@ -4877,6 +4858,7 @@ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", "license": "MIT", + "peer": true, "dependencies": { "eslint-visitor-keys": "^3.4.3" }, @@ -4895,6 +4877,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", "license": "Apache-2.0", + "peer": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" }, @@ -4907,28 +4890,71 @@ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", "license": "MIT", + "peer": true, "engines": { "node": "^12.0.0 || ^14.0.0 || >=16.0.0" } }, + "node_modules/@eslint/config-array": { + "version": "0.21.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.1.tgz", + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.3.tgz", + "integrity": "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ==", "license": "MIT", + "peer": true, "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", + "espree": "^10.0.1", + "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", + "js-yaml": "^4.1.1", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -4939,6 +4965,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -4950,48 +4977,48 @@ "url": "https://github.com/sponsors/epoberezkin" } }, - "node_modules/@eslint/eslintrc/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "license": "Apache-2.0", + "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "license": "MIT", + "peer": true + }, + "node_modules/@eslint/js": { + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.39.1.tgz", + "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", + "license": "MIT", + "peer": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" } }, - "node_modules/@eslint/eslintrc/node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "license": "Apache-2.0", + "peer": true, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, - "node_modules/@eslint/eslintrc/node_modules/json-schema-traverse": { + "node_modules/@eslint/plugin-kit": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" - }, - "node_modules/@eslint/js": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.1.tgz", - "integrity": "sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==", - "license": "MIT", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "license": "Apache-2.0", + "peer": true, + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" } }, "node_modules/@formatjs/ecma402-abstract": { @@ -5050,19 +5077,28 @@ "tslib": "^2.8.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", - "integrity": "sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", "license": "Apache-2.0", + "peer": true, "dependencies": { - "@humanwhocodes/object-schema": "^2.0.3", - "debug": "^4.3.1", - "minimatch": "^3.0.5" + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" }, "engines": { - "node": ">=10.10.0" + "node": ">=18.18.0" } }, "node_modules/@humanwhocodes/module-importer": { @@ -5070,6 +5106,7 @@ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=12.22" }, @@ -5078,12 +5115,19 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.3.tgz", - "integrity": "sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==", - "deprecated": "Use @eslint/object-schema instead", - "license": "BSD-3-Clause" + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", + "license": "Apache-2.0", + "peer": true, + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, "node_modules/@inquirer/checkbox": { "version": "2.5.0", @@ -5270,7 +5314,6 @@ "integrity": "sha512-b2BudQY/Si4Y2a0PdZZL6BeJtl8llgeZa7U2j47aaJSCeAl1e4UI7y8a9bSkO3o/ZbZrgT5muy/34JbsjfIWxA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@inquirer/checkbox": "^2.4.7", "@inquirer/confirm": "^3.1.22", @@ -5482,19 +5525,6 @@ "node": ">=8" } }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@sinclair/typebox": "^0.27.8" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", @@ -5706,16 +5736,6 @@ "lhci": "src/cli.js" } }, - "node_modules/@lhci/cli/node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/@lhci/cli/node_modules/cliui": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", @@ -6069,55 +6089,6 @@ "react": ">=16" } }, - "node_modules/@messageformat/core": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@messageformat/core/-/core-3.4.0.tgz", - "integrity": "sha512-NgCFubFFIdMWJGN5WuQhHCNmzk7QgiVfrViFxcS99j7F5dDS5EP6raR54I+2ydhe4+5/XTn/YIEppFaqqVWHsw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@messageformat/date-skeleton": "^1.0.0", - "@messageformat/number-skeleton": "^1.0.0", - "@messageformat/parser": "^5.1.0", - "@messageformat/runtime": "^3.0.1", - "make-plural": "^7.0.0", - "safe-identifier": "^0.4.1" - } - }, - "node_modules/@messageformat/date-skeleton": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@messageformat/date-skeleton/-/date-skeleton-1.1.0.tgz", - "integrity": "sha512-rmGAfB1tIPER+gh3p/RgA+PVeRE/gxuQ2w4snFWPF5xtb5mbWR7Cbw7wCOftcUypbD6HVoxrVdyyghPm3WzP5A==", - "dev": true, - "license": "MIT" - }, - "node_modules/@messageformat/number-skeleton": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@messageformat/number-skeleton/-/number-skeleton-1.2.0.tgz", - "integrity": "sha512-xsgwcL7J7WhlHJ3RNbaVgssaIwcEyFkBqxHdcdaiJzwTZAWEOD8BuUFxnxV9k5S0qHN3v/KzUpq0IUpjH1seRg==", - "dev": true, - "license": "MIT" - }, - "node_modules/@messageformat/parser": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@messageformat/parser/-/parser-5.1.1.tgz", - "integrity": "sha512-3p0YRGCcTUCYvBKLIxtDDyrJ0YijGIwrTRu1DT8gIviIDZru8H23+FkY6MJBzM1n9n20CiM4VeDYuBsrrwnLjg==", - "dev": true, - "license": "MIT", - "dependencies": { - "moo": "^0.5.1" - } - }, - "node_modules/@messageformat/runtime": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@messageformat/runtime/-/runtime-3.0.2.tgz", - "integrity": "sha512-dkIPDCjXcfhSHgNE1/qV6TeczQZR59Yx0xXeafVKgK3QVWoxc38ljwpksUpnzCGvN151KUbCJTDZVmahtf1YZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "make-plural": "^7.0.0" - } - }, "node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.3.tgz", @@ -6208,6 +6179,7 @@ "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", "license": "MIT", "optional": true, + "peer": true, "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", @@ -6271,41 +6243,38 @@ "link": true }, "node_modules/@ni/eslint-config-angular": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@ni/eslint-config-angular/-/eslint-config-angular-9.0.7.tgz", - "integrity": "sha512-cg1Rnyu1jpmZ0PgmU2HNh1fu6+R8Wfmdm+xsjuzZ8hL4zk52DUNkt+PoQputLghoF/OtVK6XxfjtTxofpQi3Zg==", - "dev": true, + "version": "10.0.3", + "resolved": "https://registry.npmjs.org/@ni/eslint-config-angular/-/eslint-config-angular-10.0.3.tgz", + "integrity": "sha512-GLvr2TDRJH7D/bRwlmDfWwdvyoGwARNyNRYD33BvHqGzTfcefvNsKphH0vRnv/ZHFUjdgevCi2HTYwpSxs9mBw==", "license": "MIT", "peerDependencies": { - "@angular-eslint/builder": "^18.4.3", - "@angular-eslint/eslint-plugin": "^18.4.3", - "@angular-eslint/eslint-plugin-template": "^18.4.3", - "@angular-eslint/schematics": "^18.4.3", - "@angular-eslint/template-parser": "^18.4.3", - "@ni/eslint-config-typescript": "^4.4.4" + "@ni/eslint-config-javascript": "^5.1.2", + "@ni/eslint-config-typescript": "^5.0.3", + "angular-eslint": "^18.4.3" } }, "node_modules/@ni/eslint-config-javascript": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@ni/eslint-config-javascript/-/eslint-config-javascript-4.4.0.tgz", - "integrity": "sha512-XJ3aZ6lQHSNFQNfCa6qnVAAVd+TjowTIuYs0GIx2yC6hqEYqYY681YTcQv2OOk1cLOCAdbnZgFOCYJ0UjDAZ/Q==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/@ni/eslint-config-javascript/-/eslint-config-javascript-5.1.2.tgz", + "integrity": "sha512-8abIhhJ7w1qmu11qN5k9/3IvUQsd69tzzEwWDiE3bTaQXHOTxQQDORRbilgtBc9UjRNGTVJNBctB72rKTsoOCQ==", "license": "MIT", "peerDependencies": { - "@stylistic/eslint-plugin": "^3.0.0", - "eslint": "^8.57.0", - "eslint-plugin-import": "^2.29.1" + "@stylistic/eslint-plugin": "^5.4.0", + "eslint": "^9.36.0", + "eslint-plugin-import": "^2.32.0", + "globals": "^14.0.0" } }, "node_modules/@ni/eslint-config-typescript": { - "version": "4.4.4", - "resolved": "https://registry.npmjs.org/@ni/eslint-config-typescript/-/eslint-config-typescript-4.4.4.tgz", - "integrity": "sha512-E5nYWubEDnphtC4s/X2Ozz3ubmGV+oLEd52AT/mBLbJnc1oUSDZURvHPZ5S/e/LaSohhkAFPQDMSWnN5YJlyFA==", + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/@ni/eslint-config-typescript/-/eslint-config-typescript-5.0.3.tgz", + "integrity": "sha512-OJN60hlVF2EDAO2SwyyxJVab0bpYow0FcPnjuljPXz7aHRpLdbpStB5ICXexaIEXLD5+L9B7MGPYnL/FDVaR3w==", "license": "MIT", "peer": true, "peerDependencies": { - "@ni/eslint-config-javascript": "^4.4.0", - "@typescript-eslint/eslint-plugin": "^7.18.0", - "@typescript-eslint/parser": "^7.18.0" + "@ni/eslint-config-javascript": "^5.1.2", + "eslint-plugin-import": "^2.32.0", + "typescript-eslint": "^8.45.0" } }, "node_modules/@ni/fast-colors": { @@ -6792,248 +6761,62 @@ "node": ">=14" } }, - "node_modules/@prettier/eslint": { - "name": "prettier-eslint", - "version": "16.4.2", - "resolved": "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-16.4.2.tgz", - "integrity": "sha512-vtJAQEkaN8fW5QKl08t7A5KCjlZuDUNeIlr9hgolMS5s3+uzbfRHDwaRnzrdqnY2YpHDmeDS/8zY0MKQHXJtaA==", + "node_modules/@puppeteer/browsers": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.11.0.tgz", + "integrity": "sha512-n6oQX6mYkG8TRPuPXmbPidkUbsSRalhmaaVAQxvH1IkQy63cwsH+kOjB3e4cpCDHg0aSvsiX9bQ4s2VB6mGWUQ==", "dev": true, - "license": "MIT", + "license": "Apache-2.0", "dependencies": { - "@typescript-eslint/parser": "^6.21.0", - "common-tags": "^1.8.2", - "dlv": "^1.1.3", - "eslint": "^8.57.1", - "indent-string": "^4.0.0", - "lodash.merge": "^4.6.2", - "loglevel-colored-level-prefix": "^1.0.0", - "prettier": "^3.5.3", - "pretty-format": "^29.7.0", - "require-relative": "^0.8.7", - "tslib": "^2.8.1", - "vue-eslint-parser": "^9.4.3" - }, - "engines": { - "node": ">=16.10.0" - }, - "funding": { - "url": "https://opencollective.com/prettier-eslint" + "debug": "^4.4.3", + "extract-zip": "^2.0.1", + "progress": "^2.0.3", + "proxy-agent": "^6.5.0", + "semver": "^7.7.3", + "tar-fs": "^3.1.1", + "yargs": "^17.7.2" }, - "peerDependencies": { - "prettier-plugin-svelte": "^3.0.0", - "svelte-eslint-parser": "*" + "bin": { + "browsers": "lib/cjs/main-cli.js" }, - "peerDependenciesMeta": { - "prettier-plugin-svelte": { - "optional": true - }, - "svelte-eslint-parser": { - "optional": true - } + "engines": { + "node": ">=18" } }, - "node_modules/@prettier/eslint/node_modules/@typescript-eslint/parser": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", - "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", + "node_modules/@remirror/core-constants": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-3.0.0.tgz", + "integrity": "sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==", + "license": "MIT", + "peer": true + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.27", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", + "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT" + }, + "node_modules/@rollup/plugin-commonjs": { + "version": "29.0.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-29.0.0.tgz", + "integrity": "sha512-U2YHaxR2cU/yAiwKJtJRhnyLk7cifnQw0zUpISsocBDoHDJn+HTV74ABqnwr5bEgWUwFZC9oFL6wLe21lHu5eQ==", + "dev": true, + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4" + "@rollup/pluginutils": "^5.0.1", + "commondir": "^1.0.1", + "estree-walker": "^2.0.2", + "fdir": "^6.2.0", + "is-reference": "1.2.1", + "magic-string": "^0.30.3", + "picomatch": "^4.0.2" }, "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "node": ">=16.0.0 || 14 >= 14.17" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@prettier/eslint/node_modules/@typescript-eslint/scope-manager": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@prettier/eslint/node_modules/@typescript-eslint/types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@prettier/eslint/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@prettier/eslint/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@prettier/eslint/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@prettier/eslint/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@prettier/eslint/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@puppeteer/browsers": { - "version": "2.10.13", - "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.13.tgz", - "integrity": "sha512-a9Ruw3j3qlnB5a/zHRTkruppynxqaeE4H9WNj5eYGRWqw0ZauZ23f4W2ARf3hghF5doozyD+CRtt7XSYuYRI/Q==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "debug": "^4.4.3", - "extract-zip": "^2.0.1", - "progress": "^2.0.3", - "proxy-agent": "^6.5.0", - "semver": "^7.7.3", - "tar-fs": "^3.1.1", - "yargs": "^17.7.2" - }, - "bin": { - "browsers": "lib/cjs/main-cli.js" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/@remirror/core-constants": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@remirror/core-constants/-/core-constants-3.0.0.tgz", - "integrity": "sha512-42aWfPrimMfDKDi4YegyS7x+/0tlzaqwPQCULLanv3DMIlu96KTJR0fM5isWX2UViOqlGnX6YFgqWepcX+XMNg==", - "license": "MIT" - }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.27", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.27.tgz", - "integrity": "sha512-+d0F4MKMCbeVUJwG96uQ4SgAznZNSq93I3V+9NHA4OpvqG8mRCpGdKmK8l/dl02h2CCDHwW2FqilnTyDcAnqjA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@rollup/plugin-commonjs": { - "version": "29.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-29.0.0.tgz", - "integrity": "sha512-U2YHaxR2cU/yAiwKJtJRhnyLk7cifnQw0zUpISsocBDoHDJn+HTV74ABqnwr5bEgWUwFZC9oFL6wLe21lHu5eQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rollup/pluginutils": "^5.0.1", - "commondir": "^1.0.1", - "estree-walker": "^2.0.2", - "fdir": "^6.2.0", - "is-reference": "1.2.1", - "magic-string": "^0.30.3", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=16.0.0 || 14 >= 14.17" - }, - "peerDependencies": { - "rollup": "^2.68.0||^3.0.0||^4.0.0" + "rollup": "^2.68.0||^3.0.0||^4.0.0" }, "peerDependenciesMeta": { "rollup": { @@ -7065,7 +6848,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -7546,7 +7328,8 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@schematics/angular": { "version": "18.2.21", @@ -7730,13 +7513,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", - "dev": true, - "license": "MIT" - }, "node_modules/@sindresorhus/merge-streams": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-2.3.0.tgz", @@ -7790,89 +7566,117 @@ "dev": true, "license": "MIT" }, - "node_modules/@storybook/cli": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-10.1.3.tgz", - "integrity": "sha512-WYQNxl9pWzHly51EN1Ln8byFwPM9BehD2ijBc5/oUP9fyFk8t6Bo7jDI0rgNv+jiRsZ9LfvGpHx8UZIhdgX8tw==", + "node_modules/@storybook/addon-a11y": { + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-10.1.4.tgz", + "integrity": "sha512-go7SshAyu+pnK7Prq3UnCBCB7DxAQkPMnebsv3fnboeTZHnDXQqfmHdZ15o+pH0JsCedC05RYsdbjd2rMHMvFQ==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/codemod": "10.1.3", - "@types/semver": "^7.3.4", - "commander": "^14.0.1", - "create-storybook": "10.1.3", - "jscodeshift": "^0.15.1", - "storybook": "10.1.3", - "ts-dedent": "^2.0.0" + "@storybook/global": "^5.0.0", + "axe-core": "^4.2.0" }, - "bin": { - "cli": "dist/bin/index.js" + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^10.1.4" + } + }, + "node_modules/@storybook/addon-docs": { + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-10.1.4.tgz", + "integrity": "sha512-TWLDJNLS/S3AUyTf9x0Hb8k7d+VWMJCH9dWAS0QenvJG8ga9VaehO6r+e+3YyIDbO1ev3UST3GCjh9SY8tzwRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@mdx-js/react": "^3.0.0", + "@storybook/csf-plugin": "10.1.4", + "@storybook/icons": "^2.0.0", + "@storybook/react-dom-shim": "10.1.4", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "ts-dedent": "^2.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^10.1.4" } }, - "node_modules/@storybook/cli/node_modules/@storybook/icons": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-2.0.1.tgz", - "integrity": "sha512-/smVjw88yK3CKsiuR71vNgWQ9+NuY2L+e8X7IMrFjexjm6ZR8ULrV2DRkTA61aV6ryefslzHEGDInGpnNeIocg==", + "node_modules/@storybook/addon-links": { + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-10.1.4.tgz", + "integrity": "sha512-GQplzQFYhClraxH1cQDhhiJAuqAlI2loJjcnLjayS9/O2XJfEPyHc0fjkTh83zhF/nIQ6iMpFgpCsrThRUL4ag==", "dev": true, "license": "MIT", + "dependencies": { + "@storybook/global": "^5.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "storybook": "^10.1.4" + }, + "peerDependenciesMeta": { + "react": { + "optional": true + } } }, - "node_modules/@storybook/cli/node_modules/commander": { - "version": "14.0.2", - "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz", - "integrity": "sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==", + "node_modules/@storybook/builder-vite": { + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-10.1.4.tgz", + "integrity": "sha512-3mUQoCzMuhqAIjj8fdbGlwh+GgHaFpCvU+sxL8kIxnZqflW09SuwM5kS47Y5QDzYbHAPYCPqcBFyJ4EfRuf0rw==", "dev": true, "license": "MIT", - "engines": { - "node": ">=20" + "dependencies": { + "@storybook/csf-plugin": "10.1.4", + "@vitest/mocker": "3.2.4", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^10.1.4", + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0" } }, - "node_modules/@storybook/cli/node_modules/storybook": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-10.1.3.tgz", - "integrity": "sha512-Yoo/LB1OvwwMdKkChFtUXuOKLw/QK+b25pIkAFgZex+0IIXi0dREYEQAvJKd/gIuuqwPksy91p1HeHddv2NXQA==", + "node_modules/@storybook/cli": { + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/@storybook/cli/-/cli-10.1.4.tgz", + "integrity": "sha512-w/v0M4Sz2kACfeMS50mNYCWcU5g45O8Z3iU7EQXR5k+3pLX//0IP97v6Ctqy6Gm+OoHNRM37nuUBNulcVAjTaw==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/global": "^5.0.0", - "@storybook/icons": "^2.0.0", - "@testing-library/jest-dom": "^6.6.3", - "@testing-library/user-event": "^14.6.1", - "@vitest/expect": "3.2.4", - "@vitest/spy": "3.2.4", - "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0 || ^0.26.0 || ^0.27.0", - "recast": "^0.23.5", - "semver": "^7.6.2", - "use-sync-external-store": "^1.5.0", - "ws": "^8.18.0" + "@storybook/codemod": "10.1.4", + "@types/semver": "^7.3.4", + "commander": "^14.0.1", + "create-storybook": "10.1.4", + "jscodeshift": "^0.15.1", + "storybook": "10.1.4", + "ts-dedent": "^2.0.0" }, "bin": { - "storybook": "dist/bin/dispatcher.js" + "cli": "dist/bin/index.js" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "prettier": "^2 || ^3" - }, - "peerDependenciesMeta": { - "prettier": { - "optional": true - } } }, "node_modules/@storybook/codemod": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-10.1.3.tgz", - "integrity": "sha512-QnPBF1nlNQ5nqKTs7aPSo4ZLyEl8wGaslXdRynhR8NcU1EdLL7+jClKKaUs54jfCaa+xYW4U+5TdKUMcIfhlQg==", + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/@storybook/codemod/-/codemod-10.1.4.tgz", + "integrity": "sha512-LIZwESPtx9CX4K6p2HB9UuQg2GCEl6tPjRkB9QTQL0p02EDVrbGR5WbVOhd8g/J2p4ekwEWUVfn6jQ5j06/2rA==", "dev": true, "license": "MIT", "dependencies": { @@ -7881,7 +7685,7 @@ "es-toolkit": "^1.36.0", "jscodeshift": "^0.15.1", "prettier": "^3.5.3", - "storybook": "10.1.3", + "storybook": "10.1.4", "tiny-invariant": "^1.3.1", "tinyglobby": "^0.2.13" }, @@ -7890,48 +7694,37 @@ "url": "https://opencollective.com/storybook" } }, - "node_modules/@storybook/codemod/node_modules/@storybook/icons": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-2.0.1.tgz", - "integrity": "sha512-/smVjw88yK3CKsiuR71vNgWQ9+NuY2L+e8X7IMrFjexjm6ZR8ULrV2DRkTA61aV6ryefslzHEGDInGpnNeIocg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "node_modules/@storybook/codemod/node_modules/storybook": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-10.1.3.tgz", - "integrity": "sha512-Yoo/LB1OvwwMdKkChFtUXuOKLw/QK+b25pIkAFgZex+0IIXi0dREYEQAvJKd/gIuuqwPksy91p1HeHddv2NXQA==", + "node_modules/@storybook/csf-plugin": { + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-10.1.4.tgz", + "integrity": "sha512-nudIBYx8fBz+1j2Xn1pdfGcgMJ78N/1NFB4MYAxI3YEzxGnQwUjihOO1x3siAXPbjFGmnVHoBx7+6IpO3F70GA==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/global": "^5.0.0", - "@storybook/icons": "^2.0.0", - "@testing-library/jest-dom": "^6.6.3", - "@testing-library/user-event": "^14.6.1", - "@vitest/expect": "3.2.4", - "@vitest/spy": "3.2.4", - "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0 || ^0.26.0 || ^0.27.0", - "recast": "^0.23.5", - "semver": "^7.6.2", - "use-sync-external-store": "^1.5.0", - "ws": "^8.18.0" - }, - "bin": { - "storybook": "dist/bin/dispatcher.js" + "unplugin": "^2.3.5" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" }, "peerDependencies": { - "prettier": "^2 || ^3" + "esbuild": "*", + "rollup": "*", + "storybook": "^10.1.4", + "vite": "*", + "webpack": "*" }, "peerDependenciesMeta": { - "prettier": { + "esbuild": { + "optional": true + }, + "rollup": { + "optional": true + }, + "vite": { + "optional": true + }, + "webpack": { "optional": true } } @@ -7942,23 +7735,87 @@ "integrity": "sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==", "license": "MIT" }, + "node_modules/@storybook/html": { + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/@storybook/html/-/html-10.1.4.tgz", + "integrity": "sha512-fAVRVY310WKkCT8HzdowmeUrJKse3kOQ1K3IwLSn6CTOapuqCijYBBfJxfR34P1sYr/I0LT3gETPfGsrZaEDsA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/global": "^5.0.0", + "ts-dedent": "^2.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^10.1.4" + } + }, + "node_modules/@storybook/html-vite": { + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/@storybook/html-vite/-/html-vite-10.1.4.tgz", + "integrity": "sha512-PSmePOH7LmIW2l9DO7viA2w34Zo8Ciwvx9JANS2UXsg8zHVHkw3ukUwwF3hiTWNP52CK02459O0LCth9trcNVQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@storybook/builder-vite": "10.1.4", + "@storybook/html": "10.1.4" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^10.1.4" + } + }, + "node_modules/@storybook/icons": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-2.0.1.tgz", + "integrity": "sha512-/smVjw88yK3CKsiuR71vNgWQ9+NuY2L+e8X7IMrFjexjm6ZR8ULrV2DRkTA61aV6ryefslzHEGDInGpnNeIocg==", + "license": "MIT", + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@storybook/react-dom-shim": { + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-10.1.4.tgz", + "integrity": "sha512-PARu2HA5nYU1AkioNJNc430pz0oyaHFSSAdN3NEaWwkoGrCOo9ZpAXP9V7wlJANCi1pndbC84gSuHVnBXJBG6g==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", + "storybook": "^10.1.4" + } + }, "node_modules/@stylistic/eslint-plugin": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-3.1.0.tgz", - "integrity": "sha512-pA6VOrOqk0+S8toJYhQGv2MWpQQR0QpeUo9AhNkC49Y26nxBQ/nH1rta9bUU1rPw2fJ1zZEMV5oCX5AazT7J2g==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/@stylistic/eslint-plugin/-/eslint-plugin-5.6.1.tgz", + "integrity": "sha512-JCs+MqoXfXrRPGbGmho/zGS/jMcn3ieKl/A8YImqib76C8kjgZwq5uUFzc30lJkMvcchuRn6/v8IApLxli3Jyw==", "license": "MIT", + "peer": true, "dependencies": { - "@typescript-eslint/utils": "^8.13.0", - "eslint-visitor-keys": "^4.2.0", - "espree": "^10.3.0", + "@eslint-community/eslint-utils": "^4.9.0", + "@typescript-eslint/types": "^8.47.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", "estraverse": "^5.3.0", - "picomatch": "^4.0.2" + "picomatch": "^4.0.3" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "peerDependencies": { - "eslint": ">=8.40.0" + "eslint": ">=9.0.0" } }, "node_modules/@stylistic/eslint-plugin/node_modules/picomatch": { @@ -7966,6 +7823,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -8237,6 +8095,7 @@ "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-10.4.1.tgz", "integrity": "sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==", "license": "MIT", + "peer": true, "dependencies": { "@babel/code-frame": "^7.10.4", "@babel/runtime": "^7.12.5", @@ -8251,47 +8110,16 @@ "node": ">=18" } }, - "node_modules/@testing-library/dom/node_modules/ansi-styles": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", - "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/@testing-library/dom/node_modules/aria-query": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-5.3.0.tgz", "integrity": "sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==", "license": "Apache-2.0", + "peer": true, "dependencies": { "dequal": "^2.0.3" } }, - "node_modules/@testing-library/dom/node_modules/pretty-format": { - "version": "27.5.1", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", - "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", - "license": "MIT", - "dependencies": { - "ansi-regex": "^5.0.1", - "ansi-styles": "^5.0.0", - "react-is": "^17.0.1" - }, - "engines": { - "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" - } - }, - "node_modules/@testing-library/dom/node_modules/react-is": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", - "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", - "license": "MIT" - }, "node_modules/@testing-library/jest-dom": { "version": "6.9.1", "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-6.9.1.tgz", @@ -8331,75 +8159,74 @@ } }, "node_modules/@tiptap/core": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-3.11.1.tgz", - "integrity": "sha512-q7uzYrCq40JOIi6lceWe2HuA8tSr97iPwP/xtJd0bZjyL1rWhUyqxMb7y+aq4RcELrx/aNRa2JIvLtRRdy02Dg==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-3.12.1.tgz", + "integrity": "sha512-dn5uTnsTUjMze26iRhcus8+2auW9+/vOpk6suXg/lhBp+UzOM+EALKE3S5086ANJNgBh1PDHoBX+r1T7wEmheg==", "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/pm": "^3.11.1" + "@tiptap/pm": "^3.12.1" } }, "node_modules/@tiptap/extension-bold": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-3.11.1.tgz", - "integrity": "sha512-ee/OoAPViUAgJb8dxF7D2YSSYUWcw8RXqhNSDx15w58rxpYbJbvOv3WDMrGNvl4M9nuwXYfXc3iPl/eYtwHx2w==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-3.12.1.tgz", + "integrity": "sha512-ciSVsOMd/r7RoWKqRwSvzUAwUmnd1hIxdmWkjUhyKvErHNWuSgrMtK3rU+j3PadRQ+EaQ17ua9tMVj+2NdGzrg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "^3.11.1" + "@tiptap/core": "^3.12.1" } }, "node_modules/@tiptap/extension-document": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-3.11.1.tgz", - "integrity": "sha512-Px8T7Kv8EEiFpM/h13Rro8HoynrlK8zA3u3ekHq/FBSTXnPtqPAUYNx/DUhIrLs3eWWJ8+P0Onm+sVLZmaLMug==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-3.12.1.tgz", + "integrity": "sha512-FHZZxzSluUdAxo8Q8iO1DOKzwDpQQhF+sIKni3T3UmE/AAhSWHWHQot5onrn6ypcrtYyuwQF4lDb/S2xbz9p8Q==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "^3.11.1" + "@tiptap/core": "^3.12.1" } }, "node_modules/@tiptap/extension-hard-break": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-3.11.1.tgz", - "integrity": "sha512-JMp6CizdB7LoY2jmaZub2D+Aj6RJTkSu0EhIcN/bmBrm4MjYa/ir6nRoo4/gYGIHzHwgwGR/1KmlqTJZW/xl4g==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-3.12.1.tgz", + "integrity": "sha512-hz3NmynK6vl05WUkXnEOlurrJ3fxrJTPTepu/sB3URHJ1GMghrfOeFBbLRrtz8BHhRg9EydCr42PMtglL1KyZw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "^3.11.1" + "@tiptap/core": "^3.12.1" } }, "node_modules/@tiptap/extension-italic": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-3.11.1.tgz", - "integrity": "sha512-SrjsU+gvhjoPKelc4YSeC2AQ0lhwLiDWMO7fW83CVitCF8iWXpBSeVCI5SxtPeZNKTZ1ZCc3lIQCeEHOC/gP0g==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-3.12.1.tgz", + "integrity": "sha512-bqyoJRcAewX2/8yAjvfTIToHaHooLWduemh3qxSDkQT3dtK/m96Bn3Z7S3UMD6XoFR5x2K+oPe+nSjqbwKcGuw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "^3.11.1" + "@tiptap/core": "^3.12.1" } }, "node_modules/@tiptap/extension-link": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-3.11.1.tgz", - "integrity": "sha512-ds5auQnWGcHwC2/c1iEvvybdLPcSDlxsii7FPaZg4LaSGdNojRB0qDRZw5dzYQZbfIf5vgYGcIVCVjNPZs1UwQ==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-3.12.1.tgz", + "integrity": "sha512-BmQEXokb7+5HSxkwL1n3kgJ7tgXFNdbVFZ6hD4zazrvcBJk+J0R/9QCrms8Js3uXoVqIlqBFcsuUmlz0Jq857g==", "license": "MIT", "dependencies": { "linkifyjs": "^4.3.2" @@ -8409,83 +8236,83 @@ "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "^3.11.1", - "@tiptap/pm": "^3.11.1" + "@tiptap/core": "^3.12.1", + "@tiptap/pm": "^3.12.1" } }, "node_modules/@tiptap/extension-list": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list/-/extension-list-3.11.1.tgz", - "integrity": "sha512-XJRN9pOPMi3SsaKv4qM8WBEi3YDrjXYtYlAlZutQe1JpdKykSjLwwYq7k3V8UHqR3YKxyOV8HTYOYoOaZ9TMTQ==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-list/-/extension-list-3.12.1.tgz", + "integrity": "sha512-v3WC9TR8QRVwmubuKjUplAXeTzTq2hiVKGHBbW15LTqqfsEJwt1YHUl/Sc+pSAeJfY7th5wheNfZFCsCBCW3qg==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "^3.11.1", - "@tiptap/pm": "^3.11.1" + "@tiptap/core": "^3.12.1", + "@tiptap/pm": "^3.12.1" } }, "node_modules/@tiptap/extension-mention": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-mention/-/extension-mention-3.11.1.tgz", - "integrity": "sha512-UwRz/FdSVXAmdVBVO+Vwnt4qT/UYL1291gpCxYhiW0nKhe4bE05nif+XR9PL31tR6aGOSzy3uzC+ApSQbNS/fw==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-mention/-/extension-mention-3.12.1.tgz", + "integrity": "sha512-/1zwWJr7kChEJn9/nAGIufIbqTar0CGE7CB3vaZLDhlueGYr2uddT+LuxNl9FnQYRkhn3058xPU17kSRzmTTIw==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "^3.11.1", - "@tiptap/pm": "^3.11.1", - "@tiptap/suggestion": "^3.11.1" + "@tiptap/core": "^3.12.1", + "@tiptap/pm": "^3.12.1", + "@tiptap/suggestion": "^3.12.1" } }, "node_modules/@tiptap/extension-paragraph": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-3.11.1.tgz", - "integrity": "sha512-a3lm1WvYewAP2IESq+qnbOtLSJ9yULY2Bj/6DvBq9fzWpb2gSlUdElYh6JLunxB1HEPECTuuRsNPdTrMsSpV4g==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-3.12.1.tgz", + "integrity": "sha512-vknowYpeCU8j025VgajzjBAsRQsUdGIHH4udekwL5D5Ss2jU5ax0w0urSHJzGaPtrujn6V359iBgFshl1cyxog==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "^3.11.1" + "@tiptap/core": "^3.12.1" } }, "node_modules/@tiptap/extension-text": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-3.11.1.tgz", - "integrity": "sha512-5E94ggkFAZ7OSFSwnofAsmxqmSStRoeCB8AnRuWrR+nnXi43Rq7yptdejQaLi13Z9fSVdnF6h+pB3ua2Exg6WQ==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-3.12.1.tgz", + "integrity": "sha512-r9ToQJyWa+pHoTiEs2y7cmiVzhUOiV77ed1TE5OE5YqFruZO/lyeG2xuFX8qDADY3F2lSnUBSI2SH/FbYSQb3w==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "^3.11.1" + "@tiptap/core": "^3.12.1" } }, "node_modules/@tiptap/extensions": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@tiptap/extensions/-/extensions-3.11.1.tgz", - "integrity": "sha512-/xXJdV+EVvSQv2slvAUChb5iGVv5K0EqBqxPGAAuBHdIc4Y7Id1aaKKSiyDmqon+kjSnnQIIda9oUt+o/Z66uA==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@tiptap/extensions/-/extensions-3.12.1.tgz", + "integrity": "sha512-Xtg2Ot3oebg6+ponJ3yp8VcxPtdaHaub62Eoh8DKvBexyfqp+lMDtOpJZXA9NImVG3gKn+5EAIq8kx5AtrVlJQ==", "license": "MIT", "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "^3.11.1", - "@tiptap/pm": "^3.11.1" + "@tiptap/core": "^3.12.1", + "@tiptap/pm": "^3.12.1" } }, "node_modules/@tiptap/pm": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-3.11.1.tgz", - "integrity": "sha512-8RIUhlEoCFGsbdNb+EUdQctG1Wnd7rl4wlMLS6giO7UcZT5dVfg625eMZVrl0/kA7JBJdKLIuqNmzzQ0MxsJEw==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-3.12.1.tgz", + "integrity": "sha512-YGv8uZrTraXzB3DPQYsyIB90Girx5QZdZOBSDj0R2bWSXc2Huqdb9PaulXqDQjEv/dp9x6w6+Q2VNIagCPUQwA==", "license": "MIT", "peer": true, "dependencies": { @@ -8514,18 +8341,17 @@ } }, "node_modules/@tiptap/suggestion": { - "version": "3.11.1", - "resolved": "https://registry.npmjs.org/@tiptap/suggestion/-/suggestion-3.11.1.tgz", - "integrity": "sha512-OyDYNkkc4afr2HV7Fm3rUJx8y78Jc67ITX6uTMjxF1SFuhhHypy9JYxxX2Tb60qVVERDbBFUWKs9YogiRqinjA==", + "version": "3.12.1", + "resolved": "https://registry.npmjs.org/@tiptap/suggestion/-/suggestion-3.12.1.tgz", + "integrity": "sha512-LXuWF1Ow5aoynOBy9YMb89RBJNRzKa9Vy3s90Hve7wtMDV7PlXb5apiNWQsYe+CGXc5bvLYjMFDMbE6ahWcUyA==", "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" }, "peerDependencies": { - "@tiptap/core": "^3.11.1", - "@tiptap/pm": "^3.11.1" + "@tiptap/core": "^3.12.1", + "@tiptap/pm": "^3.12.1" } }, "node_modules/@tootallnate/quickjs-emscripten": { @@ -8601,6 +8427,7 @@ "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", "license": "MIT", "optional": true, + "peer": true, "dependencies": { "tslib": "^2.4.0" } @@ -8609,7 +8436,8 @@ "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/aria-query/-/aria-query-5.0.4.tgz", "integrity": "sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/babel__core": { "version": "7.20.5", @@ -8687,13 +8515,15 @@ "version": "5.2.3", "resolved": "https://registry.npmjs.org/@types/command-line-args/-/command-line-args-5.2.3.tgz", "integrity": "sha512-uv0aG6R0Y8WHZLTamZwtfsDLVRnOa+n+n5rEvFWL5Na5gZ8V2Teab/duDPFzIIIhs9qizDpcavCusCLJZu62Kw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/command-line-usage": { "version": "5.0.4", "resolved": "https://registry.npmjs.org/@types/command-line-usage/-/command-line-usage-5.0.4.tgz", "integrity": "sha512-BwR5KP3Es/CSht0xqBcUXS3qCAUVXwpRKsV2+arxeb65atasuXG9LykC9Ab10Cw3s2raH92ZqOeILaQbsB2ACg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/connect": { "version": "3.4.38", @@ -8902,14 +8732,14 @@ "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, "license": "MIT" }, "node_modules/@types/json5": { "version": "0.0.29", "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/linkify-it": { "version": "5.0.0", @@ -9047,7 +8877,6 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.27.tgz", "integrity": "sha512-cisd7gxkzjBKU2GgdYrTdtQx1SORymWyaAFhaxQPK9bYO9ot3Y5OikQRvY0VYQtvwjeQnizCINJAenh/V7MK2w==", "license": "MIT", - "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.2.2" @@ -9197,122 +9026,79 @@ } }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.18.0.tgz", - "integrity": "sha512-94EQTWZ40mzBc42ATNIBimBEDltSJ9RQHCC8vc/PDbxi4k8dVwUAv4o98dk50M1zB+JGFxp43FP7f8+FP8R6Sw==", + "version": "8.48.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.48.1.tgz", + "integrity": "sha512-X63hI1bxl5ohelzr0LY5coufyl0LJNthld+abwxpCoo6Gq+hSqhKwci7MUWkXo67mzgUK6YFByhmaHmUcuBJmA==", "license": "MIT", + "peer": true, "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/type-utils": "7.18.0", - "@typescript-eslint/utils": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/scope-manager": "8.48.1", + "@typescript-eslint/type-utils": "8.48.1", + "@typescript-eslint/utils": "8.48.1", + "@typescript-eslint/visitor-keys": "8.48.1", "graphemer": "^1.4.0", - "ignore": "^5.3.1", + "ignore": "^7.0.0", "natural-compare": "^1.4.0", - "ts-api-utils": "^1.3.0" + "ts-api-utils": "^2.1.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", - "license": "MIT", - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "@typescript-eslint/parser": "^8.48.1", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", - "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0" - }, + "peer": true, "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" + "node": ">= 4" } }, "node_modules/@typescript-eslint/parser": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.18.0.tgz", - "integrity": "sha512-4Z+L8I2OqhZV8qA132M4wNL30ypZGYOQVBfMgxDH/K5UX0PNqTu1c6za9ST5r9+tavvHiTWmBnKzpCJ/GlVFtg==", - "license": "BSD-2-Clause", + "version": "8.48.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.48.1.tgz", + "integrity": "sha512-PC0PDZfJg8sP7cmKe6L3QIL8GZwU5aRvUFedqSIpw3B+QjRSUZeeITC2M5XKeMXEzL6wccN196iy3JLwKNvDVA==", + "license": "MIT", + "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/scope-manager": "8.48.1", + "@typescript-eslint/types": "8.48.1", + "@typescript-eslint/typescript-estree": "8.48.1", + "@typescript-eslint/visitor-keys": "8.48.1", "debug": "^4.3.4" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", - "license": "MIT", - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.48.0.tgz", - "integrity": "sha512-Ne4CTZyRh1BecBf84siv42wv5vQvVmgtk8AuiEffKTUo3DrBaGYZueJSxxBZ8fjk/N3DrgChH4TOdIOwOwiqqw==", + "version": "8.48.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.48.1.tgz", + "integrity": "sha512-HQWSicah4s9z2/HifRPQ6b6R7G+SBx64JlFQpgSSHWPKdvCZX57XCbszg/bapbRsOEv42q5tayTYcEFpACcX1w==", "license": "MIT", + "peer": true, "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.48.0", - "@typescript-eslint/types": "^8.48.0", + "@typescript-eslint/tsconfig-utils": "^8.48.1", + "@typescript-eslint/types": "^8.48.1", "debug": "^4.3.4" }, "engines": { @@ -9327,29 +9113,17 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.18.0.tgz", - "integrity": "sha512-jjhdIE/FPF2B7Z1uzc6i3oWKbGcHb87Qw7AWj6jmEqNOfDFbJWtjt/XfwCpvNkpGWlcJaog5vTR+VV8+w9JflA==", + "version": "8.48.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.48.1.tgz", + "integrity": "sha512-rj4vWQsytQbLxC5Bf4XwZ0/CKd362DkWMUkviT7DCS057SK64D5lH74sSGzhI6PDD2HCEq02xAP9cX68dYyg1w==", "license": "MIT", + "peer": true, "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" + "@typescript-eslint/types": "8.48.1", + "@typescript-eslint/visitor-keys": "8.48.1" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/scope-manager/node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", - "license": "MIT", "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -9357,10 +9131,11 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.48.0.tgz", - "integrity": "sha512-WNebjBdFdyu10sR1M4OXTt2OkMd5KWIL+LLfeH9KhgP+jzfDV/LI3eXzwJ1s9+Yc0Kzo2fQCdY/OpdusCMmh6w==", + "version": "8.48.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.48.1.tgz", + "integrity": "sha512-k0Jhs4CpEffIBm6wPaCXBAD7jxBtrHjrSgtfCjUvPp9AZ78lXKdTR8fxyZO5y4vWNlOvYXRtngSZNSn+H53Jkw==", "license": "MIT", + "peer": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -9373,71 +9148,34 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.18.0.tgz", - "integrity": "sha512-XL0FJXuCLaDuX2sYqZUUSOJ2sG5/i1AAze+axqmLnSkNEVMVYLF+cbwlB2w8D1tinFuSikHmFta+P+HOofrLeA==", + "version": "8.48.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.48.1.tgz", + "integrity": "sha512-1jEop81a3LrJQLTf/1VfPQdhIY4PlGDBc/i67EVWObrtvcziysbLN3oReexHOM6N3jyXgCrkBsZpqwH0hiDOQg==", "license": "MIT", + "peer": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/types": "8.48.1", + "@typescript-eslint/typescript-estree": "8.48.1", + "@typescript-eslint/utils": "8.48.1", "debug": "^4.3.4", - "ts-api-utils": "^1.3.0" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", - "license": "MIT", - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.18.0.tgz", - "integrity": "sha512-kK0/rNa2j74XuHVcoCZxdFBMF+aq/vH83CXAOHieC+2Gis4mF8jJXT5eAfyD3K0sAxtPuwxaIOIOvhwzVDt/kw==", - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@typescript-eslint/scope-manager": "7.18.0", - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/typescript-estree": "7.18.0" + "ts-api-utils": "^2.1.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/types": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.48.0.tgz", - "integrity": "sha512-cQMcGQQH7kwKoVswD1xdOytxQR60MWKM1di26xSUtxehaDs/32Zpqsu5WJlXTtTTqyAVK8R7hvsUnIXRS+bjvA==", + "version": "8.48.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.48.1.tgz", + "integrity": "sha512-+fZ3LZNeiELGmimrujsDCT4CRIbq5oXdHe7chLiW8qzqyPMnn1puNstCrMNVAqwcl2FdIxkuJ4tOs/RFDBVc/Q==", "license": "MIT", "peer": true, "engines": { @@ -9449,44 +9187,31 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.18.0.tgz", - "integrity": "sha512-aP1v/BSPnnyhMHts8cf1qQ6Q1IFwwRvAQGRvBFkWlo3/lH29OXA3Pts+c10nxRxIBrDnoMqzhgdwVe5f2D6OzA==", - "license": "BSD-2-Clause", + "version": "8.48.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.48.1.tgz", + "integrity": "sha512-/9wQ4PqaefTK6POVTjJaYS0bynCgzh6ClJHGSBj06XEHjkfylzB+A3qvyaXnErEZSaxhIo4YdyBgq6j4RysxDg==", + "license": "MIT", + "peer": true, "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", + "@typescript-eslint/project-service": "8.48.1", + "@typescript-eslint/tsconfig-utils": "8.48.1", + "@typescript-eslint/types": "8.48.1", + "@typescript-eslint/visitor-keys": "8.48.1", "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", "minimatch": "^9.0.4", "semver": "^7.6.0", - "ts-api-utils": "^1.3.0" + "tinyglobby": "^0.2.15", + "ts-api-utils": "^2.1.0" }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", - "license": "MIT", - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { @@ -9494,6 +9219,7 @@ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "license": "MIT", + "peer": true, "dependencies": { "balanced-match": "^1.0.0" } @@ -9503,6 +9229,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "license": "ISC", + "peer": true, "dependencies": { "brace-expansion": "^2.0.1" }, @@ -9514,16 +9241,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.48.0.tgz", - "integrity": "sha512-yTJO1XuGxCsSfIVt1+1UrLHtue8xz16V8apzPYI06W0HbEbEWHxHXgZaAgavIkoh+GeV6hKKd5jm0sS6OYxWXQ==", + "version": "8.48.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.48.1.tgz", + "integrity": "sha512-fAnhLrDjiVfey5wwFRwrweyRlCmdz5ZxXz2G/4cLn0YDLjTapmN4gcCsTBR1N2rWnZSDeWpYtgLDsJt+FpmcwA==", "license": "MIT", "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.48.0", - "@typescript-eslint/types": "8.48.0", - "@typescript-eslint/typescript-estree": "8.48.0" + "@typescript-eslint/scope-manager": "8.48.1", + "@typescript-eslint/types": "8.48.1", + "@typescript-eslint/typescript-estree": "8.48.1" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -9537,151 +9264,24 @@ "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.48.0.tgz", - "integrity": "sha512-uGSSsbrtJrLduti0Q1Q9+BF1/iFKaxGoQwjWOIVNJv0o6omrdyR8ct37m4xIl5Zzpkp69Kkmvom7QFTtue89YQ==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.48.0", - "@typescript-eslint/visitor-keys": "8.48.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/typescript-estree": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.48.0.tgz", - "integrity": "sha512-ljHab1CSO4rGrQIAyizUS6UGHHCiAYhbfcIZ1zVJr5nMryxlXMVWS3duFPSKvSUbFPwkXMFk1k0EMIjub4sRRQ==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/project-service": "8.48.0", - "@typescript-eslint/tsconfig-utils": "8.48.0", - "@typescript-eslint/types": "8.48.0", - "@typescript-eslint/visitor-keys": "8.48.0", - "debug": "^4.3.4", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "tinyglobby": "^0.2.15", - "ts-api-utils": "^2.1.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/visitor-keys": { - "version": "8.48.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.48.0.tgz", - "integrity": "sha512-T0XJMaRPOH3+LBbAfzR2jalckP1MSG/L9eUtY0DEzUyVaXJ/t6zN0nR7co5kz0Jko/nkSYCBRkz1djvjajVTTg==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.48.0", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@typescript-eslint/utils/node_modules/ts-api-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", - "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", - "license": "MIT", - "engines": { - "node": ">=18.12" - }, - "peerDependencies": { - "typescript": ">=4.8.4" - } - }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.18.0.tgz", - "integrity": "sha512-cDF0/Gf81QpY3xYyJKDV14Zwdmid5+uuENhjH2EqFaF0ni+yAyq/LzMaIJdhNJXZI7uLzwIlA+V7oWoyn6Curg==", + "version": "8.48.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.48.1.tgz", + "integrity": "sha512-BmxxndzEWhE4TIEEMBs8lP3MBWN3jFPs/p6gPm/wkv02o41hI6cq9AuSmGAaTTHPtA1FTi2jBre4A9rm5ZmX+Q==", "license": "MIT", + "peer": true, "dependencies": { - "@typescript-eslint/types": "7.18.0", - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/@typescript-eslint/types": { - "version": "7.18.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.18.0.tgz", - "integrity": "sha512-iZqi+Ds1y4EDYUtlOOC+aUmxnE9xS/yCigkjA7XpTKV6nCBd3Hp/PRGGmdwnfkV2ThMyYldP1wRpm/id99spTQ==", - "license": "MIT", + "@typescript-eslint/types": "8.48.1", + "eslint-visitor-keys": "^4.2.1" + }, "engines": { - "node": "^18.18.0 || >=20.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, - "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@ungap/structured-clone": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", - "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", - "license": "ISC" - }, "node_modules/@unrs/resolver-binding-android-arm-eabi": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", @@ -9693,7 +9293,8 @@ "optional": true, "os": [ "android" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-android-arm64": { "version": "1.11.1", @@ -9706,7 +9307,8 @@ "optional": true, "os": [ "android" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-darwin-arm64": { "version": "1.11.1", @@ -9719,7 +9321,8 @@ "optional": true, "os": [ "darwin" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-darwin-x64": { "version": "1.11.1", @@ -9732,7 +9335,8 @@ "optional": true, "os": [ "darwin" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-freebsd-x64": { "version": "1.11.1", @@ -9745,7 +9349,8 @@ "optional": true, "os": [ "freebsd" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { "version": "1.11.1", @@ -9758,7 +9363,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { "version": "1.11.1", @@ -9771,7 +9377,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { "version": "1.11.1", @@ -9784,7 +9391,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-arm64-musl": { "version": "1.11.1", @@ -9797,7 +9405,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { "version": "1.11.1", @@ -9810,7 +9419,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { "version": "1.11.1", @@ -9823,7 +9433,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { "version": "1.11.1", @@ -9836,7 +9447,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { "version": "1.11.1", @@ -9849,7 +9461,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-x64-gnu": { "version": "1.11.1", @@ -9862,7 +9475,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-x64-musl": { "version": "1.11.1", @@ -9875,7 +9489,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-wasm32-wasi": { "version": "1.11.1", @@ -9886,6 +9501,7 @@ ], "license": "MIT", "optional": true, + "peer": true, "dependencies": { "@napi-rs/wasm-runtime": "^0.2.11" }, @@ -9904,7 +9520,8 @@ "optional": true, "os": [ "win32" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { "version": "1.11.1", @@ -9917,7 +9534,8 @@ "optional": true, "os": [ "win32" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-win32-x64-msvc": { "version": "1.11.1", @@ -9930,7 +9548,8 @@ "optional": true, "os": [ "win32" - ] + ], + "peer": true }, "node_modules/@vitejs/plugin-react-swc": { "version": "3.11.0", @@ -10287,7 +9906,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -10323,6 +9941,7 @@ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "license": "MIT", + "peer": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -10397,9 +10016,7 @@ "version": "8.17.1", "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz", "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", - "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -10415,7 +10032,6 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-3.0.1.tgz", "integrity": "sha512-8iUql50EUR+uUcdRQ3HDqa6EVyo3docL8g5WJ3FNcWmu62IbkGUue/pEyLBW8VGKKucTPgqeks4fIU1DA4yowQ==", - "dev": true, "license": "MIT", "dependencies": { "ajv": "^8.0.0" @@ -10442,6 +10058,29 @@ "ajv": "^8.8.2" } }, + "node_modules/angular-eslint": { + "version": "18.4.3", + "resolved": "https://registry.npmjs.org/angular-eslint/-/angular-eslint-18.4.3.tgz", + "integrity": "sha512-0ZjLzzADGRLUhZC8ZpwSo6CE/m6QhQB/oljMJ0mEfP+lB1sy1v8PBKNsJboIcfEEgGW669Z/efVQ3df88yJLYg==", + "license": "MIT", + "peer": true, + "dependencies": { + "@angular-devkit/core": ">= 18.0.0 < 19.0.0", + "@angular-devkit/schematics": ">= 18.0.0 < 19.0.0", + "@angular-eslint/builder": "18.4.3", + "@angular-eslint/eslint-plugin": "18.4.3", + "@angular-eslint/eslint-plugin-template": "18.4.3", + "@angular-eslint/schematics": "18.4.3", + "@angular-eslint/template-parser": "18.4.3", + "@typescript-eslint/types": "^8.0.0", + "@typescript-eslint/utils": "^8.0.0" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": "*", + "typescript-eslint": "^8.0.0" + } + }, "node_modules/ansi-colors": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", @@ -10509,7 +10148,7 @@ "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dev": true, + "devOptional": true, "license": "ISC", "dependencies": { "normalize-path": "^3.0.0", @@ -10545,6 +10184,7 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.10.1.tgz", "integrity": "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ==", "license": "MIT", + "peer": true, "dependencies": { "undici-types": "~7.16.0" } @@ -10553,13 +10193,15 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/are-docs-informative": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/are-docs-informative/-/are-docs-informative-0.0.2.tgz", "integrity": "sha512-ixiS0nLNNG5jNQzgZJNoUpBKdo9yTYZMGJ+QgT2jmjR7G7+QHRCc4v6LQ3NgE7EBJq+o0ams3waJwkrlBom8Ig==", "license": "MIT", + "peer": true, "engines": { "node": ">=14" } @@ -10584,6 +10226,7 @@ "resolved": "https://registry.npmjs.org/array-back/-/array-back-6.2.2.tgz", "integrity": "sha512-gUAZ7HPyb4SJczXAMUXMGAvI976JoK3qEx9v1FTmeYuJj0IBiaKttG1ydtGKdkfqWkIkouke7nG8ufGy77+Cvw==", "license": "MIT", + "peer": true, "engines": { "node": ">=12.17" } @@ -10593,6 +10236,7 @@ "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3", "is-array-buffer": "^3.0.5" @@ -10626,6 +10270,7 @@ "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.9.tgz", "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", @@ -10647,6 +10292,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -10667,6 +10313,7 @@ "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.4", @@ -10688,6 +10335,7 @@ "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -10706,6 +10354,7 @@ "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -10724,6 +10373,7 @@ "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "license": "MIT", + "peer": true, "dependencies": { "array-buffer-byte-length": "^1.0.1", "call-bind": "^1.0.8", @@ -10798,6 +10448,7 @@ "resolved": "https://registry.npmjs.org/async-function/-/async-function-1.0.0.tgz", "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" } @@ -10869,8 +10520,8 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-4.1.0.tgz", "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", - "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">= 0.4" } @@ -11073,7 +10724,6 @@ "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "dev": true, "funding": [ { "type": "github", @@ -11101,9 +10751,9 @@ } }, "node_modules/baseline-browser-mapping": { - "version": "2.8.32", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.32.tgz", - "integrity": "sha512-OPz5aBThlyLFgxyhdwf/s2+8ab3OvT7AdTNvKHBwpXomIYeXqpUUuT8LrdtxZSsWJ4R4CU1un4XGh5Ez3nlTpw==", + "version": "2.9.2", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.2.tgz", + "integrity": "sha512-PxSsosKQjI38iXkmb3d0Y32efqyA0uW4s41u4IVBsLlWLhCiYNpH/AfNOVWRqCQBlD8TFJTz6OUWNd4DFJCnmw==", "license": "Apache-2.0", "bin": { "baseline-browser-mapping": "dist/cli.js" @@ -11169,9 +10819,9 @@ } }, "node_modules/beachball": { - "version": "2.58.0", - "resolved": "https://registry.npmjs.org/beachball/-/beachball-2.58.0.tgz", - "integrity": "sha512-Q3r7fMMVUyuYn+4SYiNOIWrDh1kFuWuQXqqFmaGveHyku6dDCUudaN5YQaZFid0En0DjzwoKnMHBGf+b1Zmzlg==", + "version": "2.60.1", + "resolved": "https://registry.npmjs.org/beachball/-/beachball-2.60.1.tgz", + "integrity": "sha512-6xlhAU9m/z2h3/12l+N5Up1HBuNSE+iGXQfnNnHGLtGMfWA+p8nCvQ9gzRlfhlGACnciJlZBLfHcWeNTcAPADw==", "dev": true, "license": "MIT", "dependencies": { @@ -11184,7 +10834,7 @@ "prompts": "^2.4.2", "semver": "^7.0.0", "toposort": "^2.0.2", - "workspace-tools": "^0.38.2", + "workspace-tools": "^0.40.0", "yargs-parser": "^21.0.0" }, "bin": { @@ -11194,47 +10844,6 @@ "node": ">=14.0.0" } }, - "node_modules/better-opn": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/better-opn/-/better-opn-3.0.2.tgz", - "integrity": "sha512-aVNobHnJqLiUelTaHat9DZ1qM2w0C0Eym4LPI/3JxOnSokGVdsl1T1kN7TFvsEAD8G47A6VKQ0TVHqbBnYMJlQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "open": "^8.0.4" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/better-opn/node_modules/define-lazy-prop": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", - "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/better-opn/node_modules/open": { - "version": "8.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-8.4.2.tgz", - "integrity": "sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "define-lazy-prop": "^2.0.0", - "is-docker": "^2.1.1", - "is-wsl": "^2.2.0" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/big.js": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", @@ -11249,7 +10858,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz", "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=8" @@ -11262,7 +10871,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, "license": "MIT", "dependencies": { "buffer": "^5.5.0", @@ -11271,24 +10879,24 @@ } }, "node_modules/body-parser": { - "version": "1.20.3", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz", - "integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==", + "version": "1.20.4", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.4.tgz", + "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", "dev": true, "license": "MIT", "dependencies": { - "bytes": "3.1.2", + "bytes": "~3.1.2", "content-type": "~1.0.5", "debug": "2.6.9", "depd": "2.0.0", - "destroy": "1.2.0", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "on-finished": "2.4.1", - "qs": "6.13.0", - "raw-body": "2.5.2", + "destroy": "~1.2.0", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "on-finished": "~2.4.1", + "qs": "~6.14.0", + "raw-body": "~2.5.3", "type-is": "~1.6.18", - "unpipe": "1.0.0" + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8", @@ -11330,13 +10938,6 @@ "dev": true, "license": "ISC" }, - "node_modules/boolify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/boolify/-/boolify-1.0.1.tgz", - "integrity": "sha512-ma2q0Tc760dW54CdOyJjhrg/a54317o1zYADQJFgperNGKIKgAUGIcKnuMiff8z57+yGlrGNEt4lPgZfCgTJgA==", - "dev": true, - "license": "MIT" - }, "node_modules/brace-expansion": { "version": "1.1.12", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", @@ -11360,9 +10961,9 @@ } }, "node_modules/browserslist": { - "version": "4.28.0", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.0.tgz", - "integrity": "sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", "funding": [ { "type": "opencollective", @@ -11378,13 +10979,12 @@ } ], "license": "MIT", - "peer": true, "dependencies": { - "baseline-browser-mapping": "^2.8.25", - "caniuse-lite": "^1.0.30001754", - "electron-to-chromium": "^1.5.249", + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", "node-releases": "^2.0.27", - "update-browserslist-db": "^1.1.4" + "update-browserslist-db": "^1.2.0" }, "bin": { "browserslist": "cli.js" @@ -11397,7 +10997,6 @@ "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, "funding": [ { "type": "github", @@ -11642,54 +11241,19 @@ } }, "node_modules/camelcase": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-8.0.0.tgz", - "integrity": "sha512-8WB3Jcas3swSvjIeA2yvCJ+Miyz5l1ZmB6HFb9R1317dt9LCQoswg/BGrmAmkWVEszSrrg4RwmO46qIm2OEnSA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-keys": { - "version": "9.1.3", - "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-9.1.3.tgz", - "integrity": "sha512-Rircqi9ch8AnZscQcsA1C47NFdaO3wukpmIRzYcDOrmvgt78hM/sj5pZhZNec2NM12uk5vTwRHZ4anGcrC4ZTg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, "license": "MIT", - "dependencies": { - "camelcase": "^8.0.0", - "map-obj": "5.0.0", - "quick-lru": "^6.1.1", - "type-fest": "^4.3.2" - }, - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/camelcase-keys/node_modules/type-fest": { - "version": "4.41.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz", - "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", - "dev": true, - "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=6" } }, "node_modules/caniuse-lite": { - "version": "1.0.30001757", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001757.tgz", - "integrity": "sha512-r0nnL/I28Zi/yjk1el6ilj27tKcdjLsNqAOZr0yVjWPrSQyHgKI2INaEWw21bAQSv2LXRt1XuCS/GomNpWOxsQ==", + "version": "1.0.30001759", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001759.tgz", + "integrity": "sha512-Pzfx9fOKoKvevQf8oCXoyNRQ5QyxJj+3O0Rqx2V5oxT61KGx8+n6hV/IUyJeifUci2clnmmKVpvtiqRzgiWjSw==", "funding": [ { "type": "opencollective", @@ -11754,6 +11318,7 @@ "resolved": "https://registry.npmjs.org/chalk-template/-/chalk-template-0.4.0.tgz", "integrity": "sha512-/ghrgmhfY8RaSdeo43hNXxpoHAtxdbskUHjPpfqUWGttFgycUhYPGx3YZBCnUCvOa7Doivn1IZec3DEGFoMgLg==", "license": "MIT", + "peer": true, "dependencies": { "chalk": "^4.1.2" }, @@ -11836,7 +11401,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "anymatch": "~3.1.2", @@ -12032,7 +11597,6 @@ "version": "2.9.2", "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz", "integrity": "sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -12140,7 +11704,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", "integrity": "sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.8" @@ -12231,6 +11794,7 @@ "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-6.0.1.tgz", "integrity": "sha512-Jr3eByUjqyK0qd8W0SGFW1nZwqCaNCtbXjRo2cRJC1OYxWl3MZ5t1US3jq+cO4sPavqgw4l9BMGX0CBe+trepg==", "license": "MIT", + "peer": true, "dependencies": { "array-back": "^6.2.2", "find-replace": "^5.0.2", @@ -12254,6 +11818,7 @@ "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-7.0.3.tgz", "integrity": "sha512-PqMLy5+YGwhMh1wS04mVG44oqDsgyLRSKJBdOo1bnYhMKBW65gZF1dRp2OZRhiTjgUHljy99qkO7bsctLaw35Q==", "license": "MIT", + "peer": true, "dependencies": { "array-back": "^6.2.2", "chalk-template": "^0.4.0", @@ -12265,13 +11830,13 @@ } }, "node_modules/commander": { - "version": "12.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", - "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "version": "14.0.2", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.2.tgz", + "integrity": "sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=18" + "node": ">=20" } }, "node_modules/comment-parser": { @@ -12279,6 +11844,7 @@ "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.4.1.tgz", "integrity": "sha512-buhp5kePrmda3vhc5B9t7pUQXAb2Tnd0qgpkIhPhkHXxJpiPJ11H0ZEU0oBpJ2QztSbzG/ZxMj/CHsYJqRHmyg==", "license": "MIT", + "peer": true, "engines": { "node": ">= 12.0.0" } @@ -12290,16 +11856,6 @@ "dev": true, "license": "ISC" }, - "node_modules/common-tags": { - "version": "1.8.2", - "resolved": "https://registry.npmjs.org/common-tags/-/common-tags-1.8.2.tgz", - "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4.0.0" - } - }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", @@ -12600,9 +12156,9 @@ "license": "MIT" }, "node_modules/cookie": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz", - "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "dev": true, "license": "MIT", "engines": { @@ -12610,9 +12166,9 @@ } }, "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.7.tgz", + "integrity": "sha512-NXdYc3dLr47pBkpUCHtKSwIOQXLVn8dZEuywboCOJY/osA0wFSLlSawr3KN8qXJEyX66FcONTH8EIlVuK0yyFA==", "dev": true, "license": "MIT" }, @@ -12724,18 +12280,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/core-js": { - "version": "3.47.0", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.47.0.tgz", - "integrity": "sha512-c3Q2VVkGAUyupsjRnaNX6u8Dq2vAdzm9iuPj5FW0fRxzlxgq9Q39MDq10IvmQSpLgHQNyQzQmOo6bgGHmH3NNg==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, "node_modules/core-js-compat": { "version": "3.47.0", "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.47.0.tgz", @@ -12789,84 +12333,39 @@ "funding": { "url": "https://github.com/sponsors/d-fischer" }, - "peerDependencies": { - "typescript": ">=4.9.5" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/create-storybook": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/create-storybook/-/create-storybook-10.1.3.tgz", - "integrity": "sha512-PT5N/mTt2cEmu8n0YnIf9R3GFwb2bl7qUm/LlrSipTm/Uxiux358hnKq9mtXCSJn94QteF0zwA8IWm1PfrbTpA==", - "dev": true, - "license": "MIT", - "dependencies": { - "semver": "^7.6.2", - "storybook": "10.1.3" - }, - "bin": { - "create-storybook": "dist/bin/index.js" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - } - }, - "node_modules/create-storybook/node_modules/@storybook/icons": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-2.0.1.tgz", - "integrity": "sha512-/smVjw88yK3CKsiuR71vNgWQ9+NuY2L+e8X7IMrFjexjm6ZR8ULrV2DRkTA61aV6ryefslzHEGDInGpnNeIocg==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" + "peerDependencies": { + "typescript": ">=4.9.5" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, - "node_modules/create-storybook/node_modules/storybook": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-10.1.3.tgz", - "integrity": "sha512-Yoo/LB1OvwwMdKkChFtUXuOKLw/QK+b25pIkAFgZex+0IIXi0dREYEQAvJKd/gIuuqwPksy91p1HeHddv2NXQA==", + "node_modules/create-storybook": { + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/create-storybook/-/create-storybook-10.1.4.tgz", + "integrity": "sha512-jHvTQoxciKXZVFxpesPMt9J/cT0wJpY4qG8rtDEfcX/g72TJ0bS1/Mpbsu3p26orPBDEP1yhN7dEslFINnC+aw==", "dev": true, "license": "MIT", "dependencies": { - "@storybook/global": "^5.0.0", - "@storybook/icons": "^2.0.0", - "@testing-library/jest-dom": "^6.6.3", - "@testing-library/user-event": "^14.6.1", - "@vitest/expect": "3.2.4", - "@vitest/spy": "3.2.4", - "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0 || ^0.26.0 || ^0.27.0", - "recast": "^0.23.5", "semver": "^7.6.2", - "use-sync-external-store": "^1.5.0", - "ws": "^8.18.0" + "storybook": "10.1.4" }, "bin": { - "storybook": "dist/bin/dispatcher.js" + "create-storybook": "dist/bin/index.js" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "prettier": "^2 || ^3" - }, - "peerDependenciesMeta": { - "prettier": { - "optional": true - } } }, "node_modules/crelt": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/crelt/-/crelt-1.0.6.tgz", "integrity": "sha512-VQ2MBenTq1fWZUH9DJNGti7kKv6EeAuYr3cLwxUWhIu1baTaXh4Ib5W2CqHVqib4/MqbYGJqiL3Zb8GJZr3l4g==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/critters": { "version": "0.0.24", @@ -12890,7 +12389,6 @@ "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-10.1.0.tgz", "integrity": "sha512-GsYosgnACZTADcmEyJctkJIoqAhHjttw7RsFrVoJNXbsWWqaq6Ym+7kZjq6mS45O0jij6vtiReppKQEtqWy6Dw==", "license": "MIT", - "peer": true, "dependencies": { "@epic-web/invariant": "^1.0.0", "cross-spawn": "^7.0.6" @@ -13185,7 +12683,6 @@ "resolved": "https://registry.npmjs.org/d3-selection/-/d3-selection-3.0.0.tgz", "integrity": "sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==", "license": "ISC", - "peer": true, "engines": { "node": ">=12" } @@ -13273,6 +12770,7 @@ "resolved": "https://registry.npmjs.org/data-view-buffer/-/data-view-buffer-1.0.2.tgz", "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -13290,6 +12788,7 @@ "resolved": "https://registry.npmjs.org/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -13307,6 +12806,7 @@ "resolved": "https://registry.npmjs.org/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", @@ -13390,7 +12890,8 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/deepmerge": { "version": "4.3.1", @@ -13436,7 +12937,6 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz", "integrity": "sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==", - "dev": true, "license": "MIT", "dependencies": { "clone": "^1.0.2" @@ -13583,8 +13083,7 @@ "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1467305.tgz", "integrity": "sha512-LxwMLqBoPPGpMdRL4NkLFRNy3QLp6Uqa7GNp1v6JaBheop2QrB9Q7q0A/q/CYYP9sBfZdHOyszVx4gc9zyk7ow==", "dev": true, - "license": "BSD-3-Clause", - "peer": true + "license": "BSD-3-Clause" }, "node_modules/di": { "version": "0.0.1", @@ -13597,6 +13096,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, "license": "MIT", "dependencies": { "path-type": "^4.0.0" @@ -13605,13 +13105,6 @@ "node": ">=8" } }, - "node_modules/dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true, - "license": "MIT" - }, "node_modules/dns-packet": { "version": "5.6.1", "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.6.1.tgz", @@ -13626,22 +13119,24 @@ } }, "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "license": "Apache-2.0", + "peer": true, "dependencies": { "esutils": "^2.0.2" }, "engines": { - "node": ">=6.0.0" + "node": ">=0.10.0" } }, "node_modules/dom-accessibility-api": { "version": "0.5.16", "resolved": "https://registry.npmjs.org/dom-accessibility-api/-/dom-accessibility-api-0.5.16.tgz", "integrity": "sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/dom-serialize": { "version": "2.2.1", @@ -13825,9 +13320,9 @@ "license": "MIT" }, "node_modules/electron-to-chromium": { - "version": "1.5.262", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.262.tgz", - "integrity": "sha512-NlAsMteRHek05jRUxUR0a5jpjYq9ykk6+kO0yRaMi5moe7u0fVIOeQ3Y30A8dIiWFBNUoQGi1ljb1i5VtS9WQQ==", + "version": "1.5.265", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.265.tgz", + "integrity": "sha512-B7IkLR1/AE+9jR2LtVF/1/6PFhY5TlnEHnlrKmGk7PvkJibg5jr+mLXLLzq3QYl6PA1T/vLDthQPqIPAlS/PPA==", "license": "ISC" }, "node_modules/emoji-regex": { @@ -13922,16 +13417,6 @@ "node": ">=10.0.0" } }, - "node_modules/engine.io/node_modules/cookie": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", - "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6" - } - }, "node_modules/engine.io/node_modules/debug": { "version": "4.3.7", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", @@ -14087,6 +13572,7 @@ "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.24.0.tgz", "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", "license": "MIT", + "peer": true, "dependencies": { "array-buffer-byte-length": "^1.0.2", "arraybuffer.prototype.slice": "^1.0.4", @@ -14192,6 +13678,7 @@ "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "license": "MIT", + "peer": true, "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", @@ -14207,6 +13694,7 @@ "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", "license": "MIT", + "peer": true, "dependencies": { "hasown": "^2.0.2" }, @@ -14219,6 +13707,7 @@ "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.3.0.tgz", "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "license": "MIT", + "peer": true, "dependencies": { "is-callable": "^1.2.7", "is-date-object": "^1.0.5", @@ -14248,7 +13737,6 @@ "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", "hasInstallScript": true, "license": "MIT", - "peer": true, "bin": { "esbuild": "bin/esbuild" }, @@ -14282,19 +13770,6 @@ "@esbuild/win32-x64": "0.23.0" } }, - "node_modules/esbuild-register": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/esbuild-register/-/esbuild-register-3.6.0.tgz", - "integrity": "sha512-H2/S7Pm8a9CL1uhp9OvjwrBh5Pvx0H8qVOxNu8Wed9Y7qv56MPtq+GGM8RJpq6glYJn9Wspr8uw7l55uyinNeg==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.4" - }, - "peerDependencies": { - "esbuild": ">=0.12 <1" - } - }, "node_modules/esbuild-wasm": { "version": "0.23.0", "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.23.0.tgz", @@ -14371,60 +13846,63 @@ } }, "node_modules/eslint": { - "version": "8.57.1", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.1.tgz", - "integrity": "sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", + "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", "license": "MIT", "peer": true, "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.1", - "@humanwhocodes/config-array": "^0.13.0", + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.1", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.39.1", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-import-context": { @@ -14432,6 +13910,7 @@ "resolved": "https://registry.npmjs.org/eslint-import-context/-/eslint-import-context-0.1.9.tgz", "integrity": "sha512-K9Hb+yRaGAGUbwjhFNHvSmmkZs9+zbuoe3kFQ4V1wYjrepUFYM2dZAfNtjbbj3qsPfUfsA68Bx/ICWQMi+C8Eg==", "license": "MIT", + "peer": true, "dependencies": { "get-tsconfig": "^4.10.1", "stable-hash-x": "^0.2.0" @@ -14456,6 +13935,7 @@ "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz", "integrity": "sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==", "license": "MIT", + "peer": true, "dependencies": { "debug": "^3.2.7", "is-core-module": "^2.13.0", @@ -14467,6 +13947,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "license": "MIT", + "peer": true, "dependencies": { "ms": "^2.1.1" } @@ -14511,6 +13992,7 @@ "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", "license": "MIT", + "peer": true, "dependencies": { "debug": "^3.2.7" }, @@ -14528,6 +14010,7 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "license": "MIT", + "peer": true, "dependencies": { "ms": "^2.1.1" } @@ -14571,27 +14054,17 @@ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "license": "MIT", + "peer": true, "dependencies": { "ms": "^2.1.1" } }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/eslint-plugin-import/node_modules/semver": { "version": "6.3.1", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "license": "ISC", + "peer": true, "bin": { "semver": "bin/semver.js" } @@ -14601,6 +14074,7 @@ "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-60.8.3.tgz", "integrity": "sha512-4191bTMvnd5WUtopCdzNhQchvv/MxtPD86ZGl3vem8Ibm22xJhKuIyClmgSxw+YERtorVc/NhG+bGjfFVa6+VQ==", "license": "BSD-3-Clause", + "peer": true, "dependencies": { "@es-joy/jsdoccomment": "~0.71.0", "are-docs-informative": "^0.0.2", @@ -14627,6 +14101,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -14664,12 +14139,26 @@ "eslint": ">=8.40" } }, + "node_modules/eslint-plugin-storybook": { + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-10.1.4.tgz", + "integrity": "sha512-itG2eLrWyuP5RGIL3TMGA5KSGoBOX3aTnQd43qLJu36ZMzd9H4RHN1I8WTVvyiaInppYJMGB4nnXzSdNXUUeTQ==", + "license": "MIT", + "peer": true, + "dependencies": { + "@typescript-eslint/utils": "^8.8.1" + }, + "peerDependencies": { + "eslint": ">=8", + "storybook": "^10.1.4" + } + }, "node_modules/eslint-scope": { "version": "8.4.0", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", - "dev": true, "license": "BSD-2-Clause", + "peer": true, "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" @@ -14686,6 +14175,7 @@ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", "license": "Apache-2.0", + "peer": true, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, @@ -14698,6 +14188,7 @@ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -14714,6 +14205,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -14721,56 +14213,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/eslint/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint/node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, "node_modules/eslint/node_modules/glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", "license": "ISC", + "peer": true, "dependencies": { "is-glob": "^4.0.3" }, @@ -14782,7 +14230,8 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/esm-import-transformer": { "version": "3.0.5", @@ -14799,6 +14248,7 @@ "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "license": "BSD-2-Clause", + "peer": true, "dependencies": { "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", @@ -14829,6 +14279,7 @@ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "license": "BSD-3-Clause", + "peer": true, "dependencies": { "estraverse": "^5.1.0" }, @@ -14958,40 +14409,40 @@ "license": "Apache-2.0" }, "node_modules/express": { - "version": "4.21.2", - "resolved": "https://registry.npmjs.org/express/-/express-4.21.2.tgz", - "integrity": "sha512-28HqgMZAmih1Czt9ny7qr6ek2qddF4FclbMzwhCREB6OFfH+rXAnuNCwo1/wFvrtbgsQDb4kSbX9de9lFbrXnA==", + "version": "4.22.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.22.1.tgz", + "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", "dev": true, "license": "MIT", "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", - "body-parser": "1.20.3", - "content-disposition": "0.5.4", + "body-parser": "~1.20.3", + "content-disposition": "~0.5.4", "content-type": "~1.0.4", - "cookie": "0.7.1", - "cookie-signature": "1.0.6", + "cookie": "~0.7.1", + "cookie-signature": "~1.0.6", "debug": "2.6.9", "depd": "2.0.0", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", - "finalhandler": "1.3.1", - "fresh": "0.5.2", - "http-errors": "2.0.0", + "finalhandler": "~1.3.1", + "fresh": "~0.5.2", + "http-errors": "~2.0.0", "merge-descriptors": "1.0.3", "methods": "~1.1.2", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "parseurl": "~1.3.3", - "path-to-regexp": "0.1.12", + "path-to-regexp": "~0.1.12", "proxy-addr": "~2.0.7", - "qs": "6.13.0", + "qs": "~6.14.0", "range-parser": "~1.2.1", "safe-buffer": "5.2.1", - "send": "0.19.0", - "serve-static": "1.16.2", + "send": "~0.19.0", + "serve-static": "~1.16.2", "setprototypeof": "1.2.0", - "statuses": "2.0.1", + "statuses": "~2.0.1", "type-is": "~1.6.18", "utils-merge": "1.0.1", "vary": "~1.1.2" @@ -15021,6 +14472,23 @@ "dev": true, "license": "MIT" }, + "node_modules/express/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/express/node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -15035,16 +14503,16 @@ } }, "node_modules/express/node_modules/send": { - "version": "0.19.0", - "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", - "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.1.tgz", + "integrity": "sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg==", "dev": true, "license": "MIT", "dependencies": { "debug": "2.6.9", "depd": "2.0.0", "destroy": "1.2.0", - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", @@ -15059,10 +14527,10 @@ "node": ">= 0.8.0" } }, - "node_modules/express/node_modules/send/node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "node_modules/express/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, "license": "MIT", "engines": { @@ -15171,6 +14639,7 @@ "version": "3.3.3", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -15193,13 +14662,13 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/fast-uri": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz", "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==", - "dev": true, "funding": [ { "type": "github", @@ -15282,15 +14751,16 @@ } }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "license": "MIT", + "peer": true, "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/filesize": { @@ -15316,18 +14786,18 @@ } }, "node_modules/finalhandler": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz", - "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.2.tgz", + "integrity": "sha512-aA4RyPcd3badbdABGDuTXCMTtOneUCAYH/gxoYRTZlIJdF0YPWuGqiAsIrhNnnqdXGswYk6dGujem4w80UJFhg==", "dev": true, "license": "MIT", "dependencies": { "debug": "2.6.9", "encodeurl": "~2.0.0", "escape-html": "~1.0.3", - "on-finished": "2.4.1", + "on-finished": "~2.4.1", "parseurl": "~1.3.3", - "statuses": "2.0.1", + "statuses": "~2.0.2", "unpipe": "~1.0.0" }, "engines": { @@ -15373,6 +14843,7 @@ "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-5.0.2.tgz", "integrity": "sha512-Y45BAiE3mz2QsrN2fb5QEtO4qb44NcS7en/0y9PEVsg351HsLeVclP8QPMH79Le9sH3rs5RSwJu99W0WPZO43Q==", "license": "MIT", + "peer": true, "engines": { "node": ">=14" }, @@ -15390,6 +14861,7 @@ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "license": "MIT", + "peer": true, "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -15412,64 +14884,27 @@ } }, "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "dev": true, - "license": "BSD-3-Clause", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" - }, - "engines": { - "node": "^10.12.0 || >=12.0.0" - } - }, - "node_modules/flat-cache/node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", - "license": "ISC", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "dev": true, + "license": "BSD-3-Clause", + "bin": { + "flat": "cli.js" } }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "license": "ISC", + "node_modules/flat-cache": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", + "license": "MIT", + "peer": true, "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "flatted": "^3.2.9", + "keyv": "^4.5.4" }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "engines": { + "node": ">=16" } }, "node_modules/flatbuffers": { @@ -15636,13 +15071,13 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true, "license": "ISC" }, "node_modules/fsevents": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -15667,6 +15102,7 @@ "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.8.tgz", "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -15687,6 +15123,7 @@ "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -15768,19 +15205,6 @@ "node": ">= 0.4" } }, - "node_modules/get-stdin": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", - "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/get-stream": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", @@ -15799,6 +15223,7 @@ "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.1.0.tgz", "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -15816,6 +15241,7 @@ "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz", "integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==", "license": "MIT", + "peer": true, "dependencies": { "resolve-pkg-maps": "^1.0.0" }, @@ -15936,27 +15362,12 @@ } }, "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globals/node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -15967,6 +15378,7 @@ "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.4.tgz", "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "license": "MIT", + "peer": true, "dependencies": { "define-properties": "^1.2.1", "gopd": "^1.0.1" @@ -15982,6 +15394,7 @@ "version": "11.1.0", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, "license": "MIT", "dependencies": { "array-union": "^2.1.0", @@ -16002,6 +15415,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -16030,7 +15444,8 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/gray-matter": { "version": "4.0.3", @@ -16079,34 +15494,12 @@ "dev": true, "license": "MIT" }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-ansi/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/has-bigints": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.1.0.tgz", "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" }, @@ -16140,6 +15533,7 @@ "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.2.0.tgz", "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "license": "MIT", + "peer": true, "dependencies": { "dunder-proto": "^1.0.0" }, @@ -16342,7 +15736,8 @@ "url": "https://patreon.com/mdevils" } ], - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/html-escaper": { "version": "2.0.2", @@ -16409,20 +15804,24 @@ } }, "node_modules/http-errors": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", - "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.1.tgz", + "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", "dev": true, "license": "MIT", "dependencies": { - "depd": "2.0.0", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": "2.0.1", - "toidentifier": "1.0.1" + "depd": "~2.0.0", + "inherits": "~2.0.4", + "setprototypeof": "~1.2.0", + "statuses": "~2.0.2", + "toidentifier": "~1.0.1" }, "engines": { "node": ">= 0.8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/http-link-header": { @@ -16553,7 +15952,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true, "funding": [ { "type": "github", @@ -16692,6 +16090,7 @@ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", + "dev": true, "license": "ISC", "dependencies": { "once": "^1.3.0", @@ -16946,6 +16345,7 @@ "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.1.0.tgz", "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "license": "MIT", + "peer": true, "dependencies": { "es-errors": "^1.3.0", "hasown": "^2.0.2", @@ -17045,6 +16445,7 @@ "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.5.tgz", "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -17069,6 +16470,7 @@ "resolved": "https://registry.npmjs.org/is-async-function/-/is-async-function-2.1.1.tgz", "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", "license": "MIT", + "peer": true, "dependencies": { "async-function": "^1.0.0", "call-bound": "^1.0.3", @@ -17088,6 +16490,7 @@ "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.1.0.tgz", "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "license": "MIT", + "peer": true, "dependencies": { "has-bigints": "^1.0.2" }, @@ -17102,7 +16505,7 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "binary-extensions": "^2.0.0" @@ -17116,6 +16519,7 @@ "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.2.2.tgz", "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -17132,6 +16536,7 @@ "resolved": "https://registry.npmjs.org/is-bun-module/-/is-bun-module-2.0.0.tgz", "integrity": "sha512-gNCGbnnnnFAUGKeZ9PdbyeGYJqewpmc2aKHUEMO5nQPWU9lOmv7jcmQIv+qHD8fXW6W7qfuCwX4rY9LNRjXrkQ==", "license": "MIT", + "peer": true, "dependencies": { "semver": "^7.7.1" } @@ -17181,6 +16586,7 @@ "resolved": "https://registry.npmjs.org/is-data-view/-/is-data-view-1.0.2.tgz", "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.2", "get-intrinsic": "^1.2.6", @@ -17198,6 +16604,7 @@ "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.1.0.tgz", "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.2", "has-tostringtag": "^1.0.2" @@ -17260,6 +16667,7 @@ "resolved": "https://registry.npmjs.org/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3" }, @@ -17360,7 +16768,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -17385,6 +16792,7 @@ "resolved": "https://registry.npmjs.org/is-map/-/is-map-2.0.3.tgz", "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" }, @@ -17421,6 +16829,7 @@ "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" }, @@ -17455,6 +16864,7 @@ "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.1.1.tgz", "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -17476,15 +16886,6 @@ "node": ">=8" } }, - "node_modules/is-path-inside": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", - "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", - "license": "MIT", - "engines": { - "node": ">=8" - } - }, "node_modules/is-plain-obj": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.1.0.tgz", @@ -17541,6 +16942,7 @@ "resolved": "https://registry.npmjs.org/is-set/-/is-set-2.0.3.tgz", "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" }, @@ -17553,6 +16955,7 @@ "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3" }, @@ -17591,6 +16994,7 @@ "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.1.1.tgz", "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3", "has-tostringtag": "^1.0.2" @@ -17607,6 +17011,7 @@ "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.1.1.tgz", "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.2", "has-symbols": "^1.1.0", @@ -17645,7 +17050,6 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "dev": true, "license": "MIT", "engines": { "node": ">=10" @@ -17659,6 +17063,7 @@ "resolved": "https://registry.npmjs.org/is-weakmap/-/is-weakmap-2.0.2.tgz", "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" }, @@ -17671,6 +17076,7 @@ "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.1.1.tgz", "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3" }, @@ -17686,6 +17092,7 @@ "resolved": "https://registry.npmjs.org/is-weakset/-/is-weakset-2.0.4.tgz", "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3", "get-intrinsic": "^1.2.6" @@ -17900,26 +17307,25 @@ } }, "node_modules/jasmine": { - "version": "5.12.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-5.12.0.tgz", - "integrity": "sha512-KmKeTNuH8rgAuPRL5AUsXWSdJVlDu+pgqi2dLXoZUSH/g3kR+7Ho8B7hEhwDu0fu1PLuiXZtfaxmQ/mB5wqihw==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-5.13.0.tgz", + "integrity": "sha512-oLCXIhEb5e0zzjn9GyuvcuisvLBwUjmgz7a0RNGWKwQtJCDld4m+vwKUpAIJVLB5vbmQFdtKhT86/tIZlJ5gYw==", "dev": true, "license": "MIT", "dependencies": { "glob": "^10.2.2", - "jasmine-core": "~5.12.0" + "jasmine-core": "~5.13.0" }, "bin": { "jasmine": "bin/jasmine.js" } }, "node_modules/jasmine-core": { - "version": "5.12.1", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.12.1.tgz", - "integrity": "sha512-P/UbRZ0LKwXe7wEpwDheuhunPwITn4oPALhrJEQJo6756EwNGnsK/TSQrWojBB4cQDQ+VaxWYws9tFNDuiMh2Q==", + "version": "5.13.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.13.0.tgz", + "integrity": "sha512-vsYjfh7lyqvZX5QgqKc4YH8phs7g96Z8bsdIFNEU3VqXhlHaq+vov/Fgn/sr6MiUczdZkyXRC3TX369Ll4Nzbw==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/jasmine/node_modules/brace-expansion": { "version": "2.0.2", @@ -18027,7 +17433,7 @@ "version": "1.21.7", "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz", "integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==", - "dev": true, + "devOptional": true, "license": "MIT", "bin": { "jiti": "bin/jiti.js" @@ -18239,6 +17645,7 @@ "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-6.6.0.tgz", "integrity": "sha512-3hSD14nXx66Rspx1RMnz1Pj4JacrMBAsC0CrF9lZYO/Qsp5/oIr6KqujVUNhQu94B6mMip2ukki8MpEWZwyhKA==", "license": "MIT", + "peer": true, "engines": { "node": ">=20.0.0" } @@ -18259,6 +17666,7 @@ "version": "0.0.3", "resolved": "https://registry.npmjs.org/json-bignum/-/json-bignum-0.0.3.tgz", "integrity": "sha512-2WHyXj3OfHSgNyuzDbSxI1w2jgw5gkWSWhS7Qg4bWXx1nLk3jnbwfUeS0PSba3IzpTUWdHxBieELUzXRjQB2zg==", + "peer": true, "engines": { "node": ">=0.8" } @@ -18267,7 +17675,8 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/json-parse-even-better-errors": { "version": "2.3.1", @@ -18280,7 +17689,6 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", - "dev": true, "license": "MIT" }, "node_modules/json-stable-stringify": { @@ -18307,7 +17715,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/json5": { "version": "2.2.3", @@ -18325,7 +17734,6 @@ "version": "3.3.1", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.3.1.tgz", "integrity": "sha512-HUgH65KyejrUFPvHFPbqOY0rsFip3Bo5wb4ngvdi1EpCYWUQDC5V+Y7mZws+DLkr4M//zQJoanu1SP+87Dv1oQ==", - "dev": true, "license": "MIT" }, "node_modules/jsonfile": { @@ -18377,7 +17785,6 @@ "integrity": "sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@colors/colors": "1.5.0", "body-parser": "^1.19.0", @@ -18512,7 +17919,6 @@ "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "jasmine-core": "^4.1.0" }, @@ -18814,6 +18220,7 @@ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "license": "MIT", + "peer": true, "dependencies": { "json-buffer": "3.0.1" } @@ -18872,7 +18279,6 @@ "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", "dev": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "copy-anything": "^2.0.1", "parse-node-version": "^1.0.1", @@ -18965,6 +18371,7 @@ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", "license": "MIT", + "peer": true, "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" @@ -19419,6 +18826,7 @@ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "license": "MIT", + "peer": true, "dependencies": { "p-locate": "^5.0.0" }, @@ -19463,18 +18871,12 @@ "dev": true, "license": "MIT" }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true, - "license": "MIT" - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/lodash.snakecase": { "version": "4.1.1", @@ -19487,7 +18889,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dev": true, "license": "MIT", "dependencies": { "chalk": "^4.1.0", @@ -19733,101 +19134,6 @@ "node": ">=8.0" } }, - "node_modules/loglevel": { - "version": "1.9.2", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", - "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.6.0" - }, - "funding": { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/loglevel" - } - }, - "node_modules/loglevel-colored-level-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/loglevel-colored-level-prefix/-/loglevel-colored-level-prefix-1.0.0.tgz", - "integrity": "sha512-u45Wcxxc+SdAlh4yeF/uKlC1SPUPCy0gullSNKXod5I4bmifzk+Q4lSLExNEVn19tGaJipbZ4V4jbFn79/6mVA==", - "dev": true, - "license": "MIT", - "dependencies": { - "chalk": "^1.1.3", - "loglevel": "^1.4.1" - } - }, - "node_modules/loglevel-colored-level-prefix/node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loglevel-colored-level-prefix/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loglevel-colored-level-prefix/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loglevel-colored-level-prefix/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/loglevel-colored-level-prefix/node_modules/strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/loglevel-colored-level-prefix/node_modules/supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, "node_modules/longest-streak": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.1.0.tgz", @@ -19903,6 +19209,7 @@ "resolved": "https://registry.npmjs.org/lz-string/-/lz-string-1.5.0.tgz", "integrity": "sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==", "license": "MIT", + "peer": true, "bin": { "lz-string": "bin/bin.js" } @@ -19911,7 +19218,6 @@ "version": "0.30.11", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.11.tgz", "integrity": "sha512-+Wri9p0QHMy+545hKww7YAu5NyzF8iomPL/RQazugQ9+Ez4Ic3mERMd8ZTX5rfK944j+560ZJi8iAwgak1Ac7A==", - "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0" @@ -19978,26 +19284,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/make-plural": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/make-plural/-/make-plural-7.4.0.tgz", - "integrity": "sha512-4/gC9KVNTV6pvYg2gFeQYTW3mWaoJt7WZE5vrp1KnQDgW92JtYZnzmZT81oj/dUTqAIu0ufI2x3dkgu3bB1tYg==", - "dev": true, - "license": "Unicode-DFS-2016" - }, - "node_modules/map-obj": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-5.0.0.tgz", - "integrity": "sha512-2L3MIgJynYrZ3TYMriLDLWocz15okFakV6J12HXvMXDHui2x/zgChzg1u9mFFGbbGWE+GsLpQByt4POb9Or+uA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/markdown-it": { "version": "14.1.0", "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.0.tgz", @@ -21022,7 +20308,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -21403,6 +20688,7 @@ "resolved": "https://registry.npmjs.org/napi-postinstall/-/napi-postinstall-0.3.4.tgz", "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", "license": "MIT", + "peer": true, "bin": { "napi-postinstall": "lib/cli.js" }, @@ -21417,7 +20703,8 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/needle": { "version": "3.3.1", @@ -21484,7 +20771,6 @@ "integrity": "sha512-dy9ZDpZb3QpAz+Y/m8VAu7ctr2VrnRU3gmQwJagnNybVJtCsKn3lZA3IW7Z7GTLoG5IALSPouiCgiB/C8ozv7w==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@rollup/plugin-json": "^6.1.0", "@rollup/plugin-node-resolve": "^15.2.3", @@ -21555,6 +20841,16 @@ } } }, + "node_modules/ng-packagr/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/ng-packagr/node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", @@ -21741,9 +21037,9 @@ } }, "node_modules/node-forge": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.2.tgz", - "integrity": "sha512-6xKiQ+cph9KImrRh0VsjH2d8/GXA4FIMlgU4B757iI1ApvcyA9VlouP0yZJha01V+huImO+kKMU7ih+2+E14fw==", + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.3.tgz", + "integrity": "sha512-rLvcdSyRCyouf6jcOIPe/BgwG/d7hKjzMKOas33/pHEr6gbq18IK9zV7DiPvzsz0oBJPme6qr6H6kGZuI9/DZg==", "dev": true, "license": "(BSD-3-Clause OR GPL-2.0)", "engines": { @@ -21969,7 +21265,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, + "devOptional": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -22163,6 +21459,7 @@ "resolved": "https://registry.npmjs.org/object-deep-merge/-/object-deep-merge-1.0.5.tgz", "integrity": "sha512-3DioFgOzetbxbeUq8pB2NunXo8V0n4EvqsWM/cJoI6IA9zghd7cl/2pBOuWRf4dlvA+fcg5ugFMZaN2/RuoaGg==", "license": "MIT", + "peer": true, "dependencies": { "type-fest": "4.2.0" } @@ -22172,6 +21469,7 @@ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.2.0.tgz", "integrity": "sha512-5zknd7Dss75pMSED270A1RQS3KloqRJA9XbXLe0eCxyw7xXFb3rd+9B0UQ/0E+LQT6lnrLviEolYORlRWamn4w==", "license": "(MIT OR CC0-1.0)", + "peer": true, "engines": { "node": ">=16" }, @@ -22242,6 +21540,7 @@ "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.8.tgz", "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -22260,6 +21559,7 @@ "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.3.tgz", "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -22274,6 +21574,7 @@ "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.2.1.tgz", "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.3", @@ -22321,6 +21622,7 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, "license": "ISC", "dependencies": { "wrappy": "1" @@ -22330,7 +21632,6 @@ "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, "license": "MIT", "dependencies": { "mimic-fn": "^2.1.0" @@ -22364,6 +21665,7 @@ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "license": "MIT", + "peer": true, "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", @@ -22380,7 +21682,6 @@ "version": "5.4.1", "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", - "dev": true, "license": "MIT", "dependencies": { "bl": "^4.1.0", @@ -22404,7 +21705,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, "license": "MIT", "dependencies": { "restore-cursor": "^3.1.0" @@ -22417,7 +21717,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, "license": "MIT", "dependencies": { "onetime": "^5.1.0", @@ -22455,6 +21754,7 @@ "resolved": "https://registry.npmjs.org/own-keys/-/own-keys-1.0.1.tgz", "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", "license": "MIT", + "peer": true, "dependencies": { "get-intrinsic": "^1.2.6", "object-keys": "^1.1.1", @@ -22494,6 +21794,7 @@ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "license": "MIT", + "peer": true, "dependencies": { "p-limit": "^3.0.2" }, @@ -22707,6 +22008,7 @@ "resolved": "https://registry.npmjs.org/parse-imports-exports/-/parse-imports-exports-0.2.4.tgz", "integrity": "sha512-4s6vd6dx1AotCx/RCI2m7t7GCh5bDRUtGNvRfHSP2wbBQdMi67pPe7mtzmgwcaQ8VKK/6IB7Glfyu3qdZJPybQ==", "license": "MIT", + "peer": true, "dependencies": { "parse-statements": "1.0.11" } @@ -22761,7 +22063,8 @@ "version": "1.0.11", "resolved": "https://registry.npmjs.org/parse-statements/-/parse-statements-1.0.11.tgz", "integrity": "sha512-HlsyYdMBnbPQ9Jr/VgJ1YF4scnldvJpJxCVx6KgqPL4dxppsWrJHCIIxQXMJrqGnsRkNPATbeMJ8Yxu7JMsYcA==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/parse-url": { "version": "9.2.0", @@ -22910,6 +22213,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -22966,6 +22270,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -23234,7 +22539,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.1", @@ -23373,7 +22677,6 @@ "integrity": "sha512-7Hc+IvlQ7hlaIfQFZnxlRl0jnpWq2qwibORBhQYIb0QbNtuicc5ZxvKkVT71HJ4Py1wSZ/3VR1r8LfkCtoCzhw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "posthtml-parser": "^0.11.0", "posthtml-render": "^3.0.0" @@ -23515,17 +22818,17 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8.0" } }, "node_modules/prettier": { - "version": "3.7.3", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.3.tgz", - "integrity": "sha512-QgODejq9K3OzoBbuyobZlUhznP5SKwPqp+6Q6xw6o8gnhr4O85L2U915iM2IDcfF2NPXVaM9zlo9tdwipnYwzg==", + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.7.4.tgz", + "integrity": "sha512-v6UNi1+3hSlVvv8fSaoUbggEM5VErKmmpGA7Pl3HF8V6uKY7rvClBOJlH6yNwQtfTueNkGVpOv/mtWL9L4bgRA==", "devOptional": true, "license": "MIT", - "peer": true, "bin": { "prettier": "bin/prettier.cjs" }, @@ -23536,351 +22839,27 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/prettier-eslint": { - "version": "16.4.2", - "resolved": "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-16.4.2.tgz", - "integrity": "sha512-vtJAQEkaN8fW5QKl08t7A5KCjlZuDUNeIlr9hgolMS5s3+uzbfRHDwaRnzrdqnY2YpHDmeDS/8zY0MKQHXJtaA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/parser": "^6.21.0", - "common-tags": "^1.8.2", - "dlv": "^1.1.3", - "eslint": "^8.57.1", - "indent-string": "^4.0.0", - "lodash.merge": "^4.6.2", - "loglevel-colored-level-prefix": "^1.0.0", - "prettier": "^3.5.3", - "pretty-format": "^29.7.0", - "require-relative": "^0.8.7", - "tslib": "^2.8.1", - "vue-eslint-parser": "^9.4.3" - }, - "engines": { - "node": ">=16.10.0" - }, - "funding": { - "url": "https://opencollective.com/prettier-eslint" - }, - "peerDependencies": { - "prettier-plugin-svelte": "^3.0.0", - "svelte-eslint-parser": "*" - }, - "peerDependenciesMeta": { - "prettier-plugin-svelte": { - "optional": true - }, - "svelte-eslint-parser": { - "optional": true - } - } - }, - "node_modules/prettier-eslint-cli": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/prettier-eslint-cli/-/prettier-eslint-cli-8.0.1.tgz", - "integrity": "sha512-jru4JUDHzWEtM/SOxqagU7hQTVP8BVrxO2J0qNauWZuPRld6Ea2eyNaEzIGx6I+yjmOLCsjNM+vU1AJgaW1ZSQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@messageformat/core": "^3.2.0", - "@prettier/eslint": "npm:prettier-eslint@^16.1.0", - "arrify": "^2.0.1", - "boolify": "^1.0.1", - "camelcase-keys": "^9.1.0", - "chalk": "^4.1.2", - "common-tags": "^1.8.2", - "core-js": "^3.33.0", - "eslint": "^8.51.0", - "find-up": "^5.0.0", - "get-stdin": "^8.0.0", - "glob": "^10.3.10", - "ignore": "^5.2.4", - "indent-string": "^4.0.0", - "lodash.memoize": "^4.1.2", - "loglevel-colored-level-prefix": "^1.0.0", - "rxjs": "^7.8.1", - "yargs": "^17.7.2" - }, - "bin": { - "prettier-eslint": "dist/index.js" - }, - "engines": { - "node": ">=16.10.0" - }, - "peerDependencies": { - "prettier-eslint": "*" - }, - "peerDependenciesMeta": { - "prettier-eslint": { - "optional": true - } - } - }, - "node_modules/prettier-eslint-cli/node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/prettier-eslint-cli/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/prettier-eslint-cli/node_modules/glob": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.5.0.tgz", - "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", - "dev": true, - "license": "ISC", - "dependencies": { - "foreground-child": "^3.1.0", - "jackspeak": "^3.1.2", - "minimatch": "^9.0.4", - "minipass": "^7.1.2", - "package-json-from-dist": "^1.0.0", - "path-scurry": "^1.11.1" - }, - "bin": { - "glob": "dist/esm/bin.mjs" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/prettier-eslint-cli/node_modules/jackspeak": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", - "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "@isaacs/cliui": "^8.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - }, - "optionalDependencies": { - "@pkgjs/parseargs": "^0.11.0" - } - }, - "node_modules/prettier-eslint-cli/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/prettier-eslint-cli/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/prettier-eslint-cli/node_modules/path-scurry": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz", - "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", - "dev": true, - "license": "BlueOak-1.0.0", - "dependencies": { - "lru-cache": "^10.2.0", - "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" - }, - "engines": { - "node": ">=16 || 14 >=14.18" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/prettier-eslint/node_modules/@typescript-eslint/parser": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.21.0.tgz", - "integrity": "sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/prettier-eslint/node_modules/@typescript-eslint/scope-manager": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/prettier-eslint/node_modules/@typescript-eslint/types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/prettier-eslint/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/prettier-eslint/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "6.21.0", - "eslint-visitor-keys": "^3.4.1" - }, - "engines": { - "node": "^16.0.0 || >=18.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/prettier-eslint/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/prettier-eslint/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/prettier-eslint/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", - "dev": true, + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", + "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "license": "MIT", + "peer": true, "dependencies": { - "@jest/schemas": "^29.6.3", + "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "react-is": "^17.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, "node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", - "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -23986,6 +22965,7 @@ "resolved": "https://registry.npmjs.org/prosemirror-changeset/-/prosemirror-changeset-2.3.1.tgz", "integrity": "sha512-j0kORIBm8ayJNl3zQvD1TTPHJX3g042et6y/KQhZhnPrruO8exkTgG8X+NRpj7kIyMMEx74Xb3DyMIBtO0IKkQ==", "license": "MIT", + "peer": true, "dependencies": { "prosemirror-transform": "^1.0.0" } @@ -23995,6 +22975,7 @@ "resolved": "https://registry.npmjs.org/prosemirror-collab/-/prosemirror-collab-1.3.1.tgz", "integrity": "sha512-4SnynYR9TTYaQVXd/ieUvsVV4PDMBzrq2xPUWutHivDuOshZXqQ5rGbZM84HEaXKbLdItse7weMGOUdDVcLKEQ==", "license": "MIT", + "peer": true, "dependencies": { "prosemirror-state": "^1.0.0" } @@ -24004,6 +22985,7 @@ "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.7.1.tgz", "integrity": "sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==", "license": "MIT", + "peer": true, "dependencies": { "prosemirror-model": "^1.0.0", "prosemirror-state": "^1.0.0", @@ -24015,6 +22997,7 @@ "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.2.tgz", "integrity": "sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==", "license": "MIT", + "peer": true, "dependencies": { "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.1.0", @@ -24026,6 +23009,7 @@ "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.4.0.tgz", "integrity": "sha512-z00qvurSdCEWUIulij/isHaqu4uLS8r/Fi61IbjdIPJEonQgggbJsLnstW7Lgdk4zQ68/yr6B6bf7sJXowIgdQ==", "license": "MIT", + "peer": true, "dependencies": { "prosemirror-keymap": "^1.0.0", "prosemirror-model": "^1.0.0", @@ -24038,6 +23022,7 @@ "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.5.0.tgz", "integrity": "sha512-zlzTiH01eKA55UAf1MEjtssJeHnGxO0j4K4Dpx+gnmX9n+SHNlDqI2oO1Kv1iPN5B1dm5fsljCfqKF9nFL6HRg==", "license": "MIT", + "peer": true, "dependencies": { "prosemirror-state": "^1.2.2", "prosemirror-transform": "^1.0.0", @@ -24050,6 +23035,7 @@ "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.5.1.tgz", "integrity": "sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw==", "license": "MIT", + "peer": true, "dependencies": { "prosemirror-state": "^1.0.0", "prosemirror-transform": "^1.0.0" @@ -24060,6 +23046,7 @@ "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.3.tgz", "integrity": "sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==", "license": "MIT", + "peer": true, "dependencies": { "prosemirror-state": "^1.0.0", "w3c-keyname": "^2.2.0" @@ -24081,6 +23068,7 @@ "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.5.tgz", "integrity": "sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==", "license": "MIT", + "peer": true, "dependencies": { "crelt": "^1.0.0", "prosemirror-commands": "^1.0.0", @@ -24093,7 +23081,6 @@ "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.4.tgz", "integrity": "sha512-PIM7E43PBxKce8OQeezAs9j4TP+5yDpZVbuurd1h5phUxEKIu+G2a+EUZzIC5nS1mJktDJWzbqS23n1tsAf5QA==", "license": "MIT", - "peer": true, "dependencies": { "orderedmap": "^2.0.0" } @@ -24103,6 +23090,7 @@ "resolved": "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.4.tgz", "integrity": "sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==", "license": "MIT", + "peer": true, "dependencies": { "prosemirror-model": "^1.25.0" } @@ -24112,6 +23100,7 @@ "resolved": "https://registry.npmjs.org/prosemirror-schema-list/-/prosemirror-schema-list-1.5.1.tgz", "integrity": "sha512-927lFx/uwyQaGwJxLWCZRkjXG0p48KpMj6ueoYiu4JX05GGuGcgzAy62dfiV8eFZftgyBUvLx76RsMe20fJl+Q==", "license": "MIT", + "peer": true, "dependencies": { "prosemirror-model": "^1.0.0", "prosemirror-state": "^1.0.0", @@ -24123,7 +23112,6 @@ "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.4.tgz", "integrity": "sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==", "license": "MIT", - "peer": true, "dependencies": { "prosemirror-model": "^1.0.0", "prosemirror-transform": "^1.0.0", @@ -24131,16 +23119,17 @@ } }, "node_modules/prosemirror-tables": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.8.1.tgz", - "integrity": "sha512-DAgDoUYHCcc6tOGpLVPSU1k84kCUWTWnfWX3UDy2Delv4ryH0KqTD6RBI6k4yi9j9I8gl3j8MkPpRD/vWPZbug==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.8.3.tgz", + "integrity": "sha512-wbqCR/RlRPRe41a4LFtmhKElzBEfBTdtAYWNIGHM6X2e24NN/MTNUKyXjjphfAfdQce37Kh/5yf765mLPYDe7Q==", "license": "MIT", + "peer": true, "dependencies": { - "prosemirror-keymap": "^1.2.2", - "prosemirror-model": "^1.25.0", - "prosemirror-state": "^1.4.3", - "prosemirror-transform": "^1.10.3", - "prosemirror-view": "^1.39.1" + "prosemirror-keymap": "^1.2.3", + "prosemirror-model": "^1.25.4", + "prosemirror-state": "^1.4.4", + "prosemirror-transform": "^1.10.5", + "prosemirror-view": "^1.41.4" } }, "node_modules/prosemirror-trailing-node": { @@ -24148,6 +23137,7 @@ "resolved": "https://registry.npmjs.org/prosemirror-trailing-node/-/prosemirror-trailing-node-3.0.0.tgz", "integrity": "sha512-xiun5/3q0w5eRnGYfNlW1uU9W6x5MoFKWwq/0TIRgt09lv7Hcser2QYV8t4muXbEr+Fwo0geYn79Xs4GKywrRQ==", "license": "MIT", + "peer": true, "dependencies": { "@remirror/core-constants": "3.0.0", "escape-string-regexp": "^4.0.0" @@ -24163,6 +23153,7 @@ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -24180,11 +23171,10 @@ } }, "node_modules/prosemirror-view": { - "version": "1.41.3", - "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.41.3.tgz", - "integrity": "sha512-SqMiYMUQNNBP9kfPhLO8WXEk/fon47vc52FQsUiJzTBuyjKgEcoAwMyF04eQ4WZ2ArMn7+ReypYL60aKngbACQ==", + "version": "1.41.4", + "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.41.4.tgz", + "integrity": "sha512-WkKgnyjNncri03Gjaz3IFWvCAE94XoiEgvtr0/r2Xw7R8/IjK3sKLSiDoCHWcsXSAinVaKlGRZDvMCsF1kbzjA==", "license": "MIT", - "peer": true, "dependencies": { "prosemirror-model": "^1.20.0", "prosemirror-state": "^1.0.0", @@ -24305,16 +23295,16 @@ } }, "node_modules/puppeteer-core": { - "version": "24.31.0", - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.31.0.tgz", - "integrity": "sha512-pnAohhSZipWQoFpXuGV7xCZfaGhqcBR9C4pVrU0QSrcMi7tQMH9J9lDBqBvyMAHQqe8HCARuREqFuVKRQOgTvg==", + "version": "24.32.0", + "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-24.32.0.tgz", + "integrity": "sha512-MqzLLeJjqjtHK9J44+KE3kjtXXhFpPvg+AvXl/oy/jB8MeeNH66/4MNotOTqGZ6MPaxWi51YJ1ASga6OIff6xw==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@puppeteer/browsers": "2.10.13", + "@puppeteer/browsers": "2.11.0", "chromium-bidi": "11.0.0", "debug": "^4.4.3", - "devtools-protocol": "0.0.1521046", + "devtools-protocol": "0.0.1534754", "typed-query-selector": "^2.12.0", "webdriver-bidi-protocol": "0.3.9", "ws": "^8.18.3" @@ -24324,9 +23314,9 @@ } }, "node_modules/puppeteer-core/node_modules/devtools-protocol": { - "version": "0.0.1521046", - "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1521046.tgz", - "integrity": "sha512-vhE6eymDQSKWUXwwA37NtTTVEzjtGVfDr3pRbsWEQ5onH/Snp2c+2xZHWJJawG/0hCCJLRGt4xVtEVUVILol4w==", + "version": "0.0.1534754", + "resolved": "https://registry.npmjs.org/devtools-protocol/-/devtools-protocol-0.0.1534754.tgz", + "integrity": "sha512-26T91cV5dbOYnXdJi5qQHoTtUoNEqwkHcAyu/IKtjIAxiEqPMrDiRkDOPWVsGfNZGmlQVHQbZRSjD8sxagWVsQ==", "dev": true, "license": "BSD-3-Clause" }, @@ -24341,13 +23331,13 @@ } }, "node_modules/qs": { - "version": "6.13.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz", - "integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==", + "version": "6.14.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.14.0.tgz", + "integrity": "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "side-channel": "^1.0.6" + "side-channel": "^1.1.0" }, "engines": { "node": ">=0.6" @@ -24376,19 +23366,6 @@ ], "license": "MIT" }, - "node_modules/quick-lru": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-6.1.2.tgz", - "integrity": "sha512-AAFUA5O1d83pIHEhJwWCq/RQcRukCkn/NSm2QsTEMle5f2hP0ChI2+3Xb051PZCkLryI/Ir1MVKviT2FIloaTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -24410,16 +23387,16 @@ } }, "node_modules/raw-body": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", - "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.3.tgz", + "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", "dev": true, "license": "MIT", "dependencies": { - "bytes": "3.1.2", - "http-errors": "2.0.0", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" + "bytes": "~3.1.2", + "http-errors": "~2.0.1", + "iconv-lite": "~0.4.24", + "unpipe": "~1.0.0" }, "engines": { "node": ">= 0.8" @@ -24430,7 +23407,6 @@ "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0" }, @@ -24443,7 +23419,6 @@ "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", "license": "MIT", - "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.2" @@ -24453,11 +23428,11 @@ } }, "node_modules/react-is": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", - "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", - "dev": true, - "license": "MIT" + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==", + "license": "MIT", + "peer": true }, "node_modules/react-syntax-highlighter": { "version": "16.1.0", @@ -24494,7 +23469,6 @@ "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, "license": "MIT", "dependencies": { "inherits": "^2.0.3", @@ -24509,7 +23483,7 @@ "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, + "devOptional": true, "license": "MIT", "dependencies": { "picomatch": "^2.2.1" @@ -24579,6 +23553,7 @@ "resolved": "https://registry.npmjs.org/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -24651,6 +23626,7 @@ "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "define-properties": "^1.2.1", @@ -24769,7 +23745,6 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", - "dev": true, "license": "MIT", "engines": { "node": ">=0.10.0" @@ -24782,13 +23757,6 @@ "dev": true, "license": "ISC" }, - "node_modules/require-relative": { - "version": "0.8.7", - "resolved": "https://registry.npmjs.org/require-relative/-/require-relative-0.8.7.tgz", - "integrity": "sha512-AKGr4qvHiryxRb19m3PsLRGuKVAbJLUD7E6eOaHkfKhwc+vSgVOCY5xNvm9EkolBKTOf0GrQAZKLimOCz81Khg==", - "dev": true, - "license": "MIT" - }, "node_modules/requires-port": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", @@ -24827,6 +23795,7 @@ "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" } @@ -24962,6 +23931,7 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-13.0.0.tgz", "integrity": "sha512-tvZgpqk6fz4BaNZ66ZsRaZnbHvP/jG3uKJvAZOwEVUL4RTA5nJeeLYfyN9/VA8NX/V3IBG+hkeuGpKjvELkVhA==", "license": "BlueOak-1.0.0", + "peer": true, "dependencies": { "minimatch": "^10.1.1", "minipass": "^7.1.2", @@ -24979,6 +23949,7 @@ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.1.1.tgz", "integrity": "sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==", "license": "BlueOak-1.0.0", + "peer": true, "dependencies": { "@isaacs/brace-expansion": "^5.0.0" }, @@ -25005,7 +23976,6 @@ "integrity": "sha512-w8GmOxZfBmKknvdXU1sdM9NHcoQejwF/4mNgj2JuEEdRaHwwF12K7e9eXn1nLZ07ad+du76mkVsyeb2rKGllsA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -25104,7 +24074,8 @@ "version": "1.3.4", "resolved": "https://registry.npmjs.org/rope-sequence/-/rope-sequence-1.3.4.tgz", "integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/run-applescript": { "version": "7.1.0", @@ -25166,6 +24137,7 @@ "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.3.tgz", "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -25184,7 +24156,6 @@ "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true, "funding": [ { "type": "github", @@ -25201,18 +24172,12 @@ ], "license": "MIT" }, - "node_modules/safe-identifier": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/safe-identifier/-/safe-identifier-0.4.2.tgz", - "integrity": "sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w==", - "dev": true, - "license": "ISC" - }, "node_modules/safe-push-apply": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/safe-push-apply/-/safe-push-apply-1.0.0.tgz", "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", "license": "MIT", + "peer": true, "dependencies": { "es-errors": "^1.3.0", "isarray": "^2.0.5" @@ -25254,7 +24219,6 @@ "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -25594,6 +24558,23 @@ "dev": true, "license": "MIT" }, + "node_modules/serve-static/node_modules/http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.8" + } + }, "node_modules/serve-static/node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -25642,6 +24623,16 @@ "node": ">= 0.8" } }, + "node_modules/serve-static/node_modules/statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8" + } + }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", @@ -25671,6 +24662,7 @@ "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "license": "MIT", + "peer": true, "dependencies": { "define-data-property": "^1.1.4", "es-errors": "^1.3.0", @@ -25686,6 +24678,7 @@ "resolved": "https://registry.npmjs.org/set-proto/-/set-proto-1.0.0.tgz", "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", "license": "MIT", + "peer": true, "dependencies": { "dunder-proto": "^1.0.1", "es-errors": "^1.3.0", @@ -25825,7 +24818,6 @@ "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, "license": "ISC" }, "node_modules/sigstore": { @@ -26100,7 +25092,6 @@ "version": "0.7.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz", "integrity": "sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==", - "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">= 8" @@ -26215,6 +25206,7 @@ "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-4.0.0.tgz", "integrity": "sha512-Clya5JIij/7C6bRR22+tnGXbc4VKlibKSVj2iHvVeX5iMW7s1SIQlqu699JkODJJIhh/pUu8L0/VLh8xflD+LQ==", "license": "MIT", + "peer": true, "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" @@ -26298,14 +25290,15 @@ "resolved": "https://registry.npmjs.org/stable-hash-x/-/stable-hash-x-0.2.0.tgz", "integrity": "sha512-o3yWv49B/o4QZk5ZcsALc6t0+eCelPc44zZsLtCQnZPDwFpDYSWcDnrv2TtMmMbQ7uKo3J0HTURCqckw23czNQ==", "license": "MIT", + "peer": true, "engines": { "node": ">=12.0.0" } }, "node_modules/statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.2.tgz", + "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "dev": true, "license": "MIT", "engines": { @@ -26317,6 +25310,7 @@ "resolved": "https://registry.npmjs.org/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", "license": "MIT", + "peer": true, "dependencies": { "es-errors": "^1.3.0", "internal-slot": "^1.1.0" @@ -26326,28 +25320,25 @@ } }, "node_modules/storybook": { - "version": "9.1.16", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-9.1.16.tgz", - "integrity": "sha512-339U14K6l46EFyRvaPS2ZlL7v7Pb+LlcXT8KAETrGPxq8v1sAjj2HAOB6zrlAK3M+0+ricssfAwsLCwt7Eg8TQ==", - "dev": true, + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/storybook/-/storybook-10.1.4.tgz", + "integrity": "sha512-FrBjm8I8O+pYEOPHcdW9xWwgXSZxte7lza9q2lN3jFN4vuW79m5j0OnTQeR8z9MmIbBTvkIpp3yMBebl53Yt5Q==", "license": "MIT", - "peer": true, "dependencies": { "@storybook/global": "^5.0.0", + "@storybook/icons": "^2.0.0", "@testing-library/jest-dom": "^6.6.3", "@testing-library/user-event": "^14.6.1", "@vitest/expect": "3.2.4", - "@vitest/mocker": "3.2.4", "@vitest/spy": "3.2.4", - "better-opn": "^3.0.2", - "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0", - "esbuild-register": "^3.5.0", + "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0 || ^0.26.0 || ^0.27.0", "recast": "^0.23.5", "semver": "^7.6.2", + "use-sync-external-store": "^1.5.0", "ws": "^8.18.0" }, "bin": { - "storybook": "bin/index.cjs" + "storybook": "dist/bin/dispatcher.js" }, "funding": { "type": "opencollective", @@ -26362,6 +25353,20 @@ } } }, + "node_modules/storybook-addon-pseudo-states": { + "version": "10.1.4", + "resolved": "https://registry.npmjs.org/storybook-addon-pseudo-states/-/storybook-addon-pseudo-states-10.1.4.tgz", + "integrity": "sha512-c8zBuAMmVcC5qx77fj+b2VvxClCj2WqfrA81zIUfZ27ZPGB4rwoAnyhR3oH4WQRCAVUT0E++qdN3s0QOBY1nHQ==", + "dev": true, + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/storybook" + }, + "peerDependencies": { + "storybook": "^10.1.4" + } + }, "node_modules/stream": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/stream/-/stream-0.0.3.tgz", @@ -26438,7 +25443,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, "license": "MIT", "dependencies": { "safe-buffer": "~5.2.0" @@ -26479,6 +25483,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -26500,6 +25505,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "call-bound": "^1.0.2", @@ -26518,6 +25524,7 @@ "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.7", "define-properties": "^1.2.1", @@ -26561,6 +25568,7 @@ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", "license": "MIT", + "peer": true, "engines": { "node": ">=4" } @@ -26602,6 +25610,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", "license": "MIT", + "peer": true, "engines": { "node": ">=8" }, @@ -26649,6 +25658,16 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/style-dictionary/node_modules/commander": { + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-12.1.0.tgz", + "integrity": "sha512-Vw8qHK3bZM9y/P10u3Vib8o/DdkvA2OtPtZvD871QKjy74Wj1WSKFILMPRPSdUSx5RFK1arlJzEtA4PkFgnbuA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + } + }, "node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -26860,6 +25879,7 @@ "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-4.1.1.tgz", "integrity": "sha512-iK5/YhZxq5GO5z8wb0bY1317uDF3Zjpha0QFFLA8/trAoiLbQD0HUbMesEaxyzUgDxi2QlcbM8IvqOlEjgoXBA==", "license": "MIT", + "peer": true, "dependencies": { "array-back": "^6.2.2", "wordwrapjs": "^5.1.0" @@ -27053,7 +26073,6 @@ "integrity": "sha512-PQ4DAriWzKj+qgehQ7LK5bQqCFNMmlhjR2PFFLuqGCpuCAauxemVBWwWOxo3UIwWQx8+Pr61Df++r76wDmkQBg==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.8.2", @@ -27134,12 +26153,6 @@ } } }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "license": "MIT" - }, "node_modules/thingies": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/thingies/-/thingies-2.5.0.tgz", @@ -27229,7 +26242,6 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -27357,15 +26369,16 @@ } }, "node_modules/ts-api-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.3.tgz", - "integrity": "sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", "license": "MIT", + "peer": true, "engines": { - "node": ">=16" + "node": ">=18.12" }, "peerDependencies": { - "typescript": ">=4.2.0" + "typescript": ">=4.8.4" } }, "node_modules/ts-dedent": { @@ -27383,6 +26396,7 @@ "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", "integrity": "sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg==", "license": "MIT", + "peer": true, "dependencies": { "@types/json5": "^0.0.29", "json5": "^1.0.2", @@ -27395,6 +26409,7 @@ "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", "license": "MIT", + "peer": true, "dependencies": { "minimist": "^1.2.0" }, @@ -27406,8 +26421,7 @@ "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", - "license": "0BSD", - "peer": true + "license": "0BSD" }, "node_modules/tuf-js": { "version": "2.2.1", @@ -27429,6 +26443,7 @@ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "license": "MIT", + "peer": true, "dependencies": { "prelude-ls": "^1.2.1" }, @@ -27468,6 +26483,7 @@ "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3", "es-errors": "^1.3.0", @@ -27482,6 +26498,7 @@ "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.8", "for-each": "^0.3.3", @@ -27501,6 +26518,7 @@ "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "license": "MIT", + "peer": true, "dependencies": { "available-typed-arrays": "^1.0.7", "call-bind": "^1.0.8", @@ -27522,6 +26540,7 @@ "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.7.tgz", "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.7", "for-each": "^0.3.3", @@ -27566,7 +26585,6 @@ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", "integrity": "sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ==", "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -27575,11 +26593,36 @@ "node": ">=14.17" } }, + "node_modules/typescript-eslint": { + "version": "8.48.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.48.1.tgz", + "integrity": "sha512-FbOKN1fqNoXp1hIl5KYpObVrp0mCn+CLgn479nmu2IsRMrx2vyv74MmsBLVlhg8qVwNFGbXSp8fh1zp8pEoC2A==", + "license": "MIT", + "peer": true, + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.48.1", + "@typescript-eslint/parser": "8.48.1", + "@typescript-eslint/typescript-estree": "8.48.1", + "@typescript-eslint/utils": "8.48.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, "node_modules/typical": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/typical/-/typical-7.3.0.tgz", "integrity": "sha512-ya4mg/30vm+DOWfBg4YK3j2WD6TWtRkCbasOJr40CseYENzCUby/7rIvXA99JGsQHeNxLbnXdyLLxKSv3tauFw==", "license": "MIT", + "peer": true, "engines": { "node": ">=12.17" } @@ -27622,6 +26665,7 @@ "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.1.0.tgz", "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.3", "has-bigints": "^1.0.2", @@ -27837,6 +26881,35 @@ "node": ">= 0.8" } }, + "node_modules/unplugin": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", + "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/remapping": "^2.3.5", + "acorn": "^8.15.0", + "picomatch": "^4.0.3", + "webpack-virtual-modules": "^0.6.2" + }, + "engines": { + "node": ">=18.12.0" + } + }, + "node_modules/unplugin/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/unrs-resolver": { "version": "1.11.1", "resolved": "https://registry.npmjs.org/unrs-resolver/-/unrs-resolver-1.11.1.tgz", @@ -27873,9 +26946,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", - "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.2.tgz", + "integrity": "sha512-E85pfNzMQ9jpKkA7+TJAi4TJN+tBCuWh5rUcS/sv6cFi+1q9LYDwDI5dpUL0u/73EElyQ8d3TEaeW4sPedBqYA==", "funding": [ { "type": "opencollective", @@ -27968,7 +27041,6 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true, "license": "MIT" }, "node_modules/utils-merge": { @@ -28064,12 +27136,11 @@ } }, "node_modules/vite": { - "version": "7.2.4", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.4.tgz", - "integrity": "sha512-NL8jTlbo0Tn4dUEXEsUg8KeyG/Lkmc4Fnzb8JXN/Ykm9G4HNImjtABMJgkQoVjOBN/j2WAwDTRytdqJbZsah7w==", + "version": "7.2.6", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.2.6.tgz", + "integrity": "sha512-tI2l/nFHC5rLh7+5+o7QjKjSR04ivXDF4jcgV0f/bTQ+OJiITy5S6gaynVsEM+7RqzufMnVbIon6Sr5x1SDYaQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", @@ -28628,7 +27699,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -28659,100 +27729,28 @@ "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/vue-eslint-parser": { - "version": "9.4.3", - "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.4.3.tgz", - "integrity": "sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==", - "dev": true, - "license": "MIT", - "dependencies": { - "debug": "^4.3.4", - "eslint-scope": "^7.1.1", - "eslint-visitor-keys": "^3.3.0", - "espree": "^9.3.1", - "esquery": "^1.4.0", - "lodash": "^4.17.21", - "semver": "^7.3.6" - }, - "engines": { - "node": "^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/mysticatea" - }, - "peerDependencies": { - "eslint": ">=6.0.0" - } - }, - "node_modules/vue-eslint-parser/node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "source-map-js": "^1.2.1" }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/vue-eslint-parser/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": "^10 || ^12 || >=14" } }, - "node_modules/vue-eslint-parser/node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "node_modules/void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.9.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" - }, + "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" + "node": ">=0.10.0" } }, "node_modules/w3c-keyname": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", "integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==", - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/watchpack": { "version": "2.4.1", @@ -28782,7 +27780,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "integrity": "sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg==", - "dev": true, "license": "MIT", "dependencies": { "defaults": "^1.0.3" @@ -28815,7 +27812,6 @@ "integrity": "sha512-HU1JOuV1OavsZ+mfigY0j8d1TgQgbZ6M+J75zDkpEAwYeXjWSqrGJtgnPblJjd/mAyTNQ7ygw0MiKOn6etz8yw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", @@ -28912,7 +27908,6 @@ "integrity": "sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/bonjour": "^3.5.13", "@types/connect-history-api-fallback": "^1.5.4", @@ -29187,6 +28182,7 @@ "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", "license": "MIT", + "peer": true, "dependencies": { "is-bigint": "^1.1.0", "is-boolean-object": "^1.2.1", @@ -29206,6 +28202,7 @@ "resolved": "https://registry.npmjs.org/which-builtin-type/-/which-builtin-type-1.2.1.tgz", "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", "license": "MIT", + "peer": true, "dependencies": { "call-bound": "^1.0.2", "function.prototype.name": "^1.1.6", @@ -29233,6 +28230,7 @@ "resolved": "https://registry.npmjs.org/which-collection/-/which-collection-1.0.2.tgz", "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "license": "MIT", + "peer": true, "dependencies": { "is-map": "^2.0.3", "is-set": "^2.0.3", @@ -29286,6 +28284,7 @@ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -29295,14 +28294,15 @@ "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.1.tgz", "integrity": "sha512-0yweIbkINJodk27gX9LBGMzyQdBDan3s/dEAiwBOj+Mf0PPyWL6/rikalkv8EeD0E8jm4o5RXEOrFTP3NXbhJg==", "license": "MIT", + "peer": true, "engines": { "node": ">=12.17" } }, "node_modules/workspace-tools": { - "version": "0.38.6", - "resolved": "https://registry.npmjs.org/workspace-tools/-/workspace-tools-0.38.6.tgz", - "integrity": "sha512-mq2BoOFI64ZCN26Vz9pYgPf1aryi2mHCc5dDOdwnGgCcXEnAA1nxtaX6atHxageSQnSivL0LkZlq5CtSNwWDMw==", + "version": "0.40.0", + "resolved": "https://registry.npmjs.org/workspace-tools/-/workspace-tools-0.40.0.tgz", + "integrity": "sha512-OlhUc1gMVNUQnuKil3PilJbmYXycuFT/hmY7H9Nh/WBRf2GcR3ClzpKFIvloidutd6vgo/RLQms4ZmgFG7uHrA==", "dev": true, "license": "MIT", "dependencies": { @@ -29355,6 +28355,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true, "license": "ISC" }, "node_modules/write-file-atomic": { @@ -29474,7 +28475,6 @@ "integrity": "sha512-mplynKqc1C2hTVYxd0PU2xQAc22TI1vShAYGksCCfxbn/dFwnHTNi1bvYsBTkhdUNtGIf5xNOg938rrSSYvS9A==", "dev": true, "license": "ISC", - "peer": true, "bin": { "yaml": "bin.mjs" }, @@ -29554,7 +28554,6 @@ "integrity": "sha512-AvvthqfqrAhNH9dnfmrfKzX5upOdjUVJYFqNSlkmGf64gRaTzlPwz99IHYnVs28qYAybvAlBV+H7pn0saFY4Ig==", "dev": true, "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } @@ -29616,7 +28615,8 @@ "@lhci/cli": "^0.15.0", "@ni-private/eslint-config-nimble": "*", "@ni-private/jasmine-extensions": "*", - "@ni/eslint-config-angular": "^9.0.4", + "@ni/eslint-config-angular": "^10.0.3", + "@ni/eslint-config-javascript": "^5.1.2", "@ni/fast-web-utilities": "^10.0.0", "@ni/jasmine-parameterized": "*", "@ni/nimble-tokens": "*", @@ -29690,6 +28690,7 @@ "@rollup/plugin-node-resolve": "^16.0.0", "cross-env": "^10.1.0", "glob": "^11.0.0", + "globals": "^14.0.0", "playwright": "1.54.1", "rollup": "^4.12.0" } @@ -29730,10 +28731,12 @@ "version": "1.0.0", "license": "MIT", "peerDependencies": { - "@ni/eslint-config-javascript": "^4.3.0", - "@ni/eslint-config-typescript": "^4.4.2", - "eslint": "^8.7.0", - "eslint-plugin-jsdoc": "^60.7.1" + "@ni/eslint-config-angular": "^10.0.3", + "@ni/eslint-config-javascript": "^5.1.2", + "@ni/eslint-config-typescript": "^5.0.3", + "eslint": "^9.36.0", + "eslint-plugin-jsdoc": "^60.7.1", + "globals": "^14.0.0" } }, "packages/jasmine-extensions": { @@ -29836,8 +28839,6 @@ "karma-webkit-launcher": "^2.6.0", "karma-webpack": "^5.0.0", "playwright": "1.54.1", - "prettier-eslint": "^16.3.0", - "prettier-eslint-cli": "^8.0.1", "rollup": "^4.12.0", "rollup-plugin-sourcemaps2": "^0.5.0", "source-map-loader": "^5.0.0", @@ -29897,8 +28898,6 @@ "karma-webkit-launcher": "^2.6.0", "karma-webpack": "^5.0.0", "playwright": "1.54.1", - "prettier-eslint": "^16.3.0", - "prettier-eslint-cli": "^8.0.1", "rollup": "^4.12.0", "rollup-plugin-sourcemaps2": "^0.5.0", "source-map-loader": "^5.0.0", @@ -30033,8 +29032,6 @@ "karma-webkit-launcher": "^2.6.0", "karma-webpack": "^5.0.0", "playwright": "1.54.1", - "prettier-eslint": "^16.3.0", - "prettier-eslint-cli": "^8.0.1", "rollup": "^4.12.0", "rollup-plugin-sourcemaps2": "^0.5.0", "source-map-loader": "^5.0.0", @@ -30066,8 +29063,6 @@ "@storybook/cli": "^10.1.0", "@storybook/html-vite": "^10.1.0", "js-beautify": "^1.15.1", - "prettier-eslint": "^16.3.0", - "prettier-eslint-cli": "^8.0.1", "react-syntax-highlighter": "^16.1.0", "remark-gfm": "^4.0.0", "rollup": "^4.12.0", @@ -30081,280 +29076,8 @@ "apache-arrow": "21.1.0", "eslint-import-resolver-typescript": "^4.4.4", "eslint-plugin-storybook": "^10.1.0", - "flatbuffers": "25.2.10" - } - }, - "packages/storybook/node_modules/@storybook/addon-a11y": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-a11y/-/addon-a11y-10.1.3.tgz", - "integrity": "sha512-czp7P7gGO0xUn2cfRDq+3xqToJwWEFSXUZMhjrTBCcTFVzbUvmC4AnDUZ1KuANuM86GY6uBWSA110acjn11+Iw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0", - "axe-core": "^4.2.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^10.1.3" - } - }, - "packages/storybook/node_modules/@storybook/addon-docs": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-docs/-/addon-docs-10.1.3.tgz", - "integrity": "sha512-+Wg07mGNzwMT0hA8paWqm0Nj4GmEEuJGe45arVHaPUWBT6sY0ipFO3BEN/M7UocC/HOGezn4tUHBYuJ+zrNNGw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@mdx-js/react": "^3.0.0", - "@storybook/csf-plugin": "10.1.3", - "@storybook/icons": "^2.0.0", - "@storybook/react-dom-shim": "10.1.3", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^10.1.3" - } - }, - "packages/storybook/node_modules/@storybook/addon-links": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@storybook/addon-links/-/addon-links-10.1.3.tgz", - "integrity": "sha512-HMBMgO1A9q84LDJVjzkOJvJMP2ouDMWNYssUMpEjSMDqTQV9x0Lbwb+O2A6wm/PjoQUF3rOAEzgYcKJ3WmnSFA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "storybook": "^10.1.3" - }, - "peerDependenciesMeta": { - "react": { - "optional": true - } - } - }, - "packages/storybook/node_modules/@storybook/builder-vite": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@storybook/builder-vite/-/builder-vite-10.1.3.tgz", - "integrity": "sha512-dLgDHM0f8Jl6Vinf0HPnmntlbdA3kzLndc8XyZFv8KnHwDmHJyYRdgEh+VO8+tJRIUGTTOn7RxLogWjUIUg+IQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/csf-plugin": "10.1.3", - "@vitest/mocker": "3.2.4", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^10.1.3", - "vite": "^5.0.0 || ^6.0.0 || ^7.0.0" - } - }, - "packages/storybook/node_modules/@storybook/csf-plugin": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@storybook/csf-plugin/-/csf-plugin-10.1.3.tgz", - "integrity": "sha512-is4z3TVLtQK2zYzgFiQlB6aRt1Y2xAVkOBDXKSKXor4pY4Jf1UWEk5kFYlwtJOISVJXYM8Y2axTHpGKnbdhI5Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "unplugin": "^2.3.5" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "esbuild": "*", - "rollup": "*", - "storybook": "^10.1.3", - "vite": "*", - "webpack": "*" - }, - "peerDependenciesMeta": { - "esbuild": { - "optional": true - }, - "rollup": { - "optional": true - }, - "vite": { - "optional": true - }, - "webpack": { - "optional": true - } - } - }, - "packages/storybook/node_modules/@storybook/html": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@storybook/html/-/html-10.1.3.tgz", - "integrity": "sha512-mUTEcN7HSiF0kgV8zafSX93dWiBpVZrp0aOMIB+9YfrODYRDa9uDzrQN5h67YVaCESYDJr/Y5xL3qS5we9Dobg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/global": "^5.0.0", - "ts-dedent": "^2.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^10.1.3" - } - }, - "packages/storybook/node_modules/@storybook/html-vite": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@storybook/html-vite/-/html-vite-10.1.3.tgz", - "integrity": "sha512-i1z9zwOereHwDnNcSlDs53B764KhmOLHFhcCdEE6iVLbKIPI3HG0U4LkcY7dqOjwrzEOJxx5znxj/VdONpXCZg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@storybook/builder-vite": "10.1.3", - "@storybook/html": "10.1.3" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^10.1.3" - } - }, - "packages/storybook/node_modules/@storybook/icons": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@storybook/icons/-/icons-2.0.1.tgz", - "integrity": "sha512-/smVjw88yK3CKsiuR71vNgWQ9+NuY2L+e8X7IMrFjexjm6ZR8ULrV2DRkTA61aV6ryefslzHEGDInGpnNeIocg==", - "license": "MIT", - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "packages/storybook/node_modules/@storybook/react-dom-shim": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/@storybook/react-dom-shim/-/react-dom-shim-10.1.3.tgz", - "integrity": "sha512-PJoM52EdghtZBHXF7qvZrnJr0D36zk4Ku2rlN21S9K/kunkNuDM4l4ro6yscgaPvdZ14cOJ0C2rnWSyUe5XAxQ==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0", - "storybook": "^10.1.3" - } - }, - "packages/storybook/node_modules/eslint-plugin-storybook": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-storybook/-/eslint-plugin-storybook-10.1.3.tgz", - "integrity": "sha512-TcLZtQZ66ao0r4l7e8xsiu8YTdoV0fcltuLo9aZCEzqfMm28zN/ljpwSpSNFLUau6WBo/XNANaXz4ETdGR33SA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@typescript-eslint/utils": "^8.8.1" - }, - "peerDependencies": { - "eslint": ">=8", - "storybook": "^10.1.3" - } - }, - "packages/storybook/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "packages/storybook/node_modules/storybook": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/storybook/-/storybook-10.1.3.tgz", - "integrity": "sha512-Yoo/LB1OvwwMdKkChFtUXuOKLw/QK+b25pIkAFgZex+0IIXi0dREYEQAvJKd/gIuuqwPksy91p1HeHddv2NXQA==", - "license": "MIT", - "peer": true, - "dependencies": { - "@storybook/global": "^5.0.0", - "@storybook/icons": "^2.0.0", - "@testing-library/jest-dom": "^6.6.3", - "@testing-library/user-event": "^14.6.1", - "@vitest/expect": "3.2.4", - "@vitest/spy": "3.2.4", - "esbuild": "^0.18.0 || ^0.19.0 || ^0.20.0 || ^0.21.0 || ^0.22.0 || ^0.23.0 || ^0.24.0 || ^0.25.0 || ^0.26.0 || ^0.27.0", - "recast": "^0.23.5", - "semver": "^7.6.2", - "use-sync-external-store": "^1.5.0", - "ws": "^8.18.0" - }, - "bin": { - "storybook": "dist/bin/dispatcher.js" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "prettier": "^2 || ^3" - }, - "peerDependenciesMeta": { - "prettier": { - "optional": true - } - } - }, - "packages/storybook/node_modules/storybook-addon-pseudo-states": { - "version": "10.1.3", - "resolved": "https://registry.npmjs.org/storybook-addon-pseudo-states/-/storybook-addon-pseudo-states-10.1.3.tgz", - "integrity": "sha512-4Ul+Wgv2l4tS3ZclU86cwj1am5sdlR2ywQZmKMizQegthjgPWBzmlt/Xk6UWqkMyevLjwrwNwr56M0jvEBNssg==", - "dev": true, - "license": "MIT", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/storybook" - }, - "peerDependencies": { - "storybook": "^10.1.3" - } - }, - "packages/storybook/node_modules/unplugin": { - "version": "2.3.11", - "resolved": "https://registry.npmjs.org/unplugin/-/unplugin-2.3.11.tgz", - "integrity": "sha512-5uKD0nqiYVzlmCRs01Fhs2BdkEgBS3SAVP6ndrBsuK42iC2+JHyxM05Rm9G8+5mkmRtzMZGY8Ct5+mliZxU/Ww==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jridgewell/remapping": "^2.3.5", - "acorn": "^8.15.0", - "picomatch": "^4.0.3", - "webpack-virtual-modules": "^0.6.2" - }, - "engines": { - "node": ">=18.12.0" + "flatbuffers": "25.2.10", + "globals": "^14.0.0" } }, "packages/xliff-to-json-converter": { diff --git a/package.json b/package.json index 391700f99f..5845d54237 100644 --- a/package.json +++ b/package.json @@ -15,12 +15,11 @@ "invoke-publish": "beachball publish --yes --access public --message \"applying package updates [skip ci]\"", "performance": "npm run performance --workspaces --if-present", "validate": "concurrently --pad-prefix --timings --group \"npm:validate:*\"", - "validate:lint:sequential": "npm run lint --workspaces --if-present", - "validate:test:sequential": "npm run test --workspaces --if-present", - "validate:lint-concurrent:nimble-components": "npm run lint-concurrent -w packages/nimble-components", - "validate:test-concurrent:nimble-components": "npm run test-concurrent -w packages/nimble-components", - "test": "concurrently --pad-prefix --timings --group \"npm:validate:test*\"", - "lint": "concurrently --pad-prefix --timings --group \"npm:validate:lint*\"", + "validate:lint": "npm run lint", + "validate:test": "npm run test", + "validate:test-concurrent": "npm run test-concurrent -w packages/nimble-components", + "test": "npm run test --workspaces --if-present", + "lint": "eslint . && npm run lint --workspaces --if-present", "storybook": "npm run start -w @ni-private/storybook" }, "repository": { diff --git a/packages/angular-workspace/.eslintrc.js b/packages/angular-workspace/.eslintrc.js deleted file mode 100644 index 3a6898bf86..0000000000 --- a/packages/angular-workspace/.eslintrc.js +++ /dev/null @@ -1,131 +0,0 @@ -const { ignoreAttributes } = require('@ni/eslint-config-angular/template/options'); - -module.exports = { - root: true, - ignorePatterns: [ - '!**/*', - 'node_modules', - 'dist' - ], - overrides: [ - { - files: ['*.js'], - extends: ['@ni-private/eslint-config-nimble/javascript'], - rules: { - // Use package.json from angular-workspace root - 'import/no-extraneous-dependencies': ['error', { packageDir: __dirname }], - } - }, - { - files: ['*.ts'], - extends: [ - '@ni/eslint-config-angular', - '@ni/eslint-config-angular/requiring-type-checking', - '@ni-private/eslint-config-nimble/typescript' - ], - rules: { - // Use package.json from angular-workspace root - 'import/no-extraneous-dependencies': ['error', { packageDir: __dirname }], - 'no-restricted-imports': ['error', { - patterns: [{ - group: ['@ni/fast-*'], - message: 'Do not directly use underlying libraries of nimble. Instead rely on or add to exports of nimble packages.' - }, - { - group: [ - '@ni/*-components/**/tests', - '@ni/*-components/**/testing', - ], - message: 'Do not use test code/utilities in production code.' - }] - }], - - // Rules enabled due to strictNullChecks - // see: https://github.com/ni/javascript-styleguide/#strict-null-checks - '@typescript-eslint/no-unnecessary-boolean-literal-compare': 'error', - '@typescript-eslint/no-unnecessary-condition': 'error', - '@typescript-eslint/strict-boolean-expressions': ['error', { - allowNumber: false, - allowNullableBoolean: true, - allowNullableString: true, - allowNullableNumber: false - }], - - // Nimble Angular Components follow web component naming conventions - // where the attribute and property names are different formats - '@angular-eslint/no-input-rename': 'off' - } - }, - { - // Don't require class docs on modules (they're trivial) - files: ['*.module.ts'], - rules: { - 'jsdoc/require-jsdoc': 'off', - 'jsdoc/require-description': 'off' - } - }, - { - files: ['*.spec.ts'], - rules: { - 'no-restricted-imports': [ - 'error', { - patterns: [{ - group: ['@ni/fast-*'], - message: 'Do not directly use underlying libraries of nimble. Instead rely on or add to exports of nimble packages.' - }, { - group: ['@ni/nimble-components', '@ni/spright-components'], - message: 'Angular tests should not directly depend on web component packages.' - }] - } - ], - - // Jasmine createSpyObj rely on accessing unbound methods - '@typescript-eslint/unbound-method': 'off' - } - }, - { - files: ['**/testing/**'], - rules: { - 'no-restricted-imports': [ - 'error', { - patterns: [{ - group: ['@ni/fast-*'], - message: 'Do not directly use underlying libraries of nimble. Instead rely on or add to exports of nimble packages.' - }] - } - ] - } - }, - { - files: ['*.html'], - extends: [ - '@ni/eslint-config-angular/template' - ], - rules: { - // Enable i18n template checking for the purpose of making sure to capture updates for the lint rules - '@angular-eslint/template/i18n': [ - 'error', - { - checkText: false, - checkId: false, - ignoreAttributes: [ - // Attributes that SHOULD NOT ever be localized need to be added to ignoreAttributeSets - // See: https://github.com/ni/javascript-styleguide/blob/main/packages/eslint-config-angular/template/options.js - ...ignoreAttributes.all, - - // Attributes that SHOULD be localized in production, but we don't want to - // for tests / examples apps should be added to the following list: - 'action-menu-label', - 'aria-label', - 'button-label', - 'label', - 'placeholder', - 'text', - 'title' - ] - } - ], - } - } - ] -}; diff --git a/packages/angular-workspace/angular.json b/packages/angular-workspace/angular.json index 7a9c3ac40f..67ec997326 100644 --- a/packages/angular-workspace/angular.json +++ b/packages/angular-workspace/angular.json @@ -38,12 +38,14 @@ "lint": { "builder": "@angular-eslint/builder:lint", "options": { - "lintFilePatterns": [ - "nimble-angular/**/*.ts", - "nimble-angular/**/*.js", - "nimble-angular/**/*.html" - ] - } + "eslintConfig": "nimble-angular/eslint.config.mjs", + "lintFilePatterns": [ + "nimble-angular/**/*.ts", + "nimble-angular/**/*.js", + "nimble-angular/**/*.mjs", + "nimble-angular/**/*.html" + ] + } } } }, @@ -79,12 +81,14 @@ "lint": { "builder": "@angular-eslint/builder:lint", "options": { - "lintFilePatterns": [ - "ok-angular/**/*.ts", - "ok-angular/**/*.js", - "ok-angular/**/*.html" - ] - } + "eslintConfig": "ok-angular/eslint.config.mjs", + "lintFilePatterns": [ + "ok-angular/**/*.ts", + "ok-angular/**/*.js", + "ok-angular/**/*.mjs", + "ok-angular/**/*.html" + ] + } } } }, @@ -120,12 +124,14 @@ "lint": { "builder": "@angular-eslint/builder:lint", "options": { - "lintFilePatterns": [ - "spright-angular/**/*.ts", - "spright-angular/**/*.js", - "spright-angular/**/*.html" - ] - } + "eslintConfig": "spright-angular/eslint.config.mjs", + "lintFilePatterns": [ + "spright-angular/**/*.ts", + "spright-angular/**/*.js", + "spright-angular/**/*.mjs", + "spright-angular/**/*.html" + ] + } } } }, @@ -246,12 +252,14 @@ "lint": { "builder": "@angular-eslint/builder:lint", "options": { - "lintFilePatterns": [ - "example-client-app/**/*.ts", - "example-client-app/**/*.js", - "example-client-app/**/*.html" - ] - } + "eslintConfig": "example-client-app/eslint.config.mjs", + "lintFilePatterns": [ + "example-client-app/**/*.ts", + "example-client-app/**/*.js", + "example-client-app/**/*.mjs", + "example-client-app/**/*.html" + ] + } } } } diff --git a/packages/angular-workspace/eslint.config.mjs b/packages/angular-workspace/eslint.config.mjs new file mode 100644 index 0000000000..113142301e --- /dev/null +++ b/packages/angular-workspace/eslint.config.mjs @@ -0,0 +1,12 @@ +import { defineConfig, globalIgnores } from 'eslint/config'; +import { lintNimbleConfig, javascriptNimbleConfig } from '@ni-private/eslint-config-nimble'; + +export default defineConfig([ + // ignore all subfolders as each project is configured separately + globalIgnores(['*/']), + lintNimbleConfig, + { + files: ['**/*.js'], + extends: javascriptNimbleConfig, + }, +]); diff --git a/packages/angular-workspace/example-client-app/.eslintrc.js b/packages/angular-workspace/example-client-app/.eslintrc.js deleted file mode 100644 index cfa3bfa292..0000000000 --- a/packages/angular-workspace/example-client-app/.eslintrc.js +++ /dev/null @@ -1,35 +0,0 @@ -module.exports = { - extends: '../.eslintrc.js', - ignorePatterns: ['/src/environments'], - overrides: [ - { - files: ['*.ts'], - parserOptions: { - project: [ - './tsconfig.app.json', - './tsconfig.spec.json' - ], - tsconfigRootDir: __dirname - }, - rules: { - 'no-restricted-imports': ['error', { - patterns: - [{ - group: ['@ni/fast-*'], - message: 'Do not directly use underlying libraries of nimble. Instead rely on or add to exports of nimble packages.' - }, - { - group: ['@ni/*-components'], - message: 'Client Angular applications should not directly depend on web component packages.' - }] - }], - '@angular-eslint/component-selector': [ - 'error', - { type: 'element', prefix: 'example', style: 'kebab-case' } - ], - 'jsdoc/require-jsdoc': 'off', - 'jsdoc/require-description': 'off' - } - } - ] -}; diff --git a/packages/angular-workspace/example-client-app/eslint.config.mjs b/packages/angular-workspace/example-client-app/eslint.config.mjs new file mode 100644 index 0000000000..4234148ba3 --- /dev/null +++ b/packages/angular-workspace/example-client-app/eslint.config.mjs @@ -0,0 +1,54 @@ +import { defineConfig, globalIgnores } from 'eslint/config'; +import { lintNimbleConfig, javascriptNimbleConfig, angularTypescriptNimbleConfig, angularTemplateNimbleConfig } from '@ni-private/eslint-config-nimble'; +import { resolve } from 'node:path'; + +export default defineConfig([ + globalIgnores(['**/src/environments']), + lintNimbleConfig, + { + files: ['**/*.js'], + extends: javascriptNimbleConfig, + rules: { + 'import/no-extraneous-dependencies': ['error', { packageDir: resolve(import.meta.dirname, '../') }], + } + }, + { + files: ['**/*.ts'], + extends: angularTypescriptNimbleConfig, + languageOptions: { + parserOptions: { + project: ['./tsconfig.app.json', './tsconfig.spec.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, + rules: { + 'no-restricted-imports': [ + 'error', + { + patterns: [ + { + group: ['@ni/fast-*'], + message: + 'Do not directly use underlying libraries of nimble. Instead rely on or add to exports of nimble packages.', + }, + { + group: ['@ni/*-components'], + message: + 'Client Angular applications should not directly depend on web component packages.', + }, + ], + }, + ], + '@angular-eslint/component-selector': [ + 'error', + { type: 'element', prefix: 'example', style: 'kebab-case' }, + ], + 'jsdoc/require-jsdoc': 'off', + 'jsdoc/require-description': 'off', + }, + }, + { + files: ['**/*.html'], + extends: angularTemplateNimbleConfig + } +]); diff --git a/packages/angular-workspace/nimble-angular/.eslintrc.js b/packages/angular-workspace/nimble-angular/.eslintrc.js deleted file mode 100644 index 62867f6b7b..0000000000 --- a/packages/angular-workspace/nimble-angular/.eslintrc.js +++ /dev/null @@ -1,27 +0,0 @@ -module.exports = { - extends: '../.eslintrc.js', - ignorePatterns: [ - '/src/thirdparty' - ], - overrides: [ - { - files: ['*.ts'], - parserOptions: { - project: [ - './tsconfig.lib.json', - './tsconfig.spec.json' - ], - tsconfigRootDir: __dirname - } - }, - { - files: ['build/**/*.js'], - rules: { - // Logging in build scripts is useful - 'no-console': 'off', - // Rollup config files use default exports - 'import/no-default-export': 'off' - } - } - ] -}; diff --git a/packages/angular-workspace/nimble-angular/eslint.config.mjs b/packages/angular-workspace/nimble-angular/eslint.config.mjs new file mode 100644 index 0000000000..923a8400ce --- /dev/null +++ b/packages/angular-workspace/nimble-angular/eslint.config.mjs @@ -0,0 +1,44 @@ +import { defineConfig, globalIgnores } from 'eslint/config'; +import { lintNimbleConfig, javascriptNimbleConfig, angularTypescriptNimbleConfig, angularTemplateNimbleConfig } from '@ni-private/eslint-config-nimble'; +import { resolve } from 'node:path'; + +export default defineConfig([ + globalIgnores([ + '**/dist/', + '**/src/thirdparty/' + ]), + lintNimbleConfig, + { + files: ['**/*.js'], + extends: javascriptNimbleConfig, + rules: { + 'import/no-extraneous-dependencies': ['error', { packageDir: resolve(import.meta.dirname, '../') }], + } + }, + { + files: ['**/*.ts'], + extends: angularTypescriptNimbleConfig, + languageOptions: { + parserOptions: { + project: ['./tsconfig.lib.json', './tsconfig.spec.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, + rules: { + 'import/no-extraneous-dependencies': ['error', { packageDir: resolve(import.meta.dirname, '../') }], + } + }, + { + files: ['**/build/**/*.js'], + rules: { + // Logging in build scripts is useful + 'no-console': 'off', + // Rollup config files use default exports + 'import/no-default-export': 'off', + }, + }, + { + files: ['**/*.html'], + extends: angularTemplateNimbleConfig + } +]); diff --git a/packages/angular-workspace/nimble-angular/label-provider/table/nimble-label-provider-table.directive.ts b/packages/angular-workspace/nimble-angular/label-provider/table/nimble-label-provider-table.directive.ts index f68b7d3335..b8a47bc89c 100644 --- a/packages/angular-workspace/nimble-angular/label-provider/table/nimble-label-provider-table.directive.ts +++ b/packages/angular-workspace/nimble-angular/label-provider/table/nimble-label-provider-table.directive.ts @@ -51,7 +51,6 @@ export class NimbleLabelProviderTableDirective { } // Renaming because property should have camel casing, but attribute should not - // eslint-disable-next-line @angular-eslint/no-input-rename @Input('collapse-all') public set collapseAll(value: string | undefined) { this.renderer.setProperty(this.elementRef.nativeElement, 'collapseAll', value); } diff --git a/packages/angular-workspace/nimble-angular/src/directives/dialog/nimble-dialog.directive.ts b/packages/angular-workspace/nimble-angular/src/directives/dialog/nimble-dialog.directive.ts index 815f3c0521..9ebdfc55d3 100644 --- a/packages/angular-workspace/nimble-angular/src/directives/dialog/nimble-dialog.directive.ts +++ b/packages/angular-workspace/nimble-angular/src/directives/dialog/nimble-dialog.directive.ts @@ -17,7 +17,6 @@ export { dialogTag }; @Directive({ selector: 'nimble-dialog' }) -// eslint-disable-next-line @typescript-eslint/no-invalid-void-type export class NimbleDialogDirective { public get preventDismiss(): boolean { return this.elementRef.nativeElement.preventDismiss; diff --git a/packages/angular-workspace/nimble-angular/src/directives/drawer/nimble-drawer.directive.ts b/packages/angular-workspace/nimble-angular/src/directives/drawer/nimble-drawer.directive.ts index 0a82305589..f6c77dd762 100644 --- a/packages/angular-workspace/nimble-angular/src/directives/drawer/nimble-drawer.directive.ts +++ b/packages/angular-workspace/nimble-angular/src/directives/drawer/nimble-drawer.directive.ts @@ -19,7 +19,6 @@ export { DrawerLocation }; @Directive({ selector: 'nimble-drawer' }) -// eslint-disable-next-line @typescript-eslint/no-invalid-void-type export class NimbleDrawerDirective { public get location(): DrawerLocation { return this.elementRef.nativeElement.location; diff --git a/packages/angular-workspace/nimble-angular/src/testing/async-helpers.ts b/packages/angular-workspace/nimble-angular/src/testing/async-helpers.ts index 1e4831f797..b981eada42 100644 --- a/packages/angular-workspace/nimble-angular/src/testing/async-helpers.ts +++ b/packages/angular-workspace/nimble-angular/src/testing/async-helpers.ts @@ -1,6 +1,5 @@ // This is a workaround until nimble-angular exposes `testing` entrypoints: // https://github.com/ni/nimble/issues/172#issuecomment-1529958809 -// eslint-disable-next-line no-restricted-imports import { processUpdates, waitForUpdatesAsync as waitForUpdatesAsyncOriginal } from '@ni/nimble-components/dist/esm/testing/async-helpers'; export { processUpdates }; diff --git a/packages/angular-workspace/ok-angular/.eslintrc.js b/packages/angular-workspace/ok-angular/.eslintrc.js deleted file mode 100644 index 4ca8737457..0000000000 --- a/packages/angular-workspace/ok-angular/.eslintrc.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = { - extends: '../.eslintrc.js', - overrides: [ - { - files: ['*.ts'], - parserOptions: { - project: [ - './tsconfig.lib.json', - './tsconfig.spec.json' - ], - tsconfigRootDir: __dirname - } - } - ] -}; diff --git a/packages/angular-workspace/ok-angular/eslint.config.mjs b/packages/angular-workspace/ok-angular/eslint.config.mjs new file mode 100644 index 0000000000..8d663c195b --- /dev/null +++ b/packages/angular-workspace/ok-angular/eslint.config.mjs @@ -0,0 +1,31 @@ +import { defineConfig } from 'eslint/config'; +import { lintNimbleConfig, javascriptNimbleConfig, angularTypescriptNimbleConfig, angularTemplateNimbleConfig } from '@ni-private/eslint-config-nimble'; +import { resolve } from 'node:path'; + +export default defineConfig([ + lintNimbleConfig, + { + files: ['**/*.js'], + extends: javascriptNimbleConfig, + rules: { + 'import/no-extraneous-dependencies': ['error', { packageDir: resolve(import.meta.dirname, '../') }], + } + }, + { + files: ['**/*.ts'], + languageOptions: { + parserOptions: { + project: ['./tsconfig.lib.json', './tsconfig.spec.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, + extends: angularTypescriptNimbleConfig, + rules: { + 'import/no-extraneous-dependencies': ['error', { packageDir: resolve(import.meta.dirname, '../') }], + } + }, + { + files: ['**/*.html'], + extends: angularTemplateNimbleConfig + }, +]); diff --git a/packages/angular-workspace/package.json b/packages/angular-workspace/package.json index 905882f616..ea782698d6 100644 --- a/packages/angular-workspace/package.json +++ b/packages/angular-workspace/package.json @@ -13,7 +13,8 @@ "generate-icons": "npm run generate-icons:bundle && npm run generate-icons:run", "generate-icons:bundle": "rollup --bundleConfigAsCjs --config nimble-angular/build/generate-icons/rollup.config.js", "generate-icons:run": "node nimble-angular/build/generate-icons/dist/index.js", - "lint": "ng lint", + "lint": "eslint . && ng lint", + "format": "eslint . --fix && ng lint --fix", "pack": "npm run pack:nimble && npm run pack:spright && npm run pack:ok && npm run pack:application", "pack:nimble": "cd dist/nimble-angular && npm pack", "pack:spright": "cd dist/spright-angular && npm pack", @@ -30,8 +31,7 @@ "test": "ng test --watch=false", "test-nimble": "ng test @ni/nimble-angular --watch=false", "test-spright": "ng test @ni/spright-angular --watch=false", - "test-ok": "ng test @ni/ok-angular --watch=false", - "format": "ng lint --fix" + "test-ok": "ng test @ni/ok-angular --watch=false" }, "dependencies": { "@angular/animations": "^18.2.13", @@ -57,7 +57,8 @@ "@lhci/cli": "^0.15.0", "@ni/fast-web-utilities": "^10.0.0", "@ni-private/eslint-config-nimble": "*", - "@ni/eslint-config-angular": "^9.0.4", + "@ni/eslint-config-angular": "^10.0.3", + "@ni/eslint-config-javascript": "^5.1.2", "@ni-private/jasmine-extensions": "*", "@ni/jasmine-parameterized": "*", "@ni/nimble-tokens": "*", diff --git a/packages/angular-workspace/spright-angular/.eslintrc.js b/packages/angular-workspace/spright-angular/.eslintrc.js deleted file mode 100644 index 4ca8737457..0000000000 --- a/packages/angular-workspace/spright-angular/.eslintrc.js +++ /dev/null @@ -1,15 +0,0 @@ -module.exports = { - extends: '../.eslintrc.js', - overrides: [ - { - files: ['*.ts'], - parserOptions: { - project: [ - './tsconfig.lib.json', - './tsconfig.spec.json' - ], - tsconfigRootDir: __dirname - } - } - ] -}; diff --git a/packages/angular-workspace/spright-angular/eslint.config.mjs b/packages/angular-workspace/spright-angular/eslint.config.mjs new file mode 100644 index 0000000000..9e8e71fddb --- /dev/null +++ b/packages/angular-workspace/spright-angular/eslint.config.mjs @@ -0,0 +1,31 @@ +import { defineConfig } from 'eslint/config'; +import { lintNimbleConfig, javascriptNimbleConfig, angularTypescriptNimbleConfig, angularTemplateNimbleConfig } from '@ni-private/eslint-config-nimble'; +import { resolve } from 'node:path'; + +export default defineConfig([ + lintNimbleConfig, + { + files: ['**/*.js'], + extends: javascriptNimbleConfig, + rules: { + 'import/no-extraneous-dependencies': ['error', { packageDir: resolve(import.meta.dirname, '../') }], + } + }, + { + files: ['**/*.ts'], + extends: angularTypescriptNimbleConfig, + languageOptions: { + parserOptions: { + project: ['./tsconfig.lib.json', './tsconfig.spec.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, + rules: { + 'import/no-extraneous-dependencies': ['error', { packageDir: resolve(import.meta.dirname, '../') }], + } + }, + { + files: ['**/*.html'], + extends: angularTemplateNimbleConfig + }, +]); diff --git a/packages/blazor-workspace/.eslintrc.js b/packages/blazor-workspace/.eslintrc.js deleted file mode 100644 index be38c7274a..0000000000 --- a/packages/blazor-workspace/.eslintrc.js +++ /dev/null @@ -1,39 +0,0 @@ -module.exports = { - root: true, - ignorePatterns: [ - 'node_modules', - 'dist', - 'bin', - 'obj', - '**/wwwroot/**', - '!**/wwwroot/*.lib.module.js', - ], - overrides: [ - { - files: ['*.js'], - extends: ['@ni-private/eslint-config-nimble/javascript'], - }, - { - files: ['build/**/*.js'], - rules: { - // Build scripts will not be in published package and are allowed to use devDependencies - 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], - - // Okay to use console.log in build scripts - 'no-console': 'off', - - // Rollup config files use default exports - 'import/no-default-export': 'off', - - // Allow build to reference files in NimbleBlazor and SprightBlazor - 'import/no-relative-packages': 'off', - } - }, - { - files: ['build/generate-hybrid/source/*.js'], - env: { - browser: true - }, - } - ] -}; diff --git a/packages/blazor-workspace/eslint.config.mjs b/packages/blazor-workspace/eslint.config.mjs new file mode 100644 index 0000000000..7aec5370ae --- /dev/null +++ b/packages/blazor-workspace/eslint.config.mjs @@ -0,0 +1,42 @@ +import { defineConfig, globalIgnores } from 'eslint/config'; +import { lintNimbleConfig, javascriptNimbleConfig } from '@ni-private/eslint-config-nimble'; +import globals from 'globals'; + +export default defineConfig([ + globalIgnores([ + '**/dist/', + '**/bin/', + '**/obj/', + '**/wwwroot/', + '!**/wwwroot/*.lib.module.js', + ]), + lintNimbleConfig, + { + files: ['**/*.js'], + extends: javascriptNimbleConfig, + }, + { + files: ['**/build/**/*.js'], + rules: { + // Build scripts will not be in published package and are allowed to use devDependencies + 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], + + // Okay to use console.log in build scripts + 'no-console': 'off', + + // Rollup config files use default exports + 'import/no-default-export': 'off', + + // Allow build to reference files in NimbleBlazor and SprightBlazor + 'import/no-relative-packages': 'off', + }, + }, + { + files: ['**/build/generate-hybrid/source/*.js'], + languageOptions: { + globals: { + ...globals.browser, + }, + }, + }, +]); diff --git a/packages/blazor-workspace/package.json b/packages/blazor-workspace/package.json index 2730328ff9..96537509c2 100644 --- a/packages/blazor-workspace/package.json +++ b/packages/blazor-workspace/package.json @@ -1,41 +1,42 @@ { - "name": "@ni-private/blazor-workspace", - "version": "1.0.0", - "private": true, - "description": "Workspace for Blazor projects", - "scripts": { - "build": "npm run generate-icons && npm run build:release && npm run build:client", - "build:release": "dotnet build -c Release /p:TreatWarningsAsErrors=true /warnaserror", - "build:client": "dotnet publish -p:BlazorEnableCompression=false -c Release Examples/Demo.Client --output dist/blazor-client-app", - "generate-icons": "npm run generate-icons:bundle && npm run generate-icons:run", - "generate-icons:bundle": "rollup --bundleConfigAsCjs --config build/generate-icons/rollup.config.js", - "generate-icons:run": "node build/generate-icons/dist/index.js", - "lint": "npm run lint:cs && npm run lint:js", - "lint:cs": "dotnet format --verify-no-changes", - "lint:js": "eslint .", - "format": "npm run format:cs && npm run format:js", - "format:cs": "dotnet format", - "format:js": "eslint . --fix", - "test": "dotnet test -c Release", - "copy-resources:nimble": "node build/copyResources.js nimble", - "copy-resources:spright": "node build/copyResources.js spright", - "copy-resources:ok": "node build/copyResources.js ok", - "update-lock-files": "dotnet restore --force-evaluate" - }, - "files": [ - "!*" - ], - "devDependencies": { - "@ni/fast-web-utilities": "^10.0.0", - "@ni-private/eslint-config-nimble": "*", - "@ni/nimble-components": "*", - "@ni/nimble-tokens": "*", - "@ni/ok-components": "*", - "@ni/spright-components": "*", - "@rollup/plugin-node-resolve": "^16.0.0", - "cross-env": "^10.1.0", - "glob": "^11.0.0", - "playwright": "1.54.1", - "rollup": "^4.12.0" - } -} + "name": "@ni-private/blazor-workspace", + "version": "1.0.0", + "private": true, + "description": "Workspace for Blazor projects", + "scripts": { + "build": "npm run generate-icons && npm run build:release && npm run build:client", + "build:release": "dotnet build -c Release /p:TreatWarningsAsErrors=true /warnaserror", + "build:client": "dotnet publish -p:BlazorEnableCompression=false -c Release Examples/Demo.Client --output dist/blazor-client-app", + "generate-icons": "npm run generate-icons:bundle && npm run generate-icons:run", + "generate-icons:bundle": "rollup --bundleConfigAsCjs --config build/generate-icons/rollup.config.js", + "generate-icons:run": "node build/generate-icons/dist/index.js", + "lint": "npm run lint:cs && npm run lint:js", + "lint:cs": "dotnet format --verify-no-changes", + "lint:js": "eslint .", + "format": "npm run format:cs && npm run format:js", + "format:cs": "dotnet format", + "format:js": "eslint . --fix", + "test": "dotnet test -c Release", + "copy-resources:nimble": "node build/copyResources.js nimble", + "copy-resources:spright": "node build/copyResources.js spright", + "copy-resources:ok": "node build/copyResources.js ok", + "update-lock-files": "dotnet restore --force-evaluate" + }, + "files": [ + "!*" + ], + "devDependencies": { + "@ni/fast-web-utilities": "^10.0.0", + "@ni-private/eslint-config-nimble": "*", + "@ni/nimble-components": "*", + "@ni/nimble-tokens": "*", + "@ni/ok-components": "*", + "@ni/spright-components": "*", + "@rollup/plugin-node-resolve": "^16.0.0", + "cross-env": "^10.1.0", + "glob": "^11.0.0", + "playwright": "1.54.1", + "rollup": "^4.12.0", + "globals": "^14.0.0" + } +} \ No newline at end of file diff --git a/packages/eslint-config-nimble/.eslintrc.js b/packages/eslint-config-nimble/.eslintrc.js deleted file mode 100644 index 5e594c93a6..0000000000 --- a/packages/eslint-config-nimble/.eslintrc.js +++ /dev/null @@ -1,12 +0,0 @@ -module.exports = { - root: true, - ignorePatterns: [ - 'node_modules', - ], - overrides: [ - { - files: ['*.js'], - extends: ['@ni-private/eslint-config-nimble/javascript'], - }, - ] -}; diff --git a/packages/eslint-config-nimble/angular.js b/packages/eslint-config-nimble/angular.js new file mode 100644 index 0000000000..74dc44b243 --- /dev/null +++ b/packages/eslint-config-nimble/angular.js @@ -0,0 +1,133 @@ +import { defineConfig } from 'eslint/config'; +import { angularTypescriptConfig, angularTemplateConfig, ignoreAttributes } from '@ni/eslint-config-angular'; +import { typescriptNimbleConfigOverrides } from './typescript.js'; +import { javascriptNimbleConfigOverrides } from './javascript.js'; + +export const angularTypescriptNimbleConfigOverrides = defineConfig([ + { + rules: { + 'no-restricted-imports': [ + 'error', + { + patterns: [ + { + group: ['@ni/fast-*'], + message: + 'Do not directly use underlying libraries of nimble. Instead rely on or add to exports of nimble packages.', + }, + { + group: [ + '@ni/*-components/**/tests', + '@ni/*-components/**/testing', + ], + message: 'Do not use test code/utilities in production code.', + }, + ], + }, + ], + + // Nimble Angular Components follow web component naming conventions + // where the attribute and property names are different formats + '@angular-eslint/no-input-rename': 'off', + }, + }, + { + // Don't require class docs on modules (they're trivial) + files: ['**/*.module.ts'], + rules: { + 'jsdoc/require-jsdoc': 'off', + 'jsdoc/require-description': 'off', + }, + }, + { + files: ['**/*.spec.ts'], + rules: { + 'no-restricted-imports': [ + 'error', + { + patterns: [ + { + group: ['@ni/fast-*'], + message: + 'Do not directly use underlying libraries of nimble. Instead rely on or add to exports of nimble packages.', + }, + { + group: ['@ni/nimble-components', '@ni/spright-components'], + message: + 'Angular tests should not directly depend on web component packages.', + }, + ], + }, + ], + // Jasmine createSpyObj rely on accessing unbound methods + '@typescript-eslint/unbound-method': 'off', + }, + }, + { + files: ['**/testing/**'], + rules: { + 'no-restricted-imports': [ + 'error', + { + patterns: [ + { + group: ['@ni/fast-*'], + message: + 'Do not directly use underlying libraries of nimble. Instead rely on or add to exports of nimble packages.', + }, + ], + }, + ], + }, + }, +]); + +export const angularTypescriptNimbleConfig = defineConfig([ + { + extends: [ + angularTypescriptConfig, + javascriptNimbleConfigOverrides, + typescriptNimbleConfigOverrides, + angularTypescriptNimbleConfigOverrides, + ], + } +]); + +export const angularTemplateNimbleConfigOverrides = defineConfig([ + { + rules: { + // Enable i18n template checking for the purpose of making sure to capture updates for the lint rules + '@angular-eslint/template/i18n': [ + 'error', + { + checkText: false, + checkId: false, + ignoreAttributes: [ + // Attributes that SHOULD NOT ever be localized need to be added to ignoreAttributeSets + // See: https://github.com/ni/javascript-styleguide/blob/main/packages/eslint-config-angular/template/options.js + ...ignoreAttributes.all, + + // Attributes that SHOULD be localized in production, but we don't want to + // for tests / examples apps should be added to the following list: + 'action-menu-label', + 'aria-label', + 'button-label', + 'label', + 'placeholder', + 'text', + 'title', + ], + }, + ], + } + } +]); + +export const angularTemplateNimbleConfig = defineConfig([ + { + extends: [ + angularTemplateConfig, + angularTemplateNimbleConfigOverrides + ], + }, +]); diff --git a/packages/eslint-config-nimble/components.js b/packages/eslint-config-nimble/components.js index dd0bbd9ace..439895f868 100644 --- a/packages/eslint-config-nimble/components.js +++ b/packages/eslint-config-nimble/components.js @@ -1,121 +1,127 @@ -module.exports = { - extends: [ - '@ni-private/eslint-config-nimble/typescript', - ], - rules: { - 'no-restricted-syntax': [ - 'error', - { - selector: 'TSEnumDeclaration', - message: - 'Use a const object instead of an enum. See other types.ts files for examples.' - } - ], +import globals from 'globals'; +import { defineConfig } from 'eslint/config'; +import { typescriptNimbleConfig } from './typescript.js'; - // Improves readability of templates to avoid return types in template expressions - '@typescript-eslint/explicit-function-return-type': [ - 'error', - { allowExpressions: true } - ], +export const componentsNimbleConfig = defineConfig([ + typescriptNimbleConfig, + { + rules: { + 'no-restricted-syntax': [ + 'error', + { + selector: 'TSEnumDeclaration', + message: + 'Use a const object instead of an enum. See other types.ts files for examples.', + }, + ], - 'no-restricted-imports': [ - 'error', - { - paths: [ - ...restrictedFastImports() - ] - } - ], + // Improves readability of templates to avoid return types in template expressions + '@typescript-eslint/explicit-function-return-type': [ + 'error', + { allowExpressions: true }, + ], + + 'no-restricted-imports': [ + 'error', + { + paths: [...restrictedFastImports()], + }, + ], + + // Strict rules components have not adopted yet + // See: https://github.com/ni/nimble/issues/2777 + '@typescript-eslint/no-unnecessary-condition': 'off', + '@typescript-eslint/strict-boolean-expressions': 'off', + '@typescript-eslint/no-unnecessary-boolean-literal-compare': 'off' + }, }, - overrides: [ - { - files: ['*.spec.ts'], - env: { - jasmine: true + { + files: ['**/*.spec.ts'], + languageOptions: { + globals: { + ...globals.jasmine, }, - rules: { - 'no-restricted-imports': [ - 'error', - { - paths: [ - ...restrictedFastImports(), - { - name: '@ni/fast-element', - importNames: ['DOM'], - message: - 'For tests, please use functions from src/testing/async-helpers instead.' - } - ] - } - ], - } }, - { - files: ['*.foundation.spec.ts'], - rules: { - 'no-restricted-imports': [ - 'error', - { - paths: [ - ...restrictedFastImports() - ] - } - ] - } + rules: { + 'no-restricted-imports': [ + 'error', + { + paths: [ + ...restrictedFastImports(), + { + name: '@ni/fast-element', + importNames: ['DOM'], + message: + 'For tests, please use functions from src/testing/async-helpers instead.', + }, + ], + }, + ], }, - { - files: ['styles.ts'], - rules: { - // Prettier and eslint conflict in how they format CSS in styles files and we prefer prettier's output - '@stylistic/indent': 'off' - } + }, + { + files: ['**/*.foundation.spec.ts'], + rules: { + 'no-restricted-imports': [ + 'error', + { + paths: [...restrictedFastImports()], + }, + ], }, - { - files: ['template.ts'], - rules: { - // Using '??' in templates does not get flagged correctly by FAST as being a volatile binding. - // See https://github.com/ni/nimble/issues/1843 for more information. - 'no-restricted-syntax': [ - 'error', - { selector: "LogicalExpression[operator='??']" } - ], - // Neither prettier or eslint handle indent well in template files - '@stylistic/indent': 'off' - } + }, + { + files: ['**/styles.ts'], + rules: { + // Prettier and eslint conflict in how they format CSS in styles files and we prefer prettier's output + '@stylistic/indent': 'off', }, - { - // Instead of enums, this repo uses const objects and type unions which should live in types.ts - files: ['types.ts'], - rules: { - // The const object and type union should have the same name - '@typescript-eslint/no-redeclare': 'off', - // Enum-like variables should use PascalCase and values should use camelCase - // Also allow camelCase variables for things like attribute strings - '@typescript-eslint/naming-convention': [ - 'error', - { - selector: 'objectLiteralProperty', - format: ['camelCase'] - }, - { - selector: 'variable', - format: ['camelCase', 'PascalCase'] - }, - { - selector: 'typeLike', - format: ['PascalCase'] - }, - { - selector: 'default', - format: ['camelCase'], - leadingUnderscore: 'allow', - trailingUnderscore: 'allow' - } - ] - } - } - ] -}; + }, + { + files: ['**/template.ts'], + rules: { + // Using '??' in templates does not get flagged correctly by FAST as being a volatile binding. + // See https://github.com/ni/nimble/issues/1843 for more information. + 'no-restricted-syntax': [ + 'error', + { selector: "LogicalExpression[operator='??']" }, + ], + // Neither prettier or eslint handle indent well in template files + '@stylistic/indent': 'off', + }, + }, + { + // Instead of enums, this repo uses const objects and type unions which should live in types.ts + files: ['**/types.ts'], + rules: { + // The const object and type union should have the same name + '@typescript-eslint/no-redeclare': 'off', + // Enum-like variables should use PascalCase and values should use camelCase + // Also allow camelCase variables for things like attribute strings + '@typescript-eslint/naming-convention': [ + 'error', + { + selector: 'objectLiteralProperty', + format: ['camelCase'], + }, + { + selector: 'variable', + format: ['camelCase', 'PascalCase'], + }, + { + selector: 'typeLike', + format: ['PascalCase'], + }, + { + selector: 'default', + format: ['camelCase'], + leadingUnderscore: 'allow', + trailingUnderscore: 'allow', + }, + ], + }, + } +]); function restrictedFastImports() { return [ @@ -123,18 +129,17 @@ function restrictedFastImports() { name: '@ni/fast-foundation', importNames: ['focusVisible'], message: - 'Please use focusVisible from src/utilities/style/focus instead.' + 'Please use focusVisible from src/utilities/style/focus instead.', }, { name: '@ni/fast-foundation', importNames: ['display'], - message: - 'Please use display from src/utilities/style/display instead.' + message: 'Please use display from src/utilities/style/display instead.', }, { name: '@ni/fast-components', message: - 'It is not expected to leverage @ni/fast-components directly as they are coupled to FAST design tokens.' - } + 'It is not expected to leverage @ni/fast-components directly as they are coupled to FAST design tokens.', + }, ]; } diff --git a/packages/eslint-config-nimble/eslint.config.mjs b/packages/eslint-config-nimble/eslint.config.mjs new file mode 100644 index 0000000000..42f57316dd --- /dev/null +++ b/packages/eslint-config-nimble/eslint.config.mjs @@ -0,0 +1,11 @@ +import { defineConfig } from 'eslint/config'; +import { importNodeEsmConfig, javascriptConfig } from '@ni/eslint-config-javascript'; +import { lintNimbleConfig } from './lint.js'; + +export default defineConfig([ + lintNimbleConfig, + { + files: ['**/*.js'], + extends: [javascriptConfig, importNodeEsmConfig] + }, +]); diff --git a/packages/eslint-config-nimble/index.js b/packages/eslint-config-nimble/index.js new file mode 100644 index 0000000000..904c184525 --- /dev/null +++ b/packages/eslint-config-nimble/index.js @@ -0,0 +1,5 @@ +export { angularTypescriptNimbleConfig, angularTemplateNimbleConfig } from './angular.js'; +export { componentsNimbleConfig } from './components.js'; +export { javascriptNimbleConfig } from './javascript.js'; +export { lintNimbleConfig } from './lint.js'; +export { typescriptNimbleConfig } from './typescript.js'; diff --git a/packages/eslint-config-nimble/javascript.js b/packages/eslint-config-nimble/javascript.js index f0144138d1..9aaefa9cfb 100644 --- a/packages/eslint-config-nimble/javascript.js +++ b/packages/eslint-config-nimble/javascript.js @@ -1,19 +1,9 @@ -module.exports = { - extends: '@ni/eslint-config-javascript', - parserOptions: { - ecmaVersion: 2020 - }, - rules: { - // This rule's configuration is based on the NI javascript styleguide: - // https://github.com/ni/javascript-styleguide/blob/a1a6abd7adca7d9acd002705101b351d695b2442/packages/eslint-config-javascript/index.js - // The only difference is that we're increasing the value of minProperties (from 6) so - // that eslint doesn't introduce line breaks where prettier doesn't. If eslint introduces - // line breaks, they will be unix-style, which will cause pointless diffs in git. - '@stylistic/object-curly-newline': ['error', { - ObjectExpression: { minProperties: 1000, multiline: true, consistent: true }, - ObjectPattern: { minProperties: 1000, multiline: true, consistent: true }, - ImportDeclaration: { consistent: true }, - ExportDeclaration: { consistent: true } - }], - }, -}; +import { defineConfig } from 'eslint/config'; +import { javascriptConfig } from '@ni/eslint-config-javascript'; + +export const javascriptNimbleConfigOverrides = defineConfig([]); + +export const javascriptNimbleConfig = defineConfig([ + javascriptConfig, + javascriptNimbleConfigOverrides +]); diff --git a/packages/eslint-config-nimble/lint.js b/packages/eslint-config-nimble/lint.js new file mode 100644 index 0000000000..faea5b95fc --- /dev/null +++ b/packages/eslint-config-nimble/lint.js @@ -0,0 +1,22 @@ +import { defineConfig } from 'eslint/config'; +import { javascriptConfig, importNodeEsmConfig } from '@ni/eslint-config-javascript'; + +export const lintNimbleConfig = defineConfig([ + { + files: [ + '**/eslint.config.cjs', + '**/eslint.config.cts', + '**/eslint.config.js', + '**/eslint.config.mjs', + '**/eslint.config.mts', + '**/eslint.config.ts' + ], + extends: [javascriptConfig, importNodeEsmConfig], + // Ignoring imports in each specific project eslint config + // so each package.json does not need explicit `eslint` + // and `eslint-config-nimble` dependencies. + rules: { + 'import/no-extraneous-dependencies': 'off' + } + } +]); diff --git a/packages/eslint-config-nimble/package.json b/packages/eslint-config-nimble/package.json index 7000ca0d34..46da2b1ed8 100644 --- a/packages/eslint-config-nimble/package.json +++ b/packages/eslint-config-nimble/package.json @@ -1,38 +1,38 @@ { - "name": "@ni-private/eslint-config-nimble", - "version": "1.0.0", - "private": true, - "type": "commonjs", - "description": "Shared ESLint configuration for FAST web component development", - "repository": { - "type": "git", - "url": "git+https://github.com/ni/nimble.git" - }, - "keywords": [ - "eslint", - "eslintconfig", - "ni", - "nimble" - ], - "author": "National Instruments", - "license": "MIT", - "scripts": { - "lint": "eslint .", - "format": "eslint . --fix" - }, - "files": ["javascript.js", "typescript.js", "components.js"], - "exports": { - "./javascript": "./javascript.js", - "./javascript.js": "./javascript.js", - "./typescript": "./typescript.js", - "./typescript.js": "./typescript.js", - "./components": "./components.js", - "./components.js": "./components.js" - }, - "peerDependencies": { - "@ni/eslint-config-javascript": "^4.3.0", - "@ni/eslint-config-typescript": "^4.4.2", - "eslint": "^8.7.0", - "eslint-plugin-jsdoc": "^60.7.1" - } + "name": "@ni-private/eslint-config-nimble", + "version": "1.0.0", + "private": true, + "type": "module", + "description": "Shared ESLint configuration for FAST web component development", + "repository": { + "type": "git", + "url": "git+https://github.com/ni/nimble.git" + }, + "keywords": [ + "eslint", + "eslintconfig", + "ni", + "nimble" + ], + "author": "National Instruments", + "license": "MIT", + "scripts": { + "lint": "eslint .", + "format": "eslint . --fix" + }, + "files": [ + "**/*.js", + "!/eslint.config.*" + ], + "exports": { + ".": "./index.js" + }, + "peerDependencies": { + "@ni/eslint-config-angular": "^10.0.3", + "@ni/eslint-config-javascript": "^5.1.2", + "@ni/eslint-config-typescript": "^5.0.3", + "eslint": "^9.36.0", + "eslint-plugin-jsdoc": "^60.7.1", + "globals": "^14.0.0" + } } diff --git a/packages/eslint-config-nimble/typescript.js b/packages/eslint-config-nimble/typescript.js index f2b2a22a18..06b43d163e 100644 --- a/packages/eslint-config-nimble/typescript.js +++ b/packages/eslint-config-nimble/typescript.js @@ -1,65 +1,55 @@ -module.exports = { - extends: [ - '@ni/eslint-config-typescript', - '@ni/eslint-config-typescript/requiring-type-checking' - ], - parserOptions: { - ecmaVersion: 2020 - }, - plugins: ['jsdoc'], - rules: { - // Require non-empty JSDoc comment on class declarations - 'jsdoc/require-jsdoc': [ - 'error', - { - publicOnly: false, - require: { - ClassDeclaration: true, - FunctionDeclaration: false - } - } - ], - 'jsdoc/require-description': [ - 'error', - { contexts: ['ClassDeclaration'] } - ], - - // Rules enabled due to strictNullChecks - // see: https://github.com/ni/javascript-styleguide/#strict-null-checks - '@typescript-eslint/no-non-null-assertion': 'off', +import { defineConfig } from 'eslint/config'; +import { typescriptConfig } from '@ni/eslint-config-typescript'; +import jsdoc from 'eslint-plugin-jsdoc'; +import globals from 'globals'; +import { javascriptNimbleConfigOverrides } from './javascript.js'; - // This rule's configuration is based on the NI javascript styleguide: - // https://github.com/ni/javascript-styleguide/blob/a1a6abd7adca7d9acd002705101b351d695b2442/packages/eslint-config-javascript/index.js - // The only difference is that we're increasing the value of minProperties (from 6) so - // that eslint doesn't introduce line breaks where prettier doesn't. If eslint introduces - // line breaks, they will be unix-style, which will cause pointless diffs in git. - '@stylistic/object-curly-newline': ['error', { - ObjectExpression: { minProperties: 1000, multiline: true, consistent: true }, - ObjectPattern: { minProperties: 1000, multiline: true, consistent: true }, - ImportDeclaration: { consistent: true }, - ExportDeclaration: { consistent: true } - }], +export const typescriptNimbleConfigOverrides = defineConfig([ + { + plugins: { + jsdoc, + }, + rules: { + // Require non-empty JSDoc comment on class declarations + 'jsdoc/require-jsdoc': [ + 'error', + { + publicOnly: false, + require: { + ClassDeclaration: true, + FunctionDeclaration: false, + }, + }, + ], + 'jsdoc/require-description': [ + 'error', + { contexts: ['ClassDeclaration'] }, + ] + } }, - overrides: [ - { - files: ['*.spec.ts'], - env: { - jasmine: true + { + files: ['**/*.spec.ts'], + languageOptions: { + globals: { + ...globals.jasmine, }, - rules: { - // Classes defined in test code aren't part of the public API so don't need docs - 'jsdoc/require-jsdoc': 'off', - 'jsdoc/require-description': 'off', + }, + rules: { + // Classes defined in test code aren't part of the public API so don't need docs + 'jsdoc/require-jsdoc': 'off', + 'jsdoc/require-description': 'off', - // test files will not be in published package and are allowed to use devDependencies - 'import/no-extraneous-dependencies': [ - 'error', - { devDependencies: true } - ], + // test files will not be in published package and are allowed to use devDependencies + 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], - // It's common to define helper classes for tests and it's more readable to do this in the same file - 'max-classes-per-file': 'off' - } - } - ] -}; + // It's common to define helper classes for tests and it's more readable to do this in the same file + 'max-classes-per-file': 'off', + }, + } +]); + +export const typescriptNimbleConfig = defineConfig([ + typescriptConfig, + javascriptNimbleConfigOverrides, + typescriptNimbleConfigOverrides, +]); diff --git a/packages/jasmine-extensions/.eslintrc.cjs b/packages/jasmine-extensions/.eslintrc.cjs deleted file mode 100644 index 592793add8..0000000000 --- a/packages/jasmine-extensions/.eslintrc.cjs +++ /dev/null @@ -1,25 +0,0 @@ -module.exports = { - root: true, - ignorePatterns: [ - 'node_modules', - 'dist' - ], - overrides: [ - { - files: ['*.js', '*.cjs'], - extends: ['@ni-private/eslint-config-nimble/javascript'], - rules: { - // Configuration scripts will not be in published package and are allowed to use devDependencies - 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], - } - }, - { - files: ['*.ts'], - extends: ['@ni-private/eslint-config-nimble/typescript'], - parserOptions: { - project: 'tsconfig.json', - tsconfigRootDir: __dirname - } - } - ], -}; diff --git a/packages/jasmine-extensions/eslint.config.mjs b/packages/jasmine-extensions/eslint.config.mjs new file mode 100644 index 0000000000..1a966b98f6 --- /dev/null +++ b/packages/jasmine-extensions/eslint.config.mjs @@ -0,0 +1,25 @@ +import { defineConfig, globalIgnores } from 'eslint/config'; +import { lintNimbleConfig, javascriptNimbleConfig, typescriptNimbleConfig } from '@ni-private/eslint-config-nimble'; + +export default defineConfig([ + globalIgnores(['**/dist/']), + lintNimbleConfig, + { + files: ['**/*.js', '**/*.cjs'], + extends: javascriptNimbleConfig, + rules: { + // Configuration scripts will not be in published package and are allowed to use devDependencies + 'import/no-extraneous-dependencies': ['error', { devDependencies: true }] + }, + }, + { + files: ['**/*.ts'], + extends: typescriptNimbleConfig, + languageOptions: { + parserOptions: { + project: './tsconfig.json', + tsconfigRootDir: import.meta.dirname, + }, + }, + }, +]); diff --git a/packages/jasmine-parameterized/.eslintrc.cjs b/packages/jasmine-parameterized/.eslintrc.cjs deleted file mode 100644 index 592793add8..0000000000 --- a/packages/jasmine-parameterized/.eslintrc.cjs +++ /dev/null @@ -1,25 +0,0 @@ -module.exports = { - root: true, - ignorePatterns: [ - 'node_modules', - 'dist' - ], - overrides: [ - { - files: ['*.js', '*.cjs'], - extends: ['@ni-private/eslint-config-nimble/javascript'], - rules: { - // Configuration scripts will not be in published package and are allowed to use devDependencies - 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], - } - }, - { - files: ['*.ts'], - extends: ['@ni-private/eslint-config-nimble/typescript'], - parserOptions: { - project: 'tsconfig.json', - tsconfigRootDir: __dirname - } - } - ], -}; diff --git a/packages/jasmine-parameterized/eslint.config.mjs b/packages/jasmine-parameterized/eslint.config.mjs new file mode 100644 index 0000000000..b2f0ca90ba --- /dev/null +++ b/packages/jasmine-parameterized/eslint.config.mjs @@ -0,0 +1,23 @@ +import { defineConfig, globalIgnores } from 'eslint/config'; +import { lintNimbleConfig, javascriptNimbleConfig, typescriptNimbleConfig } from '@ni-private/eslint-config-nimble'; + +export default defineConfig([ + globalIgnores(['**/dist/']), + lintNimbleConfig, + { + files: ['*.js', '*.cjs'], + extends: javascriptNimbleConfig, + rules: { + // Configuration scripts will not be in published package and are allowed to use devDependencies + 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], + }, + }, + { + files: ['*.ts'], + extends: typescriptNimbleConfig, + parserOptions: { + project: './tsconfig.json', + tsconfigRootDir: import.meta.dirname, + }, + }, +]); diff --git a/packages/nimble-components/.eslintrc.js b/packages/nimble-components/.eslintrc.js deleted file mode 100644 index dedfab75e2..0000000000 --- a/packages/nimble-components/.eslintrc.js +++ /dev/null @@ -1,32 +0,0 @@ -module.exports = { - root: true, - ignorePatterns: [ - 'node_modules', - 'dist', - 'src/icons', - 'src/wafer-map/workers' - ], - overrides: [ - { - files: ['*.js'], - extends: ['@ni-private/eslint-config-nimble/javascript'] - }, - { - files: ['*.ts'], - extends: ['@ni-private/eslint-config-nimble/components'], - parserOptions: { - project: './tsconfig.json', - tsconfigRootDir: __dirname - }, - }, - { - files: ['build/**/*.js'], - rules: { - // Build scripts should give verbose logging - 'no-console': 'off', - // Rollup config files use default exports - 'import/no-default-export': 'off', - }, - } - ] -}; diff --git a/packages/nimble-components/build/generate-workers/.eslintrc.js b/packages/nimble-components/build/generate-workers/.eslintrc.js deleted file mode 100644 index 8d441ca1f5..0000000000 --- a/packages/nimble-components/build/generate-workers/.eslintrc.js +++ /dev/null @@ -1,11 +0,0 @@ -module.exports = { - overrides: [ - { - files: ['*.ts'], - parserOptions: { - project: './tsconfig.json', - tsconfigRootDir: __dirname - }, - } - ] -}; diff --git a/packages/nimble-components/eslint.config.mjs b/packages/nimble-components/eslint.config.mjs new file mode 100644 index 0000000000..a4cd7f1b34 --- /dev/null +++ b/packages/nimble-components/eslint.config.mjs @@ -0,0 +1,43 @@ +import { defineConfig, globalIgnores } from 'eslint/config'; +import { lintNimbleConfig, componentsNimbleConfig, javascriptNimbleConfig } from '@ni-private/eslint-config-nimble'; + +export default defineConfig([ + globalIgnores([ + '**/dist/', + '**/src/icons/', + '**/src/wafer-map/workers/' + ]), + lintNimbleConfig, + { + files: ['**/*.js'], + extends: javascriptNimbleConfig + }, + { + files: ['**/*.ts'], + extends: componentsNimbleConfig, + languageOptions: { + parserOptions: { + project: './tsconfig.json', + tsconfigRootDir: import.meta.dirname + } + } + }, + { + files: ['**/build/**/*.js'], + rules: { + // Build scripts should give verbose logging + 'no-console': 'off', + // Rollup config files use default exports + 'import/no-default-export': 'off' + } + }, + { + files: ['**/build/generate-workers/**/*.ts'], + languageOptions: { + parserOptions: { + project: './build/generate-workers/tsconfig.json', + tsconfigRootDir: import.meta.dirname + } + } + } +]); diff --git a/packages/nimble-components/package.json b/packages/nimble-components/package.json index 74f82962fa..e6108ac2a2 100644 --- a/packages/nimble-components/package.json +++ b/packages/nimble-components/package.json @@ -4,12 +4,8 @@ "description": "Styled web components for the NI Nimble Design System", "scripts": { "build": "npm run generate-icons && npm run generate-workers && npm run build-components && npm run bundle-components && npm run generate-scss", - "lint-concurrent": "concurrently --pad-prefix --timings --group \"npm:eslint\" \"npm:prettier\"", - "format": "npm run prettier-fix", - "eslint": "eslint .", - "eslint-fix": "eslint . --fix", - "prettier": "prettier-eslint \"**/*.*\" --list-different --prettier-ignore", - "prettier-fix": "prettier-eslint \"**/*.*\" --write --prettier-ignore", + "lint": "eslint .", + "format": "eslint . --fix", "pack": "npm pack", "invoke-publish": "npm publish", "storybook-open-webkit": "playwright wk http://localhost:6006", @@ -124,8 +120,6 @@ "karma-webkit-launcher": "^2.6.0", "karma-webpack": "^5.0.0", "playwright": "1.54.1", - "prettier-eslint": "^16.3.0", - "prettier-eslint-cli": "^8.0.1", "rollup": "^4.12.0", "rollup-plugin-sourcemaps2": "^0.5.0", "source-map-loader": "^5.0.0", diff --git a/packages/nimble-components/src/anchor/types.ts b/packages/nimble-components/src/anchor/types.ts index cf5f4417af..3e89e37da1 100644 --- a/packages/nimble-components/src/anchor/types.ts +++ b/packages/nimble-components/src/anchor/types.ts @@ -6,5 +6,4 @@ export const AnchorAppearance = { default: undefined, prominent: 'prominent' } as const; -export type AnchorAppearance = - (typeof AnchorAppearance)[keyof typeof AnchorAppearance]; +export type AnchorAppearance = (typeof AnchorAppearance)[keyof typeof AnchorAppearance]; diff --git a/packages/nimble-components/src/banner/index.ts b/packages/nimble-components/src/banner/index.ts index 5075d0aae5..9a24092863 100644 --- a/packages/nimble-components/src/banner/index.ts +++ b/packages/nimble-components/src/banner/index.ts @@ -70,7 +70,7 @@ export class Banner extends FoundationElement { } } -// eslint-disable-next-line @typescript-eslint/no-empty-interface +// eslint-disable-next-line @typescript-eslint/no-empty-object-type export interface Banner extends ARIAGlobalStatesAndProperties {} applyMixins(Banner, ARIAGlobalStatesAndProperties); diff --git a/packages/nimble-components/src/banner/types.ts b/packages/nimble-components/src/banner/types.ts index 54d7142889..aeb30c5633 100644 --- a/packages/nimble-components/src/banner/types.ts +++ b/packages/nimble-components/src/banner/types.ts @@ -9,8 +9,7 @@ export const BannerSeverity = { information: 'information' } as const; -export type BannerSeverity = - (typeof BannerSeverity)[keyof typeof BannerSeverity]; +export type BannerSeverity = (typeof BannerSeverity)[keyof typeof BannerSeverity]; /** * The type of the detail associated with the `toggle` diff --git a/packages/nimble-components/src/breadcrumb/breadcrumb.foundation.spec.ts b/packages/nimble-components/src/breadcrumb/breadcrumb.foundation.spec.ts index 2553b183b2..bf4fd3da8d 100644 --- a/packages/nimble-components/src/breadcrumb/breadcrumb.foundation.spec.ts +++ b/packages/nimble-components/src/breadcrumb/breadcrumb.foundation.spec.ts @@ -94,7 +94,9 @@ describe('Breadcrumb', () => { }); it('should set the `aria-current` on the internal, last node, anchor when `href` is passed', async () => { - const { element, connect, disconnect, item1, item2, item3 } = await setup(); + const { + element, connect, disconnect, item1, item2, item3 + } = await setup(); const anchor1 = document.createElement('a'); anchor1.href = '#'; @@ -119,7 +121,9 @@ describe('Breadcrumb', () => { }); it('should remove aria-current from any prior Breadcrumb Item children with hrefs when a new node is appended', async () => { - const { element, connect, disconnect, item1, item2, item3 } = await setup(); + const { + element, connect, disconnect, item1, item2, item3 + } = await setup(); item1.setAttribute('href', '#'); item2.setAttribute('href', '#'); @@ -155,7 +159,9 @@ describe('Breadcrumb', () => { }); it('should remove aria-current from any prior Breadcrumb Item children with child anchors when a new node is appended', async () => { - const { element, connect, disconnect, item1, item2, item3 } = await setup(); + const { + element, connect, disconnect, item1, item2, item3 + } = await setup(); const anchor1 = document.createElement('a'); anchor1.href = '#'; diff --git a/packages/nimble-components/src/breadcrumb/types.ts b/packages/nimble-components/src/breadcrumb/types.ts index e9bed6fcac..805f53ebb7 100644 --- a/packages/nimble-components/src/breadcrumb/types.ts +++ b/packages/nimble-components/src/breadcrumb/types.ts @@ -6,5 +6,4 @@ export const BreadcrumbAppearance = { default: undefined, prominent: 'prominent' } as const; -export type BreadcrumbAppearance = - (typeof BreadcrumbAppearance)[keyof typeof BreadcrumbAppearance]; +export type BreadcrumbAppearance = (typeof BreadcrumbAppearance)[keyof typeof BreadcrumbAppearance]; diff --git a/packages/nimble-components/src/chip/index.ts b/packages/nimble-components/src/chip/index.ts index e0a189c452..366ef4c6b1 100644 --- a/packages/nimble-components/src/chip/index.ts +++ b/packages/nimble-components/src/chip/index.ts @@ -20,9 +20,9 @@ declare global { } } -export type ChipOptions = FoundationElementDefinition & - StartOptions & - EndOptions; +export type ChipOptions = FoundationElementDefinition + & StartOptions + & EndOptions; /** * A Nimble chip component diff --git a/packages/nimble-components/src/chip/types.ts b/packages/nimble-components/src/chip/types.ts index 5ebc68327c..76b460868c 100644 --- a/packages/nimble-components/src/chip/types.ts +++ b/packages/nimble-components/src/chip/types.ts @@ -2,5 +2,4 @@ export const ChipAppearance = { outline: 'outline', block: 'block' } as const; -export type ChipAppearance = - (typeof ChipAppearance)[keyof typeof ChipAppearance]; +export type ChipAppearance = (typeof ChipAppearance)[keyof typeof ChipAppearance]; diff --git a/packages/nimble-components/src/combobox/models/combobox-form-associated.ts b/packages/nimble-components/src/combobox/models/combobox-form-associated.ts index eb841622e4..4048612a65 100644 --- a/packages/nimble-components/src/combobox/models/combobox-form-associated.ts +++ b/packages/nimble-components/src/combobox/models/combobox-form-associated.ts @@ -4,7 +4,7 @@ import { FormAssociated, ListboxElement } from '@ni/fast-foundation'; // eslint-disable-next-line jsdoc/require-jsdoc class Combobox extends ListboxElement {} -// eslint-disable-next-line @typescript-eslint/no-empty-interface +// eslint-disable-next-line @typescript-eslint/no-empty-object-type interface Combobox extends FormAssociated {} /** diff --git a/packages/nimble-components/src/combobox/tests/combobox.foundation.spec.ts b/packages/nimble-components/src/combobox/tests/combobox.foundation.spec.ts index 4f761d9c1b..38119d9853 100644 --- a/packages/nimble-components/src/combobox/tests/combobox.foundation.spec.ts +++ b/packages/nimble-components/src/combobox/tests/combobox.foundation.spec.ts @@ -450,7 +450,9 @@ describe('Combobox', () => { }); it("should set the control's `aria-activedescendant` property to the ID of the currently selected option while open", async () => { - const { connect, disconnect, element, option1, option2, option3 } = await setup(); + const { + connect, disconnect, element, option1, option2, option3 + } = await setup(); await connect(); diff --git a/packages/nimble-components/src/combobox/tests/types.ts b/packages/nimble-components/src/combobox/tests/types.ts index 18ccc7da6a..465025f579 100644 --- a/packages/nimble-components/src/combobox/tests/types.ts +++ b/packages/nimble-components/src/combobox/tests/types.ts @@ -3,5 +3,4 @@ export const ExampleOptionsType = { wideOptions: 'WideOptions', manyOptions: 'ManyOptions' } as const; -export type ExampleOptionsType = - (typeof ExampleOptionsType)[keyof typeof ExampleOptionsType]; +export type ExampleOptionsType = (typeof ExampleOptionsType)[keyof typeof ExampleOptionsType]; diff --git a/packages/nimble-components/src/dialog/index.ts b/packages/nimble-components/src/dialog/index.ts index 45ba0e5512..5878c177bd 100644 --- a/packages/nimble-components/src/dialog/index.ts +++ b/packages/nimble-components/src/dialog/index.ts @@ -20,7 +20,6 @@ declare global { /** * A nimble-styled dialog. */ -// eslint-disable-next-line @typescript-eslint/no-invalid-void-type export class Dialog extends FoundationElement { // We want the member to match the name of the constant // eslint-disable-next-line @typescript-eslint/naming-convention @@ -146,7 +145,7 @@ export class Dialog extends FoundationElement { } } -// eslint-disable-next-line @typescript-eslint/no-empty-interface +// eslint-disable-next-line @typescript-eslint/no-empty-object-type export interface Dialog extends ARIAGlobalStatesAndProperties {} applyMixins(Dialog, ARIAGlobalStatesAndProperties); diff --git a/packages/nimble-components/src/dialog/tests/dialog.spec.ts b/packages/nimble-components/src/dialog/tests/dialog.spec.ts index eee140094c..65c6a1066e 100644 --- a/packages/nimble-components/src/dialog/tests/dialog.spec.ts +++ b/packages/nimble-components/src/dialog/tests/dialog.spec.ts @@ -4,7 +4,6 @@ import { Dialog, dialogTag, UserDismissed } from '..'; import { waitForUpdatesAsync } from '../../testing/async-helpers'; import { buttonTag } from '../../button'; -// eslint-disable-next-line @typescript-eslint/no-invalid-void-type async function setup( preventDismiss = false ): Promise>> { diff --git a/packages/nimble-components/src/drawer/index.ts b/packages/nimble-components/src/drawer/index.ts index 34d7b9437d..abb599ec85 100644 --- a/packages/nimble-components/src/drawer/index.ts +++ b/packages/nimble-components/src/drawer/index.ts @@ -23,7 +23,6 @@ declare global { * Drawer control. Shows content in a panel on the left / right side of the screen, * which animates to be visible with a slide-in / slide-out animation. */ -// eslint-disable-next-line @typescript-eslint/no-invalid-void-type export class Drawer extends FoundationElement { // We want the member to match the name of the constant // eslint-disable-next-line @typescript-eslint/naming-convention @@ -164,7 +163,7 @@ export class Drawer extends FoundationElement { } } -// eslint-disable-next-line @typescript-eslint/no-empty-interface +// eslint-disable-next-line @typescript-eslint/no-empty-object-type export interface Drawer extends ARIAGlobalStatesAndProperties {} applyMixins(Drawer, ARIAGlobalStatesAndProperties); diff --git a/packages/nimble-components/src/drawer/tests/drawer.spec.ts b/packages/nimble-components/src/drawer/tests/drawer.spec.ts index 076caa62a6..0a3ffa0d52 100644 --- a/packages/nimble-components/src/drawer/tests/drawer.spec.ts +++ b/packages/nimble-components/src/drawer/tests/drawer.spec.ts @@ -9,7 +9,6 @@ import { } from '../../testing/async-helpers'; import { buttonTag } from '../../button'; -// eslint-disable-next-line @typescript-eslint/no-invalid-void-type async function setup( preventDismiss = false ): Promise>> { diff --git a/packages/nimble-components/src/drawer/tests/types.ts b/packages/nimble-components/src/drawer/tests/types.ts index 47b1ecbf06..eb881baddf 100644 --- a/packages/nimble-components/src/drawer/tests/types.ts +++ b/packages/nimble-components/src/drawer/tests/types.ts @@ -2,8 +2,7 @@ export const ExampleContentType = { simpleTextContent: 'SimpleTextContent', headerContentFooter: 'HeaderContentFooter' } as const; -export type ExampleContentType = - (typeof ExampleContentType)[keyof typeof ExampleContentType]; +export type ExampleContentType = (typeof ExampleContentType)[keyof typeof ExampleContentType]; export const DrawerWidthOptions = { default: 'Default', @@ -11,5 +10,4 @@ export const DrawerWidthOptions = { medium500: 'Medium500', fitContent: 'FitContent' } as const; -export type DrawerWidthOptions = - (typeof DrawerWidthOptions)[keyof typeof DrawerWidthOptions]; +export type DrawerWidthOptions = (typeof DrawerWidthOptions)[keyof typeof DrawerWidthOptions]; diff --git a/packages/nimble-components/src/drawer/types.ts b/packages/nimble-components/src/drawer/types.ts index 5f5f6b01a2..f65a7f5573 100644 --- a/packages/nimble-components/src/drawer/types.ts +++ b/packages/nimble-components/src/drawer/types.ts @@ -2,5 +2,4 @@ export const DrawerLocation = { left: 'left', right: 'right' } as const; -export type DrawerLocation = - (typeof DrawerLocation)[keyof typeof DrawerLocation]; +export type DrawerLocation = (typeof DrawerLocation)[keyof typeof DrawerLocation]; diff --git a/packages/nimble-components/src/mapping/icon/index.ts b/packages/nimble-components/src/mapping/icon/index.ts index 629018a16f..ea25eac650 100644 --- a/packages/nimble-components/src/mapping/icon/index.ts +++ b/packages/nimble-components/src/mapping/icon/index.ts @@ -49,7 +49,7 @@ export class MappingIcon extends Mapping { // Clear the current resolution while waiting for async resolution this.resolvedIcon = undefined; await customElements.whenDefined(icon); - } catch (ex) { + } catch (_ex) { // If any error (i.e. invalid custom element name) don't continue // Don't update the resolvedIcon as it was already set to undefined before async resolution // (in case other async resolutions were started) diff --git a/packages/nimble-components/src/menu-button/types.ts b/packages/nimble-components/src/menu-button/types.ts index 4d2371dee1..3d918509b7 100644 --- a/packages/nimble-components/src/menu-button/types.ts +++ b/packages/nimble-components/src/menu-button/types.ts @@ -15,8 +15,7 @@ export const MenuButtonPosition = { below: 'below', auto: 'auto' } as const; -export type MenuButtonPosition = - (typeof MenuButtonPosition)[keyof typeof MenuButtonPosition]; +export type MenuButtonPosition = (typeof MenuButtonPosition)[keyof typeof MenuButtonPosition]; /** * The type of the detail associated with the `toggle` and `beforetoggle` diff --git a/packages/nimble-components/src/number-field/types.ts b/packages/nimble-components/src/number-field/types.ts index 823b15fd4e..f5a2617480 100644 --- a/packages/nimble-components/src/number-field/types.ts +++ b/packages/nimble-components/src/number-field/types.ts @@ -8,5 +8,4 @@ export const NumberFieldAppearance = { frameless: 'frameless' } as const; -export type NumberFieldAppearance = - (typeof NumberFieldAppearance)[keyof typeof NumberFieldAppearance]; +export type NumberFieldAppearance = (typeof NumberFieldAppearance)[keyof typeof NumberFieldAppearance]; diff --git a/packages/nimble-components/src/patterns/button/types.ts b/packages/nimble-components/src/patterns/button/types.ts index d3d1b64bb2..c1cf08a918 100644 --- a/packages/nimble-components/src/patterns/button/types.ts +++ b/packages/nimble-components/src/patterns/button/types.ts @@ -40,8 +40,7 @@ export const ButtonAppearance = { ghost: 'ghost', block: 'block' } as const; -export type ButtonAppearance = - (typeof ButtonAppearance)[keyof typeof ButtonAppearance]; +export type ButtonAppearance = (typeof ButtonAppearance)[keyof typeof ButtonAppearance]; /** * Types of button appearance variants. @@ -52,5 +51,4 @@ export const ButtonAppearanceVariant = { primary: 'primary', accent: 'accent' } as const; -export type ButtonAppearanceVariant = - (typeof ButtonAppearanceVariant)[keyof typeof ButtonAppearanceVariant]; +export type ButtonAppearanceVariant = (typeof ButtonAppearanceVariant)[keyof typeof ButtonAppearanceVariant]; diff --git a/packages/nimble-components/src/patterns/dropdown/types.ts b/packages/nimble-components/src/patterns/dropdown/types.ts index 4e64f1d7ce..9ac859d1ab 100644 --- a/packages/nimble-components/src/patterns/dropdown/types.ts +++ b/packages/nimble-components/src/patterns/dropdown/types.ts @@ -13,8 +13,7 @@ export const DropdownPosition = { above: 'above', below: 'below' } as const; -export type DropdownPosition = - (typeof DropdownPosition)[keyof typeof DropdownPosition]; +export type DropdownPosition = (typeof DropdownPosition)[keyof typeof DropdownPosition]; export const DropdownAppearance = { underline: 'underline', @@ -22,8 +21,7 @@ export const DropdownAppearance = { block: 'block', frameless: 'frameless' } as const; -export type DropdownAppearance = - (typeof DropdownAppearance)[keyof typeof DropdownAppearance]; +export type DropdownAppearance = (typeof DropdownAppearance)[keyof typeof DropdownAppearance]; /** * @internal diff --git a/packages/nimble-components/src/radio-group/tests/radio-group.foundation.spec.ts b/packages/nimble-components/src/radio-group/tests/radio-group.foundation.spec.ts index edf468c7f6..f3b1aefee7 100644 --- a/packages/nimble-components/src/radio-group/tests/radio-group.foundation.spec.ts +++ b/packages/nimble-components/src/radio-group/tests/radio-group.foundation.spec.ts @@ -483,7 +483,9 @@ describe('Radio Group', () => { }); it('should allow resetting of elements by the parent form', async () => { - const { element, connect, disconnect, parent, radio1, radio2, radio3 } = await setup(); + const { + element, connect, disconnect, parent, radio1, radio2, radio3 + } = await setup(); radio2.setAttribute('checked', ''); diff --git a/packages/nimble-components/src/rich-text-mention/base/models/mention-validator.ts b/packages/nimble-components/src/rich-text-mention/base/models/mention-validator.ts index c4a75c0d2f..ae7416c3a3 100644 --- a/packages/nimble-components/src/rich-text-mention/base/models/mention-validator.ts +++ b/packages/nimble-components/src/rich-text-mention/base/models/mention-validator.ts @@ -4,7 +4,7 @@ import { type ValidityObject } from '../../../utilities/models/validator'; -// eslint-disable-next-line @typescript-eslint/no-empty-interface +// eslint-disable-next-line @typescript-eslint/no-empty-object-type export interface RichTextMentionValidity extends ValidityObject {} type FlagNames = T extends readonly (infer U)[] ? U : never; @@ -122,7 +122,7 @@ export class RichTextMentionValidator< // eslint-disable-next-line no-new new URL(url); return false; - } catch (error) { + } catch (_error) { return true; } } @@ -133,7 +133,7 @@ export class RichTextMentionValidator< // eslint-disable-next-line no-new new RegExp(pattern); return false; - } catch (error) { + } catch (_error) { return true; } } diff --git a/packages/nimble-components/src/rich-text/editor/index.ts b/packages/nimble-components/src/rich-text/editor/index.ts index 7c69798fac..fe920ee7fe 100644 --- a/packages/nimble-components/src/rich-text/editor/index.ts +++ b/packages/nimble-components/src/rich-text/editor/index.ts @@ -718,7 +718,7 @@ export class RichTextEditor extends mixinErrorPattern(RichText) { } } -// eslint-disable-next-line @typescript-eslint/no-empty-interface +// eslint-disable-next-line @typescript-eslint/no-empty-object-type export interface RichTextEditor extends ARIAGlobalStatesAndProperties {} applyMixins(RichTextEditor, ARIAGlobalStatesAndProperties); diff --git a/packages/nimble-components/src/rich-text/editor/testing/types.ts b/packages/nimble-components/src/rich-text/editor/testing/types.ts index b250073b75..5eab27d37f 100644 --- a/packages/nimble-components/src/rich-text/editor/testing/types.ts +++ b/packages/nimble-components/src/rich-text/editor/testing/types.ts @@ -19,11 +19,9 @@ export const ArrowKeyButton = { left: keyArrowLeft, right: keyArrowRight } as const; -export type ArrowKeyButton = - (typeof ArrowKeyButton)[keyof typeof ArrowKeyButton]; +export type ArrowKeyButton = (typeof ArrowKeyButton)[keyof typeof ArrowKeyButton]; -export type LabelProvider = - | 'toggleBold' +export type LabelProvider = 'toggleBold' | 'toggleItalics' | 'toggleBulletedList' | 'toggleNumberedList'; diff --git a/packages/nimble-components/src/rich-text/editor/types.ts b/packages/nimble-components/src/rich-text/editor/types.ts index c48728c9e0..b2c5c440d1 100644 --- a/packages/nimble-components/src/rich-text/editor/types.ts +++ b/packages/nimble-components/src/rich-text/editor/types.ts @@ -9,8 +9,7 @@ export const TipTapNodeName = { numberedList: 'orderedList' } as const; -export type TipTapNodeName = - (typeof TipTapNodeName)[keyof typeof TipTapNodeName]; +export type TipTapNodeName = (typeof TipTapNodeName)[keyof typeof TipTapNodeName]; export interface MentionExtensionConfig { name: string; diff --git a/packages/nimble-components/src/select/models/select-form-associated.ts b/packages/nimble-components/src/select/models/select-form-associated.ts index 3b64020cd8..f7f05ee29c 100644 --- a/packages/nimble-components/src/select/models/select-form-associated.ts +++ b/packages/nimble-components/src/select/models/select-form-associated.ts @@ -4,7 +4,7 @@ import { FormAssociated, ListboxElement } from '@ni/fast-foundation'; // eslint-disable-next-line jsdoc/require-jsdoc class Select extends ListboxElement {} -// eslint-disable-next-line @typescript-eslint/no-empty-interface +// eslint-disable-next-line @typescript-eslint/no-empty-object-type interface Select extends FormAssociated {} /** diff --git a/packages/nimble-components/src/select/tests/select.foundation.spec.ts b/packages/nimble-components/src/select/tests/select.foundation.spec.ts index f5f9fb695a..efaac9bbef 100644 --- a/packages/nimble-components/src/select/tests/select.foundation.spec.ts +++ b/packages/nimble-components/src/select/tests/select.foundation.spec.ts @@ -131,7 +131,9 @@ describe('Select', () => { }); it('should set its value to the first enabled option', async () => { - const { element, connect, disconnect, option1, option2, option3 } = await setup(); + const { + element, connect, disconnect, option1, option2, option3 + } = await setup(); await connect(); @@ -146,7 +148,9 @@ describe('Select', () => { }); it('should set its value to the first enabled option when disabled', async () => { - const { element, connect, disconnect, option1, option2, option3 } = await setup(); + const { + element, connect, disconnect, option1, option2, option3 + } = await setup(); element.disabled = true; await connect(); @@ -162,7 +166,9 @@ describe('Select', () => { }); it('should select the first option with a `selected` attribute', async () => { - const { element, connect, disconnect, option1, option2, option3 } = await setup(); + const { + element, connect, disconnect, option1, option2, option3 + } = await setup(); option2.setAttribute('selected', ''); @@ -179,7 +185,9 @@ describe('Select', () => { }); it('should select the first option with a `selected` attribute when disabled', async () => { - const { element, connect, disconnect, option1, option2, option3 } = await setup(); + const { + element, connect, disconnect, option1, option2, option3 + } = await setup(); element.disabled = true; option2.setAttribute('selected', ''); @@ -895,7 +903,9 @@ describe('Select', () => { }); it('should set the `aria-activedescendant` attribute to the ID of the currently selected option', async () => { - const { connect, disconnect, element, option1, option2, option3 } = await setup(); + const { + connect, disconnect, element, option1, option2, option3 + } = await setup(); await connect(); diff --git a/packages/nimble-components/src/select/tests/select.spec.ts b/packages/nimble-components/src/select/tests/select.spec.ts index c8de8547e9..32a28c2173 100644 --- a/packages/nimble-components/src/select/tests/select.spec.ts +++ b/packages/nimble-components/src/select/tests/select.spec.ts @@ -29,8 +29,7 @@ type SelectFilterInputEventHandler = ( type CustomEventHandler = (evt: CustomEvent) => void; -type OptionInitialState = - | 'selected' +type OptionInitialState = 'selected' | 'disabled' | 'disabled selected' | 'disabled hidden' diff --git a/packages/nimble-components/src/spinner/types.ts b/packages/nimble-components/src/spinner/types.ts index 585a2d72d8..92fd5521f5 100644 --- a/packages/nimble-components/src/spinner/types.ts +++ b/packages/nimble-components/src/spinner/types.ts @@ -6,5 +6,4 @@ export const SpinnerAppearance = { default: undefined, accent: 'accent' } as const; -export type SpinnerAppearance = - (typeof SpinnerAppearance)[keyof typeof SpinnerAppearance]; +export type SpinnerAppearance = (typeof SpinnerAppearance)[keyof typeof SpinnerAppearance]; diff --git a/packages/nimble-components/src/table-column/base/cell-view/template.ts b/packages/nimble-components/src/table-column/base/cell-view/template.ts index eb0a0e7af3..2e5e3d4d98 100644 --- a/packages/nimble-components/src/table-column/base/cell-view/template.ts +++ b/packages/nimble-components/src/table-column/base/cell-view/template.ts @@ -7,7 +7,7 @@ const validateCellViewTemplate = (cellViewTag: string): void => { let instance; try { instance = document.createElement(cellViewTag); - } catch (ex) { + } catch (_ex) { // Swallow construction error to report a better one } if (!(instance instanceof TableCellView)) { diff --git a/packages/nimble-components/src/table-column/base/group-header-view/template.ts b/packages/nimble-components/src/table-column/base/group-header-view/template.ts index 0ea2ba90f2..6e360c4879 100644 --- a/packages/nimble-components/src/table-column/base/group-header-view/template.ts +++ b/packages/nimble-components/src/table-column/base/group-header-view/template.ts @@ -6,7 +6,7 @@ const validateGroupHeaderViewTemplate = (groupHeaderViewTag: string): void => { let instance; try { instance = document.createElement(groupHeaderViewTag); - } catch (ex) { + } catch (_ex) { // Swallow construction error to report a better one } if (!(instance instanceof TableGroupHeaderView)) { diff --git a/packages/nimble-components/src/table-column/base/tests/types.ts b/packages/nimble-components/src/table-column/base/tests/types.ts index 1c575126ac..b0a131a84f 100644 --- a/packages/nimble-components/src/table-column/base/tests/types.ts +++ b/packages/nimble-components/src/table-column/base/tests/types.ts @@ -7,8 +7,7 @@ export const ExampleSortType = { firstColumnAscendingSecondColumnDisabled: 'FirstColumnAscendingSecondColumnDisabled' } as const; -export type ExampleSortType = - (typeof ExampleSortType)[keyof typeof ExampleSortType]; +export type ExampleSortType = (typeof ExampleSortType)[keyof typeof ExampleSortType]; export const ExampleGroupType = { none: 'None', @@ -17,15 +16,13 @@ export const ExampleGroupType = { firstThenLastName: 'FirstThenLastName', lastThenFirstName: 'LastThenFirstName' } as const; -export type ExampleGroupType = - (typeof ExampleGroupType)[keyof typeof ExampleGroupType]; +export type ExampleGroupType = (typeof ExampleGroupType)[keyof typeof ExampleGroupType]; export const ExampleGroupingDisabledType = { firstName: 'FirstName', lastName: 'LastName' } as const; -export type ExampleGroupingDisabledType = - (typeof ExampleGroupingDisabledType)[keyof typeof ExampleGroupingDisabledType]; +export type ExampleGroupingDisabledType = (typeof ExampleGroupingDisabledType)[keyof typeof ExampleGroupingDisabledType]; export const ExampleColumnFractionalWidthType = { default: 'Default', @@ -33,5 +30,4 @@ export const ExampleColumnFractionalWidthType = { firstColumTwiceSize: 'FirstColumnTwiceSize', thirdColumnHalfFourthColumnTwice: 'ThirdColumnHalfFourthColumnTwice' } as const; -export type ExampleColumnFractionalWidthType = - (typeof ExampleColumnFractionalWidthType)[keyof typeof ExampleColumnFractionalWidthType]; +export type ExampleColumnFractionalWidthType = (typeof ExampleColumnFractionalWidthType)[keyof typeof ExampleColumnFractionalWidthType]; diff --git a/packages/nimble-components/src/table-column/base/types.ts b/packages/nimble-components/src/table-column/base/types.ts index c7ebb215bc..7afd26183a 100644 --- a/packages/nimble-components/src/table-column/base/types.ts +++ b/packages/nimble-components/src/table-column/base/types.ts @@ -5,7 +5,7 @@ import type { ValidityObject } from '../../utilities/models/validator'; * An object whose fields are defined by a particular TableColumn, which is used by the column's * cellTemplate implementation. */ -// eslint-disable-next-line @typescript-eslint/no-empty-interface +// eslint-disable-next-line @typescript-eslint/no-empty-object-type export interface TableCellRecord extends TableRecord {} export interface TableCellState< @@ -38,10 +38,9 @@ export const TableColumnSortOperation = { */ localeAwareCaseSensitive: 'localeAwareCaseSensitive' } as const; -export type TableColumnSortOperation = - (typeof TableColumnSortOperation)[keyof typeof TableColumnSortOperation]; +export type TableColumnSortOperation = (typeof TableColumnSortOperation)[keyof typeof TableColumnSortOperation]; -// eslint-disable-next-line @typescript-eslint/no-empty-interface +// eslint-disable-next-line @typescript-eslint/no-empty-object-type export interface TableColumnValidity extends ValidityObject {} const columnIconSize = 16; // `iconSize` token diff --git a/packages/nimble-components/src/table-column/date-text/index.ts b/packages/nimble-components/src/table-column/date-text/index.ts index b9dc805e16..b6fcff5ba5 100644 --- a/packages/nimble-components/src/table-column/date-text/index.ts +++ b/packages/nimble-components/src/table-column/date-text/index.ts @@ -254,7 +254,7 @@ export class TableColumnDateText extends mixinTextBase( } try { return new Intl.DateTimeFormat(lang.getValueFor(this), options); - } catch (e) { + } catch (_e) { return undefined; } } diff --git a/packages/nimble-components/src/table-column/date-text/models/format-helper.ts b/packages/nimble-components/src/table-column/date-text/models/format-helper.ts index be0ba0eab4..6d5d047a3c 100644 --- a/packages/nimble-components/src/table-column/date-text/models/format-helper.ts +++ b/packages/nimble-components/src/table-column/date-text/models/format-helper.ts @@ -7,7 +7,7 @@ export function formatNumericDate( if (typeof date === 'number') { try { return formatter.format(date); - } catch (e) { + } catch (_e) { return ''; } } else { diff --git a/packages/nimble-components/src/table-column/date-text/types.ts b/packages/nimble-components/src/table-column/date-text/types.ts index d8f7e1c39d..51c8649d80 100644 --- a/packages/nimble-components/src/table-column/date-text/types.ts +++ b/packages/nimble-components/src/table-column/date-text/types.ts @@ -5,11 +5,9 @@ export const DateTextFormat = { default: undefined, custom: 'custom' } as const; -export type DateTextFormat = - (typeof DateTextFormat)[keyof typeof DateTextFormat]; +export type DateTextFormat = (typeof DateTextFormat)[keyof typeof DateTextFormat]; -export type LocaleMatcherAlgorithm = - Intl.DateTimeFormatOptions['localeMatcher']; +export type LocaleMatcherAlgorithm = Intl.DateTimeFormatOptions['localeMatcher']; export type WeekdayFormat = Intl.DateTimeFormatOptions['weekday']; export type EraFormat = Intl.DateTimeFormatOptions['era']; export type YearFormat = Intl.DateTimeFormatOptions['year']; @@ -19,8 +17,7 @@ export type HourFormat = Intl.DateTimeFormatOptions['hour']; export type MinuteFormat = Intl.DateTimeFormatOptions['minute']; export type SecondFormat = Intl.DateTimeFormatOptions['second']; export type TimeZoneNameFormat = Intl.DateTimeFormatOptions['timeZoneName']; -export type FormatMatcherAlgorithm = - Intl.DateTimeFormatOptions['formatMatcher']; +export type FormatMatcherAlgorithm = Intl.DateTimeFormatOptions['formatMatcher']; export type DayPeriodFormat = Intl.DateTimeFormatOptions['dayPeriod']; export type DateStyle = Intl.DateTimeFormatOptions['dateStyle']; export type TimeStyle = Intl.DateTimeFormatOptions['timeStyle']; diff --git a/packages/nimble-components/src/table-column/enum-base/index.ts b/packages/nimble-components/src/table-column/enum-base/index.ts index a705125ec1..2a5a3f8b52 100644 --- a/packages/nimble-components/src/table-column/enum-base/index.ts +++ b/packages/nimble-components/src/table-column/enum-base/index.ts @@ -19,8 +19,7 @@ import { resolveKeyWithType } from './models/mapping-key-resolver'; import type { TableColumnEnumBaseValidator } from './models/table-column-enum-base-validator'; import type { TableColumnTextBaseColumnConfig } from '../text-base/cell-view'; -export type TableColumnEnumCellRecord = - | TableStringField<'value'> +export type TableColumnEnumCellRecord = TableStringField<'value'> | TableBooleanField<'value'> | TableNumberField<'value'>; export type MappingConfigs = Map; diff --git a/packages/nimble-components/src/table-column/enum-base/types.ts b/packages/nimble-components/src/table-column/enum-base/types.ts index 6159447ebc..e5d7b53397 100644 --- a/packages/nimble-components/src/table-column/enum-base/types.ts +++ b/packages/nimble-components/src/table-column/enum-base/types.ts @@ -7,5 +7,4 @@ export const MappingKeyType = { number: 'number', boolean: 'boolean' } as const; -export type MappingKeyType = - (typeof MappingKeyType)[keyof typeof MappingKeyType]; +export type MappingKeyType = (typeof MappingKeyType)[keyof typeof MappingKeyType]; diff --git a/packages/nimble-components/src/table-column/mapping/types.ts b/packages/nimble-components/src/table-column/mapping/types.ts index 6b8502a416..098a43bb06 100644 --- a/packages/nimble-components/src/table-column/mapping/types.ts +++ b/packages/nimble-components/src/table-column/mapping/types.ts @@ -5,5 +5,4 @@ export const TableColumnMappingWidthMode = { default: undefined, iconSize: 'icon-size' } as const; -export type TableColumnMappingWidthMode = - (typeof TableColumnMappingWidthMode)[keyof typeof TableColumnMappingWidthMode]; +export type TableColumnMappingWidthMode = (typeof TableColumnMappingWidthMode)[keyof typeof TableColumnMappingWidthMode]; diff --git a/packages/nimble-components/src/table-column/menu-button/tests/table-column-menu-button.spec.ts b/packages/nimble-components/src/table-column/menu-button/tests/table-column-menu-button.spec.ts index 24f63f1dcd..e05ea41583 100644 --- a/packages/nimble-components/src/table-column/menu-button/tests/table-column-menu-button.spec.ts +++ b/packages/nimble-components/src/table-column/menu-button/tests/table-column-menu-button.spec.ts @@ -500,11 +500,11 @@ describe('TableColumnMenuButton', () => { async function openMenuAndListenForColumnToggleEvents( menuButtonToOpen: MenuButtonPageObject ): Promise<{ - column1BeforeToggleEmitCount: number, - column1ToggleEmitCount: number, - column2BeforeToggleEmitCount: number, - column2ToggleEmitCount: number - }> { + column1BeforeToggleEmitCount: number, + column1ToggleEmitCount: number, + column2BeforeToggleEmitCount: number, + column2ToggleEmitCount: number + }> { const column1BeforeToggleSpy = jasmine.createSpy(); elementReferences.column1.addEventListener( 'menu-button-column-beforetoggle', diff --git a/packages/nimble-components/src/table-column/mixins/custom-sort-order.ts b/packages/nimble-components/src/table-column/mixins/custom-sort-order.ts index bd93ca979d..07b012da45 100644 --- a/packages/nimble-components/src/table-column/mixins/custom-sort-order.ts +++ b/packages/nimble-components/src/table-column/mixins/custom-sort-order.ts @@ -101,7 +101,6 @@ export function mixinCustomSortOrderColumnAPI< } attr({ attribute: 'sort-by-field-name' })( - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument CustomSortOrderColumn.prototype, 'sortByFieldName' ); diff --git a/packages/nimble-components/src/table-column/mixins/fractional-width-column.ts b/packages/nimble-components/src/table-column/mixins/fractional-width-column.ts index 878591775d..630b24f5ae 100644 --- a/packages/nimble-components/src/table-column/mixins/fractional-width-column.ts +++ b/packages/nimble-components/src/table-column/mixins/fractional-width-column.ts @@ -32,12 +32,10 @@ export function mixinFractionalWidthColumnAPI< } attr({ attribute: 'fractional-width', converter: nullableNumberConverter })( - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument FractionalWidthColumn.prototype, 'fractionalWidth' ); attr({ attribute: 'min-pixel-width', converter: nullableNumberConverter })( - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument FractionalWidthColumn.prototype, 'minPixelWidth' ); diff --git a/packages/nimble-components/src/table-column/mixins/groupable-column.ts b/packages/nimble-components/src/table-column/mixins/groupable-column.ts index a74783bca7..58cf2b2223 100644 --- a/packages/nimble-components/src/table-column/mixins/groupable-column.ts +++ b/packages/nimble-components/src/table-column/mixins/groupable-column.ts @@ -30,12 +30,10 @@ export function mixinGroupableColumnAPI< } } attr({ attribute: 'grouping-disabled', mode: 'boolean' })( - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument GroupableColumn.prototype, 'groupingDisabled' ); attr({ attribute: 'group-index', converter: nullableNumberConverter })( - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument GroupableColumn.prototype, 'groupIndex' ); diff --git a/packages/nimble-components/src/table-column/mixins/placeholder.ts b/packages/nimble-components/src/table-column/mixins/placeholder.ts index e0d3e974a7..87eb20ca11 100644 --- a/packages/nimble-components/src/table-column/mixins/placeholder.ts +++ b/packages/nimble-components/src/table-column/mixins/placeholder.ts @@ -24,7 +24,6 @@ export function mixinColumnWithPlaceholderAPI< public abstract placeholderChanged(): void; } attr({ attribute: 'placeholder' })( - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument ColumnWithPlaceholder.prototype, 'placeholder' ); diff --git a/packages/nimble-components/src/table-column/mixins/sortable-column.ts b/packages/nimble-components/src/table-column/mixins/sortable-column.ts index 7c49d1fa4e..aa55f3043b 100644 --- a/packages/nimble-components/src/table-column/mixins/sortable-column.ts +++ b/packages/nimble-components/src/table-column/mixins/sortable-column.ts @@ -51,17 +51,14 @@ export function mixinSortableColumnAPI< } } attr({ attribute: 'sorting-disabled', mode: 'boolean' })( - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument SortableColumn.prototype, 'sortingDisabled' ); attr({ attribute: 'sort-index', converter: nullableNumberConverter })( - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument SortableColumn.prototype, 'sortIndex' ); attr({ attribute: 'sort-direction' })( - // eslint-disable-next-line @typescript-eslint/no-unsafe-argument SortableColumn.prototype, 'sortDirection' ); diff --git a/packages/nimble-components/src/table-column/number-text/models/number-text-unit-format.ts b/packages/nimble-components/src/table-column/number-text/models/number-text-unit-format.ts index 3b9cb18429..e0774316d4 100644 --- a/packages/nimble-components/src/table-column/number-text/models/number-text-unit-format.ts +++ b/packages/nimble-components/src/table-column/number-text/models/number-text-unit-format.ts @@ -12,8 +12,8 @@ export interface NumberTextUnitFormatOptions extends UnitFormatOptions { decimalDigits?: number; decimalMaximumDigits?: number; } -type ResolvedNumberTextUnitFormatOptions = NumberTextUnitFormatOptions & - Required; +type ResolvedNumberTextUnitFormatOptions = NumberTextUnitFormatOptions + & Required; /** * Format for numbers (with optional units) in a number-text table column. diff --git a/packages/nimble-components/src/table-column/number-text/types.ts b/packages/nimble-components/src/table-column/number-text/types.ts index a8d9261465..b12f8305c1 100644 --- a/packages/nimble-components/src/table-column/number-text/types.ts +++ b/packages/nimble-components/src/table-column/number-text/types.ts @@ -5,8 +5,7 @@ export const NumberTextFormat = { default: undefined, decimal: 'decimal' } as const; -export type NumberTextFormat = - (typeof NumberTextFormat)[keyof typeof NumberTextFormat]; +export type NumberTextFormat = (typeof NumberTextFormat)[keyof typeof NumberTextFormat]; /** * The aligment of the value in the number-text table column. @@ -17,5 +16,4 @@ export const NumberTextAlignment = { left: 'left', right: 'right' } as const; -export type NumberTextAlignment = - (typeof NumberTextAlignment)[keyof typeof NumberTextAlignment]; +export type NumberTextAlignment = (typeof NumberTextAlignment)[keyof typeof NumberTextAlignment]; diff --git a/packages/nimble-components/src/table-column/text-base/cell-view/index.ts b/packages/nimble-components/src/table-column/text-base/cell-view/index.ts index 54ccd70f9e..be584e2c30 100644 --- a/packages/nimble-components/src/table-column/text-base/cell-view/index.ts +++ b/packages/nimble-components/src/table-column/text-base/cell-view/index.ts @@ -18,10 +18,8 @@ export interface TableColumnTextBaseColumnConfig { * The cell view base class for displaying fields of any type as text. */ export abstract class TableColumnTextCellViewBase< - TCellRecord extends TableColumnTextBaseCellRecord = - TableColumnTextBaseCellRecord, - TColumnConfig extends TableColumnTextBaseColumnConfig = - TableColumnTextBaseColumnConfig + TCellRecord extends TableColumnTextBaseCellRecord = TableColumnTextBaseCellRecord, + TColumnConfig extends TableColumnTextBaseColumnConfig = TableColumnTextBaseColumnConfig > extends TableCellView { /** @internal */ @observable diff --git a/packages/nimble-components/src/table-column/text-base/group-header-view/index.ts b/packages/nimble-components/src/table-column/text-base/group-header-view/index.ts index ca232eee21..9321319db4 100644 --- a/packages/nimble-components/src/table-column/text-base/group-header-view/index.ts +++ b/packages/nimble-components/src/table-column/text-base/group-header-view/index.ts @@ -31,18 +31,18 @@ export abstract class TableColumnTextGroupHeaderViewBase< private readonly noValuePlaceholderLabelSubscriber: DesignTokenSubscriber< typeof tableGroupRowPlaceholderNoValueLabel > = { - handleChange: () => { - this.applyPlaceholderTextIfNeeded(); - } - }; + handleChange: () => { + this.applyPlaceholderTextIfNeeded(); + } + }; private readonly emptyPlaceholderLabelSubscriber: DesignTokenSubscriber< typeof tableGroupRowPlaceholderEmptyLabel > = { - handleChange: () => { - this.applyPlaceholderTextIfNeeded(); - } - }; + handleChange: () => { + this.applyPlaceholderTextIfNeeded(); + } + }; public override connectedCallback(): void { super.connectedCallback(); diff --git a/packages/nimble-components/src/table-column/text-base/index.ts b/packages/nimble-components/src/table-column/text-base/index.ts index c42768a586..bcfd905369 100644 --- a/packages/nimble-components/src/table-column/text-base/index.ts +++ b/packages/nimble-components/src/table-column/text-base/index.ts @@ -30,7 +30,7 @@ type TableColumnBaseConstructor< ...args: any[] ) => TableColumnTextBase; -// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type, @typescript-eslint/no-explicit-any +// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/explicit-function-return-type export function mixinTextBase< TBase extends TableColumnBaseConstructor, TColumnConfig, diff --git a/packages/nimble-components/src/table-column/text/index.ts b/packages/nimble-components/src/table-column/text/index.ts index 2f3735ce21..d15cd0fbdc 100644 --- a/packages/nimble-components/src/table-column/text/index.ts +++ b/packages/nimble-components/src/table-column/text/index.ts @@ -13,7 +13,7 @@ import { TableColumnTextValidator } from './models/table-column-text-validator'; export type TableColumnTextCellRecord = TableStringField<'value'>; -// eslint-disable-next-line @typescript-eslint/no-empty-interface +// eslint-disable-next-line @typescript-eslint/no-empty-object-type export interface TableColumnTextColumnConfig extends TableColumnTextBaseColumnConfig {} declare global { diff --git a/packages/nimble-components/src/table/components/row/index.ts b/packages/nimble-components/src/table/components/row/index.ts index 6f98be270c..83fa7d58bd 100644 --- a/packages/nimble-components/src/table/components/row/index.ts +++ b/packages/nimble-components/src/table/components/row/index.ts @@ -35,7 +35,7 @@ declare global { } /** Represents a single row (element) in the Table's data */ -// eslint-disable-next-line @typescript-eslint/no-empty-interface +// eslint-disable-next-line @typescript-eslint/no-empty-object-type export interface TableDataRecord extends TableRecord {} /** diff --git a/packages/nimble-components/src/table/index.ts b/packages/nimble-components/src/table/index.ts index d4066a08cc..1f65360f2a 100644 --- a/packages/nimble-components/src/table/index.ts +++ b/packages/nimble-components/src/table/index.ts @@ -290,18 +290,18 @@ export class Table< private readonly borderWidthSubscriber: DesignTokenSubscriber< typeof borderWidth > = { - handleChange: () => { - this.updateRowHeight(); - } - }; + handleChange: () => { + this.updateRowHeight(); + } + }; private readonly controlHeightSubscriber: DesignTokenSubscriber< typeof controlHeight > = { - handleChange: () => { - this.updateRowHeight(); - } - }; + handleChange: () => { + this.updateRowHeight(); + } + }; private actionMenuSlots: string[] = []; @@ -1321,10 +1321,10 @@ export class Table< } private calculateTanStackRowIdFunction(): - | (( - originalRow: TableNode, - index: number, - parent?: TanStackRow> + (( + originalRow: TableNode, + index: number, + parent?: TanStackRow> ) => string) | undefined { return this.idFieldName === null || this.idFieldName === undefined diff --git a/packages/nimble-components/src/table/tests/table-delegated-events.spec.ts b/packages/nimble-components/src/table/tests/table-delegated-events.spec.ts index 1c433dc027..f3da4035f1 100644 --- a/packages/nimble-components/src/table/tests/table-delegated-events.spec.ts +++ b/packages/nimble-components/src/table/tests/table-delegated-events.spec.ts @@ -22,7 +22,6 @@ const columnName = uniqueElementName(); @customElement({ name: columnName }) -// eslint-disable-next-line @typescript-eslint/no-unused-vars class TestTableColumn extends TableColumn { protected override getColumnInternalsOptions(): ColumnInternalsOptions { return { diff --git a/packages/nimble-components/src/table/tests/table-keyboard-navigation.spec.ts b/packages/nimble-components/src/table/tests/table-keyboard-navigation.spec.ts index 23fc12e027..54b6884e91 100644 --- a/packages/nimble-components/src/table/tests/table-keyboard-navigation.spec.ts +++ b/packages/nimble-components/src/table/tests/table-keyboard-navigation.spec.ts @@ -1238,7 +1238,6 @@ describe('Table keyboard navigation', () => { name: interactiveCellViewName, template: html`Test` }) - // eslint-disable-next-line @typescript-eslint/no-unused-vars class TestInteractiveCellView extends TableCellView { @observable public spanElement!: HTMLSpanElement; diff --git a/packages/nimble-components/src/table/tests/table.spec.ts b/packages/nimble-components/src/table/tests/table.spec.ts index 47c8ef7603..2ee14b78b8 100644 --- a/packages/nimble-components/src/table/tests/table.spec.ts +++ b/packages/nimble-components/src/table/tests/table.spec.ts @@ -697,7 +697,6 @@ describe('Table', () => { >${x => x.text}` }) - // eslint-disable-next-line @typescript-eslint/no-unused-vars class TestFocusableCellView extends TableColumnTextCellView { public override get tabbableChildren(): HTMLElement[] { return [this.shadowRoot!.firstElementChild as HTMLElement]; diff --git a/packages/nimble-components/src/table/tests/types.ts b/packages/nimble-components/src/table/tests/types.ts index 630b657a68..36c9ebd9f5 100644 --- a/packages/nimble-components/src/table/tests/types.ts +++ b/packages/nimble-components/src/table/tests/types.ts @@ -3,5 +3,4 @@ export const ExampleDataType = { largeDataSet: 'LargeDataSet', hierarchicalDataSet: 'HierarchicalDataSet' } as const; -export type ExampleDataType = - (typeof ExampleDataType)[keyof typeof ExampleDataType]; +export type ExampleDataType = (typeof ExampleDataType)[keyof typeof ExampleDataType]; diff --git a/packages/nimble-components/src/table/types.ts b/packages/nimble-components/src/table/types.ts index 66051684b0..d1d650db97 100644 --- a/packages/nimble-components/src/table/types.ts +++ b/packages/nimble-components/src/table/types.ts @@ -101,8 +101,7 @@ export const TableRecordDelayedHierarchyState = { canLoadChildren: 'can-load-children', loadingChildren: 'loading-children' } as const; -export type TableRecordDelayedHierarchyState = - (typeof TableRecordDelayedHierarchyState)[keyof typeof TableRecordDelayedHierarchyState]; +export type TableRecordDelayedHierarchyState = (typeof TableRecordDelayedHierarchyState)[keyof typeof TableRecordDelayedHierarchyState]; export interface TableActionMenuToggleEventDetail { newState: boolean; @@ -119,8 +118,7 @@ export const TableColumnSortDirection = { ascending: 'ascending', descending: 'descending' } as const; -export type TableColumnSortDirection = - (typeof TableColumnSortDirection)[keyof typeof TableColumnSortDirection]; +export type TableColumnSortDirection = (typeof TableColumnSortDirection)[keyof typeof TableColumnSortDirection]; /** * The selection modes of rows in the table. @@ -130,8 +128,7 @@ export const TableRowSelectionMode = { single: 'single', multiple: 'multiple' } as const; -export type TableRowSelectionMode = - (typeof TableRowSelectionMode)[keyof typeof TableRowSelectionMode]; +export type TableRowSelectionMode = (typeof TableRowSelectionMode)[keyof typeof TableRowSelectionMode]; /** * @internal @@ -143,8 +140,7 @@ export const TableRowSelectionState = { selected: 'selected', partiallySelected: 'partially-selected' } as const; -export type TableRowSelectionState = - (typeof TableRowSelectionState)[keyof typeof TableRowSelectionState]; +export type TableRowSelectionState = (typeof TableRowSelectionState)[keyof typeof TableRowSelectionState]; /** * @internal @@ -227,8 +223,7 @@ export const TableColumnAlignment = { left: 'left', right: 'right' } as const; -export type TableColumnAlignment = - (typeof TableColumnAlignment)[keyof typeof TableColumnAlignment]; +export type TableColumnAlignment = (typeof TableColumnAlignment)[keyof typeof TableColumnAlignment]; /** * Table keyboard focus types @@ -243,8 +238,7 @@ export const TableFocusType = { cellActionMenu: 'cellActionMenu', cellContent: 'cellContent' } as const; -export type TableFocusType = - (typeof TableFocusType)[keyof typeof TableFocusType]; +export type TableFocusType = (typeof TableFocusType)[keyof typeof TableFocusType]; /** * @internal diff --git a/packages/nimble-components/src/text-area/types.ts b/packages/nimble-components/src/text-area/types.ts index 3a4f5c8f10..1a96de66f0 100644 --- a/packages/nimble-components/src/text-area/types.ts +++ b/packages/nimble-components/src/text-area/types.ts @@ -6,5 +6,4 @@ export const TextAreaAppearance = { outline: 'outline', block: 'block' } as const; -export type TextAreaAppearance = - (typeof TextAreaAppearance)[keyof typeof TextAreaAppearance]; +export type TextAreaAppearance = (typeof TextAreaAppearance)[keyof typeof TextAreaAppearance]; diff --git a/packages/nimble-components/src/text-field/types.ts b/packages/nimble-components/src/text-field/types.ts index bf4c7d6f98..30a5ef7248 100644 --- a/packages/nimble-components/src/text-field/types.ts +++ b/packages/nimble-components/src/text-field/types.ts @@ -15,5 +15,4 @@ export const TextFieldAppearance = { frameless: 'frameless' } as const; -export type TextFieldAppearance = - (typeof TextFieldAppearance)[keyof typeof TextFieldAppearance]; +export type TextFieldAppearance = (typeof TextFieldAppearance)[keyof typeof TextFieldAppearance]; diff --git a/packages/nimble-components/src/theme-provider/design-token-values.ts b/packages/nimble-components/src/theme-provider/design-token-values.ts index 61f42f185e..bf9dd752e8 100644 --- a/packages/nimble-components/src/theme-provider/design-token-values.ts +++ b/packages/nimble-components/src/theme-provider/design-token-values.ts @@ -483,12 +483,11 @@ function createThemeColor(light: string, dark: string, color: string): ThemeColo } as const; } -type Font = - { - [K in `${T}Font` | `${T}FontFamily` | `${T}FontWeight` | `${T}FontSize` | `${T}FontLineHeight`]: string; - } & { - [K in `${T}FontColor` | `${T}DisabledFontColor`]: ThemeColor; - }; +type Font = { + [K in `${T}Font` | `${T}FontFamily` | `${T}FontWeight` | `${T}FontSize` | `${T}FontLineHeight`]: string; +} & { + [K in `${T}FontColor` | `${T}DisabledFontColor`]: ThemeColor; +}; function createFont( token: T, diff --git a/packages/nimble-components/src/theme-provider/design-tokens.ts b/packages/nimble-components/src/theme-provider/design-tokens.ts index c0ca501bd6..7dd7d0d9ef 100644 --- a/packages/nimble-components/src/theme-provider/design-tokens.ts +++ b/packages/nimble-components/src/theme-provider/design-tokens.ts @@ -561,14 +561,14 @@ function createFontTokens( fontSize: string, fontLineHeight: string ): readonly [ - CSSDesignToken, - CSSDesignToken, - CSSDesignToken, - CSSDesignToken, - CSSDesignToken, - CSSDesignToken, - CSSDesignToken - ] { + CSSDesignToken, + CSSDesignToken, + CSSDesignToken, + CSSDesignToken, + CSSDesignToken, + CSSDesignToken, + CSSDesignToken +] { const fontNameParts = fontTokenName.split('-font'); const tokenPrefixWithoutFont = fontNameParts[0]; const fontFamilyWithFallback = `${fontFamily}, ${fontFamily} Fallback`; diff --git a/packages/nimble-components/src/theme-provider/index.ts b/packages/nimble-components/src/theme-provider/index.ts index dc1d589156..0aa0793351 100644 --- a/packages/nimble-components/src/theme-provider/index.ts +++ b/packages/nimble-components/src/theme-provider/index.ts @@ -25,7 +25,7 @@ function isValidLang(value: string): boolean { // eslint-disable-next-line no-new new Intl.Locale(value); return true; - } catch (e) { + } catch (_e) { return false; } } diff --git a/packages/nimble-components/src/theme-provider/tests/types.ts b/packages/nimble-components/src/theme-provider/tests/types.ts index e1afcd356d..8f415e0709 100644 --- a/packages/nimble-components/src/theme-provider/tests/types.ts +++ b/packages/nimble-components/src/theme-provider/tests/types.ts @@ -2,5 +2,4 @@ export const PropertyFormat = { scss: 'SCSS', css: 'CSS' } as const; -export type PropertyFormat = - (typeof PropertyFormat)[keyof typeof PropertyFormat]; +export type PropertyFormat = (typeof PropertyFormat)[keyof typeof PropertyFormat]; diff --git a/packages/nimble-components/src/tooltip/types.ts b/packages/nimble-components/src/tooltip/types.ts index 28c11e38da..e7eabcaaba 100644 --- a/packages/nimble-components/src/tooltip/types.ts +++ b/packages/nimble-components/src/tooltip/types.ts @@ -8,5 +8,4 @@ export const TooltipSeverity = { information: 'information' } as const; -export type TooltipSeverity = - (typeof TooltipSeverity)[keyof typeof TooltipSeverity]; +export type TooltipSeverity = (typeof TooltipSeverity)[keyof typeof TooltipSeverity]; diff --git a/packages/nimble-components/src/tree-view/types.ts b/packages/nimble-components/src/tree-view/types.ts index 2854079141..88b14d1aaa 100644 --- a/packages/nimble-components/src/tree-view/types.ts +++ b/packages/nimble-components/src/tree-view/types.ts @@ -6,5 +6,4 @@ export const TreeViewSelectionMode = { leavesOnly: 'leaves-only', none: 'none' } as const; -export type TreeViewSelectionMode = - (typeof TreeViewSelectionMode)[keyof typeof TreeViewSelectionMode]; +export type TreeViewSelectionMode = (typeof TreeViewSelectionMode)[keyof typeof TreeViewSelectionMode]; diff --git a/packages/nimble-components/src/utilities/style/tests/types.ts b/packages/nimble-components/src/utilities/style/tests/types.ts index 3e6d027381..f76039206c 100644 --- a/packages/nimble-components/src/utilities/style/tests/types.ts +++ b/packages/nimble-components/src/utilities/style/tests/types.ts @@ -3,5 +3,4 @@ export const TestAppearance = { awesome: 'awesome', best: 'best' } as const; -export type TestAppearance = - (typeof TestAppearance)[keyof typeof TestAppearance]; +export type TestAppearance = (typeof TestAppearance)[keyof typeof TestAppearance]; diff --git a/packages/nimble-components/src/utilities/unit-format/default-unit-format.ts b/packages/nimble-components/src/utilities/unit-format/default-unit-format.ts index e4abc8d59c..d2c1022dbb 100644 --- a/packages/nimble-components/src/utilities/unit-format/default-unit-format.ts +++ b/packages/nimble-components/src/utilities/unit-format/default-unit-format.ts @@ -9,7 +9,7 @@ import { passthroughUnitScale } from './unit-scale/passthrough-unit-scale'; const signDisplay = 'negative' as Intl.NumberFormatOptions['signDisplay']; // Allow consistent pattern for defining Options and ResolvedOptions -// eslint-disable-next-line @typescript-eslint/no-empty-interface +// eslint-disable-next-line @typescript-eslint/no-empty-object-type interface DefaultUnitFormatOptions extends UnitFormatOptions {} type ResolvedDefaultUnitFormatOptions = Required; diff --git a/packages/nimble-components/src/wafer-map/types.ts b/packages/nimble-components/src/wafer-map/types.ts index 76c8031150..125599de39 100644 --- a/packages/nimble-components/src/wafer-map/types.ts +++ b/packages/nimble-components/src/wafer-map/types.ts @@ -7,8 +7,7 @@ export const WaferMapOriginLocation = { topRight: 'top-right' } as const; -export type WaferMapOriginLocation = - (typeof WaferMapOriginLocation)[keyof typeof WaferMapOriginLocation]; +export type WaferMapOriginLocation = (typeof WaferMapOriginLocation)[keyof typeof WaferMapOriginLocation]; export const WaferMapOrientation = { top: 'top', @@ -17,24 +16,21 @@ export const WaferMapOrientation = { right: 'right' } as const; -export type WaferMapOrientation = - (typeof WaferMapOrientation)[keyof typeof WaferMapOrientation]; +export type WaferMapOrientation = (typeof WaferMapOrientation)[keyof typeof WaferMapOrientation]; export const HoverDieOpacity = { show: 'show', hide: 'hide' } as const; -export type HoverDieOpacity = - (typeof HoverDieOpacity)[keyof typeof HoverDieOpacity]; +export type HoverDieOpacity = (typeof HoverDieOpacity)[keyof typeof HoverDieOpacity]; export const WaferMapColorScaleMode = { linear: 'linear', ordinal: 'ordinal' } as const; -export type WaferMapColorScaleMode = - (typeof WaferMapColorScaleMode)[keyof typeof WaferMapColorScaleMode]; +export type WaferMapColorScaleMode = (typeof WaferMapColorScaleMode)[keyof typeof WaferMapColorScaleMode]; export interface WaferMapDie { value: string; diff --git a/packages/nimble-tokens/.eslintrc.cjs b/packages/nimble-tokens/.eslintrc.cjs deleted file mode 100644 index ff1dc6da51..0000000000 --- a/packages/nimble-tokens/.eslintrc.cjs +++ /dev/null @@ -1,43 +0,0 @@ -module.exports = { - root: true, - ignorePatterns: [ - 'node_modules', - 'dist', - 'dist/styledictionary/*', - ], - overrides: [ - { - files: ['*.js', '*.cjs'], - extends: ['@ni-private/eslint-config-nimble/javascript'], - parserOptions: { - ecmaVersion: '2022' - }, - }, - { - files: ['*.js'], - rules: { - 'import/extensions': ['error', - 'always', - { - ignorePackages: true, - } - ], - 'import/no-unresolved': ['error', - { - ignore: ['^style-dictionary$'], - } - ], - } - }, - { - files: ['source/styledictionary/*.cjs'], - rules: { - // Build scripts will not be in published package and are allowed to use devDependencies - 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], - - // Okay to use console.log in build scripts - 'no-console': 'off', - } - } - ] -}; diff --git a/packages/nimble-tokens/build/.eslintrc.cjs b/packages/nimble-tokens/build/.eslintrc.cjs deleted file mode 100644 index b23c491b6b..0000000000 --- a/packages/nimble-tokens/build/.eslintrc.cjs +++ /dev/null @@ -1,9 +0,0 @@ -module.exports = { - rules: { - // Build scripts will not be in published package and are allowed to use devDependencies - 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], - - // Okay to use console.log in build scripts - 'no-console': 'off', - } -}; diff --git a/packages/nimble-tokens/eslint.config.mjs b/packages/nimble-tokens/eslint.config.mjs new file mode 100644 index 0000000000..417e77f96e --- /dev/null +++ b/packages/nimble-tokens/eslint.config.mjs @@ -0,0 +1,39 @@ +import { defineConfig, globalIgnores } from 'eslint/config'; +import { lintNimbleConfig, javascriptNimbleConfig } from '@ni-private/eslint-config-nimble'; + +export default defineConfig([ + globalIgnores(['**/dist/']), + lintNimbleConfig, + { + files: ['**/*.js', '**/*.cjs'], + extends: javascriptNimbleConfig, + }, + { + files: ['**/*.js'], + rules: { + 'import/extensions': [ + 'error', + 'always', + { + ignorePackages: true, + }, + ], + 'import/no-unresolved': [ + 'error', + { + ignore: ['^style-dictionary$'], + }, + ], + }, + }, + { + files: ['**/source/styledictionary/*.cjs', '**/build/**'], + rules: { + // Build scripts will not be in published package and are allowed to use devDependencies + 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], + + // Okay to use console.log in build scripts + 'no-console': 'off', + }, + }, +]); diff --git a/packages/ok-components/.eslintrc.js b/packages/ok-components/.eslintrc.js deleted file mode 100644 index e7975e347e..0000000000 --- a/packages/ok-components/.eslintrc.js +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = { - root: true, - ignorePatterns: [ - 'node_modules', - 'dist' - ], - overrides: [ - { - files: ['*.js'], - extends: ['@ni-private/eslint-config-nimble/javascript'] - }, - { - files: ['*.ts'], - extends: ['@ni-private/eslint-config-nimble/components'], - parserOptions: { - project: './tsconfig.json', - tsconfigRootDir: __dirname - }, - } - ] -}; diff --git a/packages/ok-components/eslint.config.mjs b/packages/ok-components/eslint.config.mjs new file mode 100644 index 0000000000..0681c69abd --- /dev/null +++ b/packages/ok-components/eslint.config.mjs @@ -0,0 +1,21 @@ +import { defineConfig, globalIgnores } from 'eslint/config'; +import { lintNimbleConfig, componentsNimbleConfig, javascriptNimbleConfig } from '@ni-private/eslint-config-nimble'; + +export default defineConfig([ + globalIgnores(['**/dist/']), + lintNimbleConfig, + { + files: ['**/*.js'], + extends: javascriptNimbleConfig + }, + { + files: ['**/*.ts'], + extends: componentsNimbleConfig, + languageOptions: { + parserOptions: { + project: './tsconfig.json', + tsconfigRootDir: import.meta.dirname + } + } + } +]); diff --git a/packages/ok-components/package.json b/packages/ok-components/package.json index c3ace66697..e9dec7987c 100644 --- a/packages/ok-components/package.json +++ b/packages/ok-components/package.json @@ -4,12 +4,8 @@ "description": "NI Ok Components", "scripts": { "build": "npm run build-components && npm run bundle-components", - "lint": "npm run eslint && npm run prettier", - "format": "npm run prettier-fix", - "eslint": "eslint .", - "eslint-fix": "eslint . --fix", - "prettier": "prettier-eslint \"**/*.*\" --list-different --prettier-ignore", - "prettier-fix": "prettier-eslint \"**/*.*\" --write --prettier-ignore", + "lint": "eslint .", + "format": "eslint . --fix", "pack": "npm pack", "invoke-publish": "npm publish", "build-components": "tsc -p ./tsconfig.json", @@ -78,8 +74,6 @@ "karma-webkit-launcher": "^2.6.0", "karma-webpack": "^5.0.0", "playwright": "1.54.1", - "prettier-eslint": "^16.3.0", - "prettier-eslint-cli": "^8.0.1", "rollup": "^4.12.0", "rollup-plugin-sourcemaps2": "^0.5.0", "source-map-loader": "^5.0.0", diff --git a/packages/performance/.eslintrc.cjs b/packages/performance/.eslintrc.cjs deleted file mode 100644 index f099995eb9..0000000000 --- a/packages/performance/.eslintrc.cjs +++ /dev/null @@ -1,28 +0,0 @@ -module.exports = { - root: true, - ignorePatterns: [ - 'node_modules', - 'dist' - ], - overrides: [ - { - files: ['*.js', '*.cjs'], - extends: ['@ni-private/eslint-config-nimble/javascript'], - }, - { - files: ['*.ts'], - extends: ['@ni-private/eslint-config-nimble/typescript'], - parserOptions: { - project: './tsconfig.json', - tsconfigRootDir: __dirname - } - }, - { - files: ['vite.config.js'], - rules: { - // Configuration scripts will not be in published package and are allowed to use devDependencies - 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], - } - } - ] -}; diff --git a/packages/performance/eslint.config.mjs b/packages/performance/eslint.config.mjs new file mode 100644 index 0000000000..bc38b9f945 --- /dev/null +++ b/packages/performance/eslint.config.mjs @@ -0,0 +1,36 @@ +import { defineConfig, globalIgnores } from 'eslint/config'; +import { importNodeEsmConfig } from '@ni/eslint-config-javascript'; +import { lintNimbleConfig, javascriptNimbleConfig, typescriptNimbleConfig } from '@ni-private/eslint-config-nimble'; + +export default defineConfig([ + globalIgnores(['**/dist/']), + lintNimbleConfig, + { + files: ['**/*.js', '**/*.cjs'], + extends: javascriptNimbleConfig, + }, + { + files: ['**/*.ts'], + extends: typescriptNimbleConfig, + languageOptions: { + parserOptions: { + project: './tsconfig.json', + tsconfigRootDir: import.meta.dirname, + }, + }, + }, + { + files: ['**/vite.config.js'], + extends: importNodeEsmConfig, + rules: { + // Vite config tends to rely on default exports in plugins + 'import/no-default-export': 'off', + + // Vite config is not a published package and is allowed to use devDependencies + 'import/no-extraneous-dependencies': [ + 'error', + { devDependencies: true } + ] + } + }, +]); diff --git a/packages/performance/src/vite.config.js b/packages/performance/src/vite.config.js index 8f5bec56a9..b167c3c8e6 100644 --- a/packages/performance/src/vite.config.js +++ b/packages/performance/src/vite.config.js @@ -1,7 +1,6 @@ import { defineConfig } from 'vite'; import { resolve } from 'path'; -// eslint-disable-next-line import/no-default-export export default defineConfig({ base: './', build: { diff --git a/packages/react-workspace/nimble-react/.eslintrc.cjs b/packages/react-workspace/nimble-react/.eslintrc.cjs deleted file mode 100644 index 335e99eeb4..0000000000 --- a/packages/react-workspace/nimble-react/.eslintrc.cjs +++ /dev/null @@ -1,44 +0,0 @@ -module.exports = { - root: true, - ignorePatterns: [ - 'node_modules', - 'dist' - ], - overrides: [ - { - files: ['*.js', '*.cjs'], - extends: ['@ni-private/eslint-config-nimble/javascript'], - rules: { - // Configuration scripts will not be in published package and are allowed to use devDependencies - 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], - } - }, - { - files: ['build/**/*.js'], - rules: { - // Build scripts should give verbose logging - 'no-console': 'off', - // Rollup config files use default exports - 'import/no-default-export': 'off', - }, - }, - { - files: ['*.ts'], - extends: ['@ni-private/eslint-config-nimble/typescript'], - parserOptions: { - project: 'tsconfig.json', - tsconfigRootDir: __dirname - }, - rules: { - // The React components should use PascalCase - '@typescript-eslint/naming-convention': [ - 'error', - { - selector: 'variable', - format: ['camelCase', 'PascalCase'] - }, - ], - } - } - ], -}; diff --git a/packages/react-workspace/nimble-react/eslint.config.mjs b/packages/react-workspace/nimble-react/eslint.config.mjs new file mode 100644 index 0000000000..a16fca345f --- /dev/null +++ b/packages/react-workspace/nimble-react/eslint.config.mjs @@ -0,0 +1,44 @@ +import { defineConfig, globalIgnores } from 'eslint/config'; +import { lintNimbleConfig, javascriptNimbleConfig, typescriptNimbleConfig } from '@ni-private/eslint-config-nimble'; + +export default defineConfig([ + globalIgnores(['**/dist/']), + lintNimbleConfig, + { + files: ['**/*.js', '**/*.cjs'], + extends: javascriptNimbleConfig, + rules: { + // Configuration scripts will not be in published package and are allowed to use devDependencies + 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], + }, + }, + { + files: ['**/build/**/*.js'], + rules: { + // Build scripts should give verbose logging + 'no-console': 'off', + // Rollup config files use default exports + 'import/no-default-export': 'off', + }, + }, + { + files: ['**/*.ts'], + extends: typescriptNimbleConfig, + languageOptions: { + parserOptions: { + project: './tsconfig.json', + tsconfigRootDir: import.meta.dirname, + }, + }, + rules: { + // The React components should use PascalCase + '@typescript-eslint/naming-convention': [ + 'error', + { + selector: 'variable', + format: ['camelCase', 'PascalCase'], + }, + ], + }, + }, +]); diff --git a/packages/react-workspace/ok-react/.eslintrc.cjs b/packages/react-workspace/ok-react/.eslintrc.cjs deleted file mode 100644 index 9cfa73621c..0000000000 --- a/packages/react-workspace/ok-react/.eslintrc.cjs +++ /dev/null @@ -1,35 +0,0 @@ -module.exports = { - root: true, - ignorePatterns: [ - 'node_modules', - 'dist' - ], - overrides: [ - { - files: ['*.js', '*.cjs'], - extends: ['@ni-private/eslint-config-nimble/javascript'], - rules: { - // Configuration scripts will not be in published package and are allowed to use devDependencies - 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], - } - }, - { - files: ['*.ts'], - extends: ['@ni-private/eslint-config-nimble/typescript'], - parserOptions: { - project: 'tsconfig.json', - tsconfigRootDir: __dirname - }, - rules: { - // The React components should use PascalCase - '@typescript-eslint/naming-convention': [ - 'error', - { - selector: 'variable', - format: ['camelCase', 'PascalCase'] - }, - ], - } - } - ], -}; diff --git a/packages/react-workspace/ok-react/eslint.config.mjs b/packages/react-workspace/ok-react/eslint.config.mjs new file mode 100644 index 0000000000..b83cb81ca1 --- /dev/null +++ b/packages/react-workspace/ok-react/eslint.config.mjs @@ -0,0 +1,35 @@ +import { defineConfig, globalIgnores } from 'eslint/config'; +import { lintNimbleConfig, javascriptNimbleConfig, typescriptNimbleConfig } from '@ni-private/eslint-config-nimble'; + +export default defineConfig([ + globalIgnores(['**/dist/']), + lintNimbleConfig, + { + files: ['**/*.js', '**/*.cjs'], + extends: javascriptNimbleConfig, + rules: { + // Configuration scripts will not be in published package and are allowed to use devDependencies + 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], + } + }, + { + files: ['**/*.ts'], + extends: typescriptNimbleConfig, + languageOptions: { + parserOptions: { + project: './tsconfig.json', + tsconfigRootDir: import.meta.dirname + } + }, + rules: { + // The React components should use PascalCase + '@typescript-eslint/naming-convention': [ + 'error', + { + selector: 'variable', + format: ['camelCase', 'PascalCase'] + }, + ], + } + } +]); \ No newline at end of file diff --git a/packages/react-workspace/react-client-app/.eslintrc.cjs b/packages/react-workspace/react-client-app/.eslintrc.cjs deleted file mode 100644 index 6dd6710fb3..0000000000 --- a/packages/react-workspace/react-client-app/.eslintrc.cjs +++ /dev/null @@ -1,58 +0,0 @@ -module.exports = { - root: true, - ignorePatterns: [ - 'node_modules', - 'dist' - ], - overrides: [ - { - files: ['*.js', '*.cjs'], - extends: ['@ni-private/eslint-config-nimble/javascript'], - rules: { - // Configuration scripts will not be in published package and are allowed to use devDependencies - 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], - } - }, - { - files: ['*.ts', '*.tsx'], - extends: [ - '@ni-private/eslint-config-nimble/typescript', - 'plugin:react-hooks/recommended', - ], - plugins: [ - 'react-hooks', - 'react-refresh' - ], - parserOptions: { - project: 'tsconfig.app.json', - tsconfigRootDir: __dirname - }, - rules: { - // The React components should use PascalCase - '@typescript-eslint/naming-convention': [ - 'error', - { - selector: 'variable', - format: ['camelCase', 'PascalCase'] - }, - ], - 'react-refresh/only-export-components': [ - 'error', - { allowConstantExport: true }, - ], - } - }, - { - files: ['vite.config.ts'], - parserOptions: { - project: 'tsconfig.node.json', - tsconfigRootDir: __dirname - }, - rules: { - // Configuration scripts will not be in published package and are allowed to use devDependencies - 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], - 'import/no-default-export': 'off', - } - }, - ], -}; diff --git a/packages/react-workspace/react-client-app/eslint.config.mjs b/packages/react-workspace/react-client-app/eslint.config.mjs new file mode 100644 index 0000000000..857088fc31 --- /dev/null +++ b/packages/react-workspace/react-client-app/eslint.config.mjs @@ -0,0 +1,63 @@ +import reactHooks from 'eslint-plugin-react-hooks'; +import reactRefresh from 'eslint-plugin-react-refresh'; +import { defineConfig, globalIgnores } from 'eslint/config'; +import { lintNimbleConfig, javascriptNimbleConfig, typescriptNimbleConfig } from '@ni-private/eslint-config-nimble'; + +export default defineConfig([ + globalIgnores(['**/dist/']), + lintNimbleConfig, + { + files: ['**/*.js', '**/*.cjs'], + extends: javascriptNimbleConfig, + rules: { + // Configuration scripts will not be in published package and are allowed to use devDependencies + 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], + }, + }, + { + files: ['**/*.ts', '**/*.tsx'], + plugins: { + 'react-refresh': reactRefresh, + 'react-hooks': reactHooks + }, + extends: [ + typescriptNimbleConfig, + reactHooks.configs.flat.recommended, + ], + languageOptions: { + parserOptions: { + project: './tsconfig.app.json', + tsconfigRootDir: import.meta.dirname, + }, + }, + rules: { + // The React components should use PascalCase + '@typescript-eslint/naming-convention': [ + 'error', + { + selector: 'variable', + format: ['camelCase', 'PascalCase'], + }, + ], + 'react-refresh/only-export-components': [ + 'error', + { allowConstantExport: true }, + ], + '@typescript-eslint/strict-boolean-expressions': 'off', + }, + }, + { + files: ['**/vite.config.ts'], + languageOptions: { + parserOptions: { + project: './tsconfig.node.json', + tsconfigRootDir: import.meta.dirname, + }, + }, + rules: { + // Configuration scripts will not be in published package and are allowed to use devDependencies + 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], + 'import/no-default-export': 'off', + }, + } +]); diff --git a/packages/react-workspace/react-client-app/package.json b/packages/react-workspace/react-client-app/package.json index 7e67ea5d1d..4102551253 100644 --- a/packages/react-workspace/react-client-app/package.json +++ b/packages/react-workspace/react-client-app/package.json @@ -8,7 +8,7 @@ "check": "tsc -b", "build": "npm run check && vite build", "lint": "eslint .", - "format": "eslint --fix .", + "format": "eslint . --fix", "preview": "vite preview" }, "dependencies": { diff --git a/packages/react-workspace/spright-react/.eslintrc.cjs b/packages/react-workspace/spright-react/.eslintrc.cjs deleted file mode 100644 index 9cfa73621c..0000000000 --- a/packages/react-workspace/spright-react/.eslintrc.cjs +++ /dev/null @@ -1,35 +0,0 @@ -module.exports = { - root: true, - ignorePatterns: [ - 'node_modules', - 'dist' - ], - overrides: [ - { - files: ['*.js', '*.cjs'], - extends: ['@ni-private/eslint-config-nimble/javascript'], - rules: { - // Configuration scripts will not be in published package and are allowed to use devDependencies - 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], - } - }, - { - files: ['*.ts'], - extends: ['@ni-private/eslint-config-nimble/typescript'], - parserOptions: { - project: 'tsconfig.json', - tsconfigRootDir: __dirname - }, - rules: { - // The React components should use PascalCase - '@typescript-eslint/naming-convention': [ - 'error', - { - selector: 'variable', - format: ['camelCase', 'PascalCase'] - }, - ], - } - } - ], -}; diff --git a/packages/react-workspace/spright-react/eslint.config.mjs b/packages/react-workspace/spright-react/eslint.config.mjs new file mode 100644 index 0000000000..b37973743f --- /dev/null +++ b/packages/react-workspace/spright-react/eslint.config.mjs @@ -0,0 +1,35 @@ +import { defineConfig, globalIgnores } from 'eslint/config'; +import { lintNimbleConfig, javascriptNimbleConfig, typescriptNimbleConfig } from '@ni-private/eslint-config-nimble'; + +export default defineConfig([ + globalIgnores(['**/dist/']), + lintNimbleConfig, + { + files: ['**/*.js', '**/*.cjs'], + extends: javascriptNimbleConfig, + rules: { + // Configuration scripts will not be in published package and are allowed to use devDependencies + 'import/no-extraneous-dependencies': ['error', { devDependencies: true }], + }, + }, + { + files: ['**/*.ts'], + extends: typescriptNimbleConfig, + languageOptions: { + parserOptions: { + project: './tsconfig.json', + tsconfigRootDir: import.meta.dirname, + }, + }, + rules: { + // The React components should use PascalCase + '@typescript-eslint/naming-convention': [ + 'error', + { + selector: 'variable', + format: ['camelCase', 'PascalCase'], + }, + ], + }, + }, +]); diff --git a/packages/site/.eslintrc.js b/packages/site/.eslintrc.js deleted file mode 100644 index 19548e64b7..0000000000 --- a/packages/site/.eslintrc.js +++ /dev/null @@ -1,23 +0,0 @@ -module.exports = { - root: true, - ignorePatterns: [ - 'node_modules', - 'dist', - // Force inclusion of config dot file - '!.eleventy.js', - ], - overrides: [ - { - files: ['*.js'], - extends: ['@ni-private/eslint-config-nimble/javascript'], - }, - { - files: ['*.ts'], - extends: ['@ni-private/eslint-config-nimble/typescript'], - parserOptions: { - project: ['./tsconfig.json'], - tsconfigRootDir: __dirname - }, - } - ] -}; diff --git a/packages/site/eslint.config.mjs b/packages/site/eslint.config.mjs new file mode 100644 index 0000000000..8c9777a2e3 --- /dev/null +++ b/packages/site/eslint.config.mjs @@ -0,0 +1,21 @@ +import { defineConfig, globalIgnores } from 'eslint/config'; +import { lintNimbleConfig, javascriptNimbleConfig, typescriptNimbleConfig } from '@ni-private/eslint-config-nimble'; + +export default defineConfig([ + globalIgnores(['**/dist/']), + lintNimbleConfig, + { + files: ['**/*.js'], + extends: javascriptNimbleConfig, + }, + { + files: ['**/*.ts'], + extends: typescriptNimbleConfig, + languageOptions: { + parserOptions: { + project: ['./tsconfig.json'], + tsconfigRootDir: import.meta.dirname, + }, + }, + }, +]); diff --git a/packages/spright-components/.eslintrc.js b/packages/spright-components/.eslintrc.js deleted file mode 100644 index e7975e347e..0000000000 --- a/packages/spright-components/.eslintrc.js +++ /dev/null @@ -1,21 +0,0 @@ -module.exports = { - root: true, - ignorePatterns: [ - 'node_modules', - 'dist' - ], - overrides: [ - { - files: ['*.js'], - extends: ['@ni-private/eslint-config-nimble/javascript'] - }, - { - files: ['*.ts'], - extends: ['@ni-private/eslint-config-nimble/components'], - parserOptions: { - project: './tsconfig.json', - tsconfigRootDir: __dirname - }, - } - ] -}; diff --git a/packages/spright-components/eslint.config.mjs b/packages/spright-components/eslint.config.mjs new file mode 100644 index 0000000000..0681c69abd --- /dev/null +++ b/packages/spright-components/eslint.config.mjs @@ -0,0 +1,21 @@ +import { defineConfig, globalIgnores } from 'eslint/config'; +import { lintNimbleConfig, componentsNimbleConfig, javascriptNimbleConfig } from '@ni-private/eslint-config-nimble'; + +export default defineConfig([ + globalIgnores(['**/dist/']), + lintNimbleConfig, + { + files: ['**/*.js'], + extends: javascriptNimbleConfig + }, + { + files: ['**/*.ts'], + extends: componentsNimbleConfig, + languageOptions: { + parserOptions: { + project: './tsconfig.json', + tsconfigRootDir: import.meta.dirname + } + } + } +]); diff --git a/packages/spright-components/package.json b/packages/spright-components/package.json index cc353a5dd7..02a08cb787 100644 --- a/packages/spright-components/package.json +++ b/packages/spright-components/package.json @@ -4,12 +4,8 @@ "description": "NI Spright Components", "scripts": { "build": "npm run build-components && npm run bundle-components", - "lint": "npm run eslint && npm run prettier", - "format": "npm run prettier-fix", - "eslint": "eslint .", - "eslint-fix": "eslint . --fix", - "prettier": "prettier-eslint \"**/*.*\" --list-different --prettier-ignore", - "prettier-fix": "prettier-eslint \"**/*.*\" --write --prettier-ignore", + "lint": "eslint .", + "format": "eslint . --fix", "pack": "npm pack", "invoke-publish": "npm publish", "build-components": "tsc -p ./tsconfig.json", @@ -77,8 +73,6 @@ "karma-webkit-launcher": "^2.6.0", "karma-webpack": "^5.0.0", "playwright": "1.54.1", - "prettier-eslint": "^16.3.0", - "prettier-eslint-cli": "^8.0.1", "rollup": "^4.12.0", "rollup-plugin-sourcemaps2": "^0.5.0", "source-map-loader": "^5.0.0", diff --git a/packages/spright-components/src/chat/conversation/types.ts b/packages/spright-components/src/chat/conversation/types.ts index c191383b17..a9ed83aeb2 100644 --- a/packages/spright-components/src/chat/conversation/types.ts +++ b/packages/spright-components/src/chat/conversation/types.ts @@ -7,5 +7,4 @@ export const ChatConversationAppearance = { overlay: 'overlay' } as const; -export type ChatConversationAppearance = - (typeof ChatConversationAppearance)[keyof typeof ChatConversationAppearance]; +export type ChatConversationAppearance = (typeof ChatConversationAppearance)[keyof typeof ChatConversationAppearance]; diff --git a/packages/spright-components/src/chat/message/types.ts b/packages/spright-components/src/chat/message/types.ts index e332d86832..f4f93e0ba8 100644 --- a/packages/spright-components/src/chat/message/types.ts +++ b/packages/spright-components/src/chat/message/types.ts @@ -8,5 +8,4 @@ export const ChatMessageType = { inbound: 'inbound' } as const; -export type ChatMessageType = - (typeof ChatMessageType)[keyof typeof ChatMessageType]; +export type ChatMessageType = (typeof ChatMessageType)[keyof typeof ChatMessageType]; diff --git a/packages/storybook/.eslintrc.cjs b/packages/storybook/.eslintrc.cjs deleted file mode 100644 index a75c8cf55c..0000000000 --- a/packages/storybook/.eslintrc.cjs +++ /dev/null @@ -1,72 +0,0 @@ -module.exports = { - settings: { - // Configure the `eslint-import-resolver-typescript` package to resolve `import/no-unresolved` eslint errors in JS files - // Per https://iifx.dev/en/articles/322441446 - 'import/resolver': { - typescript: {} // this loads /tsconfig.json to eslint - } - }, - root: true, - ignorePatterns: [ - 'node_modules', - 'dist', - // Force inclusion of storybook dot file hidden folder - '!/.storybook', - '/.storybook/blocks/StoryLayout.tsx', - 'src/nimble/icons' - ], - overrides: [ - { - files: ['*.js'], - extends: ['@ni-private/eslint-config-nimble/javascript'], - rules: { - // Storybook tends to rely on default exports in plugins - 'import/no-default-export': 'off', - - // Storybook is not a published package and is allowed to use devDependencies - 'import/no-extraneous-dependencies': [ - 'error', - { devDependencies: true } - ] - } - }, - { - files: ['*.ts', '*.tsx'], - extends: [ - '@ni-private/eslint-config-nimble/components', - 'plugin:storybook/recommended' - ], - parserOptions: { - project: './tsconfig.json', - tsconfigRootDir: __dirname - }, - rules: { - // Storybook tends to rely on default exports in plugins - 'import/no-default-export': 'off', - - // Storybook is not a published package and is allowed to use devDependencies - 'import/no-extraneous-dependencies': [ - 'error', - { devDependencies: true } - ], - - // Disables a rule from storybook recommended we have not followed - // No reason we couldn't other than low ROI - 'storybook/prefer-pascal-case': 'off' - } - }, - { - files: ['build/**/*.js'], - rules: { - // Build scripts should give verbose logging - 'no-console': 'off' - } - }, - { - files: ['.storybook/*.js'], - env: { - browser: true - } - } - ] -}; diff --git a/packages/storybook/eslint.config.mjs b/packages/storybook/eslint.config.mjs new file mode 100644 index 0000000000..b6d63f8a86 --- /dev/null +++ b/packages/storybook/eslint.config.mjs @@ -0,0 +1,73 @@ +import { defineConfig, globalIgnores } from 'eslint/config'; +import { importNodeEsmConfig } from '@ni/eslint-config-javascript'; +import { lintNimbleConfig, componentsNimbleConfig, javascriptNimbleConfig } from '@ni-private/eslint-config-nimble'; +import globals from 'globals'; +import storybook from 'eslint-plugin-storybook'; + +export default defineConfig([ + globalIgnores([ + '**/dist/', + '**/.storybook/blocks/StoryLayout.tsx', + ]), + lintNimbleConfig, + { + files: ['**/*.js'], + extends: javascriptNimbleConfig, + }, + { + files: ['**/*.ts', '**/*.tsx'], + extends: [ + componentsNimbleConfig, + storybook.configs['flat/recommended'] + ], + languageOptions: { + parserOptions: { + project: './tsconfig.json', + tsConfigRootDir: import.meta.dirname + } + }, + rules: { + // Storybook tends to rely on default exports in plugins + 'import/no-default-export': 'off', + + // Storybook is not a published package and is allowed to use devDependencies + 'import/no-extraneous-dependencies': [ + 'error', + { devDependencies: true } + ], + + // Disables a rule from storybook recommended we have not followed + // No reason we couldn't other than low ROI + 'storybook/prefer-pascal-case': 'off', + '@typescript-eslint/no-unnecessary-boolean-literal-compare': 'off', + '@typescript-eslint/no-unnecessary-condition': 'off', + '@typescript-eslint/strict-boolean-expressions': 'off' + } + }, + { + files: ['**/build/**/*.js'], + rules: { + // Build scripts should give verbose logging + 'no-console': 'off' + } + }, + { + files: ['**/.storybook/**/*.js'], + extends: importNodeEsmConfig, + languageOptions: { + globals: { + ...globals.browser + } + }, + rules: { + // Storybook tends to rely on default exports in plugins + 'import/no-default-export': 'off', + + // Storybook is not a published package and is allowed to use devDependencies + 'import/no-extraneous-dependencies': [ + 'error', + { devDependencies: true } + ] + } + }, +]); diff --git a/packages/storybook/package.json b/packages/storybook/package.json index a892e13199..babf584d25 100644 --- a/packages/storybook/package.json +++ b/packages/storybook/package.json @@ -7,12 +7,8 @@ "scripts": { "build": "storybook build -o dist/storybook --webpack-stats-json", "start": "storybook dev --quiet -p 6006", - "lint": "npm run eslint && npm run prettier", - "format": "npm run prettier-fix", - "eslint": "eslint .", - "eslint-fix": "eslint . --fix", - "prettier": "prettier-eslint \"**/*.*\" --list-different --prettier-ignore", - "prettier-fix": "prettier-eslint \"**/*.*\" --write --prettier-ignore" + "lint": "eslint .", + "format": "eslint . --fix" }, "devDependencies": { "@chromatic-com/storybook": "^4.1.3", @@ -34,8 +30,6 @@ "@storybook/cli": "^10.1.0", "@storybook/html-vite": "^10.1.0", "js-beautify": "^1.15.1", - "prettier-eslint": "^16.3.0", - "prettier-eslint-cli": "^8.0.1", "react-syntax-highlighter": "^16.1.0", "remark-gfm": "^4.0.0", "rollup": "^4.12.0", @@ -49,6 +43,7 @@ "apache-arrow": "21.1.0", "eslint-import-resolver-typescript": "^4.4.4", "eslint-plugin-storybook": "^10.1.0", - "flatbuffers": "25.2.10" + "flatbuffers": "25.2.10", + "globals": "^14.0.0" } } diff --git a/packages/storybook/src/docs/types.ts b/packages/storybook/src/docs/types.ts index c1ff0eb19c..3480f1f6da 100644 --- a/packages/storybook/src/docs/types.ts +++ b/packages/storybook/src/docs/types.ts @@ -3,5 +3,4 @@ export const ComponentFrameworkStatus = { incubating: 'incubating', doesNotExist: 'does_not_exist' } as const; -export type ComponentFrameworkStatus = - (typeof ComponentFrameworkStatus)[keyof typeof ComponentFrameworkStatus]; +export type ComponentFrameworkStatus = (typeof ComponentFrameworkStatus)[keyof typeof ComponentFrameworkStatus]; diff --git a/packages/storybook/src/nimble/breadcrumb/types.ts b/packages/storybook/src/nimble/breadcrumb/types.ts index ac1d2d4280..f3433c0442 100644 --- a/packages/storybook/src/nimble/breadcrumb/types.ts +++ b/packages/storybook/src/nimble/breadcrumb/types.ts @@ -3,5 +3,4 @@ export const ExampleBreadcrumbItemsType = { many: 'many', wide: 'wide' } as const; -export type ExampleBreadcrumbItemsType = - (typeof ExampleBreadcrumbItemsType)[keyof typeof ExampleBreadcrumbItemsType]; +export type ExampleBreadcrumbItemsType = (typeof ExampleBreadcrumbItemsType)[keyof typeof ExampleBreadcrumbItemsType]; diff --git a/packages/storybook/src/nimble/combobox/combobox-opened-matrix.stories.ts b/packages/storybook/src/nimble/combobox/combobox-opened-matrix.stories.ts index cfb7646400..650cab21de 100644 --- a/packages/storybook/src/nimble/combobox/combobox-opened-matrix.stories.ts +++ b/packages/storybook/src/nimble/combobox/combobox-opened-matrix.stories.ts @@ -17,6 +17,7 @@ const metadata: Meta = { export default metadata; +// eslint-disable-next-line @typescript-eslint/no-unused-vars const positionStates = Object.values(DropdownPosition); type PositionState = (typeof positionStates)[number]; diff --git a/packages/storybook/src/nimble/dialog/types.ts b/packages/storybook/src/nimble/dialog/types.ts index 853f20fec3..6dccd3adc6 100644 --- a/packages/storybook/src/nimble/dialog/types.ts +++ b/packages/storybook/src/nimble/dialog/types.ts @@ -2,19 +2,16 @@ export const ExampleContentType = { shortContent: 'ShortContent', longContent: 'LongContent' } as const; -export type ExampleContentType = - (typeof ExampleContentType)[keyof typeof ExampleContentType]; +export type ExampleContentType = (typeof ExampleContentType)[keyof typeof ExampleContentType]; export const ExampleFooterContentType = { text: 'text', buttons: 'buttons' } as const; -export type ExampleFooterContentType = - (typeof ExampleFooterContentType)[keyof typeof ExampleFooterContentType]; +export type ExampleFooterContentType = (typeof ExampleFooterContentType)[keyof typeof ExampleFooterContentType]; export const DialogSizeOptions = { smallGrowable: 'Small growable', largeFixed: 'Large growable' } as const; -export type DialogSizeOptions = - (typeof DialogSizeOptions)[keyof typeof DialogSizeOptions]; +export type DialogSizeOptions = (typeof DialogSizeOptions)[keyof typeof DialogSizeOptions]; diff --git a/packages/storybook/src/nimble/patterns/tabs/types.ts b/packages/storybook/src/nimble/patterns/tabs/types.ts index 52261e472a..55effb2caa 100644 --- a/packages/storybook/src/nimble/patterns/tabs/types.ts +++ b/packages/storybook/src/nimble/patterns/tabs/types.ts @@ -4,5 +4,4 @@ export const ExampleTabsType = { manyTabs: 'ManyTabs', wideTabs: 'WideTabs' } as const; -export type ExampleTabsType = - (typeof ExampleTabsType)[keyof typeof ExampleTabsType]; +export type ExampleTabsType = (typeof ExampleTabsType)[keyof typeof ExampleTabsType]; diff --git a/packages/storybook/src/nimble/rich-text/editor/rich-text-editor.stories.ts b/packages/storybook/src/nimble/rich-text/editor/rich-text-editor.stories.ts index 68f5a97832..c3b59af95e 100644 --- a/packages/storybook/src/nimble/rich-text/editor/rich-text-editor.stories.ts +++ b/packages/storybook/src/nimble/rich-text/editor/rich-text-editor.stories.ts @@ -27,7 +27,6 @@ import { validityDescription } from '../../../utilities/storybook'; -// eslint-disable-next-line @typescript-eslint/no-empty-interface interface RichTextEditorArgs extends LabelUserArgs { data: ExampleDataType; mentionData: MentionDataType; diff --git a/packages/storybook/src/nimble/select/select-opened-matrix.stories.ts b/packages/storybook/src/nimble/select/select-opened-matrix.stories.ts index 0ca3178ee1..b3ad798987 100644 --- a/packages/storybook/src/nimble/select/select-opened-matrix.stories.ts +++ b/packages/storybook/src/nimble/select/select-opened-matrix.stories.ts @@ -19,6 +19,7 @@ const metadata: Meta = { export default metadata; +/* eslint-disable @typescript-eslint/no-unused-vars */ const positionStates = Object.values(DropdownPosition); type PositionState = (typeof positionStates)[number]; @@ -36,6 +37,7 @@ type GroupedState = (typeof groupedStates)[number]; const optionsOutsideGroupStates = [false, true] as const; type OptionsOutsideGroupState = (typeof optionsOutsideGroupStates)[number]; +/* eslint-enable @typescript-eslint/no-unused-vars */ interface SelectMatrixStoryOptions { positionState: PositionState; diff --git a/packages/storybook/src/nimble/select/types.ts b/packages/storybook/src/nimble/select/types.ts index 3c0b1e9310..97167d422a 100644 --- a/packages/storybook/src/nimble/select/types.ts +++ b/packages/storybook/src/nimble/select/types.ts @@ -5,5 +5,4 @@ export const ExampleOptionsType = { manyOptions: 'ManyOptions', groupedOptions: 'GroupedOptions' } as const; -export type ExampleOptionsType = - (typeof ExampleOptionsType)[keyof typeof ExampleOptionsType]; +export type ExampleOptionsType = (typeof ExampleOptionsType)[keyof typeof ExampleOptionsType]; diff --git a/packages/storybook/src/nimble/table-column/base/table-column-stories-utils.ts b/packages/storybook/src/nimble/table-column/base/table-column-stories-utils.ts index bcc9e4fec1..ac8df93d48 100644 --- a/packages/storybook/src/nimble/table-column/base/table-column-stories-utils.ts +++ b/packages/storybook/src/nimble/table-column/base/table-column-stories-utils.ts @@ -31,10 +31,10 @@ export const sharedTableArgTypes = { export const sharedTableArgs = ( data: readonly TableRecord[] ): { - selectionMode: keyof typeof TableRowSelectionMode, - tableRef: undefined, - updateData: (x: SharedTableArgs) => void - } => { + selectionMode: keyof typeof TableRowSelectionMode, + tableRef: undefined, + updateData: (x: SharedTableArgs) => void +} => { return { selectionMode: 'none', tableRef: undefined, diff --git a/packages/storybook/src/nimble/table/table-matrix.stories.ts b/packages/storybook/src/nimble/table/table-matrix.stories.ts index 7abd216d3c..a8cb8d26ed 100644 --- a/packages/storybook/src/nimble/table/table-matrix.stories.ts +++ b/packages/storybook/src/nimble/table/table-matrix.stories.ts @@ -83,6 +83,7 @@ const data = [ } ] as const; +// eslint-disable-next-line @typescript-eslint/no-unused-vars const selectionModeStates = Object.values(TableRowSelectionMode); type SelectionModeState = (typeof selectionModeStates)[number]; diff --git a/packages/storybook/src/utilities/matrix.ts b/packages/storybook/src/utilities/matrix.ts index 73d7b8803d..4ed55f4b1c 100644 --- a/packages/storybook/src/utilities/matrix.ts +++ b/packages/storybook/src/utilities/matrix.ts @@ -42,11 +42,6 @@ export function cartesianProduct( ): void => { if (currentDimensions && currentDimensions.length >= 1) { const [currentDimensionOrUndefined, ...remainingDimensions] = currentDimensions; - - // TypeScript and ESLint disagree about whether this can be null or undefined. - // This was the only type strangeness noticed after the storybook build was changed - // to rely on component source directly so the workaround was allowed. - // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion const currentDimension = currentDimensionOrUndefined!; for (const currentState of currentDimension) { recurseDimensions(remainingDimensions, ...states, currentState); diff --git a/packages/storybook/src/utilities/states.ts b/packages/storybook/src/utilities/states.ts index 6662dba7cd..ddf8f50d79 100644 --- a/packages/storybook/src/utilities/states.ts +++ b/packages/storybook/src/utilities/states.ts @@ -90,11 +90,9 @@ export const manipulationState = { export const manipulationDisabledAbsentStates = manipulationStates.filter( (state: (typeof manipulationStates)[number]) => state[2] === false ); -export type ManipulationDisabledAbsentState = - (typeof manipulationDisabledAbsentStates)[number]; +export type ManipulationDisabledAbsentState = (typeof manipulationDisabledAbsentStates)[number]; export const manipulationReadOnlyAbsentStates = manipulationStates.filter( (state: (typeof manipulationStates)[number]) => state[1] === false ); -export type ManipulationReadOnlyAbsentState = - (typeof manipulationReadOnlyAbsentStates)[number]; +export type ManipulationReadOnlyAbsentState = (typeof manipulationReadOnlyAbsentStates)[number]; diff --git a/packages/xliff-to-json-converter/.eslintrc.js b/packages/xliff-to-json-converter/.eslintrc.js deleted file mode 100644 index ea90de3163..0000000000 --- a/packages/xliff-to-json-converter/.eslintrc.js +++ /dev/null @@ -1,25 +0,0 @@ -module.exports = { - root: true, - ignorePatterns: [ - 'node_modules', - 'dist' - ], - overrides: [ - { - files: ['*.js'], - extends: ['@ni-private/eslint-config-nimble/javascript'] - }, - { - files: ['*.ts'], - extends: ['@ni-private/eslint-config-nimble/typescript'], - parserOptions: { - project: 'tsconfig.json', - tsconfigRootDir: __dirname - }, - rules: { - // This is a command line app so printing to console to show progress is desirable - 'no-console': 'off', - }, - } - ] -}; diff --git a/packages/xliff-to-json-converter/eslint.config.mjs b/packages/xliff-to-json-converter/eslint.config.mjs new file mode 100644 index 0000000000..cc0ff99e24 --- /dev/null +++ b/packages/xliff-to-json-converter/eslint.config.mjs @@ -0,0 +1,25 @@ +import { defineConfig, globalIgnores } from 'eslint/config'; +import { lintNimbleConfig, javascriptNimbleConfig, typescriptNimbleConfig } from '@ni-private/eslint-config-nimble'; + +export default defineConfig([ + globalIgnores(['**/dist/']), + lintNimbleConfig, + { + files: ['**/*.js'], + extends: javascriptNimbleConfig, + }, + { + files: ['**/*.ts'], + extends: typescriptNimbleConfig, + languageOptions: { + parserOptions: { + project: './tsconfig.json', + tsconfigRootDir: import.meta.dirname, + }, + }, + rules: { + // This is a command line app so printing to console to show progress is desirable + 'no-console': 'off', + }, + } +]); diff --git a/packages/xliff-to-json-converter/src/xliff.d.ts b/packages/xliff-to-json-converter/src/xliff.d.ts index 46c044b6cf..d91551a5d4 100644 --- a/packages/xliff-to-json-converter/src/xliff.d.ts +++ b/packages/xliff-to-json-converter/src/xliff.d.ts @@ -6,7 +6,6 @@ declare module 'xliff' { // eslint-disable-next-line @typescript-eslint/naming-convention readonly Standalone: { readonly id: string, - // eslint-disable-next-line @typescript-eslint/naming-convention readonly 'equiv-text': string }; }