From fc903867f449c2ac05015439e61444d440c2e19e Mon Sep 17 00:00:00 2001 From: gokulprasanth-ni <131153319+gokulprasanth-ni@users.noreply.github.com> Date: Fri, 28 Nov 2025 17:44:13 +0530 Subject: [PATCH 01/19] update nimble eslint to flat config format Signed-off-by: gokulprasanth-ni <131153319+gokulprasanth-ni@users.noreply.github.com> --- package-lock.json | 1966 ++++++----------- packages/angular-workspace/.eslintrc.js | 131 -- packages/angular-workspace/angular.json | 56 +- packages/angular-workspace/eslint.config.js | 140 ++ .../example-client-app/.eslintrc.js | 35 - .../example-client-app/eslint.config.js | 43 + .../nimble-angular/.eslintrc.js | 27 - .../nimble-angular/eslint.config.js | 27 + .../nimble-label-provider-table.directive.ts | 1 - .../dialog/nimble-dialog.directive.ts | 1 - .../drawer/nimble-drawer.directive.ts | 1 - .../src/testing/async-helpers.ts | 1 - .../angular-workspace/ok-angular/.eslintrc.js | 15 - .../ok-angular/eslint.config.js | 15 + packages/angular-workspace/package.json | 3 +- .../spright-angular/.eslintrc.js | 15 - .../spright-angular/eslint.config.js | 15 + packages/blazor-workspace/.eslintrc.js | 39 - packages/blazor-workspace/eslint.config.js | 43 + packages/blazor-workspace/package.json | 81 +- packages/eslint-config-nimble/.eslintrc.js | 12 - packages/eslint-config-nimble/components.js | 230 +- .../eslint-config-nimble/eslint.config.js | 12 + packages/eslint-config-nimble/javascript.js | 49 +- packages/eslint-config-nimble/package.json | 81 +- packages/eslint-config-nimble/typescript.js | 129 +- packages/jasmine-extensions/.eslintrc.cjs | 25 - packages/jasmine-extensions/eslint.config.cjs | 28 + packages/jasmine-parameterized/.eslintrc.cjs | 25 - .../jasmine-parameterized/eslint.config.cjs | 26 + packages/nimble-components/.eslintrc.js | 32 - packages/nimble-components/.prettierrc.json | 3 +- .../build/generate-workers/.eslintrc.js | 11 - .../source/matrix-renderer.ts | 61 +- packages/nimble-components/eslint.config.js | 47 + packages/nimble-components/package.json | 8 +- .../src/anchor-button/index.ts | 3 +- .../tests/anchor-menu-item.spec.ts | 8 +- .../src/anchor-tabs/index.ts | 14 +- .../src/anchor-tabs/tests/anchor-tabs.spec.ts | 6 +- .../tests/anchor-tree-item.spec.ts | 4 +- .../src/anchor/tests/anchor.spec.ts | 3 +- .../breadcrumb/breadcrumb.foundation.spec.ts | 9 +- .../nimble-components/src/breadcrumb/index.ts | 3 +- .../testing/breadcrumb.pageobject.ts | 26 +- .../src/breadcrumb/tests/breadcrumb.spec.ts | 6 +- .../nimble-components/src/button/index.ts | 3 +- .../button/tests/button.foundation.spec.ts | 8 +- .../tests/checkbox.foundation.spec.ts | 8 +- .../src/chip/tests/chip.spec.ts | 3 +- .../nimble-components/src/combobox/index.ts | 40 +- .../combobox/testing/combobox.pageobject.ts | 7 +- .../tests/combobox.foundation.spec.ts | 25 +- .../src/combobox/tests/combobox.spec.ts | 6 +- .../nimble-components/src/drawer/index.ts | 3 +- .../src/icon-base/tests/icons.spec.ts | 3 +- .../src/label-provider/base/index.ts | 10 +- .../base/tests/label-name-utils.ts | 3 +- .../base/tests/label-provider-base.spec.ts | 17 +- .../src/label-provider/core/index.ts | 3 +- .../core/tests/label-provider-core.spec.ts | 7 +- .../src/label-provider/rich-text/index.ts | 3 +- .../tests/label-provider-rich-text.spec.ts | 7 +- .../src/label-provider/table/index.ts | 3 +- .../src/label-provider/table/label-tokens.ts | 9 +- .../table/tests/label-provider-table.spec.ts | 7 +- .../src/list-option-group/index.ts | 14 +- .../tests/list-option-group.spec.ts | 24 +- .../tests/list-option.foundation.spec.ts | 6 +- .../src/list-option/tests/list-option.spec.ts | 6 +- .../src/menu-button/index.ts | 4 +- .../src/menu-button/tests/menu-button.spec.ts | 9 +- .../src/menu/menu.foundation.ts | 62 +- .../src/menu/tests/menu.foundation.spec.ts | 20 +- .../src/number-field/index.ts | 14 +- .../specs/localized-decimal-separator-hld.md | 2 +- .../tests/number-field.foundation.spec.ts | 11 +- .../error/testing/error-pattern.pageobject.ts | 4 +- .../error/tests/error-pattern-mixin.spec.ts | 6 +- .../required-visible-pattern-mixin.spec.ts | 4 +- .../src/patterns/required-visible/types.ts | 3 +- .../tests/radio-group.foundation.spec.ts | 23 +- .../src/rich-text-mention/base/index.ts | 20 +- .../base/models/mention-validator.ts | 25 +- .../src/rich-text-mention/users/view/index.ts | 3 +- .../src/rich-text/base/index.ts | 4 +- .../src/rich-text/editor/index.ts | 59 +- .../editor/models/create-tiptap-editor.ts | 29 +- .../testing/rich-text-editor.pageobject.ts | 24 +- .../tests/rich-text-editor-mention.spec.ts | 70 +- .../editor/tests/rich-text-editor.spec.ts | 10 +- .../src/rich-text/mention-listbox/index.ts | 25 +- .../src/rich-text/models/configuration.ts | 13 +- .../rich-text/models/editor-configuration.ts | 9 +- .../src/rich-text/models/markdown-parser.ts | 13 +- .../rich-text/models/markdown-serializer.ts | 3 +- .../rich-text/models/rich-text-validator.ts | 3 +- .../models/tests/markdown-parser.spec.ts | 114 +- .../viewer/tests/rich-text-viewer.spec.ts | 53 +- .../nimble-components/src/select/index.ts | 103 +- .../src/select/testing/select.pageobject.ts | 30 +- .../select/tests/select.foundation.spec.ts | 31 +- .../tests/select.pageobject.internal.ts | 7 +- .../src/select/tests/select.spec.ts | 28 +- .../table-column/anchor/cell-view/index.ts | 7 +- .../src/table-column/anchor/index.ts | 6 +- .../anchor/tests/table-column-anchor.spec.ts | 18 +- .../src/table-column/base/cell-view/index.ts | 9 +- .../base/group-header-view/index.ts | 9 +- .../base/models/column-internals.ts | 9 +- .../base/tests/table-column.fixtures.ts | 9 +- .../src/table-column/base/types.ts | 26 +- .../table-column/date-text/cell-view/index.ts | 3 +- .../date-text/group-header-view/index.ts | 14 +- .../tests/table-column-date-text.spec.ts | 30 +- .../duration-text/cell-view/index.ts | 6 +- .../duration-text/group-header-view/index.ts | 14 +- .../models/duration-formatter.ts | 6 +- .../src/table-column/enum-base/index.ts | 9 +- .../table-column-enum-base-validator.ts | 7 +- .../table-column/mapping/cell-view/index.ts | 6 +- .../mapping/group-header-view/index.ts | 6 +- .../src/table-column/mapping/index.ts | 6 +- .../models/table-column-mapping-validator.ts | 8 +- .../table-column-mapping.pageobject.ts | 16 +- .../tests/table-column-mapping.spec.ts | 26 +- .../menu-button/cell-view/index.ts | 6 +- .../src/table-column/menu-button/index.ts | 7 +- .../table-column-menu-button.pageobject.ts | 3 +- .../tests/table-column-menu-button.spec.ts | 51 +- .../table-column/mixins/custom-sort-order.ts | 7 +- .../mixins/fractional-width-column.ts | 6 +- .../table-column/mixins/sortable-column.ts | 12 +- .../mixins/tests/custom-sort-order.spec.ts | 8 +- .../number-text/cell-view/index.ts | 9 +- .../number-text/group-header-view/index.ts | 17 +- .../src/table-column/number-text/index.ts | 6 +- .../models/number-text-unit-format.ts | 17 +- .../table-column-number-text-validator.ts | 21 +- .../tests/table-column-number-text.spec.ts | 6 +- .../table-column/text-base/cell-view/index.ts | 8 +- ...column-text-base-group-header-view.spec.ts | 6 +- .../text-base/group-header-view/index.ts | 20 +- .../src/table-column/text/cell-view/index.ts | 7 +- .../text/group-header-view/index.ts | 10 +- .../src/table-column/text/index.ts | 6 +- .../text/tests/table-column-text.spec.ts | 12 +- .../cell/tests/table-cell.pageobject.ts | 3 +- .../src/table/components/group-row/index.ts | 11 +- .../src/table/components/header/index.ts | 7 +- .../src/table/components/row/index.ts | 8 +- .../components/row/tests/table-row.spec.ts | 15 +- packages/nimble-components/src/table/index.ts | 221 +- .../table/models/data-hierarchy-manager.ts | 4 +- .../src/table/models/expansion-manager.ts | 20 +- .../models/interactive-selection-manager.ts | 3 +- .../models/keyboard-navigation-manager.ts | 203 +- .../multi-selection-manager.ts | 7 +- .../selection-manager-base.ts | 8 +- .../src/table/models/table-layout-manager.ts | 104 +- .../src/table/models/table-update-tracker.ts | 28 +- .../src/table/models/table-validator.ts | 21 +- .../table/models/tests/array-to-tree.spec.ts | 56 +- .../src/table/models/virtualizer.ts | 6 +- .../table-column-formatted-text.md | 2 +- .../src/table/testing/table.pageobject.ts | 131 +- .../src/table/tests/table-action-menu.spec.ts | 4 +- .../table/tests/table-column-sizing.spec.ts | 117 +- .../tests/table-keyboard-navigation.spec.ts | 132 +- .../src/table/tests/table-labels.spec.ts | 6 +- .../src/table/tests/table-selection.spec.ts | 275 ++- .../src/table/tests/table-sorting.spec.ts | 57 +- .../src/table/tests/table.spec.ts | 81 +- packages/nimble-components/src/table/types.ts | 4 +- packages/nimble-components/src/tabs/index.ts | 3 +- .../src/tabs/tests/tabs.spec.ts | 6 +- .../src/testing/async-helpers.ts | 3 +- .../nimble-components/src/text-area/index.ts | 6 +- .../tests/text-area.foundation.spec.ts | 8 +- .../src/text-area/tests/text-area.spec.ts | 6 +- .../tests/text-field.foundation.spec.ts | 41 +- .../src/theme-provider/design-token-names.ts | 19 +- .../src/theme-provider/index.ts | 4 +- .../tests/theme-provider.spec.ts | 3 +- .../src/tree-view/tests/tree.spec.ts | 28 +- .../src/utilities/directive/overflow.ts | 3 +- .../utilities/models/document-element-lang.ts | 4 +- .../src/utilities/style/display.ts | 3 +- ...multivalue-property-stylesheet-behavior.ts | 3 +- ...value-property-stylesheet-behavior.spec.ts | 38 +- .../src/utilities/style/tests/theme.spec.ts | 54 +- .../src/utilities/style/theme.ts | 5 +- .../utilities/tests/intersection-observer.ts | 4 +- .../unit-format/decimal-unit-format.ts | 3 +- .../unit-format/default-unit-format.ts | 44 +- .../intl-number-format-scaled-unit-format.ts | 9 +- .../manually-translated-scaled-unit-format.ts | 22 +- .../scaled-unit-format/scaled-unit-format.ts | 3 +- ...ally-translated-scaled-unit-format.spec.ts | 71 +- .../tests/test-scaled-unit-format.ts | 9 +- .../unit-scale/byte-1024-unit-scale.ts | 15 +- .../unit-format/unit-scale/byte-unit-scale.ts | 17 +- .../unit-scale/celsius-unit-scale.ts | 17 +- .../unit-scale/fahrenheit-unit-scale.ts | 17 +- .../unit-format/unit-scale/unit-scale.ts | 11 +- .../unit-format/unit-scale/volt-unit-scale.ts | 15 +- .../wafer-map/experimental/computations.ts | 28 +- .../wafer-map/experimental/hover-handler.ts | 34 +- .../wafer-map/experimental/worker-renderer.ts | 54 +- .../nimble-components/src/wafer-map/index.ts | 31 +- .../src/wafer-map/modules/computations.ts | 44 +- .../modules/create-matrix-renderer.ts | 4 +- .../src/wafer-map/modules/hover-handler.ts | 21 +- .../src/wafer-map/modules/prerendering.ts | 4 +- .../src/wafer-map/modules/rendering.ts | 29 +- .../modules/wafer-map-update-tracker.ts | 104 +- .../wafer-map/modules/wafer-map-validator.ts | 38 +- .../src/wafer-map/modules/zoom-handler.ts | 4 +- .../src/wafer-map/tests/data-generator.ts | 16 +- .../src/wafer-map/tests/data-manager.spec.ts | 35 +- .../tests/prerendering.coloring.spec.ts | 3 +- .../tests/prerendering.labeling.spec.ts | 4 +- .../nimble-components/src/wafer-map/types.ts | 6 +- packages/nimble-tokens/.eslintrc.cjs | 43 - packages/nimble-tokens/build/.eslintrc.cjs | 9 - packages/nimble-tokens/eslint.config.cjs | 52 + packages/ok-components/.eslintrc.js | 21 - packages/ok-components/.prettierrc.json | 3 +- packages/ok-components/eslint.config.js | 23 + packages/ok-components/package.json | 8 +- .../src/utilities/style/display.ts | 3 +- packages/performance/.eslintrc.cjs | 28 - packages/performance/eslint.config.cjs | 31 + .../nimble-react/.eslintrc.cjs | 44 - .../nimble-react/eslint.config.js | 46 + .../react-workspace/ok-react/.eslintrc.cjs | 35 - .../react-workspace/ok-react/eslint.config.js | 39 + .../react-client-app/.eslintrc.cjs | 58 - .../react-client-app/eslint.config.cjs | 72 + .../spright-react/.eslintrc.cjs | 35 - .../spright-react/eslint.config.js | 37 + packages/site/.eslintrc.js | 23 - packages/site/eslint.config.js | 27 + packages/spright-components/.eslintrc.js | 21 - packages/spright-components/.prettierrc.json | 3 +- packages/spright-components/eslint.config.js | 29 + packages/spright-components/package.json | 8 +- .../input/testing/chat-input.pageobject.ts | 7 +- .../src/utilities/style/display.ts | 3 +- packages/storybook/.eslintrc.js | 72 - packages/storybook/.prettierrc.json | 3 +- packages/storybook/eslint.config.js | 86 + packages/storybook/package.json | 11 +- .../src/docs/component-status.stories.ts | 21 +- .../combobox/combobox-matrix.stories.ts | 276 +-- .../src/nimble/dialog/dialog.stories.ts | 10 +- .../src/nimble/drawer/drawer.stories.ts | 3 +- .../label-provider/base/label-name-utils.ts | 3 +- .../number-field-matrix.stories.ts | 38 +- .../src/nimble/patterns/anchor/anchor-docs.ts | 4 +- .../src/nimble/patterns/button/doc-strings.ts | 17 +- .../nimble/radio-group/radio-group.stories.ts | 3 +- .../editor/rich-text-editor-matrix.stories.ts | 30 +- .../editor/rich-text-editor.stories.ts | 6 +- .../nimble/select/select-matrix.stories.ts | 600 ++--- .../select/select-opened-matrix.stories.ts | 499 +++-- .../src/nimble/spinner/spinner.stories.ts | 24 +- .../base/table-column-stories-utils.ts | 11 +- .../table-column/base/table-column.stories.ts | 27 +- .../text-field/text-field-matrix.stories.ts | 1390 ++++++------ .../nimble/text-field/text-field.stories.ts | 3 +- .../src/nimble/theme-provider/template.ts | 3 +- .../chat-conversation-matrix.stories.ts | 3 +- .../chat/conversation/story-helpers.ts | 3 +- .../chat/message/chat-message.stories.ts | 3 +- .../storybook/src/utilities/isChromatic.ts | 9 +- .../storybook/src/utilities/lorem-ipsum.ts | 3 +- packages/storybook/src/utilities/matrix.ts | 48 +- .../utilities/rich-text-markdown-string.ts | 3 +- packages/storybook/src/utilities/storybook.ts | 99 +- packages/xliff-to-json-converter/.eslintrc.js | 25 - .../xliff-to-json-converter/eslint.config.js | 27 + .../xliff-to-json-converter/src/xliff.d.ts | 1 - 283 files changed, 6019 insertions(+), 5614 deletions(-) delete mode 100644 packages/angular-workspace/.eslintrc.js create mode 100644 packages/angular-workspace/eslint.config.js delete mode 100644 packages/angular-workspace/example-client-app/.eslintrc.js create mode 100644 packages/angular-workspace/example-client-app/eslint.config.js delete mode 100644 packages/angular-workspace/nimble-angular/.eslintrc.js create mode 100644 packages/angular-workspace/nimble-angular/eslint.config.js delete mode 100644 packages/angular-workspace/ok-angular/.eslintrc.js create mode 100644 packages/angular-workspace/ok-angular/eslint.config.js delete mode 100644 packages/angular-workspace/spright-angular/.eslintrc.js create mode 100644 packages/angular-workspace/spright-angular/eslint.config.js delete mode 100644 packages/blazor-workspace/.eslintrc.js create mode 100644 packages/blazor-workspace/eslint.config.js delete mode 100644 packages/eslint-config-nimble/.eslintrc.js create mode 100644 packages/eslint-config-nimble/eslint.config.js delete mode 100644 packages/jasmine-extensions/.eslintrc.cjs create mode 100644 packages/jasmine-extensions/eslint.config.cjs delete mode 100644 packages/jasmine-parameterized/.eslintrc.cjs create mode 100644 packages/jasmine-parameterized/eslint.config.cjs delete mode 100644 packages/nimble-components/.eslintrc.js delete mode 100644 packages/nimble-components/build/generate-workers/.eslintrc.js create mode 100644 packages/nimble-components/eslint.config.js delete mode 100644 packages/nimble-tokens/.eslintrc.cjs delete mode 100644 packages/nimble-tokens/build/.eslintrc.cjs create mode 100644 packages/nimble-tokens/eslint.config.cjs delete mode 100644 packages/ok-components/.eslintrc.js create mode 100644 packages/ok-components/eslint.config.js delete mode 100644 packages/performance/.eslintrc.cjs create mode 100644 packages/performance/eslint.config.cjs delete mode 100644 packages/react-workspace/nimble-react/.eslintrc.cjs create mode 100644 packages/react-workspace/nimble-react/eslint.config.js delete mode 100644 packages/react-workspace/ok-react/.eslintrc.cjs create mode 100644 packages/react-workspace/ok-react/eslint.config.js delete mode 100644 packages/react-workspace/react-client-app/.eslintrc.cjs create mode 100644 packages/react-workspace/react-client-app/eslint.config.cjs delete mode 100644 packages/react-workspace/spright-react/.eslintrc.cjs create mode 100644 packages/react-workspace/spright-react/eslint.config.js delete mode 100644 packages/site/.eslintrc.js create mode 100644 packages/site/eslint.config.js delete mode 100644 packages/spright-components/.eslintrc.js create mode 100644 packages/spright-components/eslint.config.js delete mode 100644 packages/storybook/.eslintrc.js create mode 100644 packages/storybook/eslint.config.js delete mode 100644 packages/xliff-to-json-converter/.eslintrc.js create mode 100644 packages/xliff-to-json-converter/eslint.config.js diff --git a/package-lock.json b/package-lock.json index cd68ab1629..424af44de7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -437,7 +437,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", @@ -812,7 +811,8 @@ "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", @@ -857,6 +857,7 @@ "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", @@ -873,6 +874,7 @@ "integrity": "sha512-InwqeHHN2XpumIkMvpl/DCJVrAHgCsG5+cn1XlnLWGwtZBm8QJfSusItfrwx81CTp5agNZqpKU2J/ccC5nGT4A==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 4" } @@ -883,6 +885,7 @@ "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", "dev": true, "license": "ISC", + "peer": true, "bin": { "semver": "bin/semver.js" }, @@ -912,6 +915,7 @@ "integrity": "sha512-w0bJ9+ELAEiPBSTPPm9bvDngfu1d8JbzUhvs2vU+z7sIz/HMwUZT5S4naypj2kNN0gZYGYrW0lt+HIbW87zTAQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@angular-eslint/bundled-angular-compiler": "18.4.3" }, @@ -1787,7 +1791,6 @@ "integrity": "sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.21.3", "postcss": "^8.4.43", @@ -1962,7 +1965,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 +1981,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 +2001,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 +2102,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 +2118,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 +2136,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 +2221,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 +2261,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 +2302,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 +3888,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 +4400,7 @@ "integrity": "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==", "license": "MIT", "optional": true, + "peer": true, "dependencies": { "@emnapi/wasi-threads": "1.1.0", "tslib": "^2.4.0" @@ -4418,6 +4412,7 @@ "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", "license": "MIT", "optional": true, + "peer": true, "dependencies": { "tslib": "^2.4.0" } @@ -4428,6 +4423,7 @@ "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", "license": "MIT", "optional": true, + "peer": true, "dependencies": { "tslib": "^2.4.0" } @@ -4443,6 +4439,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", @@ -4911,16 +4908,54 @@ "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", + "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", + "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", + "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.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", "license": "MIT", "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", @@ -4928,7 +4963,7 @@ "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" @@ -4950,48 +4985,57 @@ "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" + }, + "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", "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", "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" + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } }, - "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==", + "node_modules/@esm2cjs/indent-string": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/@esm2cjs/indent-string/-/indent-string-5.0.0.tgz", + "integrity": "sha512-vulgkPAkBMW4gOLurzjCQQAd0rp9Gogjl3TSkB+XxrxD+GpgG6SJIG3UedZQsAl+wQtW8h/a3m4EQjQgrA099w==", + "dev": true, "license": "MIT", "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/AlCalzone" } }, "node_modules/@formatjs/ecma402-abstract": { @@ -5050,19 +5094,26 @@ "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", + "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", "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": { @@ -5078,12 +5129,18 @@ "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", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } }, "node_modules/@inquirer/checkbox": { "version": "2.5.0", @@ -5270,7 +5327,6 @@ "integrity": "sha512-b2BudQY/Si4Y2a0PdZZL6BeJtl8llgeZa7U2j47aaJSCeAl1e4UI7y8a9bSkO3o/ZbZrgT5muy/34JbsjfIWxA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@inquirer/checkbox": "^2.4.7", "@inquirer/confirm": "^3.1.22", @@ -6190,6 +6246,7 @@ "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", "license": "MIT", "optional": true, + "peer": true, "dependencies": { "@emnapi/core": "^1.4.3", "@emnapi/runtime": "^1.4.3", @@ -6252,42 +6309,28 @@ "resolved": "packages/storybook", "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, - "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" - } - }, "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": { @@ -6776,27 +6819,27 @@ }, "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==", + "version": "17.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-17.0.0-alpha.1.tgz", + "integrity": "sha512-9aJxE8db50HhfCHI9zoG1SYGxi2VvsHl4vQsRcm3m7GyE1xLUePpHR8ieNgf14VwLjhXC5K3WDGlV5k2+EDE/w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/parser": "^6.21.0", + "@esm2cjs/indent-string": "^5.0.0", + "@typescript-eslint/parser": "^8.32.0", "common-tags": "^1.8.2", "dlv": "^1.1.3", - "eslint": "^8.57.1", - "indent-string": "^4.0.0", + "eslint": "^9.26.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" + "vue-eslint-parser": "^10.1.3" }, "engines": { - "node": ">=16.10.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/prettier-eslint" @@ -6814,153 +6857,6 @@ } } }, - "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/@puppeteer/browsers": { "version": "2.10.13", "resolved": "https://registry.npmjs.org/@puppeteer/browsers/-/browsers-2.10.13.tgz", @@ -6987,7 +6883,8 @@ "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" + "license": "MIT", + "peer": true }, "node_modules/@rolldown/pluginutils": { "version": "1.0.0-beta.27", @@ -7047,7 +6944,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -7528,7 +7424,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", @@ -8053,22 +7950,24 @@ } }, "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": { @@ -8076,6 +7975,7 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -8347,6 +8247,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", @@ -8366,6 +8267,7 @@ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -8378,6 +8280,7 @@ "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" } @@ -8387,6 +8290,7 @@ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-27.5.1.tgz", "integrity": "sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==", "license": "MIT", + "peer": true, "dependencies": { "ansi-regex": "^5.0.1", "ansi-styles": "^5.0.0", @@ -8400,7 +8304,8 @@ "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" + "license": "MIT", + "peer": true }, "node_modules/@testing-library/jest-dom": { "version": "6.9.1", @@ -8445,7 +8350,6 @@ "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-3.10.7.tgz", "integrity": "sha512-4rD3oHkXNOS6Fxm0mr+ECyq35iMFnnAXheIO+UsQbOexwTxn2yZ5Q1rQiFKcCf+p+rrg1yt8TtxQPM8VLWS+1g==", "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -8628,7 +8532,6 @@ "resolved": "https://registry.npmjs.org/@tiptap/suggestion/-/suggestion-3.10.7.tgz", "integrity": "sha512-1SG4tZO9PeyW5Int10S1sNkMz0bdYv3IxVfJJjnhyTpd52lnSm7xe2EGFGyXOX3b5gHK8SYLIar5JgPQEyhCZQ==", "license": "MIT", - "peer": true, "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" @@ -8711,6 +8614,7 @@ "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", "license": "MIT", "optional": true, + "peer": true, "dependencies": { "tslib": "^2.4.0" } @@ -8719,7 +8623,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", @@ -8797,13 +8702,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", @@ -9012,14 +8919,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", @@ -9157,7 +9064,6 @@ "resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.26.tgz", "integrity": "sha512-RFA/bURkcKzx/X9oumPG9Vp3D3JUgus/d0b67KB0t5S/raciymilkOa66olh78MUI92QLbEJevO7rvqU/kjwKA==", "license": "MIT", - "peer": true, "dependencies": { "@types/prop-types": "*", "csstype": "^3.0.2" @@ -9307,122 +9213,55 @@ } }, "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.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.48.0.tgz", + "integrity": "sha512-XxXP5tL1txl13YFtrECECQYeZjBZad4fyd3cFV4a19LkAY/bIp9fev3US4S5fDVV2JaYFiKAZ/GRTOLer+mbyQ==", "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.0", + "@typescript-eslint/type-utils": "8.48.0", + "@typescript-eslint/utils": "8.48.0", + "@typescript-eslint/visitor-keys": "8.48.0", "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.0", + "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", - "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", - "debug": "^4.3.4" - }, - "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/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" - } - }, - "node_modules/@typescript-eslint/project-service": { - "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.4.tgz", - "integrity": "sha512-nPiRSKuvtTN+no/2N1kt2tUh/HoFzeEgOm9fQ6XQk4/ApGqjx0zFIIaLJ6wooR1HIoozvj2j6vTi/1fgAz7UYQ==", + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.48.0.tgz", + "integrity": "sha512-jCzKdm/QK0Kg4V4IK/oMlRZlY+QOcdjv89U2NgKHZk1CYTj82/RVSx1mV/0gqCVMJ/DA+Zf/S4NBWNF8GQ+eqQ==", "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.46.4", - "@typescript-eslint/types": "^8.46.4", + "@typescript-eslint/scope-manager": "8.48.0", + "@typescript-eslint/types": "8.48.0", + "@typescript-eslint/typescript-estree": "8.48.0", + "@typescript-eslint/visitor-keys": "8.48.0", "debug": "^4.3.4" }, "engines": { @@ -9433,170 +9272,127 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "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.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": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0" + "@typescript-eslint/types": "8.48.0", + "@typescript-eslint/visitor-keys": "8.48.0" }, - "engines": { - "node": "^18.18.0 || >=20.0.0" - }, - "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" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.4.tgz", - "integrity": "sha512-+/XqaZPIAk6Cjg7NWgSGe27X4zMGqrFqZ8atJsX3CWxH/jACqWnrWI68h7nHQld0y+k9eTTjb9r+KU4twLoo9A==", - "license": "MIT", "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/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.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.48.0.tgz", + "integrity": "sha512-zbeVaVqeXhhab6QNEKfK96Xyc7UQuoFWERhEnj3mLVnUWrQnv15cJNseUni7f3g557gm0e46LZ6IJ4NJVOgOpw==", "license": "MIT", + "peer": true, "dependencies": { - "@typescript-eslint/typescript-estree": "7.18.0", - "@typescript-eslint/utils": "7.18.0", + "@typescript-eslint/types": "8.48.0", + "@typescript-eslint/typescript-estree": "8.48.0", + "@typescript-eslint/utils": "8.48.0", "debug": "^4.3.4", - "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": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, - "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==", + "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==", "license": "MIT", "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/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==", + "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": { - "@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" + "@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.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" + "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/@typescript-eslint/types": { - "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.4.tgz", - "integrity": "sha512-USjyxm3gQEePdUwJBFjjGNG18xY9A2grDVGuk7/9AkjIF1L+ZrVnwR5VAU5JXtUnBL/Nwt3H31KlRDaksnM7/w==", + "node_modules/@typescript-eslint/typescript-estree/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==", "license": "MIT", - "peer": true, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "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", "dependencies": { - "@typescript-eslint/types": "7.18.0", - "@typescript-eslint/visitor-keys": "7.18.0", - "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" + "@typescript-eslint/tsconfig-utils": "^8.48.0", + "@typescript-eslint/types": "^8.48.0", + "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" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, - "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==", + "node_modules/@typescript-eslint/typescript-estree/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==", "license": "MIT", "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": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { @@ -9624,16 +9420,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.4.tgz", - "integrity": "sha512-AbSv11fklGXV6T28dp2Me04Uw90R2iJ30g2bgLz529Koehrmkbs1r7paFqr1vPCZi7hHwYxYtxfyQMRC8QaVSg==", + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.48.0.tgz", + "integrity": "sha512-yTJO1XuGxCsSfIVt1+1UrLHtue8xz16V8apzPYI06W0HbEbEWHxHXgZaAgavIkoh+GeV6hKKd5jm0sS6OYxWXQ==", "license": "MIT", "peer": true, "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.46.4", - "@typescript-eslint/types": "8.46.4", - "@typescript-eslint/typescript-estree": "8.46.4" + "@typescript-eslint/scope-manager": "8.48.0", + "@typescript-eslint/types": "8.48.0", + "@typescript-eslint/typescript-estree": "8.48.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -9647,58 +9443,13 @@ "typescript": ">=4.8.4 <6.0.0" } }, - "node_modules/@typescript-eslint/utils/node_modules/@typescript-eslint/scope-manager": { - "version": "8.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.4.tgz", - "integrity": "sha512-tMDbLGXb1wC+McN1M6QeDx7P7c0UWO5z9CXqp7J8E+xGcJuUuevWKxuG8j41FoweS3+L41SkyKKkia16jpX7CA==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.46.4", - "@typescript-eslint/visitor-keys": "8.46.4" - }, - "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.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.4.tgz", - "integrity": "sha512-7oV2qEOr1d4NWNmpXLR35LvCfOkTNymY9oyW+lUHkmCno7aOmIf/hMaydnJBUTBMRCOGZh8YjkFOc8dadEoNGA==", - "license": "MIT", - "dependencies": { - "@typescript-eslint/project-service": "8.46.4", - "@typescript-eslint/tsconfig-utils": "8.46.4", - "@typescript-eslint/types": "8.46.4", - "@typescript-eslint/visitor-keys": "8.46.4", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "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.46.4", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.4.tgz", - "integrity": "sha512-/++5CYLQqsO9HFGLI7APrxBJYo+5OCMpViuhV8q5/Qa3o5mMrF//eQHks+PXcsAVaLdn817fMuS7zqoXNNZGaw==", + "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.46.4", + "@typescript-eslint/types": "8.48.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { @@ -9709,90 +9460,6 @@ "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==", - "license": "MIT", - "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", - "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/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", @@ -9804,7 +9471,8 @@ "optional": true, "os": [ "android" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-android-arm64": { "version": "1.11.1", @@ -9817,7 +9485,8 @@ "optional": true, "os": [ "android" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-darwin-arm64": { "version": "1.11.1", @@ -9830,7 +9499,8 @@ "optional": true, "os": [ "darwin" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-darwin-x64": { "version": "1.11.1", @@ -9843,7 +9513,8 @@ "optional": true, "os": [ "darwin" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-freebsd-x64": { "version": "1.11.1", @@ -9856,7 +9527,8 @@ "optional": true, "os": [ "freebsd" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { "version": "1.11.1", @@ -9869,7 +9541,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { "version": "1.11.1", @@ -9882,7 +9555,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { "version": "1.11.1", @@ -9895,7 +9569,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-arm64-musl": { "version": "1.11.1", @@ -9908,7 +9583,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { "version": "1.11.1", @@ -9921,7 +9597,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { "version": "1.11.1", @@ -9934,7 +9611,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { "version": "1.11.1", @@ -9947,7 +9625,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { "version": "1.11.1", @@ -9960,7 +9639,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-x64-gnu": { "version": "1.11.1", @@ -9973,7 +9653,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-linux-x64-musl": { "version": "1.11.1", @@ -9986,7 +9667,8 @@ "optional": true, "os": [ "linux" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-wasm32-wasi": { "version": "1.11.1", @@ -9997,6 +9679,7 @@ ], "license": "MIT", "optional": true, + "peer": true, "dependencies": { "@napi-rs/wasm-runtime": "^0.2.11" }, @@ -10015,7 +9698,8 @@ "optional": true, "os": [ "win32" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { "version": "1.11.1", @@ -10028,7 +9712,8 @@ "optional": true, "os": [ "win32" - ] + ], + "peer": true }, "node_modules/@unrs/resolver-binding-win32-x64-msvc": { "version": "1.11.1", @@ -10041,7 +9726,8 @@ "optional": true, "os": [ "win32" - ] + ], + "peer": true }, "node_modules/@vitejs/plugin-react-swc": { "version": "3.11.0", @@ -10395,7 +10081,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" }, @@ -10507,7 +10192,6 @@ "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", @@ -10550,6 +10234,30 @@ "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==", + "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", + "@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", @@ -10653,6 +10361,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" } @@ -10661,13 +10370,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" } @@ -10692,6 +10403,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" } @@ -10701,6 +10413,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" @@ -10734,6 +10447,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", @@ -10755,6 +10469,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" @@ -10775,6 +10490,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", @@ -10796,6 +10512,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", @@ -10814,6 +10531,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", @@ -10832,6 +10550,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", @@ -10906,6 +10625,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" } @@ -10979,6 +10699,7 @@ "integrity": "sha512-qIj0G9wZbMGNLjLmg1PT6v2mE9AH2zlnADJD/2tC6E00hgmhUOfEB6greHPAfLRSufHqROIUTkw6E+M3lH0PTQ==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">= 0.4" } @@ -11436,13 +11157,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", @@ -11484,7 +11198,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.8.25", "caniuse-lite": "^1.0.30001754", @@ -11747,51 +11460,6 @@ "node": ">=6" } }, - "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==", - "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_modules/caniuse-lite": { "version": "1.0.30001755", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001755.tgz", @@ -11855,11 +11523,25 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/chalk-cjs": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/chalk-cjs/-/chalk-cjs-5.2.0.tgz", + "integrity": "sha512-GJ7MUEISBU0pglCMmAvpzRav0PN2ZZ33nYNOu07zoLymwY69EFwSqx+VK3wPFKi0dBCn/qgYcJmgPYbEaLynnQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.17.0 || ^14.13 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, "node_modules/chalk-template": { "version": "0.4.0", "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" }, @@ -12347,6 +12029,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", @@ -12370,6 +12053,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", @@ -12395,6 +12079,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" } @@ -12952,7 +12637,8 @@ "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", @@ -12976,7 +12662,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" @@ -13271,7 +12956,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" } @@ -13359,6 +13043,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", @@ -13376,6 +13061,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", @@ -13393,6 +13079,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", @@ -13676,8 +13363,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", @@ -13690,6 +13376,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" @@ -13718,23 +13405,12 @@ "node": ">=6" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.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", @@ -14179,6 +13855,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", @@ -14284,6 +13961,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", @@ -14299,6 +13977,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" }, @@ -14311,6 +13990,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", @@ -14340,7 +14020,6 @@ "integrity": "sha512-1lvV17H2bMYda/WaFb2jLPeHU3zml2k4/yagNMG8Q/YtfMjCwEUZa2eXXMgZTVSL5q1n4H7sQ0X6CdJDqqeCFA==", "hasInstallScript": true, "license": "MIT", - "peer": true, "bin": { "esbuild": "bin/esbuild" }, @@ -14462,60 +14141,62 @@ } }, "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.", - "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", + "version": "9.39.1", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.39.1.tgz", + "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", + "license": "MIT", + "dependencies": { + "@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": { @@ -14523,6 +14204,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" @@ -14547,6 +14229,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", @@ -14558,6 +14241,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" } @@ -14602,6 +14286,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" }, @@ -14619,6 +14304,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" } @@ -14662,6 +14348,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" } @@ -14671,6 +14358,7 @@ "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" }, @@ -14683,6 +14371,7 @@ "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" } @@ -14692,6 +14381,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", @@ -14718,6 +14408,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" }, @@ -14776,7 +14467,6 @@ "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", "dependencies": { "esrecurse": "^4.3.0", @@ -14829,51 +14519,6 @@ "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", @@ -15279,6 +14924,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", @@ -15390,15 +15036,15 @@ } }, "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", "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": { @@ -15481,6 +15127,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" }, @@ -15530,54 +15177,16 @@ } }, "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==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "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" + "keyv": "^4.5.4" }, "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "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", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" + "node": ">=16" } }, "node_modules/flatbuffers": { @@ -15742,6 +15351,7 @@ "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": { @@ -15773,6 +15383,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", @@ -15793,6 +15404,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" } @@ -15874,19 +15486,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", @@ -15905,6 +15504,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", @@ -15922,6 +15522,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" }, @@ -16055,31 +15656,16 @@ "node": "20 || >=22" }, "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", - "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "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)", + "node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "license": "MIT", "engines": { - "node": ">=10" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" @@ -16090,6 +15676,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" @@ -16105,6 +15692,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", @@ -16125,6 +15713,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" @@ -16153,7 +15742,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", @@ -16230,6 +15820,7 @@ "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" }, @@ -16263,6 +15854,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" }, @@ -16465,7 +16057,8 @@ "url": "https://patreon.com/mdevils" } ], - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/html-escaper": { "version": "2.0.2", @@ -16748,6 +16341,7 @@ "dev": true, "license": "MIT", "optional": true, + "peer": true, "bin": { "image-size": "bin/image-size.js" }, @@ -16815,6 +16409,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", @@ -16825,6 +16420,7 @@ "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true, "license": "ISC" }, "node_modules/ini": { @@ -17069,6 +16665,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", @@ -17168,6 +16765,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", @@ -17192,6 +16790,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", @@ -17211,6 +16810,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" }, @@ -17239,6 +16839,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" @@ -17255,6 +16856,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" } @@ -17304,6 +16906,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", @@ -17321,6 +16924,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" @@ -17382,6 +16986,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" }, @@ -17507,6 +17112,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" }, @@ -17543,6 +17149,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" }, @@ -17577,6 +17184,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" @@ -17598,15 +17206,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", @@ -17663,6 +17262,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" }, @@ -17675,6 +17275,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" }, @@ -17713,6 +17314,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" @@ -17729,6 +17331,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", @@ -17781,6 +17384,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" }, @@ -17793,6 +17397,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" }, @@ -17808,6 +17413,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" @@ -18038,8 +17644,7 @@ "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-5.12.1.tgz", "integrity": "sha512-P/UbRZ0LKwXe7wEpwDheuhunPwITn4oPALhrJEQJo6756EwNGnsK/TSQrWojBB4cQDQ+VaxWYws9tFNDuiMh2Q==", "dev": true, - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/jasmine/node_modules/brace-expansion": { "version": "2.0.2", @@ -18147,7 +17752,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" @@ -18359,6 +17964,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" } @@ -18379,6 +17985,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" } @@ -18497,7 +18104,6 @@ "integrity": "sha512-LrtUxbdvt1gOpo3gxG+VAJlJAEMhbWlM4YrFQgql98FwF7+K8K12LYO4hnDdUkNjeztYrOXEMqgTajSWgmtI/w==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@colors/colors": "1.5.0", "body-parser": "^1.19.0", @@ -18632,7 +18238,6 @@ "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "jasmine-core": "^4.1.0" }, @@ -18992,7 +18597,6 @@ "integrity": "sha512-P3b3HJDBtSzsXUl0im2L7gTO5Ubg8mEN6G8qoTS77iXxXX4Hvu4Qj540PZDvQ8V6DmX6iXo98k7Md0Cm1PrLaA==", "dev": true, "license": "Apache-2.0", - "peer": true, "dependencies": { "copy-anything": "^2.0.1", "parse-node-version": "^1.0.1", @@ -19048,6 +18652,7 @@ "dev": true, "license": "MIT", "optional": true, + "peer": true, "dependencies": { "prr": "~1.0.1" }, @@ -19062,6 +18667,7 @@ "dev": true, "license": "MIT", "optional": true, + "peer": true, "bin": { "mime": "cli.js" }, @@ -19076,6 +18682,7 @@ "dev": true, "license": "BSD-3-Clause", "optional": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -20023,6 +19630,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" } @@ -20105,19 +19713,6 @@ "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", @@ -21536,6 +21131,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" }, @@ -21559,6 +21155,7 @@ "dev": true, "license": "MIT", "optional": true, + "peer": true, "dependencies": { "iconv-lite": "^0.6.3", "sax": "^1.2.4" @@ -21577,6 +21174,7 @@ "dev": true, "license": "MIT", "optional": true, + "peer": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -21617,7 +21215,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", @@ -22324,6 +21921,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" } @@ -22333,6 +21931,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" }, @@ -22403,6 +22002,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", @@ -22421,6 +22021,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", @@ -22435,6 +22036,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", @@ -22482,6 +22084,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" @@ -22616,6 +22219,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", @@ -22868,6 +22472,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" } @@ -22922,7 +22527,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", @@ -23071,6 +22677,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" @@ -23127,6 +22734,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" @@ -23414,7 +23022,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.7", "picocolors": "^1.0.1", @@ -23553,7 +23160,6 @@ "integrity": "sha512-7Hc+IvlQ7hlaIfQFZnxlRl0jnpWq2qwibORBhQYIb0QbNtuicc5ZxvKkVT71HJ4Py1wSZ/3VR1r8LfkCtoCzhw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "posthtml-parser": "^0.11.0", "posthtml-render": "^3.0.0" @@ -23716,27 +23322,27 @@ } }, "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==", + "version": "17.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/prettier-eslint/-/prettier-eslint-17.0.0-alpha.1.tgz", + "integrity": "sha512-9aJxE8db50HhfCHI9zoG1SYGxi2VvsHl4vQsRcm3m7GyE1xLUePpHR8ieNgf14VwLjhXC5K3WDGlV5k2+EDE/w==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/parser": "^6.21.0", + "@esm2cjs/indent-string": "^5.0.0", + "@typescript-eslint/parser": "^8.32.0", "common-tags": "^1.8.2", "dlv": "^1.1.3", - "eslint": "^8.57.1", - "indent-string": "^4.0.0", + "eslint": "^9.26.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" + "vue-eslint-parser": "^10.1.3" }, "engines": { - "node": ">=16.10.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/prettier-eslint" @@ -23755,278 +23361,113 @@ } }, "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.4.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", - "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", - "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==", + "version": "9.0.0-alpha.2", + "resolved": "https://registry.npmjs.org/prettier-eslint-cli/-/prettier-eslint-cli-9.0.0-alpha.2.tgz", + "integrity": "sha512-LQ701IX+ZZuitIUYR8Kg7QXo32/ZE0FhBx6ZWjVX1pXNxrK4IBUzRGhy/XNPW2N+yew0okio7plYK4M+slOAiQ==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "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" + "@esm2cjs/indent-string": "^5.0.0", + "@messageformat/core": "^3.4.0", + "@prettier/eslint": "npm:prettier-eslint@^17.0.0-alpha.1", + "chalk-cjs": "^5.2.0", + "common-tags": "^1.8.2", + "core-js": "^3.42.0", + "eslint": "^9.26.0", + "find-up": "^5.0.0", + "glob": "^10.4.5", + "ignore": "^7.0.4", + "lodash.memoize": "^4.1.2", + "loglevel-colored-level-prefix": "^1.0.0", + "rxjs": "^7.8.2", + "yargs": "^17.7.2" + }, + "bin": { + "prettier-eslint": "dist/index.js" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://opencollective.com/prettier-eslint-cli" + }, + "peerDependencies": { + "prettier-eslint": "*" }, "peerDependenciesMeta": { - "typescript": { + "prettier-eslint": { "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==", + "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": { - "@typescript-eslint/types": "6.21.0", - "eslint-visitor-keys": "^3.4.1" + "balanced-match": "^1.0.0" + } + }, + "node_modules/prettier-eslint-cli/node_modules/glob": { + "version": "10.4.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz", + "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==", + "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" }, - "engines": { - "node": "^16.0.0 || >=18.0.0" + "bin": { + "glob": "dist/esm/bin.mjs" }, "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "url": "https://github.com/sponsors/isaacs" } }, - "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==", + "node_modules/prettier-eslint-cli/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", "dev": true, "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" + "engines": { + "node": ">= 4" } }, - "node_modules/prettier-eslint/node_modules/eslint-visitor-keys": { + "node_modules/prettier-eslint-cli/node_modules/jackspeak": { "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==", + "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" }, "funding": { - "url": "https://opencollective.com/eslint" + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" } }, - "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==", + "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": { @@ -24039,6 +23480,23 @@ "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/pretty-format": { "version": "29.7.0", "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", @@ -24165,6 +23623,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" } @@ -24174,6 +23633,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" } @@ -24183,6 +23643,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", @@ -24194,6 +23655,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", @@ -24205,6 +23667,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", @@ -24217,6 +23680,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", @@ -24229,6 +23693,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" @@ -24239,6 +23704,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" @@ -24260,6 +23726,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", @@ -24272,7 +23739,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" } @@ -24282,6 +23748,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" } @@ -24291,6 +23758,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", @@ -24302,7 +23770,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", @@ -24314,6 +23781,7 @@ "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.8.1.tgz", "integrity": "sha512-DAgDoUYHCcc6tOGpLVPSU1k84kCUWTWnfWX3UDy2Delv4ryH0KqTD6RBI6k4yi9j9I8gl3j8MkPpRD/vWPZbug==", "license": "MIT", + "peer": true, "dependencies": { "prosemirror-keymap": "^1.2.2", "prosemirror-model": "^1.25.0", @@ -24327,6 +23795,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" @@ -24342,6 +23811,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" }, @@ -24363,7 +23833,6 @@ "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.41.3.tgz", "integrity": "sha512-SqMiYMUQNNBP9kfPhLO8WXEk/fon47vc52FQsUiJzTBuyjKgEcoAwMyF04eQ4WZ2ArMn7+ReypYL60aKngbACQ==", "license": "MIT", - "peer": true, "dependencies": { "prosemirror-model": "^1.20.0", "prosemirror-state": "^1.0.0", @@ -24555,19 +24024,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", @@ -24609,7 +24065,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" }, @@ -24622,7 +24077,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" @@ -24758,6 +24212,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", @@ -24830,6 +24285,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", @@ -25006,6 +24462,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" } @@ -25152,7 +24609,6 @@ "integrity": "sha512-MHngMYwGJVi6Fmnk6ISmnk7JAHRNF0UkuucA0CUW3N3a4KnONPEZz+vUanQP/ZC/iY1Qkf3bwPWzyY84wEks1g==", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "@types/estree": "1.0.8" }, @@ -25251,7 +24707,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", @@ -25313,6 +24770,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", @@ -25360,6 +24818,7 @@ "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" @@ -25401,7 +24860,6 @@ "integrity": "sha512-ByXE1oLD79GVq9Ht1PeHWCPMPB8XHpBuz1r85oByKHjZY6qV6rWnQovQzXJXuQ/XyE1Oj3iPk3lo28uzaRA2/Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", "immutable": "^4.0.0", @@ -25814,6 +25272,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", @@ -25829,6 +25288,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", @@ -26358,6 +25818,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" @@ -26441,6 +25902,7 @@ "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" } @@ -26460,6 +25922,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" @@ -26473,7 +25936,6 @@ "resolved": "https://registry.npmjs.org/storybook/-/storybook-9.1.16.tgz", "integrity": "sha512-339U14K6l46EFyRvaPS2ZlL7v7Pb+LlcXT8KAETrGPxq8v1sAjj2HAOB6zrlAK3M+0+ricssfAwsLCwt7Eg8TQ==", "license": "MIT", - "peer": true, "dependencies": { "@storybook/global": "^5.0.0", "@testing-library/jest-dom": "^6.6.3", @@ -26634,6 +26096,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", @@ -26655,6 +26118,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", @@ -26673,6 +26137,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", @@ -26715,6 +26180,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" } @@ -27014,6 +26480,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" @@ -27207,7 +26674,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", @@ -27288,12 +26754,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", @@ -27390,7 +26850,6 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -27518,15 +26977,15 @@ } }, "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", "engines": { - "node": ">=16" + "node": ">=18.12" }, "peerDependencies": { - "typescript": ">=4.2.0" + "typescript": ">=4.8.4" } }, "node_modules/ts-dedent": { @@ -27544,6 +27003,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", @@ -27556,6 +27016,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" }, @@ -27567,8 +27028,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", @@ -27629,6 +27089,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", @@ -27643,6 +27104,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", @@ -27662,6 +27124,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", @@ -27683,6 +27146,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", @@ -27727,7 +27191,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" @@ -27736,11 +27199,36 @@ "node": ">=14.17" } }, + "node_modules/typescript-eslint": { + "version": "8.48.0", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.48.0.tgz", + "integrity": "sha512-fcKOvQD9GUn3Xw63EgiDqhvWJ5jsyZUaekl3KVpGsDJnN46WJTe3jWxtQP9lMZm1LJNkFLlTaWAxK2vUQR+cqw==", + "license": "MIT", + "peer": true, + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.48.0", + "@typescript-eslint/parser": "8.48.0", + "@typescript-eslint/typescript-estree": "8.48.0", + "@typescript-eslint/utils": "8.48.0" + }, + "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" } @@ -27790,6 +27278,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", @@ -28242,7 +27731,6 @@ "integrity": "sha512-BxAKBWmIbrDgrokdGZH1IgkIk/5mMHDreLDmCJ0qpyJaAteP8NvMhkwr/ZCQNqNH97bw/dANTE9PDzqwJghfMQ==", "devOptional": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.25.0", "fdir": "^6.5.0", @@ -28801,7 +28289,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "devOptional": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -28849,83 +28336,35 @@ } }, "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==", + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-10.2.0.tgz", + "integrity": "sha512-CydUvFOQKD928UzZhTp4pr2vWz1L+H99t7Pkln2QSPdvmURT0MoC4wUccfCnuEaihNsu9aYYyk+bep8rlfkUXw==", "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" + "debug": "^4.4.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.6.0", + "semver": "^7.6.3" }, "engines": { - "node": "^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.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" - }, - "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_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==", - "dev": true, - "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" + "eslint": "^8.57.0 || ^9.0.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", @@ -28988,7 +28427,6 @@ "integrity": "sha512-7h/weGm9d/ywQ6qzJ+Xy+r9n/3qgp/thalBbpOi5i223dPXKi04IBtqPN9nTd+jBc7QKfvDbaBnFipYp4sJAUQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", @@ -29081,7 +28519,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", @@ -29356,6 +28793,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", @@ -29375,6 +28813,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", @@ -29402,6 +28841,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", @@ -29464,6 +28904,7 @@ "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" } @@ -29523,6 +28964,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": { @@ -29642,7 +29084,6 @@ "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", "dev": true, "license": "ISC", - "peer": true, "bin": { "yaml": "bin.mjs" }, @@ -29719,7 +29160,6 @@ "integrity": "sha512-JInaHOamG8pt5+Ey8kGmdcAcg3OL9reK8ltczgHTAwNhMys/6ThXHityHxVV2p3fkw/c+MAvBHFVYHFZDmjMCQ==", "dev": true, "license": "MIT", - "peer": true, "funding": { "url": "https://github.com/sponsors/colinhacks" } @@ -29781,7 +29221,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": "*", @@ -29816,6 +29257,18 @@ "@ni/nimble-components": "^34.6.1" } }, + "packages/angular-workspace/node_modules/@ni/eslint-config-angular": { + "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==", + "dev": true, + "license": "MIT", + "peerDependencies": { + "@ni/eslint-config-javascript": "^5.1.2", + "@ni/eslint-config-typescript": "^5.0.3", + "angular-eslint": "^18.4.3" + } + }, "packages/angular-workspace/ok-angular": { "name": "@ni/ok-angular", "version": "0.1.4", @@ -29855,6 +29308,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" } @@ -29895,10 +29349,11 @@ "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-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": { @@ -30001,8 +29456,8 @@ "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", + "prettier-eslint": "^17.0.0-alpha.1", + "prettier-eslint-cli": "^9.0.0-alpha.2", "rollup": "^4.12.0", "rollup-plugin-sourcemaps2": "^0.5.0", "source-map-loader": "^5.0.0", @@ -30062,8 +29517,8 @@ "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", + "prettier-eslint": "^17.0.0-alpha.1", + "prettier-eslint-cli": "^9.0.0-alpha.2", "rollup": "^4.12.0", "rollup-plugin-sourcemaps2": "^0.5.0", "source-map-loader": "^5.0.0", @@ -30198,8 +29653,8 @@ "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", + "prettier-eslint": "^17.0.0-alpha.1", + "prettier-eslint-cli": "^9.0.0-alpha.2", "rollup": "^4.12.0", "rollup-plugin-sourcemaps2": "^0.5.0", "source-map-loader": "^5.0.0", @@ -30231,8 +29686,8 @@ "@storybook/cli": "^9.0.5", "@storybook/html-vite": "^9.0.5", "js-beautify": "^1.15.1", - "prettier-eslint": "^16.3.0", - "prettier-eslint-cli": "^8.0.1", + "prettier-eslint": "^17.0.0-alpha.1", + "prettier-eslint-cli": "^9.0.0-alpha.2", "react-syntax-highlighter": "^16.1.0", "remark-gfm": "^4.0.0", "rollup": "^4.12.0", @@ -30246,7 +29701,8 @@ "apache-arrow": "21.1.0", "eslint-import-resolver-typescript": "^4.4.4", "eslint-plugin-storybook": "^9.1.10", - "flatbuffers": "25.2.10" + "flatbuffers": "25.2.10", + "globals": "^14.0.0" } }, "packages/xliff-to-json-converter": { 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..e7bb96a784 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.js", + "lintFilePatterns": [ + "nimble-angular/**/*.ts", + "nimble-angular/**/*.js", + "nimble-angular/**/*.html", + "nimble-angular/eslint.config.js" + ] + } } } }, @@ -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.js", + "lintFilePatterns": [ + "ok-angular/**/*.ts", + "ok-angular/**/*.js", + "ok-angular/**/*.html", + "ok-angular/eslint.config.js" + ] + } } } }, @@ -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.js", + "lintFilePatterns": [ + "spright-angular/**/*.ts", + "spright-angular/**/*.js", + "spright-angular/**/*.html", + "spright-angular/eslint.config.js" + ] + } } } }, @@ -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.js", + "lintFilePatterns": [ + "example-client-app/**/*.ts", + "example-client-app/**/*.js", + "example-client-app/**/*.html", + "example-client-app/eslint.config.js" + ] + } } } } diff --git a/packages/angular-workspace/eslint.config.js b/packages/angular-workspace/eslint.config.js new file mode 100644 index 0000000000..9c3937f9db --- /dev/null +++ b/packages/angular-workspace/eslint.config.js @@ -0,0 +1,140 @@ +const { defineConfig } = require('eslint/config'); +const javascriptNimbleConfig = require('@ni-private/eslint-config-nimble/javascript'); +const typescriptNimbleConfig = require('@ni-private/eslint-config-nimble/typescript'); +const { + angularTypescriptConfig, + angularTemplateConfig, + ignoreAttributes, +} = require('@ni/eslint-config-angular'); +const { importNodeEsmConfig } = require('@ni/eslint-config-javascript'); + +module.exports = defineConfig([ + { + ignores: ['**/dist/**'], + }, + { + files: ['**/*.js'], + extends: javascriptNimbleConfig, + rules: { + // Use package.json from angular-workspace root + 'import/no-extraneous-dependencies': ['error', { packageDir: __dirname }], + }, + }, + { + files: ['**/*.ts'], + extends: [...angularTypescriptConfig, ...typescriptNimbleConfig], + 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.', + }, + ], + }, + ], + + // 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: angularTemplateConfig, + 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', + ], + }, + ], + }, + }, + { + files: ['**/eslint.config.js'], + extends: [ + ...javascriptNimbleConfig, + ...importNodeEsmConfig + ] + }, +]); 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.js b/packages/angular-workspace/example-client-app/eslint.config.js new file mode 100644 index 0000000000..a2cad3f3f2 --- /dev/null +++ b/packages/angular-workspace/example-client-app/eslint.config.js @@ -0,0 +1,43 @@ +const { defineConfig } = require('eslint/config'); +const baseConfig = require('../eslint.config.js'); + +module.exports = defineConfig([ + baseConfig, + { + ignores: ['**/src/environments'], + }, + { + files: ['**/*.ts'], + languageOptions: { + 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/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.js b/packages/angular-workspace/nimble-angular/eslint.config.js new file mode 100644 index 0000000000..5c2c9b2c0d --- /dev/null +++ b/packages/angular-workspace/nimble-angular/eslint.config.js @@ -0,0 +1,27 @@ +const { defineConfig } = require('eslint/config'); +const baseConfig = require('../eslint.config.js'); + +module.exports = defineConfig([ + baseConfig, + { + ignores: ['**/src/thirdparty'], + }, + { + files: ['**/*.ts'], + languageOptions: { + 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/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.js b/packages/angular-workspace/ok-angular/eslint.config.js new file mode 100644 index 0000000000..fa93b6bac7 --- /dev/null +++ b/packages/angular-workspace/ok-angular/eslint.config.js @@ -0,0 +1,15 @@ +const { defineConfig } = require('eslint/config'); +const baseConfig = require('../eslint.config.js'); + +module.exports = defineConfig([ + baseConfig, + { + files: ['**/*.ts'], + languageOptions: { + parserOptions: { + project: ['./tsconfig.lib.json', './tsconfig.spec.json'], + tsconfigRootDir: __dirname, + }, + }, + }, +]); diff --git a/packages/angular-workspace/package.json b/packages/angular-workspace/package.json index 905882f616..8d70e1d26d 100644 --- a/packages/angular-workspace/package.json +++ b/packages/angular-workspace/package.json @@ -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.js b/packages/angular-workspace/spright-angular/eslint.config.js new file mode 100644 index 0000000000..fa93b6bac7 --- /dev/null +++ b/packages/angular-workspace/spright-angular/eslint.config.js @@ -0,0 +1,15 @@ +const { defineConfig } = require('eslint/config'); +const baseConfig = require('../eslint.config.js'); + +module.exports = defineConfig([ + baseConfig, + { + files: ['**/*.ts'], + languageOptions: { + parserOptions: { + project: ['./tsconfig.lib.json', './tsconfig.spec.json'], + tsconfigRootDir: __dirname, + }, + }, + }, +]); 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.js b/packages/blazor-workspace/eslint.config.js new file mode 100644 index 0000000000..95841344da --- /dev/null +++ b/packages/blazor-workspace/eslint.config.js @@ -0,0 +1,43 @@ +const { defineConfig } = require('eslint/config'); +const javascriptNimbleConfig = require('@ni-private/eslint-config-nimble/javascript'); +const globals = require('globals'); + +module.exports = defineConfig([ + { + ignores: [ + '**/dist/**', + '**/bin/**', + '**/obj/**', + '**/wwwroot/**', + '!**/wwwroot/*.lib.module.js', + ], + }, + { + 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/components.js b/packages/eslint-config-nimble/components.js index dd0bbd9ace..e2df3a447b 100644 --- a/packages/eslint-config-nimble/components.js +++ b/packages/eslint-config-nimble/components.js @@ -1,121 +1,122 @@ -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.' - } - ], +const globals = require('globals'); +const { defineConfig } = require('eslint/config'); +// eslint-disable-next-line import/extensions +const typescriptNimbleConfig = require('./typescript.js'); - // Improves readability of templates to avoid return types in template expressions - '@typescript-eslint/explicit-function-return-type': [ - 'error', - { allowExpressions: true } - ], +module.exports = 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()], + }, + ], + }, }, - 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 +124,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.js b/packages/eslint-config-nimble/eslint.config.js new file mode 100644 index 0000000000..8b9b7c5a79 --- /dev/null +++ b/packages/eslint-config-nimble/eslint.config.js @@ -0,0 +1,12 @@ +const { defineConfig } = require('eslint/config'); +const javascriptNimbleConfig = require('./javascript.js'); + +module.exports = defineConfig([ + { + files: ['**/*.js'], + extends: javascriptNimbleConfig, + rules: { + 'import/no-unresolved': 'off' + } + }, +]); diff --git a/packages/eslint-config-nimble/javascript.js b/packages/eslint-config-nimble/javascript.js index f0144138d1..0ace160668 100644 --- a/packages/eslint-config-nimble/javascript.js +++ b/packages/eslint-config-nimble/javascript.js @@ -1,19 +1,32 @@ -module.exports = { - extends: '@ni/eslint-config-javascript', - parserOptions: { - ecmaVersion: 2020 +const { defineConfig } = require('eslint/config'); +const { javascriptConfig } = require('@ni/eslint-config-javascript'); + +module.exports = defineConfig([ + javascriptConfig, + { + 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 }, + }, + ], + }, }, - 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 } - }], - }, -}; +]); diff --git a/packages/eslint-config-nimble/package.json b/packages/eslint-config-nimble/package.json index feda12474c..68877b5d5c 100644 --- a/packages/eslint-config-nimble/package.json +++ b/packages/eslint-config-nimble/package.json @@ -1,39 +1,44 @@ { - "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", - "directory": "packages/eslint-config-nimble" - }, - "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": "commonjs", + "description": "Shared ESLint configuration for FAST web component development", + "repository": { + "type": "git", + "url": "git+https://github.com/ni/nimble.git", + "directory": "packages/eslint-config-nimble" + }, + "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": "^5.1.2", + "@ni/eslint-config-typescript": "^5.0.3", + "eslint": "^9.36.0", + "eslint-plugin-jsdoc": "^60.7.1", + "globals": "^14.0.0" + } +} \ No newline at end of file diff --git a/packages/eslint-config-nimble/typescript.js b/packages/eslint-config-nimble/typescript.js index f2b2a22a18..82605ef094 100644 --- a/packages/eslint-config-nimble/typescript.js +++ b/packages/eslint-config-nimble/typescript.js @@ -1,65 +1,76 @@ -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'] } - ], +const { defineConfig } = require('eslint/config'); +const { typescriptConfig } = require('@ni/eslint-config-typescript'); +const jsdoc = require('eslint-plugin-jsdoc'); +const globals = require('globals'); + +module.exports = defineConfig([ + typescriptConfig, + { + 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', + // Rules enabled due to strictNullChecks + // see: https://github.com/ni/javascript-styleguide/#strict-null-checks + '@typescript-eslint/no-non-null-assertion': 'off', - // 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 } - }], + // 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 }, + }, + ], + }, }, - 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', + }, + }, +]); 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.cjs b/packages/jasmine-extensions/eslint.config.cjs new file mode 100644 index 0000000000..d6e0b68f8b --- /dev/null +++ b/packages/jasmine-extensions/eslint.config.cjs @@ -0,0 +1,28 @@ +// eslint-disable-next-line import/no-unresolved +const { defineConfig } = require('eslint/config'); +const javascriptNimbleConfig = require('@ni-private/eslint-config-nimble/javascript'); +const typescriptNimbleConfig = require('@ni-private/eslint-config-nimble/typescript'); + +module.exports = defineConfig([ + { + ignores: ['**/dist/**'], + }, + { + 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: __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.cjs b/packages/jasmine-parameterized/eslint.config.cjs new file mode 100644 index 0000000000..c28453feb0 --- /dev/null +++ b/packages/jasmine-parameterized/eslint.config.cjs @@ -0,0 +1,26 @@ +// eslint-disable-next-line import/no-unresolved +const { defineConfig } = require('eslint/config'); +const javascriptNimbleConfig = require('@ni-private/eslint-config-nimble/javascript'); +const typescriptNimbleConfig = require('@ni-private/eslint-config-nimble/typescript'); + +module.exports = defineConfig([ + { + ignores: ['**/dist/**'], + }, + { + 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: __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/.prettierrc.json b/packages/nimble-components/.prettierrc.json index d29ec5d8dc..e5decf6aa8 100644 --- a/packages/nimble-components/.prettierrc.json +++ b/packages/nimble-components/.prettierrc.json @@ -3,5 +3,6 @@ "useTabs": false, "trailingComma": "none", "singleQuote": true, - "endOfLine": "auto" + "endOfLine": "auto", + "arrowParens": "avoid" } 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/build/generate-workers/source/matrix-renderer.ts b/packages/nimble-components/build/generate-workers/source/matrix-renderer.ts index 58d0ef0d30..5e9ecd526d 100644 --- a/packages/nimble-components/build/generate-workers/source/matrix-renderer.ts +++ b/packages/nimble-components/build/generate-workers/source/matrix-renderer.ts @@ -153,8 +153,8 @@ export class MatrixRenderer { const scaledX = this.scaledColumnIndices[i]!; if ( !( - scaledX >= this.transformConfig.topLeftCanvasCorner.x - && scaledX < this.transformConfig.bottomRightCanvasCorner.x + scaledX >= this.transformConfig.topLeftCanvasCorner.x && + scaledX < this.transformConfig.bottomRightCanvasCorner.x ) ) { continue; @@ -163,9 +163,10 @@ export class MatrixRenderer { // columnIndexPositions is used to get chunks to determine the start and end index of the column, it looks something like [0, 1, 4, 9, 12] // This means that the first column has a start index of 0 and an end index of 1, the second column has a start index of 1 and an end index of 4, and so on // scaledRowIndices is used when we reach the end of the columnIndexPositions, when columnIndexPositions is [0, 1, 4, 9, 12], scaledRowIndices is 13 - const columnEndIndex = this.columnIndicesPositions[i + 1] !== undefined - ? this.columnIndicesPositions[i + 1]! - : this.scaledRowIndices.length; + const columnEndIndex = + this.columnIndicesPositions[i + 1] !== undefined + ? this.columnIndicesPositions[i + 1]! + : this.scaledRowIndices.length; for ( let columnStartIndex = this.columnIndicesPositions[i]!; columnStartIndex < columnEndIndex; @@ -174,15 +175,16 @@ export class MatrixRenderer { const scaledY = this.scaledRowIndices[columnStartIndex]!; if ( !( - scaledY >= this.transformConfig.topLeftCanvasCorner.y - && scaledY < this.transformConfig.bottomRightCanvasCorner.y + scaledY >= this.transformConfig.topLeftCanvasCorner.y && + scaledY < this.transformConfig.bottomRightCanvasCorner.y ) ) { continue; } // Fill style is temporary green for all dies, will be replaced with a color based on the value of the die in a future implementation - this.context.fillStyle = this.colors[this.colorIndices[columnStartIndex]!] - ?? this.outsideRangeDieColor; + this.context.fillStyle = + this.colors[this.colorIndices[columnStartIndex]!] ?? + this.outsideRangeDieColor; this.context.fillRect( scaledX, scaledY, @@ -204,8 +206,8 @@ export class MatrixRenderer { const scaledX = this.scaledColumnIndices[i]!; if ( !( - scaledX >= this.transformConfig.topLeftCanvasCorner.x - && scaledX < this.transformConfig.bottomRightCanvasCorner.x + scaledX >= this.transformConfig.topLeftCanvasCorner.x && + scaledX < this.transformConfig.bottomRightCanvasCorner.x ) ) { continue; @@ -214,9 +216,10 @@ export class MatrixRenderer { // columnIndexPositions is used to get chunks to determine the start and end index of the column, it looks something like [0, 1, 4, 9, 12] // This means that the first column has a start index of 0 and an end index of 1, the second column has a start index of 1 and an end index of 4, and so on // scaledRowIndices is used when we reach the end of the columnIndexPositions, when columnIndexPositions is [0, 1, 4, 9, 12], scaledRowIndices is 13 - const columnEndIndex = this.columnIndicesPositions[i + 1] !== undefined - ? this.columnIndicesPositions[i + 1]! - : this.scaledRowIndices.length; + const columnEndIndex = + this.columnIndicesPositions[i + 1] !== undefined + ? this.columnIndicesPositions[i + 1]! + : this.scaledRowIndices.length; for ( let columnStartIndex = this.columnIndicesPositions[i]!; columnStartIndex < columnEndIndex; @@ -225,8 +228,8 @@ export class MatrixRenderer { const scaledY = this.scaledRowIndices[columnStartIndex]!; if ( !( - scaledY >= this.transformConfig.topLeftCanvasCorner.y - && scaledY < this.transformConfig.bottomRightCanvasCorner.y + scaledY >= this.transformConfig.topLeftCanvasCorner.y && + scaledY < this.transformConfig.bottomRightCanvasCorner.y ) ) { continue; @@ -238,9 +241,9 @@ export class MatrixRenderer { this.context.fillText( label, scaledX + this.renderConfig.dieDimensions.width / 2, - scaledY - + this.renderConfig.dieDimensions.height / 2 - + approximateTextHeight.width / 2, + scaledY + + this.renderConfig.dieDimensions.height / 2 + + approximateTextHeight.width / 2, this.renderConfig.dieDimensions.width * this.fontSizeFactor ); } @@ -249,26 +252,26 @@ export class MatrixRenderer { private isDieInGrid(x: number, y: number): boolean { return ( - x >= this.renderConfig.gridMinX - && x <= this.renderConfig.gridMaxX - && y >= this.renderConfig.gridMinY - && y <= this.renderConfig.gridMaxY + x >= this.renderConfig.gridMinX && + x <= this.renderConfig.gridMaxX && + y >= this.renderConfig.gridMinY && + y <= this.renderConfig.gridMaxY ); } private calculateHorizontalScaledIndices(columnIndex: number): number { return ( - this.renderConfig.horizontalCoefficient * columnIndex - + this.renderConfig.horizontalConstant - + this.renderConfig.margin.left + this.renderConfig.horizontalCoefficient * columnIndex + + this.renderConfig.horizontalConstant + + this.renderConfig.margin.left ); } private calculateVerticalScaledIndices(rowIndex: number): number { return ( - this.renderConfig.verticalCoefficient * rowIndex - + this.renderConfig.verticalConstant - + this.renderConfig.margin.top + this.renderConfig.verticalCoefficient * rowIndex + + this.renderConfig.verticalConstant + + this.renderConfig.margin.top ); } diff --git a/packages/nimble-components/eslint.config.js b/packages/nimble-components/eslint.config.js new file mode 100644 index 0000000000..dcfa2ea30b --- /dev/null +++ b/packages/nimble-components/eslint.config.js @@ -0,0 +1,47 @@ +const { defineConfig } = require('eslint/config'); +const javascriptNimbleConfig = require('@ni-private/eslint-config-nimble/javascript'); +const componentsNimbleConfig = require('@ni-private/eslint-config-nimble/components'); + +module.exports = defineConfig([ + { + ignores: ['**/dist/**', '**/src/icons', '**/src/wafer-map/workers'] + }, + { + files: ['**/*.js'], + extends: javascriptNimbleConfig + }, + { + files: ['**/*.ts'], + extends: componentsNimbleConfig, + languageOptions: { + parserOptions: { + project: './tsconfig.json', + tsconfigRootDir: __dirname + } + }, + rules: { + // Disable strict null checks + '@typescript-eslint/no-unnecessary-condition': 'off', + '@typescript-eslint/strict-boolean-expressions': 'off', + '@typescript-eslint/no-unnecessary-boolean-literal-compare': 'off' + } + }, + { + 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: __dirname + } + } + } +]); diff --git a/packages/nimble-components/package.json b/packages/nimble-components/package.json index 2e5939c078..cdd866f386 100644 --- a/packages/nimble-components/package.json +++ b/packages/nimble-components/package.json @@ -4,10 +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\"", + "lint-concurrent": "concurrently --pad-prefix --timings --group \"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", "pack": "npm pack", @@ -125,8 +123,8 @@ "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", + "prettier-eslint": "^17.0.0-alpha.1", + "prettier-eslint-cli": "^9.0.0-alpha.2", "rollup": "^4.12.0", "rollup-plugin-sourcemaps2": "^0.5.0", "source-map-loader": "^5.0.0", diff --git a/packages/nimble-components/src/anchor-button/index.ts b/packages/nimble-components/src/anchor-button/index.ts index 70aae51df2..995267a953 100644 --- a/packages/nimble-components/src/anchor-button/index.ts +++ b/packages/nimble-components/src/anchor-button/index.ts @@ -21,7 +21,8 @@ declare global { */ export class AnchorButton extends AnchorBase - implements ButtonPattern, ButtonAppearanceVariantPattern { + implements ButtonPattern, ButtonAppearanceVariantPattern +{ /** * @public * @remarks diff --git a/packages/nimble-components/src/anchor-menu-item/tests/anchor-menu-item.spec.ts b/packages/nimble-components/src/anchor-menu-item/tests/anchor-menu-item.spec.ts index 5e082c91ad..f6f6d0da20 100644 --- a/packages/nimble-components/src/anchor-menu-item/tests/anchor-menu-item.spec.ts +++ b/packages/nimble-components/src/anchor-menu-item/tests/anchor-menu-item.spec.ts @@ -99,12 +99,12 @@ describe('Anchor Menu Item', () => { it('should set start slot visible and end slot not visible', async () => { await connect(); expect( - getComputedStyle(element.start).display === 'none' - || getComputedStyle(element.startContainer).display === 'none' + getComputedStyle(element.start).display === 'none' || + getComputedStyle(element.startContainer).display === 'none' ).toBeFalse(); expect( - getComputedStyle(element.end).display === 'none' - || getComputedStyle(element.endContainer).display === 'none' + getComputedStyle(element.end).display === 'none' || + getComputedStyle(element.endContainer).display === 'none' ).toBeTrue(); }); }); diff --git a/packages/nimble-components/src/anchor-tabs/index.ts b/packages/nimble-components/src/anchor-tabs/index.ts index a4edf6558e..0f60069855 100644 --- a/packages/nimble-components/src/anchor-tabs/index.ts +++ b/packages/nimble-components/src/anchor-tabs/index.ts @@ -100,7 +100,8 @@ export class AnchorTabs extends FoundationElement implements TabsOwner { if (this.showScrollButtons) { tabListVisibleWidth += buttonWidth * 2; } - this.showScrollButtons = tabListVisibleWidth < this.tablist.scrollWidth; + this.showScrollButtons = + tabListVisibleWidth < this.tablist.scrollWidth; } }); } @@ -189,7 +190,8 @@ export class AnchorTabs extends FoundationElement implements TabsOwner { if (!firstFocusableTab && this.isFocusableElement(tab)) { firstFocusableTab = tab; } - const isTabStop = this.activeid === tabId && this.isFocusableElement(tab); + const isTabStop = + this.activeid === tabId && this.isFocusableElement(tab); tab.setAttribute('id', tabId); if (isActiveTab) { tab.setAttribute('aria-current', 'page'); @@ -210,8 +212,8 @@ export class AnchorTabs extends FoundationElement implements TabsOwner { }); if ( - firstFocusableTab - && (!this.activetab || !this.isFocusableElement(this.activetab)) + firstFocusableTab && + (!this.activetab || !this.isFocusableElement(this.activetab)) ) { firstFocusableTab.setAttribute('tabindex', '0'); } @@ -226,8 +228,8 @@ export class AnchorTabs extends FoundationElement implements TabsOwner { private readonly handleTabClick = (event: MouseEvent): void => { const selectedTab = event.currentTarget as HTMLElement; if ( - selectedTab.nodeType === 1 - && this.isFocusableElement(selectedTab) + selectedTab.nodeType === 1 && + this.isFocusableElement(selectedTab) ) { this.tabs.forEach((tab: HTMLElement) => { tab.setAttribute('tabindex', tab === selectedTab ? '0' : '-1'); diff --git a/packages/nimble-components/src/anchor-tabs/tests/anchor-tabs.spec.ts b/packages/nimble-components/src/anchor-tabs/tests/anchor-tabs.spec.ts index b4d7ec3146..71cb00281e 100644 --- a/packages/nimble-components/src/anchor-tabs/tests/anchor-tabs.spec.ts +++ b/packages/nimble-components/src/anchor-tabs/tests/anchor-tabs.spec.ts @@ -422,7 +422,8 @@ describe('AnchorTabs', () => { it('should scroll left when the left scroll button is clicked', async () => { await tabsPageObject.setTabsWidth(300); element.activeid = 'tab-six'; // scrolls to the last tab - const currentScrollOffset = tabsPageObject.getTabsViewScrollOffset(); + const currentScrollOffset = + tabsPageObject.getTabsViewScrollOffset(); await tabsPageObject.clickScrollLeftButton(); expect(tabsPageObject.getTabsViewScrollOffset()).toBeLessThan( currentScrollOffset @@ -444,7 +445,8 @@ describe('AnchorTabs', () => { it('should not scroll right when the right scroll button is clicked and the last tab is active', async () => { await tabsPageObject.setTabsWidth(300); element.activeid = 'tab-six'; // scrolls to the last tab - const currentScrollOffset = tabsPageObject.getTabsViewScrollOffset(); + const currentScrollOffset = + tabsPageObject.getTabsViewScrollOffset(); await tabsPageObject.clickScrollRightButton(); expect(tabsPageObject.getTabsViewScrollOffset()).toBe( currentScrollOffset diff --git a/packages/nimble-components/src/anchor-tree-item/tests/anchor-tree-item.spec.ts b/packages/nimble-components/src/anchor-tree-item/tests/anchor-tree-item.spec.ts index 7f67bf3974..a96fa4e50b 100644 --- a/packages/nimble-components/src/anchor-tree-item/tests/anchor-tree-item.spec.ts +++ b/packages/nimble-components/src/anchor-tree-item/tests/anchor-tree-item.spec.ts @@ -106,8 +106,8 @@ describe('Anchor Tree Item', () => { it('should set start slot visible', async () => { await connect(); expect( - getComputedStyle(element.start).display === 'none' - || getComputedStyle(element.startContainer).display === 'none' + getComputedStyle(element.start).display === 'none' || + getComputedStyle(element.startContainer).display === 'none' ).toBeFalse(); }); }); diff --git a/packages/nimble-components/src/anchor/tests/anchor.spec.ts b/packages/nimble-components/src/anchor/tests/anchor.spec.ts index 17cb102f06..1d2f3d5d5e 100644 --- a/packages/nimble-components/src/anchor/tests/anchor.spec.ts +++ b/packages/nimble-components/src/anchor/tests/anchor.spec.ts @@ -158,7 +158,8 @@ describe('Anchor', () => { } it('acts like value is "true"', async () => { - ({ element, connect, disconnect } = await setupWithContenteditable()); + ({ element, connect, disconnect } = + await setupWithContenteditable()); await connect(); const innerAnchor = element.shadowRoot!.querySelector('a')!; expect(innerAnchor.isContentEditable).toBeTrue(); diff --git a/packages/nimble-components/src/breadcrumb/breadcrumb.foundation.spec.ts b/packages/nimble-components/src/breadcrumb/breadcrumb.foundation.spec.ts index 2553b183b2..32d3286122 100644 --- a/packages/nimble-components/src/breadcrumb/breadcrumb.foundation.spec.ts +++ b/packages/nimble-components/src/breadcrumb/breadcrumb.foundation.spec.ts @@ -94,7 +94,8 @@ 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 +120,8 @@ 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 +157,8 @@ 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/index.ts b/packages/nimble-components/src/breadcrumb/index.ts index 0944874915..cf27869843 100644 --- a/packages/nimble-components/src/breadcrumb/index.ts +++ b/packages/nimble-components/src/breadcrumb/index.ts @@ -48,7 +48,8 @@ export class Breadcrumb extends FoundationBreadcrumb { if (this.showScrollButtons) { listVisibleWidth += buttonWidth * 2; } - this.showScrollButtons = listVisibleWidth < this.list.scrollWidth; + this.showScrollButtons = + listVisibleWidth < this.list.scrollWidth; } }); } diff --git a/packages/nimble-components/src/breadcrumb/testing/breadcrumb.pageobject.ts b/packages/nimble-components/src/breadcrumb/testing/breadcrumb.pageobject.ts index 9c20ba437c..cd450cc274 100644 --- a/packages/nimble-components/src/breadcrumb/testing/breadcrumb.pageobject.ts +++ b/packages/nimble-components/src/breadcrumb/testing/breadcrumb.pageobject.ts @@ -25,7 +25,8 @@ export class BreadcrumbPageObject { if (index >= this.breadcrumbElement.slottedBreadcrumbItems.length) { throw new Error(`Breadcrumb with index ${index} not found`); } - const breadcrumb = this.breadcrumbElement.slottedBreadcrumbItems[index]!; + const breadcrumb = + this.breadcrumbElement.slottedBreadcrumbItems[index]!; breadcrumb.dispatchEvent(new KeyboardEvent('keydown', { key })); await waitForUpdatesAsync(); } @@ -37,9 +38,10 @@ export class BreadcrumbPageObject { } public async clickScrollLeftButton(): Promise { - const leftButton = this.breadcrumbElement.shadowRoot!.querySelector