From a447a0eecce457c025a64ac23aca348bad4b585f Mon Sep 17 00:00:00 2001 From: Nat Budin Date: Fri, 6 Nov 2026 11:46:41 -0800 Subject: [PATCH 1/3] Replace ESLint with oxlint for JS/TS and graphql-inspector for GraphQL - Add .oxlintrc.json (migrated from the ESLint config); eslint-plugin-i18next runs as an oxlint jsPlugin - Validate .graphql documents with graphql-inspector (deprecated-field warnings, max depth 10) via `yarn lint:graphql` - Remove ESLint, its plugins/configs, and eslint.config.mjs - Remove dangling `#import` comments from .graphql files (unused by codegen, and they broke the graphql-tools loader and VSCode) - Update the static analysis workflow and lint-staged accordingly Co-Authored-By: Claude Sonnet 5.5 --- .github/workflows/static.yml | 24 +- .gitignore | 1 - .oxlintrc.json | 333 ++ .../CmsContentGroupsAdmin/mutations.graphql | 2 - .../CmsContentGroupsAdmin/queries.graphql | 2 - .../CmsAdmin/CmsFilesAdmin/mutations.graphql | 2 - .../CmsGraphqlQueriesAdmin/mutations.graphql | 2 - .../CmsLayoutsAdmin/mutations.graphql | 2 - .../CmsAdmin/CmsPagesAdmin/mutations.graphql | 2 - .../CmsPartialsAdmin/mutations.graphql | 2 - .../CmsVariablesAdmin/mutations.graphql | 2 - .../NavigationItemsAdmin/mutations.graphql | 2 - .../ConventionAdmin/mutations.graphql | 2 - .../DepartmentAdmin/mutations.graphql | 2 - app/javascript/EventAdmin/mutations.graphql | 2 - app/javascript/EventAdmin/queries.graphql | 2 - .../EventCategoryAdmin/mutations.graphql | 2 - .../EventProposals/mutations.graphql | 2 - app/javascript/EventProposals/queries.graphql | 2 - .../EventCatalog/EventList/queries.graphql | 3 - .../EventPage/eventHistoryQuery.graphql | 2 - .../EventsApp/EventPage/mutations.graphql | 3 - .../EventsApp/EventPage/queries.graphql | 3 - .../EventsApp/MySignupQueue/mutations.graphql | 2 - .../EventsApp/ScheduleGrid/queries.graphql | 2 - .../EventsApp/SignupAdmin/mutations.graphql | 4 - .../EventsApp/SignupAdmin/queries.graphql | 2 - .../StandaloneEditEvent/mutations.graphql | 2 - .../StandaloneEditEvent/queries.graphql | 3 - .../TeamMemberAdmin/mutations.graphql | 2 - .../EventsApp/TeamMemberAdmin/queries.graphql | 2 - app/javascript/EventsApp/queries.graphql | 2 - app/javascript/FormAdmin/mutations.graphql | 2 - app/javascript/FormAdmin/queries.graphql | 2 - app/javascript/MyProfile/queries.graphql | 2 - app/javascript/MyTicket/queries.graphql | 2 - .../NotificationAdmin/mutations.graphql | 2 - .../OAuthApplicationAdmin/mutations.graphql | 2 - .../OrganizationAdmin/mutations.graphql | 2 - app/javascript/Reports/queries.graphql | 2 - app/javascript/RoomsAdmin/mutations.graphql | 2 - .../RootSiteAdmin/mutations.graphql | 2 - .../mutations.graphql | 2 - .../mutations.graphql | 2 - .../SignupModeration/mutations.graphql | 2 - .../SignupModeration/queries.graphql | 4 - .../SignupRoundsAdmin/mutations.graphql | 2 - .../StaffPositionAdmin/mutations.graphql | 2 - .../StaffPositionAdmin/queries.graphql | 2 - app/javascript/Store/Cart/queries.graphql | 2 - .../Store/CouponAdmin/mutations.graphql | 2 - .../Store/CouponAdmin/queries.graphql | 2 - .../Store/OrderAdmin/mutations.graphql | 2 - .../Store/OrderAdmin/queries.graphql | 2 - .../Store/ProductAdmin/mutations.graphql | 2 - .../Store/ProductAdmin/queries.graphql | 2 - .../Store/adminProductFields.graphql | 1 - app/javascript/Store/mutations.graphql | 3 - app/javascript/Store/orderFields.graphql | 2 - app/javascript/Store/queries.graphql | 3 - .../TicketTypeAdmin/mutations.graphql | 2 - .../TicketTypeAdmin/queries.graphql | 2 - .../UserActivityAlerts/mutations.graphql | 2 - .../UserConProfiles/mutations.graphql | 2 - .../UserConProfiles/queries.graphql | 4 - app/javascript/Users/mutations.graphql | 2 - eslint.config.mjs | 305 -- package.json | 29 +- yarn.lock | 3334 +++++------------ 69 files changed, 1360 insertions(+), 2803 deletions(-) create mode 100644 .oxlintrc.json delete mode 100644 eslint.config.mjs diff --git a/.github/workflows/static.yml b/.github/workflows/static.yml index 681dfdd6406..ee3f3b1b570 100644 --- a/.github/workflows/static.yml +++ b/.github/workflows/static.yml @@ -45,32 +45,16 @@ jobs: - run: yarn install - run: yarn build:web - run: yarn check-graphql-documents - eslint: - name: eslint + lint: + name: lint runs-on: ubuntu-latest permissions: contents: read - pull-requests: write steps: - uses: actions/checkout@v7 - uses: actions/setup-node@v7 with: cache: yarn - run: yarn install - - run: mkdir -p /home/runner/.local/bin - - run: echo "#!/bin/sh" > /home/runner/.local/bin/eslint - - run: echo "yarn run eslint \$@" >> /home/runner/.local/bin/eslint - - run: cat /home/runner/.local/bin/eslint - - run: chmod +x /home/runner/.local/bin/eslint - - run: eslint --version - # Pinned below v1.35.0: that release switched the action's internal eslint - # invocation from `npx --no-install -c "eslint ..."` (a shell string, which - # respects $PATH and finds the shim above) to `npx --no-install eslint ...` - # (bare argv form, which does not). Since this repo uses Yarn PnP (no - # node_modules/.bin), the bare form can't resolve eslint locally and npx - # falls back to fetching eslint's latest release from the registry, which - # --no-install then refuses to do. See reviewdog/action-eslint#258. - - uses: reviewdog/action-eslint@v1.36.1 - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - eslint_flags: 'app/javascript test/javascript schema.graphql' + - run: yarn oxlint app/javascript test/javascript --format=github + - run: yarn lint:graphql diff --git a/.gitignore b/.gitignore index 8dfd8ba067e..d13bf4596ca 100644 --- a/.gitignore +++ b/.gitignore @@ -92,7 +92,6 @@ cookbooks /.threeman # eslint keeps a local cache of what's changed -/.eslintcache # Hello vscode users /.vscode diff --git a/.oxlintrc.json b/.oxlintrc.json new file mode 100644 index 00000000000..1042a2ec5dc --- /dev/null +++ b/.oxlintrc.json @@ -0,0 +1,333 @@ +{ + "$schema": "./node_modules/oxlint/configuration_schema.json", + "plugins": [ + "react", + "typescript", + "vitest", + "jsx-a11y", + "import", + "unicorn" + ], + "categories": { + "correctness": "off" + }, + "env": { + "builtin": true, + "es6": true, + "amd": true, + "browser": true, + "node": true + }, + "globals": { + "$": "off", + "jQuery": "off", + "suite": "writable", + "test": "writable", + "describe": "writable", + "it": "writable", + "expectTypeOf": "writable", + "assertType": "writable", + "expect": "writable", + "assert": "writable", + "chai": "writable", + "vitest": "writable", + "vi": "writable", + "beforeAll": "writable", + "afterAll": "writable", + "beforeEach": "writable", + "afterEach": "writable", + "onTestFailed": "writable", + "onTestFinished": "writable" + }, + "ignorePatterns": [ + "node_modules", + "public", + "config", + "doc-site", + "cms_content_sets", + ".yarn", + ".react-router", + "coverage", + "build/framework", + "**/*.generated.ts", + "**/*{.,-}min.js" + ], + "rules": { + "constructor-super": "error", + "for-direction": "error", + "getter-return": "error", + "no-async-promise-executor": "error", + "no-case-declarations": "error", + "no-class-assign": "error", + "no-compare-neg-zero": "error", + "no-cond-assign": "error", + "no-const-assign": "error", + "no-constant-binary-expression": "error", + "no-constant-condition": "error", + "no-control-regex": "error", + "no-debugger": "error", + "no-delete-var": "error", + "no-dupe-class-members": "error", + "no-dupe-else-if": "error", + "no-dupe-keys": "error", + "no-duplicate-case": "error", + "no-empty": "error", + "no-empty-character-class": "error", + "no-empty-pattern": "error", + "no-empty-static-block": "error", + "no-ex-assign": "error", + "no-extra-boolean-cast": "error", + "no-fallthrough": "error", + "no-func-assign": "error", + "no-global-assign": "error", + "no-import-assign": "error", + "no-invalid-regexp": "error", + "no-irregular-whitespace": "error", + "no-loss-of-precision": "error", + "no-misleading-character-class": "error", + "no-new-native-nonconstructor": "error", + "no-nonoctal-decimal-escape": "error", + "no-obj-calls": "error", + "no-prototype-builtins": "error", + "no-redeclare": "error", + "no-regex-spaces": "error", + "no-self-assign": "error", + "no-setter-return": "error", + "no-shadow-restricted-names": "error", + "no-sparse-arrays": "error", + "no-this-before-super": "error", + "no-unreachable": "error", + "no-unsafe-finally": "error", + "no-unsafe-negation": "error", + "no-unsafe-optional-chaining": "error", + "no-unused-labels": "error", + "no-unused-private-class-members": "error", + "no-unused-vars": [ + "error", + { + "ignoreRestSiblings": true + } + ], + "no-useless-backreference": "error", + "no-useless-catch": "error", + "no-useless-escape": "error", + "no-with": "error", + "require-yield": "error", + "use-isnan": "error", + "valid-typeof": "error", + "react/display-name": "error", + "react/jsx-key": "error", + "react/jsx-no-comment-textnodes": "error", + "react/jsx-no-duplicate-props": "error", + "react/jsx-no-target-blank": "error", + "react/jsx-no-undef": "error", + "react/no-children-prop": "error", + "react/no-danger-with-children": "error", + "react/no-direct-mutation-state": "error", + "react/no-find-dom-node": "error", + "react/no-is-mounted": "error", + "react/no-render-return-value": "error", + "react/no-string-refs": "error", + "react/no-unescaped-entities": "error", + "react/no-unknown-property": "error", + "no-array-constructor": "error", + "no-unused-expressions": "error", + "vitest/expect-expect": "error", + "vitest/no-commented-out-tests": "error", + "vitest/no-conditional-expect": "error", + "vitest/no-disabled-tests": "warn", + "vitest/no-focused-tests": "error", + "vitest/no-identical-title": "error", + "vitest/no-import-node-test": "error", + "vitest/no-interpolation-in-snapshots": "error", + "vitest/no-mocks-import": "error", + "vitest/no-standalone-expect": "error", + "vitest/no-unneeded-async-expect-function": "error", + "vitest/prefer-called-exactly-once-with": "error", + "vitest/require-local-test-context-for-concurrent-snapshots": "error", + "vitest/valid-describe-callback": "error", + "vitest/valid-expect": "error", + "vitest/valid-expect-in-promise": "error", + "vitest/valid-title": "error", + "no-underscore-dangle": [ + "error", + { + "allow": [ + "__typename" + ] + } + ], + "jsx-a11y/label-has-associated-control": [ + "error", + { + "labelAttributes": [ + "inputId" + ], + "controlComponents": [ + "Select" + ] + } + ], + "jsx-a11y/control-has-associated-label": [ + "error", + { + "ignoreElements": [ + "tr", + "th", + "td" + ] + } + ], + "no-restricted-imports": [ + "error", + "graphql-tag" + ], + "prefer-arrow-callback": [ + "error", + { + "allowNamedFunctions": true + } + ], + "react/rules-of-hooks": "error", + "react/exhaustive-deps": "warn", + "react/static-components": "error", + "react/use-memo": "error", + "react/preserve-manual-memoization": "error", + "react/incompatible-library": "warn", + "react/immutability": "error", + "react/globals": "error", + "react/refs": "error", + "react/set-state-in-effect": "error", + "react/error-boundaries": "error", + "react/purity": "error", + "react/set-state-in-render": "error", + "react/unsupported-syntax": "warn", + "typescript/ban-ts-comment": "error", + "typescript/no-duplicate-enum-values": "error", + "typescript/no-empty-object-type": "error", + "typescript/no-explicit-any": "error", + "typescript/no-extra-non-null-assertion": "error", + "typescript/no-misused-new": "error", + "typescript/no-namespace": "error", + "typescript/no-non-null-asserted-optional-chain": "error", + "typescript/no-require-imports": "error", + "typescript/no-this-alias": "error", + "typescript/no-unnecessary-type-constraint": "error", + "typescript/no-unsafe-declaration-merging": "error", + "typescript/no-unsafe-function-type": "error", + "typescript/no-wrapper-object-types": "error", + "typescript/prefer-as-const": "error", + "typescript/prefer-namespace-keyword": "error", + "typescript/triple-slash-reference": "error" + }, + "overrides": [ + { + "files": [ + "**/*.ts", + "**/*.tsx", + "**/*.mts", + "**/*.cts" + ], + "rules": { + "constructor-super": "off", + "getter-return": "off", + "no-class-assign": "off", + "no-const-assign": "off", + "no-dupe-class-members": "off", + "no-dupe-keys": "off", + "no-func-assign": "off", + "no-import-assign": "off", + "no-new-native-nonconstructor": "off", + "no-obj-calls": "off", + "no-redeclare": "off", + "no-setter-return": "off", + "no-this-before-super": "off", + "no-unreachable": "off", + "no-unsafe-negation": "off", + "no-var": "error", + "no-with": "off", + "prefer-const": "error", + "prefer-rest-params": "error", + "prefer-spread": "error" + } + }, + { + "files": [ + "app/javascript/**/*.tsx" + ], + "rules": { + "i18next/no-literal-string": [ + "warn", + { + "mode": "all", + "callees": { + "include": [ + "usePageTitle" + ] + }, + "object-properties": { + "exclude": [ + "id", + "accessor", + "defaultVisibleColumns", + "__typename", + "payment_options", + "path" + ] + }, + "jsx-attributes": { + "include": [ + "title", + "aria-label", + "caption", + "placeholder", + "label", + "helpText", + "stringError", + "alt" + ] + }, + "should-validate-template": true + } + ] + }, + "jsPlugins": [ + "eslint-plugin-i18next" + ] + }, + { + "files": [ + "**/*.ts", + "**/*.tsx" + ], + "rules": { + "no-restricted-imports": [ + "error", + { + "paths": [ + "graphql-tag", + "prop-types", + { + "name": "@apollo/client", + "importNames": [ + "gql" + ], + "message": "Please define GraphQL operations in .graphql files and use graphql-code-generator to generate hooks" + }, + { + "name": "i18next", + "importNames": [ + "t" + ], + "message": "Please import useTranslation from react-i18next instead" + } + ] + } + ], + "typescript/no-extra-non-null-assertion": [ + "error" + ] + } + } + ] +} diff --git a/app/javascript/CmsAdmin/CmsContentGroupsAdmin/mutations.graphql b/app/javascript/CmsAdmin/CmsContentGroupsAdmin/mutations.graphql index 0ed3a1b9477..d151356bd62 100644 --- a/app/javascript/CmsAdmin/CmsContentGroupsAdmin/mutations.graphql +++ b/app/javascript/CmsAdmin/CmsContentGroupsAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateContentGroup($cmsContentGroup: CmsContentGroupInput!, $permissions: [PermissionInput!]) { createCmsContentGroup(input: { cms_content_group: $cmsContentGroup, permissions: $permissions }) { cms_content_group { diff --git a/app/javascript/CmsAdmin/CmsContentGroupsAdmin/queries.graphql b/app/javascript/CmsAdmin/CmsContentGroupsAdmin/queries.graphql index cdb2bc80617..d0c832be9cc 100644 --- a/app/javascript/CmsAdmin/CmsContentGroupsAdmin/queries.graphql +++ b/app/javascript/CmsAdmin/CmsContentGroupsAdmin/queries.graphql @@ -1,5 +1,3 @@ -#import "../../Permissions/fragments.graphql" - fragment CmsContentFields on CmsContent { __typename diff --git a/app/javascript/CmsAdmin/CmsFilesAdmin/mutations.graphql b/app/javascript/CmsAdmin/CmsFilesAdmin/mutations.graphql index 4b10c488a85..5c8ca69291a 100644 --- a/app/javascript/CmsAdmin/CmsFilesAdmin/mutations.graphql +++ b/app/javascript/CmsAdmin/CmsFilesAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateCmsFile($signedBlobId: ID!) { createCmsFile(input: { signedBlobId: $signedBlobId }) { cms_file { diff --git a/app/javascript/CmsAdmin/CmsGraphqlQueriesAdmin/mutations.graphql b/app/javascript/CmsAdmin/CmsGraphqlQueriesAdmin/mutations.graphql index 796959bcd22..56884d0312c 100644 --- a/app/javascript/CmsAdmin/CmsGraphqlQueriesAdmin/mutations.graphql +++ b/app/javascript/CmsAdmin/CmsGraphqlQueriesAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateCmsGraphqlQuery($query: CmsGraphqlQueryInput!) { createCmsGraphqlQuery(input: { query: $query }) { query { diff --git a/app/javascript/CmsAdmin/CmsLayoutsAdmin/mutations.graphql b/app/javascript/CmsAdmin/CmsLayoutsAdmin/mutations.graphql index 943a011e6f8..6aadd8b4f8f 100644 --- a/app/javascript/CmsAdmin/CmsLayoutsAdmin/mutations.graphql +++ b/app/javascript/CmsAdmin/CmsLayoutsAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateLayout($cmsLayout: CmsLayoutInput!) { createCmsLayout(input: { cms_layout: $cmsLayout }) { cms_layout { diff --git a/app/javascript/CmsAdmin/CmsPagesAdmin/mutations.graphql b/app/javascript/CmsAdmin/CmsPagesAdmin/mutations.graphql index 6865c6d2e2b..4042b69a765 100644 --- a/app/javascript/CmsAdmin/CmsPagesAdmin/mutations.graphql +++ b/app/javascript/CmsAdmin/CmsPagesAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreatePage($page: PageInput!) { createPage(input: { page: $page }) { page { diff --git a/app/javascript/CmsAdmin/CmsPartialsAdmin/mutations.graphql b/app/javascript/CmsAdmin/CmsPartialsAdmin/mutations.graphql index 814019910ac..c3427895011 100644 --- a/app/javascript/CmsAdmin/CmsPartialsAdmin/mutations.graphql +++ b/app/javascript/CmsAdmin/CmsPartialsAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreatePartial($cmsPartial: CmsPartialInput!, $partialBlockName: CmsPartialBlockName) { createCmsPartial(input: { cms_partial: $cmsPartial, partial_block_name: $partialBlockName }) { cms_partial { diff --git a/app/javascript/CmsAdmin/CmsVariablesAdmin/mutations.graphql b/app/javascript/CmsAdmin/CmsVariablesAdmin/mutations.graphql index 880861c35c1..7e8724e3bdf 100644 --- a/app/javascript/CmsAdmin/CmsVariablesAdmin/mutations.graphql +++ b/app/javascript/CmsAdmin/CmsVariablesAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation SetCmsVariableMutation($key: String!, $value_json: String!) { setCmsVariable(input: { cms_variable: { key: $key, value_json: $value_json } }) { cms_variable { diff --git a/app/javascript/CmsAdmin/NavigationItemsAdmin/mutations.graphql b/app/javascript/CmsAdmin/NavigationItemsAdmin/mutations.graphql index a5fd5b1a5ce..be41032b71e 100644 --- a/app/javascript/CmsAdmin/NavigationItemsAdmin/mutations.graphql +++ b/app/javascript/CmsAdmin/NavigationItemsAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateNavigationItem($navigationItem: CmsNavigationItemInput!) { createCmsNavigationItem(input: { cms_navigation_item: $navigationItem }) { cms_navigation_item { diff --git a/app/javascript/ConventionAdmin/mutations.graphql b/app/javascript/ConventionAdmin/mutations.graphql index 12c452f3ca1..ba230ceef09 100644 --- a/app/javascript/ConventionAdmin/mutations.graphql +++ b/app/javascript/ConventionAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation UpdateConvention($input: UpdateConventionInput!) { updateConvention(input: $input) { convention { diff --git a/app/javascript/DepartmentAdmin/mutations.graphql b/app/javascript/DepartmentAdmin/mutations.graphql index 6b9783a4d56..99598c2ca65 100644 --- a/app/javascript/DepartmentAdmin/mutations.graphql +++ b/app/javascript/DepartmentAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateDepartment($department: DepartmentInput!) { createDepartment(input: { department: $department }) { department { diff --git a/app/javascript/EventAdmin/mutations.graphql b/app/javascript/EventAdmin/mutations.graphql index 1455f440528..3f6ba2b30d3 100644 --- a/app/javascript/EventAdmin/mutations.graphql +++ b/app/javascript/EventAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateEvent($input: CreateEventInput!) { createEvent(input: $input) { event { diff --git a/app/javascript/EventAdmin/queries.graphql b/app/javascript/EventAdmin/queries.graphql index 28b428c96ec..5bfc44098e3 100644 --- a/app/javascript/EventAdmin/queries.graphql +++ b/app/javascript/EventAdmin/queries.graphql @@ -1,5 +1,3 @@ -#import "../Models/commonFormFragments.graphql" - fragment TicketTypeFields on TicketType { id description diff --git a/app/javascript/EventCategoryAdmin/mutations.graphql b/app/javascript/EventCategoryAdmin/mutations.graphql index d29713dae8d..889250704ab 100644 --- a/app/javascript/EventCategoryAdmin/mutations.graphql +++ b/app/javascript/EventCategoryAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateEventCategory($eventCategory: EventCategoryInput!) { createEventCategory(input: { event_category: $eventCategory }) { event_category { diff --git a/app/javascript/EventProposals/mutations.graphql b/app/javascript/EventProposals/mutations.graphql index b541ed473a3..05935835263 100644 --- a/app/javascript/EventProposals/mutations.graphql +++ b/app/javascript/EventProposals/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateEventProposal($cloneEventProposalId: ID, $eventCategoryId: ID!) { createEventProposal(input: { cloneEventProposalId: $cloneEventProposalId, eventCategoryId: $eventCategoryId }) { event_proposal { diff --git a/app/javascript/EventProposals/queries.graphql b/app/javascript/EventProposals/queries.graphql index affbc5c6cf1..87b0ccd17de 100644 --- a/app/javascript/EventProposals/queries.graphql +++ b/app/javascript/EventProposals/queries.graphql @@ -1,5 +1,3 @@ -#import "../Models/commonFormFragments.graphql" - fragment EventProposalFields on EventProposal { id title diff --git a/app/javascript/EventsApp/EventCatalog/EventList/queries.graphql b/app/javascript/EventsApp/EventCatalog/EventList/queries.graphql index 9281734115f..2ed430dd910 100644 --- a/app/javascript/EventsApp/EventCatalog/EventList/queries.graphql +++ b/app/javascript/EventsApp/EventCatalog/EventList/queries.graphql @@ -1,6 +1,3 @@ -#import "../queries.graphql" -#import "../../Models/commonFormFragments.graphql" - query EventListEventsQuery( $page: Int $pageSize: Int diff --git a/app/javascript/EventsApp/EventPage/eventHistoryQuery.graphql b/app/javascript/EventsApp/EventPage/eventHistoryQuery.graphql index b48c16ec11a..098aff10f23 100644 --- a/app/javascript/EventsApp/EventPage/eventHistoryQuery.graphql +++ b/app/javascript/EventsApp/EventPage/eventHistoryQuery.graphql @@ -1,5 +1,3 @@ -#import "../../Models/commonFormFragments.graphql" - query EventHistoryQuery($id: ID!) { convention: conventionByRequestHost { id diff --git a/app/javascript/EventsApp/EventPage/mutations.graphql b/app/javascript/EventsApp/EventPage/mutations.graphql index 9f854793c17..c3e316f63f8 100644 --- a/app/javascript/EventsApp/EventPage/mutations.graphql +++ b/app/javascript/EventsApp/EventPage/mutations.graphql @@ -1,6 +1,3 @@ -#import "./queries.graphql" -#import "../queries.graphql" - mutation CreateMySignup($runId: ID!, $requestedBucketId: ID, $noRequestedBucket: Boolean) { createMySignup( input: { runId: $runId, requestedBucketId: $requestedBucketId, no_requested_bucket: $noRequestedBucket } diff --git a/app/javascript/EventsApp/EventPage/queries.graphql b/app/javascript/EventsApp/EventPage/queries.graphql index 577b81c1277..69a8e0f22dc 100644 --- a/app/javascript/EventsApp/EventPage/queries.graphql +++ b/app/javascript/EventsApp/EventPage/queries.graphql @@ -1,6 +1,3 @@ -#import "../queries.graphql" -#import "../../Models/commonFormFragments.graphql" - fragment MySignupFields on Signup { id state diff --git a/app/javascript/EventsApp/MySignupQueue/mutations.graphql b/app/javascript/EventsApp/MySignupQueue/mutations.graphql index 2411e6a8e82..d5a83e9deea 100644 --- a/app/javascript/EventsApp/MySignupQueue/mutations.graphql +++ b/app/javascript/EventsApp/MySignupQueue/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation DeleteSignupRankedChoice($id: ID!) { deleteSignupRankedChoice(input: { id: $id }) { clientMutationId diff --git a/app/javascript/EventsApp/ScheduleGrid/queries.graphql b/app/javascript/EventsApp/ScheduleGrid/queries.graphql index bb2444615d1..4676d2c0dac 100644 --- a/app/javascript/EventsApp/ScheduleGrid/queries.graphql +++ b/app/javascript/EventsApp/ScheduleGrid/queries.graphql @@ -1,5 +1,3 @@ -#import "../queries.graphql" - fragment ScheduleGridEventFragment on Event { id title diff --git a/app/javascript/EventsApp/SignupAdmin/mutations.graphql b/app/javascript/EventsApp/SignupAdmin/mutations.graphql index d3c1ca100f0..813e881c94d 100644 --- a/app/javascript/EventsApp/SignupAdmin/mutations.graphql +++ b/app/javascript/EventsApp/SignupAdmin/mutations.graphql @@ -1,7 +1,3 @@ -#import "./queries.graphql" -#import "../EventPage/queries.graphql" -#import "../queries.graphql" - mutation ChangeSignupBucket($signupId: ID!, $bucketKey: String!) { updateSignupBucket(input: { id: $signupId, bucket_key: $bucketKey }) { signup { diff --git a/app/javascript/EventsApp/SignupAdmin/queries.graphql b/app/javascript/EventsApp/SignupAdmin/queries.graphql index 0cad755359b..afc3d944f96 100644 --- a/app/javascript/EventsApp/SignupAdmin/queries.graphql +++ b/app/javascript/EventsApp/SignupAdmin/queries.graphql @@ -1,5 +1,3 @@ -#import "../queries.graphql" - fragment SignupFields on Signup { id state diff --git a/app/javascript/EventsApp/StandaloneEditEvent/mutations.graphql b/app/javascript/EventsApp/StandaloneEditEvent/mutations.graphql index 5b72a511790..b0e8f8b6b9b 100644 --- a/app/javascript/EventsApp/StandaloneEditEvent/mutations.graphql +++ b/app/javascript/EventsApp/StandaloneEditEvent/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation StandaloneUpdateEvent($input: UpdateEventInput!) { updateEvent(input: $input) { event { diff --git a/app/javascript/EventsApp/StandaloneEditEvent/queries.graphql b/app/javascript/EventsApp/StandaloneEditEvent/queries.graphql index cbaaa09575b..ab9b551bbb0 100644 --- a/app/javascript/EventsApp/StandaloneEditEvent/queries.graphql +++ b/app/javascript/EventsApp/StandaloneEditEvent/queries.graphql @@ -1,6 +1,3 @@ -#import "../queries.graphql" -#import "../../Models/commonFormFragments.graphql" - fragment StandaloneEditEvent_TicketTypeFields on TicketType { id description diff --git a/app/javascript/EventsApp/TeamMemberAdmin/mutations.graphql b/app/javascript/EventsApp/TeamMemberAdmin/mutations.graphql index 1381a068d32..205e4286639 100644 --- a/app/javascript/EventsApp/TeamMemberAdmin/mutations.graphql +++ b/app/javascript/EventsApp/TeamMemberAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateTeamMember($input: CreateTeamMemberInput!) { createTeamMember(input: $input) { team_member { diff --git a/app/javascript/EventsApp/TeamMemberAdmin/queries.graphql b/app/javascript/EventsApp/TeamMemberAdmin/queries.graphql index 2920809b66e..24bdb7a9ccb 100644 --- a/app/javascript/EventsApp/TeamMemberAdmin/queries.graphql +++ b/app/javascript/EventsApp/TeamMemberAdmin/queries.graphql @@ -1,5 +1,3 @@ -#import "../queries.graphql" - fragment TeamMemberTicketFields on Ticket { id diff --git a/app/javascript/EventsApp/queries.graphql b/app/javascript/EventsApp/queries.graphql index 2fea8f9f2a4..7f3387080f4 100644 --- a/app/javascript/EventsApp/queries.graphql +++ b/app/javascript/EventsApp/queries.graphql @@ -1,5 +1,3 @@ -#import "../Models/commonFormFragments.graphql" - fragment CommonConventionData on Convention { id name diff --git a/app/javascript/FormAdmin/mutations.graphql b/app/javascript/FormAdmin/mutations.graphql index fb855dc0387..642c8f30a92 100644 --- a/app/javascript/FormAdmin/mutations.graphql +++ b/app/javascript/FormAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateFormWithJSON($formJSON: String!, $formType: FormType!) { createFormWithJSON(input: { form_json: $formJSON, form_type: $formType }) { form { diff --git a/app/javascript/FormAdmin/queries.graphql b/app/javascript/FormAdmin/queries.graphql index 298a34d553f..7bc90307822 100644 --- a/app/javascript/FormAdmin/queries.graphql +++ b/app/javascript/FormAdmin/queries.graphql @@ -1,5 +1,3 @@ -#import "../Models/commonFormFragments.graphql" - fragment FormFields on Form { id title diff --git a/app/javascript/MyProfile/queries.graphql b/app/javascript/MyProfile/queries.graphql index 2887de8a605..9ecae31ddbc 100644 --- a/app/javascript/MyProfile/queries.graphql +++ b/app/javascript/MyProfile/queries.graphql @@ -1,5 +1,3 @@ -#import "../Models/commonFormFragments.graphql"; - query MyProfileQuery { convention: conventionByRequestHost { id diff --git a/app/javascript/MyTicket/queries.graphql b/app/javascript/MyTicket/queries.graphql index 6c896523319..37bd6f9581c 100644 --- a/app/javascript/MyTicket/queries.graphql +++ b/app/javascript/MyTicket/queries.graphql @@ -1,5 +1,3 @@ -#import "../Store/pricingStructureFields.graphql" - query TicketPurchaseFormQuery { convention: conventionByRequestHost { id diff --git a/app/javascript/NotificationAdmin/mutations.graphql b/app/javascript/NotificationAdmin/mutations.graphql index 58af96f0d1b..ef475f41498 100644 --- a/app/javascript/NotificationAdmin/mutations.graphql +++ b/app/javascript/NotificationAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation UpdateNotificationTemplate( $eventKey: NotificationEventKey! $notificationTemplate: NotificationTemplateInput! diff --git a/app/javascript/OAuthApplicationAdmin/mutations.graphql b/app/javascript/OAuthApplicationAdmin/mutations.graphql index 871c92a9dee..4f128abb40c 100644 --- a/app/javascript/OAuthApplicationAdmin/mutations.graphql +++ b/app/javascript/OAuthApplicationAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateOAuthApplication($input: CreateOAuthApplicationInput!) { createOAuthApplication(input: $input) { oauth_application { diff --git a/app/javascript/OrganizationAdmin/mutations.graphql b/app/javascript/OrganizationAdmin/mutations.graphql index 96cfdfb8ae7..7b032863a62 100644 --- a/app/javascript/OrganizationAdmin/mutations.graphql +++ b/app/javascript/OrganizationAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateOrganizationRole( $organizationId: ID! $name: String! diff --git a/app/javascript/Reports/queries.graphql b/app/javascript/Reports/queries.graphql index d340acc1e84..d9d23e6699f 100644 --- a/app/javascript/Reports/queries.graphql +++ b/app/javascript/Reports/queries.graphql @@ -1,5 +1,3 @@ -#import "../Store/pricingStructureFields.graphql" - query ReportsMenuQuery { convention: conventionByRequestHost { id diff --git a/app/javascript/RoomsAdmin/mutations.graphql b/app/javascript/RoomsAdmin/mutations.graphql index 79fcb3626ba..404e3e684d1 100644 --- a/app/javascript/RoomsAdmin/mutations.graphql +++ b/app/javascript/RoomsAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateRoom($input: CreateRoomInput!) { createRoom(input: $input) { room { diff --git a/app/javascript/RootSiteAdmin/mutations.graphql b/app/javascript/RootSiteAdmin/mutations.graphql index 2064aca2254..0cbf2a364aa 100644 --- a/app/javascript/RootSiteAdmin/mutations.graphql +++ b/app/javascript/RootSiteAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation UpdateRootSite($siteName: String, $authLayoutId: ID, $defaultLayoutId: ID, $rootPageId: ID) { updateRootSite( input: { diff --git a/app/javascript/RootSiteConventionsAdmin/mutations.graphql b/app/javascript/RootSiteConventionsAdmin/mutations.graphql index 36a48cc1af0..28532298a1d 100644 --- a/app/javascript/RootSiteConventionsAdmin/mutations.graphql +++ b/app/javascript/RootSiteConventionsAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateConvention( $convention: ConventionInput! $cloneConventionId: ID diff --git a/app/javascript/RootSiteEmailRoutesAdmin/mutations.graphql b/app/javascript/RootSiteEmailRoutesAdmin/mutations.graphql index 2f95264e616..c86577a32b4 100644 --- a/app/javascript/RootSiteEmailRoutesAdmin/mutations.graphql +++ b/app/javascript/RootSiteEmailRoutesAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateEmailRoute($emailRoute: EmailRouteInput!) { createEmailRoute(input: { email_route: $emailRoute }) { email_route { diff --git a/app/javascript/SignupModeration/mutations.graphql b/app/javascript/SignupModeration/mutations.graphql index df134c6201f..48aeed717f4 100644 --- a/app/javascript/SignupModeration/mutations.graphql +++ b/app/javascript/SignupModeration/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateUserSignup( $runId: ID! $userConProfileId: ID! diff --git a/app/javascript/SignupModeration/queries.graphql b/app/javascript/SignupModeration/queries.graphql index abbf110ad9d..a3555c65589 100644 --- a/app/javascript/SignupModeration/queries.graphql +++ b/app/javascript/SignupModeration/queries.graphql @@ -1,7 +1,3 @@ -#import "../EventsApp/EventPage/queries.graphql" -#import "../Store/pricingStructureFields.graphql" -#import "../MySignupQueue/queries.graphql" - fragment SignupModerationRunFields on Run { id title_suffix diff --git a/app/javascript/SignupRoundsAdmin/mutations.graphql b/app/javascript/SignupRoundsAdmin/mutations.graphql index cabfab562a7..fa10facf895 100644 --- a/app/javascript/SignupRoundsAdmin/mutations.graphql +++ b/app/javascript/SignupRoundsAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateSignupRound($conventionId: ID!, $signupRound: SignupRoundInput!) { createSignupRound(input: { conventionId: $conventionId, signupRound: $signupRound }) { signup_round { diff --git a/app/javascript/StaffPositionAdmin/mutations.graphql b/app/javascript/StaffPositionAdmin/mutations.graphql index 05dae815870..67a58f3b748 100644 --- a/app/javascript/StaffPositionAdmin/mutations.graphql +++ b/app/javascript/StaffPositionAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateStaffPosition($input: CreateStaffPositionInput!) { createStaffPosition(input: $input) { staff_position { diff --git a/app/javascript/StaffPositionAdmin/queries.graphql b/app/javascript/StaffPositionAdmin/queries.graphql index 077ef6ed17b..6ceae613569 100644 --- a/app/javascript/StaffPositionAdmin/queries.graphql +++ b/app/javascript/StaffPositionAdmin/queries.graphql @@ -1,5 +1,3 @@ -#import "../Permissions/fragments.graphql" - fragment StaffPositionFields on StaffPosition { id name diff --git a/app/javascript/Store/Cart/queries.graphql b/app/javascript/Store/Cart/queries.graphql index e19d2605879..89af994d8ef 100644 --- a/app/javascript/Store/Cart/queries.graphql +++ b/app/javascript/Store/Cart/queries.graphql @@ -1,5 +1,3 @@ -#import "../orderFields.graphql" - query CartQuery { convention: conventionByRequestHost { id diff --git a/app/javascript/Store/CouponAdmin/mutations.graphql b/app/javascript/Store/CouponAdmin/mutations.graphql index 2fc69a940ad..5da2f361835 100644 --- a/app/javascript/Store/CouponAdmin/mutations.graphql +++ b/app/javascript/Store/CouponAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateCoupon($coupon: CouponInput!) { createCoupon(input: { coupon: $coupon }) { coupon { diff --git a/app/javascript/Store/CouponAdmin/queries.graphql b/app/javascript/Store/CouponAdmin/queries.graphql index c8ec93ecbd2..ecd1295eda2 100644 --- a/app/javascript/Store/CouponAdmin/queries.graphql +++ b/app/javascript/Store/CouponAdmin/queries.graphql @@ -1,5 +1,3 @@ -#import "../couponFields.graphql" - fragment AdminCouponFields on Coupon { id ...CouponFields diff --git a/app/javascript/Store/OrderAdmin/mutations.graphql b/app/javascript/Store/OrderAdmin/mutations.graphql index cc241a9d058..fb9977b7008 100644 --- a/app/javascript/Store/OrderAdmin/mutations.graphql +++ b/app/javascript/Store/OrderAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "../orderFields.graphql" - mutation MarkOrderPaid($orderId: ID!) { markOrderPaid(input: { id: $orderId }) { order { diff --git a/app/javascript/Store/OrderAdmin/queries.graphql b/app/javascript/Store/OrderAdmin/queries.graphql index c7514afe260..6ae90c51920 100644 --- a/app/javascript/Store/OrderAdmin/queries.graphql +++ b/app/javascript/Store/OrderAdmin/queries.graphql @@ -1,5 +1,3 @@ -#import "../orderFields.graphql" - query AdminOrdersQuery($page: Int, $perPage: Int, $filters: OrderFiltersInput, $sort: [SortInput!]) { currentAbility { can_create_orders diff --git a/app/javascript/Store/ProductAdmin/mutations.graphql b/app/javascript/Store/ProductAdmin/mutations.graphql index 35b51c98417..5b9ddbe3342 100644 --- a/app/javascript/Store/ProductAdmin/mutations.graphql +++ b/app/javascript/Store/ProductAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "../adminProductFields.graphql" - mutation CreateProduct($product: ProductInput!) { createProduct(input: { product: $product }) { product { diff --git a/app/javascript/Store/ProductAdmin/queries.graphql b/app/javascript/Store/ProductAdmin/queries.graphql index 3aa95ecc285..ab632f7d02c 100644 --- a/app/javascript/Store/ProductAdmin/queries.graphql +++ b/app/javascript/Store/ProductAdmin/queries.graphql @@ -1,5 +1,3 @@ -#import "../adminProductFields.graphql" - query AdminProductsQuery { convention: conventionByRequestHost { id diff --git a/app/javascript/Store/adminProductFields.graphql b/app/javascript/Store/adminProductFields.graphql index 47ac34e6c2f..406cce55e26 100644 --- a/app/javascript/Store/adminProductFields.graphql +++ b/app/javascript/Store/adminProductFields.graphql @@ -1,6 +1,5 @@ -#import "./pricingStructureFields.graphql" fragment AdminProductFields on Product { id diff --git a/app/javascript/Store/mutations.graphql b/app/javascript/Store/mutations.graphql index 0169d865315..570294bd8f3 100644 --- a/app/javascript/Store/mutations.graphql +++ b/app/javascript/Store/mutations.graphql @@ -1,6 +1,3 @@ -#import "./orderFields.graphql" -#import "./adminProductFields.graphql" - mutation CreateCouponApplication($orderId: ID!, $couponCode: String!) { createCouponApplication(input: { orderId: $orderId, coupon_code: $couponCode }) { coupon_application { diff --git a/app/javascript/Store/orderFields.graphql b/app/javascript/Store/orderFields.graphql index 02916c0d8d5..1f434699485 100644 --- a/app/javascript/Store/orderFields.graphql +++ b/app/javascript/Store/orderFields.graphql @@ -1,5 +1,3 @@ -#import "./couponFields.graphql" - fragment CouponApplicationFields on CouponApplication { id diff --git a/app/javascript/Store/queries.graphql b/app/javascript/Store/queries.graphql index c5e2115fae6..9addbbc7cea 100644 --- a/app/javascript/Store/queries.graphql +++ b/app/javascript/Store/queries.graphql @@ -1,6 +1,3 @@ -#import "./orderFields.graphql" -#import "./pricingStructureFields.graphql" - query OrderHistoryQuery { convention: conventionByRequestHost { id diff --git a/app/javascript/TicketTypeAdmin/mutations.graphql b/app/javascript/TicketTypeAdmin/mutations.graphql index f8b1e4ca408..3cc1f0553e4 100644 --- a/app/javascript/TicketTypeAdmin/mutations.graphql +++ b/app/javascript/TicketTypeAdmin/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateTicketType($input: CreateTicketTypeInput!) { createTicketType(input: $input) { ticket_type { diff --git a/app/javascript/TicketTypeAdmin/queries.graphql b/app/javascript/TicketTypeAdmin/queries.graphql index 3316b95ccbb..69f0c3b5f51 100644 --- a/app/javascript/TicketTypeAdmin/queries.graphql +++ b/app/javascript/TicketTypeAdmin/queries.graphql @@ -1,5 +1,3 @@ -#import "../Store/pricingStructureFields.graphql" - fragment TicketTypeAdmin_TicketTypeFields on TicketType { id name diff --git a/app/javascript/UserActivityAlerts/mutations.graphql b/app/javascript/UserActivityAlerts/mutations.graphql index 672af3c1634..d773c3b2b85 100644 --- a/app/javascript/UserActivityAlerts/mutations.graphql +++ b/app/javascript/UserActivityAlerts/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateUserActivityAlert( $userActivityAlert: UserActivityAlertInput! $notificationDestinations: [NotificationDestinationInput!]! diff --git a/app/javascript/UserConProfiles/mutations.graphql b/app/javascript/UserConProfiles/mutations.graphql index 396b39c100b..ee6211b474c 100644 --- a/app/javascript/UserConProfiles/mutations.graphql +++ b/app/javascript/UserConProfiles/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation CreateUserConProfile($user_id: ID!, $user_con_profile: UserConProfileInput!) { createUserConProfile(input: { userId: $user_id, user_con_profile: $user_con_profile }) { user_con_profile { diff --git a/app/javascript/UserConProfiles/queries.graphql b/app/javascript/UserConProfiles/queries.graphql index ad69c6a7070..779affaf6a0 100644 --- a/app/javascript/UserConProfiles/queries.graphql +++ b/app/javascript/UserConProfiles/queries.graphql @@ -1,7 +1,3 @@ -#import "../Models/commonFormFragments.graphql" -#import "../Store/orderFields.graphql" -#import "../Store/adminProductFields.graphql" - fragment UserConProfileFormData on Convention { id starts_at diff --git a/app/javascript/Users/mutations.graphql b/app/javascript/Users/mutations.graphql index 951994af0d8..bbb9d78cf2b 100644 --- a/app/javascript/Users/mutations.graphql +++ b/app/javascript/Users/mutations.graphql @@ -1,5 +1,3 @@ -#import "./queries.graphql" - mutation MergeUsers($userIds: [ID!]!, $winningUserId: ID!, $winningUserConProfiles: [WinningUserConProfileInput!]!) { mergeUsers( input: { userIds: $userIds, winningUserId: $winningUserId, winningUserConProfiles: $winningUserConProfiles } diff --git a/eslint.config.mjs b/eslint.config.mjs deleted file mode 100644 index 6aaaeddc9f9..00000000000 --- a/eslint.config.mjs +++ /dev/null @@ -1,305 +0,0 @@ -// @ts-check - -import { includeIgnoreFile } from '@eslint/compat'; -import vitest from '@vitest/eslint-plugin'; -import jsxA11Y from 'eslint-plugin-jsx-a11y'; -import i18Next from 'eslint-plugin-i18next'; -import reactPlugin from 'eslint-plugin-react'; -import graphqlEslint from '@graphql-eslint/eslint-plugin'; -import typescriptEslint from 'typescript-eslint'; -import eslintConfigPrettier from 'eslint-config-prettier'; -import globals from 'globals'; -import path from 'node:path'; -import { fileURLToPath } from 'node:url'; -import js from '@eslint/js'; -import { FlatCompat } from '@eslint/eslintrc'; - -// eslint-disable-next-line no-underscore-dangle -const __filename = fileURLToPath(import.meta.url); -// eslint-disable-next-line no-underscore-dangle -const __dirname = path.dirname(__filename); -const compat = new FlatCompat({ - baseDirectory: __dirname, - recommendedConfig: js.configs.recommended, - allConfig: js.configs.all, -}); -const gitignorePath = path.resolve(__dirname, '.gitignore'); - -export default typescriptEslint.config( - includeIgnoreFile(gitignorePath), - { - ignores: [ - '**/*{.,-}min.js', - 'coverage/*', - '.react-router/*', - 'config/*', - 'node_modules/*', - 'public/*', - 'jest.config.js', - 'doc-site', - 'cms_content_sets', - '.yarn', - '**/*.generated.ts', - ], - }, - js.configs.recommended, - reactPlugin.configs.flat.recommended, - reactPlugin.configs.flat['jsx-runtime'], - ...compat.extends('plugin:react-hooks/recommended'), - typescriptEslint.configs.recommended, - { - files: ['app/javascript/**/*.tsx'], - .../** @type {import('typescript-eslint').InfiniteDepthConfigWithExtends} */ (i18Next.configs['flat/recommended']), - rules: { - 'i18next/no-literal-string': [ - 'warn', - { - mode: 'all', - callees: { include: ['usePageTitle'] }, - 'object-properties': { - exclude: ['id', 'accessor', 'defaultVisibleColumns', '__typename', 'payment_options', 'path'], - }, - 'jsx-attributes': { - include: ['title', 'aria-label', 'caption', 'placeholder', 'label', 'helpText', 'stringError', 'alt'], - }, - 'should-validate-template': true, - }, - ], - }, - }, - { - plugins: { - vitest, - 'jsx-a11y': jsxA11Y, - }, - - languageOptions: { - globals: { - ...globals.amd, - ...globals.browser, - ...Object.fromEntries(Object.entries(globals.jquery).map(([key]) => [key, 'off'])), - ...globals.node, - ...vitest.environments.env.globals, - }, - - ecmaVersion: 6, - sourceType: 'module', - - parserOptions: { - ecmaFeatures: { - jsx: true, - }, - - extraFileExtensions: ['.graphql'], - }, - }, - - settings: { - 'import/resolver': { - typescript: { - alwaysTryTypes: true, - }, - }, - - 'import/ignore': ['test/javascript/testUtils.js'], - - react: { - version: 'detect', - }, - }, - - rules: { - ...vitest.configs.recommended.rules, - - camelcase: 'off', - 'vitest/no-disabled-tests': 'warn', - 'vitest/no-focused-tests': 'error', - 'vitest/no-identical-title': 'error', - 'vitest/valid-expect': 'error', - - 'no-underscore-dangle': [ - 'error', - { - allow: ['__typename'], - }, - ], - - 'react/destructuring-assignment': 'off', - 'react/jsx-props-no-spreading': 'off', - 'react/jsx-uses-react': 'off', - 'react/react-in-jsx-scope': 'off', - 'jsx-a11y/no-onchange': 'off', - 'jsx-a11y/label-has-for': 'off', - - 'jsx-a11y/label-has-associated-control': [ - 'error', - { - labelAttributes: ['inputId'], - controlComponents: ['Select'], - }, - ], - - 'jsx-a11y/control-has-associated-label': [ - 2, - { - ignoreElements: ['tr', 'th', 'td'], - - required: { - some: ['nesting', 'id'], - }, - - allowChildren: false, - }, - ], - - 'no-restricted-imports': ['error', 'graphql-tag'], - 'react-hooks/rules-of-hooks': 'error', - 'react-hooks/exhaustive-deps': 'warn', - 'import/named': 'off', - 'import/namespace': 'off', - 'import/default': 'off', - 'import/no-named-as-default-member': 'off', - - 'prefer-arrow-callback': [ - 'error', - { - allowNamedFunctions: true, - }, - ], - - '@typescript-eslint/no-empty-function': 'off', - - '@typescript-eslint/no-unused-vars': [ - 'error', - { - ignoreRestSiblings: true, - }, - ], - }, - }, - { - files: ['**/*.ts', '**/*.tsx'], - - rules: { - 'react/prop-types': 'off', - 'react/require-default-props': 'off', - '@typescript-eslint/no-extra-non-null-assertion': ['error'], - - 'no-restricted-imports': [ - 'error', - { - paths: [ - 'graphql-tag', - 'prop-types', - { - name: '@apollo/client', - importNames: ['gql'], - message: - 'Please define GraphQL operations in .graphql files and use graphql-code-generator to generate hooks', - }, - { - name: 'i18next', - importNames: ['t'], - message: 'Please import useTranslation from react-i18next instead', - }, - ], - }, - ], - }, - }, - { - files: ['app/**/*.graphql', 'test/**/*.graphql'], - plugins: { '@graphql-eslint': graphqlEslint }, - - languageOptions: { - parser: graphqlEslint.parser, - ecmaVersion: 5, - sourceType: 'script', - }, - - rules: { - ...graphqlEslint.configs['flat/operations-recommended'].rules, - '@graphql-eslint/naming-convention': 'off', - '@graphql-eslint/known-fragment-names': 'off', - - // Several deprecated fields (bucket_key/requested_bucket_key) are deliberately still queried - // during the FK migration in #11868/#11871 for frontend backward compatibility -- downgraded - // to a warning so that's visible without blocking commits until those call sites migrate off - // them. - '@graphql-eslint/no-deprecated': 'warn', - - '@graphql-eslint/selection-set-depth': [ - 'error', - { - maxDepth: 8, - ignore: ['pricing_structure', 'registration_policy', 'user_con_profile_form'], - }, - ], - }, - }, - { - files: ['schema.graphql'], - plugins: { '@graphql-eslint': graphqlEslint }, - - languageOptions: { - parser: graphqlEslint.parser, - ecmaVersion: 5, - sourceType: 'script', - }, - - rules: { - ...graphqlEslint.configs['flat/schema-recommended'].rules, - '@graphql-eslint/no-typename-prefix': 'off', - '@graphql-eslint/naming-convention': 'off', - '@graphql-eslint/require-description': 'off', - - '@graphql-eslint/strict-id-in-types': [ - 'error', - { - acceptedIdNames: ['id', 'uid'], - - exceptions: { - suffixes: ['Payload', 'Pagination', 'Result'], - - types: [ - 'Ability', - 'ChoiceCount', - 'ClientConfiguration', - 'ContactEmail', - 'ConventionReports', - 'EventProvidedTicketList', - 'EventWithChoiceCounts', - 'FormResponseChange', - 'GroupedSignupCount', - 'LiquidAssign', - 'MailingLists', - 'NewAndReturningAttendees', - 'OrganizationAttendanceCount', - 'Money', - 'Mutation', - 'NotificationCondition', - 'NotificationEvent', - 'OrderQuantityByStatus', - 'PayWhatYouWantValue', - 'PricingStructure', - 'Query', - 'RegistrationPolicy', - 'RegistrationPolicyBucket', - 'SalesCountByProductAndPaymentAmount', - 'ScheduledMoneyValue', - 'ScheduledValue', - 'SearchResultEntry', - 'SignupCountByState', - 'SimulatedSkipReason', - 'TicketCountByTypeAndPaymentAmount', - 'TimespanWithMoneyValue', - 'TimespanWithValue', - 'UserSignupConstraints', - ], - }, - }, - ], - }, - }, - eslintConfigPrettier, -); diff --git a/package.json b/package.json index 0b3ac82a8e9..04e48780880 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,8 @@ "graphql:codegen": "graphql-codegen --config codegen.yml", "graphql:update": "yarn run graphql:codegen && yarn run graphql:build_type_data", "i18next:dedupe": "yarn run tsx ./script/deduplicateTranslations.ts", - "lint": "eslint app/javascript test/javascript schema.graphql --cache", + "lint": "oxlint app/javascript test/javascript && yarn lint:graphql", + "lint:graphql": "graphql-inspector validate '{app,test}/javascript/**/*.graphql' schema.graphql --apollo --maxDepth 10", "prepare": "husky install", "routing:codegen": "node script/genRouting.mjs", "routing:check": "node script/genRouting.mjs --check", @@ -165,9 +166,6 @@ "zxcvbn": "4.4.2" }, "devDependencies": { - "@eslint/compat": "^2.0.0", - "@eslint/eslintrc": "^3.2.0", - "@eslint/js": "^9.18.0", "@graphql-codegen/add": "7.1.1", "@graphql-codegen/cli": "7.4.6", "@graphql-codegen/fragment-matcher": "7.1.0", @@ -177,7 +175,7 @@ "@graphql-codegen/typescript": "6.1.2", "@graphql-codegen/typescript-operations": "6.2.0", "@graphql-codegen/typescript-react-apollo": "4.4.2", - "@graphql-eslint/eslint-plugin": "4.4.2", + "@graphql-inspector/cli": "^7.0.2", "@playwright/test": "^1.58.1", "@prettier/plugin-ruby": "4.0.4", "@react-router/dev": "7.18.5", @@ -198,33 +196,18 @@ "@types/qs": "^6", "@types/rails__activestorage": "8.0.2", "@types/react-dom": "19.2.3", - "@typescript-eslint/eslint-plugin": "8.72.1", - "@typescript-eslint/parser": "8.72.1", - "@typescript-eslint/utils": "8.72.1", "@typescript/native": "npm:typescript@7.0.2", "@vitejs/plugin-react-swc": "^4.2.0", "@vitest/coverage-v8": "^4.0.0", - "@vitest/eslint-plugin": "^1.1.24", "@vitest/ui": "^4.0.0", "core-js-compat": "3.51.0", - "eslint": "9.39.5", - "eslint-config-airbnb": "19.0.4", - "eslint-config-airbnb-base": "15.0.0", - "eslint-config-airbnb-typescript": "18.0.0", - "eslint-config-prettier": "10.1.8", - "eslint-import-resolver-node": "0.4.0", - "eslint-import-resolver-typescript": "4.4.5", "eslint-plugin-i18next": "^6.1.1", - "eslint-plugin-import": "2.32.0", - "eslint-plugin-jsx-a11y": "6.10.2", - "eslint-plugin-react": "7.37.5", - "eslint-plugin-react-hooks": "7.1.1", - "globals": "^17.0.0", "husky": "9.1.7", "jsdom": "^29.0.0", "lint-staged": "17.6.0", "node-addon-api": "^8.5.0", "node-gyp": "^13.0.0", + "oxlint": "^1.91.0", "prettier": "3.9.10", "react-test-renderer": "19.2.7", "rollup": "^4.59.0", @@ -236,14 +219,12 @@ "tsx": "^4.20.3", "typed-scss-modules": "^8.1.1", "typescript": "6.0.3", - "typescript-eslint": "^8.58.0", "vite": "^8.0.0", "vite-bundle-visualizer": "^1.2.1", "vite-plugin-node-polyfills": "^0.28.0", "vitest": "^4.0.0" }, "resolutions": { - "@typescript-eslint/parser": "8.72.1", "react-bootstrap4-modal": "3.0.11", "rollup": "4.67.5" }, @@ -256,7 +237,7 @@ "logo": "

Intercode

" }, "lint-staged": { - "*.{js,jsx,ts,tsx,gql,graphql}": "eslint --cache --fix", + "*.{js,jsx,ts,tsx}": "oxlint --fix", "*.{js,jsx,ts,tsx,css,scss,md}": "prettier --write", "*.{rb,rake}": [ "bundle exec stree write --print-width=120", diff --git a/yarn.lock b/yarn.lock index ded5a56e5f6..283f1c55088 100644 --- a/yarn.lock +++ b/yarn.lock @@ -17,13 +17,6 @@ __metadata: languageName: node linkType: hard -"@aashutoshrathi/word-wrap@npm:^1.2.3": - version: 1.2.6 - resolution: "@aashutoshrathi/word-wrap@npm:1.2.6" - checksum: 10c0/53c2b231a61a46792b39a0d43bc4f4f776bb4542aa57ee04930676802e5501282c2fc8aac14e4cd1f1120ff8b52616b6ff5ab539ad30aa2277d726444b71619f - languageName: node - linkType: hard - "@adobe/css-tools@npm:^4.4.0": version: 4.4.0 resolution: "@adobe/css-tools@npm:4.4.0" @@ -356,7 +349,7 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:^7.21.3, @babel/core@npm:^7.23.7, @babel/core@npm:^7.24.4, @babel/core@npm:^7.25.9, @babel/core@npm:^7.27.7, @babel/core@npm:^7.29.7": +"@babel/core@npm:^7.21.3, @babel/core@npm:^7.23.7, @babel/core@npm:^7.25.9, @babel/core@npm:^7.27.7, @babel/core@npm:^7.29.7": version: 7.29.7 resolution: "@babel/core@npm:7.29.7" dependencies: @@ -379,6 +372,29 @@ __metadata: languageName: node linkType: hard +"@babel/core@npm:^7.26.10": + version: 7.29.13 + resolution: "@babel/core@npm:7.29.13" + dependencies: + "@babel/code-frame": "npm:^7.29.7" + "@babel/generator": "npm:^7.29.13" + "@babel/helper-compilation-targets": "npm:^7.29.13" + "@babel/helper-module-transforms": "npm:^7.29.13" + "@babel/helpers": "npm:^7.29.13" + "@babel/parser": "npm:^7.29.13" + "@babel/template": "npm:^7.29.7" + "@babel/traverse": "npm:^7.29.13" + "@babel/types": "npm:^7.29.11" + "@jridgewell/remapping": "npm:^2.3.5" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10c0/7c9d372d63c0d30c35b78c70e373eeed9eee2c4b7cfe40f43daf5298f85e1cde8760c410a9a330148162911ae292acb17b5edddc33dd7b681e798949cec23ae1 + languageName: node + linkType: hard + "@babel/generator@npm:^7.18.13, @babel/generator@npm:^7.25.9, @babel/generator@npm:^7.27.5, @babel/generator@npm:^7.29.7, @babel/generator@npm:^7.29.8": version: 7.29.8 resolution: "@babel/generator@npm:7.29.8" @@ -392,6 +408,19 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.29.13": + version: 7.29.13 + resolution: "@babel/generator@npm:7.29.13" + dependencies: + "@babel/parser": "npm:^7.29.13" + "@babel/types": "npm:^7.29.11" + "@jridgewell/gen-mapping": "npm:^0.3.12" + "@jridgewell/trace-mapping": "npm:^0.3.28" + jsesc: "npm:^3.0.2" + checksum: 10c0/3b6318f59aeaffe9305b1e4a8e3035f6223c808e961459945d896ba3c6f9dccb1e95d477b73d8e00b21d972b389292478dd1a50e8917d1629cd3c52005a64594 + languageName: node + linkType: hard + "@babel/helper-annotate-as-pure@npm:^7.25.9, @babel/helper-annotate-as-pure@npm:^7.29.7": version: 7.29.7 resolution: "@babel/helper-annotate-as-pure@npm:7.29.7" @@ -424,6 +453,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-compilation-targets@npm:^7.29.13": + version: 7.29.13 + resolution: "@babel/helper-compilation-targets@npm:7.29.13" + dependencies: + "@babel/compat-data": "npm:^7.29.7" + "@babel/helper-validator-option": "npm:^7.29.7" + browserslist: "npm:^4.24.0" + lru-cache: "npm:^5.1.1" + semver: "npm:^6.3.1" + checksum: 10c0/e134fb9379f3375bd57c042bf26d9eb1cfae0bb89df498e8cd7e62ca7212a924e09c01be2b25040e7a2fbc9725cf81d692415c50afb568816e8ea4db554c94f7 + languageName: node + linkType: hard + "@babel/helper-create-class-features-plugin@npm:^7.25.9, @babel/helper-create-class-features-plugin@npm:^7.29.7": version: 7.29.7 resolution: "@babel/helper-create-class-features-plugin@npm:7.29.7" @@ -509,6 +551,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-module-transforms@npm:^7.29.13": + version: 7.29.13 + resolution: "@babel/helper-module-transforms@npm:7.29.13" + dependencies: + "@babel/helper-module-imports": "npm:^7.29.7" + "@babel/helper-validator-identifier": "npm:^7.29.7" + "@babel/traverse": "npm:^7.29.13" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/c98439d81a8ae44d3f7b8d7fa12457ac8b97c4b9dcd03ad27bda386a310d163f80a36860d9fd94339a3c5c159002678ba728c5171932c2f8e54d1a56dd66898c + languageName: node + linkType: hard + "@babel/helper-optimise-call-expression@npm:^7.29.7": version: 7.29.7 resolution: "@babel/helper-optimise-call-expression@npm:7.29.7" @@ -593,6 +648,16 @@ __metadata: languageName: node linkType: hard +"@babel/helpers@npm:^7.29.13": + version: 7.29.13 + resolution: "@babel/helpers@npm:7.29.13" + dependencies: + "@babel/template": "npm:^7.29.7" + "@babel/types": "npm:^7.29.11" + checksum: 10c0/b1090107ff36cd9f96027c2022a1a246484461d2b001f95d2049deb821d35dcaa673822fdc6453c9f9a4dd2f347b5a3863bee7b096de082046c27e9cda5e4422 + languageName: node + linkType: hard + "@babel/helpers@npm:^7.29.7": version: 7.29.7 resolution: "@babel/helpers@npm:7.29.7" @@ -603,7 +668,7 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.23.6, @babel/parser@npm:^7.24.4, @babel/parser@npm:^7.27.7, @babel/parser@npm:^7.29.0, @babel/parser@npm:^7.29.3, @babel/parser@npm:^7.29.7, @babel/parser@npm:^7.29.8, @babel/parser@npm:^7.29.9": +"@babel/parser@npm:^7.23.6, @babel/parser@npm:^7.27.7, @babel/parser@npm:^7.29.0, @babel/parser@npm:^7.29.3, @babel/parser@npm:^7.29.7, @babel/parser@npm:^7.29.8, @babel/parser@npm:^7.29.9": version: 7.29.11 resolution: "@babel/parser@npm:7.29.11" dependencies: @@ -614,6 +679,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.29.13": + version: 7.29.13 + resolution: "@babel/parser@npm:7.29.13" + dependencies: + "@babel/types": "npm:^7.29.11" + bin: + parser: ./bin/babel-parser.js + checksum: 10c0/b48742b4501a38552ef1317726345a9c42eaab2c1fb7d884004453e9ef1519ea8a36167d295d966b870c80821eb53fb258baa9b0e43b9f23915edfd6330664bd + languageName: node + linkType: hard + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.9": version: 7.25.9 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.9" @@ -1591,6 +1667,21 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.29.13": + version: 7.29.13 + resolution: "@babel/traverse@npm:7.29.13" + dependencies: + "@babel/code-frame": "npm:^7.29.7" + "@babel/generator": "npm:^7.29.13" + "@babel/helper-globals": "npm:^7.29.7" + "@babel/parser": "npm:^7.29.13" + "@babel/template": "npm:^7.29.7" + "@babel/types": "npm:^7.29.11" + debug: "npm:^4.3.1" + checksum: 10c0/336e43764545bb24e6c5d0d699eaafb7d967f1f3eb561b8333dbb737b673c8c2e026079caa5de77d50e499be8d343a0a8d632d50e13a75b271b1a9ca235e36d0 + languageName: node + linkType: hard + "@babel/types@npm:^7.18.13, @babel/types@npm:^7.21.3, @babel/types@npm:^7.23.6, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.10, @babel/types@npm:^7.27.7, @babel/types@npm:^7.29.0, @babel/types@npm:^7.29.11, @babel/types@npm:^7.29.7, @babel/types@npm:^7.29.8, @babel/types@npm:^7.4.4": version: 7.29.11 resolution: "@babel/types@npm:7.29.11" @@ -3149,34 +3240,6 @@ __metadata: languageName: node linkType: hard -"@emnapi/core@npm:^1.4.3": - version: 1.11.1 - resolution: "@emnapi/core@npm:1.11.1" - dependencies: - "@emnapi/wasi-threads": "npm:1.2.2" - tslib: "npm:^2.4.0" - checksum: 10c0/2c6defdac2d1d26090384655d7d6c9614fa553853b1760597686749e9375dc2aa0dae80a2615b81c254600f5d531d07d8466cde0d331a8caae64b93f3ca5937e - languageName: node - linkType: hard - -"@emnapi/runtime@npm:^1.4.3": - version: 1.11.1 - resolution: "@emnapi/runtime@npm:1.11.1" - dependencies: - tslib: "npm:^2.4.0" - checksum: 10c0/04332fb62076afc440aa23316c04bec42f584ca8b074e5507d08e2b33a47cbe0493b1aadb8f3c1057b64ae1e17f5bde1a7bc37f7facc9d0bc25c18197cbd366f - languageName: node - linkType: hard - -"@emnapi/wasi-threads@npm:1.2.2": - version: 1.2.2 - resolution: "@emnapi/wasi-threads@npm:1.2.2" - dependencies: - tslib: "npm:^2.4.0" - checksum: 10c0/f0dc8269d6b20ae5a7c7b36e7a6a333452009d461038ef4febb29da2f3f78c1e2b1576d7e8970a5c5789ed3caedc1f80f5b0c2a5373bdaf8d03b20432bb55747 - languageName: node - linkType: hard - "@emotion/babel-plugin@npm:^11.13.5": version: 11.13.5 resolution: "@emotion/babel-plugin@npm:11.13.5" @@ -3306,6 +3369,18 @@ __metadata: languageName: node linkType: hard +"@envelop/core@npm:^5.6.1": + version: 5.6.1 + resolution: "@envelop/core@npm:5.6.1" + dependencies: + "@envelop/instrumentation": "npm:^1.0.1" + "@envelop/types": "npm:^5.2.2" + "@whatwg-node/promise-helpers": "npm:^1.2.4" + tslib: "npm:^2.5.0" + checksum: 10c0/f7fa0980933979861af53c774eb82d6fece4cb3844ac9363723b245f77eaa34ce04b64d8dfd8f97c7bfcabeeb73ca0d43c273f62a9a5eccd071bbb4d2fc1def6 + languageName: node + linkType: hard + "@envelop/instrumentation@npm:^1.0.0": version: 1.0.0 resolution: "@envelop/instrumentation@npm:1.0.0" @@ -3316,6 +3391,16 @@ __metadata: languageName: node linkType: hard +"@envelop/instrumentation@npm:^1.0.1": + version: 1.0.1 + resolution: "@envelop/instrumentation@npm:1.0.1" + dependencies: + "@whatwg-node/promise-helpers": "npm:^1.2.1" + tslib: "npm:^2.5.0" + checksum: 10c0/3177b08e39eae3cbe61e343ead6fa282e011001b538fcfb52c782dc2cbf1290548ebeb3f534229b030623b856328fc3ed9067147d5cfec3a94ca8a10acf71028 + languageName: node + linkType: hard + "@envelop/types@npm:^5.2.1": version: 5.2.1 resolution: "@envelop/types@npm:5.2.1" @@ -3326,6 +3411,16 @@ __metadata: languageName: node linkType: hard +"@envelop/types@npm:^5.2.2": + version: 5.2.2 + resolution: "@envelop/types@npm:5.2.2" + dependencies: + "@whatwg-node/promise-helpers": "npm:^1.0.0" + tslib: "npm:^2.5.0" + checksum: 10c0/67c7ee9ae5f274a9de84d3405e8bb64794839968185c231db68a322f3bf5f560017b877360a055cb488a750ef9b897469f80faa6fab3ef8185e12bbeb75d55b4 + languageName: node + linkType: hard + "@esbuild/aix-ppc64@npm:0.28.2": version: 0.28.2 resolution: "@esbuild/aix-ppc64@npm:0.28.2" @@ -3662,117 +3757,6 @@ __metadata: languageName: node linkType: hard -"@eslint-community/eslint-utils@npm:^4.8.0, @eslint-community/eslint-utils@npm:^4.9.1": - version: 4.9.1 - resolution: "@eslint-community/eslint-utils@npm:4.9.1" - dependencies: - eslint-visitor-keys: "npm:^3.4.3" - peerDependencies: - eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - checksum: 10c0/dc4ab5e3e364ef27e33666b11f4b86e1a6c1d7cbf16f0c6ff87b1619b3562335e9201a3d6ce806221887ff780ec9d828962a290bb910759fd40a674686503f02 - languageName: node - linkType: hard - -"@eslint-community/regexpp@npm:^4.12.1, @eslint-community/regexpp@npm:^4.12.2": - version: 4.12.2 - resolution: "@eslint-community/regexpp@npm:4.12.2" - checksum: 10c0/fddcbc66851b308478d04e302a4d771d6917a0b3740dc351513c0da9ca2eab8a1adf99f5e0aa7ab8b13fa0df005c81adeee7e63a92f3effd7d367a163b721c2d - languageName: node - linkType: hard - -"@eslint/compat@npm:^2.0.0": - version: 2.1.1 - resolution: "@eslint/compat@npm:2.1.1" - dependencies: - "@eslint/core": "npm:^1.2.1" - peerDependencies: - eslint: ^8.40 || 9 || 10 - peerDependenciesMeta: - eslint: - optional: true - checksum: 10c0/c1856c72e09a767b74c930c1dc17155c479f8b9dd73067d634408ab26318335736265d5d0feee0466c31d796846939cbf68707a045f46f3a02b7c3ad3a093fc4 - languageName: node - linkType: hard - -"@eslint/config-array@npm:^0.21.2": - version: 0.21.2 - resolution: "@eslint/config-array@npm:0.21.2" - dependencies: - "@eslint/object-schema": "npm:^2.1.7" - debug: "npm:^4.3.1" - minimatch: "npm:^3.1.5" - checksum: 10c0/89dfe815d18456177c0a1f238daf4593107fd20298b3598e0103054360d3b8d09d967defd8318f031185d68df1f95cfa68becf1390a9c5c6887665f1475142e3 - languageName: node - linkType: hard - -"@eslint/config-helpers@npm:^0.4.2": - version: 0.4.2 - resolution: "@eslint/config-helpers@npm:0.4.2" - dependencies: - "@eslint/core": "npm:^0.17.0" - checksum: 10c0/92efd7a527b2d17eb1a148409d71d80f9ac160b565ac73ee092252e8bf08ecd08670699f46b306b94f13d22e88ac88a612120e7847570dd7cdc72f234d50dcb4 - languageName: node - linkType: hard - -"@eslint/core@npm:^0.17.0": - version: 0.17.0 - resolution: "@eslint/core@npm:0.17.0" - dependencies: - "@types/json-schema": "npm:^7.0.15" - checksum: 10c0/9a580f2246633bc752298e7440dd942ec421860d1946d0801f0423830e67887e4aeba10ab9a23d281727a978eb93d053d1922a587d502942a713607f40ed704e - languageName: node - linkType: hard - -"@eslint/core@npm:^1.2.1": - version: 1.2.1 - resolution: "@eslint/core@npm:1.2.1" - dependencies: - "@types/json-schema": "npm:^7.0.15" - checksum: 10c0/10979b40588ecfef771fcb5013a542a35fb30692cc95a65f3481b0b36fbd89f5679efeb30d57f4eed35203d859aabace2a620177d6c536f71b299a1af2f3398f - languageName: node - linkType: hard - -"@eslint/eslintrc@npm:^3.2.0, @eslint/eslintrc@npm:^3.3.6": - version: 3.3.7 - resolution: "@eslint/eslintrc@npm:3.3.7" - dependencies: - ajv: "npm:^6.14.0" - debug: "npm:^4.3.2" - espree: "npm:^10.0.1" - globals: "npm:^14.0.0" - ignore: "npm:^5.2.0" - import-fresh: "npm:^3.2.1" - js-yaml: "npm:^4.3.2" - minimatch: "npm:^3.1.5" - strip-json-comments: "npm:^3.1.1" - checksum: 10c0/010fca3403489ff109cfb5b9996142a2a4b4be28bbb233eda3c30ed004826aeab84d6914d0c5c4b1cd80add7051525adb7818268e0fb4775ddb6dbc620f00c72 - languageName: node - linkType: hard - -"@eslint/js@npm:9.39.5, @eslint/js@npm:^9.18.0": - version: 9.39.5 - resolution: "@eslint/js@npm:9.39.5" - checksum: 10c0/49894e98ba313a7d3bfb1b20d55c0f9826be45a7db876fd84e533ac7f101b1d95b51cd22c6a6db3a45066b9c0d068c31b4a22fa0db8a6cc8744a25540efdb824 - languageName: node - linkType: hard - -"@eslint/object-schema@npm:^2.1.7": - version: 2.1.7 - resolution: "@eslint/object-schema@npm:2.1.7" - checksum: 10c0/936b6e499853d1335803f556d526c86f5fe2259ed241bc665000e1d6353828edd913feed43120d150adb75570cae162cf000b5b0dfc9596726761c36b82f4e87 - languageName: node - linkType: hard - -"@eslint/plugin-kit@npm:^0.4.1": - version: 0.4.1 - resolution: "@eslint/plugin-kit@npm:0.4.1" - dependencies: - "@eslint/core": "npm:^0.17.0" - levn: "npm:^0.4.1" - checksum: 10c0/51600f78b798f172a9915dffb295e2ffb44840d583427bc732baf12ecb963eb841b253300e657da91d890f4b323d10a1bd12934bf293e3018d8bb66fdce5217b - languageName: node - linkType: hard - "@exodus/bytes@npm:^1.11.0, @exodus/bytes@npm:^1.15.0, @exodus/bytes@npm:^1.6.0": version: 1.15.0 resolution: "@exodus/bytes@npm:1.15.0" @@ -4136,36 +4120,95 @@ __metadata: languageName: node linkType: hard -"@graphql-eslint/eslint-plugin@npm:4.4.2": - version: 4.4.2 - resolution: "@graphql-eslint/eslint-plugin@npm:4.4.2" +"@graphql-hive/signal@npm:^2.0.0": + version: 2.0.0 + resolution: "@graphql-hive/signal@npm:2.0.0" + checksum: 10c0/33a0b095fb55155b9eab25815c6a208fd69a712b445978796297375b42d3bec7e20e4db9226d20c5dd0d5cbf8a514eecd6dcd1dc3d06c4bfc0617735a7f0e6f9 + languageName: node + linkType: hard + +"@graphql-inspector/audit-command@npm:^6.0.2": + version: 6.0.2 + resolution: "@graphql-inspector/audit-command@npm:6.0.2" dependencies: - "@graphql-tools/code-file-loader": "npm:^8.0.0" - "@graphql-tools/graphql-tag-pluck": "npm:^8.3.4" - "@graphql-tools/utils": "npm:^10.0.0" - debug: "npm:^4.3.4" - fast-glob: "npm:^3.2.12" - graphql-config: "npm:^5.1.3" - graphql-depth-limit: "npm:^1.1.0" - lodash.lowercase: "npm:^4.3.0" + "@graphql-inspector/commands": "npm:^7.0.1" + "@graphql-inspector/core": "npm:^8.0.1" + "@graphql-inspector/logger": "npm:^6.0.0" + "@graphql-tools/utils": "npm:^12.0.0" + cli-table3: "npm:^0.6.3" + tslib: "npm:~2.6.2" peerDependencies: - "@apollo/subgraph": ^2 - eslint: ">=8.44.0" - graphql: ^16 - json-schema-to-ts: ^3 - peerDependenciesMeta: - "@apollo/subgraph": - optional: true - json-schema-to-ts: - optional: true - checksum: 10c0/cd6429096d32424b3ad7cc1179acf60f0b2908cabf2d55f57e60019148097aa7f5ea078be922d326a89757f73e25ca26cec482ffb86c32118a4c16cdc154fa68 + graphql: ^16.0.0 || ^17.0.0 + checksum: 10c0/28a62f2dc0642b32a5435b71393ccf670da229914a51fae4473b650780503802a2691b29af6f7419a84341a95b63c9400cd529ea349f8bdd4f2e73cb7c11863e languageName: node linkType: hard -"@graphql-hive/signal@npm:^2.0.0": - version: 2.0.0 - resolution: "@graphql-hive/signal@npm:2.0.0" - checksum: 10c0/33a0b095fb55155b9eab25815c6a208fd69a712b445978796297375b42d3bec7e20e4db9226d20c5dd0d5cbf8a514eecd6dcd1dc3d06c4bfc0617735a7f0e6f9 +"@graphql-inspector/cli@npm:^7.0.2": + version: 7.0.2 + resolution: "@graphql-inspector/cli@npm:7.0.2" + dependencies: + "@babel/core": "npm:^7.26.10" + "@graphql-inspector/audit-command": "npm:^6.0.2" + "@graphql-inspector/code-loader": "npm:^6.0.0" + "@graphql-inspector/commands": "npm:^7.0.1" + "@graphql-inspector/config": "npm:^5.0.0" + "@graphql-inspector/coverage-command": "npm:^7.0.2" + "@graphql-inspector/diff-command": "npm:^7.0.2" + "@graphql-inspector/docs-command": "npm:^6.0.1" + "@graphql-inspector/git-loader": "npm:^6.0.0" + "@graphql-inspector/github-loader": "npm:^6.0.0" + "@graphql-inspector/graphql-loader": "npm:^6.0.0" + "@graphql-inspector/introspect-command": "npm:^6.0.2" + "@graphql-inspector/json-loader": "npm:^6.0.0" + "@graphql-inspector/loaders": "npm:^5.0.0" + "@graphql-inspector/serve-command": "npm:^6.0.1" + "@graphql-inspector/similar-command": "npm:^6.0.2" + "@graphql-inspector/url-loader": "npm:^6.0.0" + "@graphql-inspector/validate-command": "npm:^6.0.2" + tslib: "npm:~2.6.2" + yargs: "npm:^17.7.2" + peerDependencies: + graphql: ^16.0.0 || ^17.0.0 + bin: + graphql-inspector: cjs/index.js + checksum: 10c0/3718904ef04dd92e5cae1e77419c7b2951eb02fbda6a203f8c877ca3cdc016cf9b089f5bc7c3d0dad109358a34dc8f88795f02b52435802b1107e9f1f7afe473 + languageName: node + linkType: hard + +"@graphql-inspector/code-loader@npm:^6.0.0": + version: 6.0.0 + resolution: "@graphql-inspector/code-loader@npm:6.0.0" + dependencies: + "@graphql-tools/code-file-loader": "npm:^8.1.37" + tslib: "npm:~2.6.2" + peerDependencies: + graphql: ^16.0.0 || ^17.0.0 + checksum: 10c0/c46c71c95c47beae95719b050bece50680ef132e13328a19a9375f625f3c30ab5c610c8d3848c7a1deb0341f9418a9e291feca42032695f3d87adf0bb03c92a4 + languageName: node + linkType: hard + +"@graphql-inspector/commands@npm:^7.0.1": + version: 7.0.1 + resolution: "@graphql-inspector/commands@npm:7.0.1" + dependencies: + tslib: "npm:~2.6.2" + peerDependencies: + "@graphql-inspector/config": ^5.0.0 + "@graphql-inspector/loaders": ^5.0.0 + graphql: ^16.0.0 || ^17.0.0 + yargs: 17.7.2 + checksum: 10c0/9455f4e8b77bfa5d221a3bb1c8ab51d2c339358652ee6a11805472158fdb5208d0f9659c8b48c9a568fba5fc512ddde2af4653ba037b6c12e20755318e0d6300 + languageName: node + linkType: hard + +"@graphql-inspector/config@npm:^5.0.0": + version: 5.0.0 + resolution: "@graphql-inspector/config@npm:5.0.0" + dependencies: + tslib: "npm:~2.6.2" + peerDependencies: + graphql: ^16.0.0 || ^17.0.0 + checksum: 10c0/f16ba88ffa061734b26a0ad9f09bdc0990e3e6b99a1af674f17649c2aa51388c139ec31f9e31ef194e7a4a1a111d950ae8f2d17ec11d77e2c975192d305f0e7e languageName: node linkType: hard @@ -4182,69 +4225,270 @@ __metadata: languageName: node linkType: hard -"@graphql-markdown/cli@npm:^1.2.1": - version: 1.2.1 - resolution: "@graphql-markdown/cli@npm:1.2.1" +"@graphql-inspector/core@npm:^8.0.1": + version: 8.0.1 + resolution: "@graphql-inspector/core@npm:8.0.1" dependencies: - "@graphql-markdown/core": "npm:^1.26.0" - "@graphql-markdown/logger": "npm:^1.1.4" - "@graphql-markdown/telemetry": "npm:^0.1.1" - "@graphql-markdown/types": "npm:^1.17.1" - commander: "npm:^15.0.0" - graphql-config: "npm:^5.1.8 || ^6.0.0" - bin: - gqlmd: dist/main.js - checksum: 10c0/7f754338a8732ddb92435d1d04f6fea58b98f50a5d258df7680deefc21b1523a15d1d0b24dcec6023f0f09db7fa0bc3851268e42ac6e453418ee4ed342802408 + dependency-graph: "npm:^1.0.0" + object-inspect: "npm:^1.13.2" + tslib: "npm:~2.6.2" + peerDependencies: + graphql: ^16.0.0 || ^17.0.0 + checksum: 10c0/27f69d8fcc2e7faab1cd09798721cb4b700abca0349d80935c9d97341218f298c488c3bceff46818b443071b1fc1e70a5360bbb100262568460f27587c591a41 languageName: node linkType: hard -"@graphql-markdown/core@npm:^1.26.0": - version: 1.26.0 - resolution: "@graphql-markdown/core@npm:1.26.0" +"@graphql-inspector/coverage-command@npm:^7.0.2": + version: 7.0.2 + resolution: "@graphql-inspector/coverage-command@npm:7.0.2" dependencies: - "@fastify/deepmerge": "npm:^3.2.4" - "@graphql-markdown/graphql": "npm:^1.3.4" - "@graphql-markdown/logger": "npm:^1.1.4" - "@graphql-markdown/printer-legacy": "npm:^1.19.3" - "@graphql-markdown/telemetry": "npm:^0.1.1" - "@graphql-markdown/types": "npm:^1.17.1" - "@graphql-markdown/utils": "npm:^1.14.1" + "@graphql-inspector/commands": "npm:^7.0.1" + "@graphql-inspector/core": "npm:^8.0.1" + "@graphql-inspector/logger": "npm:^6.0.0" + "@graphql-tools/utils": "npm:^12.0.0" + tslib: "npm:~2.6.2" peerDependencies: - "@graphql-markdown/diff": ^1.1.23 - "@graphql-markdown/helpers": ^1.2.4 graphql: ^16.0.0 || ^17.0.0 - graphql-config: ^5.1.8 || ^6.0.0 - peerDependenciesMeta: - "@graphql-markdown/diff": - optional: true - "@graphql-markdown/helpers": - optional: true - graphql-config: - optional: true - checksum: 10c0/29c4e8c93f77ed43cd213b408c0c2675b20f96dc2a2a71898caecfcbfeb8f71ebbec5f44b2a3dda882171ec2d28df5564f20568bec6fcfb4019a81f95b6ea94a + checksum: 10c0/b2abc356386fe523811675060c68ad24a4122ad29c3eadea17f27b3746e43454272c646dcb53ddf166df4ccb625b3e1ff917aa240fbca9faea429f2a5d9807fa languageName: node linkType: hard -"@graphql-markdown/diff@npm:*": - version: 1.1.9 - resolution: "@graphql-markdown/diff@npm:1.1.9" +"@graphql-inspector/diff-command@npm:^7.0.2": + version: 7.0.2 + resolution: "@graphql-inspector/diff-command@npm:7.0.2" dependencies: - "@graphql-inspector/core": "npm:^6.1.0" - "@graphql-markdown/graphql": "npm:^1.1.5" - "@graphql-markdown/utils": "npm:^1.7.1" - "@graphql-tools/graphql-file-loader": "npm:^8.0.1" - "@graphql-tools/load": "npm:^8.0.2" - checksum: 10c0/84cac7790353c9712c797c3bc685bcd58215cafde3fe37f536e2c2f93c6f2a0055abd35bd31bf29520c777e9af09dd01947de53344b81e50b352788cfa1ee6e6 + "@graphql-inspector/commands": "npm:^7.0.1" + "@graphql-inspector/core": "npm:^8.0.1" + "@graphql-inspector/logger": "npm:^6.0.0" + tslib: "npm:~2.6.2" + peerDependencies: + graphql: ^16.0.0 || ^17.0.0 + checksum: 10c0/848c482718f78cd90ef107c7a46d1bc182385784107b1520ddbf73533e7b36cc32355e36a4221924ce8fd50b2d6a0f2bfaab76d81212d51c8028f976e2c287cf languageName: node linkType: hard -"@graphql-markdown/docusaurus@npm:^1.24.1": - version: 1.39.1 - resolution: "@graphql-markdown/docusaurus@npm:1.39.1" +"@graphql-inspector/docs-command@npm:^6.0.1": + version: 6.0.1 + resolution: "@graphql-inspector/docs-command@npm:6.0.1" dependencies: - "@docusaurus/utils": "npm:3.10.2" - "@graphql-markdown/cli": "npm:^1.2.1" - "@graphql-markdown/formatters": "npm:^1.2.1" + "@graphql-inspector/commands": "npm:^7.0.1" + open: "npm:^8.4.2" + tslib: "npm:~2.6.2" + peerDependencies: + graphql: ^16.0.0 || ^17.0.0 + checksum: 10c0/dda3c004a031c12f22ec53077f925780613cb988dc00a80fe324545a41b9c00f0551e3bba0476eac8399c7cfed256a3adefa6f510235c3ebfad233fa47a876a8 + languageName: node + linkType: hard + +"@graphql-inspector/git-loader@npm:^6.0.0": + version: 6.0.0 + resolution: "@graphql-inspector/git-loader@npm:6.0.0" + dependencies: + "@graphql-tools/git-loader": "npm:^8.0.41" + tslib: "npm:~2.6.2" + peerDependencies: + graphql: ^16.0.0 || ^17.0.0 + checksum: 10c0/768ef824887b3c98544e7faef2928aff9f037fbd3c514134841916b85b5949049b293151d504fc63cb068c99c6352db6c2c92ae86d39494d990fc4b8ed78c719 + languageName: node + linkType: hard + +"@graphql-inspector/github-loader@npm:^6.0.0": + version: 6.0.0 + resolution: "@graphql-inspector/github-loader@npm:6.0.0" + dependencies: + "@graphql-tools/github-loader": "npm:^9.1.7" + tslib: "npm:~2.6.2" + peerDependencies: + graphql: ^16.0.0 || ^17.0.0 + checksum: 10c0/8d031d2fc0e1d15040a27d920e4c23bd8f41a931046a1272dfa9528a58cd1e3ffde4760d28a4cecade997cf2bf87f0b386a8e096a6789232eb346583cac7987c + languageName: node + linkType: hard + +"@graphql-inspector/graphql-loader@npm:^6.0.0": + version: 6.0.0 + resolution: "@graphql-inspector/graphql-loader@npm:6.0.0" + dependencies: + "@graphql-tools/graphql-file-loader": "npm:^8.1.19" + tslib: "npm:~2.6.2" + peerDependencies: + graphql: ^16.0.0 || ^17.0.0 + checksum: 10c0/2a4cab6b124ddb56b6fcf880820cacc61264f35bec2b8bd3eb499a2994e81e94e7fea4a01b27600edb8dede06c25c2533c4261d36b53d55bbff59f5e92fb7dbc + languageName: node + linkType: hard + +"@graphql-inspector/introspect-command@npm:^6.0.2": + version: 6.0.2 + resolution: "@graphql-inspector/introspect-command@npm:6.0.2" + dependencies: + "@graphql-inspector/commands": "npm:^7.0.1" + "@graphql-inspector/core": "npm:^8.0.1" + "@graphql-inspector/logger": "npm:^6.0.0" + tslib: "npm:~2.6.2" + peerDependencies: + graphql: ^16.0.0 || ^17.0.0 + checksum: 10c0/38f8bf6d716a51cfc940e508d77a64ffc18f79b15648d81ee7991fb5555f1b800df60cc0de40a0b3769daffbaec1ef7a851afd5dd6806ad4a82b189f97821521 + languageName: node + linkType: hard + +"@graphql-inspector/json-loader@npm:^6.0.0": + version: 6.0.0 + resolution: "@graphql-inspector/json-loader@npm:6.0.0" + dependencies: + "@graphql-tools/json-file-loader": "npm:^8.0.33" + tslib: "npm:~2.6.2" + peerDependencies: + graphql: ^16.0.0 || ^17.0.0 + checksum: 10c0/f89d051ce3f92965c1a45d9e9e672b3dd5e5c0c66693365ccf515e5086d4293108df3b2de911ca748bbbc8a4c7ce63d239eefb1626beadcd1d92eb9536253287 + languageName: node + linkType: hard + +"@graphql-inspector/loaders@npm:^5.0.0": + version: 5.0.0 + resolution: "@graphql-inspector/loaders@npm:5.0.0" + dependencies: + "@graphql-tools/code-file-loader": "npm:^8.1.37" + "@graphql-tools/load": "npm:^8.1.16" + "@graphql-tools/utils": "npm:^12.0.0" + tslib: "npm:~2.6.2" + peerDependencies: + "@graphql-inspector/config": ^5.0.0 + graphql: ^16.0.0 || ^17.0.0 + checksum: 10c0/ff521c771f3c396443b514383dc6897568e03b11a6eaf267641a2716a2da0a4bf9c18003b7cacd68266e048611edd664357c428c1c8009e263bba9ee0715866d + languageName: node + linkType: hard + +"@graphql-inspector/logger@npm:^6.0.0": + version: 6.0.0 + resolution: "@graphql-inspector/logger@npm:6.0.0" + dependencies: + chalk: "npm:^4.1.2" + figures: "npm:^3.2.0" + log-symbols: "npm:^4.1.0" + std-env: "npm:^3.7.0" + tslib: "npm:~2.6.2" + checksum: 10c0/355cd86aaae9391c6b3a8e53d78e3a539947eeaae2fe55f9d0b54a17f5250df5740b4d22e13926710abc3a9bf60b70046d051cefa787499992fffcf5a55bbd32 + languageName: node + linkType: hard + +"@graphql-inspector/serve-command@npm:^6.0.1": + version: 6.0.1 + resolution: "@graphql-inspector/serve-command@npm:6.0.1" + dependencies: + "@graphql-inspector/commands": "npm:^7.0.1" + "@graphql-inspector/logger": "npm:^6.0.0" + graphql-yoga: "npm:^5.22.0" + open: "npm:^8.4.2" + tslib: "npm:~2.6.2" + peerDependencies: + graphql: ^16.0.0 || ^17.0.0 + checksum: 10c0/5d25022d540698583e2ca7d37564571e8a49468eeba6a0837d5e78ff2e445498f86db1547d738772db938d71521917b36c3f8c2370138f7c0ddcc2c6fcef2c90 + languageName: node + linkType: hard + +"@graphql-inspector/similar-command@npm:^6.0.2": + version: 6.0.2 + resolution: "@graphql-inspector/similar-command@npm:6.0.2" + dependencies: + "@graphql-inspector/commands": "npm:^7.0.1" + "@graphql-inspector/core": "npm:^8.0.1" + "@graphql-inspector/logger": "npm:^6.0.0" + tslib: "npm:~2.6.2" + peerDependencies: + graphql: ^16.0.0 || ^17.0.0 + checksum: 10c0/39e7eea81debe81423634ffa64b5b54e9bd330c76e5065b8426b38fce0ea6fa590edc35070bb6af6d68c718d63d98b533ca5d3780daae3267b4ddb33fc21239c + languageName: node + linkType: hard + +"@graphql-inspector/url-loader@npm:^6.0.0": + version: 6.0.0 + resolution: "@graphql-inspector/url-loader@npm:6.0.0" + dependencies: + "@graphql-tools/url-loader": "npm:^9.1.7" + tslib: "npm:~2.6.2" + peerDependencies: + graphql: ^16.0.0 || ^17.0.0 + checksum: 10c0/228c1727ccb6439fceaffa2075e58f80299cc60403e901a305d9785e2d300384b5513293492a3cab40fb3c95acd3417048daf3b009a8b715270c031d35ebd6c0 + languageName: node + linkType: hard + +"@graphql-inspector/validate-command@npm:^6.0.2": + version: 6.0.2 + resolution: "@graphql-inspector/validate-command@npm:6.0.2" + dependencies: + "@graphql-inspector/commands": "npm:^7.0.1" + "@graphql-inspector/core": "npm:^8.0.1" + "@graphql-inspector/logger": "npm:^6.0.0" + "@graphql-tools/utils": "npm:^12.0.0" + tslib: "npm:~2.6.2" + peerDependencies: + graphql: ^16.0.0 || ^17.0.0 + checksum: 10c0/992432c99e29388f3f1d7ceb907c274fe7a1d83029dfa469af00438ee7c358fcebd5b446c2ae3f76f8d49776d18b14be31905d54cfc1013c85f498e860609114 + languageName: node + linkType: hard + +"@graphql-markdown/cli@npm:^1.2.1": + version: 1.2.1 + resolution: "@graphql-markdown/cli@npm:1.2.1" + dependencies: + "@graphql-markdown/core": "npm:^1.26.0" + "@graphql-markdown/logger": "npm:^1.1.4" + "@graphql-markdown/telemetry": "npm:^0.1.1" + "@graphql-markdown/types": "npm:^1.17.1" + commander: "npm:^15.0.0" + graphql-config: "npm:^5.1.8 || ^6.0.0" + bin: + gqlmd: dist/main.js + checksum: 10c0/7f754338a8732ddb92435d1d04f6fea58b98f50a5d258df7680deefc21b1523a15d1d0b24dcec6023f0f09db7fa0bc3851268e42ac6e453418ee4ed342802408 + languageName: node + linkType: hard + +"@graphql-markdown/core@npm:^1.26.0": + version: 1.26.0 + resolution: "@graphql-markdown/core@npm:1.26.0" + dependencies: + "@fastify/deepmerge": "npm:^3.2.4" + "@graphql-markdown/graphql": "npm:^1.3.4" + "@graphql-markdown/logger": "npm:^1.1.4" + "@graphql-markdown/printer-legacy": "npm:^1.19.3" + "@graphql-markdown/telemetry": "npm:^0.1.1" + "@graphql-markdown/types": "npm:^1.17.1" + "@graphql-markdown/utils": "npm:^1.14.1" + peerDependencies: + "@graphql-markdown/diff": ^1.1.23 + "@graphql-markdown/helpers": ^1.2.4 + graphql: ^16.0.0 || ^17.0.0 + graphql-config: ^5.1.8 || ^6.0.0 + peerDependenciesMeta: + "@graphql-markdown/diff": + optional: true + "@graphql-markdown/helpers": + optional: true + graphql-config: + optional: true + checksum: 10c0/29c4e8c93f77ed43cd213b408c0c2675b20f96dc2a2a71898caecfcbfeb8f71ebbec5f44b2a3dda882171ec2d28df5564f20568bec6fcfb4019a81f95b6ea94a + languageName: node + linkType: hard + +"@graphql-markdown/diff@npm:*": + version: 1.1.9 + resolution: "@graphql-markdown/diff@npm:1.1.9" + dependencies: + "@graphql-inspector/core": "npm:^6.1.0" + "@graphql-markdown/graphql": "npm:^1.1.5" + "@graphql-markdown/utils": "npm:^1.7.1" + "@graphql-tools/graphql-file-loader": "npm:^8.0.1" + "@graphql-tools/load": "npm:^8.0.2" + checksum: 10c0/84cac7790353c9712c797c3bc685bcd58215cafde3fe37f536e2c2f93c6f2a0055abd35bd31bf29520c777e9af09dd01947de53344b81e50b352788cfa1ee6e6 + languageName: node + linkType: hard + +"@graphql-markdown/docusaurus@npm:^1.24.1": + version: 1.39.1 + resolution: "@graphql-markdown/docusaurus@npm:1.39.1" + dependencies: + "@docusaurus/utils": "npm:3.10.2" + "@graphql-markdown/cli": "npm:^1.2.1" + "@graphql-markdown/formatters": "npm:^1.2.1" "@graphql-markdown/logger": "npm:^1.1.4" "@graphql-markdown/types": "npm:^1.17.1" "@graphql-markdown/utils": "npm:^1.14.1" @@ -4378,7 +4622,7 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/code-file-loader@npm:^8.0.0, @graphql-tools/code-file-loader@npm:^8.1.41": +"@graphql-tools/code-file-loader@npm:^8.1.37, @graphql-tools/code-file-loader@npm:^8.1.41": version: 8.1.43 resolution: "@graphql-tools/code-file-loader@npm:8.1.43" dependencies: @@ -4486,6 +4730,21 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/executor-legacy-ws@npm:^1.1.39": + version: 1.1.39 + resolution: "@graphql-tools/executor-legacy-ws@npm:1.1.39" + dependencies: + "@graphql-tools/utils": "npm:^12.1.0" + "@types/ws": "npm:^8.18.2" + isomorphic-ws: "npm:^5.0.0" + tslib: "npm:^2.4.0" + ws: "npm:^8.21.3" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10c0/9416f4265e4eeccdb69d6cc28573a3e687fa1ac78bad4fd30b7bf37289739c42823f4fc363a4d67630580ecf14bcf8cfe2bc98c52b89aced82604321dc111588 + languageName: node + linkType: hard + "@graphql-tools/executor-legacy-ws@npm:^2.0.7": version: 2.0.7 resolution: "@graphql-tools/executor-legacy-ws@npm:2.0.7" @@ -4517,7 +4776,23 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/git-loader@npm:^8.0.44": +"@graphql-tools/executor@npm:^2.0.3": + version: 2.1.0 + resolution: "@graphql-tools/executor@npm:2.1.0" + dependencies: + "@graphql-tools/utils": "npm:^12.1.0" + "@graphql-typed-document-node/core": "npm:^3.2.0" + "@repeaterjs/repeater": "npm:^3.1.0" + "@whatwg-node/disposablestack": "npm:^0.1.0" + "@whatwg-node/promise-helpers": "npm:^2.0.0" + tslib: "npm:^2.4.0" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10c0/88c10ed75a6d67dd4b941a6ca24b893d2a281a202abc34fc445f6b0baccd232ccdbffcc4dd240f2734f62a20ce2f8d8cf9299c15bafddfdbce2ce67be3a4b856 + languageName: node + linkType: hard + +"@graphql-tools/git-loader@npm:^8.0.41, @graphql-tools/git-loader@npm:^8.0.44": version: 8.0.46 resolution: "@graphql-tools/git-loader@npm:8.0.46" dependencies: @@ -4533,7 +4808,7 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/github-loader@npm:^9.1.11": +"@graphql-tools/github-loader@npm:^9.1.11, @graphql-tools/github-loader@npm:^9.1.7": version: 9.1.13 resolution: "@graphql-tools/github-loader@npm:9.1.13" dependencies: @@ -4550,7 +4825,7 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/graphql-file-loader@npm:^8.0.1, @graphql-tools/graphql-file-loader@npm:^8.1.22": +"@graphql-tools/graphql-file-loader@npm:^8.0.1, @graphql-tools/graphql-file-loader@npm:^8.1.19, @graphql-tools/graphql-file-loader@npm:^8.1.22": version: 8.1.24 resolution: "@graphql-tools/graphql-file-loader@npm:8.1.24" dependencies: @@ -4580,7 +4855,7 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/graphql-tag-pluck@npm:8.3.41, @graphql-tools/graphql-tag-pluck@npm:^8.3.4, @graphql-tools/graphql-tag-pluck@npm:^8.3.41": +"@graphql-tools/graphql-tag-pluck@npm:8.3.41, @graphql-tools/graphql-tag-pluck@npm:^8.3.41": version: 8.3.41 resolution: "@graphql-tools/graphql-tag-pluck@npm:8.3.41" dependencies: @@ -4622,6 +4897,20 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/json-file-loader@npm:^8.0.33": + version: 8.0.38 + resolution: "@graphql-tools/json-file-loader@npm:8.0.38" + dependencies: + "@graphql-tools/utils": "npm:^12.1.0" + globby: "npm:^11.0.3" + tslib: "npm:^2.4.0" + unixify: "npm:^1.0.0" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10c0/cfffcad1dea18db05456c20b5ec9d8e0e6b472963555dfbc64dbfe6a1784ed404b75f55e0243435fa0790ab31fe40f529293b6bb2954afaa7c959a1809d2dbfa + languageName: node + linkType: hard + "@graphql-tools/json-file-loader@npm:^8.0.36": version: 8.0.36 resolution: "@graphql-tools/json-file-loader@npm:8.0.36" @@ -4677,6 +4966,20 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/load@npm:^8.1.16": + version: 8.1.21 + resolution: "@graphql-tools/load@npm:8.1.21" + dependencies: + "@graphql-tools/schema": "npm:^10.1.5" + "@graphql-tools/utils": "npm:^12.1.0" + p-limit: "npm:3.1.0" + tslib: "npm:^2.4.0" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10c0/49d33583846253657847fd87f2a9838733a68d6b4387d17da15a9ecdc338e64ac740aa90e8fd197f42b9bee75deb626305d1ee7ed66fc64def3673fad48677f2 + languageName: node + linkType: hard + "@graphql-tools/load@npm:^8.1.21 || ^9.0.6, @graphql-tools/load@npm:^9.0.6": version: 9.1.0 resolution: "@graphql-tools/load@npm:9.1.0" @@ -4715,6 +5018,18 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/merge@npm:^9.2.8": + version: 9.2.8 + resolution: "@graphql-tools/merge@npm:9.2.8" + dependencies: + "@graphql-tools/utils": "npm:^12.1.0" + tslib: "npm:^2.4.0" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10c0/fb12426620f5455b53e01d1c1518f27f869f33b12c985dcb4af774c3f3d2c81eab2888cae03ca599f8a2d221c24affc1d294d6e0c47ee4dae223324ad33eea34 + languageName: node + linkType: hard + "@graphql-tools/optimize@npm:^2.0.0": version: 2.0.0 resolution: "@graphql-tools/optimize@npm:2.0.0" @@ -4752,6 +5067,19 @@ __metadata: languageName: node linkType: hard +"@graphql-tools/schema@npm:^10.1.5": + version: 10.1.5 + resolution: "@graphql-tools/schema@npm:10.1.5" + dependencies: + "@graphql-tools/merge": "npm:^9.2.8" + "@graphql-tools/utils": "npm:^12.1.0" + tslib: "npm:^2.4.0" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: 10c0/e840a9703c7e886529eb56478e7c7c1c7b0e26a03c3831ba6961ab3b744859dbd001c1f4565d577998ce0053e3c968b9006536122ff76504d380e4f0095ccf6a + languageName: node + linkType: hard + "@graphql-tools/schema@npm:^11.0.7": version: 11.0.7 resolution: "@graphql-tools/schema@npm:11.0.7" @@ -4809,17 +5137,25 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/utils@npm:^10.0.0": - version: 10.11.0 - resolution: "@graphql-tools/utils@npm:10.11.0" +"@graphql-tools/url-loader@npm:^9.1.7": + version: 9.1.14 + resolution: "@graphql-tools/url-loader@npm:9.1.14" dependencies: - "@graphql-typed-document-node/core": "npm:^3.1.1" - "@whatwg-node/promise-helpers": "npm:^1.0.0" - cross-inspect: "npm:1.0.1" + "@graphql-tools/executor-graphql-ws": "npm:^3.2.0" + "@graphql-tools/executor-http": "npm:^3.4.0" + "@graphql-tools/executor-legacy-ws": "npm:^1.1.39" + "@graphql-tools/utils": "npm:^12.1.0" + "@graphql-tools/wrap": "npm:^11.1.1" + "@types/ws": "npm:^8.18.2" + "@whatwg-node/fetch": "npm:^0.12.0" + "@whatwg-node/promise-helpers": "npm:^2.0.0" + isomorphic-ws: "npm:^5.0.0" + sync-fetch: "npm:0.7.1" tslib: "npm:^2.4.0" + ws: "npm:^8.21.3" peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - checksum: 10c0/73459332c199d8f3aa698bdee4ac6ce802274dba95cc7eff1f0219b6fe6e3a8f314d2e824168e296df8f5ce18f6dbd23ca14406b71890a41ce80b7548e8ccd6d + checksum: 10c0/edb12aa0d63aa52a1c2545eeab927266f547f794c0bbaf8c7908ea34db739d99e3f9d668c683979df8ae7020d3158beddb953ec0481380819f3431fa7b5b6f38 languageName: node linkType: hard @@ -4837,7 +5173,7 @@ __metadata: languageName: node linkType: hard -"@graphql-tools/utils@npm:^12.0.1, @graphql-tools/utils@npm:^12.0.3, @graphql-tools/utils@npm:^12.1.0": +"@graphql-tools/utils@npm:^12.0.0, @graphql-tools/utils@npm:^12.0.1, @graphql-tools/utils@npm:^12.0.3, @graphql-tools/utils@npm:^12.1.0": version: 12.1.0 resolution: "@graphql-tools/utils@npm:12.1.0" dependencies: @@ -4888,60 +5224,50 @@ __metadata: languageName: node linkType: hard -"@hapi/hoek@npm:^9.0.0, @hapi/hoek@npm:^9.3.0": - version: 9.3.0 - resolution: "@hapi/hoek@npm:9.3.0" - checksum: 10c0/a096063805051fb8bba4c947e293c664b05a32b47e13bc654c0dd43813a1cec993bdd8f29ceb838020299e1d0f89f68dc0d62a603c13c9cc8541963f0beca055 - languageName: node - linkType: hard - -"@hapi/topo@npm:^5.1.0": - version: 5.1.0 - resolution: "@hapi/topo@npm:5.1.0" +"@graphql-yoga/logger@npm:^2.0.2": + version: 2.0.2 + resolution: "@graphql-yoga/logger@npm:2.0.2" dependencies: - "@hapi/hoek": "npm:^9.0.0" - checksum: 10c0/b16b06d9357947149e032bdf10151eb71aea8057c79c4046bf32393cb89d0d0f7ca501c40c0f7534a5ceca078de0700d2257ac855c15e59fe4e00bba2f25c86f + tslib: "npm:^2.8.1" + checksum: 10c0/1fb1f9abd409d9284e8d9624df9f4e02be5e59198c0e3998caa2a05b5548b727ca5a30c1310500c6fc5e241b7f1e00969b528e72f871f348fee21746c1de8f62 languageName: node linkType: hard -"@humanfs/core@npm:^0.19.2": - version: 0.19.2 - resolution: "@humanfs/core@npm:0.19.2" +"@graphql-yoga/subscription@npm:^5.1.1": + version: 5.1.1 + resolution: "@graphql-yoga/subscription@npm:5.1.1" dependencies: - "@humanfs/types": "npm:^0.15.0" - checksum: 10c0/d0a1d52d7b30c27d49475a53072d1510b81c5803e44b342fb8faf3887f1aa27593a1e6dc76a45268e7892d3f4e198146659281f6b6d55eacf3fd5a38bac30c5c + "@graphql-yoga/typed-event-target": "npm:^3.0.3" + "@repeaterjs/repeater": "npm:^3.0.4" + "@whatwg-node/events": "npm:^0.1.0" + tslib: "npm:^2.8.1" + checksum: 10c0/43d6abd6b2420175176db0e0d5d38ca2a61693c44c22ec57e37504f8a6519816705a865401d2bc89ae8fbf1d19e5bff057e3b059b7c133f75bbab87f34ab8397 languageName: node linkType: hard -"@humanfs/node@npm:^0.16.6": - version: 0.16.8 - resolution: "@humanfs/node@npm:0.16.8" +"@graphql-yoga/typed-event-target@npm:^3.0.3": + version: 3.0.3 + resolution: "@graphql-yoga/typed-event-target@npm:3.0.3" dependencies: - "@humanfs/core": "npm:^0.19.2" - "@humanfs/types": "npm:^0.15.0" - "@humanwhocodes/retry": "npm:^0.4.0" - checksum: 10c0/56140579db811af4e160b195d45d0f29acf644d192c93fe24c9e594ebf06f19dfc157494a07c84540b8a071c0e4b37209c2362765d31734f4d0be869c2422e25 - languageName: node - linkType: hard - -"@humanfs/types@npm:^0.15.0": - version: 0.15.0 - resolution: "@humanfs/types@npm:0.15.0" - checksum: 10c0/fc26b9a024b0e55f7eaf64036df94345bf5d36d6a41ef80ef38e78f1f7430ce26cf435af736adae58913baae18eac3f38c18739054a3d379102015978eae862e + "@repeaterjs/repeater": "npm:^3.0.4" + tslib: "npm:^2.8.1" + checksum: 10c0/e3d47fc7a6ddb7820a2f34a9cd8cec317cbe559e4dd18df696a49afb801e0c6c00f4ae74a48854cb02438aabce2fb98d86e22f5cd709216191ed1c4595f3697a languageName: node linkType: hard -"@humanwhocodes/module-importer@npm:^1.0.1": - version: 1.0.1 - resolution: "@humanwhocodes/module-importer@npm:1.0.1" - checksum: 10c0/909b69c3b86d482c26b3359db16e46a32e0fb30bd306a3c176b8313b9e7313dba0f37f519de6aa8b0a1921349e505f259d19475e123182416a506d7f87e7f529 +"@hapi/hoek@npm:^9.0.0, @hapi/hoek@npm:^9.3.0": + version: 9.3.0 + resolution: "@hapi/hoek@npm:9.3.0" + checksum: 10c0/a096063805051fb8bba4c947e293c664b05a32b47e13bc654c0dd43813a1cec993bdd8f29ceb838020299e1d0f89f68dc0d62a603c13c9cc8541963f0beca055 languageName: node linkType: hard -"@humanwhocodes/retry@npm:^0.4.0, @humanwhocodes/retry@npm:^0.4.2": - version: 0.4.3 - resolution: "@humanwhocodes/retry@npm:0.4.3" - checksum: 10c0/3775bb30087d4440b3f7406d5a057777d90e4b9f435af488a4923ef249e93615fb78565a85f173a186a076c7706a81d0d57d563a2624e4de2c5c9c66c486ce42 +"@hapi/topo@npm:^5.1.0": + version: 5.1.0 + resolution: "@hapi/topo@npm:5.1.0" + dependencies: + "@hapi/hoek": "npm:^9.0.0" + checksum: 10c0/b16b06d9357947149e032bdf10151eb71aea8057c79c4046bf32393cb89d0d0f7ca501c40c0f7534a5ceca078de0700d2257ac855c15e59fe4e00bba2f25c86f languageName: node linkType: hard @@ -5520,17 +5846,6 @@ __metadata: languageName: node linkType: hard -"@napi-rs/wasm-runtime@npm:^0.2.11": - version: 0.2.12 - resolution: "@napi-rs/wasm-runtime@npm:0.2.12" - dependencies: - "@emnapi/core": "npm:^1.4.3" - "@emnapi/runtime": "npm:^1.4.3" - "@tybys/wasm-util": "npm:^0.10.0" - checksum: 10c0/6d07922c0613aab30c6a497f4df297ca7c54e5b480e00035e0209b872d5c6aab7162fc49477267556109c2c7ed1eb9c65a174e27e9b87568106a87b0a6e3ca7d - languageName: node - linkType: hard - "@neinteractiveliterature/litform-codemirror@npm:^0.35.2": version: 0.35.2 resolution: "@neinteractiveliterature/litform-codemirror@npm:0.35.2" @@ -5665,6 +5980,139 @@ __metadata: languageName: node linkType: hard +"@oxlint/binding-android-arm-eabi@npm:1.91.0": + version: 1.91.0 + resolution: "@oxlint/binding-android-arm-eabi@npm:1.91.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@oxlint/binding-android-arm64@npm:1.91.0": + version: 1.91.0 + resolution: "@oxlint/binding-android-arm64@npm:1.91.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint/binding-darwin-arm64@npm:1.91.0": + version: 1.91.0 + resolution: "@oxlint/binding-darwin-arm64@npm:1.91.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint/binding-darwin-x64@npm:1.91.0": + version: 1.91.0 + resolution: "@oxlint/binding-darwin-x64@npm:1.91.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@oxlint/binding-freebsd-x64@npm:1.91.0": + version: 1.91.0 + resolution: "@oxlint/binding-freebsd-x64@npm:1.91.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@oxlint/binding-linux-arm-gnueabihf@npm:1.91.0": + version: 1.91.0 + resolution: "@oxlint/binding-linux-arm-gnueabihf@npm:1.91.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@oxlint/binding-linux-arm-musleabihf@npm:1.91.0": + version: 1.91.0 + resolution: "@oxlint/binding-linux-arm-musleabihf@npm:1.91.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@oxlint/binding-linux-arm64-gnu@npm:1.91.0": + version: 1.91.0 + resolution: "@oxlint/binding-linux-arm64-gnu@npm:1.91.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-arm64-musl@npm:1.91.0": + version: 1.91.0 + resolution: "@oxlint/binding-linux-arm64-musl@npm:1.91.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@oxlint/binding-linux-ppc64-gnu@npm:1.91.0": + version: 1.91.0 + resolution: "@oxlint/binding-linux-ppc64-gnu@npm:1.91.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-riscv64-gnu@npm:1.91.0": + version: 1.91.0 + resolution: "@oxlint/binding-linux-riscv64-gnu@npm:1.91.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-riscv64-musl@npm:1.91.0": + version: 1.91.0 + resolution: "@oxlint/binding-linux-riscv64-musl@npm:1.91.0" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@oxlint/binding-linux-s390x-gnu@npm:1.91.0": + version: 1.91.0 + resolution: "@oxlint/binding-linux-s390x-gnu@npm:1.91.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-x64-gnu@npm:1.91.0": + version: 1.91.0 + resolution: "@oxlint/binding-linux-x64-gnu@npm:1.91.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@oxlint/binding-linux-x64-musl@npm:1.91.0": + version: 1.91.0 + resolution: "@oxlint/binding-linux-x64-musl@npm:1.91.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@oxlint/binding-openharmony-arm64@npm:1.91.0": + version: 1.91.0 + resolution: "@oxlint/binding-openharmony-arm64@npm:1.91.0" + conditions: os=openharmony & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint/binding-win32-arm64-msvc@npm:1.91.0": + version: 1.91.0 + resolution: "@oxlint/binding-win32-arm64-msvc@npm:1.91.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@oxlint/binding-win32-ia32-msvc@npm:1.91.0": + version: 1.91.0 + resolution: "@oxlint/binding-win32-ia32-msvc@npm:1.91.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@oxlint/binding-win32-x64-msvc@npm:1.91.0": + version: 1.91.0 + resolution: "@oxlint/binding-win32-x64-msvc@npm:1.91.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@parcel/watcher-android-arm64@npm:2.4.1": version: 2.4.1 resolution: "@parcel/watcher-android-arm64@npm:2.4.1" @@ -6116,6 +6564,13 @@ __metadata: languageName: node linkType: hard +"@repeaterjs/repeater@npm:^3.1.0": + version: 3.1.0 + resolution: "@repeaterjs/repeater@npm:3.1.0" + checksum: 10c0/33a41a009c589bebe05bd4a182ffaf47bf9cbf9037729bc5cb0e183f9074e83b0c5f89ce2381bcdc05bb7604771872c5d2f78c5bb7004c562bf64b94821d0abc + languageName: node + linkType: hard + "@rolldown/binding-android-arm-eabi@npm:1.2.15": version: 1.2.15 resolution: "@rolldown/binding-android-arm-eabi@npm:1.2.15" @@ -6511,13 +6966,6 @@ __metadata: languageName: node linkType: hard -"@rtsao/scc@npm:^1.1.0": - version: 1.1.0 - resolution: "@rtsao/scc@npm:1.1.0" - checksum: 10c0/b5bcfb0d87f7d1c1c7c0f7693f53b07866ed9fec4c34a97a8c948fb9a7c0082e416ce4d3b60beb4f5e167cbe04cdeefbf6771320f3ede059b9ce91188c409a5b - languageName: node - linkType: hard - "@sentry/browser-utils@npm:10.78.0": version: 10.78.0 resolution: "@sentry/browser-utils@npm:10.78.0" @@ -7101,15 +7549,6 @@ __metadata: languageName: node linkType: hard -"@tybys/wasm-util@npm:^0.10.0": - version: 0.10.3 - resolution: "@tybys/wasm-util@npm:0.10.3" - dependencies: - tslib: "npm:^2.4.0" - checksum: 10c0/fd2bd2a79c6cd8c79ed1cf7a0fa375c64589264c88a27acaf9756d556b453ea222b62a4f68dd2fbb8b3a78b6bab3b1f4fb2431b6afc6aeda8344b53a521a1cd3 - languageName: node - linkType: hard - "@types/acorn@npm:^4.0.0": version: 4.0.6 resolution: "@types/acorn@npm:4.0.6" @@ -7257,7 +7696,7 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.10, @types/estree@npm:^1.0.6, @types/estree@npm:^1.0.8": +"@types/estree@npm:*, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.10, @types/estree@npm:^1.0.8": version: 1.0.10 resolution: "@types/estree@npm:1.0.10" checksum: 10c0/d258926dac68425e77e43fd64045123b77f998ab2cf0bd0cc5a6ff016c365e60ed26f42adac64551906c1beab3bea08d60d113f905829ac60cfd6409db4761e9 @@ -7394,13 +7833,6 @@ __metadata: languageName: node linkType: hard -"@types/json5@npm:^0.0.29": - version: 0.0.29 - resolution: "@types/json5@npm:0.0.29" - checksum: 10c0/6bf5337bc447b706bb5b4431d37686aa2ea6d07cfd6f79cc31de80170d6ff9b1c7384a9c0ccbc45b3f512bae9e9f75c2e12109806a15331dc94e8a8db6dbb4ac - languageName: node - linkType: hard - "@types/lodash@npm:4.17.27": version: 4.17.27 resolution: "@types/lodash@npm:4.17.27" @@ -7759,141 +8191,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:8.72.1": - version: 8.72.1 - resolution: "@typescript-eslint/eslint-plugin@npm:8.72.1" - dependencies: - "@eslint-community/regexpp": "npm:^4.12.2" - "@typescript-eslint/scope-manager": "npm:8.72.1" - "@typescript-eslint/type-utils": "npm:8.72.1" - "@typescript-eslint/utils": "npm:8.72.1" - "@typescript-eslint/visitor-keys": "npm:8.72.1" - ignore: "npm:^7.0.5" - natural-compare: "npm:^1.4.0" - ts-api-utils: "npm:^2.5.0" - peerDependencies: - "@typescript-eslint/parser": ^8.72.1 - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: ">=4.8.4 <6.1.0" - checksum: 10c0/331c3efdb08ff63bc1bb4fc2888f901d206f71552e1a822a936d7086537b58a9104360a20c6ebfe5a1ea6d3555eda808599cf13cd185ab1554efc0d7a170fa70 - languageName: node - linkType: hard - -"@typescript-eslint/parser@npm:8.72.1": - version: 8.72.1 - resolution: "@typescript-eslint/parser@npm:8.72.1" - dependencies: - "@typescript-eslint/scope-manager": "npm:8.72.1" - "@typescript-eslint/types": "npm:8.72.1" - "@typescript-eslint/typescript-estree": "npm:8.72.1" - "@typescript-eslint/visitor-keys": "npm:8.72.1" - debug: "npm:^4.4.3" - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: ">=4.8.4 <6.1.0" - checksum: 10c0/087e37a59dde6cc87fbc917b84a0a4d1ae846f117aa7a9388afe9d3951f661592ce23f5db87146fa31d5e5383c23ca5a5bd190bf5a99ecfea01f052a55d29b61 - languageName: node - linkType: hard - -"@typescript-eslint/project-service@npm:8.72.1": - version: 8.72.1 - resolution: "@typescript-eslint/project-service@npm:8.72.1" - dependencies: - "@typescript-eslint/tsconfig-utils": "npm:^8.72.1" - "@typescript-eslint/types": "npm:^8.72.1" - debug: "npm:^4.4.3" - peerDependencies: - typescript: ">=4.8.4 <6.1.0" - checksum: 10c0/666172a721ef93b97129b7452e2a025487892b04c6dec8c98f22146354947361be0fd087c5404372f2f4a9be72abfc7d513a35a64509a694e0adb847f8b47e93 - languageName: node - linkType: hard - -"@typescript-eslint/scope-manager@npm:8.72.1, @typescript-eslint/scope-manager@npm:^8.71.2": - version: 8.72.1 - resolution: "@typescript-eslint/scope-manager@npm:8.72.1" - dependencies: - "@typescript-eslint/types": "npm:8.72.1" - "@typescript-eslint/visitor-keys": "npm:8.72.1" - checksum: 10c0/75d55ebcf24c628c955f95446f553991e5b6e30b7f4bc8f14247d72b6490771e7d44757302cf4bc8f5529c1dd58a87d362b5ddbedf9299ff407a0604c25a0a5b - languageName: node - linkType: hard - -"@typescript-eslint/tsconfig-utils@npm:8.72.1, @typescript-eslint/tsconfig-utils@npm:^8.72.1": - version: 8.72.1 - resolution: "@typescript-eslint/tsconfig-utils@npm:8.72.1" - peerDependencies: - typescript: ">=4.8.4 <6.1.0" - checksum: 10c0/121640ae8861828e50d677e7234e70ae03c24786bedac09f4a944bcf59fde90dca6507a1f796974ed6cd9c45d2404562caf3833e6bdfcf3f02a495259b47fc17 - languageName: node - linkType: hard - -"@typescript-eslint/type-utils@npm:8.72.1": - version: 8.72.1 - resolution: "@typescript-eslint/type-utils@npm:8.72.1" - dependencies: - "@typescript-eslint/types": "npm:8.72.1" - "@typescript-eslint/typescript-estree": "npm:8.72.1" - "@typescript-eslint/utils": "npm:8.72.1" - debug: "npm:^4.4.3" - ts-api-utils: "npm:^2.5.0" - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: ">=4.8.4 <6.1.0" - checksum: 10c0/938c3cef5902e02a9bca2e1f495613bae0acac3d3b29e4cd958983976e83fb23325a402dfaa7a6d3352c7dcd3f5888d1aa67eb1bb42b75c00144fb7ab42785fc - languageName: node - linkType: hard - -"@typescript-eslint/types@npm:8.72.1, @typescript-eslint/types@npm:^8.72.1": - version: 8.72.1 - resolution: "@typescript-eslint/types@npm:8.72.1" - checksum: 10c0/759f36d27a5b6c4dcdcd035ddec6e39d261cfcab864e641c4a6252d4be6358e53055ad737f1797e6ebb2b64b8cda380a0492acb96d7115e7ed86e6b27ceeddc3 - languageName: node - linkType: hard - -"@typescript-eslint/typescript-estree@npm:8.72.1": - version: 8.72.1 - resolution: "@typescript-eslint/typescript-estree@npm:8.72.1" - dependencies: - "@typescript-eslint/project-service": "npm:8.72.1" - "@typescript-eslint/tsconfig-utils": "npm:8.72.1" - "@typescript-eslint/types": "npm:8.72.1" - "@typescript-eslint/visitor-keys": "npm:8.72.1" - debug: "npm:^4.4.3" - minimatch: "npm:^10.2.2" - semver: "npm:^7.7.3" - tinyglobby: "npm:^0.2.15" - ts-api-utils: "npm:^2.5.0" - peerDependencies: - typescript: ">=4.8.4 <6.1.0" - checksum: 10c0/88ed2e3f46275972e8a016c66c9f6cf3aca22d0dd3be6c4573d80c8cf78c0322b967c5f1c26759487f79bc005db3fe4ec2bf45715518a5becaab42943981571b - languageName: node - linkType: hard - -"@typescript-eslint/utils@npm:8.72.1, @typescript-eslint/utils@npm:^8.71.2": - version: 8.72.1 - resolution: "@typescript-eslint/utils@npm:8.72.1" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.9.1" - "@typescript-eslint/scope-manager": "npm:8.72.1" - "@typescript-eslint/types": "npm:8.72.1" - "@typescript-eslint/typescript-estree": "npm:8.72.1" - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: ">=4.8.4 <6.1.0" - checksum: 10c0/f0be6d53ee67c65a4b37431367ef58441e60e88d220f2fafd22ecbba91f5ce0c8ba340c4b0f4d1551ef6856f310b353593a4b5304636fbe37aea3fc0eaa8182f - languageName: node - linkType: hard - -"@typescript-eslint/visitor-keys@npm:8.72.1": - version: 8.72.1 - resolution: "@typescript-eslint/visitor-keys@npm:8.72.1" - dependencies: - "@typescript-eslint/types": "npm:8.72.1" - eslint-visitor-keys: "npm:^5.0.0" - checksum: 10c0/758e253217971fb795a5988dffe6257a5655e4c1afebc66892b9d42b1569787a03059e1a64dcabae7cb847b6e7cfba2b8e9fc1a77d17f470cbdaa9419e65e6bb - languageName: node - linkType: hard - "@typescript/native@npm:typescript@7.0.2": version: 7.0.2 resolution: "typescript@npm:7.0.2" @@ -8049,201 +8346,66 @@ __metadata: languageName: node linkType: hard -"@typescript/typescript-linux-x64@npm:7.0.2": - version: 7.0.2 - resolution: "@typescript/typescript-linux-x64@npm:7.0.2" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - -"@typescript/typescript-netbsd-arm64@npm:7.0.2": - version: 7.0.2 - resolution: "@typescript/typescript-netbsd-arm64@npm:7.0.2" - conditions: os=netbsd & cpu=arm64 - languageName: node - linkType: hard - -"@typescript/typescript-netbsd-x64@npm:7.0.2": - version: 7.0.2 - resolution: "@typescript/typescript-netbsd-x64@npm:7.0.2" - conditions: os=netbsd & cpu=x64 - languageName: node - linkType: hard - -"@typescript/typescript-openbsd-arm64@npm:7.0.2": - version: 7.0.2 - resolution: "@typescript/typescript-openbsd-arm64@npm:7.0.2" - conditions: os=openbsd & cpu=arm64 - languageName: node - linkType: hard - -"@typescript/typescript-openbsd-x64@npm:7.0.2": - version: 7.0.2 - resolution: "@typescript/typescript-openbsd-x64@npm:7.0.2" - conditions: os=openbsd & cpu=x64 - languageName: node - linkType: hard - -"@typescript/typescript-sunos-x64@npm:7.0.2": - version: 7.0.2 - resolution: "@typescript/typescript-sunos-x64@npm:7.0.2" - conditions: os=sunos & cpu=x64 - languageName: node - linkType: hard - -"@typescript/typescript-win32-arm64@npm:7.0.2": - version: 7.0.2 - resolution: "@typescript/typescript-win32-arm64@npm:7.0.2" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - -"@typescript/typescript-win32-x64@npm:7.0.2": - version: 7.0.2 - resolution: "@typescript/typescript-win32-x64@npm:7.0.2" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - -"@ungap/structured-clone@npm:^1.0.0": - version: 1.2.0 - resolution: "@ungap/structured-clone@npm:1.2.0" - checksum: 10c0/8209c937cb39119f44eb63cf90c0b73e7c754209a6411c707be08e50e29ee81356dca1a848a405c8bdeebfe2f5e4f831ad310ae1689eeef65e7445c090c6657d - languageName: node - linkType: hard - -"@unrs/resolver-binding-android-arm-eabi@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-android-arm-eabi@npm:1.11.1" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@unrs/resolver-binding-android-arm64@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-android-arm64@npm:1.11.1" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@unrs/resolver-binding-darwin-arm64@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-darwin-arm64@npm:1.11.1" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - -"@unrs/resolver-binding-darwin-x64@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-darwin-x64@npm:1.11.1" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - -"@unrs/resolver-binding-freebsd-x64@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-freebsd-x64@npm:1.11.1" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-arm-gnueabihf@npm:1.11.1" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@unrs/resolver-binding-linux-arm-musleabihf@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-arm-musleabihf@npm:1.11.1" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@unrs/resolver-binding-linux-arm64-gnu@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-arm64-gnu@npm:1.11.1" - conditions: os=linux & cpu=arm64 & libc=glibc - languageName: node - linkType: hard - -"@unrs/resolver-binding-linux-arm64-musl@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-arm64-musl@npm:1.11.1" - conditions: os=linux & cpu=arm64 & libc=musl - languageName: node - linkType: hard - -"@unrs/resolver-binding-linux-ppc64-gnu@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-ppc64-gnu@npm:1.11.1" - conditions: os=linux & cpu=ppc64 & libc=glibc - languageName: node - linkType: hard - -"@unrs/resolver-binding-linux-riscv64-gnu@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-riscv64-gnu@npm:1.11.1" - conditions: os=linux & cpu=riscv64 & libc=glibc +"@typescript/typescript-linux-x64@npm:7.0.2": + version: 7.0.2 + resolution: "@typescript/typescript-linux-x64@npm:7.0.2" + conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@unrs/resolver-binding-linux-riscv64-musl@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-riscv64-musl@npm:1.11.1" - conditions: os=linux & cpu=riscv64 & libc=musl +"@typescript/typescript-netbsd-arm64@npm:7.0.2": + version: 7.0.2 + resolution: "@typescript/typescript-netbsd-arm64@npm:7.0.2" + conditions: os=netbsd & cpu=arm64 languageName: node linkType: hard -"@unrs/resolver-binding-linux-s390x-gnu@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-s390x-gnu@npm:1.11.1" - conditions: os=linux & cpu=s390x & libc=glibc +"@typescript/typescript-netbsd-x64@npm:7.0.2": + version: 7.0.2 + resolution: "@typescript/typescript-netbsd-x64@npm:7.0.2" + conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@unrs/resolver-binding-linux-x64-gnu@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-x64-gnu@npm:1.11.1" - conditions: os=linux & cpu=x64 & libc=glibc +"@typescript/typescript-openbsd-arm64@npm:7.0.2": + version: 7.0.2 + resolution: "@typescript/typescript-openbsd-arm64@npm:7.0.2" + conditions: os=openbsd & cpu=arm64 languageName: node linkType: hard -"@unrs/resolver-binding-linux-x64-musl@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-linux-x64-musl@npm:1.11.1" - conditions: os=linux & cpu=x64 & libc=musl +"@typescript/typescript-openbsd-x64@npm:7.0.2": + version: 7.0.2 + resolution: "@typescript/typescript-openbsd-x64@npm:7.0.2" + conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@unrs/resolver-binding-wasm32-wasi@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-wasm32-wasi@npm:1.11.1" - dependencies: - "@napi-rs/wasm-runtime": "npm:^0.2.11" - conditions: cpu=wasm32 +"@typescript/typescript-sunos-x64@npm:7.0.2": + version: 7.0.2 + resolution: "@typescript/typescript-sunos-x64@npm:7.0.2" + conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@unrs/resolver-binding-win32-arm64-msvc@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-win32-arm64-msvc@npm:1.11.1" +"@typescript/typescript-win32-arm64@npm:7.0.2": + version: 7.0.2 + resolution: "@typescript/typescript-win32-arm64@npm:7.0.2" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@unrs/resolver-binding-win32-ia32-msvc@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-win32-ia32-msvc@npm:1.11.1" - conditions: os=win32 & cpu=ia32 +"@typescript/typescript-win32-x64@npm:7.0.2": + version: 7.0.2 + resolution: "@typescript/typescript-win32-x64@npm:7.0.2" + conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@unrs/resolver-binding-win32-x64-msvc@npm:1.11.1": - version: 1.11.1 - resolution: "@unrs/resolver-binding-win32-x64-msvc@npm:1.11.1" - conditions: os=win32 & cpu=x64 +"@ungap/structured-clone@npm:^1.0.0": + version: 1.2.0 + resolution: "@ungap/structured-clone@npm:1.2.0" + checksum: 10c0/8209c937cb39119f44eb63cf90c0b73e7c754209a6411c707be08e50e29ee81356dca1a848a405c8bdeebfe2f5e4f831ad310ae1689eeef65e7445c090c6657d languageName: node linkType: hard @@ -8283,28 +8445,6 @@ __metadata: languageName: node linkType: hard -"@vitest/eslint-plugin@npm:^1.1.24": - version: 1.6.28 - resolution: "@vitest/eslint-plugin@npm:1.6.28" - dependencies: - "@typescript-eslint/scope-manager": "npm:^8.71.2" - "@typescript-eslint/utils": "npm:^8.71.2" - peerDependencies: - "@typescript-eslint/eslint-plugin": "*" - eslint: ">=8.57.0" - typescript: ">=6.0.0" - vitest: "*" - peerDependenciesMeta: - "@typescript-eslint/eslint-plugin": - optional: true - typescript: - optional: true - vitest: - optional: true - checksum: 10c0/d4ea5a3ef62ea3d5630aa61500433fc36c4c5149e1d6fc9f22d96309e31bc9e611f7df351539994bfe2224406bad6e6c51c6f6d77bbfb1301e3f808160b0eb6e - languageName: node - linkType: hard - "@vitest/expect@npm:4.1.12": version: 4.1.12 resolution: "@vitest/expect@npm:4.1.12" @@ -8575,7 +8715,16 @@ __metadata: languageName: node linkType: hard -"@whatwg-node/fetch@npm:^0.10.0, @whatwg-node/fetch@npm:^0.10.13": +"@whatwg-node/events@npm:^0.1.0": + version: 0.1.2 + resolution: "@whatwg-node/events@npm:0.1.2" + dependencies: + tslib: "npm:^2.6.3" + checksum: 10c0/d49d760081f94f514a70e0508e5485549744173612eafa70bda8400ec5558e36024135d2097051b4f4adf696242e0cf2171e918285823f8cc81ba46493c7169d + languageName: node + linkType: hard + +"@whatwg-node/fetch@npm:^0.10.0, @whatwg-node/fetch@npm:^0.10.13, @whatwg-node/fetch@npm:^0.10.6": version: 0.10.13 resolution: "@whatwg-node/fetch@npm:0.10.13" dependencies: @@ -8637,6 +8786,19 @@ __metadata: languageName: node linkType: hard +"@whatwg-node/server@npm:^0.11.0": + version: 0.11.0 + resolution: "@whatwg-node/server@npm:0.11.0" + dependencies: + "@envelop/instrumentation": "npm:^1.0.0" + "@whatwg-node/disposablestack": "npm:^0.0.6" + "@whatwg-node/fetch": "npm:^0.10.13" + "@whatwg-node/promise-helpers": "npm:^1.3.2" + tslib: "npm:^2.6.3" + checksum: 10c0/01b2715a9677333fb9fe52aed3dc03ebdaf82185c38fbb8bff82ca4b830c717285b7653bc5b700ca9c05eb1a2bea2fb2c2265cf18055fe93cb1cce4add546450 + languageName: node + linkType: hard + "@wry/caches@npm:^1.0.0": version: 1.0.1 resolution: "@wry/caches@npm:1.0.1" @@ -8761,7 +8923,7 @@ __metadata: languageName: node linkType: hard -"acorn-jsx@npm:^5.0.0, acorn-jsx@npm:^5.3.2": +"acorn-jsx@npm:^5.0.0": version: 5.3.2 resolution: "acorn-jsx@npm:5.3.2" peerDependencies: @@ -8837,7 +8999,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.12.5, ajv@npm:^6.14.0": +"ajv@npm:^6.12.5": version: 6.15.0 resolution: "ajv@npm:6.15.0" dependencies: @@ -9032,23 +9194,13 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:^5.0.0, aria-query@npm:^5.3.2": +"aria-query@npm:^5.0.0": version: 5.3.2 resolution: "aria-query@npm:5.3.2" checksum: 10c0/003c7e3e2cff5540bf7a7893775fc614de82b0c5dde8ae823d47b7a28a9d4da1f7ed85f340bdb93d5649caa927755f0e31ecc7ab63edfdfc00c8ef07e505e03e languageName: node linkType: hard -"array-buffer-byte-length@npm:^1.0.1, array-buffer-byte-length@npm:^1.0.2": - version: 1.0.2 - resolution: "array-buffer-byte-length@npm:1.0.2" - dependencies: - call-bound: "npm:^1.0.3" - is-array-buffer: "npm:^3.0.5" - checksum: 10c0/74e1d2d996941c7a1badda9cabb7caab8c449db9086407cad8a1b71d2604cc8abf105db8ca4e02c04579ec58b7be40279ddb09aea4784832984485499f48432d - languageName: node - linkType: hard - "array-flatten@npm:1.1.1": version: 1.1.1 resolution: "array-flatten@npm:1.1.1" @@ -9056,22 +9208,6 @@ __metadata: languageName: node linkType: hard -"array-includes@npm:^3.1.6, array-includes@npm:^3.1.8, array-includes@npm:^3.1.9": - version: 3.1.9 - resolution: "array-includes@npm:3.1.9" - dependencies: - call-bind: "npm:^1.0.8" - call-bound: "npm:^1.0.4" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.24.0" - es-object-atoms: "npm:^1.1.1" - get-intrinsic: "npm:^1.3.0" - is-string: "npm:^1.1.1" - math-intrinsics: "npm:^1.1.0" - checksum: 10c0/0235fa69078abeac05ac4250699c44996bc6f774a9cbe45db48674ce6bd142f09b327d31482ff75cf03344db4ea03eae23edb862d59378b484b47ed842574856 - languageName: node - linkType: hard - "array-to-sentence@npm:2.0.0": version: 2.0.0 resolution: "array-to-sentence@npm:2.0.0" @@ -9086,94 +9222,6 @@ __metadata: languageName: node linkType: hard -"array.prototype.findlast@npm:^1.2.5": - version: 1.2.5 - resolution: "array.prototype.findlast@npm:1.2.5" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.2" - es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.0.0" - es-shim-unscopables: "npm:^1.0.2" - checksum: 10c0/ddc952b829145ab45411b9d6adcb51a8c17c76bf89c9dd64b52d5dffa65d033da8c076ed2e17091779e83bc892b9848188d7b4b33453c5565e65a92863cb2775 - languageName: node - linkType: hard - -"array.prototype.findlastindex@npm:^1.2.6": - version: 1.2.6 - resolution: "array.prototype.findlastindex@npm:1.2.6" - dependencies: - call-bind: "npm:^1.0.8" - call-bound: "npm:^1.0.4" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.9" - es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.1.1" - es-shim-unscopables: "npm:^1.1.0" - checksum: 10c0/82559310d2e57ec5f8fc53d7df420e3abf0ba497935de0a5570586035478ba7d07618cb18e2d4ada2da514c8fb98a034aaf5c06caa0a57e2f7f4c4adedef5956 - languageName: node - linkType: hard - -"array.prototype.flat@npm:^1.3.1, array.prototype.flat@npm:^1.3.3": - version: 1.3.3 - resolution: "array.prototype.flat@npm:1.3.3" - dependencies: - call-bind: "npm:^1.0.8" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.5" - es-shim-unscopables: "npm:^1.0.2" - checksum: 10c0/d90e04dfbc43bb96b3d2248576753d1fb2298d2d972e29ca7ad5ec621f0d9e16ff8074dae647eac4f31f4fb7d3f561a7ac005fb01a71f51705a13b5af06a7d8a - languageName: node - linkType: hard - -"array.prototype.flatmap@npm:^1.3.2, array.prototype.flatmap@npm:^1.3.3": - version: 1.3.3 - resolution: "array.prototype.flatmap@npm:1.3.3" - dependencies: - call-bind: "npm:^1.0.8" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.5" - es-shim-unscopables: "npm:^1.0.2" - checksum: 10c0/ba899ea22b9dc9bf276e773e98ac84638ed5e0236de06f13d63a90b18ca9e0ec7c97d622d899796e3773930b946cd2413d098656c0c5d8cc58c6f25c21e6bd54 - languageName: node - linkType: hard - -"array.prototype.tosorted@npm:^1.1.4": - version: 1.1.4 - resolution: "array.prototype.tosorted@npm:1.1.4" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.3" - es-errors: "npm:^1.3.0" - es-shim-unscopables: "npm:^1.0.2" - checksum: 10c0/eb3c4c4fc0381b0bf6dba2ea4d48d367c2827a0d4236a5718d97caaccc6b78f11f4cadf090736e86301d295a6aa4967ed45568f92ced51be8cbbacd9ca410943 - languageName: node - linkType: hard - -"arraybuffer.prototype.slice@npm:^1.0.4": - version: 1.0.4 - resolution: "arraybuffer.prototype.slice@npm:1.0.4" - dependencies: - array-buffer-byte-length: "npm:^1.0.1" - call-bind: "npm:^1.0.8" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.5" - es-errors: "npm:^1.3.0" - get-intrinsic: "npm:^1.2.6" - is-array-buffer: "npm:^3.0.4" - checksum: 10c0/2f2459caa06ae0f7f615003f9104b01f6435cc803e11bd2a655107d52a1781dc040532dc44d93026b694cc18793993246237423e13a5337e86b43ed604932c06 - languageName: node - linkType: hard - -"arrify@npm:^1.0.1": - version: 1.0.1 - resolution: "arrify@npm:1.0.1" - checksum: 10c0/c35c8d1a81bcd5474c0c57fe3f4bad1a4d46a5fa353cedcff7a54da315df60db71829e69104b859dff96c5d68af46bd2be259fe5e50dc6aa9df3b36bea0383ab - languageName: node - linkType: hard - "asn1.js@npm:^4.10.1": version: 4.10.1 resolution: "asn1.js@npm:4.10.1" @@ -9216,13 +9264,6 @@ __metadata: languageName: node linkType: hard -"ast-types-flow@npm:^0.0.8": - version: 0.0.8 - resolution: "ast-types-flow@npm:0.0.8" - checksum: 10c0/f2a0ba8055353b743c41431974521e5e852a9824870cd6fce2db0e538ac7bf4da406bbd018d109af29ff3f8f0993f6a730c9eddbd0abd031fbcb29ca75c1014e - languageName: node - linkType: hard - "ast-v8-to-istanbul@npm:^1.0.0": version: 1.0.0 resolution: "ast-v8-to-istanbul@npm:1.0.0" @@ -9290,20 +9331,6 @@ __metadata: languageName: node linkType: hard -"axe-core@npm:^4.10.0": - version: 4.10.0 - resolution: "axe-core@npm:4.10.0" - checksum: 10c0/732c171d48caaace5e784895c4dacb8ca6155e9d98045138ebe3952f78457dd05b92c57d05b41ce2a570aff87dbd0471e8398d2c0f6ebe79617b746c8f658998 - languageName: node - linkType: hard - -"axobject-query@npm:^4.1.0": - version: 4.1.0 - resolution: "axobject-query@npm:4.1.0" - checksum: 10c0/c470e4f95008f232eadd755b018cb55f16c03ccf39c027b941cd8820ac6b68707ce5d7368a46756db4256fbc91bb4ead368f84f7fb034b2b7932f082f6dc0775 - languageName: node - linkType: hard - "b4a@npm:^1.6.4": version: 1.6.4 resolution: "b4a@npm:1.6.4" @@ -10022,7 +10049,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.1.2": +"chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.2": version: 4.1.2 resolution: "chalk@npm:4.1.2" dependencies: @@ -10595,13 +10622,6 @@ __metadata: languageName: node linkType: hard -"confusing-browser-globals@npm:^1.0.10": - version: 1.0.10 - resolution: "confusing-browser-globals@npm:1.0.10" - checksum: 10c0/539532caf30cb2f16dd587617e1677a0c184e31aa7b17113e46ba6e94b4c943d25b191e054a266843a76f39ebca87276ad3283729bf4b3a8828679851f3b463f - languageName: node - linkType: hard - "connect-history-api-fallback@npm:^2.0.0": version: 2.0.0 resolution: "connect-history-api-fallback@npm:2.0.0" @@ -10877,7 +10897,7 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.3, cross-spawn@npm:^7.0.6": +"cross-spawn@npm:^7.0.3": version: 7.0.6 resolution: "cross-spawn@npm:7.0.6" dependencies: @@ -11293,13 +11313,6 @@ __metadata: languageName: node linkType: hard -"damerau-levenshtein@npm:^1.0.8": - version: 1.0.8 - resolution: "damerau-levenshtein@npm:1.0.8" - checksum: 10c0/4c2647e0f42acaee7d068756c1d396e296c3556f9c8314bac1ac63ffb236217ef0e7e58602b18bb2173deec7ec8e0cac8e27cccf8f5526666b4ff11a13ad54a3 - languageName: node - linkType: hard - "data-uri-to-buffer@npm:^4.0.0": version: 4.0.1 resolution: "data-uri-to-buffer@npm:4.0.1" @@ -11317,39 +11330,6 @@ __metadata: languageName: node linkType: hard -"data-view-buffer@npm:^1.0.2": - version: 1.0.2 - resolution: "data-view-buffer@npm:1.0.2" - dependencies: - call-bound: "npm:^1.0.3" - es-errors: "npm:^1.3.0" - is-data-view: "npm:^1.0.2" - checksum: 10c0/7986d40fc7979e9e6241f85db8d17060dd9a71bd53c894fa29d126061715e322a4cd47a00b0b8c710394854183d4120462b980b8554012acc1c0fa49df7ad38c - languageName: node - linkType: hard - -"data-view-byte-length@npm:^1.0.2": - version: 1.0.2 - resolution: "data-view-byte-length@npm:1.0.2" - dependencies: - call-bound: "npm:^1.0.3" - es-errors: "npm:^1.3.0" - is-data-view: "npm:^1.0.2" - checksum: 10c0/f8a4534b5c69384d95ac18137d381f18a5cfae1f0fc1df0ef6feef51ef0d568606d970b69e02ea186c6c0f0eac77fe4e6ad96fec2569cc86c3afcc7475068c55 - languageName: node - linkType: hard - -"data-view-byte-offset@npm:^1.0.1": - version: 1.0.1 - resolution: "data-view-byte-offset@npm:1.0.1" - dependencies: - call-bound: "npm:^1.0.2" - es-errors: "npm:^1.3.0" - is-data-view: "npm:^1.0.1" - checksum: 10c0/fa7aa40078025b7810dcffc16df02c480573b7b53ef1205aa6a61533011005c1890e5ba17018c692ce7c900212b547262d33279fde801ad9843edc0863bf78c4 - languageName: node - linkType: hard - "dataloader@npm:^2.2.3": version: 2.2.3 resolution: "dataloader@npm:2.2.3" @@ -11387,16 +11367,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:^3.2.7": - version: 3.2.7 - resolution: "debug@npm:3.2.7" - dependencies: - ms: "npm:^2.1.1" - checksum: 10c0/37d96ae42cbc71c14844d2ae3ba55adf462ec89fd3a999459dec3833944cd999af6007ff29c780f1c61153bcaaf2c842d1e4ce1ec621e4fc4923244942e4a02a - languageName: node - linkType: hard - -"debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.4.1, debug@npm:^4.4.3": +"debug@npm:^4.0.0, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.4, debug@npm:^4.4.1": version: 4.4.3 resolution: "debug@npm:4.4.3" dependencies: @@ -11452,13 +11423,6 @@ __metadata: languageName: node linkType: hard -"deep-is@npm:^0.1.3": - version: 0.1.4 - resolution: "deep-is@npm:0.1.4" - checksum: 10c0/7f0ee496e0dff14a573dc6127f14c95061b448b87b995fc96c017ce0a1e66af1675e73f1d6064407975bc4ea6ab679497a29fff7b5b9c4e99cb10797c1ad0b4c - languageName: node - linkType: hard - "deepmerge@npm:^4.2.2, deepmerge@npm:^4.3.1": version: 4.3.1 resolution: "deepmerge@npm:4.3.1" @@ -11701,15 +11665,6 @@ __metadata: languageName: unknown linkType: soft -"doctrine@npm:^2.1.0": - version: 2.1.0 - resolution: "doctrine@npm:2.1.0" - dependencies: - esutils: "npm:^2.0.2" - checksum: 10c0/b6416aaff1f380bf56c3b552f31fdf7a69b45689368deca72d28636f41c16bb28ec3ebc40ace97db4c1afc0ceeb8120e8492fe0046841c94c2933b2e30a7d5ac - languageName: node - linkType: hard - "dom-accessibility-api@npm:^0.5.9": version: 0.5.16 resolution: "dom-accessibility-api@npm:0.5.16" @@ -11838,7 +11793,7 @@ __metadata: languageName: node linkType: hard -"dunder-proto@npm:^1.0.0, dunder-proto@npm:^1.0.1": +"dunder-proto@npm:^1.0.1": version: 1.0.1 resolution: "dunder-proto@npm:1.0.1" dependencies: @@ -12020,68 +11975,6 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9, es-abstract@npm:^1.24.0": - version: 1.24.0 - resolution: "es-abstract@npm:1.24.0" - dependencies: - array-buffer-byte-length: "npm:^1.0.2" - arraybuffer.prototype.slice: "npm:^1.0.4" - available-typed-arrays: "npm:^1.0.7" - call-bind: "npm:^1.0.8" - call-bound: "npm:^1.0.4" - data-view-buffer: "npm:^1.0.2" - data-view-byte-length: "npm:^1.0.2" - data-view-byte-offset: "npm:^1.0.1" - es-define-property: "npm:^1.0.1" - es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.1.1" - es-set-tostringtag: "npm:^2.1.0" - es-to-primitive: "npm:^1.3.0" - function.prototype.name: "npm:^1.1.8" - get-intrinsic: "npm:^1.3.0" - get-proto: "npm:^1.0.1" - get-symbol-description: "npm:^1.1.0" - globalthis: "npm:^1.0.4" - gopd: "npm:^1.2.0" - has-property-descriptors: "npm:^1.0.2" - has-proto: "npm:^1.2.0" - has-symbols: "npm:^1.1.0" - hasown: "npm:^2.0.2" - internal-slot: "npm:^1.1.0" - is-array-buffer: "npm:^3.0.5" - is-callable: "npm:^1.2.7" - is-data-view: "npm:^1.0.2" - is-negative-zero: "npm:^2.0.3" - is-regex: "npm:^1.2.1" - is-set: "npm:^2.0.3" - is-shared-array-buffer: "npm:^1.0.4" - is-string: "npm:^1.1.1" - is-typed-array: "npm:^1.1.15" - is-weakref: "npm:^1.1.1" - math-intrinsics: "npm:^1.1.0" - object-inspect: "npm:^1.13.4" - object-keys: "npm:^1.1.1" - object.assign: "npm:^4.1.7" - own-keys: "npm:^1.0.1" - regexp.prototype.flags: "npm:^1.5.4" - safe-array-concat: "npm:^1.1.3" - safe-push-apply: "npm:^1.0.0" - safe-regex-test: "npm:^1.1.0" - set-proto: "npm:^1.0.0" - stop-iteration-iterator: "npm:^1.1.0" - string.prototype.trim: "npm:^1.2.10" - string.prototype.trimend: "npm:^1.0.9" - string.prototype.trimstart: "npm:^1.0.8" - typed-array-buffer: "npm:^1.0.3" - typed-array-byte-length: "npm:^1.0.3" - typed-array-byte-offset: "npm:^1.0.4" - typed-array-length: "npm:^1.0.7" - unbox-primitive: "npm:^1.1.0" - which-typed-array: "npm:^1.1.19" - checksum: 10c0/b256e897be32df5d382786ce8cce29a1dd8c97efbab77a26609bd70f2ed29fbcfc7a31758cb07488d532e7ccccdfca76c1118f2afe5a424cdc05ca007867c318 - languageName: node - linkType: hard - "es-define-property@npm:^1.0.0, es-define-property@npm:^1.0.1": version: 1.0.1 resolution: "es-define-property@npm:1.0.1" @@ -12096,82 +11989,26 @@ __metadata: languageName: node linkType: hard -"es-iterator-helpers@npm:^1.2.1": - version: 1.2.1 - resolution: "es-iterator-helpers@npm:1.2.1" - dependencies: - call-bind: "npm:^1.0.8" - call-bound: "npm:^1.0.3" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.6" - es-errors: "npm:^1.3.0" - es-set-tostringtag: "npm:^2.0.3" - function-bind: "npm:^1.1.2" - get-intrinsic: "npm:^1.2.6" - globalthis: "npm:^1.0.4" - gopd: "npm:^1.2.0" - has-property-descriptors: "npm:^1.0.2" - has-proto: "npm:^1.2.0" - has-symbols: "npm:^1.1.0" - internal-slot: "npm:^1.1.0" - iterator.prototype: "npm:^1.1.4" - safe-array-concat: "npm:^1.1.3" - checksum: 10c0/97e3125ca472d82d8aceea11b790397648b52c26d8768ea1c1ee6309ef45a8755bb63225a43f3150c7591cffc17caf5752459f1e70d583b4184370a8f04ebd2f - languageName: node - linkType: hard - -"es-module-lexer@npm:^1.3.1, es-module-lexer@npm:^1.7.0": - version: 1.7.0 - resolution: "es-module-lexer@npm:1.7.0" - checksum: 10c0/4c935affcbfeba7fb4533e1da10fa8568043df1e3574b869385980de9e2d475ddc36769891936dbb07036edb3c3786a8b78ccf44964cd130dedc1f2c984b6c7b - languageName: node - linkType: hard - -"es-module-lexer@npm:^2.0.0": - version: 2.0.0 - resolution: "es-module-lexer@npm:2.0.0" - checksum: 10c0/ae78dbbd43035a4b972c46cfb6877e374ea290adfc62bc2f5a083fea242c0b2baaab25c5886af86be55f092f4a326741cb94334cd3c478c383fdc8a9ec5ff817 - languageName: node - linkType: hard - -"es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1": - version: 1.1.1 - resolution: "es-object-atoms@npm:1.1.1" - dependencies: - es-errors: "npm:^1.3.0" - checksum: 10c0/65364812ca4daf48eb76e2a3b7a89b3f6a2e62a1c420766ce9f692665a29d94fe41fe88b65f24106f449859549711e4b40d9fb8002d862dfd7eb1c512d10be0c - languageName: node - linkType: hard - -"es-set-tostringtag@npm:^2.0.3, es-set-tostringtag@npm:^2.1.0": - version: 2.1.0 - resolution: "es-set-tostringtag@npm:2.1.0" - dependencies: - es-errors: "npm:^1.3.0" - get-intrinsic: "npm:^1.2.6" - has-tostringtag: "npm:^1.0.2" - hasown: "npm:^2.0.2" - checksum: 10c0/ef2ca9ce49afe3931cb32e35da4dcb6d86ab02592cfc2ce3e49ced199d9d0bb5085fc7e73e06312213765f5efa47cc1df553a6a5154584b21448e9fb8355b1af +"es-module-lexer@npm:^1.3.1, es-module-lexer@npm:^1.7.0": + version: 1.7.0 + resolution: "es-module-lexer@npm:1.7.0" + checksum: 10c0/4c935affcbfeba7fb4533e1da10fa8568043df1e3574b869385980de9e2d475ddc36769891936dbb07036edb3c3786a8b78ccf44964cd130dedc1f2c984b6c7b languageName: node linkType: hard -"es-shim-unscopables@npm:^1.0.2, es-shim-unscopables@npm:^1.1.0": - version: 1.1.0 - resolution: "es-shim-unscopables@npm:1.1.0" - dependencies: - hasown: "npm:^2.0.2" - checksum: 10c0/1b9702c8a1823fc3ef39035a4e958802cf294dd21e917397c561d0b3e195f383b978359816b1732d02b255ccf63e1e4815da0065b95db8d7c992037be3bbbcdb +"es-module-lexer@npm:^2.0.0": + version: 2.0.0 + resolution: "es-module-lexer@npm:2.0.0" + checksum: 10c0/ae78dbbd43035a4b972c46cfb6877e374ea290adfc62bc2f5a083fea242c0b2baaab25c5886af86be55f092f4a326741cb94334cd3c478c383fdc8a9ec5ff817 languageName: node linkType: hard -"es-to-primitive@npm:^1.3.0": - version: 1.3.0 - resolution: "es-to-primitive@npm:1.3.0" +"es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1": + version: 1.1.1 + resolution: "es-object-atoms@npm:1.1.1" dependencies: - is-callable: "npm:^1.2.7" - is-date-object: "npm:^1.0.5" - is-symbol: "npm:^1.0.4" - checksum: 10c0/c7e87467abb0b438639baa8139f701a06537d2b9bc758f23e8622c3b42fd0fdb5bde0f535686119e446dd9d5e4c0f238af4e14960f4771877cf818d023f6730b + es-errors: "npm:^1.3.0" + checksum: 10c0/65364812ca4daf48eb76e2a3b7a89b3f6a2e62a1c420766ce9f692665a29d94fe41fe88b65f24106f449859549711e4b40d9fb8002d862dfd7eb1c512d10be0c languageName: node linkType: hard @@ -12362,6 +12199,13 @@ __metadata: languageName: node linkType: hard +"escape-string-regexp@npm:^1.0.5": + version: 1.0.5 + resolution: "escape-string-regexp@npm:1.0.5" + checksum: 10c0/a968ad453dd0c2724e14a4f20e177aaf32bb384ab41b674a8454afe9a41c5e6fe8903323e0a1052f56289d04bd600f81278edf140b0fcc02f5cac98d0f5b5371 + languageName: node + linkType: hard + "escape-string-regexp@npm:^4.0.0": version: 4.0.0 resolution: "escape-string-regexp@npm:4.0.0" @@ -12376,135 +12220,6 @@ __metadata: languageName: node linkType: hard -"eslint-config-airbnb-base@npm:15.0.0, eslint-config-airbnb-base@npm:^15.0.0": - version: 15.0.0 - resolution: "eslint-config-airbnb-base@npm:15.0.0" - dependencies: - confusing-browser-globals: "npm:^1.0.10" - object.assign: "npm:^4.1.2" - object.entries: "npm:^1.1.5" - semver: "npm:^6.3.0" - peerDependencies: - eslint: ^7.32.0 || ^8.2.0 - eslint-plugin-import: ^2.25.2 - checksum: 10c0/93639d991654414756f82ad7860aac30b0dc6797277b7904ddb53ed88a32c470598696bbc6c503e066414024d305221974d3769e6642de65043bedf29cbbd30f - languageName: node - linkType: hard - -"eslint-config-airbnb-typescript@npm:18.0.0": - version: 18.0.0 - resolution: "eslint-config-airbnb-typescript@npm:18.0.0" - dependencies: - eslint-config-airbnb-base: "npm:^15.0.0" - peerDependencies: - "@typescript-eslint/eslint-plugin": ^7.0.0 - "@typescript-eslint/parser": ^7.0.0 - eslint: ^8.56.0 - checksum: 10c0/8bfedda75f746f04972ce4cc5f32257bcc7953122360827d8afdd1e2c7c13a296eabacd50588de83ea74bab0f4bc7f383f460708ef267ac72c891daddfa44749 - languageName: node - linkType: hard - -"eslint-config-airbnb@npm:19.0.4": - version: 19.0.4 - resolution: "eslint-config-airbnb@npm:19.0.4" - dependencies: - eslint-config-airbnb-base: "npm:^15.0.0" - object.assign: "npm:^4.1.2" - object.entries: "npm:^1.1.5" - peerDependencies: - eslint: ^7.32.0 || ^8.2.0 - eslint-plugin-import: ^2.25.3 - eslint-plugin-jsx-a11y: ^6.5.1 - eslint-plugin-react: ^7.28.0 - eslint-plugin-react-hooks: ^4.3.0 - checksum: 10c0/867feeda45c4b480b1b8eff8fabc1bb107e837da8b48e5039e0c175ae6ad34af383b1924fc163bbfcef24a324e6651b1515e5bd12cbcbb19535a8838e2544a02 - languageName: node - linkType: hard - -"eslint-config-prettier@npm:10.1.8": - version: 10.1.8 - resolution: "eslint-config-prettier@npm:10.1.8" - peerDependencies: - eslint: ">=7.0.0" - bin: - eslint-config-prettier: bin/cli.js - checksum: 10c0/e1bcfadc9eccd526c240056b1e59c5cd26544fe59feb85f38f4f1f116caed96aea0b3b87868e68b3099e55caaac3f2e5b9f58110f85db893e83a332751192682 - languageName: node - linkType: hard - -"eslint-import-context@npm:^0.1.8": - version: 0.1.9 - resolution: "eslint-import-context@npm:0.1.9" - dependencies: - get-tsconfig: "npm:^4.10.1" - stable-hash-x: "npm:^0.2.0" - peerDependencies: - unrs-resolver: ^1.0.0 - peerDependenciesMeta: - unrs-resolver: - optional: true - checksum: 10c0/07851103443b70af681c5988e2702e681ff9b956e055e11d4bd9b2322847fa0d9e8da50c18fc7cb1165106b043f34fbd0384d7011c239465c4645c52132e56f3 - languageName: node - linkType: hard - -"eslint-import-resolver-node@npm:0.4.0": - version: 0.4.0 - resolution: "eslint-import-resolver-node@npm:0.4.0" - dependencies: - debug: "npm:^3.2.7" - is-core-module: "npm:^2.16.2" - resolve: "npm:^2.0.0-next.7" - checksum: 10c0/baaeb31e47001c3834b8d0f98aedeac4f1677fe4380f309232cf98a8ae2d2fb4df112266df58acd631e6166d3294cf64dc4760eb7dbd1a36ec11538fd9d66722 - languageName: node - linkType: hard - -"eslint-import-resolver-node@npm:^0.3.9": - version: 0.3.10 - resolution: "eslint-import-resolver-node@npm:0.3.10" - dependencies: - debug: "npm:^3.2.7" - is-core-module: "npm:^2.16.1" - resolve: "npm:^2.0.0-next.6" - checksum: 10c0/2e05bdb148fe10a25b9a6fec3c4986a2e09e98bb99208491df82a9df7725f7bb312482d585404c440d42e58ab60debe7a48d9c992191851385b18d33a146e3c3 - languageName: node - linkType: hard - -"eslint-import-resolver-typescript@npm:4.4.5": - version: 4.4.5 - resolution: "eslint-import-resolver-typescript@npm:4.4.5" - dependencies: - debug: "npm:^4.4.1" - eslint-import-context: "npm:^0.1.8" - get-tsconfig: "npm:^4.10.1" - is-bun-module: "npm:^2.0.0" - stable-hash-x: "npm:^0.2.0" - tinyglobby: "npm:^0.2.14" - unrs-resolver: "npm:^1.7.11" - peerDependencies: - eslint: "*" - eslint-plugin-import: "*" - eslint-plugin-import-x: "*" - peerDependenciesMeta: - eslint-plugin-import: - optional: true - eslint-plugin-import-x: - optional: true - checksum: 10c0/15fa1c47dfc508deaef638d8f9b65eedfd4722c23c1b4e51391082daf4f23a75fc5e42ebcbc5ebcae8a3977f9aa204dd2574528ab0c27b678e582122f3c8cc02 - languageName: node - linkType: hard - -"eslint-module-utils@npm:^2.12.1": - version: 2.12.1 - resolution: "eslint-module-utils@npm:2.12.1" - dependencies: - debug: "npm:^3.2.7" - peerDependenciesMeta: - eslint: - optional: true - checksum: 10c0/6f4efbe7a91ae49bf67b4ab3644cb60bc5bd7db4cb5521de1b65be0847ffd3fb6bce0dd68f0995e1b312d137f768e2a1f842ee26fe73621afa05f850628fdc40 - languageName: node - linkType: hard - "eslint-plugin-i18next@npm:^6.1.1": version: 6.1.5 resolution: "eslint-plugin-i18next@npm:6.1.5" @@ -12514,103 +12229,6 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-import@npm:2.32.0": - version: 2.32.0 - resolution: "eslint-plugin-import@npm:2.32.0" - dependencies: - "@rtsao/scc": "npm:^1.1.0" - array-includes: "npm:^3.1.9" - array.prototype.findlastindex: "npm:^1.2.6" - array.prototype.flat: "npm:^1.3.3" - array.prototype.flatmap: "npm:^1.3.3" - debug: "npm:^3.2.7" - doctrine: "npm:^2.1.0" - eslint-import-resolver-node: "npm:^0.3.9" - eslint-module-utils: "npm:^2.12.1" - hasown: "npm:^2.0.2" - is-core-module: "npm:^2.16.1" - is-glob: "npm:^4.0.3" - minimatch: "npm:^3.1.2" - object.fromentries: "npm:^2.0.8" - object.groupby: "npm:^1.0.3" - object.values: "npm:^1.2.1" - semver: "npm:^6.3.1" - string.prototype.trimend: "npm:^1.0.9" - tsconfig-paths: "npm:^3.15.0" - peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 - checksum: 10c0/bfb1b8fc8800398e62ddfefbf3638d185286edfed26dfe00875cc2846d954491b4f5112457831588b757fa789384e1ae585f812614c4797f0499fa234fd4a48b - languageName: node - linkType: hard - -"eslint-plugin-jsx-a11y@npm:6.10.2": - version: 6.10.2 - resolution: "eslint-plugin-jsx-a11y@npm:6.10.2" - dependencies: - aria-query: "npm:^5.3.2" - array-includes: "npm:^3.1.8" - array.prototype.flatmap: "npm:^1.3.2" - ast-types-flow: "npm:^0.0.8" - axe-core: "npm:^4.10.0" - axobject-query: "npm:^4.1.0" - damerau-levenshtein: "npm:^1.0.8" - emoji-regex: "npm:^9.2.2" - hasown: "npm:^2.0.2" - jsx-ast-utils: "npm:^3.3.5" - language-tags: "npm:^1.0.9" - minimatch: "npm:^3.1.2" - object.fromentries: "npm:^2.0.8" - safe-regex-test: "npm:^1.0.3" - string.prototype.includes: "npm:^2.0.1" - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 - checksum: 10c0/d93354e03b0cf66f018d5c50964e074dffe4ddf1f9b535fa020d19c4ae45f89c1a16e9391ca61ac3b19f7042c751ac0d361a056a65cbd1de24718a53ff8daa6e - languageName: node - linkType: hard - -"eslint-plugin-react-hooks@npm:7.1.1": - version: 7.1.1 - resolution: "eslint-plugin-react-hooks@npm:7.1.1" - dependencies: - "@babel/core": "npm:^7.24.4" - "@babel/parser": "npm:^7.24.4" - hermes-parser: "npm:^0.25.1" - zod: "npm:^3.25.0 || ^4.0.0" - zod-validation-error: "npm:^3.5.0 || ^4.0.0" - peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 || ^10.0.0 - checksum: 10c0/cee8454915d71ac5d70a0d8f4f260e76eaf45fcd4162747dd4282b792ee5616d187351dabe6cdcff9040c79d0cec625635c4fd0777276be119efa88ebe058525 - languageName: node - linkType: hard - -"eslint-plugin-react@npm:7.37.5": - version: 7.37.5 - resolution: "eslint-plugin-react@npm:7.37.5" - dependencies: - array-includes: "npm:^3.1.8" - array.prototype.findlast: "npm:^1.2.5" - array.prototype.flatmap: "npm:^1.3.3" - array.prototype.tosorted: "npm:^1.1.4" - doctrine: "npm:^2.1.0" - es-iterator-helpers: "npm:^1.2.1" - estraverse: "npm:^5.3.0" - hasown: "npm:^2.0.2" - jsx-ast-utils: "npm:^2.4.1 || ^3.0.0" - minimatch: "npm:^3.1.2" - object.entries: "npm:^1.1.9" - object.fromentries: "npm:^2.0.8" - object.values: "npm:^1.2.1" - prop-types: "npm:^15.8.1" - resolve: "npm:^2.0.0-next.5" - semver: "npm:^6.3.1" - string.prototype.matchall: "npm:^4.0.12" - string.prototype.repeat: "npm:^1.0.0" - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 - checksum: 10c0/c850bfd556291d4d9234f5ca38db1436924a1013627c8ab1853f77cac73ec19b020e861e6c7b783436a48b6ffcdfba4547598235a37ad4611b6739f65fd8ad57 - languageName: node - linkType: hard - "eslint-scope@npm:5.1.1": version: 5.1.1 resolution: "eslint-scope@npm:5.1.1" @@ -12621,106 +12239,6 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^8.4.0": - version: 8.4.0 - resolution: "eslint-scope@npm:8.4.0" - dependencies: - esrecurse: "npm:^4.3.0" - estraverse: "npm:^5.2.0" - checksum: 10c0/407f6c600204d0f3705bd557f81bd0189e69cd7996f408f8971ab5779c0af733d1af2f1412066b40ee1588b085874fc37a2333986c6521669cdbdd36ca5058e0 - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^3.4.3": - version: 3.4.3 - resolution: "eslint-visitor-keys@npm:3.4.3" - checksum: 10c0/92708e882c0a5ffd88c23c0b404ac1628cf20104a108c745f240a13c332a11aac54f49a22d5762efbffc18ecbc9a580d1b7ad034bf5f3cc3307e5cbff2ec9820 - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^4.2.1": - version: 4.2.1 - resolution: "eslint-visitor-keys@npm:4.2.1" - checksum: 10c0/fcd43999199d6740db26c58dbe0c2594623e31ca307e616ac05153c9272f12f1364f5a0b1917a8e962268fdecc6f3622c1c2908b4fcc2e047a106fe6de69dc43 - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^5.0.0": - version: 5.0.1 - resolution: "eslint-visitor-keys@npm:5.0.1" - checksum: 10c0/16190bdf2cbae40a1109384c94450c526a79b0b9c3cb21e544256ed85ac48a4b84db66b74a6561d20fe6ab77447f150d711c2ad5ad74df4fcc133736bce99678 - languageName: node - linkType: hard - -"eslint@npm:9.39.5": - version: 9.39.5 - resolution: "eslint@npm:9.39.5" - dependencies: - "@eslint-community/eslint-utils": "npm:^4.8.0" - "@eslint-community/regexpp": "npm:^4.12.1" - "@eslint/config-array": "npm:^0.21.2" - "@eslint/config-helpers": "npm:^0.4.2" - "@eslint/core": "npm:^0.17.0" - "@eslint/eslintrc": "npm:^3.3.6" - "@eslint/js": "npm:9.39.5" - "@eslint/plugin-kit": "npm:^0.4.1" - "@humanfs/node": "npm:^0.16.6" - "@humanwhocodes/module-importer": "npm:^1.0.1" - "@humanwhocodes/retry": "npm:^0.4.2" - "@types/estree": "npm:^1.0.6" - ajv: "npm:^6.14.0" - chalk: "npm:^4.0.0" - cross-spawn: "npm:^7.0.6" - debug: "npm:^4.3.2" - escape-string-regexp: "npm:^4.0.0" - eslint-scope: "npm:^8.4.0" - eslint-visitor-keys: "npm:^4.2.1" - espree: "npm:^10.4.0" - esquery: "npm:^1.5.0" - esutils: "npm:^2.0.2" - fast-deep-equal: "npm:^3.1.3" - file-entry-cache: "npm:^8.0.0" - find-up: "npm:^5.0.0" - glob-parent: "npm:^6.0.2" - ignore: "npm:^5.2.0" - imurmurhash: "npm:^0.1.4" - is-glob: "npm:^4.0.0" - json-stable-stringify-without-jsonify: "npm:^1.0.1" - lodash.merge: "npm:^4.6.2" - minimatch: "npm:^3.1.5" - natural-compare: "npm:^1.4.0" - optionator: "npm:^0.9.3" - peerDependencies: - jiti: "*" - peerDependenciesMeta: - jiti: - optional: true - bin: - eslint: bin/eslint.js - checksum: 10c0/46335bfcf180ffea9955b38122b578ac9e075b6220e5695be1c988354ea429b04f5db05edc132aa9019ce9847736e9ca0c9ea6d6cedda3c06209c9b52dbd0fd5 - languageName: node - linkType: hard - -"espree@npm:^10.0.1, espree@npm:^10.4.0": - version: 10.4.0 - resolution: "espree@npm:10.4.0" - dependencies: - acorn: "npm:^8.15.0" - acorn-jsx: "npm:^5.3.2" - eslint-visitor-keys: "npm:^4.2.1" - checksum: 10c0/c63fe06131c26c8157b4083313cb02a9a54720a08e21543300e55288c40e06c3fc284bdecf108d3a1372c5934a0a88644c98714f38b6ae8ed272b40d9ea08d6b - languageName: node - linkType: hard - -"esquery@npm:^1.5.0": - version: 1.6.0 - resolution: "esquery@npm:1.6.0" - dependencies: - estraverse: "npm:^5.1.0" - checksum: 10c0/cb9065ec605f9da7a76ca6dadb0619dfb611e37a81e318732977d90fab50a256b95fee2d925fba7c2f3f0523aa16f91587246693bc09bc34d5a59575fe6e93d2 - languageName: node - linkType: hard - "esrecurse@npm:^4.3.0": version: 4.3.0 resolution: "esrecurse@npm:4.3.0" @@ -12737,7 +12255,7 @@ __metadata: languageName: node linkType: hard -"estraverse@npm:^5.1.0, estraverse@npm:^5.2.0, estraverse@npm:^5.3.0": +"estraverse@npm:^5.2.0": version: 5.3.0 resolution: "estraverse@npm:5.3.0" checksum: 10c0/1ff9447b96263dec95d6d67431c5e0771eb9776427421260a3e2f0fdd5d6bd4f8e37a7338f5ad2880c9f143450c9b1e4fc2069060724570a49cf9cf0312bd107 @@ -13027,7 +12545,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.12, fast-glob@npm:^3.2.9": +"fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.9": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" dependencies: @@ -13047,13 +12565,6 @@ __metadata: languageName: node linkType: hard -"fast-levenshtein@npm:^2.0.6": - version: 2.0.6 - resolution: "fast-levenshtein@npm:2.0.6" - checksum: 10c0/111972b37338bcb88f7d9e2c5907862c280ebf4234433b95bc611e518d192ccb2d38119c4ac86e26b668d75f7f3894f4ff5c4982899afced7ca78633b08287c4 - languageName: node - linkType: hard - "fast-string-truncated-width@npm:^3.0.2": version: 3.0.3 resolution: "fast-string-truncated-width@npm:3.0.3" @@ -13151,12 +12662,12 @@ __metadata: languageName: node linkType: hard -"file-entry-cache@npm:^8.0.0": - version: 8.0.0 - resolution: "file-entry-cache@npm:8.0.0" +"figures@npm:^3.2.0": + version: 3.2.0 + resolution: "figures@npm:3.2.0" dependencies: - flat-cache: "npm:^4.0.0" - checksum: 10c0/9e2b5938b1cd9b6d7e3612bdc533afd4ac17b2fc646569e9a8abbf2eb48e5eb8e316bc38815a3ef6a1b456f4107f0d0f055a614ca613e75db6bf9ff4d72c1638 + escape-string-regexp: "npm:^1.0.5" + checksum: 10c0/9c421646ede432829a50bc4e55c7a4eb4bcb7cc07b5bab2f471ef1ab9a344595bbebb6c5c21470093fbb730cd81bbca119624c40473a125293f656f49cb47629 languageName: node linkType: hard @@ -13247,16 +12758,6 @@ __metadata: languageName: node linkType: hard -"flat-cache@npm:^4.0.0": - version: 4.0.1 - resolution: "flat-cache@npm:4.0.1" - dependencies: - flatted: "npm:^3.2.9" - keyv: "npm:^4.5.4" - checksum: 10c0/2c59d93e9faa2523e4fda6b4ada749bed432cfa28c8e251f33b25795e426a1c6dbada777afb1f74fcfff33934fdbdea921ee738fcc33e71adc9d6eca984a1cfc - languageName: node - linkType: hard - "flat@npm:^5.0.2": version: 5.0.2 resolution: "flat@npm:5.0.2" @@ -13266,7 +12767,7 @@ __metadata: languageName: node linkType: hard -"flatted@npm:^3.2.9, flatted@npm:^3.4.2": +"flatted@npm:^3.4.2": version: 3.4.2 resolution: "flatted@npm:3.4.2" checksum: 10c0/a65b67aae7172d6cdf63691be7de6c5cd5adbdfdfe2e9da1a09b617c9512ed794037741ee53d93114276bff3f93cd3b0d97d54f9b316e1e4885dde6e9ffdf7ed @@ -13290,7 +12791,7 @@ __metadata: languageName: node linkType: hard -"for-each@npm:^0.3.3, for-each@npm:^0.3.5": +"for-each@npm:^0.3.5": version: 0.3.5 resolution: "for-each@npm:0.3.5" dependencies: @@ -13394,27 +12895,6 @@ __metadata: languageName: node linkType: hard -"function.prototype.name@npm:^1.1.6, function.prototype.name@npm:^1.1.8": - version: 1.1.8 - resolution: "function.prototype.name@npm:1.1.8" - dependencies: - call-bind: "npm:^1.0.8" - call-bound: "npm:^1.0.3" - define-properties: "npm:^1.2.1" - functions-have-names: "npm:^1.2.3" - hasown: "npm:^2.0.2" - is-callable: "npm:^1.2.7" - checksum: 10c0/e920a2ab52663005f3cbe7ee3373e3c71c1fb5558b0b0548648cdf3e51961085032458e26c71ff1a8c8c20e7ee7caeb03d43a5d1fa8610c459333323a2e71253 - languageName: node - linkType: hard - -"functions-have-names@npm:^1.2.3": - version: 1.2.3 - resolution: "functions-have-names@npm:1.2.3" - checksum: 10c0/33e77fd29bddc2d9bb78ab3eb854c165909201f88c75faa8272e35899e2d35a8a642a15e7420ef945e1f64a9670d6aa3ec744106b2aa42be68ca5114025954ca - languageName: node - linkType: hard - "generic-names@npm:^4.0.0": version: 4.0.0 resolution: "generic-names@npm:4.0.0" @@ -13461,7 +12941,7 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.2.7, get-intrinsic@npm:^1.3.0": +"get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.3.0": version: 1.3.0 resolution: "get-intrinsic@npm:1.3.0" dependencies: @@ -13486,7 +12966,7 @@ __metadata: languageName: node linkType: hard -"get-proto@npm:^1.0.0, get-proto@npm:^1.0.1": +"get-proto@npm:^1.0.1": version: 1.0.1 resolution: "get-proto@npm:1.0.1" dependencies: @@ -13503,26 +12983,6 @@ __metadata: languageName: node linkType: hard -"get-symbol-description@npm:^1.1.0": - version: 1.1.0 - resolution: "get-symbol-description@npm:1.1.0" - dependencies: - call-bound: "npm:^1.0.3" - es-errors: "npm:^1.3.0" - get-intrinsic: "npm:^1.2.6" - checksum: 10c0/d6a7d6afca375779a4b307738c9e80dbf7afc0bdbe5948768d54ab9653c865523d8920e670991a925936eb524b7cb6a6361d199a760b21d0ca7620194455aa4b - languageName: node - linkType: hard - -"get-tsconfig@npm:^4.10.1": - version: 4.10.1 - resolution: "get-tsconfig@npm:4.10.1" - dependencies: - resolve-pkg-maps: "npm:^1.0.0" - checksum: 10c0/7f8e3dabc6a49b747920a800fb88e1952fef871cdf51b79e98db48275a5de6cdaf499c55ee67df5fa6fe7ce65f0063e26de0f2e53049b408c585aa74d39ffa21 - languageName: node - linkType: hard - "github-from-package@npm:0.0.0": version: 0.0.0 resolution: "github-from-package@npm:0.0.0" @@ -13546,7 +13006,7 @@ __metadata: languageName: node linkType: hard -"glob-parent@npm:^6.0.1, glob-parent@npm:^6.0.2": +"glob-parent@npm:^6.0.1": version: 6.0.2 resolution: "glob-parent@npm:6.0.2" dependencies: @@ -13601,20 +13061,6 @@ __metadata: languageName: node linkType: hard -"globals@npm:^14.0.0": - version: 14.0.0 - resolution: "globals@npm:14.0.0" - checksum: 10c0/b96ff42620c9231ad468d4c58ff42afee7777ee1c963013ff8aabe095a451d0ceeb8dcd8ef4cbd64d2538cef45f787a78ba3a9574f4a634438963e334471302d - languageName: node - linkType: hard - -"globals@npm:^17.0.0": - version: 17.13.0 - resolution: "globals@npm:17.13.0" - checksum: 10c0/8371d9e4e5581640141b5cce70a098edd765d2e3ab063b14998e590698071e0afb4a4a6739ccfbdcbdeb2565c5553697ba07d95703c51039912cf341a7dba7a7 - languageName: node - linkType: hard - "globalthis@npm:^1.0.4": version: 1.0.4 resolution: "globalthis@npm:1.0.4" @@ -13755,17 +13201,6 @@ __metadata: languageName: node linkType: hard -"graphql-depth-limit@npm:^1.1.0": - version: 1.1.0 - resolution: "graphql-depth-limit@npm:1.1.0" - dependencies: - arrify: "npm:^1.0.1" - peerDependencies: - graphql: "*" - checksum: 10c0/8f50268ab3e2553cfe64fad532a3bd60068865217f113ac7388bfea1484d36a7e711a1c26f6a03e67969923967f2a84b62618c07732ca2ca603c295f8a19dbf9 - languageName: node - linkType: hard - "graphql-language-service@npm:^5.7.0": version: 5.7.0 resolution: "graphql-language-service@npm:5.7.0" @@ -13811,6 +13246,28 @@ __metadata: languageName: node linkType: hard +"graphql-yoga@npm:^5.22.0": + version: 5.24.6 + resolution: "graphql-yoga@npm:5.24.6" + dependencies: + "@envelop/core": "npm:^5.6.1" + "@envelop/instrumentation": "npm:^1.0.1" + "@graphql-tools/executor": "npm:^2.0.3" + "@graphql-tools/schema": "npm:^10.1.3" + "@graphql-tools/utils": "npm:^12.0.3" + "@graphql-yoga/logger": "npm:^2.0.2" + "@graphql-yoga/subscription": "npm:^5.1.1" + "@whatwg-node/fetch": "npm:^0.10.6" + "@whatwg-node/promise-helpers": "npm:^1.3.2" + "@whatwg-node/server": "npm:^0.11.0" + lru-cache: "npm:^10.0.0" + tslib: "npm:^2.8.1" + peerDependencies: + graphql: ^15.2.0 || ^16.0.0 || ^17.0.0 + checksum: 10c0/74af49fd7c54d71b9a82d7f822b11550396035f10e2c1ae45aee9a155848ebfccaa2bc2caabe54fe6a3a4c6506a9af0df56c4da0c66eab00c2fc607720b233f9 + languageName: node + linkType: hard + "graphql@npm:16.9.0": version: 16.9.0 resolution: "graphql@npm:16.9.0" @@ -13848,13 +13305,6 @@ __metadata: languageName: node linkType: hard -"has-bigints@npm:^1.0.2": - version: 1.0.2 - resolution: "has-bigints@npm:1.0.2" - checksum: 10c0/724eb1485bfa3cdff6f18d95130aa190561f00b3fcf9f19dc640baf8176b5917c143b81ec2123f8cddb6c05164a198c94b13e1377c497705ccc8e1a80306e83b - languageName: node - linkType: hard - "has-flag@npm:^4.0.0": version: 4.0.0 resolution: "has-flag@npm:4.0.0" @@ -13871,15 +13321,6 @@ __metadata: languageName: node linkType: hard -"has-proto@npm:^1.2.0": - version: 1.2.0 - resolution: "has-proto@npm:1.2.0" - dependencies: - dunder-proto: "npm:^1.0.0" - checksum: 10c0/46538dddab297ec2f43923c3d35237df45d8c55a6fc1067031e04c13ed8a9a8f94954460632fd4da84c31a1721eefee16d901cbb1ae9602bab93bb6e08f93b95 - languageName: node - linkType: hard - "has-symbols@npm:^1.0.3, has-symbols@npm:^1.1.0": version: 1.1.0 resolution: "has-symbols@npm:1.1.0" @@ -14087,22 +13528,6 @@ __metadata: languageName: node linkType: hard -"hermes-estree@npm:0.25.1": - version: 0.25.1 - resolution: "hermes-estree@npm:0.25.1" - checksum: 10c0/48be3b2fa37a0cbc77a112a89096fa212f25d06de92781b163d67853d210a8a5c3784fac23d7d48335058f7ed283115c87b4332c2a2abaaccc76d0ead1a282ac - languageName: node - linkType: hard - -"hermes-parser@npm:^0.25.1": - version: 0.25.1 - resolution: "hermes-parser@npm:0.25.1" - dependencies: - hermes-estree: "npm:0.25.1" - checksum: 10c0/3abaa4c6f1bcc25273f267297a89a4904963ea29af19b8e4f6eabe04f1c2c7e9abd7bfc4730ddb1d58f2ea04b6fee74053d8bddb5656ec6ebf6c79cc8d14202c - languageName: node - linkType: hard - "history@npm:5.3.0": version: 5.3.0 resolution: "history@npm:5.3.0" @@ -14494,13 +13919,6 @@ __metadata: languageName: node linkType: hard -"ignore@npm:^7.0.5": - version: 7.0.5 - resolution: "ignore@npm:7.0.5" - checksum: 10c0/ae00db89fe873064a093b8999fe4cc284b13ef2a178636211842cceb650b9c3e390d3339191acb145d81ed5379d2074840cf0c33a20bdbd6f32821f79eb4ad5d - languageName: node - linkType: hard - "image-size@npm:^2.0.2": version: 2.0.4 resolution: "image-size@npm:2.0.4" @@ -14624,17 +14042,6 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.1.0": - version: 1.1.0 - resolution: "internal-slot@npm:1.1.0" - dependencies: - es-errors: "npm:^1.3.0" - hasown: "npm:^2.0.2" - side-channel: "npm:^1.1.0" - checksum: 10c0/03966f5e259b009a9bf1a78d60da920df198af4318ec004f57b8aef1dd3fe377fbc8cce63a96e8c810010302654de89f9e19de1cd8ad0061d15be28a695465c7 - languageName: node - linkType: hard - "invariant@npm:^2.2.4": version: 2.2.4 resolution: "invariant@npm:2.2.4" @@ -14695,17 +14102,6 @@ __metadata: languageName: node linkType: hard -"is-array-buffer@npm:^3.0.4, is-array-buffer@npm:^3.0.5": - version: 3.0.5 - resolution: "is-array-buffer@npm:3.0.5" - dependencies: - call-bind: "npm:^1.0.8" - call-bound: "npm:^1.0.3" - get-intrinsic: "npm:^1.2.6" - checksum: 10c0/c5c9f25606e86dbb12e756694afbbff64bc8b348d1bc989324c037e1068695131930199d6ad381952715dad3a9569333817f0b1a72ce5af7f883ce802e49c83d - languageName: node - linkType: hard - "is-arrayish@npm:^0.2.1": version: 0.2.1 resolution: "is-arrayish@npm:0.2.1" @@ -14720,40 +14116,12 @@ __metadata: languageName: node linkType: hard -"is-async-function@npm:^2.0.0": - version: 2.0.0 - resolution: "is-async-function@npm:2.0.0" - dependencies: - has-tostringtag: "npm:^1.0.0" - checksum: 10c0/787bc931576aad525d751fc5ce211960fe91e49ac84a5c22d6ae0bc9541945fbc3f686dc590c3175722ce4f6d7b798a93f6f8ff4847fdb2199aea6f4baf5d668 - languageName: node - linkType: hard - -"is-bigint@npm:^1.1.0": - version: 1.1.0 - resolution: "is-bigint@npm:1.1.0" - dependencies: - has-bigints: "npm:^1.0.2" - checksum: 10c0/f4f4b905ceb195be90a6ea7f34323bf1c18e3793f18922e3e9a73c684c29eeeeff5175605c3a3a74cc38185fe27758f07efba3dbae812e5c5afbc0d2316b40e4 - languageName: node - linkType: hard - "is-binary-path@npm:~2.1.0": version: 2.1.0 resolution: "is-binary-path@npm:2.1.0" dependencies: - binary-extensions: "npm:^2.0.0" - checksum: 10c0/a16eaee59ae2b315ba36fad5c5dcaf8e49c3e27318f8ab8fa3cdb8772bf559c8d1ba750a589c2ccb096113bb64497084361a25960899cb6172a6925ab6123d38 - languageName: node - linkType: hard - -"is-boolean-object@npm:^1.2.1": - version: 1.2.1 - resolution: "is-boolean-object@npm:1.2.1" - dependencies: - call-bound: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.2" - checksum: 10c0/2ef601d255a39fdbde79cfe6be80c27b47430ed6712407f29b17d002e20f64c1e3d6692f1d842ba16bf1e9d8ddf1c4f13cac3ed7d9a4a21290f44879ebb4e8f5 + binary-extensions: "npm:^2.0.0" + checksum: 10c0/a16eaee59ae2b315ba36fad5c5dcaf8e49c3e27318f8ab8fa3cdb8772bf559c8d1ba750a589c2ccb096113bb64497084361a25960899cb6172a6925ab6123d38 languageName: node linkType: hard @@ -14764,15 +14132,6 @@ __metadata: languageName: node linkType: hard -"is-bun-module@npm:^2.0.0": - version: 2.0.0 - resolution: "is-bun-module@npm:2.0.0" - dependencies: - semver: "npm:^7.7.1" - checksum: 10c0/7d27a0679cfa5be1f5052650391f9b11040cd70c48d45112e312c56bc6b6ca9c9aea70dcce6cc40b1e8947bfff8567a5c5715d3b066fb478522dab46ea379240 - languageName: node - linkType: hard - "is-callable@npm:^1.2.7": version: 1.2.7 resolution: "is-callable@npm:1.2.7" @@ -14791,7 +14150,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.16.0, is-core-module@npm:^2.16.1, is-core-module@npm:^2.16.2": +"is-core-module@npm:^2.16.0": version: 2.16.2 resolution: "is-core-module@npm:2.16.2" dependencies: @@ -14800,27 +14159,6 @@ __metadata: languageName: node linkType: hard -"is-data-view@npm:^1.0.1, is-data-view@npm:^1.0.2": - version: 1.0.2 - resolution: "is-data-view@npm:1.0.2" - dependencies: - call-bound: "npm:^1.0.2" - get-intrinsic: "npm:^1.2.6" - is-typed-array: "npm:^1.1.13" - checksum: 10c0/ef3548a99d7e7f1370ce21006baca6d40c73e9f15c941f89f0049c79714c873d03b02dae1c64b3f861f55163ecc16da06506c5b8a1d4f16650b3d9351c380153 - languageName: node - linkType: hard - -"is-date-object@npm:^1.0.5, is-date-object@npm:^1.1.0": - version: 1.1.0 - resolution: "is-date-object@npm:1.1.0" - dependencies: - call-bound: "npm:^1.0.2" - has-tostringtag: "npm:^1.0.2" - checksum: 10c0/1a4d199c8e9e9cac5128d32e6626fa7805175af9df015620ac0d5d45854ccf348ba494679d872d37301032e35a54fc7978fba1687e8721b2139aea7870cafa2f - languageName: node - linkType: hard - "is-decimal@npm:^2.0.0": version: 2.0.1 resolution: "is-decimal@npm:2.0.1" @@ -14860,15 +14198,6 @@ __metadata: languageName: node linkType: hard -"is-finalizationregistry@npm:^1.1.0": - version: 1.1.1 - resolution: "is-finalizationregistry@npm:1.1.1" - dependencies: - call-bound: "npm:^1.0.3" - checksum: 10c0/818dff679b64f19e228a8205a1e2d09989a98e98def3a817f889208cfcbf918d321b251aadf2c05918194803ebd2eb01b14fc9d0b2bea53d984f4137bfca5e97 - languageName: node - linkType: hard - "is-fullwidth-code-point@npm:^3.0.0": version: 3.0.0 resolution: "is-fullwidth-code-point@npm:3.0.0" @@ -14885,7 +14214,7 @@ __metadata: languageName: node linkType: hard -"is-generator-function@npm:^1.0.10, is-generator-function@npm:^1.0.7": +"is-generator-function@npm:^1.0.7": version: 1.0.10 resolution: "is-generator-function@npm:1.0.10" dependencies: @@ -14894,7 +14223,7 @@ __metadata: languageName: node linkType: hard -"is-glob@npm:4.0.3, is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": +"is-glob@npm:4.0.3, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": version: 4.0.3 resolution: "is-glob@npm:4.0.3" dependencies: @@ -14940,13 +14269,6 @@ __metadata: languageName: node linkType: hard -"is-map@npm:^2.0.3": - version: 2.0.3 - resolution: "is-map@npm:2.0.3" - checksum: 10c0/2c4d431b74e00fdda7162cd8e4b763d6f6f217edf97d4f8538b94b8702b150610e2c64961340015fe8df5b1fcee33ccd2e9b62619c4a8a3a155f8de6d6d355fc - languageName: node - linkType: hard - "is-module@npm:^1.0.0": version: 1.0.0 resolution: "is-module@npm:1.0.0" @@ -14964,13 +14286,6 @@ __metadata: languageName: node linkType: hard -"is-negative-zero@npm:^2.0.3": - version: 2.0.3 - resolution: "is-negative-zero@npm:2.0.3" - checksum: 10c0/bcdcf6b8b9714063ffcfa9929c575ac69bfdabb8f4574ff557dfc086df2836cf07e3906f5bbc4f2a5c12f8f3ba56af640c843cdfc74da8caed86c7c7d66fd08e - languageName: node - linkType: hard - "is-network-error@npm:^1.0.0": version: 1.3.0 resolution: "is-network-error@npm:1.3.0" @@ -14985,16 +14300,6 @@ __metadata: languageName: node linkType: hard -"is-number-object@npm:^1.1.1": - version: 1.1.1 - resolution: "is-number-object@npm:1.1.1" - dependencies: - call-bound: "npm:^1.0.3" - has-tostringtag: "npm:^1.0.2" - checksum: 10c0/97b451b41f25135ff021d85c436ff0100d84a039bb87ffd799cbcdbea81ef30c464ced38258cdd34f080be08fc3b076ca1f472086286d2aa43521d6ec6a79f53 - languageName: node - linkType: hard - "is-number@npm:^7.0.0": version: 7.0.0 resolution: "is-number@npm:7.0.0" @@ -15071,18 +14376,6 @@ __metadata: languageName: node linkType: hard -"is-regex@npm:^1.2.1": - version: 1.2.1 - resolution: "is-regex@npm:1.2.1" - dependencies: - call-bound: "npm:^1.0.2" - gopd: "npm:^1.2.0" - has-tostringtag: "npm:^1.0.2" - hasown: "npm:^2.0.2" - checksum: 10c0/1d3715d2b7889932349241680032e85d0b492cfcb045acb75ffc2c3085e8d561184f1f7e84b6f8321935b4aea39bc9c6ba74ed595b57ce4881a51dfdbc214e04 - languageName: node - linkType: hard - "is-regexp@npm:^1.0.0": version: 1.0.0 resolution: "is-regexp@npm:1.0.0" @@ -15099,22 +14392,6 @@ __metadata: languageName: node linkType: hard -"is-set@npm:^2.0.3": - version: 2.0.3 - resolution: "is-set@npm:2.0.3" - checksum: 10c0/f73732e13f099b2dc879c2a12341cfc22ccaca8dd504e6edae26484bd5707a35d503fba5b4daad530a9b088ced1ae6c9d8200fd92e09b428fe14ea79ce8080b7 - languageName: node - linkType: hard - -"is-shared-array-buffer@npm:^1.0.4": - version: 1.0.4 - resolution: "is-shared-array-buffer@npm:1.0.4" - dependencies: - call-bound: "npm:^1.0.3" - checksum: 10c0/65158c2feb41ff1edd6bbd6fd8403a69861cf273ff36077982b5d4d68e1d59278c71691216a4a64632bd76d4792d4d1d2553901b6666d84ade13bba5ea7bc7db - languageName: node - linkType: hard - "is-stream@npm:^2.0.0": version: 2.0.0 resolution: "is-stream@npm:2.0.0" @@ -15122,28 +14399,7 @@ __metadata: languageName: node linkType: hard -"is-string@npm:^1.1.1": - version: 1.1.1 - resolution: "is-string@npm:1.1.1" - dependencies: - call-bound: "npm:^1.0.3" - has-tostringtag: "npm:^1.0.2" - checksum: 10c0/2f518b4e47886bb81567faba6ffd0d8a8333cf84336e2e78bf160693972e32ad00fe84b0926491cc598dee576fdc55642c92e62d0cbe96bf36f643b6f956f94d - languageName: node - linkType: hard - -"is-symbol@npm:^1.0.4, is-symbol@npm:^1.1.1": - version: 1.1.1 - resolution: "is-symbol@npm:1.1.1" - dependencies: - call-bound: "npm:^1.0.2" - has-symbols: "npm:^1.1.0" - safe-regex-test: "npm:^1.1.0" - checksum: 10c0/f08f3e255c12442e833f75a9e2b84b2d4882fdfd920513cf2a4a2324f0a5b076c8fd913778e3ea5d258d5183e9d92c0cd20e04b03ab3df05316b049b2670af1e - languageName: node - linkType: hard - -"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.15, is-typed-array@npm:^1.1.3": +"is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.3": version: 1.1.15 resolution: "is-typed-array@npm:1.1.15" dependencies: @@ -15168,6 +14424,13 @@ __metadata: languageName: node linkType: hard +"is-unicode-supported@npm:^0.1.0": + version: 0.1.0 + resolution: "is-unicode-supported@npm:0.1.0" + checksum: 10c0/00cbe3455c3756be68d2542c416cab888aebd5012781d6819749fefb15162ff23e38501fe681b3d751c73e8ff561ac09a5293eba6f58fdf0178462ce6dcb3453 + languageName: node + linkType: hard + "is-unicode-supported@npm:^2.0.0": version: 2.1.0 resolution: "is-unicode-supported@npm:2.1.0" @@ -15184,32 +14447,6 @@ __metadata: languageName: node linkType: hard -"is-weakmap@npm:^2.0.2": - version: 2.0.2 - resolution: "is-weakmap@npm:2.0.2" - checksum: 10c0/443c35bb86d5e6cc5929cd9c75a4024bb0fff9586ed50b092f94e700b89c43a33b186b76dbc6d54f3d3d09ece689ab38dcdc1af6a482cbe79c0f2da0a17f1299 - languageName: node - linkType: hard - -"is-weakref@npm:^1.0.2, is-weakref@npm:^1.1.1": - version: 1.1.1 - resolution: "is-weakref@npm:1.1.1" - dependencies: - call-bound: "npm:^1.0.3" - checksum: 10c0/8e0a9c07b0c780949a100e2cab2b5560a48ecd4c61726923c1a9b77b6ab0aa0046c9e7fb2206042296817045376dee2c8ab1dabe08c7c3dfbf195b01275a085b - languageName: node - linkType: hard - -"is-weakset@npm:^2.0.3": - version: 2.0.4 - resolution: "is-weakset@npm:2.0.4" - dependencies: - call-bound: "npm:^1.0.3" - get-intrinsic: "npm:^1.2.6" - checksum: 10c0/6491eba08acb8dc9532da23cb226b7d0192ede0b88f16199e592e4769db0a077119c1f5d2283d1e0d16d739115f70046e887e477eb0e66cd90e1bb29f28ba647 - languageName: node - linkType: hard - "is-windows@npm:^1.0.1": version: 1.0.2 resolution: "is-windows@npm:1.0.2" @@ -15344,20 +14581,6 @@ __metadata: languageName: node linkType: hard -"iterator.prototype@npm:^1.1.4": - version: 1.1.5 - resolution: "iterator.prototype@npm:1.1.5" - dependencies: - define-data-property: "npm:^1.1.4" - es-object-atoms: "npm:^1.0.0" - get-intrinsic: "npm:^1.2.6" - get-proto: "npm:^1.0.0" - has-symbols: "npm:^1.1.0" - set-function-name: "npm:^2.0.2" - checksum: 10c0/f7a262808e1b41049ab55f1e9c29af7ec1025a000d243b83edf34ce2416eedd56079b117fa59376bb4a724110690f13aa8427f2ee29a09eec63a7e72367626d0 - languageName: node - linkType: hard - "jest-util@npm:^29.7.0": version: 29.7.0 resolution: "jest-util@npm:29.7.0" @@ -15468,7 +14691,7 @@ __metadata: languageName: node linkType: hard -"js-yaml@npm:^4.1.0, js-yaml@npm:^4.3.2": +"js-yaml@npm:^4.1.0": version: 4.3.2 resolution: "js-yaml@npm:4.3.2" dependencies: @@ -15550,13 +14773,6 @@ __metadata: languageName: node linkType: hard -"json-stable-stringify-without-jsonify@npm:^1.0.1": - version: 1.0.1 - resolution: "json-stable-stringify-without-jsonify@npm:1.0.1" - checksum: 10c0/cb168b61fd4de83e58d09aaa6425ef71001bae30d260e2c57e7d09a5fd82223e2f22a042dedaab8db23b7d9ae46854b08bb1f91675a8be11c5cffebef5fb66a5 - languageName: node - linkType: hard - "json-stringify-safe@npm:~5.0.0": version: 5.0.1 resolution: "json-stringify-safe@npm:5.0.1" @@ -15574,17 +14790,6 @@ __metadata: languageName: node linkType: hard -"json5@npm:^1.0.2": - version: 1.0.2 - resolution: "json5@npm:1.0.2" - dependencies: - minimist: "npm:^1.2.0" - bin: - json5: lib/cli.js - checksum: 10c0/9ee316bf21f000b00752e6c2a3b79ecf5324515a5c60ee88983a1910a45426b643a4f3461657586e8aeca87aaf96f0a519b0516d2ae527a6c3e7eed80f68717f - languageName: node - linkType: hard - "json5@npm:^2.1.2, json5@npm:^2.2.3": version: 2.2.3 resolution: "json5@npm:2.2.3" @@ -15607,19 +14812,7 @@ __metadata: languageName: node linkType: hard -"jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.3.5": - version: 3.3.5 - resolution: "jsx-ast-utils@npm:3.3.5" - dependencies: - array-includes: "npm:^3.1.6" - array.prototype.flat: "npm:^1.3.1" - object.assign: "npm:^4.1.4" - object.values: "npm:^1.1.6" - checksum: 10c0/a32679e9cb55469cb6d8bbc863f7d631b2c98b7fc7bf172629261751a6e7bc8da6ae374ddb74d5fbd8b06cf0eb4572287b259813d92b36e384024ed35e4c13e1 - languageName: node - linkType: hard - -"keyv@npm:^4.5.3, keyv@npm:^4.5.4": +"keyv@npm:^4.5.3": version: 4.5.4 resolution: "keyv@npm:4.5.4" dependencies: @@ -15642,22 +14835,6 @@ __metadata: languageName: node linkType: hard -"language-subtag-registry@npm:^0.3.20": - version: 0.3.22 - resolution: "language-subtag-registry@npm:0.3.22" - checksum: 10c0/d1e09971260a7cd3b9fdeb190d33af0b6e99c8697013537d9aaa15f7856d9d83aee128ba8078e219df0a7cf4b8dd18d1a0c188f6543b500d92a2689d2d114b70 - languageName: node - linkType: hard - -"language-tags@npm:^1.0.9": - version: 1.0.9 - resolution: "language-tags@npm:1.0.9" - dependencies: - language-subtag-registry: "npm:^0.3.20" - checksum: 10c0/9ab911213c4bd8bd583c850201c17794e52cb0660d1ab6e32558aadc8324abebf6844e46f92b80a5d600d0fbba7eface2c207bfaf270a1c7fd539e4c3a880bff - languageName: node - linkType: hard - "latest-version@npm:^7.0.0": version: 7.0.0 resolution: "latest-version@npm:7.0.0" @@ -15691,16 +14868,6 @@ __metadata: languageName: node linkType: hard -"levn@npm:^0.4.1": - version: 0.4.1 - resolution: "levn@npm:0.4.1" - dependencies: - prelude-ls: "npm:^1.2.1" - type-check: "npm:~0.4.0" - checksum: 10c0/effb03cad7c89dfa5bd4f6989364bfc79994c2042ec5966cb9b95990e2edee5cd8969ddf42616a0373ac49fac1403437deaf6e9050fbbaa3546093a59b9ac94e - languageName: node - linkType: hard - "lightningcss-android-arm64@npm:1.33.0": version: 1.33.0 resolution: "lightningcss-android-arm64@npm:1.33.0" @@ -15936,13 +15103,6 @@ __metadata: languageName: node linkType: hard -"lodash.lowercase@npm:^4.3.0": - version: 4.3.0 - resolution: "lodash.lowercase@npm:4.3.0" - checksum: 10c0/6b2e6bea51d8ce06e85449275722f97de7a72267395d31001ad43b6323e60abc0aa2144139f4b97fcecca080a9083ca9924630f8f3fb7a7b11d6d3eede8067b9 - languageName: node - linkType: hard - "lodash.memoize@npm:^4.1.2": version: 4.1.2 resolution: "lodash.memoize@npm:4.1.2" @@ -15950,13 +15110,6 @@ __metadata: languageName: node linkType: hard -"lodash.merge@npm:^4.6.2": - version: 4.6.2 - resolution: "lodash.merge@npm:4.6.2" - checksum: 10c0/402fa16a1edd7538de5b5903a90228aa48eb5533986ba7fa26606a49db2572bf414ff73a2c9f5d5fd36b31c46a5d5c7e1527749c07cbcf965ccff5fbdf32c506 - languageName: node - linkType: hard - "lodash.sortby@npm:^4.7.0": version: 4.7.0 resolution: "lodash.sortby@npm:4.7.0" @@ -15978,6 +15131,16 @@ __metadata: languageName: node linkType: hard +"log-symbols@npm:^4.1.0": + version: 4.1.0 + resolution: "log-symbols@npm:4.1.0" + dependencies: + chalk: "npm:^4.1.0" + is-unicode-supported: "npm:^0.1.0" + checksum: 10c0/67f445a9ffa76db1989d0fa98586e5bc2fd5247260dafb8ad93d9f0ccd5896d53fb830b0e54dade5ad838b9de2006c826831a3c528913093af20dff8bd24aca6 + languageName: node + linkType: hard + "log-symbols@npm:^7.0.0": version: 7.0.1 resolution: "log-symbols@npm:7.0.1" @@ -16044,6 +15207,13 @@ __metadata: languageName: node linkType: hard +"lru-cache@npm:^10.0.0": + version: 10.4.3 + resolution: "lru-cache@npm:10.4.3" + checksum: 10c0/ebd04fbca961e6c1d6c0af3799adcc966a1babe798f685bb84e6599266599cd95d94630b10262f5424539bc4640107e8a33aa28585374abf561d30d16f4b39fb + languageName: node + linkType: hard + "lru-cache@npm:^11.3.5": version: 11.3.6 resolution: "lru-cache@npm:11.3.6" @@ -17156,7 +16326,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:3.1.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2, minimatch@npm:^3.1.5": +"minimatch@npm:3.1.5, minimatch@npm:^3.1.1": version: 3.1.5 resolution: "minimatch@npm:3.1.5" dependencies: @@ -17165,7 +16335,7 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^10.0.0, minimatch@npm:^10.2.2": +"minimatch@npm:^10.0.0": version: 10.2.5 resolution: "minimatch@npm:10.2.5" dependencies: @@ -17174,7 +16344,7 @@ __metadata: languageName: node linkType: hard -"minimist@npm:1.2.8, minimist@npm:^1.2.0, minimist@npm:^1.2.3, minimist@npm:^1.2.6": +"minimist@npm:1.2.8, minimist@npm:^1.2.0, minimist@npm:^1.2.3": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 10c0/19d3fcdca050087b84c2029841a093691a91259a47def2f18222f41e7645a0b7c44ef4b40e88a1e58a40c84d2ef0ee6047c55594d298146d0eb3f6b737c20ce6 @@ -17218,7 +16388,7 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.1.3, ms@npm:^2.1.1, ms@npm:^2.1.3": +"ms@npm:2.1.3, ms@npm:^2.1.3": version: 2.1.3 resolution: "ms@npm:2.1.3" checksum: 10c0/d924b57e7312b3b63ad21fc5b3dc0af5e78d61a1fc7cfb5457edaf26326bf62be5307cc87ffb6862ef1c2b33b0233cdb5d4f01c4c958cc0d660948b65a287a48 @@ -17260,22 +16430,6 @@ __metadata: languageName: node linkType: hard -"napi-postinstall@npm:^0.3.0": - version: 0.3.2 - resolution: "napi-postinstall@npm:0.3.2" - bin: - napi-postinstall: lib/cli.js - checksum: 10c0/77c67eb9871d24afe7bad30e6115c441d099d6a0e42dc1c49c4a722ff682425e08dc6dd2b03eca10db9b547e724c38fb51325c35039e7ac10dcb714bb88d7326 - languageName: node - linkType: hard - -"natural-compare@npm:^1.4.0": - version: 1.4.0 - resolution: "natural-compare@npm:1.4.0" - checksum: 10c0/f5f9a7974bfb28a91afafa254b197f0f22c684d4a1731763dda960d2c8e375b36c7d690e0d9dc8fba774c537af14a7e979129bca23d88d052fbeb9466955e447 - languageName: node - linkType: hard - "negotiator@npm:0.6.3": version: 0.6.3 resolution: "negotiator@npm:0.6.3" @@ -17362,18 +16516,6 @@ __metadata: languageName: node linkType: hard -"node-exports-info@npm:^1.6.0": - version: 1.6.0 - resolution: "node-exports-info@npm:1.6.0" - dependencies: - array.prototype.flatmap: "npm:^1.3.3" - es-errors: "npm:^1.3.0" - object.entries: "npm:^1.1.9" - semver: "npm:^6.3.1" - checksum: 10c0/3613f21c60b047e66f168d3499a6be0060d89fb01ddceaa7032c2fb318aff12e4b9b111449c1a9aeb3b848bfdc1d4b6bc8fab327af692319597d21a1e7063692 - languageName: node - linkType: hard - "node-fetch@npm:^3.3.2": version: 3.3.2 resolution: "node-fetch@npm:3.3.2" @@ -17562,7 +16704,7 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.13.3, object-inspect@npm:^1.13.4": +"object-inspect@npm:^1.13.2, object-inspect@npm:^1.13.3, object-inspect@npm:^1.13.4": version: 1.13.4 resolution: "object-inspect@npm:1.13.4" checksum: 10c0/d7f8711e803b96ea3191c745d6f8056ce1f2496e530e6a19a0e92d89b0fa3c76d910c31f0aa270432db6bd3b2f85500a376a83aaba849a8d518c8845b3211692 @@ -17586,7 +16728,7 @@ __metadata: languageName: node linkType: hard -"object.assign@npm:^4.1.0, object.assign@npm:^4.1.2, object.assign@npm:^4.1.4, object.assign@npm:^4.1.7": +"object.assign@npm:^4.1.0, object.assign@npm:^4.1.4": version: 4.1.7 resolution: "object.assign@npm:4.1.7" dependencies: @@ -17600,53 +16742,6 @@ __metadata: languageName: node linkType: hard -"object.entries@npm:^1.1.5, object.entries@npm:^1.1.9": - version: 1.1.9 - resolution: "object.entries@npm:1.1.9" - dependencies: - call-bind: "npm:^1.0.8" - call-bound: "npm:^1.0.4" - define-properties: "npm:^1.2.1" - es-object-atoms: "npm:^1.1.1" - checksum: 10c0/d4b8c1e586650407da03370845f029aa14076caca4e4d4afadbc69cfb5b78035fd3ee7be417141abdb0258fa142e59b11923b4c44d8b1255b28f5ffcc50da7db - languageName: node - linkType: hard - -"object.fromentries@npm:^2.0.8": - version: 2.0.8 - resolution: "object.fromentries@npm:2.0.8" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.2" - es-object-atoms: "npm:^1.0.0" - checksum: 10c0/cd4327e6c3369cfa805deb4cbbe919bfb7d3aeebf0bcaba291bb568ea7169f8f8cdbcabe2f00b40db0c20cd20f08e11b5f3a5a36fb7dd3fe04850c50db3bf83b - languageName: node - linkType: hard - -"object.groupby@npm:^1.0.3": - version: 1.0.3 - resolution: "object.groupby@npm:1.0.3" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.2" - checksum: 10c0/60d0455c85c736fbfeda0217d1a77525956f76f7b2495edeca9e9bbf8168a45783199e77b894d30638837c654d0cc410e0e02cbfcf445bc8de71c3da1ede6a9c - languageName: node - linkType: hard - -"object.values@npm:^1.1.6, object.values@npm:^1.2.1": - version: 1.2.1 - resolution: "object.values@npm:1.2.1" - dependencies: - call-bind: "npm:^1.0.8" - call-bound: "npm:^1.0.3" - define-properties: "npm:^1.2.1" - es-object-atoms: "npm:^1.0.0" - checksum: 10c0/3c47814fdc64842ae3d5a74bc9d06bdd8d21563c04d9939bf6716a9c00596a4ebc342552f8934013d1ec991c74e3671b26710a0c51815f0b603795605ab6b2c9 - languageName: node - linkType: hard - "obuf@npm:^1.0.0, obuf@npm:^1.1.2": version: 1.1.2 resolution: "obuf@npm:1.1.2" @@ -17741,6 +16836,17 @@ __metadata: languageName: node linkType: hard +"open@npm:^8.4.2": + version: 8.4.2 + resolution: "open@npm:8.4.2" + dependencies: + define-lazy-prop: "npm:^2.0.0" + is-docker: "npm:^2.1.1" + is-wsl: "npm:^2.2.0" + checksum: 10c0/bb6b3a58401dacdb0aad14360626faf3fb7fba4b77816b373495988b724fb48941cad80c1b65d62bb31a17609b2cd91c41a181602caea597ca80dfbcc27e84c9 + languageName: node + linkType: hard + "opener@npm:^1.5.2": version: 1.5.2 resolution: "opener@npm:1.5.2" @@ -17772,20 +16878,6 @@ __metadata: languageName: node linkType: hard -"optionator@npm:^0.9.3": - version: 0.9.3 - resolution: "optionator@npm:0.9.3" - dependencies: - "@aashutoshrathi/word-wrap": "npm:^1.2.3" - deep-is: "npm:^0.1.3" - fast-levenshtein: "npm:^2.0.6" - levn: "npm:^0.4.1" - prelude-ls: "npm:^1.2.1" - type-check: "npm:^0.4.0" - checksum: 10c0/66fba794d425b5be51353035cf3167ce6cfa049059cbb93229b819167687e0f48d2bc4603fcb21b091c99acb516aae1083624675b15c4765b2e4693a085e959c - languageName: node - linkType: hard - "os-browserify@npm:^0.3.0": version: 0.3.0 resolution: "os-browserify@npm:0.3.0" @@ -17793,14 +16885,79 @@ __metadata: languageName: node linkType: hard -"own-keys@npm:^1.0.1": - version: 1.0.1 - resolution: "own-keys@npm:1.0.1" - dependencies: - get-intrinsic: "npm:^1.2.6" - object-keys: "npm:^1.1.1" - safe-push-apply: "npm:^1.0.0" - checksum: 10c0/6dfeb3455bff92ec3f16a982d4e3e65676345f6902d9f5ded1d8265a6318d0200ce461956d6d1c70053c7fe9f9fe65e552faac03f8140d37ef0fdd108e67013a +"oxlint@npm:^1.91.0": + version: 1.91.0 + resolution: "oxlint@npm:1.91.0" + dependencies: + "@oxlint/binding-android-arm-eabi": "npm:1.91.0" + "@oxlint/binding-android-arm64": "npm:1.91.0" + "@oxlint/binding-darwin-arm64": "npm:1.91.0" + "@oxlint/binding-darwin-x64": "npm:1.91.0" + "@oxlint/binding-freebsd-x64": "npm:1.91.0" + "@oxlint/binding-linux-arm-gnueabihf": "npm:1.91.0" + "@oxlint/binding-linux-arm-musleabihf": "npm:1.91.0" + "@oxlint/binding-linux-arm64-gnu": "npm:1.91.0" + "@oxlint/binding-linux-arm64-musl": "npm:1.91.0" + "@oxlint/binding-linux-ppc64-gnu": "npm:1.91.0" + "@oxlint/binding-linux-riscv64-gnu": "npm:1.91.0" + "@oxlint/binding-linux-riscv64-musl": "npm:1.91.0" + "@oxlint/binding-linux-s390x-gnu": "npm:1.91.0" + "@oxlint/binding-linux-x64-gnu": "npm:1.91.0" + "@oxlint/binding-linux-x64-musl": "npm:1.91.0" + "@oxlint/binding-openharmony-arm64": "npm:1.91.0" + "@oxlint/binding-win32-arm64-msvc": "npm:1.91.0" + "@oxlint/binding-win32-ia32-msvc": "npm:1.91.0" + "@oxlint/binding-win32-x64-msvc": "npm:1.91.0" + peerDependencies: + oxlint-tsgolint: ">=7.0.2005" + vite-plus: "*" + dependenciesMeta: + "@oxlint/binding-android-arm-eabi": + optional: true + "@oxlint/binding-android-arm64": + optional: true + "@oxlint/binding-darwin-arm64": + optional: true + "@oxlint/binding-darwin-x64": + optional: true + "@oxlint/binding-freebsd-x64": + optional: true + "@oxlint/binding-linux-arm-gnueabihf": + optional: true + "@oxlint/binding-linux-arm-musleabihf": + optional: true + "@oxlint/binding-linux-arm64-gnu": + optional: true + "@oxlint/binding-linux-arm64-musl": + optional: true + "@oxlint/binding-linux-ppc64-gnu": + optional: true + "@oxlint/binding-linux-riscv64-gnu": + optional: true + "@oxlint/binding-linux-riscv64-musl": + optional: true + "@oxlint/binding-linux-s390x-gnu": + optional: true + "@oxlint/binding-linux-x64-gnu": + optional: true + "@oxlint/binding-linux-x64-musl": + optional: true + "@oxlint/binding-openharmony-arm64": + optional: true + "@oxlint/binding-win32-arm64-msvc": + optional: true + "@oxlint/binding-win32-ia32-msvc": + optional: true + "@oxlint/binding-win32-x64-msvc": + optional: true + peerDependenciesMeta: + oxlint-tsgolint: + optional: true + vite-plus: + optional: true + bin: + oxlint: bin/oxlint + checksum: 10c0/6e7301f82b8c11c2b9c82b6067ffda6761a94f003c5bfdf398a4929d8e8d102e78a20f2d96b7addb2d45b25262ae77b149decf1ad3f2053a26360795a6e7a7e9 languageName: node linkType: hard @@ -19514,13 +18671,6 @@ __metadata: languageName: node linkType: hard -"prelude-ls@npm:^1.2.1": - version: 1.2.1 - resolution: "prelude-ls@npm:1.2.1" - checksum: 10c0/b00d617431e7886c520a6f498a2e14c75ec58f6d93ba48c3b639cf241b54232d90daa05d83a9e9b9fef6baa63cb7e1e4602c2372fea5bc169668401eb127d0cd - languageName: node - linkType: hard - "prettier@npm:3.9.10, prettier@npm:^3.6.2": version: 3.9.10 resolution: "prettier@npm:3.9.10" @@ -19608,7 +18758,7 @@ __metadata: languageName: node linkType: hard -"prop-types@npm:15.8.1, prop-types@npm:^15.0.0, prop-types@npm:^15.5.10, prop-types@npm:^15.6.0, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2, prop-types@npm:^15.8.1": +"prop-types@npm:15.8.1, prop-types@npm:^15.0.0, prop-types@npm:^15.5.10, prop-types@npm:^15.6.0, prop-types@npm:^15.6.2, prop-types@npm:^15.7.2": version: 15.8.1 resolution: "prop-types@npm:15.8.1" dependencies: @@ -20276,29 +19426,13 @@ __metadata: languageName: node linkType: hard -"reflect-metadata@npm:^0.2.2": - version: 0.2.2 - resolution: "reflect-metadata@npm:0.2.2" - checksum: 10c0/1cd93a15ea291e420204955544637c264c216e7aac527470e393d54b4bb075f10a17e60d8168ec96600c7e0b9fcc0cb0bb6e91c3fbf5b0d8c9056f04e6ac1ec2 - languageName: node - linkType: hard - -"reflect.getprototypeof@npm:^1.0.6, reflect.getprototypeof@npm:^1.0.9": - version: 1.0.10 - resolution: "reflect.getprototypeof@npm:1.0.10" - dependencies: - call-bind: "npm:^1.0.8" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.9" - es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.0.0" - get-intrinsic: "npm:^1.2.7" - get-proto: "npm:^1.0.1" - which-builtin-type: "npm:^1.2.1" - checksum: 10c0/7facec28c8008876f8ab98e80b7b9cb4b1e9224353fd4756dda5f2a4ab0d30fa0a5074777c6df24e1e0af463a2697513b0a11e548d99cf52f21f7bc6ba48d3ac - languageName: node - linkType: hard - +"reflect-metadata@npm:^0.2.2": + version: 0.2.2 + resolution: "reflect-metadata@npm:0.2.2" + checksum: 10c0/1cd93a15ea291e420204955544637c264c216e7aac527470e393d54b4bb075f10a17e60d8168ec96600c7e0b9fcc0cb0bb6e91c3fbf5b0d8c9056f04e6ac1ec2 + languageName: node + linkType: hard + "regenerate-unicode-properties@npm:^10.2.0": version: 10.2.0 resolution: "regenerate-unicode-properties@npm:10.2.0" @@ -20331,20 +19465,6 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.5.3, regexp.prototype.flags@npm:^1.5.4": - version: 1.5.4 - resolution: "regexp.prototype.flags@npm:1.5.4" - dependencies: - call-bind: "npm:^1.0.8" - define-properties: "npm:^1.2.1" - es-errors: "npm:^1.3.0" - get-proto: "npm:^1.0.1" - gopd: "npm:^1.2.0" - set-function-name: "npm:^2.0.2" - checksum: 10c0/83b88e6115b4af1c537f8dabf5c3744032cb875d63bc05c288b1b8c0ef37cbe55353f95d8ca817e8843806e3e150b118bc624e4279b24b4776b4198232735a77 - languageName: node - linkType: hard - "regexpu-core@npm:^6.1.1": version: 6.1.1 resolution: "regexpu-core@npm:6.1.1" @@ -20621,13 +19741,6 @@ __metadata: languageName: node linkType: hard -"resolve-pkg-maps@npm:^1.0.0": - version: 1.0.0 - resolution: "resolve-pkg-maps@npm:1.0.0" - checksum: 10c0/fb8f7bbe2ca281a73b7ef423a1cbc786fb244bd7a95cbe5c3fba25b27d327150beca8ba02f622baea65919a57e061eb5005204daa5f93ed590d9b77463a567ab - languageName: node - linkType: hard - "resolve-protobuf-schema@npm:^2.1.0": version: 2.1.0 resolution: "resolve-protobuf-schema@npm:2.1.0" @@ -20650,22 +19763,6 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^2.0.0-next.5, resolve@npm:^2.0.0-next.6, resolve@npm:^2.0.0-next.7": - version: 2.0.0-next.7 - resolution: "resolve@npm:2.0.0-next.7" - dependencies: - es-errors: "npm:^1.3.0" - is-core-module: "npm:^2.16.2" - node-exports-info: "npm:^1.6.0" - object-keys: "npm:^1.1.1" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: 10c0/8c6fa17ccdb826a3a52387ed8c42bf705dbc19d5494da52a86661b124b5b88fad5d8edbbb4434a1b563ecf7768368b7da9fb9489e20f36e02f7551a4ea87d707 - languageName: node - linkType: hard - "resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.14.2#optional!builtin, resolve@patch:resolve@npm%3A^1.17.0#optional!builtin, resolve@patch:resolve@npm%3A^1.19.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.1#optional!builtin": version: 1.22.10 resolution: "resolve@patch:resolve@npm%3A1.22.10#optional!builtin::version=1.22.10&hash=9bd1a5" @@ -20679,22 +19776,6 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^2.0.0-next.5#optional!builtin, resolve@patch:resolve@npm%3A^2.0.0-next.6#optional!builtin, resolve@patch:resolve@npm%3A^2.0.0-next.7#optional!builtin": - version: 2.0.0-next.7 - resolution: "resolve@patch:resolve@npm%3A2.0.0-next.7#optional!builtin::version=2.0.0-next.7&hash=9bd1a5" - dependencies: - es-errors: "npm:^1.3.0" - is-core-module: "npm:^2.16.2" - node-exports-info: "npm:^1.6.0" - object-keys: "npm:^1.1.1" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: 10c0/911e8321c64ec2a723247dbeabfcb7663577adf52af642bfda61ddee686fbef2255ad529ff57ee8e3884ee23186b85b2637988bfafc0a9a3a81a98bd4af1e2fc - languageName: node - linkType: hard - "responselike@npm:^3.0.0": version: 3.0.0 resolution: "responselike@npm:3.0.0" @@ -20977,9 +20058,6 @@ __metadata: "@dnd-kit/sortable": "npm:10.0.0" "@dnd-kit/utilities": "npm:3.2.2" "@emotion/serialize": "npm:1.3.3" - "@eslint/compat": "npm:^2.0.0" - "@eslint/eslintrc": "npm:^3.2.0" - "@eslint/js": "npm:^9.18.0" "@graphql-codegen/add": "npm:7.1.1" "@graphql-codegen/cli": "npm:7.4.6" "@graphql-codegen/fragment-matcher": "npm:7.1.0" @@ -20989,7 +20067,7 @@ __metadata: "@graphql-codegen/typescript": "npm:6.1.2" "@graphql-codegen/typescript-operations": "npm:6.2.0" "@graphql-codegen/typescript-react-apollo": "npm:4.4.2" - "@graphql-eslint/eslint-plugin": "npm:4.4.2" + "@graphql-inspector/cli": "npm:^7.0.2" "@graphql-typed-document-node/core": "npm:^3.2.0" "@juggle/resize-observer": "npm:3.4.0" "@lezer/common": "npm:1.5.5" @@ -21043,13 +20121,9 @@ __metadata: "@types/tinycolor2": "npm:1.4.6" "@types/uuid": "npm:11.0.0" "@types/zxcvbn": "npm:4.4.5" - "@typescript-eslint/eslint-plugin": "npm:8.72.1" - "@typescript-eslint/parser": "npm:8.72.1" - "@typescript-eslint/utils": "npm:8.72.1" "@typescript/native": "npm:typescript@7.0.2" "@vitejs/plugin-react-swc": "npm:^4.2.0" "@vitest/coverage-v8": "npm:^4.0.0" - "@vitest/eslint-plugin": "npm:^1.1.24" "@vitest/ui": "npm:^4.0.0" apollo-upload-client: "npm:19.0.0" array-to-sentence: "npm:2.0.0" @@ -21073,23 +20147,11 @@ __metadata: debounce-promise: "npm:3.1.2" detect-browser: "npm:5.3.0" diff: "npm:9.0.0" - eslint: "npm:9.39.5" - eslint-config-airbnb: "npm:19.0.4" - eslint-config-airbnb-base: "npm:15.0.0" - eslint-config-airbnb-typescript: "npm:18.0.0" - eslint-config-prettier: "npm:10.1.8" - eslint-import-resolver-node: "npm:0.4.0" - eslint-import-resolver-typescript: "npm:4.4.5" eslint-plugin-i18next: "npm:^6.1.1" - eslint-plugin-import: "npm:2.32.0" - eslint-plugin-jsx-a11y: "npm:6.10.2" - eslint-plugin-react: "npm:7.37.5" - eslint-plugin-react-hooks: "npm:7.1.1" events: "npm:3.3.0" fast-diff: "npm:1.3.0" file-saver: "npm:2.0.5" font-awesome: "npm:4.7.0" - globals: "npm:^17.0.0" graphql: "npm:16.9.0" graphql-anywhere: "npm:4.2.8" graphql-tag: "npm:2.12.7" @@ -21114,6 +20176,7 @@ __metadata: node-gyp: "npm:^13.0.0" ol: "npm:^10.2.1" openid-client: "npm:^6.8.4" + oxlint: "npm:^1.91.0" path-browserify: "npm:1.0.1" path-complete-extname: "npm:1.0.0" payment: "npm:2.4.7" @@ -21156,7 +20219,6 @@ __metadata: tsx: "npm:^4.20.3" typed-scss-modules: "npm:^8.1.1" typescript: "npm:6.0.3" - typescript-eslint: "npm:^8.58.0" tzdata: "npm:1.0.53" uuid: "npm:14.0.3" vite: "npm:^8.0.0" @@ -21208,19 +20270,6 @@ __metadata: languageName: node linkType: hard -"safe-array-concat@npm:^1.1.3": - version: 1.1.3 - resolution: "safe-array-concat@npm:1.1.3" - dependencies: - call-bind: "npm:^1.0.8" - call-bound: "npm:^1.0.2" - get-intrinsic: "npm:^1.2.6" - has-symbols: "npm:^1.1.0" - isarray: "npm:^2.0.5" - checksum: 10c0/43c86ffdddc461fb17ff8a17c5324f392f4868f3c7dd2c6a5d9f5971713bc5fd755667212c80eab9567595f9a7509cc2f83e590ddaebd1bd19b780f9c79f9a8d - languageName: node - linkType: hard - "safe-buffer@npm:5.2.1, safe-buffer@npm:>=5.1.0, safe-buffer@npm:^5.0.1, safe-buffer@npm:^5.1.0, safe-buffer@npm:^5.1.1, safe-buffer@npm:^5.1.2, safe-buffer@npm:^5.2.1, safe-buffer@npm:~5.2.0": version: 5.2.1 resolution: "safe-buffer@npm:5.2.1" @@ -21235,27 +20284,6 @@ __metadata: languageName: node linkType: hard -"safe-push-apply@npm:^1.0.0": - version: 1.0.0 - resolution: "safe-push-apply@npm:1.0.0" - dependencies: - es-errors: "npm:^1.3.0" - isarray: "npm:^2.0.5" - checksum: 10c0/831f1c9aae7436429e7862c7e46f847dfe490afac20d0ee61bae06108dbf5c745a0de3568ada30ccdd3eeb0864ca8331b2eef703abd69bfea0745b21fd320750 - languageName: node - linkType: hard - -"safe-regex-test@npm:^1.0.3, safe-regex-test@npm:^1.1.0": - version: 1.1.0 - resolution: "safe-regex-test@npm:1.1.0" - dependencies: - call-bound: "npm:^1.0.2" - es-errors: "npm:^1.3.0" - is-regex: "npm:^1.2.1" - checksum: 10c0/f2c25281bbe5d39cddbbce7f86fca5ea9b3ce3354ea6cd7c81c31b006a5a9fff4286acc5450a3b9122c56c33eba69c56b9131ad751457b2b4a585825e6a10665 - languageName: node - linkType: hard - "safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" @@ -21379,7 +20407,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^6.3.0, semver@npm:^6.3.1": +"semver@npm:^6.3.1": version: 6.3.1 resolution: "semver@npm:6.3.1" bin: @@ -21388,7 +20416,7 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.7.1, semver@npm:^7.7.3": +"semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3, semver@npm:^7.5.4": version: 7.7.3 resolution: "semver@npm:7.7.3" bin: @@ -21501,29 +20529,6 @@ __metadata: languageName: node linkType: hard -"set-function-name@npm:^2.0.2": - version: 2.0.2 - resolution: "set-function-name@npm:2.0.2" - dependencies: - define-data-property: "npm:^1.1.4" - es-errors: "npm:^1.3.0" - functions-have-names: "npm:^1.2.3" - has-property-descriptors: "npm:^1.0.2" - checksum: 10c0/fce59f90696c450a8523e754abb305e2b8c73586452619c2bad5f7bf38c7b6b4651895c9db895679c5bef9554339cf3ef1c329b66ece3eda7255785fbe299316 - languageName: node - linkType: hard - -"set-proto@npm:^1.0.0": - version: 1.0.0 - resolution: "set-proto@npm:1.0.0" - dependencies: - dunder-proto: "npm:^1.0.1" - es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.0.0" - checksum: 10c0/ca5c3ccbba479d07c30460e367e66337cec825560b11e8ba9c5ebe13a2a0d6021ae34eddf94ff3dfe17a3104dc1f191519cb6c48378b503e5c3f36393938776a - languageName: node - linkType: hard - "setimmediate@npm:^1.0.4": version: 1.0.5 resolution: "setimmediate@npm:1.0.5" @@ -21649,7 +20654,7 @@ __metadata: languageName: node linkType: hard -"side-channel@npm:^1.1.0, side-channel@npm:^1.1.1": +"side-channel@npm:^1.1.1": version: 1.1.1 resolution: "side-channel@npm:1.1.1" dependencies: @@ -21933,13 +20938,6 @@ __metadata: languageName: node linkType: hard -"stable-hash-x@npm:^0.2.0": - version: 0.2.0 - resolution: "stable-hash-x@npm:0.2.0" - checksum: 10c0/c757df58366ee4bb266a9486b8932eab7c1ba730469eaf4b68d2dee404814e9f84089c44c9b5205f8c7d99a0ab036cce2af69139ce5ed44b635923c011a8aea8 - languageName: node - linkType: hard - "stackback@npm:0.0.2": version: 0.0.2 resolution: "stackback@npm:0.0.2" @@ -21982,16 +20980,6 @@ __metadata: languageName: node linkType: hard -"stop-iteration-iterator@npm:^1.1.0": - version: 1.1.0 - resolution: "stop-iteration-iterator@npm:1.1.0" - dependencies: - es-errors: "npm:^1.3.0" - internal-slot: "npm:^1.1.0" - checksum: 10c0/de4e45706bb4c0354a4b1122a2b8cc45a639e86206807ce0baf390ee9218d3ef181923fa4d2b67443367c491aa255c5fbaa64bb74648e3c5b48299928af86c09 - languageName: node - linkType: hard - "stream-browserify@npm:3.0.0, stream-browserify@npm:^3.0.0": version: 3.0.0 resolution: "stream-browserify@npm:3.0.0" @@ -22089,86 +21077,6 @@ __metadata: languageName: node linkType: hard -"string.prototype.includes@npm:^2.0.1": - version: 2.0.1 - resolution: "string.prototype.includes@npm:2.0.1" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.3" - checksum: 10c0/25ce9c9b49128352a2618fbe8758b46f945817a58a4420f4799419e40a8d28f116e176c7590d767d5327a61e75c8f32c86171063f48e389b9fdd325f1bd04ee5 - languageName: node - linkType: hard - -"string.prototype.matchall@npm:^4.0.12": - version: 4.0.12 - resolution: "string.prototype.matchall@npm:4.0.12" - dependencies: - call-bind: "npm:^1.0.8" - call-bound: "npm:^1.0.3" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.6" - es-errors: "npm:^1.3.0" - es-object-atoms: "npm:^1.0.0" - get-intrinsic: "npm:^1.2.6" - gopd: "npm:^1.2.0" - has-symbols: "npm:^1.1.0" - internal-slot: "npm:^1.1.0" - regexp.prototype.flags: "npm:^1.5.3" - set-function-name: "npm:^2.0.2" - side-channel: "npm:^1.1.0" - checksum: 10c0/1a53328ada73f4a77f1fdf1c79414700cf718d0a8ef6672af5603e709d26a24f2181208144aed7e858b1bcc1a0d08567a570abfb45567db4ae47637ed2c2f85c - languageName: node - linkType: hard - -"string.prototype.repeat@npm:^1.0.0": - version: 1.0.0 - resolution: "string.prototype.repeat@npm:1.0.0" - dependencies: - define-properties: "npm:^1.1.3" - es-abstract: "npm:^1.17.5" - checksum: 10c0/94c7978566cffa1327d470fd924366438af9b04b497c43a9805e476e2e908aa37a1fd34cc0911156c17556dab62159d12c7b92b3cc304c3e1281fe4c8e668f40 - languageName: node - linkType: hard - -"string.prototype.trim@npm:^1.2.10": - version: 1.2.10 - resolution: "string.prototype.trim@npm:1.2.10" - dependencies: - call-bind: "npm:^1.0.8" - call-bound: "npm:^1.0.2" - define-data-property: "npm:^1.1.4" - define-properties: "npm:^1.2.1" - es-abstract: "npm:^1.23.5" - es-object-atoms: "npm:^1.0.0" - has-property-descriptors: "npm:^1.0.2" - checksum: 10c0/8a8854241c4b54a948e992eb7dd6b8b3a97185112deb0037a134f5ba57541d8248dd610c966311887b6c2fd1181a3877bffb14d873ce937a344535dabcc648f8 - languageName: node - linkType: hard - -"string.prototype.trimend@npm:^1.0.9": - version: 1.0.9 - resolution: "string.prototype.trimend@npm:1.0.9" - dependencies: - call-bind: "npm:^1.0.8" - call-bound: "npm:^1.0.2" - define-properties: "npm:^1.2.1" - es-object-atoms: "npm:^1.0.0" - checksum: 10c0/59e1a70bf9414cb4c536a6e31bef5553c8ceb0cf44d8b4d0ed65c9653358d1c64dd0ec203b100df83d0413bbcde38b8c5d49e14bc4b86737d74adc593a0d35b6 - languageName: node - linkType: hard - -"string.prototype.trimstart@npm:^1.0.8": - version: 1.0.8 - resolution: "string.prototype.trimstart@npm:1.0.8" - dependencies: - call-bind: "npm:^1.0.7" - define-properties: "npm:^1.2.1" - es-object-atoms: "npm:^1.0.0" - checksum: 10c0/d53af1899959e53c83b64a5fd120be93e067da740e7e75acb433849aa640782fb6c7d4cd5b84c954c84413745a3764df135a8afeb22908b86a835290788d8366 - languageName: node - linkType: hard - "string_decoder@npm:^1.0.0, string_decoder@npm:^1.1.1": version: 1.3.0 resolution: "string_decoder@npm:1.3.0" @@ -22233,13 +21141,6 @@ __metadata: languageName: node linkType: hard -"strip-bom@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-bom@npm:3.0.0" - checksum: 10c0/51201f50e021ef16672593d7434ca239441b7b760e905d9f33df6e4f3954ff54ec0e0a06f100d028af0982d6f25c35cd5cda2ce34eaebccd0250b8befb90d8f1 - languageName: node - linkType: hard - "strip-final-newline@npm:^2.0.0": version: 2.0.0 resolution: "strip-final-newline@npm:2.0.0" @@ -22767,15 +21668,6 @@ __metadata: languageName: node linkType: hard -"ts-api-utils@npm:^2.5.0": - version: 2.5.0 - resolution: "ts-api-utils@npm:2.5.0" - peerDependencies: - typescript: ">=4.8.4" - checksum: 10c0/767849383c114e7f1971fa976b20e73ac28fd0c70d8d65c0004790bf4d8f89888c7e4cf6d5949f9c1beae9bc3c64835bef77bbe27fddf45a3c7b60cebcf85c8c - languageName: node - linkType: hard - "ts-invariant@npm:^0.3.2": version: 0.3.3 resolution: "ts-invariant@npm:0.3.3" @@ -22839,18 +21731,6 @@ __metadata: languageName: node linkType: hard -"tsconfig-paths@npm:^3.15.0": - version: 3.15.0 - resolution: "tsconfig-paths@npm:3.15.0" - dependencies: - "@types/json5": "npm:^0.0.29" - json5: "npm:^1.0.2" - minimist: "npm:^1.2.6" - strip-bom: "npm:^3.0.0" - checksum: 10c0/5b4f301a2b7a3766a986baf8fc0e177eb80bdba6e396792ff92dc23b5bca8bb279fc96517dcaaef63a3b49bebc6c4c833653ec58155780bc906bdbcf7dda0ef5 - languageName: node - linkType: hard - "tslib@npm:2.6.2": version: 2.6.2 resolution: "tslib@npm:2.6.2" @@ -22872,6 +21752,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:~2.6.2": + version: 2.6.3 + resolution: "tslib@npm:2.6.3" + checksum: 10c0/2598aef53d9dbe711af75522464b2104724d6467b26a60f2bdac8297d2b5f1f6b86a71f61717384aa8fd897240467aaa7bcc36a0700a0faf751293d1331db39a + languageName: node + linkType: hard + "tslib@npm:~2.8.0": version: 2.8.1 resolution: "tslib@npm:2.8.1" @@ -22919,15 +21806,6 @@ __metadata: languageName: node linkType: hard -"type-check@npm:^0.4.0, type-check@npm:~0.4.0": - version: 0.4.0 - resolution: "type-check@npm:0.4.0" - dependencies: - prelude-ls: "npm:^1.2.1" - checksum: 10c0/7b3fd0ed43891e2080bf0c5c504b418fbb3e5c7b9708d3d015037ba2e6323a28152ec163bcb65212741fa5d2022e3075ac3c76440dbd344c9035f818e8ecee58 - languageName: node - linkType: hard - "type-fest@npm:^1.0.1": version: 1.4.0 resolution: "type-fest@npm:1.4.0" @@ -22963,48 +21841,6 @@ __metadata: languageName: node linkType: hard -"typed-array-byte-length@npm:^1.0.3": - version: 1.0.3 - resolution: "typed-array-byte-length@npm:1.0.3" - dependencies: - call-bind: "npm:^1.0.8" - for-each: "npm:^0.3.3" - gopd: "npm:^1.2.0" - has-proto: "npm:^1.2.0" - is-typed-array: "npm:^1.1.14" - checksum: 10c0/6ae083c6f0354f1fce18b90b243343b9982affd8d839c57bbd2c174a5d5dc71be9eb7019ffd12628a96a4815e7afa85d718d6f1e758615151d5f35df841ffb3e - languageName: node - linkType: hard - -"typed-array-byte-offset@npm:^1.0.4": - version: 1.0.4 - resolution: "typed-array-byte-offset@npm:1.0.4" - dependencies: - available-typed-arrays: "npm:^1.0.7" - call-bind: "npm:^1.0.8" - for-each: "npm:^0.3.3" - gopd: "npm:^1.2.0" - has-proto: "npm:^1.2.0" - is-typed-array: "npm:^1.1.15" - reflect.getprototypeof: "npm:^1.0.9" - checksum: 10c0/3d805b050c0c33b51719ee52de17c1cd8e6a571abdf0fffb110e45e8dd87a657e8b56eee94b776b13006d3d347a0c18a730b903cf05293ab6d92e99ff8f77e53 - languageName: node - linkType: hard - -"typed-array-length@npm:^1.0.7": - version: 1.0.7 - resolution: "typed-array-length@npm:1.0.7" - dependencies: - call-bind: "npm:^1.0.7" - for-each: "npm:^0.3.3" - gopd: "npm:^1.0.1" - is-typed-array: "npm:^1.1.13" - possible-typed-array-names: "npm:^1.0.0" - reflect.getprototypeof: "npm:^1.0.6" - checksum: 10c0/e38f2ae3779584c138a2d8adfa8ecf749f494af3cd3cdafe4e688ce51418c7d2c5c88df1bd6be2bbea099c3f7cea58c02ca02ed438119e91f162a9de23f61295 - languageName: node - linkType: hard - "typed-scss-modules@npm:^8.1.1": version: 8.1.1 resolution: "typed-scss-modules@npm:8.1.1" @@ -23044,21 +21880,6 @@ __metadata: languageName: node linkType: hard -"typescript-eslint@npm:^8.58.0": - version: 8.72.1 - resolution: "typescript-eslint@npm:8.72.1" - dependencies: - "@typescript-eslint/eslint-plugin": "npm:8.72.1" - "@typescript-eslint/parser": "npm:8.72.1" - "@typescript-eslint/typescript-estree": "npm:8.72.1" - "@typescript-eslint/utils": "npm:8.72.1" - peerDependencies: - eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 - typescript: ">=4.8.4 <6.1.0" - checksum: 10c0/048090830c7873ae9ccf4859800006d55f9d31854861dc07f255b65e2ecf392be5735c999c16df85df94b636407e610da700b6892c8223b5a606d683632f5eae - languageName: node - linkType: hard - "typescript@npm:6.0.3": version: 6.0.3 resolution: "typescript@npm:6.0.3" @@ -23086,18 +21907,6 @@ __metadata: languageName: node linkType: hard -"unbox-primitive@npm:^1.1.0": - version: 1.1.0 - resolution: "unbox-primitive@npm:1.1.0" - dependencies: - call-bound: "npm:^1.0.3" - has-bigints: "npm:^1.0.2" - has-symbols: "npm:^1.1.0" - which-boxed-primitive: "npm:^1.1.1" - checksum: 10c0/7dbd35ab02b0e05fe07136c72cb9355091242455473ec15057c11430129bab38b7b3624019b8778d02a881c13de44d63cd02d122ee782fb519e1de7775b5b982 - languageName: node - linkType: hard - "unc-path-regex@npm:^0.1.2": version: 0.1.2 resolution: "unc-path-regex@npm:0.1.2" @@ -23278,73 +22087,6 @@ __metadata: languageName: node linkType: hard -"unrs-resolver@npm:^1.7.11": - version: 1.11.1 - resolution: "unrs-resolver@npm:1.11.1" - dependencies: - "@unrs/resolver-binding-android-arm-eabi": "npm:1.11.1" - "@unrs/resolver-binding-android-arm64": "npm:1.11.1" - "@unrs/resolver-binding-darwin-arm64": "npm:1.11.1" - "@unrs/resolver-binding-darwin-x64": "npm:1.11.1" - "@unrs/resolver-binding-freebsd-x64": "npm:1.11.1" - "@unrs/resolver-binding-linux-arm-gnueabihf": "npm:1.11.1" - "@unrs/resolver-binding-linux-arm-musleabihf": "npm:1.11.1" - "@unrs/resolver-binding-linux-arm64-gnu": "npm:1.11.1" - "@unrs/resolver-binding-linux-arm64-musl": "npm:1.11.1" - "@unrs/resolver-binding-linux-ppc64-gnu": "npm:1.11.1" - "@unrs/resolver-binding-linux-riscv64-gnu": "npm:1.11.1" - "@unrs/resolver-binding-linux-riscv64-musl": "npm:1.11.1" - "@unrs/resolver-binding-linux-s390x-gnu": "npm:1.11.1" - "@unrs/resolver-binding-linux-x64-gnu": "npm:1.11.1" - "@unrs/resolver-binding-linux-x64-musl": "npm:1.11.1" - "@unrs/resolver-binding-wasm32-wasi": "npm:1.11.1" - "@unrs/resolver-binding-win32-arm64-msvc": "npm:1.11.1" - "@unrs/resolver-binding-win32-ia32-msvc": "npm:1.11.1" - "@unrs/resolver-binding-win32-x64-msvc": "npm:1.11.1" - napi-postinstall: "npm:^0.3.0" - dependenciesMeta: - "@unrs/resolver-binding-android-arm-eabi": - optional: true - "@unrs/resolver-binding-android-arm64": - optional: true - "@unrs/resolver-binding-darwin-arm64": - optional: true - "@unrs/resolver-binding-darwin-x64": - optional: true - "@unrs/resolver-binding-freebsd-x64": - optional: true - "@unrs/resolver-binding-linux-arm-gnueabihf": - optional: true - "@unrs/resolver-binding-linux-arm-musleabihf": - optional: true - "@unrs/resolver-binding-linux-arm64-gnu": - optional: true - "@unrs/resolver-binding-linux-arm64-musl": - optional: true - "@unrs/resolver-binding-linux-ppc64-gnu": - optional: true - "@unrs/resolver-binding-linux-riscv64-gnu": - optional: true - "@unrs/resolver-binding-linux-riscv64-musl": - optional: true - "@unrs/resolver-binding-linux-s390x-gnu": - optional: true - "@unrs/resolver-binding-linux-x64-gnu": - optional: true - "@unrs/resolver-binding-linux-x64-musl": - optional: true - "@unrs/resolver-binding-wasm32-wasi": - optional: true - "@unrs/resolver-binding-win32-arm64-msvc": - optional: true - "@unrs/resolver-binding-win32-ia32-msvc": - optional: true - "@unrs/resolver-binding-win32-x64-msvc": - optional: true - checksum: 10c0/c91b112c71a33d6b24e5c708dab43ab80911f2df8ee65b87cd7a18fb5af446708e98c4b415ca262026ad8df326debcc7ca6a801b2935504d87fd6f0b9d70dce1 - languageName: node - linkType: hard - "unzipit@npm:2.0.0": version: 2.0.0 resolution: "unzipit@npm:2.0.0" @@ -24125,53 +22867,7 @@ __metadata: languageName: node linkType: hard -"which-boxed-primitive@npm:^1.1.0, which-boxed-primitive@npm:^1.1.1": - version: 1.1.1 - resolution: "which-boxed-primitive@npm:1.1.1" - dependencies: - is-bigint: "npm:^1.1.0" - is-boolean-object: "npm:^1.2.1" - is-number-object: "npm:^1.1.1" - is-string: "npm:^1.1.1" - is-symbol: "npm:^1.1.1" - checksum: 10c0/aceea8ede3b08dede7dce168f3883323f7c62272b49801716e8332ff750e7ae59a511ae088840bc6874f16c1b7fd296c05c949b0e5b357bfe3c431b98c417abe - languageName: node - linkType: hard - -"which-builtin-type@npm:^1.2.1": - version: 1.2.1 - resolution: "which-builtin-type@npm:1.2.1" - dependencies: - call-bound: "npm:^1.0.2" - function.prototype.name: "npm:^1.1.6" - has-tostringtag: "npm:^1.0.2" - is-async-function: "npm:^2.0.0" - is-date-object: "npm:^1.1.0" - is-finalizationregistry: "npm:^1.1.0" - is-generator-function: "npm:^1.0.10" - is-regex: "npm:^1.2.1" - is-weakref: "npm:^1.0.2" - isarray: "npm:^2.0.5" - which-boxed-primitive: "npm:^1.1.0" - which-collection: "npm:^1.0.2" - which-typed-array: "npm:^1.1.16" - checksum: 10c0/8dcf323c45e5c27887800df42fbe0431d0b66b1163849bb7d46b5a730ad6a96ee8bfe827d078303f825537844ebf20c02459de41239a0a9805e2fcb3cae0d471 - languageName: node - linkType: hard - -"which-collection@npm:^1.0.2": - version: 1.0.2 - resolution: "which-collection@npm:1.0.2" - dependencies: - is-map: "npm:^2.0.3" - is-set: "npm:^2.0.3" - is-weakmap: "npm:^2.0.2" - is-weakset: "npm:^2.0.3" - checksum: 10c0/3345fde20964525a04cdf7c4a96821f85f0cc198f1b2ecb4576e08096746d129eb133571998fe121c77782ac8f21cbd67745a3d35ce100d26d4e684c142ea1f2 - languageName: node - linkType: hard - -"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.19, which-typed-array@npm:^1.1.2": +"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.2": version: 1.1.19 resolution: "which-typed-array@npm:1.1.19" dependencies: @@ -24450,6 +23146,21 @@ __metadata: languageName: node linkType: hard +"yargs@npm:^17.7.2": + version: 17.7.3 + resolution: "yargs@npm:17.7.3" + dependencies: + cliui: "npm:^8.0.1" + escalade: "npm:^3.1.1" + get-caller-file: "npm:^2.0.5" + require-directory: "npm:^2.1.1" + string-width: "npm:^4.2.3" + y18n: "npm:^5.0.5" + yargs-parser: "npm:^21.1.1" + checksum: 10c0/7a28572f7e785a57886e34fdbddb9b28756dec552e1453d5f6e7cdd00ad8721a4e8c4321d33683f5e61cacb36ad43258adbb48396b71ec4ed14abee0fc0d0c1f + languageName: node + linkType: hard + "yargs@npm:^18.0.0": version: 18.0.0 resolution: "yargs@npm:18.0.0" @@ -24502,16 +23213,7 @@ __metadata: languageName: node linkType: hard -"zod-validation-error@npm:^3.5.0 || ^4.0.0": - version: 4.0.2 - resolution: "zod-validation-error@npm:4.0.2" - peerDependencies: - zod: ^3.25.0 || ^4.0.0 - checksum: 10c0/0ccfec48c46de1be440b719cd02044d4abb89ed0e14c13e637cd55bf29102f67ccdba373f25def0fc7130e5f15025be4d557a7edcc95d5a3811599aade689e1b - languageName: node - linkType: hard - -"zod@npm:^3.25.0 || ^4.0.0, zod@npm:^4.4.3": +"zod@npm:^4.4.3": version: 4.6.7 resolution: "zod@npm:4.6.7" checksum: 10c0/4ce2eb14034317b7254e347ca37b5ad591cf8333147030cf05b9b5d31692d45073f7f2747aa50cf8c6b29012194d2b22978cecc89969cf34a0d18e89d0ee7d7b From 9ac73c3afa046fad207e14f6a38b84c8aadfc355 Mon Sep 17 00:00:00 2001 From: Nat Budin Date: Fri, 6 Nov 2026 11:49:15 -0800 Subject: [PATCH 2/3] Fix oxlint errors - Test casts over optional chains now use `| undefined` with `?.` - Drop unused variables/catch bindings - Stop reading refs during render (useValidatableForm, FormPresenter, MaximumEventSignupsInput); scrollToItem now resolves the ref when called, which also fixes it being a no-op on the first render - Replace set-state-in-effect with derived state or render-time state adjustment (DateTimeInput, FileInputWithPreview, TicketPurchaseForm, MaximumEventSignupsInput, OpenLayersMap) - Remove the unused, impure return value from toggleRunDetailsVisibility - Avoid constructing JSX inside try/catch in FreeTextItemDisplay Co-Authored-By: Claude Sonnet 5.5 --- .../BuiltInFormControls/AddFileModal.tsx | 4 +-- .../BuiltInFormControls/DateTimeInput.tsx | 9 ++++--- .../CmsFilesAdmin/FileInputWithPreview.tsx | 8 +++--- .../ScheduleGrid/ScheduleGridContext.tsx | 6 ----- .../ItemDisplays/FreeTextItemDisplay.tsx | 13 ++++----- .../FormPresenter/Layouts/FormPresenter.tsx | 7 +++-- .../FormPresenter/TimeblockUtils.ts | 2 +- .../FormPresenter/useValidatableForm.ts | 11 ++++---- app/javascript/Maps/OpenLayersMap.tsx | 15 +++-------- .../MyTicket/TicketPurchaseForm.tsx | 12 +++------ .../MaximumEventSignupsInput.tsx | 27 +++++++++---------- .../Authentication/DeviseSignUpPage.test.tsx | 8 +++--- .../Authentication/PasswordPages.test.tsx | 2 +- .../Store/PricingStructureForm.test.tsx | 6 ++--- .../UserConProfiles/BecomeUserModal.test.tsx | 4 +-- test/javascript/shellRecovery.test.ts | 2 +- 16 files changed, 64 insertions(+), 72 deletions(-) diff --git a/app/javascript/BuiltInFormControls/AddFileModal.tsx b/app/javascript/BuiltInFormControls/AddFileModal.tsx index 81f095d7bdc..a527e140737 100644 --- a/app/javascript/BuiltInFormControls/AddFileModal.tsx +++ b/app/javascript/BuiltInFormControls/AddFileModal.tsx @@ -8,7 +8,7 @@ import SelectWithLabel from './SelectWithLabel'; import FileUploadForm from '../BuiltInForms/FileUploadForm'; import { ActiveStorageAttachment } from '../graphqlTypes.generated'; import { Blob } from '@rails/activestorage'; -import { useLazyQuery } from "@apollo/client/react"; +import { useLazyQuery } from '@apollo/client/react'; export type AddFileModalProps = { visible: boolean; @@ -20,7 +20,7 @@ export type AddFileModalProps = { export default function AddFileModal({ visible, existingFiles, addBlob, fileChosen, close }: AddFileModalProps) { const { t } = useTranslation(); - const [loadData, { called, data, loading, error }] = useLazyQuery(CmsFilesAdminQueryDocument); + const [loadData, { called, loading, error }] = useLazyQuery(CmsFilesAdminQueryDocument); const [file, setFile] = useState(null); const uploadedFile = async (blob: Blob, newFile: File) => { diff --git a/app/javascript/BuiltInFormControls/DateTimeInput.tsx b/app/javascript/BuiltInFormControls/DateTimeInput.tsx index 8ab16d2f69c..16c541b319f 100644 --- a/app/javascript/BuiltInFormControls/DateTimeInput.tsx +++ b/app/javascript/BuiltInFormControls/DateTimeInput.tsx @@ -1,4 +1,4 @@ -import { useMemo, useContext, useState, useEffect } from 'react'; +import { useMemo, useContext, useState } from 'react'; import * as React from 'react'; import { DateTime } from 'luxon'; @@ -111,12 +111,15 @@ function DateTimeInput({ const showZone = alwaysShowTimezone || effectiveTimezoneName !== appTimezoneName || effectiveTimezoneName !== userTimezoneName; - useEffect(() => { + // Sync the inputs when the incoming value changes (adjusting state during render rather than in an effect) + const [prevDateTime, setPrevDateTime] = useState(dateTime); + if (dateTime !== prevDateTime) { + setPrevDateTime(dateTime); if (dateTime.isValid) { setDate(dateTime.toISODate()); setTime(dateTime.toISOTime({ suppressMilliseconds: true, includeOffset: false })); } - }, [dateTime]); + } const dateChanged = (newDate: string) => { setDate(newDate); diff --git a/app/javascript/CmsAdmin/CmsFilesAdmin/FileInputWithPreview.tsx b/app/javascript/CmsAdmin/CmsFilesAdmin/FileInputWithPreview.tsx index cfdbbf586ad..65654bc3bdc 100644 --- a/app/javascript/CmsAdmin/CmsFilesAdmin/FileInputWithPreview.tsx +++ b/app/javascript/CmsAdmin/CmsFilesAdmin/FileInputWithPreview.tsx @@ -12,7 +12,8 @@ export type FileInputWithPreviewProps = { export default function FileInputWithPreview({ existingFileUrl, file, onChange, disabled }: FileInputWithPreviewProps) { const fileInputId = useId(); - const [imageUrl, setImageUrl] = useState(null); + const [preview, setPreview] = useState<{ file: File; url: string }>(); + const imageUrl = file && preview?.file === file ? preview.url : undefined; const { t } = useTranslation(); const uploadFileChanged = useCallback( @@ -34,13 +35,12 @@ export default function FileInputWithPreview({ existingFileUrl, file, onChange, useEffect(() => { if (file == null) { - setImageUrl(null); return; } const reader = new FileReader(); reader.addEventListener('load', () => { - setImageUrl(reader.result as string); + setPreview({ file, url: reader.result as string }); }); reader.readAsDataURL(file); }, [file]); @@ -53,7 +53,7 @@ export default function FileInputWithPreview({ existingFileUrl, file, onChange, <> {file ? (
- + diff --git a/app/javascript/EventsApp/ScheduleGrid/ScheduleGridContext.tsx b/app/javascript/EventsApp/ScheduleGrid/ScheduleGridContext.tsx index 3f02c596bb9..ece3b3e44e5 100644 --- a/app/javascript/EventsApp/ScheduleGrid/ScheduleGridContext.tsx +++ b/app/javascript/EventsApp/ScheduleGrid/ScheduleGridContext.tsx @@ -131,8 +131,6 @@ export function useScheduleGridProvider( const toggleRunDetailsVisibility = useCallback( (visibilitySpec: RunDetailsVisibilitySpec) => { - let newVisibility = false; - setVisibleRunDetailsIds((prevVisibleRunDetails) => { const newVisibleRunDetails = new Map(); prevVisibleRunDetails.forEach((visibleSpecs, visibleRunId) => { @@ -147,7 +145,6 @@ export function useScheduleGridProvider( (visibleSpec) => !runDetailsVisibilitySpecsMatch(visibleSpec, visibilitySpec), ), ); - newVisibility = false; return newVisibleRunDetails; } @@ -159,12 +156,9 @@ export function useScheduleGridProvider( }); // throw out the old visibility specs for this run because by definition they overlap newVisibleRunDetails.set(visibilitySpec.runId, [visibilitySpec]); - newVisibility = true; return newVisibleRunDetails; }); - - return newVisibility; }, [schedule], ); diff --git a/app/javascript/FormPresenter/ItemDisplays/FreeTextItemDisplay.tsx b/app/javascript/FormPresenter/ItemDisplays/FreeTextItemDisplay.tsx index 5ae33fc6873..f4269653c43 100644 --- a/app/javascript/FormPresenter/ItemDisplays/FreeTextItemDisplay.tsx +++ b/app/javascript/FormPresenter/ItemDisplays/FreeTextItemDisplay.tsx @@ -5,10 +5,10 @@ import { FreeTextFormItem, FormItemValueType } from '../../FormAdmin/FormItemUti function parseURL(value: string) { try { return new URL(value); - } catch (error) { + } catch { try { return new URL(`http://${value}`); - } catch (error2) { + } catch { return null; } } @@ -25,14 +25,15 @@ function FreeTextItemDisplay({ formItem, value }: FreeTextItemDisplayProps): Rea } if (formItem.rendered_properties.free_text_type === 'url') { + let url: URL | null = null; try { - const url = parseURL(value); - if (url) { - return {url.toString()}; - } + url = parseURL(value); } catch { // fall through to displaying as plain text } + if (url) { + return {url.toString()}; + } } return ; diff --git a/app/javascript/FormPresenter/Layouts/FormPresenter.tsx b/app/javascript/FormPresenter/Layouts/FormPresenter.tsx index 10ccf44453c..8f2af818a4a 100644 --- a/app/javascript/FormPresenter/Layouts/FormPresenter.tsx +++ b/app/javascript/FormPresenter/Layouts/FormPresenter.tsx @@ -1,4 +1,4 @@ -import { useRef, useContext, useEffect } from 'react'; +import { useCallback, useRef, useContext, useEffect } from 'react'; import { LoadingIndicator } from '@neinteractiveliterature/litform'; import FormHeader, { FormHeaderProps } from './FormHeader'; @@ -47,6 +47,9 @@ function FormPresenter({ const headerRef = useRef(null); const sectionRef = useRef(null); + const scrollToItem = useCallback((item) => { + sectionRef.current?.scrollToItem(item); + }, []); useEffect(() => { if (headerRef.current) { @@ -89,7 +92,7 @@ function FormPresenter({ submitButton={submitButton} submitForm={submitForm} isSubmittingResponse={isSubmittingResponse} - scrollToItem={sectionRef.current ? sectionRef.current.scrollToItem : () => {}} + scrollToItem={scrollToItem} > {footerContent} diff --git a/app/javascript/FormPresenter/TimeblockUtils.ts b/app/javascript/FormPresenter/TimeblockUtils.ts index e63bc7a5716..2fa238092f7 100644 --- a/app/javascript/FormPresenter/TimeblockUtils.ts +++ b/app/javascript/FormPresenter/TimeblockUtils.ts @@ -82,7 +82,7 @@ function getAllPossibleTimeblocks(convention: ConventionForTimespanUtils, formIt }; return concreteTimeblock; - } catch (error) { + } catch { return null; } }) diff --git a/app/javascript/FormPresenter/useValidatableForm.ts b/app/javascript/FormPresenter/useValidatableForm.ts index c0bcba2c1fe..6070e6c0dbc 100644 --- a/app/javascript/FormPresenter/useValidatableForm.ts +++ b/app/javascript/FormPresenter/useValidatableForm.ts @@ -1,4 +1,4 @@ -import { RefObject, useRef } from 'react'; +import { RefObject, useCallback, useRef } from 'react'; import { ItemInteractionTrackerContextValue, useItemInteractionTracking } from './ItemInteractionTracker'; import useFormValidation from './useFormValidation'; import { FormBodyImperativeHandle } from './Layouts/FormBody'; @@ -13,10 +13,11 @@ export default function useValidatableForm(): { const formRef = useRef(undefined); const itemInteractionTrackingProps = useItemInteractionTracking(); - const validate = useFormValidation( - formRef.current ? formRef.current.scrollToItem : () => {}, - itemInteractionTrackingProps.interactWithItem, - ); + const scrollToItem = useCallback((item) => { + formRef.current?.scrollToItem(item); + }, []); + + const validate = useFormValidation(scrollToItem, itemInteractionTrackingProps.interactWithItem); return { formRef, diff --git a/app/javascript/Maps/OpenLayersMap.tsx b/app/javascript/Maps/OpenLayersMap.tsx index d48f0ccc0ee..0de90a80a76 100644 --- a/app/javascript/Maps/OpenLayersMap.tsx +++ b/app/javascript/Maps/OpenLayersMap.tsx @@ -15,19 +15,12 @@ export type OpenLayersMapProps = Omit, 'ref'> & { function OpenLayersMap({ viewOptions, overlayLayers, ...divProps }: OpenLayersMapProps) { const [container, setContainer] = useState(null); - const [view, setView] = useState(); + const [view] = useState(() => new View(viewOptions)); useEffect(() => { - setView((prevView) => { - if (prevView) { - // eslint-disable-next-line no-underscore-dangle - prevView.applyOptions_(viewOptions); - return prevView; - } else { - return new View(viewOptions); - } - }); - }, [viewOptions]); + // eslint-disable-next-line no-underscore-dangle + view.applyOptions_(viewOptions); + }, [view, viewOptions]); useEffect(() => { if (container != null) { diff --git a/app/javascript/MyTicket/TicketPurchaseForm.tsx b/app/javascript/MyTicket/TicketPurchaseForm.tsx index 1799cd007ed..d518c3a1cf0 100644 --- a/app/javascript/MyTicket/TicketPurchaseForm.tsx +++ b/app/javascript/MyTicket/TicketPurchaseForm.tsx @@ -1,4 +1,4 @@ -import { useState, useEffect, useContext } from 'react'; +import { useState, useContext } from 'react'; import classNames from 'classnames'; import { useTranslation } from 'react-i18next'; import capitalize from 'lodash/capitalize'; @@ -20,15 +20,11 @@ export type TicketPurchaseFormProps = { export default function TicketPurchaseForm({ availableProducts, onAddedToCart, run }: TicketPurchaseFormProps) { const { t } = useTranslation(); const { ticketName } = useContext(AppRootContext); - const [product, setProduct] = useState(); + const [selectedProduct, setProduct] = useState(); + // if there's only one product available, it's selected automatically + const product = selectedProduct ?? (availableProducts.length === 1 ? availableProducts[0] : undefined); const [focusedProduct, setFocusedProduct] = useState(); - useEffect(() => { - if (availableProducts.length === 1) { - setProduct(availableProducts[0]); - } - }, [availableProducts]); - const renderProductSelect = () => (
{ + onChangeRef.current = onChange; + }); const valueTypeChanged = (event: React.ChangeEvent) => { const newValueType = event.target.value; @@ -77,20 +79,17 @@ function MaximumEventSignupsInput({ value, onChange, id, name, ...selectProps }: } }, [inputState]); - React.useEffect(() => { - if (value == null) { - return; - } - - const valueAsInputState = maximumEventSignupsValueToInputState(value); - setInputState((prevInputState) => { - if (!isEqual(valueAsInputState, prevInputState)) { - return valueAsInputState; - } else { - return prevInputState; + // Sync the input state when the incoming value changes (adjusting state during render rather than in an effect) + const [prevValue, setPrevValue] = React.useState(value); + if (value !== prevValue) { + setPrevValue(value); + if (value != null) { + const valueAsInputState = maximumEventSignupsValueToInputState(value); + if (!isEqual(valueAsInputState, inputState)) { + setInputState(valueAsInputState); } - }); - }, [value]); + } + } return (
diff --git a/test/javascript/Authentication/DeviseSignUpPage.test.tsx b/test/javascript/Authentication/DeviseSignUpPage.test.tsx index 5b1477e0b98..09f8a17558f 100644 --- a/test/javascript/Authentication/DeviseSignUpPage.test.tsx +++ b/test/javascript/Authentication/DeviseSignUpPage.test.tsx @@ -128,7 +128,7 @@ describe('DeviseSignUpPage', () => { const [url, init] = fetchMock.mock.calls[0]; expect(url).toBe('/users'); expect(init?.method).toBe('POST'); - expect((init?.headers as Record)['X-CSRF-Token']).toBe('sign-up-token'); + expect((init?.headers as Record | undefined)?.['X-CSRF-Token']).toBe('sign-up-token'); const body = init?.body as FormData; expect(body.get('user[first_name]')).toBe('Alice'); expect(body.get('user[last_name]')).toBe('Attendee'); @@ -255,7 +255,9 @@ describe('DeviseSignUpPage', () => { await submit(r); await waitFor(() => expect(fetchMock).toHaveBeenCalledTimes(1)); - expect((fetchMock.mock.calls[0][1]?.body as FormData).get('cf-turnstile-response')).toBe('captcha-token'); + expect((fetchMock.mock.calls[0][1]?.body as FormData | undefined)?.get('cf-turnstile-response')).toBe( + 'captcha-token', + ); }); it('sends nothing for the captcha once it has expired', async () => { @@ -268,7 +270,7 @@ describe('DeviseSignUpPage', () => { await submit(r); await waitFor(() => expect(fetchMock).toHaveBeenCalledTimes(1)); - expect((fetchMock.mock.calls[0][1]?.body as FormData).get('cf-turnstile-response')).toBe(''); + expect((fetchMock.mock.calls[0][1]?.body as FormData | undefined)?.get('cf-turnstile-response')).toBe(''); }); }); diff --git a/test/javascript/Authentication/PasswordPages.test.tsx b/test/javascript/Authentication/PasswordPages.test.tsx index c0c4fca91cf..bde8b4363de 100644 --- a/test/javascript/Authentication/PasswordPages.test.tsx +++ b/test/javascript/Authentication/PasswordPages.test.tsx @@ -49,7 +49,7 @@ describe('the password pages', () => { expect(fetchMock).toHaveBeenCalledTimes(1); const [url, init] = fetchMock.mock.calls[0]; expect(url).toBe('/users/password'); - expect((init?.body as FormData).get('user[email]')).toBe('alice@example.com'); + expect((init?.body as FormData | undefined)?.get('user[email]')).toBe('alice@example.com'); }); it('shows the server error, and not the success message, if the request fails', async () => { diff --git a/test/javascript/Store/PricingStructureForm.test.tsx b/test/javascript/Store/PricingStructureForm.test.tsx index e01f00faa0d..bafae7e2bac 100644 --- a/test/javascript/Store/PricingStructureForm.test.tsx +++ b/test/javascript/Store/PricingStructureForm.test.tsx @@ -138,7 +138,7 @@ describe('PricingStructureForm', () => { await user.clear(getByLabelText('Minimum amount')); - expect((lastValue()?.value as PayWhatYouWantValue).minimum_amount).toBeUndefined(); + expect((lastValue()?.value as PayWhatYouWantValue | undefined)?.minimum_amount).toBeUndefined(); }); it('shows the amounts already set', async () => { @@ -179,7 +179,7 @@ describe('PricingStructureForm', () => { await user.click(getByRole('button', { name: /add/i })); - expect((lastValue()?.value as ScheduledMoneyValue).timespans).toHaveLength(1); + expect((lastValue()?.value as ScheduledMoneyValue | undefined)?.timespans).toHaveLength(1); }); }); @@ -194,7 +194,7 @@ describe('PricingStructureForm', () => { await user.click(getByRole('radio', { name: 'Fixed price' })); expect(lastValue()?.pricing_strategy).toBe(PricingStrategy.Fixed); - expect((lastValue()?.value as Money).fractional).toBe(2500); + expect((lastValue()?.value as Money | undefined)?.fractional).toBe(2500); expect(getByLabelText('Price')).toHaveValue('25'); }); }); diff --git a/test/javascript/UserConProfiles/BecomeUserModal.test.tsx b/test/javascript/UserConProfiles/BecomeUserModal.test.tsx index 14803776104..07aee7bb217 100644 --- a/test/javascript/UserConProfiles/BecomeUserModal.test.tsx +++ b/test/javascript/UserConProfiles/BecomeUserModal.test.tsx @@ -74,8 +74,8 @@ describe('BecomeUserModal', () => { const [url, init] = fetchMock.mock.calls[0]; expect(url).toBe('/user_con_profiles/7/become'); expect(init?.method).toBe('POST'); - expect((init?.headers as Record).Authorization).toBe('Bearer access-token'); - expect((init?.body as FormData).get('justification')).toBe('User asked for signup help'); + expect((init?.headers as Record | undefined)?.Authorization).toBe('Bearer access-token'); + expect((init?.body as FormData | undefined)?.get('justification')).toBe('User asked for signup help'); expect(close).toHaveBeenCalledTimes(1); }); diff --git a/test/javascript/shellRecovery.test.ts b/test/javascript/shellRecovery.test.ts index da629bd3f2a..eb7b3e002c4 100644 --- a/test/javascript/shellRecovery.test.ts +++ b/test/javascript/shellRecovery.test.ts @@ -101,7 +101,7 @@ describe('SHELL_RECOVERY_SCRIPT', () => { expect(alert?.textContent).toContain('We couldn’t finish loading this page'); expect((document.querySelector('.custom-loading-indicator') as HTMLElement).style.display).toBe('none'); - (alert?.querySelector('button') as HTMLButtonElement).click(); + (alert?.querySelector('button') as HTMLButtonElement | null)?.click(); expect(reload).toHaveBeenCalledTimes(1); }); From 2ad234d6ff1a78b438883596f757fee22bdcc525 Mon Sep 17 00:00:00 2001 From: Nat Budin Date: Fri, 6 Nov 2026 11:53:43 -0800 Subject: [PATCH 3/3] Add tests for components refactored in the oxlint cleanup Cover DateTimeInput, MaximumEventSignupsInput, FileInputWithPreview and OpenLayersMap, including syncing state from props and the stale-preview and latest-onChange cases. Verified against the pre-refactor components and with mutations of the new code. Co-Authored-By: Claude Sonnet 5.5 --- .../DateTimeInput.test.tsx | 100 +++++++++++++ .../CmsAdmin/FileInputWithPreview.test.tsx | 137 ++++++++++++++++++ test/javascript/Maps/OpenLayersMap.test.tsx | 74 ++++++++++ .../MaximumEventSignupsInput.test.tsx | 123 ++++++++++++++++ 4 files changed, 434 insertions(+) create mode 100644 test/javascript/BuiltInFormControls/DateTimeInput.test.tsx create mode 100644 test/javascript/CmsAdmin/FileInputWithPreview.test.tsx create mode 100644 test/javascript/Maps/OpenLayersMap.test.tsx create mode 100644 test/javascript/SignupRoundsAdmin/MaximumEventSignupsInput.test.tsx diff --git a/test/javascript/BuiltInFormControls/DateTimeInput.test.tsx b/test/javascript/BuiltInFormControls/DateTimeInput.test.tsx new file mode 100644 index 00000000000..3f44795054c --- /dev/null +++ b/test/javascript/BuiltInFormControls/DateTimeInput.test.tsx @@ -0,0 +1,100 @@ +import { useState } from 'react'; +import { vi } from 'vitest'; + +import { fireEvent, render, userEvent } from '../testUtils'; +import DateTimeInput from '../../../app/javascript/BuiltInFormControls/DateTimeInput'; + +function StatefulDateTimeInput({ + initialValue, + externalValue, + onChangeSpy, +}: { + initialValue: string | null; + externalValue?: string | null; + onChangeSpy: (value: string) => void; +}) { + const [value, setValue] = useState(initialValue); + + return ( + <> + { + onChangeSpy(newValue); + setValue(newValue); + }} + /> + + + ); +} + +describe('DateTimeInput', () => { + let user: ReturnType; + beforeEach(() => { + user = userEvent.setup(); + }); + + it('shows the date and time of the incoming value', async () => { + const { getByLabelText } = await render( + , + ); + + expect(getByLabelText('Date')).toHaveValue('2024-03-05'); + expect(getByLabelText('Time')).toHaveValue('14:30:00'); + }); + + it('emits an ISO timestamp when the time is edited', async () => { + const onChange = vi.fn(); + const { getByLabelText } = await render( + , + ); + + // userEvent types into time inputs one segment at a time, which jsdom doesn't model faithfully + fireEvent.change(getByLabelText('Time'), { target: { value: '16:45:00' } }); + + expect(onChange).toHaveBeenCalled(); + expect(onChange.mock.lastCall?.[0]).toMatch(/^2024-03-05T16:45:00/); + }); + + it('emits an ISO timestamp when the date is edited', async () => { + const onChange = vi.fn(); + const { getByLabelText } = await render( + , + ); + + await user.clear(getByLabelText('Date')); + await user.type(getByLabelText('Date'), '2024-04-01'); + + expect(onChange.mock.lastCall?.[0]).toMatch(/^2024-04-01T14:30:00/); + }); + + it('updates the inputs when the value changes from outside', async () => { + const { getByLabelText, getByRole } = await render( + , + ); + + await user.click(getByRole('button', { name: 'Set from outside' })); + + expect(getByLabelText('Date')).toHaveValue('2025-12-25'); + expect(getByLabelText('Time')).toHaveValue('08:15:00'); + }); + + it('keeps what the user has typed when the incoming value becomes invalid', async () => { + const { getByLabelText, getByRole } = await render( + , + ); + + await user.click(getByRole('button', { name: 'Set from outside' })); + + expect(getByLabelText('Date')).toHaveValue('2024-03-05'); + expect(getByLabelText('Time')).toHaveValue('14:30:00'); + }); +}); diff --git a/test/javascript/CmsAdmin/FileInputWithPreview.test.tsx b/test/javascript/CmsAdmin/FileInputWithPreview.test.tsx new file mode 100644 index 00000000000..549e47d49f9 --- /dev/null +++ b/test/javascript/CmsAdmin/FileInputWithPreview.test.tsx @@ -0,0 +1,137 @@ +import { useState } from 'react'; +import { vi } from 'vitest'; + +import { act, render, userEvent } from '../testUtils'; +import FileInputWithPreview from '../../../app/javascript/CmsAdmin/CmsFilesAdmin/FileInputWithPreview'; + +function StatefulFileInputWithPreview({ + existingFileUrl, + initialFile, + onChangeSpy, +}: { + existingFileUrl?: string; + initialFile?: File | null; + onChangeSpy?: (file: File | null | undefined) => void; +}) { + const [file, setFile] = useState(initialFile); + + return ( + { + onChangeSpy?.(newFile); + setFile(newFile); + }} + /> + ); +} + +// FileReader whose reads only complete when the test says so, so we can look at the state in between +class ControlledFileReader { + static pending: ControlledFileReader[] = []; + result: string | null = null; + private file: File | undefined; + private loadListeners: (() => void)[] = []; + + addEventListener(eventName: string, listener: () => void) { + if (eventName === 'load') { + this.loadListeners.push(listener); + } + } + + readAsDataURL(file: File) { + this.file = file; + ControlledFileReader.pending.push(this); + } + + async finish() { + this.result = dataUrlFor(this.file?.name ?? '', this.file?.type ?? ''); + await act(async () => this.loadListeners.forEach((listener) => listener())); + } + + static async finishAll() { + const readers = ControlledFileReader.pending.splice(0); + for (const reader of readers) { + await reader.finish(); + } + } +} + +const dataUrlFor = (content: string, type: string) => `data:${type};base64,${btoa(content)}`; + +describe('FileInputWithPreview', () => { + let user: ReturnType; + beforeEach(() => { + user = userEvent.setup(); + ControlledFileReader.pending = []; + vi.stubGlobal('FileReader', ControlledFileReader); + }); + + afterEach(() => { + vi.unstubAllGlobals(); + }); + + it('shows a file input when there is no file', async () => { + const { getByLabelText, queryByRole } = await render(); + + expect(getByLabelText('File', { exact: false })).toHaveAttribute('type', 'file'); + expect(queryByRole('button')).toBeNull(); + }); + + it('reports the chosen file', async () => { + const onChange = vi.fn(); + const { getByLabelText } = await render(); + const chosen = new File(['hello'], 'hello.png', { type: 'image/png' }); + + await user.upload(getByLabelText('File', { exact: false }), chosen); + + expect(onChange).toHaveBeenCalledWith(chosen); + }); + + it('previews the chosen file once it has been read', async () => { + const { getByLabelText, findByRole, queryByRole } = await render(); + + await user.upload(getByLabelText('File', { exact: false }), new File(['one'], 'one.png', { type: 'image/png' })); + expect(queryByRole('img')).toBeNull(); + + await ControlledFileReader.finishAll(); + + const image = await findByRole('img', { name: 'one.png' }); + expect(image).toHaveAttribute('src', dataUrlFor('one.png', 'image/png')); + }); + + it('does not show the previous file’s preview while a newly chosen file is being read', async () => { + const { getByLabelText, getByRole, findByRole, queryByRole } = await render(); + + await user.upload(getByLabelText('File', { exact: false }), new File(['one'], 'one.png', { type: 'image/png' })); + await ControlledFileReader.finishAll(); + await findByRole('img', { name: 'one.png' }); + + await user.click(getByRole('button')); + expect(queryByRole('img')).toBeNull(); + + await user.upload(getByLabelText('File', { exact: false }), new File(['two'], 'two.png', { type: 'image/png' })); + + // the second file hasn't been read yet, so there must be no (stale) image + expect(queryByRole('img')).toBeNull(); + + await ControlledFileReader.finishAll(); + const image = await findByRole('img', { name: 'two.png' }); + expect(image).toHaveAttribute('src', dataUrlFor('two.png', 'image/png')); + }); + + it('shows the existing file when no file has been chosen, and clears it', async () => { + const onChange = vi.fn(); + const { getByRole, getByLabelText } = await render( + , + ); + + expect(getByRole('img')).toHaveAttribute('src', 'https://example.com/existing.png'); + + await user.click(getByRole('button')); + + expect(onChange).toHaveBeenCalledWith(null); + expect(getByLabelText('File', { exact: false })).toHaveAttribute('type', 'file'); + }); +}); diff --git a/test/javascript/Maps/OpenLayersMap.test.tsx b/test/javascript/Maps/OpenLayersMap.test.tsx new file mode 100644 index 00000000000..08cc50bc130 --- /dev/null +++ b/test/javascript/Maps/OpenLayersMap.test.tsx @@ -0,0 +1,74 @@ +import { useState } from 'react'; +import { vi } from 'vitest'; +import type View from 'ol/View'; +import type { ViewOptions } from 'ol/View'; + +import { render, userEvent } from '../testUtils'; + +type MapConstructorOptions = { target: HTMLElement; view: View }; +const mapInstances = vi.hoisted(() => [] as { options: MapConstructorOptions; dispose: () => void }[]); + +vi.mock('ol/Map', () => ({ + default: class FakeMap { + options: MapConstructorOptions; + dispose = vi.fn(); + + constructor(options: MapConstructorOptions) { + this.options = options; + mapInstances.push(this); + } + }, +})); + +import OpenLayersMap from '../../../app/javascript/Maps/OpenLayersMap'; + +function ChangeableMap() { + const [viewOptions, setViewOptions] = useState({ center: [0, 0], zoom: 3 }); + + return ( + <> + + + + ); +} + +describe('OpenLayersMap', () => { + beforeEach(() => { + mapInstances.length = 0; + }); + + it('creates a map targeting its container with the initial view options', async () => { + const { getByTestId } = await render( + , + ); + + expect(mapInstances).toHaveLength(1); + expect(mapInstances[0].options.target).toBe(getByTestId('map')); + expect(mapInstances[0].options.view.getCenter()).toEqual([10, 20]); + expect(mapInstances[0].options.view.getZoom()).toEqual(5); + }); + + it('applies changed view options to the same view without recreating the map', async () => { + const user = userEvent.setup(); + const { getByRole } = await render(); + const { view } = mapInstances[0].options; + + await user.click(getByRole('button', { name: 'Move map' })); + + expect(mapInstances).toHaveLength(1); + expect(mapInstances[0].options.view).toBe(view); + expect(view.getCenter()).toEqual([100, 200]); + expect(view.getZoom()).toEqual(7); + }); + + it('disposes the map when unmounted', async () => { + const { unmount } = await render(); + + unmount(); + + expect(mapInstances[0].dispose).toHaveBeenCalledTimes(1); + }); +}); diff --git a/test/javascript/SignupRoundsAdmin/MaximumEventSignupsInput.test.tsx b/test/javascript/SignupRoundsAdmin/MaximumEventSignupsInput.test.tsx new file mode 100644 index 00000000000..78c9e2204d1 --- /dev/null +++ b/test/javascript/SignupRoundsAdmin/MaximumEventSignupsInput.test.tsx @@ -0,0 +1,123 @@ +import { useState } from 'react'; +import { vi } from 'vitest'; + +import { render, userEvent } from '../testUtils'; +import MaximumEventSignupsInput from '../../../app/javascript/SignupRoundsAdmin/MaximumEventSignupsInput'; +import { MaximumEventSignupsValue } from '../../../app/javascript/SignupRoundUtils'; + +function StatefulMaximumEventSignupsInput({ + initialValue, + externalValue, + onChangeSpy, +}: { + initialValue: MaximumEventSignupsValue | undefined; + externalValue?: MaximumEventSignupsValue; + onChangeSpy: (value: MaximumEventSignupsValue | undefined) => void; +}) { + const [value, setValue] = useState(initialValue); + + return ( + <> + { + onChangeSpy(newValue); + setValue(newValue); + }} + /> + + + ); +} + +describe('MaximumEventSignupsInput', () => { + let user: ReturnType; + beforeEach(() => { + user = userEvent.setup(); + }); + + it('shows a numeric value as a limit with a count', async () => { + const { getByRole } = await render(); + + expect(getByRole('combobox')).toHaveValue('limited'); + expect(getByRole('spinbutton')).toHaveValue(5); + }); + + it('shows a non-numeric value without a count', async () => { + const { getByRole, queryByRole } = await render( + , + ); + + expect(getByRole('combobox')).toHaveValue('unlimited'); + expect(queryByRole('spinbutton')).toBeNull(); + }); + + it('emits the selected non-numeric value', async () => { + const onChange = vi.fn(); + const { getByRole } = await render(); + + await user.selectOptions(getByRole('combobox'), 'not_now'); + + expect(onChange.mock.lastCall?.[0]).toEqual('not_now'); + }); + + it('emits the typed limit', async () => { + const onChange = vi.fn(); + const { getByRole } = await render( + , + ); + + await user.selectOptions(getByRole('combobox'), 'limited'); + await user.type(getByRole('spinbutton'), '12'); + + expect(onChange.mock.lastCall?.[0]).toEqual(12); + }); + + it('switches to a different value type when the value changes from outside', async () => { + const { getByRole, queryByRole } = await render( + , + ); + + await user.click(getByRole('button', { name: 'Set from outside' })); + + expect(getByRole('combobox')).toHaveValue('not_now'); + expect(queryByRole('spinbutton')).toBeNull(); + }); + + it('updates the limit when the numeric value changes from outside', async () => { + const { getByRole } = await render( + , + ); + + await user.click(getByRole('button', { name: 'Set from outside' })); + + expect(getByRole('spinbutton')).toHaveValue(8); + }); + + it('calls the latest onChange rather than the one from the first render', async () => { + const firstOnChange = vi.fn(); + const secondOnChange = vi.fn(); + + function SwappingOnChange() { + const [useSecond, setUseSecond] = useState(false); + + return ( + <> + + + + ); + } + + const { getByRole } = await render(); + await user.click(getByRole('button', { name: 'Swap onChange' })); + await user.selectOptions(getByRole('combobox'), 'unlimited'); + + expect(secondOnChange).toHaveBeenLastCalledWith('unlimited'); + expect(firstOnChange).not.toHaveBeenCalledWith('unlimited'); + }); +});