diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index 74877ab8..00000000 --- a/.eslintignore +++ /dev/null @@ -1 +0,0 @@ -bin/backport diff --git a/.eslintrc.js b/.eslintrc.js deleted file mode 100644 index 649cf514..00000000 --- a/.eslintrc.js +++ /dev/null @@ -1,55 +0,0 @@ -module.exports = { - env: { - es6: true, - node: true, - }, - globals: { - NodeJS: true, - }, - ignorePatterns: ['dist/', 'node_modules/'], - plugins: ['@typescript-eslint', 'jest', 'import'], - parser: '@typescript-eslint/parser', // Specifies the ESLint parser - parserOptions: { - // This setting is required if you want to use rules which require type information - // https://github.com/typescript-eslint/typescript-eslint/tree/master/packages/parser#parseroptionsproject - project: ['./tsconfig.json'], - }, - extends: [ - 'plugin:@typescript-eslint/recommended', // Uses the recommended rules from the @typescript-eslint/eslint-plugin - 'plugin:prettier/recommended', // Enables eslint-plugin-prettier and displays prettier errors as ESLint errors. Make sure this is always the last configuration in the extends array. - 'plugin:jest/recommended', - 'eslint:recommended', - ], - rules: { - 'import/order': [ - 'error', - { - alphabetize: { order: 'asc' }, - 'newlines-between': 'never', - groups: [ - 'builtin', - 'external', - 'internal', - 'parent', - 'sibling', - 'index', - ], - }, - ], - 'no-console': 'error', - - // prefer typescript specific `no-unused-vars` rule - 'no-unused-vars': 'off', - '@typescript-eslint/no-unused-vars': ['error'], - - '@typescript-eslint/no-unnecessary-condition': 'error', - '@typescript-eslint/prefer-ts-expect-error': 'error', - - // disabled rules - '@typescript-eslint/ban-ts-comment': 'off', - '@typescript-eslint/explicit-module-boundary-types': 'off', - '@typescript-eslint/explicit-function-return-type': 'off', - '@typescript-eslint/no-explicit-any': 'off', - '@typescript-eslint/no-use-before-define': 'off', - }, -}; diff --git a/.github/workflows/run-lint-and-tests.yml b/.github/workflows/run-lint-and-tests.yml index 2218b2ee..84881bd4 100644 --- a/.github/workflows/run-lint-and-tests.yml +++ b/.github/workflows/run-lint-and-tests.yml @@ -17,7 +17,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - node-version: [18.x] + node-version: [22.x] steps: - uses: actions/checkout@v2 @@ -29,7 +29,7 @@ jobs: - run: git config --global user.email "backportci@users.noreply.github.com " - run: git config --global user.name "Backport CI" - run: yarn + - run: yarn build - run: yarn lint - - run: yarn tsc - run: yarn test - run: ACCESS_TOKEN=${{ secrets.GH_ACCESS_TOKEN }} yarn test-private diff --git a/.gitignore b/.gitignore index aff24b5e..070fb835 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,5 @@ /yarn-error.log .DS_Store /.env +/src/graphql +/.eslintcache diff --git a/.husky/pre-commit b/.husky/pre-commit index d2ae35e8..37236231 100755 --- a/.husky/pre-commit +++ b/.husky/pre-commit @@ -1,4 +1 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - yarn lint-staged diff --git a/.husky/pre-push b/.husky/pre-push index 9dcd433f..39abe4df 100755 --- a/.husky/pre-push +++ b/.husky/pre-push @@ -1,4 +1 @@ -#!/bin/sh -. "$(dirname "$0")/_/husky.sh" - yarn lint diff --git a/.istanbul.yml b/.istanbul.yml deleted file mode 100644 index 77eb584b..00000000 --- a/.istanbul.yml +++ /dev/null @@ -1,2 +0,0 @@ -instrumentation: - includeAllSources: true diff --git a/.nvmrc b/.nvmrc index f8824128..1fba266e 100644 --- a/.nvmrc +++ b/.nvmrc @@ -1 +1 @@ -v18.* +v22.* diff --git a/.vscode/settings.json b/.vscode/settings.json index 4214d30a..29d61be9 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -13,11 +13,13 @@ "github-schema.graphql": true, "LICENSE.txt": true }, - "editor.formatOnSave": false, + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.codeActionsOnSave": { "source.fixAll.eslint": "explicit" }, "typescript.tsdk": "node_modules/typescript/lib", + "typescript.enablePromptUseWorkspaceTsdk": true, "files.associations": { "*.yaml": "home-assistant" } diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 0a41389f..8006b5b0 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -10,7 +10,7 @@ yarn start --branch 6.1 --repo backport-org/backport-demo --all This will build backport continously and link it, so it can accessed with `backport` command globally ``` -yarn tsc && sudo chmod +x bin/backport && yarn unlink; yarn link && yarn tsc --watch +yarn build && chmod +x bin/backport && yarn unlink; yarn link && yarn tsc --watch ``` **Remove linked backport** diff --git a/README.md b/README.md index 4465bf32..64d38c94 100644 --- a/README.md +++ b/README.md @@ -24,7 +24,7 @@ The remaining documentation focuses on the Backport CLI tool (not the Github Act ## Requirements -- Node 18 or higher +- Node 22 or higher - git ## Install diff --git a/bin/backport b/bin/backport index c13f9022..50da800b 100755 --- a/bin/backport +++ b/bin/backport @@ -1,2 +1,2 @@ #!/usr/bin/env node -require('../dist/entrypoint.cli.js') +require('../dist/src/entrypoint.cli.js') diff --git a/codegen.ts b/codegen.ts new file mode 100644 index 00000000..db576945 --- /dev/null +++ b/codegen.ts @@ -0,0 +1,29 @@ +import type { CodegenConfig } from '@graphql-codegen/cli'; + +const config: CodegenConfig = { + overwrite: true, + schema: './schema.graphql', + documents: ['src/**/*.ts'], + + ignoreNoDocuments: true, + + generates: { + 'src/graphql/generated/': { + preset: 'client-preset', + presetConfig: { + gqlTagName: 'graphql', + fragmentMasking: false, + }, + config: { + skipTypename: false, // Include __typename + withHooks: false, // Disable React hooks + urqlImportFrom: '@urql/core', + }, + }, + }, + hooks: { + afterAllFileWrite: ['prettier --write'], + }, +}; + +export default config; diff --git a/docs/cli-options.md b/docs/cli-options.md index e33ab341..4d99fe25 100644 --- a/docs/cli-options.md +++ b/docs/cli-options.md @@ -38,7 +38,7 @@ The CLI options will override the [config-file-options.md](/docs/config-file-opt | --reviewer | | Add reviewer to the target PR | | | --sha | | Sha of commit to backport | | | --signoff | -s | Pass the --signoff option to the cherry-pick command | false | -| --copySourcePRLabels | | Copy labels from source PR to the target PR | false | +| --copySourcePRLabels | | Copy labels from source PR to the target PR (regex support via config) | false | | --copySourcePRReviewers | | Copy reviewers from source PR to the target PR | false | | --backportBranchName | | Name template to use for the branch name of the backport | | | --source-branch | | Specify a non-default branch to backport from | | diff --git a/docs/config-file-options.md b/docs/config-file-options.md index a38fc00e..00330b7d 100644 --- a/docs/config-file-options.md +++ b/docs/config-file-options.md @@ -490,11 +490,17 @@ Assign the same reviewers to the target pull request that were assigned to the o #### `copySourcePRLabels` -Copies all labels from the original (source) pull request to the backport (target) pull request. +Copy labels from the original (source) pull request to the backport (target) pull request. When set to `true`, every non-backport label is copied. To copy only specific labels, provide one or more regular expressions; labels that match at least one pattern will be copied. (default: `false`) ```json { - "copySourcePRLabels": false + "copySourcePRLabels": true +} +``` + +```json +{ + "copySourcePRLabels": ["^version-\\d+$", "^release_note:\\w+$"] } ``` diff --git a/eslint.config.js b/eslint.config.js new file mode 100644 index 00000000..566d1640 --- /dev/null +++ b/eslint.config.js @@ -0,0 +1,141 @@ +const js = require('@eslint/js'); +const tseslint = require('@typescript-eslint/eslint-plugin'); +const tsparser = require('@typescript-eslint/parser'); +const importPlugin = require('eslint-plugin-import'); + +const nodeGlobals = { + process: 'readonly', + Buffer: 'readonly', + __dirname: 'readonly', + __filename: 'readonly', + global: 'readonly', + console: 'readonly', + fetch: 'readonly', + Headers: 'readonly', + Request: 'readonly', + Response: 'readonly', + NodeJS: 'readonly', +}; + +module.exports = [ + // Global ignores + { + ignores: [ + 'dist/**', + 'node_modules/**', + 'src/graphql/generated/**', + 'bin/**', + 'coverage/**', + ], + }, + + // Config files (CommonJS) + { + files: ['*.config.js', '.*.js'], + languageOptions: { + ecmaVersion: 'latest', + sourceType: 'commonjs', + globals: { + require: 'readonly', + module: 'readonly', + exports: 'readonly', + ...nodeGlobals, + }, + }, + ...js.configs.recommended, + }, + + // JavaScript files + { + files: ['**/*.js'], + ignores: ['*.config.js', '.*.js'], + languageOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + globals: nodeGlobals, + }, + ...js.configs.recommended, + }, + + // TypeScript files + { + files: ['**/*.ts'], + languageOptions: { + ecmaVersion: 'latest', + sourceType: 'module', + parser: tsparser, + parserOptions: { + project: './tsconfig.eslint.json', + }, + globals: nodeGlobals, + }, + plugins: { + '@typescript-eslint': tseslint, + import: importPlugin, + }, + rules: { + ...js.configs.recommended.rules, + ...tseslint.configs.recommended.rules, + + // Import organization + 'import/order': [ + 'error', + { + alphabetize: { order: 'asc' }, + 'newlines-between': 'never', + groups: ['builtin', 'external', 'internal', 'parent', 'sibling', 'index'], + }, + ], + 'import/no-duplicates': 'error', + + // Essential TypeScript rules + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-unused-vars': 'error', + '@typescript-eslint/prefer-nullish-coalescing': 'error', + '@typescript-eslint/prefer-optional-chain': 'error', + '@typescript-eslint/consistent-type-imports': 'error', + '@typescript-eslint/no-floating-promises': 'error', + + // Turn off base rule in favor of TypeScript version + 'no-unused-vars': 'off', + }, + }, + + // Test files - relaxed rules and Jest globals + { + files: ['**/*.{test,spec}.{js,ts}', '**/test/**/*.{js,ts}'], + languageOptions: { + parser: tsparser, + parserOptions: { + project: './tsconfig.eslint.json', + }, + globals: { + ...nodeGlobals, + describe: 'readonly', + it: 'readonly', + test: 'readonly', + expect: 'readonly', + beforeEach: 'readonly', + afterEach: 'readonly', + beforeAll: 'readonly', + afterAll: 'readonly', + jest: 'readonly', + setTimeout: 'readonly', + clearTimeout: 'readonly', + setInterval: 'readonly', + clearInterval: 'readonly', + }, + }, + plugins: { + '@typescript-eslint': tseslint, + }, + rules: { + ...js.configs.recommended.rules, + ...tseslint.configs.recommended.rules, + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/ban-ts-comment': 'off', + 'no-unused-vars': 'off', + '@typescript-eslint/no-unused-vars': 'error', + }, + }, +]; diff --git a/jest.config.all.ts b/jest.config.all.ts index 5945b448..31028aa8 100644 --- a/jest.config.all.ts +++ b/jest.config.all.ts @@ -2,9 +2,7 @@ import baseConfig from './jest.config'; const config = { ...baseConfig, - modulePathIgnorePatterns: [], - testSequencer: './jest.testSequencer.js', }; export default config; diff --git a/jest.config.ts b/jest.config.ts index c21275ae..6fd9196f 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -11,11 +11,20 @@ const baseConfig: JestConfigWithTsJest = { }, snapshotSerializers: ['jest-snapshot-serializer-ansi'], setupFiles: ['./src/test/setupFiles/automatic-mocks.ts'], - setupFilesAfterEnv: ['./src/test/setupFiles/setup-after-env.ts'], + setupFilesAfterEnv: [ + './src/test/setupFiles/jest-retry.ts', + './src/test/setupFiles/nock-cleanup.ts', + ], preset: 'ts-jest', testRegex: 'src/.*test.ts$', testEnvironment: 'node', + // Configure memory management for Jest 30 + workerIdleMemoryLimit: '512MB', + + // Jest 30 compatibility settings - less aggressive cleanup to preserve mocks + clearMocks: true, + // exclude "private" tests that requires credentials and can therefore not run on CI for external contributors // exclude "mutation" tests that cannot run on in parallel (like they are on CI) because they mutate shared state modulePathIgnorePatterns: ['.*.private.test.ts$', '.*.mutation.test.ts$'], diff --git a/jest.testSequencer.js b/jest.testSequencer.js deleted file mode 100644 index c3fb48c7..00000000 --- a/jest.testSequencer.js +++ /dev/null @@ -1,40 +0,0 @@ -// eslint-disable-next-line @typescript-eslint/no-var-requires -const Sequencer = require('@jest/test-sequencer').default; - -class RandomSequencer extends Sequencer { - sort(tests) { - const copyTests = Array.from(tests); - shuffle(copyTests); - return copyTests; - } -} - -function shuffle(array) { - var currentIndex = array.length, - temporaryValue, - randomIndex; - - // While there remain elements to shuffle... - while (0 !== currentIndex) { - // Pick a remaining element... - randomIndex = Math.floor(Math.random() * currentIndex); - currentIndex -= 1; - - // And swap it with the current element. - temporaryValue = array[currentIndex]; - array[currentIndex] = array[randomIndex]; - array[randomIndex] = temporaryValue; - } - - return array; -} - -// eslint-disable-next-line -class AlphabeticalSequencer extends Sequencer { - sort(tests) { - const copyTests = Array.from(tests); - return copyTests.sort((testA, testB) => (testA.path > testB.path ? 1 : -1)); - } -} - -module.exports = RandomSequencer; diff --git a/package-lock.json b/package-lock.json index a0d90160..332fd66a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,34 +1,35 @@ { "name": "backport", - "version": "9.6.6", + "version": "10.2.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "backport", - "version": "9.6.6", + "version": "10.2.0", "hasInstallScript": true, "license": "Apache-2.0", "dependencies": { - "@octokit/rest": "^19.0.7", - "axios": "^1.6.2", + "@octokit/rest": "^20.1.2", + "@urql/core": "^5.1.1", "dedent": "^0.7.0", "del": "^6.1.1", - "dotenv": "^16.0.3", + "dotenv": "^16.5.0", "elastic-apm-node": "^4.10.0", "find-up": "^5.0.0", - "graphql": "^16.8.0", + "graphql": "^16.11.0", "graphql-tag": "^2.12.6", "handlebars": "^4.7.8", - "inquirer": "^8.2.5", + "inquirer": "^8.2.7", "lodash": "^4.17.21", "make-dir": "^3.1.0", "ora": "^5.4.1", "safe-json-stringify": "^1.2.0", "strip-json-comments": "^3.1.1", "terminal-link": "^2.1.1", - "utility-types": "^3.10.0", - "winston": "^3.8.2", + "utility-types": "^3.11.0", + "winston": "^3.17.0", + "wonka": "^6.3.5", "yargs": "^17.7.2", "yargs-parser": "^21.1.1" }, @@ -36,192 +37,126 @@ "backport": "bin/backport" }, "devDependencies": { + "@0no-co/graphqlsp": "^1.12.16", + "@graphql-codegen/cli": "^5.0.7", + "@graphql-codegen/client-preset": "^4.8.2", + "@graphql-codegen/schema-ast": "^4.1.0", + "@graphql-codegen/typed-document-node": "^5.1.1", + "@graphql-codegen/typescript": "^4.1.6", + "@graphql-codegen/typescript-graphql-request": "^6.3.0", + "@graphql-codegen/typescript-operations": "^4.6.1", + "@parcel/watcher": "^2.5.1", "@types/core-js": "^2.5.5", "@types/dedent": "^0.7.0", - "@types/inquirer": "^8.2.6", - "@types/jest": "^29.5.12", - "@types/lodash": "^4.14.199", - "@types/node": "^20.11.24", + "@types/inquirer": "^9.0.8", + "@types/jest": "^30.0.0", + "@types/lodash": "^4.17.18", + "@types/node": "^22.15.32", "@types/safe-json-stringify": "^1.1.3", - "@types/yargs": "^17.0.28", + "@types/yargs": "^17.0.33", "@types/yargs-parser": "^21.0.1", - "@typescript-eslint/eslint-plugin": "^7.1.1", - "@typescript-eslint/parser": "^7.1.1", - "eslint": "^8.57.0", - "eslint-config-prettier": "^9.0.0", - "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jest": "^27.9.0", - "eslint-plugin-prettier": "^5.1.3", + "@typescript-eslint/eslint-plugin": "^8.34.1", + "@typescript-eslint/parser": "^8.34.1", + "eslint": "^9.0.0", + "eslint-plugin-import": "^2.30.0", "graphql-config": "^5.0.3", - "husky": "^8.0.3", - "jest": "^29.7.0", + "graphql-request": "^7.2.0", + "husky": "^9.1.7", + "jest": "^30.0.0", "jest-snapshot-serializer-ansi": "^1.0.0", - "lint-staged": "^14.0.1", - "nock": "^14.0.3", - "prettier": "^3.2.5", + "lint-staged": "^16.1.2", + "nock": "^14.0.5", + "prettier": "^3.5.3", "strip-ansi": "^6.0.1", - "ts-jest": "^29.1.2", + "ts-jest": "^29.4.0", "ts-node": "^10.9.1", - "typescript": "5.3.3" + "typescript": "^5.8.3" }, "engines": { - "node": ">=18.0.0" + "node": ">=22.0.0" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, + "node_modules/@0no-co/graphql.web": { + "version": "1.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@0no-co/graphql.web/-/graphql.web-1.2.0.tgz", + "integrity": "sha512-/1iHy9TTr63gE1YcR5idjx8UREz1s0kFhydf3bBLCXyqjhkIc6igAzTOx3zPifCwFR87tsh/4Pa9cNts6d2otw==", "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@ampproject/remapping": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz", - "integrity": "sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@jridgewell/gen-mapping": "^0.3.0", - "@jridgewell/trace-mapping": "^0.3.9" + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0" }, - "engines": { - "node": ">=6.0.0" + "peerDependenciesMeta": { + "graphql": { + "optional": true + } } }, - "node_modules/@ardatan/sync-fetch": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz", - "integrity": "sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA==", + "node_modules/@0no-co/graphqlsp": { + "version": "1.15.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@0no-co/graphqlsp/-/graphqlsp-1.15.1.tgz", + "integrity": "sha512-UBDBuVGpX5Ti0PjGnSAzkMG04psNYxKfJ+1bgF8HFPfHHpKNVl4GULHSNW0GTOngcYCYA70c+InoKw0qjHwmVQ==", "dev": true, "license": "MIT", "dependencies": { - "node-fetch": "^2.6.1" + "@gql.tada/internal": "^1.0.0", + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0" }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@asamuzakjp/css-color": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.1.2.tgz", - "integrity": "sha512-nwgc7jPn3LpZ4JWsoHtuwBsad1qSSLDDX634DdG0PBJofIuIEtSWk4KkRmuXyu178tjuHAbwiMNNzwqIyLYxZw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@csstools/css-calc": "^2.1.2", - "@csstools/css-color-parser": "^3.0.8", - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3", - "lru-cache": "^10.4.3" + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" } }, - "node_modules/@asamuzakjp/css-color/node_modules/lru-cache": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz", - "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/@babel/code-frame": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz", - "integrity": "sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA==", + "node_modules/@aashutoshrathi/word-wrap": { + "version": "1.2.6", "dev": true, "license": "MIT", - "dependencies": { - "@babel/highlight": "^7.23.4", - "chalk": "^2.4.2" - }, "engines": { - "node": ">=6.9.0" + "node": ">=0.10.0" } }, - "node_modules/@babel/code-frame/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/@ardatan/relay-compiler": { + "version": "12.0.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@ardatan/relay-compiler/-/relay-compiler-12.0.3.tgz", + "integrity": "sha512-mBDFOGvAoVlWaWqs3hm1AciGHSQE1rqFc/liZTyYz/Oek9yZdT5H26pH2zAFuEiTiBVPPyMuqf5VjOFPI2DGsQ==", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "@babel/generator": "^7.26.10", + "@babel/parser": "^7.26.10", + "@babel/runtime": "^7.26.10", + "chalk": "^4.0.0", + "fb-watchman": "^2.0.0", + "immutable": "~3.7.6", + "invariant": "^2.2.4", + "nullthrows": "^1.1.1", + "relay-runtime": "12.0.0", + "signedsource": "^1.0.0" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "bin": { + "relay-compiler": "bin/relay-compiler" }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/code-frame/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/code-frame/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/code-frame/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@babel/code-frame/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" + "peerDependencies": { + "graphql": "*" } }, - "node_modules/@babel/code-frame/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@babel/code-frame": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/code-frame/-/code-frame-7.27.1.tgz", + "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "@babel/helper-validator-identifier": "^7.27.1", + "js-tokens": "^4.0.0", + "picocolors": "^1.1.1" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" } }, "node_modules/@babel/compat-data": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz", - "integrity": "sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw==", + "version": "7.28.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", "dev": true, "license": "MIT", "engines": { @@ -229,22 +164,22 @@ } }, "node_modules/@babel/core": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.23.6.tgz", - "integrity": "sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@ampproject/remapping": "^2.2.0", - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-compilation-targets": "^7.23.6", - "@babel/helper-module-transforms": "^7.23.3", - "@babel/helpers": "^7.23.6", - "@babel/parser": "^7.23.6", - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.6", - "@babel/types": "^7.23.6", + "version": "7.28.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/core/-/core-7.28.5.tgz", + "integrity": "sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-module-transforms": "^7.28.3", + "@babel/helpers": "^7.28.4", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/remapping": "^2.3.5", "convert-source-map": "^2.0.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", @@ -261,7 +196,7 @@ }, "node_modules/@babel/core/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "license": "ISC", @@ -270,31 +205,45 @@ } }, "node_modules/@babel/generator": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz", - "integrity": "sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw==", + "version": "7.28.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/generator/-/generator-7.28.5.tgz", + "integrity": "sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@babel/types": "^7.28.5", + "@jridgewell/gen-mapping": "^0.3.12", + "@jridgewell/trace-mapping": "^0.3.28", + "jsesc": "^3.0.2" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.27.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz", + "integrity": "sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.23.6", - "@jridgewell/gen-mapping": "^0.3.2", - "@jridgewell/trace-mapping": "^0.3.17", - "jsesc": "^2.5.1" + "@babel/types": "^7.27.3" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-compilation-targets": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz", - "integrity": "sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ==", + "version": "7.27.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz", + "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/compat-data": "^7.23.5", - "@babel/helper-validator-option": "^7.23.5", - "browserslist": "^4.22.2", + "@babel/compat-data": "^7.27.2", + "@babel/helper-validator-option": "^7.27.1", + "browserslist": "^4.24.0", "lru-cache": "^5.1.1", "semver": "^6.3.1" }, @@ -304,7 +253,7 @@ }, "node_modules/@babel/helper-compilation-targets/node_modules/lru-cache": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/lru-cache/-/lru-cache-5.1.1.tgz", "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", "dev": true, "license": "ISC", @@ -314,7 +263,7 @@ }, "node_modules/@babel/helper-compilation-targets/node_modules/semver": { "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/semver/-/semver-6.3.1.tgz", "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, "license": "ISC", @@ -322,68 +271,86 @@ "semver": "bin/semver.js" } }, - "node_modules/@babel/helper-environment-visitor": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz", - "integrity": "sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA==", + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.28.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz", + "integrity": "sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-member-expression-to-functions": "^7.28.5", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1", + "@babel/traverse": "^7.28.5", + "semver": "^6.3.1" + }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-function-name": { - "version": "7.23.0", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz", - "integrity": "sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw==", + "node_modules/@babel/helper-create-class-features-plugin/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@babel/helper-globals": { + "version": "7.28.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-globals/-/helper-globals-7.28.0.tgz", + "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==", "dev": true, "license": "MIT", - "dependencies": { - "@babel/template": "^7.22.15", - "@babel/types": "^7.23.0" - }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz", - "integrity": "sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw==", + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.28.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz", + "integrity": "sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.28.5", + "@babel/types": "^7.28.5" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-imports": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz", - "integrity": "sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w==", + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz", + "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.22.15" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-module-transforms": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz", - "integrity": "sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ==", + "version": "7.28.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz", + "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-module-imports": "^7.22.15", - "@babel/helper-simple-access": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/helper-validator-identifier": "^7.22.20" + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-validator-identifier": "^7.27.1", + "@babel/traverse": "^7.28.3" }, "engines": { "node": ">=6.9.0" @@ -392,46 +359,65 @@ "@babel/core": "^7.0.0" } }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz", + "integrity": "sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, "node_modules/@babel/helper-plugin-utils": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz", - "integrity": "sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg==", + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz", + "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==", "dev": true, "license": "MIT", "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/helper-simple-access": { - "version": "7.22.5", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz", - "integrity": "sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w==", + "node_modules/@babel/helper-replace-supers": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz", + "integrity": "sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/helper-member-expression-to-functions": "^7.27.1", + "@babel/helper-optimise-call-expression": "^7.27.1", + "@babel/traverse": "^7.27.1" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" } }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.22.6", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz", - "integrity": "sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g==", + "node_modules/@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz", + "integrity": "sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.22.5" + "@babel/traverse": "^7.27.1", + "@babel/types": "^7.27.1" }, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", - "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", "dev": true, "license": "MIT", "engines": { @@ -439,9 +425,9 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.22.20", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", - "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", + "version": "7.28.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", "dev": true, "license": "MIT", "engines": { @@ -449,9 +435,9 @@ } }, "node_modules/@babel/helper-validator-option": { - "version": "7.23.5", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz", - "integrity": "sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw==", + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz", + "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==", "dev": true, "license": "MIT", "engines": { @@ -459,160 +445,172 @@ } }, "node_modules/@babel/helpers": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.6.tgz", - "integrity": "sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA==", + "version": "7.28.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helpers/-/helpers-7.28.4.tgz", + "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.22.15", - "@babel/traverse": "^7.23.6", - "@babel/types": "^7.23.6" + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.4" }, "engines": { "node": ">=6.9.0" } }, - "node_modules/@babel/highlight": { - "version": "7.23.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz", - "integrity": "sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A==", + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-validator-identifier": "^7.22.20", - "chalk": "^2.4.2", - "js-tokens": "^4.0.0" + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" }, "engines": { - "node": ">=6.9.0" + "node": ">=6.0.0" } }, - "node_modules/@babel/highlight/node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.", "dev": true, "license": "MIT", "dependencies": { - "color-convert": "^1.9.0" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/highlight/node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.20.7", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz", + "integrity": "sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg==", + "deprecated": "This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" + "@babel/compat-data": "^7.20.5", + "@babel/helper-compilation-targets": "^7.20.7", + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.20.7" }, "engines": { - "node": ">=4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/highlight/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "license": "MIT", "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/@babel/highlight/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@babel/highlight/node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.0" + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/highlight/node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", "dev": true, "license": "MIT", - "engines": { - "node": ">=4" + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/highlight/node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "license": "MIT", "dependencies": { - "has-flag": "^3.0.0" + "@babel/helper-plugin-utils": "^7.12.13" }, - "engines": { - "node": ">=4" + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/parser": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz", - "integrity": "sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ==", + "node_modules/@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, "license": "MIT", - "bin": { - "parser": "bin/babel-parser.js" + "dependencies": { + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { - "node": ">=6.0.0" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "node_modules/@babel/plugin-syntax-flow": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.27.1.tgz", + "integrity": "sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-bigint": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", - "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "node_modules/@babel/plugin-syntax-import-assertions": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz", + "integrity": "sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-class-properties": { - "version": "7.12.13", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", - "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "node_modules/@babel/plugin-syntax-import-attributes": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz", + "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.12.13" + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" }, "peerDependencies": { "@babel/core": "^7.0.0-0" @@ -620,7 +618,7 @@ }, "node_modules/@babel/plugin-syntax-import-meta": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", "dev": true, "license": "MIT", @@ -633,7 +631,7 @@ }, "node_modules/@babel/plugin-syntax-json-strings": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "license": "MIT", @@ -645,13 +643,13 @@ } }, "node_modules/@babel/plugin-syntax-jsx": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz", - "integrity": "sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg==", + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz", + "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" @@ -662,7 +660,7 @@ }, "node_modules/@babel/plugin-syntax-logical-assignment-operators": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", "dev": true, "license": "MIT", @@ -675,7 +673,7 @@ }, "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", "dev": true, "license": "MIT", @@ -688,7 +686,7 @@ }, "node_modules/@babel/plugin-syntax-numeric-separator": { "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", "dev": true, "license": "MIT", @@ -701,7 +699,7 @@ }, "node_modules/@babel/plugin-syntax-object-rest-spread": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "license": "MIT", @@ -714,7 +712,7 @@ }, "node_modules/@babel/plugin-syntax-optional-catch-binding": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "license": "MIT", @@ -727,7 +725,7 @@ }, "node_modules/@babel/plugin-syntax-optional-chaining": { "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", "dev": true, "license": "MIT", @@ -738,10 +736,10 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-top-level-await": { + "node_modules/@babel/plugin-syntax-private-property-in-object": { "version": "7.14.5", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", - "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, "license": "MIT", "dependencies": { @@ -754,14 +752,14 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/plugin-syntax-typescript": { - "version": "7.23.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz", - "integrity": "sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ==", + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-plugin-utils": "^7.22.5" + "@babel/helper-plugin-utils": "^7.14.5" }, "engines": { "node": ">=6.9.0" @@ -770,97 +768,447 @@ "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/template": { - "version": "7.22.15", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz", - "integrity": "sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w==", + "node_modules/@babel/plugin-syntax-typescript": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz", + "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.22.13", - "@babel/parser": "^7.22.15", - "@babel/types": "^7.22.15" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/traverse": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.6.tgz", - "integrity": "sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ==", + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz", + "integrity": "sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.23.5", - "@babel/generator": "^7.23.6", - "@babel/helper-environment-visitor": "^7.22.20", - "@babel/helper-function-name": "^7.23.0", - "@babel/helper-hoist-variables": "^7.22.5", - "@babel/helper-split-export-declaration": "^7.22.6", - "@babel/parser": "^7.23.6", - "@babel/types": "^7.23.6", - "debug": "^4.3.1", - "globals": "^11.1.0" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/traverse/node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz", + "integrity": "sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg==", "dev": true, "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, "engines": { - "node": ">=4" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@babel/types": { - "version": "7.23.6", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz", - "integrity": "sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg==", + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.28.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz", + "integrity": "sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g==", "dev": true, "license": "MIT", "dependencies": { - "@babel/helper-string-parser": "^7.23.4", - "@babel/helper-validator-identifier": "^7.22.20", - "to-fast-properties": "^2.0.0" + "@babel/helper-plugin-utils": "^7.27.1" }, "engines": { "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@bcoe/v8-coverage": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", - "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "node_modules/@babel/plugin-transform-classes": { + "version": "7.28.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz", + "integrity": "sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA==", "dev": true, - "license": "MIT" - }, - "node_modules/@colors/colors": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz", - "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.3", + "@babel/helper-compilation-targets": "^7.27.2", + "@babel/helper-globals": "^7.28.0", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1", + "@babel/traverse": "^7.28.4" + }, "engines": { - "node": ">=0.1.90" + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" } }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz", + "integrity": "sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/template": "^7.27.1" }, "engines": { - "node": ">=12" - } - }, + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.28.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz", + "integrity": "sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-flow-strip-types": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz", + "integrity": "sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-flow": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz", + "integrity": "sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz", + "integrity": "sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-compilation-targets": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/traverse": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz", + "integrity": "sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-member-expression-literals": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz", + "integrity": "sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz", + "integrity": "sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-module-transforms": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz", + "integrity": "sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-replace-supers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.27.7", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz", + "integrity": "sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-property-literals": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz", + "integrity": "sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-display-name": { + "version": "7.28.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz", + "integrity": "sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-react-jsx": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz", + "integrity": "sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.27.1", + "@babel/helper-module-imports": "^7.27.1", + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz", + "integrity": "sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz", + "integrity": "sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1", + "@babel/helper-skip-transparent-expression-wrappers": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.27.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz", + "integrity": "sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.28.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/template": { + "version": "7.27.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/template/-/template-7.27.2.tgz", + "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/parser": "^7.27.2", + "@babel/types": "^7.27.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/traverse": { + "version": "7.28.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/traverse/-/traverse-7.28.5.tgz", + "integrity": "sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/code-frame": "^7.27.1", + "@babel/generator": "^7.28.5", + "@babel/helper-globals": "^7.28.0", + "@babel/parser": "^7.28.5", + "@babel/template": "^7.27.2", + "@babel/types": "^7.28.5", + "debug": "^4.3.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@colors/colors": { + "version": "1.6.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@colors/colors/-/colors-1.6.0.tgz", + "integrity": "sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==", + "license": "MIT", + "engines": { + "node": ">=0.1.90" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", @@ -868,252 +1216,1759 @@ "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@dabh/diagnostics": { + "version": "2.0.8", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@dabh/diagnostics/-/diagnostics-2.0.8.tgz", + "integrity": "sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q==", + "license": "MIT", + "dependencies": { + "@so-ric/colorspace": "^1.1.6", + "enabled": "2.0.x", + "kuler": "^2.0.0" + } + }, + "node_modules/@elastic/ecs-helpers": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@elastic/ecs-helpers/-/ecs-helpers-2.1.1.tgz", + "integrity": "sha512-ItoNazMnYdlUCmkBYTXc3SG6PF7UlVTbvMdHPvXkfTMPdwGv2G1Xtp5CjDHaGHGOZSwaDrW4RSCXvA/lMSU+rg==", + "license": "Apache-2.0", + "engines": { + "node": ">=10" + } + }, + "node_modules/@elastic/ecs-pino-format": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@elastic/ecs-pino-format/-/ecs-pino-format-1.5.0.tgz", + "integrity": "sha512-7MMVmT50ucEl7no8mUgCIl+pffBVNRl36uZi0vmalWa2xPWISBxM9k9WSP/WTgOkmGj9G35e5g3UfCS1zxshBg==", + "license": "Apache-2.0", + "dependencies": { + "@elastic/ecs-helpers": "^2.1.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@emnapi/core": { + "version": "1.7.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@emnapi/core/-/core-1.7.1.tgz", + "integrity": "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/wasi-threads": "1.1.0", + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/runtime": { + "version": "1.7.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@emnapi/runtime/-/runtime-1.7.1.tgz", + "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@emnapi/wasi-threads": { + "version": "1.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", + "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/@envelop/core": { + "version": "5.4.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@envelop/core/-/core-5.4.0.tgz", + "integrity": "sha512-/1fat63pySE8rw/dZZArEVytLD90JApY85deDJ0/34gm+yhQ3k70CloSUevxoOE4YCGveG3s9SJJfQeeB4NAtQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@envelop/instrumentation": "^1.0.0", + "@envelop/types": "^5.2.1", + "@whatwg-node/promise-helpers": "^1.2.4", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@envelop/instrumentation": { + "version": "1.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@envelop/instrumentation/-/instrumentation-1.0.0.tgz", + "integrity": "sha512-cxgkB66RQB95H3X27jlnxCRNTmPuSTgmBAq6/4n2Dtv4hsk4yz8FadA1ggmd0uZzvKqWD6CR+WFgTjhDqg7eyw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@whatwg-node/promise-helpers": "^1.2.1", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@envelop/types": { + "version": "5.2.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@envelop/types/-/types-5.2.1.tgz", + "integrity": "sha512-CsFmA3u3c2QoLDTfEpGr4t25fjMU31nyvse7IzWTvb0ZycuPjMjb0fjlheh+PbhBYb9YLugnT2uY6Mwcg1o+Zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@whatwg-node/promise-helpers": "^1.0.0", + "tslib": "^2.5.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.9.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz", + "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@eslint-community/regexpp/-/regexpp-4.12.2.tgz", + "integrity": "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.21.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@eslint/config-array/-/config-array-0.21.1.tgz", + "integrity": "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.7", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/config-helpers": { + "version": "0.4.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@eslint/config-helpers/-/config-helpers-0.4.2.tgz", + "integrity": "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/core": { + "version": "0.17.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@eslint/core/-/core-0.17.0.tgz", + "integrity": "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.3.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", + "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { + "version": "1.1.12", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/js": { + "version": "9.39.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@eslint/js/-/js-9.39.1.tgz", + "integrity": "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.7", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@eslint/object-schema/-/object-schema-2.1.7.tgz", + "integrity": "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.4.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz", + "integrity": "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/core": "^0.17.0", + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@fastify/busboy": { + "version": "3.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@fastify/busboy/-/busboy-3.2.0.tgz", + "integrity": "sha512-m9FVDXU3GT2ITSe0UaMA5rU3QkfC/UXtCU8y0gSN/GugTqtVldOBWIB5V6V3sbmenVZUIpU6f+mPEO2+m5iTaA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@gql.tada/internal": { + "version": "1.0.8", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@gql.tada/internal/-/internal-1.0.8.tgz", + "integrity": "sha512-XYdxJhtHC5WtZfdDqtKjcQ4d7R1s0d1rnlSs3OcBEUbYiPoJJfZU7tWsVXuv047Z6msvmr4ompJ7eLSK5Km57g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@0no-co/graphql.web": "^1.0.5" + }, + "peerDependencies": { + "graphql": "^15.5.0 || ^16.0.0 || ^17.0.0", + "typescript": "^5.0.0" + } + }, + "node_modules/@graphql-codegen/add": { + "version": "5.0.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/add/-/add-5.0.3.tgz", + "integrity": "sha512-SxXPmramkth8XtBlAHu4H4jYcYXM/o3p01+psU+0NADQowA8jtYkK6MW5rV6T+CxkEaNZItfSmZRPgIuypcqnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.0.3", + "tslib": "~2.6.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/cli": { + "version": "5.0.7", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/cli/-/cli-5.0.7.tgz", + "integrity": "sha512-h/sxYvSaWtxZxo8GtaA8SvcHTyViaaPd7dweF/hmRDpaQU1o3iU3EZxlcJ+oLTunU0tSMFsnrIXm/mhXxI11Cw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/generator": "^7.18.13", + "@babel/template": "^7.18.10", + "@babel/types": "^7.18.13", + "@graphql-codegen/client-preset": "^4.8.2", + "@graphql-codegen/core": "^4.0.2", + "@graphql-codegen/plugin-helpers": "^5.1.1", + "@graphql-tools/apollo-engine-loader": "^8.0.0", + "@graphql-tools/code-file-loader": "^8.0.0", + "@graphql-tools/git-loader": "^8.0.0", + "@graphql-tools/github-loader": "^8.0.0", + "@graphql-tools/graphql-file-loader": "^8.0.0", + "@graphql-tools/json-file-loader": "^8.0.0", + "@graphql-tools/load": "^8.1.0", + "@graphql-tools/prisma-loader": "^8.0.0", + "@graphql-tools/url-loader": "^8.0.0", + "@graphql-tools/utils": "^10.0.0", + "@whatwg-node/fetch": "^0.10.0", + "chalk": "^4.1.0", + "cosmiconfig": "^8.1.3", + "debounce": "^1.2.0", + "detect-indent": "^6.0.0", + "graphql-config": "^5.1.1", + "inquirer": "^8.0.0", + "is-glob": "^4.0.1", + "jiti": "^1.17.1", + "json-to-pretty-yaml": "^1.2.2", + "listr2": "^4.0.5", + "log-symbols": "^4.0.0", + "micromatch": "^4.0.5", + "shell-quote": "^1.7.3", + "string-env-interpolation": "^1.0.1", + "ts-log": "^2.2.3", + "tslib": "^2.4.0", + "yaml": "^2.3.1", + "yargs": "^17.0.0" + }, + "bin": { + "gql-gen": "cjs/bin.js", + "graphql-code-generator": "cjs/bin.js", + "graphql-codegen": "cjs/bin.js", + "graphql-codegen-esm": "esm/bin.js" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "@parcel/watcher": "^2.1.0", + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + }, + "peerDependenciesMeta": { + "@parcel/watcher": { + "optional": true + } + } + }, + "node_modules/@graphql-codegen/client-preset": { + "version": "4.8.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/client-preset/-/client-preset-4.8.3.tgz", + "integrity": "sha512-QpEsPSO9fnRxA6Z66AmBuGcwHjZ6dYSxYo5ycMlYgSPzAbyG8gn/kWljofjJfWqSY+T/lRn+r8IXTH14ml24vQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/helper-plugin-utils": "^7.20.2", + "@babel/template": "^7.20.7", + "@graphql-codegen/add": "^5.0.3", + "@graphql-codegen/gql-tag-operations": "4.0.17", + "@graphql-codegen/plugin-helpers": "^5.1.1", + "@graphql-codegen/typed-document-node": "^5.1.2", + "@graphql-codegen/typescript": "^4.1.6", + "@graphql-codegen/typescript-operations": "^4.6.1", + "@graphql-codegen/visitor-plugin-common": "^5.8.0", + "@graphql-tools/documents": "^1.0.0", + "@graphql-tools/utils": "^10.0.0", + "@graphql-typed-document-node/core": "3.2.0", + "tslib": "~2.6.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", + "graphql-sock": "^1.0.0" + }, + "peerDependenciesMeta": { + "graphql-sock": { + "optional": true + } + } + }, + "node_modules/@graphql-codegen/core": { + "version": "4.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/core/-/core-4.0.2.tgz", + "integrity": "sha512-IZbpkhwVqgizcjNiaVzNAzm/xbWT6YnGgeOLwVjm4KbJn3V2jchVtuzHH09G5/WkkLSk2wgbXNdwjM41JxO6Eg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.0.3", + "@graphql-tools/schema": "^10.0.0", + "@graphql-tools/utils": "^10.0.0", + "tslib": "~2.6.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/gql-tag-operations": { + "version": "4.0.17", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/gql-tag-operations/-/gql-tag-operations-4.0.17.tgz", + "integrity": "sha512-2pnvPdIG6W9OuxkrEZ6hvZd142+O3B13lvhrZ48yyEBh2ujtmKokw0eTwDHtlXUqjVS0I3q7+HB2y12G/m69CA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.1.0", + "@graphql-codegen/visitor-plugin-common": "5.8.0", + "@graphql-tools/utils": "^10.0.0", + "auto-bind": "~4.0.0", + "tslib": "~2.6.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/plugin-helpers": { + "version": "5.1.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/plugin-helpers/-/plugin-helpers-5.1.1.tgz", + "integrity": "sha512-28GHODK2HY1NhdyRcPP3sCz0Kqxyfiz7boIZ8qIxFYmpLYnlDgiYok5fhFLVSZihyOpCs4Fa37gVHf/Q4I2FEg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-tools/utils": "^10.0.0", + "change-case-all": "1.0.15", + "common-tags": "1.8.2", + "import-from": "4.0.0", + "lodash": "~4.17.0", + "tslib": "~2.6.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/schema-ast": { + "version": "4.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/schema-ast/-/schema-ast-4.1.0.tgz", + "integrity": "sha512-kZVn0z+th9SvqxfKYgztA6PM7mhnSZaj4fiuBWvMTqA+QqQ9BBed6Pz41KuD/jr0gJtnlr2A4++/0VlpVbCTmQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.0.3", + "@graphql-tools/utils": "^10.0.0", + "tslib": "~2.6.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typed-document-node": { + "version": "5.1.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/typed-document-node/-/typed-document-node-5.1.2.tgz", + "integrity": "sha512-jaxfViDqFRbNQmfKwUY8hDyjnLTw2Z7DhGutxoOiiAI0gE/LfPe0LYaVFKVmVOOD7M3bWxoWfu4slrkbWbUbEw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.1.0", + "@graphql-codegen/visitor-plugin-common": "5.8.0", + "auto-bind": "~4.0.0", + "change-case-all": "1.0.15", + "tslib": "~2.6.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript": { + "version": "4.1.6", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/typescript/-/typescript-4.1.6.tgz", + "integrity": "sha512-vpw3sfwf9A7S+kIUjyFxuvrywGxd4lmwmyYnnDVjVE4kSQ6Td3DpqaPTy8aNQ6O96vFoi/bxbZS2BW49PwSUUA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.1.0", + "@graphql-codegen/schema-ast": "^4.0.2", + "@graphql-codegen/visitor-plugin-common": "5.8.0", + "auto-bind": "~4.0.0", + "tslib": "~2.6.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "graphql": "^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-graphql-request": { + "version": "6.3.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/typescript-graphql-request/-/typescript-graphql-request-6.3.0.tgz", + "integrity": "sha512-IX42XakdcbGosIQo0jkH/4Tj5hk5smDmACYHMJbuSAA9vlcJNHkl3LGyG1Ggy2qVSI20nmNMaxpTg74SSyb4Yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^3.0.0", + "@graphql-codegen/visitor-plugin-common": "2.13.8", + "auto-bind": "~4.0.0", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">= 16.0.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", + "graphql-request": "^6.0.0 || ^7.0.0", + "graphql-tag": "^2.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-graphql-request/node_modules/@ardatan/relay-compiler": { + "version": "12.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@ardatan/relay-compiler/-/relay-compiler-12.0.0.tgz", + "integrity": "sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.14.0", + "@babel/generator": "^7.14.0", + "@babel/parser": "^7.14.0", + "@babel/runtime": "^7.0.0", + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.0.0", + "babel-preset-fbjs": "^3.4.0", + "chalk": "^4.0.0", + "fb-watchman": "^2.0.0", + "fbjs": "^3.0.0", + "glob": "^7.1.1", + "immutable": "~3.7.6", + "invariant": "^2.2.4", + "nullthrows": "^1.1.1", + "relay-runtime": "12.0.0", + "signedsource": "^1.0.0", + "yargs": "^15.3.1" + }, + "bin": { + "relay-compiler": "bin/relay-compiler" + }, + "peerDependencies": { + "graphql": "*" + } + }, + "node_modules/@graphql-codegen/typescript-graphql-request/node_modules/@graphql-codegen/plugin-helpers": { + "version": "3.1.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz", + "integrity": "sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-tools/utils": "^9.0.0", + "change-case-all": "1.0.15", + "common-tags": "1.8.2", + "import-from": "4.0.0", + "lodash": "~4.17.0", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-graphql-request/node_modules/@graphql-codegen/plugin-helpers/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true, + "license": "0BSD" + }, + "node_modules/@graphql-codegen/typescript-graphql-request/node_modules/@graphql-codegen/visitor-plugin-common": { + "version": "2.13.8", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.8.tgz", + "integrity": "sha512-IQWu99YV4wt8hGxIbBQPtqRuaWZhkQRG2IZKbMoSvh0vGeWb3dB0n0hSgKaOOxDY+tljtOf9MTcUYvJslQucMQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^3.1.2", + "@graphql-tools/optimize": "^1.3.0", + "@graphql-tools/relay-operation-optimizer": "^6.5.0", + "@graphql-tools/utils": "^9.0.0", + "auto-bind": "~4.0.0", + "change-case-all": "1.0.15", + "dependency-graph": "^0.11.0", + "graphql-tag": "^2.11.0", + "parse-filepath": "^1.0.2", + "tslib": "~2.4.0" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-graphql-request/node_modules/@graphql-codegen/visitor-plugin-common/node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==", + "dev": true, + "license": "0BSD" + }, + "node_modules/@graphql-codegen/typescript-graphql-request/node_modules/@graphql-tools/optimize": { + "version": "1.4.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/optimize/-/optimize-1.4.0.tgz", + "integrity": "sha512-dJs/2XvZp+wgHH8T5J2TqptT9/6uVzIYvA6uFACha+ufvdMBedkfR4b4GbT8jAKLRARiqRTxy3dctnwkTM2tdw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-graphql-request/node_modules/@graphql-tools/relay-operation-optimizer": { + "version": "6.5.18", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.5.18.tgz", + "integrity": "sha512-mc5VPyTeV+LwiM+DNvoDQfPqwQYhPV/cl5jOBjTgSniyaq8/86aODfMkrE2OduhQ5E00hqrkuL2Fdrgk0w1QJg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@ardatan/relay-compiler": "12.0.0", + "@graphql-tools/utils": "^9.2.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-graphql-request/node_modules/@graphql-tools/utils": { + "version": "9.2.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-9.2.1.tgz", + "integrity": "sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "tslib": "^2.4.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-codegen/typescript-graphql-request/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/@graphql-codegen/typescript-graphql-request/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@graphql-codegen/typescript-graphql-request/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@graphql-codegen/typescript-graphql-request/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@graphql-codegen/typescript-graphql-request/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@graphql-codegen/typescript-graphql-request/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/@graphql-codegen/typescript-graphql-request/node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==", + "dev": true, + "license": "ISC" + }, + "node_modules/@graphql-codegen/typescript-graphql-request/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dev": true, + "license": "MIT", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@graphql-codegen/typescript-graphql-request/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@graphql-codegen/typescript-operations": { + "version": "4.6.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/typescript-operations/-/typescript-operations-4.6.1.tgz", + "integrity": "sha512-k92laxhih7s0WZ8j5WMIbgKwhe64C0As6x+PdcvgZFMudDJ7rPJ/hFqJ9DCRxNjXoHmSjnr6VUuQZq4lT1RzCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.1.0", + "@graphql-codegen/typescript": "^4.1.6", + "@graphql-codegen/visitor-plugin-common": "5.8.0", + "auto-bind": "~4.0.0", + "tslib": "~2.6.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", + "graphql-sock": "^1.0.0" + }, + "peerDependenciesMeta": { + "graphql-sock": { + "optional": true + } + } + }, + "node_modules/@graphql-codegen/visitor-plugin-common": { + "version": "5.8.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-5.8.0.tgz", + "integrity": "sha512-lC1E1Kmuzi3WZUlYlqB4fP6+CvbKH9J+haU1iWmgsBx5/sO2ROeXJG4Dmt8gP03bI2BwjiwV5WxCEMlyeuzLnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-codegen/plugin-helpers": "^5.1.0", + "@graphql-tools/optimize": "^2.0.0", + "@graphql-tools/relay-operation-optimizer": "^7.0.0", + "@graphql-tools/utils": "^10.0.0", + "auto-bind": "~4.0.0", + "change-case-all": "1.0.15", + "dependency-graph": "^0.11.0", + "graphql-tag": "^2.11.0", + "parse-filepath": "^1.0.2", + "tslib": "~2.6.0" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/@graphql-hive/signal": { + "version": "1.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-hive/signal/-/signal-1.0.0.tgz", + "integrity": "sha512-RiwLMc89lTjvyLEivZ/qxAC5nBHoS2CtsWFSOsN35sxG9zoo5Z+JsFHM8MlvmO9yt+MJNIyC5MLE1rsbOphlag==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@graphql-tools/apollo-engine-loader": { + "version": "8.0.26", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-8.0.26.tgz", + "integrity": "sha512-vNeWX/hGpHMVaDJNBbf7yhmy95ueZ3f4rUjl6v819Emsfo0ItnyTM2FmOPUwpWIm7DpCKCSt134ERy/fgo14rg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-tools/utils": "^10.10.3", + "@whatwg-node/fetch": "^0.10.13", + "sync-fetch": "0.6.0-2", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/apollo-engine-loader/node_modules/@graphql-tools/utils": { + "version": "10.10.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz", + "integrity": "sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "@whatwg-node/promise-helpers": "^1.0.0", + "cross-inspect": "1.0.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/apollo-engine-loader/node_modules/cross-inspect": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-inspect/-/cross-inspect-1.0.1.tgz", + "integrity": "sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/batch-execute": { + "version": "9.0.19", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/batch-execute/-/batch-execute-9.0.19.tgz", + "integrity": "sha512-VGamgY4PLzSx48IHPoblRw0oTaBa7S26RpZXt0Y4NN90ytoE0LutlpB2484RbkfcTjv9wa64QD474+YP1kEgGA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-tools/utils": "^10.9.1", + "@whatwg-node/promise-helpers": "^1.3.0", + "dataloader": "^2.2.3", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/batch-execute/node_modules/@graphql-tools/utils": { + "version": "10.10.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz", + "integrity": "sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "@whatwg-node/promise-helpers": "^1.0.0", + "cross-inspect": "1.0.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/batch-execute/node_modules/cross-inspect": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-inspect/-/cross-inspect-1.0.1.tgz", + "integrity": "sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/batch-execute/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/@graphql-tools/code-file-loader": { + "version": "8.1.26", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/code-file-loader/-/code-file-loader-8.1.26.tgz", + "integrity": "sha512-VamhpBEbrABCjtJqEFBUrHBBVX4Iw7q4Ga8H3W0P7mO+sE1HuTfpWirSdBLlhc6nGcSyTb6FA1mEgGjjUASIHA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-tools/graphql-tag-pluck": "8.3.25", + "@graphql-tools/utils": "^10.10.3", + "globby": "^11.0.3", + "tslib": "^2.4.0", + "unixify": "^1.0.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/code-file-loader/node_modules/@graphql-tools/utils": { + "version": "10.10.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz", + "integrity": "sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "@whatwg-node/promise-helpers": "^1.0.0", + "cross-inspect": "1.0.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/code-file-loader/node_modules/cross-inspect": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-inspect/-/cross-inspect-1.0.1.tgz", + "integrity": "sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/delegate": { + "version": "10.2.23", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/delegate/-/delegate-10.2.23.tgz", + "integrity": "sha512-xrPtl7f1LxS+B6o+W7ueuQh67CwRkfl+UKJncaslnqYdkxKmNBB4wnzVcW8ZsRdwbsla/v43PtwAvSlzxCzq2w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-tools/batch-execute": "^9.0.19", + "@graphql-tools/executor": "^1.4.9", + "@graphql-tools/schema": "^10.0.25", + "@graphql-tools/utils": "^10.9.1", + "@repeaterjs/repeater": "^3.0.6", + "@whatwg-node/promise-helpers": "^1.3.0", + "dataloader": "^2.2.3", + "dset": "^3.1.2", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/delegate/node_modules/@graphql-tools/utils": { + "version": "10.10.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz", + "integrity": "sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "@whatwg-node/promise-helpers": "^1.0.0", + "cross-inspect": "1.0.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/delegate/node_modules/cross-inspect": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-inspect/-/cross-inspect-1.0.1.tgz", + "integrity": "sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/delegate/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/@graphql-tools/documents": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/documents/-/documents-1.0.1.tgz", + "integrity": "sha512-aweoMH15wNJ8g7b2r4C4WRuJxZ0ca8HtNO54rkye/3duxTkW4fGBEutCx03jCIr5+a1l+4vFJNP859QnAVBVCA==", + "dev": true, + "license": "MIT", + "dependencies": { + "lodash.sortby": "^4.7.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor": { + "version": "1.4.13", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/executor/-/executor-1.4.13.tgz", + "integrity": "sha512-2hTSRfH2kb4ua0ANOV/K6xUoCZsHAE6igE1bimtWUK7v0bowPIxGRKRPpF8JLbImpsJuTCC4HGOCMy7otg3FIQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-tools/utils": "^10.10.3", + "@graphql-typed-document-node/core": "^3.2.0", + "@repeaterjs/repeater": "^3.0.4", + "@whatwg-node/disposablestack": "^0.0.6", + "@whatwg-node/promise-helpers": "^1.0.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-common": { + "version": "0.0.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/executor-common/-/executor-common-0.0.4.tgz", + "integrity": "sha512-SEH/OWR+sHbknqZyROCFHcRrbZeUAyjCsgpVWCRjqjqRbiJiXq6TxNIIOmpXgkrXWW/2Ev4Wms6YSGJXjdCs6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@envelop/core": "^5.2.3", + "@graphql-tools/utils": "^10.8.1" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-common/node_modules/@graphql-tools/utils": { + "version": "10.10.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz", + "integrity": "sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "@whatwg-node/promise-helpers": "^1.0.0", + "cross-inspect": "1.0.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-common/node_modules/cross-inspect": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-inspect/-/cross-inspect-1.0.1.tgz", + "integrity": "sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/executor-graphql-ws": { + "version": "2.0.7", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-2.0.7.tgz", + "integrity": "sha512-J27za7sKF6RjhmvSOwOQFeNhNHyP4f4niqPnerJmq73OtLx9Y2PGOhkXOEB0PjhvPJceuttkD2O1yMgEkTGs3Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-tools/executor-common": "^0.0.6", + "@graphql-tools/utils": "^10.9.1", + "@whatwg-node/disposablestack": "^0.0.6", + "graphql-ws": "^6.0.6", + "isomorphic-ws": "^5.0.0", + "tslib": "^2.8.1", + "ws": "^8.18.3" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-graphql-ws/node_modules/@graphql-tools/executor-common": { + "version": "0.0.6", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/executor-common/-/executor-common-0.0.6.tgz", + "integrity": "sha512-JAH/R1zf77CSkpYATIJw+eOJwsbWocdDjY+avY7G+P5HCXxwQjAjWVkJI1QJBQYjPQDVxwf1fmTZlIN3VOadow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@envelop/core": "^5.3.0", + "@graphql-tools/utils": "^10.9.1" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-graphql-ws/node_modules/@graphql-tools/utils": { + "version": "10.10.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz", + "integrity": "sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "@whatwg-node/promise-helpers": "^1.0.0", + "cross-inspect": "1.0.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-graphql-ws/node_modules/cross-inspect": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-inspect/-/cross-inspect-1.0.1.tgz", + "integrity": "sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/executor-graphql-ws/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/@graphql-tools/executor-http": { + "version": "1.3.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/executor-http/-/executor-http-1.3.3.tgz", + "integrity": "sha512-LIy+l08/Ivl8f8sMiHW2ebyck59JzyzO/yF9SFS4NH6MJZUezA1xThUXCDIKhHiD56h/gPojbkpcFvM2CbNE7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-hive/signal": "^1.0.0", + "@graphql-tools/executor-common": "^0.0.4", + "@graphql-tools/utils": "^10.8.1", + "@repeaterjs/repeater": "^3.0.4", + "@whatwg-node/disposablestack": "^0.0.6", + "@whatwg-node/fetch": "^0.10.4", + "@whatwg-node/promise-helpers": "^1.3.0", + "meros": "^1.2.1", + "tslib": "^2.8.1" + }, + "engines": { + "node": ">=18.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-http/node_modules/@graphql-tools/utils": { + "version": "10.10.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz", + "integrity": "sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "@whatwg-node/promise-helpers": "^1.0.0", + "cross-inspect": "1.0.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-http/node_modules/cross-inspect": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-inspect/-/cross-inspect-1.0.1.tgz", + "integrity": "sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/executor-http/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/@graphql-tools/executor-legacy-ws": { + "version": "1.1.23", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-1.1.23.tgz", + "integrity": "sha512-wwS6ZlJDaC+zxE1DcfYrPJk1ynQ0xcbOWS/x8dy4hO6ZCjRawkogoqN3Muab0E9RzuwF29LRu+aOH6isO5mQKg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-tools/utils": "^10.10.3", + "@types/ws": "^8.0.0", + "isomorphic-ws": "^5.0.0", + "tslib": "^2.4.0", + "ws": "^8.17.1" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-legacy-ws/node_modules/@graphql-tools/utils": { + "version": "10.10.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz", + "integrity": "sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "@whatwg-node/promise-helpers": "^1.0.0", + "cross-inspect": "1.0.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor-legacy-ws/node_modules/cross-inspect": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-inspect/-/cross-inspect-1.0.1.tgz", + "integrity": "sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/executor/node_modules/@graphql-tools/utils": { + "version": "10.10.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz", + "integrity": "sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "@whatwg-node/promise-helpers": "^1.0.0", + "cross-inspect": "1.0.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/executor/node_modules/cross-inspect": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-inspect/-/cross-inspect-1.0.1.tgz", + "integrity": "sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/git-loader": { + "version": "8.0.30", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/git-loader/-/git-loader-8.0.30.tgz", + "integrity": "sha512-Rx3rphMFBKrILkCrjB6k5JF2z+3XYEnc5wUOw2rMxFAHBHeZjBfA6TDLUtd8EKnaf6h5y0pKpb+uZ72EYJaH2A==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-tools/graphql-tag-pluck": "8.3.25", + "@graphql-tools/utils": "^10.10.3", + "is-glob": "4.0.3", + "micromatch": "^4.0.8", + "tslib": "^2.4.0", + "unixify": "^1.0.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/git-loader/node_modules/@graphql-tools/utils": { + "version": "10.10.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz", + "integrity": "sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "@whatwg-node/promise-helpers": "^1.0.0", + "cross-inspect": "1.0.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/git-loader/node_modules/cross-inspect": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-inspect/-/cross-inspect-1.0.1.tgz", + "integrity": "sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/github-loader": { + "version": "8.0.22", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/github-loader/-/github-loader-8.0.22.tgz", + "integrity": "sha512-uQ4JNcNPsyMkTIgzeSbsoT9hogLjYrZooLUYd173l5eUGUi49EAcsGdiBCKaKfEjanv410FE8hjaHr7fjSRkJw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-tools/executor-http": "^1.1.9", + "@graphql-tools/graphql-tag-pluck": "^8.3.21", + "@graphql-tools/utils": "^10.9.1", + "@whatwg-node/fetch": "^0.10.0", + "@whatwg-node/promise-helpers": "^1.0.0", + "sync-fetch": "0.6.0-2", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/github-loader/node_modules/@graphql-tools/utils": { + "version": "10.10.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz", + "integrity": "sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "@whatwg-node/promise-helpers": "^1.0.0", + "cross-inspect": "1.0.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@csstools/color-helpers": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.2.tgz", - "integrity": "sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA==", + "node_modules/@graphql-tools/github-loader/node_modules/cross-inspect": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-inspect/-/cross-inspect-1.0.1.tgz", + "integrity": "sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], - "license": "MIT-0", + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, "engines": { - "node": ">=18" + "node": ">=16.0.0" } }, - "node_modules/@csstools/css-calc": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.2.tgz", - "integrity": "sha512-TklMyb3uBB28b5uQdxjReG4L80NxAqgrECqLZFQbyLekwwlcDDS8r3f07DKqeo8C4926Br0gf/ZDe17Zv4wIuw==", + "node_modules/@graphql-tools/graphql-file-loader": { + "version": "8.0.0", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], "license": "MIT", + "dependencies": { + "@graphql-tools/import": "7.0.0", + "@graphql-tools/utils": "^10.0.0", + "globby": "^11.0.3", + "tslib": "^2.4.0", + "unixify": "^1.0.0" + }, "engines": { - "node": ">=18" + "node": ">=16.0.0" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@csstools/css-color-parser": { - "version": "3.0.8", - "resolved": "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.8.tgz", - "integrity": "sha512-pdwotQjCCnRPuNi06jFuP68cykU1f3ZWExLe/8MQ1LOs8Xq+fTkYgd+2V8mWUWMrOn9iS2HftPVaMZDaXzGbhQ==", + "node_modules/@graphql-tools/graphql-tag-pluck": { + "version": "8.3.25", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-8.3.25.tgz", + "integrity": "sha512-b8oTBe0mDQDh3zPcKCkaTPmjLv1TJslBUKXPNLfu5CWS2+gL8Z/z0UuAhCe5gTveuKDJYjkEO7xcct9JfcDi4g==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], "license": "MIT", "dependencies": { - "@csstools/color-helpers": "^5.0.2", - "@csstools/css-calc": "^2.1.2" + "@babel/core": "^7.26.10", + "@babel/parser": "^7.26.10", + "@babel/plugin-syntax-import-assertions": "^7.26.0", + "@babel/traverse": "^7.26.10", + "@babel/types": "^7.26.10", + "@graphql-tools/utils": "^10.10.3", + "tslib": "^2.4.0" }, "engines": { - "node": ">=18" + "node": ">=16.0.0" }, "peerDependencies": { - "@csstools/css-parser-algorithms": "^3.0.4", - "@csstools/css-tokenizer": "^3.0.3" + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@csstools/css-parser-algorithms": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz", - "integrity": "sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A==", + "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/@graphql-tools/utils": { + "version": "10.10.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz", + "integrity": "sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], "license": "MIT", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "@whatwg-node/promise-helpers": "^1.0.0", + "cross-inspect": "1.0.1", + "tslib": "^2.4.0" + }, "engines": { - "node": ">=18" + "node": ">=16.0.0" }, "peerDependencies": { - "@csstools/css-tokenizer": "^3.0.3" + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@csstools/css-tokenizer": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz", - "integrity": "sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw==", + "node_modules/@graphql-tools/graphql-tag-pluck/node_modules/cross-inspect": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-inspect/-/cross-inspect-1.0.1.tgz", + "integrity": "sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==", "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/csstools" - }, - { - "type": "opencollective", - "url": "https://opencollective.com/csstools" - } - ], "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, "engines": { - "node": ">=18" + "node": ">=16.0.0" } }, - "node_modules/@dabh/diagnostics": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz", - "integrity": "sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==", + "node_modules/@graphql-tools/import": { + "version": "7.0.0", + "dev": true, "license": "MIT", "dependencies": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" + "@graphql-tools/utils": "^10.0.0", + "resolve-from": "5.0.0", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@elastic/ecs-helpers": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/@elastic/ecs-helpers/-/ecs-helpers-2.1.1.tgz", - "integrity": "sha512-ItoNazMnYdlUCmkBYTXc3SG6PF7UlVTbvMdHPvXkfTMPdwGv2G1Xtp5CjDHaGHGOZSwaDrW4RSCXvA/lMSU+rg==", - "license": "Apache-2.0", + "node_modules/@graphql-tools/json-file-loader": { + "version": "8.0.0", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-tools/utils": "^10.0.0", + "globby": "^11.0.3", + "tslib": "^2.4.0", + "unixify": "^1.0.0" + }, "engines": { - "node": ">=10" + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@elastic/ecs-pino-format": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@elastic/ecs-pino-format/-/ecs-pino-format-1.5.0.tgz", - "integrity": "sha512-7MMVmT50ucEl7no8mUgCIl+pffBVNRl36uZi0vmalWa2xPWISBxM9k9WSP/WTgOkmGj9G35e5g3UfCS1zxshBg==", - "license": "Apache-2.0", + "node_modules/@graphql-tools/load": { + "version": "8.1.6", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/load/-/load-8.1.6.tgz", + "integrity": "sha512-/bUYqGdB2Y6BflW42IjmauBDzxjec3LQmVAuImVGeiOqw1Rca/DDP7KRQe3vEv8yf/xMVj/PkIl+YRjoo12YxA==", + "dev": true, + "license": "MIT", "dependencies": { - "@elastic/ecs-helpers": "^2.1.1" + "@graphql-tools/schema": "^10.0.29", + "@graphql-tools/utils": "^10.10.3", + "p-limit": "3.1.0", + "tslib": "^2.4.0" }, "engines": { - "node": ">=10" + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", - "integrity": "sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==", + "node_modules/@graphql-tools/load/node_modules/@graphql-tools/utils": { + "version": "10.10.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz", + "integrity": "sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ==", "dev": true, "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^3.3.0" + "@graphql-typed-document-node/core": "^3.1.1", + "@whatwg-node/promise-helpers": "^1.0.0", + "cross-inspect": "1.0.1", + "tslib": "^2.4.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=16.0.0" }, "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@eslint-community/regexpp": { - "version": "4.10.0", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz", - "integrity": "sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA==", + "node_modules/@graphql-tools/load/node_modules/cross-inspect": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-inspect/-/cross-inspect-1.0.1.tgz", + "integrity": "sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==", "dev": true, "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + "node": ">=16.0.0" } }, - "node_modules/@eslint/eslintrc": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz", - "integrity": "sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==", + "node_modules/@graphql-tools/merge": { + "version": "9.1.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/merge/-/merge-9.1.5.tgz", + "integrity": "sha512-eVcir6nCcOC/Wzv7ZAng3xec3dj6FehE8+h9TvgvUyrDEKVMdFfrO6etRFZ2hucWVcY8S6drx7zQx04N4lPM8Q==", "dev": true, "license": "MIT", "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^9.6.0", - "globals": "^13.19.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" + "@graphql-tools/utils": "^10.10.3", + "tslib": "^2.4.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=16.0.0" }, - "funding": { - "url": "https://opencollective.com/eslint" + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/@graphql-tools/merge/node_modules/@graphql-tools/utils": { + "version": "10.10.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz", + "integrity": "sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ==", "dev": true, "license": "MIT", "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "@graphql-typed-document-node/core": "^3.1.1", + "@whatwg-node/promise-helpers": "^1.0.0", + "cross-inspect": "1.0.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@eslint/eslintrc/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@graphql-tools/merge/node_modules/cross-inspect": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-inspect/-/cross-inspect-1.0.1.tgz", + "integrity": "sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "tslib": "^2.4.0" }, "engines": { - "node": "*" + "node": ">=16.0.0" } }, - "node_modules/@eslint/js": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz", - "integrity": "sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==", + "node_modules/@graphql-tools/optimize": { + "version": "2.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/optimize/-/optimize-2.0.0.tgz", + "integrity": "sha512-nhdT+CRGDZ+bk68ic+Jw1OZ99YCDIKYA5AlVAnBHJvMawSx9YQqQAIj4refNc1/LRieGiuWvhbG3jvPVYho0Dg==", "dev": true, "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" + }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-tools/batch-execute": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-9.0.2.tgz", - "integrity": "sha512-Y2uwdZI6ZnatopD/SYfZ1eGuQFI7OU2KGZ2/B/7G9ISmgMl5K+ZZWz/PfIEXeiHirIDhyk54s4uka5rj2xwKqQ==", + "node_modules/@graphql-tools/prisma-loader": { + "version": "8.0.17", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/prisma-loader/-/prisma-loader-8.0.17.tgz", + "integrity": "sha512-fnuTLeQhqRbA156pAyzJYN0KxCjKYRU5bz1q/SKOwElSnAU4k7/G1kyVsWLh7fneY78LoMNH5n+KlFV8iQlnyg==", + "deprecated": "This package was intended to be used with an older versions of Prisma.\\nThe newer versions of Prisma has a different approach to GraphQL integration.\\nTherefore, this package is no longer needed and has been deprecated and removed.\\nLearn more: https://www.prisma.io/graphql", "dev": true, "license": "MIT", "dependencies": { - "@graphql-tools/utils": "^10.0.5", - "dataloader": "^2.2.2", + "@graphql-tools/url-loader": "^8.0.15", + "@graphql-tools/utils": "^10.5.6", + "@types/js-yaml": "^4.0.0", + "@whatwg-node/fetch": "^0.10.0", + "chalk": "^4.1.0", + "debug": "^4.3.1", + "dotenv": "^16.0.0", + "graphql-request": "^6.0.0", + "http-proxy-agent": "^7.0.0", + "https-proxy-agent": "^7.0.0", + "jose": "^5.0.0", + "js-yaml": "^4.0.0", + "lodash": "^4.17.20", + "scuid": "^1.1.0", "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" + "yaml-ast-parser": "^0.0.43" }, "engines": { "node": ">=16.0.0" @@ -1122,19 +2977,17 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-tools/delegate": { - "version": "10.0.3", - "resolved": "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-10.0.3.tgz", - "integrity": "sha512-Jor9oazZ07zuWkykD3OOhT/2XD74Zm6Ar0ENZMk75MDD51wB2UWUIMljtHxbJhV5A6UBC2v8x6iY0xdCGiIlyw==", + "node_modules/@graphql-tools/prisma-loader/node_modules/@graphql-tools/utils": { + "version": "10.10.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz", + "integrity": "sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ==", "dev": true, "license": "MIT", "dependencies": { - "@graphql-tools/batch-execute": "^9.0.1", - "@graphql-tools/executor": "^1.0.0", - "@graphql-tools/schema": "^10.0.0", - "@graphql-tools/utils": "^10.0.5", - "dataloader": "^2.2.2", - "tslib": "^2.5.0" + "@graphql-typed-document-node/core": "^3.1.1", + "@whatwg-node/promise-helpers": "^1.0.0", + "cross-inspect": "1.0.1", + "tslib": "^2.4.0" }, "engines": { "node": ">=16.0.0" @@ -1143,39 +2996,43 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-tools/executor": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor/-/executor-1.2.0.tgz", - "integrity": "sha512-SKlIcMA71Dha5JnEWlw4XxcaJ+YupuXg0QCZgl2TOLFz4SkGCwU/geAsJvUJFwK2RbVLpQv/UMq67lOaBuwDtg==", + "node_modules/@graphql-tools/prisma-loader/node_modules/cross-inspect": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-inspect/-/cross-inspect-1.0.1.tgz", + "integrity": "sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==", "dev": true, "license": "MIT", "dependencies": { - "@graphql-tools/utils": "^10.0.0", - "@graphql-typed-document-node/core": "3.2.0", - "@repeaterjs/repeater": "^3.0.4", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" + "tslib": "^2.4.0" }, "engines": { "node": ">=16.0.0" + } + }, + "node_modules/@graphql-tools/prisma-loader/node_modules/graphql-request": { + "version": "6.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/graphql-request/-/graphql-request-6.1.0.tgz", + "integrity": "sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@graphql-typed-document-node/core": "^3.2.0", + "cross-fetch": "^3.1.5" }, "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + "graphql": "14 - 16" } }, - "node_modules/@graphql-tools/executor-graphql-ws": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-1.1.0.tgz", - "integrity": "sha512-yM67SzwE8rYRpm4z4AuGtABlOp9mXXVy6sxXnTJRoYIdZrmDbKVfIY+CpZUJCqS0FX3xf2+GoHlsj7Qswaxgcg==", + "node_modules/@graphql-tools/relay-operation-optimizer": { + "version": "7.0.25", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-7.0.25.tgz", + "integrity": "sha512-1S7qq9eyO6ygPNWX2lZd+oxbpl63OhnTTw8+t5OWprM2Tzws9HEosLUpsMR85z1gbezeKtUDt9a2bsSyu4MMFg==", "dev": true, "license": "MIT", "dependencies": { - "@graphql-tools/utils": "^10.0.2", - "@types/ws": "^8.0.0", - "graphql-ws": "^5.14.0", - "isomorphic-ws": "^5.0.0", - "tslib": "^2.4.0", - "ws": "^8.13.0" + "@ardatan/relay-compiler": "^12.0.3", + "@graphql-tools/utils": "^10.10.3", + "tslib": "^2.4.0" }, "engines": { "node": ">=16.0.0" @@ -1184,40 +3041,48 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-tools/executor-http": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-http/-/executor-http-1.0.5.tgz", - "integrity": "sha512-roQyDLOAywyaCTPOhwXiT/WDr0bfuVhqOXjECsnrIl/1TMPDUYjiT2sW6Gz6pqnYMmokdhyvlV6D5d7WtIrKsA==", + "node_modules/@graphql-tools/relay-operation-optimizer/node_modules/@graphql-tools/utils": { + "version": "10.10.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz", + "integrity": "sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ==", "dev": true, "license": "MIT", "dependencies": { - "@graphql-tools/utils": "^10.0.2", - "@repeaterjs/repeater": "^3.0.4", - "@whatwg-node/fetch": "^0.9.0", - "extract-files": "^11.0.0", - "meros": "^1.2.1", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" + "@graphql-typed-document-node/core": "^3.1.1", + "@whatwg-node/promise-helpers": "^1.0.0", + "cross-inspect": "1.0.1", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=16.0.0" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@graphql-tools/relay-operation-optimizer/node_modules/cross-inspect": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-inspect/-/cross-inspect-1.0.1.tgz", + "integrity": "sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.4.0" }, "engines": { "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-tools/executor-legacy-ws": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-1.0.5.tgz", - "integrity": "sha512-w54AZ7zkNuvpyV09FH+eGHnnAmaxhBVHg4Yh2ICcsMfRg0brkLt77PlbjBuxZ4HY8XZnKJaYWf+tKazQZtkQtg==", + "node_modules/@graphql-tools/schema": { + "version": "10.0.29", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/schema/-/schema-10.0.29.tgz", + "integrity": "sha512-+Htiupnq6U/AWOEAJerIOGT1pAf4u43Q3n2JmFpqFfYJchz6sKWZ7L9Lpe/NusaaUQty/IOF+eQlNFypEaWxhg==", "dev": true, "license": "MIT", "dependencies": { - "@graphql-tools/utils": "^10.0.0", - "@types/ws": "^8.0.0", - "isomorphic-ws": "^5.0.0", - "tslib": "^2.4.0", - "ws": "^8.15.0" + "@graphql-tools/merge": "^9.1.5", + "@graphql-tools/utils": "^10.10.3", + "tslib": "^2.4.0" }, "engines": { "node": ">=16.0.0" @@ -1226,18 +3091,17 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-tools/graphql-file-loader": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-8.0.0.tgz", - "integrity": "sha512-wRXj9Z1IFL3+zJG1HWEY0S4TXal7+s1vVhbZva96MSp0kbb/3JBF7j0cnJ44Eq0ClccMgGCDFqPFXty4JlpaPg==", + "node_modules/@graphql-tools/schema/node_modules/@graphql-tools/utils": { + "version": "10.10.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz", + "integrity": "sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ==", "dev": true, "license": "MIT", "dependencies": { - "@graphql-tools/import": "7.0.0", - "@graphql-tools/utils": "^10.0.0", - "globby": "^11.0.3", - "tslib": "^2.4.0", - "unixify": "^1.0.0" + "@graphql-typed-document-node/core": "^3.1.1", + "@whatwg-node/promise-helpers": "^1.0.0", + "cross-inspect": "1.0.1", + "tslib": "^2.4.0" }, "engines": { "node": ">=16.0.0" @@ -1246,35 +3110,38 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-tools/import": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/import/-/import-7.0.0.tgz", - "integrity": "sha512-NVZiTO8o1GZs6OXzNfjB+5CtQtqsZZpQOq+Uu0w57kdUkT4RlQKlwhT8T81arEsbV55KpzkpFsOZP7J1wdmhBw==", + "node_modules/@graphql-tools/schema/node_modules/cross-inspect": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-inspect/-/cross-inspect-1.0.1.tgz", + "integrity": "sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==", "dev": true, "license": "MIT", "dependencies": { - "@graphql-tools/utils": "^10.0.0", - "resolve-from": "5.0.0", "tslib": "^2.4.0" }, "engines": { "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-tools/json-file-loader": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-8.0.0.tgz", - "integrity": "sha512-ki6EF/mobBWJjAAC84xNrFMhNfnUFD6Y0rQMGXekrUgY0NdeYXHU0ZUgHzC9O5+55FslqUmAUHABePDHTyZsLg==", + "node_modules/@graphql-tools/url-loader": { + "version": "8.0.33", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/url-loader/-/url-loader-8.0.33.tgz", + "integrity": "sha512-Fu626qcNHcqAj8uYd7QRarcJn5XZ863kmxsg1sm0fyjyfBJnsvC7ddFt6Hayz5kxVKfsnjxiDfPMXanvsQVBKw==", "dev": true, "license": "MIT", "dependencies": { - "@graphql-tools/utils": "^10.0.0", - "globby": "^11.0.3", + "@graphql-tools/executor-graphql-ws": "^2.0.1", + "@graphql-tools/executor-http": "^1.1.9", + "@graphql-tools/executor-legacy-ws": "^1.1.19", + "@graphql-tools/utils": "^10.9.1", + "@graphql-tools/wrap": "^10.0.16", + "@types/ws": "^8.0.0", + "@whatwg-node/fetch": "^0.10.0", + "@whatwg-node/promise-helpers": "^1.0.0", + "isomorphic-ws": "^5.0.0", + "sync-fetch": "0.6.0-2", "tslib": "^2.4.0", - "unixify": "^1.0.0" + "ws": "^8.17.1" }, "engines": { "node": ">=16.0.0" @@ -1283,16 +3150,16 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-tools/load": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/load/-/load-8.0.1.tgz", - "integrity": "sha512-qSMsKngJhDqRbuWyo3NvakEFqFL6+eSjy8ooJ1o5qYD26N7dqXkKzIMycQsX7rBK19hOuINAUSaRcVWH6hTccw==", + "node_modules/@graphql-tools/url-loader/node_modules/@graphql-tools/utils": { + "version": "10.10.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz", + "integrity": "sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ==", "dev": true, "license": "MIT", "dependencies": { - "@graphql-tools/schema": "^10.0.0", - "@graphql-tools/utils": "^10.0.11", - "p-limit": "3.1.0", + "@graphql-typed-document-node/core": "^3.1.1", + "@whatwg-node/promise-helpers": "^1.0.0", + "cross-inspect": "1.0.1", "tslib": "^2.4.0" }, "engines": { @@ -1302,34 +3169,28 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-tools/merge": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.1.tgz", - "integrity": "sha512-hIEExWO9fjA6vzsVjJ3s0cCQ+Q/BEeMVJZtMXd7nbaVefVy0YDyYlEkeoYYNV3NVVvu1G9lr6DM1Qd0DGo9Caw==", + "node_modules/@graphql-tools/url-loader/node_modules/cross-inspect": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-inspect/-/cross-inspect-1.0.1.tgz", + "integrity": "sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==", "dev": true, "license": "MIT", "dependencies": { - "@graphql-tools/utils": "^10.0.10", "tslib": "^2.4.0" }, "engines": { "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-tools/schema": { - "version": "10.0.2", - "resolved": "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.2.tgz", - "integrity": "sha512-TbPsIZnWyDCLhgPGnDjt4hosiNU2mF/rNtSk5BVaXWnZqvKJ6gzJV4fcHcvhRIwtscDMW2/YTnK6dLVnk8pc4w==", + "node_modules/@graphql-tools/utils": { + "version": "10.0.11", "dev": true, "license": "MIT", "dependencies": { - "@graphql-tools/merge": "^9.0.1", - "@graphql-tools/utils": "^10.0.10", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" + "@graphql-typed-document-node/core": "^3.1.1", + "cross-inspect": "1.0.0", + "dset": "^3.1.2", + "tslib": "^2.4.0" }, "engines": { "node": ">=16.0.0" @@ -1338,44 +3199,36 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-tools/url-loader": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-8.0.1.tgz", - "integrity": "sha512-B2k8KQEkEQmfV1zhurT5GLoXo8jbXP+YQHUayhCSxKYlRV7j/1Fhp1b21PDM8LXIDGlDRXaZ0FbWKOs7eYXDuQ==", + "node_modules/@graphql-tools/wrap": { + "version": "10.1.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/wrap/-/wrap-10.1.4.tgz", + "integrity": "sha512-7pyNKqXProRjlSdqOtrbnFRMQAVamCmEREilOXtZujxY6kYit3tvWWSjUrcIOheltTffoRh7EQSjpy2JDCzasg==", "dev": true, "license": "MIT", "dependencies": { - "@ardatan/sync-fetch": "^0.0.1", - "@graphql-tools/delegate": "^10.0.0", - "@graphql-tools/executor-graphql-ws": "^1.0.0", - "@graphql-tools/executor-http": "^1.0.5", - "@graphql-tools/executor-legacy-ws": "^1.0.0", - "@graphql-tools/utils": "^10.0.0", - "@graphql-tools/wrap": "^10.0.0", - "@types/ws": "^8.0.0", - "@whatwg-node/fetch": "^0.9.0", - "isomorphic-ws": "^5.0.0", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.11", - "ws": "^8.12.0" + "@graphql-tools/delegate": "^10.2.23", + "@graphql-tools/schema": "^10.0.25", + "@graphql-tools/utils": "^10.9.1", + "@whatwg-node/promise-helpers": "^1.3.0", + "tslib": "^2.8.1" }, "engines": { - "node": ">=16.0.0" + "node": ">=18.0.0" }, "peerDependencies": { "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-tools/utils": { - "version": "10.0.11", - "resolved": "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.11.tgz", - "integrity": "sha512-vVjXgKn6zjXIlYBd7yJxCVMYGb5j18gE3hx3Qw3mNsSEsYQXbJbPdlwb7Fc9FogsJei5AaqiQerqH4kAosp1nQ==", + "node_modules/@graphql-tools/wrap/node_modules/@graphql-tools/utils": { + "version": "10.10.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz", + "integrity": "sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ==", "dev": true, "license": "MIT", "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", - "cross-inspect": "1.0.0", - "dset": "^3.1.2", + "@whatwg-node/promise-helpers": "^1.0.0", + "cross-inspect": "1.0.1", "tslib": "^2.4.0" }, "engines": { @@ -1385,26 +3238,26 @@ "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@graphql-tools/wrap": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-10.0.1.tgz", - "integrity": "sha512-Cw6hVrKGM2OKBXeuAGltgy4tzuqQE0Nt7t/uAqnuokSXZhMHXJUb124Bnvxc2gPZn5chfJSDafDe4Cp8ZAVJgg==", + "node_modules/@graphql-tools/wrap/node_modules/cross-inspect": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-inspect/-/cross-inspect-1.0.1.tgz", + "integrity": "sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A==", "dev": true, "license": "MIT", "dependencies": { - "@graphql-tools/delegate": "^10.0.3", - "@graphql-tools/schema": "^10.0.0", - "@graphql-tools/utils": "^10.0.0", - "tslib": "^2.4.0", - "value-or-promise": "^1.0.12" + "tslib": "^2.4.0" }, "engines": { "node": ">=16.0.0" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, + "node_modules/@graphql-tools/wrap/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, "node_modules/@graphql-typed-document-node/core": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", @@ -1415,44 +3268,28 @@ "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" } }, - "node_modules/@humanwhocodes/config-array": { - "version": "0.11.14", - "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz", - "integrity": "sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==", - "deprecated": "Use @eslint/config-array instead", + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", "dev": true, "license": "Apache-2.0", - "dependencies": { - "@humanwhocodes/object-schema": "^2.0.2", - "debug": "^4.3.1", - "minimatch": "^3.0.5" - }, "engines": { - "node": ">=10.10.0" - } - }, - "node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "node": ">=18.18.0" } }, - "node_modules/@humanwhocodes/config-array/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "node_modules/@humanfs/node": { + "version": "0.16.7", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@humanfs/node/-/node-0.16.7.tgz", + "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==", "dev": true, - "license": "ISC", + "license": "Apache-2.0", "dependencies": { - "brace-expansion": "^1.1.7" + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.4.0" }, "engines": { - "node": "*" + "node": ">=18.18.0" } }, "node_modules/@humanwhocodes/module-importer": { @@ -1469,17 +3306,147 @@ "url": "https://github.com/sponsors/nzakas" } }, - "node_modules/@humanwhocodes/object-schema": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz", - "integrity": "sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw==", - "deprecated": "Use @eslint/object-schema instead", + "node_modules/@humanwhocodes/retry": { + "version": "0.4.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@humanwhocodes/retry/-/retry-0.4.3.tgz", + "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", "dev": true, - "license": "BSD-3-Clause" + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@inquirer/external-editor": { + "version": "1.0.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@inquirer/external-editor/-/external-editor-1.0.3.tgz", + "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==", + "license": "MIT", + "dependencies": { + "chardet": "^2.1.1", + "iconv-lite": "^0.7.0" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "@types/node": ">=18" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + } + } + }, + "node_modules/@isaacs/cliui": { + "version": "8.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@isaacs/cliui/-/cliui-8.0.2.tgz", + "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", + "dev": true, + "license": "ISC", + "dependencies": { + "string-width": "^5.1.2", + "string-width-cjs": "npm:string-width@^4.2.0", + "strip-ansi": "^7.0.1", + "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", + "wrap-ansi": "^8.1.0", + "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/emoji-regex": { + "version": "9.2.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/emoji-regex/-/emoji-regex-9.2.2.tgz", + "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", + "dev": true, + "license": "MIT" + }, + "node_modules/@isaacs/cliui/node_modules/string-width": { + "version": "5.1.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eastasianwidth": "^0.2.0", + "emoji-regex": "^9.2.2", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@isaacs/cliui/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/strip-ansi?sponsor=1" + } + }, + "node_modules/@isaacs/cliui/node_modules/wrap-ansi": { + "version": "8.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/wrap-ansi/-/wrap-ansi-8.1.0.tgz", + "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^6.1.0", + "string-width": "^5.0.1", + "strip-ansi": "^7.0.1" + }, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "license": "ISC", @@ -1496,7 +3463,7 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": { "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/argparse/-/argparse-1.0.10.tgz", "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "license": "MIT", @@ -1506,7 +3473,7 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "license": "MIT", @@ -1519,9 +3486,9 @@ } }, "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "version": "3.14.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/js-yaml/-/js-yaml-3.14.2.tgz", + "integrity": "sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==", "dev": true, "license": "MIT", "dependencies": { @@ -1534,7 +3501,7 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "license": "MIT", @@ -1547,7 +3514,7 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "license": "MIT", @@ -1563,7 +3530,7 @@ }, "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "license": "MIT", @@ -1576,7 +3543,7 @@ }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, "license": "MIT", @@ -1585,61 +3552,61 @@ } }, "node_modules/@jest/console": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz", - "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/console/-/console-30.2.0.tgz", + "integrity": "sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", + "@jest/types": "30.2.0", "@types/node": "*", - "chalk": "^4.0.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", + "chalk": "^4.1.2", + "jest-message-util": "30.2.0", + "jest-util": "30.2.0", "slash": "^3.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/core": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz", - "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/core/-/core-30.2.0.tgz", + "integrity": "sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "^29.7.0", - "@jest/reporters": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/console": "30.2.0", + "@jest/pattern": "30.0.1", + "@jest/reporters": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-changed-files": "^29.7.0", - "jest-config": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-resolve-dependencies": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "jest-watcher": "^29.7.0", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", - "slash": "^3.0.0", - "strip-ansi": "^6.0.0" + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "exit-x": "^0.2.2", + "graceful-fs": "^4.2.11", + "jest-changed-files": "30.2.0", + "jest-config": "30.2.0", + "jest-haste-map": "30.2.0", + "jest-message-util": "30.2.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.2.0", + "jest-resolve-dependencies": "30.2.0", + "jest-runner": "30.2.0", + "jest-runtime": "30.2.0", + "jest-snapshot": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", + "jest-watcher": "30.2.0", + "micromatch": "^4.0.8", + "pretty-format": "30.2.0", + "slash": "^3.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -1650,261 +3617,327 @@ } } }, + "node_modules/@jest/diff-sequences": { + "version": "30.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz", + "integrity": "sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, "node_modules/@jest/environment": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz", - "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/environment/-/environment-30.2.0.tgz", + "integrity": "sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g==", "dev": true, "license": "MIT", "dependencies": { - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/fake-timers": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", - "jest-mock": "^29.7.0" + "jest-mock": "30.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/expect/-/expect-30.2.0.tgz", + "integrity": "sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA==", "dev": true, "license": "MIT", "dependencies": { - "expect": "^29.7.0", - "jest-snapshot": "^29.7.0" + "expect": "30.2.0", + "jest-snapshot": "30.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/expect-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz", - "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/expect-utils/-/expect-utils-30.2.0.tgz", + "integrity": "sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA==", "dev": true, "license": "MIT", "dependencies": { - "jest-get-type": "^29.6.3" + "@jest/get-type": "30.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/fake-timers": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz", - "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/fake-timers/-/fake-timers-30.2.0.tgz", + "integrity": "sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@sinonjs/fake-timers": "^10.0.2", + "@jest/types": "30.2.0", + "@sinonjs/fake-timers": "^13.0.0", "@types/node": "*", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "jest-message-util": "30.2.0", + "jest-mock": "30.2.0", + "jest-util": "30.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/get-type": { + "version": "30.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/get-type/-/get-type-30.1.0.tgz", + "integrity": "sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/globals": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz", - "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/globals/-/globals-30.2.0.tgz", + "integrity": "sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@jest/environment": "30.2.0", + "@jest/expect": "30.2.0", + "@jest/types": "30.2.0", + "jest-mock": "30.2.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/@jest/pattern": { + "version": "30.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/pattern/-/pattern-30.0.1.tgz", + "integrity": "sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/types": "^29.6.3", - "jest-mock": "^29.7.0" + "@types/node": "*", + "jest-regex-util": "30.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/reporters": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz", - "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/reporters/-/reporters-30.2.0.tgz", + "integrity": "sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ==", "dev": true, "license": "MIT", "dependencies": { "@bcoe/v8-coverage": "^0.2.3", - "@jest/console": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", + "@jest/console": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", + "@jridgewell/trace-mapping": "^0.3.25", "@types/node": "*", - "chalk": "^4.0.0", - "collect-v8-coverage": "^1.0.0", - "exit": "^0.1.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", + "chalk": "^4.1.2", + "collect-v8-coverage": "^1.0.2", + "exit-x": "^0.2.2", + "glob": "^10.3.10", + "graceful-fs": "^4.2.11", "istanbul-lib-coverage": "^3.0.0", "istanbul-lib-instrument": "^6.0.0", "istanbul-lib-report": "^3.0.0", - "istanbul-lib-source-maps": "^4.0.0", + "istanbul-lib-source-maps": "^5.0.0", "istanbul-reports": "^3.1.3", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", + "jest-message-util": "30.2.0", + "jest-util": "30.2.0", + "jest-worker": "30.2.0", "slash": "^3.0.0", - "string-length": "^4.0.1", - "strip-ansi": "^6.0.0", + "string-length": "^4.0.2", "v8-to-istanbul": "^9.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" - }, - "peerDependenciesMeta": { - "node-notifier": { - "optional": true - } + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + }, + "peerDependencies": { + "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" + }, + "peerDependenciesMeta": { + "node-notifier": { + "optional": true + } + } + }, + "node_modules/@jest/reporters/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@jest/schemas": { + "version": "30.0.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/schemas/-/schemas-30.0.5.tgz", + "integrity": "sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@sinclair/typebox": "^0.34.0" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/@jest/schemas": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz", - "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==", + "node_modules/@jest/snapshot-utils": { + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/snapshot-utils/-/snapshot-utils-30.2.0.tgz", + "integrity": "sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug==", "dev": true, "license": "MIT", "dependencies": { - "@sinclair/typebox": "^0.27.8" + "@jest/types": "30.2.0", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "natural-compare": "^1.4.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/source-map": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz", - "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==", + "version": "30.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/source-map/-/source-map-30.0.1.tgz", + "integrity": "sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/trace-mapping": "^0.3.18", - "callsites": "^3.0.0", - "graceful-fs": "^4.2.9" + "@jridgewell/trace-mapping": "^0.3.25", + "callsites": "^3.1.0", + "graceful-fs": "^4.2.11" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/test-result": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz", - "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/test-result/-/test-result-30.2.0.tgz", + "integrity": "sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "^29.7.0", - "@jest/types": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "collect-v8-coverage": "^1.0.0" + "@jest/console": "30.2.0", + "@jest/types": "30.2.0", + "@types/istanbul-lib-coverage": "^2.0.6", + "collect-v8-coverage": "^1.0.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/test-sequencer": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz", - "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/test-sequencer/-/test-sequencer-30.2.0.tgz", + "integrity": "sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q==", "dev": true, "license": "MIT", "dependencies": { - "@jest/test-result": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", + "@jest/test-result": "30.2.0", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.2.0", "slash": "^3.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/transform": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz", - "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/transform/-/transform-30.2.0.tgz", + "integrity": "sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/core": "^7.11.6", - "@jest/types": "^29.6.3", - "@jridgewell/trace-mapping": "^0.3.18", - "babel-plugin-istanbul": "^6.1.1", - "chalk": "^4.0.0", + "@babel/core": "^7.27.4", + "@jest/types": "30.2.0", + "@jridgewell/trace-mapping": "^0.3.25", + "babel-plugin-istanbul": "^7.0.1", + "chalk": "^4.1.2", "convert-source-map": "^2.0.0", "fast-json-stable-stringify": "^2.1.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "micromatch": "^4.0.4", - "pirates": "^4.0.4", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.2.0", + "jest-regex-util": "30.0.1", + "jest-util": "30.2.0", + "micromatch": "^4.0.8", + "pirates": "^4.0.7", "slash": "^3.0.0", - "write-file-atomic": "^4.0.2" + "write-file-atomic": "^5.0.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jest/types": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz", - "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/types/-/types-30.2.0.tgz", + "integrity": "sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", - "@types/istanbul-lib-coverage": "^2.0.0", - "@types/istanbul-reports": "^3.0.0", + "@jest/pattern": "30.0.1", + "@jest/schemas": "30.0.5", + "@types/istanbul-lib-coverage": "^2.0.6", + "@types/istanbul-reports": "^3.0.4", "@types/node": "*", - "@types/yargs": "^17.0.8", - "chalk": "^4.0.0" + "@types/yargs": "^17.0.33", + "chalk": "^4.1.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/@jridgewell/gen-mapping": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", - "integrity": "sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==", + "version": "0.3.13", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", + "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/set-array": "^1.0.1", - "@jridgewell/sourcemap-codec": "^1.4.10", - "@jridgewell/trace-mapping": "^0.3.9" - }, - "engines": { - "node": ">=6.0.0" + "@jridgewell/sourcemap-codec": "^1.5.0", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "node_modules/@jridgewell/remapping": { + "version": "2.3.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jridgewell/remapping/-/remapping-2.3.5.tgz", + "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", "dev": true, "license": "MIT", - "engines": { - "node": ">=6.0.0" + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.5", + "@jridgewell/trace-mapping": "^0.3.24" } }, - "node_modules/@jridgewell/set-array": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", "dev": true, "license": "MIT", "engines": { @@ -1912,16 +3945,16 @@ } }, "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "version": "1.5.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.20", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz", - "integrity": "sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q==", + "version": "0.3.31", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", + "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", "dev": true, "license": "MIT", "dependencies": { @@ -1929,17 +3962,10 @@ "@jridgewell/sourcemap-codec": "^1.4.14" } }, - "node_modules/@kamilkisiela/fast-url-parser": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/@kamilkisiela/fast-url-parser/-/fast-url-parser-1.1.4.tgz", - "integrity": "sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew==", - "dev": true, - "license": "MIT" - }, "node_modules/@mswjs/interceptors": { - "version": "0.38.4", - "resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.38.4.tgz", - "integrity": "sha512-Y6rXhnVvrgbAbWcjU/t2Pc3/3SXTD8anvW8/H3tUrkqqSc67Wi1wZ9jXENdtUefXCfHkPYBy8ebeDLfpyz2MdA==", + "version": "0.39.8", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@mswjs/interceptors/-/interceptors-0.39.8.tgz", + "integrity": "sha512-2+BzZbjRO7Ct61k8fMNHEtoKjeWI9pIlHFTqBwZ5icHpqszIgEZbjb1MW5Z0+bITTCTl3gk4PDBxs9tA/csXvA==", "dev": true, "license": "MIT", "dependencies": { @@ -1947,7 +3973,6 @@ "@open-draft/logger": "^0.3.0", "@open-draft/until": "^2.0.0", "is-node-process": "^1.2.0", - "jsdom": "^26.0.0", "outvariant": "^1.4.3", "strict-event-emitter": "^0.5.1" }, @@ -1955,6 +3980,19 @@ "node": ">=18" } }, + "node_modules/@napi-rs/wasm-runtime": { + "version": "0.2.12", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@napi-rs/wasm-runtime/-/wasm-runtime-0.2.12.tgz", + "integrity": "sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "@emnapi/core": "^1.4.3", + "@emnapi/runtime": "^1.4.3", + "@tybys/wasm-util": "^0.10.0" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -1991,186 +4029,170 @@ } }, "node_modules/@octokit/auth-token": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.4.tgz", - "integrity": "sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ==", + "version": "4.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/auth-token/-/auth-token-4.0.0.tgz", + "integrity": "sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA==", "license": "MIT", "engines": { - "node": ">= 14" + "node": ">= 18" } }, "node_modules/@octokit/core": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/@octokit/core/-/core-4.2.4.tgz", - "integrity": "sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ==", + "version": "5.2.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/core/-/core-5.2.2.tgz", + "integrity": "sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg==", "license": "MIT", "dependencies": { - "@octokit/auth-token": "^3.0.0", - "@octokit/graphql": "^5.0.0", - "@octokit/request": "^6.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^9.0.0", + "@octokit/auth-token": "^4.0.0", + "@octokit/graphql": "^7.1.0", + "@octokit/request": "^8.4.1", + "@octokit/request-error": "^5.1.1", + "@octokit/types": "^13.0.0", "before-after-hook": "^2.2.0", "universal-user-agent": "^6.0.0" }, "engines": { - "node": ">= 14" + "node": ">= 18" } }, "node_modules/@octokit/endpoint": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz", - "integrity": "sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg==", + "version": "9.0.6", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/endpoint/-/endpoint-9.0.6.tgz", + "integrity": "sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw==", "license": "MIT", "dependencies": { - "@octokit/types": "^9.0.0", - "is-plain-object": "^5.0.0", + "@octokit/types": "^13.1.0", "universal-user-agent": "^6.0.0" }, "engines": { - "node": ">= 14" + "node": ">= 18" } }, "node_modules/@octokit/graphql": { - "version": "5.0.6", - "resolved": "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.6.tgz", - "integrity": "sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw==", + "version": "7.1.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/graphql/-/graphql-7.1.1.tgz", + "integrity": "sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g==", "license": "MIT", "dependencies": { - "@octokit/request": "^6.0.0", - "@octokit/types": "^9.0.0", + "@octokit/request": "^8.4.1", + "@octokit/types": "^13.0.0", "universal-user-agent": "^6.0.0" }, "engines": { - "node": ">= 14" + "node": ">= 18" } }, "node_modules/@octokit/openapi-types": { - "version": "18.1.1", - "resolved": "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.1.1.tgz", - "integrity": "sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw==", + "version": "24.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/openapi-types/-/openapi-types-24.2.0.tgz", + "integrity": "sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg==", "license": "MIT" }, "node_modules/@octokit/plugin-paginate-rest": { - "version": "6.1.2", - "resolved": "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz", - "integrity": "sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ==", + "version": "11.4.4-cjs.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.4-cjs.2.tgz", + "integrity": "sha512-2dK6z8fhs8lla5PaOTgqfCGBxgAv/le+EhPs27KklPhm1bKObpu6lXzwfUEQ16ajXzqNrKMujsFyo9K2eaoISw==", "license": "MIT", "dependencies": { - "@octokit/tsconfig": "^1.0.2", - "@octokit/types": "^9.2.3" + "@octokit/types": "^13.7.0" }, "engines": { - "node": ">= 14" + "node": ">= 18" }, "peerDependencies": { - "@octokit/core": ">=4" + "@octokit/core": "5" } }, "node_modules/@octokit/plugin-request-log": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz", - "integrity": "sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA==", + "version": "4.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/plugin-request-log/-/plugin-request-log-4.0.1.tgz", + "integrity": "sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA==", "license": "MIT", + "engines": { + "node": ">= 18" + }, "peerDependencies": { - "@octokit/core": ">=3" + "@octokit/core": "5" } }, "node_modules/@octokit/plugin-rest-endpoint-methods": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz", - "integrity": "sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA==", + "version": "13.3.2-cjs.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.3.2-cjs.1.tgz", + "integrity": "sha512-VUjIjOOvF2oELQmiFpWA1aOPdawpyaCUqcEBc/UOUnj3Xp6DJGrJ1+bjUIIDzdHjnFNO6q57ODMfdEZnoBkCwQ==", "license": "MIT", "dependencies": { - "@octokit/types": "^10.0.0" + "@octokit/types": "^13.8.0" }, "engines": { - "node": ">= 14" + "node": ">= 18" }, "peerDependencies": { - "@octokit/core": ">=3" - } - }, - "node_modules/@octokit/plugin-rest-endpoint-methods/node_modules/@octokit/types": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-10.0.0.tgz", - "integrity": "sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg==", - "license": "MIT", - "dependencies": { - "@octokit/openapi-types": "^18.0.0" + "@octokit/core": "^5" } }, "node_modules/@octokit/request": { - "version": "6.2.8", - "resolved": "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz", - "integrity": "sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw==", + "version": "8.4.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/request/-/request-8.4.1.tgz", + "integrity": "sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw==", "license": "MIT", "dependencies": { - "@octokit/endpoint": "^7.0.0", - "@octokit/request-error": "^3.0.0", - "@octokit/types": "^9.0.0", - "is-plain-object": "^5.0.0", - "node-fetch": "^2.6.7", + "@octokit/endpoint": "^9.0.6", + "@octokit/request-error": "^5.1.1", + "@octokit/types": "^13.1.0", "universal-user-agent": "^6.0.0" }, "engines": { - "node": ">= 14" + "node": ">= 18" } }, "node_modules/@octokit/request-error": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz", - "integrity": "sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ==", + "version": "5.1.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/request-error/-/request-error-5.1.1.tgz", + "integrity": "sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g==", "license": "MIT", "dependencies": { - "@octokit/types": "^9.0.0", + "@octokit/types": "^13.1.0", "deprecation": "^2.0.0", "once": "^1.4.0" }, "engines": { - "node": ">= 14" + "node": ">= 18" } }, "node_modules/@octokit/rest": { - "version": "19.0.13", - "resolved": "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.13.tgz", - "integrity": "sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA==", + "version": "20.1.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/rest/-/rest-20.1.2.tgz", + "integrity": "sha512-GmYiltypkHHtihFwPRxlaorG5R9VAHuk/vbszVoRTGXnAsY60wYLkh/E2XiFmdZmqrisw+9FaazS1i5SbdWYgA==", "license": "MIT", "dependencies": { - "@octokit/core": "^4.2.1", - "@octokit/plugin-paginate-rest": "^6.1.2", - "@octokit/plugin-request-log": "^1.0.4", - "@octokit/plugin-rest-endpoint-methods": "^7.1.2" + "@octokit/core": "^5.0.2", + "@octokit/plugin-paginate-rest": "11.4.4-cjs.2", + "@octokit/plugin-request-log": "^4.0.0", + "@octokit/plugin-rest-endpoint-methods": "13.3.2-cjs.1" }, "engines": { - "node": ">= 14" + "node": ">= 18" } }, - "node_modules/@octokit/tsconfig": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-1.0.2.tgz", - "integrity": "sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA==", - "license": "MIT" - }, "node_modules/@octokit/types": { - "version": "9.3.2", - "resolved": "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz", - "integrity": "sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA==", + "version": "13.10.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/types/-/types-13.10.0.tgz", + "integrity": "sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA==", "license": "MIT", "dependencies": { - "@octokit/openapi-types": "^18.0.0" + "@octokit/openapi-types": "^24.2.0" } }, "node_modules/@open-draft/deferred-promise": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz", "integrity": "sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA==", "dev": true, "license": "MIT" }, "node_modules/@open-draft/logger": { "version": "0.3.0", - "resolved": "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@open-draft/logger/-/logger-0.3.0.tgz", "integrity": "sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ==", "dev": true, "license": "MIT", @@ -2181,15 +4203,13 @@ }, "node_modules/@open-draft/until": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@open-draft/until/-/until-2.1.0.tgz", "integrity": "sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg==", "dev": true, "license": "MIT" }, "node_modules/@opentelemetry/api": { "version": "1.7.0", - "resolved": "https://registry.npmjs.org/@opentelemetry/api/-/api-1.7.0.tgz", - "integrity": "sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw==", "license": "Apache-2.0", "engines": { "node": ">=8.0.0" @@ -2197,8 +4217,6 @@ }, "node_modules/@opentelemetry/core": { "version": "1.18.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/core/-/core-1.18.1.tgz", - "integrity": "sha512-kvnUqezHMhsQvdsnhnqTNfAJs3ox/isB0SVrM1dhVFw7SsB7TstuVa6fgWnN2GdPyilIFLUvvbTZoVRmx6eiRg==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/semantic-conventions": "1.18.1" @@ -2212,8 +4230,6 @@ }, "node_modules/@opentelemetry/resources": { "version": "1.18.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.18.1.tgz", - "integrity": "sha512-JjbcQLYMttXcIabflLRuaw5oof5gToYV9fuXbcsoOeQ0BlbwUn6DAZi++PNsSz2jjPeASfDls10iaO/8BRIPRA==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.18.1", @@ -2228,8 +4244,6 @@ }, "node_modules/@opentelemetry/sdk-metrics": { "version": "1.18.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.18.1.tgz", - "integrity": "sha512-TEFgeNFhdULBYiCoHbz31Y4PDsfjjxRp8Wmdp6ybLQZPqMNEb+dRq+XN8Xw3ivIgTaf9gYsomgV5ensX99RuEQ==", "license": "Apache-2.0", "dependencies": { "@opentelemetry/core": "1.18.1", @@ -2245,44 +4259,356 @@ }, "node_modules/@opentelemetry/semantic-conventions": { "version": "1.18.1", - "resolved": "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.18.1.tgz", - "integrity": "sha512-+NLGHr6VZwcgE/2lw8zDIufOCGnzsA5CbQIMleXZTrgkBd0TanCX+MiDYJ1TOS4KL/Tqk0nFRxawnaYr6pkZkA==", "license": "Apache-2.0", "engines": { "node": ">=14" } }, - "node_modules/@pkgr/core": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz", - "integrity": "sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==", + "node_modules/@parcel/watcher": { + "version": "2.5.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@parcel/watcher/-/watcher-2.5.1.tgz", + "integrity": "sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "detect-libc": "^1.0.3", + "is-glob": "^4.0.3", + "micromatch": "^4.0.5", + "node-addon-api": "^7.0.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + }, + "optionalDependencies": { + "@parcel/watcher-android-arm64": "2.5.1", + "@parcel/watcher-darwin-arm64": "2.5.1", + "@parcel/watcher-darwin-x64": "2.5.1", + "@parcel/watcher-freebsd-x64": "2.5.1", + "@parcel/watcher-linux-arm-glibc": "2.5.1", + "@parcel/watcher-linux-arm-musl": "2.5.1", + "@parcel/watcher-linux-arm64-glibc": "2.5.1", + "@parcel/watcher-linux-arm64-musl": "2.5.1", + "@parcel/watcher-linux-x64-glibc": "2.5.1", + "@parcel/watcher-linux-x64-musl": "2.5.1", + "@parcel/watcher-win32-arm64": "2.5.1", + "@parcel/watcher-win32-ia32": "2.5.1", + "@parcel/watcher-win32-x64": "2.5.1" + } + }, + "node_modules/@parcel/watcher-android-arm64": { + "version": "2.5.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@parcel/watcher-android-arm64/-/watcher-android-arm64-2.5.1.tgz", + "integrity": "sha512-KF8+j9nNbUN8vzOFDpRMsaKBHZ/mcjEjMToVMJOhTozkDonQFFrRcfdLWn6yWKCmJKmdVxSgHiYvTCef4/qcBA==", + "cpu": [ + "arm64" + ], "dev": true, "license": "MIT", + "optional": true, + "os": [ + "android" + ], "engines": { - "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-arm64": { + "version": "2.5.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz", + "integrity": "sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-darwin-x64": { + "version": "2.5.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@parcel/watcher-darwin-x64/-/watcher-darwin-x64-2.5.1.tgz", + "integrity": "sha512-1ZXDthrnNmwv10A0/3AJNZ9JGlzrF82i3gNQcWOzd7nJ8aj+ILyW1MTxVk35Db0u91oD5Nlk9MBiujMlwmeXZg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-freebsd-x64": { + "version": "2.5.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@parcel/watcher-freebsd-x64/-/watcher-freebsd-x64-2.5.1.tgz", + "integrity": "sha512-SI4eljM7Flp9yPuKi8W0ird8TI/JK6CSxju3NojVI6BjHsTyK7zxA9urjVjEKJ5MBYC+bLmMcbAWlZ+rFkLpJQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-glibc": { + "version": "2.5.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@parcel/watcher-linux-arm-glibc/-/watcher-linux-arm-glibc-2.5.1.tgz", + "integrity": "sha512-RCdZlEyTs8geyBkkcnPWvtXLY44BCeZKmGYRtSgtwwnHR4dxfHRG3gR99XdMEdQ7KeiDdasJwwvNSF5jKtDwdA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm-musl": { + "version": "2.5.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@parcel/watcher-linux-arm-musl/-/watcher-linux-arm-musl-2.5.1.tgz", + "integrity": "sha512-6E+m/Mm1t1yhB8X412stiKFG3XykmgdIOqhjWj+VL8oHkKABfu/gjFj8DvLrYVHSBNC+/u5PeNrujiSQ1zwd1Q==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-glibc": { + "version": "2.5.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@parcel/watcher-linux-arm64-glibc/-/watcher-linux-arm64-glibc-2.5.1.tgz", + "integrity": "sha512-LrGp+f02yU3BN9A+DGuY3v3bmnFUggAITBGriZHUREfNEzZh/GO06FF5u2kx8x+GBEUYfyTGamol4j3m9ANe8w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-arm64-musl": { + "version": "2.5.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@parcel/watcher-linux-arm64-musl/-/watcher-linux-arm64-musl-2.5.1.tgz", + "integrity": "sha512-cFOjABi92pMYRXS7AcQv9/M1YuKRw8SZniCDw0ssQb/noPkRzA+HBDkwmyOJYp5wXcsTrhxO0zq1U11cK9jsFg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-glibc": { + "version": "2.5.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@parcel/watcher-linux-x64-glibc/-/watcher-linux-x64-glibc-2.5.1.tgz", + "integrity": "sha512-GcESn8NZySmfwlTsIur+49yDqSny2IhPeZfXunQi48DMugKeZ7uy1FX83pO0X22sHntJ4Ub+9k34XQCX+oHt2A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-linux-x64-musl": { + "version": "2.5.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@parcel/watcher-linux-x64-musl/-/watcher-linux-x64-musl-2.5.1.tgz", + "integrity": "sha512-n0E2EQbatQ3bXhcH2D1XIAANAcTZkQICBPVaxMeaCVBtOpBZpWJuf7LwyWPSBDITb7In8mqQgJ7gH8CILCURXg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-arm64": { + "version": "2.5.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@parcel/watcher-win32-arm64/-/watcher-win32-arm64-2.5.1.tgz", + "integrity": "sha512-RFzklRvmc3PkjKjry3hLF9wD7ppR4AKcWNzH7kXR7GUe0Igb3Nz8fyPwtZCSquGrhU5HhUNDr/mKBqj7tqA2Vw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-ia32": { + "version": "2.5.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@parcel/watcher-win32-ia32/-/watcher-win32-ia32-2.5.1.tgz", + "integrity": "sha512-c2KkcVN+NJmuA7CGlaGD1qJh1cLfDnQsHjE89E60vUEMlqduHGCdCLJCID5geFVM0dOtA3ZiIO8BoEQmzQVfpQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@parcel/watcher-win32-x64": { + "version": "2.5.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@parcel/watcher-win32-x64/-/watcher-win32-x64-2.5.1.tgz", + "integrity": "sha512-9lHBdJITeNR++EvSQVUcaZoWupyHfXe1jZvGZ06O/5MflPcuPLtEphScIBL+AiCWBO46tDSHzWyD0uDmmZqsgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">= 10.0.0" }, "funding": { - "url": "https://opencollective.com/unts" + "type": "opencollective", + "url": "https://opencollective.com/parcel" + } + }, + "node_modules/@pkgjs/parseargs": { + "version": "0.11.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", + "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", + "dev": true, + "license": "MIT", + "optional": true, + "engines": { + "node": ">=14" } }, "node_modules/@repeaterjs/repeater": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.5.tgz", - "integrity": "sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA==", + "version": "3.0.6", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@repeaterjs/repeater/-/repeater-3.0.6.tgz", + "integrity": "sha512-Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rtsao/scc": { + "version": "1.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@rtsao/scc/-/scc-1.1.0.tgz", + "integrity": "sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==", "dev": true, "license": "MIT" }, "node_modules/@sinclair/typebox": { - "version": "0.27.8", - "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz", - "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==", + "version": "0.34.41", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@sinclair/typebox/-/typebox-0.34.41.tgz", + "integrity": "sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g==", "dev": true, "license": "MIT" }, "node_modules/@sinonjs/commons": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz", - "integrity": "sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==", + "version": "3.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@sinonjs/commons/-/commons-3.0.1.tgz", + "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -2290,19 +4616,27 @@ } }, "node_modules/@sinonjs/fake-timers": { - "version": "10.3.0", - "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz", - "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==", + "version": "13.0.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz", + "integrity": "sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@sinonjs/commons": "^3.0.0" + "@sinonjs/commons": "^3.0.1" + } + }, + "node_modules/@so-ric/colorspace": { + "version": "1.1.6", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@so-ric/colorspace/-/colorspace-1.1.6.tgz", + "integrity": "sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw==", + "license": "MIT", + "dependencies": { + "color": "^5.0.2", + "text-hex": "1.0.x" } }, "node_modules/@tsconfig/node10": { "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", "dev": true, "license": "MIT" }, @@ -2327,9 +4661,20 @@ "dev": true, "license": "MIT" }, + "node_modules/@tybys/wasm-util": { + "version": "0.10.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", + "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "dev": true, + "license": "MIT", + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@types/babel__core": { "version": "7.20.5", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/babel__core/-/babel__core-7.20.5.tgz", "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==", "dev": true, "license": "MIT", @@ -2342,9 +4687,9 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.7", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz", - "integrity": "sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ==", + "version": "7.27.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", "dev": true, "license": "MIT", "dependencies": { @@ -2353,7 +4698,7 @@ }, "node_modules/@types/babel__template": { "version": "7.4.4", - "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/babel__template/-/babel__template-7.4.4.tgz", "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==", "dev": true, "license": "MIT", @@ -2363,13 +4708,13 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.4", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz", - "integrity": "sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA==", + "version": "7.28.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.20.7" + "@babel/types": "^7.28.2" } }, "node_modules/@types/core-js": { @@ -2386,20 +4731,17 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/graceful-fs": { - "version": "4.1.9", - "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz", - "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/node": "*" - } + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" }, "node_modules/@types/inquirer": { - "version": "8.2.10", - "resolved": "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.2.10.tgz", - "integrity": "sha512-IdD5NmHyVjWM8SHWo/kPBgtzXatwPkfwzyP3fN1jF2g9BWt5WO+8hL2F4o2GKIYsU40PpqeevuUWvkS/roXJkA==", + "version": "9.0.9", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/inquirer/-/inquirer-9.0.9.tgz", + "integrity": "sha512-/mWx5136gts2Z2e5izdoRCo46lPp5TMs9R15GTSsgg/XnZyxDWVqoVU3R9lWnccKpqwsJLvRoxbCjoJtZB7DSw==", "dev": true, "license": "MIT", "dependencies": { @@ -2409,14 +4751,14 @@ }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz", "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==", "dev": true, "license": "MIT" }, "node_modules/@types/istanbul-lib-report": { "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz", "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==", "dev": true, "license": "MIT", @@ -2426,7 +4768,7 @@ }, "node_modules/@types/istanbul-reports": { "version": "3.0.4", - "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz", "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==", "dev": true, "license": "MIT", @@ -2435,16 +4777,23 @@ } }, "node_modules/@types/jest": { - "version": "29.5.12", - "resolved": "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz", - "integrity": "sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw==", + "version": "30.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/jest/-/jest-30.0.0.tgz", + "integrity": "sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA==", "dev": true, "license": "MIT", "dependencies": { - "expect": "^29.0.0", - "pretty-format": "^29.0.0" + "expect": "^30.0.0", + "pretty-format": "^30.0.0" } }, + "node_modules/@types/js-yaml": { + "version": "4.0.9", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/js-yaml/-/js-yaml-4.0.9.tgz", + "integrity": "sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/json-schema": { "version": "7.0.15", "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", @@ -2460,20 +4809,20 @@ "license": "MIT" }, "node_modules/@types/lodash": { - "version": "4.14.202", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz", - "integrity": "sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==", + "version": "4.17.20", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/lodash/-/lodash-4.17.20.tgz", + "integrity": "sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA==", "dev": true, "license": "MIT" }, "node_modules/@types/node": { - "version": "20.11.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.11.24.tgz", - "integrity": "sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long==", + "version": "22.19.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/node/-/node-22.19.1.tgz", + "integrity": "sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ==", "dev": true, "license": "MIT", "dependencies": { - "undici-types": "~5.26.4" + "undici-types": "~6.21.0" } }, "node_modules/@types/safe-json-stringify": { @@ -2483,16 +4832,9 @@ "dev": true, "license": "MIT" }, - "node_modules/@types/semver": { - "version": "7.5.6", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz", - "integrity": "sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A==", - "dev": true, - "license": "MIT" - }, "node_modules/@types/stack-utils": { "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/stack-utils/-/stack-utils-2.0.3.tgz", "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==", "dev": true, "license": "MIT" @@ -2509,14 +4851,14 @@ }, "node_modules/@types/triple-beam": { "version": "1.3.5", - "resolved": "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/triple-beam/-/triple-beam-1.3.5.tgz", "integrity": "sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==", "license": "MIT" }, "node_modules/@types/ws": { - "version": "8.5.10", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz", - "integrity": "sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A==", + "version": "8.18.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/ws/-/ws-8.18.1.tgz", + "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", "dev": true, "license": "MIT", "dependencies": { @@ -2524,9 +4866,9 @@ } }, "node_modules/@types/yargs": { - "version": "17.0.32", - "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz", - "integrity": "sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog==", + "version": "17.0.35", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/yargs/-/yargs-17.0.35.tgz", + "integrity": "sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==", "dev": true, "license": "MIT", "dependencies": { @@ -2541,124 +4883,160 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.1.1.tgz", - "integrity": "sha512-zioDz623d0RHNhvx0eesUmGfIjzrk18nSBC8xewepKXbBvN/7c1qImV7Hg8TI1URTxKax7/zxfxj3Uph8Chcuw==", + "version": "8.47.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.47.0.tgz", + "integrity": "sha512-fe0rz9WJQ5t2iaLfdbDc9T80GJy0AeO453q8C3YCilnGozvOyCG5t+EZtg7j7D88+c3FipfP/x+wzGnh1xp8ZA==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/regexpp": "^4.5.1", - "@typescript-eslint/scope-manager": "7.1.1", - "@typescript-eslint/type-utils": "7.1.1", - "@typescript-eslint/utils": "7.1.1", - "@typescript-eslint/visitor-keys": "7.1.1", - "debug": "^4.3.4", + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.47.0", + "@typescript-eslint/type-utils": "8.47.0", + "@typescript-eslint/utils": "8.47.0", + "@typescript-eslint/visitor-keys": "8.47.0", "graphemer": "^1.4.0", - "ignore": "^5.2.4", + "ignore": "^7.0.0", "natural-compare": "^1.4.0", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "ts-api-utils": "^2.1.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^7.0.0", - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "@typescript-eslint/parser": "^8.47.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { + "version": "7.0.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ignore/-/ignore-7.0.5.tgz", + "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 4" } }, "node_modules/@typescript-eslint/parser": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.1.1.tgz", - "integrity": "sha512-ZWUFyL0z04R1nAEgr9e79YtV5LbafdOtN7yapNbn1ansMyaegl2D4bL7vHoJ4HPSc4CaLwuCVas8CVuneKzplQ==", + "version": "8.47.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@typescript-eslint/parser/-/parser-8.47.0.tgz", + "integrity": "sha512-lJi3PfxVmo0AkEY93ecfN+r8SofEqZNGByvHAI3GBLrvt1Cw6H5k1IM02nSzu0RfUafr2EvFSw0wAsZgubNplQ==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/scope-manager": "7.1.1", - "@typescript-eslint/types": "7.1.1", - "@typescript-eslint/typescript-estree": "7.1.1", - "@typescript-eslint/visitor-keys": "7.1.1", + "@typescript-eslint/scope-manager": "8.47.0", + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/typescript-estree": "8.47.0", + "@typescript-eslint/visitor-keys": "8.47.0", "debug": "^4.3.4" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" + } + }, + "node_modules/@typescript-eslint/project-service": { + "version": "8.47.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@typescript-eslint/project-service/-/project-service-8.47.0.tgz", + "integrity": "sha512-2X4BX8hUeB5JcA1TQJ7GjcgulXQ+5UkNb0DL8gHsHUHdFoiCTJoYLTpib3LtSDPZsRET5ygN4qqIWrHyYIKERA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/tsconfig-utils": "^8.47.0", + "@typescript-eslint/types": "^8.47.0", + "debug": "^4.3.4" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.1.1.tgz", - "integrity": "sha512-cirZpA8bJMRb4WZ+rO6+mnOJrGFDd38WoXCEI57+CYBqta8Yc8aJym2i7vyqLL1vVYljgw0X27axkUXz32T8TA==", + "version": "8.47.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@typescript-eslint/scope-manager/-/scope-manager-8.47.0.tgz", + "integrity": "sha512-a0TTJk4HXMkfpFkL9/WaGTNuv7JWfFTQFJd6zS9dVAjKsojmv9HT55xzbEpnZoY+VUb+YXLMp+ihMLz/UlZfDg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.1.1", - "@typescript-eslint/visitor-keys": "7.1.1" + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/visitor-keys": "8.47.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/tsconfig-utils": { + "version": "8.47.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.47.0.tgz", + "integrity": "sha512-ybUAvjy4ZCL11uryalkKxuT3w3sXJAuWhOoGS3T/Wu+iUu1tGJmk5ytSY8gbdACNARmcYEB0COksD2j6hfGK2g==", + "dev": true, + "license": "MIT", "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/type-utils": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.1.1.tgz", - "integrity": "sha512-5r4RKze6XHEEhlZnJtR3GYeCh1IueUHdbrukV2KSlLXaTjuSfeVF8mZUVPLovidCuZfbVjfhi4c0DNSa/Rdg5g==", + "version": "8.47.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@typescript-eslint/type-utils/-/type-utils-8.47.0.tgz", + "integrity": "sha512-QC9RiCmZ2HmIdCEvhd1aJELBlD93ErziOXXlHEZyuBo3tBiAZieya0HLIxp+DoDWlsQqDawyKuNEhORyku+P8A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/typescript-estree": "7.1.1", - "@typescript-eslint/utils": "7.1.1", + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/typescript-estree": "8.47.0", + "@typescript-eslint/utils": "8.47.0", "debug": "^4.3.4", - "ts-api-utils": "^1.0.1" + "ts-api-utils": "^2.1.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/types": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.1.1.tgz", - "integrity": "sha512-KhewzrlRMrgeKm1U9bh2z5aoL4s7K3tK5DwHDn8MHv0yQfWFz/0ZR6trrIHHa5CsF83j/GgHqzdbzCXJ3crx0Q==", + "version": "8.47.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@typescript-eslint/types/-/types-8.47.0.tgz", + "integrity": "sha512-nHAE6bMKsizhA2uuYZbEbmp5z2UpffNrPEqiKIeN7VsV6UY/roxanWfoRrf6x/k9+Obf+GQdkm0nPU+vnMXo9A==", "dev": true, "license": "MIT", "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", @@ -2666,126 +5044,453 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.1.1.tgz", - "integrity": "sha512-9ZOncVSfr+sMXVxxca2OJOPagRwT0u/UHikM2Rd6L/aB+kL/QAuTnsv6MeXtjzCJYb8PzrXarypSGIPx3Jemxw==", + "version": "8.47.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@typescript-eslint/typescript-estree/-/typescript-estree-8.47.0.tgz", + "integrity": "sha512-k6ti9UepJf5NpzCjH31hQNLHQWupTRPhZ+KFF8WtTuTpy7uHPfeg2NM7cP27aCGajoEplxJDFVCEm9TGPYyiVg==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.1.1", - "@typescript-eslint/visitor-keys": "7.1.1", + "@typescript-eslint/project-service": "8.47.0", + "@typescript-eslint/tsconfig-utils": "8.47.0", + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/visitor-keys": "8.47.0", "debug": "^4.3.4", - "globby": "^11.1.0", + "fast-glob": "^3.3.2", "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.1.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/utils": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.1.1.tgz", - "integrity": "sha512-thOXM89xA03xAE0lW7alstvnyoBUbBX38YtY+zAUcpRPcq9EIhXPuJ0YTv948MbzmKh6e1AUszn5cBFK49Umqg==", + "version": "8.47.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@typescript-eslint/utils/-/utils-8.47.0.tgz", + "integrity": "sha512-g7XrNf25iL4TJOiPqatNuaChyqt49a/onq5YsJ9+hXeugK+41LVg7AxikMfM02PC6jbNtZLCJj6AUcQXJS/jGQ==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "7.1.1", - "@typescript-eslint/types": "7.1.1", - "@typescript-eslint/typescript-estree": "7.1.1", - "semver": "^7.5.4" + "@eslint-community/eslint-utils": "^4.7.0", + "@typescript-eslint/scope-manager": "8.47.0", + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/typescript-estree": "8.47.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^8.56.0" + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.1.1.tgz", - "integrity": "sha512-yTdHDQxY7cSoCcAtiBzVzxleJhkGB9NncSIyMYe2+OGON1ZsP9zOPws/Pqgopa65jvknOjlk/w7ulPlZ78PiLQ==", + "version": "8.47.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@typescript-eslint/visitor-keys/-/visitor-keys-8.47.0.tgz", + "integrity": "sha512-SIV3/6eftCy1bNzCQoPmbWsRLujS8t5iDIZ4spZOBHqrM+yfX2ogg8Tt3PDTAVKw3sSCiUgg30uOAvK2r9zGjQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "7.1.1", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "8.47.0", + "eslint-visitor-keys": "^4.2.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" } }, + "node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/@ungap/structured-clone": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", - "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==", + "version": "1.3.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@ungap/structured-clone/-/structured-clone-1.3.0.tgz", + "integrity": "sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==", "dev": true, "license": "ISC" }, - "node_modules/@whatwg-node/events": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/@whatwg-node/events/-/events-0.1.1.tgz", - "integrity": "sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w==", + "node_modules/@unrs/resolver-binding-android-arm-eabi": { + "version": "1.11.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@unrs/resolver-binding-android-arm-eabi/-/resolver-binding-android-arm-eabi-1.11.1.tgz", + "integrity": "sha512-ppLRUgHVaGRWUx0R0Ut06Mjo9gBaBkg3v/8AxusGLhsIotbBLuRk51rAzqLC8gq6NyyAojEXglNjzf6R948DNw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-android-arm64": { + "version": "1.11.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@unrs/resolver-binding-android-arm64/-/resolver-binding-android-arm64-1.11.1.tgz", + "integrity": "sha512-lCxkVtb4wp1v+EoN+HjIG9cIIzPkX5OtM03pQYkG+U5O/wL53LC4QbIeazgiKqluGeVEeBlZahHalCaBvU1a2g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-arm64": { + "version": "1.11.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz", + "integrity": "sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-darwin-x64": { + "version": "1.11.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@unrs/resolver-binding-darwin-x64/-/resolver-binding-darwin-x64-1.11.1.tgz", + "integrity": "sha512-cFzP7rWKd3lZaCsDze07QX1SC24lO8mPty9vdP+YVa3MGdVgPmFc59317b2ioXtgCMKGiCLxJ4HQs62oz6GfRQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@unrs/resolver-binding-freebsd-x64": { + "version": "1.11.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@unrs/resolver-binding-freebsd-x64/-/resolver-binding-freebsd-x64-1.11.1.tgz", + "integrity": "sha512-fqtGgak3zX4DCB6PFpsH5+Kmt/8CIi4Bry4rb1ho6Av2QHTREM+47y282Uqiu3ZRF5IQioJQ5qWRV6jduA+iGw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-gnueabihf": { + "version": "1.11.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@unrs/resolver-binding-linux-arm-gnueabihf/-/resolver-binding-linux-arm-gnueabihf-1.11.1.tgz", + "integrity": "sha512-u92mvlcYtp9MRKmP+ZvMmtPN34+/3lMHlyMj7wXJDeXxuM0Vgzz0+PPJNsro1m3IZPYChIkn944wW8TYgGKFHw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm-musleabihf": { + "version": "1.11.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@unrs/resolver-binding-linux-arm-musleabihf/-/resolver-binding-linux-arm-musleabihf-1.11.1.tgz", + "integrity": "sha512-cINaoY2z7LVCrfHkIcmvj7osTOtm6VVT16b5oQdS4beibX2SYBwgYLmqhBjA1t51CarSaBuX5YNsWLjsqfW5Cw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-gnu": { + "version": "1.11.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@unrs/resolver-binding-linux-arm64-gnu/-/resolver-binding-linux-arm64-gnu-1.11.1.tgz", + "integrity": "sha512-34gw7PjDGB9JgePJEmhEqBhWvCiiWCuXsL9hYphDF7crW7UgI05gyBAi6MF58uGcMOiOqSJ2ybEeCvHcq0BCmQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-arm64-musl": { + "version": "1.11.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@unrs/resolver-binding-linux-arm64-musl/-/resolver-binding-linux-arm64-musl-1.11.1.tgz", + "integrity": "sha512-RyMIx6Uf53hhOtJDIamSbTskA99sPHS96wxVE/bJtePJJtpdKGXO1wY90oRdXuYOGOTuqjT8ACccMc4K6QmT3w==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-ppc64-gnu": { + "version": "1.11.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@unrs/resolver-binding-linux-ppc64-gnu/-/resolver-binding-linux-ppc64-gnu-1.11.1.tgz", + "integrity": "sha512-D8Vae74A4/a+mZH0FbOkFJL9DSK2R6TFPC9M+jCWYia/q2einCubX10pecpDiTmkJVUH+y8K3BZClycD8nCShA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-gnu": { + "version": "1.11.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@unrs/resolver-binding-linux-riscv64-gnu/-/resolver-binding-linux-riscv64-gnu-1.11.1.tgz", + "integrity": "sha512-frxL4OrzOWVVsOc96+V3aqTIQl1O2TjgExV4EKgRY09AJ9leZpEg8Ak9phadbuX0BA4k8U5qtvMSQQGGmaJqcQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-riscv64-musl": { + "version": "1.11.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@unrs/resolver-binding-linux-riscv64-musl/-/resolver-binding-linux-riscv64-musl-1.11.1.tgz", + "integrity": "sha512-mJ5vuDaIZ+l/acv01sHoXfpnyrNKOk/3aDoEdLO/Xtn9HuZlDD6jKxHlkN8ZhWyLJsRBxfv9GYM2utQ1SChKew==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-s390x-gnu": { + "version": "1.11.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@unrs/resolver-binding-linux-s390x-gnu/-/resolver-binding-linux-s390x-gnu-1.11.1.tgz", + "integrity": "sha512-kELo8ebBVtb9sA7rMe1Cph4QHreByhaZ2QEADd9NzIQsYNQpt9UkM9iqr2lhGr5afh885d/cB5QeTXSbZHTYPg==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-gnu": { + "version": "1.11.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@unrs/resolver-binding-linux-x64-gnu/-/resolver-binding-linux-x64-gnu-1.11.1.tgz", + "integrity": "sha512-C3ZAHugKgovV5YvAMsxhq0gtXuwESUKc5MhEtjBpLoHPLYM+iuwSj3lflFwK3DPm68660rZ7G8BMcwSro7hD5w==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-linux-x64-musl": { + "version": "1.11.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@unrs/resolver-binding-linux-x64-musl/-/resolver-binding-linux-x64-musl-1.11.1.tgz", + "integrity": "sha512-rV0YSoyhK2nZ4vEswT/QwqzqQXw5I6CjoaYMOX0TqBlWhojUf8P94mvI7nuJTeaCkkds3QE4+zS8Ko+GdXuZtA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@unrs/resolver-binding-wasm32-wasi": { + "version": "1.11.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@unrs/resolver-binding-wasm32-wasi/-/resolver-binding-wasm32-wasi-1.11.1.tgz", + "integrity": "sha512-5u4RkfxJm+Ng7IWgkzi3qrFOvLvQYnPBmjmZQ8+szTK/b31fQCnleNl1GgEt7nIsZRIf5PLhPwT0WM+q45x/UQ==", + "cpu": [ + "wasm32" + ], "dev": true, "license": "MIT", + "optional": true, + "dependencies": { + "@napi-rs/wasm-runtime": "^0.2.11" + }, "engines": { - "node": ">=16.0.0" + "node": ">=14.0.0" + } + }, + "node_modules/@unrs/resolver-binding-win32-arm64-msvc": { + "version": "1.11.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@unrs/resolver-binding-win32-arm64-msvc/-/resolver-binding-win32-arm64-msvc-1.11.1.tgz", + "integrity": "sha512-nRcz5Il4ln0kMhfL8S3hLkxI85BXs3o8EYoattsJNdsX4YUU89iOkVn7g0VHSRxFuVMdM4Q1jEpIId1Ihim/Uw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-ia32-msvc": { + "version": "1.11.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@unrs/resolver-binding-win32-ia32-msvc/-/resolver-binding-win32-ia32-msvc-1.11.1.tgz", + "integrity": "sha512-DCEI6t5i1NmAZp6pFonpD5m7i6aFrpofcp4LA2i8IIq60Jyo28hamKBxNrZcyOwVOZkgsRp9O2sXWBWP8MnvIQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@unrs/resolver-binding-win32-x64-msvc": { + "version": "1.11.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@unrs/resolver-binding-win32-x64-msvc/-/resolver-binding-win32-x64-msvc-1.11.1.tgz", + "integrity": "sha512-lrW200hZdbfRtztbygyaq/6jP6AKE8qQN2KvPcJ+x7wiD038YtnYtZ82IMNJ69GJibV7bwL3y9FgK+5w/pYt6g==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@urql/core": { + "version": "5.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@urql/core/-/core-5.2.0.tgz", + "integrity": "sha512-/n0ieD0mvvDnVAXEQgX/7qJiVcvYvNkOHeBvkwtylfjydar123caCXcl58PXFY11oU1oquJocVXHxLAbtv4x1A==", + "license": "MIT", + "dependencies": { + "@0no-co/graphql.web": "^1.0.13", + "wonka": "^6.3.2" + } + }, + "node_modules/@whatwg-node/disposablestack": { + "version": "0.0.6", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@whatwg-node/disposablestack/-/disposablestack-0.0.6.tgz", + "integrity": "sha512-LOtTn+JgJvX8WfBVJtF08TGrdjuFzGJc4mkP8EdDI8ADbvO7kiexYep1o8dwnt0okb0jYclCDXF13xU7Ge4zSw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@whatwg-node/promise-helpers": "^1.0.0", + "tslib": "^2.6.3" + }, + "engines": { + "node": ">=18.0.0" } }, + "node_modules/@whatwg-node/disposablestack/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, "node_modules/@whatwg-node/fetch": { - "version": "0.9.14", - "resolved": "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.14.tgz", - "integrity": "sha512-wurZC82zzZwXRDSW0OS9l141DynaJQh7Yt0FD1xZ8niX7/Et/7RoiLiltbVU1fSF1RR9z6ndEaTUQBAmddTm1w==", + "version": "0.10.13", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@whatwg-node/fetch/-/fetch-0.10.13.tgz", + "integrity": "sha512-b4PhJ+zYj4357zwk4TTuF2nEe0vVtOrwdsrNo5hL+u1ojXNhh1FgJ6pg1jzDlwlT4oBdzfSwaBwMCtFCsIWg8Q==", "dev": true, "license": "MIT", "dependencies": { - "@whatwg-node/node-fetch": "^0.5.0", - "urlpattern-polyfill": "^9.0.0" + "@whatwg-node/node-fetch": "^0.8.3", + "urlpattern-polyfill": "^10.0.0" }, "engines": { - "node": ">=16.0.0" + "node": ">=18.0.0" } }, "node_modules/@whatwg-node/node-fetch": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.5.2.tgz", - "integrity": "sha512-uVYCnmWoCiGbv5AtnSx5nZ1kQJ+U8f269/yHB62y7wXPdjYx6o4sBSefnfwUI8HNf4rf16VbvGR/AzuABhDD5g==", + "version": "0.8.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@whatwg-node/node-fetch/-/node-fetch-0.8.4.tgz", + "integrity": "sha512-AlKLc57loGoyYlrzDbejB9EeR+pfdJdGzbYnkEuZaGekFboBwzfVYVMsy88PMriqPI1ORpiGYGgSSWpx7a2sDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@fastify/busboy": "^3.1.1", + "@whatwg-node/disposablestack": "^0.0.6", + "@whatwg-node/promise-helpers": "^1.3.2", + "tslib": "^2.6.3" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/@whatwg-node/node-fetch/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, + "node_modules/@whatwg-node/promise-helpers": { + "version": "1.3.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@whatwg-node/promise-helpers/-/promise-helpers-1.3.2.tgz", + "integrity": "sha512-Nst5JdK47VIl9UcGwtv2Rcgyn5lWtZ0/mhRQ4G8NN2isxpq2TO30iqHzmwoJycjWuyUfg3GFXqP/gFHXeV57IA==", "dev": true, "license": "MIT", "dependencies": { - "@kamilkisiela/fast-url-parser": "^1.1.4", - "@whatwg-node/events": "^0.1.0", - "busboy": "^1.6.0", - "fast-querystring": "^1.1.1", - "tslib": "^2.3.1" + "tslib": "^2.6.3" }, "engines": { "node": ">=16.0.0" } }, + "node_modules/@whatwg-node/promise-helpers/node_modules/tslib": { + "version": "2.8.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/tslib/-/tslib-2.8.1.tgz", + "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==", + "dev": true, + "license": "0BSD" + }, "node_modules/abort-controller": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", @@ -2799,9 +5504,9 @@ } }, "node_modules/acorn": { - "version": "8.11.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz", - "integrity": "sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w==", + "version": "8.15.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/acorn/-/acorn-8.15.0.tgz", + "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", "bin": { "acorn": "bin/acorn" @@ -2821,7 +5526,7 @@ }, "node_modules/acorn-jsx": { "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, "license": "MIT", @@ -2831,8 +5536,6 @@ }, "node_modules/acorn-walk": { "version": "8.3.1", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz", - "integrity": "sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw==", "dev": true, "license": "MIT", "engines": { @@ -2846,9 +5549,9 @@ "license": "MIT" }, "node_modules/agent-base": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "version": "7.1.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "dev": true, "license": "MIT", "engines": { @@ -2857,8 +5560,6 @@ }, "node_modules/agentkeepalive": { "version": "4.5.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", - "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", "license": "MIT", "dependencies": { "humanize-ms": "^1.2.1" @@ -2882,7 +5583,7 @@ }, "node_modules/ajv": { "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "license": "MIT", @@ -2951,7 +5652,7 @@ }, "node_modules/anymatch": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "license": "ISC", @@ -2978,30 +5679,36 @@ "license": "Python-2.0" }, "node_modules/array-buffer-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz", - "integrity": "sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==", + "version": "1.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz", + "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "is-array-buffer": "^3.0.1" + "call-bound": "^1.0.3", + "is-array-buffer": "^3.0.5" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/array-includes": { - "version": "3.1.7", - "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz", - "integrity": "sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==", + "version": "3.1.9", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/array-includes/-/array-includes-3.1.9.tgz", + "integrity": "sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-string": "^1.0.7" + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.24.0", + "es-object-atoms": "^1.1.1", + "get-intrinsic": "^1.3.0", + "is-string": "^1.1.1", + "math-intrinsics": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -3020,17 +5727,19 @@ } }, "node_modules/array.prototype.findlastindex": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz", - "integrity": "sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==", + "version": "1.2.6", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz", + "integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-shim-unscopables": "^1.1.0" }, "engines": { "node": ">= 0.4" @@ -3040,16 +5749,16 @@ } }, "node_modules/array.prototype.flat": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz", - "integrity": "sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA==", + "version": "1.3.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz", + "integrity": "sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -3059,16 +5768,16 @@ } }, "node_modules/array.prototype.flatmap": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz", - "integrity": "sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==", + "version": "1.3.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz", + "integrity": "sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "es-shim-unscopables": "^1.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-shim-unscopables": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -3078,32 +5787,56 @@ } }, "node_modules/arraybuffer.prototype.slice": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz", - "integrity": "sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==", + "version": "1.0.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz", + "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==", "license": "MIT", "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1", - "is-array-buffer": "^3.0.2", - "is-shared-array-buffer": "^1.0.2" + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/asap/-/asap-2.0.6.tgz", + "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", + "dev": true, + "license": "MIT" + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "license": "MIT", "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "node": ">=8" } }, "node_modules/async": { "version": "3.2.5", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", - "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "license": "MIT" }, + "node_modules/async-function": { + "version": "1.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/async-function/-/async-function-1.0.0.tgz", + "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/async-value": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/async-value/-/async-value-1.2.2.tgz", @@ -3119,12 +5852,6 @@ "async-value": "^1.2.2" } }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", - "license": "MIT" - }, "node_modules/atomic-sleep": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz", @@ -3134,150 +5861,177 @@ "node": ">=8.0.0" } }, - "node_modules/available-typed-arrays": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz", - "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", + "node_modules/auto-bind": { + "version": "4.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/auto-bind/-/auto-bind-4.0.0.tgz", + "integrity": "sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ==", + "dev": true, "license": "MIT", "engines": { - "node": ">= 0.4" + "node": ">=8" }, "funding": { - "url": "https://github.com/sponsors/ljharb" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/axios": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz", - "integrity": "sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A==", + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/babel-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz", - "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/babel-jest/-/babel-jest-30.2.0.tgz", + "integrity": "sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/transform": "^29.7.0", - "@types/babel__core": "^7.1.14", - "babel-plugin-istanbul": "^6.1.1", - "babel-preset-jest": "^29.6.3", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", + "@jest/transform": "30.2.0", + "@types/babel__core": "^7.20.5", + "babel-plugin-istanbul": "^7.0.1", + "babel-preset-jest": "30.2.0", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", "slash": "^3.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { - "@babel/core": "^7.8.0" + "@babel/core": "^7.11.0 || ^8.0.0-0" } }, "node_modules/babel-plugin-istanbul": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", - "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", + "version": "7.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz", + "integrity": "sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA==", "dev": true, "license": "BSD-3-Clause", + "workspaces": [ + "test/babel-8" + ], "dependencies": { "@babel/helper-plugin-utils": "^7.0.0", "@istanbuljs/load-nyc-config": "^1.0.0", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-instrument": "^5.0.4", + "@istanbuljs/schema": "^0.1.3", + "istanbul-lib-instrument": "^6.0.2", "test-exclude": "^6.0.0" }, "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz", - "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.2.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/babel-plugin-istanbul/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" + "node": ">=12" } }, "node_modules/babel-plugin-jest-hoist": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz", - "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.2.0.tgz", + "integrity": "sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA==", "dev": true, "license": "MIT", "dependencies": { - "@babel/template": "^7.3.3", - "@babel/types": "^7.3.3", - "@types/babel__core": "^7.1.14", - "@types/babel__traverse": "^7.0.6" + "@types/babel__core": "^7.20.5" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, + "node_modules/babel-plugin-syntax-trailing-function-commas": { + "version": "7.0.0-beta.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz", + "integrity": "sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ==", + "dev": true, + "license": "MIT" + }, "node_modules/babel-preset-current-node-syntax": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", - "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "version": "1.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz", + "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==", "dev": true, "license": "MIT", "dependencies": { "@babel/plugin-syntax-async-generators": "^7.8.4", "@babel/plugin-syntax-bigint": "^7.8.3", - "@babel/plugin-syntax-class-properties": "^7.8.3", - "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-import-attributes": "^7.24.7", + "@babel/plugin-syntax-import-meta": "^7.10.4", "@babel/plugin-syntax-json-strings": "^7.8.3", - "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", - "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", "@babel/plugin-syntax-object-rest-spread": "^7.8.3", "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", "@babel/plugin-syntax-optional-chaining": "^7.8.3", - "@babel/plugin-syntax-top-level-await": "^7.8.3" + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5" + }, + "peerDependencies": { + "@babel/core": "^7.0.0 || ^8.0.0-0" + } + }, + "node_modules/babel-preset-fbjs": { + "version": "3.4.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz", + "integrity": "sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-object-rest-spread": "^7.0.0", + "@babel/plugin-syntax-class-properties": "^7.0.0", + "@babel/plugin-syntax-flow": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/plugin-syntax-object-rest-spread": "^7.0.0", + "@babel/plugin-transform-arrow-functions": "^7.0.0", + "@babel/plugin-transform-block-scoped-functions": "^7.0.0", + "@babel/plugin-transform-block-scoping": "^7.0.0", + "@babel/plugin-transform-classes": "^7.0.0", + "@babel/plugin-transform-computed-properties": "^7.0.0", + "@babel/plugin-transform-destructuring": "^7.0.0", + "@babel/plugin-transform-flow-strip-types": "^7.0.0", + "@babel/plugin-transform-for-of": "^7.0.0", + "@babel/plugin-transform-function-name": "^7.0.0", + "@babel/plugin-transform-literals": "^7.0.0", + "@babel/plugin-transform-member-expression-literals": "^7.0.0", + "@babel/plugin-transform-modules-commonjs": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.0.0", + "@babel/plugin-transform-parameters": "^7.0.0", + "@babel/plugin-transform-property-literals": "^7.0.0", + "@babel/plugin-transform-react-display-name": "^7.0.0", + "@babel/plugin-transform-react-jsx": "^7.0.0", + "@babel/plugin-transform-shorthand-properties": "^7.0.0", + "@babel/plugin-transform-spread": "^7.0.0", + "@babel/plugin-transform-template-literals": "^7.0.0", + "babel-plugin-syntax-trailing-function-commas": "^7.0.0-beta.0" }, "peerDependencies": { "@babel/core": "^7.0.0" } }, "node_modules/babel-preset-jest": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz", - "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/babel-preset-jest/-/babel-preset-jest-30.2.0.tgz", + "integrity": "sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ==", "dev": true, "license": "MIT", "dependencies": { - "babel-plugin-jest-hoist": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0" + "babel-plugin-jest-hoist": "30.2.0", + "babel-preset-current-node-syntax": "^1.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { - "@babel/core": "^7.0.0" + "@babel/core": "^7.11.0 || ^8.0.0-beta.1" } }, "node_modules/balanced-match": { @@ -3306,6 +6060,16 @@ ], "license": "MIT" }, + "node_modules/baseline-browser-mapping": { + "version": "2.8.30", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/baseline-browser-mapping/-/baseline-browser-mapping-2.8.30.tgz", + "integrity": "sha512-aTUKW4ptQhS64+v2d6IkPzymEzzhw+G0bA1g3uBRV3+ntkH+svttKseW5IOR4Ed6NUVKqnY7qT3dKvzQ7io4AA==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "baseline-browser-mapping": "dist/cli.js" + } + }, "node_modules/basic-auth": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", @@ -3320,14 +6084,12 @@ }, "node_modules/before-after-hook": { "version": "2.2.3", - "resolved": "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/before-after-hook/-/before-after-hook-2.2.3.tgz", "integrity": "sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ==", "license": "Apache-2.0" }, "node_modules/bignumber.js": { "version": "9.1.2", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz", - "integrity": "sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==", "license": "MIT", "engines": { "node": "*" @@ -3351,9 +6113,9 @@ } }, "node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "version": "2.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/brace-expansion/-/brace-expansion-2.0.2.tgz", + "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", "dev": true, "license": "MIT", "dependencies": { @@ -3361,12 +6123,12 @@ } }, "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "version": "3.0.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", "license": "MIT", "dependencies": { - "fill-range": "^7.0.1" + "fill-range": "^7.1.1" }, "engines": { "node": ">=8" @@ -3382,9 +6144,9 @@ } }, "node_modules/browserslist": { - "version": "4.22.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz", - "integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==", + "version": "4.28.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/browserslist/-/browserslist-4.28.0.tgz", + "integrity": "sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ==", "dev": true, "funding": [ { @@ -3402,10 +6164,11 @@ ], "license": "MIT", "dependencies": { - "caniuse-lite": "^1.0.30001565", - "electron-to-chromium": "^1.4.601", - "node-releases": "^2.0.14", - "update-browserslist-db": "^1.0.13" + "baseline-browser-mapping": "^2.8.25", + "caniuse-lite": "^1.0.30001754", + "electron-to-chromium": "^1.5.249", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.1.4" }, "bin": { "browserslist": "cli.js" @@ -3429,7 +6192,7 @@ }, "node_modules/bser": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/bser/-/bser-2.1.1.tgz", "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", "dev": true, "license": "Apache-2.0", @@ -3463,32 +6226,53 @@ }, "node_modules/buffer-from": { "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", "dev": true, "license": "MIT" }, - "node_modules/busboy": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz", - "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==", - "dev": true, + "node_modules/call-bind": { + "version": "1.0.8", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/call-bind/-/call-bind-1.0.8.tgz", + "integrity": "sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==", + "license": "MIT", "dependencies": { - "streamsearch": "^1.1.0" + "call-bind-apply-helpers": "^1.0.0", + "es-define-property": "^1.0.0", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.2" }, "engines": { - "node": ">=10.16.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/call-bind": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", - "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", "license": "MIT", "dependencies": { - "function-bind": "^1.1.2", - "get-intrinsic": "^1.2.1", - "set-function-length": "^1.1.1" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/call-bound": { + "version": "1.0.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/call-bound/-/call-bound-1.0.4.tgz", + "integrity": "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "get-intrinsic": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3504,9 +6288,20 @@ "node": ">=6" } }, + "node_modules/camel-case": { + "version": "4.1.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/camel-case/-/camel-case-4.1.2.tgz", + "integrity": "sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw==", + "dev": true, + "license": "MIT", + "dependencies": { + "pascal-case": "^3.1.2", + "tslib": "^2.0.3" + } + }, "node_modules/camelcase": { "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true, "license": "MIT", @@ -3515,9 +6310,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001568", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001568.tgz", - "integrity": "sha512-vSUkH84HontZJ88MiNrOau1EBrCqEQYgkC5gIySiDlpsm8sGVrhU7Kx4V6h0tnqaHzIHZv08HlJIwPbL4XL9+A==", + "version": "1.0.30001756", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/caniuse-lite/-/caniuse-lite-1.0.30001756.tgz", + "integrity": "sha512-4HnCNKbMLkLdhJz3TToeVWHSnfJvPaq6vu/eRP0Ahub/07n484XHhBF5AJoSGHdVrS8tKFauUQz8Bp9P7LVx7A==", "dev": true, "funding": [ { @@ -3535,6 +6330,18 @@ ], "license": "CC-BY-4.0" }, + "node_modules/capital-case": { + "version": "1.0.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/capital-case/-/capital-case-1.0.4.tgz", + "integrity": "sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" + } + }, "node_modules/chalk": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", @@ -3551,9 +6358,49 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "node_modules/change-case": { + "version": "4.1.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/change-case/-/change-case-4.1.2.tgz", + "integrity": "sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A==", + "dev": true, + "license": "MIT", + "dependencies": { + "camel-case": "^4.1.2", + "capital-case": "^1.0.4", + "constant-case": "^3.0.4", + "dot-case": "^3.0.4", + "header-case": "^2.0.4", + "no-case": "^3.0.4", + "param-case": "^3.0.4", + "pascal-case": "^3.1.2", + "path-case": "^3.0.4", + "sentence-case": "^3.0.4", + "snake-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/change-case-all": { + "version": "1.0.15", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/change-case-all/-/change-case-all-1.0.15.tgz", + "integrity": "sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "change-case": "^4.1.2", + "is-lower-case": "^2.0.2", + "is-upper-case": "^2.0.2", + "lower-case": "^2.0.2", + "lower-case-first": "^2.0.2", + "sponge-case": "^1.0.1", + "swap-case": "^2.0.2", + "title-case": "^3.0.3", + "upper-case": "^2.0.2", + "upper-case-first": "^2.0.2" + } + }, "node_modules/char-regex": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/char-regex/-/char-regex-1.0.2.tgz", "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", "dev": true, "license": "MIT", @@ -3562,15 +6409,15 @@ } }, "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", + "version": "2.1.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/chardet/-/chardet-2.1.1.tgz", + "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==", "license": "MIT" }, "node_modules/ci-info": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", - "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", + "version": "4.3.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ci-info/-/ci-info-4.3.1.tgz", + "integrity": "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA==", "dev": true, "funding": [ { @@ -3585,8 +6432,6 @@ }, "node_modules/cjs-module-lexer": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", "license": "MIT" }, "node_modules/clean-stack": { @@ -3623,76 +6468,22 @@ } }, "node_modules/cli-truncate": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", - "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "slice-ansi": "^5.0.0", - "string-width": "^5.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-truncate/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/cli-truncate/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cli-truncate/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "version": "2.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cli-truncate/-/cli-truncate-2.1.0.tgz", + "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", "dev": true, "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "slice-ansi": "^3.0.0", + "string-width": "^4.2.0" }, "engines": { - "node": ">=12" + "node": ">=8" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/cli-truncate/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, "node_modules/cli-width": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", @@ -3744,7 +6535,7 @@ }, "node_modules/co": { "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/co/-/co-4.6.0.tgz", "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==", "dev": true, "license": "MIT", @@ -3754,20 +6545,23 @@ } }, "node_modules/collect-v8-coverage": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz", - "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==", + "version": "1.0.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz", + "integrity": "sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw==", "dev": true, "license": "MIT" }, "node_modules/color": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/color/-/color-3.2.1.tgz", - "integrity": "sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==", + "version": "5.0.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/color/-/color-5.0.3.tgz", + "integrity": "sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==", "license": "MIT", "dependencies": { - "color-convert": "^1.9.3", - "color-string": "^1.6.0" + "color-convert": "^3.1.3", + "color-string": "^2.1.3" + }, + "engines": { + "node": ">=18" } }, "node_modules/color-convert": { @@ -3789,67 +6583,72 @@ "license": "MIT" }, "node_modules/color-string": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", - "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "version": "2.1.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/color-string/-/color-string-2.1.4.tgz", + "integrity": "sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==", "license": "MIT", "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" + "color-name": "^2.0.0" + }, + "engines": { + "node": ">=18" + } + }, + "node_modules/color-string/node_modules/color-name": { + "version": "2.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/color-name/-/color-name-2.1.0.tgz", + "integrity": "sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==", + "license": "MIT", + "engines": { + "node": ">=12.20" } }, "node_modules/color/node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "version": "3.1.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/color-convert/-/color-convert-3.1.3.tgz", + "integrity": "sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg==", "license": "MIT", "dependencies": { - "color-name": "1.1.3" + "color-name": "^2.0.0" + }, + "engines": { + "node": ">=14.6" } }, "node_modules/color/node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "license": "MIT" + "version": "2.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/color-name/-/color-name-2.1.0.tgz", + "integrity": "sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==", + "license": "MIT", + "engines": { + "node": ">=12.20" + } }, "node_modules/colorette": { "version": "2.0.20", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/colorette/-/colorette-2.0.20.tgz", "integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==", "dev": true, "license": "MIT" }, - "node_modules/colorspace": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz", - "integrity": "sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==", - "license": "MIT", - "dependencies": { - "color": "^3.1.3", - "text-hex": "1.0.x" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "node_modules/commander": { + "version": "14.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/commander/-/commander-14.0.2.tgz", + "integrity": "sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ==", + "dev": true, "license": "MIT", - "dependencies": { - "delayed-stream": "~1.0.0" - }, "engines": { - "node": ">= 0.8" + "node": ">=20" } }, - "node_modules/commander": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz", - "integrity": "sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ==", + "node_modules/common-tags": { + "version": "1.8.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/common-tags/-/common-tags-1.8.2.tgz", + "integrity": "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==", "dev": true, "license": "MIT", "engines": { - "node": ">=16" + "node": ">=4.0.0" } }, "node_modules/concat-map": { @@ -3864,9 +6663,21 @@ "integrity": "sha512-VZzbIORbP+PPcN/gg3DXClTLPLg5Slwd5fL2MIc+o1qZ4BXBvWyc6QxPk6T/Mkr6IVjRpoAGf32XxP3ZWMVRcQ==", "license": "MIT" }, + "node_modules/constant-case": { + "version": "3.0.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/constant-case/-/constant-case-3.0.4.tgz", + "integrity": "sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case": "^2.0.2" + } + }, "node_modules/convert-source-map": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true, "license": "MIT" @@ -3913,28 +6724,6 @@ } } }, - "node_modules/create-jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz", - "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "exit": "^0.1.2", - "graceful-fs": "^4.2.9", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "prompts": "^2.0.1" - }, - "bin": { - "create-jest": "bin/create-jest.js" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/create-require": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", @@ -3942,73 +6731,119 @@ "dev": true, "license": "MIT" }, + "node_modules/cross-fetch": { + "version": "3.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-fetch/-/cross-fetch-3.2.0.tgz", + "integrity": "sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "node-fetch": "^2.7.0" + } + }, "node_modules/cross-inspect": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/cross-inspect/-/cross-inspect-1.0.0.tgz", - "integrity": "sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ==", "dev": true, "license": "MIT", "dependencies": { "tslib": "^2.4.0" }, "engines": { - "node": ">=16.0.0" + "node": ">=16.0.0" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/data-uri-to-buffer": { + "version": "4.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz", + "integrity": "sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 12" } }, - "node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, + "node_modules/data-view-buffer": { + "version": "1.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/data-view-buffer/-/data-view-buffer-1.0.2.tgz", + "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==", "license": "MIT", "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" }, "engines": { - "node": ">= 8" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/cssstyle": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-4.3.0.tgz", - "integrity": "sha512-6r0NiY0xizYqfBvWp1G7WXJ06/bZyrk7Dc6PHql82C/pKGUTKu4yAX4Y8JPamb1ob9nBKuxWzCGTRuGwU3yxJQ==", - "dev": true, + "node_modules/data-view-byte-length": { + "version": "1.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz", + "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==", "license": "MIT", "dependencies": { - "@asamuzakjp/css-color": "^3.1.1", - "rrweb-cssom": "^0.8.0" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.2" }, "engines": { - "node": ">=18" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/inspect-js" } }, - "node_modules/data-urls": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz", - "integrity": "sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==", - "dev": true, + "node_modules/data-view-byte-offset": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz", + "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==", "license": "MIT", "dependencies": { - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.0.0" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-data-view": "^1.0.1" }, "engines": { - "node": ">=18" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/dataloader": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz", - "integrity": "sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g==", + "version": "2.2.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/dataloader/-/dataloader-2.2.3.tgz", + "integrity": "sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA==", + "dev": true, + "license": "MIT" + }, + "node_modules/debounce": { + "version": "1.2.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/debounce/-/debounce-1.2.1.tgz", + "integrity": "sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug==", "dev": true, "license": "MIT" }, "node_modules/debug": { "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "license": "MIT", "dependencies": { "ms": "2.1.2" @@ -4022,12 +6857,15 @@ } } }, - "node_modules/decimal.js": { - "version": "10.5.0", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz", - "integrity": "sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw==", + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } }, "node_modules/dedent": { "version": "0.7.0", @@ -4044,7 +6882,7 @@ }, "node_modules/deepmerge": { "version": "4.3.1", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/deepmerge/-/deepmerge-4.3.1.tgz", "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, "license": "MIT", @@ -4065,17 +6903,20 @@ } }, "node_modules/define-data-property": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", - "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "version": "1.1.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.1", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/define-properties": { @@ -4117,24 +6958,48 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "node_modules/dependency-graph": { + "version": "0.11.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", + "dev": true, "license": "MIT", "engines": { - "node": ">=0.4.0" + "node": ">= 0.6.0" } }, "node_modules/deprecation": { "version": "2.3.1", - "resolved": "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/deprecation/-/deprecation-2.3.1.tgz", "integrity": "sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==", "license": "ISC" }, + "node_modules/detect-indent": { + "version": "6.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/detect-indent/-/detect-indent-6.1.0.tgz", + "integrity": "sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/detect-libc": { + "version": "1.0.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==", + "dev": true, + "license": "Apache-2.0", + "bin": { + "detect-libc": "bin/detect-libc.js" + }, + "engines": { + "node": ">=0.10" + } + }, "node_modules/detect-newline": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/detect-newline/-/detect-newline-3.1.0.tgz", "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", "dev": true, "license": "MIT", @@ -4152,16 +7017,6 @@ "node": ">=0.3.1" } }, - "node_modules/diff-sequences": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz", - "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -4174,52 +7029,60 @@ "node": ">=8" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" + "no-case": "^3.0.4", + "tslib": "^2.0.3" } }, "node_modules/dotenv": { - "version": "16.3.1", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz", - "integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==", + "version": "16.6.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/dotenv/-/dotenv-16.6.1.tgz", + "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==", "license": "BSD-2-Clause", "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/motdotla/dotenv?sponsor=1" + "url": "https://dotenvx.com" } }, "node_modules/dset": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/dset/-/dset-3.1.3.tgz", - "integrity": "sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ==", "dev": true, "license": "MIT", "engines": { "node": ">=4" } }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/eastasianwidth": { "version": "0.2.0", - "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==", "dev": true, "license": "MIT" }, "node_modules/elastic-apm-node": { "version": "4.10.0", - "resolved": "https://registry.npmjs.org/elastic-apm-node/-/elastic-apm-node-4.10.0.tgz", - "integrity": "sha512-QmnKLArA84lJ4mNoUTi9qMUfLE1nUeFLB+VO/7iG6UOTiAdR5Wxk0nu3SpcgFe+tr+4GkyXM2xXdmL2XYfQ1Qg==", "license": "BSD-2-Clause", "dependencies": { "@elastic/ecs-pino-format": "^1.5.0", @@ -4265,15 +7128,15 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.610", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.610.tgz", - "integrity": "sha512-mqi2oL1mfeHYtOdCxbPQYV/PL7YrQlxbvFEZ0Ee8GbDdShimqt2/S6z2RWqysuvlwdOrQdqvE0KZrBTipAeJzg==", + "version": "1.5.259", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/electron-to-chromium/-/electron-to-chromium-1.5.259.tgz", + "integrity": "sha512-I+oLXgpEJzD6Cwuwt1gYjxsDmu/S/Kd41mmLA3O+/uH2pFRO/DvOjUyGozL8j3KeLV6WyZ7ssPwELMsXCcsJAQ==", "dev": true, "license": "ISC" }, "node_modules/emittery": { "version": "0.13.1", - "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/emittery/-/emittery-0.13.1.tgz", "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==", "dev": true, "license": "MIT", @@ -4292,7 +7155,7 @@ }, "node_modules/enabled": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/enabled/-/enabled-2.0.0.tgz", "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", "license": "MIT" }, @@ -4305,17 +7168,17 @@ "once": "^1.4.0" } }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "node_modules/environment": { + "version": "1.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/environment/-/environment-1.1.0.tgz", + "integrity": "sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q==", "dev": true, - "license": "BSD-2-Clause", + "license": "MIT", "engines": { - "node": ">=0.12" + "node": ">=18" }, "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/error-callsites": { @@ -4347,50 +7210,65 @@ } }, "node_modules/es-abstract": { - "version": "1.22.3", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz", - "integrity": "sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==", - "license": "MIT", - "dependencies": { - "array-buffer-byte-length": "^1.0.0", - "arraybuffer.prototype.slice": "^1.0.2", - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.5", - "es-set-tostringtag": "^2.0.1", - "es-to-primitive": "^1.2.1", - "function.prototype.name": "^1.1.6", - "get-intrinsic": "^1.2.2", - "get-symbol-description": "^1.0.0", - "globalthis": "^1.0.3", - "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0", - "internal-slot": "^1.0.5", - "is-array-buffer": "^3.0.2", + "version": "1.24.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/es-abstract/-/es-abstract-1.24.0.tgz", + "integrity": "sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg==", + "license": "MIT", + "dependencies": { + "array-buffer-byte-length": "^1.0.2", + "arraybuffer.prototype.slice": "^1.0.4", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "data-view-buffer": "^1.0.2", + "data-view-byte-length": "^1.0.2", + "data-view-byte-offset": "^1.0.1", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "es-set-tostringtag": "^2.1.0", + "es-to-primitive": "^1.3.0", + "function.prototype.name": "^1.1.8", + "get-intrinsic": "^1.3.0", + "get-proto": "^1.0.1", + "get-symbol-description": "^1.1.0", + "globalthis": "^1.0.4", + "gopd": "^1.2.0", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "internal-slot": "^1.1.0", + "is-array-buffer": "^3.0.5", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-typed-array": "^1.1.12", - "is-weakref": "^1.0.2", - "object-inspect": "^1.13.1", + "is-data-view": "^1.0.2", + "is-negative-zero": "^2.0.3", + "is-regex": "^1.2.1", + "is-set": "^2.0.3", + "is-shared-array-buffer": "^1.0.4", + "is-string": "^1.1.1", + "is-typed-array": "^1.1.15", + "is-weakref": "^1.1.1", + "math-intrinsics": "^1.1.0", + "object-inspect": "^1.13.4", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.5.1", - "safe-array-concat": "^1.0.1", - "safe-regex-test": "^1.0.0", - "string.prototype.trim": "^1.2.8", - "string.prototype.trimend": "^1.0.7", - "string.prototype.trimstart": "^1.0.7", - "typed-array-buffer": "^1.0.0", - "typed-array-byte-length": "^1.0.0", - "typed-array-byte-offset": "^1.0.0", - "typed-array-length": "^1.0.4", - "unbox-primitive": "^1.0.2", - "which-typed-array": "^1.1.13" + "object.assign": "^4.1.7", + "own-keys": "^1.0.1", + "regexp.prototype.flags": "^1.5.4", + "safe-array-concat": "^1.1.3", + "safe-push-apply": "^1.0.0", + "safe-regex-test": "^1.1.0", + "set-proto": "^1.0.0", + "stop-iteration-iterator": "^1.1.0", + "string.prototype.trim": "^1.2.10", + "string.prototype.trimend": "^1.0.9", + "string.prototype.trimstart": "^1.0.8", + "typed-array-buffer": "^1.0.3", + "typed-array-byte-length": "^1.0.3", + "typed-array-byte-offset": "^1.0.4", + "typed-array-length": "^1.0.7", + "unbox-primitive": "^1.1.0", + "which-typed-array": "^1.1.19" }, "engines": { "node": ">= 0.4" @@ -4399,39 +7277,73 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-set-tostringtag": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz", - "integrity": "sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q==", + "version": "2.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.2", - "has-tostringtag": "^1.0.0", - "hasown": "^2.0.0" + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/es-shim-unscopables": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz", - "integrity": "sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==", + "version": "1.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz", + "integrity": "sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw==", "dev": true, "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "version": "1.3.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/es-to-primitive/-/es-to-primitive-1.3.0.tgz", + "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==", "license": "MIT", "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "is-callable": "^1.2.7", + "is-date-object": "^1.0.5", + "is-symbol": "^1.0.4" }, "engines": { "node": ">= 0.4" @@ -4441,9 +7353,9 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", "license": "MIT", "engines": { "node": ">=6" @@ -4462,73 +7374,63 @@ } }, "node_modules/eslint": { - "version": "8.57.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz", - "integrity": "sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "version": "9.39.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/eslint/-/eslint-9.39.1.tgz", + "integrity": "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.6.1", - "@eslint/eslintrc": "^2.1.4", - "@eslint/js": "8.57.0", - "@humanwhocodes/config-array": "^0.11.14", + "@eslint-community/eslint-utils": "^4.8.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.21.1", + "@eslint/config-helpers": "^0.4.2", + "@eslint/core": "^0.17.0", + "@eslint/eslintrc": "^3.3.1", + "@eslint/js": "9.39.1", + "@eslint/plugin-kit": "^0.4.1", + "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", - "@nodelib/fs.walk": "^1.2.8", - "@ungap/structured-clone": "^1.2.0", + "@humanwhocodes/retry": "^0.4.2", + "@types/estree": "^1.0.6", "ajv": "^6.12.4", "chalk": "^4.0.0", - "cross-spawn": "^7.0.2", + "cross-spawn": "^7.0.6", "debug": "^4.3.2", - "doctrine": "^3.0.0", "escape-string-regexp": "^4.0.0", - "eslint-scope": "^7.2.2", - "eslint-visitor-keys": "^3.4.3", - "espree": "^9.6.1", - "esquery": "^1.4.2", + "eslint-scope": "^8.4.0", + "eslint-visitor-keys": "^4.2.1", + "espree": "^10.4.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^6.0.1", + "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", - "globals": "^13.19.0", - "graphemer": "^1.4.0", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", - "is-path-inside": "^3.0.3", - "js-yaml": "^4.1.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.4.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "strip-ansi": "^6.0.1", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-config-prettier": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz", - "integrity": "sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==", - "dev": true, - "license": "MIT", - "bin": { - "eslint-config-prettier": "bin/cli.js" + "url": "https://eslint.org/donate" }, "peerDependencies": { - "eslint": ">=7.0.0" + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-import-resolver-node": { @@ -4554,9 +7456,9 @@ } }, "node_modules/eslint-module-utils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz", - "integrity": "sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==", + "version": "2.12.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz", + "integrity": "sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw==", "dev": true, "license": "MIT", "dependencies": { @@ -4573,7 +7475,7 @@ }, "node_modules/eslint-module-utils/node_modules/debug": { "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/debug/-/debug-3.2.7.tgz", "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "license": "MIT", @@ -4582,284 +7484,100 @@ } }, "node_modules/eslint-plugin-import": { - "version": "2.29.1", - "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz", - "integrity": "sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==", + "version": "2.32.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz", + "integrity": "sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA==", "dev": true, "license": "MIT", "dependencies": { - "array-includes": "^3.1.7", - "array.prototype.findlastindex": "^1.2.3", - "array.prototype.flat": "^1.3.2", - "array.prototype.flatmap": "^1.3.2", + "@rtsao/scc": "^1.1.0", + "array-includes": "^3.1.9", + "array.prototype.findlastindex": "^1.2.6", + "array.prototype.flat": "^1.3.3", + "array.prototype.flatmap": "^1.3.3", "debug": "^3.2.7", "doctrine": "^2.1.0", "eslint-import-resolver-node": "^0.3.9", - "eslint-module-utils": "^2.8.0", - "hasown": "^2.0.0", - "is-core-module": "^2.13.1", + "eslint-module-utils": "^2.12.1", + "hasown": "^2.0.2", + "is-core-module": "^2.16.1", "is-glob": "^4.0.3", "minimatch": "^3.1.2", - "object.fromentries": "^2.0.7", - "object.groupby": "^1.0.1", - "object.values": "^1.1.7", + "object.fromentries": "^2.0.8", + "object.groupby": "^1.0.3", + "object.values": "^1.2.1", "semver": "^6.3.1", + "string.prototype.trimend": "^1.0.9", "tsconfig-paths": "^3.15.0" }, "engines": { "node": ">=4" }, - "peerDependencies": { - "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" - } - }, - "node_modules/eslint-plugin-import/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/eslint-plugin-import/node_modules/doctrine": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", - "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/eslint-plugin-import/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/eslint-plugin-import/node_modules/semver": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", - "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/eslint-plugin-jest": { - "version": "27.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz", - "integrity": "sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/utils": "^5.10.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - }, - "peerDependencies": { - "@typescript-eslint/eslint-plugin": "^5.0.0 || ^6.0.0 || ^7.0.0", - "eslint": "^7.0.0 || ^8.0.0", - "jest": "*" - }, - "peerDependenciesMeta": { - "@typescript-eslint/eslint-plugin": { - "optional": true - }, - "jest": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/scope-manager": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz", - "integrity": "sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/types": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz", - "integrity": "sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/typescript-estree": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz", - "integrity": "sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/visitor-keys": "5.62.0", - "debug": "^4.3.4", - "globby": "^11.1.0", - "is-glob": "^4.0.3", - "semver": "^7.3.7", - "tsutils": "^3.21.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9" } }, - "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/utils": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz", - "integrity": "sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==", + "node_modules/eslint-plugin-import/node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "license": "MIT", "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@types/json-schema": "^7.0.9", - "@types/semver": "^7.3.12", - "@typescript-eslint/scope-manager": "5.62.0", - "@typescript-eslint/types": "5.62.0", - "@typescript-eslint/typescript-estree": "5.62.0", - "eslint-scope": "^5.1.1", - "semver": "^7.3.7" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "node_modules/eslint-plugin-jest/node_modules/@typescript-eslint/visitor-keys": { - "version": "5.62.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz", - "integrity": "sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==", + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "5.62.0", - "eslint-visitor-keys": "^3.3.0" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" + "ms": "^2.1.1" } }, - "node_modules/eslint-plugin-jest/node_modules/eslint-scope": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", - "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", "dev": true, - "license": "BSD-2-Clause", + "license": "Apache-2.0", "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^4.1.1" + "esutils": "^2.0.2" }, "engines": { - "node": ">=8.0.0" + "node": ">=0.10.0" } }, - "node_modules/eslint-plugin-jest/node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "node_modules/eslint-plugin-import/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, - "license": "BSD-2-Clause", + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, "engines": { - "node": ">=4.0" + "node": "*" } }, - "node_modules/eslint-plugin-prettier": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz", - "integrity": "sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==", + "node_modules/eslint-plugin-import/node_modules/semver": { + "version": "6.3.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz", + "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==", "dev": true, - "license": "MIT", - "dependencies": { - "prettier-linter-helpers": "^1.0.0", - "synckit": "^0.8.6" - }, - "engines": { - "node": "^14.18.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint-plugin-prettier" - }, - "peerDependencies": { - "@types/eslint": ">=8.0.0", - "eslint": ">=8.0.0", - "eslint-config-prettier": "*", - "prettier": ">=3.0.0" - }, - "peerDependenciesMeta": { - "@types/eslint": { - "optional": true - }, - "eslint-config-prettier": { - "optional": true - } + "license": "ISC", + "bin": { + "semver": "bin/semver.js" } }, "node_modules/eslint-scope": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz", - "integrity": "sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==", + "version": "8.4.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/eslint-scope/-/eslint-scope-8.4.0.tgz", + "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", "dev": true, "license": "BSD-2-Clause", "dependencies": { @@ -4867,7 +7585,7 @@ "estraverse": "^5.2.0" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -4897,6 +7615,19 @@ "concat-map": "0.0.1" } }, + "node_modules/eslint/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/eslint/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", @@ -4911,18 +7642,31 @@ } }, "node_modules/espree": { - "version": "9.6.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz", - "integrity": "sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==", + "version": "10.4.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/espree/-/espree-10.4.0.tgz", + "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", "dev": true, "license": "BSD-2-Clause", "dependencies": { - "acorn": "^8.9.0", + "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^3.4.1" + "eslint-visitor-keys": "^4.2.1" }, "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/espree/node_modules/eslint-visitor-keys": { + "version": "4.2.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", + "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" }, "funding": { "url": "https://opencollective.com/eslint" @@ -4930,7 +7674,7 @@ }, "node_modules/esprima": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true, "license": "BSD-2-Clause", @@ -4944,8 +7688,6 @@ }, "node_modules/esquery": { "version": "1.5.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz", - "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -4999,7 +7741,7 @@ }, "node_modules/eventemitter3": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/eventemitter3/-/eventemitter3-5.0.1.tgz", "integrity": "sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA==", "dev": true, "license": "MIT" @@ -5015,7 +7757,7 @@ }, "node_modules/execa": { "version": "5.1.1", - "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/execa/-/execa-5.1.1.tgz", "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "license": "MIT", @@ -5037,84 +7779,43 @@ "url": "https://github.com/sindresorhus/execa?sponsor=1" } }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", + "node_modules/exit-x": { + "version": "0.2.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/exit-x/-/exit-x-0.2.2.tgz", + "integrity": "sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ==", "dev": true, + "license": "MIT", "engines": { "node": ">= 0.8.0" } }, "node_modules/expect": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz", - "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/expect/-/expect-30.2.0.tgz", + "integrity": "sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/expect-utils": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0" - }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "license": "MIT", - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "@jest/expect-utils": "30.2.0", + "@jest/get-type": "30.1.0", + "jest-matcher-utils": "30.2.0", + "jest-message-util": "30.2.0", + "jest-mock": "30.2.0", + "jest-util": "30.2.0" }, "engines": { - "node": ">=4" - } - }, - "node_modules/extract-files": { - "version": "11.0.0", - "resolved": "https://registry.npmjs.org/extract-files/-/extract-files-11.0.0.tgz", - "integrity": "sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.20 || >= 14.13" - }, - "funding": { - "url": "https://github.com/sponsors/jaydenseric" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/fast-decode-uri-component": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz", - "integrity": "sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg==", - "dev": true, - "license": "MIT" - }, "node_modules/fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true, "license": "MIT" }, - "node_modules/fast-diff": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz", - "integrity": "sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==", - "dev": true, - "license": "Apache-2.0" - }, "node_modules/fast-glob": { "version": "3.3.2", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", - "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "license": "MIT", "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -5153,16 +7854,6 @@ "dev": true, "license": "MIT" }, - "node_modules/fast-querystring": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz", - "integrity": "sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-decode-uri-component": "^1.0.1" - } - }, "node_modules/fast-redact": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz", @@ -5189,8 +7880,6 @@ }, "node_modules/fastq": { "version": "1.15.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz", - "integrity": "sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==", "license": "ISC", "dependencies": { "reusify": "^1.0.4" @@ -5198,7 +7887,7 @@ }, "node_modules/fb-watchman": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/fb-watchman/-/fb-watchman-2.0.2.tgz", "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==", "dev": true, "license": "Apache-2.0", @@ -5206,12 +7895,59 @@ "bser": "2.1.1" } }, + "node_modules/fbjs": { + "version": "3.0.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/fbjs/-/fbjs-3.0.5.tgz", + "integrity": "sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-fetch": "^3.1.5", + "fbjs-css-vars": "^1.0.0", + "loose-envify": "^1.0.0", + "object-assign": "^4.1.0", + "promise": "^7.1.1", + "setimmediate": "^1.0.5", + "ua-parser-js": "^1.0.35" + } + }, + "node_modules/fbjs-css-vars": { + "version": "1.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz", + "integrity": "sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ==", + "dev": true, + "license": "MIT" + }, "node_modules/fecha": { "version": "4.2.3", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/fecha/-/fecha-4.2.3.tgz", "integrity": "sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==", "license": "MIT" }, + "node_modules/fetch-blob": { + "version": "3.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/fetch-blob/-/fetch-blob-3.2.0.tgz", + "integrity": "sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "paypal", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "dependencies": { + "node-domexception": "^1.0.0", + "web-streams-polyfill": "^3.0.3" + }, + "engines": { + "node": "^12.20 || >= 14.13" + } + }, "node_modules/figures": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", @@ -5237,22 +7973,22 @@ } }, "node_modules/file-entry-cache": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", - "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "version": "8.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, "license": "MIT", "dependencies": { - "flat-cache": "^3.0.4" + "flat-cache": "^4.0.0" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16.0.0" } }, "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "version": "7.1.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", "license": "MIT", "dependencies": { "to-regex-range": "^5.0.1" @@ -5278,24 +8014,23 @@ } }, "node_modules/flat-cache": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz", - "integrity": "sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==", + "version": "4.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, "license": "MIT", "dependencies": { "flatted": "^3.2.9", - "keyv": "^4.5.3", - "rimraf": "^3.0.2" + "keyv": "^4.5.4" }, "engines": { - "node": "^10.12.0 || >=12.0.0" + "node": ">=16" } }, "node_modules/flatted": { - "version": "3.2.9", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz", - "integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==", + "version": "3.3.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/flatted/-/flatted-3.3.3.tgz", + "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", "dev": true, "license": "ISC" }, @@ -5305,47 +8040,62 @@ "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", "license": "MIT" }, - "node_modules/follow-redirects": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz", - "integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], + "node_modules/for-each": { + "version": "0.3.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/for-each/-/for-each-0.3.5.tgz", + "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==", "license": "MIT", + "dependencies": { + "is-callable": "^1.2.7" + }, "engines": { - "node": ">=4.0" + "node": ">= 0.4" }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/for-each": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", - "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", - "license": "MIT", + "node_modules/foreground-child": { + "version": "3.3.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/foreground-child/-/foreground-child-3.3.1.tgz", + "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==", + "dev": true, + "license": "ISC", "dependencies": { - "is-callable": "^1.1.3" + "cross-spawn": "^7.0.6", + "signal-exit": "^4.0.1" + }, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "node_modules/foreground-child/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/formdata-polyfill": { + "version": "4.0.10", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz", + "integrity": "sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==", + "dev": true, "license": "MIT", "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" + "fetch-blob": "^3.1.2" }, "engines": { - "node": ">= 6" + "node": ">=12.20.0" } }, "node_modules/forwarded-parse": { @@ -5362,7 +8112,7 @@ }, "node_modules/fsevents": { "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, @@ -5385,15 +8135,17 @@ } }, "node_modules/function.prototype.name": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", - "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", + "version": "1.1.8", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/function.prototype.name/-/function.prototype.name-1.1.8.tgz", + "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "functions-have-names": "^1.2.3" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "functions-have-names": "^1.2.3", + "hasown": "^2.0.2", + "is-callable": "^1.2.7" }, "engines": { "node": ">= 0.4" @@ -5404,16 +8156,25 @@ }, "node_modules/functions-have-names": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/functions-have-names/-/functions-have-names-1.2.3.tgz", "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", "license": "MIT", "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/generator-function": { + "version": "2.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/generator-function/-/generator-function-2.0.1.tgz", + "integrity": "sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/gensync": { "version": "1.0.0-beta.2", - "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", "dev": true, "license": "MIT", @@ -5430,16 +8191,38 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-east-asian-width": { + "version": "1.4.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz", + "integrity": "sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/get-intrinsic": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", - "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", + "version": "1.3.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", "license": "MIT", "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", - "has-proto": "^1.0.1", - "has-symbols": "^1.0.3", - "hasown": "^2.0.0" + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5447,7 +8230,7 @@ }, "node_modules/get-package-type": { "version": "0.1.0", - "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/get-package-type/-/get-package-type-0.1.0.tgz", "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", "dev": true, "license": "MIT", @@ -5455,9 +8238,22 @@ "node": ">=8.0.0" } }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/get-stream": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/get-stream/-/get-stream-6.0.1.tgz", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "dev": true, "license": "MIT", @@ -5469,13 +8265,14 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/get-symbol-description/-/get-symbol-description-1.1.0.tgz", + "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -5488,7 +8285,6 @@ "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "deprecated": "Glob versions prior to v9 are no longer supported", "license": "ISC", "dependencies": { "fs.realpath": "^1.0.0", @@ -5541,28 +8337,26 @@ } }, "node_modules/globals": { - "version": "13.24.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz", - "integrity": "sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==", + "version": "14.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", "dev": true, "license": "MIT", - "dependencies": { - "type-fest": "^0.20.2" - }, "engines": { - "node": ">=8" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "version": "1.0.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/globalthis/-/globalthis-1.0.4.tgz", + "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==", "license": "MIT", "dependencies": { - "define-properties": "^1.1.3" + "define-properties": "^1.2.1", + "gopd": "^1.0.1" }, "engines": { "node": ">= 0.4" @@ -5592,12 +8386,12 @@ } }, "node_modules/gopd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", - "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "version": "1.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", "license": "MIT", - "dependencies": { - "get-intrinsic": "^1.1.3" + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -5617,30 +8411,30 @@ "license": "MIT" }, "node_modules/graphql": { - "version": "16.8.1", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz", - "integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==", + "version": "16.12.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/graphql/-/graphql-16.12.0.tgz", + "integrity": "sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ==", "license": "MIT", "engines": { "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" } }, "node_modules/graphql-config": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/graphql-config/-/graphql-config-5.0.3.tgz", - "integrity": "sha512-BNGZaoxIBkv9yy6Y7omvsaBUHOzfFcII3UN++tpH8MGOKFPFkCPZuwx09ggANMt8FgyWP1Od8SWPmrUEZca4NQ==", + "version": "5.1.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/graphql-config/-/graphql-config-5.1.5.tgz", + "integrity": "sha512-mG2LL1HccpU8qg5ajLROgdsBzx/o2M6kgI3uAmoaXiSH9PCUbtIyLomLqUtCFaAeG2YCFsl0M5cfQ9rKmDoMVA==", "dev": true, "license": "MIT", "dependencies": { "@graphql-tools/graphql-file-loader": "^8.0.0", "@graphql-tools/json-file-loader": "^8.0.0", - "@graphql-tools/load": "^8.0.0", + "@graphql-tools/load": "^8.1.0", "@graphql-tools/merge": "^9.0.0", "@graphql-tools/url-loader": "^8.0.0", "@graphql-tools/utils": "^10.0.0", "cosmiconfig": "^8.1.0", - "jiti": "^1.18.2", - "minimatch": "^4.2.3", + "jiti": "^2.0.0", + "minimatch": "^9.0.5", "string-env-interpolation": "^1.0.1", "tslib": "^2.4.0" }, @@ -5657,28 +8451,27 @@ } } }, - "node_modules/graphql-config/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "node_modules/graphql-config/node_modules/jiti": { + "version": "2.6.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jiti/-/jiti-2.6.1.tgz", + "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", "dev": true, "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" + "bin": { + "jiti": "lib/jiti-cli.mjs" } }, - "node_modules/graphql-config/node_modules/minimatch": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-4.2.3.tgz", - "integrity": "sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng==", + "node_modules/graphql-request": { + "version": "7.3.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/graphql-request/-/graphql-request-7.3.4.tgz", + "integrity": "sha512-kbpP5dw9hHIL5jN/2VS2JU0/Sc1hlsj7zrYBKSDiYd5iG8QfX7P79u26ZBi84eAijsqYVZEpLvCCwEzVxscWhg==", "dev": true, - "license": "ISC", + "license": "MIT", "dependencies": { - "brace-expansion": "^1.1.7" + "@graphql-typed-document-node/core": "^3.2.0" }, - "engines": { - "node": ">=10" + "peerDependencies": { + "graphql": "14 - 16" } }, "node_modules/graphql-tag": { @@ -5697,19 +8490,34 @@ } }, "node_modules/graphql-ws": { - "version": "5.14.2", - "resolved": "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.14.2.tgz", - "integrity": "sha512-LycmCwhZ+Op2GlHz4BZDsUYHKRiiUz+3r9wbhBATMETNlORQJAaFlAgTFoeRh6xQoQegwYwIylVD1Qns9/DA3w==", + "version": "6.0.6", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/graphql-ws/-/graphql-ws-6.0.6.tgz", + "integrity": "sha512-zgfER9s+ftkGKUZgc0xbx8T7/HMO4AV5/YuYiFc+AtgcO5T0v8AxYYNQ+ltzuzDZgNkYJaFspm5MMYLjQzrkmw==", "dev": true, "license": "MIT", - "workspaces": [ - "website" - ], "engines": { - "node": ">=10" + "node": ">=20" }, "peerDependencies": { - "graphql": ">=0.11 <=16" + "@fastify/websocket": "^10 || ^11", + "crossws": "~0.3", + "graphql": "^15.10.1 || ^16", + "uWebSockets.js": "^20", + "ws": "^8" + }, + "peerDependenciesMeta": { + "@fastify/websocket": { + "optional": true + }, + "crossws": { + "optional": true + }, + "uWebSockets.js": { + "optional": true + }, + "ws": { + "optional": true + } } }, "node_modules/handlebars": { @@ -5756,10 +8564,13 @@ } }, "node_modules/has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "version": "1.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/has-bigints/-/has-bigints-1.1.0.tgz", + "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==", "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -5774,22 +8585,25 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", - "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "version": "1.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.2" + "es-define-property": "^1.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/has-proto": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", - "integrity": "sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==", + "version": "1.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/has-proto/-/has-proto-1.2.0.tgz", + "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==", "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.0" + }, "engines": { "node": ">= 0.4" }, @@ -5798,9 +8612,9 @@ } }, "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "version": "1.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -5810,12 +8624,12 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -5825,9 +8639,9 @@ } }, "node_modules/hasown": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", - "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "version": "2.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", "license": "MIT", "dependencies": { "function-bind": "^1.1.2" @@ -5836,22 +8650,20 @@ "node": ">= 0.4" } }, - "node_modules/html-encoding-sniffer": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz", - "integrity": "sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==", + "node_modules/header-case": { + "version": "2.0.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/header-case/-/header-case-2.0.4.tgz", + "integrity": "sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q==", "dev": true, "license": "MIT", "dependencies": { - "whatwg-encoding": "^3.1.1" - }, - "engines": { - "node": ">=18" + "capital-case": "^1.0.4", + "tslib": "^2.0.3" } }, "node_modules/html-escaper": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true, "license": "MIT" @@ -5867,7 +8679,7 @@ }, "node_modules/http-proxy-agent": { "version": "7.0.2", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz", "integrity": "sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==", "dev": true, "license": "MIT", @@ -5881,7 +8693,7 @@ }, "node_modules/https-proxy-agent": { "version": "7.0.6", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz", "integrity": "sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==", "dev": true, "license": "MIT", @@ -5895,7 +8707,7 @@ }, "node_modules/human-signals": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/human-signals/-/human-signals-2.1.0.tgz", "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true, "license": "Apache-2.0", @@ -5913,31 +8725,35 @@ } }, "node_modules/husky": { - "version": "8.0.3", - "resolved": "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz", - "integrity": "sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==", + "version": "9.1.7", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/husky/-/husky-9.1.7.tgz", + "integrity": "sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA==", "dev": true, "license": "MIT", "bin": { - "husky": "lib/bin.js" + "husky": "bin.js" }, "engines": { - "node": ">=14" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/typicode" } }, "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "version": "0.7.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/iconv-lite/-/iconv-lite-0.7.0.tgz", + "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==", "license": "MIT", "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" + "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" } }, "node_modules/ieee754": { @@ -5962,17 +8778,23 @@ }, "node_modules/ignore": { "version": "5.3.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz", - "integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==", "license": "MIT", "engines": { "node": ">= 4" } }, + "node_modules/immutable": { + "version": "3.7.6", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/immutable/-/immutable-3.7.6.tgz", + "integrity": "sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw==", + "dev": true, + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/import-fresh": { "version": "3.3.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", - "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "license": "MIT", "dependencies": { @@ -5996,10 +8818,21 @@ "node": ">=4" } }, + "node_modules/import-from": { + "version": "4.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/import-from/-/import-from-4.0.0.tgz", + "integrity": "sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.2" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/import-in-the-middle": { "version": "1.11.3", - "resolved": "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.11.3.tgz", - "integrity": "sha512-tNpKEb4AjZrCyrxi+Eyu43h5ig0O8ZRFSXPHh/00/o+4P4pKzVEW/m5lsVtsAT7fCIgmQOAPjdqecGDsBXRxsw==", "license": "Apache-2.0", "dependencies": { "acorn": "^8.8.2", @@ -6009,9 +8842,9 @@ } }, "node_modules/import-local": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz", - "integrity": "sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg==", + "version": "3.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/import-local/-/import-local-3.2.0.tgz", + "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==", "dev": true, "license": "MIT", "dependencies": { @@ -6051,7 +8884,6 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "license": "ISC", "dependencies": { "once": "^1.3.0", @@ -6065,16 +8897,16 @@ "license": "ISC" }, "node_modules/inquirer": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz", - "integrity": "sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg==", + "version": "8.2.7", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/inquirer/-/inquirer-8.2.7.tgz", + "integrity": "sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA==", "license": "MIT", "dependencies": { + "@inquirer/external-editor": "^1.0.0", "ansi-escapes": "^4.2.1", "chalk": "^4.1.1", "cli-cursor": "^3.1.0", "cli-width": "^3.0.0", - "external-editor": "^3.0.3", "figures": "^3.0.0", "lodash": "^4.17.21", "mute-stream": "0.0.8", @@ -6091,28 +8923,55 @@ } }, "node_modules/internal-slot": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz", - "integrity": "sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg==", + "version": "1.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/internal-slot/-/internal-slot-1.1.0.tgz", + "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==", "license": "MIT", "dependencies": { - "get-intrinsic": "^1.2.2", - "hasown": "^2.0.0", - "side-channel": "^1.0.4" + "es-errors": "^1.3.0", + "hasown": "^2.0.2", + "side-channel": "^1.1.0" }, "engines": { "node": ">= 0.4" } }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/invariant/-/invariant-2.2.4.tgz", + "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", + "dev": true, + "license": "MIT", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/is-absolute": { + "version": "1.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-array-buffer": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz", - "integrity": "sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==", + "version": "3.0.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-array-buffer/-/is-array-buffer-3.0.5.tgz", + "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.0", - "is-typed-array": "^1.1.10" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6125,26 +8984,48 @@ "dev": true, "license": "MIT" }, + "node_modules/is-async-function": { + "version": "2.1.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-async-function/-/is-async-function-2.1.1.tgz", + "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==", + "license": "MIT", + "dependencies": { + "async-function": "^1.0.0", + "call-bound": "^1.0.3", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "version": "1.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-bigint/-/is-bigint-1.1.0.tgz", + "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==", "license": "MIT", "dependencies": { - "has-bigints": "^1.0.1" + "has-bigints": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "version": "1.2.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-boolean-object/-/is-boolean-object-1.2.2.tgz", + "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -6155,7 +9036,7 @@ }, "node_modules/is-callable": { "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-callable/-/is-callable-1.2.7.tgz", "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", "license": "MIT", "engines": { @@ -6166,24 +9047,45 @@ } }, "node_modules/is-core-module": { - "version": "2.13.1", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", - "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", + "version": "2.16.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-core-module/-/is-core-module-2.16.1.tgz", + "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==", + "license": "MIT", + "dependencies": { + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-data-view": { + "version": "1.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-data-view/-/is-data-view-1.0.2.tgz", + "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==", "license": "MIT", "dependencies": { - "hasown": "^2.0.0" + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "version": "1.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-date-object/-/is-date-object-1.1.0.tgz", + "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==", "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.2", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -6201,6 +9103,21 @@ "node": ">=0.10.0" } }, + "node_modules/is-finalizationregistry": { + "version": "1.1.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz", + "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-finite": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz", @@ -6214,21 +9131,17 @@ } }, "node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "dev": true, + "version": "3.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "license": "MIT", "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">=8" } }, "node_modules/is-generator-fn": { "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-generator-fn/-/is-generator-fn-2.1.0.tgz", "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", "dev": true, "license": "MIT", @@ -6236,6 +9149,25 @@ "node": ">=6" } }, + "node_modules/is-generator-function": { + "version": "1.1.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-generator-function/-/is-generator-function-1.1.2.tgz", + "integrity": "sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.4", + "generator-function": "^2.0.0", + "get-proto": "^1.0.1", + "has-tostringtag": "^1.0.2", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", @@ -6266,10 +9198,32 @@ "node": ">=8" } }, - "node_modules/is-negative-zero": { + "node_modules/is-lower-case": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-lower-case/-/is-lower-case-2.0.2.tgz", + "integrity": "sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/is-map": { + "version": "2.0.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-map/-/is-map-2.0.3.tgz", + "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-negative-zero": { + "version": "2.0.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "license": "MIT", "engines": { "node": ">= 0.4" @@ -6280,14 +9234,14 @@ }, "node_modules/is-node-process": { "version": "1.2.0", - "resolved": "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-node-process/-/is-node-process-1.2.0.tgz", "integrity": "sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw==", "dev": true, "license": "MIT" }, "node_modules/is-number": { "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "license": "MIT", "engines": { @@ -6295,12 +9249,13 @@ } }, "node_modules/is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "version": "1.1.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-number-object/-/is-number-object-1.1.1.tgz", + "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==", "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -6327,31 +9282,42 @@ "node": ">=8" } }, - "node_modules/is-plain-object": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", - "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "node_modules/is-regex": { + "version": "1.2.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-regex/-/is-regex-1.2.1.tgz", + "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==", "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, "engines": { - "node": ">=0.10.0" + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-potential-custom-element-name": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", - "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", + "node_modules/is-relative": { + "version": "1.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", "dev": true, - "license": "MIT" - }, - "node_modules/is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" + "is-unc-path": "^1.0.0" }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-set": { + "version": "2.0.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-set/-/is-set-2.0.3.tgz", + "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -6360,12 +9326,15 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz", + "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2" + "call-bound": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -6377,20 +9346,100 @@ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", "license": "MIT", "engines": { - "node": ">=8" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-string": { + "version": "1.1.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-string/-/is-string-1.1.1.tgz", + "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.3", + "has-tostringtag": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.1.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-symbol/-/is-symbol-1.1.1.tgz", + "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "has-symbols": "^1.1.0", + "safe-regex-test": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typed-array": { + "version": "1.1.15", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-typed-array/-/is-typed-array-1.1.15.tgz", + "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==", + "license": "MIT", + "dependencies": { + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-unc-path": { + "version": "1.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "unc-path-regex": "^0.1.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "license": "MIT", + "engines": { + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "node_modules/is-upper-case": { + "version": "2.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-upper-case/-/is-upper-case-2.0.2.tgz", + "integrity": "sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==", + "dev": true, "license": "MIT", "dependencies": { - "has-tostringtag": "^1.0.0" - }, + "tslib": "^2.0.3" + } + }, + "node_modules/is-weakmap": { + "version": "2.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-weakmap/-/is-weakmap-2.0.2.tgz", + "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==", + "license": "MIT", "engines": { "node": ">= 0.4" }, @@ -6398,13 +9447,13 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "node_modules/is-weakref": { + "version": "1.1.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-weakref/-/is-weakref-1.1.1.tgz", + "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==", "license": "MIT", "dependencies": { - "has-symbols": "^1.0.2" + "call-bound": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -6413,13 +9462,14 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-typed-array": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz", - "integrity": "sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==", + "node_modules/is-weakset": { + "version": "2.0.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-weakset/-/is-weakset-2.0.4.tgz", + "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==", "license": "MIT", "dependencies": { - "which-typed-array": "^1.1.11" + "call-bound": "^1.0.3", + "get-intrinsic": "^1.2.6" }, "engines": { "node": ">= 0.4" @@ -6428,46 +9478,32 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-weakref": { + "node_modules/is-windows": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "dev": true, "license": "MIT", - "dependencies": { - "call-bind": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" + "engines": { + "node": ">=0.10.0" } }, "node_modules/isarray": { "version": "2.0.5", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/isarray/-/isarray-2.0.5.tgz", "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", "license": "MIT" }, "node_modules/isexe": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", "dev": true, "license": "ISC" }, "node_modules/isomorphic-ws": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz", "integrity": "sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==", "dev": true, "license": "MIT", @@ -6477,7 +9513,7 @@ }, "node_modules/istanbul-lib-coverage": { "version": "3.2.2", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz", "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==", "dev": true, "license": "BSD-3-Clause", @@ -6486,15 +9522,15 @@ } }, "node_modules/istanbul-lib-instrument": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz", - "integrity": "sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA==", + "version": "6.0.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz", + "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==", "dev": true, "license": "BSD-3-Clause", "dependencies": { - "@babel/core": "^7.12.3", - "@babel/parser": "^7.14.7", - "@istanbuljs/schema": "^0.1.2", + "@babel/core": "^7.23.9", + "@babel/parser": "^7.23.9", + "@istanbuljs/schema": "^0.1.3", "istanbul-lib-coverage": "^3.2.0", "semver": "^7.5.4" }, @@ -6504,7 +9540,7 @@ }, "node_modules/istanbul-lib-report": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "license": "BSD-3-Clause", @@ -6519,7 +9555,7 @@ }, "node_modules/istanbul-lib-report/node_modules/make-dir": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/make-dir/-/make-dir-4.0.0.tgz", "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "license": "MIT", @@ -6534,34 +9570,24 @@ } }, "node_modules/istanbul-lib-source-maps": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz", - "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==", + "version": "5.0.6", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz", + "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==", "dev": true, "license": "BSD-3-Clause", "dependencies": { + "@jridgewell/trace-mapping": "^0.3.23", "debug": "^4.1.1", - "istanbul-lib-coverage": "^3.0.0", - "source-map": "^0.6.1" + "istanbul-lib-coverage": "^3.0.0" }, "engines": { "node": ">=10" } }, - "node_modules/istanbul-lib-source-maps/node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/istanbul-reports": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", - "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", + "version": "3.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/istanbul-reports/-/istanbul-reports-3.2.0.tgz", + "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==", "dev": true, "license": "BSD-3-Clause", "dependencies": { @@ -6572,23 +9598,39 @@ "node": ">=8" } }, + "node_modules/jackspeak": { + "version": "3.4.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jackspeak/-/jackspeak-3.4.3.tgz", + "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "@isaacs/cliui": "^8.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + }, + "optionalDependencies": { + "@pkgjs/parseargs": "^0.11.0" + } + }, "node_modules/jest": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz", - "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest/-/jest-30.2.0.tgz", + "integrity": "sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A==", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "^29.7.0", - "@jest/types": "^29.6.3", - "import-local": "^3.0.2", - "jest-cli": "^29.7.0" + "@jest/core": "30.2.0", + "@jest/types": "30.2.0", + "import-local": "^3.2.0", + "jest-cli": "30.2.0" }, "bin": { "jest": "bin/jest.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -6600,56 +9642,56 @@ } }, "node_modules/jest-changed-files": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz", - "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-changed-files/-/jest-changed-files-30.2.0.tgz", + "integrity": "sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ==", "dev": true, "license": "MIT", "dependencies": { - "execa": "^5.0.0", - "jest-util": "^29.7.0", + "execa": "^5.1.1", + "jest-util": "30.2.0", "p-limit": "^3.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-circus": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz", - "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-circus/-/jest-circus-30.2.0.tgz", + "integrity": "sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/expect": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/environment": "30.2.0", + "@jest/expect": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", - "chalk": "^4.0.0", + "chalk": "^4.1.2", "co": "^4.6.0", - "dedent": "^1.0.0", - "is-generator-fn": "^2.0.0", - "jest-each": "^29.7.0", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", + "dedent": "^1.6.0", + "is-generator-fn": "^2.1.0", + "jest-each": "30.2.0", + "jest-matcher-utils": "30.2.0", + "jest-message-util": "30.2.0", + "jest-runtime": "30.2.0", + "jest-snapshot": "30.2.0", + "jest-util": "30.2.0", "p-limit": "^3.1.0", - "pretty-format": "^29.7.0", - "pure-rand": "^6.0.0", + "pretty-format": "30.2.0", + "pure-rand": "^7.0.0", "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "stack-utils": "^2.0.6" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-circus/node_modules/dedent": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz", - "integrity": "sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg==", + "version": "1.7.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/dedent/-/dedent-1.7.0.tgz", + "integrity": "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==", "dev": true, "license": "MIT", "peerDependencies": { @@ -6662,29 +9704,28 @@ } }, "node_modules/jest-cli": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz", - "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-cli/-/jest-cli-30.2.0.tgz", + "integrity": "sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/core": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "create-jest": "^29.7.0", - "exit": "^0.1.2", - "import-local": "^3.0.2", - "jest-config": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "yargs": "^17.3.1" + "@jest/core": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/types": "30.2.0", + "chalk": "^4.1.2", + "exit-x": "^0.2.2", + "import-local": "^3.2.0", + "jest-config": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", + "yargs": "^17.7.2" }, "bin": { "jest": "bin/jest.js" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0" @@ -6696,220 +9737,237 @@ } }, "node_modules/jest-config": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz", - "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "@babel/core": "^7.11.6", - "@jest/test-sequencer": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-jest": "^29.7.0", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "deepmerge": "^4.2.2", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-circus": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-runner": "^29.7.0", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "micromatch": "^4.0.4", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-config/-/jest-config-30.2.0.tgz", + "integrity": "sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@jest/get-type": "30.1.0", + "@jest/pattern": "30.0.1", + "@jest/test-sequencer": "30.2.0", + "@jest/types": "30.2.0", + "babel-jest": "30.2.0", + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "deepmerge": "^4.3.1", + "glob": "^10.3.10", + "graceful-fs": "^4.2.11", + "jest-circus": "30.2.0", + "jest-docblock": "30.2.0", + "jest-environment-node": "30.2.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.2.0", + "jest-runner": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", + "micromatch": "^4.0.8", "parse-json": "^5.2.0", - "pretty-format": "^29.7.0", + "pretty-format": "30.2.0", "slash": "^3.0.0", "strip-json-comments": "^3.1.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "peerDependencies": { "@types/node": "*", + "esbuild-register": ">=3.4.0", "ts-node": ">=9.0.0" }, "peerDependenciesMeta": { "@types/node": { "optional": true }, + "esbuild-register": { + "optional": true + }, "ts-node": { "optional": true } } }, + "node_modules/jest-config/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "dev": true, + "license": "ISC", + "dependencies": { + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" + }, + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/jest-diff": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz", - "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-diff/-/jest-diff-30.2.0.tgz", + "integrity": "sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "diff-sequences": "^29.6.3", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "@jest/diff-sequences": "30.0.1", + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "pretty-format": "30.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-docblock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz", - "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-docblock/-/jest-docblock-30.2.0.tgz", + "integrity": "sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA==", "dev": true, "license": "MIT", "dependencies": { - "detect-newline": "^3.0.0" + "detect-newline": "^3.1.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-each": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz", - "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-each/-/jest-each-30.2.0.tgz", + "integrity": "sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", - "jest-util": "^29.7.0", - "pretty-format": "^29.7.0" + "@jest/get-type": "30.1.0", + "@jest/types": "30.2.0", + "chalk": "^4.1.2", + "jest-util": "30.2.0", + "pretty-format": "30.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-environment-node": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz", - "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-environment-node/-/jest-environment-node-30.2.0.tgz", + "integrity": "sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/environment": "30.2.0", + "@jest/fake-timers": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", - "jest-mock": "^29.7.0", - "jest-util": "^29.7.0" + "jest-mock": "30.2.0", + "jest-util": "30.2.0", + "jest-validate": "30.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" - } - }, - "node_modules/jest-get-type": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz", - "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-haste-map": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz", - "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-haste-map/-/jest-haste-map-30.2.0.tgz", + "integrity": "sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "@types/graceful-fs": "^4.1.3", + "@jest/types": "30.2.0", "@types/node": "*", - "anymatch": "^3.0.3", - "fb-watchman": "^2.0.0", - "graceful-fs": "^4.2.9", - "jest-regex-util": "^29.6.3", - "jest-util": "^29.7.0", - "jest-worker": "^29.7.0", - "micromatch": "^4.0.4", + "anymatch": "^3.1.3", + "fb-watchman": "^2.0.2", + "graceful-fs": "^4.2.11", + "jest-regex-util": "30.0.1", + "jest-util": "30.2.0", + "jest-worker": "30.2.0", + "micromatch": "^4.0.8", "walker": "^1.0.8" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" }, "optionalDependencies": { - "fsevents": "^2.3.2" + "fsevents": "^2.3.3" } }, "node_modules/jest-leak-detector": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz", - "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-leak-detector/-/jest-leak-detector-30.2.0.tgz", + "integrity": "sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ==", "dev": true, "license": "MIT", "dependencies": { - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "@jest/get-type": "30.1.0", + "pretty-format": "30.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-matcher-utils": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz", - "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz", + "integrity": "sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "pretty-format": "^29.7.0" + "@jest/get-type": "30.1.0", + "chalk": "^4.1.2", + "jest-diff": "30.2.0", + "pretty-format": "30.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-message-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz", - "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-message-util/-/jest-message-util-30.2.0.tgz", + "integrity": "sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw==", "dev": true, "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.12.13", - "@jest/types": "^29.6.3", - "@types/stack-utils": "^2.0.0", - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "micromatch": "^4.0.4", - "pretty-format": "^29.7.0", + "@babel/code-frame": "^7.27.1", + "@jest/types": "30.2.0", + "@types/stack-utils": "^2.0.3", + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "micromatch": "^4.0.8", + "pretty-format": "30.2.0", "slash": "^3.0.0", - "stack-utils": "^2.0.3" + "stack-utils": "^2.0.6" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-mock": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz", - "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-mock/-/jest-mock-30.2.0.tgz", + "integrity": "sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", + "@jest/types": "30.2.0", "@types/node": "*", - "jest-util": "^29.7.0" + "jest-util": "30.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-pnp-resolver": { "version": "1.2.3", - "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz", "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==", "dev": true, "license": "MIT", @@ -6926,147 +9984,176 @@ } }, "node_modules/jest-regex-util": { - "version": "29.6.3", - "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz", - "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==", + "version": "30.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-regex-util/-/jest-regex-util-30.0.1.tgz", + "integrity": "sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA==", "dev": true, "license": "MIT", "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-resolve": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz", - "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-resolve/-/jest-resolve-30.2.0.tgz", + "integrity": "sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "^4.0.0", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-pnp-resolver": "^1.2.2", - "jest-util": "^29.7.0", - "jest-validate": "^29.7.0", - "resolve": "^1.20.0", - "resolve.exports": "^2.0.0", - "slash": "^3.0.0" + "chalk": "^4.1.2", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.2.0", + "jest-pnp-resolver": "^1.2.3", + "jest-util": "30.2.0", + "jest-validate": "30.2.0", + "slash": "^3.0.0", + "unrs-resolver": "^1.7.11" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-resolve-dependencies": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz", - "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-resolve-dependencies/-/jest-resolve-dependencies-30.2.0.tgz", + "integrity": "sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w==", "dev": true, "license": "MIT", "dependencies": { - "jest-regex-util": "^29.6.3", - "jest-snapshot": "^29.7.0" + "jest-regex-util": "30.0.1", + "jest-snapshot": "30.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-runner": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz", - "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-runner/-/jest-runner-30.2.0.tgz", + "integrity": "sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ==", "dev": true, "license": "MIT", "dependencies": { - "@jest/console": "^29.7.0", - "@jest/environment": "^29.7.0", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/console": "30.2.0", + "@jest/environment": "30.2.0", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", - "chalk": "^4.0.0", + "chalk": "^4.1.2", "emittery": "^0.13.1", - "graceful-fs": "^4.2.9", - "jest-docblock": "^29.7.0", - "jest-environment-node": "^29.7.0", - "jest-haste-map": "^29.7.0", - "jest-leak-detector": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-resolve": "^29.7.0", - "jest-runtime": "^29.7.0", - "jest-util": "^29.7.0", - "jest-watcher": "^29.7.0", - "jest-worker": "^29.7.0", + "exit-x": "^0.2.2", + "graceful-fs": "^4.2.11", + "jest-docblock": "30.2.0", + "jest-environment-node": "30.2.0", + "jest-haste-map": "30.2.0", + "jest-leak-detector": "30.2.0", + "jest-message-util": "30.2.0", + "jest-resolve": "30.2.0", + "jest-runtime": "30.2.0", + "jest-util": "30.2.0", + "jest-watcher": "30.2.0", + "jest-worker": "30.2.0", "p-limit": "^3.1.0", "source-map-support": "0.5.13" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-runtime": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz", - "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-runtime/-/jest-runtime-30.2.0.tgz", + "integrity": "sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/environment": "^29.7.0", - "@jest/fake-timers": "^29.7.0", - "@jest/globals": "^29.7.0", - "@jest/source-map": "^29.6.3", - "@jest/test-result": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/environment": "30.2.0", + "@jest/fake-timers": "30.2.0", + "@jest/globals": "30.2.0", + "@jest/source-map": "30.0.1", + "@jest/test-result": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", - "chalk": "^4.0.0", - "cjs-module-lexer": "^1.0.0", - "collect-v8-coverage": "^1.0.0", - "glob": "^7.1.3", - "graceful-fs": "^4.2.9", - "jest-haste-map": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-mock": "^29.7.0", - "jest-regex-util": "^29.6.3", - "jest-resolve": "^29.7.0", - "jest-snapshot": "^29.7.0", - "jest-util": "^29.7.0", + "chalk": "^4.1.2", + "cjs-module-lexer": "^2.1.0", + "collect-v8-coverage": "^1.0.2", + "glob": "^10.3.10", + "graceful-fs": "^4.2.11", + "jest-haste-map": "30.2.0", + "jest-message-util": "30.2.0", + "jest-mock": "30.2.0", + "jest-regex-util": "30.0.1", + "jest-resolve": "30.2.0", + "jest-snapshot": "30.2.0", + "jest-util": "30.2.0", "slash": "^3.0.0", "strip-bom": "^4.0.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, - "node_modules/jest-snapshot": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz", - "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==", + "node_modules/jest-runtime/node_modules/cjs-module-lexer": { + "version": "2.1.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cjs-module-lexer/-/cjs-module-lexer-2.1.1.tgz", + "integrity": "sha512-+CmxIZ/L2vNcEfvNtLdU0ZQ6mbq3FZnwAP2PPTiKP+1QOoKwlKlPgb8UKV0Dds7QVaMnHm+FwSft2VB0s/SLjQ==", "dev": true, - "license": "MIT", + "license": "MIT" + }, + "node_modules/jest-runtime/node_modules/glob": { + "version": "10.5.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/glob/-/glob-10.5.0.tgz", + "integrity": "sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg==", + "dev": true, + "license": "ISC", "dependencies": { - "@babel/core": "^7.11.6", - "@babel/generator": "^7.7.2", - "@babel/plugin-syntax-jsx": "^7.7.2", - "@babel/plugin-syntax-typescript": "^7.7.2", - "@babel/types": "^7.3.3", - "@jest/expect-utils": "^29.7.0", - "@jest/transform": "^29.7.0", - "@jest/types": "^29.6.3", - "babel-preset-current-node-syntax": "^1.0.0", - "chalk": "^4.0.0", - "expect": "^29.7.0", - "graceful-fs": "^4.2.9", - "jest-diff": "^29.7.0", - "jest-get-type": "^29.6.3", - "jest-matcher-utils": "^29.7.0", - "jest-message-util": "^29.7.0", - "jest-util": "^29.7.0", - "natural-compare": "^1.4.0", - "pretty-format": "^29.7.0", - "semver": "^7.5.3" + "foreground-child": "^3.1.0", + "jackspeak": "^3.1.2", + "minimatch": "^9.0.4", + "minipass": "^7.1.2", + "package-json-from-dist": "^1.0.0", + "path-scurry": "^1.11.1" }, - "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "bin": { + "glob": "dist/esm/bin.mjs" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/jest-snapshot": { + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-snapshot/-/jest-snapshot-30.2.0.tgz", + "integrity": "sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/core": "^7.27.4", + "@babel/generator": "^7.27.5", + "@babel/plugin-syntax-jsx": "^7.27.1", + "@babel/plugin-syntax-typescript": "^7.27.1", + "@babel/types": "^7.27.3", + "@jest/expect-utils": "30.2.0", + "@jest/get-type": "30.1.0", + "@jest/snapshot-utils": "30.2.0", + "@jest/transform": "30.2.0", + "@jest/types": "30.2.0", + "babel-preset-current-node-syntax": "^1.2.0", + "chalk": "^4.1.2", + "expect": "30.2.0", + "graceful-fs": "^4.2.11", + "jest-diff": "30.2.0", + "jest-matcher-utils": "30.2.0", + "jest-message-util": "30.2.0", + "jest-util": "30.2.0", + "pretty-format": "30.2.0", + "semver": "^7.7.2", + "synckit": "^0.11.8" + }, + "engines": { + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-snapshot-serializer-ansi": { @@ -7096,45 +10183,87 @@ "node": ">=4" } }, + "node_modules/jest-snapshot/node_modules/@pkgr/core": { + "version": "0.2.9", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@pkgr/core/-/core-0.2.9.tgz", + "integrity": "sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/pkgr" + } + }, + "node_modules/jest-snapshot/node_modules/synckit": { + "version": "0.11.11", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/synckit/-/synckit-0.11.11.tgz", + "integrity": "sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@pkgr/core": "^0.2.9" + }, + "engines": { + "node": "^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/synckit" + } + }, "node_modules/jest-util": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz", - "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-util/-/jest-util-30.2.0.tgz", + "integrity": "sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", + "@jest/types": "30.2.0", "@types/node": "*", - "chalk": "^4.0.0", - "ci-info": "^3.2.0", - "graceful-fs": "^4.2.9", - "picomatch": "^2.2.3" + "chalk": "^4.1.2", + "ci-info": "^4.2.0", + "graceful-fs": "^4.2.11", + "picomatch": "^4.0.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" + } + }, + "node_modules/jest-util/node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/jest-validate": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz", - "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-validate/-/jest-validate-30.2.0.tgz", + "integrity": "sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw==", "dev": true, "license": "MIT", "dependencies": { - "@jest/types": "^29.6.3", - "camelcase": "^6.2.0", - "chalk": "^4.0.0", - "jest-get-type": "^29.6.3", + "@jest/get-type": "30.1.0", + "@jest/types": "30.2.0", + "camelcase": "^6.3.0", + "chalk": "^4.1.2", "leven": "^3.1.0", - "pretty-format": "^29.7.0" + "pretty-format": "30.2.0" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-validate/node_modules/camelcase": { "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/camelcase/-/camelcase-6.3.0.tgz", "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", "dev": true, "license": "MIT", @@ -7146,44 +10275,45 @@ } }, "node_modules/jest-watcher": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz", - "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-watcher/-/jest-watcher-30.2.0.tgz", + "integrity": "sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg==", "dev": true, "license": "MIT", "dependencies": { - "@jest/test-result": "^29.7.0", - "@jest/types": "^29.6.3", + "@jest/test-result": "30.2.0", + "@jest/types": "30.2.0", "@types/node": "*", - "ansi-escapes": "^4.2.1", - "chalk": "^4.0.0", + "ansi-escapes": "^4.3.2", + "chalk": "^4.1.2", "emittery": "^0.13.1", - "jest-util": "^29.7.0", - "string-length": "^4.0.1" + "jest-util": "30.2.0", + "string-length": "^4.0.2" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-worker": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz", - "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-worker/-/jest-worker-30.2.0.tgz", + "integrity": "sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g==", "dev": true, "license": "MIT", "dependencies": { "@types/node": "*", - "jest-util": "^29.7.0", + "@ungap/structured-clone": "^1.3.0", + "jest-util": "30.2.0", "merge-stream": "^2.0.0", - "supports-color": "^8.0.0" + "supports-color": "^8.1.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/jest-worker/node_modules/supports-color": { "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/supports-color/-/supports-color-8.1.1.tgz", "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "license": "MIT", @@ -7199,17 +10329,25 @@ }, "node_modules/jiti": { "version": "1.21.0", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", - "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", "dev": true, "license": "MIT", "bin": { "jiti": "bin/jiti.js" } }, + "node_modules/jose": { + "version": "5.10.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jose/-/jose-5.10.0.tgz", + "integrity": "sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg==", + "dev": true, + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/panva" + } + }, "node_modules/js-tokens": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true, "license": "MIT" @@ -7227,57 +10365,17 @@ "js-yaml": "bin/js-yaml.js" } }, - "node_modules/jsdom": { - "version": "26.1.0", - "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz", - "integrity": "sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg==", - "dev": true, - "license": "MIT", - "dependencies": { - "cssstyle": "^4.2.1", - "data-urls": "^5.0.0", - "decimal.js": "^10.5.0", - "html-encoding-sniffer": "^4.0.0", - "http-proxy-agent": "^7.0.2", - "https-proxy-agent": "^7.0.6", - "is-potential-custom-element-name": "^1.0.1", - "nwsapi": "^2.2.16", - "parse5": "^7.2.1", - "rrweb-cssom": "^0.8.0", - "saxes": "^6.0.0", - "symbol-tree": "^3.2.4", - "tough-cookie": "^5.1.1", - "w3c-xmlserializer": "^5.0.0", - "webidl-conversions": "^7.0.0", - "whatwg-encoding": "^3.1.1", - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^14.1.1", - "ws": "^8.18.0", - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": ">=18" - }, - "peerDependencies": { - "canvas": "^3.0.0" - }, - "peerDependenciesMeta": { - "canvas": { - "optional": true - } - } - }, "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "version": "3.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jsesc/-/jsesc-3.1.0.tgz", + "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==", "dev": true, "license": "MIT", "bin": { "jsesc": "bin/jsesc" }, "engines": { - "node": ">=4" + "node": ">=6" } }, "node_modules/json-bigint": { @@ -7291,7 +10389,7 @@ }, "node_modules/json-buffer": { "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/json-buffer/-/json-buffer-3.0.1.tgz", "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", "dev": true, "license": "MIT" @@ -7305,7 +10403,7 @@ }, "node_modules/json-schema-traverse": { "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true, "license": "MIT" @@ -7324,6 +10422,20 @@ "dev": true, "license": "ISC" }, + "node_modules/json-to-pretty-yaml": { + "version": "1.2.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/json-to-pretty-yaml/-/json-to-pretty-yaml-1.2.2.tgz", + "integrity": "sha512-rvm6hunfCcqegwYaG5T4yKJWxc9FXFgBVrcTZ4XfSVRwa5HA/Xs+vB/Eo9treYYHCeNM0nrSUr82V/M31Urc7A==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "remedial": "^1.0.7", + "remove-trailing-spaces": "^1.0.6" + }, + "engines": { + "node": ">= 0.2.0" + } + }, "node_modules/json5": { "version": "2.2.3", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", @@ -7339,7 +10451,7 @@ }, "node_modules/keyv": { "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/keyv/-/keyv-4.5.4.tgz", "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", "dev": true, "license": "MIT", @@ -7347,25 +10459,15 @@ "json-buffer": "3.0.1" } }, - "node_modules/kleur": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", - "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, "node_modules/kuler": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/kuler/-/kuler-2.0.0.tgz", "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", "license": "MIT" }, "node_modules/leven": { "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/leven/-/leven-3.1.0.tgz", "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", "dev": true, "license": "MIT", @@ -7387,16 +10489,6 @@ "node": ">= 0.8.0" } }, - "node_modules/lilconfig": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", - "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/lines-and-columns": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", @@ -7405,270 +10497,339 @@ "license": "MIT" }, "node_modules/lint-staged": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/lint-staged/-/lint-staged-14.0.1.tgz", - "integrity": "sha512-Mw0cL6HXnHN1ag0mN/Dg4g6sr8uf8sn98w2Oc1ECtFto9tvRF7nkXGJRbx8gPlHyoR0pLyBr2lQHbWwmUHe1Sw==", + "version": "16.2.7", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/lint-staged/-/lint-staged-16.2.7.tgz", + "integrity": "sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow==", "dev": true, "license": "MIT", "dependencies": { - "chalk": "5.3.0", - "commander": "11.0.0", - "debug": "4.3.4", - "execa": "7.2.0", - "lilconfig": "2.1.0", - "listr2": "6.6.1", - "micromatch": "4.0.5", - "pidtree": "0.6.0", - "string-argv": "0.3.2", - "yaml": "2.3.1" + "commander": "^14.0.2", + "listr2": "^9.0.5", + "micromatch": "^4.0.8", + "nano-spawn": "^2.0.0", + "pidtree": "^0.6.0", + "string-argv": "^0.3.2", + "yaml": "^2.8.1" }, "bin": { "lint-staged": "bin/lint-staged.js" }, "engines": { - "node": "^16.14.0 || >=18.0.0" + "node": ">=20.17" }, "funding": { "url": "https://opencollective.com/lint-staged" } }, - "node_modules/lint-staged/node_modules/chalk": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", - "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", + "node_modules/lint-staged/node_modules/ansi-escapes": { + "version": "7.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ansi-escapes/-/ansi-escapes-7.2.0.tgz", + "integrity": "sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw==", "dev": true, "license": "MIT", + "dependencies": { + "environment": "^1.0.0" + }, "engines": { - "node": "^12.17.0 || ^14.13 || >=16.0.0" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lint-staged/node_modules/execa": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", - "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", + "node_modules/lint-staged/node_modules/ansi-regex": { + "version": "6.2.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ansi-regex/-/ansi-regex-6.2.2.tgz", + "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-regex?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/ansi-styles": { + "version": "6.2.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-6.2.3.tgz", + "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/lint-staged/node_modules/cli-cursor": { + "version": "5.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cli-cursor/-/cli-cursor-5.0.0.tgz", + "integrity": "sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw==", "dev": true, "license": "MIT", "dependencies": { - "cross-spawn": "^7.0.3", - "get-stream": "^6.0.1", - "human-signals": "^4.3.0", - "is-stream": "^3.0.0", - "merge-stream": "^2.0.0", - "npm-run-path": "^5.1.0", - "onetime": "^6.0.0", - "signal-exit": "^3.0.7", - "strip-final-newline": "^3.0.0" + "restore-cursor": "^5.0.0" }, "engines": { - "node": "^14.18.0 || ^16.14.0 || >=18.0.0" + "node": ">=18" }, "funding": { - "url": "https://github.com/sindresorhus/execa?sponsor=1" + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lint-staged/node_modules/human-signals": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", - "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", + "node_modules/lint-staged/node_modules/cli-truncate": { + "version": "5.1.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cli-truncate/-/cli-truncate-5.1.1.tgz", + "integrity": "sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A==", "dev": true, - "license": "Apache-2.0", + "license": "MIT", + "dependencies": { + "slice-ansi": "^7.1.0", + "string-width": "^8.0.0" + }, "engines": { - "node": ">=14.18.0" + "node": ">=20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lint-staged/node_modules/is-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", - "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", + "node_modules/lint-staged/node_modules/emoji-regex": { + "version": "10.6.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/emoji-regex/-/emoji-regex-10.6.0.tgz", + "integrity": "sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A==", + "dev": true, + "license": "MIT" + }, + "node_modules/lint-staged/node_modules/is-fullwidth-code-point": { + "version": "5.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz", + "integrity": "sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ==", "dev": true, "license": "MIT", + "dependencies": { + "get-east-asian-width": "^1.3.1" + }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lint-staged/node_modules/listr2": { + "version": "9.0.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/listr2/-/listr2-9.0.5.tgz", + "integrity": "sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g==", + "dev": true, + "license": "MIT", + "dependencies": { + "cli-truncate": "^5.0.0", + "colorette": "^2.0.20", + "eventemitter3": "^5.0.1", + "log-update": "^6.1.0", + "rfdc": "^1.4.1", + "wrap-ansi": "^9.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "engines": { + "node": ">=20.0.0" } }, - "node_modules/lint-staged/node_modules/mimic-fn": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", - "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", + "node_modules/lint-staged/node_modules/log-update": { + "version": "6.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/log-update/-/log-update-6.1.0.tgz", + "integrity": "sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w==", "dev": true, "license": "MIT", + "dependencies": { + "ansi-escapes": "^7.0.0", + "cli-cursor": "^5.0.0", + "slice-ansi": "^7.1.0", + "strip-ansi": "^7.1.0", + "wrap-ansi": "^9.0.0" + }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lint-staged/node_modules/npm-run-path": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz", - "integrity": "sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==", + "node_modules/lint-staged/node_modules/onetime": { + "version": "7.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/onetime/-/onetime-7.0.0.tgz", + "integrity": "sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ==", "dev": true, "license": "MIT", "dependencies": { - "path-key": "^4.0.0" + "mimic-function": "^5.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lint-staged/node_modules/onetime": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", - "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", + "node_modules/lint-staged/node_modules/restore-cursor": { + "version": "5.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/restore-cursor/-/restore-cursor-5.1.0.tgz", + "integrity": "sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA==", "dev": true, "license": "MIT", "dependencies": { - "mimic-fn": "^4.0.0" + "onetime": "^7.0.0", + "signal-exit": "^4.1.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/lint-staged/node_modules/path-key": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", - "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", + "node_modules/lint-staged/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "dev": true, - "license": "MIT", + "license": "ISC", "engines": { - "node": ">=12" + "node": ">=14" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/lint-staged/node_modules/strip-final-newline": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", - "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", + "node_modules/lint-staged/node_modules/slice-ansi": { + "version": "7.1.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/slice-ansi/-/slice-ansi-7.1.2.tgz", + "integrity": "sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w==", "dev": true, "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "is-fullwidth-code-point": "^5.0.0" + }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/listr2": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/listr2/-/listr2-6.6.1.tgz", - "integrity": "sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg==", + "node_modules/lint-staged/node_modules/string-width": { + "version": "8.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/string-width/-/string-width-8.1.0.tgz", + "integrity": "sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg==", "dev": true, "license": "MIT", "dependencies": { - "cli-truncate": "^3.1.0", - "colorette": "^2.0.20", - "eventemitter3": "^5.0.1", - "log-update": "^5.0.1", - "rfdc": "^1.3.0", - "wrap-ansi": "^8.1.0" + "get-east-asian-width": "^1.3.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=16.0.0" - }, - "peerDependencies": { - "enquirer": ">= 2.3.0 < 3" + "node": ">=20" }, - "peerDependenciesMeta": { - "enquirer": { - "optional": true - } + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/listr2/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", + "node_modules/lint-staged/node_modules/strip-ansi": { + "version": "7.1.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/strip-ansi/-/strip-ansi-7.1.2.tgz", + "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==", "dev": true, "license": "MIT", + "dependencies": { + "ansi-regex": "^6.0.1" + }, "engines": { "node": ">=12" }, "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" + "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, - "node_modules/listr2/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "node_modules/lint-staged/node_modules/wrap-ansi": { + "version": "9.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/wrap-ansi/-/wrap-ansi-9.0.2.tgz", + "integrity": "sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww==", "dev": true, "license": "MIT", + "dependencies": { + "ansi-styles": "^6.2.1", + "string-width": "^7.0.0", + "strip-ansi": "^7.1.0" + }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, - "node_modules/listr2/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/listr2/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", + "node_modules/lint-staged/node_modules/wrap-ansi/node_modules/string-width": { + "version": "7.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/string-width/-/string-width-7.2.0.tgz", + "integrity": "sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ==", "dev": true, "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "emoji-regex": "^10.3.0", + "get-east-asian-width": "^1.0.0", + "strip-ansi": "^7.1.0" }, "engines": { - "node": ">=12" + "node": ">=18" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/listr2/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/listr2": { + "version": "4.0.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/listr2/-/listr2-4.0.5.tgz", + "integrity": "sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" + "cli-truncate": "^2.1.0", + "colorette": "^2.0.16", + "log-update": "^4.0.0", + "p-map": "^4.0.0", + "rfdc": "^1.3.0", + "rxjs": "^7.5.5", + "through": "^2.3.8", + "wrap-ansi": "^7.0.0" }, "engines": { "node": ">=12" }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" + "peerDependencies": { + "enquirer": ">= 2.3.0 < 3" + }, + "peerDependenciesMeta": { + "enquirer": { + "optional": true + } } }, "node_modules/listr2/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "version": "7.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "engines": { - "node": ">=12" + "node": ">=10" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" @@ -7731,187 +10892,90 @@ } }, "node_modules/log-update": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz", - "integrity": "sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-escapes": "^5.0.0", - "cli-cursor": "^4.0.0", - "slice-ansi": "^5.0.0", - "strip-ansi": "^7.0.1", - "wrap-ansi": "^8.0.1" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/ansi-escapes": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz", - "integrity": "sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA==", - "dev": true, - "license": "MIT", - "dependencies": { - "type-fest": "^1.0.2" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-update/node_modules/ansi-regex": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", - "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-regex?sponsor=1" - } - }, - "node_modules/log-update/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-update/node_modules/cli-cursor": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", - "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/log-update/-/log-update-4.0.0.tgz", + "integrity": "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==", "dev": true, "license": "MIT", "dependencies": { - "restore-cursor": "^4.0.0" + "ansi-escapes": "^4.3.0", + "cli-cursor": "^3.1.0", + "slice-ansi": "^4.0.0", + "wrap-ansi": "^6.2.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/log-update/node_modules/emoji-regex": { - "version": "9.2.2", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", - "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==", - "dev": true, - "license": "MIT" - }, - "node_modules/log-update/node_modules/restore-cursor": { + "node_modules/log-update/node_modules/slice-ansi": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", - "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", "dev": true, "license": "MIT", "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + "node": ">=10" }, "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, - "node_modules/log-update/node_modules/string-width": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", - "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", - "dev": true, + "node_modules/logform": { + "version": "2.7.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/logform/-/logform-2.7.0.tgz", + "integrity": "sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ==", "license": "MIT", "dependencies": { - "eastasianwidth": "^0.2.0", - "emoji-regex": "^9.2.2", - "strip-ansi": "^7.0.1" + "@colors/colors": "1.6.0", + "@types/triple-beam": "^1.3.2", + "fecha": "^4.2.0", + "ms": "^2.1.1", + "safe-stable-stringify": "^2.3.1", + "triple-beam": "^1.3.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "node": ">= 12.0.0" } }, - "node_modules/log-update/node_modules/strip-ansi": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", - "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "license": "MIT", "dependencies": { - "ansi-regex": "^6.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/strip-ansi?sponsor=1" - } - }, - "node_modules/log-update/node_modules/type-fest": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz", - "integrity": "sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA==", - "dev": true, - "license": "(MIT OR CC0-1.0)", - "engines": { - "node": ">=10" + "js-tokens": "^3.0.0 || ^4.0.0" }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" + "bin": { + "loose-envify": "cli.js" } }, - "node_modules/log-update/node_modules/wrap-ansi": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", - "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.1.0", - "string-width": "^5.0.1", - "strip-ansi": "^7.0.1" - }, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + "tslib": "^2.0.3" } }, - "node_modules/logform": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.6.0.tgz", - "integrity": "sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ==", + "node_modules/lower-case-first": { + "version": "2.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/lower-case-first/-/lower-case-first-2.0.2.tgz", + "integrity": "sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg==", + "dev": true, "license": "MIT", "dependencies": { - "@colors/colors": "1.6.0", - "@types/triple-beam": "^1.3.2", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "safe-stable-stringify": "^2.3.1", - "triple-beam": "^1.3.0" - }, - "engines": { - "node": ">= 12.0.0" + "tslib": "^2.0.3" } }, "node_modules/lru-cache": { @@ -7956,7 +11020,7 @@ }, "node_modules/makeerror": { "version": "1.0.12", - "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/makeerror/-/makeerror-1.0.12.tgz", "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==", "dev": true, "license": "BSD-3-Clause", @@ -7964,12 +11028,31 @@ "tmpl": "1.0.5" } }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/mapcap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/mapcap/-/mapcap-1.0.0.tgz", "integrity": "sha512-KcNlZSlFPx+r1jYZmxEbTVymG+dIctf10WmWkuhrhrblM+KMoF77HelwihL5cxYlORye79KoR4IlOOk99lUJ0g==", "license": "MIT" }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/measured-core": { "version": "1.51.1", "resolved": "https://registry.npmjs.org/measured-core/-/measured-core-1.51.1.tgz", @@ -8000,7 +11083,7 @@ }, "node_modules/merge-stream": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/merge-stream/-/merge-stream-2.0.0.tgz", "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true, "license": "MIT" @@ -8028,42 +11111,21 @@ }, "peerDependenciesMeta": { "@types/node": { - "optional": true - } - } - }, - "node_modules/micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "license": "MIT", - "dependencies": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "license": "MIT", - "engines": { - "node": ">= 0.6" + "optional": true + } } }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", "license": "MIT", "dependencies": { - "mime-db": "1.52.0" + "braces": "^3.0.3", + "picomatch": "^2.3.1" }, "engines": { - "node": ">= 0.6" + "node": ">=8.6" } }, "node_modules/mimic-fn": { @@ -8075,10 +11137,23 @@ "node": ">=6" } }, + "node_modules/mimic-function": { + "version": "5.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/mimic-function/-/mimic-function-5.0.1.tgz", + "integrity": "sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", + "version": "9.0.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "dev": true, "license": "ISC", "dependencies": { @@ -8100,10 +11175,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/minipass": { + "version": "7.1.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/minipass/-/minipass-7.1.2.tgz", + "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=16 || 14 >=14.17" + } + }, "node_modules/module-details-from-path": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz", - "integrity": "sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A==", "license": "MIT" }, "node_modules/monitor-event-loop-delay": { @@ -8114,8 +11197,6 @@ }, "node_modules/ms": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "license": "MIT" }, "node_modules/mute-stream": { @@ -8124,6 +11205,35 @@ "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "license": "ISC" }, + "node_modules/nano-spawn": { + "version": "2.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/nano-spawn/-/nano-spawn-2.0.0.tgz", + "integrity": "sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=20.17" + }, + "funding": { + "url": "https://github.com/sindresorhus/nano-spawn?sponsor=1" + } + }, + "node_modules/napi-postinstall": { + "version": "0.3.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/napi-postinstall/-/napi-postinstall-0.3.4.tgz", + "integrity": "sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ==", + "dev": true, + "license": "MIT", + "bin": { + "napi-postinstall": "lib/cli.js" + }, + "engines": { + "node": "^12.20.0 || ^14.18.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/napi-postinstall" + } + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -8143,14 +11253,25 @@ "integrity": "sha512-+I10J3wKNoKddNxn0CNpoZ3eTZuqxjNM3b1GImVx22+ePI+Y15P8g/j3WsbP0fhzzrFzrtjOAoq5NCCucswXOQ==", "license": "MIT" }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dev": true, + "license": "MIT", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, "node_modules/nock": { - "version": "14.0.3", - "resolved": "https://registry.npmjs.org/nock/-/nock-14.0.3.tgz", - "integrity": "sha512-sJ9RNmCuYBqXDmGZZHgZ1D1441MqFOU4T5aeLGVGEB4OWI/2LM0mZlkfBQzQKdOfJypL+2nPPBugXKjixBn4kQ==", + "version": "14.0.10", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/nock/-/nock-14.0.10.tgz", + "integrity": "sha512-Q7HjkpyPeLa0ZVZC5qpxBt5EyLczFJ91MEewQiIi9taWuA0KB/MDJlUWtON+7dGouVdADTQsf9RA7TZk6D8VMw==", "dev": true, "license": "MIT", "dependencies": { - "@mswjs/interceptors": "^0.38.1", + "@mswjs/interceptors": "^0.39.5", "json-stringify-safe": "^5.0.1", "propagate": "^2.0.0" }, @@ -8158,10 +11279,39 @@ "node": ">=18.20.0 <20 || >=20.12.1" } }, + "node_modules/node-addon-api": { + "version": "7.1.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/node-addon-api/-/node-addon-api-7.1.1.tgz", + "integrity": "sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-domexception": { + "version": "1.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/node-domexception/-/node-domexception-1.0.0.tgz", + "integrity": "sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ==", + "deprecated": "Use your platform's native DOMException instead", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/jimmywarting" + }, + { + "type": "github", + "url": "https://paypal.me/jimmywarting" + } + ], + "license": "MIT", + "engines": { + "node": ">=10.5.0" + } + }, "node_modules/node-fetch": { "version": "2.7.0", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/node-fetch/-/node-fetch-2.7.0.tgz", "integrity": "sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==", + "dev": true, "license": "MIT", "dependencies": { "whatwg-url": "^5.0.0" @@ -8178,45 +11328,23 @@ } } }, - "node_modules/node-fetch/node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", - "license": "MIT" - }, - "node_modules/node-fetch/node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", - "license": "BSD-2-Clause" - }, - "node_modules/node-fetch/node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "license": "MIT", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, "node_modules/node-int64": { "version": "0.4.0", - "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/node-int64/-/node-int64-0.4.0.tgz", "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==", "dev": true, "license": "MIT" }, "node_modules/node-releases": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", - "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", + "version": "2.0.27", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", "dev": true, "license": "MIT" }, "node_modules/normalize-path": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "license": "MIT", @@ -8226,7 +11354,7 @@ }, "node_modules/npm-run-path": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/npm-run-path/-/npm-run-path-4.0.1.tgz", "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "license": "MIT", @@ -8237,13 +11365,23 @@ "node": ">=8" } }, - "node_modules/nwsapi": { - "version": "2.2.20", - "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.20.tgz", - "integrity": "sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA==", + "node_modules/nullthrows": { + "version": "1.1.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/nullthrows/-/nullthrows-1.1.1.tgz", + "integrity": "sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw==", "dev": true, "license": "MIT" }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/object-filter-sequence": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/object-filter-sequence/-/object-filter-sequence-1.0.0.tgz", @@ -8260,10 +11398,13 @@ } }, "node_modules/object-inspect": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", - "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", + "version": "1.13.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/object-inspect/-/object-inspect-1.13.4.tgz", + "integrity": "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew==", "license": "MIT", + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } @@ -8278,14 +11419,16 @@ } }, "node_modules/object.assign": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", - "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", + "version": "4.1.7", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/object.assign/-/object.assign-4.1.7.tgz", + "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.5", + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", "define-properties": "^1.2.1", - "has-symbols": "^1.0.3", + "es-object-atoms": "^1.0.0", + "has-symbols": "^1.1.0", "object-keys": "^1.1.1" }, "engines": { @@ -8297,8 +11440,6 @@ }, "node_modules/object.entries": { "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz", - "integrity": "sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA==", "license": "MIT", "dependencies": { "call-bind": "^1.0.2", @@ -8310,15 +11451,16 @@ } }, "node_modules/object.fromentries": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz", - "integrity": "sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==", + "version": "2.0.8", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/object.fromentries/-/object.fromentries-2.0.8.tgz", + "integrity": "sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -8328,28 +11470,31 @@ } }, "node_modules/object.groupby": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz", - "integrity": "sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==", + "version": "1.0.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/object.groupby/-/object.groupby-1.0.3.tgz", + "integrity": "sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1", - "get-intrinsic": "^1.2.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.2" + }, + "engines": { + "node": ">= 0.4" } }, "node_modules/object.values": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz", - "integrity": "sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==", + "version": "1.2.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/object.values/-/object.values-1.2.1.tgz", + "integrity": "sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA==", "dev": true, "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.3", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" @@ -8408,8 +11553,6 @@ }, "node_modules/optionator": { "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", "dev": true, "license": "MIT", "dependencies": { @@ -8456,22 +11599,30 @@ "forwarded-parse": "^2.1.0" } }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/outvariant": { "version": "1.4.3", - "resolved": "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/outvariant/-/outvariant-1.4.3.tgz", "integrity": "sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA==", "dev": true, "license": "MIT" }, + "node_modules/own-keys": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/own-keys/-/own-keys-1.0.1.tgz", + "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==", + "license": "MIT", + "dependencies": { + "get-intrinsic": "^1.2.6", + "object-keys": "^1.1.1", + "safe-push-apply": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -8519,7 +11670,7 @@ }, "node_modules/p-try": { "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/p-try/-/p-try-2.2.0.tgz", "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true, "license": "MIT", @@ -8527,6 +11678,24 @@ "node": ">=6" } }, + "node_modules/package-json-from-dist": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz", + "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==", + "dev": true, + "license": "BlueOak-1.0.0" + }, + "node_modules/param-case": { + "version": "3.0.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/param-case/-/param-case-3.0.4.tgz", + "integrity": "sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A==", + "dev": true, + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, "node_modules/parent-module": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", @@ -8540,6 +11709,21 @@ "node": ">=6" } }, + "node_modules/parse-filepath": { + "version": "1.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -8559,17 +11743,26 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/parse5": { - "version": "7.2.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz", - "integrity": "sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ==", + "node_modules/pascal-case": { + "version": "3.1.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/pascal-case/-/pascal-case-3.1.2.tgz", + "integrity": "sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g==", "dev": true, "license": "MIT", "dependencies": { - "entities": "^4.5.0" - }, - "funding": { - "url": "https://github.com/inikulin/parse5?sponsor=1" + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/path-case": { + "version": "3.0.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/path-case/-/path-case-3.0.4.tgz", + "integrity": "sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg==", + "dev": true, + "license": "MIT", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" } }, "node_modules/path-exists": { @@ -8592,7 +11785,7 @@ }, "node_modules/path-key": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true, "license": "MIT", @@ -8606,6 +11799,46 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "license": "MIT" }, + "node_modules/path-root": { + "version": "0.1.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-root-regex": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-root-regex": { + "version": "0.1.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-scurry": { + "version": "1.11.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/path-scurry/-/path-scurry-1.11.1.tgz", + "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==", + "dev": true, + "license": "BlueOak-1.0.0", + "dependencies": { + "lru-cache": "^10.2.0", + "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" + }, + "engines": { + "node": ">=16 || 14 >=14.18" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/path-type": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", @@ -8616,9 +11849,9 @@ } }, "node_modules/picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", + "version": "1.1.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", "dev": true, "license": "ISC" }, @@ -8726,9 +11959,9 @@ "license": "MIT" }, "node_modules/pirates": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", - "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", + "version": "4.0.7", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/pirates/-/pirates-4.0.7.tgz", + "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==", "dev": true, "license": "MIT", "engines": { @@ -8737,7 +11970,7 @@ }, "node_modules/pkg-dir": { "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/pkg-dir/-/pkg-dir-4.2.0.tgz", "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "license": "MIT", @@ -8750,7 +11983,7 @@ }, "node_modules/pkg-dir/node_modules/find-up": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/find-up/-/find-up-4.1.0.tgz", "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", "dev": true, "license": "MIT", @@ -8764,7 +11997,7 @@ }, "node_modules/pkg-dir/node_modules/locate-path": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/locate-path/-/locate-path-5.0.0.tgz", "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "license": "MIT", @@ -8777,7 +12010,7 @@ }, "node_modules/pkg-dir/node_modules/p-limit": { "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/p-limit/-/p-limit-2.3.0.tgz", "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "license": "MIT", @@ -8793,7 +12026,7 @@ }, "node_modules/pkg-dir/node_modules/p-locate": { "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/p-locate/-/p-locate-4.1.0.tgz", "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "license": "MIT", @@ -8804,6 +12037,15 @@ "node": ">=8" } }, + "node_modules/possible-typed-array-names": { + "version": "1.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz", + "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", @@ -8815,9 +12057,9 @@ } }, "node_modules/prettier": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz", - "integrity": "sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A==", + "version": "3.6.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/prettier/-/prettier-3.6.2.tgz", + "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==", "dev": true, "license": "MIT", "bin": { @@ -8830,37 +12072,24 @@ "url": "https://github.com/prettier/prettier?sponsor=1" } }, - "node_modules/prettier-linter-helpers": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", - "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-diff": "^1.1.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/pretty-format": { - "version": "29.7.0", - "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz", - "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==", + "version": "30.2.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/pretty-format/-/pretty-format-30.2.0.tgz", + "integrity": "sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA==", "dev": true, "license": "MIT", "dependencies": { - "@jest/schemas": "^29.6.3", - "ansi-styles": "^5.0.0", - "react-is": "^18.0.0" + "@jest/schemas": "30.0.5", + "ansi-styles": "^5.2.0", + "react-is": "^18.3.1" }, "engines": { - "node": "^14.15.0 || ^16.10.0 || >=18.0.0" + "node": "^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0" } }, "node_modules/pretty-format/node_modules/ansi-styles": { "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-5.2.0.tgz", "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==", "dev": true, "license": "MIT", @@ -8886,18 +12115,14 @@ "integrity": "sha512-mqn0kFRl0EoqhnL0GQ0veqFHyIN1yig9RHh/InzORTUiZHFRAur+aMtRkELNwGs9aNwKS6tg/An4NYBPGwvtzQ==", "license": "MIT" }, - "node_modules/prompts": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz", - "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==", + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/promise/-/promise-7.3.1.tgz", + "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", "dev": true, "license": "MIT", "dependencies": { - "kleur": "^3.0.3", - "sisteransi": "^1.0.5" - }, - "engines": { - "node": ">= 6" + "asap": "~2.0.3" } }, "node_modules/propagate": { @@ -8910,12 +12135,6 @@ "node": ">= 8" } }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", - "license": "MIT" - }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -8926,9 +12145,9 @@ } }, "node_modules/pure-rand": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz", - "integrity": "sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA==", + "version": "7.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/pure-rand/-/pure-rand-7.0.1.tgz", + "integrity": "sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ==", "dev": true, "funding": [ { @@ -8969,9 +12188,9 @@ "license": "MIT" }, "node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true, "license": "MIT" }, @@ -8998,15 +12217,40 @@ "node": ">= 12.13.0" } }, + "node_modules/reflect.getprototypeof": { + "version": "1.0.10", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz", + "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==", + "license": "MIT", + "dependencies": { + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.9", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0", + "get-intrinsic": "^1.2.7", + "get-proto": "^1.0.1", + "which-builtin-type": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/regexp.prototype.flags": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz", - "integrity": "sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==", + "version": "1.5.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz", + "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "set-function-name": "^2.0.0" + "call-bind": "^1.0.8", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "set-function-name": "^2.0.2" }, "engines": { "node": ">= 0.4" @@ -9021,6 +12265,28 @@ "integrity": "sha512-l18ha6HEZc+No/uK4GyAnNxgKW7nvEe35IaeN54sShMojtqik2a6GbTyuiezkjpPaqP874Z3lW5ysBo5irz4NA==", "license": "MIT" }, + "node_modules/relay-runtime": { + "version": "12.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/relay-runtime/-/relay-runtime-12.0.0.tgz", + "integrity": "sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug==", + "dev": true, + "license": "MIT", + "dependencies": { + "@babel/runtime": "^7.0.0", + "fbjs": "^3.0.0", + "invariant": "^2.2.4" + } + }, + "node_modules/remedial": { + "version": "1.0.8", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/remedial/-/remedial-1.0.8.tgz", + "integrity": "sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg==", + "dev": true, + "license": "(MIT OR Apache-2.0)", + "engines": { + "node": "*" + } + }, "node_modules/remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", @@ -9028,6 +12294,13 @@ "dev": true, "license": "ISC" }, + "node_modules/remove-trailing-spaces": { + "version": "1.0.9", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/remove-trailing-spaces/-/remove-trailing-spaces-1.0.9.tgz", + "integrity": "sha512-xzG7w5IRijvIkHIjDk65URsJJ7k4J95wmcArY5PRcmjldIOl7oTvG8+X2Ag690R7SfwiOcHrWZKVc1Pp5WIOzA==", + "dev": true, + "license": "MIT" + }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -9039,8 +12312,6 @@ }, "node_modules/require-in-the-middle": { "version": "7.2.0", - "resolved": "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.2.0.tgz", - "integrity": "sha512-3TLx5TGyAY6AOqLBoXmHkNql0HIf2RGbuMgCDT2WO/uGVAPJs6h7Kl+bN6TIZGd9bWhWPwnDnTHGtW8Iu77sdw==", "license": "MIT", "dependencies": { "debug": "^4.1.1", @@ -9051,10 +12322,15 @@ "node": ">=8.6.0" } }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true, + "license": "ISC" + }, "node_modules/resolve": { "version": "1.22.8", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", - "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "license": "MIT", "dependencies": { "is-core-module": "^2.13.0", @@ -9070,7 +12346,7 @@ }, "node_modules/resolve-cwd": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/resolve-cwd/-/resolve-cwd-3.0.0.tgz", "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", "dev": true, "license": "MIT", @@ -9083,24 +12359,12 @@ }, "node_modules/resolve-from": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", - "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true, "license": "MIT", "engines": { "node": ">=8" } }, - "node_modules/resolve.exports": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz", - "integrity": "sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - } - }, "node_modules/restore-cursor": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", @@ -9116,8 +12380,6 @@ }, "node_modules/reusify": { "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", "license": "MIT", "engines": { "iojs": ">=1.0.0", @@ -9125,9 +12387,9 @@ } }, "node_modules/rfdc": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", - "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", + "version": "1.4.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/rfdc/-/rfdc-1.4.1.tgz", + "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==", "dev": true, "license": "MIT" }, @@ -9135,7 +12397,6 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", "license": "ISC", "dependencies": { "glob": "^7.1.3" @@ -9147,13 +12408,6 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/rrweb-cssom": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz", - "integrity": "sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==", - "dev": true, - "license": "MIT" - }, "node_modules/run-async": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", @@ -9188,22 +12442,21 @@ }, "node_modules/rxjs": { "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", "license": "Apache-2.0", "dependencies": { "tslib": "^2.1.0" } }, "node_modules/safe-array-concat": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz", - "integrity": "sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==", + "version": "1.1.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/safe-array-concat/-/safe-array-concat-1.1.3.tgz", + "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "has-symbols": "^1.0.3", + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "get-intrinsic": "^1.2.6", + "has-symbols": "^1.1.0", "isarray": "^2.0.5" }, "engines": { @@ -9225,15 +12478,34 @@ "integrity": "sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg==", "license": "MIT" }, - "node_modules/safe-regex-test": { + "node_modules/safe-push-apply": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/safe-push-apply/-/safe-push-apply-1.0.0.tgz", + "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" + "es-errors": "^1.3.0", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/safe-regex-test": { + "version": "1.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/safe-regex-test/-/safe-regex-test-1.1.0.tgz", + "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "is-regex": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -9241,8 +12513,6 @@ }, "node_modules/safe-stable-stringify": { "version": "2.4.3", - "resolved": "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz", - "integrity": "sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==", "license": "MIT", "engines": { "node": ">=10" @@ -9250,31 +12520,22 @@ }, "node_modules/safer-buffer": { "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "license": "MIT" }, - "node_modules/saxes": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", - "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", + "node_modules/scuid": { + "version": "1.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/scuid/-/scuid-1.1.0.tgz", + "integrity": "sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg==", "dev": true, - "license": "ISC", - "dependencies": { - "xmlchars": "^2.2.0" - }, - "engines": { - "node": ">=v12.22.7" - } + "license": "MIT" }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.7.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/semver/-/semver-7.7.3.tgz", + "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==", "license": "ISC", - "dependencies": { - "lru-cache": "^6.0.0" - }, "bin": { "semver": "bin/semver.js" }, @@ -9282,53 +12543,78 @@ "node": ">=10" } }, - "node_modules/semver/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "license": "ISC", + "node_modules/sentence-case": { + "version": "3.0.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/sentence-case/-/sentence-case-3.0.4.tgz", + "integrity": "sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg==", + "dev": true, + "license": "MIT", "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" + "no-case": "^3.0.4", + "tslib": "^2.0.3", + "upper-case-first": "^2.0.2" } }, - "node_modules/semver/node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", + "dev": true, "license": "ISC" }, "node_modules/set-function-length": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", - "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "version": "1.2.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/set-function-length/-/set-function-length-1.2.2.tgz", + "integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==", "license": "MIT", "dependencies": { - "define-data-property": "^1.1.1", - "get-intrinsic": "^1.2.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", "gopd": "^1.0.1", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" } }, "node_modules/set-function-name": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz", - "integrity": "sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==", + "version": "2.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", "license": "MIT", "dependencies": { - "define-data-property": "^1.0.1", + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", "functions-have-names": "^1.2.3", - "has-property-descriptors": "^1.0.0" + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-proto": { + "version": "1.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/set-proto/-/set-proto-1.0.0.tgz", + "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.0.0" }, "engines": { "node": ">= 0.4" } }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", + "dev": true, + "license": "MIT" + }, "node_modules/shallow-clone-shim": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shallow-clone-shim/-/shallow-clone-shim-2.0.0.tgz", @@ -9337,7 +12623,7 @@ }, "node_modules/shebang-command": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dev": true, "license": "MIT", @@ -9350,7 +12636,7 @@ }, "node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, "license": "MIT", @@ -9358,47 +12644,103 @@ "node": ">=8" } }, + "node_modules/shell-quote": { + "version": "1.8.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/shell-quote/-/shell-quote-1.8.3.tgz", + "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/side-channel/-/side-channel-1.1.0.tgz", + "integrity": "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3", + "side-channel-list": "^1.0.0", + "side-channel-map": "^1.0.1", + "side-channel-weakmap": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "license": "ISC" + "node_modules/side-channel-list": { + "version": "1.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/side-channel-list/-/side-channel-list-1.0.0.tgz", + "integrity": "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "node_modules/side-channel-map": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/side-channel-map/-/side-channel-map-1.0.1.tgz", + "integrity": "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==", "license": "MIT", "dependencies": { - "is-arrayish": "^0.3.1" + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "license": "MIT" + "node_modules/side-channel-weakmap": { + "version": "1.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz", + "integrity": "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.5", + "object-inspect": "^1.13.3", + "side-channel-map": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, - "node_modules/sisteransi": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", - "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==", + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "license": "ISC" + }, + "node_modules/signedsource": { + "version": "1.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/signedsource/-/signedsource-1.0.0.tgz", + "integrity": "sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww==", "dev": true, - "license": "MIT" + "license": "BSD-3-Clause" }, "node_modules/slash": { "version": "3.0.0", @@ -9410,33 +12752,29 @@ } }, "node_modules/slice-ansi": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", - "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", + "version": "3.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/slice-ansi/-/slice-ansi-3.0.0.tgz", + "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", "dev": true, "license": "MIT", "dependencies": { - "ansi-styles": "^6.0.0", - "is-fullwidth-code-point": "^4.0.0" + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" }, "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/slice-ansi?sponsor=1" + "node": ">=8" } }, - "node_modules/slice-ansi/node_modules/ansi-styles": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", - "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", "dev": true, "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" } }, "node_modules/sonic-boom": { @@ -9462,7 +12800,7 @@ }, "node_modules/source-map-support": { "version": "0.5.13", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/source-map-support/-/source-map-support-0.5.13.tgz", "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", "dev": true, "license": "MIT", @@ -9473,7 +12811,7 @@ }, "node_modules/source-map-support/node_modules/source-map": { "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true, "license": "BSD-3-Clause", @@ -9516,9 +12854,19 @@ "node": ">= 10.x" } }, + "node_modules/sponge-case": { + "version": "1.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/sponge-case/-/sponge-case-1.0.1.tgz", + "integrity": "sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/sprintf-js/-/sprintf-js-1.0.3.tgz", "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", "dev": true, "license": "BSD-3-Clause" @@ -9540,7 +12888,7 @@ }, "node_modules/stack-utils": { "version": "2.0.6", - "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/stack-utils/-/stack-utils-2.0.6.tgz", "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, "license": "MIT", @@ -9553,7 +12901,7 @@ }, "node_modules/stack-utils/node_modules/escape-string-regexp": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, "license": "MIT", @@ -9567,6 +12915,19 @@ "integrity": "sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw==", "license": "MIT" }, + "node_modules/stop-iteration-iterator": { + "version": "1.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz", + "integrity": "sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "internal-slot": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/stream-chopper": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/stream-chopper/-/stream-chopper-3.0.1.tgz", @@ -9576,18 +12937,9 @@ "readable-stream": "^3.0.6" } }, - "node_modules/streamsearch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz", - "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==", - "dev": true, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/strict-event-emitter": { "version": "0.5.1", - "resolved": "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz", "integrity": "sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ==", "dev": true, "license": "MIT" @@ -9640,7 +12992,7 @@ }, "node_modules/string-length": { "version": "4.0.2", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/string-length/-/string-length-4.0.2.tgz", "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", "dev": true, "license": "MIT", @@ -9666,24 +13018,35 @@ "node": ">=8" } }, - "node_modules/string-width/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "node_modules/string-width-cjs": { + "name": "string-width", + "version": "4.2.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, "engines": { "node": ">=8" } }, "node_modules/string.prototype.trim": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", - "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", + "version": "1.2.10", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", + "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-data-property": "^1.1.4", + "define-properties": "^1.2.1", + "es-abstract": "^1.23.5", + "es-object-atoms": "^1.0.0", + "has-property-descriptors": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -9693,28 +13056,35 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", - "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", + "version": "1.0.9", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz", + "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.8", + "call-bound": "^1.0.2", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", - "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", + "version": "1.0.8", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz", + "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.2.0", - "es-abstract": "^1.22.1" + "call-bind": "^1.0.7", + "define-properties": "^1.2.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -9732,6 +13102,30 @@ "node": ">=8" } }, + "node_modules/strip-ansi-cjs": { + "name": "strip-ansi", + "version": "6.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/strip-ansi/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -9743,7 +13137,7 @@ }, "node_modules/strip-bom": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/strip-bom/-/strip-bom-4.0.0.tgz", "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", "dev": true, "license": "MIT", @@ -9753,7 +13147,7 @@ }, "node_modules/strip-final-newline": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/strip-final-newline/-/strip-final-newline-2.0.0.tgz", "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true, "license": "MIT", @@ -9810,28 +13204,48 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/symbol-tree": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", - "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", + "node_modules/swap-case": { + "version": "2.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/swap-case/-/swap-case-2.0.2.tgz", + "integrity": "sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } }, - "node_modules/synckit": { - "version": "0.8.8", - "resolved": "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz", - "integrity": "sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ==", + "node_modules/sync-fetch": { + "version": "0.6.0-2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/sync-fetch/-/sync-fetch-0.6.0-2.tgz", + "integrity": "sha512-c7AfkZ9udatCuAy9RSfiGPpeOKKUAUK5e1cXadLOGUjasdxqYqAK0jTNkM/FSEyJ3a5Ra27j/tw/PS0qLmaF/A==", "dev": true, "license": "MIT", "dependencies": { - "@pkgr/core": "^0.1.0", - "tslib": "^2.6.2" + "node-fetch": "^3.3.2", + "timeout-signal": "^2.0.0", + "whatwg-mimetype": "^4.0.0" }, "engines": { - "node": "^14.18.0 || >=16.0.0" + "node": ">=18" + } + }, + "node_modules/sync-fetch/node_modules/node-fetch": { + "version": "3.3.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/node-fetch/-/node-fetch-3.3.2.tgz", + "integrity": "sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA==", + "dev": true, + "license": "MIT", + "dependencies": { + "data-uri-to-buffer": "^4.0.0", + "fetch-blob": "^3.1.4", + "formdata-polyfill": "^4.0.10" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { - "url": "https://opencollective.com/unts" + "type": "opencollective", + "url": "https://opencollective.com/node-fetch" } }, "node_modules/terminal-link": { @@ -9852,7 +13266,7 @@ }, "node_modules/test-exclude": { "version": "6.0.0", - "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "license": "ISC", @@ -9866,9 +13280,9 @@ } }, "node_modules/test-exclude/node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "version": "1.1.12", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/brace-expansion/-/brace-expansion-1.1.12.tgz", + "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", "dev": true, "license": "MIT", "dependencies": { @@ -9878,7 +13292,7 @@ }, "node_modules/test-exclude/node_modules/minimatch": { "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "license": "ISC", @@ -9891,17 +13305,10 @@ }, "node_modules/text-hex": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/text-hex/-/text-hex-1.0.0.tgz", "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", "license": "MIT" }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, - "license": "MIT" - }, "node_modules/thread-stream": { "version": "2.7.0", "resolved": "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz", @@ -9917,58 +13324,36 @@ "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==", "license": "MIT" }, - "node_modules/tldts": { - "version": "6.1.86", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz", - "integrity": "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "tldts-core": "^6.1.86" - }, - "bin": { - "tldts": "bin/cli.js" - } - }, - "node_modules/tldts-core": { - "version": "6.1.86", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz", - "integrity": "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==", + "node_modules/timeout-signal": { + "version": "2.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/timeout-signal/-/timeout-signal-2.0.0.tgz", + "integrity": "sha512-YBGpG4bWsHoPvofT6y/5iqulfXIiIErl5B0LdtHT1mGXDFTAhhRrbUpTvBgYbovr+3cKblya2WAOcpoy90XguA==", "dev": true, - "license": "MIT" - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "license": "MIT", - "dependencies": { - "os-tmpdir": "~1.0.2" - }, "engines": { - "node": ">=0.6.0" + "node": ">=16" } }, - "node_modules/tmpl": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz", - "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", - "dev": true, - "license": "BSD-3-Clause" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", + "node_modules/title-case": { + "version": "3.0.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/title-case/-/title-case-3.0.3.tgz", + "integrity": "sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA==", "dev": true, "license": "MIT", - "engines": { - "node": ">=4" + "dependencies": { + "tslib": "^2.0.3" } }, + "node_modules/tmpl": { + "version": "1.0.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/tmpl/-/tmpl-1.0.5.tgz", + "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==", + "dev": true, + "license": "BSD-3-Clause" + }, "node_modules/to-regex-range": { "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "license": "MIT", "dependencies": { @@ -9978,35 +13363,16 @@ "node": ">=8.0" } }, - "node_modules/tough-cookie": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz", - "integrity": "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "tldts": "^6.1.32" - }, - "engines": { - "node": ">=16" - } - }, "node_modules/tr46": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz", - "integrity": "sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==", + "version": "0.0.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "engines": { - "node": ">=18" - } + "license": "MIT" }, "node_modules/triple-beam": { "version": "1.4.1", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/triple-beam/-/triple-beam-1.4.1.tgz", "integrity": "sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==", "license": "MIT", "engines": { @@ -10014,51 +13380,57 @@ } }, "node_modules/ts-api-utils": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz", - "integrity": "sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg==", + "version": "2.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ts-api-utils/-/ts-api-utils-2.1.0.tgz", + "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", "dev": true, "license": "MIT", "engines": { - "node": ">=16.13.0" + "node": ">=18.12" }, "peerDependencies": { - "typescript": ">=4.2.0" + "typescript": ">=4.8.4" } }, "node_modules/ts-jest": { - "version": "29.1.2", - "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz", - "integrity": "sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g==", + "version": "29.4.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ts-jest/-/ts-jest-29.4.5.tgz", + "integrity": "sha512-HO3GyiWn2qvTQA4kTgjDcXiMwYQt68a1Y8+JuLRVpdIzm+UOLSHgl/XqR4c6nzJkq5rOkjc02O2I7P7l/Yof0Q==", "dev": true, "license": "MIT", "dependencies": { - "bs-logger": "0.x", - "fast-json-stable-stringify": "2.x", - "jest-util": "^29.0.0", + "bs-logger": "^0.2.6", + "fast-json-stable-stringify": "^2.1.0", + "handlebars": "^4.7.8", "json5": "^2.2.3", - "lodash.memoize": "4.x", - "make-error": "1.x", - "semver": "^7.5.3", - "yargs-parser": "^21.0.1" + "lodash.memoize": "^4.1.2", + "make-error": "^1.3.6", + "semver": "^7.7.3", + "type-fest": "^4.41.0", + "yargs-parser": "^21.1.1" }, "bin": { "ts-jest": "cli.js" }, "engines": { - "node": "^16.10.0 || ^18.0.0 || >=20.0.0" + "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0" }, "peerDependencies": { "@babel/core": ">=7.0.0-beta.0 <8", - "@jest/types": "^29.0.0", - "babel-jest": "^29.0.0", - "jest": "^29.0.0", + "@jest/transform": "^29.0.0 || ^30.0.0", + "@jest/types": "^29.0.0 || ^30.0.0", + "babel-jest": "^29.0.0 || ^30.0.0", + "jest": "^29.0.0 || ^30.0.0", + "jest-util": "^29.0.0 || ^30.0.0", "typescript": ">=4.3 <6" }, "peerDependenciesMeta": { "@babel/core": { "optional": true }, + "@jest/transform": { + "optional": true + }, "@jest/types": { "optional": true }, @@ -10067,9 +13439,19 @@ }, "esbuild": { "optional": true + }, + "jest-util": { + "optional": true } } }, + "node_modules/ts-log": { + "version": "2.2.7", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ts-log/-/ts-log-2.2.7.tgz", + "integrity": "sha512-320x5Ggei84AxzlXp91QkIGSw5wgaLT6GeAH0KsqDmRZdVWW2OiSeVvElVoatk3f7nicwXlElXsoFkARiGE2yg==", + "dev": true, + "license": "MIT" + }, "node_modules/ts-node": { "version": "10.9.2", "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz", @@ -10152,31 +13534,6 @@ }, "node_modules/tslib": { "version": "2.6.2", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", - "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", - "license": "0BSD" - }, - "node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "license": "MIT", - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, - "node_modules/tsutils/node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", - "dev": true, "license": "0BSD" }, "node_modules/type-check": { @@ -10194,7 +13551,7 @@ }, "node_modules/type-detect": { "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/type-detect/-/type-detect-4.0.8.tgz", "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", "dev": true, "license": "MIT", @@ -10203,42 +13560,43 @@ } }, "node_modules/type-fest": { - "version": "0.20.2", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", - "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "version": "4.41.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/type-fest/-/type-fest-4.41.0.tgz", + "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", "dev": true, "license": "(MIT OR CC0-1.0)", "engines": { - "node": ">=10" + "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/typed-array-buffer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz", - "integrity": "sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==", + "version": "1.0.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz", + "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.2.1", - "is-typed-array": "^1.1.10" + "call-bound": "^1.0.3", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" } }, "node_modules/typed-array-byte-length": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz", - "integrity": "sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==", + "version": "1.0.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz", + "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -10248,16 +13606,18 @@ } }, "node_modules/typed-array-byte-offset": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz", - "integrity": "sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==", + "version": "1.0.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz", + "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==", "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.2", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", "for-each": "^0.3.3", - "has-proto": "^1.0.1", - "is-typed-array": "^1.1.10" + "gopd": "^1.2.0", + "has-proto": "^1.2.0", + "is-typed-array": "^1.1.15", + "reflect.getprototypeof": "^1.0.9" }, "engines": { "node": ">= 0.4" @@ -10267,23 +13627,29 @@ } }, "node_modules/typed-array-length": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz", - "integrity": "sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==", + "version": "1.0.7", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/typed-array-length/-/typed-array-length-1.0.7.tgz", + "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bind": "^1.0.7", "for-each": "^0.3.3", - "is-typed-array": "^1.1.9" + "gopd": "^1.0.1", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0", + "reflect.getprototypeof": "^1.0.6" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/typescript": { - "version": "5.3.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz", - "integrity": "sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw==", + "version": "5.9.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/typescript/-/typescript-5.9.3.tgz", + "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "dev": true, "license": "Apache-2.0", "bin": { @@ -10294,10 +13660,35 @@ "node": ">=14.17" } }, + "node_modules/ua-parser-js": { + "version": "1.0.41", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ua-parser-js/-/ua-parser-js-1.0.41.tgz", + "integrity": "sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + }, + { + "type": "github", + "url": "https://github.com/sponsors/faisalman" + } + ], + "license": "MIT", + "bin": { + "ua-parser-js": "script/cli.js" + }, + "engines": { + "node": "*" + } + }, "node_modules/uglify-js": { "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", "license": "BSD-2-Clause", "optional": true, "bin": { @@ -10308,24 +13699,37 @@ } }, "node_modules/unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "version": "1.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/unbox-primitive/-/unbox-primitive-1.1.0.tgz", + "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==", "license": "MIT", "dependencies": { - "call-bind": "^1.0.2", + "call-bound": "^1.0.3", "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" + "has-symbols": "^1.1.0", + "which-boxed-primitive": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/unc-path-regex": { + "version": "0.1.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/undici-types": { - "version": "5.26.5", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz", - "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==", + "version": "6.21.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/undici-types/-/undici-types-6.21.0.tgz", + "integrity": "sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==", "dev": true, "license": "MIT" }, @@ -10347,7 +13751,7 @@ }, "node_modules/universal-user-agent": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/universal-user-agent/-/universal-user-agent-6.0.1.tgz", "integrity": "sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ==", "license": "ISC" }, @@ -10377,10 +13781,45 @@ "node": ">=0.10.0" } }, + "node_modules/unrs-resolver": { + "version": "1.11.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/unrs-resolver/-/unrs-resolver-1.11.1.tgz", + "integrity": "sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "napi-postinstall": "^0.3.0" + }, + "funding": { + "url": "https://opencollective.com/unrs-resolver" + }, + "optionalDependencies": { + "@unrs/resolver-binding-android-arm-eabi": "1.11.1", + "@unrs/resolver-binding-android-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-arm64": "1.11.1", + "@unrs/resolver-binding-darwin-x64": "1.11.1", + "@unrs/resolver-binding-freebsd-x64": "1.11.1", + "@unrs/resolver-binding-linux-arm-gnueabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm-musleabihf": "1.11.1", + "@unrs/resolver-binding-linux-arm64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-arm64-musl": "1.11.1", + "@unrs/resolver-binding-linux-ppc64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-riscv64-musl": "1.11.1", + "@unrs/resolver-binding-linux-s390x-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-gnu": "1.11.1", + "@unrs/resolver-binding-linux-x64-musl": "1.11.1", + "@unrs/resolver-binding-wasm32-wasi": "1.11.1", + "@unrs/resolver-binding-win32-arm64-msvc": "1.11.1", + "@unrs/resolver-binding-win32-ia32-msvc": "1.11.1", + "@unrs/resolver-binding-win32-x64-msvc": "1.11.1" + } + }, "node_modules/update-browserslist-db": { - "version": "1.0.13", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", - "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", + "version": "1.1.4", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz", + "integrity": "sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A==", "dev": true, "funding": [ { @@ -10398,8 +13837,8 @@ ], "license": "MIT", "dependencies": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" + "escalade": "^3.2.0", + "picocolors": "^1.1.1" }, "bin": { "update-browserslist-db": "cli.js" @@ -10408,9 +13847,29 @@ "browserslist": ">= 4.21.0" } }, + "node_modules/upper-case": { + "version": "2.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/upper-case/-/upper-case-2.0.2.tgz", + "integrity": "sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/upper-case-first": { + "version": "2.0.2", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/upper-case-first/-/upper-case-first-2.0.2.tgz", + "integrity": "sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg==", + "dev": true, + "license": "MIT", + "dependencies": { + "tslib": "^2.0.3" + } + }, "node_modules/uri-js": { "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/uri-js/-/uri-js-4.4.1.tgz", "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, "license": "BSD-2-Clause", @@ -10419,9 +13878,9 @@ } }, "node_modules/urlpattern-polyfill": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-9.0.0.tgz", - "integrity": "sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g==", + "version": "10.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/urlpattern-polyfill/-/urlpattern-polyfill-10.1.0.tgz", + "integrity": "sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw==", "dev": true, "license": "MIT" }, @@ -10432,9 +13891,9 @@ "license": "MIT" }, "node_modules/utility-types": { - "version": "3.10.0", - "resolved": "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz", - "integrity": "sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg==", + "version": "3.11.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/utility-types/-/utility-types-3.11.0.tgz", + "integrity": "sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw==", "license": "MIT", "engines": { "node": ">= 4" @@ -10448,9 +13907,9 @@ "license": "MIT" }, "node_modules/v8-to-istanbul": { - "version": "9.2.0", - "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz", - "integrity": "sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA==", + "version": "9.3.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz", + "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==", "dev": true, "license": "ISC", "dependencies": { @@ -10462,32 +13921,9 @@ "node": ">=10.12.0" } }, - "node_modules/value-or-promise": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz", - "integrity": "sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - } - }, - "node_modules/w3c-xmlserializer": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz", - "integrity": "sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==", - "dev": true, - "license": "MIT", - "dependencies": { - "xml-name-validator": "^5.0.0" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/walker": { "version": "1.0.8", - "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/walker/-/walker-1.0.8.tgz", "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==", "dev": true, "license": "Apache-2.0", @@ -10504,45 +13940,26 @@ "defaults": "^1.0.3" } }, - "node_modules/webidl-conversions": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", - "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=12" - } - }, - "node_modules/whatwg-encoding": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz", - "integrity": "sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==", + "node_modules/web-streams-polyfill": { + "version": "3.3.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz", + "integrity": "sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw==", "dev": true, "license": "MIT", - "dependencies": { - "iconv-lite": "0.6.3" - }, "engines": { - "node": ">=18" + "node": ">= 8" } }, - "node_modules/whatwg-encoding/node_modules/iconv-lite": { - "version": "0.6.3", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", - "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } + "license": "BSD-2-Clause" }, "node_modules/whatwg-mimetype": { "version": "4.0.0", - "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz", "integrity": "sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==", "dev": true, "license": "MIT", @@ -10551,22 +13968,19 @@ } }, "node_modules/whatwg-url": { - "version": "14.2.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz", - "integrity": "sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==", + "version": "5.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", "dev": true, "license": "MIT", "dependencies": { - "tr46": "^5.1.0", - "webidl-conversions": "^7.0.0" - }, - "engines": { - "node": ">=18" + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" } }, "node_modules/which": { "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, "license": "ISC", @@ -10581,32 +13995,89 @@ } }, "node_modules/which-boxed-primitive": { + "version": "1.1.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz", + "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==", + "license": "MIT", + "dependencies": { + "is-bigint": "^1.1.0", + "is-boolean-object": "^1.2.1", + "is-number-object": "^1.1.1", + "is-string": "^1.1.1", + "is-symbol": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-builtin-type": { + "version": "1.2.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/which-builtin-type/-/which-builtin-type-1.2.1.tgz", + "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==", + "license": "MIT", + "dependencies": { + "call-bound": "^1.0.2", + "function.prototype.name": "^1.1.6", + "has-tostringtag": "^1.0.2", + "is-async-function": "^2.0.0", + "is-date-object": "^1.1.0", + "is-finalizationregistry": "^1.1.0", + "is-generator-function": "^1.0.10", + "is-regex": "^1.2.1", + "is-weakref": "^1.0.2", + "isarray": "^2.0.5", + "which-boxed-primitive": "^1.1.0", + "which-collection": "^1.0.2", + "which-typed-array": "^1.1.16" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/which-collection": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/which-collection/-/which-collection-1.0.2.tgz", + "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==", "license": "MIT", "dependencies": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" + "is-map": "^2.0.3", + "is-set": "^2.0.3", + "is-weakmap": "^2.0.2", + "is-weakset": "^2.0.3" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-module": { + "version": "2.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/which-module/-/which-module-2.0.1.tgz", + "integrity": "sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ==", + "dev": true, + "license": "ISC" + }, "node_modules/which-typed-array": { - "version": "1.1.13", - "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz", - "integrity": "sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==", + "version": "1.1.19", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/which-typed-array/-/which-typed-array-1.1.19.tgz", + "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==", "license": "MIT", "dependencies": { - "available-typed-arrays": "^1.0.5", - "call-bind": "^1.0.4", - "for-each": "^0.3.3", - "gopd": "^1.0.1", - "has-tostringtag": "^1.0.0" + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.8", + "call-bound": "^1.0.4", + "for-each": "^0.3.5", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-tostringtag": "^1.0.2" }, "engines": { "node": ">= 0.4" @@ -10616,41 +14087,47 @@ } }, "node_modules/winston": { - "version": "3.11.0", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.11.0.tgz", - "integrity": "sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g==", + "version": "3.18.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/winston/-/winston-3.18.3.tgz", + "integrity": "sha512-NoBZauFNNWENgsnC9YpgyYwOVrl2m58PpQ8lNHjV3kosGs7KJ7Npk9pCUE+WJlawVSe8mykWDKWFSVfs3QO9ww==", "license": "MIT", "dependencies": { "@colors/colors": "^1.6.0", - "@dabh/diagnostics": "^2.0.2", + "@dabh/diagnostics": "^2.0.8", "async": "^3.2.3", "is-stream": "^2.0.0", - "logform": "^2.4.0", + "logform": "^2.7.0", "one-time": "^1.0.0", "readable-stream": "^3.4.0", "safe-stable-stringify": "^2.3.1", "stack-trace": "0.0.x", "triple-beam": "^1.3.0", - "winston-transport": "^4.5.0" + "winston-transport": "^4.9.0" }, "engines": { "node": ">= 12.0.0" } }, "node_modules/winston-transport": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.6.0.tgz", - "integrity": "sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg==", + "version": "4.9.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/winston-transport/-/winston-transport-4.9.0.tgz", + "integrity": "sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A==", "license": "MIT", "dependencies": { - "logform": "^2.3.2", - "readable-stream": "^3.6.0", + "logform": "^2.7.0", + "readable-stream": "^3.6.2", "triple-beam": "^1.3.0" }, "engines": { "node": ">= 12.0.0" } }, + "node_modules/wonka": { + "version": "6.3.5", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/wonka/-/wonka-6.3.5.tgz", + "integrity": "sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw==", + "license": "MIT" + }, "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", @@ -10671,6 +14148,25 @@ "node": ">=8" } }, + "node_modules/wrap-ansi-cjs": { + "name": "wrap-ansi", + "version": "7.0.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -10678,23 +14174,36 @@ "license": "ISC" }, "node_modules/write-file-atomic": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", - "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "version": "5.0.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/write-file-atomic/-/write-file-atomic-5.0.1.tgz", + "integrity": "sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw==", "dev": true, "license": "ISC", "dependencies": { "imurmurhash": "^0.1.4", - "signal-exit": "^3.0.7" + "signal-exit": "^4.0.1" }, "engines": { - "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/write-file-atomic/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" } }, "node_modules/ws": { - "version": "8.18.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz", - "integrity": "sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w==", + "version": "8.18.3", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ws/-/ws-8.18.3.tgz", + "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "dev": true, "license": "MIT", "engines": { @@ -10713,23 +14222,6 @@ } } }, - "node_modules/xml-name-validator": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz", - "integrity": "sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18" - } - }, - "node_modules/xmlchars": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", - "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true, - "license": "MIT" - }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", @@ -10741,21 +14233,31 @@ }, "node_modules/yallist": { "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/yallist/-/yallist-3.1.1.tgz", "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", "dev": true, "license": "ISC" }, "node_modules/yaml": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz", - "integrity": "sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ==", + "version": "2.8.1", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/yaml/-/yaml-2.8.1.tgz", + "integrity": "sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw==", "dev": true, "license": "ISC", + "bin": { + "yaml": "bin.mjs" + }, "engines": { - "node": ">= 14" + "node": ">= 14.6" } }, + "node_modules/yaml-ast-parser": { + "version": "0.0.43", + "resolved": "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz", + "integrity": "sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A==", + "dev": true, + "license": "Apache-2.0" + }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", diff --git a/package.json b/package.json index 48e717de..aa1ebb0b 100644 --- a/package.json +++ b/package.json @@ -14,27 +14,26 @@ "branches", "branching" ], - "version": "9.6.6", - "main": "./dist/entrypoint.api.js", - "types": "dist/entrypoint.api.d.ts", + "version": "10.2.0", + "main": "./dist/src/entrypoint.api.js", + "types": "dist/src/entrypoint.api.d.ts", "bin": { - "backport": "./bin/backport" + "backport": "bin/backport" }, "license": "Apache-2.0", "scripts": { - "postinstall": "test -f ./dist/scripts/runPostinstall.js && node ./dist/scripts/runPostinstall.js || echo 'Dist folder missing'", - "build": "tsc -p tsconfig.build.json", - "version": "echo \"Bumping version\" && yarn extractPackageVersion && git add src/utils/packageVersion.ts && yarn tsc", - "prepare": "husky install", - "prepublishOnly": "rm -rf ./dist/ && yarn && yarn lint && yarn tsc", - "extractPackageVersion": "node -p \"'export const PACKAGE_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" | prettier --parser typescript > src/utils/packageVersion.ts", + "postinstall": "test -f ./dist/src/scripts/run-postinstall.js && node ./dist/src/scripts/run-postinstall.js || echo 'Dist folder missing'", + "prepare": "husky", + "prepublishOnly": "rm -rf ./dist/ && yarn && yarn lint && yarn build", "lint-and-test": "yarn lint && yarn test-all", - "lint": "tsc && eslint './src/**/*.ts'", + "lint": "tsc --noEmit --incremental && eslint './**/*.{ts,js}' --fix --cache", "start": "NODE_ENV=development ts-node --transpile-only ./src/entrypoint.cli.ts", "test-all": "jest --config ./jest.config.all.ts", - "test-mutation": "jest --config ./jest.config.mutation.ts", - "test-private": "jest --config ./jest.config.private.ts", - "test": "jest" + "test-mutation": "jest --config ./jest.config.mutation.ts --runInBand", + "test-private": "jest --config ./jest.config.private.ts --runInBand", + "test": "jest", + "codegen": "graphql-codegen --config codegen.ts", + "build": "yarn codegen && tsc --incremental" }, "lint-staged": { "*.ts": [ @@ -61,58 +60,66 @@ ] }, "engines": { - "node": ">=18.0.0" + "node": ">=22.0.0" }, "dependencies": { - "@octokit/rest": "^19.0.7", - "axios": "^1.6.2", + "@octokit/rest": "^20.1.2", + "@urql/core": "^5.1.1", "dedent": "^0.7.0", "del": "^6.1.1", - "dotenv": "^16.0.3", + "dotenv": "^16.5.0", "elastic-apm-node": "^4.10.0", "find-up": "^5.0.0", - "graphql": "^16.8.0", + "graphql": "^16.11.0", "graphql-tag": "^2.12.6", "handlebars": "^4.7.8", - "inquirer": "^8.2.5", + "inquirer": "^8.2.7", "lodash": "^4.17.21", "make-dir": "^3.1.0", "ora": "^5.4.1", "safe-json-stringify": "^1.2.0", "strip-json-comments": "^3.1.1", "terminal-link": "^2.1.1", - "utility-types": "^3.10.0", - "winston": "^3.8.2", + "utility-types": "^3.11.0", + "winston": "^3.17.0", + "wonka": "^6.3.5", "yargs": "^17.7.2", "yargs-parser": "^21.1.1" }, "devDependencies": { + "@0no-co/graphqlsp": "^1.12.16", + "@graphql-codegen/cli": "^5.0.7", + "@graphql-codegen/client-preset": "^4.8.2", + "@graphql-codegen/schema-ast": "^4.1.0", + "@graphql-codegen/typed-document-node": "^5.1.1", + "@graphql-codegen/typescript": "^4.1.6", + "@graphql-codegen/typescript-graphql-request": "^6.3.0", + "@graphql-codegen/typescript-operations": "^4.6.1", + "@parcel/watcher": "^2.5.1", "@types/core-js": "^2.5.5", "@types/dedent": "^0.7.0", - "@types/inquirer": "^8.2.6", - "@types/jest": "^29.5.12", - "@types/lodash": "^4.14.199", - "@types/node": "^20.11.24", + "@types/inquirer": "^9.0.8", + "@types/jest": "^30.0.0", + "@types/lodash": "^4.17.18", + "@types/node": "^22.15.32", "@types/safe-json-stringify": "^1.1.3", - "@types/yargs": "^17.0.28", + "@types/yargs": "^17.0.33", "@types/yargs-parser": "^21.0.1", - "@typescript-eslint/eslint-plugin": "^7.1.1", - "@typescript-eslint/parser": "^7.1.1", - "eslint": "^8.57.0", - "eslint-config-prettier": "^9.0.0", - "eslint-plugin-import": "^2.29.1", - "eslint-plugin-jest": "^27.9.0", - "eslint-plugin-prettier": "^5.1.3", + "@typescript-eslint/eslint-plugin": "^8.34.1", + "@typescript-eslint/parser": "^8.34.1", + "eslint": "^9.0.0", + "eslint-plugin-import": "^2.30.0", "graphql-config": "^5.0.3", - "husky": "^8.0.3", - "jest": "^29.7.0", + "graphql-request": "^7.2.0", + "husky": "^9.1.7", + "jest": "^30.0.0", "jest-snapshot-serializer-ansi": "^1.0.0", - "lint-staged": "^14.0.1", - "nock": "^14.0.3", - "prettier": "^3.2.5", + "lint-staged": "^16.1.2", + "nock": "^14.0.5", + "prettier": "^3.5.3", "strip-ansi": "^6.0.1", - "ts-jest": "^29.1.2", + "ts-jest": "^29.4.0", "ts-node": "^10.9.1", - "typescript": "5.3.3" + "typescript": "^5.8.3" } } diff --git a/schema.graphql b/schema.graphql new file mode 100644 index 00000000..392f38e0 --- /dev/null +++ b/schema.graphql @@ -0,0 +1,33911 @@ +schema { + query: Query + mutation: Mutation +} + +""" +Requires that exactly one field must be supplied and that field must not be `null`. +""" +directive @oneOf on INPUT_OBJECT + +"""Autogenerated input type of AbortQueuedMigrations""" +input AbortQueuedMigrationsInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the organization that is running the migrations.""" + ownerId: ID! +} + +"""Autogenerated return type of AbortQueuedMigrations.""" +type AbortQueuedMigrationsPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """Did the operation succeed?""" + success: Boolean +} + +"""Autogenerated input type of AbortRepositoryMigration""" +input AbortRepositoryMigrationInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the migration to be aborted.""" + migrationId: ID! +} + +"""Autogenerated return type of AbortRepositoryMigration.""" +type AbortRepositoryMigrationPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """Did the operation succeed?""" + success: Boolean +} + +"""Autogenerated input type of AcceptEnterpriseAdministratorInvitation""" +input AcceptEnterpriseAdministratorInvitationInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The id of the invitation being accepted""" + invitationId: ID! +} + +"""Autogenerated return type of AcceptEnterpriseAdministratorInvitation.""" +type AcceptEnterpriseAdministratorInvitationPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The invitation that was accepted.""" + invitation: EnterpriseAdministratorInvitation + """ + A message confirming the result of accepting an administrator invitation. + """ + message: String +} + +"""Autogenerated input type of AcceptEnterpriseMemberInvitation""" +input AcceptEnterpriseMemberInvitationInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The id of the invitation being accepted""" + invitationId: ID! +} + +"""Autogenerated return type of AcceptEnterpriseMemberInvitation.""" +type AcceptEnterpriseMemberInvitationPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The invitation that was accepted.""" + invitation: EnterpriseMemberInvitation + """ + A message confirming the result of accepting an unaffiliated member invitation. + """ + message: String +} + +"""Autogenerated input type of AcceptTopicSuggestion""" +input AcceptTopicSuggestionInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The name of the suggested topic. + + **Upcoming Change on 2024-04-01 UTC** + **Description:** `name` will be removed. + **Reason:** Suggested topics are no longer supported + """ + name: String + """ + The Node ID of the repository. + + **Upcoming Change on 2024-04-01 UTC** + **Description:** `repositoryId` will be removed. + **Reason:** Suggested topics are no longer supported + """ + repositoryId: ID +} + +"""Autogenerated return type of AcceptTopicSuggestion.""" +type AcceptTopicSuggestionPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The accepted topic.""" + topic: Topic @deprecated(reason: "Suggested topics are no longer supported Removal on 2024-04-01 UTC.") +} + +"""Autogenerated input type of AccessUserNamespaceRepository""" +input AccessUserNamespaceRepositoryInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the enterprise owning the user namespace repository.""" + enterpriseId: ID! + """The ID of the user namespace repository to access.""" + repositoryId: ID! +} + +"""Autogenerated return type of AccessUserNamespaceRepository.""" +type AccessUserNamespaceRepositoryPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The time that repository access expires at""" + expiresAt: DateTime + """The repository that is temporarily accessible.""" + repository: Repository +} + +""" +Represents an object which can take actions on GitHub. Typically a User or Bot. +""" +interface Actor { + """A URL pointing to the actor's public avatar.""" + avatarUrl( + """The size of the resulting square image.""" + size: Int + ): URI! + """The username of the actor.""" + login: String! + """The HTTP path for this actor.""" + resourcePath: URI! + """The HTTP URL for this actor.""" + url: URI! +} + +"""The connection type for Actor.""" +type ActorConnection { + """A list of edges.""" + edges: [ActorEdge] + """A list of nodes.""" + nodes: [Actor] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type ActorEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Actor +} + +"""Location information for an actor""" +type ActorLocation { + """City""" + city: String + """Country name""" + country: String + """Country code""" + countryCode: String + """Region name""" + region: String + """Region or state code""" + regionCode: String +} + +"""The actor's type.""" +enum ActorType { + """Indicates a team actor.""" + TEAM + """Indicates a user actor.""" + USER +} + +"""Autogenerated input type of AddAssigneesToAssignable""" +input AddAssigneesToAssignableInput { + """The id of the assignable object to add assignees to.""" + assignableId: ID! + """The id of users to add as assignees.""" + assigneeIds: [ID!]! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of AddAssigneesToAssignable.""" +type AddAssigneesToAssignablePayload { + """The item that was assigned.""" + assignable: Assignable + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated input type of AddComment""" +input AddCommentInput { + """The contents of the comment.""" + body: String! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the subject to modify.""" + subjectId: ID! +} + +"""Autogenerated return type of AddComment.""" +type AddCommentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The edge from the subject's comment connection.""" + commentEdge: IssueCommentEdge + """The subject""" + subject: Node + """The edge from the subject's timeline connection.""" + timelineEdge: IssueTimelineItemEdge +} + +"""Autogenerated input type of AddDiscussionComment""" +input AddDiscussionCommentInput { + """The contents of the comment.""" + body: String! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the discussion to comment on.""" + discussionId: ID! + """ + The Node ID of the discussion comment within this discussion to reply to. + """ + replyToId: ID +} + +"""Autogenerated return type of AddDiscussionComment.""" +type AddDiscussionCommentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The newly created discussion comment.""" + comment: DiscussionComment +} + +"""Autogenerated input type of AddDiscussionPollVote""" +input AddDiscussionPollVoteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the discussion poll option to vote for.""" + pollOptionId: ID! +} + +"""Autogenerated return type of AddDiscussionPollVote.""" +type AddDiscussionPollVotePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The poll option that a vote was added to.""" + pollOption: DiscussionPollOption +} + +"""Autogenerated input type of AddEnterpriseOrganizationMember""" +input AddEnterpriseOrganizationMemberInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the enterprise which owns the organization.""" + enterpriseId: ID! + """The ID of the organization the users will be added to.""" + organizationId: ID! + """The role to assign the users in the organization""" + role: OrganizationMemberRole + """The IDs of the enterprise members to add.""" + userIds: [ID!]! +} + +"""Autogenerated return type of AddEnterpriseOrganizationMember.""" +type AddEnterpriseOrganizationMemberPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The users who were added to the organization.""" + users: [User!] +} + +"""Autogenerated input type of AddEnterpriseSupportEntitlement""" +input AddEnterpriseSupportEntitlementInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the Enterprise which the admin belongs to.""" + enterpriseId: ID! + """The login of a member who will receive the support entitlement.""" + login: String! +} + +"""Autogenerated return type of AddEnterpriseSupportEntitlement.""" +type AddEnterpriseSupportEntitlementPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """A message confirming the result of adding the support entitlement.""" + message: String +} + +"""Autogenerated input type of AddLabelsToLabelable""" +input AddLabelsToLabelableInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ids of the labels to add.""" + labelIds: [ID!]! + """The id of the labelable object to add labels to.""" + labelableId: ID! +} + +"""Autogenerated return type of AddLabelsToLabelable.""" +type AddLabelsToLabelablePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The item that was labeled.""" + labelable: Labelable +} + +"""Autogenerated input type of AddProjectCard""" +input AddProjectCardInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The content of the card. Must be a member of the ProjectCardItem union""" + contentId: ID + """The note on the card.""" + note: String + """The Node ID of the ProjectColumn.""" + projectColumnId: ID! +} + +"""Autogenerated return type of AddProjectCard.""" +type AddProjectCardPayload { + """The edge from the ProjectColumn's card connection.""" + cardEdge: ProjectCardEdge + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ProjectColumn""" + projectColumn: ProjectColumn +} + +"""Autogenerated input type of AddProjectColumn""" +input AddProjectColumnInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The name of the column.""" + name: String! + """The Node ID of the project.""" + projectId: ID! +} + +"""Autogenerated return type of AddProjectColumn.""" +type AddProjectColumnPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The edge from the project's column connection.""" + columnEdge: ProjectColumnEdge + """The project""" + project: Project +} + +"""Autogenerated input type of AddProjectV2DraftIssue""" +input AddProjectV2DraftIssueInput { + """The IDs of the assignees of the draft issue.""" + assigneeIds: [ID!] + """The body of the draft issue.""" + body: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the Project to add the draft issue to.""" + projectId: ID! + """ + The title of the draft issue. A project item can also be created by providing + the URL of an Issue or Pull Request if you have access. + """ + title: String! +} + +"""Autogenerated return type of AddProjectV2DraftIssue.""" +type AddProjectV2DraftIssuePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The draft issue added to the project.""" + projectItem: ProjectV2Item +} + +"""Autogenerated input type of AddProjectV2ItemById""" +input AddProjectV2ItemByIdInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The id of the Issue or Pull Request to add.""" + contentId: ID! + """The ID of the Project to add the item to.""" + projectId: ID! +} + +"""Autogenerated return type of AddProjectV2ItemById.""" +type AddProjectV2ItemByIdPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The item added to the project.""" + item: ProjectV2Item +} + +"""Autogenerated input type of AddPullRequestReviewComment""" +input AddPullRequestReviewCommentInput { + """ + The text of the comment. This field is required + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `body` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead + **Reason:** We are deprecating the addPullRequestReviewComment mutation + """ + body: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The SHA of the commit to comment on. + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `commitOID` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead + **Reason:** We are deprecating the addPullRequestReviewComment mutation + """ + commitOID: GitObjectID + """ + The comment id to reply to. + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `inReplyTo` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead + **Reason:** We are deprecating the addPullRequestReviewComment mutation + """ + inReplyTo: ID + """ + The relative path of the file to comment on. + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `path` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead + **Reason:** We are deprecating the addPullRequestReviewComment mutation + """ + path: String + """ + The line index in the diff to comment on. + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `position` will be removed. use addPullRequestReviewThread or addPullRequestReviewThreadReply instead + **Reason:** We are deprecating the addPullRequestReviewComment mutation + """ + position: Int + """ + The node ID of the pull request reviewing + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `pullRequestId` will be removed. use + addPullRequestReviewThread or addPullRequestReviewThreadReply instead + **Reason:** We are deprecating the addPullRequestReviewComment mutation + """ + pullRequestId: ID + """ + The Node ID of the review to modify. + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `pullRequestReviewId` will be removed. use + addPullRequestReviewThread or addPullRequestReviewThreadReply instead + **Reason:** We are deprecating the addPullRequestReviewComment mutation + """ + pullRequestReviewId: ID +} + +"""Autogenerated return type of AddPullRequestReviewComment.""" +type AddPullRequestReviewCommentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The newly created comment.""" + comment: PullRequestReviewComment + """The edge from the review's comment connection.""" + commentEdge: PullRequestReviewCommentEdge +} + +"""Autogenerated input type of AddPullRequestReview""" +input AddPullRequestReviewInput { + """The contents of the review body comment.""" + body: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The review line comments. + + **Upcoming Change on 2023-10-01 UTC** + **Description:** `comments` will be removed. use the `threads` argument instead + **Reason:** We are deprecating comment fields that use diff-relative positioning + """ + comments: [DraftPullRequestReviewComment] + """The commit OID the review pertains to.""" + commitOID: GitObjectID + """The event to perform on the pull request review.""" + event: PullRequestReviewEvent + """The Node ID of the pull request to modify.""" + pullRequestId: ID! + """The review line comment threads.""" + threads: [DraftPullRequestReviewThread] +} + +"""Autogenerated return type of AddPullRequestReview.""" +type AddPullRequestReviewPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The newly created pull request review.""" + pullRequestReview: PullRequestReview + """The edge from the pull request's review connection.""" + reviewEdge: PullRequestReviewEdge +} + +"""Autogenerated input type of AddPullRequestReviewThread""" +input AddPullRequestReviewThreadInput { + """Body of the thread's first comment.""" + body: String! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The line of the blob to which the thread refers, required for line-level + threads. The end of the line range for multi-line comments. + """ + line: Int + """Path to the file being commented on.""" + path: String! + """The node ID of the pull request reviewing""" + pullRequestId: ID + """The Node ID of the review to modify.""" + pullRequestReviewId: ID + """ + The side of the diff on which the line resides. For multi-line comments, this is the side for the end of the line range. + """ + side: DiffSide = RIGHT + """The first line of the range to which the comment refers.""" + startLine: Int + """The side of the diff on which the start line resides.""" + startSide: DiffSide = RIGHT + """ + The level at which the comments in the corresponding thread are targeted, can be a diff line or a file + """ + subjectType: PullRequestReviewThreadSubjectType = LINE +} + +"""Autogenerated return type of AddPullRequestReviewThread.""" +type AddPullRequestReviewThreadPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The newly created thread.""" + thread: PullRequestReviewThread +} + +"""Autogenerated input type of AddPullRequestReviewThreadReply""" +input AddPullRequestReviewThreadReplyInput { + """The text of the reply.""" + body: String! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the pending review to which the reply will belong.""" + pullRequestReviewId: ID + """The Node ID of the thread to which this reply is being written.""" + pullRequestReviewThreadId: ID! +} + +"""Autogenerated return type of AddPullRequestReviewThreadReply.""" +type AddPullRequestReviewThreadReplyPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The newly created reply.""" + comment: PullRequestReviewComment +} + +"""Autogenerated input type of AddReaction""" +input AddReactionInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The name of the emoji to react with.""" + content: ReactionContent! + """The Node ID of the subject to modify.""" + subjectId: ID! +} + +"""Autogenerated return type of AddReaction.""" +type AddReactionPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The reaction object.""" + reaction: Reaction + """The reaction groups for the subject.""" + reactionGroups: [ReactionGroup!] + """The reactable subject.""" + subject: Reactable +} + +"""Autogenerated input type of AddStar""" +input AddStarInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Starrable ID to star.""" + starrableId: ID! +} + +"""Autogenerated return type of AddStar.""" +type AddStarPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The starrable.""" + starrable: Starrable +} + +"""Autogenerated input type of AddSubIssue""" +input AddSubIssueInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The id of the issue.""" + issueId: ID! + """Option to replace parent issue if one already exists""" + replaceParent: Boolean + """The id of the sub-issue.""" + subIssueId: ID + """The url of the sub-issue.""" + subIssueUrl: String +} + +"""Autogenerated return type of AddSubIssue.""" +type AddSubIssuePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The parent issue that the sub-issue was added to.""" + issue: Issue + """The sub-issue of the parent.""" + subIssue: Issue +} + +"""Autogenerated input type of AddUpvote""" +input AddUpvoteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the discussion or comment to upvote.""" + subjectId: ID! +} + +"""Autogenerated return type of AddUpvote.""" +type AddUpvotePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The votable subject.""" + subject: Votable +} + +"""Autogenerated input type of AddVerifiableDomain""" +input AddVerifiableDomainInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The URL of the domain""" + domain: URI! + """The ID of the owner to add the domain to""" + ownerId: ID! +} + +"""Autogenerated return type of AddVerifiableDomain.""" +type AddVerifiableDomainPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The verifiable domain that was added.""" + domain: VerifiableDomain +} + +"""Represents an 'added_to_merge_queue' event on a given pull request.""" +type AddedToMergeQueueEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The user who added this Pull Request to the merge queue""" + enqueuer: User + """The Node ID of the AddedToMergeQueueEvent object""" + id: ID! + """The merge queue where this pull request was added to.""" + mergeQueue: MergeQueue + """PullRequest referenced by event.""" + pullRequest: PullRequest +} + +""" +Represents a 'added_to_project' event on a given issue or pull request. +""" +type AddedToProjectEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The Node ID of the AddedToProjectEvent object""" + id: ID! + """Project referenced by event.""" + project: Project @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Project card referenced by this project event.""" + projectCard: ProjectCard @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Column name referenced by this project event.""" + projectColumnName: String! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") +} + +"""An announcement banner for an enterprise or organization.""" +type AnnouncementBanner { + """The date the announcement was created""" + createdAt: DateTime! + """The expiration date of the announcement, if any""" + expiresAt: DateTime + """Whether the announcement can be dismissed by the user""" + isUserDismissible: Boolean! + """The text of the announcement""" + message: String +} + +"""A GitHub App.""" +type App implements Node { + """The client ID of the app.""" + clientId: String + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int + """The description of the app.""" + description: String + """The Node ID of the App object""" + id: ID! + """The IP addresses of the app.""" + ipAllowListEntries( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for IP allow list entries returned.""" + orderBy: IpAllowListEntryOrder = {direction: ASC, field: ALLOW_LIST_VALUE} + ): IpAllowListEntryConnection! + """The hex color code, without the leading '#', for the logo background.""" + logoBackgroundColor: String! + """A URL pointing to the app's logo.""" + logoUrl( + """The size of the resulting image.""" + size: Int + ): URI! + """The name of the app.""" + name: String! + """A slug based on the name of the app for use in URLs.""" + slug: String! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The URL to the app's homepage.""" + url: URI! +} + +"""Autogenerated input type of ApproveDeployments""" +input ApproveDeploymentsInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """Optional comment for approving deployments""" + comment: String = "" + """The ids of environments to reject deployments""" + environmentIds: [ID!]! + """The node ID of the workflow run containing the pending deployments.""" + workflowRunId: ID! +} + +"""Autogenerated return type of ApproveDeployments.""" +type ApproveDeploymentsPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The affected deployments.""" + deployments: [Deployment!] +} + +"""Autogenerated input type of ApproveVerifiableDomain""" +input ApproveVerifiableDomainInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the verifiable domain to approve.""" + id: ID! +} + +"""Autogenerated return type of ApproveVerifiableDomain.""" +type ApproveVerifiableDomainPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The verifiable domain that was approved.""" + domain: VerifiableDomain +} + +"""Autogenerated input type of ArchiveProjectV2Item""" +input ArchiveProjectV2ItemInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the ProjectV2Item to archive.""" + itemId: ID! + """The ID of the Project to archive the item from.""" + projectId: ID! +} + +"""Autogenerated return type of ArchiveProjectV2Item.""" +type ArchiveProjectV2ItemPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The item archived from the project.""" + item: ProjectV2Item +} + +"""Autogenerated input type of ArchiveRepository""" +input ArchiveRepositoryInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the repository to mark as archived.""" + repositoryId: ID! +} + +"""Autogenerated return type of ArchiveRepository.""" +type ArchiveRepositoryPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The repository that was marked as archived.""" + repository: Repository +} + +"""An object that can have users assigned to it.""" +interface Assignable { + """A list of actors assigned to this object.""" + assignedActors( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): AssigneeConnection! + """A list of Users assigned to this object.""" + assignees( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserConnection! + """A list of suggested actors to assign to this object""" + suggestedActors( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """If provided, searches users by login or profile name""" + query: String + ): AssigneeConnection! +} + +"""Represents an 'assigned' event on any assignable object.""" +type AssignedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the assignable associated with the event.""" + assignable: Assignable! + """Identifies the user or mannequin that was assigned.""" + assignee: Assignee + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the AssignedEvent object""" + id: ID! + """Identifies the user who was assigned.""" + user: User @deprecated(reason: "Assignees can now be mannequins. Use the `assignee` field instead. Removal on 2020-01-01 UTC.") +} + +"""Types that can be assigned to issues.""" +union Assignee = Bot | Mannequin | Organization | User + +"""The connection type for Assignee.""" +type AssigneeConnection { + """A list of edges.""" + edges: [AssigneeEdge] + """A list of nodes.""" + nodes: [Assignee] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type AssigneeEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Assignee +} + +"""An entry in the audit log.""" +interface AuditEntry { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Types that can initiate an audit log event.""" +union AuditEntryActor = Bot | Organization | User + +"""Ordering options for Audit Log connections.""" +input AuditLogOrder { + """The ordering direction.""" + direction: OrderDirection + """The field to order Audit Logs by.""" + field: AuditLogOrderField +} + +"""Properties by which Audit Log connections can be ordered.""" +enum AuditLogOrderField { + """Order audit log entries by timestamp""" + CREATED_AT +} + +"""Represents a 'auto_merge_disabled' event on a given pull request.""" +type AutoMergeDisabledEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The user who disabled auto-merge for this Pull Request""" + disabler: User + """The Node ID of the AutoMergeDisabledEvent object""" + id: ID! + """PullRequest referenced by event""" + pullRequest: PullRequest + """The reason auto-merge was disabled""" + reason: String + """The reason_code relating to why auto-merge was disabled""" + reasonCode: String +} + +"""Represents a 'auto_merge_enabled' event on a given pull request.""" +type AutoMergeEnabledEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The user who enabled auto-merge for this Pull Request""" + enabler: User + """The Node ID of the AutoMergeEnabledEvent object""" + id: ID! + """PullRequest referenced by event.""" + pullRequest: PullRequest +} + +"""Represents an auto-merge request for a pull request""" +type AutoMergeRequest { + """The email address of the author of this auto-merge request.""" + authorEmail: String + """ + The commit message of the auto-merge request. If a merge queue is required by + the base branch, this value will be set by the merge queue when merging. + """ + commitBody: String + """ + The commit title of the auto-merge request. If a merge queue is required by + the base branch, this value will be set by the merge queue when merging + """ + commitHeadline: String + """When was this auto-merge request was enabled.""" + enabledAt: DateTime + """The actor who created the auto-merge request.""" + enabledBy: Actor + """ + The merge method of the auto-merge request. If a merge queue is required by + the base branch, this value will be set by the merge queue when merging. + """ + mergeMethod: PullRequestMergeMethod! + """The pull request that this auto-merge request is set against.""" + pullRequest: PullRequest! +} + +"""Represents a 'auto_rebase_enabled' event on a given pull request.""" +type AutoRebaseEnabledEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The user who enabled auto-merge (rebase) for this Pull Request""" + enabler: User + """The Node ID of the AutoRebaseEnabledEvent object""" + id: ID! + """PullRequest referenced by event.""" + pullRequest: PullRequest +} + +"""Represents a 'auto_squash_enabled' event on a given pull request.""" +type AutoSquashEnabledEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The user who enabled auto-merge (squash) for this Pull Request""" + enabler: User + """The Node ID of the AutoSquashEnabledEvent object""" + id: ID! + """PullRequest referenced by event.""" + pullRequest: PullRequest +} + +""" +Represents a 'automatic_base_change_failed' event on a given pull request. +""" +type AutomaticBaseChangeFailedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the AutomaticBaseChangeFailedEvent object""" + id: ID! + """The new base for this PR""" + newBase: String! + """The old base for this PR""" + oldBase: String! + """PullRequest referenced by event.""" + pullRequest: PullRequest! +} + +""" +Represents a 'automatic_base_change_succeeded' event on a given pull request. +""" +type AutomaticBaseChangeSucceededEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the AutomaticBaseChangeSucceededEvent object""" + id: ID! + """The new base for this PR""" + newBase: String! + """The old base for this PR""" + oldBase: String! + """PullRequest referenced by event.""" + pullRequest: PullRequest! +} + +"""A (potentially binary) string encoded using base64.""" +scalar Base64String + +""" +Represents a 'base_ref_changed' event on a given issue or pull request. +""" +type BaseRefChangedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """ + Identifies the name of the base ref for the pull request after it was changed. + """ + currentRefName: String! + """Identifies the primary key from the database.""" + databaseId: Int + """The Node ID of the BaseRefChangedEvent object""" + id: ID! + """ + Identifies the name of the base ref for the pull request before it was changed. + """ + previousRefName: String! + """PullRequest referenced by event.""" + pullRequest: PullRequest! +} + +"""Represents a 'base_ref_deleted' event on a given pull request.""" +type BaseRefDeletedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """ + Identifies the name of the Ref associated with the `base_ref_deleted` event. + """ + baseRefName: String + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the BaseRefDeletedEvent object""" + id: ID! + """PullRequest referenced by event.""" + pullRequest: PullRequest +} + +"""Represents a 'base_ref_force_pushed' event on a given pull request.""" +type BaseRefForcePushedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the after commit SHA for the 'base_ref_force_pushed' event.""" + afterCommit: Commit + """ + Identifies the before commit SHA for the 'base_ref_force_pushed' event. + """ + beforeCommit: Commit + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the BaseRefForcePushedEvent object""" + id: ID! + """PullRequest referenced by event.""" + pullRequest: PullRequest! + """ + Identifies the fully qualified ref name for the 'base_ref_force_pushed' event. + """ + ref: Ref +} + +""" +Represents non-fractional signed whole numeric values. Since the value may +exceed the size of a 32-bit integer, it's encoded as a string. +""" +scalar BigInt + +"""Represents a Git blame.""" +type Blame { + """The list of ranges from a Git blame.""" + ranges: [BlameRange!]! +} + +"""Represents a range of information from a Git blame.""" +type BlameRange { + """ + Identifies the recency of the change, from 1 (new) to 10 (old). This is + calculated as a 2-quantile and determines the length of distance between the + median age of all the changes in the file and the recency of the current + range's change. + """ + age: Int! + """Identifies the line author""" + commit: Commit! + """The ending line for the range""" + endingLine: Int! + """The starting line for the range""" + startingLine: Int! +} + +"""Represents a Git blob.""" +type Blob implements GitObject & Node { + """An abbreviated version of the Git object ID""" + abbreviatedOid: String! + """Byte size of Blob object""" + byteSize: Int! + """The HTTP path for this Git object""" + commitResourcePath: URI! + """The HTTP URL for this Git object""" + commitUrl: URI! + """The Node ID of the Blob object""" + id: ID! + """ + Indicates whether the Blob is binary or text. Returns null if unable to determine the encoding. + """ + isBinary: Boolean + """Indicates whether the contents is truncated""" + isTruncated: Boolean! + """The Git object ID""" + oid: GitObjectID! + """The Repository the Git object belongs to""" + repository: Repository! + """UTF8 text data or null if the Blob is binary""" + text: String +} + +"""A special type of user which takes actions on behalf of GitHub Apps.""" +type Bot implements Actor & Node & UniformResourceLocatable { + """A URL pointing to the GitHub App's public avatar.""" + avatarUrl( + """The size of the resulting square image.""" + size: Int + ): URI! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int + """The Node ID of the Bot object""" + id: ID! + """The username of the actor.""" + login: String! + """The HTTP path for this bot""" + resourcePath: URI! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The HTTP URL for this bot""" + url: URI! +} + +"""Types which can be actors for `BranchActorAllowance` objects.""" +union BranchActorAllowanceActor = App | Team | User + +"""Parameters to be used for the branch_name_pattern rule""" +type BranchNamePatternParameters { + """How this rule will appear to users.""" + name: String + """If true, the rule will fail if the pattern matches.""" + negate: Boolean! + """The operator to use for matching.""" + operator: String! + """The pattern to match with.""" + pattern: String! +} + +"""Parameters to be used for the branch_name_pattern rule""" +input BranchNamePatternParametersInput { + """How this rule will appear to users.""" + name: String + """If true, the rule will fail if the pattern matches.""" + negate: Boolean + """The operator to use for matching.""" + operator: String! + """The pattern to match with.""" + pattern: String! +} + +"""A branch protection rule.""" +type BranchProtectionRule implements Node { + """Can this branch be deleted.""" + allowsDeletions: Boolean! + """Are force pushes allowed on this branch.""" + allowsForcePushes: Boolean! + """Is branch creation a protected operation.""" + blocksCreations: Boolean! + """ + A list of conflicts matching branches protection rule and other branch protection rules + """ + branchProtectionRuleConflicts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): BranchProtectionRuleConflictConnection! + """A list of actors able to force push for this branch protection rule.""" + bypassForcePushAllowances( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): BypassForcePushAllowanceConnection! + """A list of actors able to bypass PRs for this branch protection rule.""" + bypassPullRequestAllowances( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): BypassPullRequestAllowanceConnection! + """The actor who created this branch protection rule.""" + creator: Actor + """Identifies the primary key from the database.""" + databaseId: Int + """ + Will new commits pushed to matching branches dismiss pull request review approvals. + """ + dismissesStaleReviews: Boolean! + """The Node ID of the BranchProtectionRule object""" + id: ID! + """Can admins override branch protection.""" + isAdminEnforced: Boolean! + """ + Whether users can pull changes from upstream when the branch is locked. Set to + `true` to allow fork syncing. Set to `false` to prevent fork syncing. + """ + lockAllowsFetchAndMerge: Boolean! + """ + Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. + """ + lockBranch: Boolean! + """Repository refs that are protected by this rule""" + matchingRefs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filters refs with query on name""" + query: String + ): RefConnection! + """Identifies the protection rule pattern.""" + pattern: String! + """A list push allowances for this branch protection rule.""" + pushAllowances( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): PushAllowanceConnection! + """The repository associated with this branch protection rule.""" + repository: Repository + """ + Whether the most recent push must be approved by someone other than the person who pushed it + """ + requireLastPushApproval: Boolean! + """Number of approving reviews required to update matching branches.""" + requiredApprovingReviewCount: Int + """ + List of required deployment environments that must be deployed successfully to update matching branches + """ + requiredDeploymentEnvironments: [String] + """ + List of required status check contexts that must pass for commits to be accepted to matching branches. + """ + requiredStatusCheckContexts: [String] + """ + List of required status checks that must pass for commits to be accepted to matching branches. + """ + requiredStatusChecks: [RequiredStatusCheckDescription!] + """Are approving reviews required to update matching branches.""" + requiresApprovingReviews: Boolean! + """Are reviews from code owners required to update matching branches.""" + requiresCodeOwnerReviews: Boolean! + """Are commits required to be signed.""" + requiresCommitSignatures: Boolean! + """Are conversations required to be resolved before merging.""" + requiresConversationResolution: Boolean! + """ + Does this branch require deployment to specific environments before merging + """ + requiresDeployments: Boolean! + """Are merge commits prohibited from being pushed to this branch.""" + requiresLinearHistory: Boolean! + """Are status checks required to update matching branches.""" + requiresStatusChecks: Boolean! + """Are branches required to be up to date before merging.""" + requiresStrictStatusChecks: Boolean! + """Is pushing to matching branches restricted.""" + restrictsPushes: Boolean! + """Is dismissal of pull request reviews restricted.""" + restrictsReviewDismissals: Boolean! + """A list review dismissal allowances for this branch protection rule.""" + reviewDismissalAllowances( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): ReviewDismissalAllowanceConnection! +} + +"""A conflict between two branch protection rules.""" +type BranchProtectionRuleConflict { + """Identifies the branch protection rule.""" + branchProtectionRule: BranchProtectionRule + """Identifies the conflicting branch protection rule.""" + conflictingBranchProtectionRule: BranchProtectionRule + """Identifies the branch ref that has conflicting rules""" + ref: Ref +} + +"""The connection type for BranchProtectionRuleConflict.""" +type BranchProtectionRuleConflictConnection { + """A list of edges.""" + edges: [BranchProtectionRuleConflictEdge] + """A list of nodes.""" + nodes: [BranchProtectionRuleConflict] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type BranchProtectionRuleConflictEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: BranchProtectionRuleConflict +} + +"""The connection type for BranchProtectionRule.""" +type BranchProtectionRuleConnection { + """A list of edges.""" + edges: [BranchProtectionRuleEdge] + """A list of nodes.""" + nodes: [BranchProtectionRule] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type BranchProtectionRuleEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: BranchProtectionRule +} + +""" +Information about a sponsorship to make for a user or organization with a GitHub +Sponsors profile, as part of sponsoring many users or organizations at once. +""" +input BulkSponsorship { + """ + The amount to pay to the sponsorable in US dollars. Valid values: 1-12000. + """ + amount: Int! + """ + The ID of the user or organization who is receiving the sponsorship. Required if sponsorableLogin is not given. + """ + sponsorableId: ID + """ + The username of the user or organization who is receiving the sponsorship. Required if sponsorableId is not given. + """ + sponsorableLogin: String +} + +"""Types that can represent a repository ruleset bypass actor.""" +union BypassActor = App | Team + +""" +A user, team, or app who has the ability to bypass a force push requirement on a protected branch. +""" +type BypassForcePushAllowance implements Node { + """The actor that can force push.""" + actor: BranchActorAllowanceActor + """ + Identifies the branch protection rule associated with the allowed user, team, or app. + """ + branchProtectionRule: BranchProtectionRule + """The Node ID of the BypassForcePushAllowance object""" + id: ID! +} + +"""The connection type for BypassForcePushAllowance.""" +type BypassForcePushAllowanceConnection { + """A list of edges.""" + edges: [BypassForcePushAllowanceEdge] + """A list of nodes.""" + nodes: [BypassForcePushAllowance] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type BypassForcePushAllowanceEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: BypassForcePushAllowance +} + +""" +A user, team, or app who has the ability to bypass a pull request requirement on a protected branch. +""" +type BypassPullRequestAllowance implements Node { + """The actor that can bypass.""" + actor: BranchActorAllowanceActor + """ + Identifies the branch protection rule associated with the allowed user, team, or app. + """ + branchProtectionRule: BranchProtectionRule + """The Node ID of the BypassPullRequestAllowance object""" + id: ID! +} + +"""The connection type for BypassPullRequestAllowance.""" +type BypassPullRequestAllowanceConnection { + """A list of edges.""" + edges: [BypassPullRequestAllowanceEdge] + """A list of nodes.""" + nodes: [BypassPullRequestAllowance] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type BypassPullRequestAllowanceEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: BypassPullRequestAllowance +} + +"""The Common Vulnerability Scoring System""" +type CVSS { + """The CVSS score associated with this advisory""" + score: Float! + """The CVSS vector string associated with this advisory""" + vectorString: String +} + +"""A common weakness enumeration""" +type CWE implements Node { + """The id of the CWE""" + cweId: String! + """A detailed description of this CWE""" + description: String! + """The Node ID of the CWE object""" + id: ID! + """The name of this CWE""" + name: String! +} + +"""The connection type for CWE.""" +type CWEConnection { + """A list of edges.""" + edges: [CWEEdge] + """A list of nodes.""" + nodes: [CWE] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type CWEEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: CWE +} + +"""Autogenerated input type of CancelEnterpriseAdminInvitation""" +input CancelEnterpriseAdminInvitationInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the pending enterprise administrator invitation.""" + invitationId: ID! +} + +"""Autogenerated return type of CancelEnterpriseAdminInvitation.""" +type CancelEnterpriseAdminInvitationPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The invitation that was canceled.""" + invitation: EnterpriseAdministratorInvitation + """ + A message confirming the result of canceling an administrator invitation. + """ + message: String +} + +"""Autogenerated input type of CancelEnterpriseMemberInvitation""" +input CancelEnterpriseMemberInvitationInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the pending enterprise member invitation.""" + invitationId: ID! +} + +"""Autogenerated return type of CancelEnterpriseMemberInvitation.""" +type CancelEnterpriseMemberInvitationPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The invitation that was canceled.""" + invitation: EnterpriseMemberInvitation + """A message confirming the result of canceling an member invitation.""" + message: String +} + +"""Autogenerated input type of CancelSponsorship""" +input CancelSponsorshipInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The ID of the user or organization who is acting as the sponsor, paying for + the sponsorship. Required if sponsorLogin is not given. + """ + sponsorId: ID + """ + The username of the user or organization who is acting as the sponsor, paying + for the sponsorship. Required if sponsorId is not given. + """ + sponsorLogin: String + """ + The ID of the user or organization who is receiving the sponsorship. Required if sponsorableLogin is not given. + """ + sponsorableId: ID + """ + The username of the user or organization who is receiving the sponsorship. Required if sponsorableId is not given. + """ + sponsorableLogin: String +} + +"""Autogenerated return type of CancelSponsorship.""" +type CancelSponsorshipPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The tier that was being used at the time of cancellation.""" + sponsorsTier: SponsorsTier +} + +"""Autogenerated input type of ChangeUserStatus""" +input ChangeUserStatusInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The emoji to represent your status. Can either be a native Unicode emoji or an emoji name with colons, e.g., :grinning:. + """ + emoji: String + """If set, the user status will not be shown after this date.""" + expiresAt: DateTime + """ + Whether this status should indicate you are not fully available on GitHub, e.g., you are away. + """ + limitedAvailability: Boolean = false + """A short description of your current status.""" + message: String + """ + The ID of the organization whose members will be allowed to see the status. If + omitted, the status will be publicly visible. + """ + organizationId: ID +} + +"""Autogenerated return type of ChangeUserStatus.""" +type ChangeUserStatusPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """Your updated status.""" + status: UserStatus +} + +"""A single check annotation.""" +type CheckAnnotation { + """The annotation's severity level.""" + annotationLevel: CheckAnnotationLevel + """The path to the file that this annotation was made on.""" + blobUrl: URI! + """Identifies the primary key from the database.""" + databaseId: Int + """The position of this annotation.""" + location: CheckAnnotationSpan! + """The annotation's message.""" + message: String! + """The path that this annotation was made on.""" + path: String! + """Additional information about the annotation.""" + rawDetails: String + """The annotation's title""" + title: String +} + +"""The connection type for CheckAnnotation.""" +type CheckAnnotationConnection { + """A list of edges.""" + edges: [CheckAnnotationEdge] + """A list of nodes.""" + nodes: [CheckAnnotation] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""Information from a check run analysis to specific lines of code.""" +input CheckAnnotationData { + """Represents an annotation's information level""" + annotationLevel: CheckAnnotationLevel! + """The location of the annotation""" + location: CheckAnnotationRange! + """A short description of the feedback for these lines of code.""" + message: String! + """The path of the file to add an annotation to.""" + path: String! + """Details about this annotation.""" + rawDetails: String + """The title that represents the annotation.""" + title: String +} + +"""An edge in a connection.""" +type CheckAnnotationEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: CheckAnnotation +} + +"""Represents an annotation's information level.""" +enum CheckAnnotationLevel { + """An annotation indicating an inescapable error.""" + FAILURE + """An annotation indicating some information.""" + NOTICE + """An annotation indicating an ignorable error.""" + WARNING +} + +"""A character position in a check annotation.""" +type CheckAnnotationPosition { + """Column number (1 indexed).""" + column: Int + """Line number (1 indexed).""" + line: Int! +} + +"""Information from a check run analysis to specific lines of code.""" +input CheckAnnotationRange { + """The ending column of the range.""" + endColumn: Int + """The ending line of the range.""" + endLine: Int! + """The starting column of the range.""" + startColumn: Int + """The starting line of the range.""" + startLine: Int! +} + +"""An inclusive pair of positions for a check annotation.""" +type CheckAnnotationSpan { + """End position (inclusive).""" + end: CheckAnnotationPosition! + """Start position (inclusive).""" + start: CheckAnnotationPosition! +} + +"""The possible states for a check suite or run conclusion.""" +enum CheckConclusionState { + """The check suite or run requires action.""" + ACTION_REQUIRED + """The check suite or run has been cancelled.""" + CANCELLED + """The check suite or run has failed.""" + FAILURE + """The check suite or run was neutral.""" + NEUTRAL + """The check suite or run was skipped.""" + SKIPPED + """ + The check suite or run was marked stale by GitHub. Only GitHub can use this conclusion. + """ + STALE + """The check suite or run has failed at startup.""" + STARTUP_FAILURE + """The check suite or run has succeeded.""" + SUCCESS + """The check suite or run has timed out.""" + TIMED_OUT +} + +"""A check run.""" +type CheckRun implements Node & RequirableByPullRequest & UniformResourceLocatable { + """The check run's annotations""" + annotations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): CheckAnnotationConnection + """The check suite that this run is a part of.""" + checkSuite: CheckSuite! + """Identifies the date and time when the check run was completed.""" + completedAt: DateTime + """The conclusion of the check run.""" + conclusion: CheckConclusionState + """Identifies the primary key from the database.""" + databaseId: Int + """The corresponding deployment for this job, if any""" + deployment: Deployment + """ + The URL from which to find full details of the check run on the integrator's site. + """ + detailsUrl: URI + """A reference for the check run on the integrator's system.""" + externalId: String + """The Node ID of the CheckRun object""" + id: ID! + """ + Whether this is required to pass before merging for a specific pull request. + """ + isRequired( + """The id of the pull request this is required for""" + pullRequestId: ID + """The number of the pull request this is required for""" + pullRequestNumber: Int + ): Boolean! + """The name of the check for this check run.""" + name: String! + """Information about a pending deployment, if any, in this check run""" + pendingDeploymentRequest: DeploymentRequest + """The permalink to the check run summary.""" + permalink: URI! + """The repository associated with this check run.""" + repository: Repository! + """The HTTP path for this check run.""" + resourcePath: URI! + """Identifies the date and time when the check run was started.""" + startedAt: DateTime + """The current status of the check run.""" + status: CheckStatusState! + """The check run's steps""" + steps( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Step number""" + number: Int + ): CheckStepConnection + """A string representing the check run's summary""" + summary: String + """A string representing the check run's text""" + text: String + """A string representing the check run""" + title: String + """The HTTP URL for this check run.""" + url: URI! +} + +"""Possible further actions the integrator can perform.""" +input CheckRunAction { + """A short explanation of what this action would do.""" + description: String! + """A reference for the action on the integrator's system. """ + identifier: String! + """The text to be displayed on a button in the web UI.""" + label: String! +} + +"""The connection type for CheckRun.""" +type CheckRunConnection { + """A list of edges.""" + edges: [CheckRunEdge] + """A list of nodes.""" + nodes: [CheckRun] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type CheckRunEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: CheckRun +} + +"""The filters that are available when fetching check runs.""" +input CheckRunFilter { + """Filters the check runs created by this application ID.""" + appId: Int + """Filters the check runs by this name.""" + checkName: String + """Filters the check runs by this type.""" + checkType: CheckRunType + """Filters the check runs by these conclusions.""" + conclusions: [CheckConclusionState!] + """Filters the check runs by this status. Superceded by statuses.""" + status: CheckStatusState + """Filters the check runs by this status. Overrides status.""" + statuses: [CheckStatusState!] +} + +"""Descriptive details about the check run.""" +input CheckRunOutput { + """The annotations that are made as part of the check run.""" + annotations: [CheckAnnotationData!] + """ + Images attached to the check run output displayed in the GitHub pull request UI. + """ + images: [CheckRunOutputImage!] + """The summary of the check run (supports Commonmark).""" + summary: String! + """The details of the check run (supports Commonmark).""" + text: String + """A title to provide for this check run.""" + title: String! +} + +""" +Images attached to the check run output displayed in the GitHub pull request UI. +""" +input CheckRunOutputImage { + """The alternative text for the image.""" + alt: String! + """A short image description.""" + caption: String + """The full URL of the image.""" + imageUrl: URI! +} + +"""The possible states of a check run in a status rollup.""" +enum CheckRunState { + """The check run requires action.""" + ACTION_REQUIRED + """The check run has been cancelled.""" + CANCELLED + """The check run has been completed.""" + COMPLETED + """The check run has failed.""" + FAILURE + """The check run is in progress.""" + IN_PROGRESS + """The check run was neutral.""" + NEUTRAL + """The check run is in pending state.""" + PENDING + """The check run has been queued.""" + QUEUED + """The check run was skipped.""" + SKIPPED + """ + The check run was marked stale by GitHub. Only GitHub can use this conclusion. + """ + STALE + """The check run has failed at startup.""" + STARTUP_FAILURE + """The check run has succeeded.""" + SUCCESS + """The check run has timed out.""" + TIMED_OUT + """The check run is in waiting state.""" + WAITING +} + +"""Represents a count of the state of a check run.""" +type CheckRunStateCount { + """The number of check runs with this state.""" + count: Int! + """The state of a check run.""" + state: CheckRunState! +} + +"""The possible types of check runs.""" +enum CheckRunType { + """Every check run available.""" + ALL + """The latest check run.""" + LATEST +} + +"""The possible states for a check suite or run status.""" +enum CheckStatusState { + """The check suite or run has been completed.""" + COMPLETED + """The check suite or run is in progress.""" + IN_PROGRESS + """The check suite or run is in pending state.""" + PENDING + """The check suite or run has been queued.""" + QUEUED + """The check suite or run has been requested.""" + REQUESTED + """The check suite or run is in waiting state.""" + WAITING +} + +"""A single check step.""" +type CheckStep { + """Identifies the date and time when the check step was completed.""" + completedAt: DateTime + """The conclusion of the check step.""" + conclusion: CheckConclusionState + """A reference for the check step on the integrator's system.""" + externalId: String + """The step's name.""" + name: String! + """The index of the step in the list of steps of the parent check run.""" + number: Int! + """Number of seconds to completion.""" + secondsToCompletion: Int + """Identifies the date and time when the check step was started.""" + startedAt: DateTime + """The current status of the check step.""" + status: CheckStatusState! +} + +"""The connection type for CheckStep.""" +type CheckStepConnection { + """A list of edges.""" + edges: [CheckStepEdge] + """A list of nodes.""" + nodes: [CheckStep] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type CheckStepEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: CheckStep +} + +"""A check suite.""" +type CheckSuite implements Node { + """The GitHub App which created this check suite.""" + app: App + """The name of the branch for this check suite.""" + branch: Ref + """The check runs associated with a check suite.""" + checkRuns( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Filters the check runs by this type.""" + filterBy: CheckRunFilter + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): CheckRunConnection + """The commit for this check suite""" + commit: Commit! + """The conclusion of this check suite.""" + conclusion: CheckConclusionState + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The user who triggered the check suite.""" + creator: User + """Identifies the primary key from the database.""" + databaseId: Int + """The Node ID of the CheckSuite object""" + id: ID! + """A list of open pull requests matching the check suite.""" + matchingPullRequests( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """The base ref name to filter the pull requests by.""" + baseRefName: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """The head ref name to filter the pull requests by.""" + headRefName: String + """A list of label names to filter the pull requests by.""" + labels: [String!] + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for pull requests returned from the connection.""" + orderBy: IssueOrder + """A list of states to filter the pull requests by.""" + states: [PullRequestState!] + ): PullRequestConnection + """The push that triggered this check suite.""" + push: Push + """The repository associated with this check suite.""" + repository: Repository! + """The HTTP path for this check suite""" + resourcePath: URI! + """The status of this check suite.""" + status: CheckStatusState! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The HTTP URL for this check suite""" + url: URI! + """The workflow run associated with this check suite.""" + workflowRun: WorkflowRun +} + +"""The auto-trigger preferences that are available for check suites.""" +input CheckSuiteAutoTriggerPreference { + """The node ID of the application that owns the check suite.""" + appId: ID! + """ + Set to `true` to enable automatic creation of CheckSuite events upon pushes to the repository. + """ + setting: Boolean! +} + +"""The connection type for CheckSuite.""" +type CheckSuiteConnection { + """A list of edges.""" + edges: [CheckSuiteEdge] + """A list of nodes.""" + nodes: [CheckSuite] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type CheckSuiteEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: CheckSuite +} + +"""The filters that are available when fetching check suites.""" +input CheckSuiteFilter { + """Filters the check suites created by this application ID.""" + appId: Int + """Filters the check suites by this name.""" + checkName: String +} + +"""An object which can have its data claimed or claim data from another.""" +union Claimable = Mannequin | User + +"""Autogenerated input type of ClearLabelsFromLabelable""" +input ClearLabelsFromLabelableInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The id of the labelable object to clear the labels from.""" + labelableId: ID! +} + +"""Autogenerated return type of ClearLabelsFromLabelable.""" +type ClearLabelsFromLabelablePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The item that was unlabeled.""" + labelable: Labelable +} + +"""Autogenerated input type of ClearProjectV2ItemFieldValue""" +input ClearProjectV2ItemFieldValueInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the field to be cleared.""" + fieldId: ID! + """The ID of the item to be cleared.""" + itemId: ID! + """The ID of the Project.""" + projectId: ID! +} + +"""Autogenerated return type of ClearProjectV2ItemFieldValue.""" +type ClearProjectV2ItemFieldValuePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated item.""" + projectV2Item: ProjectV2Item +} + +"""Autogenerated input type of CloneProject""" +input CloneProjectInput { + """The description of the project.""" + body: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """Whether or not to clone the source project's workflows.""" + includeWorkflows: Boolean! + """The name of the project.""" + name: String! + """The visibility of the project, defaults to false (private).""" + public: Boolean + """The source project to clone.""" + sourceId: ID! + """The owner ID to create the project under.""" + targetOwnerId: ID! +} + +"""Autogenerated return type of CloneProject.""" +type CloneProjectPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The id of the JobStatus for populating cloned fields.""" + jobStatusId: String + """The new cloned project.""" + project: Project +} + +"""Autogenerated input type of CloneTemplateRepository""" +input CloneTemplateRepositoryInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """A short description of the new repository.""" + description: String + """ + Whether to copy all branches from the template to the new repository. Defaults + to copying only the default branch of the template. + """ + includeAllBranches: Boolean = false + """The name of the new repository.""" + name: String! + """The ID of the owner for the new repository.""" + ownerId: ID! + """The Node ID of the template repository.""" + repositoryId: ID! + """Indicates the repository's visibility level.""" + visibility: RepositoryVisibility! +} + +"""Autogenerated return type of CloneTemplateRepository.""" +type CloneTemplateRepositoryPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The new repository.""" + repository: Repository +} + +"""An object that can be closed""" +interface Closable { + """ + Indicates if the object is closed (definition of closed may depend on type) + """ + closed: Boolean! + """Identifies the date and time when the object was closed.""" + closedAt: DateTime + """Indicates if the object can be closed by the viewer.""" + viewerCanClose: Boolean! + """Indicates if the object can be reopened by the viewer.""" + viewerCanReopen: Boolean! +} + +"""Autogenerated input type of CloseDiscussion""" +input CloseDiscussionInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ID of the discussion to be closed.""" + discussionId: ID! + """The reason why the discussion is being closed.""" + reason: DiscussionCloseReason = RESOLVED +} + +"""Autogenerated return type of CloseDiscussion.""" +type CloseDiscussionPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The discussion that was closed.""" + discussion: Discussion +} + +"""Autogenerated input type of CloseIssue""" +input CloseIssueInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ID of the issue that this is a duplicate of.""" + duplicateIssueId: ID + """ID of the issue to be closed.""" + issueId: ID! + """The reason the issue is to be closed.""" + stateReason: IssueClosedStateReason +} + +"""Autogenerated return type of CloseIssue.""" +type CloseIssuePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The issue that was closed.""" + issue: Issue +} + +"""Autogenerated input type of ClosePullRequest""" +input ClosePullRequestInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ID of the pull request to be closed.""" + pullRequestId: ID! +} + +"""Autogenerated return type of ClosePullRequest.""" +type ClosePullRequestPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The pull request that was closed.""" + pullRequest: PullRequest +} + +"""Represents a 'closed' event on any `Closable`.""" +type ClosedEvent implements Node & UniformResourceLocatable { + """Identifies the actor who performed the event.""" + actor: Actor + """Object that was closed.""" + closable: Closable! + """Object which triggered the creation of this event.""" + closer: Closer + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the ClosedEvent object""" + id: ID! + """The HTTP path for this closed event.""" + resourcePath: URI! + """The reason the issue state was changed to closed.""" + stateReason: IssueStateReason + """The HTTP URL for this closed event.""" + url: URI! +} + +"""The object which triggered a `ClosedEvent`.""" +union Closer = Commit | ProjectV2 | PullRequest + +"""The Code of Conduct for a repository""" +type CodeOfConduct implements Node { + """The body of the Code of Conduct""" + body: String + """The Node ID of the CodeOfConduct object""" + id: ID! + """The key for the Code of Conduct""" + key: String! + """The formal name of the Code of Conduct""" + name: String! + """The HTTP path for this Code of Conduct""" + resourcePath: URI + """The HTTP URL for this Code of Conduct""" + url: URI +} + +""" +Choose which tools must provide code scanning results before the reference is +updated. When configured, code scanning must be enabled and have results for +both the commit and the reference being updated. +""" +type CodeScanningParameters { + """Tools that must provide code scanning results for this rule to pass.""" + codeScanningTools: [CodeScanningTool!]! +} + +""" +Choose which tools must provide code scanning results before the reference is +updated. When configured, code scanning must be enabled and have results for +both the commit and the reference being updated. +""" +input CodeScanningParametersInput { + """Tools that must provide code scanning results for this rule to pass.""" + codeScanningTools: [CodeScanningToolInput!]! +} + +"""A tool that must provide code scanning results for this rule to pass.""" +type CodeScanningTool { + """ + The severity level at which code scanning results that raise alerts block a + reference update. For more information on alert severity levels, see "[About code scanning alerts](${externalDocsUrl}/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts#about-alert-severity-and-security-severity-levels)." + """ + alertsThreshold: String! + """ + The severity level at which code scanning results that raise security alerts + block a reference update. For more information on security severity levels, + see "[About code scanning alerts](${externalDocsUrl}/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts#about-alert-severity-and-security-severity-levels)." + """ + securityAlertsThreshold: String! + """The name of a code scanning tool""" + tool: String! +} + +"""A tool that must provide code scanning results for this rule to pass.""" +input CodeScanningToolInput { + """ + The severity level at which code scanning results that raise alerts block a + reference update. For more information on alert severity levels, see "[About code scanning alerts](${externalDocsUrl}/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts#about-alert-severity-and-security-severity-levels)." + """ + alertsThreshold: String! + """ + The severity level at which code scanning results that raise security alerts + block a reference update. For more information on security severity levels, + see "[About code scanning alerts](${externalDocsUrl}/code-security/code-scanning/managing-code-scanning-alerts/about-code-scanning-alerts#about-alert-severity-and-security-severity-levels)." + """ + securityAlertsThreshold: String! + """The name of a code scanning tool""" + tool: String! +} + +"""Collaborators affiliation level with a subject.""" +enum CollaboratorAffiliation { + """All collaborators the authenticated user can see.""" + ALL + """ + All collaborators with permissions to an organization-owned subject, regardless of organization membership status. + """ + DIRECT + """All outside collaborators of an organization-owned subject.""" + OUTSIDE +} + +"""Represents a comment.""" +interface Comment { + """The actor who authored the comment.""" + author: Actor + """Author's association with the subject of the comment.""" + authorAssociation: CommentAuthorAssociation! + """The body as Markdown.""" + body: String! + """The body rendered to HTML.""" + bodyHTML: HTML! + """The body rendered to text.""" + bodyText: String! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Check if this comment was created via an email reply.""" + createdViaEmail: Boolean! + """The actor who edited the comment.""" + editor: Actor + """The Node ID of the Comment object""" + id: ID! + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + """The moment the editor made the last edit""" + lastEditedAt: DateTime + """Identifies when the comment was published at.""" + publishedAt: DateTime + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """A list of edits to this content.""" + userContentEdits( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserContentEditConnection + """Did the viewer author this comment.""" + viewerDidAuthor: Boolean! +} + +"""A comment author association with repository.""" +enum CommentAuthorAssociation { + """Author has been invited to collaborate on the repository.""" + COLLABORATOR + """Author has previously committed to the repository.""" + CONTRIBUTOR + """Author has not previously committed to GitHub.""" + FIRST_TIMER + """Author has not previously committed to the repository.""" + FIRST_TIME_CONTRIBUTOR + """Author is a placeholder for an unclaimed user.""" + MANNEQUIN + """Author is a member of the organization that owns the repository.""" + MEMBER + """Author has no association with the repository.""" + NONE + """Author is the owner of the repository.""" + OWNER +} + +"""The possible errors that will prevent a user from updating a comment.""" +enum CommentCannotUpdateReason { + """Unable to create comment because repository is archived.""" + ARCHIVED + """You cannot update this comment""" + DENIED + """ + You must be the author or have write access to this repository to update this comment. + """ + INSUFFICIENT_ACCESS + """Unable to create comment because issue is locked.""" + LOCKED + """You must be logged in to update this comment.""" + LOGIN_REQUIRED + """Repository is under maintenance.""" + MAINTENANCE + """At least one email address must be verified to update this comment.""" + VERIFIED_EMAIL_REQUIRED +} + +"""Represents a 'comment_deleted' event on a given issue or pull request.""" +type CommentDeletedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int + """The user who authored the deleted comment.""" + deletedCommentAuthor: Actor + """The Node ID of the CommentDeletedEvent object""" + id: ID! +} + +"""Represents a Git commit.""" +type Commit implements GitObject & Node & Subscribable & UniformResourceLocatable { + """An abbreviated version of the Git object ID""" + abbreviatedOid: String! + """The number of additions in this commit.""" + additions: Int! + """ + The merged Pull Request that introduced the commit to the repository. If the + commit is not present in the default branch, additionally returns open Pull + Requests associated with the commit + """ + associatedPullRequests( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for pull requests.""" + orderBy: PullRequestOrder = {direction: ASC, field: CREATED_AT} + ): PullRequestConnection + """Authorship details of the commit.""" + author: GitActor + """Check if the committer and the author match.""" + authoredByCommitter: Boolean! + """The datetime when this commit was authored.""" + authoredDate: DateTime! + """ + The list of authors for this commit based on the git author and the Co-authored-by + message trailer. The git author will always be first. + """ + authors( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): GitActorConnection! + """Fetches `git blame` information.""" + blame( + """The file whose Git blame information you want.""" + path: String! + ): Blame! + """ + We recommend using the `changedFilesIfAvailable` field instead of + `changedFiles`, as `changedFiles` will cause your request to return an error + if GitHub is unable to calculate the number of changed files. + """ + changedFiles: Int! @deprecated(reason: "`changedFiles` will be removed. Use `changedFilesIfAvailable` instead. Removal on 2023-01-01 UTC.") + """ + The number of changed files in this commit. If GitHub is unable to calculate + the number of changed files (for example due to a timeout), this will return + `null`. We recommend using this field instead of `changedFiles`. + """ + changedFilesIfAvailable: Int + """The check suites associated with a commit.""" + checkSuites( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Filters the check suites by this type.""" + filterBy: CheckSuiteFilter + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): CheckSuiteConnection + """Comments made on the commit.""" + comments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): CommitCommentConnection! + """The HTTP path for this Git object""" + commitResourcePath: URI! + """The HTTP URL for this Git object""" + commitUrl: URI! + """The datetime when this commit was committed.""" + committedDate: DateTime! + """Check if committed via GitHub web UI.""" + committedViaWeb: Boolean! + """Committer details of the commit.""" + committer: GitActor + """The number of deletions in this commit.""" + deletions: Int! + """The deployments associated with a commit.""" + deployments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Environments to list deployments for""" + environments: [String!] + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for deployments returned from the connection.""" + orderBy: DeploymentOrder = {direction: ASC, field: CREATED_AT} + ): DeploymentConnection + """The tree entry representing the file located at the given path.""" + file( + """The path for the file""" + path: String! + ): TreeEntry + """ + The linear commit history starting from (and including) this commit, in the same order as `git log`. + """ + history( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + If non-null, filters history to only show commits with matching authorship. + """ + author: CommitAuthor + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + If non-null, filters history to only show commits touching files under this path. + """ + path: String + """ + Allows specifying a beginning time or date for fetching commits. Unexpected + results may be returned for dates not between 1970-01-01 and 2099-12-13 (inclusive). + """ + since: GitTimestamp + """ + Allows specifying an ending time or date for fetching commits. Unexpected + results may be returned for dates not between 1970-01-01 and 2099-12-13 (inclusive). + """ + until: GitTimestamp + ): CommitHistoryConnection! + """The Node ID of the Commit object""" + id: ID! + """The Git commit message""" + message: String! + """The Git commit message body""" + messageBody: String! + """The commit message body rendered to HTML.""" + messageBodyHTML: HTML! + """The Git commit message headline""" + messageHeadline: String! + """The commit message headline rendered to HTML.""" + messageHeadlineHTML: HTML! + """The Git object ID""" + oid: GitObjectID! + """The organization this commit was made on behalf of.""" + onBehalfOf: Organization + """The parents of a commit.""" + parents( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): CommitConnection! + """The datetime when this commit was pushed.""" + pushedDate: DateTime @deprecated(reason: "`pushedDate` is no longer supported. Removal on 2023-07-01 UTC.") + """The Repository this commit belongs to""" + repository: Repository! + """The HTTP path for this commit""" + resourcePath: URI! + """Commit signing information, if present.""" + signature: GitSignature + """Status information for this commit""" + status: Status + """Check and Status rollup information for this commit.""" + statusCheckRollup: StatusCheckRollup + """ + Returns a list of all submodules in this repository as of this Commit parsed from the .gitmodules file. + """ + submodules( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): SubmoduleConnection! + """ + Returns a URL to download a tarball archive for a repository. + Note: For private repositories, these links are temporary and expire after five minutes. + """ + tarballUrl: URI! + """Commit's root Tree""" + tree: Tree! + """The HTTP path for the tree of this commit""" + treeResourcePath: URI! + """The HTTP URL for the tree of this commit""" + treeUrl: URI! + """The HTTP URL for this commit""" + url: URI! + """ + Check if the viewer is able to change their subscription status for the repository. + """ + viewerCanSubscribe: Boolean! + """ + Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. + """ + viewerSubscription: SubscriptionState + """ + Returns a URL to download a zipball archive for a repository. + Note: For private repositories, these links are temporary and expire after five minutes. + """ + zipballUrl: URI! +} + +"""Specifies an author for filtering Git commits.""" +input CommitAuthor { + """ + Email addresses to filter by. Commits authored by any of the specified email addresses will be returned. + """ + emails: [String!] + """ + ID of a User to filter by. If non-null, only commits authored by this user + will be returned. This field takes precedence over emails. + """ + id: ID +} + +"""Parameters to be used for the commit_author_email_pattern rule""" +type CommitAuthorEmailPatternParameters { + """How this rule will appear to users.""" + name: String + """If true, the rule will fail if the pattern matches.""" + negate: Boolean! + """The operator to use for matching.""" + operator: String! + """The pattern to match with.""" + pattern: String! +} + +"""Parameters to be used for the commit_author_email_pattern rule""" +input CommitAuthorEmailPatternParametersInput { + """How this rule will appear to users.""" + name: String + """If true, the rule will fail if the pattern matches.""" + negate: Boolean + """The operator to use for matching.""" + operator: String! + """The pattern to match with.""" + pattern: String! +} + +"""Represents a comment on a given Commit.""" +type CommitComment implements Comment & Deletable & Minimizable & Node & Reactable & RepositoryNode & Updatable & UpdatableComment { + """The actor who authored the comment.""" + author: Actor + """Author's association with the subject of the comment.""" + authorAssociation: CommentAuthorAssociation! + """Identifies the comment body.""" + body: String! + """The body rendered to HTML.""" + bodyHTML: HTML! + """The body rendered to text.""" + bodyText: String! + """ + Identifies the commit associated with the comment, if the commit exists. + """ + commit: Commit + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Check if this comment was created via an email reply.""" + createdViaEmail: Boolean! + """Identifies the primary key from the database.""" + databaseId: Int + """The actor who edited the comment.""" + editor: Actor + """The Node ID of the CommitComment object""" + id: ID! + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + """Returns whether or not a comment has been minimized.""" + isMinimized: Boolean! + """The moment the editor made the last edit""" + lastEditedAt: DateTime + """ + Returns why the comment was minimized. One of `abuse`, `off-topic`, + `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and + formatting of these values differs from the inputs to the `MinimizeComment` mutation. + """ + minimizedReason: String + """Identifies the file path associated with the comment.""" + path: String + """Identifies the line position associated with the comment.""" + position: Int + """Identifies when the comment was published at.""" + publishedAt: DateTime + """A list of reactions grouped by content left on the subject.""" + reactionGroups: [ReactionGroup!] + """A list of Reactions left on the Issue.""" + reactions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Allows filtering Reactions by emoji.""" + content: ReactionContent + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Allows specifying the order in which reactions are returned.""" + orderBy: ReactionOrder + ): ReactionConnection! + """The repository associated with this node.""" + repository: Repository! + """The HTTP path permalink for this commit comment.""" + resourcePath: URI! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The HTTP URL permalink for this commit comment.""" + url: URI! + """A list of edits to this content.""" + userContentEdits( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserContentEditConnection + """Check if the current viewer can delete this object.""" + viewerCanDelete: Boolean! + """Check if the current viewer can minimize this object.""" + viewerCanMinimize: Boolean! + """Can user react to this subject""" + viewerCanReact: Boolean! + """Check if the current viewer can update this object.""" + viewerCanUpdate: Boolean! + """Reasons why the current viewer can not update this comment.""" + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! + """Did the viewer author this comment.""" + viewerDidAuthor: Boolean! +} + +"""The connection type for CommitComment.""" +type CommitCommentConnection { + """A list of edges.""" + edges: [CommitCommentEdge] + """A list of nodes.""" + nodes: [CommitComment] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type CommitCommentEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: CommitComment +} + +"""A thread of comments on a commit.""" +type CommitCommentThread implements Node & RepositoryNode { + """The comments that exist in this thread.""" + comments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): CommitCommentConnection! + """The commit the comments were made on.""" + commit: Commit + """The Node ID of the CommitCommentThread object""" + id: ID! + """The file the comments were made on.""" + path: String + """The position in the diff for the commit that the comment was made on.""" + position: Int + """The repository associated with this node.""" + repository: Repository! +} + +"""The connection type for Commit.""" +type CommitConnection { + """A list of edges.""" + edges: [CommitEdge] + """A list of nodes.""" + nodes: [Commit] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""Ordering options for commit contribution connections.""" +input CommitContributionOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field by which to order commit contributions.""" + field: CommitContributionOrderField! +} + +"""Properties by which commit contribution connections can be ordered.""" +enum CommitContributionOrderField { + """Order commit contributions by how many commits they represent.""" + COMMIT_COUNT + """Order commit contributions by when they were made.""" + OCCURRED_AT +} + +"""This aggregates commits made by a user within one repository.""" +type CommitContributionsByRepository { + """The commit contributions, each representing a day.""" + contributions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Ordering options for commit contributions returned from the connection. + """ + orderBy: CommitContributionOrder = {direction: DESC, field: OCCURRED_AT} + ): CreatedCommitContributionConnection! + """The repository in which the commits were made.""" + repository: Repository! + """ + The HTTP path for the user's commits to the repository in this time range. + """ + resourcePath: URI! + """ + The HTTP URL for the user's commits to the repository in this time range. + """ + url: URI! +} + +"""An edge in a connection.""" +type CommitEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Commit +} + +"""The connection type for Commit.""" +type CommitHistoryConnection { + """A list of edges.""" + edges: [CommitEdge] + """A list of nodes.""" + nodes: [Commit] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""A message to include with a new commit""" +input CommitMessage { + """The body of the message.""" + body: String + """The headline of the message.""" + headline: String! +} + +"""Parameters to be used for the commit_message_pattern rule""" +type CommitMessagePatternParameters { + """How this rule will appear to users.""" + name: String + """If true, the rule will fail if the pattern matches.""" + negate: Boolean! + """The operator to use for matching.""" + operator: String! + """The pattern to match with.""" + pattern: String! +} + +"""Parameters to be used for the commit_message_pattern rule""" +input CommitMessagePatternParametersInput { + """How this rule will appear to users.""" + name: String + """If true, the rule will fail if the pattern matches.""" + negate: Boolean + """The operator to use for matching.""" + operator: String! + """The pattern to match with.""" + pattern: String! +} + +""" +A git ref for a commit to be appended to. + +The ref must be a branch, i.e. its fully qualified name must start +with `refs/heads/` (although the input is not required to be fully +qualified). + +The Ref may be specified by its global node ID or by the +`repositoryNameWithOwner` and `branchName`. + +### Examples + +Specify a branch using a global node ID: + + { "id": "MDM6UmVmMTpyZWZzL2hlYWRzL21haW4=" } + +Specify a branch using `repositoryNameWithOwner` and `branchName`: + + { + "repositoryNameWithOwner": "github/graphql-client", + "branchName": "main" + } +""" +input CommittableBranch { + """The unqualified name of the branch to append the commit to.""" + branchName: String + """The Node ID of the Ref to be updated.""" + id: ID + """The nameWithOwner of the repository to commit to.""" + repositoryNameWithOwner: String +} + +"""Parameters to be used for the committer_email_pattern rule""" +type CommitterEmailPatternParameters { + """How this rule will appear to users.""" + name: String + """If true, the rule will fail if the pattern matches.""" + negate: Boolean! + """The operator to use for matching.""" + operator: String! + """The pattern to match with.""" + pattern: String! +} + +"""Parameters to be used for the committer_email_pattern rule""" +input CommitterEmailPatternParametersInput { + """How this rule will appear to users.""" + name: String + """If true, the rule will fail if the pattern matches.""" + negate: Boolean + """The operator to use for matching.""" + operator: String! + """The pattern to match with.""" + pattern: String! +} + +"""Represents a comparison between two commit revisions.""" +type Comparison implements Node { + """The number of commits ahead of the base branch.""" + aheadBy: Int! + """The base revision of this comparison.""" + baseTarget: GitObject! + """The number of commits behind the base branch.""" + behindBy: Int! + """The commits which compose this comparison.""" + commits( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): ComparisonCommitConnection! + """The head revision of this comparison.""" + headTarget: GitObject! + """The Node ID of the Comparison object""" + id: ID! + """The status of this comparison.""" + status: ComparisonStatus! +} + +"""The connection type for Commit.""" +type ComparisonCommitConnection { + """The total count of authors and co-authors across all commits.""" + authorCount: Int! + """A list of edges.""" + edges: [CommitEdge] + """A list of nodes.""" + nodes: [Commit] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""The status of a git comparison between two refs.""" +enum ComparisonStatus { + """The head ref is ahead of the base ref.""" + AHEAD + """The head ref is behind the base ref.""" + BEHIND + """ + The head ref is both ahead and behind of the base ref, indicating git history has diverged. + """ + DIVERGED + """The head ref and base ref are identical.""" + IDENTICAL +} + +"""Represents a 'connected' event on a given issue or pull request.""" +type ConnectedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the ConnectedEvent object""" + id: ID! + """Reference originated in a different repository.""" + isCrossRepository: Boolean! + """Issue or pull request that made the reference.""" + source: ReferencedSubject! + """Issue or pull request which was connected.""" + subject: ReferencedSubject! +} + +"""The Contributing Guidelines for a repository.""" +type ContributingGuidelines { + """The body of the Contributing Guidelines.""" + body: String + """The HTTP path for the Contributing Guidelines.""" + resourcePath: URI + """The HTTP URL for the Contributing Guidelines.""" + url: URI +} + +""" +Represents a contribution a user made on GitHub, such as opening an issue. +""" +interface Contribution { + """ + Whether this contribution is associated with a record you do not have access to. For + example, your own 'first issue' contribution may have been made on a repository you can no + longer access. + """ + isRestricted: Boolean! + """When this contribution was made.""" + occurredAt: DateTime! + """The HTTP path for this contribution.""" + resourcePath: URI! + """The HTTP URL for this contribution.""" + url: URI! + """The user who made this contribution.""" + user: User! +} + +"""A calendar of contributions made on GitHub by a user.""" +type ContributionCalendar { + """ + A list of hex color codes used in this calendar. The darker the color, the more contributions it represents. + """ + colors: [String!]! + """ + Determine if the color set was chosen because it's currently Halloween. + """ + isHalloween: Boolean! + """A list of the months of contributions in this calendar.""" + months: [ContributionCalendarMonth!]! + """The count of total contributions in the calendar.""" + totalContributions: Int! + """A list of the weeks of contributions in this calendar.""" + weeks: [ContributionCalendarWeek!]! +} + +"""Represents a single day of contributions on GitHub by a user.""" +type ContributionCalendarDay { + """ + The hex color code that represents how many contributions were made on this day compared to others in the calendar. + """ + color: String! + """How many contributions were made by the user on this day.""" + contributionCount: Int! + """ + Indication of contributions, relative to other days. Can be used to indicate + which color to represent this day on a calendar. + """ + contributionLevel: ContributionLevel! + """The day this square represents.""" + date: Date! + """ + A number representing which day of the week this square represents, e.g., 1 is Monday. + """ + weekday: Int! +} + +"""A month of contributions in a user's contribution graph.""" +type ContributionCalendarMonth { + """The date of the first day of this month.""" + firstDay: Date! + """The name of the month.""" + name: String! + """How many weeks started in this month.""" + totalWeeks: Int! + """The year the month occurred in.""" + year: Int! +} + +"""A week of contributions in a user's contribution graph.""" +type ContributionCalendarWeek { + """The days of contributions in this week.""" + contributionDays: [ContributionCalendarDay!]! + """The date of the earliest square in this week.""" + firstDay: Date! +} + +"""Varying levels of contributions from none to many.""" +enum ContributionLevel { + """Lowest 25% of days of contributions.""" + FIRST_QUARTILE + """ + Highest 25% of days of contributions. More contributions than the third quartile. + """ + FOURTH_QUARTILE + """No contributions occurred.""" + NONE + """ + Second lowest 25% of days of contributions. More contributions than the first quartile. + """ + SECOND_QUARTILE + """ + Second highest 25% of days of contributions. More contributions than second quartile, less than the fourth quartile. + """ + THIRD_QUARTILE +} + +"""Ordering options for contribution connections.""" +input ContributionOrder { + """The ordering direction.""" + direction: OrderDirection! +} + +""" +A contributions collection aggregates contributions such as opened issues and commits created by a user. +""" +type ContributionsCollection { + """Commit contributions made by the user, grouped by repository.""" + commitContributionsByRepository( + """How many repositories should be included.""" + maxRepositories: Int = 25 + ): [CommitContributionsByRepository!]! + """A calendar of this user's contributions on GitHub.""" + contributionCalendar: ContributionCalendar! + """ + The years the user has been making contributions with the most recent year first. + """ + contributionYears: [Int!]! + """Determine if this collection's time span ends in the current month.""" + doesEndInCurrentMonth: Boolean! + """ + The date of the first restricted contribution the user made in this time + period. Can only be non-null when the user has enabled private contribution counts. + """ + earliestRestrictedContributionDate: Date + """The ending date and time of this collection.""" + endedAt: DateTime! + """ + The first issue the user opened on GitHub. This will be null if that issue was + opened outside the collection's time range and ignoreTimeRange is false. If + the issue is not visible but the user has opted to show private contributions, + a RestrictedContribution will be returned. + """ + firstIssueContribution: CreatedIssueOrRestrictedContribution + """ + The first pull request the user opened on GitHub. This will be null if that + pull request was opened outside the collection's time range and + ignoreTimeRange is not true. If the pull request is not visible but the user + has opted to show private contributions, a RestrictedContribution will be returned. + """ + firstPullRequestContribution: CreatedPullRequestOrRestrictedContribution + """ + The first repository the user created on GitHub. This will be null if that + first repository was created outside the collection's time range and + ignoreTimeRange is false. If the repository is not visible, then a + RestrictedContribution is returned. + """ + firstRepositoryContribution: CreatedRepositoryOrRestrictedContribution + """ + Does the user have any more activity in the timeline that occurred prior to the collection's time range? + """ + hasActivityInThePast: Boolean! + """Determine if there are any contributions in this collection.""" + hasAnyContributions: Boolean! + """ + Determine if the user made any contributions in this time frame whose details + are not visible because they were made in a private repository. Can only be + true if the user enabled private contribution counts. + """ + hasAnyRestrictedContributions: Boolean! + """Whether or not the collector's time span is all within the same day.""" + isSingleDay: Boolean! + """A list of issues the user opened.""" + issueContributions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Should the user's first issue ever be excluded from the result.""" + excludeFirst: Boolean = false + """Should the user's most commented issue be excluded from the result.""" + excludePopular: Boolean = false + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for contributions returned from the connection.""" + orderBy: ContributionOrder = {direction: DESC} + ): CreatedIssueContributionConnection! + """Issue contributions made by the user, grouped by repository.""" + issueContributionsByRepository( + """Should the user's first issue ever be excluded from the result.""" + excludeFirst: Boolean = false + """Should the user's most commented issue be excluded from the result.""" + excludePopular: Boolean = false + """How many repositories should be included.""" + maxRepositories: Int = 25 + ): [IssueContributionsByRepository!]! + """ + When the user signed up for GitHub. This will be null if that sign up date + falls outside the collection's time range and ignoreTimeRange is false. + """ + joinedGitHubContribution: JoinedGitHubContribution + """ + The date of the most recent restricted contribution the user made in this time + period. Can only be non-null when the user has enabled private contribution counts. + """ + latestRestrictedContributionDate: Date + """ + When this collection's time range does not include any activity from the user, use this + to get a different collection from an earlier time range that does have activity. + """ + mostRecentCollectionWithActivity: ContributionsCollection + """ + Returns a different contributions collection from an earlier time range than this one + that does not have any contributions. + """ + mostRecentCollectionWithoutActivity: ContributionsCollection + """ + The issue the user opened on GitHub that received the most comments in the specified + time frame. + """ + popularIssueContribution: CreatedIssueContribution + """ + The pull request the user opened on GitHub that received the most comments in the + specified time frame. + """ + popularPullRequestContribution: CreatedPullRequestContribution + """Pull request contributions made by the user.""" + pullRequestContributions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Should the user's first pull request ever be excluded from the result.""" + excludeFirst: Boolean = false + """ + Should the user's most commented pull request be excluded from the result. + """ + excludePopular: Boolean = false + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for contributions returned from the connection.""" + orderBy: ContributionOrder = {direction: DESC} + ): CreatedPullRequestContributionConnection! + """Pull request contributions made by the user, grouped by repository.""" + pullRequestContributionsByRepository( + """Should the user's first pull request ever be excluded from the result.""" + excludeFirst: Boolean = false + """ + Should the user's most commented pull request be excluded from the result. + """ + excludePopular: Boolean = false + """How many repositories should be included.""" + maxRepositories: Int = 25 + ): [PullRequestContributionsByRepository!]! + """ + Pull request review contributions made by the user. Returns the most recently + submitted review for each PR reviewed by the user. + """ + pullRequestReviewContributions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for contributions returned from the connection.""" + orderBy: ContributionOrder = {direction: DESC} + ): CreatedPullRequestReviewContributionConnection! + """ + Pull request review contributions made by the user, grouped by repository. + """ + pullRequestReviewContributionsByRepository( + """How many repositories should be included.""" + maxRepositories: Int = 25 + ): [PullRequestReviewContributionsByRepository!]! + """ + A list of repositories owned by the user that the user created in this time range. + """ + repositoryContributions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Should the user's first repository ever be excluded from the result.""" + excludeFirst: Boolean = false + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for contributions returned from the connection.""" + orderBy: ContributionOrder = {direction: DESC} + ): CreatedRepositoryContributionConnection! + """ + A count of contributions made by the user that the viewer cannot access. Only + non-zero when the user has chosen to share their private contribution counts. + """ + restrictedContributionsCount: Int! + """The beginning date and time of this collection.""" + startedAt: DateTime! + """How many commits were made by the user in this time span.""" + totalCommitContributions: Int! + """How many issues the user opened.""" + totalIssueContributions( + """Should the user's first issue ever be excluded from this count.""" + excludeFirst: Boolean = false + """Should the user's most commented issue be excluded from this count.""" + excludePopular: Boolean = false + ): Int! + """How many pull requests the user opened.""" + totalPullRequestContributions( + """Should the user's first pull request ever be excluded from this count.""" + excludeFirst: Boolean = false + """ + Should the user's most commented pull request be excluded from this count. + """ + excludePopular: Boolean = false + ): Int! + """How many pull request reviews the user left.""" + totalPullRequestReviewContributions: Int! + """How many different repositories the user committed to.""" + totalRepositoriesWithContributedCommits: Int! + """How many different repositories the user opened issues in.""" + totalRepositoriesWithContributedIssues( + """Should the user's first issue ever be excluded from this count.""" + excludeFirst: Boolean = false + """Should the user's most commented issue be excluded from this count.""" + excludePopular: Boolean = false + ): Int! + """How many different repositories the user left pull request reviews in.""" + totalRepositoriesWithContributedPullRequestReviews: Int! + """How many different repositories the user opened pull requests in.""" + totalRepositoriesWithContributedPullRequests( + """Should the user's first pull request ever be excluded from this count.""" + excludeFirst: Boolean = false + """ + Should the user's most commented pull request be excluded from this count. + """ + excludePopular: Boolean = false + ): Int! + """How many repositories the user created.""" + totalRepositoryContributions( + """Should the user's first repository ever be excluded from this count.""" + excludeFirst: Boolean = false + ): Int! + """The user who made the contributions in this collection.""" + user: User! +} + +"""Autogenerated input type of ConvertProjectCardNoteToIssue""" +input ConvertProjectCardNoteToIssueInput { + """The body of the newly created issue.""" + body: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ProjectCard ID to convert.""" + projectCardId: ID! + """The ID of the repository to create the issue in.""" + repositoryId: ID! + """ + The title of the newly created issue. Defaults to the card's note text. + """ + title: String +} + +"""Autogenerated return type of ConvertProjectCardNoteToIssue.""" +type ConvertProjectCardNoteToIssuePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated ProjectCard.""" + projectCard: ProjectCard +} + +"""Autogenerated input type of ConvertProjectV2DraftIssueItemToIssue""" +input ConvertProjectV2DraftIssueItemToIssueInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the draft issue ProjectV2Item to convert.""" + itemId: ID! + """The ID of the repository to create the issue in.""" + repositoryId: ID! +} + +"""Autogenerated return type of ConvertProjectV2DraftIssueItemToIssue.""" +type ConvertProjectV2DraftIssueItemToIssuePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated project item.""" + item: ProjectV2Item +} + +"""Autogenerated input type of ConvertPullRequestToDraft""" +input ConvertPullRequestToDraftInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ID of the pull request to convert to draft""" + pullRequestId: ID! +} + +"""Autogenerated return type of ConvertPullRequestToDraft.""" +type ConvertPullRequestToDraftPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The pull request that is now a draft.""" + pullRequest: PullRequest +} + +"""Represents a 'convert_to_draft' event on a given pull request.""" +type ConvertToDraftEvent implements Node & UniformResourceLocatable { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the ConvertToDraftEvent object""" + id: ID! + """PullRequest referenced by event.""" + pullRequest: PullRequest! + """The HTTP path for this convert to draft event.""" + resourcePath: URI! + """The HTTP URL for this convert to draft event.""" + url: URI! +} + +""" +Represents a 'converted_note_to_issue' event on a given issue or pull request. +""" +type ConvertedNoteToIssueEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int + """The Node ID of the ConvertedNoteToIssueEvent object""" + id: ID! + """Project referenced by event.""" + project: Project @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Project card referenced by this project event.""" + projectCard: ProjectCard @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Column name referenced by this project event.""" + projectColumnName: String! +} + +"""Represents a 'converted_to_discussion' event on a given issue.""" +type ConvertedToDiscussionEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The discussion that the issue was converted into.""" + discussion: Discussion + """The Node ID of the ConvertedToDiscussionEvent object""" + id: ID! +} + +"""Copilot endpoint information""" +type CopilotEndpoints { + """Copilot API endpoint""" + api: String! + """Copilot origin tracker endpoint""" + originTracker: String! + """Copilot proxy endpoint""" + proxy: String! + """Copilot telemetry endpoint""" + telemetry: String! +} + +"""Autogenerated input type of CopyProjectV2""" +input CopyProjectV2Input { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """Include draft issues in the new project""" + includeDraftIssues: Boolean = false + """The owner ID of the new project.""" + ownerId: ID! + """The ID of the source Project to copy.""" + projectId: ID! + """The title of the project.""" + title: String! +} + +"""Autogenerated return type of CopyProjectV2.""" +type CopyProjectV2Payload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The copied project.""" + projectV2: ProjectV2 +} + +"""Autogenerated input type of CreateAttributionInvitation""" +input CreateAttributionInvitationInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the owner scoping the reattributable data.""" + ownerId: ID! + """The Node ID of the account owning the data to reattribute.""" + sourceId: ID! + """The Node ID of the account which may claim the data.""" + targetId: ID! +} + +"""Autogenerated return type of CreateAttributionInvitation.""" +type CreateAttributionInvitationPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The owner scoping the reattributable data.""" + owner: Organization + """The account owning the data to reattribute.""" + source: Claimable + """The account which may claim the data.""" + target: Claimable +} + +"""Autogenerated input type of CreateBranchProtectionRule""" +input CreateBranchProtectionRuleInput { + """Can this branch be deleted.""" + allowsDeletions: Boolean + """Are force pushes allowed on this branch.""" + allowsForcePushes: Boolean + """Is branch creation a protected operation.""" + blocksCreations: Boolean + """ + A list of User, Team, or App IDs allowed to bypass force push targeting matching branches. + """ + bypassForcePushActorIds: [ID!] + """ + A list of User, Team, or App IDs allowed to bypass pull requests targeting matching branches. + """ + bypassPullRequestActorIds: [ID!] + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + Will new commits pushed to matching branches dismiss pull request review approvals. + """ + dismissesStaleReviews: Boolean + """Can admins override branch protection.""" + isAdminEnforced: Boolean + """ + Whether users can pull changes from upstream when the branch is locked. Set to + `true` to allow fork syncing. Set to `false` to prevent fork syncing. + """ + lockAllowsFetchAndMerge: Boolean + """ + Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. + """ + lockBranch: Boolean + """The glob-like pattern used to determine matching branches.""" + pattern: String! + """A list of User, Team, or App IDs allowed to push to matching branches.""" + pushActorIds: [ID!] + """ + The global relay id of the repository in which a new branch protection rule should be created in. + """ + repositoryId: ID! + """ + Whether the most recent push must be approved by someone other than the person who pushed it + """ + requireLastPushApproval: Boolean + """Number of approving reviews required to update matching branches.""" + requiredApprovingReviewCount: Int + """The list of required deployment environments""" + requiredDeploymentEnvironments: [String!] + """ + List of required status check contexts that must pass for commits to be accepted to matching branches. + """ + requiredStatusCheckContexts: [String!] + """The list of required status checks""" + requiredStatusChecks: [RequiredStatusCheckInput!] + """Are approving reviews required to update matching branches.""" + requiresApprovingReviews: Boolean + """Are reviews from code owners required to update matching branches.""" + requiresCodeOwnerReviews: Boolean + """Are commits required to be signed.""" + requiresCommitSignatures: Boolean + """Are conversations required to be resolved before merging.""" + requiresConversationResolution: Boolean + """Are successful deployments required before merging.""" + requiresDeployments: Boolean + """Are merge commits prohibited from being pushed to this branch.""" + requiresLinearHistory: Boolean + """Are status checks required to update matching branches.""" + requiresStatusChecks: Boolean + """Are branches required to be up to date before merging.""" + requiresStrictStatusChecks: Boolean + """Is pushing to matching branches restricted.""" + restrictsPushes: Boolean + """Is dismissal of pull request reviews restricted.""" + restrictsReviewDismissals: Boolean + """ + A list of User, Team, or App IDs allowed to dismiss reviews on pull requests targeting matching branches. + """ + reviewDismissalActorIds: [ID!] +} + +"""Autogenerated return type of CreateBranchProtectionRule.""" +type CreateBranchProtectionRulePayload { + """The newly created BranchProtectionRule.""" + branchProtectionRule: BranchProtectionRule + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated input type of CreateCheckRun""" +input CreateCheckRunInput { + """ + Possible further actions the integrator can perform, which a user may trigger. + """ + actions: [CheckRunAction!] + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The time that the check run finished.""" + completedAt: DateTime + """The final conclusion of the check.""" + conclusion: CheckConclusionState + """ + The URL of the integrator's site that has the full details of the check. + """ + detailsUrl: URI + """A reference for the run on the integrator's system.""" + externalId: String + """The SHA of the head commit.""" + headSha: GitObjectID! + """The name of the check.""" + name: String! + """Descriptive details about the run.""" + output: CheckRunOutput + """The node ID of the repository.""" + repositoryId: ID! + """The time that the check run began.""" + startedAt: DateTime + """The current status.""" + status: RequestableCheckStatusState +} + +"""Autogenerated return type of CreateCheckRun.""" +type CreateCheckRunPayload { + """The newly created check run.""" + checkRun: CheckRun + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated input type of CreateCheckSuite""" +input CreateCheckSuiteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The SHA of the head commit.""" + headSha: GitObjectID! + """The Node ID of the repository.""" + repositoryId: ID! +} + +"""Autogenerated return type of CreateCheckSuite.""" +type CreateCheckSuitePayload { + """The newly created check suite.""" + checkSuite: CheckSuite + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated input type of CreateCommitOnBranch""" +input CreateCommitOnBranchInput { + """The Ref to be updated. Must be a branch.""" + branch: CommittableBranch! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The git commit oid expected at the head of the branch prior to the commit + """ + expectedHeadOid: GitObjectID! + """A description of changes to files in this commit.""" + fileChanges: FileChanges + """The commit message the be included with the commit.""" + message: CommitMessage! +} + +"""Autogenerated return type of CreateCommitOnBranch.""" +type CreateCommitOnBranchPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The new commit.""" + commit: Commit + """The ref which has been updated to point to the new commit.""" + ref: Ref +} + +"""Autogenerated input type of CreateDeployment""" +input CreateDeploymentInput { + """ + Attempt to automatically merge the default branch into the requested ref, defaults to true. + """ + autoMerge: Boolean = true + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """Short description of the deployment.""" + description: String = "" + """Name for the target deployment environment.""" + environment: String = "production" + """JSON payload with extra information about the deployment.""" + payload: String = "{}" + """The node ID of the ref to be deployed.""" + refId: ID! + """The node ID of the repository.""" + repositoryId: ID! + """ + The status contexts to verify against commit status checks. To bypass required + contexts, pass an empty array. Defaults to all unique contexts. + """ + requiredContexts: [String!] + """Specifies a task to execute.""" + task: String = "deploy" +} + +"""Autogenerated return type of CreateDeployment.""" +type CreateDeploymentPayload { + """ + True if the default branch has been auto-merged into the deployment ref. + """ + autoMerged: Boolean + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The new deployment.""" + deployment: Deployment +} + +"""Autogenerated input type of CreateDeploymentStatus""" +input CreateDeploymentStatusInput { + """ + Adds a new inactive status to all non-transient, non-production environment + deployments with the same repository and environment name as the created + status's deployment. + """ + autoInactive: Boolean = true + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The node ID of the deployment.""" + deploymentId: ID! + """A short description of the status. Maximum length of 140 characters.""" + description: String = "" + """ + If provided, updates the environment of the deploy. Otherwise, does not modify the environment. + """ + environment: String + """Sets the URL for accessing your environment.""" + environmentUrl: String = "" + """ + The log URL to associate with this status. This URL should contain + output to keep the user updated while the task is running or serve as + historical information for what happened in the deployment. + """ + logUrl: String = "" + """The state of the deployment.""" + state: DeploymentStatusState! +} + +"""Autogenerated return type of CreateDeploymentStatus.""" +type CreateDeploymentStatusPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The new deployment status.""" + deploymentStatus: DeploymentStatus +} + +"""Autogenerated input type of CreateDiscussion""" +input CreateDiscussionInput { + """The body of the discussion.""" + body: String! + """The id of the discussion category to associate with this discussion.""" + categoryId: ID! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The id of the repository on which to create the discussion.""" + repositoryId: ID! + """The title of the discussion.""" + title: String! +} + +"""Autogenerated return type of CreateDiscussion.""" +type CreateDiscussionPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The discussion that was just created.""" + discussion: Discussion +} + +"""Autogenerated input type of CreateEnterpriseOrganization""" +input CreateEnterpriseOrganizationInput { + """The logins for the administrators of the new organization.""" + adminLogins: [String!]! + """The email used for sending billing receipts.""" + billingEmail: String! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the enterprise owning the new organization.""" + enterpriseId: ID! + """The login of the new organization.""" + login: String! + """The profile name of the new organization.""" + profileName: String! +} + +"""Autogenerated return type of CreateEnterpriseOrganization.""" +type CreateEnterpriseOrganizationPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The enterprise that owns the created organization.""" + enterprise: Enterprise + """The organization that was created.""" + organization: Organization +} + +"""Autogenerated input type of CreateEnvironment""" +input CreateEnvironmentInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The name of the environment.""" + name: String! + """The node ID of the repository.""" + repositoryId: ID! +} + +"""Autogenerated return type of CreateEnvironment.""" +type CreateEnvironmentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The new or existing environment.""" + environment: Environment +} + +"""Autogenerated input type of CreateIpAllowListEntry""" +input CreateIpAllowListEntryInput { + """An IP address or range of addresses in CIDR notation.""" + allowListValue: String! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + Whether the IP allow list entry is active when an IP allow list is enabled. + """ + isActive: Boolean! + """An optional name for the IP allow list entry.""" + name: String + """The ID of the owner for which to create the new IP allow list entry.""" + ownerId: ID! +} + +"""Autogenerated return type of CreateIpAllowListEntry.""" +type CreateIpAllowListEntryPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The IP allow list entry that was created.""" + ipAllowListEntry: IpAllowListEntry +} + +"""Autogenerated input type of CreateIssue""" +input CreateIssueInput { + """The Node ID of assignees for this issue.""" + assigneeIds: [ID!] + """The body for the issue description.""" + body: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The name of an issue template in the repository, assigns labels and assignees from the template to the issue + """ + issueTemplate: String + """The Node ID of the issue type for this issue""" + issueTypeId: ID + """An array of Node IDs of labels for this issue.""" + labelIds: [ID!] + """The Node ID of the milestone for this issue.""" + milestoneId: ID + """The Node ID of the parent issue to add this new issue to""" + parentIssueId: ID + """An array of Node IDs for projects associated with this issue.""" + projectIds: [ID!] + """The Node ID of the repository.""" + repositoryId: ID! + """The title for the issue.""" + title: String! +} + +"""Autogenerated return type of CreateIssue.""" +type CreateIssuePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The new issue.""" + issue: Issue +} + +"""Autogenerated input type of CreateIssueType""" +input CreateIssueTypeInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """Color for the issue type""" + color: IssueTypeColor + """Description of the new issue type""" + description: String + """Whether or not the issue type is enabled on the org level""" + isEnabled: Boolean! + """Name of the new issue type""" + name: String! + """The ID for the organization on which the issue type is created""" + ownerId: ID! +} + +"""Autogenerated return type of CreateIssueType.""" +type CreateIssueTypePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The newly created issue type""" + issueType: IssueType +} + +"""Autogenerated input type of CreateLabel""" +input CreateLabelInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + A 6 character hex code, without the leading #, identifying the color of the label. + """ + color: String! + """A brief description of the label, such as its purpose.""" + description: String + """The name of the label.""" + name: String! + """The Node ID of the repository.""" + repositoryId: ID! +} + +"""Autogenerated return type of CreateLabel.""" +type CreateLabelPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The new label.""" + label: Label +} + +"""Autogenerated input type of CreateLinkedBranch""" +input CreateLinkedBranchInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ID of the issue to link to.""" + issueId: ID! + """The name of the new branch. Defaults to issue number and title.""" + name: String + """The commit SHA to base the new branch on.""" + oid: GitObjectID! + """ + ID of the repository to create the branch in. Defaults to the issue repository. + """ + repositoryId: ID +} + +"""Autogenerated return type of CreateLinkedBranch.""" +type CreateLinkedBranchPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The issue that was linked to.""" + issue: Issue + """The new branch issue reference.""" + linkedBranch: LinkedBranch +} + +"""Autogenerated input type of CreateMigrationSource""" +input CreateMigrationSourceInput { + """The migration source access token.""" + accessToken: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The GitHub personal access token of the user importing to the target repository. + """ + githubPat: String + """The migration source name.""" + name: String! + """The ID of the organization that will own the migration source.""" + ownerId: ID! + """The migration source type.""" + type: MigrationSourceType! + """ + The migration source URL, for example `https://github.com` or `https://monalisa.ghe.com`. + """ + url: String +} + +"""Autogenerated return type of CreateMigrationSource.""" +type CreateMigrationSourcePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The created migration source.""" + migrationSource: MigrationSource +} + +"""Autogenerated input type of CreateProject""" +input CreateProjectInput { + """The description of project.""" + body: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The name of project.""" + name: String! + """The owner ID to create the project under.""" + ownerId: ID! + """ + A list of repository IDs to create as linked repositories for the project + """ + repositoryIds: [ID!] + """The name of the GitHub-provided template.""" + template: ProjectTemplate +} + +"""Autogenerated return type of CreateProject.""" +type CreateProjectPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The new project.""" + project: Project +} + +"""Autogenerated input type of CreateProjectV2Field""" +input CreateProjectV2FieldInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The data type of the field.""" + dataType: ProjectV2CustomFieldType! + """Configuration for an iteration field.""" + iterationConfiguration: ProjectV2IterationFieldConfigurationInput + """The name of the field.""" + name: String! + """The ID of the Project to create the field in.""" + projectId: ID! + """ + Options for a single select field. At least one value is required if data_type is SINGLE_SELECT + """ + singleSelectOptions: [ProjectV2SingleSelectFieldOptionInput!] +} + +"""Autogenerated return type of CreateProjectV2Field.""" +type CreateProjectV2FieldPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The new field.""" + projectV2Field: ProjectV2FieldConfiguration +} + +"""Autogenerated input type of CreateProjectV2""" +input CreateProjectV2Input { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The owner ID to create the project under.""" + ownerId: ID! + """The repository to link the project to.""" + repositoryId: ID + """ + The team to link the project to. The team will be granted read permissions. + """ + teamId: ID + """The title of the project.""" + title: String! +} + +"""Autogenerated return type of CreateProjectV2.""" +type CreateProjectV2Payload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The new project.""" + projectV2: ProjectV2 +} + +"""Autogenerated input type of CreateProjectV2StatusUpdate""" +input CreateProjectV2StatusUpdateInput { + """The body of the status update.""" + body: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the Project to create the status update in.""" + projectId: ID! + """The start date of the status update.""" + startDate: Date + """The status of the status update.""" + status: ProjectV2StatusUpdateStatus + """The target date of the status update.""" + targetDate: Date +} + +"""Autogenerated return type of CreateProjectV2StatusUpdate.""" +type CreateProjectV2StatusUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The status update updated in the project.""" + statusUpdate: ProjectV2StatusUpdate +} + +"""Autogenerated input type of CreatePullRequest""" +input CreatePullRequestInput { + """ + The name of the branch you want your changes pulled into. This should be an existing branch + on the current repository. You cannot update the base branch on a pull request to point + to another repository. + """ + baseRefName: String! + """The contents of the pull request.""" + body: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """Indicates whether this pull request should be a draft.""" + draft: Boolean = false + """ + The name of the branch where your changes are implemented. For cross-repository pull requests + in the same network, namespace `head_ref_name` with a user like this: `username:branch`. + """ + headRefName: String! + """The Node ID of the head repository.""" + headRepositoryId: ID + """Indicates whether maintainers can modify the pull request.""" + maintainerCanModify: Boolean = true + """The Node ID of the repository.""" + repositoryId: ID! + """The title of the pull request.""" + title: String! +} + +"""Autogenerated return type of CreatePullRequest.""" +type CreatePullRequestPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The new pull request.""" + pullRequest: PullRequest +} + +"""Autogenerated input type of CreateRef""" +input CreateRefInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The fully qualified name of the new Ref (ie: `refs/heads/my_new_branch`). + """ + name: String! + """The GitObjectID that the new Ref shall target. Must point to a commit.""" + oid: GitObjectID! + """The Node ID of the Repository to create the Ref in.""" + repositoryId: ID! +} + +"""Autogenerated return type of CreateRef.""" +type CreateRefPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The newly created ref.""" + ref: Ref +} + +"""Autogenerated input type of CreateRepository""" +input CreateRepositoryInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """A short description of the new repository.""" + description: String + """Indicates if the repository should have the issues feature enabled.""" + hasIssuesEnabled: Boolean = true + """Indicates if the repository should have the wiki feature enabled.""" + hasWikiEnabled: Boolean = false + """The URL for a web page about this repository.""" + homepageUrl: URI + """The name of the new repository.""" + name: String! + """The ID of the owner for the new repository.""" + ownerId: ID + """ + When an organization is specified as the owner, this ID identifies the team + that should be granted access to the new repository. + """ + teamId: ID + """ + Whether this repository should be marked as a template such that anyone who + can access it can create new repositories with the same files and directory structure. + """ + template: Boolean = false + """Indicates the repository's visibility level.""" + visibility: RepositoryVisibility! +} + +"""Autogenerated return type of CreateRepository.""" +type CreateRepositoryPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The new repository.""" + repository: Repository +} + +"""Autogenerated input type of CreateRepositoryRuleset""" +input CreateRepositoryRulesetInput { + """A list of actors that are allowed to bypass rules in this ruleset.""" + bypassActors: [RepositoryRulesetBypassActorInput!] + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The set of conditions for this ruleset""" + conditions: RepositoryRuleConditionsInput! + """The enforcement level for this ruleset""" + enforcement: RuleEnforcement! + """The name of the ruleset.""" + name: String! + """The list of rules for this ruleset""" + rules: [RepositoryRuleInput!] + """ + The global relay id of the source in which a new ruleset should be created in. + """ + sourceId: ID! + """The target of the ruleset.""" + target: RepositoryRulesetTarget +} + +"""Autogenerated return type of CreateRepositoryRuleset.""" +type CreateRepositoryRulesetPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The newly created Ruleset.""" + ruleset: RepositoryRuleset +} + +"""Autogenerated input type of CreateSponsorsListing""" +input CreateSponsorsListingInput { + """ + The country or region where the sponsorable's bank account is located. + Required if fiscalHostLogin is not specified, ignored when fiscalHostLogin is specified. + """ + billingCountryOrRegionCode: SponsorsCountryOrRegionCode + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The email address we should use to contact you about the GitHub Sponsors + profile being created. This will not be shared publicly. Must be a verified + email address already on your GitHub account. Only relevant when the + sponsorable is yourself. Defaults to your primary email address on file if omitted. + """ + contactEmail: String + """ + The username of the supported fiscal host's GitHub organization, if you want + to receive sponsorship payouts through a fiscal host rather than directly to a + bank account. For example, 'Open-Source-Collective' for Open Source Collective + or 'numfocus' for numFOCUS. Case insensitive. See https://docs.github.com/sponsors/receiving-sponsorships-through-github-sponsors/using-a-fiscal-host-to-receive-github-sponsors-payouts + for more information. + """ + fiscalHostLogin: String + """ + The URL for your profile page on the fiscal host's website, e.g., + https://opencollective.com/babel or https://numfocus.org/project/bokeh. + Required if fiscalHostLogin is specified. + """ + fiscallyHostedProjectProfileUrl: String + """ + Provide an introduction to serve as the main focus that appears on your GitHub + Sponsors profile. It's a great opportunity to help potential sponsors learn + more about you, your work, and why their sponsorship is important to you. + GitHub-flavored Markdown is supported. + """ + fullDescription: String + """ + The country or region where the sponsorable resides. This is for tax purposes. + Required if the sponsorable is yourself, ignored when sponsorableLogin + specifies an organization. + """ + residenceCountryOrRegionCode: SponsorsCountryOrRegionCode + """ + The username of the organization to create a GitHub Sponsors profile for, if + desired. Defaults to creating a GitHub Sponsors profile for the authenticated + user if omitted. + """ + sponsorableLogin: String +} + +"""Autogenerated return type of CreateSponsorsListing.""" +type CreateSponsorsListingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The new GitHub Sponsors profile.""" + sponsorsListing: SponsorsListing +} + +"""Autogenerated input type of CreateSponsorsTier""" +input CreateSponsorsTierInput { + """The value of the new tier in US dollars. Valid values: 1-12000.""" + amount: Int! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + A description of what this tier is, what perks sponsors might receive, what a sponsorship at this tier means for you, etc. + """ + description: String! + """ + Whether sponsorships using this tier should happen monthly/yearly or just once. + """ + isRecurring: Boolean = true + """ + Whether to make the tier available immediately for sponsors to choose. + Defaults to creating a draft tier that will not be publicly visible. + """ + publish: Boolean = false + """ + Optional ID of the private repository that sponsors at this tier should gain + read-only access to. Must be owned by an organization. + """ + repositoryId: ID + """ + Optional name of the private repository that sponsors at this tier should gain + read-only access to. Must be owned by an organization. Necessary if + repositoryOwnerLogin is given. Will be ignored if repositoryId is given. + """ + repositoryName: String + """ + Optional login of the organization owner of the private repository that + sponsors at this tier should gain read-only access to. Necessary if + repositoryName is given. Will be ignored if repositoryId is given. + """ + repositoryOwnerLogin: String + """ + The ID of the user or organization who owns the GitHub Sponsors profile. + Defaults to the current user if omitted and sponsorableLogin is not given. + """ + sponsorableId: ID + """ + The username of the user or organization who owns the GitHub Sponsors profile. + Defaults to the current user if omitted and sponsorableId is not given. + """ + sponsorableLogin: String + """Optional message new sponsors at this tier will receive.""" + welcomeMessage: String +} + +"""Autogenerated return type of CreateSponsorsTier.""" +type CreateSponsorsTierPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The new tier.""" + sponsorsTier: SponsorsTier +} + +"""Autogenerated input type of CreateSponsorship""" +input CreateSponsorshipInput { + """ + The amount to pay to the sponsorable in US dollars. Required if a tierId is not specified. Valid values: 1-12000. + """ + amount: Int + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + Whether the sponsorship should happen monthly/yearly or just this one time. Required if a tierId is not specified. + """ + isRecurring: Boolean + """ + Specify whether others should be able to see that the sponsor is sponsoring + the sponsorable. Public visibility still does not reveal which tier is used. + """ + privacyLevel: SponsorshipPrivacy = PUBLIC + """Whether the sponsor should receive email updates from the sponsorable.""" + receiveEmails: Boolean = true + """ + The ID of the user or organization who is acting as the sponsor, paying for + the sponsorship. Required if sponsorLogin is not given. + """ + sponsorId: ID + """ + The username of the user or organization who is acting as the sponsor, paying + for the sponsorship. Required if sponsorId is not given. + """ + sponsorLogin: String + """ + The ID of the user or organization who is receiving the sponsorship. Required if sponsorableLogin is not given. + """ + sponsorableId: ID + """ + The username of the user or organization who is receiving the sponsorship. Required if sponsorableId is not given. + """ + sponsorableLogin: String + """ + The ID of one of sponsorable's existing tiers to sponsor at. Required if amount is not specified. + """ + tierId: ID +} + +"""Autogenerated return type of CreateSponsorship.""" +type CreateSponsorshipPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The sponsorship that was started.""" + sponsorship: Sponsorship +} + +"""Autogenerated input type of CreateSponsorships""" +input CreateSponsorshipsInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + Specify whether others should be able to see that the sponsor is sponsoring + the sponsorables. Public visibility still does not reveal the dollar value of + the sponsorship. + """ + privacyLevel: SponsorshipPrivacy = PUBLIC + """ + Whether the sponsor should receive email updates from the sponsorables. + """ + receiveEmails: Boolean = false + """ + Whether the sponsorships created should continue each billing cycle for the + sponsor (monthly or annually), versus lasting only a single month. Defaults to + one-time sponsorships. + """ + recurring: Boolean = false + """ + The username of the user or organization who is acting as the sponsor, paying for the sponsorships. + """ + sponsorLogin: String! + """The list of maintainers to sponsor and for how much apiece.""" + sponsorships: [BulkSponsorship!]! +} + +"""Autogenerated return type of CreateSponsorships.""" +type CreateSponsorshipsPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The users and organizations who received a sponsorship.""" + sponsorables: [Sponsorable!] +} + +"""Autogenerated input type of CreateTeamDiscussionComment""" +input CreateTeamDiscussionCommentInput { + """ + The content of the comment. This field is required. + + **Upcoming Change on 2024-07-01 UTC** + **Description:** `body` will be removed. Follow the guide at + https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to + find a suitable replacement. + **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. + """ + body: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The ID of the discussion to which the comment belongs. This field is required. + + **Upcoming Change on 2024-07-01 UTC** + **Description:** `discussionId` will be removed. Follow the guide at + https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to + find a suitable replacement. + **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. + """ + discussionId: ID +} + +"""Autogenerated return type of CreateTeamDiscussionComment.""" +type CreateTeamDiscussionCommentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The new comment.""" + teamDiscussionComment: TeamDiscussionComment @deprecated(reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.") +} + +"""Autogenerated input type of CreateTeamDiscussion""" +input CreateTeamDiscussionInput { + """ + The content of the discussion. This field is required. + + **Upcoming Change on 2024-07-01 UTC** + **Description:** `body` will be removed. Follow the guide at + https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to + find a suitable replacement. + **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. + """ + body: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + If true, restricts the visibility of this discussion to team members and + organization owners. If false or not specified, allows any organization member + to view this discussion. + + **Upcoming Change on 2024-07-01 UTC** + **Description:** `private` will be removed. Follow the guide at + https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to + find a suitable replacement. + **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. + """ + private: Boolean + """ + The ID of the team to which the discussion belongs. This field is required. + + **Upcoming Change on 2024-07-01 UTC** + **Description:** `teamId` will be removed. Follow the guide at + https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to + find a suitable replacement. + **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. + """ + teamId: ID + """ + The title of the discussion. This field is required. + + **Upcoming Change on 2024-07-01 UTC** + **Description:** `title` will be removed. Follow the guide at + https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to + find a suitable replacement. + **Reason:** The Team Discussions feature is deprecated in favor of Organization Discussions. + """ + title: String +} + +"""Autogenerated return type of CreateTeamDiscussion.""" +type CreateTeamDiscussionPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The new discussion.""" + teamDiscussion: TeamDiscussion @deprecated(reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.") +} + +"""Autogenerated input type of CreateUserList""" +input CreateUserListInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """A description of the list""" + description: String + """Whether or not the list is private""" + isPrivate: Boolean = false + """The name of the new list""" + name: String! +} + +"""Autogenerated return type of CreateUserList.""" +type CreateUserListPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The list that was just created""" + list: UserList + """The user who created the list""" + viewer: User +} + +"""Represents the contribution a user made by committing to a repository.""" +type CreatedCommitContribution implements Contribution { + """How many commits were made on this day to this repository by the user.""" + commitCount: Int! + """ + Whether this contribution is associated with a record you do not have access to. For + example, your own 'first issue' contribution may have been made on a repository you can no + longer access. + """ + isRestricted: Boolean! + """When this contribution was made.""" + occurredAt: DateTime! + """The repository the user made a commit in.""" + repository: Repository! + """The HTTP path for this contribution.""" + resourcePath: URI! + """The HTTP URL for this contribution.""" + url: URI! + """The user who made this contribution.""" + user: User! +} + +"""The connection type for CreatedCommitContribution.""" +type CreatedCommitContributionConnection { + """A list of edges.""" + edges: [CreatedCommitContributionEdge] + """A list of nodes.""" + nodes: [CreatedCommitContribution] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """ + Identifies the total count of commits across days and repositories in the connection. + """ + totalCount: Int! +} + +"""An edge in a connection.""" +type CreatedCommitContributionEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: CreatedCommitContribution +} + +"""Represents the contribution a user made on GitHub by opening an issue.""" +type CreatedIssueContribution implements Contribution { + """ + Whether this contribution is associated with a record you do not have access to. For + example, your own 'first issue' contribution may have been made on a repository you can no + longer access. + """ + isRestricted: Boolean! + """The issue that was opened.""" + issue: Issue! + """When this contribution was made.""" + occurredAt: DateTime! + """The HTTP path for this contribution.""" + resourcePath: URI! + """The HTTP URL for this contribution.""" + url: URI! + """The user who made this contribution.""" + user: User! +} + +"""The connection type for CreatedIssueContribution.""" +type CreatedIssueContributionConnection { + """A list of edges.""" + edges: [CreatedIssueContributionEdge] + """A list of nodes.""" + nodes: [CreatedIssueContribution] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type CreatedIssueContributionEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: CreatedIssueContribution +} + +""" +Represents either a issue the viewer can access or a restricted contribution. +""" +union CreatedIssueOrRestrictedContribution = CreatedIssueContribution | RestrictedContribution + +""" +Represents the contribution a user made on GitHub by opening a pull request. +""" +type CreatedPullRequestContribution implements Contribution { + """ + Whether this contribution is associated with a record you do not have access to. For + example, your own 'first issue' contribution may have been made on a repository you can no + longer access. + """ + isRestricted: Boolean! + """When this contribution was made.""" + occurredAt: DateTime! + """The pull request that was opened.""" + pullRequest: PullRequest! + """The HTTP path for this contribution.""" + resourcePath: URI! + """The HTTP URL for this contribution.""" + url: URI! + """The user who made this contribution.""" + user: User! +} + +"""The connection type for CreatedPullRequestContribution.""" +type CreatedPullRequestContributionConnection { + """A list of edges.""" + edges: [CreatedPullRequestContributionEdge] + """A list of nodes.""" + nodes: [CreatedPullRequestContribution] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type CreatedPullRequestContributionEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: CreatedPullRequestContribution +} + +""" +Represents either a pull request the viewer can access or a restricted contribution. +""" +union CreatedPullRequestOrRestrictedContribution = CreatedPullRequestContribution | RestrictedContribution + +""" +Represents the contribution a user made by leaving a review on a pull request. +""" +type CreatedPullRequestReviewContribution implements Contribution { + """ + Whether this contribution is associated with a record you do not have access to. For + example, your own 'first issue' contribution may have been made on a repository you can no + longer access. + """ + isRestricted: Boolean! + """When this contribution was made.""" + occurredAt: DateTime! + """The pull request the user reviewed.""" + pullRequest: PullRequest! + """The review the user left on the pull request.""" + pullRequestReview: PullRequestReview! + """The repository containing the pull request that the user reviewed.""" + repository: Repository! + """The HTTP path for this contribution.""" + resourcePath: URI! + """The HTTP URL for this contribution.""" + url: URI! + """The user who made this contribution.""" + user: User! +} + +"""The connection type for CreatedPullRequestReviewContribution.""" +type CreatedPullRequestReviewContributionConnection { + """A list of edges.""" + edges: [CreatedPullRequestReviewContributionEdge] + """A list of nodes.""" + nodes: [CreatedPullRequestReviewContribution] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type CreatedPullRequestReviewContributionEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: CreatedPullRequestReviewContribution +} + +""" +Represents the contribution a user made on GitHub by creating a repository. +""" +type CreatedRepositoryContribution implements Contribution { + """ + Whether this contribution is associated with a record you do not have access to. For + example, your own 'first issue' contribution may have been made on a repository you can no + longer access. + """ + isRestricted: Boolean! + """When this contribution was made.""" + occurredAt: DateTime! + """The repository that was created.""" + repository: Repository! + """The HTTP path for this contribution.""" + resourcePath: URI! + """The HTTP URL for this contribution.""" + url: URI! + """The user who made this contribution.""" + user: User! +} + +"""The connection type for CreatedRepositoryContribution.""" +type CreatedRepositoryContributionConnection { + """A list of edges.""" + edges: [CreatedRepositoryContributionEdge] + """A list of nodes.""" + nodes: [CreatedRepositoryContribution] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type CreatedRepositoryContributionEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: CreatedRepositoryContribution +} + +""" +Represents either a repository the viewer can access or a restricted contribution. +""" +union CreatedRepositoryOrRestrictedContribution = CreatedRepositoryContribution | RestrictedContribution + +"""Represents a mention made by one issue or pull request to another.""" +type CrossReferencedEvent implements Node & UniformResourceLocatable { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the CrossReferencedEvent object""" + id: ID! + """Reference originated in a different repository.""" + isCrossRepository: Boolean! + """Identifies when the reference was made.""" + referencedAt: DateTime! + """The HTTP path for this pull request.""" + resourcePath: URI! + """Issue or pull request that made the reference.""" + source: ReferencedSubject! + """Issue or pull request to which the reference was made.""" + target: ReferencedSubject! + """The HTTP URL for this pull request.""" + url: URI! + """Checks if the target will be closed when the source is merged.""" + willCloseTarget: Boolean! +} + +"""The Common Vulnerability Scoring System""" +type CvssSeverities { + """The CVSS v3 severity associated with this advisory""" + cvssV3: CVSS + """The CVSS v4 severity associated with this advisory""" + cvssV4: CVSS +} + +"""An ISO-8601 encoded date string.""" +scalar Date + +"""An ISO-8601 encoded UTC date string.""" +scalar DateTime + +"""Autogenerated input type of DeclineTopicSuggestion""" +input DeclineTopicSuggestionInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The name of the suggested topic. + + **Upcoming Change on 2024-04-01 UTC** + **Description:** `name` will be removed. + **Reason:** Suggested topics are no longer supported + """ + name: String + """ + The reason why the suggested topic is declined. + + **Upcoming Change on 2024-04-01 UTC** + **Description:** `reason` will be removed. + **Reason:** Suggested topics are no longer supported + """ + reason: TopicSuggestionDeclineReason + """ + The Node ID of the repository. + + **Upcoming Change on 2024-04-01 UTC** + **Description:** `repositoryId` will be removed. + **Reason:** Suggested topics are no longer supported + """ + repositoryId: ID +} + +"""Autogenerated return type of DeclineTopicSuggestion.""" +type DeclineTopicSuggestionPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The declined topic.""" + topic: Topic @deprecated(reason: "Suggested topics are no longer supported Removal on 2024-04-01 UTC.") +} + +"""The possible base permissions for repositories.""" +enum DefaultRepositoryPermissionField { + """Can read, write, and administrate repos by default""" + ADMIN + """No access""" + NONE + """Can read repos by default""" + READ + """Can read and write repos by default""" + WRITE +} + +"""Entities that can be deleted.""" +interface Deletable { + """Check if the current viewer can delete this object.""" + viewerCanDelete: Boolean! +} + +"""Autogenerated input type of DeleteBranchProtectionRule""" +input DeleteBranchProtectionRuleInput { + """The global relay id of the branch protection rule to be deleted.""" + branchProtectionRuleId: ID! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of DeleteBranchProtectionRule.""" +type DeleteBranchProtectionRulePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated input type of DeleteDeployment""" +input DeleteDeploymentInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the deployment to be deleted.""" + id: ID! +} + +"""Autogenerated return type of DeleteDeployment.""" +type DeleteDeploymentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated input type of DeleteDiscussionComment""" +input DeleteDiscussionCommentInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node id of the discussion comment to delete.""" + id: ID! +} + +"""Autogenerated return type of DeleteDiscussionComment.""" +type DeleteDiscussionCommentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The discussion comment that was just deleted.""" + comment: DiscussionComment +} + +"""Autogenerated input type of DeleteDiscussion""" +input DeleteDiscussionInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The id of the discussion to delete.""" + id: ID! +} + +"""Autogenerated return type of DeleteDiscussion.""" +type DeleteDiscussionPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The discussion that was just deleted.""" + discussion: Discussion +} + +"""Autogenerated input type of DeleteEnvironment""" +input DeleteEnvironmentInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the environment to be deleted.""" + id: ID! +} + +"""Autogenerated return type of DeleteEnvironment.""" +type DeleteEnvironmentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated input type of DeleteIpAllowListEntry""" +input DeleteIpAllowListEntryInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the IP allow list entry to delete.""" + ipAllowListEntryId: ID! +} + +"""Autogenerated return type of DeleteIpAllowListEntry.""" +type DeleteIpAllowListEntryPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The IP allow list entry that was deleted.""" + ipAllowListEntry: IpAllowListEntry +} + +"""Autogenerated input type of DeleteIssueComment""" +input DeleteIssueCommentInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the comment to delete.""" + id: ID! +} + +"""Autogenerated return type of DeleteIssueComment.""" +type DeleteIssueCommentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated input type of DeleteIssue""" +input DeleteIssueInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the issue to delete.""" + issueId: ID! +} + +"""Autogenerated return type of DeleteIssue.""" +type DeleteIssuePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The repository the issue belonged to""" + repository: Repository +} + +"""Autogenerated input type of DeleteIssueType""" +input DeleteIssueTypeInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the issue type to delete""" + issueTypeId: ID! +} + +"""Autogenerated return type of DeleteIssueType.""" +type DeleteIssueTypePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the deleted issue type""" + deletedIssueTypeId: ID +} + +"""Autogenerated input type of DeleteLabel""" +input DeleteLabelInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the label to be deleted.""" + id: ID! +} + +"""Autogenerated return type of DeleteLabel.""" +type DeleteLabelPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated input type of DeleteLinkedBranch""" +input DeleteLinkedBranchInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the linked branch""" + linkedBranchId: ID! +} + +"""Autogenerated return type of DeleteLinkedBranch.""" +type DeleteLinkedBranchPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The issue the linked branch was unlinked from.""" + issue: Issue +} + +"""Autogenerated input type of DeletePackageVersion""" +input DeletePackageVersionInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the package version to be deleted.""" + packageVersionId: ID! +} + +"""Autogenerated return type of DeletePackageVersion.""" +type DeletePackageVersionPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """Whether or not the operation succeeded.""" + success: Boolean +} + +"""Autogenerated input type of DeleteProjectCard""" +input DeleteProjectCardInput { + """The id of the card to delete.""" + cardId: ID! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of DeleteProjectCard.""" +type DeleteProjectCardPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The column the deleted card was in.""" + column: ProjectColumn + """The deleted card ID.""" + deletedCardId: ID +} + +"""Autogenerated input type of DeleteProjectColumn""" +input DeleteProjectColumnInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The id of the column to delete.""" + columnId: ID! +} + +"""Autogenerated return type of DeleteProjectColumn.""" +type DeleteProjectColumnPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The deleted column ID.""" + deletedColumnId: ID + """The project the deleted column was in.""" + project: Project +} + +"""Autogenerated input type of DeleteProject""" +input DeleteProjectInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Project ID to update.""" + projectId: ID! +} + +"""Autogenerated return type of DeleteProject.""" +type DeleteProjectPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The repository or organization the project was removed from.""" + owner: ProjectOwner +} + +"""Autogenerated input type of DeleteProjectV2Field""" +input DeleteProjectV2FieldInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the field to delete.""" + fieldId: ID! +} + +"""Autogenerated return type of DeleteProjectV2Field.""" +type DeleteProjectV2FieldPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The deleted field.""" + projectV2Field: ProjectV2FieldConfiguration +} + +"""Autogenerated input type of DeleteProjectV2""" +input DeleteProjectV2Input { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the Project to delete.""" + projectId: ID! +} + +"""Autogenerated input type of DeleteProjectV2Item""" +input DeleteProjectV2ItemInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the item to be removed.""" + itemId: ID! + """The ID of the Project from which the item should be removed.""" + projectId: ID! +} + +"""Autogenerated return type of DeleteProjectV2Item.""" +type DeleteProjectV2ItemPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the deleted item.""" + deletedItemId: ID +} + +"""Autogenerated return type of DeleteProjectV2.""" +type DeleteProjectV2Payload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The deleted Project.""" + projectV2: ProjectV2 +} + +"""Autogenerated input type of DeleteProjectV2StatusUpdate""" +input DeleteProjectV2StatusUpdateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the status update to be removed.""" + statusUpdateId: ID! +} + +"""Autogenerated return type of DeleteProjectV2StatusUpdate.""" +type DeleteProjectV2StatusUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the deleted status update.""" + deletedStatusUpdateId: ID + """The project the deleted status update was in.""" + projectV2: ProjectV2 +} + +"""Autogenerated input type of DeleteProjectV2Workflow""" +input DeleteProjectV2WorkflowInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the workflow to be removed.""" + workflowId: ID! +} + +"""Autogenerated return type of DeleteProjectV2Workflow.""" +type DeleteProjectV2WorkflowPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the deleted workflow.""" + deletedWorkflowId: ID + """The project the deleted workflow was in.""" + projectV2: ProjectV2 +} + +"""Autogenerated input type of DeletePullRequestReviewComment""" +input DeletePullRequestReviewCommentInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the comment to delete.""" + id: ID! +} + +"""Autogenerated return type of DeletePullRequestReviewComment.""" +type DeletePullRequestReviewCommentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The pull request review the deleted comment belonged to.""" + pullRequestReview: PullRequestReview + """The deleted pull request review comment.""" + pullRequestReviewComment: PullRequestReviewComment +} + +"""Autogenerated input type of DeletePullRequestReview""" +input DeletePullRequestReviewInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the pull request review to delete.""" + pullRequestReviewId: ID! +} + +"""Autogenerated return type of DeletePullRequestReview.""" +type DeletePullRequestReviewPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The deleted pull request review.""" + pullRequestReview: PullRequestReview +} + +"""Autogenerated input type of DeleteRef""" +input DeleteRefInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the Ref to be deleted.""" + refId: ID! +} + +"""Autogenerated return type of DeleteRef.""" +type DeleteRefPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated input type of DeleteRepositoryRuleset""" +input DeleteRepositoryRulesetInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The global relay id of the repository ruleset to be deleted.""" + repositoryRulesetId: ID! +} + +"""Autogenerated return type of DeleteRepositoryRuleset.""" +type DeleteRepositoryRulesetPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated input type of DeleteTeamDiscussionComment""" +input DeleteTeamDiscussionCommentInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the comment to delete.""" + id: ID! +} + +"""Autogenerated return type of DeleteTeamDiscussionComment.""" +type DeleteTeamDiscussionCommentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated input type of DeleteTeamDiscussion""" +input DeleteTeamDiscussionInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The discussion ID to delete.""" + id: ID! +} + +"""Autogenerated return type of DeleteTeamDiscussion.""" +type DeleteTeamDiscussionPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated input type of DeleteUserList""" +input DeleteUserListInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the list to delete.""" + listId: ID! +} + +"""Autogenerated return type of DeleteUserList.""" +type DeleteUserListPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The owner of the list that will be deleted""" + user: User +} + +"""Autogenerated input type of DeleteVerifiableDomain""" +input DeleteVerifiableDomainInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the verifiable domain to delete.""" + id: ID! +} + +"""Autogenerated return type of DeleteVerifiableDomain.""" +type DeleteVerifiableDomainPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The owning account from which the domain was deleted.""" + owner: VerifiableDomainOwner +} + +"""Represents a 'demilestoned' event on a given issue or pull request.""" +type DemilestonedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the DemilestonedEvent object""" + id: ID! + """ + Identifies the milestone title associated with the 'demilestoned' event. + """ + milestoneTitle: String! + """Object referenced by event.""" + subject: MilestoneItem! +} + +"""A Dependabot Update for a dependency in a repository""" +type DependabotUpdate implements RepositoryNode { + """The error from a dependency update""" + error: DependabotUpdateError + """The associated pull request""" + pullRequest: PullRequest + """The repository associated with this node.""" + repository: Repository! +} + +"""An error produced from a Dependabot Update""" +type DependabotUpdateError { + """The body of the error""" + body: String! + """The error code""" + errorType: String! + """The title of the error""" + title: String! +} + +"""A dependency manifest entry""" +type DependencyGraphDependency { + """Does the dependency itself have dependencies?""" + hasDependencies: Boolean! + """The original name of the package, as it appears in the manifest.""" + packageLabel: String! @deprecated(reason: "`packageLabel` will be removed. Use normalized `packageName` field instead. Removal on 2022-10-01 UTC.") + """The dependency package manager""" + packageManager: String + """ + The name of the package in the canonical form used by the package manager. + """ + packageName: String! + """Public preview: The dependency package URL""" + packageUrl: URI + """ + Public preview: The relationship of the dependency. Can be direct, transitive, or unknown + """ + relationship: String! + """The repository containing the package""" + repository: Repository + """The dependency version requirements""" + requirements: String! +} + +"""The connection type for DependencyGraphDependency.""" +type DependencyGraphDependencyConnection { + """A list of edges.""" + edges: [DependencyGraphDependencyEdge] + """A list of nodes.""" + nodes: [DependencyGraphDependency] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type DependencyGraphDependencyEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: DependencyGraphDependency +} + +"""The possible ecosystems of a dependency graph package.""" +enum DependencyGraphEcosystem { + """GitHub Actions""" + ACTIONS + """PHP packages hosted at packagist.org""" + COMPOSER + """Go modules""" + GO + """Java artifacts hosted at the Maven central repository""" + MAVEN + """JavaScript packages hosted at npmjs.com""" + NPM + """.NET packages hosted at the NuGet Gallery""" + NUGET + """Python packages hosted at PyPI.org""" + PIP + """Dart packages hosted at pub.dev""" + PUB + """Ruby gems hosted at RubyGems.org""" + RUBYGEMS + """Rust crates""" + RUST + """Swift packages""" + SWIFT +} + +"""Dependency manifest for a repository""" +type DependencyGraphManifest implements Node { + """Path to view the manifest file blob""" + blobPath: String! + """A list of manifest dependencies""" + dependencies( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): DependencyGraphDependencyConnection + """The number of dependencies listed in the manifest""" + dependenciesCount: Int + """Is the manifest too big to parse?""" + exceedsMaxSize: Boolean! + """Fully qualified manifest filename""" + filename: String! + """The Node ID of the DependencyGraphManifest object""" + id: ID! + """Were we able to parse the manifest?""" + parseable: Boolean! + """The repository containing the manifest""" + repository: Repository! +} + +"""The connection type for DependencyGraphManifest.""" +type DependencyGraphManifestConnection { + """A list of edges.""" + edges: [DependencyGraphManifestEdge] + """A list of nodes.""" + nodes: [DependencyGraphManifest] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type DependencyGraphManifestEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: DependencyGraphManifest +} + +"""A repository deploy key.""" +type DeployKey implements Node { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """ + Whether or not the deploy key is enabled by policy at the Enterprise or Organization level. + """ + enabled: Boolean! + """The Node ID of the DeployKey object""" + id: ID! + """The deploy key.""" + key: String! + """Whether or not the deploy key is read only.""" + readOnly: Boolean! + """The deploy key title.""" + title: String! + """Whether or not the deploy key has been verified.""" + verified: Boolean! +} + +"""The connection type for DeployKey.""" +type DeployKeyConnection { + """A list of edges.""" + edges: [DeployKeyEdge] + """A list of nodes.""" + nodes: [DeployKey] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type DeployKeyEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: DeployKey +} + +"""Represents a 'deployed' event on a given pull request.""" +type DeployedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int + """The deployment associated with the 'deployed' event.""" + deployment: Deployment! + """The Node ID of the DeployedEvent object""" + id: ID! + """PullRequest referenced by event.""" + pullRequest: PullRequest! + """The ref associated with the 'deployed' event.""" + ref: Ref +} + +"""Represents triggered deployment instance.""" +type Deployment implements Node { + """Identifies the commit sha of the deployment.""" + commit: Commit + """ + Identifies the oid of the deployment commit, even if the commit has been deleted. + """ + commitOid: String! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the actor who triggered the deployment.""" + creator: Actor! + """Identifies the primary key from the database.""" + databaseId: Int + """The deployment description.""" + description: String + """The latest environment to which this deployment was made.""" + environment: String + """The Node ID of the Deployment object""" + id: ID! + """The latest environment to which this deployment was made.""" + latestEnvironment: String + """The latest status of this deployment.""" + latestStatus: DeploymentStatus + """The original environment to which this deployment was made.""" + originalEnvironment: String + """Extra information that a deployment system might need.""" + payload: String + """ + Identifies the Ref of the deployment, if the deployment was created by ref. + """ + ref: Ref + """Identifies the repository associated with the deployment.""" + repository: Repository! + """The current state of the deployment.""" + state: DeploymentState + """A list of statuses associated with the deployment.""" + statuses( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): DeploymentStatusConnection + """The deployment task.""" + task: String + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""The connection type for Deployment.""" +type DeploymentConnection { + """A list of edges.""" + edges: [DeploymentEdge] + """A list of nodes.""" + nodes: [Deployment] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type DeploymentEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Deployment +} + +""" +Represents a 'deployment_environment_changed' event on a given pull request. +""" +type DeploymentEnvironmentChangedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The deployment status that updated the deployment environment.""" + deploymentStatus: DeploymentStatus! + """The Node ID of the DeploymentEnvironmentChangedEvent object""" + id: ID! + """PullRequest referenced by event.""" + pullRequest: PullRequest! +} + +"""Ordering options for deployment connections""" +input DeploymentOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order deployments by.""" + field: DeploymentOrderField! +} + +"""Properties by which deployment connections can be ordered.""" +enum DeploymentOrderField { + """Order collection by creation time""" + CREATED_AT +} + +"""A protection rule.""" +type DeploymentProtectionRule { + """Identifies the primary key from the database.""" + databaseId: Int + """ + Whether deployments to this environment can be approved by the user who created the deployment. + """ + preventSelfReview: Boolean + """The teams or users that can review the deployment""" + reviewers( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): DeploymentReviewerConnection! + """The timeout in minutes for this protection rule.""" + timeout: Int! + """The type of protection rule.""" + type: DeploymentProtectionRuleType! +} + +"""The connection type for DeploymentProtectionRule.""" +type DeploymentProtectionRuleConnection { + """A list of edges.""" + edges: [DeploymentProtectionRuleEdge] + """A list of nodes.""" + nodes: [DeploymentProtectionRule] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type DeploymentProtectionRuleEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: DeploymentProtectionRule +} + +"""The possible protection rule types.""" +enum DeploymentProtectionRuleType { + """Branch policy""" + BRANCH_POLICY + """Required reviewers""" + REQUIRED_REVIEWERS + """Wait timer""" + WAIT_TIMER +} + +"""A request to deploy a workflow run to an environment.""" +type DeploymentRequest { + """Whether or not the current user can approve the deployment""" + currentUserCanApprove: Boolean! + """The target environment of the deployment""" + environment: Environment! + """The teams or users that can review the deployment""" + reviewers( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): DeploymentReviewerConnection! + """The wait timer in minutes configured in the environment""" + waitTimer: Int! + """The wait timer in minutes configured in the environment""" + waitTimerStartedAt: DateTime +} + +"""The connection type for DeploymentRequest.""" +type DeploymentRequestConnection { + """A list of edges.""" + edges: [DeploymentRequestEdge] + """A list of nodes.""" + nodes: [DeploymentRequest] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type DeploymentRequestEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: DeploymentRequest +} + +"""A deployment review.""" +type DeploymentReview implements Node { + """The comment the user left.""" + comment: String! + """Identifies the primary key from the database.""" + databaseId: Int + """The environments approved or rejected""" + environments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): EnvironmentConnection! + """The Node ID of the DeploymentReview object""" + id: ID! + """The decision of the user.""" + state: DeploymentReviewState! + """The user that reviewed the deployment.""" + user: User! +} + +"""The connection type for DeploymentReview.""" +type DeploymentReviewConnection { + """A list of edges.""" + edges: [DeploymentReviewEdge] + """A list of nodes.""" + nodes: [DeploymentReview] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type DeploymentReviewEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: DeploymentReview +} + +"""The possible states for a deployment review.""" +enum DeploymentReviewState { + """The deployment was approved.""" + APPROVED + """The deployment was rejected.""" + REJECTED +} + +"""Users and teams.""" +union DeploymentReviewer = Team | User + +"""The connection type for DeploymentReviewer.""" +type DeploymentReviewerConnection { + """A list of edges.""" + edges: [DeploymentReviewerEdge] + """A list of nodes.""" + nodes: [DeploymentReviewer] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type DeploymentReviewerEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: DeploymentReviewer +} + +"""The possible states in which a deployment can be.""" +enum DeploymentState { + """The pending deployment was not updated after 30 minutes.""" + ABANDONED + """The deployment is currently active.""" + ACTIVE + """An inactive transient deployment.""" + DESTROYED + """The deployment experienced an error.""" + ERROR + """The deployment has failed.""" + FAILURE + """The deployment is inactive.""" + INACTIVE + """The deployment is in progress.""" + IN_PROGRESS + """The deployment is pending.""" + PENDING + """The deployment has queued""" + QUEUED + """The deployment was successful.""" + SUCCESS + """The deployment is waiting.""" + WAITING +} + +"""Describes the status of a given deployment attempt.""" +type DeploymentStatus implements Node { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the actor who triggered the deployment.""" + creator: Actor! + """Identifies the deployment associated with status.""" + deployment: Deployment! + """Identifies the description of the deployment.""" + description: String + """ + Identifies the environment of the deployment at the time of this deployment status + """ + environment: String + """Identifies the environment URL of the deployment.""" + environmentUrl: URI + """The Node ID of the DeploymentStatus object""" + id: ID! + """Identifies the log URL of the deployment.""" + logUrl: URI + """Identifies the current state of the deployment.""" + state: DeploymentStatusState! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""The connection type for DeploymentStatus.""" +type DeploymentStatusConnection { + """A list of edges.""" + edges: [DeploymentStatusEdge] + """A list of nodes.""" + nodes: [DeploymentStatus] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type DeploymentStatusEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: DeploymentStatus +} + +"""The possible states for a deployment status.""" +enum DeploymentStatusState { + """The deployment experienced an error.""" + ERROR + """The deployment has failed.""" + FAILURE + """The deployment is inactive.""" + INACTIVE + """The deployment is in progress.""" + IN_PROGRESS + """The deployment is pending.""" + PENDING + """The deployment is queued""" + QUEUED + """The deployment was successful.""" + SUCCESS + """The deployment is waiting.""" + WAITING +} + +"""Autogenerated input type of DequeuePullRequest""" +input DequeuePullRequestInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the pull request to be dequeued.""" + id: ID! +} + +"""Autogenerated return type of DequeuePullRequest.""" +type DequeuePullRequestPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The merge queue entry of the dequeued pull request.""" + mergeQueueEntry: MergeQueueEntry +} + +"""The possible sides of a diff.""" +enum DiffSide { + """The left side of the diff.""" + LEFT + """The right side of the diff.""" + RIGHT +} + +"""Autogenerated input type of DisablePullRequestAutoMerge""" +input DisablePullRequestAutoMergeInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ID of the pull request to disable auto merge on.""" + pullRequestId: ID! +} + +"""Autogenerated return type of DisablePullRequestAutoMerge.""" +type DisablePullRequestAutoMergePayload { + """Identifies the actor who performed the event.""" + actor: Actor + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The pull request auto merge was disabled on.""" + pullRequest: PullRequest +} + +"""Represents a 'disconnected' event on a given issue or pull request.""" +type DisconnectedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the DisconnectedEvent object""" + id: ID! + """Reference originated in a different repository.""" + isCrossRepository: Boolean! + """Issue or pull request from which the issue was disconnected.""" + source: ReferencedSubject! + """Issue or pull request which was disconnected.""" + subject: ReferencedSubject! +} + +"""A discussion in a repository.""" +type Discussion implements Closable & Comment & Deletable & Labelable & Lockable & Node & Reactable & RepositoryNode & Subscribable & Updatable & Votable { + """Reason that the conversation was locked.""" + activeLockReason: LockReason + """The comment chosen as this discussion's answer, if any.""" + answer: DiscussionComment + """The time when a user chose this discussion's answer, if answered.""" + answerChosenAt: DateTime + """The user who chose this discussion's answer, if answered.""" + answerChosenBy: Actor + """The actor who authored the comment.""" + author: Actor + """Author's association with the subject of the comment.""" + authorAssociation: CommentAuthorAssociation! + """The main text of the discussion post.""" + body: String! + """The body rendered to HTML.""" + bodyHTML: HTML! + """The body rendered to text.""" + bodyText: String! + """The category for this discussion.""" + category: DiscussionCategory! + """ + Indicates if the object is closed (definition of closed may depend on type) + """ + closed: Boolean! + """Identifies the date and time when the object was closed.""" + closedAt: DateTime + """The replies to the discussion.""" + comments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): DiscussionCommentConnection! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Check if this comment was created via an email reply.""" + createdViaEmail: Boolean! + """Identifies the primary key from the database.""" + databaseId: Int + """The actor who edited the comment.""" + editor: Actor + """The Node ID of the Discussion object""" + id: ID! + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + """Only return answered/unanswered discussions""" + isAnswered: Boolean + """A list of labels associated with the object.""" + labels( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for labels returned from the connection.""" + orderBy: LabelOrder = {direction: ASC, field: CREATED_AT} + ): LabelConnection + """The moment the editor made the last edit""" + lastEditedAt: DateTime + """`true` if the object is locked""" + locked: Boolean! + """The number identifying this discussion within the repository.""" + number: Int! + """The poll associated with this discussion, if one exists.""" + poll: DiscussionPoll + """Identifies when the comment was published at.""" + publishedAt: DateTime + """A list of reactions grouped by content left on the subject.""" + reactionGroups: [ReactionGroup!] + """A list of Reactions left on the Issue.""" + reactions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Allows filtering Reactions by emoji.""" + content: ReactionContent + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Allows specifying the order in which reactions are returned.""" + orderBy: ReactionOrder + ): ReactionConnection! + """The repository associated with this node.""" + repository: Repository! + """The path for this discussion.""" + resourcePath: URI! + """Identifies the reason for the discussion's state.""" + stateReason: DiscussionStateReason + """The title of this discussion.""" + title: String! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """Number of upvotes that this subject has received.""" + upvoteCount: Int! + """The URL for this discussion.""" + url: URI! + """A list of edits to this content.""" + userContentEdits( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserContentEditConnection + """Indicates if the object can be closed by the viewer.""" + viewerCanClose: Boolean! + """Check if the current viewer can delete this object.""" + viewerCanDelete: Boolean! + """Indicates if the viewer can edit labels for this object.""" + viewerCanLabel: Boolean! + """Can user react to this subject""" + viewerCanReact: Boolean! + """Indicates if the object can be reopened by the viewer.""" + viewerCanReopen: Boolean! + """ + Check if the viewer is able to change their subscription status for the repository. + """ + viewerCanSubscribe: Boolean! + """Check if the current viewer can update this object.""" + viewerCanUpdate: Boolean! + """ + Whether or not the current user can add or remove an upvote on this subject. + """ + viewerCanUpvote: Boolean! + """Did the viewer author this comment.""" + viewerDidAuthor: Boolean! + """Whether or not the current user has already upvoted this subject.""" + viewerHasUpvoted: Boolean! + """ + Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. + """ + viewerSubscription: SubscriptionState +} + +"""A category for discussions in a repository.""" +type DiscussionCategory implements Node & RepositoryNode { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """A description of this category.""" + description: String + """An emoji representing this category.""" + emoji: String! + """This category's emoji rendered as HTML.""" + emojiHTML: HTML! + """The Node ID of the DiscussionCategory object""" + id: ID! + """ + Whether or not discussions in this category support choosing an answer with the markDiscussionCommentAsAnswer mutation. + """ + isAnswerable: Boolean! + """The name of this category.""" + name: String! + """The repository associated with this node.""" + repository: Repository! + """The slug of this category.""" + slug: String! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""The connection type for DiscussionCategory.""" +type DiscussionCategoryConnection { + """A list of edges.""" + edges: [DiscussionCategoryEdge] + """A list of nodes.""" + nodes: [DiscussionCategory] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type DiscussionCategoryEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: DiscussionCategory +} + +"""The possible reasons for closing a discussion.""" +enum DiscussionCloseReason { + """The discussion is a duplicate of another""" + DUPLICATE + """The discussion is no longer relevant""" + OUTDATED + """The discussion has been resolved""" + RESOLVED +} + +"""A comment on a discussion.""" +type DiscussionComment implements Comment & Deletable & Minimizable & Node & Reactable & Updatable & UpdatableComment & Votable { + """The actor who authored the comment.""" + author: Actor + """Author's association with the subject of the comment.""" + authorAssociation: CommentAuthorAssociation! + """The body as Markdown.""" + body: String! + """The body rendered to HTML.""" + bodyHTML: HTML! + """The body rendered to text.""" + bodyText: String! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Check if this comment was created via an email reply.""" + createdViaEmail: Boolean! + """Identifies the primary key from the database.""" + databaseId: Int + """The time when this replied-to comment was deleted""" + deletedAt: DateTime + """The discussion this comment was created in""" + discussion: Discussion + """The actor who edited the comment.""" + editor: Actor + """The Node ID of the DiscussionComment object""" + id: ID! + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + """Has this comment been chosen as the answer of its discussion?""" + isAnswer: Boolean! + """Returns whether or not a comment has been minimized.""" + isMinimized: Boolean! + """The moment the editor made the last edit""" + lastEditedAt: DateTime + """ + Returns why the comment was minimized. One of `abuse`, `off-topic`, + `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and + formatting of these values differs from the inputs to the `MinimizeComment` mutation. + """ + minimizedReason: String + """Identifies when the comment was published at.""" + publishedAt: DateTime + """A list of reactions grouped by content left on the subject.""" + reactionGroups: [ReactionGroup!] + """A list of Reactions left on the Issue.""" + reactions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Allows filtering Reactions by emoji.""" + content: ReactionContent + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Allows specifying the order in which reactions are returned.""" + orderBy: ReactionOrder + ): ReactionConnection! + """The threaded replies to this comment.""" + replies( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): DiscussionCommentConnection! + """The discussion comment this comment is a reply to""" + replyTo: DiscussionComment + """The path for this discussion comment.""" + resourcePath: URI! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """Number of upvotes that this subject has received.""" + upvoteCount: Int! + """The URL for this discussion comment.""" + url: URI! + """A list of edits to this content.""" + userContentEdits( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserContentEditConnection + """Check if the current viewer can delete this object.""" + viewerCanDelete: Boolean! + """Can the current user mark this comment as an answer?""" + viewerCanMarkAsAnswer: Boolean! + """Check if the current viewer can minimize this object.""" + viewerCanMinimize: Boolean! + """Can user react to this subject""" + viewerCanReact: Boolean! + """Can the current user unmark this comment as an answer?""" + viewerCanUnmarkAsAnswer: Boolean! + """Check if the current viewer can update this object.""" + viewerCanUpdate: Boolean! + """ + Whether or not the current user can add or remove an upvote on this subject. + """ + viewerCanUpvote: Boolean! + """Reasons why the current viewer can not update this comment.""" + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! + """Did the viewer author this comment.""" + viewerDidAuthor: Boolean! + """Whether or not the current user has already upvoted this subject.""" + viewerHasUpvoted: Boolean! +} + +"""The connection type for DiscussionComment.""" +type DiscussionCommentConnection { + """A list of edges.""" + edges: [DiscussionCommentEdge] + """A list of nodes.""" + nodes: [DiscussionComment] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type DiscussionCommentEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: DiscussionComment +} + +"""The connection type for Discussion.""" +type DiscussionConnection { + """A list of edges.""" + edges: [DiscussionEdge] + """A list of nodes.""" + nodes: [Discussion] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type DiscussionEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Discussion +} + +"""Ways in which lists of discussions can be ordered upon return.""" +input DiscussionOrder { + """The direction in which to order discussions by the specified field.""" + direction: OrderDirection! + """The field by which to order discussions.""" + field: DiscussionOrderField! +} + +"""Properties by which discussion connections can be ordered.""" +enum DiscussionOrderField { + """Order discussions by creation time.""" + CREATED_AT + """Order discussions by most recent modification time.""" + UPDATED_AT +} + +"""A poll for a discussion.""" +type DiscussionPoll implements Node { + """The discussion that this poll belongs to.""" + discussion: Discussion + """The Node ID of the DiscussionPoll object""" + id: ID! + """The options for this poll.""" + options( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """How to order the options for the discussion poll.""" + orderBy: DiscussionPollOptionOrder = {direction: ASC, field: AUTHORED_ORDER} + ): DiscussionPollOptionConnection + """The question that is being asked by this poll.""" + question: String! + """The total number of votes that have been cast for this poll.""" + totalVoteCount: Int! + """Indicates if the viewer has permission to vote in this poll.""" + viewerCanVote: Boolean! + """Indicates if the viewer has voted for any option in this poll.""" + viewerHasVoted: Boolean! +} + +"""An option for a discussion poll.""" +type DiscussionPollOption implements Node { + """The Node ID of the DiscussionPollOption object""" + id: ID! + """The text for this option.""" + option: String! + """The discussion poll that this option belongs to.""" + poll: DiscussionPoll + """The total number of votes that have been cast for this option.""" + totalVoteCount: Int! + """Indicates if the viewer has voted for this option in the poll.""" + viewerHasVoted: Boolean! +} + +"""The connection type for DiscussionPollOption.""" +type DiscussionPollOptionConnection { + """A list of edges.""" + edges: [DiscussionPollOptionEdge] + """A list of nodes.""" + nodes: [DiscussionPollOption] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type DiscussionPollOptionEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: DiscussionPollOption +} + +"""Ordering options for discussion poll option connections.""" +input DiscussionPollOptionOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order poll options by.""" + field: DiscussionPollOptionOrderField! +} + +"""Properties by which discussion poll option connections can be ordered.""" +enum DiscussionPollOptionOrderField { + """ + Order poll options by the order that the poll author specified when creating the poll. + """ + AUTHORED_ORDER + """Order poll options by the number of votes it has.""" + VOTE_COUNT +} + +"""The possible states of a discussion.""" +enum DiscussionState { + """A discussion that has been closed""" + CLOSED + """A discussion that is open""" + OPEN +} + +"""The possible state reasons of a discussion.""" +enum DiscussionStateReason { + """The discussion is a duplicate of another""" + DUPLICATE + """The discussion is no longer relevant""" + OUTDATED + """The discussion was reopened""" + REOPENED + """The discussion has been resolved""" + RESOLVED +} + +"""Autogenerated input type of DismissPullRequestReview""" +input DismissPullRequestReviewInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The contents of the pull request review dismissal message.""" + message: String! + """The Node ID of the pull request review to modify.""" + pullRequestReviewId: ID! +} + +"""Autogenerated return type of DismissPullRequestReview.""" +type DismissPullRequestReviewPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The dismissed pull request review.""" + pullRequestReview: PullRequestReview +} + +"""The possible reasons that a Dependabot alert was dismissed.""" +enum DismissReason { + """A fix has already been started""" + FIX_STARTED + """This alert is inaccurate or incorrect""" + INACCURATE + """Vulnerable code is not actually used""" + NOT_USED + """No bandwidth to fix this""" + NO_BANDWIDTH + """Risk is tolerable to this project""" + TOLERABLE_RISK +} + +"""Autogenerated input type of DismissRepositoryVulnerabilityAlert""" +input DismissRepositoryVulnerabilityAlertInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The reason the Dependabot alert is being dismissed.""" + dismissReason: DismissReason! + """The Dependabot alert ID to dismiss.""" + repositoryVulnerabilityAlertId: ID! +} + +"""Autogenerated return type of DismissRepositoryVulnerabilityAlert.""" +type DismissRepositoryVulnerabilityAlertPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Dependabot alert that was dismissed""" + repositoryVulnerabilityAlert: RepositoryVulnerabilityAlert +} + +"""A draft issue within a project.""" +type DraftIssue implements Node { + """A list of users to assigned to this draft issue.""" + assignees( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserConnection! + """The body of the draft issue.""" + body: String! + """The body of the draft issue rendered to HTML.""" + bodyHTML: HTML! + """The body of the draft issue rendered to text.""" + bodyText: String! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The actor who created this draft issue.""" + creator: Actor + """The Node ID of the DraftIssue object""" + id: ID! + """ + List of items linked with the draft issue (currently draft issue can be linked to only one item). + """ + projectV2Items( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectV2ItemConnection! + """ + Projects that link to this draft issue (currently draft issue can be linked to only one project). + """ + projectsV2( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectV2Connection! + """The title of the draft issue""" + title: String! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""Specifies a review comment to be left with a Pull Request Review.""" +input DraftPullRequestReviewComment { + """Body of the comment to leave.""" + body: String! + """Path to the file being commented on.""" + path: String! + """Position in the file to leave a comment on.""" + position: Int! +} + +""" +Specifies a review comment thread to be left with a Pull Request Review. +""" +input DraftPullRequestReviewThread { + """Body of the comment to leave.""" + body: String! + """ + The line of the blob to which the thread refers. The end of the line range for multi-line comments. + """ + line: Int! + """Path to the file being commented on.""" + path: String! + """ + The side of the diff on which the line resides. For multi-line comments, this is the side for the end of the line range. + """ + side: DiffSide = RIGHT + """The first line of the range to which the comment refers.""" + startLine: Int + """The side of the diff on which the start line resides.""" + startSide: DiffSide = RIGHT +} + +"""The Exploit Prediction Scoring System""" +type EPSS { + """ + The EPSS percentage represents the likelihood of a CVE being exploited. + """ + percentage: Float + """ + The EPSS percentile represents the relative rank of the CVE's likelihood of being exploited compared to other CVEs. + """ + percentile: Float +} + +"""Autogenerated input type of EnablePullRequestAutoMerge""" +input EnablePullRequestAutoMergeInput { + """The email address to associate with this merge.""" + authorEmail: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + Commit body to use for the commit when the PR is mergable; if omitted, a + default message will be used. NOTE: when merging with a merge queue any input + value for commit message is ignored. + """ + commitBody: String + """ + Commit headline to use for the commit when the PR is mergable; if omitted, a + default message will be used. NOTE: when merging with a merge queue any input + value for commit headline is ignored. + """ + commitHeadline: String + """The expected head OID of the pull request.""" + expectedHeadOid: GitObjectID + """ + The merge method to use. If omitted, defaults to `MERGE`. NOTE: when merging + with a merge queue any input value for merge method is ignored. + """ + mergeMethod: PullRequestMergeMethod = MERGE + """ID of the pull request to enable auto-merge on.""" + pullRequestId: ID! +} + +"""Autogenerated return type of EnablePullRequestAutoMerge.""" +type EnablePullRequestAutoMergePayload { + """Identifies the actor who performed the event.""" + actor: Actor + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The pull request auto-merge was enabled on.""" + pullRequest: PullRequest +} + +"""Autogenerated input type of EnqueuePullRequest""" +input EnqueuePullRequestInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The expected head OID of the pull request.""" + expectedHeadOid: GitObjectID + """Add the pull request to the front of the queue.""" + jump: Boolean + """The ID of the pull request to enqueue.""" + pullRequestId: ID! +} + +"""Autogenerated return type of EnqueuePullRequest.""" +type EnqueuePullRequestPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The merge queue entry for the enqueued pull request.""" + mergeQueueEntry: MergeQueueEntry +} + +""" +An account to manage multiple organizations with consolidated policy and billing. +""" +type Enterprise implements Node { + """ + The announcement banner set on this enterprise, if any. Only visible to members of the enterprise. + """ + announcementBanner: AnnouncementBanner + """A URL pointing to the enterprise's public avatar.""" + avatarUrl( + """The size of the resulting square image.""" + size: Int + ): URI! + """The enterprise's billing email.""" + billingEmail: String + """Enterprise billing information visible to enterprise billing managers.""" + billingInfo: EnterpriseBillingInfo + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int + """The description of the enterprise.""" + description: String + """The description of the enterprise as HTML.""" + descriptionHTML: HTML! + """The Node ID of the Enterprise object""" + id: ID! + """The location of the enterprise.""" + location: String + """A list of users who are members of this enterprise.""" + members( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Only return members within the selected GitHub Enterprise deployment""" + deployment: EnterpriseUserDeployment + """Returns the first _n_ elements from the list.""" + first: Int + """ + Only return members with this two-factor authentication status. Does not + include members who only have an account on a GitHub Enterprise Server instance. + + **Upcoming Change on 2025-04-01 UTC** + **Description:** `hasTwoFactorEnabled` will be removed. Use `two_factor_method_security` instead. + **Reason:** `has_two_factor_enabled` will be removed. + """ + hasTwoFactorEnabled: Boolean = null + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for members returned from the connection.""" + orderBy: EnterpriseMemberOrder = {direction: ASC, field: LOGIN} + """Only return members within the organizations with these logins""" + organizationLogins: [String!] + """The search string to look for.""" + query: String + """The role of the user in the enterprise organization or server.""" + role: EnterpriseUserAccountMembershipRole + """ + Only return members with this type of two-factor authentication method. Does + not include members who only have an account on a GitHub Enterprise Server instance. + """ + twoFactorMethodSecurity: TwoFactorCredentialSecurityType = null + ): EnterpriseMemberConnection! + """The name of the enterprise.""" + name: String! + """A list of organizations that belong to this enterprise.""" + organizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for organizations returned from the connection.""" + orderBy: OrganizationOrder = {direction: ASC, field: LOGIN} + """The search string to look for.""" + query: String + """The viewer's role in an organization.""" + viewerOrganizationRole: RoleInOrganization + ): OrganizationConnection! + """ + Enterprise information visible to enterprise owners or enterprise owners' + personal access tokens (classic) with read:enterprise or admin:enterprise scope. + """ + ownerInfo: EnterpriseOwnerInfo + """The raw content of the enterprise README.""" + readme: String + """The content of the enterprise README as HTML.""" + readmeHTML: HTML! + """The HTTP path for this enterprise.""" + resourcePath: URI! + """Returns a single ruleset from the current enterprise by ID.""" + ruleset( + """The ID of the ruleset to be returned.""" + databaseId: Int! + ): RepositoryRuleset + """A list of rulesets for this enterprise.""" + rulesets( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): RepositoryRulesetConnection + """The URL-friendly identifier for the enterprise.""" + slug: String! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The HTTP URL for this enterprise.""" + url: URI! + """ + A list of repositories that belong to users. Only available for enterprises with Enterprise Managed Users. + """ + userNamespaceRepositories( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for repositories returned from the connection.""" + orderBy: RepositoryOrder = {direction: ASC, field: NAME} + """The search string to look for.""" + query: String + ): UserNamespaceRepositoryConnection! + """Is the current viewer an admin of this enterprise?""" + viewerIsAdmin: Boolean! + """The URL of the enterprise website.""" + websiteUrl: URI +} + +"""The connection type for User.""" +type EnterpriseAdministratorConnection { + """A list of edges.""" + edges: [EnterpriseAdministratorEdge] + """A list of nodes.""" + nodes: [User] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""A User who is an administrator of an enterprise.""" +type EnterpriseAdministratorEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: User + """The role of the administrator.""" + role: EnterpriseAdministratorRole! +} + +""" +An invitation for a user to become an owner or billing manager of an enterprise. +""" +type EnterpriseAdministratorInvitation implements Node { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The email of the person who was invited to the enterprise.""" + email: String + """The enterprise the invitation is for.""" + enterprise: Enterprise! + """The Node ID of the EnterpriseAdministratorInvitation object""" + id: ID! + """The user who was invited to the enterprise.""" + invitee: User + """The user who created the invitation.""" + inviter: User + """ + The invitee's pending role in the enterprise (owner or billing_manager). + """ + role: EnterpriseAdministratorRole! +} + +"""The connection type for EnterpriseAdministratorInvitation.""" +type EnterpriseAdministratorInvitationConnection { + """A list of edges.""" + edges: [EnterpriseAdministratorInvitationEdge] + """A list of nodes.""" + nodes: [EnterpriseAdministratorInvitation] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type EnterpriseAdministratorInvitationEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: EnterpriseAdministratorInvitation +} + +"""Ordering options for enterprise administrator invitation connections""" +input EnterpriseAdministratorInvitationOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order enterprise administrator invitations by.""" + field: EnterpriseAdministratorInvitationOrderField! +} + +""" +Properties by which enterprise administrator invitation connections can be ordered. +""" +enum EnterpriseAdministratorInvitationOrderField { + """Order enterprise administrator member invitations by creation time""" + CREATED_AT +} + +"""The possible administrator roles in an enterprise account.""" +enum EnterpriseAdministratorRole { + """Represents a billing manager of the enterprise account.""" + BILLING_MANAGER + """Represents an owner of the enterprise account.""" + OWNER + """Unaffiliated member of the enterprise account without an admin role.""" + UNAFFILIATED +} + +""" +The possible values for the enterprise allow private repository forking policy value. +""" +enum EnterpriseAllowPrivateRepositoryForkingPolicyValue { + """ + Members can fork a repository to an organization within this enterprise. + """ + ENTERPRISE_ORGANIZATIONS + """ + Members can fork a repository to their enterprise-managed user account or an organization inside this enterprise. + """ + ENTERPRISE_ORGANIZATIONS_USER_ACCOUNTS + """ + Members can fork a repository to their user account or an organization, either inside or outside of this enterprise. + """ + EVERYWHERE + """ + Members can fork a repository only within the same organization (intra-org). + """ + SAME_ORGANIZATION + """ + Members can fork a repository to their user account or within the same organization. + """ + SAME_ORGANIZATION_USER_ACCOUNTS + """Members can fork a repository to their user account.""" + USER_ACCOUNTS +} + +"""Metadata for an audit entry containing enterprise account information.""" +interface EnterpriseAuditEntryData { + """The HTTP path for this enterprise.""" + enterpriseResourcePath: URI + """The slug of the enterprise.""" + enterpriseSlug: String + """The HTTP URL for this enterprise.""" + enterpriseUrl: URI +} + +""" +Enterprise billing information visible to enterprise billing managers and owners. +""" +type EnterpriseBillingInfo { + """The number of licenseable users/emails across the enterprise.""" + allLicensableUsersCount: Int! + """ + The number of data packs used by all organizations owned by the enterprise. + """ + assetPacks: Int! + """ + The bandwidth quota in GB for all organizations owned by the enterprise. + """ + bandwidthQuota: Float! + """ + The bandwidth usage in GB for all organizations owned by the enterprise. + """ + bandwidthUsage: Float! + """The bandwidth usage as a percentage of the bandwidth quota.""" + bandwidthUsagePercentage: Int! + """The storage quota in GB for all organizations owned by the enterprise.""" + storageQuota: Float! + """The storage usage in GB for all organizations owned by the enterprise.""" + storageUsage: Float! + """The storage usage as a percentage of the storage quota.""" + storageUsagePercentage: Int! + """ + The number of available licenses across all owned organizations based on the unique number of billable users. + """ + totalAvailableLicenses: Int! + """The total number of licenses allocated.""" + totalLicenses: Int! +} + +"""The connection type for Enterprise.""" +type EnterpriseConnection { + """A list of edges.""" + edges: [EnterpriseEdge] + """A list of nodes.""" + nodes: [Enterprise] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +""" +The possible values for the enterprise base repository permission setting. +""" +enum EnterpriseDefaultRepositoryPermissionSettingValue { + """ + Organization members will be able to clone, pull, push, and add new collaborators to all organization repositories. + """ + ADMIN + """ + Organization members will only be able to clone and pull public repositories. + """ + NONE + """ + Organizations in the enterprise choose base repository permissions for their members. + """ + NO_POLICY + """ + Organization members will be able to clone and pull all organization repositories. + """ + READ + """ + Organization members will be able to clone, pull, and push all organization repositories. + """ + WRITE +} + +"""The possible values for an enabled/no policy enterprise setting.""" +enum EnterpriseDisallowedMethodsSettingValue { + """ + The setting prevents insecure 2FA methods from being used by members of the enterprise. + """ + INSECURE + """ + There is no policy set for preventing insecure 2FA methods from being used by members of the enterprise. + """ + NO_POLICY +} + +"""An edge in a connection.""" +type EnterpriseEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Enterprise +} + +"""The possible values for an enabled/disabled enterprise setting.""" +enum EnterpriseEnabledDisabledSettingValue { + """The setting is disabled for organizations in the enterprise.""" + DISABLED + """The setting is enabled for organizations in the enterprise.""" + ENABLED + """There is no policy set for organizations in the enterprise.""" + NO_POLICY +} + +"""The possible values for an enabled/no policy enterprise setting.""" +enum EnterpriseEnabledSettingValue { + """The setting is enabled for organizations in the enterprise.""" + ENABLED + """There is no policy set for organizations in the enterprise.""" + NO_POLICY +} + +"""The connection type for OrganizationInvitation.""" +type EnterpriseFailedInvitationConnection { + """A list of edges.""" + edges: [EnterpriseFailedInvitationEdge] + """A list of nodes.""" + nodes: [OrganizationInvitation] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! + """Identifies the total count of unique users in the connection.""" + totalUniqueUserCount: Int! +} + +"""A failed invitation to be a member in an enterprise organization.""" +type EnterpriseFailedInvitationEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: OrganizationInvitation +} + +""" +An identity provider configured to provision identities for an enterprise. +Visible to enterprise owners or enterprise owners' personal access tokens +(classic) with read:enterprise or admin:enterprise scope. +""" +type EnterpriseIdentityProvider implements Node { + """ + The digest algorithm used to sign SAML requests for the identity provider. + """ + digestMethod: SamlDigestAlgorithm + """The enterprise this identity provider belongs to.""" + enterprise: Enterprise + """ExternalIdentities provisioned by this identity provider.""" + externalIdentities( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filter to external identities with the users login""" + login: String + """Filter to external identities with valid org membership only""" + membersOnly: Boolean + """Filter to external identities with the users userName/NameID attribute""" + userName: String + ): ExternalIdentityConnection! + """The Node ID of the EnterpriseIdentityProvider object""" + id: ID! + """ + The x509 certificate used by the identity provider to sign assertions and responses. + """ + idpCertificate: X509Certificate + """The Issuer Entity ID for the SAML identity provider.""" + issuer: String + """ + Recovery codes that can be used by admins to access the enterprise if the identity provider is unavailable. + """ + recoveryCodes: [String!] + """ + The signature algorithm used to sign SAML requests for the identity provider. + """ + signatureMethod: SamlSignatureAlgorithm + """The URL endpoint for the identity provider's SAML SSO.""" + ssoUrl: URI +} + +"""An object that is a member of an enterprise.""" +union EnterpriseMember = EnterpriseUserAccount | User + +"""The connection type for EnterpriseMember.""" +type EnterpriseMemberConnection { + """A list of edges.""" + edges: [EnterpriseMemberEdge] + """A list of nodes.""" + nodes: [EnterpriseMember] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +""" +A User who is a member of an enterprise through one or more organizations. +""" +type EnterpriseMemberEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: EnterpriseMember +} + +""" +An invitation for a user to become an unaffiliated member of an enterprise. +""" +type EnterpriseMemberInvitation implements Node { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The email of the person who was invited to the enterprise.""" + email: String + """The enterprise the invitation is for.""" + enterprise: Enterprise! + """The Node ID of the EnterpriseMemberInvitation object""" + id: ID! + """The user who was invited to the enterprise.""" + invitee: User + """The user who created the invitation.""" + inviter: User +} + +"""The connection type for EnterpriseMemberInvitation.""" +type EnterpriseMemberInvitationConnection { + """A list of edges.""" + edges: [EnterpriseMemberInvitationEdge] + """A list of nodes.""" + nodes: [EnterpriseMemberInvitation] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type EnterpriseMemberInvitationEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: EnterpriseMemberInvitation +} + +"""Ordering options for enterprise administrator invitation connections""" +input EnterpriseMemberInvitationOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order enterprise member invitations by.""" + field: EnterpriseMemberInvitationOrderField! +} + +""" +Properties by which enterprise member invitation connections can be ordered. +""" +enum EnterpriseMemberInvitationOrderField { + """Order enterprise member invitations by creation time""" + CREATED_AT +} + +"""Ordering options for enterprise member connections.""" +input EnterpriseMemberOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order enterprise members by.""" + field: EnterpriseMemberOrderField! +} + +"""Properties by which enterprise member connections can be ordered.""" +enum EnterpriseMemberOrderField { + """Order enterprise members by creation time""" + CREATED_AT + """Order enterprise members by login""" + LOGIN +} + +""" +The possible values for the enterprise members can create repositories setting. +""" +enum EnterpriseMembersCanCreateRepositoriesSettingValue { + """Members will be able to create public and private repositories.""" + ALL + """Members will not be able to create public or private repositories.""" + DISABLED + """ + Organization owners choose whether to allow members to create repositories. + """ + NO_POLICY + """Members will be able to create only private repositories.""" + PRIVATE + """Members will be able to create only public repositories.""" + PUBLIC +} + +"""The possible values for the members can make purchases setting.""" +enum EnterpriseMembersCanMakePurchasesSettingValue { + """The setting is disabled for organizations in the enterprise.""" + DISABLED + """The setting is enabled for organizations in the enterprise.""" + ENABLED +} + +""" +The possible values we have for filtering Platform::Objects::User#enterprises. +""" +enum EnterpriseMembershipType { + """Returns all enterprises in which the user is an admin.""" + ADMIN + """ + Returns all enterprises in which the user is a member, admin, or billing manager. + """ + ALL + """Returns all enterprises in which the user is a billing manager.""" + BILLING_MANAGER + """ + Returns all enterprises in which the user is a member of an org that is owned by the enterprise. + """ + ORG_MEMBERSHIP +} + +"""Ordering options for enterprises.""" +input EnterpriseOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order enterprises by.""" + field: EnterpriseOrderField! +} + +"""Properties by which enterprise connections can be ordered.""" +enum EnterpriseOrderField { + """Order enterprises by name""" + NAME +} + +"""The connection type for Organization.""" +type EnterpriseOrganizationMembershipConnection { + """A list of edges.""" + edges: [EnterpriseOrganizationMembershipEdge] + """A list of nodes.""" + nodes: [Organization] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An enterprise organization that a user is a member of.""" +type EnterpriseOrganizationMembershipEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Organization + """The role of the user in the enterprise membership.""" + role: EnterpriseUserAccountMembershipRole! +} + +"""The connection type for User.""" +type EnterpriseOutsideCollaboratorConnection { + """A list of edges.""" + edges: [EnterpriseOutsideCollaboratorEdge] + """A list of nodes.""" + nodes: [User] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +""" +A User who is an outside collaborator of an enterprise through one or more organizations. +""" +type EnterpriseOutsideCollaboratorEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: User + """The enterprise organization repositories this user is a member of.""" + repositories( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for repositories.""" + orderBy: RepositoryOrder = {direction: ASC, field: NAME} + ): EnterpriseRepositoryInfoConnection! +} + +""" +Enterprise information visible to enterprise owners or enterprise owners' +personal access tokens (classic) with read:enterprise or admin:enterprise scope. +""" +type EnterpriseOwnerInfo { + """A list of all of the administrators for this enterprise.""" + admins( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """ + Only return administrators with this two-factor authentication status. + + **Upcoming Change on 2025-04-01 UTC** + **Description:** `hasTwoFactorEnabled` will be removed. Use `two_factor_method_security` instead. + **Reason:** `has_two_factor_enabled` will be removed. + """ + hasTwoFactorEnabled: Boolean = null + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for administrators returned from the connection.""" + orderBy: EnterpriseMemberOrder = {direction: ASC, field: LOGIN} + """Only return members within the organizations with these logins""" + organizationLogins: [String!] + """The search string to look for.""" + query: String + """The role to filter by.""" + role: EnterpriseAdministratorRole + """ + Only return outside collaborators with this type of two-factor authentication method. + """ + twoFactorMethodSecurity: TwoFactorCredentialSecurityType = null + ): EnterpriseAdministratorConnection! + """ + A list of users in the enterprise who currently have two-factor authentication disabled. + """ + affiliatedUsersWithTwoFactorDisabled( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserConnection! + """ + Whether or not affiliated users with two-factor authentication disabled exist in the enterprise. + """ + affiliatedUsersWithTwoFactorDisabledExist: Boolean! + """ + The setting value for whether private repository forking is enabled for repositories in organizations in this enterprise. + """ + allowPrivateRepositoryForkingSetting: EnterpriseEnabledDisabledSettingValue! + """ + A list of enterprise organizations configured with the provided private repository forking setting value. + """ + allowPrivateRepositoryForkingSettingOrganizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for organizations with this setting.""" + orderBy: OrganizationOrder = {direction: ASC, field: LOGIN} + """The setting value to find organizations for.""" + value: Boolean! + ): OrganizationConnection! + """ + The value for the allow private repository forking policy on the enterprise. + """ + allowPrivateRepositoryForkingSettingPolicyValue: EnterpriseAllowPrivateRepositoryForkingPolicyValue + """ + The setting value for base repository permissions for organizations in this enterprise. + """ + defaultRepositoryPermissionSetting: EnterpriseDefaultRepositoryPermissionSettingValue! + """ + A list of enterprise organizations configured with the provided base repository permission. + """ + defaultRepositoryPermissionSettingOrganizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for organizations with this setting.""" + orderBy: OrganizationOrder = {direction: ASC, field: LOGIN} + """The permission to find organizations for.""" + value: DefaultRepositoryPermissionField! + ): OrganizationConnection! + """ + A list of domains owned by the enterprise. Visible to enterprise owners or + enterprise owners' personal access tokens (classic) with admin:enterprise scope. + """ + domains( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Filter whether or not the domain is approved.""" + isApproved: Boolean = null + """Filter whether or not the domain is verified.""" + isVerified: Boolean = null + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for verifiable domains returned.""" + orderBy: VerifiableDomainOrder = {direction: ASC, field: DOMAIN} + ): VerifiableDomainConnection! + """Enterprise Server installations owned by the enterprise.""" + enterpriseServerInstallations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """ + Whether or not to only return installations discovered via GitHub Connect. + """ + connectedOnly: Boolean = false + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for Enterprise Server installations returned.""" + orderBy: EnterpriseServerInstallationOrder = {direction: ASC, field: HOST_NAME} + ): EnterpriseServerInstallationConnection! + """A list of failed invitations in the enterprise.""" + failedInvitations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """The search string to look for.""" + query: String + ): EnterpriseFailedInvitationConnection! + """ + The setting value for whether the enterprise has an IP allow list enabled. + """ + ipAllowListEnabledSetting: IpAllowListEnabledSettingValue! + """ + The IP addresses that are allowed to access resources owned by the enterprise. + Visible to enterprise owners or enterprise owners' personal access tokens + (classic) with admin:enterprise scope. + """ + ipAllowListEntries( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for IP allow list entries returned.""" + orderBy: IpAllowListEntryOrder = {direction: ASC, field: ALLOW_LIST_VALUE} + ): IpAllowListEntryConnection! + """ + The setting value for whether the enterprise has IP allow list configuration for installed GitHub Apps enabled. + """ + ipAllowListForInstalledAppsEnabledSetting: IpAllowListForInstalledAppsEnabledSettingValue! + """ + Whether or not the base repository permission is currently being updated. + """ + isUpdatingDefaultRepositoryPermission: Boolean! + """ + Whether the two-factor authentication requirement is currently being enforced. + """ + isUpdatingTwoFactorRequirement: Boolean! + """ + The setting value for whether organization members with admin permissions on a + repository can change repository visibility. + """ + membersCanChangeRepositoryVisibilitySetting: EnterpriseEnabledDisabledSettingValue! + """ + A list of enterprise organizations configured with the provided can change repository visibility setting value. + """ + membersCanChangeRepositoryVisibilitySettingOrganizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for organizations with this setting.""" + orderBy: OrganizationOrder = {direction: ASC, field: LOGIN} + """The setting value to find organizations for.""" + value: Boolean! + ): OrganizationConnection! + """ + The setting value for whether members of organizations in the enterprise can create internal repositories. + """ + membersCanCreateInternalRepositoriesSetting: Boolean + """ + The setting value for whether members of organizations in the enterprise can create private repositories. + """ + membersCanCreatePrivateRepositoriesSetting: Boolean + """ + The setting value for whether members of organizations in the enterprise can create public repositories. + """ + membersCanCreatePublicRepositoriesSetting: Boolean + """ + The setting value for whether members of organizations in the enterprise can create repositories. + """ + membersCanCreateRepositoriesSetting: EnterpriseMembersCanCreateRepositoriesSettingValue + """ + A list of enterprise organizations configured with the provided repository creation setting value. + """ + membersCanCreateRepositoriesSettingOrganizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for organizations with this setting.""" + orderBy: OrganizationOrder = {direction: ASC, field: LOGIN} + """The setting to find organizations for.""" + value: OrganizationMembersCanCreateRepositoriesSettingValue! + ): OrganizationConnection! + """ + The setting value for whether members with admin permissions for repositories can delete issues. + """ + membersCanDeleteIssuesSetting: EnterpriseEnabledDisabledSettingValue! + """ + A list of enterprise organizations configured with the provided members can delete issues setting value. + """ + membersCanDeleteIssuesSettingOrganizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for organizations with this setting.""" + orderBy: OrganizationOrder = {direction: ASC, field: LOGIN} + """The setting value to find organizations for.""" + value: Boolean! + ): OrganizationConnection! + """ + The setting value for whether members with admin permissions for repositories can delete or transfer repositories. + """ + membersCanDeleteRepositoriesSetting: EnterpriseEnabledDisabledSettingValue! + """ + A list of enterprise organizations configured with the provided members can delete repositories setting value. + """ + membersCanDeleteRepositoriesSettingOrganizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for organizations with this setting.""" + orderBy: OrganizationOrder = {direction: ASC, field: LOGIN} + """The setting value to find organizations for.""" + value: Boolean! + ): OrganizationConnection! + """ + The setting value for whether members of organizations in the enterprise can invite outside collaborators. + """ + membersCanInviteCollaboratorsSetting: EnterpriseEnabledDisabledSettingValue! + """ + A list of enterprise organizations configured with the provided members can invite collaborators setting value. + """ + membersCanInviteCollaboratorsSettingOrganizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for organizations with this setting.""" + orderBy: OrganizationOrder = {direction: ASC, field: LOGIN} + """The setting value to find organizations for.""" + value: Boolean! + ): OrganizationConnection! + """ + Indicates whether members of this enterprise's organizations can purchase additional services for those organizations. + """ + membersCanMakePurchasesSetting: EnterpriseMembersCanMakePurchasesSettingValue! + """ + The setting value for whether members with admin permissions for repositories can update protected branches. + """ + membersCanUpdateProtectedBranchesSetting: EnterpriseEnabledDisabledSettingValue! + """ + A list of enterprise organizations configured with the provided members can update protected branches setting value. + """ + membersCanUpdateProtectedBranchesSettingOrganizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for organizations with this setting.""" + orderBy: OrganizationOrder = {direction: ASC, field: LOGIN} + """The setting value to find organizations for.""" + value: Boolean! + ): OrganizationConnection! + """The setting value for whether members can view dependency insights.""" + membersCanViewDependencyInsightsSetting: EnterpriseEnabledDisabledSettingValue! + """ + A list of enterprise organizations configured with the provided members can view dependency insights setting value. + """ + membersCanViewDependencyInsightsSettingOrganizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for organizations with this setting.""" + orderBy: OrganizationOrder = {direction: ASC, field: LOGIN} + """The setting value to find organizations for.""" + value: Boolean! + ): OrganizationConnection! + """ + Indicates if email notification delivery for this enterprise is restricted to verified or approved domains. + """ + notificationDeliveryRestrictionEnabledSetting: NotificationRestrictionSettingValue! + """The OIDC Identity Provider for the enterprise.""" + oidcProvider: OIDCProvider + """ + The setting value for whether organization projects are enabled for organizations in this enterprise. + """ + organizationProjectsSetting: EnterpriseEnabledDisabledSettingValue! + """ + A list of enterprise organizations configured with the provided organization projects setting value. + """ + organizationProjectsSettingOrganizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for organizations with this setting.""" + orderBy: OrganizationOrder = {direction: ASC, field: LOGIN} + """The setting value to find organizations for.""" + value: Boolean! + ): OrganizationConnection! + """ + A list of outside collaborators across the repositories in the enterprise. + """ + outsideCollaborators( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """ + Only return outside collaborators with this two-factor authentication status. + + **Upcoming Change on 2025-04-01 UTC** + **Description:** `hasTwoFactorEnabled` will be removed. Use `two_factor_method_security` instead. + **Reason:** `has_two_factor_enabled` will be removed. + """ + hasTwoFactorEnabled: Boolean = null + """Returns the last _n_ elements from the list.""" + last: Int + """The login of one specific outside collaborator.""" + login: String + """ + Ordering options for outside collaborators returned from the connection. + """ + orderBy: EnterpriseMemberOrder = {direction: ASC, field: LOGIN} + """ + Only return outside collaborators within the organizations with these logins + """ + organizationLogins: [String!] + """The search string to look for.""" + query: String + """ + Only return outside collaborators with this type of two-factor authentication method. + """ + twoFactorMethodSecurity: TwoFactorCredentialSecurityType = null + """ + Only return outside collaborators on repositories with this visibility. + """ + visibility: RepositoryVisibility + ): EnterpriseOutsideCollaboratorConnection! + """A list of pending administrator invitations for the enterprise.""" + pendingAdminInvitations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Ordering options for pending enterprise administrator invitations returned from the connection. + """ + orderBy: EnterpriseAdministratorInvitationOrder = {direction: DESC, field: CREATED_AT} + """The search string to look for.""" + query: String + """The role to filter by.""" + role: EnterpriseAdministratorRole + ): EnterpriseAdministratorInvitationConnection! + """ + A list of pending collaborator invitations across the repositories in the enterprise. + """ + pendingCollaboratorInvitations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Ordering options for pending repository collaborator invitations returned from the connection. + """ + orderBy: RepositoryInvitationOrder = {direction: DESC, field: CREATED_AT} + """The search string to look for.""" + query: String + ): RepositoryInvitationConnection! + """ + A list of pending member invitations for organizations in the enterprise. + """ + pendingMemberInvitations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Only return invitations matching this invitation source""" + invitationSource: OrganizationInvitationSource + """Returns the last _n_ elements from the list.""" + last: Int + """Only return invitations within the organizations with these logins""" + organizationLogins: [String!] + """The search string to look for.""" + query: String + ): EnterprisePendingMemberInvitationConnection! + """A list of pending unaffiliated member invitations for the enterprise.""" + pendingUnaffiliatedMemberInvitations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Ordering options for pending enterprise member invitations returned from the connection. + """ + orderBy: EnterpriseMemberInvitationOrder = {direction: DESC, field: CREATED_AT} + """The search string to look for.""" + query: String + ): EnterpriseMemberInvitationConnection! + """ + The setting value for whether deploy keys are enabled for repositories in organizations in this enterprise. + """ + repositoryDeployKeySetting: EnterpriseEnabledDisabledSettingValue! + """ + A list of enterprise organizations configured with the provided deploy keys setting value. + """ + repositoryDeployKeySettingOrganizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for organizations with this setting.""" + orderBy: OrganizationOrder = {direction: ASC, field: LOGIN} + """The setting value to find organizations for.""" + value: Boolean! + ): OrganizationConnection! + """ + The setting value for whether repository projects are enabled in this enterprise. + """ + repositoryProjectsSetting: EnterpriseEnabledDisabledSettingValue! + """ + A list of enterprise organizations configured with the provided repository projects setting value. + """ + repositoryProjectsSettingOrganizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for organizations with this setting.""" + orderBy: OrganizationOrder = {direction: ASC, field: LOGIN} + """The setting value to find organizations for.""" + value: Boolean! + ): OrganizationConnection! + """The SAML Identity Provider for the enterprise.""" + samlIdentityProvider: EnterpriseIdentityProvider + """ + A list of enterprise organizations configured with the SAML single sign-on setting value. + """ + samlIdentityProviderSettingOrganizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for organizations with this setting.""" + orderBy: OrganizationOrder = {direction: ASC, field: LOGIN} + """The setting value to find organizations for.""" + value: IdentityProviderConfigurationState! + ): OrganizationConnection! + """A list of members with a support entitlement.""" + supportEntitlements( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Ordering options for support entitlement users returned from the connection. + """ + orderBy: EnterpriseMemberOrder = {direction: ASC, field: LOGIN} + ): EnterpriseMemberConnection! + """ + The setting value for whether team discussions are enabled for organizations in this enterprise. + """ + teamDiscussionsSetting: EnterpriseEnabledDisabledSettingValue! + """ + A list of enterprise organizations configured with the provided team discussions setting value. + """ + teamDiscussionsSettingOrganizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for organizations with this setting.""" + orderBy: OrganizationOrder = {direction: ASC, field: LOGIN} + """The setting value to find organizations for.""" + value: Boolean! + ): OrganizationConnection! + """ + The setting value for what methods of two-factor authentication the enterprise prevents its users from having. + """ + twoFactorDisallowedMethodsSetting: EnterpriseDisallowedMethodsSettingValue! + """ + The setting value for whether the enterprise requires two-factor authentication for its organizations and users. + """ + twoFactorRequiredSetting: EnterpriseEnabledSettingValue! + """ + A list of enterprise organizations configured with the two-factor authentication setting value. + """ + twoFactorRequiredSettingOrganizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for organizations with this setting.""" + orderBy: OrganizationOrder = {direction: ASC, field: LOGIN} + """The setting value to find organizations for.""" + value: Boolean! + ): OrganizationConnection! +} + +"""The connection type for OrganizationInvitation.""" +type EnterprisePendingMemberInvitationConnection { + """A list of edges.""" + edges: [EnterprisePendingMemberInvitationEdge] + """A list of nodes.""" + nodes: [OrganizationInvitation] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! + """Identifies the total count of unique users in the connection.""" + totalUniqueUserCount: Int! +} + +"""An invitation to be a member in an enterprise organization.""" +type EnterprisePendingMemberInvitationEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: OrganizationInvitation +} + +"""A subset of repository information queryable from an enterprise.""" +type EnterpriseRepositoryInfo implements Node { + """The Node ID of the EnterpriseRepositoryInfo object""" + id: ID! + """Identifies if the repository is private or internal.""" + isPrivate: Boolean! + """The repository's name.""" + name: String! + """The repository's name with owner.""" + nameWithOwner: String! +} + +"""The connection type for EnterpriseRepositoryInfo.""" +type EnterpriseRepositoryInfoConnection { + """A list of edges.""" + edges: [EnterpriseRepositoryInfoEdge] + """A list of nodes.""" + nodes: [EnterpriseRepositoryInfo] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type EnterpriseRepositoryInfoEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: EnterpriseRepositoryInfo +} + +"""An Enterprise Server installation.""" +type EnterpriseServerInstallation implements Node { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The customer name to which the Enterprise Server installation belongs.""" + customerName: String! + """The host name of the Enterprise Server installation.""" + hostName: String! + """The Node ID of the EnterpriseServerInstallation object""" + id: ID! + """ + Whether or not the installation is connected to an Enterprise Server installation via GitHub Connect. + """ + isConnected: Boolean! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """User accounts on this Enterprise Server installation.""" + userAccounts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Ordering options for Enterprise Server user accounts returned from the connection. + """ + orderBy: EnterpriseServerUserAccountOrder = {direction: ASC, field: LOGIN} + ): EnterpriseServerUserAccountConnection! + """User accounts uploads for the Enterprise Server installation.""" + userAccountsUploads( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Ordering options for Enterprise Server user accounts uploads returned from the connection. + """ + orderBy: EnterpriseServerUserAccountsUploadOrder = {direction: DESC, field: CREATED_AT} + ): EnterpriseServerUserAccountsUploadConnection! +} + +"""The connection type for EnterpriseServerInstallation.""" +type EnterpriseServerInstallationConnection { + """A list of edges.""" + edges: [EnterpriseServerInstallationEdge] + """A list of nodes.""" + nodes: [EnterpriseServerInstallation] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type EnterpriseServerInstallationEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: EnterpriseServerInstallation +} + +"""The connection type for EnterpriseServerInstallation.""" +type EnterpriseServerInstallationMembershipConnection { + """A list of edges.""" + edges: [EnterpriseServerInstallationMembershipEdge] + """A list of nodes.""" + nodes: [EnterpriseServerInstallation] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An Enterprise Server installation that a user is a member of.""" +type EnterpriseServerInstallationMembershipEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: EnterpriseServerInstallation + """The role of the user in the enterprise membership.""" + role: EnterpriseUserAccountMembershipRole! +} + +"""Ordering options for Enterprise Server installation connections.""" +input EnterpriseServerInstallationOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order Enterprise Server installations by.""" + field: EnterpriseServerInstallationOrderField! +} + +""" +Properties by which Enterprise Server installation connections can be ordered. +""" +enum EnterpriseServerInstallationOrderField { + """Order Enterprise Server installations by creation time""" + CREATED_AT + """Order Enterprise Server installations by customer name""" + CUSTOMER_NAME + """Order Enterprise Server installations by host name""" + HOST_NAME +} + +"""A user account on an Enterprise Server installation.""" +type EnterpriseServerUserAccount implements Node { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """User emails belonging to this user account.""" + emails( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Ordering options for Enterprise Server user account emails returned from the connection. + """ + orderBy: EnterpriseServerUserAccountEmailOrder = {direction: ASC, field: EMAIL} + ): EnterpriseServerUserAccountEmailConnection! + """The Enterprise Server installation on which this user account exists.""" + enterpriseServerInstallation: EnterpriseServerInstallation! + """The Node ID of the EnterpriseServerUserAccount object""" + id: ID! + """ + Whether the user account is a site administrator on the Enterprise Server installation. + """ + isSiteAdmin: Boolean! + """The login of the user account on the Enterprise Server installation.""" + login: String! + """ + The profile name of the user account on the Enterprise Server installation. + """ + profileName: String + """ + The date and time when the user account was created on the Enterprise Server installation. + """ + remoteCreatedAt: DateTime! + """The ID of the user account on the Enterprise Server installation.""" + remoteUserId: Int! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""The connection type for EnterpriseServerUserAccount.""" +type EnterpriseServerUserAccountConnection { + """A list of edges.""" + edges: [EnterpriseServerUserAccountEdge] + """A list of nodes.""" + nodes: [EnterpriseServerUserAccount] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type EnterpriseServerUserAccountEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: EnterpriseServerUserAccount +} + +""" +An email belonging to a user account on an Enterprise Server installation. +""" +type EnterpriseServerUserAccountEmail implements Node { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The email address.""" + email: String! + """The Node ID of the EnterpriseServerUserAccountEmail object""" + id: ID! + """ + Indicates whether this is the primary email of the associated user account. + """ + isPrimary: Boolean! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The user account to which the email belongs.""" + userAccount: EnterpriseServerUserAccount! +} + +"""The connection type for EnterpriseServerUserAccountEmail.""" +type EnterpriseServerUserAccountEmailConnection { + """A list of edges.""" + edges: [EnterpriseServerUserAccountEmailEdge] + """A list of nodes.""" + nodes: [EnterpriseServerUserAccountEmail] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type EnterpriseServerUserAccountEmailEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: EnterpriseServerUserAccountEmail +} + +"""Ordering options for Enterprise Server user account email connections.""" +input EnterpriseServerUserAccountEmailOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order emails by.""" + field: EnterpriseServerUserAccountEmailOrderField! +} + +""" +Properties by which Enterprise Server user account email connections can be ordered. +""" +enum EnterpriseServerUserAccountEmailOrderField { + """Order emails by email""" + EMAIL +} + +"""Ordering options for Enterprise Server user account connections.""" +input EnterpriseServerUserAccountOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order user accounts by.""" + field: EnterpriseServerUserAccountOrderField! +} + +""" +Properties by which Enterprise Server user account connections can be ordered. +""" +enum EnterpriseServerUserAccountOrderField { + """Order user accounts by login""" + LOGIN + """ + Order user accounts by creation time on the Enterprise Server installation + """ + REMOTE_CREATED_AT +} + +"""A user accounts upload from an Enterprise Server installation.""" +type EnterpriseServerUserAccountsUpload implements Node { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The enterprise to which this upload belongs.""" + enterprise: Enterprise! + """ + The Enterprise Server installation for which this upload was generated. + """ + enterpriseServerInstallation: EnterpriseServerInstallation! + """The Node ID of the EnterpriseServerUserAccountsUpload object""" + id: ID! + """The name of the file uploaded.""" + name: String! + """The synchronization state of the upload""" + syncState: EnterpriseServerUserAccountsUploadSyncState! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""The connection type for EnterpriseServerUserAccountsUpload.""" +type EnterpriseServerUserAccountsUploadConnection { + """A list of edges.""" + edges: [EnterpriseServerUserAccountsUploadEdge] + """A list of nodes.""" + nodes: [EnterpriseServerUserAccountsUpload] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type EnterpriseServerUserAccountsUploadEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: EnterpriseServerUserAccountsUpload +} + +""" +Ordering options for Enterprise Server user accounts upload connections. +""" +input EnterpriseServerUserAccountsUploadOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order user accounts uploads by.""" + field: EnterpriseServerUserAccountsUploadOrderField! +} + +""" +Properties by which Enterprise Server user accounts upload connections can be ordered. +""" +enum EnterpriseServerUserAccountsUploadOrderField { + """Order user accounts uploads by creation time""" + CREATED_AT +} + +"""Synchronization state of the Enterprise Server user accounts upload""" +enum EnterpriseServerUserAccountsUploadSyncState { + """The synchronization of the upload failed.""" + FAILURE + """The synchronization of the upload is pending.""" + PENDING + """The synchronization of the upload succeeded.""" + SUCCESS +} + +""" +An account for a user who is an admin of an enterprise or a member of an enterprise through one or more organizations. +""" +type EnterpriseUserAccount implements Actor & Node { + """A URL pointing to the enterprise user account's public avatar.""" + avatarUrl( + """The size of the resulting square image.""" + size: Int + ): URI! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The enterprise in which this user account exists.""" + enterprise: Enterprise! + """A list of Enterprise Server installations this user is a member of.""" + enterpriseInstallations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for installations returned from the connection.""" + orderBy: EnterpriseServerInstallationOrder = {direction: ASC, field: HOST_NAME} + """The search string to look for.""" + query: String + """The role of the user in the installation.""" + role: EnterpriseUserAccountMembershipRole + ): EnterpriseServerInstallationMembershipConnection! + """The Node ID of the EnterpriseUserAccount object""" + id: ID! + """ + An identifier for the enterprise user account, a login or email address + """ + login: String! + """The name of the enterprise user account""" + name: String + """A list of enterprise organizations this user is a member of.""" + organizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for organizations returned from the connection.""" + orderBy: OrganizationOrder = {direction: ASC, field: LOGIN} + """The search string to look for.""" + query: String + """The role of the user in the enterprise organization.""" + role: EnterpriseUserAccountMembershipRole + ): EnterpriseOrganizationMembershipConnection! + """The HTTP path for this user.""" + resourcePath: URI! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The HTTP URL for this user.""" + url: URI! + """The user within the enterprise.""" + user: User +} + +"""The possible roles for enterprise membership.""" +enum EnterpriseUserAccountMembershipRole { + """The user is a member of an organization in the enterprise.""" + MEMBER + """The user is an owner of an organization in the enterprise.""" + OWNER + """ + The user is not an owner of the enterprise, and not a member or owner of any + organizations in the enterprise; only for EMU-enabled enterprises. + """ + UNAFFILIATED +} + +"""The possible GitHub Enterprise deployments where this user can exist.""" +enum EnterpriseUserDeployment { + """The user is part of a GitHub Enterprise Cloud deployment.""" + CLOUD + """The user is part of a GitHub Enterprise Server deployment.""" + SERVER +} + +"""An environment.""" +type Environment implements Node { + """Identifies the primary key from the database.""" + databaseId: Int + """The Node ID of the Environment object""" + id: ID! + """ + Indicates whether or not this environment is currently pinned to the repository + """ + isPinned: Boolean + """ + The latest completed deployment with status success, failure, or error if it exists + """ + latestCompletedDeployment: Deployment + """The name of the environment""" + name: String! + """ + The position of the environment if it is pinned, null if it is not pinned + """ + pinnedPosition: Int + """The protection rules defined for this environment""" + protectionRules( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): DeploymentProtectionRuleConnection! +} + +"""The connection type for Environment.""" +type EnvironmentConnection { + """A list of edges.""" + edges: [EnvironmentEdge] + """A list of nodes.""" + nodes: [Environment] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type EnvironmentEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Environment +} + +"""Properties by which environments connections can be ordered""" +enum EnvironmentOrderField { + """Order environments by name.""" + NAME +} + +"""Properties by which environments connections can be ordered""" +enum EnvironmentPinnedFilterField { + """All environments will be returned.""" + ALL + """Environments exclude pinned will be returned""" + NONE + """Only pinned environment will be returned""" + ONLY +} + +"""Ordering options for environments""" +input Environments { + """The direction in which to order environments by the specified field.""" + direction: OrderDirection! + """The field to order environments by.""" + field: EnvironmentOrderField! +} + +""" +An external identity provisioned by SAML SSO or SCIM. If SAML is configured on +the organization, the external identity is visible to (1) organization owners, +(2) organization owners' personal access tokens (classic) with read:org or +admin:org scope, (3) GitHub App with an installation token with read or write +access to members. If SAML is configured on the enterprise, the external +identity is visible to (1) enterprise owners, (2) enterprise owners' personal +access tokens (classic) with read:enterprise or admin:enterprise scope. +""" +type ExternalIdentity implements Node { + """The GUID for this identity""" + guid: String! + """The Node ID of the ExternalIdentity object""" + id: ID! + """Organization invitation for this SCIM-provisioned external identity""" + organizationInvitation: OrganizationInvitation + """SAML Identity attributes""" + samlIdentity: ExternalIdentitySamlAttributes + """SCIM Identity attributes""" + scimIdentity: ExternalIdentityScimAttributes + """ + User linked to this external identity. Will be NULL if this identity has not been claimed by an organization member. + """ + user: User +} + +"""An attribute for the External Identity attributes collection""" +type ExternalIdentityAttribute { + """The attribute metadata as JSON""" + metadata: String + """The attribute name""" + name: String! + """The attribute value""" + value: String! +} + +"""The connection type for ExternalIdentity.""" +type ExternalIdentityConnection { + """A list of edges.""" + edges: [ExternalIdentityEdge] + """A list of nodes.""" + nodes: [ExternalIdentity] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type ExternalIdentityEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: ExternalIdentity +} + +"""SAML attributes for the External Identity""" +type ExternalIdentitySamlAttributes { + """SAML Identity attributes""" + attributes: [ExternalIdentityAttribute!]! + """The emails associated with the SAML identity""" + emails: [UserEmailMetadata!] + """Family name of the SAML identity""" + familyName: String + """Given name of the SAML identity""" + givenName: String + """The groups linked to this identity in IDP""" + groups: [String!] + """The NameID of the SAML identity""" + nameId: String + """The userName of the SAML identity""" + username: String +} + +"""SCIM attributes for the External Identity""" +type ExternalIdentityScimAttributes { + """The emails associated with the SCIM identity""" + emails: [UserEmailMetadata!] + """Family name of the SCIM identity""" + familyName: String + """Given name of the SCIM identity""" + givenName: String + """The groups linked to this identity in IDP""" + groups: [String!] + """The userName of the SCIM identity""" + username: String +} + +""" +A command to add a file at the given path with the given contents as part of a +commit. Any existing file at that that path will be replaced. +""" +input FileAddition { + """The base64 encoded contents of the file""" + contents: Base64String! + """The path in the repository where the file will be located""" + path: String! +} + +""" +A description of a set of changes to a file tree to be made as part of +a git commit, modeled as zero or more file `additions` and zero or more +file `deletions`. + +Both fields are optional; omitting both will produce a commit with no +file changes. + +`deletions` and `additions` describe changes to files identified +by their path in the git tree using unix-style path separators, i.e. +`/`. The root of a git tree is an empty string, so paths are not +slash-prefixed. + +`path` values must be unique across all `additions` and `deletions` +provided. Any duplication will result in a validation error. + +### Encoding + +File contents must be provided in full for each `FileAddition`. + +The `contents` of a `FileAddition` must be encoded using RFC 4648 +compliant base64, i.e. correct padding is required and no characters +outside the standard alphabet may be used. Invalid base64 +encoding will be rejected with a validation error. + +The encoded contents may be binary. + +For text files, no assumptions are made about the character encoding of +the file contents (after base64 decoding). No charset transcoding or +line-ending normalization will be performed; it is the client's +responsibility to manage the character encoding of files they provide. +However, for maximum compatibility we recommend using UTF-8 encoding +and ensuring that all files in a repository use a consistent +line-ending convention (`\n` or `\r\n`), and that all files end +with a newline. + +### Modeling file changes + +Each of the the five types of conceptual changes that can be made in a +git commit can be described using the `FileChanges` type as follows: + +1. New file addition: create file `hello world\n` at path `docs/README.txt`: + + { + "additions" [ + { + "path": "docs/README.txt", + "contents": base64encode("hello world\n") + } + ] + } + +2. Existing file modification: change existing `docs/README.txt` to have new + content `new content here\n`: + + { + "additions" [ + { + "path": "docs/README.txt", + "contents": base64encode("new content here\n") + } + ] + } + +3. Existing file deletion: remove existing file `docs/README.txt`. + Note that the path is required to exist -- specifying a + path that does not exist on the given branch will abort the + commit and return an error. + + { + "deletions" [ + { + "path": "docs/README.txt" + } + ] + } + + +4. File rename with no changes: rename `docs/README.txt` with + previous content `hello world\n` to the same content at + `newdocs/README.txt`: + + { + "deletions" [ + { + "path": "docs/README.txt", + } + ], + "additions" [ + { + "path": "newdocs/README.txt", + "contents": base64encode("hello world\n") + } + ] + } + + +5. File rename with changes: rename `docs/README.txt` with + previous content `hello world\n` to a file at path + `newdocs/README.txt` with content `new contents\n`: + + { + "deletions" [ + { + "path": "docs/README.txt", + } + ], + "additions" [ + { + "path": "newdocs/README.txt", + "contents": base64encode("new contents\n") + } + ] + } +""" +input FileChanges { + """File to add or change.""" + additions: [FileAddition!] = [] + """Files to delete.""" + deletions: [FileDeletion!] = [] +} + +"""A command to delete the file at the given path as part of a commit.""" +input FileDeletion { + """The path to delete""" + path: String! +} + +""" +Prevent commits that include files with specified file extensions from being pushed to the commit graph. +""" +type FileExtensionRestrictionParameters { + """ + The file extensions that are restricted from being pushed to the commit graph. + """ + restrictedFileExtensions: [String!]! +} + +""" +Prevent commits that include files with specified file extensions from being pushed to the commit graph. +""" +input FileExtensionRestrictionParametersInput { + """ + The file extensions that are restricted from being pushed to the commit graph. + """ + restrictedFileExtensions: [String!]! +} + +""" +Prevent commits that include changes in specified file and folder paths from +being pushed to the commit graph. This includes absolute paths that contain file names. +""" +type FilePathRestrictionParameters { + """ + The file paths that are restricted from being pushed to the commit graph. + """ + restrictedFilePaths: [String!]! +} + +""" +Prevent commits that include changes in specified file and folder paths from +being pushed to the commit graph. This includes absolute paths that contain file names. +""" +input FilePathRestrictionParametersInput { + """ + The file paths that are restricted from being pushed to the commit graph. + """ + restrictedFilePaths: [String!]! +} + +"""The possible viewed states of a file .""" +enum FileViewedState { + """The file has new changes since last viewed.""" + DISMISSED + """The file has not been marked as viewed.""" + UNVIEWED + """The file has been marked as viewed.""" + VIEWED +} + +"""Autogenerated input type of FollowOrganization""" +input FollowOrganizationInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ID of the organization to follow.""" + organizationId: ID! +} + +"""Autogenerated return type of FollowOrganization.""" +type FollowOrganizationPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The organization that was followed.""" + organization: Organization +} + +"""Autogenerated input type of FollowUser""" +input FollowUserInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ID of the user to follow.""" + userId: ID! +} + +"""Autogenerated return type of FollowUser.""" +type FollowUserPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The user that was followed.""" + user: User +} + +"""The connection type for User.""" +type FollowerConnection { + """A list of edges.""" + edges: [UserEdge] + """A list of nodes.""" + nodes: [User] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""The connection type for User.""" +type FollowingConnection { + """A list of edges.""" + edges: [UserEdge] + """A list of nodes.""" + nodes: [User] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""A funding platform link for a repository.""" +type FundingLink { + """The funding platform this link is for.""" + platform: FundingPlatform! + """The configured URL for this funding link.""" + url: URI! +} + +"""The possible funding platforms for repository funding links.""" +enum FundingPlatform { + """Buy Me a Coffee funding platform.""" + BUY_ME_A_COFFEE + """Community Bridge funding platform.""" + COMMUNITY_BRIDGE + """Custom funding platform.""" + CUSTOM + """GitHub funding platform.""" + GITHUB + """IssueHunt funding platform.""" + ISSUEHUNT + """Ko-fi funding platform.""" + KO_FI + """LFX Crowdfunding funding platform.""" + LFX_CROWDFUNDING + """Liberapay funding platform.""" + LIBERAPAY + """Open Collective funding platform.""" + OPEN_COLLECTIVE + """Patreon funding platform.""" + PATREON + """Polar funding platform.""" + POLAR + """thanks.dev funding platform.""" + THANKS_DEV + """Tidelift funding platform.""" + TIDELIFT +} + +"""A generic hovercard context with a message and icon""" +type GenericHovercardContext implements HovercardContext { + """A string describing this context""" + message: String! + """An octicon to accompany this context""" + octicon: String! +} + +"""A Gist.""" +type Gist implements Node & Starrable & UniformResourceLocatable { + """A list of comments associated with the gist""" + comments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): GistCommentConnection! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The gist description.""" + description: String + """The files in this gist.""" + files( + """The maximum number of files to return.""" + limit: Int = 10 + """The oid of the files to return""" + oid: GitObjectID + ): [GistFile] + """A list of forks associated with the gist""" + forks( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for gists returned from the connection""" + orderBy: GistOrder + ): GistConnection! + """The Node ID of the Gist object""" + id: ID! + """Identifies if the gist is a fork.""" + isFork: Boolean! + """Whether the gist is public or not.""" + isPublic: Boolean! + """The gist name.""" + name: String! + """The gist owner.""" + owner: RepositoryOwner + """Identifies when the gist was last pushed to.""" + pushedAt: DateTime + """The HTML path to this resource.""" + resourcePath: URI! + """Returns a count of how many stargazers there are on this object""" + stargazerCount: Int! + """A list of users who have starred this starrable.""" + stargazers( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Order for connection""" + orderBy: StarOrder + ): StargazerConnection! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The HTTP URL for this Gist.""" + url: URI! + """ + Returns a boolean indicating whether the viewing user has starred this starrable. + """ + viewerHasStarred: Boolean! +} + +"""Represents a comment on an Gist.""" +type GistComment implements Comment & Deletable & Minimizable & Node & Updatable & UpdatableComment { + """The actor who authored the comment.""" + author: Actor + """Author's association with the gist.""" + authorAssociation: CommentAuthorAssociation! + """Identifies the comment body.""" + body: String! + """The body rendered to HTML.""" + bodyHTML: HTML! + """The body rendered to text.""" + bodyText: String! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Check if this comment was created via an email reply.""" + createdViaEmail: Boolean! + """Identifies the primary key from the database.""" + databaseId: Int + """The actor who edited the comment.""" + editor: Actor + """The associated gist.""" + gist: Gist! + """The Node ID of the GistComment object""" + id: ID! + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + """Returns whether or not a comment has been minimized.""" + isMinimized: Boolean! + """The moment the editor made the last edit""" + lastEditedAt: DateTime + """ + Returns why the comment was minimized. One of `abuse`, `off-topic`, + `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and + formatting of these values differs from the inputs to the `MinimizeComment` mutation. + """ + minimizedReason: String + """Identifies when the comment was published at.""" + publishedAt: DateTime + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """A list of edits to this content.""" + userContentEdits( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserContentEditConnection + """Check if the current viewer can delete this object.""" + viewerCanDelete: Boolean! + """Check if the current viewer can minimize this object.""" + viewerCanMinimize: Boolean! + """Check if the current viewer can update this object.""" + viewerCanUpdate: Boolean! + """Reasons why the current viewer can not update this comment.""" + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! + """Did the viewer author this comment.""" + viewerDidAuthor: Boolean! +} + +"""The connection type for GistComment.""" +type GistCommentConnection { + """A list of edges.""" + edges: [GistCommentEdge] + """A list of nodes.""" + nodes: [GistComment] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type GistCommentEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: GistComment +} + +"""The connection type for Gist.""" +type GistConnection { + """A list of edges.""" + edges: [GistEdge] + """A list of nodes.""" + nodes: [Gist] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type GistEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Gist +} + +"""A file in a gist.""" +type GistFile { + """ + The file name encoded to remove characters that are invalid in URL paths. + """ + encodedName: String + """The gist file encoding.""" + encoding: String + """The file extension from the file name.""" + extension: String + """Indicates if this file is an image.""" + isImage: Boolean! + """Whether the file's contents were truncated.""" + isTruncated: Boolean! + """The programming language this file is written in.""" + language: Language + """The gist file name.""" + name: String + """The gist file size in bytes.""" + size: Int + """UTF8 text data or null if the file is binary""" + text( + """Optionally truncate the returned file to this length.""" + truncate: Int + ): String +} + +"""Ordering options for gist connections""" +input GistOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order repositories by.""" + field: GistOrderField! +} + +"""Properties by which gist connections can be ordered.""" +enum GistOrderField { + """Order gists by creation time""" + CREATED_AT + """Order gists by push time""" + PUSHED_AT + """Order gists by update time""" + UPDATED_AT +} + +"""The privacy of a Gist""" +enum GistPrivacy { + """Gists that are public and secret""" + ALL + """Public""" + PUBLIC + """Secret""" + SECRET +} + +"""Represents an actor in a Git commit (ie. an author or committer).""" +type GitActor { + """A URL pointing to the author's public avatar.""" + avatarUrl( + """The size of the resulting square image.""" + size: Int + ): URI! + """The timestamp of the Git action (authoring or committing).""" + date: GitTimestamp + """The email in the Git commit.""" + email: String + """The name in the Git commit.""" + name: String + """ + The GitHub user corresponding to the email field. Null if no such user exists. + """ + user: User +} + +"""The connection type for GitActor.""" +type GitActorConnection { + """A list of edges.""" + edges: [GitActorEdge] + """A list of nodes.""" + nodes: [GitActor] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type GitActorEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: GitActor +} + +"""Represents information about the GitHub instance.""" +type GitHubMetadata { + """Returns a String that's a SHA of `github-services`""" + gitHubServicesSha: GitObjectID! + """IP addresses that users connect to for git operations""" + gitIpAddresses: [String!] + """ + IP addresses that GitHub Enterprise Importer uses for outbound connections + """ + githubEnterpriseImporterIpAddresses: [String!] + """IP addresses that service hooks are sent from""" + hookIpAddresses: [String!] + """IP addresses that the importer connects from""" + importerIpAddresses: [String!] + """Whether or not users are verified""" + isPasswordAuthenticationVerifiable: Boolean! + """IP addresses for GitHub Pages' A records""" + pagesIpAddresses: [String!] +} + +"""Represents a Git object.""" +interface GitObject { + """An abbreviated version of the Git object ID""" + abbreviatedOid: String! + """The HTTP path for this Git object""" + commitResourcePath: URI! + """The HTTP URL for this Git object""" + commitUrl: URI! + """The Node ID of the GitObject object""" + id: ID! + """The Git object ID""" + oid: GitObjectID! + """The Repository the Git object belongs to""" + repository: Repository! +} + +"""A Git object ID.""" +scalar GitObjectID + +"""A fully qualified reference name (e.g. `refs/heads/master`).""" +scalar GitRefname + +"""Git SSH string""" +scalar GitSSHRemote + +"""Information about a signature (GPG or S/MIME) on a Commit or Tag.""" +interface GitSignature { + """Email used to sign this object.""" + email: String! + """True if the signature is valid and verified by GitHub.""" + isValid: Boolean! + """ + Payload for GPG signing object. Raw ODB object without the signature header. + """ + payload: String! + """ASCII-armored signature header from object.""" + signature: String! + """GitHub user corresponding to the email signing this commit.""" + signer: User + """ + The state of this signature. `VALID` if signature is valid and verified by + GitHub, otherwise represents reason why signature is considered invalid. + """ + state: GitSignatureState! + """The date the signature was verified, if valid""" + verifiedAt: DateTime + """True if the signature was made with GitHub's signing key.""" + wasSignedByGitHub: Boolean! +} + +"""The state of a Git signature.""" +enum GitSignatureState { + """The signing certificate or its chain could not be verified""" + BAD_CERT + """Invalid email used for signing""" + BAD_EMAIL + """Signing key expired""" + EXPIRED_KEY + """Internal error - the GPG verification service misbehaved""" + GPGVERIFY_ERROR + """ + Internal error - the GPG verification service is unavailable at the moment + """ + GPGVERIFY_UNAVAILABLE + """Invalid signature""" + INVALID + """Malformed signature""" + MALFORMED_SIG + """The usage flags for the key that signed this don't allow signing""" + NOT_SIGNING_KEY + """Email used for signing not known to GitHub""" + NO_USER + """Valid signature, though certificate revocation check failed""" + OCSP_ERROR + """Valid signature, pending certificate revocation checking""" + OCSP_PENDING + """One or more certificates in chain has been revoked""" + OCSP_REVOKED + """Key used for signing not known to GitHub""" + UNKNOWN_KEY + """Unknown signature type""" + UNKNOWN_SIG_TYPE + """Unsigned""" + UNSIGNED + """Email used for signing unverified on GitHub""" + UNVERIFIED_EMAIL + """Valid signature and verified by GitHub""" + VALID +} + +""" +An ISO-8601 encoded date string. Unlike the DateTime type, GitTimestamp is not converted in UTC. +""" +scalar GitTimestamp + +"""Represents a GPG signature on a Commit or Tag.""" +type GpgSignature implements GitSignature { + """Email used to sign this object.""" + email: String! + """True if the signature is valid and verified by GitHub.""" + isValid: Boolean! + """Hex-encoded ID of the key that signed this object.""" + keyId: String + """ + Payload for GPG signing object. Raw ODB object without the signature header. + """ + payload: String! + """ASCII-armored signature header from object.""" + signature: String! + """GitHub user corresponding to the email signing this commit.""" + signer: User + """ + The state of this signature. `VALID` if signature is valid and verified by + GitHub, otherwise represents reason why signature is considered invalid. + """ + state: GitSignatureState! + """The date the signature was verified, if valid""" + verifiedAt: DateTime + """True if the signature was made with GitHub's signing key.""" + wasSignedByGitHub: Boolean! +} + +"""Autogenerated input type of GrantEnterpriseOrganizationsMigratorRole""" +input GrantEnterpriseOrganizationsMigratorRoleInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The ID of the enterprise to which all organizations managed by it will be granted the migrator role. + """ + enterpriseId: ID! + """The login of the user to grant the migrator role""" + login: String! +} + +"""Autogenerated return type of GrantEnterpriseOrganizationsMigratorRole.""" +type GrantEnterpriseOrganizationsMigratorRolePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The organizations that had the migrator role applied to for the given user. + """ + organizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): OrganizationConnection +} + +"""Autogenerated input type of GrantMigratorRole""" +input GrantMigratorRoleInput { + """The user login or Team slug to grant the migrator role.""" + actor: String! + """Specifies the type of the actor, can be either USER or TEAM.""" + actorType: ActorType! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the organization that the user/team belongs to.""" + organizationId: ID! +} + +"""Autogenerated return type of GrantMigratorRole.""" +type GrantMigratorRolePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """Did the operation succeed?""" + success: Boolean +} + +"""A string containing HTML code.""" +scalar HTML + +"""Represents a 'head_ref_deleted' event on a given pull request.""" +type HeadRefDeletedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the Ref associated with the `head_ref_deleted` event.""" + headRef: Ref + """ + Identifies the name of the Ref associated with the `head_ref_deleted` event. + """ + headRefName: String! + """The Node ID of the HeadRefDeletedEvent object""" + id: ID! + """PullRequest referenced by event.""" + pullRequest: PullRequest! +} + +"""Represents a 'head_ref_force_pushed' event on a given pull request.""" +type HeadRefForcePushedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the after commit SHA for the 'head_ref_force_pushed' event.""" + afterCommit: Commit + """ + Identifies the before commit SHA for the 'head_ref_force_pushed' event. + """ + beforeCommit: Commit + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the HeadRefForcePushedEvent object""" + id: ID! + """PullRequest referenced by event.""" + pullRequest: PullRequest! + """ + Identifies the fully qualified ref name for the 'head_ref_force_pushed' event. + """ + ref: Ref +} + +"""Represents a 'head_ref_restored' event on a given pull request.""" +type HeadRefRestoredEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the HeadRefRestoredEvent object""" + id: ID! + """PullRequest referenced by event.""" + pullRequest: PullRequest! +} + +"""Detail needed to display a hovercard for a user""" +type Hovercard { + """Each of the contexts for this hovercard""" + contexts: [HovercardContext!]! +} + +"""An individual line of a hovercard""" +interface HovercardContext { + """A string describing this context""" + message: String! + """An octicon to accompany this context""" + octicon: String! +} + +""" +The possible states in which authentication can be configured with an identity provider. +""" +enum IdentityProviderConfigurationState { + """ + Authentication with an identity provider is configured but not enforced. + """ + CONFIGURED + """Authentication with an identity provider is configured and enforced.""" + ENFORCED + """Authentication with an identity provider is not configured.""" + UNCONFIGURED +} + +"""Autogenerated input type of ImportProject""" +input ImportProjectInput { + """The description of Project.""" + body: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """A list of columns containing issues and pull requests.""" + columnImports: [ProjectColumnImport!]! + """The name of Project.""" + name: String! + """The name of the Organization or User to create the Project under.""" + ownerName: String! + """Whether the Project is public or not.""" + public: Boolean = false +} + +"""Autogenerated return type of ImportProject.""" +type ImportProjectPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The new Project!""" + project: Project +} + +"""Autogenerated input type of InviteEnterpriseAdmin""" +input InviteEnterpriseAdminInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The email of the person to invite as an administrator.""" + email: String + """The ID of the enterprise to which you want to invite an administrator.""" + enterpriseId: ID! + """The login of a user to invite as an administrator.""" + invitee: String + """The role of the administrator.""" + role: EnterpriseAdministratorRole +} + +"""Autogenerated return type of InviteEnterpriseAdmin.""" +type InviteEnterpriseAdminPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The created enterprise administrator invitation.""" + invitation: EnterpriseAdministratorInvitation +} + +"""Autogenerated input type of InviteEnterpriseMember""" +input InviteEnterpriseMemberInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The email of the person to invite as an unaffiliated member.""" + email: String + """ + The ID of the enterprise to which you want to invite an unaffiliated member. + """ + enterpriseId: ID! + """The login of a user to invite as an unaffiliated member.""" + invitee: String +} + +"""Autogenerated return type of InviteEnterpriseMember.""" +type InviteEnterpriseMemberPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The created enterprise member invitation.""" + invitation: EnterpriseMemberInvitation +} + +"""The possible values for the IP allow list enabled setting.""" +enum IpAllowListEnabledSettingValue { + """The setting is disabled for the owner.""" + DISABLED + """The setting is enabled for the owner.""" + ENABLED +} + +""" +An IP address or range of addresses that is allowed to access an owner's resources. +""" +type IpAllowListEntry implements Node { + """A single IP address or range of IP addresses in CIDR notation.""" + allowListValue: String! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the IpAllowListEntry object""" + id: ID! + """Whether the entry is currently active.""" + isActive: Boolean! + """The name of the IP allow list entry.""" + name: String + """The owner of the IP allow list entry.""" + owner: IpAllowListOwner! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""The connection type for IpAllowListEntry.""" +type IpAllowListEntryConnection { + """A list of edges.""" + edges: [IpAllowListEntryEdge] + """A list of nodes.""" + nodes: [IpAllowListEntry] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type IpAllowListEntryEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: IpAllowListEntry +} + +"""Ordering options for IP allow list entry connections.""" +input IpAllowListEntryOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order IP allow list entries by.""" + field: IpAllowListEntryOrderField! +} + +"""Properties by which IP allow list entry connections can be ordered.""" +enum IpAllowListEntryOrderField { + """Order IP allow list entries by the allow list value.""" + ALLOW_LIST_VALUE + """Order IP allow list entries by creation time.""" + CREATED_AT +} + +""" +The possible values for the IP allow list configuration for installed GitHub Apps setting. +""" +enum IpAllowListForInstalledAppsEnabledSettingValue { + """The setting is disabled for the owner.""" + DISABLED + """The setting is enabled for the owner.""" + ENABLED +} + +"""Types that can own an IP allow list.""" +union IpAllowListOwner = App | Enterprise | Organization + +""" +An Issue is a place to discuss ideas, enhancements, tasks, and bugs for a project. +""" +type Issue implements Assignable & Closable & Comment & Deletable & Labelable & Lockable & Node & ProjectV2Owner & Reactable & RepositoryNode & Subscribable & SubscribableThread & UniformResourceLocatable & Updatable & UpdatableComment { + """Reason that the conversation was locked.""" + activeLockReason: LockReason + """A list of actors assigned to this object.""" + assignedActors( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): AssigneeConnection! + """A list of Users assigned to this object.""" + assignees( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserConnection! + """The actor who authored the comment.""" + author: Actor + """Author's association with the subject of the comment.""" + authorAssociation: CommentAuthorAssociation! + """Identifies the body of the issue.""" + body: String! + """The body rendered to HTML.""" + bodyHTML: HTML! + """The http path for this issue body""" + bodyResourcePath: URI! + """Identifies the body of the issue rendered to text.""" + bodyText: String! + """The http URL for this issue body""" + bodyUrl: URI! + """ + Indicates if the object is closed (definition of closed may depend on type) + """ + closed: Boolean! + """Identifies the date and time when the object was closed.""" + closedAt: DateTime + """List of open pull requests referenced from this issue""" + closedByPullRequestsReferences( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Include closed PRs in results""" + includeClosedPrs: Boolean = false + """Returns the last _n_ elements from the list.""" + last: Int + """Return results ordered by state""" + orderByState: Boolean = false + """Return only manually linked PRs""" + userLinkedOnly: Boolean = false + ): PullRequestConnection + """A list of comments associated with the Issue.""" + comments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for issue comments returned from the connection.""" + orderBy: IssueCommentOrder + ): IssueCommentConnection! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Check if this comment was created via an email reply.""" + createdViaEmail: Boolean! + """Identifies the primary key from the database.""" + databaseId: Int + """The actor who edited the comment.""" + editor: Actor + """Identifies the primary key from the database as a BigInt.""" + fullDatabaseId: BigInt + """The hovercard information for this issue""" + hovercard( + """Whether or not to include notification contexts""" + includeNotificationContexts: Boolean = true + ): Hovercard! + """The Node ID of the Issue object""" + id: ID! + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + """ + Indicates whether or not this issue is currently pinned to the repository issues list + """ + isPinned: Boolean + """Is this issue read by the viewer""" + isReadByViewer: Boolean + """The issue type for this Issue""" + issueType: IssueType + """A list of labels associated with the object.""" + labels( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for labels returned from the connection.""" + orderBy: LabelOrder = {direction: ASC, field: CREATED_AT} + ): LabelConnection + """The moment the editor made the last edit""" + lastEditedAt: DateTime + """Branches linked to this issue.""" + linkedBranches( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): LinkedBranchConnection! + """`true` if the object is locked""" + locked: Boolean! + """Identifies the milestone associated with the issue.""" + milestone: Milestone + """Identifies the issue number.""" + number: Int! + """The parent entity of the issue.""" + parent: Issue + """A list of Users that are participating in the Issue conversation.""" + participants( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserConnection! + """List of project cards associated with this issue.""" + projectCards( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """A list of archived states to filter the cards by""" + archivedStates: [ProjectCardArchivedState] = [ARCHIVED, NOT_ARCHIVED] + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectCardConnection! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """List of project items associated with this issue.""" + projectItems( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Include archived items.""" + includeArchived: Boolean = true + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectV2ItemConnection! + """Find a project by number.""" + projectV2( + """The project number.""" + number: Int! + ): ProjectV2 + """A list of projects under the owner.""" + projectsV2( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filter projects based on user role.""" + minPermissionLevel: ProjectV2PermissionLevel = READ + """How to order the returned projects.""" + orderBy: ProjectV2Order = {direction: DESC, field: NUMBER} + """A project to search for under the owner.""" + query: String + ): ProjectV2Connection! + """Identifies when the comment was published at.""" + publishedAt: DateTime + """A list of reactions grouped by content left on the subject.""" + reactionGroups: [ReactionGroup!] + """A list of Reactions left on the Issue.""" + reactions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Allows filtering Reactions by emoji.""" + content: ReactionContent + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Allows specifying the order in which reactions are returned.""" + orderBy: ReactionOrder + ): ReactionConnection! + """The repository associated with this node.""" + repository: Repository! + """The HTTP path for this issue""" + resourcePath: URI! + """Identifies the state of the issue.""" + state: IssueState! + """Identifies the reason for the issue state.""" + stateReason( + """Whether or not to return state reason for duplicates""" + enableDuplicate: Boolean = false + ): IssueStateReason + """A list of sub-issues associated with the Issue.""" + subIssues( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): IssueConnection! + """Summary of the state of an issue's sub-issues""" + subIssuesSummary: SubIssuesSummary! + """A list of suggested actors to assign to this object""" + suggestedActors( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """If provided, searches users by login or profile name""" + query: String + ): AssigneeConnection! + """A list of events, comments, commits, etc. associated with the issue.""" + timeline( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Allows filtering timeline events by a `since` timestamp.""" + since: DateTime + ): IssueTimelineConnection! @deprecated(reason: "`timeline` will be removed Use Issue.timelineItems instead. Removal on 2020-10-01 UTC.") + """A list of events, comments, commits, etc. associated with the issue.""" + timelineItems( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Filter timeline items by type.""" + itemTypes: [IssueTimelineItemsItemType!] + """Returns the last _n_ elements from the list.""" + last: Int + """Filter timeline items by a `since` timestamp.""" + since: DateTime + """Skips the first _n_ elements in the list.""" + skip: Int + ): IssueTimelineItemsConnection! + """Identifies the issue title.""" + title: String! + """Identifies the issue title rendered to HTML.""" + titleHTML: String! + """A list of issues that track this issue""" + trackedInIssues( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): IssueConnection! + """A list of issues tracked inside the current issue""" + trackedIssues( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): IssueConnection! + """The number of tracked issues for this issue""" + trackedIssuesCount( + """Limit the count to tracked issues with the specified states.""" + states: [TrackedIssueStates] + ): Int! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The HTTP URL for this issue""" + url: URI! + """A list of edits to this content.""" + userContentEdits( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserContentEditConnection + """Indicates if the object can be closed by the viewer.""" + viewerCanClose: Boolean! + """Check if the current viewer can delete this object.""" + viewerCanDelete: Boolean! + """Indicates if the viewer can edit labels for this object.""" + viewerCanLabel: Boolean! + """Can user react to this subject""" + viewerCanReact: Boolean! + """Indicates if the object can be reopened by the viewer.""" + viewerCanReopen: Boolean! + """ + Check if the viewer is able to change their subscription status for the repository. + """ + viewerCanSubscribe: Boolean! + """Check if the current viewer can update this object.""" + viewerCanUpdate: Boolean! + """Reasons why the current viewer can not update this comment.""" + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! + """Did the viewer author this comment.""" + viewerDidAuthor: Boolean! + """ + Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. + """ + viewerSubscription: SubscriptionState + """Identifies the viewer's thread subscription form action.""" + viewerThreadSubscriptionFormAction: ThreadSubscriptionFormAction + """Identifies the viewer's thread subscription status.""" + viewerThreadSubscriptionStatus: ThreadSubscriptionState +} + +"""The possible state reasons of a closed issue.""" +enum IssueClosedStateReason { + """An issue that has been closed as completed""" + COMPLETED + """An issue that has been closed as a duplicate""" + DUPLICATE + """An issue that has been closed as not planned""" + NOT_PLANNED +} + +"""Represents a comment on an Issue.""" +type IssueComment implements Comment & Deletable & Minimizable & Node & Reactable & RepositoryNode & Updatable & UpdatableComment { + """The actor who authored the comment.""" + author: Actor + """Author's association with the subject of the comment.""" + authorAssociation: CommentAuthorAssociation! + """The body as Markdown.""" + body: String! + """The body rendered to HTML.""" + bodyHTML: HTML! + """The body rendered to text.""" + bodyText: String! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Check if this comment was created via an email reply.""" + createdViaEmail: Boolean! + """Identifies the primary key from the database.""" + databaseId: Int + """The actor who edited the comment.""" + editor: Actor + """Identifies the primary key from the database as a BigInt.""" + fullDatabaseId: BigInt + """The Node ID of the IssueComment object""" + id: ID! + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + """Returns whether or not a comment has been minimized.""" + isMinimized: Boolean! + """Identifies the issue associated with the comment.""" + issue: Issue! + """The moment the editor made the last edit""" + lastEditedAt: DateTime + """ + Returns why the comment was minimized. One of `abuse`, `off-topic`, + `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and + formatting of these values differs from the inputs to the `MinimizeComment` mutation. + """ + minimizedReason: String + """Identifies when the comment was published at.""" + publishedAt: DateTime + """ + Returns the pull request associated with the comment, if this comment was made on a + pull request. + """ + pullRequest: PullRequest + """A list of reactions grouped by content left on the subject.""" + reactionGroups: [ReactionGroup!] + """A list of Reactions left on the Issue.""" + reactions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Allows filtering Reactions by emoji.""" + content: ReactionContent + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Allows specifying the order in which reactions are returned.""" + orderBy: ReactionOrder + ): ReactionConnection! + """The repository associated with this node.""" + repository: Repository! + """The HTTP path for this issue comment""" + resourcePath: URI! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The HTTP URL for this issue comment""" + url: URI! + """A list of edits to this content.""" + userContentEdits( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserContentEditConnection + """Check if the current viewer can delete this object.""" + viewerCanDelete: Boolean! + """Check if the current viewer can minimize this object.""" + viewerCanMinimize: Boolean! + """Can user react to this subject""" + viewerCanReact: Boolean! + """Check if the current viewer can update this object.""" + viewerCanUpdate: Boolean! + """Reasons why the current viewer can not update this comment.""" + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! + """Did the viewer author this comment.""" + viewerDidAuthor: Boolean! +} + +"""The connection type for IssueComment.""" +type IssueCommentConnection { + """A list of edges.""" + edges: [IssueCommentEdge] + """A list of nodes.""" + nodes: [IssueComment] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type IssueCommentEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: IssueComment +} + +"""Ways in which lists of issue comments can be ordered upon return.""" +input IssueCommentOrder { + """The direction in which to order issue comments by the specified field.""" + direction: OrderDirection! + """The field in which to order issue comments by.""" + field: IssueCommentOrderField! +} + +"""Properties by which issue comment connections can be ordered.""" +enum IssueCommentOrderField { + """Order issue comments by update time""" + UPDATED_AT +} + +"""The connection type for Issue.""" +type IssueConnection { + """A list of edges.""" + edges: [IssueEdge] + """A list of nodes.""" + nodes: [Issue] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""This aggregates issues opened by a user within one repository.""" +type IssueContributionsByRepository { + """The issue contributions.""" + contributions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for contributions returned from the connection.""" + orderBy: ContributionOrder = {direction: DESC} + ): CreatedIssueContributionConnection! + """The repository in which the issues were opened.""" + repository: Repository! +} + +"""An edge in a connection.""" +type IssueEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Issue +} + +"""Ways in which to filter lists of issues.""" +input IssueFilters { + """ + List issues assigned to given name. Pass in `null` for issues with no assigned + user, and `*` for issues assigned to any user. + """ + assignee: String + """List issues created by given name.""" + createdBy: String + """List issues where the list of label names exist on the issue.""" + labels: [String!] + """List issues where the given name is mentioned in the issue.""" + mentioned: String + """ + List issues by given milestone argument. If an string representation of an + integer is passed, it should refer to a milestone by its database ID. Pass in + `null` for issues with no milestone, and `*` for issues that are assigned to any milestone. + """ + milestone: String + """ + List issues by given milestone argument. If an string representation of an + integer is passed, it should refer to a milestone by its number field. Pass in + `null` for issues with no milestone, and `*` for issues that are assigned to any milestone. + """ + milestoneNumber: String + """List issues that have been updated at or after the given date.""" + since: DateTime + """List issues filtered by the list of states given.""" + states: [IssueState!] + """ + List issues filtered by the type given, only supported by searches on repositories. + """ + type: String + """List issues subscribed to by viewer.""" + viewerSubscribed: Boolean = false +} + +"""Used for return value of Repository.issueOrPullRequest.""" +union IssueOrPullRequest = Issue | PullRequest + +"""Ways in which lists of issues can be ordered upon return.""" +input IssueOrder { + """The direction in which to order issues by the specified field.""" + direction: OrderDirection! + """The field in which to order issues by.""" + field: IssueOrderField! +} + +"""Properties by which issue connections can be ordered.""" +enum IssueOrderField { + """Order issues by comment count""" + COMMENTS + """Order issues by creation time""" + CREATED_AT + """Order issues by update time""" + UPDATED_AT +} + +"""The possible states of an issue.""" +enum IssueState { + """An issue that has been closed""" + CLOSED + """An issue that is still open""" + OPEN +} + +"""The possible state reasons of an issue.""" +enum IssueStateReason { + """An issue that has been closed as completed""" + COMPLETED + """ + An issue that has been closed as a duplicate. To retrieve this value, set + `(enableDuplicate: true)` when querying the stateReason field. + """ + DUPLICATE + """An issue that has been closed as not planned""" + NOT_PLANNED + """An issue that has been reopened""" + REOPENED +} + +"""A repository issue template.""" +type IssueTemplate { + """The template purpose.""" + about: String + """The suggested assignees.""" + assignees( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserConnection! + """The suggested issue body.""" + body: String + """The template filename.""" + filename: String! + """The suggested issue labels""" + labels( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for labels returned from the connection.""" + orderBy: LabelOrder = {direction: ASC, field: CREATED_AT} + ): LabelConnection + """The template name.""" + name: String! + """The suggested issue title.""" + title: String + """The suggested issue type""" + type: IssueType +} + +"""The connection type for IssueTimelineItem.""" +type IssueTimelineConnection { + """A list of edges.""" + edges: [IssueTimelineItemEdge] + """A list of nodes.""" + nodes: [IssueTimelineItem] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An item in an issue timeline""" +union IssueTimelineItem = AssignedEvent | ClosedEvent | Commit | CrossReferencedEvent | DemilestonedEvent | IssueComment | LabeledEvent | LockedEvent | MilestonedEvent | ReferencedEvent | RenamedTitleEvent | ReopenedEvent | SubscribedEvent | TransferredEvent | UnassignedEvent | UnlabeledEvent | UnlockedEvent | UnsubscribedEvent | UserBlockedEvent + +"""An edge in a connection.""" +type IssueTimelineItemEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: IssueTimelineItem +} + +"""An item in an issue timeline""" +union IssueTimelineItems = AddedToProjectEvent | AssignedEvent | ClosedEvent | CommentDeletedEvent | ConnectedEvent | ConvertedNoteToIssueEvent | ConvertedToDiscussionEvent | CrossReferencedEvent | DemilestonedEvent | DisconnectedEvent | IssueComment | IssueTypeAddedEvent | IssueTypeChangedEvent | IssueTypeRemovedEvent | LabeledEvent | LockedEvent | MarkedAsDuplicateEvent | MentionedEvent | MilestonedEvent | MovedColumnsInProjectEvent | ParentIssueAddedEvent | ParentIssueRemovedEvent | PinnedEvent | ReferencedEvent | RemovedFromProjectEvent | RenamedTitleEvent | ReopenedEvent | SubIssueAddedEvent | SubIssueRemovedEvent | SubscribedEvent | TransferredEvent | UnassignedEvent | UnlabeledEvent | UnlockedEvent | UnmarkedAsDuplicateEvent | UnpinnedEvent | UnsubscribedEvent | UserBlockedEvent + +"""The connection type for IssueTimelineItems.""" +type IssueTimelineItemsConnection { + """A list of edges.""" + edges: [IssueTimelineItemsEdge] + """ + Identifies the count of items after applying `before` and `after` filters. + """ + filteredCount: Int! + """A list of nodes.""" + nodes: [IssueTimelineItems] + """ + Identifies the count of items after applying `before`/`after` filters and `first`/`last`/`skip` slicing. + """ + pageCount: Int! + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! + """Identifies the date and time when the timeline was last updated.""" + updatedAt: DateTime! +} + +"""An edge in a connection.""" +type IssueTimelineItemsEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: IssueTimelineItems +} + +"""The possible item types found in a timeline.""" +enum IssueTimelineItemsItemType { + """ + Represents a 'added_to_project' event on a given issue or pull request. + """ + ADDED_TO_PROJECT_EVENT + """Represents an 'assigned' event on any assignable object.""" + ASSIGNED_EVENT + """Represents a 'closed' event on any `Closable`.""" + CLOSED_EVENT + """Represents a 'comment_deleted' event on a given issue or pull request.""" + COMMENT_DELETED_EVENT + """Represents a 'connected' event on a given issue or pull request.""" + CONNECTED_EVENT + """ + Represents a 'converted_note_to_issue' event on a given issue or pull request. + """ + CONVERTED_NOTE_TO_ISSUE_EVENT + """Represents a 'converted_to_discussion' event on a given issue.""" + CONVERTED_TO_DISCUSSION_EVENT + """Represents a mention made by one issue or pull request to another.""" + CROSS_REFERENCED_EVENT + """Represents a 'demilestoned' event on a given issue or pull request.""" + DEMILESTONED_EVENT + """Represents a 'disconnected' event on a given issue or pull request.""" + DISCONNECTED_EVENT + """Represents a comment on an Issue.""" + ISSUE_COMMENT + """Represents a 'issue_type_added' event on a given issue.""" + ISSUE_TYPE_ADDED_EVENT + """Represents a 'issue_type_changed' event on a given issue.""" + ISSUE_TYPE_CHANGED_EVENT + """Represents a 'issue_type_removed' event on a given issue.""" + ISSUE_TYPE_REMOVED_EVENT + """Represents a 'labeled' event on a given issue or pull request.""" + LABELED_EVENT + """Represents a 'locked' event on a given issue or pull request.""" + LOCKED_EVENT + """ + Represents a 'marked_as_duplicate' event on a given issue or pull request. + """ + MARKED_AS_DUPLICATE_EVENT + """Represents a 'mentioned' event on a given issue or pull request.""" + MENTIONED_EVENT + """Represents a 'milestoned' event on a given issue or pull request.""" + MILESTONED_EVENT + """ + Represents a 'moved_columns_in_project' event on a given issue or pull request. + """ + MOVED_COLUMNS_IN_PROJECT_EVENT + """Represents a 'parent_issue_added' event on a given issue.""" + PARENT_ISSUE_ADDED_EVENT + """Represents a 'parent_issue_removed' event on a given issue.""" + PARENT_ISSUE_REMOVED_EVENT + """Represents a 'pinned' event on a given issue or pull request.""" + PINNED_EVENT + """Represents a 'referenced' event on a given `ReferencedSubject`.""" + REFERENCED_EVENT + """ + Represents a 'removed_from_project' event on a given issue or pull request. + """ + REMOVED_FROM_PROJECT_EVENT + """Represents a 'renamed' event on a given issue or pull request""" + RENAMED_TITLE_EVENT + """Represents a 'reopened' event on any `Closable`.""" + REOPENED_EVENT + """Represents a 'subscribed' event on a given `Subscribable`.""" + SUBSCRIBED_EVENT + """Represents a 'sub_issue_added' event on a given issue.""" + SUB_ISSUE_ADDED_EVENT + """Represents a 'sub_issue_removed' event on a given issue.""" + SUB_ISSUE_REMOVED_EVENT + """Represents a 'transferred' event on a given issue or pull request.""" + TRANSFERRED_EVENT + """Represents an 'unassigned' event on any assignable object.""" + UNASSIGNED_EVENT + """Represents an 'unlabeled' event on a given issue or pull request.""" + UNLABELED_EVENT + """Represents an 'unlocked' event on a given issue or pull request.""" + UNLOCKED_EVENT + """ + Represents an 'unmarked_as_duplicate' event on a given issue or pull request. + """ + UNMARKED_AS_DUPLICATE_EVENT + """Represents an 'unpinned' event on a given issue or pull request.""" + UNPINNED_EVENT + """Represents an 'unsubscribed' event on a given `Subscribable`.""" + UNSUBSCRIBED_EVENT + """Represents a 'user_blocked' event on a given user.""" + USER_BLOCKED_EVENT +} + +"""Represents the type of Issue.""" +type IssueType implements Node { + """The issue type's color.""" + color: IssueTypeColor! + """The issue type's description.""" + description: String + """The Node ID of the IssueType object""" + id: ID! + """The issue type's enabled state.""" + isEnabled: Boolean! + """Whether the issue type is publicly visible.""" + isPrivate: Boolean! @deprecated(reason: "Private issue types are being deprecated and can no longer be created. Removal on 2025-04-01 UTC.") + """The issues with this issue type in the given repository.""" + issues( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Filtering options for issues returned from the connection.""" + filterBy: IssueFilters + """Returns the first _n_ elements from the list.""" + first: Int + """A list of label names to filter the pull requests by.""" + labels: [String!] + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for issues returned from the connection.""" + orderBy: IssueOrder + """Target repository to load the issues from.""" + repositoryId: ID! + """A list of states to filter the issues by.""" + states: [IssueState!] + ): IssueConnection! + """The issue type's name.""" + name: String! +} + +"""Represents a 'issue_type_added' event on a given issue.""" +type IssueTypeAddedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the IssueTypeAddedEvent object""" + id: ID! + """The issue type added.""" + issueType: IssueType +} + +"""Represents a 'issue_type_changed' event on a given issue.""" +type IssueTypeChangedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the IssueTypeChangedEvent object""" + id: ID! + """The issue type added.""" + issueType: IssueType + """The issue type removed.""" + prevIssueType: IssueType +} + +"""The possible color for an issue type""" +enum IssueTypeColor { + """blue""" + BLUE + """gray""" + GRAY + """green""" + GREEN + """orange""" + ORANGE + """pink""" + PINK + """purple""" + PURPLE + """red""" + RED + """yellow""" + YELLOW +} + +"""The connection type for IssueType.""" +type IssueTypeConnection { + """A list of edges.""" + edges: [IssueTypeEdge] + """A list of nodes.""" + nodes: [IssueType] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type IssueTypeEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: IssueType +} + +"""Ordering options for issue types connections""" +input IssueTypeOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order issue types by.""" + field: IssueTypeOrderField! +} + +"""Properties by which issue type connections can be ordered.""" +enum IssueTypeOrderField { + """Order issue types by creation time""" + CREATED_AT + """Order issue types by name""" + NAME +} + +"""Represents a 'issue_type_removed' event on a given issue.""" +type IssueTypeRemovedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the IssueTypeRemovedEvent object""" + id: ID! + """The issue type removed.""" + issueType: IssueType +} + +"""Represents a user signing up for a GitHub account.""" +type JoinedGitHubContribution implements Contribution { + """ + Whether this contribution is associated with a record you do not have access to. For + example, your own 'first issue' contribution may have been made on a repository you can no + longer access. + """ + isRestricted: Boolean! + """When this contribution was made.""" + occurredAt: DateTime! + """The HTTP path for this contribution.""" + resourcePath: URI! + """The HTTP URL for this contribution.""" + url: URI! + """The user who made this contribution.""" + user: User! +} + +""" +A label for categorizing Issues, Pull Requests, Milestones, or Discussions with a given Repository. +""" +type Label implements Node { + """Identifies the label color.""" + color: String! + """Identifies the date and time when the label was created.""" + createdAt: DateTime + """A brief description of this label.""" + description: String + """The Node ID of the Label object""" + id: ID! + """Indicates whether or not this is a default label.""" + isDefault: Boolean! + """A list of issues associated with this label.""" + issues( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Filtering options for issues returned from the connection.""" + filterBy: IssueFilters + """Returns the first _n_ elements from the list.""" + first: Int + """A list of label names to filter the pull requests by.""" + labels: [String!] + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for issues returned from the connection.""" + orderBy: IssueOrder + """A list of states to filter the issues by.""" + states: [IssueState!] + ): IssueConnection! + """Identifies the label name.""" + name: String! + """A list of pull requests associated with this label.""" + pullRequests( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """The base ref name to filter the pull requests by.""" + baseRefName: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """The head ref name to filter the pull requests by.""" + headRefName: String + """A list of label names to filter the pull requests by.""" + labels: [String!] + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for pull requests returned from the connection.""" + orderBy: IssueOrder + """A list of states to filter the pull requests by.""" + states: [PullRequestState!] + ): PullRequestConnection! + """The repository associated with this label.""" + repository: Repository! + """The HTTP path for this label.""" + resourcePath: URI! + """Identifies the date and time when the label was last updated.""" + updatedAt: DateTime + """The HTTP URL for this label.""" + url: URI! +} + +"""The connection type for Label.""" +type LabelConnection { + """A list of edges.""" + edges: [LabelEdge] + """A list of nodes.""" + nodes: [Label] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type LabelEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Label +} + +"""Ways in which lists of labels can be ordered upon return.""" +input LabelOrder { + """The direction in which to order labels by the specified field.""" + direction: OrderDirection! + """The field in which to order labels by.""" + field: LabelOrderField! +} + +"""Properties by which label connections can be ordered.""" +enum LabelOrderField { + """Order labels by creation time""" + CREATED_AT + """Order labels by name """ + NAME +} + +"""An object that can have labels assigned to it.""" +interface Labelable { + """A list of labels associated with the object.""" + labels( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for labels returned from the connection.""" + orderBy: LabelOrder = {direction: ASC, field: CREATED_AT} + ): LabelConnection + """Indicates if the viewer can edit labels for this object.""" + viewerCanLabel: Boolean! +} + +"""Represents a 'labeled' event on a given issue or pull request.""" +type LabeledEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the LabeledEvent object""" + id: ID! + """Identifies the label associated with the 'labeled' event.""" + label: Label! + """Identifies the `Labelable` associated with the event.""" + labelable: Labelable! +} + +"""Represents a given language found in repositories.""" +type Language implements Node { + """The color defined for the current language.""" + color: String + """The Node ID of the Language object""" + id: ID! + """The name of the current language.""" + name: String! +} + +"""A list of languages associated with the parent.""" +type LanguageConnection { + """A list of edges.""" + edges: [LanguageEdge] + """A list of nodes.""" + nodes: [Language] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! + """The total size in bytes of files written in that language.""" + totalSize: Int! +} + +"""Represents the language of a repository.""" +type LanguageEdge { + cursor: String! + node: Language! + """The number of bytes of code written in the language.""" + size: Int! +} + +"""Ordering options for language connections.""" +input LanguageOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order languages by.""" + field: LanguageOrderField! +} + +"""Properties by which language connections can be ordered.""" +enum LanguageOrderField { + """Order languages by the size of all files containing the language""" + SIZE +} + +"""A repository's open source license""" +type License implements Node { + """The full text of the license""" + body: String! + """The conditions set by the license""" + conditions: [LicenseRule]! + """A human-readable description of the license""" + description: String + """Whether the license should be featured""" + featured: Boolean! + """Whether the license should be displayed in license pickers""" + hidden: Boolean! + """The Node ID of the License object""" + id: ID! + """Instructions on how to implement the license""" + implementation: String + """The lowercased SPDX ID of the license""" + key: String! + """The limitations set by the license""" + limitations: [LicenseRule]! + """The license full name specified by """ + name: String! + """Customary short name if applicable (e.g, GPLv3)""" + nickname: String + """The permissions set by the license""" + permissions: [LicenseRule]! + """ + Whether the license is a pseudo-license placeholder (e.g., other, no-license) + """ + pseudoLicense: Boolean! + """Short identifier specified by """ + spdxId: String + """URL to the license on """ + url: URI +} + +"""Describes a License's conditions, permissions, and limitations""" +type LicenseRule { + """A description of the rule""" + description: String! + """The machine-readable rule key""" + key: String! + """The human-readable rule label""" + label: String! +} + +"""Autogenerated input type of LinkProjectV2ToRepository""" +input LinkProjectV2ToRepositoryInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the project to link to the repository.""" + projectId: ID! + """The ID of the repository to link to the project.""" + repositoryId: ID! +} + +"""Autogenerated return type of LinkProjectV2ToRepository.""" +type LinkProjectV2ToRepositoryPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The repository the project is linked to.""" + repository: Repository +} + +"""Autogenerated input type of LinkProjectV2ToTeam""" +input LinkProjectV2ToTeamInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the project to link to the team.""" + projectId: ID! + """The ID of the team to link to the project.""" + teamId: ID! +} + +"""Autogenerated return type of LinkProjectV2ToTeam.""" +type LinkProjectV2ToTeamPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The team the project is linked to""" + team: Team +} + +"""Autogenerated input type of LinkRepositoryToProject""" +input LinkRepositoryToProjectInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the Project to link to a Repository""" + projectId: ID! + """The ID of the Repository to link to a Project.""" + repositoryId: ID! +} + +"""Autogenerated return type of LinkRepositoryToProject.""" +type LinkRepositoryToProjectPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The linked Project.""" + project: Project + """The linked Repository.""" + repository: Repository +} + +"""A branch linked to an issue.""" +type LinkedBranch implements Node { + """The Node ID of the LinkedBranch object""" + id: ID! + """The branch's ref.""" + ref: Ref +} + +"""A list of branches linked to an issue.""" +type LinkedBranchConnection { + """A list of edges.""" + edges: [LinkedBranchEdge] + """A list of nodes.""" + nodes: [LinkedBranch] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type LinkedBranchEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: LinkedBranch +} + +"""Autogenerated input type of LockLockable""" +input LockLockableInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """A reason for why the item will be locked.""" + lockReason: LockReason + """ID of the item to be locked.""" + lockableId: ID! +} + +"""Autogenerated return type of LockLockable.""" +type LockLockablePayload { + """Identifies the actor who performed the event.""" + actor: Actor + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The item that was locked.""" + lockedRecord: Lockable +} + +"""The possible reasons that an issue or pull request was locked.""" +enum LockReason { + """ + The issue or pull request was locked because the conversation was off-topic. + """ + OFF_TOPIC + """ + The issue or pull request was locked because the conversation was resolved. + """ + RESOLVED + """ + The issue or pull request was locked because the conversation was spam. + """ + SPAM + """ + The issue or pull request was locked because the conversation was too heated. + """ + TOO_HEATED +} + +"""An object that can be locked.""" +interface Lockable { + """Reason that the conversation was locked.""" + activeLockReason: LockReason + """`true` if the object is locked""" + locked: Boolean! +} + +"""Represents a 'locked' event on a given issue or pull request.""" +type LockedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the LockedEvent object""" + id: ID! + """Reason that the conversation was locked (optional).""" + lockReason: LockReason + """Object that was locked.""" + lockable: Lockable! +} + +"""A placeholder user for attribution of imported data on GitHub.""" +type Mannequin implements Actor & Node & UniformResourceLocatable { + """A URL pointing to the GitHub App's public avatar.""" + avatarUrl( + """The size of the resulting square image.""" + size: Int + ): URI! + """The user that has claimed the data attributed to this mannequin.""" + claimant: User + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int + """The mannequin's email on the source instance.""" + email: String + """The Node ID of the Mannequin object""" + id: ID! + """The username of the actor.""" + login: String! + """The HTML path to this resource.""" + resourcePath: URI! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The URL to this resource.""" + url: URI! +} + +"""A list of mannequins.""" +type MannequinConnection { + """A list of edges.""" + edges: [MannequinEdge] + """A list of nodes.""" + nodes: [Mannequin] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""Represents a mannequin.""" +type MannequinEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Mannequin +} + +"""Ordering options for mannequins.""" +input MannequinOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order mannequins by.""" + field: MannequinOrderField! +} + +"""Properties by which mannequins can be ordered.""" +enum MannequinOrderField { + """Order mannequins why when they were created.""" + CREATED_AT + """Order mannequins alphabetically by their source login.""" + LOGIN +} + +"""Autogenerated input type of MarkDiscussionCommentAsAnswer""" +input MarkDiscussionCommentAsAnswerInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the discussion comment to mark as an answer.""" + id: ID! +} + +"""Autogenerated return type of MarkDiscussionCommentAsAnswer.""" +type MarkDiscussionCommentAsAnswerPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The discussion that includes the chosen comment.""" + discussion: Discussion +} + +"""Autogenerated input type of MarkFileAsViewed""" +input MarkFileAsViewedInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The path of the file to mark as viewed""" + path: String! + """The Node ID of the pull request.""" + pullRequestId: ID! +} + +"""Autogenerated return type of MarkFileAsViewed.""" +type MarkFileAsViewedPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated pull request.""" + pullRequest: PullRequest +} + +"""Autogenerated input type of MarkProjectV2AsTemplate""" +input MarkProjectV2AsTemplateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the Project to mark as a template.""" + projectId: ID! +} + +"""Autogenerated return type of MarkProjectV2AsTemplate.""" +type MarkProjectV2AsTemplatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The project.""" + projectV2: ProjectV2 +} + +"""Autogenerated input type of MarkPullRequestReadyForReview""" +input MarkPullRequestReadyForReviewInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ID of the pull request to be marked as ready for review.""" + pullRequestId: ID! +} + +"""Autogenerated return type of MarkPullRequestReadyForReview.""" +type MarkPullRequestReadyForReviewPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The pull request that is ready for review.""" + pullRequest: PullRequest +} + +""" +Represents a 'marked_as_duplicate' event on a given issue or pull request. +""" +type MarkedAsDuplicateEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """ + The authoritative issue or pull request which has been duplicated by another. + """ + canonical: IssueOrPullRequest + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """ + The issue or pull request which has been marked as a duplicate of another. + """ + duplicate: IssueOrPullRequest + """The Node ID of the MarkedAsDuplicateEvent object""" + id: ID! + """Canonical and duplicate belong to different repositories.""" + isCrossRepository: Boolean! +} + +"""A public description of a Marketplace category.""" +type MarketplaceCategory implements Node { + """The category's description.""" + description: String + """ + The technical description of how apps listed in this category work with GitHub. + """ + howItWorks: String + """The Node ID of the MarketplaceCategory object""" + id: ID! + """The category's name.""" + name: String! + """How many Marketplace listings have this as their primary category.""" + primaryListingCount: Int! + """The HTTP path for this Marketplace category.""" + resourcePath: URI! + """How many Marketplace listings have this as their secondary category.""" + secondaryListingCount: Int! + """The short name of the category used in its URL.""" + slug: String! + """The HTTP URL for this Marketplace category.""" + url: URI! +} + +"""A listing in the GitHub integration marketplace.""" +type MarketplaceListing implements Node { + """The GitHub App this listing represents.""" + app: App + """URL to the listing owner's company site.""" + companyUrl: URI + """ + The HTTP path for configuring access to the listing's integration or OAuth app + """ + configurationResourcePath: URI! + """ + The HTTP URL for configuring access to the listing's integration or OAuth app + """ + configurationUrl: URI! + """URL to the listing's documentation.""" + documentationUrl: URI + """The listing's detailed description.""" + extendedDescription: String + """The listing's detailed description rendered to HTML.""" + extendedDescriptionHTML: HTML! + """The listing's introductory description.""" + fullDescription: String! + """The listing's introductory description rendered to HTML.""" + fullDescriptionHTML: HTML! + """Does this listing have any plans with a free trial?""" + hasPublishedFreeTrialPlans: Boolean! + """Does this listing have a terms of service link?""" + hasTermsOfService: Boolean! + """Whether the creator of the app is a verified org""" + hasVerifiedOwner: Boolean! + """A technical description of how this app works with GitHub.""" + howItWorks: String + """The listing's technical description rendered to HTML.""" + howItWorksHTML: HTML! + """The Node ID of the MarketplaceListing object""" + id: ID! + """URL to install the product to the viewer's account or organization.""" + installationUrl: URI + """Whether this listing's app has been installed for the current viewer""" + installedForViewer: Boolean! + """Whether this listing has been removed from the Marketplace.""" + isArchived: Boolean! + """ + Whether this listing is still an editable draft that has not been submitted + for review and is not publicly visible in the Marketplace. + """ + isDraft: Boolean! + """ + Whether the product this listing represents is available as part of a paid plan. + """ + isPaid: Boolean! + """Whether this listing has been approved for display in the Marketplace.""" + isPublic: Boolean! + """ + Whether this listing has been rejected by GitHub for display in the Marketplace. + """ + isRejected: Boolean! + """ + Whether this listing has been approved for unverified display in the Marketplace. + """ + isUnverified: Boolean! + """ + Whether this draft listing has been submitted for review for approval to be unverified in the Marketplace. + """ + isUnverifiedPending: Boolean! + """ + Whether this draft listing has been submitted for review from GitHub for approval to be verified in the Marketplace. + """ + isVerificationPendingFromDraft: Boolean! + """ + Whether this unverified listing has been submitted for review from GitHub for approval to be verified in the Marketplace. + """ + isVerificationPendingFromUnverified: Boolean! + """ + Whether this listing has been approved for verified display in the Marketplace. + """ + isVerified: Boolean! + """The hex color code, without the leading '#', for the logo background.""" + logoBackgroundColor: String! + """URL for the listing's logo image.""" + logoUrl( + """The size in pixels of the resulting square image.""" + size: Int = 400 + ): URI + """The listing's full name.""" + name: String! + """ + The listing's very short description without a trailing period or ampersands. + """ + normalizedShortDescription: String! + """URL to the listing's detailed pricing.""" + pricingUrl: URI + """The category that best describes the listing.""" + primaryCategory: MarketplaceCategory! + """ + URL to the listing's privacy policy, may return an empty string for listings that do not require a privacy policy URL. + """ + privacyPolicyUrl: URI! + """The HTTP path for the Marketplace listing.""" + resourcePath: URI! + """The URLs for the listing's screenshots.""" + screenshotUrls: [String]! + """An alternate category that describes the listing.""" + secondaryCategory: MarketplaceCategory + """The listing's very short description.""" + shortDescription: String! + """The short name of the listing used in its URL.""" + slug: String! + """URL to the listing's status page.""" + statusUrl: URI + """An email address for support for this listing's app.""" + supportEmail: String + """ + Either a URL or an email address for support for this listing's app, may + return an empty string for listings that do not require a support URL. + """ + supportUrl: URI! + """URL to the listing's terms of service.""" + termsOfServiceUrl: URI + """The HTTP URL for the Marketplace listing.""" + url: URI! + """Can the current viewer add plans for this Marketplace listing.""" + viewerCanAddPlans: Boolean! + """Can the current viewer approve this Marketplace listing.""" + viewerCanApprove: Boolean! + """Can the current viewer delist this Marketplace listing.""" + viewerCanDelist: Boolean! + """Can the current viewer edit this Marketplace listing.""" + viewerCanEdit: Boolean! + """ + Can the current viewer edit the primary and secondary category of this + Marketplace listing. + """ + viewerCanEditCategories: Boolean! + """Can the current viewer edit the plans for this Marketplace listing.""" + viewerCanEditPlans: Boolean! + """ + Can the current viewer return this Marketplace listing to draft state + so it becomes editable again. + """ + viewerCanRedraft: Boolean! + """ + Can the current viewer reject this Marketplace listing by returning it to + an editable draft state or rejecting it entirely. + """ + viewerCanReject: Boolean! + """ + Can the current viewer request this listing be reviewed for display in + the Marketplace as verified. + """ + viewerCanRequestApproval: Boolean! + """ + Indicates whether the current user has an active subscription to this Marketplace listing. + """ + viewerHasPurchased: Boolean! + """ + Indicates if the current user has purchased a subscription to this Marketplace listing + for all of the organizations the user owns. + """ + viewerHasPurchasedForAllOrganizations: Boolean! + """ + Does the current viewer role allow them to administer this Marketplace listing. + """ + viewerIsListingAdmin: Boolean! +} + +"""Look up Marketplace Listings""" +type MarketplaceListingConnection { + """A list of edges.""" + edges: [MarketplaceListingEdge] + """A list of nodes.""" + nodes: [MarketplaceListing] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type MarketplaceListingEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: MarketplaceListing +} + +""" +Prevent commits that include file paths that exceed the specified character limit from being pushed to the commit graph. +""" +type MaxFilePathLengthParameters { + """The maximum amount of characters allowed in file paths.""" + maxFilePathLength: Int! +} + +""" +Prevent commits that include file paths that exceed the specified character limit from being pushed to the commit graph. +""" +input MaxFilePathLengthParametersInput { + """The maximum amount of characters allowed in file paths.""" + maxFilePathLength: Int! +} + +""" +Prevent commits with individual files that exceed the specified limit from being pushed to the commit graph. +""" +type MaxFileSizeParameters { + """ + The maximum file size allowed in megabytes. This limit does not apply to Git Large File Storage (Git LFS). + """ + maxFileSize: Int! +} + +""" +Prevent commits with individual files that exceed the specified limit from being pushed to the commit graph. +""" +input MaxFileSizeParametersInput { + """ + The maximum file size allowed in megabytes. This limit does not apply to Git Large File Storage (Git LFS). + """ + maxFileSize: Int! +} + +"""Represents a member feature request notification""" +type MemberFeatureRequestNotification implements Node { + """ + Represents member feature request body containing entity name and the number of feature requests + """ + body: String! + """The Node ID of the MemberFeatureRequestNotification object""" + id: ID! + """Represents member feature request notification title""" + title: String! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""Entities that have members who can set status messages.""" +interface MemberStatusable { + """ + Get the status messages members of this entity have set that are either public or visible only to the organization. + """ + memberStatuses( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for user statuses returned from the connection.""" + orderBy: UserStatusOrder = {direction: DESC, field: UPDATED_AT} + ): UserStatusConnection! +} + +"""Audit log entry for a members_can_delete_repos.clear event.""" +type MembersCanDeleteReposClearAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for this enterprise.""" + enterpriseResourcePath: URI + """The slug of the enterprise.""" + enterpriseSlug: String + """The HTTP URL for this enterprise.""" + enterpriseUrl: URI + """The Node ID of the MembersCanDeleteReposClearAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a members_can_delete_repos.disable event.""" +type MembersCanDeleteReposDisableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for this enterprise.""" + enterpriseResourcePath: URI + """The slug of the enterprise.""" + enterpriseSlug: String + """The HTTP URL for this enterprise.""" + enterpriseUrl: URI + """The Node ID of the MembersCanDeleteReposDisableAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a members_can_delete_repos.enable event.""" +type MembersCanDeleteReposEnableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for this enterprise.""" + enterpriseResourcePath: URI + """The slug of the enterprise.""" + enterpriseSlug: String + """The HTTP URL for this enterprise.""" + enterpriseUrl: URI + """The Node ID of the MembersCanDeleteReposEnableAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Represents a 'mentioned' event on a given issue or pull request.""" +type MentionedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int + """The Node ID of the MentionedEvent object""" + id: ID! +} + +"""Autogenerated input type of MergeBranch""" +input MergeBranchInput { + """The email address to associate with this commit.""" + authorEmail: String + """ + The name of the base branch that the provided head will be merged into. + """ + base: String! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + Message to use for the merge commit. If omitted, a default will be used. + """ + commitMessage: String + """ + The head to merge into the base branch. This can be a branch name or a commit GitObjectID. + """ + head: String! + """ + The Node ID of the Repository containing the base branch that will be modified. + """ + repositoryId: ID! +} + +"""Autogenerated return type of MergeBranch.""" +type MergeBranchPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The resulting merge Commit.""" + mergeCommit: Commit +} + +"""The possible default commit messages for merges.""" +enum MergeCommitMessage { + """Default to a blank commit message.""" + BLANK + """Default to the pull request's body.""" + PR_BODY + """Default to the pull request's title.""" + PR_TITLE +} + +"""The possible default commit titles for merges.""" +enum MergeCommitTitle { + """ + Default to the classic title for a merge message (e.g., Merge pull request #123 from branch-name). + """ + MERGE_MESSAGE + """Default to the pull request's title.""" + PR_TITLE +} + +"""Autogenerated input type of MergePullRequest""" +input MergePullRequestInput { + """The email address to associate with this merge.""" + authorEmail: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + Commit body to use for the merge commit; if omitted, a default message will be used + """ + commitBody: String + """ + Commit headline to use for the merge commit; if omitted, a default message will be used. + """ + commitHeadline: String + """ + OID that the pull request head ref must match to allow merge; if omitted, no check is performed. + """ + expectedHeadOid: GitObjectID + """The merge method to use. If omitted, defaults to 'MERGE'""" + mergeMethod: PullRequestMergeMethod = MERGE + """ID of the pull request to be merged.""" + pullRequestId: ID! +} + +"""Autogenerated return type of MergePullRequest.""" +type MergePullRequestPayload { + """Identifies the actor who performed the event.""" + actor: Actor + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The pull request that was merged.""" + pullRequest: PullRequest +} + +""" +The queue of pull request entries to be merged into a protected branch in a repository. +""" +type MergeQueue implements Node { + """The configuration for this merge queue""" + configuration: MergeQueueConfiguration + """The entries in the queue""" + entries( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): MergeQueueEntryConnection + """The Node ID of the MergeQueue object""" + id: ID! + """ + The estimated time in seconds until a newly added entry would be merged + """ + nextEntryEstimatedTimeToMerge: Int + """The repository this merge queue belongs to""" + repository: Repository + """The HTTP path for this merge queue""" + resourcePath: URI! + """The HTTP URL for this merge queue""" + url: URI! +} + +"""Configuration for a MergeQueue""" +type MergeQueueConfiguration { + """ + The amount of time in minutes to wait for a check response before considering it a failure. + """ + checkResponseTimeout: Int + """The maximum number of entries to build at once.""" + maximumEntriesToBuild: Int + """The maximum number of entries to merge at once.""" + maximumEntriesToMerge: Int + """The merge method to use for this queue.""" + mergeMethod: PullRequestMergeMethod + """The strategy to use when merging entries.""" + mergingStrategy: MergeQueueMergingStrategy + """The minimum number of entries required to merge at once.""" + minimumEntriesToMerge: Int + """ + The amount of time in minutes to wait before ignoring the minumum number of + entries in the queue requirement and merging a collection of entries + """ + minimumEntriesToMergeWaitTime: Int +} + +"""Entries in a MergeQueue""" +type MergeQueueEntry implements Node { + """The base commit for this entry""" + baseCommit: Commit + """The date and time this entry was added to the merge queue""" + enqueuedAt: DateTime! + """The actor that enqueued this entry""" + enqueuer: Actor! + """The estimated time in seconds until this entry will be merged""" + estimatedTimeToMerge: Int + """The head commit for this entry""" + headCommit: Commit + """The Node ID of the MergeQueueEntry object""" + id: ID! + """Whether this pull request should jump the queue""" + jump: Boolean! + """The merge queue that this entry belongs to""" + mergeQueue: MergeQueue + """The position of this entry in the queue""" + position: Int! + """The pull request that will be added to a merge group""" + pullRequest: PullRequest + """Does this pull request need to be deployed on its own""" + solo: Boolean! + """The state of this entry in the queue""" + state: MergeQueueEntryState! +} + +"""The connection type for MergeQueueEntry.""" +type MergeQueueEntryConnection { + """A list of edges.""" + edges: [MergeQueueEntryEdge] + """A list of nodes.""" + nodes: [MergeQueueEntry] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type MergeQueueEntryEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: MergeQueueEntry +} + +"""The possible states for a merge queue entry.""" +enum MergeQueueEntryState { + """The entry is currently waiting for checks to pass.""" + AWAITING_CHECKS + """The entry is currently locked.""" + LOCKED + """The entry is currently mergeable.""" + MERGEABLE + """The entry is currently queued.""" + QUEUED + """The entry is currently unmergeable.""" + UNMERGEABLE +} + +""" +When set to ALLGREEN, the merge commit created by merge queue for each PR in the +group must pass all required checks to merge. When set to HEADGREEN, only the +commit at the head of the merge group, i.e. the commit containing changes from +all of the PRs in the group, must pass its required checks to merge. +""" +enum MergeQueueGroupingStrategy { + """ + The merge commit created by merge queue for each PR in the group must pass all required checks to merge + """ + ALLGREEN + """ + Only the commit at the head of the merge group must pass its required checks to merge. + """ + HEADGREEN +} + +"""Method to use when merging changes from queued pull requests.""" +enum MergeQueueMergeMethod { + """Merge commit""" + MERGE + """Rebase and merge""" + REBASE + """Squash and merge""" + SQUASH +} + +"""The possible merging strategies for a merge queue.""" +enum MergeQueueMergingStrategy { + """Entries only allowed to merge if they are passing.""" + ALLGREEN + """Failing Entires are allowed to merge if they are with a passing entry.""" + HEADGREEN +} + +"""Merges must be performed via a merge queue.""" +type MergeQueueParameters { + """ + Maximum time for a required status check to report a conclusion. After this + much time has elapsed, checks that have not reported a conclusion will be + assumed to have failed + """ + checkResponseTimeoutMinutes: Int! + """ + When set to ALLGREEN, the merge commit created by merge queue for each PR in + the group must pass all required checks to merge. When set to HEADGREEN, only + the commit at the head of the merge group, i.e. the commit containing changes + from all of the PRs in the group, must pass its required checks to merge. + """ + groupingStrategy: MergeQueueGroupingStrategy! + """ + Limit the number of queued pull requests requesting checks and workflow runs at the same time. + """ + maxEntriesToBuild: Int! + """The maximum number of PRs that will be merged together in a group.""" + maxEntriesToMerge: Int! + """Method to use when merging changes from queued pull requests.""" + mergeMethod: MergeQueueMergeMethod! + """The minimum number of PRs that will be merged together in a group.""" + minEntriesToMerge: Int! + """ + The time merge queue should wait after the first PR is added to the queue for + the minimum group size to be met. After this time has elapsed, the minimum + group size will be ignored and a smaller group will be merged. + """ + minEntriesToMergeWaitMinutes: Int! +} + +"""Merges must be performed via a merge queue.""" +input MergeQueueParametersInput { + """ + Maximum time for a required status check to report a conclusion. After this + much time has elapsed, checks that have not reported a conclusion will be + assumed to have failed + """ + checkResponseTimeoutMinutes: Int! + """ + When set to ALLGREEN, the merge commit created by merge queue for each PR in + the group must pass all required checks to merge. When set to HEADGREEN, only + the commit at the head of the merge group, i.e. the commit containing changes + from all of the PRs in the group, must pass its required checks to merge. + """ + groupingStrategy: MergeQueueGroupingStrategy! + """ + Limit the number of queued pull requests requesting checks and workflow runs at the same time. + """ + maxEntriesToBuild: Int! + """The maximum number of PRs that will be merged together in a group.""" + maxEntriesToMerge: Int! + """Method to use when merging changes from queued pull requests.""" + mergeMethod: MergeQueueMergeMethod! + """The minimum number of PRs that will be merged together in a group.""" + minEntriesToMerge: Int! + """ + The time merge queue should wait after the first PR is added to the queue for + the minimum group size to be met. After this time has elapsed, the minimum + group size will be ignored and a smaller group will be merged. + """ + minEntriesToMergeWaitMinutes: Int! +} + +"""Detailed status information about a pull request merge.""" +enum MergeStateStatus { + """The head ref is out of date.""" + BEHIND + """The merge is blocked.""" + BLOCKED + """Mergeable and passing commit status.""" + CLEAN + """The merge commit cannot be cleanly created.""" + DIRTY + """The merge is blocked due to the pull request being a draft.""" + DRAFT @deprecated(reason: "DRAFT state will be removed from this enum and `isDraft` should be used instead Use PullRequest.isDraft instead. Removal on 2021-01-01 UTC.") + """Mergeable with passing commit status and pre-receive hooks.""" + HAS_HOOKS + """The state cannot currently be determined.""" + UNKNOWN + """Mergeable with non-passing commit status.""" + UNSTABLE +} + +"""Whether or not a PullRequest can be merged.""" +enum MergeableState { + """The pull request cannot be merged due to merge conflicts.""" + CONFLICTING + """The pull request can be merged.""" + MERGEABLE + """The mergeability of the pull request is still being calculated.""" + UNKNOWN +} + +"""Represents a 'merged' event on a given pull request.""" +type MergedEvent implements Node & UniformResourceLocatable { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the commit associated with the `merge` event.""" + commit: Commit + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the MergedEvent object""" + id: ID! + """Identifies the Ref associated with the `merge` event.""" + mergeRef: Ref + """Identifies the name of the Ref associated with the `merge` event.""" + mergeRefName: String! + """PullRequest referenced by event.""" + pullRequest: PullRequest! + """The HTTP path for this merged event.""" + resourcePath: URI! + """The HTTP URL for this merged event.""" + url: URI! +} + +"""Represents a GitHub Enterprise Importer (GEI) migration.""" +interface Migration { + """The migration flag to continue on error.""" + continueOnError: Boolean! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: String + """The reason the migration failed.""" + failureReason: String + """The Node ID of the Migration object""" + id: ID! + """ + The URL for the migration log (expires 1 day after migration completes). + """ + migrationLogUrl: URI + """The migration source.""" + migrationSource: MigrationSource! + """The target repository name.""" + repositoryName: String! + """ + The migration source URL, for example `https://github.com` or `https://monalisa.ghe.com`. + """ + sourceUrl: URI! + """The migration state.""" + state: MigrationState! + """ + The number of warnings encountered for this migration. To review the warnings, + check the [Migration Log](https://docs.github.com/migrations/using-github-enterprise-importer/completing-your-migration-with-github-enterprise-importer/accessing-your-migration-logs-for-github-enterprise-importer). + """ + warningsCount: Int! +} + +"""A GitHub Enterprise Importer (GEI) migration source.""" +type MigrationSource implements Node { + """The Node ID of the MigrationSource object""" + id: ID! + """The migration source name.""" + name: String! + """The migration source type.""" + type: MigrationSourceType! + """ + The migration source URL, for example `https://github.com` or `https://monalisa.ghe.com`. + """ + url: URI! +} + +""" +Represents the different GitHub Enterprise Importer (GEI) migration sources. +""" +enum MigrationSourceType { + """An Azure DevOps migration source.""" + AZURE_DEVOPS + """A Bitbucket Server migration source.""" + BITBUCKET_SERVER + """A GitHub Migration API source.""" + GITHUB_ARCHIVE +} + +"""The GitHub Enterprise Importer (GEI) migration state.""" +enum MigrationState { + """The migration has failed.""" + FAILED + """The migration has invalid credentials.""" + FAILED_VALIDATION + """The migration is in progress.""" + IN_PROGRESS + """The migration has not started.""" + NOT_STARTED + """The migration needs to have its credentials validated.""" + PENDING_VALIDATION + """The migration has been queued.""" + QUEUED + """The migration has succeeded.""" + SUCCEEDED +} + +"""Represents a Milestone object on a given repository.""" +type Milestone implements Closable & Node & UniformResourceLocatable { + """ + Indicates if the object is closed (definition of closed may depend on type) + """ + closed: Boolean! + """Identifies the date and time when the object was closed.""" + closedAt: DateTime + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the actor who created the milestone.""" + creator: Actor + """Identifies the description of the milestone.""" + description: String + """ + The HTML rendered description of the milestone using GitHub Flavored Markdown. + """ + descriptionHTML: String + """Identifies the due date of the milestone.""" + dueOn: DateTime + """The Node ID of the Milestone object""" + id: ID! + """A list of issues associated with the milestone.""" + issues( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Filtering options for issues returned from the connection.""" + filterBy: IssueFilters + """Returns the first _n_ elements from the list.""" + first: Int + """A list of label names to filter the pull requests by.""" + labels: [String!] + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for issues returned from the connection.""" + orderBy: IssueOrder + """A list of states to filter the issues by.""" + states: [IssueState!] + ): IssueConnection! + """Identifies the number of the milestone.""" + number: Int! + """Identifies the percentage complete for the milestone""" + progressPercentage: Float! + """A list of pull requests associated with the milestone.""" + pullRequests( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """The base ref name to filter the pull requests by.""" + baseRefName: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """The head ref name to filter the pull requests by.""" + headRefName: String + """A list of label names to filter the pull requests by.""" + labels: [String!] + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for pull requests returned from the connection.""" + orderBy: IssueOrder + """A list of states to filter the pull requests by.""" + states: [PullRequestState!] + ): PullRequestConnection! + """The repository associated with this milestone.""" + repository: Repository! + """The HTTP path for this milestone""" + resourcePath: URI! + """Identifies the state of the milestone.""" + state: MilestoneState! + """Identifies the title of the milestone.""" + title: String! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The HTTP URL for this milestone""" + url: URI! + """Indicates if the object can be closed by the viewer.""" + viewerCanClose: Boolean! + """Indicates if the object can be reopened by the viewer.""" + viewerCanReopen: Boolean! +} + +"""The connection type for Milestone.""" +type MilestoneConnection { + """A list of edges.""" + edges: [MilestoneEdge] + """A list of nodes.""" + nodes: [Milestone] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type MilestoneEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Milestone +} + +"""Types that can be inside a Milestone.""" +union MilestoneItem = Issue | PullRequest + +"""Ordering options for milestone connections.""" +input MilestoneOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order milestones by.""" + field: MilestoneOrderField! +} + +"""Properties by which milestone connections can be ordered.""" +enum MilestoneOrderField { + """Order milestones by when they were created.""" + CREATED_AT + """Order milestones by when they are due.""" + DUE_DATE + """Order milestones by their number.""" + NUMBER + """Order milestones by when they were last updated.""" + UPDATED_AT +} + +"""The possible states of a milestone.""" +enum MilestoneState { + """A milestone that has been closed.""" + CLOSED + """A milestone that is still open.""" + OPEN +} + +"""Represents a 'milestoned' event on a given issue or pull request.""" +type MilestonedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the MilestonedEvent object""" + id: ID! + """Identifies the milestone title associated with the 'milestoned' event.""" + milestoneTitle: String! + """Object referenced by event.""" + subject: MilestoneItem! +} + +"""Entities that can be minimized.""" +interface Minimizable { + """Returns whether or not a comment has been minimized.""" + isMinimized: Boolean! + """ + Returns why the comment was minimized. One of `abuse`, `off-topic`, + `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and + formatting of these values differs from the inputs to the `MinimizeComment` mutation. + """ + minimizedReason: String + """Check if the current viewer can minimize this object.""" + viewerCanMinimize: Boolean! +} + +"""Autogenerated input type of MinimizeComment""" +input MinimizeCommentInput { + """The classification of comment""" + classifier: ReportedContentClassifiers! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the subject to modify.""" + subjectId: ID! +} + +"""Autogenerated return type of MinimizeComment.""" +type MinimizeCommentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The comment that was minimized.""" + minimizedComment: Minimizable +} + +"""Autogenerated input type of MoveProjectCard""" +input MoveProjectCardInput { + """ + Place the new card after the card with this id. Pass null to place it at the top. + """ + afterCardId: ID + """The id of the card to move.""" + cardId: ID! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The id of the column to move it into.""" + columnId: ID! +} + +"""Autogenerated return type of MoveProjectCard.""" +type MoveProjectCardPayload { + """The new edge of the moved card.""" + cardEdge: ProjectCardEdge + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated input type of MoveProjectColumn""" +input MoveProjectColumnInput { + """ + Place the new column after the column with this id. Pass null to place it at the front. + """ + afterColumnId: ID + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The id of the column to move.""" + columnId: ID! +} + +"""Autogenerated return type of MoveProjectColumn.""" +type MoveProjectColumnPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The new edge of the moved column.""" + columnEdge: ProjectColumnEdge +} + +""" +Represents a 'moved_columns_in_project' event on a given issue or pull request. +""" +type MovedColumnsInProjectEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The Node ID of the MovedColumnsInProjectEvent object""" + id: ID! + """Column name the issue or pull request was moved from.""" + previousProjectColumnName: String! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Project referenced by event.""" + project: Project @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Project card referenced by this project event.""" + projectCard: ProjectCard @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Column name the issue or pull request was moved to.""" + projectColumnName: String! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") +} + +"""The root query for implementing GraphQL mutations.""" +type Mutation { + """Clear all of a customer's queued migrations""" + abortQueuedMigrations( + """Parameters for AbortQueuedMigrations""" + input: AbortQueuedMigrationsInput! + ): AbortQueuedMigrationsPayload + """Abort a repository migration queued or in progress.""" + abortRepositoryMigration( + """Parameters for AbortRepositoryMigration""" + input: AbortRepositoryMigrationInput! + ): AbortRepositoryMigrationPayload + """ + Accepts a pending invitation for a user to become an administrator of an enterprise. + """ + acceptEnterpriseAdministratorInvitation( + """Parameters for AcceptEnterpriseAdministratorInvitation""" + input: AcceptEnterpriseAdministratorInvitationInput! + ): AcceptEnterpriseAdministratorInvitationPayload + """ + Accepts a pending invitation for a user to become an unaffiliated member of an enterprise. + """ + acceptEnterpriseMemberInvitation( + """Parameters for AcceptEnterpriseMemberInvitation""" + input: AcceptEnterpriseMemberInvitationInput! + ): AcceptEnterpriseMemberInvitationPayload + """Applies a suggested topic to the repository.""" + acceptTopicSuggestion( + """Parameters for AcceptTopicSuggestion""" + input: AcceptTopicSuggestionInput! + ): AcceptTopicSuggestionPayload + """Access user namespace repository for a temporary duration.""" + accessUserNamespaceRepository( + """Parameters for AccessUserNamespaceRepository""" + input: AccessUserNamespaceRepositoryInput! + ): AccessUserNamespaceRepositoryPayload + """Adds assignees to an assignable object.""" + addAssigneesToAssignable( + """Parameters for AddAssigneesToAssignable""" + input: AddAssigneesToAssignableInput! + ): AddAssigneesToAssignablePayload + """Adds a comment to an Issue or Pull Request.""" + addComment( + """Parameters for AddComment""" + input: AddCommentInput! + ): AddCommentPayload + """ + Adds a comment to a Discussion, possibly as a reply to another comment. + """ + addDiscussionComment( + """Parameters for AddDiscussionComment""" + input: AddDiscussionCommentInput! + ): AddDiscussionCommentPayload + """Vote for an option in a discussion poll.""" + addDiscussionPollVote( + """Parameters for AddDiscussionPollVote""" + input: AddDiscussionPollVoteInput! + ): AddDiscussionPollVotePayload + """Adds enterprise members to an organization within the enterprise.""" + addEnterpriseOrganizationMember( + """Parameters for AddEnterpriseOrganizationMember""" + input: AddEnterpriseOrganizationMemberInput! + ): AddEnterpriseOrganizationMemberPayload + """Adds a support entitlement to an enterprise member.""" + addEnterpriseSupportEntitlement( + """Parameters for AddEnterpriseSupportEntitlement""" + input: AddEnterpriseSupportEntitlementInput! + ): AddEnterpriseSupportEntitlementPayload + """Adds labels to a labelable object.""" + addLabelsToLabelable( + """Parameters for AddLabelsToLabelable""" + input: AddLabelsToLabelableInput! + ): AddLabelsToLabelablePayload + """ + Adds a card to a ProjectColumn. Either `contentId` or `note` must be provided but **not** both. + """ + addProjectCard( + """Parameters for AddProjectCard""" + input: AddProjectCardInput! + ): AddProjectCardPayload @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Adds a column to a Project.""" + addProjectColumn( + """Parameters for AddProjectColumn""" + input: AddProjectColumnInput! + ): AddProjectColumnPayload @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Creates a new draft issue and add it to a Project.""" + addProjectV2DraftIssue( + """Parameters for AddProjectV2DraftIssue""" + input: AddProjectV2DraftIssueInput! + ): AddProjectV2DraftIssuePayload + """Links an existing content instance to a Project.""" + addProjectV2ItemById( + """Parameters for AddProjectV2ItemById""" + input: AddProjectV2ItemByIdInput! + ): AddProjectV2ItemByIdPayload + """Adds a review to a Pull Request.""" + addPullRequestReview( + """Parameters for AddPullRequestReview""" + input: AddPullRequestReviewInput! + ): AddPullRequestReviewPayload + """Adds a comment to a review.""" + addPullRequestReviewComment( + """Parameters for AddPullRequestReviewComment""" + input: AddPullRequestReviewCommentInput! + ): AddPullRequestReviewCommentPayload + """Adds a new thread to a pending Pull Request Review.""" + addPullRequestReviewThread( + """Parameters for AddPullRequestReviewThread""" + input: AddPullRequestReviewThreadInput! + ): AddPullRequestReviewThreadPayload + """Adds a reply to an existing Pull Request Review Thread.""" + addPullRequestReviewThreadReply( + """Parameters for AddPullRequestReviewThreadReply""" + input: AddPullRequestReviewThreadReplyInput! + ): AddPullRequestReviewThreadReplyPayload + """Adds a reaction to a subject.""" + addReaction( + """Parameters for AddReaction""" + input: AddReactionInput! + ): AddReactionPayload + """Adds a star to a Starrable.""" + addStar( + """Parameters for AddStar""" + input: AddStarInput! + ): AddStarPayload + """Adds a sub-issue to a given issue""" + addSubIssue( + """Parameters for AddSubIssue""" + input: AddSubIssueInput! + ): AddSubIssuePayload + """Add an upvote to a discussion or discussion comment.""" + addUpvote( + """Parameters for AddUpvote""" + input: AddUpvoteInput! + ): AddUpvotePayload + """Adds a verifiable domain to an owning account.""" + addVerifiableDomain( + """Parameters for AddVerifiableDomain""" + input: AddVerifiableDomainInput! + ): AddVerifiableDomainPayload + """Approve all pending deployments under one or more environments""" + approveDeployments( + """Parameters for ApproveDeployments""" + input: ApproveDeploymentsInput! + ): ApproveDeploymentsPayload + """Approve a verifiable domain for notification delivery.""" + approveVerifiableDomain( + """Parameters for ApproveVerifiableDomain""" + input: ApproveVerifiableDomainInput! + ): ApproveVerifiableDomainPayload + """Archives a ProjectV2Item""" + archiveProjectV2Item( + """Parameters for ArchiveProjectV2Item""" + input: ArchiveProjectV2ItemInput! + ): ArchiveProjectV2ItemPayload + """Marks a repository as archived.""" + archiveRepository( + """Parameters for ArchiveRepository""" + input: ArchiveRepositoryInput! + ): ArchiveRepositoryPayload + """ + Cancels a pending invitation for an administrator to join an enterprise. + """ + cancelEnterpriseAdminInvitation( + """Parameters for CancelEnterpriseAdminInvitation""" + input: CancelEnterpriseAdminInvitationInput! + ): CancelEnterpriseAdminInvitationPayload + """ + Cancels a pending invitation for an unaffiliated member to join an enterprise. + """ + cancelEnterpriseMemberInvitation( + """Parameters for CancelEnterpriseMemberInvitation""" + input: CancelEnterpriseMemberInvitationInput! + ): CancelEnterpriseMemberInvitationPayload + """Cancel an active sponsorship.""" + cancelSponsorship( + """Parameters for CancelSponsorship""" + input: CancelSponsorshipInput! + ): CancelSponsorshipPayload + """Update your status on GitHub.""" + changeUserStatus( + """Parameters for ChangeUserStatus""" + input: ChangeUserStatusInput! + ): ChangeUserStatusPayload + """Clears all labels from a labelable object.""" + clearLabelsFromLabelable( + """Parameters for ClearLabelsFromLabelable""" + input: ClearLabelsFromLabelableInput! + ): ClearLabelsFromLabelablePayload + """ + This mutation clears the value of a field for an item in a Project. Currently + only text, number, date, assignees, labels, single-select, iteration and + milestone fields are supported. + """ + clearProjectV2ItemFieldValue( + """Parameters for ClearProjectV2ItemFieldValue""" + input: ClearProjectV2ItemFieldValueInput! + ): ClearProjectV2ItemFieldValuePayload + """ + Creates a new project by cloning configuration from an existing project. + """ + cloneProject( + """Parameters for CloneProject""" + input: CloneProjectInput! + ): CloneProjectPayload @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """ + Create a new repository with the same files and directory structure as a template repository. + """ + cloneTemplateRepository( + """Parameters for CloneTemplateRepository""" + input: CloneTemplateRepositoryInput! + ): CloneTemplateRepositoryPayload + """Close a discussion.""" + closeDiscussion( + """Parameters for CloseDiscussion""" + input: CloseDiscussionInput! + ): CloseDiscussionPayload + """Close an issue.""" + closeIssue( + """Parameters for CloseIssue""" + input: CloseIssueInput! + ): CloseIssuePayload + """Close a pull request.""" + closePullRequest( + """Parameters for ClosePullRequest""" + input: ClosePullRequestInput! + ): ClosePullRequestPayload + """ + Convert a project note card to one associated with a newly created issue. + """ + convertProjectCardNoteToIssue( + """Parameters for ConvertProjectCardNoteToIssue""" + input: ConvertProjectCardNoteToIssueInput! + ): ConvertProjectCardNoteToIssuePayload @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Converts a projectV2 draft issue item to an issue.""" + convertProjectV2DraftIssueItemToIssue( + """Parameters for ConvertProjectV2DraftIssueItemToIssue""" + input: ConvertProjectV2DraftIssueItemToIssueInput! + ): ConvertProjectV2DraftIssueItemToIssuePayload + """Converts a pull request to draft""" + convertPullRequestToDraft( + """Parameters for ConvertPullRequestToDraft""" + input: ConvertPullRequestToDraftInput! + ): ConvertPullRequestToDraftPayload + """Copy a project.""" + copyProjectV2( + """Parameters for CopyProjectV2""" + input: CopyProjectV2Input! + ): CopyProjectV2Payload + """Invites a user to claim reattributable data""" + createAttributionInvitation( + """Parameters for CreateAttributionInvitation""" + input: CreateAttributionInvitationInput! + ): CreateAttributionInvitationPayload + """Create a new branch protection rule""" + createBranchProtectionRule( + """Parameters for CreateBranchProtectionRule""" + input: CreateBranchProtectionRuleInput! + ): CreateBranchProtectionRulePayload + """Create a check run.""" + createCheckRun( + """Parameters for CreateCheckRun""" + input: CreateCheckRunInput! + ): CreateCheckRunPayload + """Create a check suite""" + createCheckSuite( + """Parameters for CreateCheckSuite""" + input: CreateCheckSuiteInput! + ): CreateCheckSuitePayload + """ + Appends a commit to the given branch as the authenticated user. + + This mutation creates a commit whose parent is the HEAD of the provided + branch and also updates that branch to point to the new commit. + It can be thought of as similar to `git commit`. + + ### Locating a Branch + + Commits are appended to a `branch` of type `Ref`. + This must refer to a git branch (i.e. the fully qualified path must + begin with `refs/heads/`, although including this prefix is optional. + + Callers may specify the `branch` to commit to either by its global node + ID or by passing both of `repositoryNameWithOwner` and `refName`. For + more details see the documentation for `CommittableBranch`. + + ### Describing Changes + + `fileChanges` are specified as a `FilesChanges` object describing + `FileAdditions` and `FileDeletions`. + + Please see the documentation for `FileChanges` for more information on + how to use this argument to describe any set of file changes. + + ### Authorship + + Similar to the web commit interface, this mutation does not support + specifying the author or committer of the commit and will not add + support for this in the future. + + A commit created by a successful execution of this mutation will be + authored by the owner of the credential which authenticates the API + request. The committer will be identical to that of commits authored + using the web interface. + + If you need full control over author and committer information, please + use the Git Database REST API instead. + + ### Commit Signing + + Commits made using this mutation are automatically signed by GitHub if + supported and will be marked as verified in the user interface. + """ + createCommitOnBranch( + """Parameters for CreateCommitOnBranch""" + input: CreateCommitOnBranchInput! + ): CreateCommitOnBranchPayload + """Creates a new deployment event.""" + createDeployment( + """Parameters for CreateDeployment""" + input: CreateDeploymentInput! + ): CreateDeploymentPayload + """Create a deployment status.""" + createDeploymentStatus( + """Parameters for CreateDeploymentStatus""" + input: CreateDeploymentStatusInput! + ): CreateDeploymentStatusPayload + """Create a discussion.""" + createDiscussion( + """Parameters for CreateDiscussion""" + input: CreateDiscussionInput! + ): CreateDiscussionPayload + """ + Creates an organization as part of an enterprise account. A personal access + token used to create an organization is implicitly permitted to update the + organization it created, if the organization is part of an enterprise that has + SAML enabled or uses Enterprise Managed Users. If the organization is not part + of such an enterprise, and instead has SAML enabled for it individually, the + token will then require SAML authorization to continue working against that organization. + """ + createEnterpriseOrganization( + """Parameters for CreateEnterpriseOrganization""" + input: CreateEnterpriseOrganizationInput! + ): CreateEnterpriseOrganizationPayload + """Creates an environment or simply returns it if already exists.""" + createEnvironment( + """Parameters for CreateEnvironment""" + input: CreateEnvironmentInput! + ): CreateEnvironmentPayload + """Creates a new IP allow list entry.""" + createIpAllowListEntry( + """Parameters for CreateIpAllowListEntry""" + input: CreateIpAllowListEntryInput! + ): CreateIpAllowListEntryPayload + """Creates a new issue.""" + createIssue( + """Parameters for CreateIssue""" + input: CreateIssueInput! + ): CreateIssuePayload + """Creates a new issue type""" + createIssueType( + """Parameters for CreateIssueType""" + input: CreateIssueTypeInput! + ): CreateIssueTypePayload + """Creates a new label.""" + createLabel( + """Parameters for CreateLabel""" + input: CreateLabelInput! + ): CreateLabelPayload + """Create a branch linked to an issue.""" + createLinkedBranch( + """Parameters for CreateLinkedBranch""" + input: CreateLinkedBranchInput! + ): CreateLinkedBranchPayload + """Creates a GitHub Enterprise Importer (GEI) migration source.""" + createMigrationSource( + """Parameters for CreateMigrationSource""" + input: CreateMigrationSourceInput! + ): CreateMigrationSourcePayload + """Creates a new project.""" + createProject( + """Parameters for CreateProject""" + input: CreateProjectInput! + ): CreateProjectPayload @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Creates a new project.""" + createProjectV2( + """Parameters for CreateProjectV2""" + input: CreateProjectV2Input! + ): CreateProjectV2Payload + """Create a new project field.""" + createProjectV2Field( + """Parameters for CreateProjectV2Field""" + input: CreateProjectV2FieldInput! + ): CreateProjectV2FieldPayload + """Creates a status update within a Project.""" + createProjectV2StatusUpdate( + """Parameters for CreateProjectV2StatusUpdate""" + input: CreateProjectV2StatusUpdateInput! + ): CreateProjectV2StatusUpdatePayload + """Create a new pull request""" + createPullRequest( + """Parameters for CreatePullRequest""" + input: CreatePullRequestInput! + ): CreatePullRequestPayload + """Create a new Git Ref.""" + createRef( + """Parameters for CreateRef""" + input: CreateRefInput! + ): CreateRefPayload + """Create a new repository.""" + createRepository( + """Parameters for CreateRepository""" + input: CreateRepositoryInput! + ): CreateRepositoryPayload + """Create a repository ruleset""" + createRepositoryRuleset( + """Parameters for CreateRepositoryRuleset""" + input: CreateRepositoryRulesetInput! + ): CreateRepositoryRulesetPayload + """ + Create a GitHub Sponsors profile to allow others to sponsor you or your organization. + """ + createSponsorsListing( + """Parameters for CreateSponsorsListing""" + input: CreateSponsorsListingInput! + ): CreateSponsorsListingPayload + """Create a new payment tier for your GitHub Sponsors profile.""" + createSponsorsTier( + """Parameters for CreateSponsorsTier""" + input: CreateSponsorsTierInput! + ): CreateSponsorsTierPayload + """ + Start a new sponsorship of a maintainer in GitHub Sponsors, or reactivate a past sponsorship. + """ + createSponsorship( + """Parameters for CreateSponsorship""" + input: CreateSponsorshipInput! + ): CreateSponsorshipPayload + """ + Make many sponsorships for different sponsorable users or organizations at + once. Can only sponsor those who have a public GitHub Sponsors profile. + """ + createSponsorships( + """Parameters for CreateSponsorships""" + input: CreateSponsorshipsInput! + ): CreateSponsorshipsPayload + """Creates a new team discussion.""" + createTeamDiscussion( + """Parameters for CreateTeamDiscussion""" + input: CreateTeamDiscussionInput! + ): CreateTeamDiscussionPayload + """Creates a new team discussion comment.""" + createTeamDiscussionComment( + """Parameters for CreateTeamDiscussionComment""" + input: CreateTeamDiscussionCommentInput! + ): CreateTeamDiscussionCommentPayload + """Creates a new user list.""" + createUserList( + """Parameters for CreateUserList""" + input: CreateUserListInput! + ): CreateUserListPayload + """Rejects a suggested topic for the repository.""" + declineTopicSuggestion( + """Parameters for DeclineTopicSuggestion""" + input: DeclineTopicSuggestionInput! + ): DeclineTopicSuggestionPayload + """Delete a branch protection rule""" + deleteBranchProtectionRule( + """Parameters for DeleteBranchProtectionRule""" + input: DeleteBranchProtectionRuleInput! + ): DeleteBranchProtectionRulePayload + """Deletes a deployment.""" + deleteDeployment( + """Parameters for DeleteDeployment""" + input: DeleteDeploymentInput! + ): DeleteDeploymentPayload + """Delete a discussion and all of its replies.""" + deleteDiscussion( + """Parameters for DeleteDiscussion""" + input: DeleteDiscussionInput! + ): DeleteDiscussionPayload + """Delete a discussion comment. If it has replies, wipe it instead.""" + deleteDiscussionComment( + """Parameters for DeleteDiscussionComment""" + input: DeleteDiscussionCommentInput! + ): DeleteDiscussionCommentPayload + """Deletes an environment""" + deleteEnvironment( + """Parameters for DeleteEnvironment""" + input: DeleteEnvironmentInput! + ): DeleteEnvironmentPayload + """Deletes an IP allow list entry.""" + deleteIpAllowListEntry( + """Parameters for DeleteIpAllowListEntry""" + input: DeleteIpAllowListEntryInput! + ): DeleteIpAllowListEntryPayload + """Deletes an Issue object.""" + deleteIssue( + """Parameters for DeleteIssue""" + input: DeleteIssueInput! + ): DeleteIssuePayload + """Deletes an IssueComment object.""" + deleteIssueComment( + """Parameters for DeleteIssueComment""" + input: DeleteIssueCommentInput! + ): DeleteIssueCommentPayload + """Delete an issue type""" + deleteIssueType( + """Parameters for DeleteIssueType""" + input: DeleteIssueTypeInput! + ): DeleteIssueTypePayload + """Deletes a label.""" + deleteLabel( + """Parameters for DeleteLabel""" + input: DeleteLabelInput! + ): DeleteLabelPayload + """Unlink a branch from an issue.""" + deleteLinkedBranch( + """Parameters for DeleteLinkedBranch""" + input: DeleteLinkedBranchInput! + ): DeleteLinkedBranchPayload + """Delete a package version.""" + deletePackageVersion( + """Parameters for DeletePackageVersion""" + input: DeletePackageVersionInput! + ): DeletePackageVersionPayload + """Deletes a project.""" + deleteProject( + """Parameters for DeleteProject""" + input: DeleteProjectInput! + ): DeleteProjectPayload @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Deletes a project card.""" + deleteProjectCard( + """Parameters for DeleteProjectCard""" + input: DeleteProjectCardInput! + ): DeleteProjectCardPayload @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Deletes a project column.""" + deleteProjectColumn( + """Parameters for DeleteProjectColumn""" + input: DeleteProjectColumnInput! + ): DeleteProjectColumnPayload @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Delete a project.""" + deleteProjectV2( + """Parameters for DeleteProjectV2""" + input: DeleteProjectV2Input! + ): DeleteProjectV2Payload + """Delete a project field.""" + deleteProjectV2Field( + """Parameters for DeleteProjectV2Field""" + input: DeleteProjectV2FieldInput! + ): DeleteProjectV2FieldPayload + """Deletes an item from a Project.""" + deleteProjectV2Item( + """Parameters for DeleteProjectV2Item""" + input: DeleteProjectV2ItemInput! + ): DeleteProjectV2ItemPayload + """Deletes a project status update.""" + deleteProjectV2StatusUpdate( + """Parameters for DeleteProjectV2StatusUpdate""" + input: DeleteProjectV2StatusUpdateInput! + ): DeleteProjectV2StatusUpdatePayload + """Deletes a project workflow.""" + deleteProjectV2Workflow( + """Parameters for DeleteProjectV2Workflow""" + input: DeleteProjectV2WorkflowInput! + ): DeleteProjectV2WorkflowPayload + """Deletes a pull request review.""" + deletePullRequestReview( + """Parameters for DeletePullRequestReview""" + input: DeletePullRequestReviewInput! + ): DeletePullRequestReviewPayload + """Deletes a pull request review comment.""" + deletePullRequestReviewComment( + """Parameters for DeletePullRequestReviewComment""" + input: DeletePullRequestReviewCommentInput! + ): DeletePullRequestReviewCommentPayload + """Delete a Git Ref.""" + deleteRef( + """Parameters for DeleteRef""" + input: DeleteRefInput! + ): DeleteRefPayload + """Delete a repository ruleset""" + deleteRepositoryRuleset( + """Parameters for DeleteRepositoryRuleset""" + input: DeleteRepositoryRulesetInput! + ): DeleteRepositoryRulesetPayload + """Deletes a team discussion.""" + deleteTeamDiscussion( + """Parameters for DeleteTeamDiscussion""" + input: DeleteTeamDiscussionInput! + ): DeleteTeamDiscussionPayload + """Deletes a team discussion comment.""" + deleteTeamDiscussionComment( + """Parameters for DeleteTeamDiscussionComment""" + input: DeleteTeamDiscussionCommentInput! + ): DeleteTeamDiscussionCommentPayload + """Deletes a user list.""" + deleteUserList( + """Parameters for DeleteUserList""" + input: DeleteUserListInput! + ): DeleteUserListPayload + """Deletes a verifiable domain.""" + deleteVerifiableDomain( + """Parameters for DeleteVerifiableDomain""" + input: DeleteVerifiableDomainInput! + ): DeleteVerifiableDomainPayload + """Remove a pull request from the merge queue.""" + dequeuePullRequest( + """Parameters for DequeuePullRequest""" + input: DequeuePullRequestInput! + ): DequeuePullRequestPayload + """Disable auto merge on the given pull request""" + disablePullRequestAutoMerge( + """Parameters for DisablePullRequestAutoMerge""" + input: DisablePullRequestAutoMergeInput! + ): DisablePullRequestAutoMergePayload + """Dismisses an approved or rejected pull request review.""" + dismissPullRequestReview( + """Parameters for DismissPullRequestReview""" + input: DismissPullRequestReviewInput! + ): DismissPullRequestReviewPayload + """Dismisses the Dependabot alert.""" + dismissRepositoryVulnerabilityAlert( + """Parameters for DismissRepositoryVulnerabilityAlert""" + input: DismissRepositoryVulnerabilityAlertInput! + ): DismissRepositoryVulnerabilityAlertPayload + """Enable the default auto-merge on a pull request.""" + enablePullRequestAutoMerge( + """Parameters for EnablePullRequestAutoMerge""" + input: EnablePullRequestAutoMergeInput! + ): EnablePullRequestAutoMergePayload + """Add a pull request to the merge queue.""" + enqueuePullRequest( + """Parameters for EnqueuePullRequest""" + input: EnqueuePullRequestInput! + ): EnqueuePullRequestPayload + """Follow an organization.""" + followOrganization( + """Parameters for FollowOrganization""" + input: FollowOrganizationInput! + ): FollowOrganizationPayload + """Follow a user.""" + followUser( + """Parameters for FollowUser""" + input: FollowUserInput! + ): FollowUserPayload + """ + Grant the migrator role to a user for all organizations under an enterprise account. + """ + grantEnterpriseOrganizationsMigratorRole( + """Parameters for GrantEnterpriseOrganizationsMigratorRole""" + input: GrantEnterpriseOrganizationsMigratorRoleInput! + ): GrantEnterpriseOrganizationsMigratorRolePayload + """Grant the migrator role to a user or a team.""" + grantMigratorRole( + """Parameters for GrantMigratorRole""" + input: GrantMigratorRoleInput! + ): GrantMigratorRolePayload + """Creates a new project by importing columns and a list of issues/PRs.""" + importProject( + """Parameters for ImportProject""" + input: ImportProjectInput! + ): ImportProjectPayload @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Invite someone to become an administrator of the enterprise.""" + inviteEnterpriseAdmin( + """Parameters for InviteEnterpriseAdmin""" + input: InviteEnterpriseAdminInput! + ): InviteEnterpriseAdminPayload + """Invite someone to become an unaffiliated member of the enterprise.""" + inviteEnterpriseMember( + """Parameters for InviteEnterpriseMember""" + input: InviteEnterpriseMemberInput! + ): InviteEnterpriseMemberPayload + """Links a project to a repository.""" + linkProjectV2ToRepository( + """Parameters for LinkProjectV2ToRepository""" + input: LinkProjectV2ToRepositoryInput! + ): LinkProjectV2ToRepositoryPayload + """Links a project to a team.""" + linkProjectV2ToTeam( + """Parameters for LinkProjectV2ToTeam""" + input: LinkProjectV2ToTeamInput! + ): LinkProjectV2ToTeamPayload + """Creates a repository link for a project.""" + linkRepositoryToProject( + """Parameters for LinkRepositoryToProject""" + input: LinkRepositoryToProjectInput! + ): LinkRepositoryToProjectPayload @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Lock a lockable object""" + lockLockable( + """Parameters for LockLockable""" + input: LockLockableInput! + ): LockLockablePayload + """ + Mark a discussion comment as the chosen answer for discussions in an answerable category. + """ + markDiscussionCommentAsAnswer( + """Parameters for MarkDiscussionCommentAsAnswer""" + input: MarkDiscussionCommentAsAnswerInput! + ): MarkDiscussionCommentAsAnswerPayload + """Mark a pull request file as viewed""" + markFileAsViewed( + """Parameters for MarkFileAsViewed""" + input: MarkFileAsViewedInput! + ): MarkFileAsViewedPayload + """ + Mark a project as a template. Note that only projects which are owned by an Organization can be marked as a template. + """ + markProjectV2AsTemplate( + """Parameters for MarkProjectV2AsTemplate""" + input: MarkProjectV2AsTemplateInput! + ): MarkProjectV2AsTemplatePayload + """Marks a pull request ready for review.""" + markPullRequestReadyForReview( + """Parameters for MarkPullRequestReadyForReview""" + input: MarkPullRequestReadyForReviewInput! + ): MarkPullRequestReadyForReviewPayload + """Merge a head into a branch.""" + mergeBranch( + """Parameters for MergeBranch""" + input: MergeBranchInput! + ): MergeBranchPayload + """Merge a pull request.""" + mergePullRequest( + """Parameters for MergePullRequest""" + input: MergePullRequestInput! + ): MergePullRequestPayload + """Minimizes a comment on an Issue, Commit, Pull Request, or Gist""" + minimizeComment( + """Parameters for MinimizeComment""" + input: MinimizeCommentInput! + ): MinimizeCommentPayload + """Moves a project card to another place.""" + moveProjectCard( + """Parameters for MoveProjectCard""" + input: MoveProjectCardInput! + ): MoveProjectCardPayload @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Moves a project column to another place.""" + moveProjectColumn( + """Parameters for MoveProjectColumn""" + input: MoveProjectColumnInput! + ): MoveProjectColumnPayload @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Pin an environment to a repository""" + pinEnvironment( + """Parameters for PinEnvironment""" + input: PinEnvironmentInput! + ): PinEnvironmentPayload + """Pin an issue to a repository""" + pinIssue( + """Parameters for PinIssue""" + input: PinIssueInput! + ): PinIssuePayload + """ + Publish an existing sponsorship tier that is currently still a draft to a GitHub Sponsors profile. + """ + publishSponsorsTier( + """Parameters for PublishSponsorsTier""" + input: PublishSponsorsTierInput! + ): PublishSponsorsTierPayload + """Regenerates the identity provider recovery codes for an enterprise""" + regenerateEnterpriseIdentityProviderRecoveryCodes( + """Parameters for RegenerateEnterpriseIdentityProviderRecoveryCodes""" + input: RegenerateEnterpriseIdentityProviderRecoveryCodesInput! + ): RegenerateEnterpriseIdentityProviderRecoveryCodesPayload + """Regenerates a verifiable domain's verification token.""" + regenerateVerifiableDomainToken( + """Parameters for RegenerateVerifiableDomainToken""" + input: RegenerateVerifiableDomainTokenInput! + ): RegenerateVerifiableDomainTokenPayload + """Reject all pending deployments under one or more environments""" + rejectDeployments( + """Parameters for RejectDeployments""" + input: RejectDeploymentsInput! + ): RejectDeploymentsPayload + """Removes assignees from an assignable object.""" + removeAssigneesFromAssignable( + """Parameters for RemoveAssigneesFromAssignable""" + input: RemoveAssigneesFromAssignableInput! + ): RemoveAssigneesFromAssignablePayload + """Removes an administrator from the enterprise.""" + removeEnterpriseAdmin( + """Parameters for RemoveEnterpriseAdmin""" + input: RemoveEnterpriseAdminInput! + ): RemoveEnterpriseAdminPayload + """ + Removes the identity provider from an enterprise. Owners of enterprises both + with and without Enterprise Managed Users may use this mutation. + """ + removeEnterpriseIdentityProvider( + """Parameters for RemoveEnterpriseIdentityProvider""" + input: RemoveEnterpriseIdentityProviderInput! + ): RemoveEnterpriseIdentityProviderPayload + """Removes a user from all organizations within the enterprise""" + removeEnterpriseMember( + """Parameters for RemoveEnterpriseMember""" + input: RemoveEnterpriseMemberInput! + ): RemoveEnterpriseMemberPayload + """Removes an organization from the enterprise""" + removeEnterpriseOrganization( + """Parameters for RemoveEnterpriseOrganization""" + input: RemoveEnterpriseOrganizationInput! + ): RemoveEnterpriseOrganizationPayload + """Removes a support entitlement from an enterprise member.""" + removeEnterpriseSupportEntitlement( + """Parameters for RemoveEnterpriseSupportEntitlement""" + input: RemoveEnterpriseSupportEntitlementInput! + ): RemoveEnterpriseSupportEntitlementPayload + """Removes labels from a Labelable object.""" + removeLabelsFromLabelable( + """Parameters for RemoveLabelsFromLabelable""" + input: RemoveLabelsFromLabelableInput! + ): RemoveLabelsFromLabelablePayload + """Removes outside collaborator from all repositories in an organization.""" + removeOutsideCollaborator( + """Parameters for RemoveOutsideCollaborator""" + input: RemoveOutsideCollaboratorInput! + ): RemoveOutsideCollaboratorPayload + """Removes a reaction from a subject.""" + removeReaction( + """Parameters for RemoveReaction""" + input: RemoveReactionInput! + ): RemoveReactionPayload + """Removes a star from a Starrable.""" + removeStar( + """Parameters for RemoveStar""" + input: RemoveStarInput! + ): RemoveStarPayload + """Removes a sub-issue from a given issue""" + removeSubIssue( + """Parameters for RemoveSubIssue""" + input: RemoveSubIssueInput! + ): RemoveSubIssuePayload + """Remove an upvote to a discussion or discussion comment.""" + removeUpvote( + """Parameters for RemoveUpvote""" + input: RemoveUpvoteInput! + ): RemoveUpvotePayload + """Reopen a discussion.""" + reopenDiscussion( + """Parameters for ReopenDiscussion""" + input: ReopenDiscussionInput! + ): ReopenDiscussionPayload + """Reopen a issue.""" + reopenIssue( + """Parameters for ReopenIssue""" + input: ReopenIssueInput! + ): ReopenIssuePayload + """Reopen a pull request.""" + reopenPullRequest( + """Parameters for ReopenPullRequest""" + input: ReopenPullRequestInput! + ): ReopenPullRequestPayload + """Reorder a pinned repository environment""" + reorderEnvironment( + """Parameters for ReorderEnvironment""" + input: ReorderEnvironmentInput! + ): ReorderEnvironmentPayload + """Replaces all actors for assignable object.""" + replaceActorsForAssignable( + """Parameters for ReplaceActorsForAssignable""" + input: ReplaceActorsForAssignableInput! + ): ReplaceActorsForAssignablePayload + """Reprioritizes a sub-issue to a different position in the parent list.""" + reprioritizeSubIssue( + """Parameters for ReprioritizeSubIssue""" + input: ReprioritizeSubIssueInput! + ): ReprioritizeSubIssuePayload + """Set review requests on a pull request.""" + requestReviews( + """Parameters for RequestReviews""" + input: RequestReviewsInput! + ): RequestReviewsPayload + """Rerequests an existing check suite.""" + rerequestCheckSuite( + """Parameters for RerequestCheckSuite""" + input: RerequestCheckSuiteInput! + ): RerequestCheckSuitePayload + """Marks a review thread as resolved.""" + resolveReviewThread( + """Parameters for ResolveReviewThread""" + input: ResolveReviewThreadInput! + ): ResolveReviewThreadPayload + """ + Retire a published payment tier from your GitHub Sponsors profile so it cannot be used to start new sponsorships. + """ + retireSponsorsTier( + """Parameters for RetireSponsorsTier""" + input: RetireSponsorsTierInput! + ): RetireSponsorsTierPayload + """ + Create a pull request that reverts the changes from a merged pull request. + """ + revertPullRequest( + """Parameters for RevertPullRequest""" + input: RevertPullRequestInput! + ): RevertPullRequestPayload + """ + Revoke the migrator role to a user for all organizations under an enterprise account. + """ + revokeEnterpriseOrganizationsMigratorRole( + """Parameters for RevokeEnterpriseOrganizationsMigratorRole""" + input: RevokeEnterpriseOrganizationsMigratorRoleInput! + ): RevokeEnterpriseOrganizationsMigratorRolePayload + """Revoke the migrator role from a user or a team.""" + revokeMigratorRole( + """Parameters for RevokeMigratorRole""" + input: RevokeMigratorRoleInput! + ): RevokeMigratorRolePayload + """Creates or updates the identity provider for an enterprise.""" + setEnterpriseIdentityProvider( + """Parameters for SetEnterpriseIdentityProvider""" + input: SetEnterpriseIdentityProviderInput! + ): SetEnterpriseIdentityProviderPayload + """ + Set an organization level interaction limit for an organization's public repositories. + """ + setOrganizationInteractionLimit( + """Parameters for SetOrganizationInteractionLimit""" + input: SetOrganizationInteractionLimitInput! + ): SetOrganizationInteractionLimitPayload + """Sets an interaction limit setting for a repository.""" + setRepositoryInteractionLimit( + """Parameters for SetRepositoryInteractionLimit""" + input: SetRepositoryInteractionLimitInput! + ): SetRepositoryInteractionLimitPayload + """Set a user level interaction limit for an user's public repositories.""" + setUserInteractionLimit( + """Parameters for SetUserInteractionLimit""" + input: SetUserInteractionLimitInput! + ): SetUserInteractionLimitPayload + """Starts a GitHub Enterprise Importer organization migration.""" + startOrganizationMigration( + """Parameters for StartOrganizationMigration""" + input: StartOrganizationMigrationInput! + ): StartOrganizationMigrationPayload + """Starts a GitHub Enterprise Importer (GEI) repository migration.""" + startRepositoryMigration( + """Parameters for StartRepositoryMigration""" + input: StartRepositoryMigrationInput! + ): StartRepositoryMigrationPayload + """Submits a pending pull request review.""" + submitPullRequestReview( + """Parameters for SubmitPullRequestReview""" + input: SubmitPullRequestReviewInput! + ): SubmitPullRequestReviewPayload + """Transfer an organization from one enterprise to another enterprise.""" + transferEnterpriseOrganization( + """Parameters for TransferEnterpriseOrganization""" + input: TransferEnterpriseOrganizationInput! + ): TransferEnterpriseOrganizationPayload + """Transfer an issue to a different repository""" + transferIssue( + """Parameters for TransferIssue""" + input: TransferIssueInput! + ): TransferIssuePayload + """Unarchives a ProjectV2Item""" + unarchiveProjectV2Item( + """Parameters for UnarchiveProjectV2Item""" + input: UnarchiveProjectV2ItemInput! + ): UnarchiveProjectV2ItemPayload + """Unarchives a repository.""" + unarchiveRepository( + """Parameters for UnarchiveRepository""" + input: UnarchiveRepositoryInput! + ): UnarchiveRepositoryPayload + """Unfollow an organization.""" + unfollowOrganization( + """Parameters for UnfollowOrganization""" + input: UnfollowOrganizationInput! + ): UnfollowOrganizationPayload + """Unfollow a user.""" + unfollowUser( + """Parameters for UnfollowUser""" + input: UnfollowUserInput! + ): UnfollowUserPayload + """Unlinks a project from a repository.""" + unlinkProjectV2FromRepository( + """Parameters for UnlinkProjectV2FromRepository""" + input: UnlinkProjectV2FromRepositoryInput! + ): UnlinkProjectV2FromRepositoryPayload + """Unlinks a project to a team.""" + unlinkProjectV2FromTeam( + """Parameters for UnlinkProjectV2FromTeam""" + input: UnlinkProjectV2FromTeamInput! + ): UnlinkProjectV2FromTeamPayload + """Deletes a repository link from a project.""" + unlinkRepositoryFromProject( + """Parameters for UnlinkRepositoryFromProject""" + input: UnlinkRepositoryFromProjectInput! + ): UnlinkRepositoryFromProjectPayload @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Unlock a lockable object""" + unlockLockable( + """Parameters for UnlockLockable""" + input: UnlockLockableInput! + ): UnlockLockablePayload + """ + Unmark a discussion comment as the chosen answer for discussions in an answerable category. + """ + unmarkDiscussionCommentAsAnswer( + """Parameters for UnmarkDiscussionCommentAsAnswer""" + input: UnmarkDiscussionCommentAsAnswerInput! + ): UnmarkDiscussionCommentAsAnswerPayload + """Unmark a pull request file as viewed""" + unmarkFileAsViewed( + """Parameters for UnmarkFileAsViewed""" + input: UnmarkFileAsViewedInput! + ): UnmarkFileAsViewedPayload + """Unmark an issue as a duplicate of another issue.""" + unmarkIssueAsDuplicate( + """Parameters for UnmarkIssueAsDuplicate""" + input: UnmarkIssueAsDuplicateInput! + ): UnmarkIssueAsDuplicatePayload + """Unmark a project as a template.""" + unmarkProjectV2AsTemplate( + """Parameters for UnmarkProjectV2AsTemplate""" + input: UnmarkProjectV2AsTemplateInput! + ): UnmarkProjectV2AsTemplatePayload + """Unminimizes a comment on an Issue, Commit, Pull Request, or Gist""" + unminimizeComment( + """Parameters for UnminimizeComment""" + input: UnminimizeCommentInput! + ): UnminimizeCommentPayload + """Unpin a pinned issue from a repository""" + unpinIssue( + """Parameters for UnpinIssue""" + input: UnpinIssueInput! + ): UnpinIssuePayload + """Marks a review thread as unresolved.""" + unresolveReviewThread( + """Parameters for UnresolveReviewThread""" + input: UnresolveReviewThreadInput! + ): UnresolveReviewThreadPayload + """Update a branch protection rule""" + updateBranchProtectionRule( + """Parameters for UpdateBranchProtectionRule""" + input: UpdateBranchProtectionRuleInput! + ): UpdateBranchProtectionRulePayload + """Update a check run""" + updateCheckRun( + """Parameters for UpdateCheckRun""" + input: UpdateCheckRunInput! + ): UpdateCheckRunPayload + """Modifies the settings of an existing check suite""" + updateCheckSuitePreferences( + """Parameters for UpdateCheckSuitePreferences""" + input: UpdateCheckSuitePreferencesInput! + ): UpdateCheckSuitePreferencesPayload + """Update a discussion""" + updateDiscussion( + """Parameters for UpdateDiscussion""" + input: UpdateDiscussionInput! + ): UpdateDiscussionPayload + """Update the contents of a comment on a Discussion""" + updateDiscussionComment( + """Parameters for UpdateDiscussionComment""" + input: UpdateDiscussionCommentInput! + ): UpdateDiscussionCommentPayload + """Updates the role of an enterprise administrator.""" + updateEnterpriseAdministratorRole( + """Parameters for UpdateEnterpriseAdministratorRole""" + input: UpdateEnterpriseAdministratorRoleInput! + ): UpdateEnterpriseAdministratorRolePayload + """Sets whether private repository forks are enabled for an enterprise.""" + updateEnterpriseAllowPrivateRepositoryForkingSetting( + """Parameters for UpdateEnterpriseAllowPrivateRepositoryForkingSetting""" + input: UpdateEnterpriseAllowPrivateRepositoryForkingSettingInput! + ): UpdateEnterpriseAllowPrivateRepositoryForkingSettingPayload + """ + Sets the base repository permission for organizations in an enterprise. + """ + updateEnterpriseDefaultRepositoryPermissionSetting( + """Parameters for UpdateEnterpriseDefaultRepositoryPermissionSetting""" + input: UpdateEnterpriseDefaultRepositoryPermissionSettingInput! + ): UpdateEnterpriseDefaultRepositoryPermissionSettingPayload + """ + Sets whether deploy keys are allowed to be created and used for an enterprise. + """ + updateEnterpriseDeployKeySetting( + """Parameters for UpdateEnterpriseDeployKeySetting""" + input: UpdateEnterpriseDeployKeySettingInput! + ): UpdateEnterpriseDeployKeySettingPayload + """ + Sets whether organization members with admin permissions on a repository can change repository visibility. + """ + updateEnterpriseMembersCanChangeRepositoryVisibilitySetting( + """ + Parameters for UpdateEnterpriseMembersCanChangeRepositoryVisibilitySetting + """ + input: UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingInput! + ): UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingPayload + """Sets the members can create repositories setting for an enterprise.""" + updateEnterpriseMembersCanCreateRepositoriesSetting( + """Parameters for UpdateEnterpriseMembersCanCreateRepositoriesSetting""" + input: UpdateEnterpriseMembersCanCreateRepositoriesSettingInput! + ): UpdateEnterpriseMembersCanCreateRepositoriesSettingPayload + """Sets the members can delete issues setting for an enterprise.""" + updateEnterpriseMembersCanDeleteIssuesSetting( + """Parameters for UpdateEnterpriseMembersCanDeleteIssuesSetting""" + input: UpdateEnterpriseMembersCanDeleteIssuesSettingInput! + ): UpdateEnterpriseMembersCanDeleteIssuesSettingPayload + """Sets the members can delete repositories setting for an enterprise.""" + updateEnterpriseMembersCanDeleteRepositoriesSetting( + """Parameters for UpdateEnterpriseMembersCanDeleteRepositoriesSetting""" + input: UpdateEnterpriseMembersCanDeleteRepositoriesSettingInput! + ): UpdateEnterpriseMembersCanDeleteRepositoriesSettingPayload + """ + Sets whether members can invite collaborators are enabled for an enterprise. + """ + updateEnterpriseMembersCanInviteCollaboratorsSetting( + """Parameters for UpdateEnterpriseMembersCanInviteCollaboratorsSetting""" + input: UpdateEnterpriseMembersCanInviteCollaboratorsSettingInput! + ): UpdateEnterpriseMembersCanInviteCollaboratorsSettingPayload + """Sets whether or not an organization owner can make purchases.""" + updateEnterpriseMembersCanMakePurchasesSetting( + """Parameters for UpdateEnterpriseMembersCanMakePurchasesSetting""" + input: UpdateEnterpriseMembersCanMakePurchasesSettingInput! + ): UpdateEnterpriseMembersCanMakePurchasesSettingPayload + """ + Sets the members can update protected branches setting for an enterprise. + """ + updateEnterpriseMembersCanUpdateProtectedBranchesSetting( + """ + Parameters for UpdateEnterpriseMembersCanUpdateProtectedBranchesSetting + """ + input: UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingInput! + ): UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingPayload + """Sets the members can view dependency insights for an enterprise.""" + updateEnterpriseMembersCanViewDependencyInsightsSetting( + """Parameters for UpdateEnterpriseMembersCanViewDependencyInsightsSetting""" + input: UpdateEnterpriseMembersCanViewDependencyInsightsSettingInput! + ): UpdateEnterpriseMembersCanViewDependencyInsightsSettingPayload + """Sets whether organization projects are enabled for an enterprise.""" + updateEnterpriseOrganizationProjectsSetting( + """Parameters for UpdateEnterpriseOrganizationProjectsSetting""" + input: UpdateEnterpriseOrganizationProjectsSettingInput! + ): UpdateEnterpriseOrganizationProjectsSettingPayload + """Updates the role of an enterprise owner with an organization.""" + updateEnterpriseOwnerOrganizationRole( + """Parameters for UpdateEnterpriseOwnerOrganizationRole""" + input: UpdateEnterpriseOwnerOrganizationRoleInput! + ): UpdateEnterpriseOwnerOrganizationRolePayload + """Updates an enterprise's profile.""" + updateEnterpriseProfile( + """Parameters for UpdateEnterpriseProfile""" + input: UpdateEnterpriseProfileInput! + ): UpdateEnterpriseProfilePayload + """Sets whether repository projects are enabled for a enterprise.""" + updateEnterpriseRepositoryProjectsSetting( + """Parameters for UpdateEnterpriseRepositoryProjectsSetting""" + input: UpdateEnterpriseRepositoryProjectsSettingInput! + ): UpdateEnterpriseRepositoryProjectsSettingPayload + """Sets whether team discussions are enabled for an enterprise.""" + updateEnterpriseTeamDiscussionsSetting( + """Parameters for UpdateEnterpriseTeamDiscussionsSetting""" + input: UpdateEnterpriseTeamDiscussionsSettingInput! + ): UpdateEnterpriseTeamDiscussionsSettingPayload + """ + Sets the two-factor authentication methods that users of an enterprise may not use. + """ + updateEnterpriseTwoFactorAuthenticationDisallowedMethodsSetting( + """ + Parameters for UpdateEnterpriseTwoFactorAuthenticationDisallowedMethodsSetting + """ + input: UpdateEnterpriseTwoFactorAuthenticationDisallowedMethodsSettingInput! + ): UpdateEnterpriseTwoFactorAuthenticationDisallowedMethodsSettingPayload + """ + Sets whether two factor authentication is required for all users in an enterprise. + """ + updateEnterpriseTwoFactorAuthenticationRequiredSetting( + """Parameters for UpdateEnterpriseTwoFactorAuthenticationRequiredSetting""" + input: UpdateEnterpriseTwoFactorAuthenticationRequiredSettingInput! + ): UpdateEnterpriseTwoFactorAuthenticationRequiredSettingPayload + """Updates an environment.""" + updateEnvironment( + """Parameters for UpdateEnvironment""" + input: UpdateEnvironmentInput! + ): UpdateEnvironmentPayload + """Sets whether an IP allow list is enabled on an owner.""" + updateIpAllowListEnabledSetting( + """Parameters for UpdateIpAllowListEnabledSetting""" + input: UpdateIpAllowListEnabledSettingInput! + ): UpdateIpAllowListEnabledSettingPayload + """Updates an IP allow list entry.""" + updateIpAllowListEntry( + """Parameters for UpdateIpAllowListEntry""" + input: UpdateIpAllowListEntryInput! + ): UpdateIpAllowListEntryPayload + """ + Sets whether IP allow list configuration for installed GitHub Apps is enabled on an owner. + """ + updateIpAllowListForInstalledAppsEnabledSetting( + """Parameters for UpdateIpAllowListForInstalledAppsEnabledSetting""" + input: UpdateIpAllowListForInstalledAppsEnabledSettingInput! + ): UpdateIpAllowListForInstalledAppsEnabledSettingPayload + """Updates an Issue.""" + updateIssue( + """Parameters for UpdateIssue""" + input: UpdateIssueInput! + ): UpdateIssuePayload + """Updates an IssueComment object.""" + updateIssueComment( + """Parameters for UpdateIssueComment""" + input: UpdateIssueCommentInput! + ): UpdateIssueCommentPayload + """Updates the issue type on an issue""" + updateIssueIssueType( + """Parameters for UpdateIssueIssueType""" + input: UpdateIssueIssueTypeInput! + ): UpdateIssueIssueTypePayload + """Update an issue type""" + updateIssueType( + """Parameters for UpdateIssueType""" + input: UpdateIssueTypeInput! + ): UpdateIssueTypePayload + """Updates an existing label.""" + updateLabel( + """Parameters for UpdateLabel""" + input: UpdateLabelInput! + ): UpdateLabelPayload + """ + Update the setting to restrict notifications to only verified or approved domains available to an owner. + """ + updateNotificationRestrictionSetting( + """Parameters for UpdateNotificationRestrictionSetting""" + input: UpdateNotificationRestrictionSettingInput! + ): UpdateNotificationRestrictionSettingPayload + """Sets whether private repository forks are enabled for an organization.""" + updateOrganizationAllowPrivateRepositoryForkingSetting( + """Parameters for UpdateOrganizationAllowPrivateRepositoryForkingSetting""" + input: UpdateOrganizationAllowPrivateRepositoryForkingSettingInput! + ): UpdateOrganizationAllowPrivateRepositoryForkingSettingPayload + """ + Sets whether contributors are required to sign off on web-based commits for repositories in an organization. + """ + updateOrganizationWebCommitSignoffSetting( + """Parameters for UpdateOrganizationWebCommitSignoffSetting""" + input: UpdateOrganizationWebCommitSignoffSettingInput! + ): UpdateOrganizationWebCommitSignoffSettingPayload + """ + Toggle the setting for your GitHub Sponsors profile that allows other GitHub + accounts to sponsor you on GitHub while paying for the sponsorship on Patreon. + Only applicable when you have a GitHub Sponsors profile and have connected + your GitHub account with Patreon. + """ + updatePatreonSponsorability( + """Parameters for UpdatePatreonSponsorability""" + input: UpdatePatreonSponsorabilityInput! + ): UpdatePatreonSponsorabilityPayload + """Updates an existing project.""" + updateProject( + """Parameters for UpdateProject""" + input: UpdateProjectInput! + ): UpdateProjectPayload @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Updates an existing project card.""" + updateProjectCard( + """Parameters for UpdateProjectCard""" + input: UpdateProjectCardInput! + ): UpdateProjectCardPayload @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Updates an existing project column.""" + updateProjectColumn( + """Parameters for UpdateProjectColumn""" + input: UpdateProjectColumnInput! + ): UpdateProjectColumnPayload @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Updates an existing project.""" + updateProjectV2( + """Parameters for UpdateProjectV2""" + input: UpdateProjectV2Input! + ): UpdateProjectV2Payload + """Update the collaborators on a team or a project""" + updateProjectV2Collaborators( + """Parameters for UpdateProjectV2Collaborators""" + input: UpdateProjectV2CollaboratorsInput! + ): UpdateProjectV2CollaboratorsPayload + """Updates a draft issue within a Project.""" + updateProjectV2DraftIssue( + """Parameters for UpdateProjectV2DraftIssue""" + input: UpdateProjectV2DraftIssueInput! + ): UpdateProjectV2DraftIssuePayload + """Update a project field.""" + updateProjectV2Field( + """Parameters for UpdateProjectV2Field""" + input: UpdateProjectV2FieldInput! + ): UpdateProjectV2FieldPayload + """ + This mutation updates the value of a field for an item in a Project. Currently + only single-select, text, number, date, and iteration fields are supported. + """ + updateProjectV2ItemFieldValue( + """Parameters for UpdateProjectV2ItemFieldValue""" + input: UpdateProjectV2ItemFieldValueInput! + ): UpdateProjectV2ItemFieldValuePayload + """ + This mutation updates the position of the item in the project, where the position represents the priority of an item. + """ + updateProjectV2ItemPosition( + """Parameters for UpdateProjectV2ItemPosition""" + input: UpdateProjectV2ItemPositionInput! + ): UpdateProjectV2ItemPositionPayload + """Updates a status update within a Project.""" + updateProjectV2StatusUpdate( + """Parameters for UpdateProjectV2StatusUpdate""" + input: UpdateProjectV2StatusUpdateInput! + ): UpdateProjectV2StatusUpdatePayload + """Update a pull request""" + updatePullRequest( + """Parameters for UpdatePullRequest""" + input: UpdatePullRequestInput! + ): UpdatePullRequestPayload + """Merge or Rebase HEAD from upstream branch into pull request branch""" + updatePullRequestBranch( + """Parameters for UpdatePullRequestBranch""" + input: UpdatePullRequestBranchInput! + ): UpdatePullRequestBranchPayload + """Updates the body of a pull request review.""" + updatePullRequestReview( + """Parameters for UpdatePullRequestReview""" + input: UpdatePullRequestReviewInput! + ): UpdatePullRequestReviewPayload + """Updates a pull request review comment.""" + updatePullRequestReviewComment( + """Parameters for UpdatePullRequestReviewComment""" + input: UpdatePullRequestReviewCommentInput! + ): UpdatePullRequestReviewCommentPayload + """Update a Git Ref.""" + updateRef( + """Parameters for UpdateRef""" + input: UpdateRefInput! + ): UpdateRefPayload + """ + Creates, updates and/or deletes multiple refs in a repository. + + This mutation takes a list of `RefUpdate`s and performs these updates + on the repository. All updates are performed atomically, meaning that + if one of them is rejected, no other ref will be modified. + + `RefUpdate.beforeOid` specifies that the given reference needs to point + to the given value before performing any updates. A value of + `0000000000000000000000000000000000000000` can be used to verify that + the references should not exist. + + `RefUpdate.afterOid` specifies the value that the given reference + will point to after performing all updates. A value of + `0000000000000000000000000000000000000000` can be used to delete a + reference. + + If `RefUpdate.force` is set to `true`, a non-fast-forward updates + for the given reference will be allowed. + """ + updateRefs( + """Parameters for UpdateRefs""" + input: UpdateRefsInput! + ): UpdateRefsPayload + """Update information about a repository.""" + updateRepository( + """Parameters for UpdateRepository""" + input: UpdateRepositoryInput! + ): UpdateRepositoryPayload + """Update a repository ruleset""" + updateRepositoryRuleset( + """Parameters for UpdateRepositoryRuleset""" + input: UpdateRepositoryRulesetInput! + ): UpdateRepositoryRulesetPayload + """ + Sets whether contributors are required to sign off on web-based commits for a repository. + """ + updateRepositoryWebCommitSignoffSetting( + """Parameters for UpdateRepositoryWebCommitSignoffSetting""" + input: UpdateRepositoryWebCommitSignoffSettingInput! + ): UpdateRepositoryWebCommitSignoffSettingPayload + """ + Change visibility of your sponsorship and opt in or out of email updates from the maintainer. + """ + updateSponsorshipPreferences( + """Parameters for UpdateSponsorshipPreferences""" + input: UpdateSponsorshipPreferencesInput! + ): UpdateSponsorshipPreferencesPayload + """Updates the state for subscribable subjects.""" + updateSubscription( + """Parameters for UpdateSubscription""" + input: UpdateSubscriptionInput! + ): UpdateSubscriptionPayload + """Updates a team discussion.""" + updateTeamDiscussion( + """Parameters for UpdateTeamDiscussion""" + input: UpdateTeamDiscussionInput! + ): UpdateTeamDiscussionPayload + """Updates a discussion comment.""" + updateTeamDiscussionComment( + """Parameters for UpdateTeamDiscussionComment""" + input: UpdateTeamDiscussionCommentInput! + ): UpdateTeamDiscussionCommentPayload + """Updates team review assignment.""" + updateTeamReviewAssignment( + """Parameters for UpdateTeamReviewAssignment""" + input: UpdateTeamReviewAssignmentInput! + ): UpdateTeamReviewAssignmentPayload + """Update team repository.""" + updateTeamsRepository( + """Parameters for UpdateTeamsRepository""" + input: UpdateTeamsRepositoryInput! + ): UpdateTeamsRepositoryPayload + """Replaces the repository's topics with the given topics.""" + updateTopics( + """Parameters for UpdateTopics""" + input: UpdateTopicsInput! + ): UpdateTopicsPayload + """Updates an existing user list.""" + updateUserList( + """Parameters for UpdateUserList""" + input: UpdateUserListInput! + ): UpdateUserListPayload + """Updates which of the viewer's lists an item belongs to""" + updateUserListsForItem( + """Parameters for UpdateUserListsForItem""" + input: UpdateUserListsForItemInput! + ): UpdateUserListsForItemPayload + """Verify that a verifiable domain has the expected DNS record.""" + verifyVerifiableDomain( + """Parameters for VerifyVerifiableDomain""" + input: VerifyVerifiableDomainInput! + ): VerifyVerifiableDomainPayload +} + +"""An object with an ID.""" +interface Node { + """ID of the object.""" + id: ID! +} + +"""The possible values for the notification restriction setting.""" +enum NotificationRestrictionSettingValue { + """The setting is disabled for the owner.""" + DISABLED + """The setting is enabled for the owner.""" + ENABLED +} + +""" +An OIDC identity provider configured to provision identities for an enterprise. +Visible to enterprise owners or enterprise owners' personal access tokens +(classic) with read:enterprise or admin:enterprise scope. +""" +type OIDCProvider implements Node { + """The enterprise this identity provider belongs to.""" + enterprise: Enterprise + """ExternalIdentities provisioned by this identity provider.""" + externalIdentities( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filter to external identities with the users login""" + login: String + """Filter to external identities with valid org membership only""" + membersOnly: Boolean + """Filter to external identities with the users userName/NameID attribute""" + userName: String + ): ExternalIdentityConnection! + """The Node ID of the OIDCProvider object""" + id: ID! + """The OIDC identity provider type""" + providerType: OIDCProviderType! + """The id of the tenant this provider is attached to""" + tenantId: String! +} + +"""The OIDC identity provider type""" +enum OIDCProviderType { + """Azure Active Directory""" + AAD +} + +"""Metadata for an audit entry with action oauth_application.*""" +interface OauthApplicationAuditEntryData { + """The name of the OAuth application.""" + oauthApplicationName: String + """The HTTP path for the OAuth application""" + oauthApplicationResourcePath: URI + """The HTTP URL for the OAuth application""" + oauthApplicationUrl: URI +} + +"""Audit log entry for a oauth_application.create event.""" +type OauthApplicationCreateAuditEntry implements AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The application URL of the OAuth application.""" + applicationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The callback URL of the OAuth application.""" + callbackUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OauthApplicationCreateAuditEntry object""" + id: ID! + """The name of the OAuth application.""" + oauthApplicationName: String + """The HTTP path for the OAuth application""" + oauthApplicationResourcePath: URI + """The HTTP URL for the OAuth application""" + oauthApplicationUrl: URI + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The rate limit of the OAuth application.""" + rateLimit: Int @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The state of the OAuth application.""" + state: OauthApplicationCreateAuditEntryState @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""The state of an OAuth application when it was created.""" +enum OauthApplicationCreateAuditEntryState { + """The OAuth application was active and allowed to have OAuth Accesses.""" + ACTIVE + """The OAuth application was in the process of being deleted.""" + PENDING_DELETION + """ + The OAuth application was suspended from generating OAuth Accesses due to abuse or security concerns. + """ + SUSPENDED +} + +"""The corresponding operation type for the action""" +enum OperationType { + """An existing resource was accessed""" + ACCESS + """A resource performed an authentication event""" + AUTHENTICATION + """A new resource was created""" + CREATE + """An existing resource was modified""" + MODIFY + """An existing resource was removed""" + REMOVE + """An existing resource was restored""" + RESTORE + """An existing resource was transferred between multiple resources""" + TRANSFER +} + +""" +Possible directions in which to order a list of items when provided an `orderBy` argument. +""" +enum OrderDirection { + """Specifies an ascending order for a given `orderBy` argument.""" + ASC + """Specifies a descending order for a given `orderBy` argument.""" + DESC +} + +"""Audit log entry for a org.add_billing_manager""" +type OrgAddBillingManagerAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgAddBillingManagerAuditEntry object""" + id: ID! + """ + The email address used to invite a billing manager for the organization. + """ + invitationEmail: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a org.add_member""" +type OrgAddMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgAddMemberAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The permission level of the member added to the organization.""" + permission: OrgAddMemberAuditEntryPermission @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""The permissions available to members on an Organization.""" +enum OrgAddMemberAuditEntryPermission { + """Can read, clone, push, and add collaborators to repositories.""" + ADMIN + """Can read and clone repositories.""" + READ +} + +"""Audit log entry for a org.block_user""" +type OrgBlockUserAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The blocked user.""" + blockedUser: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the blocked user.""" + blockedUserName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the blocked user.""" + blockedUserResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the blocked user.""" + blockedUserUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgBlockUserAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a org.config.disable_collaborators_only event.""" +type OrgConfigDisableCollaboratorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgConfigDisableCollaboratorsOnlyAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a org.config.enable_collaborators_only event.""" +type OrgConfigEnableCollaboratorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgConfigEnableCollaboratorsOnlyAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a org.create event.""" +type OrgCreateAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The billing plan for the Organization.""" + billingPlan: OrgCreateAuditEntryBillingPlan @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgCreateAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""The billing plans available for organizations.""" +enum OrgCreateAuditEntryBillingPlan { + """Team Plan""" + BUSINESS + """Enterprise Cloud Plan""" + BUSINESS_PLUS + """Free Plan""" + FREE + """Tiered Per Seat Plan""" + TIERED_PER_SEAT + """Legacy Unlimited Plan""" + UNLIMITED +} + +"""Audit log entry for a org.disable_oauth_app_restrictions event.""" +type OrgDisableOauthAppRestrictionsAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgDisableOauthAppRestrictionsAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a org.disable_saml event.""" +type OrgDisableSamlAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The SAML provider's digest algorithm URL.""" + digestMethodUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgDisableSamlAuditEntry object""" + id: ID! + """The SAML provider's issuer URL.""" + issuerUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The SAML provider's signature algorithm URL.""" + signatureMethodUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The SAML provider's single sign-on URL.""" + singleSignOnUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a org.disable_two_factor_requirement event.""" +type OrgDisableTwoFactorRequirementAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgDisableTwoFactorRequirementAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a org.enable_oauth_app_restrictions event.""" +type OrgEnableOauthAppRestrictionsAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgEnableOauthAppRestrictionsAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a org.enable_saml event.""" +type OrgEnableSamlAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The SAML provider's digest algorithm URL.""" + digestMethodUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgEnableSamlAuditEntry object""" + id: ID! + """The SAML provider's issuer URL.""" + issuerUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The SAML provider's signature algorithm URL.""" + signatureMethodUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The SAML provider's single sign-on URL.""" + singleSignOnUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a org.enable_two_factor_requirement event.""" +type OrgEnableTwoFactorRequirementAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgEnableTwoFactorRequirementAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Ordering options for an organization's enterprise owner connections.""" +input OrgEnterpriseOwnerOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order enterprise owners by.""" + field: OrgEnterpriseOwnerOrderField! +} + +"""Properties by which enterprise owners can be ordered.""" +enum OrgEnterpriseOwnerOrderField { + """Order enterprise owners by login.""" + LOGIN +} + +"""Audit log entry for a org.invite_member event.""" +type OrgInviteMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The email address of the organization invitation.""" + email: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgInviteMemberAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The organization invitation.""" + organizationInvitation: OrganizationInvitation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a org.invite_to_business event.""" +type OrgInviteToBusinessAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for this enterprise.""" + enterpriseResourcePath: URI + """The slug of the enterprise.""" + enterpriseSlug: String + """The HTTP URL for this enterprise.""" + enterpriseUrl: URI + """The Node ID of the OrgInviteToBusinessAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a org.oauth_app_access_approved event.""" +type OrgOauthAppAccessApprovedAuditEntry implements AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgOauthAppAccessApprovedAuditEntry object""" + id: ID! + """The name of the OAuth application.""" + oauthApplicationName: String + """The HTTP path for the OAuth application""" + oauthApplicationResourcePath: URI + """The HTTP URL for the OAuth application""" + oauthApplicationUrl: URI + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a org.oauth_app_access_blocked event.""" +type OrgOauthAppAccessBlockedAuditEntry implements AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgOauthAppAccessBlockedAuditEntry object""" + id: ID! + """The name of the OAuth application.""" + oauthApplicationName: String + """The HTTP path for the OAuth application""" + oauthApplicationResourcePath: URI + """The HTTP URL for the OAuth application""" + oauthApplicationUrl: URI + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a org.oauth_app_access_denied event.""" +type OrgOauthAppAccessDeniedAuditEntry implements AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgOauthAppAccessDeniedAuditEntry object""" + id: ID! + """The name of the OAuth application.""" + oauthApplicationName: String + """The HTTP path for the OAuth application""" + oauthApplicationResourcePath: URI + """The HTTP URL for the OAuth application""" + oauthApplicationUrl: URI + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a org.oauth_app_access_requested event.""" +type OrgOauthAppAccessRequestedAuditEntry implements AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgOauthAppAccessRequestedAuditEntry object""" + id: ID! + """The name of the OAuth application.""" + oauthApplicationName: String + """The HTTP path for the OAuth application""" + oauthApplicationResourcePath: URI + """The HTTP URL for the OAuth application""" + oauthApplicationUrl: URI + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a org.oauth_app_access_unblocked event.""" +type OrgOauthAppAccessUnblockedAuditEntry implements AuditEntry & Node & OauthApplicationAuditEntryData & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgOauthAppAccessUnblockedAuditEntry object""" + id: ID! + """The name of the OAuth application.""" + oauthApplicationName: String + """The HTTP path for the OAuth application""" + oauthApplicationResourcePath: URI + """The HTTP URL for the OAuth application""" + oauthApplicationUrl: URI + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a org.remove_billing_manager event.""" +type OrgRemoveBillingManagerAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgRemoveBillingManagerAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The reason for the billing manager being removed.""" + reason: OrgRemoveBillingManagerAuditEntryReason @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""The reason a billing manager was removed from an Organization.""" +enum OrgRemoveBillingManagerAuditEntryReason { + """SAML external identity missing""" + SAML_EXTERNAL_IDENTITY_MISSING + """SAML SSO enforcement requires an external identity""" + SAML_SSO_ENFORCEMENT_REQUIRES_EXTERNAL_IDENTITY + """ + The organization required 2FA of its billing managers and this user did not have 2FA enabled. + """ + TWO_FACTOR_REQUIREMENT_NON_COMPLIANCE +} + +"""Audit log entry for a org.remove_member event.""" +type OrgRemoveMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgRemoveMemberAuditEntry object""" + id: ID! + """The types of membership the member has with the organization.""" + membershipTypes: [OrgRemoveMemberAuditEntryMembershipType!] @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The reason for the member being removed.""" + reason: OrgRemoveMemberAuditEntryReason @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""The type of membership a user has with an Organization.""" +enum OrgRemoveMemberAuditEntryMembershipType { + """ + Organization owners have full access and can change several settings, + including the names of repositories that belong to the Organization and Owners + team membership. In addition, organization owners can delete the organization + and all of its repositories. + """ + ADMIN + """ + A billing manager is a user who manages the billing settings for the Organization, such as updating payment information. + """ + BILLING_MANAGER + """A direct member is a user that is a member of the Organization.""" + DIRECT_MEMBER + """ + An outside collaborator is a person who isn't explicitly a member of the + Organization, but who has Read, Write, or Admin permissions to one or more + repositories in the organization. + """ + OUTSIDE_COLLABORATOR + """A suspended member.""" + SUSPENDED + """ + An unaffiliated collaborator is a person who is not a member of the + Organization and does not have access to any repositories in the Organization. + """ + UNAFFILIATED +} + +"""The reason a member was removed from an Organization.""" +enum OrgRemoveMemberAuditEntryReason { + """SAML external identity missing""" + SAML_EXTERNAL_IDENTITY_MISSING + """SAML SSO enforcement requires an external identity""" + SAML_SSO_ENFORCEMENT_REQUIRES_EXTERNAL_IDENTITY + """User was removed from organization during account recovery""" + TWO_FACTOR_ACCOUNT_RECOVERY + """ + The organization required 2FA of its billing managers and this user did not have 2FA enabled. + """ + TWO_FACTOR_REQUIREMENT_NON_COMPLIANCE + """User account has been deleted""" + USER_ACCOUNT_DELETED +} + +"""Audit log entry for a org.remove_outside_collaborator event.""" +type OrgRemoveOutsideCollaboratorAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgRemoveOutsideCollaboratorAuditEntry object""" + id: ID! + """ + The types of membership the outside collaborator has with the organization. + """ + membershipTypes: [OrgRemoveOutsideCollaboratorAuditEntryMembershipType!] @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + The reason for the outside collaborator being removed from the Organization. + """ + reason: OrgRemoveOutsideCollaboratorAuditEntryReason @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""The type of membership a user has with an Organization.""" +enum OrgRemoveOutsideCollaboratorAuditEntryMembershipType { + """ + A billing manager is a user who manages the billing settings for the Organization, such as updating payment information. + """ + BILLING_MANAGER + """ + An outside collaborator is a person who isn't explicitly a member of the + Organization, but who has Read, Write, or Admin permissions to one or more + repositories in the organization. + """ + OUTSIDE_COLLABORATOR + """ + An unaffiliated collaborator is a person who is not a member of the + Organization and does not have access to any repositories in the organization. + """ + UNAFFILIATED +} + +"""The reason an outside collaborator was removed from an Organization.""" +enum OrgRemoveOutsideCollaboratorAuditEntryReason { + """SAML external identity missing""" + SAML_EXTERNAL_IDENTITY_MISSING + """ + The organization required 2FA of its billing managers and this user did not have 2FA enabled. + """ + TWO_FACTOR_REQUIREMENT_NON_COMPLIANCE +} + +"""Audit log entry for a org.restore_member event.""" +type OrgRestoreMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgRestoreMemberAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The number of custom email routings for the restored member.""" + restoredCustomEmailRoutingsCount: Int @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The number of issue assignments for the restored member.""" + restoredIssueAssignmentsCount: Int @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """Restored organization membership objects.""" + restoredMemberships: [OrgRestoreMemberAuditEntryMembership!] @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The number of restored memberships.""" + restoredMembershipsCount: Int @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The number of repositories of the restored member.""" + restoredRepositoriesCount: Int @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The number of starred repositories for the restored member.""" + restoredRepositoryStarsCount: Int @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The number of watched repositories for the restored member.""" + restoredRepositoryWatchesCount: Int @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Types of memberships that can be restored for an Organization member.""" +union OrgRestoreMemberAuditEntryMembership = OrgRestoreMemberMembershipOrganizationAuditEntryData | OrgRestoreMemberMembershipRepositoryAuditEntryData | OrgRestoreMemberMembershipTeamAuditEntryData + +"""Metadata for an organization membership for org.restore_member actions""" +type OrgRestoreMemberMembershipOrganizationAuditEntryData implements OrganizationAuditEntryData { + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Metadata for a repository membership for org.restore_member actions""" +type OrgRestoreMemberMembershipRepositoryAuditEntryData implements RepositoryAuditEntryData { + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI +} + +"""Metadata for a team membership for org.restore_member actions""" +type OrgRestoreMemberMembershipTeamAuditEntryData implements TeamAuditEntryData { + """The team associated with the action""" + team: Team + """The name of the team""" + teamName: String + """The HTTP path for this team""" + teamResourcePath: URI + """The HTTP URL for this team""" + teamUrl: URI +} + +"""Audit log entry for a org.unblock_user""" +type OrgUnblockUserAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user being unblocked by the organization.""" + blockedUser: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the blocked user.""" + blockedUserName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the blocked user.""" + blockedUserResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the blocked user.""" + blockedUserUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgUnblockUserAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a org.update_default_repository_permission""" +type OrgUpdateDefaultRepositoryPermissionAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + The Node ID of the OrgUpdateDefaultRepositoryPermissionAuditEntry object + """ + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The new base repository permission level for the organization.""" + permission: OrgUpdateDefaultRepositoryPermissionAuditEntryPermission @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The former base repository permission level for the organization.""" + permissionWas: OrgUpdateDefaultRepositoryPermissionAuditEntryPermission @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""The default permission a repository can have in an Organization.""" +enum OrgUpdateDefaultRepositoryPermissionAuditEntryPermission { + """Can read, clone, push, and add collaborators to repositories.""" + ADMIN + """No default permission value.""" + NONE + """Can read and clone repositories.""" + READ + """Can read, clone and push to repositories.""" + WRITE +} + +"""Audit log entry for a org.update_member event.""" +type OrgUpdateMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the OrgUpdateMemberAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The new member permission level for the organization.""" + permission: OrgUpdateMemberAuditEntryPermission @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The former member permission level for the organization.""" + permissionWas: OrgUpdateMemberAuditEntryPermission @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""The permissions available to members on an Organization.""" +enum OrgUpdateMemberAuditEntryPermission { + """Can read, clone, push, and add collaborators to repositories.""" + ADMIN + """Can read and clone repositories.""" + READ +} + +""" +Audit log entry for a org.update_member_repository_creation_permission event. +""" +type OrgUpdateMemberRepositoryCreationPermissionAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """Can members create repositories in the organization.""" + canCreateRepositories: Boolean @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + The Node ID of the OrgUpdateMemberRepositoryCreationPermissionAuditEntry object + """ + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + The permission for visibility level of repositories for this organization. + """ + visibility: OrgUpdateMemberRepositoryCreationPermissionAuditEntryVisibility @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""The permissions available for repository creation on an Organization.""" +enum OrgUpdateMemberRepositoryCreationPermissionAuditEntryVisibility { + """ + All organization members are restricted from creating any repositories. + """ + ALL + """ + All organization members are restricted from creating internal repositories. + """ + INTERNAL + """All organization members are allowed to create any repositories.""" + NONE + """ + All organization members are restricted from creating private repositories. + """ + PRIVATE + """ + All organization members are restricted from creating private or internal repositories. + """ + PRIVATE_INTERNAL + """ + All organization members are restricted from creating public repositories. + """ + PUBLIC + """ + All organization members are restricted from creating public or internal repositories. + """ + PUBLIC_INTERNAL + """ + All organization members are restricted from creating public or private repositories. + """ + PUBLIC_PRIVATE +} + +""" +Audit log entry for a org.update_member_repository_invitation_permission event. +""" +type OrgUpdateMemberRepositoryInvitationPermissionAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + Can outside collaborators be invited to repositories in the organization. + """ + canInviteOutsideCollaboratorsToRepositories: Boolean @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + The Node ID of the OrgUpdateMemberRepositoryInvitationPermissionAuditEntry object + """ + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +""" +An account on GitHub, with one or more owners, that has repositories, members and teams. +""" +type Organization implements Actor & MemberStatusable & Node & PackageOwner & ProfileOwner & ProjectOwner & ProjectV2Owner & ProjectV2Recent & RepositoryDiscussionAuthor & RepositoryDiscussionCommentAuthor & RepositoryOwner & Sponsorable & UniformResourceLocatable { + """ + The announcement banner set on this organization, if any. Only visible to members of the organization's enterprise. + """ + announcementBanner: AnnouncementBanner + """ + Determine if this repository owner has any items that can be pinned to their profile. + """ + anyPinnableItems( + """Filter to only a particular kind of pinnable item.""" + type: PinnableItemType + ): Boolean! + """Identifies the date and time when the organization was archived.""" + archivedAt: DateTime + """Audit log entries of the organization""" + auditLog( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for the returned audit log entries.""" + orderBy: AuditLogOrder = {direction: DESC, field: CREATED_AT} + """The query string to filter audit entries""" + query: String + ): OrganizationAuditEntryConnection! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A URL pointing to the organization's public avatar.""" + avatarUrl( + """The size of the resulting square image.""" + size: Int + ): URI! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int + """The organization's public profile description.""" + description: String + """The organization's public profile description rendered to HTML.""" + descriptionHTML: String + """A list of domains owned by the organization.""" + domains( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Filter by if the domain is approved.""" + isApproved: Boolean = null + """Filter by if the domain is verified.""" + isVerified: Boolean = null + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for verifiable domains returned.""" + orderBy: VerifiableDomainOrder = {direction: ASC, field: DOMAIN} + ): VerifiableDomainConnection + """The organization's public email.""" + email: String + """A list of owners of the organization's enterprise account.""" + enterpriseOwners( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for enterprise owners returned from the connection.""" + orderBy: OrgEnterpriseOwnerOrder = {direction: ASC, field: LOGIN} + """The organization role to filter by.""" + organizationRole: RoleInOrganization + """The search string to look for.""" + query: String + ): OrganizationEnterpriseOwnerConnection! + """ + The estimated next GitHub Sponsors payout for this user/organization in cents (USD). + """ + estimatedNextSponsorsPayoutInCents: Int! + """True if this user/organization has a GitHub Sponsors listing.""" + hasSponsorsListing: Boolean! + """The Node ID of the Organization object""" + id: ID! + """The interaction ability settings for this organization.""" + interactionAbility: RepositoryInteractionAbility + """ + The setting value for whether the organization has an IP allow list enabled. + """ + ipAllowListEnabledSetting: IpAllowListEnabledSettingValue! + """ + The IP addresses that are allowed to access resources owned by the organization. + """ + ipAllowListEntries( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for IP allow list entries returned.""" + orderBy: IpAllowListEntryOrder = {direction: ASC, field: ALLOW_LIST_VALUE} + ): IpAllowListEntryConnection! + """ + The setting value for whether the organization has IP allow list configuration for installed GitHub Apps enabled. + """ + ipAllowListForInstalledAppsEnabledSetting: IpAllowListForInstalledAppsEnabledSettingValue! + """Whether the given account is sponsoring this user/organization.""" + isSponsoredBy( + """The target account's login.""" + accountLogin: String! + ): Boolean! + """True if the viewer is sponsored by this user/organization.""" + isSponsoringViewer: Boolean! + """Whether the organization has verified its profile email and website.""" + isVerified: Boolean! + """A list of the organization's issue types""" + issueTypes( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for issue types returned from the connection.""" + orderBy: IssueTypeOrder = {direction: ASC, field: CREATED_AT} + ): IssueTypeConnection + """ + Showcases a selection of repositories and gists that the profile owner has + either curated or that have been selected automatically based on popularity. + """ + itemShowcase: ProfileItemShowcase! + """ + Calculate how much each sponsor has ever paid total to this maintainer via + GitHub Sponsors. Does not include sponsorships paid via Patreon. + """ + lifetimeReceivedSponsorshipValues( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for results returned from the connection.""" + orderBy: SponsorAndLifetimeValueOrder = {direction: ASC, field: SPONSOR_LOGIN} + ): SponsorAndLifetimeValueConnection! + """The organization's public profile location.""" + location: String + """The organization's login name.""" + login: String! + """A list of all mannequins for this organization.""" + mannequins( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filter mannequins by login.""" + login: String + """Ordering options for mannequins returned from the connection.""" + orderBy: MannequinOrder = {direction: ASC, field: CREATED_AT} + ): MannequinConnection! + """ + Get the status messages members of this entity have set that are either public or visible only to the organization. + """ + memberStatuses( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for user statuses returned from the connection.""" + orderBy: UserStatusOrder = {direction: DESC, field: UPDATED_AT} + ): UserStatusConnection! + """Members can fork private repositories in this organization""" + membersCanForkPrivateRepositories: Boolean! + """A list of users who are members of this organization.""" + membersWithRole( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): OrganizationMemberConnection! + """ + The estimated monthly GitHub Sponsors income for this user/organization in cents (USD). + """ + monthlyEstimatedSponsorsIncomeInCents: Int! + """The organization's public profile name.""" + name: String + """The HTTP path creating a new team""" + newTeamResourcePath: URI! + """The HTTP URL creating a new team""" + newTeamUrl: URI! + """ + Indicates if email notification delivery for this organization is restricted to verified or approved domains. + """ + notificationDeliveryRestrictionEnabledSetting: NotificationRestrictionSettingValue! + """The billing email for the organization.""" + organizationBillingEmail: String + """A list of packages under the owner.""" + packages( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Find packages by their names.""" + names: [String] + """Ordering of the returned packages.""" + orderBy: PackageOrder = {direction: DESC, field: CREATED_AT} + """Filter registry package by type.""" + packageType: PackageType + """Find packages in a repository by ID.""" + repositoryId: ID + ): PackageConnection! + """A list of users who have been invited to join this organization.""" + pendingMembers( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserConnection! + """ + A list of repositories and gists this profile owner can pin to their profile. + """ + pinnableItems( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filter the types of pinnable items that are returned.""" + types: [PinnableItemType!] + ): PinnableItemConnection! + """ + A list of repositories and gists this profile owner has pinned to their profile + """ + pinnedItems( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filter the types of pinned items that are returned.""" + types: [PinnableItemType!] + ): PinnableItemConnection! + """ + Returns how many more items this profile owner can pin to their profile. + """ + pinnedItemsRemaining: Int! + """Find project by number.""" + project( + """The project number to find.""" + number: Int! + ): Project @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Find a project by number.""" + projectV2( + """The project number.""" + number: Int! + ): ProjectV2 + """A list of projects under the owner.""" + projects( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for projects returned from the connection""" + orderBy: ProjectOrder + """Query to search projects by, currently only searching by name.""" + search: String + """A list of states to filter the projects by.""" + states: [ProjectState!] + ): ProjectConnection! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The HTTP path listing organization's projects""" + projectsResourcePath: URI! + """The HTTP URL listing organization's projects""" + projectsUrl: URI! + """A list of projects under the owner.""" + projectsV2( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filter projects based on user role.""" + minPermissionLevel: ProjectV2PermissionLevel = READ + """How to order the returned projects.""" + orderBy: ProjectV2Order = {direction: DESC, field: NUMBER} + """A project to search for under the owner.""" + query: String + ): ProjectV2Connection! + """ + Recent projects that this user has modified in the context of the owner. + """ + recentProjects( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectV2Connection! + """A list of repositories that the user owns.""" + repositories( + """ + Array of viewer's affiliation options for repositories returned from the + connection. For example, OWNER will include only repositories that the + current viewer owns. + """ + affiliations: [RepositoryAffiliation] + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """ + If non-null, filters repositories according to whether they have issues enabled + """ + hasIssuesEnabled: Boolean + """ + If non-null, filters repositories according to whether they are archived and not maintained + """ + isArchived: Boolean + """ + If non-null, filters repositories according to whether they are forks of another repository + """ + isFork: Boolean + """ + If non-null, filters repositories according to whether they have been locked + """ + isLocked: Boolean + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for repositories returned from the connection""" + orderBy: RepositoryOrder + """ + Array of owner's affiliation options for repositories returned from the + connection. For example, OWNER will include only repositories that the + organization or user being viewed owns. + """ + ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR] + """ + If non-null, filters repositories according to privacy. Internal + repositories are considered private; consider using the visibility argument + if only internal repositories are needed. Cannot be combined with the + visibility argument. + """ + privacy: RepositoryPrivacy + """ + If non-null, filters repositories according to visibility. Cannot be combined with the privacy argument. + """ + visibility: RepositoryVisibility + ): RepositoryConnection! + """Find Repository.""" + repository( + """ + Follow repository renames. If disabled, a repository referenced by its old name will return an error. + """ + followRenames: Boolean = true + """Name of Repository to find.""" + name: String! + ): Repository + """Discussion comments this user has authored.""" + repositoryDiscussionComments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Filter discussion comments to only those that were marked as the answer + """ + onlyAnswers: Boolean = false + """Filter discussion comments to only those in a specific repository.""" + repositoryId: ID + ): DiscussionCommentConnection! + """Discussions this user has started.""" + repositoryDiscussions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Filter discussions to only those that have been answered or not. Defaults to + including both answered and unanswered discussions. + """ + answered: Boolean = null + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for discussions returned from the connection.""" + orderBy: DiscussionOrder = {direction: DESC, field: CREATED_AT} + """Filter discussions to only those in a specific repository.""" + repositoryId: ID + """A list of states to filter the discussions by.""" + states: [DiscussionState!] = [] + ): DiscussionConnection! + """A list of all repository migrations for this organization.""" + repositoryMigrations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for repository migrations returned.""" + orderBy: RepositoryMigrationOrder = {direction: ASC, field: CREATED_AT} + """Filter repository migrations by repository name.""" + repositoryName: String + """Filter repository migrations by state.""" + state: MigrationState + ): RepositoryMigrationConnection! + """ + When true the organization requires all members, billing managers, and outside + collaborators to enable two-factor authentication. + """ + requiresTwoFactorAuthentication: Boolean + """The HTTP path for this organization.""" + resourcePath: URI! + """Returns a single ruleset from the current organization by ID.""" + ruleset( + """The ID of the ruleset to be returned.""" + databaseId: Int! + """ + Include rulesets configured at higher levels that apply to this organization. + """ + includeParents: Boolean = true + ): RepositoryRuleset + """A list of rulesets for this organization.""" + rulesets( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """ + Return rulesets configured at higher levels that apply to this organization + """ + includeParents: Boolean = true + """Returns the last _n_ elements from the list.""" + last: Int + """Return rulesets that apply to the specified target""" + targets: [RepositoryRulesetTarget!] = null + ): RepositoryRulesetConnection + """ + The Organization's SAML identity provider. Visible to (1) organization owners, + (2) organization owners' personal access tokens (classic) with read:org or + admin:org scope, (3) GitHub App with an installation token with read or write + access to members. + """ + samlIdentityProvider: OrganizationIdentityProvider + """List of users and organizations this entity is sponsoring.""" + sponsoring( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Ordering options for the users and organizations returned from the connection. + """ + orderBy: SponsorOrder = {direction: DESC, field: RELEVANCE} + ): SponsorConnection! + """List of sponsors for this user or organization.""" + sponsors( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for sponsors returned from the connection.""" + orderBy: SponsorOrder = {direction: DESC, field: RELEVANCE} + """ + If given, will filter for sponsors at the given tier. Will only return + sponsors whose tier the viewer is permitted to see. + """ + tierId: ID + ): SponsorConnection! + """Events involving this sponsorable, such as new sponsorships.""" + sponsorsActivities( + """Filter activities to only the specified actions.""" + actions: [SponsorsActivityAction!] = [] + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """ + Whether to include those events where this sponsorable acted as the sponsor. + Defaults to only including events where this sponsorable was the recipient + of a sponsorship. + """ + includeAsSponsor: Boolean = false + """ + Whether or not to include private activities in the result set. Defaults to including public and private activities. + """ + includePrivate: Boolean = true + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for activity returned from the connection.""" + orderBy: SponsorsActivityOrder = {direction: DESC, field: TIMESTAMP} + """ + Filter activities returned to only those that occurred in the most recent + specified time period. Set to ALL to avoid filtering by when the activity + occurred. Will be ignored if `since` or `until` is given. + """ + period: SponsorsActivityPeriod = MONTH + """Filter activities to those that occurred on or after this time.""" + since: DateTime + """Filter activities to those that occurred before this time.""" + until: DateTime + ): SponsorsActivityConnection! + """The GitHub Sponsors listing for this user or organization.""" + sponsorsListing: SponsorsListing + """ + The sponsorship from the viewer to this user/organization; that is, the sponsorship where you're the sponsor. + """ + sponsorshipForViewerAsSponsor( + """ + Whether to return the sponsorship only if it's still active. Pass false to + get the viewer's sponsorship back even if it has been cancelled. + """ + activeOnly: Boolean = true + ): Sponsorship + """ + The sponsorship from this user/organization to the viewer; that is, the sponsorship you're receiving. + """ + sponsorshipForViewerAsSponsorable( + """ + Whether to return the sponsorship only if it's still active. Pass false to + get the sponsorship back even if it has been cancelled. + """ + activeOnly: Boolean = true + ): Sponsorship + """List of sponsorship updates sent from this sponsorable to sponsors.""" + sponsorshipNewsletters( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for sponsorship updates returned from the connection.""" + orderBy: SponsorshipNewsletterOrder = {direction: DESC, field: CREATED_AT} + ): SponsorshipNewsletterConnection! + """ + The sponsorships where this user or organization is the maintainer receiving the funds. + """ + sponsorshipsAsMaintainer( + """ + Whether to include only sponsorships that are active right now, versus all + sponsorships this maintainer has ever received. + """ + activeOnly: Boolean = true + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Whether or not to include private sponsorships in the result set""" + includePrivate: Boolean = false + """Returns the last _n_ elements from the list.""" + last: Int + """ + Ordering options for sponsorships returned from this connection. If left + blank, the sponsorships will be ordered based on relevancy to the viewer. + """ + orderBy: SponsorshipOrder + ): SponsorshipConnection! + """The sponsorships where this user or organization is the funder.""" + sponsorshipsAsSponsor( + """ + Whether to include only sponsorships that are active right now, versus all sponsorships this sponsor has ever made. + """ + activeOnly: Boolean = true + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Filter sponsorships returned to those for the specified maintainers. That + is, the recipient of the sponsorship is a user or organization with one of + the given logins. + """ + maintainerLogins: [String!] + """ + Ordering options for sponsorships returned from this connection. If left + blank, the sponsorships will be ordered based on relevancy to the viewer. + """ + orderBy: SponsorshipOrder + ): SponsorshipConnection! + """Find an organization's team by its slug.""" + team( + """The name or slug of the team to find.""" + slug: String! + ): Team + """A list of teams in this organization.""" + teams( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + If true, filters teams that are mapped to an LDAP Group (Enterprise only) + """ + ldapMapped: Boolean + """If non-null, filters teams according to notification setting""" + notificationSetting: TeamNotificationSetting + """Ordering options for teams returned from the connection""" + orderBy: TeamOrder + """If non-null, filters teams according to privacy""" + privacy: TeamPrivacy + """If non-null, filters teams with query on team name and team slug""" + query: String + """ + If non-null, filters teams according to whether the viewer is an admin or member on team + """ + role: TeamRole + """If true, restrict to only root teams""" + rootTeamsOnly: Boolean = false + """User logins to filter by""" + userLogins: [String!] + ): TeamConnection! + """The HTTP path listing organization's teams""" + teamsResourcePath: URI! + """The HTTP URL listing organization's teams""" + teamsUrl: URI! + """ + The amount in United States cents (e.g., 500 = $5.00 USD) that this entity has + spent on GitHub to fund sponsorships. Only returns a value when viewed by the + user themselves or by a user who can manage sponsorships for the requested organization. + """ + totalSponsorshipAmountAsSponsorInCents( + """Filter payments to those that occurred on or after this time.""" + since: DateTime + """ + Filter payments to those made to the users or organizations with the specified usernames. + """ + sponsorableLogins: [String!] = [] + """Filter payments to those that occurred before this time.""" + until: DateTime + ): Int + """The organization's Twitter username.""" + twitterUsername: String + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The HTTP URL for this organization.""" + url: URI! + """Organization is adminable by the viewer.""" + viewerCanAdminister: Boolean! + """Can the viewer pin repositories and gists to the profile?""" + viewerCanChangePinnedItems: Boolean! + """Can the current viewer create new projects on this owner.""" + viewerCanCreateProjects: Boolean! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Viewer can create repositories on this organization""" + viewerCanCreateRepositories: Boolean! + """Viewer can create teams on this organization.""" + viewerCanCreateTeams: Boolean! + """Whether or not the viewer is able to sponsor this user/organization.""" + viewerCanSponsor: Boolean! + """Viewer is an active member of this organization.""" + viewerIsAMember: Boolean! + """Whether or not this Organization is followed by the viewer.""" + viewerIsFollowing: Boolean! + """True if the viewer is sponsoring this user/organization.""" + viewerIsSponsoring: Boolean! + """ + Whether contributors are required to sign off on web-based commits for repositories in this organization. + """ + webCommitSignoffRequired: Boolean! + """The organization's public profile URL.""" + websiteUrl: URI +} + +"""An audit entry in an organization audit log.""" +union OrganizationAuditEntry = MembersCanDeleteReposClearAuditEntry | MembersCanDeleteReposDisableAuditEntry | MembersCanDeleteReposEnableAuditEntry | OauthApplicationCreateAuditEntry | OrgAddBillingManagerAuditEntry | OrgAddMemberAuditEntry | OrgBlockUserAuditEntry | OrgConfigDisableCollaboratorsOnlyAuditEntry | OrgConfigEnableCollaboratorsOnlyAuditEntry | OrgCreateAuditEntry | OrgDisableOauthAppRestrictionsAuditEntry | OrgDisableSamlAuditEntry | OrgDisableTwoFactorRequirementAuditEntry | OrgEnableOauthAppRestrictionsAuditEntry | OrgEnableSamlAuditEntry | OrgEnableTwoFactorRequirementAuditEntry | OrgInviteMemberAuditEntry | OrgInviteToBusinessAuditEntry | OrgOauthAppAccessApprovedAuditEntry | OrgOauthAppAccessBlockedAuditEntry | OrgOauthAppAccessDeniedAuditEntry | OrgOauthAppAccessRequestedAuditEntry | OrgOauthAppAccessUnblockedAuditEntry | OrgRemoveBillingManagerAuditEntry | OrgRemoveMemberAuditEntry | OrgRemoveOutsideCollaboratorAuditEntry | OrgRestoreMemberAuditEntry | OrgUnblockUserAuditEntry | OrgUpdateDefaultRepositoryPermissionAuditEntry | OrgUpdateMemberAuditEntry | OrgUpdateMemberRepositoryCreationPermissionAuditEntry | OrgUpdateMemberRepositoryInvitationPermissionAuditEntry | PrivateRepositoryForkingDisableAuditEntry | PrivateRepositoryForkingEnableAuditEntry | RepoAccessAuditEntry | RepoAddMemberAuditEntry | RepoAddTopicAuditEntry | RepoArchivedAuditEntry | RepoChangeMergeSettingAuditEntry | RepoConfigDisableAnonymousGitAccessAuditEntry | RepoConfigDisableCollaboratorsOnlyAuditEntry | RepoConfigDisableContributorsOnlyAuditEntry | RepoConfigDisableSockpuppetDisallowedAuditEntry | RepoConfigEnableAnonymousGitAccessAuditEntry | RepoConfigEnableCollaboratorsOnlyAuditEntry | RepoConfigEnableContributorsOnlyAuditEntry | RepoConfigEnableSockpuppetDisallowedAuditEntry | RepoConfigLockAnonymousGitAccessAuditEntry | RepoConfigUnlockAnonymousGitAccessAuditEntry | RepoCreateAuditEntry | RepoDestroyAuditEntry | RepoRemoveMemberAuditEntry | RepoRemoveTopicAuditEntry | RepositoryVisibilityChangeDisableAuditEntry | RepositoryVisibilityChangeEnableAuditEntry | TeamAddMemberAuditEntry | TeamAddRepositoryAuditEntry | TeamChangeParentTeamAuditEntry | TeamRemoveMemberAuditEntry | TeamRemoveRepositoryAuditEntry + +"""The connection type for OrganizationAuditEntry.""" +type OrganizationAuditEntryConnection { + """A list of edges.""" + edges: [OrganizationAuditEntryEdge] + """A list of nodes.""" + nodes: [OrganizationAuditEntry] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""Metadata for an audit entry with action org.*""" +interface OrganizationAuditEntryData { + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""An edge in a connection.""" +type OrganizationAuditEntryEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: OrganizationAuditEntry +} + +"""A list of organizations managed by an enterprise.""" +type OrganizationConnection { + """A list of edges.""" + edges: [OrganizationEdge] + """A list of nodes.""" + nodes: [Organization] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type OrganizationEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Organization +} + +"""The connection type for User.""" +type OrganizationEnterpriseOwnerConnection { + """A list of edges.""" + edges: [OrganizationEnterpriseOwnerEdge] + """A list of nodes.""" + nodes: [User] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +""" +An enterprise owner in the context of an organization that is part of the enterprise. +""" +type OrganizationEnterpriseOwnerEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: User + """The role of the owner with respect to the organization.""" + organizationRole: RoleInOrganization! +} + +""" +An Identity Provider configured to provision SAML and SCIM identities for +Organizations. Visible to (1) organization owners, (2) organization owners' +personal access tokens (classic) with read:org or admin:org scope, (3) GitHub +App with an installation token with read or write access to members. +""" +type OrganizationIdentityProvider implements Node { + """ + The digest algorithm used to sign SAML requests for the Identity Provider. + """ + digestMethod: URI + """External Identities provisioned by this Identity Provider""" + externalIdentities( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filter to external identities with the users login""" + login: String + """Filter to external identities with valid org membership only""" + membersOnly: Boolean + """Filter to external identities with the users userName/NameID attribute""" + userName: String + ): ExternalIdentityConnection! + """The Node ID of the OrganizationIdentityProvider object""" + id: ID! + """ + The x509 certificate used by the Identity Provider to sign assertions and responses. + """ + idpCertificate: X509Certificate + """The Issuer Entity ID for the SAML Identity Provider""" + issuer: String + """Organization this Identity Provider belongs to""" + organization: Organization + """ + The signature algorithm used to sign SAML requests for the Identity Provider. + """ + signatureMethod: URI + """The URL endpoint for the Identity Provider's SAML SSO.""" + ssoUrl: URI +} + +"""An Invitation for a user to an organization.""" +type OrganizationInvitation implements Node { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The email address of the user invited to the organization.""" + email: String + """The Node ID of the OrganizationInvitation object""" + id: ID! + """The source of the invitation.""" + invitationSource: OrganizationInvitationSource! + """The type of invitation that was sent (e.g. email, user).""" + invitationType: OrganizationInvitationType! + """The user who was invited to the organization.""" + invitee: User + """The user who created the invitation.""" + inviter: User! @deprecated(reason: "`inviter` will be removed. `inviter` will be replaced by `inviterActor`. Removal on 2024-07-01 UTC.") + """The user who created the invitation.""" + inviterActor: User + """The organization the invite is for""" + organization: Organization! + """The user's pending role in the organization (e.g. member, owner).""" + role: OrganizationInvitationRole! +} + +"""The connection type for OrganizationInvitation.""" +type OrganizationInvitationConnection { + """A list of edges.""" + edges: [OrganizationInvitationEdge] + """A list of nodes.""" + nodes: [OrganizationInvitation] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type OrganizationInvitationEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: OrganizationInvitation +} + +"""The possible organization invitation roles.""" +enum OrganizationInvitationRole { + """The user is invited to be an admin of the organization.""" + ADMIN + """The user is invited to be a billing manager of the organization.""" + BILLING_MANAGER + """The user is invited to be a direct member of the organization.""" + DIRECT_MEMBER + """The user's previous role will be reinstated.""" + REINSTATE +} + +"""The possible organization invitation sources.""" +enum OrganizationInvitationSource { + """The invitation was created from the web interface or from API""" + MEMBER + """The invitation was created from SCIM""" + SCIM + """The invitation was sent before this feature was added""" + UNKNOWN +} + +"""The possible organization invitation types.""" +enum OrganizationInvitationType { + """The invitation was to an email address.""" + EMAIL + """The invitation was to an existing user.""" + USER +} + +"""A list of users who belong to the organization.""" +type OrganizationMemberConnection { + """A list of edges.""" + edges: [OrganizationMemberEdge] + """A list of nodes.""" + nodes: [User] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""Represents a user within an organization.""" +type OrganizationMemberEdge { + """A cursor for use in pagination.""" + cursor: String! + """ + Whether the organization member has two factor enabled or not. Returns null if information is not available to viewer. + """ + hasTwoFactorEnabled: Boolean + """The item at the end of the edge.""" + node: User + """The role this user has in the organization.""" + role: OrganizationMemberRole +} + +"""The possible roles within an organization for its members.""" +enum OrganizationMemberRole { + """The user is an administrator of the organization.""" + ADMIN + """The user is a member of the organization.""" + MEMBER +} + +""" +The possible values for the members can create repositories setting on an organization. +""" +enum OrganizationMembersCanCreateRepositoriesSettingValue { + """Members will be able to create public and private repositories.""" + ALL + """Members will not be able to create public or private repositories.""" + DISABLED + """Members will be able to create only internal repositories.""" + INTERNAL + """Members will be able to create only private repositories.""" + PRIVATE +} + +"""A GitHub Enterprise Importer (GEI) organization migration.""" +type OrganizationMigration implements Node { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: String + """The reason the organization migration failed.""" + failureReason: String + """The Node ID of the OrganizationMigration object""" + id: ID! + """The remaining amount of repos to be migrated.""" + remainingRepositoriesCount: Int + """The name of the source organization to be migrated.""" + sourceOrgName: String! + """The URL of the source organization to migrate.""" + sourceOrgUrl: URI! + """The migration state.""" + state: OrganizationMigrationState! + """The name of the target organization.""" + targetOrgName: String! + """The total amount of repositories to be migrated.""" + totalRepositoriesCount: Int +} + +"""The Octoshift Organization migration state.""" +enum OrganizationMigrationState { + """The Octoshift migration has failed.""" + FAILED + """The Octoshift migration has invalid credentials.""" + FAILED_VALIDATION + """The Octoshift migration is in progress.""" + IN_PROGRESS + """The Octoshift migration has not started.""" + NOT_STARTED + """The Octoshift migration needs to have its credentials validated.""" + PENDING_VALIDATION + """The Octoshift migration is performing post repository migrations.""" + POST_REPO_MIGRATION + """The Octoshift migration is performing pre repository migrations.""" + PRE_REPO_MIGRATION + """The Octoshift migration has been queued.""" + QUEUED + """The Octoshift org migration is performing repository migrations.""" + REPO_MIGRATION + """The Octoshift migration has succeeded.""" + SUCCEEDED +} + +"""Used for argument of CreateProjectV2 mutation.""" +union OrganizationOrUser = Organization | User + +"""Ordering options for organization connections.""" +input OrganizationOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order organizations by.""" + field: OrganizationOrderField! +} + +"""Properties by which organization connections can be ordered.""" +enum OrganizationOrderField { + """Order organizations by creation time""" + CREATED_AT + """Order organizations by login""" + LOGIN +} + +"""An organization teams hovercard context""" +type OrganizationTeamsHovercardContext implements HovercardContext { + """A string describing this context""" + message: String! + """An octicon to accompany this context""" + octicon: String! + """Teams in this organization the user is a member of that are relevant""" + relevantTeams( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): TeamConnection! + """The path for the full team list for this user""" + teamsResourcePath: URI! + """The URL for the full team list for this user""" + teamsUrl: URI! + """The total number of teams the user is on in the organization""" + totalTeamCount: Int! +} + +"""An organization list hovercard context""" +type OrganizationsHovercardContext implements HovercardContext { + """A string describing this context""" + message: String! + """An octicon to accompany this context""" + octicon: String! + """Organizations this user is a member of that are relevant""" + relevantOrganizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for the User's organizations.""" + orderBy: OrganizationOrder = null + ): OrganizationConnection! + """The total number of organizations this user is in""" + totalOrganizationCount: Int! +} + +"""Information for an uploaded package.""" +type Package implements Node { + """The Node ID of the Package object""" + id: ID! + """Find the latest version for the package.""" + latestVersion: PackageVersion + """Identifies the name of the package.""" + name: String! + """Identifies the type of the package.""" + packageType: PackageType! + """The repository this package belongs to.""" + repository: Repository + """Statistics about package activity.""" + statistics: PackageStatistics + """Find package version by version string.""" + version( + """The package version.""" + version: String! + ): PackageVersion + """list of versions for this package""" + versions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering of the returned packages.""" + orderBy: PackageVersionOrder = {direction: DESC, field: CREATED_AT} + ): PackageVersionConnection! +} + +"""The connection type for Package.""" +type PackageConnection { + """A list of edges.""" + edges: [PackageEdge] + """A list of nodes.""" + nodes: [Package] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type PackageEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Package +} + +"""A file in a package version.""" +type PackageFile implements Node { + """The Node ID of the PackageFile object""" + id: ID! + """MD5 hash of the file.""" + md5: String + """Name of the file.""" + name: String! + """The package version this file belongs to.""" + packageVersion: PackageVersion + """SHA1 hash of the file.""" + sha1: String + """SHA256 hash of the file.""" + sha256: String + """Size of the file in bytes.""" + size: Int + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """URL to download the asset.""" + url: URI +} + +"""The connection type for PackageFile.""" +type PackageFileConnection { + """A list of edges.""" + edges: [PackageFileEdge] + """A list of nodes.""" + nodes: [PackageFile] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type PackageFileEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: PackageFile +} + +"""Ways in which lists of package files can be ordered upon return.""" +input PackageFileOrder { + """The direction in which to order package files by the specified field.""" + direction: OrderDirection + """The field in which to order package files by.""" + field: PackageFileOrderField +} + +"""Properties by which package file connections can be ordered.""" +enum PackageFileOrderField { + """Order package files by creation time""" + CREATED_AT +} + +"""Ways in which lists of packages can be ordered upon return.""" +input PackageOrder { + """The direction in which to order packages by the specified field.""" + direction: OrderDirection + """The field in which to order packages by.""" + field: PackageOrderField +} + +"""Properties by which package connections can be ordered.""" +enum PackageOrderField { + """Order packages by creation time""" + CREATED_AT +} + +"""Represents an owner of a package.""" +interface PackageOwner { + """The Node ID of the PackageOwner object""" + id: ID! + """A list of packages under the owner.""" + packages( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Find packages by their names.""" + names: [String] + """Ordering of the returned packages.""" + orderBy: PackageOrder = {direction: DESC, field: CREATED_AT} + """Filter registry package by type.""" + packageType: PackageType + """Find packages in a repository by ID.""" + repositoryId: ID + ): PackageConnection! +} + +""" +Represents a object that contains package activity statistics such as downloads. +""" +type PackageStatistics { + """Number of times the package was downloaded since it was created.""" + downloadsTotalCount: Int! +} + +"""A version tag contains the mapping between a tag name and a version.""" +type PackageTag implements Node { + """The Node ID of the PackageTag object""" + id: ID! + """Identifies the tag name of the version.""" + name: String! + """Version that the tag is associated with.""" + version: PackageVersion +} + +"""The possible types of a package.""" +enum PackageType { + """A debian package.""" + DEBIAN + """A docker image.""" + DOCKER @deprecated(reason: "DOCKER will be removed from this enum as this type will be migrated to only be used by the Packages REST API. Removal on 2021-06-21 UTC.") + """A maven package.""" + MAVEN @deprecated(reason: "MAVEN will be removed from this enum as this type will be migrated to only be used by the Packages REST API. Removal on 2023-02-10 UTC.") + """An npm package.""" + NPM @deprecated(reason: "NPM will be removed from this enum as this type will be migrated to only be used by the Packages REST API. Removal on 2022-11-21 UTC.") + """A nuget package.""" + NUGET @deprecated(reason: "NUGET will be removed from this enum as this type will be migrated to only be used by the Packages REST API. Removal on 2022-11-21 UTC.") + """A python package.""" + PYPI + """A rubygems package.""" + RUBYGEMS @deprecated(reason: "RUBYGEMS will be removed from this enum as this type will be migrated to only be used by the Packages REST API. Removal on 2022-12-28 UTC.") +} + +"""Information about a specific package version.""" +type PackageVersion implements Node { + """List of files associated with this package version""" + files( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering of the returned package files.""" + orderBy: PackageFileOrder = {direction: ASC, field: CREATED_AT} + ): PackageFileConnection! + """The Node ID of the PackageVersion object""" + id: ID! + """The package associated with this version.""" + package: Package + """The platform this version was built for.""" + platform: String + """Whether or not this version is a pre-release.""" + preRelease: Boolean! + """The README of this package version.""" + readme: String + """The release associated with this package version.""" + release: Release + """Statistics about package activity.""" + statistics: PackageVersionStatistics + """The package version summary.""" + summary: String + """The version string.""" + version: String! +} + +"""The connection type for PackageVersion.""" +type PackageVersionConnection { + """A list of edges.""" + edges: [PackageVersionEdge] + """A list of nodes.""" + nodes: [PackageVersion] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type PackageVersionEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: PackageVersion +} + +"""Ways in which lists of package versions can be ordered upon return.""" +input PackageVersionOrder { + """ + The direction in which to order package versions by the specified field. + """ + direction: OrderDirection + """The field in which to order package versions by.""" + field: PackageVersionOrderField +} + +"""Properties by which package version connections can be ordered.""" +enum PackageVersionOrderField { + """Order package versions by creation time""" + CREATED_AT +} + +""" +Represents a object that contains package version activity statistics such as downloads. +""" +type PackageVersionStatistics { + """Number of times the package was downloaded since it was created.""" + downloadsTotalCount: Int! +} + +"""Information about pagination in a connection.""" +type PageInfo { + """When paginating forwards, the cursor to continue.""" + endCursor: String + """When paginating forwards, are there more items?""" + hasNextPage: Boolean! + """When paginating backwards, are there more items?""" + hasPreviousPage: Boolean! + """When paginating backwards, the cursor to continue.""" + startCursor: String +} + +"""Represents a 'parent_issue_added' event on a given issue.""" +type ParentIssueAddedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the ParentIssueAddedEvent object""" + id: ID! + """The parent issue added.""" + parent: Issue +} + +"""Represents a 'parent_issue_removed' event on a given issue.""" +type ParentIssueRemovedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the ParentIssueRemovedEvent object""" + id: ID! + """The parent issue removed.""" + parent: Issue +} + +"""The possible types of patch statuses.""" +enum PatchStatus { + """The file was added. Git status 'A'.""" + ADDED + """The file's type was changed. Git status 'T'.""" + CHANGED + """The file was copied. Git status 'C'.""" + COPIED + """The file was deleted. Git status 'D'.""" + DELETED + """The file's contents were changed. Git status 'M'.""" + MODIFIED + """The file was renamed. Git status 'R'.""" + RENAMED +} + +"""Types that can grant permissions on a repository to a user""" +union PermissionGranter = Organization | Repository | Team + +"""A level of permission and source for a user's access to a repository.""" +type PermissionSource { + """The organization the repository belongs to.""" + organization: Organization! + """The level of access this source has granted to the user.""" + permission: DefaultRepositoryPermissionField! + """The name of the role this source has granted to the user.""" + roleName: String + """The source of this permission.""" + source: PermissionGranter! +} + +"""Autogenerated input type of PinEnvironment""" +input PinEnvironmentInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the environment to modify""" + environmentId: ID! + """ + The desired state of the environment. If true, environment will be pinned. If false, it will be unpinned. + """ + pinned: Boolean! +} + +"""Autogenerated return type of PinEnvironment.""" +type PinEnvironmentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The environment that was pinned""" + environment: Environment + """The pinned environment if we pinned""" + pinnedEnvironment: PinnedEnvironment +} + +"""Autogenerated input type of PinIssue""" +input PinIssueInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the issue to be pinned""" + issueId: ID! +} + +"""Autogenerated return type of PinIssue.""" +type PinIssuePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The issue that was pinned""" + issue: Issue +} + +"""Types that can be pinned to a profile page.""" +union PinnableItem = Gist | Repository + +"""The connection type for PinnableItem.""" +type PinnableItemConnection { + """A list of edges.""" + edges: [PinnableItemEdge] + """A list of nodes.""" + nodes: [PinnableItem] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type PinnableItemEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: PinnableItem +} + +"""Represents items that can be pinned to a profile page or dashboard.""" +enum PinnableItemType { + """A gist.""" + GIST + """An issue.""" + ISSUE + """An organization.""" + ORGANIZATION + """A project.""" + PROJECT + """A pull request.""" + PULL_REQUEST + """A repository.""" + REPOSITORY + """A team.""" + TEAM + """A user.""" + USER +} + +""" +A Pinned Discussion is a discussion pinned to a repository's index page. +""" +type PinnedDiscussion implements Node & RepositoryNode { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int + """The discussion that was pinned.""" + discussion: Discussion! + """Color stops of the chosen gradient""" + gradientStopColors: [String!]! + """The Node ID of the PinnedDiscussion object""" + id: ID! + """Background texture pattern""" + pattern: PinnedDiscussionPattern! + """The actor that pinned this discussion.""" + pinnedBy: Actor! + """Preconfigured background gradient option""" + preconfiguredGradient: PinnedDiscussionGradient + """The repository associated with this node.""" + repository: Repository! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""The connection type for PinnedDiscussion.""" +type PinnedDiscussionConnection { + """A list of edges.""" + edges: [PinnedDiscussionEdge] + """A list of nodes.""" + nodes: [PinnedDiscussion] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type PinnedDiscussionEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: PinnedDiscussion +} + +""" +Preconfigured gradients that may be used to style discussions pinned within a repository. +""" +enum PinnedDiscussionGradient { + """A gradient of blue to mint""" + BLUE_MINT + """A gradient of blue to purple""" + BLUE_PURPLE + """A gradient of pink to blue""" + PINK_BLUE + """A gradient of purple to coral""" + PURPLE_CORAL + """A gradient of red to orange""" + RED_ORANGE +} + +""" +Preconfigured background patterns that may be used to style discussions pinned within a repository. +""" +enum PinnedDiscussionPattern { + """An upward-facing chevron pattern""" + CHEVRON_UP + """A hollow dot pattern""" + DOT + """A solid dot pattern""" + DOT_FILL + """A heart pattern""" + HEART_FILL + """A plus sign pattern""" + PLUS + """A lightning bolt pattern""" + ZAP +} + +"""Represents a pinned environment on a given repository""" +type PinnedEnvironment implements Node { + """Identifies the date and time when the pinned environment was created""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int + """Identifies the environment associated.""" + environment: Environment! + """The Node ID of the PinnedEnvironment object""" + id: ID! + """Identifies the position of the pinned environment.""" + position: Int! + """The repository that this environment was pinned to.""" + repository: Repository! +} + +"""The connection type for PinnedEnvironment.""" +type PinnedEnvironmentConnection { + """A list of edges.""" + edges: [PinnedEnvironmentEdge] + """A list of nodes.""" + nodes: [PinnedEnvironment] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type PinnedEnvironmentEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: PinnedEnvironment +} + +"""Ordering options for pinned environments""" +input PinnedEnvironmentOrder { + """ + The direction in which to order pinned environments by the specified field. + """ + direction: OrderDirection! + """The field to order pinned environments by.""" + field: PinnedEnvironmentOrderField! +} + +"""Properties by which pinned environments connections can be ordered""" +enum PinnedEnvironmentOrderField { + """Order pinned environments by position""" + POSITION +} + +"""Represents a 'pinned' event on a given issue or pull request.""" +type PinnedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the PinnedEvent object""" + id: ID! + """Identifies the issue associated with the event.""" + issue: Issue! +} + +"""A Pinned Issue is a issue pinned to a repository's index page.""" +type PinnedIssue implements Node { + """Identifies the primary key from the database.""" + databaseId: Int + """Identifies the primary key from the database as a BigInt.""" + fullDatabaseId: BigInt + """The Node ID of the PinnedIssue object""" + id: ID! + """The issue that was pinned.""" + issue: Issue! + """The actor that pinned this issue.""" + pinnedBy: Actor! + """The repository that this issue was pinned to.""" + repository: Repository! +} + +"""The connection type for PinnedIssue.""" +type PinnedIssueConnection { + """A list of edges.""" + edges: [PinnedIssueEdge] + """A list of nodes.""" + nodes: [PinnedIssue] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type PinnedIssueEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: PinnedIssue +} + +"""An ISO-8601 encoded UTC date string with millisecond precision.""" +scalar PreciseDateTime + +"""Audit log entry for a private_repository_forking.disable event.""" +type PrivateRepositoryForkingDisableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for this enterprise.""" + enterpriseResourcePath: URI + """The slug of the enterprise.""" + enterpriseSlug: String + """The HTTP URL for this enterprise.""" + enterpriseUrl: URI + """The Node ID of the PrivateRepositoryForkingDisableAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a private_repository_forking.enable event.""" +type PrivateRepositoryForkingEnableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for this enterprise.""" + enterpriseResourcePath: URI + """The slug of the enterprise.""" + enterpriseSlug: String + """The HTTP URL for this enterprise.""" + enterpriseUrl: URI + """The Node ID of the PrivateRepositoryForkingEnableAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +""" +A curatable list of repositories relating to a repository owner, which defaults +to showing the most popular repositories they own. +""" +type ProfileItemShowcase { + """Whether or not the owner has pinned any repositories or gists.""" + hasPinnedItems: Boolean! + """ + The repositories and gists in the showcase. If the profile owner has any + pinned items, those will be returned. Otherwise, the profile owner's popular + repositories will be returned. + """ + items( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): PinnableItemConnection! +} + +"""Represents any entity on GitHub that has a profile page.""" +interface ProfileOwner { + """ + Determine if this repository owner has any items that can be pinned to their profile. + """ + anyPinnableItems( + """Filter to only a particular kind of pinnable item.""" + type: PinnableItemType + ): Boolean! + """The public profile email.""" + email: String + """The Node ID of the ProfileOwner object""" + id: ID! + """ + Showcases a selection of repositories and gists that the profile owner has + either curated or that have been selected automatically based on popularity. + """ + itemShowcase: ProfileItemShowcase! + """The public profile location.""" + location: String + """The username used to login.""" + login: String! + """The public profile name.""" + name: String + """ + A list of repositories and gists this profile owner can pin to their profile. + """ + pinnableItems( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filter the types of pinnable items that are returned.""" + types: [PinnableItemType!] + ): PinnableItemConnection! + """ + A list of repositories and gists this profile owner has pinned to their profile + """ + pinnedItems( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filter the types of pinned items that are returned.""" + types: [PinnableItemType!] + ): PinnableItemConnection! + """ + Returns how many more items this profile owner can pin to their profile. + """ + pinnedItemsRemaining: Int! + """Can the viewer pin repositories and gists to the profile?""" + viewerCanChangePinnedItems: Boolean! + """The public profile website URL.""" + websiteUrl: URI +} + +""" +Projects manage issues, pull requests and notes within a project owner. +""" +type Project implements Closable & Node & Updatable { + """The project's description body.""" + body: String @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The projects description body rendered to HTML.""" + bodyHTML: HTML! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """ + Indicates if the object is closed (definition of closed may depend on type) + """ + closed: Boolean! + """Identifies the date and time when the object was closed.""" + closedAt: DateTime + """List of columns in the project""" + columns( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectColumnConnection! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Identifies the date and time when the object was created.""" + createdAt: DateTime! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The actor who originally created the project.""" + creator: Actor @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Identifies the primary key from the database.""" + databaseId: Int @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The Node ID of the Project object""" + id: ID! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The project's name.""" + name: String! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The project's number.""" + number: Int! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """ + The project's owner. Currently limited to repositories, organizations, and users. + """ + owner: ProjectOwner! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """List of pending cards in this project""" + pendingCards( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """A list of archived states to filter the cards by""" + archivedStates: [ProjectCardArchivedState] = [ARCHIVED, NOT_ARCHIVED] + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectCardConnection! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Project progress details.""" + progress: ProjectProgress! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The HTTP path for this project""" + resourcePath: URI! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Whether the project is open or closed.""" + state: ProjectState! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The HTTP URL for this project""" + url: URI! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Indicates if the object can be closed by the viewer.""" + viewerCanClose: Boolean! + """Indicates if the object can be reopened by the viewer.""" + viewerCanReopen: Boolean! + """Check if the current viewer can update this object.""" + viewerCanUpdate: Boolean! +} + +"""A card in a project.""" +type ProjectCard implements Node { + """ + The project column this card is associated under. A card may only belong to one + project column at a time. The column field will be null if the card is created + in a pending state and has yet to be associated with a column. Once cards are + associated with a column, they will not become pending in the future. + """ + column: ProjectColumn @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The card content item""" + content: ProjectCardItem @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Identifies the date and time when the object was created.""" + createdAt: DateTime! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The actor who created this card""" + creator: Actor @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Identifies the primary key from the database.""" + databaseId: Int @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The Node ID of the ProjectCard object""" + id: ID! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Whether the card is archived""" + isArchived: Boolean! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The card note""" + note: String @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The project that contains this card.""" + project: Project! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The HTTP path for this card""" + resourcePath: URI! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The state of ProjectCard""" + state: ProjectCardState @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The HTTP URL for this card""" + url: URI! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") +} + +"""The possible archived states of a project card.""" +enum ProjectCardArchivedState { + """A project card that is archived""" + ARCHIVED @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """A project card that is not archived""" + NOT_ARCHIVED @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") +} + +"""The connection type for ProjectCard.""" +type ProjectCardConnection { + """A list of edges.""" + edges: [ProjectCardEdge] + """A list of nodes.""" + nodes: [ProjectCard] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type ProjectCardEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: ProjectCard +} + +"""An issue or PR and its owning repository to be used in a project card.""" +input ProjectCardImport { + """The issue or pull request number.""" + number: Int! + """Repository name with owner (owner/repository).""" + repository: String! +} + +"""Types that can be inside Project Cards.""" +union ProjectCardItem = Issue | PullRequest + +"""Various content states of a ProjectCard""" +enum ProjectCardState { + """The card has content only.""" + CONTENT_ONLY + """The card has a note only.""" + NOTE_ONLY + """The card is redacted.""" + REDACTED +} + +"""A column inside a project.""" +type ProjectColumn implements Node { + """List of cards in the column""" + cards( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """A list of archived states to filter the cards by""" + archivedStates: [ProjectCardArchivedState] = [ARCHIVED, NOT_ARCHIVED] + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectCardConnection! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Identifies the date and time when the object was created.""" + createdAt: DateTime! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Identifies the primary key from the database.""" + databaseId: Int @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The Node ID of the ProjectColumn object""" + id: ID! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The project column's name.""" + name: String! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The project that contains this column.""" + project: Project! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The semantic purpose of the column""" + purpose: ProjectColumnPurpose @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The HTTP path for this project column""" + resourcePath: URI! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The HTTP URL for this project column""" + url: URI! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") +} + +"""The connection type for ProjectColumn.""" +type ProjectColumnConnection { + """A list of edges.""" + edges: [ProjectColumnEdge] + """A list of nodes.""" + nodes: [ProjectColumn] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type ProjectColumnEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: ProjectColumn +} + +"""A project column and a list of its issues and PRs.""" +input ProjectColumnImport { + """The name of the column.""" + columnName: String! + """A list of issues and pull requests in the column.""" + issues: [ProjectCardImport!] + """The position of the column, starting from 0.""" + position: Int! +} + +"""The semantic purpose of the column - todo, in progress, or done.""" +enum ProjectColumnPurpose { + """The column contains cards which are complete""" + DONE + """The column contains cards which are currently being worked on""" + IN_PROGRESS + """The column contains cards still to be worked on""" + TODO +} + +"""A list of projects associated with the owner.""" +type ProjectConnection { + """A list of edges.""" + edges: [ProjectEdge] + """A list of nodes.""" + nodes: [Project] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type ProjectEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Project +} + +"""Ways in which lists of projects can be ordered upon return.""" +input ProjectOrder { + """The direction in which to order projects by the specified field.""" + direction: OrderDirection! + """The field in which to order projects by.""" + field: ProjectOrderField! +} + +"""Properties by which project connections can be ordered.""" +enum ProjectOrderField { + """Order projects by creation time""" + CREATED_AT + """Order projects by name""" + NAME + """Order projects by update time""" + UPDATED_AT +} + +"""Represents an owner of a Project.""" +interface ProjectOwner { + """The Node ID of the ProjectOwner object""" + id: ID! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Find project by number.""" + project( + """The project number to find.""" + number: Int! + ): Project @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """A list of projects under the owner.""" + projects( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for projects returned from the connection""" + orderBy: ProjectOrder + """Query to search projects by, currently only searching by name.""" + search: String + """A list of states to filter the projects by.""" + states: [ProjectState!] + ): ProjectConnection! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The HTTP path listing owners projects""" + projectsResourcePath: URI! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The HTTP URL listing owners projects""" + projectsUrl: URI! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Can the current viewer create new projects on this owner.""" + viewerCanCreateProjects: Boolean! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") +} + +"""Project progress stats.""" +type ProjectProgress { + """The number of done cards.""" + doneCount: Int! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The percentage of done cards.""" + donePercentage: Float! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """ + Whether progress tracking is enabled and cards with purpose exist for this project + """ + enabled: Boolean! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The number of in-progress cards.""" + inProgressCount: Int! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The percentage of in-progress cards.""" + inProgressPercentage: Float! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The number of to do cards.""" + todoCount: Int! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The percentage of to do cards.""" + todoPercentage: Float! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") +} + +"""State of the project; either 'open' or 'closed'""" +enum ProjectState { + """The project is closed.""" + CLOSED + """The project is open.""" + OPEN +} + +"""GitHub-provided templates for Projects""" +enum ProjectTemplate { + """ + Create a board with v2 triggers to automatically move cards across To do, In progress and Done columns. + """ + AUTOMATED_KANBAN_V2 + """ + Create a board with triggers to automatically move cards across columns with review automation. + """ + AUTOMATED_REVIEWS_KANBAN + """Create a board with columns for To do, In progress and Done.""" + BASIC_KANBAN + """ + Create a board to triage and prioritize bugs with To do, priority, and Done columns. + """ + BUG_TRIAGE +} + +""" +New projects that manage issues, pull requests and drafts using tables and boards. +""" +type ProjectV2 implements Closable & Node & Updatable { + """Returns true if the project is closed.""" + closed: Boolean! + """Identifies the date and time when the object was closed.""" + closedAt: DateTime + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The actor who originally created the project.""" + creator: Actor + """Identifies the primary key from the database.""" + databaseId: Int @deprecated(reason: "`databaseId` will be removed because it does not support 64-bit signed integer identifiers. Use `fullDatabaseId` instead. Removal on 2025-04-01 UTC.") + """A field of the project""" + field( + """The name of the field""" + name: String! + ): ProjectV2FieldConfiguration + """List of fields and their constraints in the project""" + fields( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for project v2 fields returned from the connection""" + orderBy: ProjectV2FieldOrder = {direction: ASC, field: POSITION} + ): ProjectV2FieldConfigurationConnection! + """Identifies the primary key from the database as a BigInt.""" + fullDatabaseId: BigInt + """The Node ID of the ProjectV2 object""" + id: ID! + """List of items in the project""" + items( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for project v2 items returned from the connection""" + orderBy: ProjectV2ItemOrder = {direction: ASC, field: POSITION} + ): ProjectV2ItemConnection! + """The project's number.""" + number: Int! + """The project's owner. Currently limited to organizations and users.""" + owner: ProjectV2Owner! + """Returns true if the project is public.""" + public: Boolean! + """The project's readme.""" + readme: String + """The repositories the project is linked to.""" + repositories( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for repositories returned from the connection""" + orderBy: RepositoryOrder = {direction: DESC, field: CREATED_AT} + ): RepositoryConnection! + """The HTTP path for this project""" + resourcePath: URI! + """The project's short description.""" + shortDescription: String + """List of the status updates in the project.""" + statusUpdates( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Order for connection""" + orderBy: ProjectV2StatusOrder = {direction: DESC, field: CREATED_AT} + ): ProjectV2StatusUpdateConnection! + """The teams the project is linked to.""" + teams( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for teams returned from this connection.""" + orderBy: TeamOrder = {direction: ASC, field: NAME} + ): TeamConnection! + """Returns true if this project is a template.""" + template: Boolean! + """The project's name.""" + title: String! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The HTTP URL for this project""" + url: URI! + """A view of the project""" + view( + """The number of a view belonging to the project""" + number: Int! + ): ProjectV2View + """Indicates if the object can be closed by the viewer.""" + viewerCanClose: Boolean! + """Indicates if the object can be reopened by the viewer.""" + viewerCanReopen: Boolean! + """Check if the current viewer can update this object.""" + viewerCanUpdate: Boolean! + """List of views in the project""" + views( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for project v2 views returned from the connection""" + orderBy: ProjectV2ViewOrder = {direction: ASC, field: POSITION} + ): ProjectV2ViewConnection! + """A workflow of the project""" + workflow( + """The number of a workflow belonging to the project""" + number: Int! + ): ProjectV2Workflow + """List of the workflows in the project""" + workflows( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for project v2 workflows returned from the connection""" + orderBy: ProjectV2WorkflowOrder = {direction: ASC, field: NAME} + ): ProjectV2WorkflowConnection! +} + +"""Possible collaborators for a project.""" +union ProjectV2Actor = Team | User + +"""The connection type for ProjectV2Actor.""" +type ProjectV2ActorConnection { + """A list of edges.""" + edges: [ProjectV2ActorEdge] + """A list of nodes.""" + nodes: [ProjectV2Actor] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type ProjectV2ActorEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: ProjectV2Actor +} + +""" +A collaborator to update on a project. Only one of the userId or teamId should be provided. +""" +input ProjectV2Collaborator { + """The role to grant the collaborator""" + role: ProjectV2Roles! + """The ID of the team as a collaborator.""" + teamId: ID + """The ID of the user as a collaborator.""" + userId: ID +} + +"""The connection type for ProjectV2.""" +type ProjectV2Connection { + """A list of edges.""" + edges: [ProjectV2Edge] + """A list of nodes.""" + nodes: [ProjectV2] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""The type of a project field.""" +enum ProjectV2CustomFieldType { + """Date""" + DATE + """Iteration""" + ITERATION + """Number""" + NUMBER + """Single Select""" + SINGLE_SELECT + """Text""" + TEXT +} + +"""An edge in a connection.""" +type ProjectV2Edge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: ProjectV2 +} + +"""A field inside a project.""" +type ProjectV2Field implements Node & ProjectV2FieldCommon { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The field's type.""" + dataType: ProjectV2FieldType! + """Identifies the primary key from the database.""" + databaseId: Int + """The Node ID of the ProjectV2Field object""" + id: ID! + """The project field's name.""" + name: String! + """The project that contains this field.""" + project: ProjectV2! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""Common fields across different project field types""" +interface ProjectV2FieldCommon { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The field's type.""" + dataType: ProjectV2FieldType! + """Identifies the primary key from the database.""" + databaseId: Int + """The Node ID of the ProjectV2FieldCommon object""" + id: ID! + """The project field's name.""" + name: String! + """The project that contains this field.""" + project: ProjectV2! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""Configurations for project fields.""" +union ProjectV2FieldConfiguration = ProjectV2Field | ProjectV2IterationField | ProjectV2SingleSelectField + +"""The connection type for ProjectV2FieldConfiguration.""" +type ProjectV2FieldConfigurationConnection { + """A list of edges.""" + edges: [ProjectV2FieldConfigurationEdge] + """A list of nodes.""" + nodes: [ProjectV2FieldConfiguration] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type ProjectV2FieldConfigurationEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: ProjectV2FieldConfiguration +} + +"""The connection type for ProjectV2Field.""" +type ProjectV2FieldConnection { + """A list of edges.""" + edges: [ProjectV2FieldEdge] + """A list of nodes.""" + nodes: [ProjectV2Field] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type ProjectV2FieldEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: ProjectV2Field +} + +"""Ordering options for project v2 field connections""" +input ProjectV2FieldOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order the project v2 fields by.""" + field: ProjectV2FieldOrderField! +} + +"""Properties by which project v2 field connections can be ordered.""" +enum ProjectV2FieldOrderField { + """Order project v2 fields by creation time""" + CREATED_AT + """Order project v2 fields by name""" + NAME + """Order project v2 fields by position""" + POSITION +} + +"""The type of a project field.""" +enum ProjectV2FieldType { + """Assignees""" + ASSIGNEES + """Date""" + DATE + """Issue type""" + ISSUE_TYPE + """Iteration""" + ITERATION + """Labels""" + LABELS + """Linked Pull Requests""" + LINKED_PULL_REQUESTS + """Milestone""" + MILESTONE + """Number""" + NUMBER + """Parent issue""" + PARENT_ISSUE + """Repository""" + REPOSITORY + """Reviewers""" + REVIEWERS + """Single Select""" + SINGLE_SELECT + """Sub-issues progress""" + SUB_ISSUES_PROGRESS + """Text""" + TEXT + """Title""" + TITLE + """Tracked by""" + TRACKED_BY + """Tracks""" + TRACKS +} + +""" +The values that can be used to update a field of an item inside a Project. Only 1 value can be updated at a time. +""" +input ProjectV2FieldValue { + """The ISO 8601 date to set on the field.""" + date: Date + """The id of the iteration to set on the field.""" + iterationId: String + """The number to set on the field.""" + number: Float + """The id of the single select option to set on the field.""" + singleSelectOptionId: String + """The text to set on the field.""" + text: String +} + +"""Ways in which to filter lists of projects.""" +input ProjectV2Filters { + """List project v2 filtered by the state given.""" + state: ProjectV2State +} + +"""An item within a Project.""" +type ProjectV2Item implements Node { + """The content of the referenced draft issue, issue, or pull request""" + content: ProjectV2ItemContent + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The actor who created the item.""" + creator: Actor + """Identifies the primary key from the database.""" + databaseId: Int @deprecated(reason: "`databaseId` will be removed because it does not support 64-bit signed integer identifiers. Use `fullDatabaseId` instead. Removal on 2025-04-01 UTC.") + """ + The field value of the first project field which matches the 'name' argument that is set on the item. + """ + fieldValueByName( + """The name of the field to return the field value of""" + name: String! + ): ProjectV2ItemFieldValue + """The field values that are set on the item.""" + fieldValues( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Ordering options for project v2 item field values returned from the connection + """ + orderBy: ProjectV2ItemFieldValueOrder = {direction: ASC, field: POSITION} + ): ProjectV2ItemFieldValueConnection! + """Identifies the primary key from the database as a BigInt.""" + fullDatabaseId: BigInt + """The Node ID of the ProjectV2Item object""" + id: ID! + """Whether the item is archived.""" + isArchived: Boolean! + """The project that contains this item.""" + project: ProjectV2! + """The type of the item.""" + type: ProjectV2ItemType! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""The connection type for ProjectV2Item.""" +type ProjectV2ItemConnection { + """A list of edges.""" + edges: [ProjectV2ItemEdge] + """A list of nodes.""" + nodes: [ProjectV2Item] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""Types that can be inside Project Items.""" +union ProjectV2ItemContent = DraftIssue | Issue | PullRequest + +"""An edge in a connection.""" +type ProjectV2ItemEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: ProjectV2Item +} + +"""The value of a date field in a Project item.""" +type ProjectV2ItemFieldDateValue implements Node & ProjectV2ItemFieldValueCommon { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The actor who created the item.""" + creator: Actor + """Identifies the primary key from the database.""" + databaseId: Int + """Date value for the field""" + date: Date + """The project field that contains this value.""" + field: ProjectV2FieldConfiguration! + """The Node ID of the ProjectV2ItemFieldDateValue object""" + id: ID! + """The project item that contains this value.""" + item: ProjectV2Item! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""The value of an iteration field in a Project item.""" +type ProjectV2ItemFieldIterationValue implements Node & ProjectV2ItemFieldValueCommon { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The actor who created the item.""" + creator: Actor + """Identifies the primary key from the database.""" + databaseId: Int + """The duration of the iteration in days.""" + duration: Int! + """The project field that contains this value.""" + field: ProjectV2FieldConfiguration! + """The Node ID of the ProjectV2ItemFieldIterationValue object""" + id: ID! + """The project item that contains this value.""" + item: ProjectV2Item! + """The ID of the iteration.""" + iterationId: String! + """The start date of the iteration.""" + startDate: Date! + """The title of the iteration.""" + title: String! + """The title of the iteration, with HTML.""" + titleHTML: String! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""The value of the labels field in a Project item.""" +type ProjectV2ItemFieldLabelValue { + """The field that contains this value.""" + field: ProjectV2FieldConfiguration! + """Labels value of a field""" + labels( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): LabelConnection +} + +"""The value of a milestone field in a Project item.""" +type ProjectV2ItemFieldMilestoneValue { + """The field that contains this value.""" + field: ProjectV2FieldConfiguration! + """Milestone value of a field""" + milestone: Milestone +} + +"""The value of a number field in a Project item.""" +type ProjectV2ItemFieldNumberValue implements Node & ProjectV2ItemFieldValueCommon { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The actor who created the item.""" + creator: Actor + """Identifies the primary key from the database.""" + databaseId: Int + """The project field that contains this value.""" + field: ProjectV2FieldConfiguration! + """The Node ID of the ProjectV2ItemFieldNumberValue object""" + id: ID! + """The project item that contains this value.""" + item: ProjectV2Item! + """Number as a float(8)""" + number: Float + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""The value of a pull request field in a Project item.""" +type ProjectV2ItemFieldPullRequestValue { + """The field that contains this value.""" + field: ProjectV2FieldConfiguration! + """The pull requests for this field""" + pullRequests( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for pull requests.""" + orderBy: PullRequestOrder = {direction: ASC, field: CREATED_AT} + ): PullRequestConnection +} + +"""The value of a repository field in a Project item.""" +type ProjectV2ItemFieldRepositoryValue { + """The field that contains this value.""" + field: ProjectV2FieldConfiguration! + """The repository for this field.""" + repository: Repository +} + +"""The value of a reviewers field in a Project item.""" +type ProjectV2ItemFieldReviewerValue { + """The field that contains this value.""" + field: ProjectV2FieldConfiguration! + """The reviewers for this field.""" + reviewers( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): RequestedReviewerConnection +} + +"""The value of a single select field in a Project item.""" +type ProjectV2ItemFieldSingleSelectValue implements Node & ProjectV2ItemFieldValueCommon { + """The color applied to the selected single-select option.""" + color: ProjectV2SingleSelectFieldOptionColor! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The actor who created the item.""" + creator: Actor + """Identifies the primary key from the database.""" + databaseId: Int + """ + A plain-text description of the selected single-select option, such as what the option means. + """ + description: String + """ + The description of the selected single-select option, including HTML tags. + """ + descriptionHTML: String + """The project field that contains this value.""" + field: ProjectV2FieldConfiguration! + """The Node ID of the ProjectV2ItemFieldSingleSelectValue object""" + id: ID! + """The project item that contains this value.""" + item: ProjectV2Item! + """The name of the selected single select option.""" + name: String + """The html name of the selected single select option.""" + nameHTML: String + """The id of the selected single select option.""" + optionId: String + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""The value of a text field in a Project item.""" +type ProjectV2ItemFieldTextValue implements Node & ProjectV2ItemFieldValueCommon { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The actor who created the item.""" + creator: Actor + """Identifies the primary key from the database.""" + databaseId: Int + """The project field that contains this value.""" + field: ProjectV2FieldConfiguration! + """The Node ID of the ProjectV2ItemFieldTextValue object""" + id: ID! + """The project item that contains this value.""" + item: ProjectV2Item! + """Text value of a field""" + text: String + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""The value of a user field in a Project item.""" +type ProjectV2ItemFieldUserValue { + """The field that contains this value.""" + field: ProjectV2FieldConfiguration! + """The users for this field""" + users( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserConnection +} + +"""Project field values""" +union ProjectV2ItemFieldValue = ProjectV2ItemFieldDateValue | ProjectV2ItemFieldIterationValue | ProjectV2ItemFieldLabelValue | ProjectV2ItemFieldMilestoneValue | ProjectV2ItemFieldNumberValue | ProjectV2ItemFieldPullRequestValue | ProjectV2ItemFieldRepositoryValue | ProjectV2ItemFieldReviewerValue | ProjectV2ItemFieldSingleSelectValue | ProjectV2ItemFieldTextValue | ProjectV2ItemFieldUserValue + +"""Common fields across different project field value types""" +interface ProjectV2ItemFieldValueCommon { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The actor who created the item.""" + creator: Actor + """Identifies the primary key from the database.""" + databaseId: Int + """The project field that contains this value.""" + field: ProjectV2FieldConfiguration! + """The Node ID of the ProjectV2ItemFieldValueCommon object""" + id: ID! + """The project item that contains this value.""" + item: ProjectV2Item! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""The connection type for ProjectV2ItemFieldValue.""" +type ProjectV2ItemFieldValueConnection { + """A list of edges.""" + edges: [ProjectV2ItemFieldValueEdge] + """A list of nodes.""" + nodes: [ProjectV2ItemFieldValue] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type ProjectV2ItemFieldValueEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: ProjectV2ItemFieldValue +} + +"""Ordering options for project v2 item field value connections""" +input ProjectV2ItemFieldValueOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order the project v2 item field values by.""" + field: ProjectV2ItemFieldValueOrderField! +} + +""" +Properties by which project v2 item field value connections can be ordered. +""" +enum ProjectV2ItemFieldValueOrderField { + """ + Order project v2 item field values by the their position in the project + """ + POSITION +} + +"""Ordering options for project v2 item connections""" +input ProjectV2ItemOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order the project v2 items by.""" + field: ProjectV2ItemOrderField! +} + +"""Properties by which project v2 item connections can be ordered.""" +enum ProjectV2ItemOrderField { + """Order project v2 items by the their position in the project""" + POSITION +} + +"""The type of a project item.""" +enum ProjectV2ItemType { + """Draft Issue""" + DRAFT_ISSUE + """Issue""" + ISSUE + """Pull Request""" + PULL_REQUEST + """Redacted Item""" + REDACTED +} + +"""Represents an iteration""" +input ProjectV2Iteration { + """The duration of the iteration, in days.""" + duration: Int! + """The start date for the iteration.""" + startDate: Date! + """The title for the iteration.""" + title: String! +} + +"""An iteration field inside a project.""" +type ProjectV2IterationField implements Node & ProjectV2FieldCommon { + """Iteration configuration settings""" + configuration: ProjectV2IterationFieldConfiguration! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The field's type.""" + dataType: ProjectV2FieldType! + """Identifies the primary key from the database.""" + databaseId: Int + """The Node ID of the ProjectV2IterationField object""" + id: ID! + """The project field's name.""" + name: String! + """The project that contains this field.""" + project: ProjectV2! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""Iteration field configuration for a project.""" +type ProjectV2IterationFieldConfiguration { + """The iteration's completed iterations""" + completedIterations: [ProjectV2IterationFieldIteration!]! + """The iteration's duration in days""" + duration: Int! + """The iteration's iterations""" + iterations: [ProjectV2IterationFieldIteration!]! + """The iteration's start day of the week""" + startDay: Int! +} + +"""Represents an iteration field configuration.""" +input ProjectV2IterationFieldConfigurationInput { + """The duration of each iteration, in days.""" + duration: Int! + """Zero or more iterations for the field.""" + iterations: [ProjectV2Iteration!]! + """The start date for the first iteration.""" + startDate: Date! +} + +"""Iteration field iteration settings for a project.""" +type ProjectV2IterationFieldIteration { + """The iteration's duration in days""" + duration: Int! + """The iteration's ID.""" + id: String! + """The iteration's start date""" + startDate: Date! + """The iteration's title.""" + title: String! + """The iteration's html title.""" + titleHTML: String! +} + +"""Ways in which lists of projects can be ordered upon return.""" +input ProjectV2Order { + """The direction in which to order projects by the specified field.""" + direction: OrderDirection! + """The field in which to order projects by.""" + field: ProjectV2OrderField! +} + +"""Properties by which projects can be ordered.""" +enum ProjectV2OrderField { + """The project's date and time of creation""" + CREATED_AT + """The project's number""" + NUMBER + """The project's title""" + TITLE + """The project's date and time of update""" + UPDATED_AT +} + +"""Represents an owner of a project.""" +interface ProjectV2Owner { + """The Node ID of the ProjectV2Owner object""" + id: ID! + """Find a project by number.""" + projectV2( + """The project number.""" + number: Int! + ): ProjectV2 + """A list of projects under the owner.""" + projectsV2( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filter projects based on user role.""" + minPermissionLevel: ProjectV2PermissionLevel = READ + """How to order the returned projects.""" + orderBy: ProjectV2Order = {direction: DESC, field: NUMBER} + """A project to search for under the owner.""" + query: String + ): ProjectV2Connection! +} + +"""The possible roles of a collaborator on a project.""" +enum ProjectV2PermissionLevel { + """ + The collaborator can view, edit, and maange the settings of the project + """ + ADMIN + """The collaborator can view the project""" + READ + """The collaborator can view and edit the project""" + WRITE +} + +"""Recent projects for the owner.""" +interface ProjectV2Recent { + """ + Recent projects that this user has modified in the context of the owner. + """ + recentProjects( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectV2Connection! +} + +"""The possible roles of a collaborator on a project.""" +enum ProjectV2Roles { + """ + The collaborator can view, edit, and maange the settings of the project + """ + ADMIN + """The collaborator has no direct access to the project""" + NONE + """The collaborator can view the project""" + READER + """The collaborator can view and edit the project""" + WRITER +} + +"""A single select field inside a project.""" +type ProjectV2SingleSelectField implements Node & ProjectV2FieldCommon { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The field's type.""" + dataType: ProjectV2FieldType! + """Identifies the primary key from the database.""" + databaseId: Int + """The Node ID of the ProjectV2SingleSelectField object""" + id: ID! + """The project field's name.""" + name: String! + """Options for the single select field""" + options( + """ + Filter returned options to only those matching these names, case insensitive. + """ + names: [String!] + ): [ProjectV2SingleSelectFieldOption!]! + """The project that contains this field.""" + project: ProjectV2! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""Single select field option for a configuration for a project.""" +type ProjectV2SingleSelectFieldOption { + """The option's display color.""" + color: ProjectV2SingleSelectFieldOptionColor! + """The option's plain-text description.""" + description: String! + """The option's description, possibly containing HTML.""" + descriptionHTML: String! + """The option's ID.""" + id: String! + """The option's name.""" + name: String! + """The option's html name.""" + nameHTML: String! +} + +"""The display color of a single-select field option.""" +enum ProjectV2SingleSelectFieldOptionColor { + """BLUE""" + BLUE + """GRAY""" + GRAY + """GREEN""" + GREEN + """ORANGE""" + ORANGE + """PINK""" + PINK + """PURPLE""" + PURPLE + """RED""" + RED + """YELLOW""" + YELLOW +} + +"""Represents a single select field option""" +input ProjectV2SingleSelectFieldOptionInput { + """The display color of the option""" + color: ProjectV2SingleSelectFieldOptionColor! + """The description text of the option""" + description: String! + """The name of the option""" + name: String! +} + +"""Represents a sort by field and direction.""" +type ProjectV2SortBy { + """The direction of the sorting. Possible values are ASC and DESC.""" + direction: OrderDirection! + """The field by which items are sorted.""" + field: ProjectV2Field! +} + +"""The connection type for ProjectV2SortBy.""" +type ProjectV2SortByConnection { + """A list of edges.""" + edges: [ProjectV2SortByEdge] + """A list of nodes.""" + nodes: [ProjectV2SortBy] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type ProjectV2SortByEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: ProjectV2SortBy +} + +"""Represents a sort by field and direction.""" +type ProjectV2SortByField { + """The direction of the sorting. Possible values are ASC and DESC.""" + direction: OrderDirection! + """The field by which items are sorted.""" + field: ProjectV2FieldConfiguration! +} + +"""The connection type for ProjectV2SortByField.""" +type ProjectV2SortByFieldConnection { + """A list of edges.""" + edges: [ProjectV2SortByFieldEdge] + """A list of nodes.""" + nodes: [ProjectV2SortByField] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type ProjectV2SortByFieldEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: ProjectV2SortByField +} + +"""The possible states of a project v2.""" +enum ProjectV2State { + """A project v2 that has been closed""" + CLOSED + """A project v2 that is still open""" + OPEN +} + +"""Ways in which project v2 status updates can be ordered.""" +input ProjectV2StatusOrder { + """The direction in which to order nodes.""" + direction: OrderDirection! + """The field by which to order nodes.""" + field: ProjectV2StatusUpdateOrderField! +} + +"""A status update within a project.""" +type ProjectV2StatusUpdate implements Node { + """The body of the status update.""" + body: String + """The body of the status update rendered to HTML.""" + bodyHTML: HTML + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The actor who created the status update.""" + creator: Actor + """Identifies the primary key from the database.""" + databaseId: Int @deprecated(reason: "`databaseId` will be removed because it does not support 64-bit signed integer identifiers. Use `fullDatabaseId` instead. Removal on 2025-04-01 UTC.") + """Identifies the primary key from the database as a BigInt.""" + fullDatabaseId: BigInt + """The Node ID of the ProjectV2StatusUpdate object""" + id: ID! + """The project that contains this status update.""" + project: ProjectV2! + """The start date of the status update.""" + startDate: Date + """The status of the status update.""" + status: ProjectV2StatusUpdateStatus + """The target date of the status update.""" + targetDate: Date + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""The connection type for ProjectV2StatusUpdate.""" +type ProjectV2StatusUpdateConnection { + """A list of edges.""" + edges: [ProjectV2StatusUpdateEdge] + """A list of nodes.""" + nodes: [ProjectV2StatusUpdate] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type ProjectV2StatusUpdateEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: ProjectV2StatusUpdate +} + +"""Properties by which project v2 status updates can be ordered.""" +enum ProjectV2StatusUpdateOrderField { + """Allows chronological ordering of project v2 status updates.""" + CREATED_AT +} + +"""The possible statuses of a project v2.""" +enum ProjectV2StatusUpdateStatus { + """A project v2 that is at risk and encountering some challenges.""" + AT_RISK + """A project v2 that is complete.""" + COMPLETE + """A project v2 that is inactive.""" + INACTIVE + """A project v2 that is off track and needs attention.""" + OFF_TRACK + """A project v2 that is on track with no risks.""" + ON_TRACK +} + +"""A view within a ProjectV2.""" +type ProjectV2View implements Node { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int @deprecated(reason: "`databaseId` will be removed because it does not support 64-bit signed integer identifiers. Use `fullDatabaseId` instead. Removal on 2025-04-01 UTC.") + """The view's visible fields.""" + fields( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Ordering options for the project v2 fields returned from the connection. + """ + orderBy: ProjectV2FieldOrder = {direction: ASC, field: POSITION} + ): ProjectV2FieldConfigurationConnection + """The project view's filter.""" + filter: String + """Identifies the primary key from the database as a BigInt.""" + fullDatabaseId: BigInt + """The view's group-by field.""" + groupBy( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Ordering options for the project v2 fields returned from the connection. + """ + orderBy: ProjectV2FieldOrder = {direction: ASC, field: POSITION} + ): ProjectV2FieldConnection @deprecated(reason: "The `ProjectV2View#order_by` API is deprecated in favour of the more capable `ProjectV2View#group_by_field` API. Check out the `ProjectV2View#group_by_fields` API as an example for the more capable alternative. Removal on 2023-04-01 UTC.") + """The view's group-by field.""" + groupByFields( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Ordering options for the project v2 fields returned from the connection. + """ + orderBy: ProjectV2FieldOrder = {direction: ASC, field: POSITION} + ): ProjectV2FieldConfigurationConnection + """The Node ID of the ProjectV2View object""" + id: ID! + """The project view's layout.""" + layout: ProjectV2ViewLayout! + """The project view's name.""" + name: String! + """The project view's number.""" + number: Int! + """The project that contains this view.""" + project: ProjectV2! + """The view's sort-by config.""" + sortBy( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectV2SortByConnection @deprecated(reason: "The `ProjectV2View#sort_by` API is deprecated in favour of the more capable `ProjectV2View#sort_by_fields` API. Check out the `ProjectV2View#sort_by_fields` API as an example for the more capable alternative. Removal on 2023-04-01 UTC.") + """The view's sort-by config.""" + sortByFields( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectV2SortByFieldConnection + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The view's vertical-group-by field.""" + verticalGroupBy( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Ordering options for the project v2 fields returned from the connection. + """ + orderBy: ProjectV2FieldOrder = {direction: ASC, field: POSITION} + ): ProjectV2FieldConnection @deprecated(reason: "The `ProjectV2View#vertical_group_by` API is deprecated in favour of the more capable `ProjectV2View#vertical_group_by_fields` API. Check out the `ProjectV2View#vertical_group_by_fields` API as an example for the more capable alternative. Removal on 2023-04-01 UTC.") + """The view's vertical-group-by field.""" + verticalGroupByFields( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Ordering options for the project v2 fields returned from the connection. + """ + orderBy: ProjectV2FieldOrder = {direction: ASC, field: POSITION} + ): ProjectV2FieldConfigurationConnection + """The view's visible fields.""" + visibleFields( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Ordering options for the project v2 fields returned from the connection. + """ + orderBy: ProjectV2FieldOrder = {direction: ASC, field: POSITION} + ): ProjectV2FieldConnection @deprecated(reason: "The `ProjectV2View#visibleFields` API is deprecated in favour of the more capable `ProjectV2View#fields` API. Check out the `ProjectV2View#fields` API as an example for the more capable alternative. Removal on 2023-01-01 UTC.") +} + +"""The connection type for ProjectV2View.""" +type ProjectV2ViewConnection { + """A list of edges.""" + edges: [ProjectV2ViewEdge] + """A list of nodes.""" + nodes: [ProjectV2View] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type ProjectV2ViewEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: ProjectV2View +} + +"""The layout of a project v2 view.""" +enum ProjectV2ViewLayout { + """Board layout""" + BOARD_LAYOUT + """Roadmap layout""" + ROADMAP_LAYOUT + """Table layout""" + TABLE_LAYOUT +} + +"""Ordering options for project v2 view connections""" +input ProjectV2ViewOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order the project v2 views by.""" + field: ProjectV2ViewOrderField! +} + +"""Properties by which project v2 view connections can be ordered.""" +enum ProjectV2ViewOrderField { + """Order project v2 views by creation time""" + CREATED_AT + """Order project v2 views by name""" + NAME + """Order project v2 views by position""" + POSITION +} + +"""A workflow inside a project.""" +type ProjectV2Workflow implements Node { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int @deprecated(reason: "`databaseId` will be removed because it does not support 64-bit signed integer identifiers. Use `fullDatabaseId` instead. Removal on 2025-04-01 UTC.") + """Whether the workflow is enabled.""" + enabled: Boolean! + """Identifies the primary key from the database as a BigInt.""" + fullDatabaseId: BigInt + """The Node ID of the ProjectV2Workflow object""" + id: ID! + """The name of the workflow.""" + name: String! + """The number of the workflow.""" + number: Int! + """The project that contains this workflow.""" + project: ProjectV2! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""The connection type for ProjectV2Workflow.""" +type ProjectV2WorkflowConnection { + """A list of edges.""" + edges: [ProjectV2WorkflowEdge] + """A list of nodes.""" + nodes: [ProjectV2Workflow] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type ProjectV2WorkflowEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: ProjectV2Workflow +} + +"""Ordering options for project v2 workflows connections""" +input ProjectV2WorkflowOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order the project v2 workflows by.""" + field: ProjectV2WorkflowsOrderField! +} + +"""Properties by which project workflows can be ordered.""" +enum ProjectV2WorkflowsOrderField { + """The date and time of the workflow creation""" + CREATED_AT + """The name of the workflow""" + NAME + """The number of the workflow""" + NUMBER + """The date and time of the workflow update""" + UPDATED_AT +} + +"""A property that must match""" +type PropertyTargetDefinition { + """The name of the property""" + name: String! + """The values to match for""" + propertyValues: [String!]! + """ + The source of the property. Choose 'custom' or 'system'. Defaults to 'custom' if not specified + """ + source: String +} + +"""A property that must match""" +input PropertyTargetDefinitionInput { + """The name of the property""" + name: String! + """The values to match for""" + propertyValues: [String!]! + """ + The source of the property. Choose 'custom' or 'system'. Defaults to 'custom' if not specified + """ + source: String +} + +"""A user's public key.""" +type PublicKey implements Node { + """ + The last time this authorization was used to perform an action. Values will be null for keys not owned by the user. + """ + accessedAt: DateTime + """ + Identifies the date and time when the key was created. Keys created before + March 5th, 2014 have inaccurate values. Values will be null for keys not owned by the user. + """ + createdAt: DateTime + """The fingerprint for this PublicKey.""" + fingerprint: String! + """The Node ID of the PublicKey object""" + id: ID! + """ + Whether this PublicKey is read-only or not. Values will be null for keys not owned by the user. + """ + isReadOnly: Boolean + """The public key string.""" + key: String! + """ + Identifies the date and time when the key was updated. Keys created before + March 5th, 2014 may have inaccurate values. Values will be null for keys not + owned by the user. + """ + updatedAt: DateTime +} + +"""The connection type for PublicKey.""" +type PublicKeyConnection { + """A list of edges.""" + edges: [PublicKeyEdge] + """A list of nodes.""" + nodes: [PublicKey] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type PublicKeyEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: PublicKey +} + +"""Autogenerated input type of PublishSponsorsTier""" +input PublishSponsorsTierInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the draft tier to publish.""" + tierId: ID! +} + +"""Autogenerated return type of PublishSponsorsTier.""" +type PublishSponsorsTierPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The tier that was published.""" + sponsorsTier: SponsorsTier +} + +"""A repository pull request.""" +type PullRequest implements Assignable & Closable & Comment & Labelable & Lockable & Node & ProjectV2Owner & Reactable & RepositoryNode & Subscribable & UniformResourceLocatable & Updatable & UpdatableComment { + """Reason that the conversation was locked.""" + activeLockReason: LockReason + """The number of additions in this pull request.""" + additions: Int! + """A list of actors assigned to this object.""" + assignedActors( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): AssigneeConnection! + """A list of Users assigned to this object.""" + assignees( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserConnection! + """The actor who authored the comment.""" + author: Actor + """Author's association with the subject of the comment.""" + authorAssociation: CommentAuthorAssociation! + """ + Returns the auto-merge request object if one exists for this pull request. + """ + autoMergeRequest: AutoMergeRequest + """Identifies the base Ref associated with the pull request.""" + baseRef: Ref + """ + Identifies the name of the base Ref associated with the pull request, even if the ref has been deleted. + """ + baseRefName: String! + """ + Identifies the oid of the base ref associated with the pull request, even if the ref has been deleted. + """ + baseRefOid: GitObjectID! + """The repository associated with this pull request's base Ref.""" + baseRepository: Repository + """The body as Markdown.""" + body: String! + """The body rendered to HTML.""" + bodyHTML: HTML! + """The body rendered to text.""" + bodyText: String! + """Whether or not the pull request is rebaseable.""" + canBeRebased: Boolean! + """The number of changed files in this pull request.""" + changedFiles: Int! + """The HTTP path for the checks of this pull request.""" + checksResourcePath: URI! + """The HTTP URL for the checks of this pull request.""" + checksUrl: URI! + """`true` if the pull request is closed""" + closed: Boolean! + """Identifies the date and time when the object was closed.""" + closedAt: DateTime + """List of issues that may be closed by this pull request""" + closingIssuesReferences( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for issues returned from the connection""" + orderBy: IssueOrder + """Return only manually linked Issues""" + userLinkedOnly: Boolean = false + ): IssueConnection + """A list of comments associated with the pull request.""" + comments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for issue comments returned from the connection.""" + orderBy: IssueCommentOrder + ): IssueCommentConnection! + """ + A list of commits present in this pull request's head branch not present in the base branch. + """ + commits( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): PullRequestCommitConnection! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Check if this comment was created via an email reply.""" + createdViaEmail: Boolean! + """Identifies the primary key from the database.""" + databaseId: Int @deprecated(reason: "`databaseId` will be removed because it does not support 64-bit signed integer identifiers. Use `fullDatabaseId` instead. Removal on 2024-07-01 UTC.") + """The number of deletions in this pull request.""" + deletions: Int! + """The actor who edited this pull request's body.""" + editor: Actor + """Lists the files changed within this pull request.""" + files( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): PullRequestChangedFileConnection + """Identifies the primary key from the database as a BigInt.""" + fullDatabaseId: BigInt + """Identifies the head Ref associated with the pull request.""" + headRef: Ref + """ + Identifies the name of the head Ref associated with the pull request, even if the ref has been deleted. + """ + headRefName: String! + """ + Identifies the oid of the head ref associated with the pull request, even if the ref has been deleted. + """ + headRefOid: GitObjectID! + """The repository associated with this pull request's head Ref.""" + headRepository: Repository + """ + The owner of the repository associated with this pull request's head Ref. + """ + headRepositoryOwner: RepositoryOwner + """The hovercard information for this issue""" + hovercard( + """Whether or not to include notification contexts""" + includeNotificationContexts: Boolean = true + ): Hovercard! + """The Node ID of the PullRequest object""" + id: ID! + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + """The head and base repositories are different.""" + isCrossRepository: Boolean! + """Identifies if the pull request is a draft.""" + isDraft: Boolean! + """Indicates whether the pull request is in a merge queue""" + isInMergeQueue: Boolean! + """ + Indicates whether the pull request's base ref has a merge queue enabled. + """ + isMergeQueueEnabled: Boolean! + """Is this pull request read by the viewer""" + isReadByViewer: Boolean + """A list of labels associated with the object.""" + labels( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for labels returned from the connection.""" + orderBy: LabelOrder = {direction: ASC, field: CREATED_AT} + ): LabelConnection + """The moment the editor made the last edit""" + lastEditedAt: DateTime + """A list of latest reviews per user associated with the pull request.""" + latestOpinionatedReviews( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Only return reviews from user who have write access to the repository""" + writersOnly: Boolean = false + ): PullRequestReviewConnection + """ + A list of latest reviews per user associated with the pull request that are not also pending review. + """ + latestReviews( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): PullRequestReviewConnection + """`true` if the pull request is locked""" + locked: Boolean! + """Indicates whether maintainers can modify the pull request.""" + maintainerCanModify: Boolean! + """The commit that was created when this pull request was merged.""" + mergeCommit: Commit + """The merge queue for the pull request's base branch""" + mergeQueue: MergeQueue + """ + The merge queue entry of the pull request in the base branch's merge queue + """ + mergeQueueEntry: MergeQueueEntry + """ + Detailed information about the current pull request merge state status. + """ + mergeStateStatus: MergeStateStatus! + """ + Whether or not the pull request can be merged based on the existence of merge conflicts. + """ + mergeable: MergeableState! + """Whether or not the pull request was merged.""" + merged: Boolean! + """The date and time that the pull request was merged.""" + mergedAt: DateTime + """The actor who merged the pull request.""" + mergedBy: Actor + """Identifies the milestone associated with the pull request.""" + milestone: Milestone + """Identifies the pull request number.""" + number: Int! + """ + A list of Users that are participating in the Pull Request conversation. + """ + participants( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserConnection! + """The permalink to the pull request.""" + permalink: URI! + """ + The commit that GitHub automatically generated to test if this pull request + could be merged. This field will not return a value if the pull request is + merged, or if the test merge commit is still being generated. See the + `mergeable` field for more details on the mergeability of the pull request. + """ + potentialMergeCommit: Commit + """List of project cards associated with this pull request.""" + projectCards( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """A list of archived states to filter the cards by""" + archivedStates: [ProjectCardArchivedState] = [ARCHIVED, NOT_ARCHIVED] + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectCardConnection! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """List of project items associated with this pull request.""" + projectItems( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Include archived items.""" + includeArchived: Boolean = true + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectV2ItemConnection! + """Find a project by number.""" + projectV2( + """The project number.""" + number: Int! + ): ProjectV2 + """A list of projects under the owner.""" + projectsV2( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filter projects based on user role.""" + minPermissionLevel: ProjectV2PermissionLevel = READ + """How to order the returned projects.""" + orderBy: ProjectV2Order = {direction: DESC, field: NUMBER} + """A project to search for under the owner.""" + query: String + ): ProjectV2Connection! + """Identifies when the comment was published at.""" + publishedAt: DateTime + """A list of reactions grouped by content left on the subject.""" + reactionGroups: [ReactionGroup!] + """A list of Reactions left on the Issue.""" + reactions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Allows filtering Reactions by emoji.""" + content: ReactionContent + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Allows specifying the order in which reactions are returned.""" + orderBy: ReactionOrder + ): ReactionConnection! + """The repository associated with this node.""" + repository: Repository! + """The HTTP path for this pull request.""" + resourcePath: URI! + """The HTTP path for reverting this pull request.""" + revertResourcePath: URI! + """The HTTP URL for reverting this pull request.""" + revertUrl: URI! + """The current status of this pull request with respect to code review.""" + reviewDecision: PullRequestReviewDecision + """A list of review requests associated with the pull request.""" + reviewRequests( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): ReviewRequestConnection + """The list of all review threads for this pull request.""" + reviewThreads( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): PullRequestReviewThreadConnection! + """A list of reviews associated with the pull request.""" + reviews( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """Filter by author of the review.""" + author: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """A list of states to filter the reviews.""" + states: [PullRequestReviewState!] + ): PullRequestReviewConnection + """Identifies the state of the pull request.""" + state: PullRequestState! + """Check and Status rollup information for the PR's head ref.""" + statusCheckRollup: StatusCheckRollup + """A list of suggested actors to assign to this object""" + suggestedActors( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """If provided, searches users by login or profile name""" + query: String + ): AssigneeConnection! + """ + A list of reviewer suggestions based on commit history and past review comments. + """ + suggestedReviewers: [SuggestedReviewer]! + """ + A list of events, comments, commits, etc. associated with the pull request. + """ + timeline( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Allows filtering timeline events by a `since` timestamp.""" + since: DateTime + ): PullRequestTimelineConnection! @deprecated(reason: "`timeline` will be removed Use PullRequest.timelineItems instead. Removal on 2020-10-01 UTC.") + """ + A list of events, comments, commits, etc. associated with the pull request. + """ + timelineItems( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Filter timeline items by type.""" + itemTypes: [PullRequestTimelineItemsItemType!] + """Returns the last _n_ elements from the list.""" + last: Int + """Filter timeline items by a `since` timestamp.""" + since: DateTime + """Skips the first _n_ elements in the list.""" + skip: Int + ): PullRequestTimelineItemsConnection! + """Identifies the pull request title.""" + title: String! + """Identifies the pull request title rendered to HTML.""" + titleHTML: HTML! + """Returns a count of how many comments this pull request has received.""" + totalCommentsCount: Int + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The HTTP URL for this pull request.""" + url: URI! + """A list of edits to this content.""" + userContentEdits( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserContentEditConnection + """Whether or not the viewer can apply suggestion.""" + viewerCanApplySuggestion: Boolean! + """Indicates if the object can be closed by the viewer.""" + viewerCanClose: Boolean! + """Check if the viewer can restore the deleted head ref.""" + viewerCanDeleteHeadRef: Boolean! + """Whether or not the viewer can disable auto-merge""" + viewerCanDisableAutoMerge: Boolean! + """Can the viewer edit files within this pull request.""" + viewerCanEditFiles: Boolean! + """Whether or not the viewer can enable auto-merge""" + viewerCanEnableAutoMerge: Boolean! + """Indicates if the viewer can edit labels for this object.""" + viewerCanLabel: Boolean! + """ + Indicates whether the viewer can bypass branch protections and merge the pull request immediately + """ + viewerCanMergeAsAdmin: Boolean! + """Can user react to this subject""" + viewerCanReact: Boolean! + """Indicates if the object can be reopened by the viewer.""" + viewerCanReopen: Boolean! + """ + Check if the viewer is able to change their subscription status for the repository. + """ + viewerCanSubscribe: Boolean! + """Check if the current viewer can update this object.""" + viewerCanUpdate: Boolean! + """ + Whether or not the viewer can update the head ref of this PR, by merging or rebasing the base ref. + If the head ref is up to date or unable to be updated by this user, this will return false. + """ + viewerCanUpdateBranch: Boolean! + """Reasons why the current viewer can not update this comment.""" + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! + """Did the viewer author this comment.""" + viewerDidAuthor: Boolean! + """The latest review given from the viewer.""" + viewerLatestReview: PullRequestReview + """ + The person who has requested the viewer for review on this pull request. + """ + viewerLatestReviewRequest: ReviewRequest + """The merge body text for the viewer and method.""" + viewerMergeBodyText( + """The merge method for the message.""" + mergeType: PullRequestMergeMethod + ): String! + """The merge headline text for the viewer and method.""" + viewerMergeHeadlineText( + """The merge method for the message.""" + mergeType: PullRequestMergeMethod + ): String! + """ + Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. + """ + viewerSubscription: SubscriptionState +} + +""" +Array of allowed merge methods. Allowed values include `merge`, `squash`, and `rebase`. At least one option must be enabled. +""" +enum PullRequestAllowedMergeMethods { + """ + Add all commits from the head branch to the base branch with a merge commit. + """ + MERGE + """ + Add all commits from the head branch onto the base branch individually. + """ + REBASE + """ + Combine all commits from the head branch into a single commit in the base branch. + """ + SQUASH +} + +""" +The possible methods for updating a pull request's head branch with the base branch. +""" +enum PullRequestBranchUpdateMethod { + """Update branch via merge""" + MERGE + """Update branch via rebase""" + REBASE +} + +"""A file changed in a pull request.""" +type PullRequestChangedFile { + """The number of additions to the file.""" + additions: Int! + """How the file was changed in this PullRequest""" + changeType: PatchStatus! + """The number of deletions to the file.""" + deletions: Int! + """The path of the file.""" + path: String! + """The state of the file for the viewer.""" + viewerViewedState: FileViewedState! +} + +"""The connection type for PullRequestChangedFile.""" +type PullRequestChangedFileConnection { + """A list of edges.""" + edges: [PullRequestChangedFileEdge] + """A list of nodes.""" + nodes: [PullRequestChangedFile] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type PullRequestChangedFileEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: PullRequestChangedFile +} + +"""Represents a Git commit part of a pull request.""" +type PullRequestCommit implements Node & UniformResourceLocatable { + """The Git commit object""" + commit: Commit! + """The Node ID of the PullRequestCommit object""" + id: ID! + """The pull request this commit belongs to""" + pullRequest: PullRequest! + """The HTTP path for this pull request commit""" + resourcePath: URI! + """The HTTP URL for this pull request commit""" + url: URI! +} + +"""Represents a commit comment thread part of a pull request.""" +type PullRequestCommitCommentThread implements Node & RepositoryNode { + """The comments that exist in this thread.""" + comments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): CommitCommentConnection! + """The commit the comments were made on.""" + commit: Commit! + """The Node ID of the PullRequestCommitCommentThread object""" + id: ID! + """The file the comments were made on.""" + path: String + """The position in the diff for the commit that the comment was made on.""" + position: Int + """The pull request this commit comment thread belongs to""" + pullRequest: PullRequest! + """The repository associated with this node.""" + repository: Repository! +} + +"""The connection type for PullRequestCommit.""" +type PullRequestCommitConnection { + """A list of edges.""" + edges: [PullRequestCommitEdge] + """A list of nodes.""" + nodes: [PullRequestCommit] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type PullRequestCommitEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: PullRequestCommit +} + +"""The connection type for PullRequest.""" +type PullRequestConnection { + """A list of edges.""" + edges: [PullRequestEdge] + """A list of nodes.""" + nodes: [PullRequest] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""This aggregates pull requests opened by a user within one repository.""" +type PullRequestContributionsByRepository { + """The pull request contributions.""" + contributions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for contributions returned from the connection.""" + orderBy: ContributionOrder = {direction: DESC} + ): CreatedPullRequestContributionConnection! + """The repository in which the pull requests were opened.""" + repository: Repository! +} + +"""An edge in a connection.""" +type PullRequestEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: PullRequest +} + +""" +Represents available types of methods to use when merging a pull request. +""" +enum PullRequestMergeMethod { + """ + Add all commits from the head branch to the base branch with a merge commit. + """ + MERGE + """ + Add all commits from the head branch onto the base branch individually. + """ + REBASE + """ + Combine all commits from the head branch into a single commit in the base branch. + """ + SQUASH +} + +"""Ways in which lists of issues can be ordered upon return.""" +input PullRequestOrder { + """The direction in which to order pull requests by the specified field.""" + direction: OrderDirection! + """The field in which to order pull requests by.""" + field: PullRequestOrderField! +} + +"""Properties by which pull_requests connections can be ordered.""" +enum PullRequestOrderField { + """Order pull_requests by creation time""" + CREATED_AT + """Order pull_requests by update time""" + UPDATED_AT +} + +""" +Require all commits be made to a non-target branch and submitted via a pull request before they can be merged. +""" +type PullRequestParameters { + """ + Array of allowed merge methods. Allowed values include `merge`, `squash`, and + `rebase`. At least one option must be enabled. + """ + allowedMergeMethods: [PullRequestAllowedMergeMethods!] + """ + Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review. + """ + automaticCopilotCodeReviewEnabled: Boolean! + """ + New, reviewable commits pushed will dismiss previous pull request review approvals. + """ + dismissStaleReviewsOnPush: Boolean! + """ + Require an approving review in pull requests that modify files that have a designated code owner. + """ + requireCodeOwnerReview: Boolean! + """ + Whether the most recent reviewable push must be approved by someone other than the person who pushed it. + """ + requireLastPushApproval: Boolean! + """ + The number of approving reviews that are required before a pull request can be merged. + """ + requiredApprovingReviewCount: Int! + """ + All conversations on code must be resolved before a pull request can be merged. + """ + requiredReviewThreadResolution: Boolean! +} + +""" +Require all commits be made to a non-target branch and submitted via a pull request before they can be merged. +""" +input PullRequestParametersInput { + """ + Array of allowed merge methods. Allowed values include `merge`, `squash`, and + `rebase`. At least one option must be enabled. + """ + allowedMergeMethods: [PullRequestAllowedMergeMethods!] + """ + Automatically request review from Copilot for new pull requests, if the author has access to Copilot code review. + """ + automaticCopilotCodeReviewEnabled: Boolean + """ + New, reviewable commits pushed will dismiss previous pull request review approvals. + """ + dismissStaleReviewsOnPush: Boolean! + """ + Require an approving review in pull requests that modify files that have a designated code owner. + """ + requireCodeOwnerReview: Boolean! + """ + Whether the most recent reviewable push must be approved by someone other than the person who pushed it. + """ + requireLastPushApproval: Boolean! + """ + The number of approving reviews that are required before a pull request can be merged. + """ + requiredApprovingReviewCount: Int! + """ + All conversations on code must be resolved before a pull request can be merged. + """ + requiredReviewThreadResolution: Boolean! +} + +"""A review object for a given pull request.""" +type PullRequestReview implements Comment & Deletable & Minimizable & Node & Reactable & RepositoryNode & Updatable & UpdatableComment { + """The actor who authored the comment.""" + author: Actor + """Author's association with the subject of the comment.""" + authorAssociation: CommentAuthorAssociation! + """ + Indicates whether the author of this review has push access to the repository. + """ + authorCanPushToRepository: Boolean! + """Identifies the pull request review body.""" + body: String! + """The body rendered to HTML.""" + bodyHTML: HTML! + """The body of this review rendered as plain text.""" + bodyText: String! + """A list of review comments for the current pull request review.""" + comments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): PullRequestReviewCommentConnection! + """Identifies the commit associated with this pull request review.""" + commit: Commit + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Check if this comment was created via an email reply.""" + createdViaEmail: Boolean! + """Identifies the primary key from the database.""" + databaseId: Int @deprecated(reason: "`databaseId` will be removed because it does not support 64-bit signed integer identifiers. Use `fullDatabaseId` instead. Removal on 2024-07-01 UTC.") + """The actor who edited the comment.""" + editor: Actor + """Identifies the primary key from the database as a BigInt.""" + fullDatabaseId: BigInt + """The Node ID of the PullRequestReview object""" + id: ID! + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + """Returns whether or not a comment has been minimized.""" + isMinimized: Boolean! + """The moment the editor made the last edit""" + lastEditedAt: DateTime + """ + Returns why the comment was minimized. One of `abuse`, `off-topic`, + `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and + formatting of these values differs from the inputs to the `MinimizeComment` mutation. + """ + minimizedReason: String + """A list of teams that this review was made on behalf of.""" + onBehalfOf( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): TeamConnection! + """Identifies when the comment was published at.""" + publishedAt: DateTime + """Identifies the pull request associated with this pull request review.""" + pullRequest: PullRequest! + """A list of reactions grouped by content left on the subject.""" + reactionGroups: [ReactionGroup!] + """A list of Reactions left on the Issue.""" + reactions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Allows filtering Reactions by emoji.""" + content: ReactionContent + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Allows specifying the order in which reactions are returned.""" + orderBy: ReactionOrder + ): ReactionConnection! + """The repository associated with this node.""" + repository: Repository! + """The HTTP path permalink for this PullRequestReview.""" + resourcePath: URI! + """Identifies the current state of the pull request review.""" + state: PullRequestReviewState! + """Identifies when the Pull Request Review was submitted""" + submittedAt: DateTime + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The HTTP URL permalink for this PullRequestReview.""" + url: URI! + """A list of edits to this content.""" + userContentEdits( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserContentEditConnection + """Check if the current viewer can delete this object.""" + viewerCanDelete: Boolean! + """Check if the current viewer can minimize this object.""" + viewerCanMinimize: Boolean! + """Can user react to this subject""" + viewerCanReact: Boolean! + """Check if the current viewer can update this object.""" + viewerCanUpdate: Boolean! + """Reasons why the current viewer can not update this comment.""" + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! + """Did the viewer author this comment.""" + viewerDidAuthor: Boolean! +} + +"""A review comment associated with a given repository pull request.""" +type PullRequestReviewComment implements Comment & Deletable & Minimizable & Node & Reactable & RepositoryNode & Updatable & UpdatableComment { + """The actor who authored the comment.""" + author: Actor + """Author's association with the subject of the comment.""" + authorAssociation: CommentAuthorAssociation! + """The comment body of this review comment.""" + body: String! + """The body rendered to HTML.""" + bodyHTML: HTML! + """The comment body of this review comment rendered as plain text.""" + bodyText: String! + """Identifies the commit associated with the comment.""" + commit: Commit + """Identifies when the comment was created.""" + createdAt: DateTime! + """Check if this comment was created via an email reply.""" + createdViaEmail: Boolean! + """Identifies the primary key from the database.""" + databaseId: Int @deprecated(reason: "`databaseId` will be removed because it does not support 64-bit signed integer identifiers. Use `fullDatabaseId` instead. Removal on 2024-07-01 UTC.") + """The diff hunk to which the comment applies.""" + diffHunk: String! + """Identifies when the comment was created in a draft state.""" + draftedAt: DateTime! + """The actor who edited the comment.""" + editor: Actor + """Identifies the primary key from the database as a BigInt.""" + fullDatabaseId: BigInt + """The Node ID of the PullRequestReviewComment object""" + id: ID! + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + """Returns whether or not a comment has been minimized.""" + isMinimized: Boolean! + """The moment the editor made the last edit""" + lastEditedAt: DateTime + """The end line number on the file to which the comment applies""" + line: Int + """ + Returns why the comment was minimized. One of `abuse`, `off-topic`, + `outdated`, `resolved`, `duplicate` and `spam`. Note that the case and + formatting of these values differs from the inputs to the `MinimizeComment` mutation. + """ + minimizedReason: String + """Identifies the original commit associated with the comment.""" + originalCommit: Commit + """ + The end line number on the file to which the comment applied when it was first created + """ + originalLine: Int + """The original line index in the diff to which the comment applies.""" + originalPosition: Int! @deprecated(reason: "We are phasing out diff-relative positioning for PR comments Removal on 2023-10-01 UTC.") + """ + The start line number on the file to which the comment applied when it was first created + """ + originalStartLine: Int + """Identifies when the comment body is outdated""" + outdated: Boolean! + """The path to which the comment applies.""" + path: String! + """The line index in the diff to which the comment applies.""" + position: Int @deprecated(reason: "We are phasing out diff-relative positioning for PR comments Use the `line` and `startLine` fields instead, which are file line numbers instead of diff line numbers Removal on 2023-10-01 UTC.") + """Identifies when the comment was published at.""" + publishedAt: DateTime + """The pull request associated with this review comment.""" + pullRequest: PullRequest! + """The pull request review associated with this review comment.""" + pullRequestReview: PullRequestReview + """A list of reactions grouped by content left on the subject.""" + reactionGroups: [ReactionGroup!] + """A list of Reactions left on the Issue.""" + reactions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Allows filtering Reactions by emoji.""" + content: ReactionContent + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Allows specifying the order in which reactions are returned.""" + orderBy: ReactionOrder + ): ReactionConnection! + """The comment this is a reply to.""" + replyTo: PullRequestReviewComment + """The repository associated with this node.""" + repository: Repository! + """The HTTP path permalink for this review comment.""" + resourcePath: URI! + """The start line number on the file to which the comment applies""" + startLine: Int + """Identifies the state of the comment.""" + state: PullRequestReviewCommentState! + """ + The level at which the comments in the corresponding thread are targeted, can be a diff line or a file + """ + subjectType: PullRequestReviewThreadSubjectType! + """Identifies when the comment was last updated.""" + updatedAt: DateTime! + """The HTTP URL permalink for this review comment.""" + url: URI! + """A list of edits to this content.""" + userContentEdits( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserContentEditConnection + """Check if the current viewer can delete this object.""" + viewerCanDelete: Boolean! + """Check if the current viewer can minimize this object.""" + viewerCanMinimize: Boolean! + """Can user react to this subject""" + viewerCanReact: Boolean! + """Check if the current viewer can update this object.""" + viewerCanUpdate: Boolean! + """Reasons why the current viewer can not update this comment.""" + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! + """Did the viewer author this comment.""" + viewerDidAuthor: Boolean! +} + +"""The connection type for PullRequestReviewComment.""" +type PullRequestReviewCommentConnection { + """A list of edges.""" + edges: [PullRequestReviewCommentEdge] + """A list of nodes.""" + nodes: [PullRequestReviewComment] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type PullRequestReviewCommentEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: PullRequestReviewComment +} + +"""The possible states of a pull request review comment.""" +enum PullRequestReviewCommentState { + """A comment that is part of a pending review""" + PENDING + """A comment that is part of a submitted review""" + SUBMITTED +} + +"""The connection type for PullRequestReview.""" +type PullRequestReviewConnection { + """A list of edges.""" + edges: [PullRequestReviewEdge] + """A list of nodes.""" + nodes: [PullRequestReview] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +""" +This aggregates pull request reviews made by a user within one repository. +""" +type PullRequestReviewContributionsByRepository { + """The pull request review contributions.""" + contributions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for contributions returned from the connection.""" + orderBy: ContributionOrder = {direction: DESC} + ): CreatedPullRequestReviewContributionConnection! + """The repository in which the pull request reviews were made.""" + repository: Repository! +} + +"""The review status of a pull request.""" +enum PullRequestReviewDecision { + """The pull request has received an approving review.""" + APPROVED + """Changes have been requested on the pull request.""" + CHANGES_REQUESTED + """A review is required before the pull request can be merged.""" + REVIEW_REQUIRED +} + +"""An edge in a connection.""" +type PullRequestReviewEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: PullRequestReview +} + +"""The possible events to perform on a pull request review.""" +enum PullRequestReviewEvent { + """Submit feedback and approve merging these changes.""" + APPROVE + """Submit general feedback without explicit approval.""" + COMMENT + """Dismiss review so it now longer effects merging.""" + DISMISS + """Submit feedback that must be addressed before merging.""" + REQUEST_CHANGES +} + +"""The possible states of a pull request review.""" +enum PullRequestReviewState { + """A review allowing the pull request to merge.""" + APPROVED + """A review blocking the pull request from merging.""" + CHANGES_REQUESTED + """An informational review.""" + COMMENTED + """A review that has been dismissed.""" + DISMISSED + """A review that has not yet been submitted.""" + PENDING +} + +"""A threaded list of comments for a given pull request.""" +type PullRequestReviewThread implements Node { + """A list of pull request comments associated with the thread.""" + comments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Skips the first _n_ elements in the list.""" + skip: Int + ): PullRequestReviewCommentConnection! + """The side of the diff on which this thread was placed.""" + diffSide: DiffSide! + """The Node ID of the PullRequestReviewThread object""" + id: ID! + """Whether or not the thread has been collapsed (resolved)""" + isCollapsed: Boolean! + """Indicates whether this thread was outdated by newer changes.""" + isOutdated: Boolean! + """Whether this thread has been resolved""" + isResolved: Boolean! + """The line in the file to which this thread refers""" + line: Int + """The original line in the file to which this thread refers.""" + originalLine: Int + """ + The original start line in the file to which this thread refers (multi-line only). + """ + originalStartLine: Int + """Identifies the file path of this thread.""" + path: String! + """Identifies the pull request associated with this thread.""" + pullRequest: PullRequest! + """Identifies the repository associated with this thread.""" + repository: Repository! + """The user who resolved this thread""" + resolvedBy: User + """ + The side of the diff that the first line of the thread starts on (multi-line only) + """ + startDiffSide: DiffSide + """ + The start line in the file to which this thread refers (multi-line only) + """ + startLine: Int + """ + The level at which the comments in the corresponding thread are targeted, can be a diff line or a file + """ + subjectType: PullRequestReviewThreadSubjectType! + """Indicates whether the current viewer can reply to this thread.""" + viewerCanReply: Boolean! + """Whether or not the viewer can resolve this thread""" + viewerCanResolve: Boolean! + """Whether or not the viewer can unresolve this thread""" + viewerCanUnresolve: Boolean! +} + +"""Review comment threads for a pull request review.""" +type PullRequestReviewThreadConnection { + """A list of edges.""" + edges: [PullRequestReviewThreadEdge] + """A list of nodes.""" + nodes: [PullRequestReviewThread] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type PullRequestReviewThreadEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: PullRequestReviewThread +} + +"""The possible subject types of a pull request review comment.""" +enum PullRequestReviewThreadSubjectType { + """A comment that has been made against the file of a pull request""" + FILE + """A comment that has been made against the line of a pull request""" + LINE +} + +""" +Represents the latest point in the pull request timeline for which the viewer has seen the pull request's commits. +""" +type PullRequestRevisionMarker { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The last commit the viewer has seen.""" + lastSeenCommit: Commit! + """The pull request to which the marker belongs.""" + pullRequest: PullRequest! +} + +"""The possible states of a pull request.""" +enum PullRequestState { + """A pull request that has been closed without being merged.""" + CLOSED + """A pull request that has been closed by being merged.""" + MERGED + """A pull request that is still open.""" + OPEN +} + +"""A repository pull request template.""" +type PullRequestTemplate { + """The body of the template""" + body: String + """The filename of the template""" + filename: String + """The repository the template belongs to""" + repository: Repository! +} + +"""A threaded list of comments for a given pull request.""" +type PullRequestThread implements Node { + """A list of pull request comments associated with the thread.""" + comments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Skips the first _n_ elements in the list.""" + skip: Int + ): PullRequestReviewCommentConnection! + """The side of the diff on which this thread was placed.""" + diffSide: DiffSide! + """The Node ID of the PullRequestThread object""" + id: ID! + """Whether or not the thread has been collapsed (resolved)""" + isCollapsed: Boolean! + """Indicates whether this thread was outdated by newer changes.""" + isOutdated: Boolean! + """Whether this thread has been resolved""" + isResolved: Boolean! + """The line in the file to which this thread refers""" + line: Int + """Identifies the file path of this thread.""" + path: String! + """Identifies the pull request associated with this thread.""" + pullRequest: PullRequest! + """Identifies the repository associated with this thread.""" + repository: Repository! + """The user who resolved this thread""" + resolvedBy: User + """ + The side of the diff that the first line of the thread starts on (multi-line only) + """ + startDiffSide: DiffSide + """The line of the first file diff in the thread.""" + startLine: Int + """ + The level at which the comments in the corresponding thread are targeted, can be a diff line or a file + """ + subjectType: PullRequestReviewThreadSubjectType! + """Indicates whether the current viewer can reply to this thread.""" + viewerCanReply: Boolean! + """Whether or not the viewer can resolve this thread""" + viewerCanResolve: Boolean! + """Whether or not the viewer can unresolve this thread""" + viewerCanUnresolve: Boolean! +} + +"""The connection type for PullRequestTimelineItem.""" +type PullRequestTimelineConnection { + """A list of edges.""" + edges: [PullRequestTimelineItemEdge] + """A list of nodes.""" + nodes: [PullRequestTimelineItem] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An item in a pull request timeline""" +union PullRequestTimelineItem = AssignedEvent | BaseRefDeletedEvent | BaseRefForcePushedEvent | ClosedEvent | Commit | CommitCommentThread | CrossReferencedEvent | DemilestonedEvent | DeployedEvent | DeploymentEnvironmentChangedEvent | HeadRefDeletedEvent | HeadRefForcePushedEvent | HeadRefRestoredEvent | IssueComment | LabeledEvent | LockedEvent | MergedEvent | MilestonedEvent | PullRequestReview | PullRequestReviewComment | PullRequestReviewThread | ReferencedEvent | RenamedTitleEvent | ReopenedEvent | ReviewDismissedEvent | ReviewRequestRemovedEvent | ReviewRequestedEvent | SubscribedEvent | UnassignedEvent | UnlabeledEvent | UnlockedEvent | UnsubscribedEvent | UserBlockedEvent + +"""An edge in a connection.""" +type PullRequestTimelineItemEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: PullRequestTimelineItem +} + +"""An item in a pull request timeline""" +union PullRequestTimelineItems = AddedToMergeQueueEvent | AddedToProjectEvent | AssignedEvent | AutoMergeDisabledEvent | AutoMergeEnabledEvent | AutoRebaseEnabledEvent | AutoSquashEnabledEvent | AutomaticBaseChangeFailedEvent | AutomaticBaseChangeSucceededEvent | BaseRefChangedEvent | BaseRefDeletedEvent | BaseRefForcePushedEvent | ClosedEvent | CommentDeletedEvent | ConnectedEvent | ConvertToDraftEvent | ConvertedNoteToIssueEvent | ConvertedToDiscussionEvent | CrossReferencedEvent | DemilestonedEvent | DeployedEvent | DeploymentEnvironmentChangedEvent | DisconnectedEvent | HeadRefDeletedEvent | HeadRefForcePushedEvent | HeadRefRestoredEvent | IssueComment | IssueTypeAddedEvent | IssueTypeChangedEvent | IssueTypeRemovedEvent | LabeledEvent | LockedEvent | MarkedAsDuplicateEvent | MentionedEvent | MergedEvent | MilestonedEvent | MovedColumnsInProjectEvent | ParentIssueAddedEvent | ParentIssueRemovedEvent | PinnedEvent | PullRequestCommit | PullRequestCommitCommentThread | PullRequestReview | PullRequestReviewThread | PullRequestRevisionMarker | ReadyForReviewEvent | ReferencedEvent | RemovedFromMergeQueueEvent | RemovedFromProjectEvent | RenamedTitleEvent | ReopenedEvent | ReviewDismissedEvent | ReviewRequestRemovedEvent | ReviewRequestedEvent | SubIssueAddedEvent | SubIssueRemovedEvent | SubscribedEvent | TransferredEvent | UnassignedEvent | UnlabeledEvent | UnlockedEvent | UnmarkedAsDuplicateEvent | UnpinnedEvent | UnsubscribedEvent | UserBlockedEvent + +"""The connection type for PullRequestTimelineItems.""" +type PullRequestTimelineItemsConnection { + """A list of edges.""" + edges: [PullRequestTimelineItemsEdge] + """ + Identifies the count of items after applying `before` and `after` filters. + """ + filteredCount: Int! + """A list of nodes.""" + nodes: [PullRequestTimelineItems] + """ + Identifies the count of items after applying `before`/`after` filters and `first`/`last`/`skip` slicing. + """ + pageCount: Int! + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! + """Identifies the date and time when the timeline was last updated.""" + updatedAt: DateTime! +} + +"""An edge in a connection.""" +type PullRequestTimelineItemsEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: PullRequestTimelineItems +} + +"""The possible item types found in a timeline.""" +enum PullRequestTimelineItemsItemType { + """Represents an 'added_to_merge_queue' event on a given pull request.""" + ADDED_TO_MERGE_QUEUE_EVENT + """ + Represents a 'added_to_project' event on a given issue or pull request. + """ + ADDED_TO_PROJECT_EVENT + """Represents an 'assigned' event on any assignable object.""" + ASSIGNED_EVENT + """ + Represents a 'automatic_base_change_failed' event on a given pull request. + """ + AUTOMATIC_BASE_CHANGE_FAILED_EVENT + """ + Represents a 'automatic_base_change_succeeded' event on a given pull request. + """ + AUTOMATIC_BASE_CHANGE_SUCCEEDED_EVENT + """Represents a 'auto_merge_disabled' event on a given pull request.""" + AUTO_MERGE_DISABLED_EVENT + """Represents a 'auto_merge_enabled' event on a given pull request.""" + AUTO_MERGE_ENABLED_EVENT + """Represents a 'auto_rebase_enabled' event on a given pull request.""" + AUTO_REBASE_ENABLED_EVENT + """Represents a 'auto_squash_enabled' event on a given pull request.""" + AUTO_SQUASH_ENABLED_EVENT + """ + Represents a 'base_ref_changed' event on a given issue or pull request. + """ + BASE_REF_CHANGED_EVENT + """Represents a 'base_ref_deleted' event on a given pull request.""" + BASE_REF_DELETED_EVENT + """Represents a 'base_ref_force_pushed' event on a given pull request.""" + BASE_REF_FORCE_PUSHED_EVENT + """Represents a 'closed' event on any `Closable`.""" + CLOSED_EVENT + """Represents a 'comment_deleted' event on a given issue or pull request.""" + COMMENT_DELETED_EVENT + """Represents a 'connected' event on a given issue or pull request.""" + CONNECTED_EVENT + """ + Represents a 'converted_note_to_issue' event on a given issue or pull request. + """ + CONVERTED_NOTE_TO_ISSUE_EVENT + """Represents a 'converted_to_discussion' event on a given issue.""" + CONVERTED_TO_DISCUSSION_EVENT + """Represents a 'convert_to_draft' event on a given pull request.""" + CONVERT_TO_DRAFT_EVENT + """Represents a mention made by one issue or pull request to another.""" + CROSS_REFERENCED_EVENT + """Represents a 'demilestoned' event on a given issue or pull request.""" + DEMILESTONED_EVENT + """Represents a 'deployed' event on a given pull request.""" + DEPLOYED_EVENT + """ + Represents a 'deployment_environment_changed' event on a given pull request. + """ + DEPLOYMENT_ENVIRONMENT_CHANGED_EVENT + """Represents a 'disconnected' event on a given issue or pull request.""" + DISCONNECTED_EVENT + """Represents a 'head_ref_deleted' event on a given pull request.""" + HEAD_REF_DELETED_EVENT + """Represents a 'head_ref_force_pushed' event on a given pull request.""" + HEAD_REF_FORCE_PUSHED_EVENT + """Represents a 'head_ref_restored' event on a given pull request.""" + HEAD_REF_RESTORED_EVENT + """Represents a comment on an Issue.""" + ISSUE_COMMENT + """Represents a 'issue_type_added' event on a given issue.""" + ISSUE_TYPE_ADDED_EVENT + """Represents a 'issue_type_changed' event on a given issue.""" + ISSUE_TYPE_CHANGED_EVENT + """Represents a 'issue_type_removed' event on a given issue.""" + ISSUE_TYPE_REMOVED_EVENT + """Represents a 'labeled' event on a given issue or pull request.""" + LABELED_EVENT + """Represents a 'locked' event on a given issue or pull request.""" + LOCKED_EVENT + """ + Represents a 'marked_as_duplicate' event on a given issue or pull request. + """ + MARKED_AS_DUPLICATE_EVENT + """Represents a 'mentioned' event on a given issue or pull request.""" + MENTIONED_EVENT + """Represents a 'merged' event on a given pull request.""" + MERGED_EVENT + """Represents a 'milestoned' event on a given issue or pull request.""" + MILESTONED_EVENT + """ + Represents a 'moved_columns_in_project' event on a given issue or pull request. + """ + MOVED_COLUMNS_IN_PROJECT_EVENT + """Represents a 'parent_issue_added' event on a given issue.""" + PARENT_ISSUE_ADDED_EVENT + """Represents a 'parent_issue_removed' event on a given issue.""" + PARENT_ISSUE_REMOVED_EVENT + """Represents a 'pinned' event on a given issue or pull request.""" + PINNED_EVENT + """Represents a Git commit part of a pull request.""" + PULL_REQUEST_COMMIT + """Represents a commit comment thread part of a pull request.""" + PULL_REQUEST_COMMIT_COMMENT_THREAD + """A review object for a given pull request.""" + PULL_REQUEST_REVIEW + """A threaded list of comments for a given pull request.""" + PULL_REQUEST_REVIEW_THREAD + """ + Represents the latest point in the pull request timeline for which the viewer has seen the pull request's commits. + """ + PULL_REQUEST_REVISION_MARKER + """Represents a 'ready_for_review' event on a given pull request.""" + READY_FOR_REVIEW_EVENT + """Represents a 'referenced' event on a given `ReferencedSubject`.""" + REFERENCED_EVENT + """Represents a 'removed_from_merge_queue' event on a given pull request.""" + REMOVED_FROM_MERGE_QUEUE_EVENT + """ + Represents a 'removed_from_project' event on a given issue or pull request. + """ + REMOVED_FROM_PROJECT_EVENT + """Represents a 'renamed' event on a given issue or pull request""" + RENAMED_TITLE_EVENT + """Represents a 'reopened' event on any `Closable`.""" + REOPENED_EVENT + """ + Represents a 'review_dismissed' event on a given issue or pull request. + """ + REVIEW_DISMISSED_EVENT + """Represents an 'review_requested' event on a given pull request.""" + REVIEW_REQUESTED_EVENT + """Represents an 'review_request_removed' event on a given pull request.""" + REVIEW_REQUEST_REMOVED_EVENT + """Represents a 'subscribed' event on a given `Subscribable`.""" + SUBSCRIBED_EVENT + """Represents a 'sub_issue_added' event on a given issue.""" + SUB_ISSUE_ADDED_EVENT + """Represents a 'sub_issue_removed' event on a given issue.""" + SUB_ISSUE_REMOVED_EVENT + """Represents a 'transferred' event on a given issue or pull request.""" + TRANSFERRED_EVENT + """Represents an 'unassigned' event on any assignable object.""" + UNASSIGNED_EVENT + """Represents an 'unlabeled' event on a given issue or pull request.""" + UNLABELED_EVENT + """Represents an 'unlocked' event on a given issue or pull request.""" + UNLOCKED_EVENT + """ + Represents an 'unmarked_as_duplicate' event on a given issue or pull request. + """ + UNMARKED_AS_DUPLICATE_EVENT + """Represents an 'unpinned' event on a given issue or pull request.""" + UNPINNED_EVENT + """Represents an 'unsubscribed' event on a given `Subscribable`.""" + UNSUBSCRIBED_EVENT + """Represents a 'user_blocked' event on a given user.""" + USER_BLOCKED_EVENT +} + +"""The possible target states when updating a pull request.""" +enum PullRequestUpdateState { + """A pull request that has been closed without being merged.""" + CLOSED + """A pull request that is still open.""" + OPEN +} + +"""A Git push.""" +type Push implements Node { + """The Node ID of the Push object""" + id: ID! + """The SHA after the push""" + nextSha: GitObjectID + """The permalink for this push.""" + permalink: URI! + """The SHA before the push""" + previousSha: GitObjectID + """The actor who pushed""" + pusher: Actor! + """The repository that was pushed to""" + repository: Repository! +} + +""" +A team, user, or app who has the ability to push to a protected branch. +""" +type PushAllowance implements Node { + """The actor that can push.""" + actor: PushAllowanceActor + """ + Identifies the branch protection rule associated with the allowed user, team, or app. + """ + branchProtectionRule: BranchProtectionRule + """The Node ID of the PushAllowance object""" + id: ID! +} + +"""Types that can be an actor.""" +union PushAllowanceActor = App | Team | User + +"""The connection type for PushAllowance.""" +type PushAllowanceConnection { + """A list of edges.""" + edges: [PushAllowanceEdge] + """A list of nodes.""" + nodes: [PushAllowance] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type PushAllowanceEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: PushAllowance +} + +"""The query root of GitHub's GraphQL interface.""" +type Query implements Node { + """Look up a code of conduct by its key""" + codeOfConduct( + """The code of conduct's key""" + key: String! + ): CodeOfConduct + """Look up a code of conduct by its key""" + codesOfConduct: [CodeOfConduct] + """Look up an enterprise by URL slug.""" + enterprise( + """The enterprise invitation token.""" + invitationToken: String + """The enterprise URL slug.""" + slug: String! + ): Enterprise + """ + Look up a pending enterprise administrator invitation by invitee, enterprise and role. + """ + enterpriseAdministratorInvitation( + """The slug of the enterprise the user was invited to join.""" + enterpriseSlug: String! + """The role for the enterprise member invitation.""" + role: EnterpriseAdministratorRole! + """The login of the user invited to join the enterprise.""" + userLogin: String! + ): EnterpriseAdministratorInvitation + """ + Look up a pending enterprise administrator invitation by invitation token. + """ + enterpriseAdministratorInvitationByToken( + """The invitation token sent with the invitation email.""" + invitationToken: String! + ): EnterpriseAdministratorInvitation + """ + Look up a pending enterprise unaffiliated member invitation by invitee and enterprise. + """ + enterpriseMemberInvitation( + """The slug of the enterprise the user was invited to join.""" + enterpriseSlug: String! + """The login of the user invited to join the enterprise.""" + userLogin: String! + ): EnterpriseMemberInvitation + """ + Look up a pending enterprise unaffiliated member invitation by invitation token. + """ + enterpriseMemberInvitationByToken( + """The invitation token sent with the invitation email.""" + invitationToken: String! + ): EnterpriseMemberInvitation + """ID of the object.""" + id: ID! + """Look up an open source license by its key""" + license( + """The license's downcased SPDX ID""" + key: String! + ): License + """Return a list of known open source licenses""" + licenses: [License]! + """Get alphabetically sorted list of Marketplace categories""" + marketplaceCategories( + """Exclude categories with no listings.""" + excludeEmpty: Boolean + """Returns top level categories only, excluding any subcategories.""" + excludeSubcategories: Boolean + """Return only the specified categories.""" + includeCategories: [String!] + ): [MarketplaceCategory!]! + """Look up a Marketplace category by its slug.""" + marketplaceCategory( + """The URL slug of the category.""" + slug: String! + """Also check topic aliases for the category slug""" + useTopicAliases: Boolean + ): MarketplaceCategory + """Look up a single Marketplace listing""" + marketplaceListing( + """ + Select the listing that matches this slug. It's the short name of the listing used in its URL. + """ + slug: String! + ): MarketplaceListing + """Look up Marketplace listings""" + marketplaceListings( + """Select listings that can be administered by the specified user.""" + adminId: ID + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Select listings visible to the viewer even if they are not approved. If omitted or + false, only approved listings will be returned. + """ + allStates: Boolean + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Select only listings with the given category.""" + categorySlug: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Select listings for products owned by the specified organization.""" + organizationId: ID + """ + Select only listings where the primary category matches the given category slug. + """ + primaryCategoryOnly: Boolean = false + """ + Select the listings with these slugs, if they are visible to the viewer. + """ + slugs: [String] + """Also check topic aliases for the category slug""" + useTopicAliases: Boolean + """ + Select listings to which user has admin access. If omitted, listings visible to the + viewer are returned. + """ + viewerCanAdmin: Boolean + """Select only listings that offer a free trial.""" + withFreeTrialsOnly: Boolean = false + ): MarketplaceListingConnection! + """Return information about the GitHub instance""" + meta: GitHubMetadata! + """Fetches an object given its ID.""" + node( + """ID of the object.""" + id: ID! + ): Node + """Lookup nodes by a list of IDs.""" + nodes( + """The list of node IDs.""" + ids: [ID!]! + ): [Node]! + """Lookup a organization by login.""" + organization( + """The organization's login.""" + login: String! + ): Organization + """The client's rate limit information.""" + rateLimit( + """If true, calculate the cost for the query without evaluating it""" + dryRun: Boolean = false + ): RateLimit + """ + Workaround for re-exposing the root query object. (Refer to + https://github.com/facebook/relay/issues/112 for more information.) + """ + relay: Query! + """Lookup a given repository by the owner and repository name.""" + repository( + """ + Follow repository renames. If disabled, a repository referenced by its old name will return an error. + """ + followRenames: Boolean = true + """The name of the repository""" + name: String! + """The login field of a user or organization""" + owner: String! + ): Repository + """ + Lookup a repository owner (ie. either a User or an Organization) by login. + """ + repositoryOwner( + """The username to lookup the owner by.""" + login: String! + ): RepositoryOwner + """Lookup resource by a URL.""" + resource( + """The URL.""" + url: URI! + ): UniformResourceLocatable + """ + Perform a search across resources, returning a maximum of 1,000 results. + """ + search( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + The search string to look for. GitHub search syntax is supported. For more + information, see "[Searching on + GitHub](https://docs.github.com/search-github/searching-on-github)," + "[Understanding the search syntax](https://docs.github.com/search-github/getting-started-with-searching-on-github/understanding-the-search-syntax)," + and "[Sorting search results](https://docs.github.com/search-github/getting-started-with-searching-on-github/sorting-search-results)." + """ + query: String! + """The types of search items to search within.""" + type: SearchType! + ): SearchResultItemConnection! + """GitHub Security Advisories""" + securityAdvisories( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """A list of classifications to filter advisories by.""" + classifications: [SecurityAdvisoryClassification!] + """The EPSS percentage to filter advisories by.""" + epssPercentage: Float + """The EPSS percentile to filter advisories by.""" + epssPercentile: Float + """Returns the first _n_ elements from the list.""" + first: Int + """Filter advisories by identifier, e.g. GHSA or CVE.""" + identifier: SecurityAdvisoryIdentifierFilter + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for the returned topics.""" + orderBy: SecurityAdvisoryOrder = {direction: DESC, field: UPDATED_AT} + """Filter advisories to those published since a time in the past.""" + publishedSince: DateTime + """Filter advisories to those updated since a time in the past.""" + updatedSince: DateTime + ): SecurityAdvisoryConnection! + """Fetch a Security Advisory by its GHSA ID""" + securityAdvisory( + """GitHub Security Advisory ID.""" + ghsaId: String! + ): SecurityAdvisory + """Software Vulnerabilities documented by GitHub Security Advisories""" + securityVulnerabilities( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """A list of advisory classifications to filter vulnerabilities by.""" + classifications: [SecurityAdvisoryClassification!] + """An ecosystem to filter vulnerabilities by.""" + ecosystem: SecurityAdvisoryEcosystem + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for the returned topics.""" + orderBy: SecurityVulnerabilityOrder = {direction: DESC, field: UPDATED_AT} + """A package name to filter vulnerabilities by.""" + package: String + """A list of severities to filter vulnerabilities by.""" + severities: [SecurityAdvisorySeverity!] + ): SecurityVulnerabilityConnection! + """Users and organizations who can be sponsored via GitHub Sponsors.""" + sponsorables( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """ + Optional filter for which dependencies should be checked for sponsorable + owners. Only sponsorable owners of dependencies in this ecosystem will be + included. Used when onlyDependencies = true. + + **Upcoming Change on 2022-07-01 UTC** + **Description:** `dependencyEcosystem` will be removed. Use the ecosystem argument instead. + **Reason:** The type is switching from SecurityAdvisoryEcosystem to DependencyGraphEcosystem. + """ + dependencyEcosystem: SecurityAdvisoryEcosystem + """ + Optional filter for which dependencies should be checked for sponsorable + owners. Only sponsorable owners of dependencies in this ecosystem will be + included. Used when onlyDependencies = true. + """ + ecosystem: DependencyGraphEcosystem + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Whether only sponsorables who own the viewer's dependencies will be + returned. Must be authenticated to use. Can check an organization instead + for their dependencies owned by sponsorables by passing + orgLoginForDependencies. + """ + onlyDependencies: Boolean = false + """ + Ordering options for users and organizations returned from the connection. + """ + orderBy: SponsorableOrder = {direction: ASC, field: LOGIN} + """ + Optional organization username for whose dependencies should be checked. + Used when onlyDependencies = true. Omit to check your own dependencies. If + you are not an administrator of the organization, only dependencies from its + public repositories will be considered. + """ + orgLoginForDependencies: String + ): SponsorableItemConnection! + """Look up a topic by name.""" + topic( + """The topic's name.""" + name: String! + ): Topic + """Lookup a user by login.""" + user( + """The user's login.""" + login: String! + ): User + """The currently authenticated user.""" + viewer: User! +} + +"""Represents the client's rate limit.""" +type RateLimit { + """The point cost for the current query counting against the rate limit.""" + cost: Int! + """ + The maximum number of points the client is permitted to consume in a 60 minute window. + """ + limit: Int! + """The maximum number of nodes this query may return""" + nodeCount: Int! + """The number of points remaining in the current rate limit window.""" + remaining: Int! + """ + The time at which the current rate limit window resets in UTC epoch seconds. + """ + resetAt: DateTime! + """The number of points used in the current rate limit window.""" + used: Int! +} + +"""Represents a subject that can be reacted on.""" +interface Reactable { + """Identifies the primary key from the database.""" + databaseId: Int + """The Node ID of the Reactable object""" + id: ID! + """A list of reactions grouped by content left on the subject.""" + reactionGroups: [ReactionGroup!] + """A list of Reactions left on the Issue.""" + reactions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Allows filtering Reactions by emoji.""" + content: ReactionContent + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Allows specifying the order in which reactions are returned.""" + orderBy: ReactionOrder + ): ReactionConnection! + """Can user react to this subject""" + viewerCanReact: Boolean! +} + +"""The connection type for User.""" +type ReactingUserConnection { + """A list of edges.""" + edges: [ReactingUserEdge] + """A list of nodes.""" + nodes: [User] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""Represents a user that's made a reaction.""" +type ReactingUserEdge { + """A cursor for use in pagination.""" + cursor: String! + node: User! + """The moment when the user made the reaction.""" + reactedAt: DateTime! +} + +"""An emoji reaction to a particular piece of content.""" +type Reaction implements Node { + """Identifies the emoji reaction.""" + content: ReactionContent! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int + """The Node ID of the Reaction object""" + id: ID! + """The reactable piece of content""" + reactable: Reactable! + """Identifies the user who created this reaction.""" + user: User +} + +"""A list of reactions that have been left on the subject.""" +type ReactionConnection { + """A list of edges.""" + edges: [ReactionEdge] + """A list of nodes.""" + nodes: [Reaction] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! + """ + Whether or not the authenticated user has left a reaction on the subject. + """ + viewerHasReacted: Boolean! +} + +"""Emojis that can be attached to Issues, Pull Requests and Comments.""" +enum ReactionContent { + """Represents the `:confused:` emoji.""" + CONFUSED + """Represents the `:eyes:` emoji.""" + EYES + """Represents the `:heart:` emoji.""" + HEART + """Represents the `:hooray:` emoji.""" + HOORAY + """Represents the `:laugh:` emoji.""" + LAUGH + """Represents the `:rocket:` emoji.""" + ROCKET + """Represents the `:-1:` emoji.""" + THUMBS_DOWN + """Represents the `:+1:` emoji.""" + THUMBS_UP +} + +"""An edge in a connection.""" +type ReactionEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Reaction +} + +"""A group of emoji reactions to a particular piece of content.""" +type ReactionGroup { + """Identifies the emoji reaction.""" + content: ReactionContent! + """Identifies when the reaction was created.""" + createdAt: DateTime + """ + Reactors to the reaction subject with the emotion represented by this reaction group. + """ + reactors( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): ReactorConnection! + """The subject that was reacted to.""" + subject: Reactable! + """ + Users who have reacted to the reaction subject with the emotion represented by this reaction group + """ + users( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): ReactingUserConnection! @deprecated(reason: "Reactors can now be mannequins, bots, and organizations. Use the `reactors` field instead. Removal on 2021-10-01 UTC.") + """ + Whether or not the authenticated user has left a reaction on the subject. + """ + viewerHasReacted: Boolean! +} + +"""Ways in which lists of reactions can be ordered upon return.""" +input ReactionOrder { + """The direction in which to order reactions by the specified field.""" + direction: OrderDirection! + """The field in which to order reactions by.""" + field: ReactionOrderField! +} + +"""A list of fields that reactions can be ordered by.""" +enum ReactionOrderField { + """Allows ordering a list of reactions by when they were created.""" + CREATED_AT +} + +"""Types that can be assigned to reactions.""" +union Reactor = Bot | Mannequin | Organization | User + +"""The connection type for Reactor.""" +type ReactorConnection { + """A list of edges.""" + edges: [ReactorEdge] + """A list of nodes.""" + nodes: [Reactor] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""Represents an author of a reaction.""" +type ReactorEdge { + """A cursor for use in pagination.""" + cursor: String! + """The author of the reaction.""" + node: Reactor! + """The moment when the user made the reaction.""" + reactedAt: DateTime! +} + +"""Represents a 'ready_for_review' event on a given pull request.""" +type ReadyForReviewEvent implements Node & UniformResourceLocatable { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the ReadyForReviewEvent object""" + id: ID! + """PullRequest referenced by event.""" + pullRequest: PullRequest! + """The HTTP path for this ready for review event.""" + resourcePath: URI! + """The HTTP URL for this ready for review event.""" + url: URI! +} + +"""Represents a Git reference.""" +type Ref implements Node { + """A list of pull requests with this ref as the head ref.""" + associatedPullRequests( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """The base ref name to filter the pull requests by.""" + baseRefName: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """The head ref name to filter the pull requests by.""" + headRefName: String + """A list of label names to filter the pull requests by.""" + labels: [String!] + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for pull requests returned from the connection.""" + orderBy: IssueOrder + """A list of states to filter the pull requests by.""" + states: [PullRequestState!] + ): PullRequestConnection! + """Branch protection rules for this ref""" + branchProtectionRule: BranchProtectionRule + """ + Compares the current ref as a base ref to another head ref, if the comparison can be made. + """ + compare( + """The head ref to compare against.""" + headRef: String! + ): Comparison + """The Node ID of the Ref object""" + id: ID! + """The ref name.""" + name: String! + """The ref's prefix, such as `refs/heads/` or `refs/tags/`.""" + prefix: String! + """Branch protection rules that are viewable by non-admins""" + refUpdateRule: RefUpdateRule + """The repository the ref belongs to.""" + repository: Repository! + """ + A list of rules from active Repository and Organization rulesets that apply to this ref. + """ + rules( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for repository rules.""" + orderBy: RepositoryRuleOrder = {direction: DESC, field: UPDATED_AT} + ): RepositoryRuleConnection + """The object the ref points to. Returns null when object does not exist.""" + target: GitObject +} + +"""The connection type for Ref.""" +type RefConnection { + """A list of edges.""" + edges: [RefEdge] + """A list of nodes.""" + nodes: [Ref] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type RefEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Ref +} + +"""Parameters to be used for the ref_name condition""" +type RefNameConditionTarget { + """ + Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match. + """ + exclude: [String!]! + """ + Array of ref names or patterns to include. One of these patterns must match + for the condition to pass. Also accepts `~DEFAULT_BRANCH` to include the + default branch or `~ALL` to include all branches. + """ + include: [String!]! +} + +"""Parameters to be used for the ref_name condition""" +input RefNameConditionTargetInput { + """ + Array of ref names or patterns to exclude. The condition will not pass if any of these patterns match. + """ + exclude: [String!]! + """ + Array of ref names or patterns to include. One of these patterns must match + for the condition to pass. Also accepts `~DEFAULT_BRANCH` to include the + default branch or `~ALL` to include all branches. + """ + include: [String!]! +} + +"""Ways in which lists of git refs can be ordered upon return.""" +input RefOrder { + """The direction in which to order refs by the specified field.""" + direction: OrderDirection! + """The field in which to order refs by.""" + field: RefOrderField! +} + +"""Properties by which ref connections can be ordered.""" +enum RefOrderField { + """Order refs by their alphanumeric name""" + ALPHABETICAL + """Order refs by underlying commit date if the ref prefix is refs/tags/""" + TAG_COMMIT_DATE +} + +"""A ref update""" +input RefUpdate { + """The value this ref should be updated to.""" + afterOid: GitObjectID! + """The value this ref needs to point to before the update.""" + beforeOid: GitObjectID + """Force a non fast-forward update.""" + force: Boolean = false + """ + The fully qualified name of the ref to be update. For example `refs/heads/branch-name` + """ + name: GitRefname! +} + +"""Branch protection rules that are enforced on the viewer.""" +type RefUpdateRule { + """Can this branch be deleted.""" + allowsDeletions: Boolean! + """Are force pushes allowed on this branch.""" + allowsForcePushes: Boolean! + """Can matching branches be created.""" + blocksCreations: Boolean! + """Identifies the protection rule pattern.""" + pattern: String! + """Number of approving reviews required to update matching branches.""" + requiredApprovingReviewCount: Int + """ + List of required status check contexts that must pass for commits to be accepted to matching branches. + """ + requiredStatusCheckContexts: [String] + """Are reviews from code owners required to update matching branches.""" + requiresCodeOwnerReviews: Boolean! + """Are conversations required to be resolved before merging.""" + requiresConversationResolution: Boolean! + """Are merge commits prohibited from being pushed to this branch.""" + requiresLinearHistory: Boolean! + """Are commits required to be signed.""" + requiresSignatures: Boolean! + """Is the viewer allowed to dismiss reviews.""" + viewerAllowedToDismissReviews: Boolean! + """Can the viewer push to the branch""" + viewerCanPush: Boolean! +} + +"""Represents a 'referenced' event on a given `ReferencedSubject`.""" +type ReferencedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the commit associated with the 'referenced' event.""" + commit: Commit + """Identifies the repository associated with the 'referenced' event.""" + commitRepository: Repository! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the ReferencedEvent object""" + id: ID! + """Reference originated in a different repository.""" + isCrossRepository: Boolean! + """ + Checks if the commit message itself references the subject. Can be false in the case of a commit comment reference. + """ + isDirectReference: Boolean! + """Object referenced by event.""" + subject: ReferencedSubject! +} + +"""Any referencable object""" +union ReferencedSubject = Issue | PullRequest + +""" +Autogenerated input type of RegenerateEnterpriseIdentityProviderRecoveryCodes +""" +input RegenerateEnterpriseIdentityProviderRecoveryCodesInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the enterprise on which to set an identity provider.""" + enterpriseId: ID! +} + +""" +Autogenerated return type of RegenerateEnterpriseIdentityProviderRecoveryCodes. +""" +type RegenerateEnterpriseIdentityProviderRecoveryCodesPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The identity provider for the enterprise.""" + identityProvider: EnterpriseIdentityProvider +} + +"""Autogenerated input type of RegenerateVerifiableDomainToken""" +input RegenerateVerifiableDomainTokenInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The ID of the verifiable domain to regenerate the verification token of. + """ + id: ID! +} + +"""Autogenerated return type of RegenerateVerifiableDomainToken.""" +type RegenerateVerifiableDomainTokenPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The verification token that was generated.""" + verificationToken: String +} + +"""Autogenerated input type of RejectDeployments""" +input RejectDeploymentsInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """Optional comment for rejecting deployments""" + comment: String = "" + """The ids of environments to reject deployments""" + environmentIds: [ID!]! + """The node ID of the workflow run containing the pending deployments.""" + workflowRunId: ID! +} + +"""Autogenerated return type of RejectDeployments.""" +type RejectDeploymentsPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The affected deployments.""" + deployments: [Deployment!] +} + +"""A release contains the content for a release.""" +type Release implements Node & Reactable & UniformResourceLocatable { + """The author of the release""" + author: User + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int + """The description of the release.""" + description: String + """The description of this release rendered to HTML.""" + descriptionHTML: HTML + """The Node ID of the Release object""" + id: ID! + """Whether or not the release is a draft""" + isDraft: Boolean! + """Whether or not the release is the latest releast""" + isLatest: Boolean! + """Whether or not the release is a prerelease""" + isPrerelease: Boolean! + """A list of users mentioned in the release description""" + mentions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserConnection + """The title of the release.""" + name: String + """Identifies the date and time when the release was created.""" + publishedAt: DateTime + """A list of reactions grouped by content left on the subject.""" + reactionGroups: [ReactionGroup!] + """A list of Reactions left on the Issue.""" + reactions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Allows filtering Reactions by emoji.""" + content: ReactionContent + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Allows specifying the order in which reactions are returned.""" + orderBy: ReactionOrder + ): ReactionConnection! + """List of releases assets which are dependent on this release.""" + releaseAssets( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """A name to filter the assets by.""" + name: String + ): ReleaseAssetConnection! + """The repository that the release belongs to.""" + repository: Repository! + """The HTTP path for this issue""" + resourcePath: URI! + """ + A description of the release, rendered to HTML without any links in it. + """ + shortDescriptionHTML( + """How many characters to return.""" + limit: Int = 200 + ): HTML + """The Git tag the release points to""" + tag: Ref + """The tag commit for this release.""" + tagCommit: Commit + """The name of the release's Git tag""" + tagName: String! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The HTTP URL for this issue""" + url: URI! + """Can user react to this subject""" + viewerCanReact: Boolean! +} + +"""A release asset contains the content for a release asset.""" +type ReleaseAsset implements Node { + """The asset's content-type""" + contentType: String! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The number of times this asset was downloaded""" + downloadCount: Int! + """ + Identifies the URL where you can download the release asset via the browser. + """ + downloadUrl: URI! + """The Node ID of the ReleaseAsset object""" + id: ID! + """Identifies the title of the release asset.""" + name: String! + """Release that the asset is associated with""" + release: Release + """The size (in bytes) of the asset""" + size: Int! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The user that performed the upload""" + uploadedBy: User! + """Identifies the URL of the release asset.""" + url: URI! +} + +"""The connection type for ReleaseAsset.""" +type ReleaseAssetConnection { + """A list of edges.""" + edges: [ReleaseAssetEdge] + """A list of nodes.""" + nodes: [ReleaseAsset] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type ReleaseAssetEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: ReleaseAsset +} + +"""The connection type for Release.""" +type ReleaseConnection { + """A list of edges.""" + edges: [ReleaseEdge] + """A list of nodes.""" + nodes: [Release] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type ReleaseEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Release +} + +"""Ways in which lists of releases can be ordered upon return.""" +input ReleaseOrder { + """The direction in which to order releases by the specified field.""" + direction: OrderDirection! + """The field in which to order releases by.""" + field: ReleaseOrderField! +} + +"""Properties by which release connections can be ordered.""" +enum ReleaseOrderField { + """Order releases by creation time""" + CREATED_AT + """Order releases alphabetically by name""" + NAME +} + +"""Autogenerated input type of RemoveAssigneesFromAssignable""" +input RemoveAssigneesFromAssignableInput { + """The id of the assignable object to remove assignees from.""" + assignableId: ID! + """The id of users to remove as assignees.""" + assigneeIds: [ID!]! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of RemoveAssigneesFromAssignable.""" +type RemoveAssigneesFromAssignablePayload { + """The item that was unassigned.""" + assignable: Assignable + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated input type of RemoveEnterpriseAdmin""" +input RemoveEnterpriseAdminInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Enterprise ID from which to remove the administrator.""" + enterpriseId: ID! + """The login of the user to remove as an administrator.""" + login: String! +} + +"""Autogenerated return type of RemoveEnterpriseAdmin.""" +type RemoveEnterpriseAdminPayload { + """The user who was removed as an administrator.""" + admin: User + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated enterprise.""" + enterprise: Enterprise + """A message confirming the result of removing an administrator.""" + message: String + """The viewer performing the mutation.""" + viewer: User +} + +"""Autogenerated input type of RemoveEnterpriseIdentityProvider""" +input RemoveEnterpriseIdentityProviderInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the enterprise from which to remove the identity provider.""" + enterpriseId: ID! +} + +"""Autogenerated return type of RemoveEnterpriseIdentityProvider.""" +type RemoveEnterpriseIdentityProviderPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The identity provider that was removed from the enterprise.""" + identityProvider: EnterpriseIdentityProvider +} + +"""Autogenerated input type of RemoveEnterpriseMember""" +input RemoveEnterpriseMemberInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the enterprise from which the user should be removed.""" + enterpriseId: ID! + """The ID of the user to remove from the enterprise.""" + userId: ID! +} + +"""Autogenerated return type of RemoveEnterpriseMember.""" +type RemoveEnterpriseMemberPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated enterprise.""" + enterprise: Enterprise + """The user that was removed from the enterprise.""" + user: User + """The viewer performing the mutation.""" + viewer: User +} + +"""Autogenerated input type of RemoveEnterpriseOrganization""" +input RemoveEnterpriseOrganizationInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The ID of the enterprise from which the organization should be removed. + """ + enterpriseId: ID! + """The ID of the organization to remove from the enterprise.""" + organizationId: ID! +} + +"""Autogenerated return type of RemoveEnterpriseOrganization.""" +type RemoveEnterpriseOrganizationPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated enterprise.""" + enterprise: Enterprise + """The organization that was removed from the enterprise.""" + organization: Organization + """The viewer performing the mutation.""" + viewer: User +} + +"""Autogenerated input type of RemoveEnterpriseSupportEntitlement""" +input RemoveEnterpriseSupportEntitlementInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the Enterprise which the admin belongs to.""" + enterpriseId: ID! + """The login of a member who will lose the support entitlement.""" + login: String! +} + +"""Autogenerated return type of RemoveEnterpriseSupportEntitlement.""" +type RemoveEnterpriseSupportEntitlementPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """A message confirming the result of removing the support entitlement.""" + message: String +} + +"""Autogenerated input type of RemoveLabelsFromLabelable""" +input RemoveLabelsFromLabelableInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ids of labels to remove.""" + labelIds: [ID!]! + """The id of the Labelable to remove labels from.""" + labelableId: ID! +} + +"""Autogenerated return type of RemoveLabelsFromLabelable.""" +type RemoveLabelsFromLabelablePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Labelable the labels were removed from.""" + labelable: Labelable +} + +"""Autogenerated input type of RemoveOutsideCollaborator""" +input RemoveOutsideCollaboratorInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the organization to remove the outside collaborator from.""" + organizationId: ID! + """The ID of the outside collaborator to remove.""" + userId: ID! +} + +"""Autogenerated return type of RemoveOutsideCollaborator.""" +type RemoveOutsideCollaboratorPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The user that was removed as an outside collaborator.""" + removedUser: User +} + +"""Autogenerated input type of RemoveReaction""" +input RemoveReactionInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The name of the emoji reaction to remove.""" + content: ReactionContent! + """The Node ID of the subject to modify.""" + subjectId: ID! +} + +"""Autogenerated return type of RemoveReaction.""" +type RemoveReactionPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The reaction object.""" + reaction: Reaction + """The reaction groups for the subject.""" + reactionGroups: [ReactionGroup!] + """The reactable subject.""" + subject: Reactable +} + +"""Autogenerated input type of RemoveStar""" +input RemoveStarInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Starrable ID to unstar.""" + starrableId: ID! +} + +"""Autogenerated return type of RemoveStar.""" +type RemoveStarPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The starrable.""" + starrable: Starrable +} + +"""Autogenerated input type of RemoveSubIssue""" +input RemoveSubIssueInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The id of the issue.""" + issueId: ID! + """The id of the sub-issue.""" + subIssueId: ID! +} + +"""Autogenerated return type of RemoveSubIssue.""" +type RemoveSubIssuePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The parent of the sub-issue.""" + issue: Issue + """The sub-issue of the parent.""" + subIssue: Issue +} + +"""Autogenerated input type of RemoveUpvote""" +input RemoveUpvoteInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the discussion or comment to remove upvote.""" + subjectId: ID! +} + +"""Autogenerated return type of RemoveUpvote.""" +type RemoveUpvotePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The votable subject.""" + subject: Votable +} + +"""Represents a 'removed_from_merge_queue' event on a given pull request.""" +type RemovedFromMergeQueueEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """ + Identifies the before commit SHA for the 'removed_from_merge_queue' event. + """ + beforeCommit: Commit + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The user who removed this Pull Request from the merge queue""" + enqueuer: User + """The Node ID of the RemovedFromMergeQueueEvent object""" + id: ID! + """The merge queue where this pull request was removed from.""" + mergeQueue: MergeQueue + """PullRequest referenced by event.""" + pullRequest: PullRequest + """The reason this pull request was removed from the queue.""" + reason: String +} + +""" +Represents a 'removed_from_project' event on a given issue or pull request. +""" +type RemovedFromProjectEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The Node ID of the RemovedFromProjectEvent object""" + id: ID! + """Project referenced by event.""" + project: Project @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Column name referenced by this project event.""" + projectColumnName: String! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") +} + +"""Represents a 'renamed' event on a given issue or pull request""" +type RenamedTitleEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the current title of the issue or pull request.""" + currentTitle: String! + """The Node ID of the RenamedTitleEvent object""" + id: ID! + """Identifies the previous title of the issue or pull request.""" + previousTitle: String! + """Subject that was renamed.""" + subject: RenamedTitleSubject! +} + +"""An object which has a renamable title""" +union RenamedTitleSubject = Issue | PullRequest + +"""Autogenerated input type of ReopenDiscussion""" +input ReopenDiscussionInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ID of the discussion to be reopened.""" + discussionId: ID! +} + +"""Autogenerated return type of ReopenDiscussion.""" +type ReopenDiscussionPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The discussion that was reopened.""" + discussion: Discussion +} + +"""Autogenerated input type of ReopenIssue""" +input ReopenIssueInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ID of the issue to be opened.""" + issueId: ID! +} + +"""Autogenerated return type of ReopenIssue.""" +type ReopenIssuePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The issue that was opened.""" + issue: Issue +} + +"""Autogenerated input type of ReopenPullRequest""" +input ReopenPullRequestInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ID of the pull request to be reopened.""" + pullRequestId: ID! +} + +"""Autogenerated return type of ReopenPullRequest.""" +type ReopenPullRequestPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The pull request that was reopened.""" + pullRequest: PullRequest +} + +"""Represents a 'reopened' event on any `Closable`.""" +type ReopenedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Object that was reopened.""" + closable: Closable! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the ReopenedEvent object""" + id: ID! + """The reason the issue state was changed to open.""" + stateReason: IssueStateReason +} + +"""Autogenerated input type of ReorderEnvironment""" +input ReorderEnvironmentInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the environment to modify""" + environmentId: ID! + """The desired position of the environment""" + position: Int! +} + +"""Autogenerated return type of ReorderEnvironment.""" +type ReorderEnvironmentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The environment that was reordered""" + environment: Environment +} + +"""Autogenerated input type of ReplaceActorsForAssignable""" +input ReplaceActorsForAssignableInput { + """The ids of the actors to replace the existing assignees.""" + actorIds: [ID!]! + """The id of the assignable object to replace the assignees for.""" + assignableId: ID! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated return type of ReplaceActorsForAssignable.""" +type ReplaceActorsForAssignablePayload { + """The item that was assigned.""" + assignable: Assignable + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Audit log entry for a repo.access event.""" +type RepoAccessAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the RepoAccessAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The visibility of the repository""" + visibility: RepoAccessAuditEntryVisibility @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""The privacy of a repository""" +enum RepoAccessAuditEntryVisibility { + """The repository is visible only to users in the same enterprise.""" + INTERNAL + """The repository is visible only to those with explicit access.""" + PRIVATE + """The repository is visible to everyone.""" + PUBLIC +} + +"""Audit log entry for a repo.add_member event.""" +type RepoAddMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the RepoAddMemberAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The visibility of the repository""" + visibility: RepoAddMemberAuditEntryVisibility @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""The privacy of a repository""" +enum RepoAddMemberAuditEntryVisibility { + """The repository is visible only to users in the same enterprise.""" + INTERNAL + """The repository is visible only to those with explicit access.""" + PRIVATE + """The repository is visible to everyone.""" + PUBLIC +} + +"""Audit log entry for a repo.add_topic event.""" +type RepoAddTopicAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & TopicAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the RepoAddTopicAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The name of the topic added to the repository""" + topic: Topic + """The name of the topic added to the repository""" + topicName: String + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a repo.archived event.""" +type RepoArchivedAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the RepoArchivedAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The visibility of the repository""" + visibility: RepoArchivedAuditEntryVisibility @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""The privacy of a repository""" +enum RepoArchivedAuditEntryVisibility { + """The repository is visible only to users in the same enterprise.""" + INTERNAL + """The repository is visible only to those with explicit access.""" + PRIVATE + """The repository is visible to everyone.""" + PUBLIC +} + +"""Audit log entry for a repo.change_merge_setting event.""" +type RepoChangeMergeSettingAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the RepoChangeMergeSettingAuditEntry object""" + id: ID! + """ + Whether the change was to enable (true) or disable (false) the merge type + """ + isEnabled: Boolean @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The merge method affected by the change""" + mergeType: RepoChangeMergeSettingAuditEntryMergeType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""The merge options available for pull requests to this repository.""" +enum RepoChangeMergeSettingAuditEntryMergeType { + """The pull request is added to the base branch in a merge commit.""" + MERGE + """ + Commits from the pull request are added onto the base branch individually without a merge commit. + """ + REBASE + """ + The pull request's commits are squashed into a single commit before they are merged to the base branch. + """ + SQUASH +} + +"""Audit log entry for a repo.config.disable_anonymous_git_access event.""" +type RepoConfigDisableAnonymousGitAccessAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + The Node ID of the RepoConfigDisableAnonymousGitAccessAuditEntry object + """ + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a repo.config.disable_collaborators_only event.""" +type RepoConfigDisableCollaboratorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the RepoConfigDisableCollaboratorsOnlyAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a repo.config.disable_contributors_only event.""" +type RepoConfigDisableContributorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the RepoConfigDisableContributorsOnlyAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a repo.config.disable_sockpuppet_disallowed event.""" +type RepoConfigDisableSockpuppetDisallowedAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + The Node ID of the RepoConfigDisableSockpuppetDisallowedAuditEntry object + """ + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a repo.config.enable_anonymous_git_access event.""" +type RepoConfigEnableAnonymousGitAccessAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the RepoConfigEnableAnonymousGitAccessAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a repo.config.enable_collaborators_only event.""" +type RepoConfigEnableCollaboratorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the RepoConfigEnableCollaboratorsOnlyAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a repo.config.enable_contributors_only event.""" +type RepoConfigEnableContributorsOnlyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the RepoConfigEnableContributorsOnlyAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a repo.config.enable_sockpuppet_disallowed event.""" +type RepoConfigEnableSockpuppetDisallowedAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + The Node ID of the RepoConfigEnableSockpuppetDisallowedAuditEntry object + """ + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a repo.config.lock_anonymous_git_access event.""" +type RepoConfigLockAnonymousGitAccessAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the RepoConfigLockAnonymousGitAccessAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a repo.config.unlock_anonymous_git_access event.""" +type RepoConfigUnlockAnonymousGitAccessAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the RepoConfigUnlockAnonymousGitAccessAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a repo.create event.""" +type RepoCreateAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the parent repository for this forked repository.""" + forkParentName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the root repository for this network.""" + forkSourceName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the RepoCreateAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The visibility of the repository""" + visibility: RepoCreateAuditEntryVisibility @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""The privacy of a repository""" +enum RepoCreateAuditEntryVisibility { + """The repository is visible only to users in the same enterprise.""" + INTERNAL + """The repository is visible only to those with explicit access.""" + PRIVATE + """The repository is visible to everyone.""" + PUBLIC +} + +"""Audit log entry for a repo.destroy event.""" +type RepoDestroyAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the RepoDestroyAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The visibility of the repository""" + visibility: RepoDestroyAuditEntryVisibility @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""The privacy of a repository""" +enum RepoDestroyAuditEntryVisibility { + """The repository is visible only to users in the same enterprise.""" + INTERNAL + """The repository is visible only to those with explicit access.""" + PRIVATE + """The repository is visible to everyone.""" + PUBLIC +} + +"""Audit log entry for a repo.remove_member event.""" +type RepoRemoveMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the RepoRemoveMemberAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The visibility of the repository""" + visibility: RepoRemoveMemberAuditEntryVisibility @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""The privacy of a repository""" +enum RepoRemoveMemberAuditEntryVisibility { + """The repository is visible only to users in the same enterprise.""" + INTERNAL + """The repository is visible only to those with explicit access.""" + PRIVATE + """The repository is visible to everyone.""" + PUBLIC +} + +"""Audit log entry for a repo.remove_topic event.""" +type RepoRemoveTopicAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & TopicAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the RepoRemoveTopicAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The name of the topic added to the repository""" + topic: Topic + """The name of the topic added to the repository""" + topicName: String + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""The reasons a piece of content can be reported or minimized.""" +enum ReportedContentClassifiers { + """An abusive or harassing piece of content""" + ABUSE + """A duplicated piece of content""" + DUPLICATE + """An irrelevant piece of content""" + OFF_TOPIC + """An outdated piece of content""" + OUTDATED + """The content has been resolved""" + RESOLVED + """A spammy piece of content""" + SPAM +} + +"""A repository contains the content for a project.""" +type Repository implements Node & PackageOwner & ProjectOwner & ProjectV2Recent & RepositoryInfo & Starrable & Subscribable & UniformResourceLocatable { + """ + Whether or not a pull request head branch that is behind its base branch can + always be updated even if it is not required to be up to date before merging. + """ + allowUpdateBranch: Boolean! + """Identifies the date and time when the repository was archived.""" + archivedAt: DateTime + """A list of users that can be assigned to issues in this repository.""" + assignableUsers( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filters users with query on user name and login.""" + query: String + ): UserConnection! + """ + Whether or not Auto-merge can be enabled on pull requests in this repository. + """ + autoMergeAllowed: Boolean! + """A list of branch protection rules for this repository.""" + branchProtectionRules( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): BranchProtectionRuleConnection! + """Returns the code of conduct for this repository""" + codeOfConduct: CodeOfConduct + """Information extracted from the repository's `CODEOWNERS` file.""" + codeowners( + """The ref name used to return the associated `CODEOWNERS` file.""" + refName: String + ): RepositoryCodeowners + """A list of collaborators associated with the repository.""" + collaborators( + """Collaborators affiliation level with a repository.""" + affiliation: CollaboratorAffiliation + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """The login of one specific collaborator.""" + login: String + """Filters users with query on user name and login""" + query: String + ): RepositoryCollaboratorConnection + """A list of commit comments associated with the repository.""" + commitComments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): CommitCommentConnection! + """Returns a list of contact links associated to the repository""" + contactLinks: [RepositoryContactLink!] + """Returns the contributing guidelines for this repository.""" + contributingGuidelines: ContributingGuidelines + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int + """The Ref associated with the repository's default branch.""" + defaultBranchRef: Ref + """ + Whether or not branches are automatically deleted when merged in this repository. + """ + deleteBranchOnMerge: Boolean! + """A list of dependency manifests contained in the repository""" + dependencyGraphManifests( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Cursor to paginate dependencies""" + dependenciesAfter: String + """Number of dependencies to fetch""" + dependenciesFirst: Int + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Flag to scope to only manifests with dependencies""" + withDependencies: Boolean + ): DependencyGraphManifestConnection + """A list of deploy keys that are on this repository.""" + deployKeys( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): DeployKeyConnection! + """Deployments associated with the repository""" + deployments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Environments to list deployments for""" + environments: [String!] + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for deployments returned from the connection.""" + orderBy: DeploymentOrder = {direction: ASC, field: CREATED_AT} + ): DeploymentConnection! + """The description of the repository.""" + description: String + """The description of the repository rendered to HTML.""" + descriptionHTML: HTML! + """Returns a single discussion from the current repository by number.""" + discussion( + """The number for the discussion to be returned.""" + number: Int! + ): Discussion + """A list of discussion categories that are available in the repository.""" + discussionCategories( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Filter by categories that are assignable by the viewer.""" + filterByAssignable: Boolean = false + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): DiscussionCategoryConnection! + """A discussion category by slug.""" + discussionCategory( + """The slug of the discussion category to be returned.""" + slug: String! + ): DiscussionCategory + """A list of discussions that have been opened in the repository.""" + discussions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """Only show answered or unanswered discussions""" + answered: Boolean = null + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Only include discussions that belong to the category with this ID.""" + categoryId: ID = null + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for discussions returned from the connection.""" + orderBy: DiscussionOrder = {direction: DESC, field: UPDATED_AT} + """A list of states to filter the discussions by.""" + states: [DiscussionState!] = [] + ): DiscussionConnection! + """The number of kilobytes this repository occupies on disk.""" + diskUsage: Int + """ + Returns a single active environment from the current repository by name. + """ + environment( + """The name of the environment to be returned.""" + name: String! + ): Environment + """A list of environments that are in this repository.""" + environments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """The names of the environments to be returned.""" + names: [String!] = [] + """Ordering options for the environments""" + orderBy: Environments = {direction: ASC, field: NAME} + """Filter to control pinned environments return""" + pinnedEnvironmentFilter: EnvironmentPinnedFilterField = ALL + ): EnvironmentConnection! + """ + Returns how many forks there are of this repository in the whole network. + """ + forkCount: Int! + """Whether this repository allows forks.""" + forkingAllowed: Boolean! + """A list of direct forked repositories.""" + forks( + """ + Array of viewer's affiliation options for repositories returned from the + connection. For example, OWNER will include only repositories that the + current viewer owns. + """ + affiliations: [RepositoryAffiliation] + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """ + If non-null, filters repositories according to whether they have issues enabled + """ + hasIssuesEnabled: Boolean + """ + If non-null, filters repositories according to whether they have been locked + """ + isLocked: Boolean + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for repositories returned from the connection""" + orderBy: RepositoryOrder + """ + Array of owner's affiliation options for repositories returned from the + connection. For example, OWNER will include only repositories that the + organization or user being viewed owns. + """ + ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR] + """ + If non-null, filters repositories according to privacy. Internal + repositories are considered private; consider using the visibility argument + if only internal repositories are needed. Cannot be combined with the + visibility argument. + """ + privacy: RepositoryPrivacy + """ + If non-null, filters repositories according to visibility. Cannot be combined with the privacy argument. + """ + visibility: RepositoryVisibility + ): RepositoryConnection! + """The funding links for this repository""" + fundingLinks: [FundingLink!]! + """Indicates if the repository has the Discussions feature enabled.""" + hasDiscussionsEnabled: Boolean! + """Indicates if the repository has issues feature enabled.""" + hasIssuesEnabled: Boolean! + """Indicates if the repository has the Projects feature enabled.""" + hasProjectsEnabled: Boolean! + """ + Indicates if the repository displays a Sponsor button for financial contributions. + """ + hasSponsorshipsEnabled: Boolean! + """Whether vulnerability alerts are enabled for the repository.""" + hasVulnerabilityAlertsEnabled: Boolean! + """Indicates if the repository has wiki feature enabled.""" + hasWikiEnabled: Boolean! + """The repository's URL.""" + homepageUrl: URI + """The Node ID of the Repository object""" + id: ID! + """The interaction ability settings for this repository.""" + interactionAbility: RepositoryInteractionAbility + """Indicates if the repository is unmaintained.""" + isArchived: Boolean! + """Returns true if blank issue creation is allowed""" + isBlankIssuesEnabled: Boolean! + """Returns whether or not this repository disabled.""" + isDisabled: Boolean! + """Returns whether or not this repository is empty.""" + isEmpty: Boolean! + """Identifies if the repository is a fork.""" + isFork: Boolean! + """ + Indicates if a repository is either owned by an organization, or is a private fork of an organization repository. + """ + isInOrganization: Boolean! + """Indicates if the repository has been locked or not.""" + isLocked: Boolean! + """Identifies if the repository is a mirror.""" + isMirror: Boolean! + """Identifies if the repository is private or internal.""" + isPrivate: Boolean! + """Returns true if this repository has a security policy""" + isSecurityPolicyEnabled: Boolean + """ + Identifies if the repository is a template that can be used to generate new repositories. + """ + isTemplate: Boolean! + """Is this repository a user configuration repository?""" + isUserConfigurationRepository: Boolean! + """Returns a single issue from the current repository by number.""" + issue( + """The number for the issue to be returned.""" + number: Int! + ): Issue + """ + Returns a single issue-like object from the current repository by number. + """ + issueOrPullRequest( + """The number for the issue to be returned.""" + number: Int! + ): IssueOrPullRequest + """Returns a list of issue templates associated to the repository""" + issueTemplates: [IssueTemplate!] + """Returns a single issue type by name""" + issueType( + """Issue type name.""" + name: String! + ): IssueType + """A list of the repository's issue types""" + issueTypes( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for issue types returned from the connection.""" + orderBy: IssueTypeOrder = {direction: ASC, field: CREATED_AT} + ): IssueTypeConnection + """A list of issues that have been opened in the repository.""" + issues( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Filtering options for issues returned from the connection.""" + filterBy: IssueFilters + """Returns the first _n_ elements from the list.""" + first: Int + """A list of label names to filter the pull requests by.""" + labels: [String!] + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for issues returned from the connection.""" + orderBy: IssueOrder + """A list of states to filter the issues by.""" + states: [IssueState!] + ): IssueConnection! + """Returns a single label by name""" + label( + """Label name""" + name: String! + ): Label + """A list of labels associated with the repository.""" + labels( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for labels returned from the connection.""" + orderBy: LabelOrder = {direction: ASC, field: CREATED_AT} + """If provided, searches labels by name and description.""" + query: String + ): LabelConnection + """ + A list containing a breakdown of the language composition of the repository. + """ + languages( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Order for connection""" + orderBy: LanguageOrder + ): LanguageConnection + """Get the latest release for the repository if one exists.""" + latestRelease: Release + """The license associated with the repository""" + licenseInfo: License + """The reason the repository has been locked.""" + lockReason: RepositoryLockReason + """ + A list of Users that can be mentioned in the context of the repository. + """ + mentionableUsers( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filters users with query on user name and login""" + query: String + ): UserConnection! + """Whether or not PRs are merged with a merge commit on this repository.""" + mergeCommitAllowed: Boolean! + """ + How the default commit message will be generated when merging a pull request. + """ + mergeCommitMessage: MergeCommitMessage! + """ + How the default commit title will be generated when merging a pull request. + """ + mergeCommitTitle: MergeCommitTitle! + """ + The merge queue for a specified branch, otherwise the default branch if not provided. + """ + mergeQueue( + """The name of the branch to get the merge queue for. Case sensitive.""" + branch: String + ): MergeQueue + """Returns a single milestone from the current repository by number.""" + milestone( + """The number for the milestone to be returned.""" + number: Int! + ): Milestone + """A list of milestones associated with the repository.""" + milestones( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for milestones.""" + orderBy: MilestoneOrder + """Filters milestones with a query on the title""" + query: String + """Filter by the state of the milestones.""" + states: [MilestoneState!] + ): MilestoneConnection + """The repository's original mirror URL.""" + mirrorUrl: URI + """The name of the repository.""" + name: String! + """The repository's name with owner.""" + nameWithOwner: String! + """A Git object in the repository""" + object( + """A Git revision expression suitable for rev-parse""" + expression: String + """The Git object ID""" + oid: GitObjectID + ): GitObject + """The image used to represent this repository in Open Graph data.""" + openGraphImageUrl: URI! + """The User owner of the repository.""" + owner: RepositoryOwner! + """A list of packages under the owner.""" + packages( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Find packages by their names.""" + names: [String] + """Ordering of the returned packages.""" + orderBy: PackageOrder = {direction: DESC, field: CREATED_AT} + """Filter registry package by type.""" + packageType: PackageType + """Find packages in a repository by ID.""" + repositoryId: ID + ): PackageConnection! + """The repository parent, if this is a fork.""" + parent: Repository + """A list of discussions that have been pinned in this repository.""" + pinnedDiscussions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): PinnedDiscussionConnection! + """A list of pinned environments for this repository.""" + pinnedEnvironments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for the environments""" + orderBy: PinnedEnvironmentOrder = {direction: ASC, field: POSITION} + ): PinnedEnvironmentConnection + """A list of pinned issues for this repository.""" + pinnedIssues( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): PinnedIssueConnection + """ + Returns information about the availability of certain features and limits based on the repository's billing plan. + """ + planFeatures: RepositoryPlanFeatures! + """The primary language of the repository's code.""" + primaryLanguage: Language + """Find project by number.""" + project( + """The project number to find.""" + number: Int! + ): Project @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """ + Finds and returns the Project according to the provided Project number. + """ + projectV2( + """The Project number.""" + number: Int! + ): ProjectV2 + """A list of projects under the owner.""" + projects( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for projects returned from the connection""" + orderBy: ProjectOrder + """Query to search projects by, currently only searching by name.""" + search: String + """A list of states to filter the projects by.""" + states: [ProjectState!] + ): ProjectConnection! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The HTTP path listing the repository's projects""" + projectsResourcePath: URI! + """The HTTP URL listing the repository's projects""" + projectsUrl: URI! + """List of projects linked to this repository.""" + projectsV2( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filter projects based on user role.""" + minPermissionLevel: ProjectV2PermissionLevel = READ + """How to order the returned projects.""" + orderBy: ProjectV2Order = {direction: DESC, field: NUMBER} + """A project to search for linked to the repo.""" + query: String + ): ProjectV2Connection! + """Returns a single pull request from the current repository by number.""" + pullRequest( + """The number for the pull request to be returned.""" + number: Int! + ): PullRequest + """Returns a list of pull request templates associated to the repository""" + pullRequestTemplates: [PullRequestTemplate!] + """A list of pull requests that have been opened in the repository.""" + pullRequests( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """The base ref name to filter the pull requests by.""" + baseRefName: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """The head ref name to filter the pull requests by.""" + headRefName: String + """A list of label names to filter the pull requests by.""" + labels: [String!] + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for pull requests returned from the connection.""" + orderBy: IssueOrder + """A list of states to filter the pull requests by.""" + states: [PullRequestState!] + ): PullRequestConnection! + """Identifies the date and time when the repository was last pushed to.""" + pushedAt: DateTime + """Whether or not rebase-merging is enabled on this repository.""" + rebaseMergeAllowed: Boolean! + """ + Recent projects that this user has modified in the context of the owner. + """ + recentProjects( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectV2Connection! + """Fetch a given ref from the repository""" + ref( + """ + The ref to retrieve. Fully qualified matches are checked in order + (`refs/heads/master`) before falling back onto checks for short name matches (`master`). + """ + qualifiedName: String! + ): Ref + """Fetch a list of refs from the repository""" + refs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """DEPRECATED: use orderBy. The ordering direction.""" + direction: OrderDirection + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for refs returned from the connection.""" + orderBy: RefOrder + """Filters refs with query on name""" + query: String + """A ref name prefix like `refs/heads/`, `refs/tags/`, etc.""" + refPrefix: String! + ): RefConnection + """Lookup a single release given various criteria.""" + release( + """The name of the Tag the Release was created from""" + tagName: String! + ): Release + """List of releases which are dependent on this repository.""" + releases( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Order for connection""" + orderBy: ReleaseOrder + ): ReleaseConnection! + """A list of applied repository-topic associations for this repository.""" + repositoryTopics( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): RepositoryTopicConnection! + """The HTTP path for this repository""" + resourcePath: URI! + """Returns a single ruleset from the current repository by ID.""" + ruleset( + """The ID of the ruleset to be returned.""" + databaseId: Int! + """ + Include rulesets configured at higher levels that apply to this repository + """ + includeParents: Boolean = true + ): RepositoryRuleset + """A list of rulesets for this repository.""" + rulesets( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """ + Return rulesets configured at higher levels that apply to this repository + """ + includeParents: Boolean = true + """Returns the last _n_ elements from the list.""" + last: Int + """Return rulesets that apply to the specified target""" + targets: [RepositoryRulesetTarget!] = null + ): RepositoryRulesetConnection + """The security policy URL.""" + securityPolicyUrl: URI + """ + A description of the repository, rendered to HTML without any links in it. + """ + shortDescriptionHTML( + """How many characters to return.""" + limit: Int = 200 + ): HTML! + """Whether or not squash-merging is enabled on this repository.""" + squashMergeAllowed: Boolean! + """ + How the default commit message will be generated when squash merging a pull request. + """ + squashMergeCommitMessage: SquashMergeCommitMessage! + """ + How the default commit title will be generated when squash merging a pull request. + """ + squashMergeCommitTitle: SquashMergeCommitTitle! + """ + Whether a squash merge commit can use the pull request title as default. + """ + squashPrTitleUsedAsDefault: Boolean! @deprecated(reason: "`squashPrTitleUsedAsDefault` will be removed. Use `Repository.squashMergeCommitTitle` instead. Removal on 2023-04-01 UTC.") + """The SSH URL to clone this repository""" + sshUrl: GitSSHRemote! + """Returns a count of how many stargazers there are on this object""" + stargazerCount: Int! + """A list of users who have starred this starrable.""" + stargazers( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Order for connection""" + orderBy: StarOrder + ): StargazerConnection! + """ + Returns a list of all submodules in this repository parsed from the + .gitmodules file as of the default branch's HEAD commit. + """ + submodules( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): SubmoduleConnection! + """ + A list of suggested actors that can be attributed to content in this repository. + """ + suggestedActors( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """A list of capabilities to filter actors by.""" + capabilities: [RepositorySuggestedActorFilter!]! + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + A comma separated list of login names to filter actors by. Only the first 10 logins will be used. + """ + loginNames: String + """Search actors with query on user name and login.""" + query: String + ): ActorConnection! + """Temporary authentication token for cloning this repository.""" + tempCloneToken: String + """The repository from which this repository was generated, if any.""" + templateRepository: Repository + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The HTTP URL for this repository""" + url: URI! + """ + Whether this repository has a custom image to use with Open Graph as opposed to being represented by the owner's avatar. + """ + usesCustomOpenGraphImage: Boolean! + """Indicates whether the viewer has admin permissions on this repository.""" + viewerCanAdminister: Boolean! + """Can the current viewer create new projects on this owner.""" + viewerCanCreateProjects: Boolean! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """ + Check if the viewer is able to change their subscription status for the repository. + """ + viewerCanSubscribe: Boolean! + """Indicates whether the viewer can update the topics of this repository.""" + viewerCanUpdateTopics: Boolean! + """The last commit email for the viewer.""" + viewerDefaultCommitEmail: String + """ + The last used merge method by the viewer or the default for the repository. + """ + viewerDefaultMergeMethod: PullRequestMergeMethod! + """ + Returns a boolean indicating whether the viewing user has starred this starrable. + """ + viewerHasStarred: Boolean! + """ + The users permission level on the repository. Will return null if authenticated as an GitHub App. + """ + viewerPermission: RepositoryPermission + """A list of emails this viewer can commit with.""" + viewerPossibleCommitEmails: [String!] + """ + Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. + """ + viewerSubscription: SubscriptionState + """Indicates the repository's visibility level.""" + visibility: RepositoryVisibility! + """ + Returns a single vulnerability alert from the current repository by number. + """ + vulnerabilityAlert( + """The number for the vulnerability alert to be returned.""" + number: Int! + ): RepositoryVulnerabilityAlert + """A list of vulnerability alerts that are on this repository.""" + vulnerabilityAlerts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Filter by the scope of the alert's dependency""" + dependencyScopes: [RepositoryVulnerabilityAlertDependencyScope!] + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filter by the state of the alert""" + states: [RepositoryVulnerabilityAlertState!] + ): RepositoryVulnerabilityAlertConnection + """A list of users watching the repository.""" + watchers( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserConnection! + """ + Whether contributors are required to sign off on web-based commits in this repository. + """ + webCommitSignoffRequired: Boolean! +} + +"""The affiliation of a user to a repository""" +enum RepositoryAffiliation { + """Repositories that the user has been added to as a collaborator.""" + COLLABORATOR + """ + Repositories that the user has access to through being a member of an + organization. This includes every repository on every team that the user is on. + """ + ORGANIZATION_MEMBER + """Repositories that are owned by the authenticated user.""" + OWNER +} + +"""Metadata for an audit entry with action repo.*""" +interface RepositoryAuditEntryData { + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI +} + +"""Information extracted from a repository's `CODEOWNERS` file.""" +type RepositoryCodeowners { + """ + Any problems that were encountered while parsing the `CODEOWNERS` file. + """ + errors: [RepositoryCodeownersError!]! +} + +"""An error in a `CODEOWNERS` file.""" +type RepositoryCodeownersError { + """The column number where the error occurs.""" + column: Int! + """A short string describing the type of error.""" + kind: String! + """The line number where the error occurs.""" + line: Int! + """ + A complete description of the error, combining information from other fields. + """ + message: String! + """The path to the file when the error occurs.""" + path: String! + """The content of the line where the error occurs.""" + source: String! + """A suggestion of how to fix the error.""" + suggestion: String +} + +"""The connection type for User.""" +type RepositoryCollaboratorConnection { + """A list of edges.""" + edges: [RepositoryCollaboratorEdge] + """A list of nodes.""" + nodes: [User] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""Represents a user who is a collaborator of a repository.""" +type RepositoryCollaboratorEdge { + """A cursor for use in pagination.""" + cursor: String! + node: User! + """The permission the user has on the repository.""" + permission: RepositoryPermission! + """A list of sources for the user's access to the repository.""" + permissionSources: [PermissionSource!] +} + +"""A list of repositories owned by the subject.""" +type RepositoryConnection { + """A list of edges.""" + edges: [RepositoryEdge] + """A list of nodes.""" + nodes: [Repository] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! + """ + The total size in kilobytes of all repositories in the connection. Value will + never be larger than max 32-bit signed integer. + """ + totalDiskUsage: Int! +} + +"""A repository contact link.""" +type RepositoryContactLink { + """The contact link purpose.""" + about: String! + """The contact link name.""" + name: String! + """The contact link URL.""" + url: URI! +} + +"""The reason a repository is listed as 'contributed'.""" +enum RepositoryContributionType { + """Created a commit""" + COMMIT + """Created an issue""" + ISSUE + """Created a pull request""" + PULL_REQUEST + """Reviewed a pull request""" + PULL_REQUEST_REVIEW + """Created the repository""" + REPOSITORY +} + +"""Represents an author of discussions in repositories.""" +interface RepositoryDiscussionAuthor { + """Discussions this user has started.""" + repositoryDiscussions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Filter discussions to only those that have been answered or not. Defaults to + including both answered and unanswered discussions. + """ + answered: Boolean = null + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for discussions returned from the connection.""" + orderBy: DiscussionOrder = {direction: DESC, field: CREATED_AT} + """Filter discussions to only those in a specific repository.""" + repositoryId: ID + """A list of states to filter the discussions by.""" + states: [DiscussionState!] = [] + ): DiscussionConnection! +} + +"""Represents an author of discussion comments in repositories.""" +interface RepositoryDiscussionCommentAuthor { + """Discussion comments this user has authored.""" + repositoryDiscussionComments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Filter discussion comments to only those that were marked as the answer + """ + onlyAnswers: Boolean = false + """Filter discussion comments to only those in a specific repository.""" + repositoryId: ID + ): DiscussionCommentConnection! +} + +"""An edge in a connection.""" +type RepositoryEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Repository +} + +"""Parameters to be used for the repository_id condition""" +type RepositoryIdConditionTarget { + """One of these repo IDs must match the repo.""" + repositoryIds: [ID!]! +} + +"""Parameters to be used for the repository_id condition""" +input RepositoryIdConditionTargetInput { + """One of these repo IDs must match the repo.""" + repositoryIds: [ID!]! +} + +"""A subset of repository info.""" +interface RepositoryInfo { + """Identifies the date and time when the repository was archived.""" + archivedAt: DateTime + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The description of the repository.""" + description: String + """The description of the repository rendered to HTML.""" + descriptionHTML: HTML! + """ + Returns how many forks there are of this repository in the whole network. + """ + forkCount: Int! + """Indicates if the repository has the Discussions feature enabled.""" + hasDiscussionsEnabled: Boolean! + """Indicates if the repository has issues feature enabled.""" + hasIssuesEnabled: Boolean! + """Indicates if the repository has the Projects feature enabled.""" + hasProjectsEnabled: Boolean! + """ + Indicates if the repository displays a Sponsor button for financial contributions. + """ + hasSponsorshipsEnabled: Boolean! + """Indicates if the repository has wiki feature enabled.""" + hasWikiEnabled: Boolean! + """The repository's URL.""" + homepageUrl: URI + """Indicates if the repository is unmaintained.""" + isArchived: Boolean! + """Identifies if the repository is a fork.""" + isFork: Boolean! + """ + Indicates if a repository is either owned by an organization, or is a private fork of an organization repository. + """ + isInOrganization: Boolean! + """Indicates if the repository has been locked or not.""" + isLocked: Boolean! + """Identifies if the repository is a mirror.""" + isMirror: Boolean! + """Identifies if the repository is private or internal.""" + isPrivate: Boolean! + """ + Identifies if the repository is a template that can be used to generate new repositories. + """ + isTemplate: Boolean! + """The license associated with the repository""" + licenseInfo: License + """The reason the repository has been locked.""" + lockReason: RepositoryLockReason + """The repository's original mirror URL.""" + mirrorUrl: URI + """The name of the repository.""" + name: String! + """The repository's name with owner.""" + nameWithOwner: String! + """The image used to represent this repository in Open Graph data.""" + openGraphImageUrl: URI! + """The User owner of the repository.""" + owner: RepositoryOwner! + """Identifies the date and time when the repository was last pushed to.""" + pushedAt: DateTime + """The HTTP path for this repository""" + resourcePath: URI! + """ + A description of the repository, rendered to HTML without any links in it. + """ + shortDescriptionHTML( + """How many characters to return.""" + limit: Int = 200 + ): HTML! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The HTTP URL for this repository""" + url: URI! + """ + Whether this repository has a custom image to use with Open Graph as opposed to being represented by the owner's avatar. + """ + usesCustomOpenGraphImage: Boolean! + """Indicates the repository's visibility level.""" + visibility: RepositoryVisibility! +} + +"""Repository interaction limit that applies to this object.""" +type RepositoryInteractionAbility { + """The time the currently active limit expires.""" + expiresAt: DateTime + """The current limit that is enabled on this object.""" + limit: RepositoryInteractionLimit! + """The origin of the currently active interaction limit.""" + origin: RepositoryInteractionLimitOrigin! +} + +"""A repository interaction limit.""" +enum RepositoryInteractionLimit { + """ + Users that are not collaborators will not be able to interact with the repository. + """ + COLLABORATORS_ONLY + """ + Users that have not previously committed to a repository’s default branch will be unable to interact with the repository. + """ + CONTRIBUTORS_ONLY + """ + Users that have recently created their account will be unable to interact with the repository. + """ + EXISTING_USERS + """No interaction limits are enabled.""" + NO_LIMIT +} + +"""The length for a repository interaction limit to be enabled for.""" +enum RepositoryInteractionLimitExpiry { + """The interaction limit will expire after 1 day.""" + ONE_DAY + """The interaction limit will expire after 1 month.""" + ONE_MONTH + """The interaction limit will expire after 1 week.""" + ONE_WEEK + """The interaction limit will expire after 6 months.""" + SIX_MONTHS + """The interaction limit will expire after 3 days.""" + THREE_DAYS +} + +"""Indicates where an interaction limit is configured.""" +enum RepositoryInteractionLimitOrigin { + """A limit that is configured at the organization level.""" + ORGANIZATION + """A limit that is configured at the repository level.""" + REPOSITORY + """A limit that is configured at the user-wide level.""" + USER +} + +"""An invitation for a user to be added to a repository.""" +type RepositoryInvitation implements Node { + """The email address that received the invitation.""" + email: String + """The Node ID of the RepositoryInvitation object""" + id: ID! + """The user who received the invitation.""" + invitee: User + """The user who created the invitation.""" + inviter: User! + """The permalink for this repository invitation.""" + permalink: URI! + """The permission granted on this repository by this invitation.""" + permission: RepositoryPermission! + """The Repository the user is invited to.""" + repository: RepositoryInfo +} + +"""A list of repository invitations.""" +type RepositoryInvitationConnection { + """A list of edges.""" + edges: [RepositoryInvitationEdge] + """A list of nodes.""" + nodes: [RepositoryInvitation] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type RepositoryInvitationEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: RepositoryInvitation +} + +"""Ordering options for repository invitation connections.""" +input RepositoryInvitationOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order repository invitations by.""" + field: RepositoryInvitationOrderField! +} + +"""Properties by which repository invitation connections can be ordered.""" +enum RepositoryInvitationOrderField { + """Order repository invitations by creation time""" + CREATED_AT +} + +"""The possible reasons a given repository could be in a locked state.""" +enum RepositoryLockReason { + """The repository is locked due to a billing related reason.""" + BILLING + """The repository is locked due to a migration.""" + MIGRATING + """The repository is locked due to a move.""" + MOVING + """The repository is locked due to a rename.""" + RENAME + """The repository is locked due to a trade controls related reason.""" + TRADE_RESTRICTION + """The repository is locked due to an ownership transfer.""" + TRANSFERRING_OWNERSHIP +} + +"""A GitHub Enterprise Importer (GEI) repository migration.""" +type RepositoryMigration implements Migration & Node { + """The migration flag to continue on error.""" + continueOnError: Boolean! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: String + """The reason the migration failed.""" + failureReason: String + """The Node ID of the RepositoryMigration object""" + id: ID! + """ + The URL for the migration log (expires 1 day after migration completes). + """ + migrationLogUrl: URI + """The migration source.""" + migrationSource: MigrationSource! + """The target repository name.""" + repositoryName: String! + """ + The migration source URL, for example `https://github.com` or `https://monalisa.ghe.com`. + """ + sourceUrl: URI! + """The migration state.""" + state: MigrationState! + """ + The number of warnings encountered for this migration. To review the warnings, + check the [Migration Log](https://docs.github.com/migrations/using-github-enterprise-importer/completing-your-migration-with-github-enterprise-importer/accessing-your-migration-logs-for-github-enterprise-importer). + """ + warningsCount: Int! +} + +"""A list of migrations.""" +type RepositoryMigrationConnection { + """A list of edges.""" + edges: [RepositoryMigrationEdge] + """A list of nodes.""" + nodes: [RepositoryMigration] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""Represents a repository migration.""" +type RepositoryMigrationEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: RepositoryMigration +} + +"""Ordering options for repository migrations.""" +input RepositoryMigrationOrder { + """The ordering direction.""" + direction: RepositoryMigrationOrderDirection! + """The field to order repository migrations by.""" + field: RepositoryMigrationOrderField! +} + +""" +Possible directions in which to order a list of repository migrations when provided an `orderBy` argument. +""" +enum RepositoryMigrationOrderDirection { + """Specifies an ascending order for a given `orderBy` argument.""" + ASC + """Specifies a descending order for a given `orderBy` argument.""" + DESC +} + +"""Properties by which repository migrations can be ordered.""" +enum RepositoryMigrationOrderField { + """Order mannequins why when they were created.""" + CREATED_AT +} + +"""Parameters to be used for the repository_name condition""" +type RepositoryNameConditionTarget { + """ + Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match. + """ + exclude: [String!]! + """ + Array of repository names or patterns to include. One of these patterns must + match for the condition to pass. Also accepts `~ALL` to include all repositories. + """ + include: [String!]! + """ + Target changes that match these patterns will be prevented except by those with bypass permissions. + """ + protected: Boolean! +} + +"""Parameters to be used for the repository_name condition""" +input RepositoryNameConditionTargetInput { + """ + Array of repository names or patterns to exclude. The condition will not pass if any of these patterns match. + """ + exclude: [String!]! + """ + Array of repository names or patterns to include. One of these patterns must + match for the condition to pass. Also accepts `~ALL` to include all repositories. + """ + include: [String!]! + """ + Target changes that match these patterns will be prevented except by those with bypass permissions. + """ + protected: Boolean +} + +"""Represents a object that belongs to a repository.""" +interface RepositoryNode { + """The repository associated with this node.""" + repository: Repository! +} + +"""Ordering options for repository connections""" +input RepositoryOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order repositories by.""" + field: RepositoryOrderField! +} + +"""Properties by which repository connections can be ordered.""" +enum RepositoryOrderField { + """Order repositories by creation time""" + CREATED_AT + """Order repositories by name""" + NAME + """Order repositories by push time""" + PUSHED_AT + """Order repositories by number of stargazers""" + STARGAZERS + """Order repositories by update time""" + UPDATED_AT +} + +"""Represents an owner of a Repository.""" +interface RepositoryOwner { + """A URL pointing to the owner's public avatar.""" + avatarUrl( + """The size of the resulting square image.""" + size: Int + ): URI! + """The Node ID of the RepositoryOwner object""" + id: ID! + """The username used to login.""" + login: String! + """A list of repositories that the user owns.""" + repositories( + """ + Array of viewer's affiliation options for repositories returned from the + connection. For example, OWNER will include only repositories that the + current viewer owns. + """ + affiliations: [RepositoryAffiliation] + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """ + If non-null, filters repositories according to whether they have issues enabled + """ + hasIssuesEnabled: Boolean + """ + If non-null, filters repositories according to whether they are archived and not maintained + """ + isArchived: Boolean + """ + If non-null, filters repositories according to whether they are forks of another repository + """ + isFork: Boolean + """ + If non-null, filters repositories according to whether they have been locked + """ + isLocked: Boolean + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for repositories returned from the connection""" + orderBy: RepositoryOrder + """ + Array of owner's affiliation options for repositories returned from the + connection. For example, OWNER will include only repositories that the + organization or user being viewed owns. + """ + ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR] + """ + If non-null, filters repositories according to privacy. Internal + repositories are considered private; consider using the visibility argument + if only internal repositories are needed. Cannot be combined with the + visibility argument. + """ + privacy: RepositoryPrivacy + """ + If non-null, filters repositories according to visibility. Cannot be combined with the privacy argument. + """ + visibility: RepositoryVisibility + ): RepositoryConnection! + """Find Repository.""" + repository( + """ + Follow repository renames. If disabled, a repository referenced by its old name will return an error. + """ + followRenames: Boolean = true + """Name of Repository to find.""" + name: String! + ): Repository + """The HTTP URL for the owner.""" + resourcePath: URI! + """The HTTP URL for the owner.""" + url: URI! +} + +"""The access level to a repository""" +enum RepositoryPermission { + """ + Can read, clone, and push to this repository. Can also manage issues, pull + requests, and repository settings, including adding collaborators + """ + ADMIN + """ + Can read, clone, and push to this repository. They can also manage issues, pull requests, and some repository settings + """ + MAINTAIN + """ + Can read and clone this repository. Can also open and comment on issues and pull requests + """ + READ + """ + Can read and clone this repository. Can also manage issues and pull requests + """ + TRIAGE + """ + Can read, clone, and push to this repository. Can also manage issues and pull requests + """ + WRITE +} + +""" +Information about the availability of features and limits for a repository based on its billing plan. +""" +type RepositoryPlanFeatures { + """ + Whether reviews can be automatically requested and enforced with a CODEOWNERS file + """ + codeowners: Boolean! + """Whether pull requests can be created as or converted to draft""" + draftPullRequests: Boolean! + """ + Maximum number of users that can be assigned to an issue or pull request + """ + maximumAssignees: Int! + """Maximum number of manually-requested reviews on a pull request""" + maximumManualReviewRequests: Int! + """Whether teams can be requested to review pull requests""" + teamReviewRequests: Boolean! +} + +"""The privacy of a repository""" +enum RepositoryPrivacy { + """Private""" + PRIVATE + """Public""" + PUBLIC +} + +"""Parameters to be used for the repository_property condition""" +type RepositoryPropertyConditionTarget { + """Array of repository properties that must not match.""" + exclude: [PropertyTargetDefinition!]! + """Array of repository properties that must match""" + include: [PropertyTargetDefinition!]! +} + +"""Parameters to be used for the repository_property condition""" +input RepositoryPropertyConditionTargetInput { + """Array of repository properties that must not match.""" + exclude: [PropertyTargetDefinitionInput!]! + """Array of repository properties that must match""" + include: [PropertyTargetDefinitionInput!]! +} + +"""A repository rule.""" +type RepositoryRule implements Node { + """The Node ID of the RepositoryRule object""" + id: ID! + """The parameters for this rule.""" + parameters: RuleParameters + """The repository ruleset associated with this rule configuration""" + repositoryRuleset: RepositoryRuleset + """The type of rule.""" + type: RepositoryRuleType! +} + +"""Set of conditions that determine if a ruleset will evaluate""" +type RepositoryRuleConditions { + """Configuration for the ref_name condition""" + refName: RefNameConditionTarget + """Configuration for the repository_id condition""" + repositoryId: RepositoryIdConditionTarget + """Configuration for the repository_name condition""" + repositoryName: RepositoryNameConditionTarget + """Configuration for the repository_property condition""" + repositoryProperty: RepositoryPropertyConditionTarget +} + +"""Specifies the conditions required for a ruleset to evaluate""" +input RepositoryRuleConditionsInput { + """Configuration for the ref_name condition""" + refName: RefNameConditionTargetInput + """Configuration for the repository_id condition""" + repositoryId: RepositoryIdConditionTargetInput + """Configuration for the repository_name condition""" + repositoryName: RepositoryNameConditionTargetInput + """Configuration for the repository_property condition""" + repositoryProperty: RepositoryPropertyConditionTargetInput +} + +"""The connection type for RepositoryRule.""" +type RepositoryRuleConnection { + """A list of edges.""" + edges: [RepositoryRuleEdge] + """A list of nodes.""" + nodes: [RepositoryRule] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type RepositoryRuleEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: RepositoryRule +} + +"""Specifies the attributes for a new or updated rule.""" +input RepositoryRuleInput { + """Optional ID of this rule when updating""" + id: ID + """The parameters for the rule.""" + parameters: RuleParametersInput + """The type of rule to create.""" + type: RepositoryRuleType! +} + +"""Ordering options for repository rules.""" +input RepositoryRuleOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order repository rules by.""" + field: RepositoryRuleOrderField! +} + +"""Properties by which repository rule connections can be ordered.""" +enum RepositoryRuleOrderField { + """Order repository rules by created time""" + CREATED_AT + """Order repository rules by type""" + TYPE + """Order repository rules by updated time""" + UPDATED_AT +} + +"""The rule types supported in rulesets""" +enum RepositoryRuleType { + """Authorization""" + AUTHORIZATION + """Branch name pattern""" + BRANCH_NAME_PATTERN + """ + Choose which tools must provide code scanning results before the reference is + updated. When configured, code scanning must be enabled and have results for + both the commit and the reference being updated. + """ + CODE_SCANNING + """Committer email pattern""" + COMMITTER_EMAIL_PATTERN + """Commit author email pattern""" + COMMIT_AUTHOR_EMAIL_PATTERN + """Commit message pattern""" + COMMIT_MESSAGE_PATTERN + """Only allow users with bypass permission to create matching refs.""" + CREATION + """Only allow users with bypass permissions to delete matching refs.""" + DELETION + """ + Prevent commits that include files with specified file extensions from being pushed to the commit graph. + """ + FILE_EXTENSION_RESTRICTION + """ + Prevent commits that include changes in specified file and folder paths from + being pushed to the commit graph. This includes absolute paths that contain file names. + """ + FILE_PATH_RESTRICTION + """Branch is read-only. Users cannot push to the branch.""" + LOCK_BRANCH + """ + Prevent commits that include file paths that exceed the specified character limit from being pushed to the commit graph. + """ + MAX_FILE_PATH_LENGTH + """ + Prevent commits with individual files that exceed the specified limit from being pushed to the commit graph. + """ + MAX_FILE_SIZE + """Max ref updates""" + MAX_REF_UPDATES + """Merges must be performed via a merge queue.""" + MERGE_QUEUE + """Merge queue locked ref""" + MERGE_QUEUE_LOCKED_REF + """Prevent users with push access from force pushing to refs.""" + NON_FAST_FORWARD + """ + Require all commits be made to a non-target branch and submitted via a pull request before they can be merged. + """ + PULL_REQUEST + """ + Choose which environments must be successfully deployed to before refs can be pushed into a ref that matches this rule. + """ + REQUIRED_DEPLOYMENTS + """Prevent merge commits from being pushed to matching refs.""" + REQUIRED_LINEAR_HISTORY + """ + When enabled, all conversations on code must be resolved before a pull request + can be merged into a branch that matches this rule. + """ + REQUIRED_REVIEW_THREAD_RESOLUTION + """Commits pushed to matching refs must have verified signatures.""" + REQUIRED_SIGNATURES + """ + Choose which status checks must pass before the ref is updated. When enabled, + commits must first be pushed to another ref where the checks pass. + """ + REQUIRED_STATUS_CHECKS + """ + Require all commits be made to a non-target branch and submitted via a pull + request and required workflow checks to pass before they can be merged. + """ + REQUIRED_WORKFLOW_STATUS_CHECKS + """Secret scanning""" + SECRET_SCANNING + """Tag""" + TAG + """Tag name pattern""" + TAG_NAME_PATTERN + """Only allow users with bypass permission to update matching refs.""" + UPDATE + """ + Require all changes made to a targeted branch to pass the specified workflows before they can be merged. + """ + WORKFLOWS + """Workflow files cannot be modified.""" + WORKFLOW_UPDATES +} + +"""A repository ruleset.""" +type RepositoryRuleset implements Node { + """The actors that can bypass this ruleset""" + bypassActors( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): RepositoryRulesetBypassActorConnection + """ + The set of conditions that must evaluate to true for this ruleset to apply + """ + conditions: RepositoryRuleConditions! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int + """The enforcement level of this ruleset""" + enforcement: RuleEnforcement! + """The Node ID of the RepositoryRuleset object""" + id: ID! + """Name of the ruleset.""" + name: String! + """List of rules.""" + rules( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """The type of rule.""" + type: RepositoryRuleType + ): RepositoryRuleConnection + """Source of ruleset.""" + source: RuleSource! + """Target of the ruleset.""" + target: RepositoryRulesetTarget + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +""" +A team or app that has the ability to bypass a rules defined on a ruleset +""" +type RepositoryRulesetBypassActor implements Node { + """The actor that can bypass rules.""" + actor: BypassActor + """The mode for the bypass actor""" + bypassMode: RepositoryRulesetBypassActorBypassMode + """This actor represents the ability for a deploy key to bypass""" + deployKey: Boolean! + """This actor represents the ability for an enterprise owner to bypass""" + enterpriseOwner: Boolean! + """The Node ID of the RepositoryRulesetBypassActor object""" + id: ID! + """This actor represents the ability for an organization owner to bypass""" + organizationAdmin: Boolean! + """ + If the actor is a repository role, the repository role's ID that can bypass + """ + repositoryRoleDatabaseId: Int + """ + If the actor is a repository role, the repository role's name that can bypass + """ + repositoryRoleName: String + """Identifies the ruleset associated with the allowed actor""" + repositoryRuleset: RepositoryRuleset +} + +"""The bypass mode for a specific actor on a ruleset.""" +enum RepositoryRulesetBypassActorBypassMode { + """The actor can always bypass rules""" + ALWAYS + """The actor can only bypass rules via a pull request""" + PULL_REQUEST +} + +"""The connection type for RepositoryRulesetBypassActor.""" +type RepositoryRulesetBypassActorConnection { + """A list of edges.""" + edges: [RepositoryRulesetBypassActorEdge] + """A list of nodes.""" + nodes: [RepositoryRulesetBypassActor] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type RepositoryRulesetBypassActorEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: RepositoryRulesetBypassActor +} + +""" +Specifies the attributes for a new or updated ruleset bypass actor. Only one of +`actor_id`, `repository_role_database_id`, `organization_admin`, or `deploy_key` +should be specified. +""" +input RepositoryRulesetBypassActorInput { + """For Team and Integration bypasses, the Team or Integration ID""" + actorId: ID + """The bypass mode for this actor.""" + bypassMode: RepositoryRulesetBypassActorBypassMode! + """For deploy key bypasses, true. Can only use ALWAYS as the bypass mode""" + deployKey: Boolean + """For enterprise owner bypasses, true""" + enterpriseOwner: Boolean + """For organization owner bypasses, true""" + organizationAdmin: Boolean + """For role bypasses, the role database ID""" + repositoryRoleDatabaseId: Int +} + +"""The connection type for RepositoryRuleset.""" +type RepositoryRulesetConnection { + """A list of edges.""" + edges: [RepositoryRulesetEdge] + """A list of nodes.""" + nodes: [RepositoryRuleset] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type RepositoryRulesetEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: RepositoryRuleset +} + +"""The targets supported for rulesets.""" +enum RepositoryRulesetTarget { + """Branch""" + BRANCH + """Push""" + PUSH + """repository""" + REPOSITORY + """Tag""" + TAG +} + +"""The possible filters for suggested actors in a repository""" +enum RepositorySuggestedActorFilter { + """Actors that can be assigned to issues and pull requests""" + CAN_BE_ASSIGNED + """Actors that can be the author of issues and pull requests""" + CAN_BE_AUTHOR +} + +"""A repository-topic connects a repository to a topic.""" +type RepositoryTopic implements Node & UniformResourceLocatable { + """The Node ID of the RepositoryTopic object""" + id: ID! + """The HTTP path for this repository-topic.""" + resourcePath: URI! + """The topic.""" + topic: Topic! + """The HTTP URL for this repository-topic.""" + url: URI! +} + +"""The connection type for RepositoryTopic.""" +type RepositoryTopicConnection { + """A list of edges.""" + edges: [RepositoryTopicEdge] + """A list of nodes.""" + nodes: [RepositoryTopic] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type RepositoryTopicEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: RepositoryTopic +} + +"""The repository's visibility level.""" +enum RepositoryVisibility { + """The repository is visible only to users in the same enterprise.""" + INTERNAL + """The repository is visible only to those with explicit access.""" + PRIVATE + """The repository is visible to everyone.""" + PUBLIC +} + +"""Audit log entry for a repository_visibility_change.disable event.""" +type RepositoryVisibilityChangeDisableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for this enterprise.""" + enterpriseResourcePath: URI + """The slug of the enterprise.""" + enterpriseSlug: String + """The HTTP URL for this enterprise.""" + enterpriseUrl: URI + """The Node ID of the RepositoryVisibilityChangeDisableAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a repository_visibility_change.enable event.""" +type RepositoryVisibilityChangeEnableAuditEntry implements AuditEntry & EnterpriseAuditEntryData & Node & OrganizationAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for this enterprise.""" + enterpriseResourcePath: URI + """The slug of the enterprise.""" + enterpriseSlug: String + """The HTTP URL for this enterprise.""" + enterpriseUrl: URI + """The Node ID of the RepositoryVisibilityChangeEnableAuditEntry object""" + id: ID! + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +""" +A Dependabot alert for a repository with a dependency affected by a security vulnerability. +""" +type RepositoryVulnerabilityAlert implements Node & RepositoryNode { + """When was the alert auto-dismissed?""" + autoDismissedAt: DateTime + """When was the alert created?""" + createdAt: DateTime! + """The associated Dependabot update""" + dependabotUpdate: DependabotUpdate + """The relationship of an alert's dependency.""" + dependencyRelationship: RepositoryVulnerabilityAlertDependencyRelationship + """The scope of an alert's dependency""" + dependencyScope: RepositoryVulnerabilityAlertDependencyScope + """Comment explaining the reason the alert was dismissed""" + dismissComment: String + """The reason the alert was dismissed""" + dismissReason: String + """When was the alert dismissed?""" + dismissedAt: DateTime + """The user who dismissed the alert""" + dismisser: User + """When was the alert fixed?""" + fixedAt: DateTime + """The Node ID of the RepositoryVulnerabilityAlert object""" + id: ID! + """Identifies the alert number.""" + number: Int! + """The associated repository""" + repository: Repository! + """The associated security advisory""" + securityAdvisory: SecurityAdvisory + """The associated security vulnerability""" + securityVulnerability: SecurityVulnerability + """Identifies the state of the alert.""" + state: RepositoryVulnerabilityAlertState! + """The vulnerable manifest filename""" + vulnerableManifestFilename: String! + """The vulnerable manifest path""" + vulnerableManifestPath: String! + """The vulnerable requirements""" + vulnerableRequirements: String +} + +"""The connection type for RepositoryVulnerabilityAlert.""" +type RepositoryVulnerabilityAlertConnection { + """A list of edges.""" + edges: [RepositoryVulnerabilityAlertEdge] + """A list of nodes.""" + nodes: [RepositoryVulnerabilityAlert] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""The possible relationships of an alert's dependency.""" +enum RepositoryVulnerabilityAlertDependencyRelationship { + """A direct dependency of your project""" + DIRECT + """A transitive dependency of your project""" + TRANSITIVE + """The relationship is unknown""" + UNKNOWN +} + +"""The possible scopes of an alert's dependency.""" +enum RepositoryVulnerabilityAlertDependencyScope { + """A dependency that is only used in development""" + DEVELOPMENT + """A dependency that is leveraged during application runtime""" + RUNTIME +} + +"""An edge in a connection.""" +type RepositoryVulnerabilityAlertEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: RepositoryVulnerabilityAlert +} + +"""The possible states of an alert""" +enum RepositoryVulnerabilityAlertState { + """An alert that has been automatically closed by Dependabot.""" + AUTO_DISMISSED + """An alert that has been manually closed by a user.""" + DISMISSED + """An alert that has been resolved by a code change.""" + FIXED + """An alert that is still open.""" + OPEN +} + +"""Autogenerated input type of ReprioritizeSubIssue""" +input ReprioritizeSubIssueInput { + """ + The id of the sub-issue to be prioritized after (either positional argument after OR before should be specified). + """ + afterId: ID + """ + The id of the sub-issue to be prioritized before (either positional argument after OR before should be specified). + """ + beforeId: ID + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The id of the parent issue.""" + issueId: ID! + """The id of the sub-issue to reprioritize.""" + subIssueId: ID! +} + +"""Autogenerated return type of ReprioritizeSubIssue.""" +type ReprioritizeSubIssuePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The parent issue that the sub-issue was reprioritized in.""" + issue: Issue +} + +"""Autogenerated input type of RequestReviews""" +input RequestReviewsInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the pull request to modify.""" + pullRequestId: ID! + """The Node IDs of the team to request.""" + teamIds: [ID!] + """Add users to the set rather than replace.""" + union: Boolean = false + """The Node IDs of the user to request.""" + userIds: [ID!] +} + +"""Autogenerated return type of RequestReviews.""" +type RequestReviewsPayload { + """Identifies the actor who performed the event.""" + actor: Actor + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The pull request that is getting requests.""" + pullRequest: PullRequest + """The edge from the pull request to the requested reviewers.""" + requestedReviewersEdge: UserEdge +} + +"""The possible states that can be requested when creating a check run.""" +enum RequestableCheckStatusState { + """The check suite or run has been completed.""" + COMPLETED + """The check suite or run is in progress.""" + IN_PROGRESS + """The check suite or run is in pending state.""" + PENDING + """The check suite or run has been queued.""" + QUEUED + """The check suite or run is in waiting state.""" + WAITING +} + +"""Types that can be requested reviewers.""" +union RequestedReviewer = Bot | Mannequin | Team | User + +"""The connection type for RequestedReviewer.""" +type RequestedReviewerConnection { + """A list of edges.""" + edges: [RequestedReviewerEdge] + """A list of nodes.""" + nodes: [RequestedReviewer] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type RequestedReviewerEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: RequestedReviewer +} + +"""Represents a type that can be required by a pull request for merging.""" +interface RequirableByPullRequest { + """ + Whether this is required to pass before merging for a specific pull request. + """ + isRequired( + """The id of the pull request this is required for""" + pullRequestId: ID + """The number of the pull request this is required for""" + pullRequestNumber: Int + ): Boolean! +} + +""" +Choose which environments must be successfully deployed to before refs can be pushed into a ref that matches this rule. +""" +type RequiredDeploymentsParameters { + """ + The environments that must be successfully deployed to before branches can be merged. + """ + requiredDeploymentEnvironments: [String!]! +} + +""" +Choose which environments must be successfully deployed to before refs can be pushed into a ref that matches this rule. +""" +input RequiredDeploymentsParametersInput { + """ + The environments that must be successfully deployed to before branches can be merged. + """ + requiredDeploymentEnvironments: [String!]! +} + +""" +Represents a required status check for a protected branch, but not any specific run of that check. +""" +type RequiredStatusCheckDescription { + """The App that must provide this status in order for it to be accepted.""" + app: App + """The name of this status.""" + context: String! +} + +"""Specifies the attributes for a new or updated required status check.""" +input RequiredStatusCheckInput { + """ + The ID of the App that must set the status in order for it to be accepted. + Omit this value to use whichever app has recently been setting this status, or + use "any" to allow any app to set the status. + """ + appId: ID + """ + Status check context that must pass for commits to be accepted to the matching branch. + """ + context: String! +} + +""" +Choose which status checks must pass before the ref is updated. When enabled, +commits must first be pushed to another ref where the checks pass. +""" +type RequiredStatusChecksParameters { + """ + Allow repositories and branches to be created if a check would otherwise prohibit it. + """ + doNotEnforceOnCreate: Boolean! + """Status checks that are required.""" + requiredStatusChecks: [StatusCheckConfiguration!]! + """ + Whether pull requests targeting a matching branch must be tested with the + latest code. This setting will not take effect unless at least one status + check is enabled. + """ + strictRequiredStatusChecksPolicy: Boolean! +} + +""" +Choose which status checks must pass before the ref is updated. When enabled, +commits must first be pushed to another ref where the checks pass. +""" +input RequiredStatusChecksParametersInput { + """ + Allow repositories and branches to be created if a check would otherwise prohibit it. + """ + doNotEnforceOnCreate: Boolean + """Status checks that are required.""" + requiredStatusChecks: [StatusCheckConfigurationInput!]! + """ + Whether pull requests targeting a matching branch must be tested with the + latest code. This setting will not take effect unless at least one status + check is enabled. + """ + strictRequiredStatusChecksPolicy: Boolean! +} + +"""Autogenerated input type of RerequestCheckSuite""" +input RerequestCheckSuiteInput { + """The Node ID of the check suite.""" + checkSuiteId: ID! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the repository.""" + repositoryId: ID! +} + +"""Autogenerated return type of RerequestCheckSuite.""" +type RerequestCheckSuitePayload { + """The requested check suite.""" + checkSuite: CheckSuite + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated input type of ResolveReviewThread""" +input ResolveReviewThreadInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the thread to resolve""" + threadId: ID! +} + +"""Autogenerated return type of ResolveReviewThread.""" +type ResolveReviewThreadPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The thread to resolve.""" + thread: PullRequestReviewThread +} + +"""Represents a private contribution a user made on GitHub.""" +type RestrictedContribution implements Contribution { + """ + Whether this contribution is associated with a record you do not have access to. For + example, your own 'first issue' contribution may have been made on a repository you can no + longer access. + """ + isRestricted: Boolean! + """When this contribution was made.""" + occurredAt: DateTime! + """The HTTP path for this contribution.""" + resourcePath: URI! + """The HTTP URL for this contribution.""" + url: URI! + """The user who made this contribution.""" + user: User! +} + +"""Autogenerated input type of RetireSponsorsTier""" +input RetireSponsorsTierInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the published tier to retire.""" + tierId: ID! +} + +"""Autogenerated return type of RetireSponsorsTier.""" +type RetireSponsorsTierPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The tier that was retired.""" + sponsorsTier: SponsorsTier +} + +"""Autogenerated input type of RevertPullRequest""" +input RevertPullRequestInput { + """The description of the revert pull request.""" + body: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """Indicates whether the revert pull request should be a draft.""" + draft: Boolean = false + """The ID of the pull request to revert.""" + pullRequestId: ID! + """The title of the revert pull request.""" + title: String +} + +"""Autogenerated return type of RevertPullRequest.""" +type RevertPullRequestPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The pull request that was reverted.""" + pullRequest: PullRequest + """The new pull request that reverts the input pull request.""" + revertPullRequest: PullRequest +} + +""" +A user, team, or app who has the ability to dismiss a review on a protected branch. +""" +type ReviewDismissalAllowance implements Node { + """The actor that can dismiss.""" + actor: ReviewDismissalAllowanceActor + """ + Identifies the branch protection rule associated with the allowed user, team, or app. + """ + branchProtectionRule: BranchProtectionRule + """The Node ID of the ReviewDismissalAllowance object""" + id: ID! +} + +"""Types that can be an actor.""" +union ReviewDismissalAllowanceActor = App | Team | User + +"""The connection type for ReviewDismissalAllowance.""" +type ReviewDismissalAllowanceConnection { + """A list of edges.""" + edges: [ReviewDismissalAllowanceEdge] + """A list of nodes.""" + nodes: [ReviewDismissalAllowance] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type ReviewDismissalAllowanceEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: ReviewDismissalAllowance +} + +""" +Represents a 'review_dismissed' event on a given issue or pull request. +""" +type ReviewDismissedEvent implements Node & UniformResourceLocatable { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int + """ + Identifies the optional message associated with the 'review_dismissed' event. + """ + dismissalMessage: String + """ + Identifies the optional message associated with the event, rendered to HTML. + """ + dismissalMessageHTML: String + """The Node ID of the ReviewDismissedEvent object""" + id: ID! + """ + Identifies the previous state of the review with the 'review_dismissed' event. + """ + previousReviewState: PullRequestReviewState! + """PullRequest referenced by event.""" + pullRequest: PullRequest! + """Identifies the commit which caused the review to become stale.""" + pullRequestCommit: PullRequestCommit + """The HTTP path for this review dismissed event.""" + resourcePath: URI! + """Identifies the review associated with the 'review_dismissed' event.""" + review: PullRequestReview + """The HTTP URL for this review dismissed event.""" + url: URI! +} + +"""A request for a user to review a pull request.""" +type ReviewRequest implements Node { + """Whether this request was created for a code owner""" + asCodeOwner: Boolean! + """Identifies the primary key from the database.""" + databaseId: Int + """The Node ID of the ReviewRequest object""" + id: ID! + """Identifies the pull request associated with this review request.""" + pullRequest: PullRequest! + """The reviewer that is requested.""" + requestedReviewer: RequestedReviewer +} + +"""The connection type for ReviewRequest.""" +type ReviewRequestConnection { + """A list of edges.""" + edges: [ReviewRequestEdge] + """A list of nodes.""" + nodes: [ReviewRequest] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type ReviewRequestEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: ReviewRequest +} + +"""Represents an 'review_request_removed' event on a given pull request.""" +type ReviewRequestRemovedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the ReviewRequestRemovedEvent object""" + id: ID! + """PullRequest referenced by event.""" + pullRequest: PullRequest! + """Identifies the reviewer whose review request was removed.""" + requestedReviewer: RequestedReviewer +} + +"""Represents an 'review_requested' event on a given pull request.""" +type ReviewRequestedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the ReviewRequestedEvent object""" + id: ID! + """PullRequest referenced by event.""" + pullRequest: PullRequest! + """Identifies the reviewer whose review was requested.""" + requestedReviewer: RequestedReviewer +} + +""" +A hovercard context with a message describing the current code review state of the pull +request. +""" +type ReviewStatusHovercardContext implements HovercardContext { + """A string describing this context""" + message: String! + """An octicon to accompany this context""" + octicon: String! + """The current status of the pull request with respect to code review.""" + reviewDecision: PullRequestReviewDecision +} + +"""Autogenerated input type of RevokeEnterpriseOrganizationsMigratorRole""" +input RevokeEnterpriseOrganizationsMigratorRoleInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The ID of the enterprise to which all organizations managed by it will be granted the migrator role. + """ + enterpriseId: ID! + """The login of the user to revoke the migrator role""" + login: String! +} + +""" +Autogenerated return type of RevokeEnterpriseOrganizationsMigratorRole. +""" +type RevokeEnterpriseOrganizationsMigratorRolePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The organizations that had the migrator role revoked for the given user. + """ + organizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): OrganizationConnection +} + +"""Autogenerated input type of RevokeMigratorRole""" +input RevokeMigratorRoleInput { + """The user login or Team slug to revoke the migrator role from.""" + actor: String! + """Specifies the type of the actor, can be either USER or TEAM.""" + actorType: ActorType! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the organization that the user/team belongs to.""" + organizationId: ID! +} + +"""Autogenerated return type of RevokeMigratorRole.""" +type RevokeMigratorRolePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """Did the operation succeed?""" + success: Boolean +} + +"""Possible roles a user may have in relation to an organization.""" +enum RoleInOrganization { + """A user who is a direct member of the organization.""" + DIRECT_MEMBER + """A user with full administrative access to the organization.""" + OWNER + """A user who is unaffiliated with the organization.""" + UNAFFILIATED +} + +"""The level of enforcement for a rule or ruleset.""" +enum RuleEnforcement { + """Rules will be enforced""" + ACTIVE + """Do not evaluate or enforce rules""" + DISABLED + """ + Allow admins to test rules before enforcing them. Admins can view insights on + the Rule Insights page (`evaluate` is only available with GitHub Enterprise). + """ + EVALUATE +} + +"""Types which can be parameters for `RepositoryRule` objects.""" +union RuleParameters = BranchNamePatternParameters | CodeScanningParameters | CommitAuthorEmailPatternParameters | CommitMessagePatternParameters | CommitterEmailPatternParameters | FileExtensionRestrictionParameters | FilePathRestrictionParameters | MaxFilePathLengthParameters | MaxFileSizeParameters | MergeQueueParameters | PullRequestParameters | RequiredDeploymentsParameters | RequiredStatusChecksParameters | TagNamePatternParameters | UpdateParameters | WorkflowsParameters + +""" +Specifies the parameters for a `RepositoryRule` object. Only one of the fields should be specified. +""" +input RuleParametersInput { + """Parameters used for the `branch_name_pattern` rule type""" + branchNamePattern: BranchNamePatternParametersInput + """Parameters used for the `code_scanning` rule type""" + codeScanning: CodeScanningParametersInput + """Parameters used for the `commit_author_email_pattern` rule type""" + commitAuthorEmailPattern: CommitAuthorEmailPatternParametersInput + """Parameters used for the `commit_message_pattern` rule type""" + commitMessagePattern: CommitMessagePatternParametersInput + """Parameters used for the `committer_email_pattern` rule type""" + committerEmailPattern: CommitterEmailPatternParametersInput + """Parameters used for the `file_extension_restriction` rule type""" + fileExtensionRestriction: FileExtensionRestrictionParametersInput + """Parameters used for the `file_path_restriction` rule type""" + filePathRestriction: FilePathRestrictionParametersInput + """Parameters used for the `max_file_path_length` rule type""" + maxFilePathLength: MaxFilePathLengthParametersInput + """Parameters used for the `max_file_size` rule type""" + maxFileSize: MaxFileSizeParametersInput + """Parameters used for the `merge_queue` rule type""" + mergeQueue: MergeQueueParametersInput + """Parameters used for the `pull_request` rule type""" + pullRequest: PullRequestParametersInput + """Parameters used for the `required_deployments` rule type""" + requiredDeployments: RequiredDeploymentsParametersInput + """Parameters used for the `required_status_checks` rule type""" + requiredStatusChecks: RequiredStatusChecksParametersInput + """Parameters used for the `tag_name_pattern` rule type""" + tagNamePattern: TagNamePatternParametersInput + """Parameters used for the `update` rule type""" + update: UpdateParametersInput + """Parameters used for the `workflows` rule type""" + workflows: WorkflowsParametersInput +} + +"""Types which can have `RepositoryRule` objects.""" +union RuleSource = Enterprise | Organization | Repository + +""" +The possible digest algorithms used to sign SAML requests for an identity provider. +""" +enum SamlDigestAlgorithm { + """SHA1""" + SHA1 + """SHA256""" + SHA256 + """SHA384""" + SHA384 + """SHA512""" + SHA512 +} + +""" +The possible signature algorithms used to sign SAML requests for a Identity Provider. +""" +enum SamlSignatureAlgorithm { + """RSA-SHA1""" + RSA_SHA1 + """RSA-SHA256""" + RSA_SHA256 + """RSA-SHA384""" + RSA_SHA384 + """RSA-SHA512""" + RSA_SHA512 +} + +"""A Saved Reply is text a user can use to reply quickly.""" +type SavedReply implements Node { + """The body of the saved reply.""" + body: String! + """The saved reply body rendered to HTML.""" + bodyHTML: HTML! + """Identifies the primary key from the database.""" + databaseId: Int + """The Node ID of the SavedReply object""" + id: ID! + """The title of the saved reply.""" + title: String! + """The user that saved this reply.""" + user: Actor +} + +"""The connection type for SavedReply.""" +type SavedReplyConnection { + """A list of edges.""" + edges: [SavedReplyEdge] + """A list of nodes.""" + nodes: [SavedReply] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type SavedReplyEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: SavedReply +} + +"""Ordering options for saved reply connections.""" +input SavedReplyOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order saved replies by.""" + field: SavedReplyOrderField! +} + +"""Properties by which saved reply connections can be ordered.""" +enum SavedReplyOrderField { + """Order saved reply by when they were updated.""" + UPDATED_AT +} + +"""The results of a search.""" +union SearchResultItem = App | Discussion | Issue | MarketplaceListing | Organization | PullRequest | Repository | User + +""" +A list of results that matched against a search query. Regardless of the number +of matches, a maximum of 1,000 results will be available across all types, +potentially split across many pages. +""" +type SearchResultItemConnection { + """ + The total number of pieces of code that matched the search query. Regardless + of the total number of matches, a maximum of 1,000 results will be available + across all types. + """ + codeCount: Int! + """ + The total number of discussions that matched the search query. Regardless of + the total number of matches, a maximum of 1,000 results will be available + across all types. + """ + discussionCount: Int! + """A list of edges.""" + edges: [SearchResultItemEdge] + """ + The total number of issues that matched the search query. Regardless of the + total number of matches, a maximum of 1,000 results will be available across all types. + """ + issueCount: Int! + """A list of nodes.""" + nodes: [SearchResultItem] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """ + The total number of repositories that matched the search query. Regardless of + the total number of matches, a maximum of 1,000 results will be available + across all types. + """ + repositoryCount: Int! + """ + The total number of users that matched the search query. Regardless of the + total number of matches, a maximum of 1,000 results will be available across all types. + """ + userCount: Int! + """ + The total number of wiki pages that matched the search query. Regardless of + the total number of matches, a maximum of 1,000 results will be available + across all types. + """ + wikiCount: Int! +} + +"""An edge in a connection.""" +type SearchResultItemEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: SearchResultItem + """Text matches on the result found.""" + textMatches: [TextMatch] +} + +"""Represents the individual results of a search.""" +enum SearchType { + """Returns matching discussions in repositories.""" + DISCUSSION + """Returns results matching issues in repositories.""" + ISSUE + """Returns results matching issues in repositories.""" + ISSUE_ADVANCED @deprecated(reason: "Search for issues and pull requests will be overridden by advanced search on September 4, 2025. You can read more about this change on https://github.blog/changelog/2025-03-06-github-issues-projects-api-support-for-issues-advanced-search-and-more/. Removal on 2025-09-04 UTC.") + """Returns results matching repositories.""" + REPOSITORY + """Returns results matching users and organizations on GitHub.""" + USER +} + +"""A GitHub Security Advisory""" +type SecurityAdvisory implements Node { + """The classification of the advisory""" + classification: SecurityAdvisoryClassification! + """The CVSS associated with this advisory""" + cvss: CVSS! @deprecated(reason: "`cvss` will be removed. New `cvss_severities` field will now contain both `cvss_v3` and `cvss_v4` properties. Removal on 2025-10-01 UTC.") + """The CVSS associated with this advisory""" + cvssSeverities: CvssSeverities! + """CWEs associated with this Advisory""" + cwes( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): CWEConnection! + """Identifies the primary key from the database.""" + databaseId: Int + """This is a long plaintext description of the advisory""" + description: String! + """The Exploit Prediction Scoring System""" + epss: EPSS + """The GitHub Security Advisory ID""" + ghsaId: String! + """The Node ID of the SecurityAdvisory object""" + id: ID! + """A list of identifiers for this advisory""" + identifiers: [SecurityAdvisoryIdentifier!]! + """The permalink for the advisory's dependabot alerts page""" + notificationsPermalink: URI + """The organization that originated the advisory""" + origin: String! + """The permalink for the advisory""" + permalink: URI + """When the advisory was published""" + publishedAt: DateTime! + """A list of references for this advisory""" + references: [SecurityAdvisoryReference!]! + """The severity of the advisory""" + severity: SecurityAdvisorySeverity! + """A short plaintext summary of the advisory""" + summary: String! + """When the advisory was last updated""" + updatedAt: DateTime! + """Vulnerabilities associated with this Advisory""" + vulnerabilities( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """A list of advisory classifications to filter vulnerabilities by.""" + classifications: [SecurityAdvisoryClassification!] + """An ecosystem to filter vulnerabilities by.""" + ecosystem: SecurityAdvisoryEcosystem + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for the returned topics.""" + orderBy: SecurityVulnerabilityOrder = {direction: DESC, field: UPDATED_AT} + """A package name to filter vulnerabilities by.""" + package: String + """A list of severities to filter vulnerabilities by.""" + severities: [SecurityAdvisorySeverity!] + ): SecurityVulnerabilityConnection! + """When the advisory was withdrawn, if it has been withdrawn""" + withdrawnAt: DateTime +} + +"""Classification of the advisory.""" +enum SecurityAdvisoryClassification { + """Classification of general advisories.""" + GENERAL + """Classification of malware advisories.""" + MALWARE +} + +"""The connection type for SecurityAdvisory.""" +type SecurityAdvisoryConnection { + """A list of edges.""" + edges: [SecurityAdvisoryEdge] + """A list of nodes.""" + nodes: [SecurityAdvisory] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""The possible ecosystems of a security vulnerability's package.""" +enum SecurityAdvisoryEcosystem { + """GitHub Actions""" + ACTIONS + """PHP packages hosted at packagist.org""" + COMPOSER + """Erlang/Elixir packages hosted at hex.pm""" + ERLANG + """Go modules""" + GO + """Java artifacts hosted at the Maven central repository""" + MAVEN + """JavaScript packages hosted at npmjs.com""" + NPM + """.NET packages hosted at the NuGet Gallery""" + NUGET + """Python packages hosted at PyPI.org""" + PIP + """Dart packages hosted at pub.dev""" + PUB + """Ruby gems hosted at RubyGems.org""" + RUBYGEMS + """Rust crates""" + RUST + """Swift packages""" + SWIFT +} + +"""An edge in a connection.""" +type SecurityAdvisoryEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: SecurityAdvisory +} + +"""A GitHub Security Advisory Identifier""" +type SecurityAdvisoryIdentifier { + """The identifier type, e.g. GHSA, CVE""" + type: String! + """The identifier""" + value: String! +} + +"""An advisory identifier to filter results on.""" +input SecurityAdvisoryIdentifierFilter { + """The identifier type.""" + type: SecurityAdvisoryIdentifierType! + """The identifier string. Supports exact or partial matching.""" + value: String! +} + +"""Identifier formats available for advisories.""" +enum SecurityAdvisoryIdentifierType { + """Common Vulnerabilities and Exposures Identifier.""" + CVE + """GitHub Security Advisory ID.""" + GHSA +} + +"""Ordering options for security advisory connections""" +input SecurityAdvisoryOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order security advisories by.""" + field: SecurityAdvisoryOrderField! +} + +"""Properties by which security advisory connections can be ordered.""" +enum SecurityAdvisoryOrderField { + """Order advisories by EPSS percentage""" + EPSS_PERCENTAGE + """Order advisories by EPSS percentile""" + EPSS_PERCENTILE + """Order advisories by publication time""" + PUBLISHED_AT + """Order advisories by update time""" + UPDATED_AT +} + +"""An individual package""" +type SecurityAdvisoryPackage { + """The ecosystem the package belongs to, e.g. RUBYGEMS, NPM""" + ecosystem: SecurityAdvisoryEcosystem! + """The package name""" + name: String! +} + +"""An individual package version""" +type SecurityAdvisoryPackageVersion { + """The package name or version""" + identifier: String! +} + +"""A GitHub Security Advisory Reference""" +type SecurityAdvisoryReference { + """A publicly accessible reference""" + url: URI! +} + +"""Severity of the vulnerability.""" +enum SecurityAdvisorySeverity { + """Critical.""" + CRITICAL + """High.""" + HIGH + """Low.""" + LOW + """Moderate.""" + MODERATE +} + +"""An individual vulnerability within an Advisory""" +type SecurityVulnerability { + """The Advisory associated with this Vulnerability""" + advisory: SecurityAdvisory! + """The first version containing a fix for the vulnerability""" + firstPatchedVersion: SecurityAdvisoryPackageVersion + """A description of the vulnerable package""" + package: SecurityAdvisoryPackage! + """The severity of the vulnerability within this package""" + severity: SecurityAdvisorySeverity! + """When the vulnerability was last updated""" + updatedAt: DateTime! + """ + A string that describes the vulnerable package versions. + This string follows a basic syntax with a few forms. + + `= 0.2.0` denotes a single vulnerable version. + + `<= 1.0.8` denotes a version range up to and including the specified version + + `< 0.1.11` denotes a version range up to, but excluding, the specified version + + `>= 4.3.0, < 4.3.5` denotes a version range with a known minimum and maximum version. + + `>= 0.0.1` denotes a version range with a known minimum, but no known maximum + """ + vulnerableVersionRange: String! +} + +"""The connection type for SecurityVulnerability.""" +type SecurityVulnerabilityConnection { + """A list of edges.""" + edges: [SecurityVulnerabilityEdge] + """A list of nodes.""" + nodes: [SecurityVulnerability] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type SecurityVulnerabilityEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: SecurityVulnerability +} + +"""Ordering options for security vulnerability connections""" +input SecurityVulnerabilityOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order security vulnerabilities by.""" + field: SecurityVulnerabilityOrderField! +} + +"""Properties by which security vulnerability connections can be ordered.""" +enum SecurityVulnerabilityOrderField { + """Order vulnerability by update time""" + UPDATED_AT +} + +"""Autogenerated input type of SetEnterpriseIdentityProvider""" +input SetEnterpriseIdentityProviderInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The digest algorithm used to sign SAML requests for the identity provider. + """ + digestMethod: SamlDigestAlgorithm! + """The ID of the enterprise on which to set an identity provider.""" + enterpriseId: ID! + """ + The x509 certificate used by the identity provider to sign assertions and responses. + """ + idpCertificate: String! + """The Issuer Entity ID for the SAML identity provider""" + issuer: String + """ + The signature algorithm used to sign SAML requests for the identity provider. + """ + signatureMethod: SamlSignatureAlgorithm! + """The URL endpoint for the identity provider's SAML SSO.""" + ssoUrl: URI! +} + +"""Autogenerated return type of SetEnterpriseIdentityProvider.""" +type SetEnterpriseIdentityProviderPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The identity provider for the enterprise.""" + identityProvider: EnterpriseIdentityProvider +} + +"""Autogenerated input type of SetOrganizationInteractionLimit""" +input SetOrganizationInteractionLimitInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """When this limit should expire.""" + expiry: RepositoryInteractionLimitExpiry + """The limit to set.""" + limit: RepositoryInteractionLimit! + """The ID of the organization to set a limit for.""" + organizationId: ID! +} + +"""Autogenerated return type of SetOrganizationInteractionLimit.""" +type SetOrganizationInteractionLimitPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The organization that the interaction limit was set for.""" + organization: Organization +} + +"""Autogenerated input type of SetRepositoryInteractionLimit""" +input SetRepositoryInteractionLimitInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """When this limit should expire.""" + expiry: RepositoryInteractionLimitExpiry + """The limit to set.""" + limit: RepositoryInteractionLimit! + """The ID of the repository to set a limit for.""" + repositoryId: ID! +} + +"""Autogenerated return type of SetRepositoryInteractionLimit.""" +type SetRepositoryInteractionLimitPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The repository that the interaction limit was set for.""" + repository: Repository +} + +"""Autogenerated input type of SetUserInteractionLimit""" +input SetUserInteractionLimitInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """When this limit should expire.""" + expiry: RepositoryInteractionLimitExpiry + """The limit to set.""" + limit: RepositoryInteractionLimit! + """The ID of the user to set a limit for.""" + userId: ID! +} + +"""Autogenerated return type of SetUserInteractionLimit.""" +type SetUserInteractionLimitPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The user that the interaction limit was set for.""" + user: User +} + +"""Represents an S/MIME signature on a Commit or Tag.""" +type SmimeSignature implements GitSignature { + """Email used to sign this object.""" + email: String! + """True if the signature is valid and verified by GitHub.""" + isValid: Boolean! + """ + Payload for GPG signing object. Raw ODB object without the signature header. + """ + payload: String! + """ASCII-armored signature header from object.""" + signature: String! + """GitHub user corresponding to the email signing this commit.""" + signer: User + """ + The state of this signature. `VALID` if signature is valid and verified by + GitHub, otherwise represents reason why signature is considered invalid. + """ + state: GitSignatureState! + """The date the signature was verified, if valid""" + verifiedAt: DateTime + """True if the signature was made with GitHub's signing key.""" + wasSignedByGitHub: Boolean! +} + +"""Social media profile associated with a user.""" +type SocialAccount { + """Name of the social media account as it appears on the profile.""" + displayName: String! + """Software or company that hosts the social media account.""" + provider: SocialAccountProvider! + """URL of the social media account.""" + url: URI! +} + +"""The connection type for SocialAccount.""" +type SocialAccountConnection { + """A list of edges.""" + edges: [SocialAccountEdge] + """A list of nodes.""" + nodes: [SocialAccount] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type SocialAccountEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: SocialAccount +} + +"""Software or company that hosts social media accounts.""" +enum SocialAccountProvider { + """Decentralized microblogging social platform.""" + BLUESKY + """Social media and networking website.""" + FACEBOOK + """ + Catch-all for social media providers that do not yet have specific handling. + """ + GENERIC + """Fork of Mastodon with a greater focus on local posting.""" + HOMETOWN + """Social media website with a focus on photo and video sharing.""" + INSTAGRAM + """Professional networking website.""" + LINKEDIN + """Open-source federated microblogging service.""" + MASTODON + """JavaScript package registry.""" + NPM + """Social news aggregation and discussion website.""" + REDDIT + """Live-streaming service.""" + TWITCH + """Microblogging website.""" + TWITTER + """Online video platform.""" + YOUTUBE +} + +"""Entities that can sponsor others via GitHub Sponsors""" +union Sponsor = Organization | User + +""" +A GitHub account and the total amount in USD they've paid for sponsorships to a +particular maintainer. Does not include payments made via Patreon. +""" +type SponsorAndLifetimeValue { + """The amount in cents.""" + amountInCents: Int! + """The amount in USD, formatted as a string.""" + formattedAmount: String! + """The sponsor's GitHub account.""" + sponsor: Sponsorable! + """The maintainer's GitHub account.""" + sponsorable: Sponsorable! +} + +"""The connection type for SponsorAndLifetimeValue.""" +type SponsorAndLifetimeValueConnection { + """A list of edges.""" + edges: [SponsorAndLifetimeValueEdge] + """A list of nodes.""" + nodes: [SponsorAndLifetimeValue] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type SponsorAndLifetimeValueEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: SponsorAndLifetimeValue +} + +""" +Ordering options for connections to get sponsor entities and associated USD amounts for GitHub Sponsors. +""" +input SponsorAndLifetimeValueOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order results by.""" + field: SponsorAndLifetimeValueOrderField! +} + +""" +Properties by which sponsor and lifetime value connections can be ordered. +""" +enum SponsorAndLifetimeValueOrderField { + """Order results by how much money the sponsor has paid in total.""" + LIFETIME_VALUE + """Order results by the sponsor's login (username).""" + SPONSOR_LOGIN + """Order results by the sponsor's relevance to the viewer.""" + SPONSOR_RELEVANCE +} + +""" +A list of users and organizations sponsoring someone via GitHub Sponsors. +""" +type SponsorConnection { + """A list of edges.""" + edges: [SponsorEdge] + """A list of nodes.""" + nodes: [Sponsor] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +""" +Represents a user or organization who is sponsoring someone in GitHub Sponsors. +""" +type SponsorEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Sponsor +} + +""" +Ordering options for connections to get sponsor entities for GitHub Sponsors. +""" +input SponsorOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order sponsor entities by.""" + field: SponsorOrderField! +} + +"""Properties by which sponsor connections can be ordered.""" +enum SponsorOrderField { + """Order sponsorable entities by login (username).""" + LOGIN + """Order sponsors by their relevance to the viewer.""" + RELEVANCE +} + +"""Entities that can sponsor or be sponsored through GitHub Sponsors.""" +interface Sponsorable { + """ + The estimated next GitHub Sponsors payout for this user/organization in cents (USD). + """ + estimatedNextSponsorsPayoutInCents: Int! + """True if this user/organization has a GitHub Sponsors listing.""" + hasSponsorsListing: Boolean! + """Whether the given account is sponsoring this user/organization.""" + isSponsoredBy( + """The target account's login.""" + accountLogin: String! + ): Boolean! + """True if the viewer is sponsored by this user/organization.""" + isSponsoringViewer: Boolean! + """ + Calculate how much each sponsor has ever paid total to this maintainer via + GitHub Sponsors. Does not include sponsorships paid via Patreon. + """ + lifetimeReceivedSponsorshipValues( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for results returned from the connection.""" + orderBy: SponsorAndLifetimeValueOrder = {direction: ASC, field: SPONSOR_LOGIN} + ): SponsorAndLifetimeValueConnection! + """ + The estimated monthly GitHub Sponsors income for this user/organization in cents (USD). + """ + monthlyEstimatedSponsorsIncomeInCents: Int! + """List of users and organizations this entity is sponsoring.""" + sponsoring( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Ordering options for the users and organizations returned from the connection. + """ + orderBy: SponsorOrder = {direction: DESC, field: RELEVANCE} + ): SponsorConnection! + """List of sponsors for this user or organization.""" + sponsors( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for sponsors returned from the connection.""" + orderBy: SponsorOrder = {direction: DESC, field: RELEVANCE} + """ + If given, will filter for sponsors at the given tier. Will only return + sponsors whose tier the viewer is permitted to see. + """ + tierId: ID + ): SponsorConnection! + """Events involving this sponsorable, such as new sponsorships.""" + sponsorsActivities( + """Filter activities to only the specified actions.""" + actions: [SponsorsActivityAction!] = [] + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """ + Whether to include those events where this sponsorable acted as the sponsor. + Defaults to only including events where this sponsorable was the recipient + of a sponsorship. + """ + includeAsSponsor: Boolean = false + """ + Whether or not to include private activities in the result set. Defaults to including public and private activities. + """ + includePrivate: Boolean = true + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for activity returned from the connection.""" + orderBy: SponsorsActivityOrder = {direction: DESC, field: TIMESTAMP} + """ + Filter activities returned to only those that occurred in the most recent + specified time period. Set to ALL to avoid filtering by when the activity + occurred. Will be ignored if `since` or `until` is given. + """ + period: SponsorsActivityPeriod = MONTH + """Filter activities to those that occurred on or after this time.""" + since: DateTime + """Filter activities to those that occurred before this time.""" + until: DateTime + ): SponsorsActivityConnection! + """The GitHub Sponsors listing for this user or organization.""" + sponsorsListing: SponsorsListing + """ + The sponsorship from the viewer to this user/organization; that is, the sponsorship where you're the sponsor. + """ + sponsorshipForViewerAsSponsor( + """ + Whether to return the sponsorship only if it's still active. Pass false to + get the viewer's sponsorship back even if it has been cancelled. + """ + activeOnly: Boolean = true + ): Sponsorship + """ + The sponsorship from this user/organization to the viewer; that is, the sponsorship you're receiving. + """ + sponsorshipForViewerAsSponsorable( + """ + Whether to return the sponsorship only if it's still active. Pass false to + get the sponsorship back even if it has been cancelled. + """ + activeOnly: Boolean = true + ): Sponsorship + """List of sponsorship updates sent from this sponsorable to sponsors.""" + sponsorshipNewsletters( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for sponsorship updates returned from the connection.""" + orderBy: SponsorshipNewsletterOrder = {direction: DESC, field: CREATED_AT} + ): SponsorshipNewsletterConnection! + """ + The sponsorships where this user or organization is the maintainer receiving the funds. + """ + sponsorshipsAsMaintainer( + """ + Whether to include only sponsorships that are active right now, versus all + sponsorships this maintainer has ever received. + """ + activeOnly: Boolean = true + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Whether or not to include private sponsorships in the result set""" + includePrivate: Boolean = false + """Returns the last _n_ elements from the list.""" + last: Int + """ + Ordering options for sponsorships returned from this connection. If left + blank, the sponsorships will be ordered based on relevancy to the viewer. + """ + orderBy: SponsorshipOrder + ): SponsorshipConnection! + """The sponsorships where this user or organization is the funder.""" + sponsorshipsAsSponsor( + """ + Whether to include only sponsorships that are active right now, versus all sponsorships this sponsor has ever made. + """ + activeOnly: Boolean = true + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Filter sponsorships returned to those for the specified maintainers. That + is, the recipient of the sponsorship is a user or organization with one of + the given logins. + """ + maintainerLogins: [String!] + """ + Ordering options for sponsorships returned from this connection. If left + blank, the sponsorships will be ordered based on relevancy to the viewer. + """ + orderBy: SponsorshipOrder + ): SponsorshipConnection! + """ + The amount in United States cents (e.g., 500 = $5.00 USD) that this entity has + spent on GitHub to fund sponsorships. Only returns a value when viewed by the + user themselves or by a user who can manage sponsorships for the requested organization. + """ + totalSponsorshipAmountAsSponsorInCents( + """Filter payments to those that occurred on or after this time.""" + since: DateTime + """ + Filter payments to those made to the users or organizations with the specified usernames. + """ + sponsorableLogins: [String!] = [] + """Filter payments to those that occurred before this time.""" + until: DateTime + ): Int + """Whether or not the viewer is able to sponsor this user/organization.""" + viewerCanSponsor: Boolean! + """True if the viewer is sponsoring this user/organization.""" + viewerIsSponsoring: Boolean! +} + +"""Entities that can be sponsored via GitHub Sponsors""" +union SponsorableItem = Organization | User + +"""The connection type for SponsorableItem.""" +type SponsorableItemConnection { + """A list of edges.""" + edges: [SponsorableItemEdge] + """A list of nodes.""" + nodes: [SponsorableItem] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type SponsorableItemEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: SponsorableItem +} + +""" +Ordering options for connections to get sponsorable entities for GitHub Sponsors. +""" +input SponsorableOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order sponsorable entities by.""" + field: SponsorableOrderField! +} + +"""Properties by which sponsorable connections can be ordered.""" +enum SponsorableOrderField { + """Order sponsorable entities by login (username).""" + LOGIN +} + +"""An event related to sponsorship activity.""" +type SponsorsActivity implements Node { + """What action this activity indicates took place.""" + action: SponsorsActivityAction! + """The sponsor's current privacy level.""" + currentPrivacyLevel: SponsorshipPrivacy + """The Node ID of the SponsorsActivity object""" + id: ID! + """The platform that was used to pay for the sponsorship.""" + paymentSource: SponsorshipPaymentSource + """The tier that the sponsorship used to use, for tier change events.""" + previousSponsorsTier: SponsorsTier + """ + The user or organization who triggered this activity and was/is sponsoring the sponsorable. + """ + sponsor: Sponsor + """The user or organization that is being sponsored, the maintainer.""" + sponsorable: Sponsorable! + """The associated sponsorship tier.""" + sponsorsTier: SponsorsTier + """The timestamp of this event.""" + timestamp: DateTime + """ + Was this sponsorship made alongside other sponsorships at the same time from the same sponsor? + """ + viaBulkSponsorship: Boolean! +} + +"""The possible actions that GitHub Sponsors activities can represent.""" +enum SponsorsActivityAction { + """The activity was cancelling a sponsorship.""" + CANCELLED_SPONSORSHIP + """The activity was starting a sponsorship.""" + NEW_SPONSORSHIP + """The activity was scheduling a downgrade or cancellation.""" + PENDING_CHANGE + """The activity was funds being refunded to the sponsor or GitHub.""" + REFUND + """ + The activity was disabling matching for a previously matched sponsorship. + """ + SPONSOR_MATCH_DISABLED + """ + The activity was changing the sponsorship tier, either directly by the sponsor or by a scheduled/pending change. + """ + TIER_CHANGE +} + +"""The connection type for SponsorsActivity.""" +type SponsorsActivityConnection { + """A list of edges.""" + edges: [SponsorsActivityEdge] + """A list of nodes.""" + nodes: [SponsorsActivity] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type SponsorsActivityEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: SponsorsActivity +} + +"""Ordering options for GitHub Sponsors activity connections.""" +input SponsorsActivityOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order activity by.""" + field: SponsorsActivityOrderField! +} + +""" +Properties by which GitHub Sponsors activity connections can be ordered. +""" +enum SponsorsActivityOrderField { + """Order activities by when they happened.""" + TIMESTAMP +} + +""" +The possible time periods for which Sponsors activities can be requested. +""" +enum SponsorsActivityPeriod { + """Don't restrict the activity to any date range, include all activity.""" + ALL + """The previous calendar day.""" + DAY + """The previous thirty days.""" + MONTH + """The previous seven days.""" + WEEK +} + +""" +Represents countries or regions for billing and residence for a GitHub Sponsors profile. +""" +enum SponsorsCountryOrRegionCode { + """Andorra""" + AD + """United Arab Emirates""" + AE + """Afghanistan""" + AF + """Antigua and Barbuda""" + AG + """Anguilla""" + AI + """Albania""" + AL + """Armenia""" + AM + """Angola""" + AO + """Antarctica""" + AQ + """Argentina""" + AR + """American Samoa""" + AS + """Austria""" + AT + """Australia""" + AU + """Aruba""" + AW + """Åland""" + AX + """Azerbaijan""" + AZ + """Bosnia and Herzegovina""" + BA + """Barbados""" + BB + """Bangladesh""" + BD + """Belgium""" + BE + """Burkina Faso""" + BF + """Bulgaria""" + BG + """Bahrain""" + BH + """Burundi""" + BI + """Benin""" + BJ + """Saint Barthélemy""" + BL + """Bermuda""" + BM + """Brunei Darussalam""" + BN + """Bolivia""" + BO + """Bonaire, Sint Eustatius and Saba""" + BQ + """Brazil""" + BR + """Bahamas""" + BS + """Bhutan""" + BT + """Bouvet Island""" + BV + """Botswana""" + BW + """Belarus""" + BY + """Belize""" + BZ + """Canada""" + CA + """Cocos (Keeling) Islands""" + CC + """Congo (Kinshasa)""" + CD + """Central African Republic""" + CF + """Congo (Brazzaville)""" + CG + """Switzerland""" + CH + """Côte d'Ivoire""" + CI + """Cook Islands""" + CK + """Chile""" + CL + """Cameroon""" + CM + """China""" + CN + """Colombia""" + CO + """Costa Rica""" + CR + """Cape Verde""" + CV + """Curaçao""" + CW + """Christmas Island""" + CX + """Cyprus""" + CY + """Czech Republic""" + CZ + """Germany""" + DE + """Djibouti""" + DJ + """Denmark""" + DK + """Dominica""" + DM + """Dominican Republic""" + DO + """Algeria""" + DZ + """Ecuador""" + EC + """Estonia""" + EE + """Egypt""" + EG + """Western Sahara""" + EH + """Eritrea""" + ER + """Spain""" + ES + """Ethiopia""" + ET + """Finland""" + FI + """Fiji""" + FJ + """Falkland Islands""" + FK + """Micronesia""" + FM + """Faroe Islands""" + FO + """France""" + FR + """Gabon""" + GA + """United Kingdom""" + GB + """Grenada""" + GD + """Georgia""" + GE + """French Guiana""" + GF + """Guernsey""" + GG + """Ghana""" + GH + """Gibraltar""" + GI + """Greenland""" + GL + """Gambia""" + GM + """Guinea""" + GN + """Guadeloupe""" + GP + """Equatorial Guinea""" + GQ + """Greece""" + GR + """South Georgia and South Sandwich Islands""" + GS + """Guatemala""" + GT + """Guam""" + GU + """Guinea-Bissau""" + GW + """Guyana""" + GY + """Hong Kong""" + HK + """Heard and McDonald Islands""" + HM + """Honduras""" + HN + """Croatia""" + HR + """Haiti""" + HT + """Hungary""" + HU + """Indonesia""" + ID + """Ireland""" + IE + """Israel""" + IL + """Isle of Man""" + IM + """India""" + IN + """British Indian Ocean Territory""" + IO + """Iraq""" + IQ + """Iran""" + IR + """Iceland""" + IS + """Italy""" + IT + """Jersey""" + JE + """Jamaica""" + JM + """Jordan""" + JO + """Japan""" + JP + """Kenya""" + KE + """Kyrgyzstan""" + KG + """Cambodia""" + KH + """Kiribati""" + KI + """Comoros""" + KM + """Saint Kitts and Nevis""" + KN + """Korea, South""" + KR + """Kuwait""" + KW + """Cayman Islands""" + KY + """Kazakhstan""" + KZ + """Laos""" + LA + """Lebanon""" + LB + """Saint Lucia""" + LC + """Liechtenstein""" + LI + """Sri Lanka""" + LK + """Liberia""" + LR + """Lesotho""" + LS + """Lithuania""" + LT + """Luxembourg""" + LU + """Latvia""" + LV + """Libya""" + LY + """Morocco""" + MA + """Monaco""" + MC + """Moldova""" + MD + """Montenegro""" + ME + """Saint Martin (French part)""" + MF + """Madagascar""" + MG + """Marshall Islands""" + MH + """Macedonia""" + MK + """Mali""" + ML + """Myanmar""" + MM + """Mongolia""" + MN + """Macau""" + MO + """Northern Mariana Islands""" + MP + """Martinique""" + MQ + """Mauritania""" + MR + """Montserrat""" + MS + """Malta""" + MT + """Mauritius""" + MU + """Maldives""" + MV + """Malawi""" + MW + """Mexico""" + MX + """Malaysia""" + MY + """Mozambique""" + MZ + """Namibia""" + NA + """New Caledonia""" + NC + """Niger""" + NE + """Norfolk Island""" + NF + """Nigeria""" + NG + """Nicaragua""" + NI + """Netherlands""" + NL + """Norway""" + NO + """Nepal""" + NP + """Nauru""" + NR + """Niue""" + NU + """New Zealand""" + NZ + """Oman""" + OM + """Panama""" + PA + """Peru""" + PE + """French Polynesia""" + PF + """Papua New Guinea""" + PG + """Philippines""" + PH + """Pakistan""" + PK + """Poland""" + PL + """Saint Pierre and Miquelon""" + PM + """Pitcairn""" + PN + """Puerto Rico""" + PR + """Palestine""" + PS + """Portugal""" + PT + """Palau""" + PW + """Paraguay""" + PY + """Qatar""" + QA + """Reunion""" + RE + """Romania""" + RO + """Serbia""" + RS + """Russian Federation""" + RU + """Rwanda""" + RW + """Saudi Arabia""" + SA + """Solomon Islands""" + SB + """Seychelles""" + SC + """Sudan""" + SD + """Sweden""" + SE + """Singapore""" + SG + """Saint Helena""" + SH + """Slovenia""" + SI + """Svalbard and Jan Mayen Islands""" + SJ + """Slovakia""" + SK + """Sierra Leone""" + SL + """San Marino""" + SM + """Senegal""" + SN + """Somalia""" + SO + """Suriname""" + SR + """South Sudan""" + SS + """Sao Tome and Principe""" + ST + """El Salvador""" + SV + """Sint Maarten (Dutch part)""" + SX + """Swaziland""" + SZ + """Turks and Caicos Islands""" + TC + """Chad""" + TD + """French Southern Lands""" + TF + """Togo""" + TG + """Thailand""" + TH + """Tajikistan""" + TJ + """Tokelau""" + TK + """Timor-Leste""" + TL + """Turkmenistan""" + TM + """Tunisia""" + TN + """Tonga""" + TO + """Türkiye""" + TR + """Trinidad and Tobago""" + TT + """Tuvalu""" + TV + """Taiwan""" + TW + """Tanzania""" + TZ + """Ukraine""" + UA + """Uganda""" + UG + """United States Minor Outlying Islands""" + UM + """United States of America""" + US + """Uruguay""" + UY + """Uzbekistan""" + UZ + """Vatican City""" + VA + """Saint Vincent and the Grenadines""" + VC + """Venezuela""" + VE + """Virgin Islands, British""" + VG + """Virgin Islands, U.S.""" + VI + """Vietnam""" + VN + """Vanuatu""" + VU + """Wallis and Futuna Islands""" + WF + """Samoa""" + WS + """Yemen""" + YE + """Mayotte""" + YT + """South Africa""" + ZA + """Zambia""" + ZM + """Zimbabwe""" + ZW +} + +""" +A goal associated with a GitHub Sponsors listing, representing a target the sponsored maintainer would like to attain. +""" +type SponsorsGoal { + """A description of the goal from the maintainer.""" + description: String + """What the objective of this goal is.""" + kind: SponsorsGoalKind! + """The percentage representing how complete this goal is, between 0-100.""" + percentComplete: Int! + """ + What the goal amount is. Represents an amount in USD for monthly sponsorship + amount goals. Represents a count of unique sponsors for total sponsors count goals. + """ + targetValue: Int! + """A brief summary of the kind and target value of this goal.""" + title: String! +} + +"""The different kinds of goals a GitHub Sponsors member can have.""" +enum SponsorsGoalKind { + """ + The goal is about getting a certain amount in USD from sponsorships each month. + """ + MONTHLY_SPONSORSHIP_AMOUNT + """The goal is about reaching a certain number of sponsors.""" + TOTAL_SPONSORS_COUNT +} + +"""A GitHub Sponsors listing.""" +type SponsorsListing implements Node { + """ + The current goal the maintainer is trying to reach with GitHub Sponsors, if any. + """ + activeGoal: SponsorsGoal + """ + The Stripe Connect account currently in use for payouts for this Sponsors + listing, if any. Will only return a value when queried by the maintainer + themselves, or by an admin of the sponsorable organization. + """ + activeStripeConnectAccount: StripeConnectAccount + """ + The name of the country or region with the maintainer's bank account or fiscal + host. Will only return a value when queried by the maintainer themselves, or + by an admin of the sponsorable organization. + """ + billingCountryOrRegion: String + """ + The email address used by GitHub to contact the sponsorable about their GitHub + Sponsors profile. Will only return a value when queried by the maintainer + themselves, or by an admin of the sponsorable organization. + """ + contactEmailAddress: String + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The HTTP path for the Sponsors dashboard for this Sponsors listing.""" + dashboardResourcePath: URI! + """The HTTP URL for the Sponsors dashboard for this Sponsors listing.""" + dashboardUrl: URI! + """The records featured on the GitHub Sponsors profile.""" + featuredItems( + """The types of featured items to return.""" + featureableTypes: [SponsorsListingFeaturedItemFeatureableType!] = [REPOSITORY, USER] + ): [SponsorsListingFeaturedItem!]! + """ + The fiscal host used for payments, if any. Will only return a value when + queried by the maintainer themselves, or by an admin of the sponsorable organization. + """ + fiscalHost: Organization + """The full description of the listing.""" + fullDescription: String! + """The full description of the listing rendered to HTML.""" + fullDescriptionHTML: HTML! + """The Node ID of the SponsorsListing object""" + id: ID! + """Whether this listing is publicly visible.""" + isPublic: Boolean! + """The listing's full name.""" + name: String! + """A future date on which this listing is eligible to receive a payout.""" + nextPayoutDate: Date + """ + The name of the country or region where the maintainer resides. Will only + return a value when queried by the maintainer themselves, or by an admin of + the sponsorable organization. + """ + residenceCountryOrRegion: String + """The HTTP path for this Sponsors listing.""" + resourcePath: URI! + """The short description of the listing.""" + shortDescription: String! + """The short name of the listing.""" + slug: String! + """ + The entity this listing represents who can be sponsored on GitHub Sponsors. + """ + sponsorable: Sponsorable! + """The tiers for this GitHub Sponsors profile.""" + tiers( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """ + Whether to include tiers that aren't published. Only admins of the Sponsors + listing can see draft tiers. Only admins of the Sponsors listing and viewers + who are currently sponsoring on a retired tier can see those retired tiers. + Defaults to including only published tiers, which are visible to anyone who + can see the GitHub Sponsors profile. + """ + includeUnpublished: Boolean = false + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for Sponsors tiers returned from the connection.""" + orderBy: SponsorsTierOrder = {direction: ASC, field: MONTHLY_PRICE_IN_CENTS} + ): SponsorsTierConnection + """The HTTP URL for this Sponsors listing.""" + url: URI! +} + +"""A record that can be featured on a GitHub Sponsors profile.""" +union SponsorsListingFeatureableItem = Repository | User + +"""A record that is promoted on a GitHub Sponsors profile.""" +type SponsorsListingFeaturedItem implements Node { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """ + Will either be a description from the sponsorable maintainer about why they + featured this item, or the item's description itself, such as a user's bio + from their GitHub profile page. + """ + description: String + """The record that is featured on the GitHub Sponsors profile.""" + featureable: SponsorsListingFeatureableItem! + """The Node ID of the SponsorsListingFeaturedItem object""" + id: ID! + """ + The position of this featured item on the GitHub Sponsors profile with a lower + position indicating higher precedence. Starts at 1. + """ + position: Int! + """The GitHub Sponsors profile that features this record.""" + sponsorsListing: SponsorsListing! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +""" +The different kinds of records that can be featured on a GitHub Sponsors profile page. +""" +enum SponsorsListingFeaturedItemFeatureableType { + """ + A repository owned by the user or organization with the GitHub Sponsors profile. + """ + REPOSITORY + """ + A user who belongs to the organization with the GitHub Sponsors profile. + """ + USER +} + +"""A GitHub Sponsors tier associated with a GitHub Sponsors listing.""" +type SponsorsTier implements Node { + """ + SponsorsTier information only visible to users that can administer the associated Sponsors listing. + """ + adminInfo: SponsorsTierAdminInfo + """ + Get a different tier for this tier's maintainer that is at the same frequency + as this tier but with an equal or lesser cost. Returns the published tier with + the monthly price closest to this tier's without going over. + """ + closestLesserValueTier: SponsorsTier + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The description of the tier.""" + description: String! + """The tier description rendered to HTML""" + descriptionHTML: HTML! + """The Node ID of the SponsorsTier object""" + id: ID! + """ + Whether this tier was chosen at checkout time by the sponsor rather than + defined ahead of time by the maintainer who manages the Sponsors listing. + """ + isCustomAmount: Boolean! + """Whether this tier is only for use with one-time sponsorships.""" + isOneTime: Boolean! + """How much this tier costs per month in cents.""" + monthlyPriceInCents: Int! + """How much this tier costs per month in USD.""" + monthlyPriceInDollars: Int! + """The name of the tier.""" + name: String! + """The sponsors listing that this tier belongs to.""" + sponsorsListing: SponsorsListing! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +""" +SponsorsTier information only visible to users that can administer the associated Sponsors listing. +""" +type SponsorsTierAdminInfo { + """ + Indicates whether this tier is still a work in progress by the sponsorable and + not yet published to the associated GitHub Sponsors profile. Draft tiers + cannot be used for new sponsorships and will not be in use on existing + sponsorships. Draft tiers cannot be seen by anyone but the admins of the + GitHub Sponsors profile. + """ + isDraft: Boolean! + """ + Indicates whether this tier is published to the associated GitHub Sponsors + profile. Published tiers are visible to anyone who can see the GitHub Sponsors + profile, and are available for use in sponsorships if the GitHub Sponsors + profile is publicly visible. + """ + isPublished: Boolean! + """ + Indicates whether this tier has been retired from the associated GitHub + Sponsors profile. Retired tiers are no longer shown on the GitHub Sponsors + profile and cannot be chosen for new sponsorships. Existing sponsorships may + still use retired tiers if the sponsor selected the tier before it was retired. + """ + isRetired: Boolean! + """The sponsorships using this tier.""" + sponsorships( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """ + Whether or not to return private sponsorships using this tier. Defaults to + only returning public sponsorships on this tier. + """ + includePrivate: Boolean = false + """Returns the last _n_ elements from the list.""" + last: Int + """ + Ordering options for sponsorships returned from this connection. If left + blank, the sponsorships will be ordered based on relevancy to the viewer. + """ + orderBy: SponsorshipOrder + ): SponsorshipConnection! +} + +"""The connection type for SponsorsTier.""" +type SponsorsTierConnection { + """A list of edges.""" + edges: [SponsorsTierEdge] + """A list of nodes.""" + nodes: [SponsorsTier] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type SponsorsTierEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: SponsorsTier +} + +"""Ordering options for Sponsors tiers connections.""" +input SponsorsTierOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order tiers by.""" + field: SponsorsTierOrderField! +} + +"""Properties by which Sponsors tiers connections can be ordered.""" +enum SponsorsTierOrderField { + """Order tiers by creation time.""" + CREATED_AT + """Order tiers by their monthly price in cents""" + MONTHLY_PRICE_IN_CENTS +} + +"""A sponsorship relationship between a sponsor and a maintainer""" +type Sponsorship implements Node { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the Sponsorship object""" + id: ID! + """ + Whether the sponsorship is active. False implies the sponsor is a past sponsor + of the maintainer, while true implies they are a current sponsor. + """ + isActive: Boolean! + """ + Whether this sponsorship represents a one-time payment versus a recurring sponsorship. + """ + isOneTimePayment: Boolean! + """ + Whether the sponsor has chosen to receive sponsorship update emails sent from + the sponsorable. Only returns a non-null value when the viewer has permission to know this. + """ + isSponsorOptedIntoEmail: Boolean + """The entity that is being sponsored""" + maintainer: User! @deprecated(reason: "`Sponsorship.maintainer` will be removed. Use `Sponsorship.sponsorable` instead. Removal on 2020-04-01 UTC.") + """The platform that was most recently used to pay for the sponsorship.""" + paymentSource: SponsorshipPaymentSource + """The privacy level for this sponsorship.""" + privacyLevel: SponsorshipPrivacy! + """ + The user that is sponsoring. Returns null if the sponsorship is private or if sponsor is not a user. + """ + sponsor: User @deprecated(reason: "`Sponsorship.sponsor` will be removed. Use `Sponsorship.sponsorEntity` instead. Removal on 2020-10-01 UTC.") + """ + The user or organization that is sponsoring, if you have permission to view them. + """ + sponsorEntity: Sponsor + """The entity that is being sponsored""" + sponsorable: Sponsorable! + """The associated sponsorship tier""" + tier: SponsorsTier + """ + Identifies the date and time when the current tier was chosen for this sponsorship. + """ + tierSelectedAt: DateTime +} + +""" +A list of sponsorships either from the subject or received by the subject. +""" +type SponsorshipConnection { + """A list of edges.""" + edges: [SponsorshipEdge] + """A list of nodes.""" + nodes: [Sponsorship] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! + """ + The total amount in cents of all recurring sponsorships in the connection + whose amount you can view. Does not include one-time sponsorships. + """ + totalRecurringMonthlyPriceInCents: Int! + """ + The total amount in USD of all recurring sponsorships in the connection whose + amount you can view. Does not include one-time sponsorships. + """ + totalRecurringMonthlyPriceInDollars: Int! +} + +"""An edge in a connection.""" +type SponsorshipEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Sponsorship +} + +""" +An update sent to sponsors of a user or organization on GitHub Sponsors. +""" +type SponsorshipNewsletter implements Node { + """The author of the newsletter.""" + author: User + """ + The contents of the newsletter, the message the sponsorable wanted to give. + """ + body: String! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the SponsorshipNewsletter object""" + id: ID! + """Indicates if the newsletter has been made available to sponsors.""" + isPublished: Boolean! + """The user or organization this newsletter is from.""" + sponsorable: Sponsorable! + """The subject of the newsletter, what it's about.""" + subject: String! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""The connection type for SponsorshipNewsletter.""" +type SponsorshipNewsletterConnection { + """A list of edges.""" + edges: [SponsorshipNewsletterEdge] + """A list of nodes.""" + nodes: [SponsorshipNewsletter] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type SponsorshipNewsletterEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: SponsorshipNewsletter +} + +"""Ordering options for sponsorship newsletter connections.""" +input SponsorshipNewsletterOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order sponsorship newsletters by.""" + field: SponsorshipNewsletterOrderField! +} + +"""Properties by which sponsorship update connections can be ordered.""" +enum SponsorshipNewsletterOrderField { + """Order sponsorship newsletters by when they were created.""" + CREATED_AT +} + +"""Ordering options for sponsorship connections.""" +input SponsorshipOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order sponsorship by.""" + field: SponsorshipOrderField! +} + +"""Properties by which sponsorship connections can be ordered.""" +enum SponsorshipOrderField { + """Order sponsorship by creation time.""" + CREATED_AT +} + +"""How payment was made for funding a GitHub Sponsors sponsorship.""" +enum SponsorshipPaymentSource { + """Payment was made through GitHub.""" + GITHUB + """Payment was made through Patreon.""" + PATREON +} + +"""The privacy of a sponsorship""" +enum SponsorshipPrivacy { + """Private""" + PRIVATE + """Public""" + PUBLIC +} + +"""The possible default commit messages for squash merges.""" +enum SquashMergeCommitMessage { + """Default to a blank commit message.""" + BLANK + """Default to the branch's commit messages.""" + COMMIT_MESSAGES + """Default to the pull request's body.""" + PR_BODY +} + +"""The possible default commit titles for squash merges.""" +enum SquashMergeCommitTitle { + """ + Default to the commit's title (if only one commit) or the pull request's title (when more than one commit). + """ + COMMIT_OR_PR_TITLE + """Default to the pull request's title.""" + PR_TITLE +} + +"""Represents an SSH signature on a Commit or Tag.""" +type SshSignature implements GitSignature { + """Email used to sign this object.""" + email: String! + """True if the signature is valid and verified by GitHub.""" + isValid: Boolean! + """Hex-encoded fingerprint of the key that signed this object.""" + keyFingerprint: String + """ + Payload for GPG signing object. Raw ODB object without the signature header. + """ + payload: String! + """ASCII-armored signature header from object.""" + signature: String! + """GitHub user corresponding to the email signing this commit.""" + signer: User + """ + The state of this signature. `VALID` if signature is valid and verified by + GitHub, otherwise represents reason why signature is considered invalid. + """ + state: GitSignatureState! + """The date the signature was verified, if valid""" + verifiedAt: DateTime + """True if the signature was made with GitHub's signing key.""" + wasSignedByGitHub: Boolean! +} + +"""Ways in which star connections can be ordered.""" +input StarOrder { + """The direction in which to order nodes.""" + direction: OrderDirection! + """The field in which to order nodes by.""" + field: StarOrderField! +} + +"""Properties by which star connections can be ordered.""" +enum StarOrderField { + """Allows ordering a list of stars by when they were created.""" + STARRED_AT +} + +"""The connection type for User.""" +type StargazerConnection { + """A list of edges.""" + edges: [StargazerEdge] + """A list of nodes.""" + nodes: [User] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""Represents a user that's starred a repository.""" +type StargazerEdge { + """A cursor for use in pagination.""" + cursor: String! + node: User! + """Identifies when the item was starred.""" + starredAt: DateTime! +} + +"""Things that can be starred.""" +interface Starrable { + """The Node ID of the Starrable object""" + id: ID! + """Returns a count of how many stargazers there are on this object""" + stargazerCount: Int! + """A list of users who have starred this starrable.""" + stargazers( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Order for connection""" + orderBy: StarOrder + ): StargazerConnection! + """ + Returns a boolean indicating whether the viewing user has starred this starrable. + """ + viewerHasStarred: Boolean! +} + +"""The connection type for Repository.""" +type StarredRepositoryConnection { + """A list of edges.""" + edges: [StarredRepositoryEdge] + """ + Is the list of stars for this user truncated? This is true for users that have many stars. + """ + isOverLimit: Boolean! + """A list of nodes.""" + nodes: [Repository] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""Represents a starred repository.""" +type StarredRepositoryEdge { + """A cursor for use in pagination.""" + cursor: String! + node: Repository! + """Identifies when the item was starred.""" + starredAt: DateTime! +} + +"""Autogenerated input type of StartOrganizationMigration""" +input StartOrganizationMigrationInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The migration source access token.""" + sourceAccessToken: String! + """The URL of the organization to migrate.""" + sourceOrgUrl: URI! + """The ID of the enterprise the target organization belongs to.""" + targetEnterpriseId: ID! + """The name of the target organization.""" + targetOrgName: String! +} + +"""Autogenerated return type of StartOrganizationMigration.""" +type StartOrganizationMigrationPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The new organization migration.""" + orgMigration: OrganizationMigration +} + +"""Autogenerated input type of StartRepositoryMigration""" +input StartRepositoryMigrationInput { + """The migration source access token.""" + accessToken: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """Whether to continue the migration on error. Defaults to `true`.""" + continueOnError: Boolean + """The signed URL to access the user-uploaded git archive.""" + gitArchiveUrl: String + """ + The GitHub personal access token of the user importing to the target repository. + """ + githubPat: String + """Whether to lock the source repository.""" + lockSource: Boolean + """The signed URL to access the user-uploaded metadata archive.""" + metadataArchiveUrl: String + """The ID of the organization that will own the imported repository.""" + ownerId: ID! + """The name of the imported repository.""" + repositoryName: String! + """Whether to skip migrating releases for the repository.""" + skipReleases: Boolean + """The ID of the migration source.""" + sourceId: ID! + """The URL of the source repository.""" + sourceRepositoryUrl: URI! + """The visibility of the imported repository.""" + targetRepoVisibility: String +} + +"""Autogenerated return type of StartRepositoryMigration.""" +type StartRepositoryMigrationPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The new repository migration.""" + repositoryMigration: RepositoryMigration +} + +"""Represents a commit status.""" +type Status implements Node { + """A list of status contexts and check runs for this commit.""" + combinedContexts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): StatusCheckRollupContextConnection! + """The commit this status is attached to.""" + commit: Commit + """Looks up an individual status context by context name.""" + context( + """The context name.""" + name: String! + ): StatusContext + """The individual status contexts for this commit.""" + contexts: [StatusContext!]! + """The Node ID of the Status object""" + id: ID! + """The combined commit status.""" + state: StatusState! +} + +"""Required status check""" +type StatusCheckConfiguration { + """The status check context name that must be present on the commit.""" + context: String! + """ + The optional integration ID that this status check must originate from. + """ + integrationId: Int +} + +"""Required status check""" +input StatusCheckConfigurationInput { + """The status check context name that must be present on the commit.""" + context: String! + """ + The optional integration ID that this status check must originate from. + """ + integrationId: Int +} + +"""Represents the rollup for both the check runs and status for a commit.""" +type StatusCheckRollup implements Node { + """The commit the status and check runs are attached to.""" + commit: Commit + """A list of status contexts and check runs for this commit.""" + contexts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): StatusCheckRollupContextConnection! + """The Node ID of the StatusCheckRollup object""" + id: ID! + """The combined status for the commit.""" + state: StatusState! +} + +"""Types that can be inside a StatusCheckRollup context.""" +union StatusCheckRollupContext = CheckRun | StatusContext + +"""The connection type for StatusCheckRollupContext.""" +type StatusCheckRollupContextConnection { + """The number of check runs in this rollup.""" + checkRunCount: Int! + """Counts of check runs by state.""" + checkRunCountsByState: [CheckRunStateCount!] + """A list of edges.""" + edges: [StatusCheckRollupContextEdge] + """A list of nodes.""" + nodes: [StatusCheckRollupContext] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """The number of status contexts in this rollup.""" + statusContextCount: Int! + """Counts of status contexts by state.""" + statusContextCountsByState: [StatusContextStateCount!] + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type StatusCheckRollupContextEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: StatusCheckRollupContext +} + +"""Represents an individual commit status context""" +type StatusContext implements Node & RequirableByPullRequest { + """ + The avatar of the OAuth application or the user that created the status + """ + avatarUrl( + """The size of the resulting square image.""" + size: Int = 40 + ): URI + """This commit this status context is attached to.""" + commit: Commit + """The name of this status context.""" + context: String! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The actor who created this status context.""" + creator: Actor + """The description for this status context.""" + description: String + """The Node ID of the StatusContext object""" + id: ID! + """ + Whether this is required to pass before merging for a specific pull request. + """ + isRequired( + """The id of the pull request this is required for""" + pullRequestId: ID + """The number of the pull request this is required for""" + pullRequestNumber: Int + ): Boolean! + """The state of this status context.""" + state: StatusState! + """The URL for this status context.""" + targetUrl: URI +} + +"""Represents a count of the state of a status context.""" +type StatusContextStateCount { + """The number of statuses with this state.""" + count: Int! + """The state of a status context.""" + state: StatusState! +} + +"""The possible commit status states.""" +enum StatusState { + """Status is errored.""" + ERROR + """Status is expected.""" + EXPECTED + """Status is failing.""" + FAILURE + """Status is pending.""" + PENDING + """Status is successful.""" + SUCCESS +} + +""" +A Stripe Connect account for receiving sponsorship funds from GitHub Sponsors. +""" +type StripeConnectAccount { + """The account number used to identify this Stripe Connect account.""" + accountId: String! + """ + The name of the country or region of an external account, such as a bank + account, tied to the Stripe Connect account. Will only return a value when + queried by the maintainer of the associated GitHub Sponsors profile + themselves, or by an admin of the sponsorable organization. + """ + billingCountryOrRegion: String + """ + The name of the country or region of the Stripe Connect account. Will only + return a value when queried by the maintainer of the associated GitHub + Sponsors profile themselves, or by an admin of the sponsorable organization. + """ + countryOrRegion: String + """ + Whether this Stripe Connect account is currently in use for the associated GitHub Sponsors profile. + """ + isActive: Boolean! + """ + The GitHub Sponsors profile associated with this Stripe Connect account. + """ + sponsorsListing: SponsorsListing! + """The URL to access this Stripe Connect account on Stripe's website.""" + stripeDashboardUrl: URI! +} + +"""Represents a 'sub_issue_added' event on a given issue.""" +type SubIssueAddedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the SubIssueAddedEvent object""" + id: ID! + """The sub-issue added.""" + subIssue: Issue +} + +"""Represents a 'sub_issue_removed' event on a given issue.""" +type SubIssueRemovedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the SubIssueRemovedEvent object""" + id: ID! + """The sub-issue removed.""" + subIssue: Issue +} + +"""Summary of the state of an issue's sub-issues""" +type SubIssuesSummary { + """Count of completed sub-issues""" + completed: Int! + """Percent of sub-issues which are completed""" + percentCompleted: Int! + """Count of total number of sub-issues""" + total: Int! +} + +"""Autogenerated input type of SubmitPullRequestReview""" +input SubmitPullRequestReviewInput { + """The text field to set on the Pull Request Review.""" + body: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The event to send to the Pull Request Review.""" + event: PullRequestReviewEvent! + """The Pull Request ID to submit any pending reviews.""" + pullRequestId: ID + """The Pull Request Review ID to submit.""" + pullRequestReviewId: ID +} + +"""Autogenerated return type of SubmitPullRequestReview.""" +type SubmitPullRequestReviewPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The submitted pull request review.""" + pullRequestReview: PullRequestReview +} + +""" +A pointer to a repository at a specific revision embedded inside another repository. +""" +type Submodule { + """The branch of the upstream submodule for tracking updates""" + branch: String + """The git URL of the submodule repository""" + gitUrl: URI! + """The name of the submodule in .gitmodules""" + name: String! + """The name of the submodule in .gitmodules (Base64-encoded)""" + nameRaw: Base64String! + """The path in the superproject that this submodule is located in""" + path: String! + """ + The path in the superproject that this submodule is located in (Base64-encoded) + """ + pathRaw: Base64String! + """ + The commit revision of the subproject repository being tracked by the submodule + """ + subprojectCommitOid: GitObjectID +} + +"""The connection type for Submodule.""" +type SubmoduleConnection { + """A list of edges.""" + edges: [SubmoduleEdge] + """A list of nodes.""" + nodes: [Submodule] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type SubmoduleEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Submodule +} + +"""Entities that can be subscribed to for web and email notifications.""" +interface Subscribable { + """The Node ID of the Subscribable object""" + id: ID! + """ + Check if the viewer is able to change their subscription status for the repository. + """ + viewerCanSubscribe: Boolean! + """ + Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. + """ + viewerSubscription: SubscriptionState +} + +"""Entities that can be subscribed to for web and email notifications.""" +interface SubscribableThread { + """The Node ID of the SubscribableThread object""" + id: ID! + """Identifies the viewer's thread subscription form action.""" + viewerThreadSubscriptionFormAction: ThreadSubscriptionFormAction + """Identifies the viewer's thread subscription status.""" + viewerThreadSubscriptionStatus: ThreadSubscriptionState +} + +"""Represents a 'subscribed' event on a given `Subscribable`.""" +type SubscribedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the SubscribedEvent object""" + id: ID! + """Object referenced by event.""" + subscribable: Subscribable! +} + +"""The possible states of a subscription.""" +enum SubscriptionState { + """The User is never notified.""" + IGNORED + """The User is notified of all conversations.""" + SUBSCRIBED + """The User is only notified when participating or @mentioned.""" + UNSUBSCRIBED +} + +""" +A suggestion to review a pull request based on a user's commit history and review comments. +""" +type SuggestedReviewer { + """Is this suggestion based on past commits?""" + isAuthor: Boolean! + """Is this suggestion based on past review comments?""" + isCommenter: Boolean! + """Identifies the user suggested to review the pull request.""" + reviewer: User! +} + +"""Represents a Git tag.""" +type Tag implements GitObject & Node { + """An abbreviated version of the Git object ID""" + abbreviatedOid: String! + """The HTTP path for this Git object""" + commitResourcePath: URI! + """The HTTP URL for this Git object""" + commitUrl: URI! + """The Node ID of the Tag object""" + id: ID! + """The Git tag message.""" + message: String + """The Git tag name.""" + name: String! + """The Git object ID""" + oid: GitObjectID! + """The Repository the Git object belongs to""" + repository: Repository! + """Details about the tag author.""" + tagger: GitActor + """The Git object the tag points to.""" + target: GitObject! +} + +"""Parameters to be used for the tag_name_pattern rule""" +type TagNamePatternParameters { + """How this rule will appear to users.""" + name: String + """If true, the rule will fail if the pattern matches.""" + negate: Boolean! + """The operator to use for matching.""" + operator: String! + """The pattern to match with.""" + pattern: String! +} + +"""Parameters to be used for the tag_name_pattern rule""" +input TagNamePatternParametersInput { + """How this rule will appear to users.""" + name: String + """If true, the rule will fail if the pattern matches.""" + negate: Boolean + """The operator to use for matching.""" + operator: String! + """The pattern to match with.""" + pattern: String! +} + +"""A team of users in an organization.""" +type Team implements MemberStatusable & Node & Subscribable { + """A list of teams that are ancestors of this team.""" + ancestors( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): TeamConnection! + """A URL pointing to the team's avatar.""" + avatarUrl( + """The size in pixels of the resulting square image.""" + size: Int = 400 + ): URI + """List of child teams belonging to this team""" + childTeams( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Whether to list immediate child teams or all descendant child teams.""" + immediateOnly: Boolean = true + """Returns the last _n_ elements from the list.""" + last: Int + """Order for connection""" + orderBy: TeamOrder + """User logins to filter by""" + userLogins: [String!] + ): TeamConnection! + """The slug corresponding to the organization and team.""" + combinedSlug: String! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int + """The description of the team.""" + description: String + """Find a team discussion by its number.""" + discussion( + """The sequence number of the discussion to find.""" + number: Int! + ): TeamDiscussion + """A list of team discussions.""" + discussions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """ + If provided, filters discussions according to whether or not they are pinned. + """ + isPinned: Boolean + """Returns the last _n_ elements from the list.""" + last: Int + """Order for connection""" + orderBy: TeamDiscussionOrder + ): TeamDiscussionConnection! + """The HTTP path for team discussions""" + discussionsResourcePath: URI! + """The HTTP URL for team discussions""" + discussionsUrl: URI! + """The HTTP path for editing this team""" + editTeamResourcePath: URI! + """The HTTP URL for editing this team""" + editTeamUrl: URI! + """The Node ID of the Team object""" + id: ID! + """A list of pending invitations for users to this team""" + invitations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): OrganizationInvitationConnection + """ + Get the status messages members of this entity have set that are either public or visible only to the organization. + """ + memberStatuses( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for user statuses returned from the connection.""" + orderBy: UserStatusOrder = {direction: DESC, field: UPDATED_AT} + ): UserStatusConnection! + """A list of users who are members of this team.""" + members( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filter by membership type""" + membership: TeamMembershipType = ALL + """Order for the connection.""" + orderBy: TeamMemberOrder + """The search string to look for.""" + query: String + """Filter by team member role""" + role: TeamMemberRole + ): TeamMemberConnection! + """The HTTP path for the team' members""" + membersResourcePath: URI! + """The HTTP URL for the team' members""" + membersUrl: URI! + """The name of the team.""" + name: String! + """The HTTP path creating a new team""" + newTeamResourcePath: URI! + """The HTTP URL creating a new team""" + newTeamUrl: URI! + """The notification setting that the team has set.""" + notificationSetting: TeamNotificationSetting! + """The organization that owns this team.""" + organization: Organization! + """The parent team of the team.""" + parentTeam: Team + """The level of privacy the team has.""" + privacy: TeamPrivacy! + """ + Finds and returns the project according to the provided project number. + """ + projectV2( + """The Project number.""" + number: Int! + ): ProjectV2 + """List of projects this team has collaborator access to.""" + projectsV2( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Filtering options for projects returned from this connection""" + filterBy: ProjectV2Filters = {} + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filter projects based on user role.""" + minPermissionLevel: ProjectV2PermissionLevel = READ + """How to order the returned projects.""" + orderBy: ProjectV2Order = {direction: DESC, field: NUMBER} + """The query to search projects by.""" + query: String = "" + ): ProjectV2Connection! + """A list of repositories this team has access to.""" + repositories( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Order for the connection.""" + orderBy: TeamRepositoryOrder + """ + The search string to look for. Repositories will be returned where the name contains your search string. + """ + query: String + ): TeamRepositoryConnection! + """The HTTP path for this team's repositories""" + repositoriesResourcePath: URI! + """The HTTP URL for this team's repositories""" + repositoriesUrl: URI! + """The HTTP path for this team""" + resourcePath: URI! + """What algorithm is used for review assignment for this team""" + reviewRequestDelegationAlgorithm: TeamReviewAssignmentAlgorithm + """True if review assignment is enabled for this team""" + reviewRequestDelegationEnabled: Boolean! + """How many team members are required for review assignment for this team""" + reviewRequestDelegationMemberCount: Int + """ + When assigning team members via delegation, whether the entire team should be notified as well. + """ + reviewRequestDelegationNotifyTeam: Boolean! + """The slug corresponding to the team.""" + slug: String! + """The HTTP path for this team's teams""" + teamsResourcePath: URI! + """The HTTP URL for this team's teams""" + teamsUrl: URI! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The HTTP URL for this team""" + url: URI! + """Team is adminable by the viewer.""" + viewerCanAdminister: Boolean! + """ + Check if the viewer is able to change their subscription status for the repository. + """ + viewerCanSubscribe: Boolean! + """ + Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. + """ + viewerSubscription: SubscriptionState +} + +"""Audit log entry for a team.add_member event.""" +type TeamAddMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & TeamAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the TeamAddMemberAuditEntry object""" + id: ID! + """Whether the team was mapped to an LDAP Group.""" + isLdapMapped: Boolean @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The team associated with the action""" + team: Team + """The name of the team""" + teamName: String + """The HTTP path for this team""" + teamResourcePath: URI + """The HTTP URL for this team""" + teamUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a team.add_repository event.""" +type TeamAddRepositoryAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & TeamAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the TeamAddRepositoryAuditEntry object""" + id: ID! + """Whether the team was mapped to an LDAP Group.""" + isLdapMapped: Boolean @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The team associated with the action""" + team: Team + """The name of the team""" + teamName: String + """The HTTP path for this team""" + teamResourcePath: URI + """The HTTP URL for this team""" + teamUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Metadata for an audit entry with action team.*""" +interface TeamAuditEntryData { + """The team associated with the action""" + team: Team + """The name of the team""" + teamName: String + """The HTTP path for this team""" + teamResourcePath: URI + """The HTTP URL for this team""" + teamUrl: URI +} + +"""Audit log entry for a team.change_parent_team event.""" +type TeamChangeParentTeamAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & TeamAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the TeamChangeParentTeamAuditEntry object""" + id: ID! + """Whether the team was mapped to an LDAP Group.""" + isLdapMapped: Boolean @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The new parent team.""" + parentTeam: Team @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the new parent team""" + parentTeamName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the former parent team""" + parentTeamNameWas: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the parent team""" + parentTeamResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the parent team""" + parentTeamUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The former parent team.""" + parentTeamWas: Team @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the previous parent team""" + parentTeamWasResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the previous parent team""" + parentTeamWasUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The team associated with the action""" + team: Team + """The name of the team""" + teamName: String + """The HTTP path for this team""" + teamResourcePath: URI + """The HTTP URL for this team""" + teamUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""The connection type for Team.""" +type TeamConnection { + """A list of edges.""" + edges: [TeamEdge] + """A list of nodes.""" + nodes: [Team] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""A team discussion.""" +type TeamDiscussion implements Comment & Deletable & Node & Reactable & Subscribable & UniformResourceLocatable & Updatable & UpdatableComment { + """The actor who authored the comment.""" + author: Actor + """Author's association with the discussion's team.""" + authorAssociation: CommentAuthorAssociation! @deprecated(reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.") + """The body as Markdown.""" + body: String! + """The body rendered to HTML.""" + bodyHTML: HTML! + """The body rendered to text.""" + bodyText: String! + """Identifies the discussion body hash.""" + bodyVersion: String! @deprecated(reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.") + """A list of comments on this discussion.""" + comments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """ + When provided, filters the connection such that results begin with the comment with this number. + """ + fromComment: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Order for connection""" + orderBy: TeamDiscussionCommentOrder + ): TeamDiscussionCommentConnection! @deprecated(reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.") + """The HTTP path for discussion comments""" + commentsResourcePath: URI! @deprecated(reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.") + """The HTTP URL for discussion comments""" + commentsUrl: URI! @deprecated(reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.") + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Check if this comment was created via an email reply.""" + createdViaEmail: Boolean! + """Identifies the primary key from the database.""" + databaseId: Int + """The actor who edited the comment.""" + editor: Actor + """The Node ID of the TeamDiscussion object""" + id: ID! + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + """Whether or not the discussion is pinned.""" + isPinned: Boolean! @deprecated(reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.") + """ + Whether or not the discussion is only visible to team members and organization owners. + """ + isPrivate: Boolean! @deprecated(reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.") + """The moment the editor made the last edit""" + lastEditedAt: DateTime + """Identifies the discussion within its team.""" + number: Int! @deprecated(reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.") + """Identifies when the comment was published at.""" + publishedAt: DateTime + """A list of reactions grouped by content left on the subject.""" + reactionGroups: [ReactionGroup!] + """A list of Reactions left on the Issue.""" + reactions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Allows filtering Reactions by emoji.""" + content: ReactionContent + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Allows specifying the order in which reactions are returned.""" + orderBy: ReactionOrder + ): ReactionConnection! + """The HTTP path for this discussion""" + resourcePath: URI! @deprecated(reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.") + """The team that defines the context of this discussion.""" + team: Team! @deprecated(reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.") + """The title of the discussion""" + title: String! @deprecated(reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.") + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The HTTP URL for this discussion""" + url: URI! @deprecated(reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.") + """A list of edits to this content.""" + userContentEdits( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserContentEditConnection + """Check if the current viewer can delete this object.""" + viewerCanDelete: Boolean! + """Whether or not the current viewer can pin this discussion.""" + viewerCanPin: Boolean! @deprecated(reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.") + """Can user react to this subject""" + viewerCanReact: Boolean! + """ + Check if the viewer is able to change their subscription status for the repository. + """ + viewerCanSubscribe: Boolean! + """Check if the current viewer can update this object.""" + viewerCanUpdate: Boolean! + """Reasons why the current viewer can not update this comment.""" + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! + """Did the viewer author this comment.""" + viewerDidAuthor: Boolean! + """ + Identifies if the viewer is watching, not watching, or ignoring the subscribable entity. + """ + viewerSubscription: SubscriptionState +} + +"""A comment on a team discussion.""" +type TeamDiscussionComment implements Comment & Deletable & Node & Reactable & UniformResourceLocatable & Updatable & UpdatableComment { + """The actor who authored the comment.""" + author: Actor + """Author's association with the comment's team.""" + authorAssociation: CommentAuthorAssociation! @deprecated(reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.") + """The body as Markdown.""" + body: String! + """The body rendered to HTML.""" + bodyHTML: HTML! + """The body rendered to text.""" + bodyText: String! + """The current version of the body content.""" + bodyVersion: String! @deprecated(reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.") + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Check if this comment was created via an email reply.""" + createdViaEmail: Boolean! + """Identifies the primary key from the database.""" + databaseId: Int + """The discussion this comment is about.""" + discussion: TeamDiscussion! @deprecated(reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.") + """The actor who edited the comment.""" + editor: Actor + """The Node ID of the TeamDiscussionComment object""" + id: ID! + """ + Check if this comment was edited and includes an edit with the creation data + """ + includesCreatedEdit: Boolean! + """The moment the editor made the last edit""" + lastEditedAt: DateTime + """Identifies the comment number.""" + number: Int! @deprecated(reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.") + """Identifies when the comment was published at.""" + publishedAt: DateTime + """A list of reactions grouped by content left on the subject.""" + reactionGroups: [ReactionGroup!] + """A list of Reactions left on the Issue.""" + reactions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Allows filtering Reactions by emoji.""" + content: ReactionContent + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Allows specifying the order in which reactions are returned.""" + orderBy: ReactionOrder + ): ReactionConnection! + """The HTTP path for this comment""" + resourcePath: URI! @deprecated(reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.") + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The HTTP URL for this comment""" + url: URI! @deprecated(reason: "The Team Discussions feature is deprecated in favor of Organization Discussions. Follow the guide at https://github.blog/changelog/2023-02-08-sunset-notice-team-discussions/ to find a suitable replacement. Removal on 2024-07-01 UTC.") + """A list of edits to this content.""" + userContentEdits( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserContentEditConnection + """Check if the current viewer can delete this object.""" + viewerCanDelete: Boolean! + """Can user react to this subject""" + viewerCanReact: Boolean! + """Check if the current viewer can update this object.""" + viewerCanUpdate: Boolean! + """Reasons why the current viewer can not update this comment.""" + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! + """Did the viewer author this comment.""" + viewerDidAuthor: Boolean! +} + +"""The connection type for TeamDiscussionComment.""" +type TeamDiscussionCommentConnection { + """A list of edges.""" + edges: [TeamDiscussionCommentEdge] + """A list of nodes.""" + nodes: [TeamDiscussionComment] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type TeamDiscussionCommentEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: TeamDiscussionComment +} + +"""Ways in which team discussion comment connections can be ordered.""" +input TeamDiscussionCommentOrder { + """The direction in which to order nodes.""" + direction: OrderDirection! + """The field by which to order nodes.""" + field: TeamDiscussionCommentOrderField! +} + +""" +Properties by which team discussion comment connections can be ordered. +""" +enum TeamDiscussionCommentOrderField { + """ + Allows sequential ordering of team discussion comments (which is equivalent to chronological ordering). + """ + NUMBER +} + +"""The connection type for TeamDiscussion.""" +type TeamDiscussionConnection { + """A list of edges.""" + edges: [TeamDiscussionEdge] + """A list of nodes.""" + nodes: [TeamDiscussion] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type TeamDiscussionEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: TeamDiscussion +} + +"""Ways in which team discussion connections can be ordered.""" +input TeamDiscussionOrder { + """The direction in which to order nodes.""" + direction: OrderDirection! + """The field by which to order nodes.""" + field: TeamDiscussionOrderField! +} + +"""Properties by which team discussion connections can be ordered.""" +enum TeamDiscussionOrderField { + """Allows chronological ordering of team discussions.""" + CREATED_AT +} + +"""An edge in a connection.""" +type TeamEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: Team +} + +"""The connection type for User.""" +type TeamMemberConnection { + """A list of edges.""" + edges: [TeamMemberEdge] + """A list of nodes.""" + nodes: [User] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""Represents a user who is a member of a team.""" +type TeamMemberEdge { + """A cursor for use in pagination.""" + cursor: String! + """The HTTP path to the organization's member access page.""" + memberAccessResourcePath: URI! + """The HTTP URL to the organization's member access page.""" + memberAccessUrl: URI! + node: User! + """The role the member has on the team.""" + role: TeamMemberRole! +} + +"""Ordering options for team member connections""" +input TeamMemberOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order team members by.""" + field: TeamMemberOrderField! +} + +"""Properties by which team member connections can be ordered.""" +enum TeamMemberOrderField { + """Order team members by creation time""" + CREATED_AT + """Order team members by login""" + LOGIN +} + +"""The possible team member roles; either 'maintainer' or 'member'.""" +enum TeamMemberRole { + """A team maintainer has permission to add and remove team members.""" + MAINTAINER + """A team member has no administrative permissions on the team.""" + MEMBER +} + +""" +Defines which types of team members are included in the returned list. Can be one of IMMEDIATE, CHILD_TEAM or ALL. +""" +enum TeamMembershipType { + """Includes immediate and child team members for the team.""" + ALL + """Includes only child team members for the team.""" + CHILD_TEAM + """Includes only immediate members of the team.""" + IMMEDIATE +} + +"""The possible team notification values.""" +enum TeamNotificationSetting { + """No one will receive notifications.""" + NOTIFICATIONS_DISABLED + """Everyone will receive notifications when the team is @mentioned.""" + NOTIFICATIONS_ENABLED +} + +"""Ways in which team connections can be ordered.""" +input TeamOrder { + """The direction in which to order nodes.""" + direction: OrderDirection! + """The field in which to order nodes by.""" + field: TeamOrderField! +} + +"""Properties by which team connections can be ordered.""" +enum TeamOrderField { + """Allows ordering a list of teams by name.""" + NAME +} + +"""The possible team privacy values.""" +enum TeamPrivacy { + """A secret team can only be seen by its members.""" + SECRET + """ + A visible team can be seen and @mentioned by every member of the organization. + """ + VISIBLE +} + +"""Audit log entry for a team.remove_member event.""" +type TeamRemoveMemberAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & TeamAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the TeamRemoveMemberAuditEntry object""" + id: ID! + """Whether the team was mapped to an LDAP Group.""" + isLdapMapped: Boolean @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The team associated with the action""" + team: Team + """The name of the team""" + teamName: String + """The HTTP path for this team""" + teamResourcePath: URI + """The HTTP URL for this team""" + teamUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""Audit log entry for a team.remove_repository event.""" +type TeamRemoveRepositoryAuditEntry implements AuditEntry & Node & OrganizationAuditEntryData & RepositoryAuditEntryData & TeamAuditEntryData { + """The action name""" + action: String! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The user who initiated the action""" + actor: AuditEntryActor @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The IP address of the actor""" + actorIp: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """A readable representation of the actor's location""" + actorLocation: ActorLocation @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The username of the user who initiated the action""" + actorLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the actor.""" + actorResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the actor.""" + actorUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The time the action was initiated""" + createdAt: PreciseDateTime! @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Node ID of the TeamRemoveRepositoryAuditEntry object""" + id: ID! + """Whether the team was mapped to an LDAP Group.""" + isLdapMapped: Boolean @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The corresponding operation type for the action""" + operationType: OperationType @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The Organization associated with the Audit Entry.""" + organization: Organization @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The name of the Organization.""" + organizationName: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the organization""" + organizationResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the organization""" + organizationUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The repository associated with the action""" + repository: Repository + """The name of the repository""" + repositoryName: String + """The HTTP path for the repository""" + repositoryResourcePath: URI + """The HTTP URL for the repository""" + repositoryUrl: URI + """The team associated with the action""" + team: Team + """The name of the team""" + teamName: String + """The HTTP path for this team""" + teamResourcePath: URI + """The HTTP URL for this team""" + teamUrl: URI + """The user affected by the action""" + user: User @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """ + For actions involving two users, the actor is the initiator and the user is the affected user. + """ + userLogin: String @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP path for the user.""" + userResourcePath: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") + """The HTTP URL for the user.""" + userUrl: URI @deprecated(reason: "The GraphQL audit-log is deprecated. Please use the REST API instead. Removal on 2026-04-01 UTC.") +} + +"""The connection type for Repository.""" +type TeamRepositoryConnection { + """A list of edges.""" + edges: [TeamRepositoryEdge] + """A list of nodes.""" + nodes: [Repository] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""Represents a team repository.""" +type TeamRepositoryEdge { + """A cursor for use in pagination.""" + cursor: String! + node: Repository! + """The permission level the team has on the repository""" + permission: RepositoryPermission! +} + +"""Ordering options for team repository connections""" +input TeamRepositoryOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order repositories by.""" + field: TeamRepositoryOrderField! +} + +"""Properties by which team repository connections can be ordered.""" +enum TeamRepositoryOrderField { + """Order repositories by creation time""" + CREATED_AT + """Order repositories by name""" + NAME + """Order repositories by permission""" + PERMISSION + """Order repositories by push time""" + PUSHED_AT + """Order repositories by number of stargazers""" + STARGAZERS + """Order repositories by update time""" + UPDATED_AT +} + +"""The possible team review assignment algorithms""" +enum TeamReviewAssignmentAlgorithm { + """Balance review load across the entire team""" + LOAD_BALANCE + """Alternate reviews between each team member""" + ROUND_ROBIN +} + +"""The role of a user on a team.""" +enum TeamRole { + """User has admin rights on the team.""" + ADMIN + """User is a member of the team.""" + MEMBER +} + +"""A text match within a search result.""" +type TextMatch { + """The specific text fragment within the property matched on.""" + fragment: String! + """Highlights within the matched fragment.""" + highlights: [TextMatchHighlight!]! + """The property matched on.""" + property: String! +} + +"""Represents a single highlight in a search result match.""" +type TextMatchHighlight { + """The indice in the fragment where the matched text begins.""" + beginIndice: Int! + """The indice in the fragment where the matched text ends.""" + endIndice: Int! + """The text matched.""" + text: String! +} + +"""The possible states of a thread subscription form action""" +enum ThreadSubscriptionFormAction { + """The User cannot subscribe or unsubscribe to the thread""" + NONE + """The User can subscribe to the thread""" + SUBSCRIBE + """The User can unsubscribe to the thread""" + UNSUBSCRIBE +} + +"""The possible states of a subscription.""" +enum ThreadSubscriptionState { + """The subscription status is currently disabled.""" + DISABLED + """The User is never notified because they are ignoring the list""" + IGNORING_LIST + """The User is never notified because they are ignoring the thread""" + IGNORING_THREAD + """The User is not recieving notifications from this thread""" + NONE + """The User is notified becuase they are watching the list""" + SUBSCRIBED_TO_LIST + """The User is notified because they are subscribed to the thread""" + SUBSCRIBED_TO_THREAD + """ + The User is notified because they chose custom settings for this thread. + """ + SUBSCRIBED_TO_THREAD_EVENTS + """ + The User is notified because they chose custom settings for this thread. + """ + SUBSCRIBED_TO_THREAD_TYPE + """The subscription status is currently unavailable.""" + UNAVAILABLE +} + +"""A topic aggregates entities that are related to a subject.""" +type Topic implements Node & Starrable { + """The Node ID of the Topic object""" + id: ID! + """The topic's name.""" + name: String! + """ + A list of related topics, including aliases of this topic, sorted with the most relevant + first. Returns up to 10 Topics. + """ + relatedTopics( + """How many topics to return.""" + first: Int = 3 + ): [Topic!]! + """A list of repositories.""" + repositories( + """ + Array of viewer's affiliation options for repositories returned from the + connection. For example, OWNER will include only repositories that the + current viewer owns. + """ + affiliations: [RepositoryAffiliation] + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """ + If non-null, filters repositories according to whether they have issues enabled + """ + hasIssuesEnabled: Boolean + """ + If non-null, filters repositories according to whether they have been locked + """ + isLocked: Boolean + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for repositories returned from the connection""" + orderBy: RepositoryOrder + """ + Array of owner's affiliation options for repositories returned from the + connection. For example, OWNER will include only repositories that the + organization or user being viewed owns. + """ + ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR] + """ + If non-null, filters repositories according to privacy. Internal + repositories are considered private; consider using the visibility argument + if only internal repositories are needed. Cannot be combined with the + visibility argument. + """ + privacy: RepositoryPrivacy + """ + If true, only repositories whose owner can be sponsored via GitHub Sponsors will be returned. + """ + sponsorableOnly: Boolean = false + """ + If non-null, filters repositories according to visibility. Cannot be combined with the privacy argument. + """ + visibility: RepositoryVisibility + ): RepositoryConnection! + """Returns a count of how many stargazers there are on this object""" + stargazerCount: Int! + """A list of users who have starred this starrable.""" + stargazers( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Order for connection""" + orderBy: StarOrder + ): StargazerConnection! + """ + Returns a boolean indicating whether the viewing user has starred this starrable. + """ + viewerHasStarred: Boolean! +} + +"""Metadata for an audit entry with a topic.""" +interface TopicAuditEntryData { + """The name of the topic added to the repository""" + topic: Topic + """The name of the topic added to the repository""" + topicName: String +} + +"""Reason that the suggested topic is declined.""" +enum TopicSuggestionDeclineReason { + """The suggested topic is not relevant to the repository.""" + NOT_RELEVANT @deprecated(reason: "Suggested topics are no longer supported Removal on 2024-04-01 UTC.") + """The viewer does not like the suggested topic.""" + PERSONAL_PREFERENCE @deprecated(reason: "Suggested topics are no longer supported Removal on 2024-04-01 UTC.") + """The suggested topic is too general for the repository.""" + TOO_GENERAL @deprecated(reason: "Suggested topics are no longer supported Removal on 2024-04-01 UTC.") + """ + The suggested topic is too specific for the repository (e.g. #ruby-on-rails-version-4-2-1). + """ + TOO_SPECIFIC @deprecated(reason: "Suggested topics are no longer supported Removal on 2024-04-01 UTC.") +} + +"""The possible states of a tracked issue.""" +enum TrackedIssueStates { + """The tracked issue is closed""" + CLOSED + """The tracked issue is open""" + OPEN +} + +"""Autogenerated input type of TransferEnterpriseOrganization""" +input TransferEnterpriseOrganizationInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the enterprise where the organization should be transferred.""" + destinationEnterpriseId: ID! + """The ID of the organization to transfer.""" + organizationId: ID! +} + +"""Autogenerated return type of TransferEnterpriseOrganization.""" +type TransferEnterpriseOrganizationPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The organization for which a transfer was initiated.""" + organization: Organization +} + +"""Autogenerated input type of TransferIssue""" +input TransferIssueInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + Whether to create labels if they don't exist in the target repository (matched by name) + """ + createLabelsIfMissing: Boolean = false + """The Node ID of the issue to be transferred""" + issueId: ID! + """The Node ID of the repository the issue should be transferred to""" + repositoryId: ID! +} + +"""Autogenerated return type of TransferIssue.""" +type TransferIssuePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The issue that was transferred""" + issue: Issue +} + +"""Represents a 'transferred' event on a given issue or pull request.""" +type TransferredEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The repository this came from""" + fromRepository: Repository + """The Node ID of the TransferredEvent object""" + id: ID! + """Identifies the issue associated with the event.""" + issue: Issue! +} + +"""Represents a Git tree.""" +type Tree implements GitObject & Node { + """An abbreviated version of the Git object ID""" + abbreviatedOid: String! + """The HTTP path for this Git object""" + commitResourcePath: URI! + """The HTTP URL for this Git object""" + commitUrl: URI! + """A list of tree entries.""" + entries: [TreeEntry!] + """The Node ID of the Tree object""" + id: ID! + """The Git object ID""" + oid: GitObjectID! + """The Repository the Git object belongs to""" + repository: Repository! +} + +"""Represents a Git tree entry.""" +type TreeEntry { + """The extension of the file""" + extension: String + """Whether or not this tree entry is generated""" + isGenerated: Boolean! + """The programming language this file is written in.""" + language: Language + """Number of lines in the file.""" + lineCount: Int + """Entry file mode.""" + mode: Int! + """Entry file name.""" + name: String! + """Entry file name. (Base64-encoded)""" + nameRaw: Base64String! + """Entry file object.""" + object: GitObject + """Entry file Git object ID.""" + oid: GitObjectID! + """The full path of the file.""" + path: String + """The full path of the file. (Base64-encoded)""" + pathRaw: Base64String + """The Repository the tree entry belongs to""" + repository: Repository! + """Entry byte size""" + size: Int! + """ + If the TreeEntry is for a directory occupied by a submodule project, this returns the corresponding submodule + """ + submodule: Submodule + """Entry file type.""" + type: String! +} + +""" +Filters by whether or not 2FA is enabled and if the method configured is considered secure or insecure. +""" +enum TwoFactorCredentialSecurityType { + """No method of two-factor authentication.""" + DISABLED + """ + Has an insecure method of two-factor authentication. GitHub currently defines this as SMS two-factor authentication. + """ + INSECURE + """Has only secure methods of two-factor authentication.""" + SECURE +} + +"""An RFC 3986, RFC 3987, and RFC 6570 (level 4) compliant URI string.""" +scalar URI + +"""Autogenerated input type of UnarchiveProjectV2Item""" +input UnarchiveProjectV2ItemInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the ProjectV2Item to unarchive.""" + itemId: ID! + """The ID of the Project to archive the item from.""" + projectId: ID! +} + +"""Autogenerated return type of UnarchiveProjectV2Item.""" +type UnarchiveProjectV2ItemPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The item unarchived from the project.""" + item: ProjectV2Item +} + +"""Autogenerated input type of UnarchiveRepository""" +input UnarchiveRepositoryInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the repository to unarchive.""" + repositoryId: ID! +} + +"""Autogenerated return type of UnarchiveRepository.""" +type UnarchiveRepositoryPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The repository that was unarchived.""" + repository: Repository +} + +"""Represents an 'unassigned' event on any assignable object.""" +type UnassignedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the assignable associated with the event.""" + assignable: Assignable! + """Identifies the user or mannequin that was unassigned.""" + assignee: Assignee + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the UnassignedEvent object""" + id: ID! + """Identifies the subject (user) who was unassigned.""" + user: User @deprecated(reason: "Assignees can now be mannequins. Use the `assignee` field instead. Removal on 2020-01-01 UTC.") +} + +"""Autogenerated input type of UnfollowOrganization""" +input UnfollowOrganizationInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ID of the organization to unfollow.""" + organizationId: ID! +} + +"""Autogenerated return type of UnfollowOrganization.""" +type UnfollowOrganizationPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The organization that was unfollowed.""" + organization: Organization +} + +"""Autogenerated input type of UnfollowUser""" +input UnfollowUserInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ID of the user to unfollow.""" + userId: ID! +} + +"""Autogenerated return type of UnfollowUser.""" +type UnfollowUserPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The user that was unfollowed.""" + user: User +} + +"""Represents a type that can be retrieved by a URL.""" +interface UniformResourceLocatable { + """The HTML path to this resource.""" + resourcePath: URI! + """The URL to this resource.""" + url: URI! +} + +"""Represents an unknown signature on a Commit or Tag.""" +type UnknownSignature implements GitSignature { + """Email used to sign this object.""" + email: String! + """True if the signature is valid and verified by GitHub.""" + isValid: Boolean! + """ + Payload for GPG signing object. Raw ODB object without the signature header. + """ + payload: String! + """ASCII-armored signature header from object.""" + signature: String! + """GitHub user corresponding to the email signing this commit.""" + signer: User + """ + The state of this signature. `VALID` if signature is valid and verified by + GitHub, otherwise represents reason why signature is considered invalid. + """ + state: GitSignatureState! + """The date the signature was verified, if valid""" + verifiedAt: DateTime + """True if the signature was made with GitHub's signing key.""" + wasSignedByGitHub: Boolean! +} + +"""Represents an 'unlabeled' event on a given issue or pull request.""" +type UnlabeledEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the UnlabeledEvent object""" + id: ID! + """Identifies the label associated with the 'unlabeled' event.""" + label: Label! + """Identifies the `Labelable` associated with the event.""" + labelable: Labelable! +} + +"""Autogenerated input type of UnlinkProjectV2FromRepository""" +input UnlinkProjectV2FromRepositoryInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the project to unlink from the repository.""" + projectId: ID! + """The ID of the repository to unlink from the project.""" + repositoryId: ID! +} + +"""Autogenerated return type of UnlinkProjectV2FromRepository.""" +type UnlinkProjectV2FromRepositoryPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The repository the project is no longer linked to.""" + repository: Repository +} + +"""Autogenerated input type of UnlinkProjectV2FromTeam""" +input UnlinkProjectV2FromTeamInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the project to unlink from the team.""" + projectId: ID! + """The ID of the team to unlink from the project.""" + teamId: ID! +} + +"""Autogenerated return type of UnlinkProjectV2FromTeam.""" +type UnlinkProjectV2FromTeamPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The team the project is unlinked from""" + team: Team +} + +"""Autogenerated input type of UnlinkRepositoryFromProject""" +input UnlinkRepositoryFromProjectInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the Project linked to the Repository.""" + projectId: ID! + """The ID of the Repository linked to the Project.""" + repositoryId: ID! +} + +"""Autogenerated return type of UnlinkRepositoryFromProject.""" +type UnlinkRepositoryFromProjectPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The linked Project.""" + project: Project + """The linked Repository.""" + repository: Repository +} + +"""Autogenerated input type of UnlockLockable""" +input UnlockLockableInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ID of the item to be unlocked.""" + lockableId: ID! +} + +"""Autogenerated return type of UnlockLockable.""" +type UnlockLockablePayload { + """Identifies the actor who performed the event.""" + actor: Actor + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The item that was unlocked.""" + unlockedRecord: Lockable +} + +"""Represents an 'unlocked' event on a given issue or pull request.""" +type UnlockedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the UnlockedEvent object""" + id: ID! + """Object that was unlocked.""" + lockable: Lockable! +} + +"""Autogenerated input type of UnmarkDiscussionCommentAsAnswer""" +input UnmarkDiscussionCommentAsAnswerInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the discussion comment to unmark as an answer.""" + id: ID! +} + +"""Autogenerated return type of UnmarkDiscussionCommentAsAnswer.""" +type UnmarkDiscussionCommentAsAnswerPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The discussion that includes the comment.""" + discussion: Discussion +} + +"""Autogenerated input type of UnmarkFileAsViewed""" +input UnmarkFileAsViewedInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The path of the file to mark as unviewed""" + path: String! + """The Node ID of the pull request.""" + pullRequestId: ID! +} + +"""Autogenerated return type of UnmarkFileAsViewed.""" +type UnmarkFileAsViewedPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated pull request.""" + pullRequest: PullRequest +} + +"""Autogenerated input type of UnmarkIssueAsDuplicate""" +input UnmarkIssueAsDuplicateInput { + """ + ID of the issue or pull request currently considered canonical/authoritative/original. + """ + canonicalId: ID! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ID of the issue or pull request currently marked as a duplicate.""" + duplicateId: ID! +} + +"""Autogenerated return type of UnmarkIssueAsDuplicate.""" +type UnmarkIssueAsDuplicatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The issue or pull request that was marked as a duplicate.""" + duplicate: IssueOrPullRequest +} + +"""Autogenerated input type of UnmarkProjectV2AsTemplate""" +input UnmarkProjectV2AsTemplateInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the Project to unmark as a template.""" + projectId: ID! +} + +"""Autogenerated return type of UnmarkProjectV2AsTemplate.""" +type UnmarkProjectV2AsTemplatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The project.""" + projectV2: ProjectV2 +} + +""" +Represents an 'unmarked_as_duplicate' event on a given issue or pull request. +""" +type UnmarkedAsDuplicateEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """ + The authoritative issue or pull request which has been duplicated by another. + """ + canonical: IssueOrPullRequest + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """ + The issue or pull request which has been marked as a duplicate of another. + """ + duplicate: IssueOrPullRequest + """The Node ID of the UnmarkedAsDuplicateEvent object""" + id: ID! + """Canonical and duplicate belong to different repositories.""" + isCrossRepository: Boolean! +} + +"""Autogenerated input type of UnminimizeComment""" +input UnminimizeCommentInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the subject to modify.""" + subjectId: ID! +} + +"""Autogenerated return type of UnminimizeComment.""" +type UnminimizeCommentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The comment that was unminimized.""" + unminimizedComment: Minimizable +} + +"""Autogenerated input type of UnpinIssue""" +input UnpinIssueInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the issue to be unpinned""" + issueId: ID! +} + +"""Autogenerated return type of UnpinIssue.""" +type UnpinIssuePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The id of the pinned issue that was unpinned""" + id: ID + """The issue that was unpinned""" + issue: Issue +} + +"""Represents an 'unpinned' event on a given issue or pull request.""" +type UnpinnedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the UnpinnedEvent object""" + id: ID! + """Identifies the issue associated with the event.""" + issue: Issue! +} + +"""Autogenerated input type of UnresolveReviewThread""" +input UnresolveReviewThreadInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the thread to unresolve""" + threadId: ID! +} + +"""Autogenerated return type of UnresolveReviewThread.""" +type UnresolveReviewThreadPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The thread to resolve.""" + thread: PullRequestReviewThread +} + +"""Represents an 'unsubscribed' event on a given `Subscribable`.""" +type UnsubscribedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the UnsubscribedEvent object""" + id: ID! + """Object referenced by event.""" + subscribable: Subscribable! +} + +"""Entities that can be updated.""" +interface Updatable { + """Check if the current viewer can update this object.""" + viewerCanUpdate: Boolean! +} + +"""Comments that can be updated.""" +interface UpdatableComment { + """Reasons why the current viewer can not update this comment.""" + viewerCannotUpdateReasons: [CommentCannotUpdateReason!]! +} + +"""Autogenerated input type of UpdateBranchProtectionRule""" +input UpdateBranchProtectionRuleInput { + """Can this branch be deleted.""" + allowsDeletions: Boolean + """Are force pushes allowed on this branch.""" + allowsForcePushes: Boolean + """Is branch creation a protected operation.""" + blocksCreations: Boolean + """The global relay id of the branch protection rule to be updated.""" + branchProtectionRuleId: ID! + """ + A list of User, Team, or App IDs allowed to bypass force push targeting matching branches. + """ + bypassForcePushActorIds: [ID!] + """ + A list of User, Team, or App IDs allowed to bypass pull requests targeting matching branches. + """ + bypassPullRequestActorIds: [ID!] + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + Will new commits pushed to matching branches dismiss pull request review approvals. + """ + dismissesStaleReviews: Boolean + """Can admins override branch protection.""" + isAdminEnforced: Boolean + """ + Whether users can pull changes from upstream when the branch is locked. Set to + `true` to allow fork syncing. Set to `false` to prevent fork syncing. + """ + lockAllowsFetchAndMerge: Boolean + """ + Whether to set the branch as read-only. If this is true, users will not be able to push to the branch. + """ + lockBranch: Boolean + """The glob-like pattern used to determine matching branches.""" + pattern: String + """A list of User, Team, or App IDs allowed to push to matching branches.""" + pushActorIds: [ID!] + """ + Whether the most recent push must be approved by someone other than the person who pushed it + """ + requireLastPushApproval: Boolean + """Number of approving reviews required to update matching branches.""" + requiredApprovingReviewCount: Int + """The list of required deployment environments""" + requiredDeploymentEnvironments: [String!] + """ + List of required status check contexts that must pass for commits to be accepted to matching branches. + """ + requiredStatusCheckContexts: [String!] + """The list of required status checks""" + requiredStatusChecks: [RequiredStatusCheckInput!] + """Are approving reviews required to update matching branches.""" + requiresApprovingReviews: Boolean + """Are reviews from code owners required to update matching branches.""" + requiresCodeOwnerReviews: Boolean + """Are commits required to be signed.""" + requiresCommitSignatures: Boolean + """Are conversations required to be resolved before merging.""" + requiresConversationResolution: Boolean + """Are successful deployments required before merging.""" + requiresDeployments: Boolean + """Are merge commits prohibited from being pushed to this branch.""" + requiresLinearHistory: Boolean + """Are status checks required to update matching branches.""" + requiresStatusChecks: Boolean + """Are branches required to be up to date before merging.""" + requiresStrictStatusChecks: Boolean + """Is pushing to matching branches restricted.""" + restrictsPushes: Boolean + """Is dismissal of pull request reviews restricted.""" + restrictsReviewDismissals: Boolean + """ + A list of User, Team, or App IDs allowed to dismiss reviews on pull requests targeting matching branches. + """ + reviewDismissalActorIds: [ID!] +} + +"""Autogenerated return type of UpdateBranchProtectionRule.""" +type UpdateBranchProtectionRulePayload { + """The newly created BranchProtectionRule.""" + branchProtectionRule: BranchProtectionRule + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated input type of UpdateCheckRun""" +input UpdateCheckRunInput { + """ + Possible further actions the integrator can perform, which a user may trigger. + """ + actions: [CheckRunAction!] + """The node of the check.""" + checkRunId: ID! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The time that the check run finished.""" + completedAt: DateTime + """The final conclusion of the check.""" + conclusion: CheckConclusionState + """ + The URL of the integrator's site that has the full details of the check. + """ + detailsUrl: URI + """A reference for the run on the integrator's system.""" + externalId: String + """The name of the check.""" + name: String + """Descriptive details about the run.""" + output: CheckRunOutput + """The node ID of the repository.""" + repositoryId: ID! + """The time that the check run began.""" + startedAt: DateTime + """The current status.""" + status: RequestableCheckStatusState +} + +"""Autogenerated return type of UpdateCheckRun.""" +type UpdateCheckRunPayload { + """The updated check run.""" + checkRun: CheckRun + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated input type of UpdateCheckSuitePreferences""" +input UpdateCheckSuitePreferencesInput { + """The check suite preferences to modify.""" + autoTriggerPreferences: [CheckSuiteAutoTriggerPreference!]! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the repository.""" + repositoryId: ID! +} + +"""Autogenerated return type of UpdateCheckSuitePreferences.""" +type UpdateCheckSuitePreferencesPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated repository.""" + repository: Repository +} + +"""Autogenerated input type of UpdateDiscussionComment""" +input UpdateDiscussionCommentInput { + """The new contents of the comment body.""" + body: String! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the discussion comment to update.""" + commentId: ID! +} + +"""Autogenerated return type of UpdateDiscussionComment.""" +type UpdateDiscussionCommentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The modified discussion comment.""" + comment: DiscussionComment +} + +"""Autogenerated input type of UpdateDiscussion""" +input UpdateDiscussionInput { + """The new contents of the discussion body.""" + body: String + """ + The Node ID of a discussion category within the same repository to change this discussion to. + """ + categoryId: ID + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the discussion to update.""" + discussionId: ID! + """The new discussion title.""" + title: String +} + +"""Autogenerated return type of UpdateDiscussion.""" +type UpdateDiscussionPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The modified discussion.""" + discussion: Discussion +} + +"""Autogenerated input type of UpdateEnterpriseAdministratorRole""" +input UpdateEnterpriseAdministratorRoleInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the Enterprise which the admin belongs to.""" + enterpriseId: ID! + """The login of a administrator whose role is being changed.""" + login: String! + """The new role for the Enterprise administrator.""" + role: EnterpriseAdministratorRole! +} + +"""Autogenerated return type of UpdateEnterpriseAdministratorRole.""" +type UpdateEnterpriseAdministratorRolePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """A message confirming the result of changing the administrator's role.""" + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseAllowPrivateRepositoryForkingSetting +""" +input UpdateEnterpriseAllowPrivateRepositoryForkingSettingInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The ID of the enterprise on which to set the allow private repository forking setting. + """ + enterpriseId: ID! + """ + The value for the allow private repository forking policy on the enterprise. + """ + policyValue: EnterpriseAllowPrivateRepositoryForkingPolicyValue + """ + The value for the allow private repository forking setting on the enterprise. + """ + settingValue: EnterpriseEnabledDisabledSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseAllowPrivateRepositoryForkingSetting. +""" +type UpdateEnterpriseAllowPrivateRepositoryForkingSettingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The enterprise with the updated allow private repository forking setting. + """ + enterprise: Enterprise + """ + A message confirming the result of updating the allow private repository forking setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseDefaultRepositoryPermissionSetting +""" +input UpdateEnterpriseDefaultRepositoryPermissionSettingInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The ID of the enterprise on which to set the base repository permission setting. + """ + enterpriseId: ID! + """ + The value for the base repository permission setting on the enterprise. + """ + settingValue: EnterpriseDefaultRepositoryPermissionSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseDefaultRepositoryPermissionSetting. +""" +type UpdateEnterpriseDefaultRepositoryPermissionSettingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The enterprise with the updated base repository permission setting.""" + enterprise: Enterprise + """ + A message confirming the result of updating the base repository permission setting. + """ + message: String +} + +"""Autogenerated input type of UpdateEnterpriseDeployKeySetting""" +input UpdateEnterpriseDeployKeySettingInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the enterprise on which to set the deploy key setting.""" + enterpriseId: ID! + """The value for the deploy key setting on the enterprise.""" + settingValue: EnterpriseEnabledDisabledSettingValue! +} + +"""Autogenerated return type of UpdateEnterpriseDeployKeySetting.""" +type UpdateEnterpriseDeployKeySettingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The enterprise with the updated deploy key setting.""" + enterprise: Enterprise + """A message confirming the result of updating the deploy key setting.""" + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseMembersCanChangeRepositoryVisibilitySetting +""" +input UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The ID of the enterprise on which to set the members can change repository visibility setting. + """ + enterpriseId: ID! + """ + The value for the members can change repository visibility setting on the enterprise. + """ + settingValue: EnterpriseEnabledDisabledSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseMembersCanChangeRepositoryVisibilitySetting. +""" +type UpdateEnterpriseMembersCanChangeRepositoryVisibilitySettingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The enterprise with the updated members can change repository visibility setting. + """ + enterprise: Enterprise + """ + A message confirming the result of updating the members can change repository visibility setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseMembersCanCreateRepositoriesSetting +""" +input UpdateEnterpriseMembersCanCreateRepositoriesSettingInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The ID of the enterprise on which to set the members can create repositories setting. + """ + enterpriseId: ID! + """ + Allow members to create internal repositories. Defaults to current value. + """ + membersCanCreateInternalRepositories: Boolean + """ + Allow members to create private repositories. Defaults to current value. + """ + membersCanCreatePrivateRepositories: Boolean + """ + Allow members to create public repositories. Defaults to current value. + """ + membersCanCreatePublicRepositories: Boolean + """ + When false, allow member organizations to set their own repository creation member privileges. + """ + membersCanCreateRepositoriesPolicyEnabled: Boolean + """ + Value for the members can create repositories setting on the enterprise. This + or the granular public/private/internal allowed fields (but not both) must be provided. + """ + settingValue: EnterpriseMembersCanCreateRepositoriesSettingValue +} + +""" +Autogenerated return type of UpdateEnterpriseMembersCanCreateRepositoriesSetting. +""" +type UpdateEnterpriseMembersCanCreateRepositoriesSettingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The enterprise with the updated members can create repositories setting. + """ + enterprise: Enterprise + """ + A message confirming the result of updating the members can create repositories setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseMembersCanDeleteIssuesSetting +""" +input UpdateEnterpriseMembersCanDeleteIssuesSettingInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The ID of the enterprise on which to set the members can delete issues setting. + """ + enterpriseId: ID! + """The value for the members can delete issues setting on the enterprise.""" + settingValue: EnterpriseEnabledDisabledSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseMembersCanDeleteIssuesSetting. +""" +type UpdateEnterpriseMembersCanDeleteIssuesSettingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The enterprise with the updated members can delete issues setting.""" + enterprise: Enterprise + """ + A message confirming the result of updating the members can delete issues setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseMembersCanDeleteRepositoriesSetting +""" +input UpdateEnterpriseMembersCanDeleteRepositoriesSettingInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The ID of the enterprise on which to set the members can delete repositories setting. + """ + enterpriseId: ID! + """ + The value for the members can delete repositories setting on the enterprise. + """ + settingValue: EnterpriseEnabledDisabledSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseMembersCanDeleteRepositoriesSetting. +""" +type UpdateEnterpriseMembersCanDeleteRepositoriesSettingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The enterprise with the updated members can delete repositories setting. + """ + enterprise: Enterprise + """ + A message confirming the result of updating the members can delete repositories setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseMembersCanInviteCollaboratorsSetting +""" +input UpdateEnterpriseMembersCanInviteCollaboratorsSettingInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The ID of the enterprise on which to set the members can invite collaborators setting. + """ + enterpriseId: ID! + """ + The value for the members can invite collaborators setting on the enterprise. + """ + settingValue: EnterpriseEnabledDisabledSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseMembersCanInviteCollaboratorsSetting. +""" +type UpdateEnterpriseMembersCanInviteCollaboratorsSettingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The enterprise with the updated members can invite collaborators setting. + """ + enterprise: Enterprise + """ + A message confirming the result of updating the members can invite collaborators setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseMembersCanMakePurchasesSetting +""" +input UpdateEnterpriseMembersCanMakePurchasesSettingInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The ID of the enterprise on which to set the members can make purchases setting. + """ + enterpriseId: ID! + """ + The value for the members can make purchases setting on the enterprise. + """ + settingValue: EnterpriseMembersCanMakePurchasesSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseMembersCanMakePurchasesSetting. +""" +type UpdateEnterpriseMembersCanMakePurchasesSettingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The enterprise with the updated members can make purchases setting.""" + enterprise: Enterprise + """ + A message confirming the result of updating the members can make purchases setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseMembersCanUpdateProtectedBranchesSetting +""" +input UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The ID of the enterprise on which to set the members can update protected branches setting. + """ + enterpriseId: ID! + """ + The value for the members can update protected branches setting on the enterprise. + """ + settingValue: EnterpriseEnabledDisabledSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseMembersCanUpdateProtectedBranchesSetting. +""" +type UpdateEnterpriseMembersCanUpdateProtectedBranchesSettingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The enterprise with the updated members can update protected branches setting. + """ + enterprise: Enterprise + """ + A message confirming the result of updating the members can update protected branches setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseMembersCanViewDependencyInsightsSetting +""" +input UpdateEnterpriseMembersCanViewDependencyInsightsSettingInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The ID of the enterprise on which to set the members can view dependency insights setting. + """ + enterpriseId: ID! + """ + The value for the members can view dependency insights setting on the enterprise. + """ + settingValue: EnterpriseEnabledDisabledSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseMembersCanViewDependencyInsightsSetting. +""" +type UpdateEnterpriseMembersCanViewDependencyInsightsSettingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The enterprise with the updated members can view dependency insights setting. + """ + enterprise: Enterprise + """ + A message confirming the result of updating the members can view dependency insights setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseOrganizationProjectsSetting +""" +input UpdateEnterpriseOrganizationProjectsSettingInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The ID of the enterprise on which to set the organization projects setting. + """ + enterpriseId: ID! + """The value for the organization projects setting on the enterprise.""" + settingValue: EnterpriseEnabledDisabledSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseOrganizationProjectsSetting. +""" +type UpdateEnterpriseOrganizationProjectsSettingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The enterprise with the updated organization projects setting.""" + enterprise: Enterprise + """ + A message confirming the result of updating the organization projects setting. + """ + message: String +} + +"""Autogenerated input type of UpdateEnterpriseOwnerOrganizationRole""" +input UpdateEnterpriseOwnerOrganizationRoleInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the Enterprise which the owner belongs to.""" + enterpriseId: ID! + """The ID of the organization for membership change.""" + organizationId: ID! + """The role to assume in the organization.""" + organizationRole: RoleInOrganization! +} + +"""Autogenerated return type of UpdateEnterpriseOwnerOrganizationRole.""" +type UpdateEnterpriseOwnerOrganizationRolePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + A message confirming the result of changing the owner's organization role. + """ + message: String +} + +"""Autogenerated input type of UpdateEnterpriseProfile""" +input UpdateEnterpriseProfileInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The description of the enterprise.""" + description: String + """The Enterprise ID to update.""" + enterpriseId: ID! + """The location of the enterprise.""" + location: String + """The name of the enterprise.""" + name: String + """The URL of the enterprise's website.""" + websiteUrl: String +} + +"""Autogenerated return type of UpdateEnterpriseProfile.""" +type UpdateEnterpriseProfilePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated enterprise.""" + enterprise: Enterprise +} + +"""Autogenerated input type of UpdateEnterpriseRepositoryProjectsSetting""" +input UpdateEnterpriseRepositoryProjectsSettingInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The ID of the enterprise on which to set the repository projects setting. + """ + enterpriseId: ID! + """The value for the repository projects setting on the enterprise.""" + settingValue: EnterpriseEnabledDisabledSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseRepositoryProjectsSetting. +""" +type UpdateEnterpriseRepositoryProjectsSettingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The enterprise with the updated repository projects setting.""" + enterprise: Enterprise + """ + A message confirming the result of updating the repository projects setting. + """ + message: String +} + +"""Autogenerated input type of UpdateEnterpriseTeamDiscussionsSetting""" +input UpdateEnterpriseTeamDiscussionsSettingInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the enterprise on which to set the team discussions setting.""" + enterpriseId: ID! + """The value for the team discussions setting on the enterprise.""" + settingValue: EnterpriseEnabledDisabledSettingValue! +} + +"""Autogenerated return type of UpdateEnterpriseTeamDiscussionsSetting.""" +type UpdateEnterpriseTeamDiscussionsSettingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The enterprise with the updated team discussions setting.""" + enterprise: Enterprise + """ + A message confirming the result of updating the team discussions setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseTwoFactorAuthenticationDisallowedMethodsSetting +""" +input UpdateEnterpriseTwoFactorAuthenticationDisallowedMethodsSettingInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The ID of the enterprise on which to set the two-factor authentication disallowed methods setting. + """ + enterpriseId: ID! + """ + The value for the two-factor authentication disallowed methods setting on the enterprise. + """ + settingValue: EnterpriseDisallowedMethodsSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseTwoFactorAuthenticationDisallowedMethodsSetting. +""" +type UpdateEnterpriseTwoFactorAuthenticationDisallowedMethodsSettingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The enterprise with the updated two-factor authentication disallowed methods setting. + """ + enterprise: Enterprise + """ + A message confirming the result of updating the two-factor authentication disallowed methods setting. + """ + message: String +} + +""" +Autogenerated input type of UpdateEnterpriseTwoFactorAuthenticationRequiredSetting +""" +input UpdateEnterpriseTwoFactorAuthenticationRequiredSettingInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The ID of the enterprise on which to set the two factor authentication required setting. + """ + enterpriseId: ID! + """ + The value for the two factor authentication required setting on the enterprise. + """ + settingValue: EnterpriseEnabledSettingValue! +} + +""" +Autogenerated return type of UpdateEnterpriseTwoFactorAuthenticationRequiredSetting. +""" +type UpdateEnterpriseTwoFactorAuthenticationRequiredSettingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The enterprise with the updated two factor authentication required setting. + """ + enterprise: Enterprise + """ + A message confirming the result of updating the two factor authentication required setting. + """ + message: String +} + +"""Autogenerated input type of UpdateEnvironment""" +input UpdateEnvironmentInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The node ID of the environment.""" + environmentId: ID! + """ + Whether deployments to this environment can be approved by the user who created the deployment. + """ + preventSelfReview: Boolean + """ + The ids of users or teams that can approve deployments to this environment + """ + reviewers: [ID!] + """The wait timer in minutes.""" + waitTimer: Int +} + +"""Autogenerated return type of UpdateEnvironment.""" +type UpdateEnvironmentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated environment.""" + environment: Environment +} + +"""Autogenerated input type of UpdateIpAllowListEnabledSetting""" +input UpdateIpAllowListEnabledSettingInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the owner on which to set the IP allow list enabled setting.""" + ownerId: ID! + """The value for the IP allow list enabled setting.""" + settingValue: IpAllowListEnabledSettingValue! +} + +"""Autogenerated return type of UpdateIpAllowListEnabledSetting.""" +type UpdateIpAllowListEnabledSettingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The IP allow list owner on which the setting was updated.""" + owner: IpAllowListOwner +} + +"""Autogenerated input type of UpdateIpAllowListEntry""" +input UpdateIpAllowListEntryInput { + """An IP address or range of addresses in CIDR notation.""" + allowListValue: String! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the IP allow list entry to update.""" + ipAllowListEntryId: ID! + """ + Whether the IP allow list entry is active when an IP allow list is enabled. + """ + isActive: Boolean! + """An optional name for the IP allow list entry.""" + name: String +} + +"""Autogenerated return type of UpdateIpAllowListEntry.""" +type UpdateIpAllowListEntryPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The IP allow list entry that was updated.""" + ipAllowListEntry: IpAllowListEntry +} + +""" +Autogenerated input type of UpdateIpAllowListForInstalledAppsEnabledSetting +""" +input UpdateIpAllowListForInstalledAppsEnabledSettingInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the owner.""" + ownerId: ID! + """ + The value for the IP allow list configuration for installed GitHub Apps setting. + """ + settingValue: IpAllowListForInstalledAppsEnabledSettingValue! +} + +""" +Autogenerated return type of UpdateIpAllowListForInstalledAppsEnabledSetting. +""" +type UpdateIpAllowListForInstalledAppsEnabledSettingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The IP allow list owner on which the setting was updated.""" + owner: IpAllowListOwner +} + +"""Autogenerated input type of UpdateIssueComment""" +input UpdateIssueCommentInput { + """The updated text of the comment.""" + body: String! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the IssueComment to modify.""" + id: ID! +} + +"""Autogenerated return type of UpdateIssueComment.""" +type UpdateIssueCommentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated comment.""" + issueComment: IssueComment +} + +"""Autogenerated input type of UpdateIssue""" +input UpdateIssueInput { + """An array of Node IDs of users for this issue.""" + assigneeIds: [ID!] + """The body for the issue description.""" + body: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the Issue to modify.""" + id: ID! + """The ID of the Issue Type for this issue.""" + issueTypeId: ID + """An array of Node IDs of labels for this issue.""" + labelIds: [ID!] + """The Node ID of the milestone for this issue.""" + milestoneId: ID + """An array of Node IDs for projects associated with this issue.""" + projectIds: [ID!] + """The desired issue state.""" + state: IssueState + """The title for the issue.""" + title: String +} + +"""Autogenerated input type of UpdateIssueIssueType""" +input UpdateIssueIssueTypeInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the issue to update""" + issueId: ID! + """The ID of the issue type to update on the issue""" + issueTypeId: ID +} + +"""Autogenerated return type of UpdateIssueIssueType.""" +type UpdateIssueIssueTypePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated issue""" + issue: Issue +} + +"""Autogenerated return type of UpdateIssue.""" +type UpdateIssuePayload { + """Identifies the actor who performed the event.""" + actor: Actor + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The issue.""" + issue: Issue +} + +"""Autogenerated input type of UpdateIssueType""" +input UpdateIssueTypeInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """Color for the issue type""" + color: IssueTypeColor + """The description of the issue type""" + description: String + """Whether or not the issue type is enabled for the organization""" + isEnabled: Boolean + """The ID of the issue type to update""" + issueTypeId: ID! + """The name of the issue type""" + name: String +} + +"""Autogenerated return type of UpdateIssueType.""" +type UpdateIssueTypePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated issue type""" + issueType: IssueType +} + +"""Autogenerated input type of UpdateLabel""" +input UpdateLabelInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + A 6 character hex code, without the leading #, identifying the updated color of the label. + """ + color: String + """A brief description of the label, such as its purpose.""" + description: String + """The Node ID of the label to be updated.""" + id: ID! + """The updated name of the label.""" + name: String +} + +"""Autogenerated return type of UpdateLabel.""" +type UpdateLabelPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated label.""" + label: Label +} + +"""Autogenerated input type of UpdateNotificationRestrictionSetting""" +input UpdateNotificationRestrictionSettingInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The ID of the owner on which to set the restrict notifications setting. + """ + ownerId: ID! + """The value for the restrict notifications setting.""" + settingValue: NotificationRestrictionSettingValue! +} + +"""Autogenerated return type of UpdateNotificationRestrictionSetting.""" +type UpdateNotificationRestrictionSettingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The owner on which the setting was updated.""" + owner: VerifiableDomainOwner +} + +""" +Autogenerated input type of UpdateOrganizationAllowPrivateRepositoryForkingSetting +""" +input UpdateOrganizationAllowPrivateRepositoryForkingSettingInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """Enable forking of private repositories in the organization?""" + forkingEnabled: Boolean! + """ + The ID of the organization on which to set the allow private repository forking setting. + """ + organizationId: ID! +} + +""" +Autogenerated return type of UpdateOrganizationAllowPrivateRepositoryForkingSetting. +""" +type UpdateOrganizationAllowPrivateRepositoryForkingSettingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + A message confirming the result of updating the allow private repository forking setting. + """ + message: String + """ + The organization with the updated allow private repository forking setting. + """ + organization: Organization +} + +"""Autogenerated input type of UpdateOrganizationWebCommitSignoffSetting""" +input UpdateOrganizationWebCommitSignoffSettingInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + The ID of the organization on which to set the web commit signoff setting. + """ + organizationId: ID! + """ + Enable signoff on web-based commits for repositories in the organization? + """ + webCommitSignoffRequired: Boolean! +} + +""" +Autogenerated return type of UpdateOrganizationWebCommitSignoffSetting. +""" +type UpdateOrganizationWebCommitSignoffSettingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + A message confirming the result of updating the web commit signoff setting. + """ + message: String + """The organization with the updated web commit signoff setting.""" + organization: Organization +} + +"""Only allow users with bypass permission to update matching refs.""" +type UpdateParameters { + """Branch can pull changes from its upstream repository""" + updateAllowsFetchAndMerge: Boolean! +} + +"""Only allow users with bypass permission to update matching refs.""" +input UpdateParametersInput { + """Branch can pull changes from its upstream repository""" + updateAllowsFetchAndMerge: Boolean! +} + +"""Autogenerated input type of UpdatePatreonSponsorability""" +input UpdatePatreonSponsorabilityInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + Whether Patreon tiers should be shown on the GitHub Sponsors profile page, + allowing potential sponsors to make their payment through Patreon instead of GitHub. + """ + enablePatreonSponsorships: Boolean! + """ + The username of the organization with the GitHub Sponsors profile, if any. + Defaults to the GitHub Sponsors profile for the authenticated user if omitted. + """ + sponsorableLogin: String +} + +"""Autogenerated return type of UpdatePatreonSponsorability.""" +type UpdatePatreonSponsorabilityPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The GitHub Sponsors profile.""" + sponsorsListing: SponsorsListing +} + +"""Autogenerated input type of UpdateProjectCard""" +input UpdateProjectCardInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """Whether or not the ProjectCard should be archived""" + isArchived: Boolean + """The note of ProjectCard.""" + note: String + """The ProjectCard ID to update.""" + projectCardId: ID! +} + +"""Autogenerated return type of UpdateProjectCard.""" +type UpdateProjectCardPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated ProjectCard.""" + projectCard: ProjectCard +} + +"""Autogenerated input type of UpdateProjectColumn""" +input UpdateProjectColumnInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The name of project column.""" + name: String! + """The ProjectColumn ID to update.""" + projectColumnId: ID! +} + +"""Autogenerated return type of UpdateProjectColumn.""" +type UpdateProjectColumnPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated project column.""" + projectColumn: ProjectColumn +} + +"""Autogenerated input type of UpdateProject""" +input UpdateProjectInput { + """The description of project.""" + body: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The name of project.""" + name: String + """The Project ID to update.""" + projectId: ID! + """Whether the project is public or not.""" + public: Boolean + """Whether the project is open or closed.""" + state: ProjectState +} + +"""Autogenerated return type of UpdateProject.""" +type UpdateProjectPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated project.""" + project: Project +} + +"""Autogenerated input type of UpdateProjectV2Collaborators""" +input UpdateProjectV2CollaboratorsInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The collaborators to update.""" + collaborators: [ProjectV2Collaborator!]! + """The ID of the project to update the collaborators for.""" + projectId: ID! +} + +"""Autogenerated return type of UpdateProjectV2Collaborators.""" +type UpdateProjectV2CollaboratorsPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The collaborators granted a role""" + collaborators( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectV2ActorConnection +} + +"""Autogenerated input type of UpdateProjectV2DraftIssue""" +input UpdateProjectV2DraftIssueInput { + """The IDs of the assignees of the draft issue.""" + assigneeIds: [ID!] + """The body of the draft issue.""" + body: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the draft issue to update.""" + draftIssueId: ID! + """The title of the draft issue.""" + title: String +} + +"""Autogenerated return type of UpdateProjectV2DraftIssue.""" +type UpdateProjectV2DraftIssuePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The draft issue updated in the project.""" + draftIssue: DraftIssue +} + +"""Autogenerated input type of UpdateProjectV2Field""" +input UpdateProjectV2FieldInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the field to update.""" + fieldId: ID! + """Configuration for an iteration field.""" + iterationConfiguration: ProjectV2IterationFieldConfigurationInput + """The name to update.""" + name: String + """ + Options for a field of type SINGLE_SELECT. If empty, no changes will be made + to the options. If values are present, they will overwrite the existing + options for the field. + """ + singleSelectOptions: [ProjectV2SingleSelectFieldOptionInput!] +} + +"""Autogenerated return type of UpdateProjectV2Field.""" +type UpdateProjectV2FieldPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated field.""" + projectV2Field: ProjectV2FieldConfiguration +} + +"""Autogenerated input type of UpdateProjectV2""" +input UpdateProjectV2Input { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """Set the project to closed or open.""" + closed: Boolean + """The ID of the Project to update.""" + projectId: ID! + """Set the project to public or private.""" + public: Boolean + """Set the readme description of the project.""" + readme: String + """Set the short description of the project.""" + shortDescription: String + """Set the title of the project.""" + title: String +} + +"""Autogenerated input type of UpdateProjectV2ItemFieldValue""" +input UpdateProjectV2ItemFieldValueInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the field to be updated.""" + fieldId: ID! + """The ID of the item to be updated.""" + itemId: ID! + """The ID of the Project.""" + projectId: ID! + """The value which will be set on the field.""" + value: ProjectV2FieldValue! +} + +"""Autogenerated return type of UpdateProjectV2ItemFieldValue.""" +type UpdateProjectV2ItemFieldValuePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated item.""" + projectV2Item: ProjectV2Item +} + +"""Autogenerated input type of UpdateProjectV2ItemPosition""" +input UpdateProjectV2ItemPositionInput { + """ + The ID of the item to position this item after. If omitted or set to null the item will be moved to top. + """ + afterId: ID + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the item to be moved.""" + itemId: ID! + """The ID of the Project.""" + projectId: ID! +} + +"""Autogenerated return type of UpdateProjectV2ItemPosition.""" +type UpdateProjectV2ItemPositionPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The items in the new order""" + items( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectV2ItemConnection +} + +"""Autogenerated return type of UpdateProjectV2.""" +type UpdateProjectV2Payload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated Project.""" + projectV2: ProjectV2 +} + +"""Autogenerated input type of UpdateProjectV2StatusUpdate""" +input UpdateProjectV2StatusUpdateInput { + """The body of the status update.""" + body: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The start date of the status update.""" + startDate: Date + """The status of the status update.""" + status: ProjectV2StatusUpdateStatus + """The ID of the status update to be updated.""" + statusUpdateId: ID! + """The target date of the status update.""" + targetDate: Date +} + +"""Autogenerated return type of UpdateProjectV2StatusUpdate.""" +type UpdateProjectV2StatusUpdatePayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The status update updated in the project.""" + statusUpdate: ProjectV2StatusUpdate +} + +"""Autogenerated input type of UpdatePullRequestBranch""" +input UpdatePullRequestBranchInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The head ref oid for the upstream branch.""" + expectedHeadOid: GitObjectID + """The Node ID of the pull request.""" + pullRequestId: ID! + """The update branch method to use. If omitted, defaults to 'MERGE'""" + updateMethod: PullRequestBranchUpdateMethod +} + +"""Autogenerated return type of UpdatePullRequestBranch.""" +type UpdatePullRequestBranchPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated pull request.""" + pullRequest: PullRequest +} + +"""Autogenerated input type of UpdatePullRequest""" +input UpdatePullRequestInput { + """An array of Node IDs of users for this pull request.""" + assigneeIds: [ID!] + """ + The name of the branch you want your changes pulled into. This should be an existing branch + on the current repository. + """ + baseRefName: String + """The contents of the pull request.""" + body: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """An array of Node IDs of labels for this pull request.""" + labelIds: [ID!] + """Indicates whether maintainers can modify the pull request.""" + maintainerCanModify: Boolean + """The Node ID of the milestone for this pull request.""" + milestoneId: ID + """An array of Node IDs for projects associated with this pull request.""" + projectIds: [ID!] + """The Node ID of the pull request.""" + pullRequestId: ID! + """The target state of the pull request.""" + state: PullRequestUpdateState + """The title of the pull request.""" + title: String +} + +"""Autogenerated return type of UpdatePullRequest.""" +type UpdatePullRequestPayload { + """Identifies the actor who performed the event.""" + actor: Actor + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated pull request.""" + pullRequest: PullRequest +} + +"""Autogenerated input type of UpdatePullRequestReviewComment""" +input UpdatePullRequestReviewCommentInput { + """The text of the comment.""" + body: String! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the comment to modify.""" + pullRequestReviewCommentId: ID! +} + +"""Autogenerated return type of UpdatePullRequestReviewComment.""" +type UpdatePullRequestReviewCommentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated comment.""" + pullRequestReviewComment: PullRequestReviewComment +} + +"""Autogenerated input type of UpdatePullRequestReview""" +input UpdatePullRequestReviewInput { + """The contents of the pull request review body.""" + body: String! + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the pull request review to modify.""" + pullRequestReviewId: ID! +} + +"""Autogenerated return type of UpdatePullRequestReview.""" +type UpdatePullRequestReviewPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated pull request review.""" + pullRequestReview: PullRequestReview +} + +"""Autogenerated input type of UpdateRef""" +input UpdateRefInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """Permit updates of branch Refs that are not fast-forwards?""" + force: Boolean = false + """The GitObjectID that the Ref shall be updated to target.""" + oid: GitObjectID! + """The Node ID of the Ref to be updated.""" + refId: ID! +} + +"""Autogenerated return type of UpdateRef.""" +type UpdateRefPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated Ref.""" + ref: Ref +} + +"""Autogenerated input type of UpdateRefs""" +input UpdateRefsInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """A list of ref updates.""" + refUpdates: [RefUpdate!]! + """The Node ID of the repository.""" + repositoryId: ID! +} + +"""Autogenerated return type of UpdateRefs.""" +type UpdateRefsPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String +} + +"""Autogenerated input type of UpdateRepository""" +input UpdateRepositoryInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + A new description for the repository. Pass an empty string to erase the existing description. + """ + description: String + """ + Indicates if the repository should have the discussions feature enabled. + """ + hasDiscussionsEnabled: Boolean + """Indicates if the repository should have the issues feature enabled.""" + hasIssuesEnabled: Boolean + """ + Indicates if the repository should have the project boards feature enabled. + """ + hasProjectsEnabled: Boolean + """ + Indicates if the repository displays a Sponsor button for financial contributions. + """ + hasSponsorshipsEnabled: Boolean + """Indicates if the repository should have the wiki feature enabled.""" + hasWikiEnabled: Boolean + """ + The URL for a web page about this repository. Pass an empty string to erase the existing URL. + """ + homepageUrl: URI + """The new name of the repository.""" + name: String + """The ID of the repository to update.""" + repositoryId: ID! + """ + Whether this repository should be marked as a template such that anyone who + can access it can create new repositories with the same files and directory structure. + """ + template: Boolean +} + +"""Autogenerated return type of UpdateRepository.""" +type UpdateRepositoryPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated repository.""" + repository: Repository +} + +"""Autogenerated input type of UpdateRepositoryRuleset""" +input UpdateRepositoryRulesetInput { + """A list of actors that are allowed to bypass rules in this ruleset.""" + bypassActors: [RepositoryRulesetBypassActorInput!] + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The list of conditions for this ruleset""" + conditions: RepositoryRuleConditionsInput + """The enforcement level for this ruleset""" + enforcement: RuleEnforcement + """The name of the ruleset.""" + name: String + """The global relay id of the repository ruleset to be updated.""" + repositoryRulesetId: ID! + """The list of rules for this ruleset""" + rules: [RepositoryRuleInput!] + """The target of the ruleset.""" + target: RepositoryRulesetTarget +} + +"""Autogenerated return type of UpdateRepositoryRuleset.""" +type UpdateRepositoryRulesetPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The newly created Ruleset.""" + ruleset: RepositoryRuleset +} + +"""Autogenerated input type of UpdateRepositoryWebCommitSignoffSetting""" +input UpdateRepositoryWebCommitSignoffSettingInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the repository to update.""" + repositoryId: ID! + """ + Indicates if the repository should require signoff on web-based commits. + """ + webCommitSignoffRequired: Boolean! +} + +"""Autogenerated return type of UpdateRepositoryWebCommitSignoffSetting.""" +type UpdateRepositoryWebCommitSignoffSettingPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + A message confirming the result of updating the web commit signoff setting. + """ + message: String + """The updated repository.""" + repository: Repository +} + +"""Autogenerated input type of UpdateSponsorshipPreferences""" +input UpdateSponsorshipPreferencesInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + Specify whether others should be able to see that the sponsor is sponsoring + the sponsorable. Public visibility still does not reveal which tier is used. + """ + privacyLevel: SponsorshipPrivacy = PUBLIC + """Whether the sponsor should receive email updates from the sponsorable.""" + receiveEmails: Boolean = true + """ + The ID of the user or organization who is acting as the sponsor, paying for + the sponsorship. Required if sponsorLogin is not given. + """ + sponsorId: ID + """ + The username of the user or organization who is acting as the sponsor, paying + for the sponsorship. Required if sponsorId is not given. + """ + sponsorLogin: String + """ + The ID of the user or organization who is receiving the sponsorship. Required if sponsorableLogin is not given. + """ + sponsorableId: ID + """ + The username of the user or organization who is receiving the sponsorship. Required if sponsorableId is not given. + """ + sponsorableLogin: String +} + +"""Autogenerated return type of UpdateSponsorshipPreferences.""" +type UpdateSponsorshipPreferencesPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The sponsorship that was updated.""" + sponsorship: Sponsorship +} + +"""Autogenerated input type of UpdateSubscription""" +input UpdateSubscriptionInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The new state of the subscription.""" + state: SubscriptionState! + """The Node ID of the subscribable object to modify.""" + subscribableId: ID! +} + +"""Autogenerated return type of UpdateSubscription.""" +type UpdateSubscriptionPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The input subscribable entity.""" + subscribable: Subscribable +} + +"""Autogenerated input type of UpdateTeamDiscussionComment""" +input UpdateTeamDiscussionCommentInput { + """The updated text of the comment.""" + body: String! + """The current version of the body content.""" + bodyVersion: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the comment to modify.""" + id: ID! +} + +"""Autogenerated return type of UpdateTeamDiscussionComment.""" +type UpdateTeamDiscussionCommentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated comment.""" + teamDiscussionComment: TeamDiscussionComment +} + +"""Autogenerated input type of UpdateTeamDiscussion""" +input UpdateTeamDiscussionInput { + """The updated text of the discussion.""" + body: String + """ + The current version of the body content. If provided, this update operation + will be rejected if the given version does not match the latest version on the server. + """ + bodyVersion: String + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the discussion to modify.""" + id: ID! + """If provided, sets the pinned state of the updated discussion.""" + pinned: Boolean + """The updated title of the discussion.""" + title: String +} + +"""Autogenerated return type of UpdateTeamDiscussion.""" +type UpdateTeamDiscussionPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The updated discussion.""" + teamDiscussion: TeamDiscussion +} + +"""Autogenerated input type of UpdateTeamReviewAssignment""" +input UpdateTeamReviewAssignmentInput { + """The algorithm to use for review assignment""" + algorithm: TeamReviewAssignmentAlgorithm = ROUND_ROBIN + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """ + Count any members whose review has already been requested against the required number of members assigned to review + """ + countMembersAlreadyRequested: Boolean = true + """Turn on or off review assignment""" + enabled: Boolean! + """An array of team member IDs to exclude""" + excludedTeamMemberIds: [ID!] + """The Node ID of the team to update review assignments of""" + id: ID! + """Include the members of any child teams when assigning""" + includeChildTeamMembers: Boolean = true + """Notify the entire team of the PR if it is delegated""" + notifyTeam: Boolean = true + """Remove the team review request when assigning""" + removeTeamRequest: Boolean = true + """The number of team members to assign""" + teamMemberCount: Int = 1 +} + +"""Autogenerated return type of UpdateTeamReviewAssignment.""" +type UpdateTeamReviewAssignmentPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The team that was modified""" + team: Team +} + +"""Autogenerated input type of UpdateTeamsRepository""" +input UpdateTeamsRepositoryInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """Permission that should be granted to the teams.""" + permission: RepositoryPermission! + """Repository ID being granted access to.""" + repositoryId: ID! + """A list of teams being granted access. Limit: 10""" + teamIds: [ID!]! +} + +"""Autogenerated return type of UpdateTeamsRepository.""" +type UpdateTeamsRepositoryPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The repository that was updated.""" + repository: Repository + """The teams granted permission on the repository.""" + teams: [Team!] +} + +"""Autogenerated input type of UpdateTopics""" +input UpdateTopicsInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The Node ID of the repository.""" + repositoryId: ID! + """An array of topic names.""" + topicNames: [String!]! +} + +"""Autogenerated return type of UpdateTopics.""" +type UpdateTopicsPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """Names of the provided topics that are not valid.""" + invalidTopicNames: [String!] + """The updated repository.""" + repository: Repository +} + +"""Autogenerated input type of UpdateUserList""" +input UpdateUserListInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """A description of the list""" + description: String + """Whether or not the list is private""" + isPrivate: Boolean + """The ID of the list to update.""" + listId: ID! + """The name of the list""" + name: String +} + +"""Autogenerated return type of UpdateUserList.""" +type UpdateUserListPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The list that was just updated""" + list: UserList +} + +"""Autogenerated input type of UpdateUserListsForItem""" +input UpdateUserListsForItemInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The item to add to the list""" + itemId: ID! + """The lists to which this item should belong""" + listIds: [ID!]! + """The suggested lists to create and add this item to""" + suggestedListIds: [ID!] +} + +"""Autogenerated return type of UpdateUserListsForItem.""" +type UpdateUserListsForItemPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The item that was added""" + item: UserListItems + """The lists to which this item belongs""" + lists: [UserList!] + """The user who owns the lists""" + user: User +} + +""" +A user is an individual's account on GitHub that owns repositories and can make new content. +""" +type User implements Actor & Node & PackageOwner & ProfileOwner & ProjectOwner & ProjectV2Owner & ProjectV2Recent & RepositoryDiscussionAuthor & RepositoryDiscussionCommentAuthor & RepositoryOwner & Sponsorable & UniformResourceLocatable { + """ + Determine if this repository owner has any items that can be pinned to their profile. + """ + anyPinnableItems( + """Filter to only a particular kind of pinnable item.""" + type: PinnableItemType + ): Boolean! + """A URL pointing to the user's public avatar.""" + avatarUrl( + """The size of the resulting square image.""" + size: Int + ): URI! + """The user's public profile bio.""" + bio: String + """The user's public profile bio as HTML.""" + bioHTML: HTML! + """ + Could this user receive email notifications, if the organization had notification restrictions enabled? + """ + canReceiveOrganizationEmailsWhenNotificationsRestricted( + """The login of the organization to check.""" + login: String! + ): Boolean! + """A list of commit comments made by this user.""" + commitComments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): CommitCommentConnection! + """The user's public profile company.""" + company: String + """The user's public profile company as HTML.""" + companyHTML: HTML! + """ + The collection of contributions this user has made to different repositories. + """ + contributionsCollection( + """ + Only contributions made at this time or later will be counted. If omitted, defaults to a year ago. + """ + from: DateTime + """The ID of the organization used to filter contributions.""" + organizationID: ID + """ + Only contributions made before and up to (including) this time will be + counted. If omitted, defaults to the current time or one year from the + provided from argument. + """ + to: DateTime + ): ContributionsCollection! + """The user's Copilot endpoint information""" + copilotEndpoints: CopilotEndpoints + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int + """The user's publicly visible profile email.""" + email: String! + """A list of enterprises that the user belongs to.""" + enterprises( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filter enterprises returned based on the user's membership type.""" + membershipType: EnterpriseMembershipType = ALL + """Ordering options for the User's enterprises.""" + orderBy: EnterpriseOrder = {direction: ASC, field: NAME} + ): EnterpriseConnection + """ + The estimated next GitHub Sponsors payout for this user/organization in cents (USD). + """ + estimatedNextSponsorsPayoutInCents: Int! + """A list of users the given user is followed by.""" + followers( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): FollowerConnection! + """A list of users the given user is following.""" + following( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): FollowingConnection! + """Find gist by repo name.""" + gist( + """The gist name to find.""" + name: String! + ): Gist + """A list of gist comments made by this user.""" + gistComments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): GistCommentConnection! + """A list of the Gists the user has created.""" + gists( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for gists returned from the connection""" + orderBy: GistOrder + """Filters Gists according to privacy.""" + privacy: GistPrivacy + ): GistConnection! + """True if this user/organization has a GitHub Sponsors listing.""" + hasSponsorsListing: Boolean! + """The hovercard information for this user in a given context""" + hovercard( + """The ID of the subject to get the hovercard in the context of""" + primarySubjectId: ID + ): Hovercard! + """The Node ID of the User object""" + id: ID! + """The interaction ability settings for this user.""" + interactionAbility: RepositoryInteractionAbility + """ + Whether or not this user is a participant in the GitHub Security Bug Bounty. + """ + isBountyHunter: Boolean! + """ + Whether or not this user is a participant in the GitHub Campus Experts Program. + """ + isCampusExpert: Boolean! + """Whether or not this user is a GitHub Developer Program member.""" + isDeveloperProgramMember: Boolean! + """Whether or not this user is a GitHub employee.""" + isEmployee: Boolean! + """ + Whether or not this user is following the viewer. Inverse of viewerIsFollowing + """ + isFollowingViewer: Boolean! + """Whether or not this user is a member of the GitHub Stars Program.""" + isGitHubStar: Boolean! + """Whether or not the user has marked themselves as for hire.""" + isHireable: Boolean! + """Whether or not this user is a site administrator.""" + isSiteAdmin: Boolean! + """Whether the given account is sponsoring this user/organization.""" + isSponsoredBy( + """The target account's login.""" + accountLogin: String! + ): Boolean! + """True if the viewer is sponsored by this user/organization.""" + isSponsoringViewer: Boolean! + """Whether or not this user is the viewing user.""" + isViewer: Boolean! + """A list of issue comments made by this user.""" + issueComments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for issue comments returned from the connection.""" + orderBy: IssueCommentOrder + ): IssueCommentConnection! + """A list of issues associated with this user.""" + issues( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Filtering options for issues returned from the connection.""" + filterBy: IssueFilters + """Returns the first _n_ elements from the list.""" + first: Int + """A list of label names to filter the pull requests by.""" + labels: [String!] + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for issues returned from the connection.""" + orderBy: IssueOrder + """A list of states to filter the issues by.""" + states: [IssueState!] + ): IssueConnection! + """ + Showcases a selection of repositories and gists that the profile owner has + either curated or that have been selected automatically based on popularity. + """ + itemShowcase: ProfileItemShowcase! + """ + Calculate how much each sponsor has ever paid total to this maintainer via + GitHub Sponsors. Does not include sponsorships paid via Patreon. + """ + lifetimeReceivedSponsorshipValues( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for results returned from the connection.""" + orderBy: SponsorAndLifetimeValueOrder = {direction: ASC, field: SPONSOR_LOGIN} + ): SponsorAndLifetimeValueConnection! + """A user-curated list of repositories""" + lists( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserListConnection! + """The user's public profile location.""" + location: String + """The username used to login.""" + login: String! + """ + The estimated monthly GitHub Sponsors income for this user/organization in cents (USD). + """ + monthlyEstimatedSponsorsIncomeInCents: Int! + """The user's public profile name.""" + name: String + """Find an organization by its login that the user belongs to.""" + organization( + """The login of the organization to find.""" + login: String! + ): Organization + """ + Verified email addresses that match verified domains for a specified organization the user is a member of. + """ + organizationVerifiedDomainEmails( + """The login of the organization to match verified domains from.""" + login: String! + ): [String!]! + """A list of organizations the user belongs to.""" + organizations( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for the User's organizations.""" + orderBy: OrganizationOrder = null + ): OrganizationConnection! + """A list of packages under the owner.""" + packages( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Find packages by their names.""" + names: [String] + """Ordering of the returned packages.""" + orderBy: PackageOrder = {direction: DESC, field: CREATED_AT} + """Filter registry package by type.""" + packageType: PackageType + """Find packages in a repository by ID.""" + repositoryId: ID + ): PackageConnection! + """ + A list of repositories and gists this profile owner can pin to their profile. + """ + pinnableItems( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filter the types of pinnable items that are returned.""" + types: [PinnableItemType!] + ): PinnableItemConnection! + """ + A list of repositories and gists this profile owner has pinned to their profile + """ + pinnedItems( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filter the types of pinned items that are returned.""" + types: [PinnableItemType!] + ): PinnableItemConnection! + """ + Returns how many more items this profile owner can pin to their profile. + """ + pinnedItemsRemaining: Int! + """Find project by number.""" + project( + """The project number to find.""" + number: Int! + ): Project @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Find a project by number.""" + projectV2( + """The project number.""" + number: Int! + ): ProjectV2 + """A list of projects under the owner.""" + projects( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for projects returned from the connection""" + orderBy: ProjectOrder + """Query to search projects by, currently only searching by name.""" + search: String + """A list of states to filter the projects by.""" + states: [ProjectState!] + ): ProjectConnection! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """The HTTP path listing user's projects""" + projectsResourcePath: URI! + """The HTTP URL listing user's projects""" + projectsUrl: URI! + """A list of projects under the owner.""" + projectsV2( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Filter projects based on user role.""" + minPermissionLevel: ProjectV2PermissionLevel = READ + """How to order the returned projects.""" + orderBy: ProjectV2Order = {direction: DESC, field: NUMBER} + """A project to search for under the owner.""" + query: String + ): ProjectV2Connection! + """The user's profile pronouns""" + pronouns: String + """A list of public keys associated with this user.""" + publicKeys( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): PublicKeyConnection! + """A list of pull requests associated with this user.""" + pullRequests( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """The base ref name to filter the pull requests by.""" + baseRefName: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """The head ref name to filter the pull requests by.""" + headRefName: String + """A list of label names to filter the pull requests by.""" + labels: [String!] + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for pull requests returned from the connection.""" + orderBy: IssueOrder + """A list of states to filter the pull requests by.""" + states: [PullRequestState!] + ): PullRequestConnection! + """ + Recent projects that this user has modified in the context of the owner. + """ + recentProjects( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): ProjectV2Connection! + """A list of repositories that the user owns.""" + repositories( + """ + Array of viewer's affiliation options for repositories returned from the + connection. For example, OWNER will include only repositories that the + current viewer owns. + """ + affiliations: [RepositoryAffiliation] + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """ + If non-null, filters repositories according to whether they have issues enabled + """ + hasIssuesEnabled: Boolean + """ + If non-null, filters repositories according to whether they are archived and not maintained + """ + isArchived: Boolean + """ + If non-null, filters repositories according to whether they are forks of another repository + """ + isFork: Boolean + """ + If non-null, filters repositories according to whether they have been locked + """ + isLocked: Boolean + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for repositories returned from the connection""" + orderBy: RepositoryOrder + """ + Array of owner's affiliation options for repositories returned from the + connection. For example, OWNER will include only repositories that the + organization or user being viewed owns. + """ + ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR] + """ + If non-null, filters repositories according to privacy. Internal + repositories are considered private; consider using the visibility argument + if only internal repositories are needed. Cannot be combined with the + visibility argument. + """ + privacy: RepositoryPrivacy + """ + If non-null, filters repositories according to visibility. Cannot be combined with the privacy argument. + """ + visibility: RepositoryVisibility + ): RepositoryConnection! + """A list of repositories that the user recently contributed to.""" + repositoriesContributedTo( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """ + If non-null, include only the specified types of contributions. The + GitHub.com UI uses [COMMIT, ISSUE, PULL_REQUEST, REPOSITORY] + """ + contributionTypes: [RepositoryContributionType] + """Returns the first _n_ elements from the list.""" + first: Int + """ + If non-null, filters repositories according to whether they have issues enabled + """ + hasIssues: Boolean + """If true, include user repositories""" + includeUserRepositories: Boolean + """ + If non-null, filters repositories according to whether they have been locked + """ + isLocked: Boolean + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for repositories returned from the connection""" + orderBy: RepositoryOrder + """If non-null, filters repositories according to privacy""" + privacy: RepositoryPrivacy + ): RepositoryConnection! + """Find Repository.""" + repository( + """ + Follow repository renames. If disabled, a repository referenced by its old name will return an error. + """ + followRenames: Boolean = true + """Name of Repository to find.""" + name: String! + ): Repository + """Discussion comments this user has authored.""" + repositoryDiscussionComments( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Filter discussion comments to only those that were marked as the answer + """ + onlyAnswers: Boolean = false + """Filter discussion comments to only those in a specific repository.""" + repositoryId: ID + ): DiscussionCommentConnection! + """Discussions this user has started.""" + repositoryDiscussions( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Filter discussions to only those that have been answered or not. Defaults to + including both answered and unanswered discussions. + """ + answered: Boolean = null + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for discussions returned from the connection.""" + orderBy: DiscussionOrder = {direction: DESC, field: CREATED_AT} + """Filter discussions to only those in a specific repository.""" + repositoryId: ID + """A list of states to filter the discussions by.""" + states: [DiscussionState!] = [] + ): DiscussionConnection! + """The HTTP path for this user""" + resourcePath: URI! + """Replies this user has saved""" + savedReplies( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """The field to order saved replies by.""" + orderBy: SavedReplyOrder = {direction: DESC, field: UPDATED_AT} + ): SavedReplyConnection + """ + The user's social media accounts, ordered as they appear on the user's profile. + """ + socialAccounts( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): SocialAccountConnection! + """List of users and organizations this entity is sponsoring.""" + sponsoring( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Ordering options for the users and organizations returned from the connection. + """ + orderBy: SponsorOrder = {direction: DESC, field: RELEVANCE} + ): SponsorConnection! + """List of sponsors for this user or organization.""" + sponsors( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for sponsors returned from the connection.""" + orderBy: SponsorOrder = {direction: DESC, field: RELEVANCE} + """ + If given, will filter for sponsors at the given tier. Will only return + sponsors whose tier the viewer is permitted to see. + """ + tierId: ID + ): SponsorConnection! + """Events involving this sponsorable, such as new sponsorships.""" + sponsorsActivities( + """Filter activities to only the specified actions.""" + actions: [SponsorsActivityAction!] = [] + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """ + Whether to include those events where this sponsorable acted as the sponsor. + Defaults to only including events where this sponsorable was the recipient + of a sponsorship. + """ + includeAsSponsor: Boolean = false + """ + Whether or not to include private activities in the result set. Defaults to including public and private activities. + """ + includePrivate: Boolean = true + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for activity returned from the connection.""" + orderBy: SponsorsActivityOrder = {direction: DESC, field: TIMESTAMP} + """ + Filter activities returned to only those that occurred in the most recent + specified time period. Set to ALL to avoid filtering by when the activity + occurred. Will be ignored if `since` or `until` is given. + """ + period: SponsorsActivityPeriod = MONTH + """Filter activities to those that occurred on or after this time.""" + since: DateTime + """Filter activities to those that occurred before this time.""" + until: DateTime + ): SponsorsActivityConnection! + """The GitHub Sponsors listing for this user or organization.""" + sponsorsListing: SponsorsListing + """ + The sponsorship from the viewer to this user/organization; that is, the sponsorship where you're the sponsor. + """ + sponsorshipForViewerAsSponsor( + """ + Whether to return the sponsorship only if it's still active. Pass false to + get the viewer's sponsorship back even if it has been cancelled. + """ + activeOnly: Boolean = true + ): Sponsorship + """ + The sponsorship from this user/organization to the viewer; that is, the sponsorship you're receiving. + """ + sponsorshipForViewerAsSponsorable( + """ + Whether to return the sponsorship only if it's still active. Pass false to + get the sponsorship back even if it has been cancelled. + """ + activeOnly: Boolean = true + ): Sponsorship + """List of sponsorship updates sent from this sponsorable to sponsors.""" + sponsorshipNewsletters( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for sponsorship updates returned from the connection.""" + orderBy: SponsorshipNewsletterOrder = {direction: DESC, field: CREATED_AT} + ): SponsorshipNewsletterConnection! + """ + The sponsorships where this user or organization is the maintainer receiving the funds. + """ + sponsorshipsAsMaintainer( + """ + Whether to include only sponsorships that are active right now, versus all + sponsorships this maintainer has ever received. + """ + activeOnly: Boolean = true + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Whether or not to include private sponsorships in the result set""" + includePrivate: Boolean = false + """Returns the last _n_ elements from the list.""" + last: Int + """ + Ordering options for sponsorships returned from this connection. If left + blank, the sponsorships will be ordered based on relevancy to the viewer. + """ + orderBy: SponsorshipOrder + ): SponsorshipConnection! + """The sponsorships where this user or organization is the funder.""" + sponsorshipsAsSponsor( + """ + Whether to include only sponsorships that are active right now, versus all sponsorships this sponsor has ever made. + """ + activeOnly: Boolean = true + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """ + Filter sponsorships returned to those for the specified maintainers. That + is, the recipient of the sponsorship is a user or organization with one of + the given logins. + """ + maintainerLogins: [String!] + """ + Ordering options for sponsorships returned from this connection. If left + blank, the sponsorships will be ordered based on relevancy to the viewer. + """ + orderBy: SponsorshipOrder + ): SponsorshipConnection! + """Repositories the user has starred.""" + starredRepositories( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Order for connection""" + orderBy: StarOrder + """ + Filters starred repositories to only return repositories owned by the viewer. + """ + ownedByViewer: Boolean + ): StarredRepositoryConnection! + """The user's description of what they're currently doing.""" + status: UserStatus + """Suggested names for user lists""" + suggestedListNames: [UserListSuggestion!]! + """ + Repositories the user has contributed to, ordered by contribution rank, plus repositories the user has created + """ + topRepositories( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for repositories returned from the connection""" + orderBy: RepositoryOrder! + """How far back in time to fetch contributed repositories""" + since: DateTime + ): RepositoryConnection! + """ + The amount in United States cents (e.g., 500 = $5.00 USD) that this entity has + spent on GitHub to fund sponsorships. Only returns a value when viewed by the + user themselves or by a user who can manage sponsorships for the requested organization. + """ + totalSponsorshipAmountAsSponsorInCents( + """Filter payments to those that occurred on or after this time.""" + since: DateTime + """ + Filter payments to those made to the users or organizations with the specified usernames. + """ + sponsorableLogins: [String!] = [] + """Filter payments to those that occurred before this time.""" + until: DateTime + ): Int + """The user's Twitter username.""" + twitterUsername: String + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The HTTP URL for this user""" + url: URI! + """ + Whether the request returns publicly visible information or privately visible information about the user + """ + userViewType: UserViewType! + """Can the viewer pin repositories and gists to the profile?""" + viewerCanChangePinnedItems: Boolean! + """Can the current viewer create new projects on this owner.""" + viewerCanCreateProjects: Boolean! @deprecated(reason: "Projects (classic) is being deprecated in favor of the new Projects experience, see: https://github.blog/changelog/2024-05-23-sunset-notice-projects-classic/. Removal on 2025-04-01 UTC.") + """Whether or not the viewer is able to follow the user.""" + viewerCanFollow: Boolean! + """Whether or not the viewer is able to sponsor this user/organization.""" + viewerCanSponsor: Boolean! + """ + Whether or not this user is followed by the viewer. Inverse of isFollowingViewer. + """ + viewerIsFollowing: Boolean! + """True if the viewer is sponsoring this user/organization.""" + viewerIsSponsoring: Boolean! + """A list of repositories the given user is watching.""" + watching( + """ + Affiliation options for repositories returned from the connection. If none + specified, the results will include repositories for which the current + viewer is an owner or collaborator, or member. + """ + affiliations: [RepositoryAffiliation] + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """ + If non-null, filters repositories according to whether they have issues enabled + """ + hasIssuesEnabled: Boolean + """ + If non-null, filters repositories according to whether they have been locked + """ + isLocked: Boolean + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for repositories returned from the connection""" + orderBy: RepositoryOrder + """ + Array of owner's affiliation options for repositories returned from the + connection. For example, OWNER will include only repositories that the + organization or user being viewed owns. + """ + ownerAffiliations: [RepositoryAffiliation] = [OWNER, COLLABORATOR] + """ + If non-null, filters repositories according to privacy. Internal + repositories are considered private; consider using the visibility argument + if only internal repositories are needed. Cannot be combined with the + visibility argument. + """ + privacy: RepositoryPrivacy + """ + If non-null, filters repositories according to visibility. Cannot be combined with the privacy argument. + """ + visibility: RepositoryVisibility + ): RepositoryConnection! + """A URL pointing to the user's public website/blog.""" + websiteUrl: URI +} + +"""The possible durations that a user can be blocked for.""" +enum UserBlockDuration { + """The user was blocked for 1 day""" + ONE_DAY + """The user was blocked for 30 days""" + ONE_MONTH + """The user was blocked for 7 days""" + ONE_WEEK + """The user was blocked permanently""" + PERMANENT + """The user was blocked for 3 days""" + THREE_DAYS +} + +"""Represents a 'user_blocked' event on a given user.""" +type UserBlockedEvent implements Node { + """Identifies the actor who performed the event.""" + actor: Actor + """Number of days that the user was blocked for.""" + blockDuration: UserBlockDuration! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The Node ID of the UserBlockedEvent object""" + id: ID! + """The user who was blocked.""" + subject: User +} + +"""A list of users.""" +type UserConnection { + """A list of edges.""" + edges: [UserEdge] + """A list of nodes.""" + nodes: [User] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edit on user content""" +type UserContentEdit implements Node { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the date and time when the object was deleted.""" + deletedAt: DateTime + """The actor who deleted this content""" + deletedBy: Actor + """A summary of the changes for this edit""" + diff: String + """When this content was edited""" + editedAt: DateTime! + """The actor who edited this content""" + editor: Actor + """The Node ID of the UserContentEdit object""" + id: ID! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! +} + +"""A list of edits to content.""" +type UserContentEditConnection { + """A list of edges.""" + edges: [UserContentEditEdge] + """A list of nodes.""" + nodes: [UserContentEdit] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type UserContentEditEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: UserContentEdit +} + +"""Represents a user.""" +type UserEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: User +} + +"""Email attributes from External Identity""" +type UserEmailMetadata { + """Boolean to identify primary emails""" + primary: Boolean + """Type of email""" + type: String + """Email id""" + value: String! +} + +"""A user-curated list of repositories""" +type UserList implements Node { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """The description of this list""" + description: String + """The Node ID of the UserList object""" + id: ID! + """Whether or not this list is private""" + isPrivate: Boolean! + """The items associated with this list""" + items( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): UserListItemsConnection! + """ + The date and time at which this list was created or last had items added to it + """ + lastAddedAt: DateTime! + """The name of this list""" + name: String! + """The slug of this list""" + slug: String! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The user to which this list belongs""" + user: User! +} + +"""The connection type for UserList.""" +type UserListConnection { + """A list of edges.""" + edges: [UserListEdge] + """A list of nodes.""" + nodes: [UserList] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type UserListEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: UserList +} + +"""Types that can be added to a user list.""" +union UserListItems = Repository + +"""The connection type for UserListItems.""" +type UserListItemsConnection { + """A list of edges.""" + edges: [UserListItemsEdge] + """A list of nodes.""" + nodes: [UserListItems] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type UserListItemsEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: UserListItems +} + +"""Represents a suggested user list.""" +type UserListSuggestion { + """The ID of the suggested user list""" + id: ID + """The name of the suggested user list""" + name: String +} + +"""A repository owned by an Enterprise Managed user.""" +type UserNamespaceRepository implements Node { + """The Node ID of the UserNamespaceRepository object""" + id: ID! + """The name of the repository.""" + name: String! + """The repository's name with owner.""" + nameWithOwner: String! + """The user owner of the repository.""" + owner: RepositoryOwner! +} + +""" +A list of repositories owned by users in an enterprise with Enterprise Managed Users. +""" +type UserNamespaceRepositoryConnection { + """A list of edges.""" + edges: [UserNamespaceRepositoryEdge] + """A list of nodes.""" + nodes: [UserNamespaceRepository] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type UserNamespaceRepositoryEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: UserNamespaceRepository +} + +"""The user's description of what they're currently doing.""" +type UserStatus implements Node { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """An emoji summarizing the user's status.""" + emoji: String + """The status emoji as HTML.""" + emojiHTML: HTML + """If set, the status will not be shown after this date.""" + expiresAt: DateTime + """The Node ID of the UserStatus object""" + id: ID! + """ + Whether this status indicates the user is not fully available on GitHub. + """ + indicatesLimitedAvailability: Boolean! + """A brief message describing what the user is doing.""" + message: String + """ + The organization whose members can see this status. If null, this status is publicly visible. + """ + organization: Organization + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The user who has this status.""" + user: User! +} + +"""The connection type for UserStatus.""" +type UserStatusConnection { + """A list of edges.""" + edges: [UserStatusEdge] + """A list of nodes.""" + nodes: [UserStatus] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type UserStatusEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: UserStatus +} + +"""Ordering options for user status connections.""" +input UserStatusOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order user statuses by.""" + field: UserStatusOrderField! +} + +"""Properties by which user status connections can be ordered.""" +enum UserStatusOrderField { + """Order user statuses by when they were updated.""" + UPDATED_AT +} + +"""Whether a user being viewed contains public or private information.""" +enum UserViewType { + """A user containing information only visible to the authenticated user.""" + PRIVATE + """A user that is publicly visible.""" + PUBLIC +} + +""" +A domain that can be verified or approved for an organization or an enterprise. +""" +type VerifiableDomain implements Node { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int + """The DNS host name that should be used for verification.""" + dnsHostName: URI + """The unicode encoded domain.""" + domain: URI! + """ + Whether a TXT record for verification with the expected host name was found. + """ + hasFoundHostName: Boolean! + """ + Whether a TXT record for verification with the expected verification token was found. + """ + hasFoundVerificationToken: Boolean! + """The Node ID of the VerifiableDomain object""" + id: ID! + """Whether or not the domain is approved.""" + isApproved: Boolean! + """ + Whether this domain is required to exist for an organization or enterprise policy to be enforced. + """ + isRequiredForPolicyEnforcement: Boolean! + """Whether or not the domain is verified.""" + isVerified: Boolean! + """The owner of the domain.""" + owner: VerifiableDomainOwner! + """The punycode encoded domain.""" + punycodeEncodedDomain: URI! + """The time that the current verification token will expire.""" + tokenExpirationTime: DateTime + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The current verification token for the domain.""" + verificationToken: String +} + +"""The connection type for VerifiableDomain.""" +type VerifiableDomainConnection { + """A list of edges.""" + edges: [VerifiableDomainEdge] + """A list of nodes.""" + nodes: [VerifiableDomain] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type VerifiableDomainEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: VerifiableDomain +} + +"""Ordering options for verifiable domain connections.""" +input VerifiableDomainOrder { + """The ordering direction.""" + direction: OrderDirection! + """The field to order verifiable domains by.""" + field: VerifiableDomainOrderField! +} + +"""Properties by which verifiable domain connections can be ordered.""" +enum VerifiableDomainOrderField { + """Order verifiable domains by their creation date.""" + CREATED_AT + """Order verifiable domains by the domain name.""" + DOMAIN +} + +"""Types that can own a verifiable domain.""" +union VerifiableDomainOwner = Enterprise | Organization + +"""Autogenerated input type of VerifyVerifiableDomain""" +input VerifyVerifiableDomainInput { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The ID of the verifiable domain to verify.""" + id: ID! +} + +"""Autogenerated return type of VerifyVerifiableDomain.""" +type VerifyVerifiableDomainPayload { + """A unique identifier for the client performing the mutation.""" + clientMutationId: String + """The verifiable domain that was verified.""" + domain: VerifiableDomain +} + +""" +A hovercard context with a message describing how the viewer is related. +""" +type ViewerHovercardContext implements HovercardContext { + """A string describing this context""" + message: String! + """An octicon to accompany this context""" + octicon: String! + """Identifies the user who is related to this context.""" + viewer: User! +} + +"""A subject that may be upvoted.""" +interface Votable { + """Number of upvotes that this subject has received.""" + upvoteCount: Int! + """ + Whether or not the current user can add or remove an upvote on this subject. + """ + viewerCanUpvote: Boolean! + """Whether or not the current user has already upvoted this subject.""" + viewerHasUpvoted: Boolean! +} + +"""A workflow contains meta information about an Actions workflow file.""" +type Workflow implements Node & UniformResourceLocatable { + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int + """The Node ID of the Workflow object""" + id: ID! + """The name of the workflow.""" + name: String! + """The HTTP path for this workflow""" + resourcePath: URI! + """The runs of the workflow.""" + runs( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + """Ordering options for the connection""" + orderBy: WorkflowRunOrder = {direction: DESC, field: CREATED_AT} + ): WorkflowRunConnection! + """The state of the workflow.""" + state: WorkflowState! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The HTTP URL for this workflow""" + url: URI! +} + +"""A workflow that must run for this rule to pass""" +type WorkflowFileReference { + """The path to the workflow file""" + path: String! + """The ref (branch or tag) of the workflow file to use""" + ref: String + """The ID of the repository where the workflow is defined""" + repositoryId: Int! + """The commit SHA of the workflow file to use""" + sha: String +} + +"""A workflow that must run for this rule to pass""" +input WorkflowFileReferenceInput { + """The path to the workflow file""" + path: String! + """The ref (branch or tag) of the workflow file to use""" + ref: String + """The ID of the repository where the workflow is defined""" + repositoryId: Int! + """The commit SHA of the workflow file to use""" + sha: String +} + +"""A workflow run.""" +type WorkflowRun implements Node & UniformResourceLocatable { + """The check suite this workflow run belongs to.""" + checkSuite: CheckSuite! + """Identifies the date and time when the object was created.""" + createdAt: DateTime! + """Identifies the primary key from the database.""" + databaseId: Int + """The log of deployment reviews""" + deploymentReviews( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): DeploymentReviewConnection! + """The event that triggered the workflow run""" + event: String! + """The workflow file""" + file: WorkflowRunFile + """The Node ID of the WorkflowRun object""" + id: ID! + """The pending deployment requests of all check runs in this workflow run""" + pendingDeploymentRequests( + """Returns the elements in the list that come after the specified cursor.""" + after: String + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + """Returns the first _n_ elements from the list.""" + first: Int + """Returns the last _n_ elements from the list.""" + last: Int + ): DeploymentRequestConnection! + """The HTTP path for this workflow run""" + resourcePath: URI! + """ + A number that uniquely identifies this workflow run in its parent workflow. + """ + runNumber: Int! + """Identifies the date and time when the object was last updated.""" + updatedAt: DateTime! + """The HTTP URL for this workflow run""" + url: URI! + """The workflow executed in this workflow run.""" + workflow: Workflow! +} + +"""The connection type for WorkflowRun.""" +type WorkflowRunConnection { + """A list of edges.""" + edges: [WorkflowRunEdge] + """A list of nodes.""" + nodes: [WorkflowRun] + """Information to aid in pagination.""" + pageInfo: PageInfo! + """Identifies the total count of items in the connection.""" + totalCount: Int! +} + +"""An edge in a connection.""" +type WorkflowRunEdge { + """A cursor for use in pagination.""" + cursor: String! + """The item at the end of the edge.""" + node: WorkflowRun +} + +"""An executed workflow file for a workflow run.""" +type WorkflowRunFile implements Node & UniformResourceLocatable { + """The Node ID of the WorkflowRunFile object""" + id: ID! + """The path of the workflow file relative to its repository.""" + path: String! + """ + The direct link to the file in the repository which stores the workflow file. + """ + repositoryFileUrl: URI! + """The repository name and owner which stores the workflow file.""" + repositoryName: URI! + """The HTTP path for this workflow run file""" + resourcePath: URI! + """The parent workflow run execution for this file.""" + run: WorkflowRun! + """The HTTP URL for this workflow run file""" + url: URI! + """ + If the viewer has permissions to push to the repository which stores the workflow. + """ + viewerCanPushRepository: Boolean! + """ + If the viewer has permissions to read the repository which stores the workflow. + """ + viewerCanReadRepository: Boolean! +} + +"""Ways in which lists of workflow runs can be ordered upon return.""" +input WorkflowRunOrder { + """The direction in which to order workflow runs by the specified field.""" + direction: OrderDirection! + """The field by which to order workflows.""" + field: WorkflowRunOrderField! +} + +"""Properties by which workflow run connections can be ordered.""" +enum WorkflowRunOrderField { + """Order workflow runs by most recently created""" + CREATED_AT +} + +"""The possible states for a workflow.""" +enum WorkflowState { + """The workflow is active.""" + ACTIVE + """The workflow was deleted from the git repository.""" + DELETED + """The workflow was disabled by default on a fork.""" + DISABLED_FORK + """The workflow was disabled for inactivity in the repository.""" + DISABLED_INACTIVITY + """The workflow was disabled manually.""" + DISABLED_MANUALLY +} + +""" +Require all changes made to a targeted branch to pass the specified workflows before they can be merged. +""" +type WorkflowsParameters { + """ + Allow repositories and branches to be created if a check would otherwise prohibit it. + """ + doNotEnforceOnCreate: Boolean! + """Workflows that must pass for this rule to pass.""" + workflows: [WorkflowFileReference!]! +} + +""" +Require all changes made to a targeted branch to pass the specified workflows before they can be merged. +""" +input WorkflowsParametersInput { + """ + Allow repositories and branches to be created if a check would otherwise prohibit it. + """ + doNotEnforceOnCreate: Boolean + """Workflows that must pass for this rule to pass.""" + workflows: [WorkflowFileReferenceInput!]! +} + +"""A valid x509 certificate string""" +scalar X509Certificate \ No newline at end of file diff --git a/src/backportRun.ts b/src/backport-run.ts similarity index 86% rename from src/backportRun.ts rename to src/backport-run.ts index e60b2456..a906a5c7 100755 --- a/src/backportRun.ts +++ b/src/backport-run.ts @@ -1,33 +1,29 @@ import assert from 'node:assert'; import chalk from 'chalk'; -import apm, { Transaction } from 'elastic-apm-node'; -import { Logger } from 'winston'; -import { BackportError } from './lib/BackportError'; +import type { Transaction } from 'elastic-apm-node'; +import apm from 'elastic-apm-node'; import { disableApm } from './lib/apm'; +import { BackportError } from './lib/backport-error'; import { getLogfilePath } from './lib/env'; -import { getCommits } from './lib/getCommits'; -import { getSourceDirectory } from './lib/getSourceDirectory'; -import { getTargetBranches } from './lib/getTargetBranches'; -import { getTargetDirectories } from './lib/getTargetDirectories'; -import { createStatusComment } from './lib/github/v3/createStatusComment'; -import { GithubV4Exception } from './lib/github/v4/apiRequestV4'; +import { getCommits } from './lib/get-commits'; +import { getTargetBranches } from './lib/get-target-branches'; +import { createStatusComment } from './lib/github/v3/create-status-comment'; +import { GithubV4Exception } from './lib/github/v4/client/graphql-client'; import { consoleLog, initLogger } from './lib/logger'; import { ora } from './lib/ora'; -import { registerHandlebarsHelpers } from './lib/registerHandlebarsHelpers'; -import { runSequentially, Result, Target } from './lib/runSequentially'; -import { setupRepo } from './lib/setupRepo'; -import { Commit } from './lib/sourceCommit/parseSourceCommit'; -import { ConfigFileOptions } from './options/ConfigOptions'; -import { - getRuntimeArguments, - getOptionsFromCliArgs, - OptionsFromCliArgs, -} from './options/cliArgs'; -import { - getActiveOptionsFormatted, - getOptions, - ValidConfigOptions, -} from './options/options'; +import { registerHandlebarsHelpers } from './lib/register-handlebars-helpers'; +import type { Result, Target } from './lib/run-sequentially'; +import { runSequentially } from './lib/run-sequentially'; +import { setupRepo } from './lib/setup-repo'; +import type { Commit } from './lib/sourceCommit/parse-source-commit'; +import type { OptionsFromCliArgs } from './options/cli-args'; +import { getRuntimeArguments, getOptionsFromCliArgs } from './options/cli-args'; +import type { ConfigFileOptions } from './options/config-options'; +import type { ValidConfigOptions } from './options/options'; +import { getActiveOptionsFormatted, getOptions } from './options/options'; +import { getSourceDirectory } from './lib/get-source-directory'; +import { Logger } from 'winston'; +import { getTargetDirectories } from './lib/get-target-directories'; registerHandlebarsHelpers(); @@ -234,7 +230,7 @@ function outputError({ e, logFilePath, }: { - e: BackportError | GithubV4Exception | Error; + e: BackportError | GithubV4Exception | Error; logFilePath?: string; }) { if (e instanceof BackportError || e instanceof GithubV4Exception) { @@ -246,7 +242,7 @@ function outputError({ // output consoleLog('\n'); consoleLog(chalk.bold('⚠️ Ouch! An unhandled error occured 😿')); - consoleLog(e.stack ? e.stack : e.message); + consoleLog(e.stack ?? e.message); consoleLog( 'Please open an issue in https://github.com/sorenlouv/backport/issues or contact me directly on https://twitter.com/sorenlouv', ); diff --git a/src/entrypoint.api.ts b/src/entrypoint.api.ts index 5a0c8ecf..b29551de 100644 --- a/src/entrypoint.api.ts +++ b/src/entrypoint.api.ts @@ -1,36 +1,36 @@ import './lib/apm'; import apm from 'elastic-apm-node'; -import { backportRun as run } from './backportRun'; -import { BackportResponse } from './backportRun'; -import { fetchCommitsByPullNumber } from './lib/github/v4/fetchCommits/fetchCommitByPullNumber'; -import { fetchCommitBySha } from './lib/github/v4/fetchCommits/fetchCommitBySha'; -import { fetchCommitsByAuthor } from './lib/github/v4/fetchCommits/fetchCommitsByAuthor'; -import { fetchPullRequestsBySearchQuery } from './lib/github/v4/fetchCommits/fetchPullRequestsBySearchQuery'; -import { getOptionsFromGithub as _getOptionsFromGithub } from './lib/github/v4/getOptionsFromGithub/getOptionsFromGithub'; +import { backportRun as run } from './backport-run'; +import type { BackportResponse } from './backport-run'; +import { fetchCommitsByPullNumber } from './lib/github/v4/fetchCommits/fetch-commit-by-pull-number'; +import { fetchCommitBySha } from './lib/github/v4/fetchCommits/fetch-commit-by-sha'; +import { fetchCommitsByAuthor } from './lib/github/v4/fetchCommits/fetch-commits-by-author'; +import { fetchPullRequestsBySearchQuery } from './lib/github/v4/fetchCommits/fetch-pull-requests-by-search-query'; +import { getOptionsFromGithub as _getOptionsFromGithub } from './lib/github/v4/getOptionsFromGithub/get-options-from-github'; import { initLogger } from './lib/logger'; -import type { Commit } from './lib/sourceCommit/parseSourceCommit'; -import { ConfigFileOptions } from './options/ConfigOptions'; -import { ValidConfigOptions } from './options/options'; -import { excludeUndefined } from './utils/excludeUndefined'; +import type { Commit } from './lib/sourceCommit/parse-source-commit'; +import type { ConfigFileOptions } from './options/config-options'; +import type { ValidConfigOptions } from './options/options'; +import { excludeUndefined } from './utils/exclude-undefined'; // public API export type { HandledErrorResult, SuccessResult, UnhandledErrorResult, -} from './lib/runSequentially'; +} from './lib/run-sequentially'; export type { BackportAbortResponse, BackportFailureResponse, BackportResponse, BackportSuccessResponse, -} from './backportRun'; -export type { Commit } from './lib/sourceCommit/parseSourceCommit'; -export type { ConfigFileOptions } from './options/ConfigOptions'; -export { getTargetBranchFromLabel } from './lib/sourceCommit/getPullRequestStates'; -export { BackportError } from './lib/BackportError'; -export { getGlobalConfig } from './options/config/globalConfig'; -export { getProjectConfig } from './options/config/projectConfig'; +} from './backport-run'; +export type { Commit } from './lib/sourceCommit/parse-source-commit'; +export type { ConfigFileOptions } from './options/config-options'; +export { getTargetBranchFromLabel } from './lib/sourceCommit/get-pull-request-states'; +export { BackportError } from './lib/backport-error'; +export { getGlobalConfig } from './options/config/global-config'; +export { getProjectConfig } from './options/config/project-config'; // wrap `getOptionsFromGithub` with logger export function getOptionsFromGithub( diff --git a/src/entrypoint.cli.ts b/src/entrypoint.cli.ts index 0e019a15..d5c52ecc 100644 --- a/src/entrypoint.cli.ts +++ b/src/entrypoint.cli.ts @@ -1,18 +1,17 @@ import './lib/apm'; import apm from 'elastic-apm-node'; -import { backportRun } from './backportRun'; -import { getRuntimeArguments } from './options/cliArgs'; +import { backportRun } from './backport-run'; +import { getRuntimeArguments } from './options/cli-args'; const processArgs = process.argv.slice(2); const apmTransaction = apm.startTransaction('CLI: backportRun'); // this is the entrypoint when running from command line -backportRun({ processArgs, exitCodeOnFailure: true, apmTransaction }).then( +void backportRun({ processArgs, exitCodeOnFailure: true, apmTransaction }).then( (backportResponse) => { const { interactive, ls } = getRuntimeArguments(processArgs); if (!interactive || ls) { - // eslint-disable-next-line no-console console.log(JSON.stringify(backportResponse)); } diff --git a/src/entrypoint.module.private.test.ts b/src/entrypoint.module.private.test.ts index 9790555e..248b42d3 100644 --- a/src/entrypoint.module.private.test.ts +++ b/src/entrypoint.module.private.test.ts @@ -1,10 +1,11 @@ -import { +import type { BackportFailureResponse, BackportSuccessResponse, -} from './backportRun'; -import { backportRun, Commit, getCommits } from './entrypoint.api'; -import { getFirstLine } from './lib/github/commitFormatters'; -import { getDevAccessToken } from './test/private/getDevAccessToken'; +} from './backport-run'; +import type { Commit } from './entrypoint.api'; +import { backportRun, getCommits } from './entrypoint.api'; +import { getFirstLine } from './lib/github/commit-formatters'; +import { getDevAccessToken } from './test/private/get-dev-access-token'; jest.setTimeout(10_000); diff --git a/src/lib/apm.ts b/src/lib/apm.ts index b234ae55..2ee6d27d 100644 --- a/src/lib/apm.ts +++ b/src/lib/apm.ts @@ -1,9 +1,9 @@ import apm from 'elastic-apm-node'; -//@ts-expect-error +//@ts-expect-error: using private API from elastic-apm-node import { NoopApmClient } from 'elastic-apm-node/lib/apm-client/noop-apm-client'; import { accessTokenReplacer } from './logger'; -const environment = process.env.NODE_ENV || 'production-cli'; +const environment = process.env.NODE_ENV ?? 'production-cli'; apm .start({ @@ -23,8 +23,8 @@ apm export function disableApm() { // hack to disable APM telemetry after loaded config - //@ts-expect-error + //@ts-expect-error: using private API from elastic-apm-node apm._apmClient.destroy(); - //@ts-expect-error + //@ts-expect-error: using private API from elastic-apm-node apm._apmClient = new NoopApmClient(); } diff --git a/src/lib/author.ts b/src/lib/author.ts index fa0adbb0..b9fd45a2 100644 --- a/src/lib/author.ts +++ b/src/lib/author.ts @@ -1,5 +1,5 @@ -import { Commit } from '../entrypoint.api'; -import { ValidConfigOptions } from '../options/options'; +import type { Commit } from '../entrypoint.api'; +import type { ValidConfigOptions } from '../options/options'; export type CommitAuthor = { name: string; email: string }; export function getCommitAuthor({ @@ -17,7 +17,7 @@ export function getCommitAuthor({ } return { - name: options.gitAuthorName ?? commit.author.name, - email: options.gitAuthorEmail ?? commit.author.email, + name: options.gitAuthorName ?? commit.author!.name!, + email: options.gitAuthorEmail ?? commit.author!.email!, }; } diff --git a/src/lib/BackportError.ts b/src/lib/backport-error.ts similarity index 96% rename from src/lib/BackportError.ts rename to src/lib/backport-error.ts index 4f92d024..0bfaf123 100644 --- a/src/lib/BackportError.ts +++ b/src/lib/backport-error.ts @@ -1,4 +1,4 @@ -import { Commit } from './sourceCommit/parseSourceCommit'; +import type { Commit } from './sourceCommit/parse-source-commit'; type ErrorContext = | { diff --git a/src/lib/cherrypickAndCreateTargetPullRequest/__snapshots__/cherrypickAndCreateTargetPullRequest.test.ts.snap b/src/lib/cherrypickAndCreateTargetPullRequest/__snapshots__/cherrypick-and-create-target-pull-request.test.ts.snap similarity index 98% rename from src/lib/cherrypickAndCreateTargetPullRequest/__snapshots__/cherrypickAndCreateTargetPullRequest.test.ts.snap rename to src/lib/cherrypickAndCreateTargetPullRequest/__snapshots__/cherrypick-and-create-target-pull-request.test.ts.snap index 4152cc88..7fb7dd15 100644 --- a/src/lib/cherrypickAndCreateTargetPullRequest/__snapshots__/cherrypickAndCreateTargetPullRequest.test.ts.snap +++ b/src/lib/cherrypickAndCreateTargetPullRequest/__snapshots__/cherrypick-and-create-target-pull-request.test.ts.snap @@ -1,4 +1,4 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`cherrypickAndCreateTargetPullRequest when commit has a pull request reference should make correct git commands 1`] = ` [ diff --git a/src/lib/cherrypickAndCreateTargetPullRequest/autoMergeNowOrLater.ts b/src/lib/cherrypickAndCreateTargetPullRequest/auto-merge-now-or-later.ts similarity index 76% rename from src/lib/cherrypickAndCreateTargetPullRequest/autoMergeNowOrLater.ts rename to src/lib/cherrypickAndCreateTargetPullRequest/auto-merge-now-or-later.ts index 48d4d3b3..601e16c0 100644 --- a/src/lib/cherrypickAndCreateTargetPullRequest/autoMergeNowOrLater.ts +++ b/src/lib/cherrypickAndCreateTargetPullRequest/auto-merge-now-or-later.ts @@ -1,10 +1,10 @@ -import { ValidConfigOptions } from '../../options/options'; -import { mergePullRequest } from '../github/v3/mergePullRequest'; -import { GithubV4Exception } from '../github/v4/apiRequestV4'; +import type { ValidConfigOptions } from '../../options/options'; +import { mergePullRequest } from '../github/v3/merge-pull-request'; +import { GithubV4Exception } from '../github/v4/client/graphql-client'; import { enablePullRequestAutoMerge, - parseGithubError, -} from '../github/v4/enablePullRequestAutoMerge'; + isMissingStatusChecksError, +} from '../github/v4/enable-pull-request-auto-merge'; import { logger } from '../logger'; import { ora } from '../ora'; @@ -34,8 +34,7 @@ export async function autoMergeNowOrLater( `Auto merge: Failed to enable auto merge for PR "#${pullNumber}" due to ${e.message}`, ); - const { isMissingStatusChecks } = parseGithubError(e); - if (!isMissingStatusChecks) { + if (!isMissingStatusChecksError(e)) { throw e; } diff --git a/src/lib/cherrypickAndCreateTargetPullRequest/cherrypickAndCreateTargetPullRequest.test.ts b/src/lib/cherrypickAndCreateTargetPullRequest/cherrypick-and-create-target-pull-request.test.ts similarity index 94% rename from src/lib/cherrypickAndCreateTargetPullRequest/cherrypickAndCreateTargetPullRequest.test.ts rename to src/lib/cherrypickAndCreateTargetPullRequest/cherrypick-and-create-target-pull-request.test.ts index ee00d638..7c3acbf2 100644 --- a/src/lib/cherrypickAndCreateTargetPullRequest/cherrypickAndCreateTargetPullRequest.test.ts +++ b/src/lib/cherrypickAndCreateTargetPullRequest/cherrypick-and-create-target-pull-request.test.ts @@ -1,18 +1,18 @@ import os from 'os'; import nock from 'nock'; -import { ValidConfigOptions } from '../../options/options'; +import type { ValidConfigOptions } from '../../options/options'; import { listenForCallsToNockScope, - mockGqlRequest, -} from '../../test/nockHelpers'; -import { SpyHelper } from '../../types/SpyHelper'; + mockUrqlRequest, +} from '../../test/nock-helpers'; +import type { SpyHelper } from '../../types/spy-helper'; import * as childProcess from '../child-process-promisified'; -import { TargetBranchResponse } from '../github/v4/validateTargetBranch'; +import type { TargetBranchResponse } from '../github/v4/validate-target-branch'; import * as logger from '../logger'; import * as oraModule from '../ora'; -import { Commit } from '../sourceCommit/parseSourceCommit'; -import * as autoMergeNowOrLater from './autoMergeNowOrLater'; -import { cherrypickAndCreateTargetPullRequest } from './cherrypickAndCreateTargetPullRequest'; +import type { Commit } from '../sourceCommit/parse-source-commit'; +import * as autoMergeNowOrLater from './auto-merge-now-or-later'; +import { cherrypickAndCreateTargetPullRequest } from './cherrypick-and-create-target-pull-request'; describe('cherrypickAndCreateTargetPullRequest', () => { let execSpy: SpyHelper; @@ -127,9 +127,8 @@ describe('cherrypickAndCreateTargetPullRequest', () => { }, ]; - mockGqlRequest({ - name: 'GetBranchId', - statusCode: 200, + mockUrqlRequest({ + operationName: 'GetBranchId', body: { data: { repository: { ref: { id: 'foo' } } } }, }); @@ -250,9 +249,8 @@ describe('cherrypickAndCreateTargetPullRequest', () => { }, ]; - mockGqlRequest({ - name: 'GetBranchId', - statusCode: 200, + mockUrqlRequest({ + operationName: 'GetBranchId', body: { data: { repository: { ref: { id: 'foo' } } } }, }); @@ -318,9 +316,8 @@ describe('cherrypickAndCreateTargetPullRequest', () => { targetPRLabels: ['backport'], } as ValidConfigOptions; - mockGqlRequest({ - name: 'GetBranchId', - statusCode: 200, + mockUrqlRequest({ + operationName: 'GetBranchId', body: { data: { repository: { ref: { id: 'foo' } } } }, }); diff --git a/src/lib/cherrypickAndCreateTargetPullRequest/cherrypickAndCreateTargetPullRequest.ts b/src/lib/cherrypickAndCreateTargetPullRequest/cherrypick-and-create-target-pull-request.ts similarity index 69% rename from src/lib/cherrypickAndCreateTargetPullRequest/cherrypickAndCreateTargetPullRequest.ts rename to src/lib/cherrypickAndCreateTargetPullRequest/cherrypick-and-create-target-pull-request.ts index 9c543465..5a3fb680 100644 --- a/src/lib/cherrypickAndCreateTargetPullRequest/cherrypickAndCreateTargetPullRequest.ts +++ b/src/lib/cherrypickAndCreateTargetPullRequest/cherrypick-and-create-target-pull-request.ts @@ -1,34 +1,31 @@ import chalk from 'chalk'; import { flatten } from 'lodash'; -import { ValidConfigOptions } from '../../options/options'; -import { getSourceBranchFromCommits } from '../getSourceBranchFromCommits'; +import type { ValidConfigOptions } from '../../options/options'; +import { getSourceBranchFromCommits } from '../get-source-branch-from-commits'; import { createBackportBranch, deleteBackportBranch, pushBackportBranch, getRepoForkOwner, } from '../git'; -import { addAssigneesToPullRequest } from '../github/v3/addAssigneesToPullRequest'; -import { addLabelsToPullRequest } from '../github/v3/addLabelsToPullRequest'; -import { addReviewersToPullRequest } from '../github/v3/addReviewersToPullRequest'; -import { - createPullRequest, - PullRequestPayload, -} from '../github/v3/getPullRequest/createPullRequest'; -import { getPullRequestBody } from '../github/v3/getPullRequest/getPullRequestBody'; -import { getTitle } from '../github/v3/getPullRequest/getTitle'; -import { validateTargetBranch } from '../github/v4/validateTargetBranch'; +import { addAssigneesToPullRequest } from '../github/v3/add-assignees-to-pull-request'; +import { addLabelsToPullRequest } from '../github/v3/add-labels-to-pull-request'; +import { addReviewersToPullRequest } from '../github/v3/add-reviewers-to-pull-request'; +import type { PullRequestPayload } from '../github/v3/getPullRequest/create-pull-request'; +import { createPullRequest } from '../github/v3/getPullRequest/create-pull-request'; +import { getPullRequestBody } from '../github/v3/getPullRequest/get-pull-request-body'; +import { getTitle } from '../github/v3/getPullRequest/get-title'; +import { validateTargetBranch } from '../github/v4/validate-target-branch'; import { consoleLog } from '../logger'; -import { Target } from '../runSequentially'; +import { Target } from '../run-sequentially'; import { sequentially } from '../sequentially'; -import { Commit } from '../sourceCommit/parseSourceCommit'; -import { autoMergeNowOrLater } from './autoMergeNowOrLater'; -import { copySourcePullRequestLabelsToTargetPullRequest } from './copySourcePullRequestLabels'; -import { copySourcePullRequestReviewersToTargetPullRequest } from './copySourcePullRequestReviewersToTargetPullRequest'; -import { getBackportBranchName } from './getBackportBranchName'; -import { getMergeCommits } from './getMergeCommit'; -import { getTargetPRLabels } from './getTargetPRLabels'; -import { waitForCherrypick } from './waitForCherrypick'; +import type { Commit } from '../sourceCommit/parse-source-commit'; +import { autoMergeNowOrLater } from './auto-merge-now-or-later'; +import { copySourcePullRequestReviewersToTargetPullRequest } from './copy-source-pull-request-reviewers-to-target-pull-request'; +import { getBackportBranchName } from './get-backport-branch-name'; +import { getMergeCommits } from './get-merge-commit'; +import { getTargetPRLabels } from './getTargetPRLabels/get-target-prlabels'; +import { waitForCherrypick } from './wait-for-cherrypick'; export async function cherrypickAndCreateTargetPullRequest({ options, @@ -119,30 +116,23 @@ export async function cherrypickAndCreateTargetPullRequest({ ); } - // add labels to target pull request - if (options.targetPRLabels.length > 0) { - const labels = getTargetPRLabels({ - interactive: options.interactive, - targetPRLabels: options.targetPRLabels, - commits, - targetBranch, - }); + const targetPRLabels = getTargetPRLabels({ + interactive: options.interactive, + targetPRLabels: options.targetPRLabels, + copySourcePRLabels: options.copySourcePRLabels, + commits, + targetBranch, + }); + // add labels to target pull request + if (targetPRLabels.length > 0) { await addLabelsToPullRequest({ ...options, pullNumber: targetPullRequest.number, - labels, + labels: targetPRLabels, }); } - if (options.copySourcePRLabels) { - await copySourcePullRequestLabelsToTargetPullRequest( - options, - commits, - targetPullRequest.number, - ); - } - // make PR auto mergable if (options.autoMerge && !hasAnyCommitWithConflicts) { await autoMergeNowOrLater(options, targetPullRequest.number); diff --git a/src/lib/cherrypickAndCreateTargetPullRequest/copySourcePullRequestReviewersToTargetPullRequest.ts b/src/lib/cherrypickAndCreateTargetPullRequest/copy-source-pull-request-reviewers-to-target-pull-request.ts similarity index 54% rename from src/lib/cherrypickAndCreateTargetPullRequest/copySourcePullRequestReviewersToTargetPullRequest.ts rename to src/lib/cherrypickAndCreateTargetPullRequest/copy-source-pull-request-reviewers-to-target-pull-request.ts index 3c9378a0..11d2ca15 100644 --- a/src/lib/cherrypickAndCreateTargetPullRequest/copySourcePullRequestReviewersToTargetPullRequest.ts +++ b/src/lib/cherrypickAndCreateTargetPullRequest/copy-source-pull-request-reviewers-to-target-pull-request.ts @@ -1,8 +1,8 @@ -import { ValidConfigOptions } from '../../options/options'; -import { filterNil } from '../../utils/filterEmpty'; -import { addReviewersToPullRequest } from '../github/v3/addReviewersToPullRequest'; -import { getReviewersFromPullRequests } from '../github/v3/getReviewersFromPullRequests'; -import { Commit } from '../sourceCommit/parseSourceCommit'; +import type { ValidConfigOptions } from '../../options/options'; +import { filterNil } from '../../utils/filter-empty'; +import { addReviewersToPullRequest } from '../github/v3/add-reviewers-to-pull-request'; +import { getReviewersFromPullRequests } from '../github/v3/get-reviewers-from-pull-requests'; +import type { Commit } from '../sourceCommit/parse-source-commit'; export async function copySourcePullRequestReviewersToTargetPullRequest( options: ValidConfigOptions, diff --git a/src/lib/cherrypickAndCreateTargetPullRequest/copySourcePullRequestLabels.ts b/src/lib/cherrypickAndCreateTargetPullRequest/copySourcePullRequestLabels.ts deleted file mode 100644 index a6c22cbb..00000000 --- a/src/lib/cherrypickAndCreateTargetPullRequest/copySourcePullRequestLabels.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { ValidConfigOptions } from '../../options/options'; -import { addLabelsToPullRequest } from '../github/v3/addLabelsToPullRequest'; -import { Commit } from '../sourceCommit/parseSourceCommit'; - -export async function copySourcePullRequestLabelsToTargetPullRequest( - options: ValidConfigOptions, - commits: Commit[], - pullNumber: number, -) { - const labels = getNonBackportLabels(commits); - if (labels.length > 0) { - await addLabelsToPullRequest({ ...options, pullNumber, labels }); - } -} - -function getNonBackportLabels(commits: Commit[]) { - return commits.flatMap((commit) => { - if (!commit.sourcePullRequest) { - return []; - } - - const backportLabels = commit.targetPullRequestStates.map((pr) => pr.label); - const labels = commit.sourcePullRequest.labels.filter( - (label) => !backportLabels.includes(label), - ); - - return labels; - }); -} diff --git a/src/lib/cherrypickAndCreateTargetPullRequest/getBackportBranchName.test.ts b/src/lib/cherrypickAndCreateTargetPullRequest/get-backport-branch-name.test.ts similarity index 93% rename from src/lib/cherrypickAndCreateTargetPullRequest/getBackportBranchName.test.ts rename to src/lib/cherrypickAndCreateTargetPullRequest/get-backport-branch-name.test.ts index 5350c184..cf8b9780 100644 --- a/src/lib/cherrypickAndCreateTargetPullRequest/getBackportBranchName.test.ts +++ b/src/lib/cherrypickAndCreateTargetPullRequest/get-backport-branch-name.test.ts @@ -1,6 +1,6 @@ -import { Commit } from '../../entrypoint.api'; -import { ValidConfigOptions } from '../../options/options'; -import { getBackportBranchName } from './getBackportBranchName'; +import type { Commit } from '../../entrypoint.api'; +import type { ValidConfigOptions } from '../../options/options'; +import { getBackportBranchName } from './get-backport-branch-name'; describe('getBackportBranchName', () => { describe('when options.backportBranchName is not set', () => { diff --git a/src/lib/cherrypickAndCreateTargetPullRequest/getBackportBranchName.ts b/src/lib/cherrypickAndCreateTargetPullRequest/get-backport-branch-name.ts similarity index 86% rename from src/lib/cherrypickAndCreateTargetPullRequest/getBackportBranchName.ts rename to src/lib/cherrypickAndCreateTargetPullRequest/get-backport-branch-name.ts index 13f7625b..49ac53fd 100644 --- a/src/lib/cherrypickAndCreateTargetPullRequest/getBackportBranchName.ts +++ b/src/lib/cherrypickAndCreateTargetPullRequest/get-backport-branch-name.ts @@ -1,7 +1,7 @@ import Handlebars from 'handlebars'; -import { Commit } from '../../entrypoint.api'; -import { ValidConfigOptions } from '../../options/options'; -import { getShortSha } from '../github/commitFormatters'; +import type { Commit } from '../../entrypoint.api'; +import type { ValidConfigOptions } from '../../options/options'; +import { getShortSha } from '../github/commit-formatters'; /* * Returns the name of the backport branch without remote name diff --git a/src/lib/cherrypickAndCreateTargetPullRequest/getCommitsWithoutBackports.test.ts b/src/lib/cherrypickAndCreateTargetPullRequest/get-commits-without-backports.test.ts similarity index 98% rename from src/lib/cherrypickAndCreateTargetPullRequest/getCommitsWithoutBackports.test.ts rename to src/lib/cherrypickAndCreateTargetPullRequest/get-commits-without-backports.test.ts index b3adb9eb..c044e123 100644 --- a/src/lib/cherrypickAndCreateTargetPullRequest/getCommitsWithoutBackports.test.ts +++ b/src/lib/cherrypickAndCreateTargetPullRequest/get-commits-without-backports.test.ts @@ -1,9 +1,9 @@ import stripAnsi from 'strip-ansi'; -import { ValidConfigOptions } from '../../options/options'; +import type { ValidConfigOptions } from '../../options/options'; import * as git from '../git'; -import * as fetchCommitsByAuthorModule from '../github/v4/fetchCommits/fetchCommitsByAuthor'; -import { TargetPullRequest } from '../sourceCommit/getPullRequestStates'; -import { getCommitsWithoutBackports } from './getCommitsWithoutBackports'; +import * as fetchCommitsByAuthorModule from '../github/v4/fetchCommits/fetch-commits-by-author'; +import type { TargetPullRequest } from '../sourceCommit/get-pull-request-states'; +import { getCommitsWithoutBackports } from './get-commits-without-backports'; describe('getCommitsWithoutBackports', () => { afterEach(() => { diff --git a/src/lib/cherrypickAndCreateTargetPullRequest/getCommitsWithoutBackports.ts b/src/lib/cherrypickAndCreateTargetPullRequest/get-commits-without-backports.ts similarity index 93% rename from src/lib/cherrypickAndCreateTargetPullRequest/getCommitsWithoutBackports.ts rename to src/lib/cherrypickAndCreateTargetPullRequest/get-commits-without-backports.ts index 2d279573..a42f7961 100644 --- a/src/lib/cherrypickAndCreateTargetPullRequest/getCommitsWithoutBackports.ts +++ b/src/lib/cherrypickAndCreateTargetPullRequest/get-commits-without-backports.ts @@ -1,9 +1,9 @@ import chalk from 'chalk'; -import { Commit } from '../../entrypoint.api'; -import { ValidConfigOptions } from '../../options/options'; +import type { Commit } from '../../entrypoint.api'; +import type { ValidConfigOptions } from '../../options/options'; import { getIsCommitInBranch } from '../git'; -import { getFirstLine } from '../github/commitFormatters'; -import { fetchCommitsByAuthor } from '../github/v4/fetchCommits/fetchCommitsByAuthor'; +import { getFirstLine } from '../github/commit-formatters'; +import { fetchCommitsByAuthor } from '../github/v4/fetchCommits/fetch-commits-by-author'; // when the user is facing a git conflict we should help them understand // why the conflict occurs. In many cases it's because one or more commits haven't been backported yet diff --git a/src/lib/cherrypickAndCreateTargetPullRequest/getMergeCommit.ts b/src/lib/cherrypickAndCreateTargetPullRequest/get-merge-commit.ts similarity index 81% rename from src/lib/cherrypickAndCreateTargetPullRequest/getMergeCommit.ts rename to src/lib/cherrypickAndCreateTargetPullRequest/get-merge-commit.ts index cce96211..0af1cc11 100644 --- a/src/lib/cherrypickAndCreateTargetPullRequest/getMergeCommit.ts +++ b/src/lib/cherrypickAndCreateTargetPullRequest/get-merge-commit.ts @@ -1,7 +1,7 @@ -import { Commit } from '../../entrypoint.api'; -import { ValidConfigOptions } from '../../options/options'; +import type { Commit } from '../../entrypoint.api'; +import type { ValidConfigOptions } from '../../options/options'; import { getIsMergeCommit, getShasInMergeCommit } from '../git'; -import { fetchCommitBySha } from '../github/v4/fetchCommits/fetchCommitBySha'; +import { fetchCommitBySha } from '../github/v4/fetchCommits/fetch-commit-by-sha'; export async function getMergeCommits( options: ValidConfigOptions, diff --git a/src/lib/cherrypickAndCreateTargetPullRequest/getTargetPRLabels.test.ts b/src/lib/cherrypickAndCreateTargetPullRequest/getTargetPRLabels/get-configured-target-pr-labels.test.ts similarity index 55% rename from src/lib/cherrypickAndCreateTargetPullRequest/getTargetPRLabels.test.ts rename to src/lib/cherrypickAndCreateTargetPullRequest/getTargetPRLabels/get-configured-target-pr-labels.test.ts index d7c7b39b..488089ef 100644 --- a/src/lib/cherrypickAndCreateTargetPullRequest/getTargetPRLabels.test.ts +++ b/src/lib/cherrypickAndCreateTargetPullRequest/getTargetPRLabels/get-configured-target-pr-labels.test.ts @@ -1,5 +1,5 @@ -import { Commit } from '../../entrypoint.api'; -import { getTargetPRLabels } from './getTargetPRLabels'; +import type { Commit } from '../../../entrypoint.api'; +import { getConfiguredTargetPRLabels } from './get-configured-target-pr-labels'; const commits: Commit[] = [ { @@ -25,7 +25,6 @@ const commits: Commit[] = [ }, sourceBranch: 'master', targetPullRequestStates: [ - // PR to 7.11 branch was created automatically using the label `backport-to-7.11` { url: 'https://github.com/elastic/kibana/pull/88289', number: 88289, @@ -39,8 +38,6 @@ const commits: Commit[] = [ message: 'Fix major bug (#88188) (#88289)', }, }, - - // PR to 7.x branch was created manually (not via labels) and does not contain branchLabelMappingKey { url: 'https://github.com/elastic/kibana/pull/88288', number: 88288, @@ -55,10 +52,10 @@ const commits: Commit[] = [ }, ]; -describe('getTargetPRLabels', () => { +describe('getConfiguredTargetPRLabels', () => { describe('replaces template values', () => { it('replaces {{targetBranch}}', () => { - const labels = getTargetPRLabels({ + const labels = getConfiguredTargetPRLabels({ interactive: false, commits, targetPRLabels: ['backported-to-{{targetBranch}}'], @@ -68,7 +65,7 @@ describe('getTargetPRLabels', () => { }); it('replaces {{sourceBranch}}', () => { - const labels = getTargetPRLabels({ + const labels = getConfiguredTargetPRLabels({ interactive: false, commits, targetPRLabels: ['backported-from-{{sourceBranch}}'], @@ -78,101 +75,71 @@ describe('getTargetPRLabels', () => { }); }); - describe('when label is static', () => { - describe('and when interactive=false', () => { - it('adds static label for 7.11', () => { - const labels = getTargetPRLabels({ + describe('static labels', () => { + it('keeps static labels regardless of interactivity', () => { + expect( + getConfiguredTargetPRLabels({ interactive: false, commits, targetPRLabels: ['some-static-label'], targetBranch: '7.11', - }); - expect(labels).toEqual(['some-static-label']); - }); - - it('adds static label for 7.x', () => { - const labels = getTargetPRLabels({ - interactive: false, - commits, - targetPRLabels: ['some-static-label'], - targetBranch: '7.x', - }); - expect(labels).toEqual(['some-static-label']); - }); - }); + }), + ).toEqual(['some-static-label']); - describe('and when interactive=true', () => { - it('adds static label for 7.x', () => { - const labels = getTargetPRLabels({ + expect( + getConfiguredTargetPRLabels({ interactive: true, commits, - targetPRLabels: ['backport'], - targetBranch: '7.x', - }); - expect(labels).toEqual(['backport']); - }); + targetPRLabels: ['some-static-label'], + targetBranch: '7.11', + }), + ).toEqual(['some-static-label']); }); }); - describe('when label is dynamic', () => { - describe('and when interactive=false', () => { - it('adds dynamic label for 7.11', () => { - const labels = getTargetPRLabels({ + describe('dynamic labels', () => { + it('applies dynamic label when branch mapping is available', () => { + expect( + getConfiguredTargetPRLabels({ interactive: false, commits, targetPRLabels: ['backport-$1'], targetBranch: '7.11', - }); - expect(labels).toEqual(['backport-7.11']); - }); + }), + ).toEqual(['backport-7.11']); }); - describe('when interactive=true', () => { - it('adds dynamic label for 7.11', () => { - const labels = getTargetPRLabels({ - interactive: false, - commits, - targetPRLabels: ['backport-$1'], - targetBranch: '7.11', - }); - expect(labels).toEqual(['backport-7.11']); - }); - - it('does not add dynamic label for 7.x', () => { - const labels = getTargetPRLabels({ + it('drops dynamic label when interactive and mapping is missing', () => { + expect( + getConfiguredTargetPRLabels({ interactive: true, commits, targetPRLabels: ['backport-$1'], targetBranch: '7.x', - }); - expect(labels).toEqual([]); - }); + }), + ).toEqual([]); }); }); describe('multiple dynamic labels', () => { - describe('interactive=false', () => { - it('adds dynamic and static labels for 7.11', () => { - const labels = getTargetPRLabels({ + it('keeps resolved labels and drops unresolved ones based on interactivity', () => { + expect( + getConfiguredTargetPRLabels({ interactive: false, commits, targetPRLabels: ['backport-$1', '$1', 'my-static-label'], targetBranch: '7.11', - }); - expect(labels).toEqual(['backport-7.11', '7.11', 'my-static-label']); - }); - }); + }), + ).toEqual(['backport-7.11', '7.11', 'my-static-label']); - describe('interactive=true', () => { - it('only add the static labels for 7.x', () => { - const labels = getTargetPRLabels({ + expect( + getConfiguredTargetPRLabels({ interactive: true, commits, targetPRLabels: ['backport-$1', '$1', 'my-static-label'], targetBranch: '7.x', - }); - expect(labels).toEqual(['my-static-label']); - }); + }), + ).toEqual(['my-static-label']); }); }); }); diff --git a/src/lib/cherrypickAndCreateTargetPullRequest/getTargetPRLabels.ts b/src/lib/cherrypickAndCreateTargetPullRequest/getTargetPRLabels/get-configured-target-pr-labels.ts similarity index 65% rename from src/lib/cherrypickAndCreateTargetPullRequest/getTargetPRLabels.ts rename to src/lib/cherrypickAndCreateTargetPullRequest/getTargetPRLabels/get-configured-target-pr-labels.ts index fc6d1d16..7fb43141 100644 --- a/src/lib/cherrypickAndCreateTargetPullRequest/getTargetPRLabels.ts +++ b/src/lib/cherrypickAndCreateTargetPullRequest/getTargetPRLabels/get-configured-target-pr-labels.ts @@ -1,31 +1,13 @@ -import { uniq } from 'lodash'; -import { Commit } from '../../entrypoint.api'; -import { filterNil } from '../../utils/filterEmpty'; -import { getSourceBranchFromCommits } from '../getSourceBranchFromCommits'; -import { logger } from '../logger'; - -export function getTargetPRLabels({ - interactive, - targetPRLabels, - commits, - targetBranch, -}: { - interactive: boolean; - targetPRLabels: string[]; - commits: Commit[]; - targetBranch: string; -}) { - const labels = getLabels({ - commits, - targetBranch, - targetPRLabels, - interactive, - }); - - return uniq(labels); -} - -function getLabels({ +import type { Commit } from '../../../entrypoint.api'; +import { filterNil } from '../../../utils/filter-empty'; +import { getSourceBranchFromCommits } from '../../get-source-branch-from-commits'; +import { logger } from '../../logger'; + +// Resolve labels defined in configuration (`targetPRLabels`) into their concrete +// values for the current target branch. This includes expanding regex captures, +// replacing template placeholders and skipping dynamic labels when we lack +// branch mapping context in interactive mode. +export function getConfiguredTargetPRLabels({ commits, targetBranch, targetPRLabels, diff --git a/src/lib/cherrypickAndCreateTargetPullRequest/getTargetPRLabels/get-source-pr-labels-to-copy.test.ts b/src/lib/cherrypickAndCreateTargetPullRequest/getTargetPRLabels/get-source-pr-labels-to-copy.test.ts new file mode 100644 index 00000000..adae2ea7 --- /dev/null +++ b/src/lib/cherrypickAndCreateTargetPullRequest/getTargetPRLabels/get-source-pr-labels-to-copy.test.ts @@ -0,0 +1,90 @@ +import type { Commit } from '../../sourceCommit/parse-source-commit'; +import { getSourcePRLabelsToCopy } from './get-source-pr-labels-to-copy'; + +const commits: Commit[] = [ + { + author: { name: 'Søren Louv-Jansen', email: 'sorenlouv@gmail.com' }, + sourceBranch: 'main', + suggestedTargetBranches: [], + sourceCommit: { + branchLabelMapping: {}, + committedDate: '2024-01-01T00:00:00Z', + message: 'Some fix (#123)', + sha: 'abc123', + }, + sourcePullRequest: { + labels: [ + 'development', + 'version-33', + 'release_note:fix', + 'backport-to-7.x', + ], + number: 123, + title: 'Some fix', + url: 'https://github.com/example/repo/pull/123', + mergeCommit: { + message: 'Some fix (#123)', + sha: 'abc123', + }, + }, + targetPullRequestStates: [ + { + branch: '7.x', + label: 'backport-to-7.x', + number: 456, + state: 'OPEN', + url: 'https://github.com/example/repo/pull/456', + }, + ], + }, +]; + +describe('getLabelsToCopy', () => { + it('copies no labels when option is false', () => { + const labels = getSourcePRLabelsToCopy({ + commits, + copySourcePRLabels: false, + }); + expect(labels).toEqual([]); + }); + + it('copies all non-backport labels when option is true', () => { + const labels = getSourcePRLabelsToCopy({ + commits, + copySourcePRLabels: true, + }); + expect(labels).toEqual(['development', 'version-33', 'release_note:fix']); + }); + + it('allows regex to target backport labels when provided', () => { + const labels = getSourcePRLabelsToCopy({ + commits, + copySourcePRLabels: ['^backport-to-7'], + }); + expect(labels).toEqual(['backport-to-7.x']); + }); + + it('copies labels matching provided regex patterns', () => { + const labels = getSourcePRLabelsToCopy({ + commits, + copySourcePRLabels: ['^version-\\d+$', '^release_note:\\w+$'], + }); + expect(labels).toEqual(['version-33', 'release_note:fix']); + }); + + it('does not copy labels when no labels match the regex patterns', () => { + const labels = getSourcePRLabelsToCopy({ + commits, + copySourcePRLabels: ['^release-only$'], + }); + expect(labels).toEqual([]); + }); + + it('supports single regex string configuration', () => { + const labels = getSourcePRLabelsToCopy({ + commits, + copySourcePRLabels: '^release_note:\\w+$', + }); + expect(labels).toEqual(['release_note:fix']); + }); +}); diff --git a/src/lib/cherrypickAndCreateTargetPullRequest/getTargetPRLabels/get-source-pr-labels-to-copy.ts b/src/lib/cherrypickAndCreateTargetPullRequest/getTargetPRLabels/get-source-pr-labels-to-copy.ts new file mode 100644 index 00000000..a5fbb653 --- /dev/null +++ b/src/lib/cherrypickAndCreateTargetPullRequest/getTargetPRLabels/get-source-pr-labels-to-copy.ts @@ -0,0 +1,47 @@ +import type { ValidConfigOptions } from '../../../options/options'; +import type { Commit } from '../../sourceCommit/parse-source-commit'; + +export function getSourcePRLabelsToCopy({ + commits, + copySourcePRLabels, +}: { + commits: Commit[]; + copySourcePRLabels: ValidConfigOptions['copySourcePRLabels']; +}) { + if (copySourcePRLabels === true) { + return commits.flatMap((commit) => { + if (!commit.sourcePullRequest) { + return []; + } + + const backportLabels = commit.targetPullRequestStates.map( + (pr) => pr.label, + ); + + return commit.sourcePullRequest.labels.filter( + (label) => !backportLabels.includes(label), + ); + }); + } + + const patterns = Array.isArray(copySourcePRLabels) + ? copySourcePRLabels + : typeof copySourcePRLabels === 'string' + ? [copySourcePRLabels] + : []; + + if (patterns.length === 0) { + return []; + } + + const regexes = patterns.map((pattern) => new RegExp(pattern)); + return commits.flatMap((commit) => { + if (!commit.sourcePullRequest) { + return []; + } + + return commit.sourcePullRequest.labels.filter((label) => + regexes.some((regex) => regex.test(label)), + ); + }); +} diff --git a/src/lib/cherrypickAndCreateTargetPullRequest/getTargetPRLabels/get-target-prlabels.ts b/src/lib/cherrypickAndCreateTargetPullRequest/getTargetPRLabels/get-target-prlabels.ts new file mode 100644 index 00000000..4cca475f --- /dev/null +++ b/src/lib/cherrypickAndCreateTargetPullRequest/getTargetPRLabels/get-target-prlabels.ts @@ -0,0 +1,32 @@ +import { uniq } from 'lodash'; +import type { Commit } from '../../../entrypoint.api'; +import { getConfiguredTargetPRLabels } from './get-configured-target-pr-labels'; +import { getSourcePRLabelsToCopy } from './get-source-pr-labels-to-copy'; + +export function getTargetPRLabels({ + interactive, + targetPRLabels, + commits, + targetBranch, + copySourcePRLabels, +}: { + interactive: boolean; + targetPRLabels: string[]; + commits: Commit[]; + targetBranch: string; + copySourcePRLabels: boolean | string | string[]; +}) { + const configuredTargetPRLabels = getConfiguredTargetPRLabels({ + commits, + targetBranch, + targetPRLabels, + interactive, + }); + + const sourcePRLabelsToCopy = getSourcePRLabelsToCopy({ + commits, + copySourcePRLabels: copySourcePRLabels, + }); + + return uniq([...configuredTargetPRLabels, ...sourcePRLabelsToCopy]); +} diff --git a/src/lib/cherrypickAndCreateTargetPullRequest/waitForCherrypick.ts b/src/lib/cherrypickAndCreateTargetPullRequest/wait-for-cherrypick.ts similarity index 92% rename from src/lib/cherrypickAndCreateTargetPullRequest/waitForCherrypick.ts rename to src/lib/cherrypickAndCreateTargetPullRequest/wait-for-cherrypick.ts index 72f4de51..9ee80659 100644 --- a/src/lib/cherrypickAndCreateTargetPullRequest/waitForCherrypick.ts +++ b/src/lib/cherrypickAndCreateTargetPullRequest/wait-for-cherrypick.ts @@ -1,26 +1,29 @@ import chalk from 'chalk'; import { difference, isEmpty } from 'lodash'; -import { BackportError, Commit } from '../../entrypoint.api'; -import { Ora, ora } from '../../lib/ora'; -import { ValidConfigOptions } from '../../options/options'; -import { CommitAuthor, getCommitAuthor } from '../author'; +import type { Commit } from '../../entrypoint.api'; +import { BackportError } from '../../entrypoint.api'; +import type { Ora } from '../../lib/ora'; +import { ora } from '../../lib/ora'; +import type { ValidConfigOptions } from '../../options/options'; +import type { CommitAuthor } from '../author'; +import { getCommitAuthor } from '../author'; import { spawnPromise } from '../child-process-promisified'; import { getRepoPath } from '../env'; +import type { ConflictingFiles } from '../git'; import { CherrypicklikeFunction, cherrypick, commitChanges, - ConflictingFiles, getConflictingFiles, getUnstagedFiles, gitAddAll, patchApply, } from '../git'; -import { getFirstLine } from '../github/commitFormatters'; +import { getFirstLine } from '../github/commit-formatters'; import { consoleLog, logger } from '../logger'; import { confirmPrompt } from '../prompts'; -import { Target } from '../runSequentially'; -import { getCommitsWithoutBackports } from './getCommitsWithoutBackports'; +import { Target } from '../run-sequentially'; +import { getCommitsWithoutBackports } from './get-commits-without-backports'; export async function waitForCherrypick( options: ValidConfigOptions, diff --git a/src/lib/env.test.ts b/src/lib/env.test.ts index 7d0abfe6..c6a5c55f 100644 --- a/src/lib/env.test.ts +++ b/src/lib/env.test.ts @@ -1,5 +1,5 @@ import os from 'os'; -import { ValidConfigOptions } from '../options/options'; +import type { ValidConfigOptions } from '../options/options'; import { getGlobalConfigPath, getRepoPath } from './env'; describe('env', () => { diff --git a/src/lib/env.ts b/src/lib/env.ts index 3b7da1f3..492a571d 100644 --- a/src/lib/env.ts +++ b/src/lib/env.ts @@ -1,7 +1,7 @@ import { homedir } from 'os'; import path from 'path'; -import { ValidConfigOptions } from '../options/options'; -import { LogLevel } from './logger'; +import type { ValidConfigOptions } from '../options/options'; +import type { LogLevel } from './logger'; export function getBackportDirPath() { return path.join(homedir(), '.backport'); diff --git a/src/lib/getCommits.ts b/src/lib/get-commits.ts similarity index 90% rename from src/lib/getCommits.ts rename to src/lib/get-commits.ts index 6fdc3343..5ed2e442 100644 --- a/src/lib/getCommits.ts +++ b/src/lib/get-commits.ts @@ -1,11 +1,11 @@ import chalk from 'chalk'; -import { ValidConfigOptions } from '../options/options'; -import { BackportError } from './BackportError'; -import { getFirstLine, getShortSha } from './github/commitFormatters'; -import { fetchCommitsByPullNumber } from './github/v4/fetchCommits/fetchCommitByPullNumber'; -import { fetchCommitBySha } from './github/v4/fetchCommits/fetchCommitBySha'; -import { fetchCommitsByAuthor } from './github/v4/fetchCommits/fetchCommitsByAuthor'; -import { fetchPullRequestsBySearchQuery } from './github/v4/fetchCommits/fetchPullRequestsBySearchQuery'; +import type { ValidConfigOptions } from '../options/options'; +import { BackportError } from './backport-error'; +import { getFirstLine, getShortSha } from './github/commit-formatters'; +import { fetchCommitsByPullNumber } from './github/v4/fetchCommits/fetch-commit-by-pull-number'; +import { fetchCommitBySha } from './github/v4/fetchCommits/fetch-commit-by-sha'; +import { fetchCommitsByAuthor } from './github/v4/fetchCommits/fetch-commits-by-author'; +import { fetchPullRequestsBySearchQuery } from './github/v4/fetchCommits/fetch-pull-requests-by-search-query'; import { ora } from './ora'; import { promptForCommits } from './prompts'; diff --git a/src/lib/getSourceBranchFromCommits.ts b/src/lib/get-source-branch-from-commits.ts similarity index 89% rename from src/lib/getSourceBranchFromCommits.ts rename to src/lib/get-source-branch-from-commits.ts index 4bbece3b..91739590 100644 --- a/src/lib/getSourceBranchFromCommits.ts +++ b/src/lib/get-source-branch-from-commits.ts @@ -1,4 +1,4 @@ -import { Commit } from '../entrypoint.api'; +import type { Commit } from '../entrypoint.api'; export function getSourceBranchFromCommits(commits: Commit[]) { // sourceBranch should be the same for all commits, so picking `sourceBranch` from the first commit should be fine 🤞 diff --git a/src/lib/getSourceDirectory.ts b/src/lib/get-source-directory.ts similarity index 95% rename from src/lib/getSourceDirectory.ts rename to src/lib/get-source-directory.ts index 306262f1..f51fd3de 100644 --- a/src/lib/getSourceDirectory.ts +++ b/src/lib/get-source-directory.ts @@ -3,9 +3,9 @@ import { isEmpty, isString } from 'lodash'; import { DirectoryChoice, DirectoryChoiceOrString, -} from '../options/ConfigOptions'; +} from '../options/config-options'; import { ValidConfigOptions } from '../options/options'; -import { BackportError } from './BackportError'; +import { BackportError } from './backport-error'; import { promptForDirectories } from './prompts'; export async function getSourceDirectory({ diff --git a/src/lib/getTargetBranches.test.ts b/src/lib/get-target-branches.test.ts similarity index 95% rename from src/lib/getTargetBranches.test.ts rename to src/lib/get-target-branches.test.ts index 2380cb67..e71d8a80 100644 --- a/src/lib/getTargetBranches.test.ts +++ b/src/lib/get-target-branches.test.ts @@ -1,9 +1,12 @@ -import { TargetBranchChoice } from '../options/ConfigOptions'; -import { ValidConfigOptions } from '../options/options'; -import { SpyHelper } from '../types/SpyHelper'; -import { getTargetBranches, getTargetBranchChoices } from './getTargetBranches'; +import type { TargetBranchChoice } from '../options/config-options'; +import type { ValidConfigOptions } from '../options/options'; +import type { SpyHelper } from '../types/spy-helper'; +import { + getTargetBranches, + getTargetBranchChoices, +} from './get-target-branches'; import * as prompts from './prompts'; -import { Commit } from './sourceCommit/parseSourceCommit'; +import type { Commit } from './sourceCommit/parse-source-commit'; describe('getTargetBranches', () => { let promptSpy: SpyHelper; diff --git a/src/lib/getTargetBranches.ts b/src/lib/get-target-branches.ts similarity index 88% rename from src/lib/getTargetBranches.ts rename to src/lib/get-target-branches.ts index 4e1ade24..2489ec53 100644 --- a/src/lib/getTargetBranches.ts +++ b/src/lib/get-target-branches.ts @@ -1,10 +1,10 @@ import { isEmpty, isString } from 'lodash'; -import { TargetBranchChoiceOrString } from '../options/ConfigOptions'; -import { ValidConfigOptions } from '../options/options'; -import { BackportError } from './BackportError'; -import { getSourceBranchFromCommits } from './getSourceBranchFromCommits'; +import type { TargetBranchChoiceOrString } from '../options/config-options'; +import type { ValidConfigOptions } from '../options/options'; +import { BackportError } from './backport-error'; +import { getSourceBranchFromCommits } from './get-source-branch-from-commits'; import { promptForTargetBranches } from './prompts'; -import { Commit } from './sourceCommit/parseSourceCommit'; +import type { Commit } from './sourceCommit/parse-source-commit'; export async function getTargetBranches( options: ValidConfigOptions, diff --git a/src/lib/getTargetDirectories.ts b/src/lib/get-target-directories.ts similarity index 97% rename from src/lib/getTargetDirectories.ts rename to src/lib/get-target-directories.ts index 6533235a..4e6e9ac3 100644 --- a/src/lib/getTargetDirectories.ts +++ b/src/lib/get-target-directories.ts @@ -1,6 +1,6 @@ import { isEmpty, isString } from 'lodash'; import { ValidConfigOptions } from '../options/options'; -import { BackportError } from './BackportError'; +import { BackportError } from './backport-error'; import { promptForDirectories } from './prompts'; export async function getTargetDirectories({ diff --git a/src/lib/git.private.test.ts b/src/lib/git.private.test.ts index 13d16dbd..c25abcbd 100644 --- a/src/lib/git.private.test.ts +++ b/src/lib/git.private.test.ts @@ -1,11 +1,10 @@ -import { access } from 'fs/promises'; -import fs from 'fs/promises'; +import fs, { access } from 'fs/promises'; import path from 'path'; import makeDir from 'make-dir'; -import { Commit } from '../entrypoint.api'; -import { ValidConfigOptions } from '../options/options'; -import { exec } from '../test/childProcessHelper'; -import { getDevAccessToken } from '../test/private/getDevAccessToken'; +import type { Commit } from '../entrypoint.api'; +import type { ValidConfigOptions } from '../options/options'; +import { exec } from '../test/child-process-helper'; +import { getDevAccessToken } from '../test/private/get-dev-access-token'; import { getSandboxPath, resetSandbox } from '../test/sandbox'; import * as childProcess from './child-process-promisified'; import { @@ -13,18 +12,18 @@ import { cloneRepo, commitChanges, createBackportBranch, - getShasInMergeCommit, + deleteRemote, getGitProjectRootPath, getIsCommitInBranch, getIsMergeCommit, getLocalConfigFileCommitDate, getLocalSourceRepoPath, + getShasInMergeCommit, isLocalConfigFileModified, isLocalConfigFileUntracked, pushBackportBranch, - deleteRemote, } from './git'; -import { getShortSha } from './github/commitFormatters'; +import { getShortSha } from './github/commit-formatters'; jest.unmock('del'); jest.unmock('make-dir'); @@ -390,7 +389,7 @@ describe('git.private', () => { ['cherry-pick', '3a0934d1f646e4a50571cb4b137ad2b08d2e7b18'], cwd, ); - } catch (e) { + } catch { // swallow } @@ -600,7 +599,7 @@ describe('git.private', () => { subDirectory = `${sandboxPath}/foo-dir`; await resetSandbox(sandboxPath); await gitInit(sandboxPath); - makeDir(subDirectory); + await makeDir(subDirectory); }); it('returns the root dir', async () => { @@ -760,7 +759,6 @@ async function createAndStageFile({ await fs.writeFile(path.join(cwd, filename), content); await childProcess.spawnPromise('git', ['add', `${filename}`], cwd); } catch (e) { - // eslint-disable-next-line no-console console.log('"createAndStageFile" threw an error', { filename, content, @@ -781,7 +779,7 @@ async function getCurrentSha(cwd: string) { async function getCurrentBranchName(cwd: string) { const { stdout } = await exec('git rev-parse --abbrev-ref HEAD', { cwd }); - return stdout.trim(); + return (stdout as string).trim(); } async function getMostRecentCommitMessage(cwd: string) { @@ -793,7 +791,6 @@ async function getMostRecentCommitMessage(cwd: string) { ); return stdout.trim(); } catch (e) { - // eslint-disable-next-line no-console console.log('"getMostRecentCommitMessage" threw an error', cwd); throw e; } @@ -807,7 +804,6 @@ async function gitClone(repoUrl: string, cwd: string) { cwd, ); } catch (e) { - // eslint-disable-next-line no-console console.log('Git clone failed'); throw e; } @@ -817,7 +813,6 @@ async function gitInit(cwd: string) { try { await childProcess.spawnPromise('git', ['init'], cwd); } catch (e) { - // eslint-disable-next-line no-console console.log('Git init failed'); throw e; } diff --git a/src/lib/git.test.ts b/src/lib/git.test.ts index 4db7a7b5..29ca91e0 100644 --- a/src/lib/git.test.ts +++ b/src/lib/git.test.ts @@ -1,6 +1,6 @@ import os from 'os'; -import { ValidConfigOptions } from '../options/options'; -import { SpyHelper } from '../types/SpyHelper'; +import type { ValidConfigOptions } from '../options/options'; +import type { SpyHelper } from '../types/spy-helper'; import * as childProcess from './child-process-promisified'; import { addRemote, @@ -15,8 +15,10 @@ import { isLocalConfigFileUntracked, isLocalConfigFileModified, getRepoInfoFromGitRemotes, + getRerereConfig, + getStagedFiles, } from './git'; -import { Commit } from './sourceCommit/parseSourceCommit'; +import type { Commit } from './sourceCommit/parse-source-commit'; beforeEach(() => { jest.spyOn(os, 'homedir').mockReturnValue('/myHomeDir'); @@ -42,7 +44,7 @@ describe('getUnstagedFiles', () => { repoName: 'kibana', } as ValidConfigOptions; - await expect(await getUnstagedFiles(options)).toEqual([ + await expect(getUnstagedFiles(options)).resolves.toEqual([ '/myHomeDir/.backport/repositories/elastic/kibana/conflicting-file.txt', '/myHomeDir/.backport/repositories/elastic/kibana/conflicting-file2.txt', ]); @@ -61,7 +63,44 @@ describe('getUnstagedFiles', () => { repoName: 'kibana', } as ValidConfigOptions; - await expect(await getUnstagedFiles(options)).toEqual([]); + await expect(getUnstagedFiles(options)).resolves.toEqual([]); + }); +}); + +describe('getStagedFiles', () => { + it('should split lines and remove empty', async () => { + jest.spyOn(childProcess, 'spawnPromise').mockResolvedValueOnce({ + stdout: 'staged-file.txt\nstaged-file2.txt\n', + stderr: '', + code: 0, + cmdArgs: [], + }); + + const options = { + repoOwner: 'elastic', + repoName: 'kibana', + } as ValidConfigOptions; + + await expect(getStagedFiles(options)).resolves.toEqual([ + '/myHomeDir/.backport/repositories/elastic/kibana/staged-file.txt', + '/myHomeDir/.backport/repositories/elastic/kibana/staged-file2.txt', + ]); + }); + + it('should not error on empty', async () => { + jest.spyOn(childProcess, 'spawnPromise').mockResolvedValueOnce({ + stdout: '', + stderr: '', + code: 0, + cmdArgs: [], + }); + + const options = { + repoOwner: 'elastic', + repoName: 'kibana', + } as ValidConfigOptions; + + await expect(getStagedFiles(options)).resolves.toEqual([]); }); }); @@ -517,6 +556,9 @@ describe('cherrypick', () => { ) // mock getUnstagedFiles + .mockResolvedValueOnce({ stdout: '', stderr: '', code: 0, cmdArgs: [] }) + + // mock getStagedFiles .mockResolvedValueOnce({ stdout: '', stderr: '', code: 0, cmdArgs: [] }); expect( @@ -619,6 +661,414 @@ Or refer to the git documentation for more information: https://git-scm.com/docs }), ).rejects.toThrowErrorMatchingInlineSnapshot(`"non-cherrypick error"`); }); + + it('should return needsResolve:false when rerere.enabled + rerere.autoUpdate and all files are staged', async () => { + const spawnSpy = jest.spyOn(childProcess, 'spawnPromise'); + + spawnSpy.mockImplementation(async (cmd, args) => { + if (args.includes('cherry-pick')) { + throw new childProcess.SpawnError({ + code: 1, + cmdArgs: ['cherry-pick', '-x', 'abcd'], + stdout: '', + stderr: 'error: could not apply abc1234... some commit message', + }); + } + + const isDiff = args.includes('--no-pager') && args.includes('diff'); + + // Mock getConflictingFiles (git diff --check) - no conflicts found + if (isDiff && args.includes('--check')) { + return { stdout: '', stderr: '', code: 0, cmdArgs: args }; + } + + // Mock getUnstagedFiles (git diff --name-only) - no unstaged files + if ( + isDiff && + args.includes('--name-only') && + !args.includes('--cached') + ) { + return { stdout: '', stderr: '', code: 0, cmdArgs: args }; + } + + // Mock getStagedFiles (git diff --name-only --cached) - has staged files + if (isDiff && args.includes('--name-only') && args.includes('--cached')) { + return { + stdout: 'resolved-file.txt\nother-file.js', + stderr: '', + code: 0, + cmdArgs: args, + }; + } + + // Mock rerere config - enabled with autoUpdate + if (args.includes('config') && args.includes('rerere.enabled')) { + return { stdout: 'true\n', stderr: '', code: 0, cmdArgs: args }; + } + + if (args.includes('config') && args.includes('rerere.autoUpdate')) { + return { stdout: 'true\n', stderr: '', code: 0, cmdArgs: args }; + } + + throw new Error(`Unexpected git command: ${cmd} ${args.join(' ')}`); + }); + + expect( + await cherrypick({ + options, + sha: 'abcd', + commitAuthor, + }), + ).toEqual({ + conflictingFiles: [], + unstagedFiles: [], + needsResolving: false, + }); + }); + + it('should return needsResolving:true when rerere.enabled && autoUpdate && mixed staged + unstaged', async () => { + const base = '/myHomeDir/.backport/repositories/elastic/kibana'; + const spawnSpy = jest.spyOn(childProcess, 'spawnPromise'); + spawnSpy.mockImplementation(async (cmd, args) => { + if (args.includes('cherry-pick')) { + throw new childProcess.SpawnError({ + code: 1, + cmdArgs: ['cherry-pick', '-x', 'abcd'], + stdout: '', + stderr: 'error: could not apply abc1234... some commit message', + }); + } + const isDiff = args.includes('--no-pager') && args.includes('diff'); + + // getConflictingFiles: none + if (isDiff && args.includes('--check')) { + return { stdout: '', stderr: '', code: 0, cmdArgs: args }; + } + // getUnstagedFiles: has one unstaged file + if ( + isDiff && + args.includes('--name-only') && + !args.includes('--cached') + ) { + return { stdout: 'u1\n', stderr: '', code: 0, cmdArgs: args }; + } + // getStagedFiles: has staged file(s) + if (isDiff && args.includes('--name-only') && args.includes('--cached')) { + return { stdout: 's1\n', stderr: '', code: 0, cmdArgs: args }; + } + // rerere.enabled=true, rerere.autoUpdate=true + if (args.includes('config') && args.includes('rerere.enabled')) { + return { stdout: 'true\n', stderr: '', code: 0, cmdArgs: args }; + } + if (args.includes('config') && args.includes('rerere.autoUpdate')) { + return { stdout: 'true\n', stderr: '', code: 0, cmdArgs: args }; + } + + throw new Error(`Unexpected git command: ${cmd} ${args.join(' ')}`); + }); + + await expect( + cherrypick({ options, sha: 'abcd', commitAuthor }), + ).resolves.toEqual({ + conflictingFiles: [], + unstagedFiles: [`${base}/u1`], + needsResolving: true, + }); + }); + + it('should return needsResolving:true when rerere.enabled && !autoUpdate and unstaged present (no conflicts)', async () => { + const base = '/myHomeDir/.backport/repositories/elastic/kibana'; + const spawnSpy = jest.spyOn(childProcess, 'spawnPromise'); + spawnSpy.mockImplementation(async (cmd, args) => { + if (args.includes('cherry-pick')) { + throw new childProcess.SpawnError({ + code: 1, + cmdArgs: ['cherry-pick', '-x', 'abcd'], + stdout: '', + stderr: 'error: could not apply abc1234... some commit message', + }); + } + const isDiff = args.includes('--no-pager') && args.includes('diff'); + + // getConflictingFiles: clean (no conflicts found) + if (isDiff && args.includes('--check')) { + return { stdout: '', stderr: '', code: 0, cmdArgs: args }; + } + + // getUnstagedFiles: has unstaged paths + if ( + isDiff && + args.includes('--name-only') && + !args.includes('--cached') + ) { + return { stdout: 'a.txt\nb.md\n', stderr: '', code: 0, cmdArgs: args }; + } + + // getStagedFiles: none staged + if (isDiff && args.includes('--name-only') && args.includes('--cached')) { + return { stdout: '', stderr: '', code: 0, cmdArgs: args }; + } + + // rerere.enabled=true, rerere.autoUpdate=false + if (args.includes('config') && args.includes('rerere.enabled')) { + return { stdout: 'true\n', stderr: '', code: 0, cmdArgs: args }; + } + if (args.includes('config') && args.includes('rerere.autoUpdate')) { + return { stdout: 'false\n', stderr: '', code: 0, cmdArgs: args }; + } + + throw new Error(`Unexpected git command: ${cmd} ${args.join(' ')}`); + }); + + await expect( + cherrypick({ options, sha: 'abcd', commitAuthor }), + ).resolves.toEqual({ + conflictingFiles: [], + unstagedFiles: [`${base}/a.txt`, `${base}/b.md`], + needsResolving: true, + }); + }); + + it('should rethrow cherry-pick error when rerere.enabled && autoUpdate && no staged and no unstaged files (no conflicts)', async () => { + const spawnSpy = jest.spyOn(childProcess, 'spawnPromise'); + spawnSpy.mockImplementation(async (cmd, args) => { + if (args.includes('cherry-pick')) { + throw new childProcess.SpawnError({ + code: 1, + cmdArgs: ['cherry-pick', '-x', 'abcd'], + stdout: '', + stderr: 'error: could not apply abc1234... some commit message', + }); + } + const isDiff = args.includes('--no-pager') && args.includes('diff'); + + // getConflictingFiles: clean + if (isDiff && args.includes('--check')) { + return { stdout: '', stderr: '', code: 0, cmdArgs: args }; + } + // getUnstagedFiles: none + if ( + isDiff && + args.includes('--name-only') && + !args.includes('--cached') + ) { + return { stdout: '', stderr: '', code: 0, cmdArgs: args }; + } + // getStagedFiles: none + if (isDiff && args.includes('--name-only') && args.includes('--cached')) { + return { stdout: '', stderr: '', code: 0, cmdArgs: args }; + } + // rerere.enabled=true, rerere.autoUpdate=true + if (args.includes('config') && args.includes('rerere.enabled')) { + return { stdout: 'true\n', stderr: '', code: 0, cmdArgs: args }; + } + if (args.includes('config') && args.includes('rerere.autoUpdate')) { + return { stdout: 'true\n', stderr: '', code: 0, cmdArgs: args }; + } + + throw new Error(`Unexpected git command: ${cmd} ${args.join(' ')}`); + }); + + await expect( + cherrypick({ options, sha: 'abcd', commitAuthor }), + ).rejects.toThrow(/could not apply/); + }); + + it('should return needsResolving:true when rerere.enabled && !autoUpdate with mixed staged and unstaged', async () => { + const base = '/myHomeDir/.backport/repositories/elastic/kibana'; + const spawnSpy = jest.spyOn(childProcess, 'spawnPromise'); + spawnSpy.mockImplementation(async (cmd, args) => { + if (args.includes('cherry-pick')) { + throw new childProcess.SpawnError({ + code: 1, + cmdArgs: ['cherry-pick', '-x', 'abcd'], + stdout: '', + stderr: 'error: could not apply abc1234... some commit message', + }); + } + const isDiff = args.includes('--no-pager') && args.includes('diff'); + + // getConflictingFiles: clean + if (isDiff && args.includes('--check')) { + return { stdout: '', stderr: '', code: 0, cmdArgs: args }; + } + // getUnstagedFiles: has entries + if ( + isDiff && + args.includes('--name-only') && + !args.includes('--cached') + ) { + return { stdout: 'u1\nu2\n', stderr: '', code: 0, cmdArgs: args }; + } + // getStagedFiles: also has entries (mixed state) + if (isDiff && args.includes('--name-only') && args.includes('--cached')) { + return { stdout: 's1\n', stderr: '', code: 0, cmdArgs: args }; + } + // rerere.enabled=true, rerere.autoUpdate=false + if (args.includes('config') && args.includes('rerere.enabled')) { + return { stdout: 'true\n', stderr: '', code: 0, cmdArgs: args }; + } + if (args.includes('config') && args.includes('rerere.autoUpdate')) { + return { stdout: 'false\n', stderr: '', code: 0, cmdArgs: args }; + } + + throw new Error(`Unexpected git command: ${cmd} ${args.join(' ')}`); + }); + + await expect( + cherrypick({ options, sha: 'abcd', commitAuthor }), + ).resolves.toEqual({ + conflictingFiles: [], + unstagedFiles: [`${base}/u1`, `${base}/u2`], + needsResolving: true, + }); + }); + + it('should return needsResolving:true when conflicts are present (regardless of rerere)', async () => { + const base = '/myHomeDir/.backport/repositories/elastic/kibana'; + const spawnSpy = jest.spyOn(childProcess, 'spawnPromise'); + + spawnSpy.mockImplementation(async (cmd, args) => { + if (args.includes('cherry-pick')) { + throw new childProcess.SpawnError({ + code: 1, + cmdArgs: ['cherry-pick', '-x', 'abcd'], + stdout: '', + stderr: 'error: could not apply abc1234... some commit message', + }); + } + const isDiff = args.includes('--no-pager') && args.includes('diff'); + + // getConflictingFiles: has entries + if (isDiff && args.includes('--check')) { + throw new childProcess.SpawnError({ + code: 2, + cmdArgs: args, + stdout: 'left.txt:1: leftover conflict marker\n', + stderr: '', + }); + } + // getUnstagedFiles: none + if ( + isDiff && + args.includes('--name-only') && + !args.includes('--cached') + ) { + return { stdout: '', stderr: '', code: 0, cmdArgs: args }; + } + // getStagedFiles: none + if (isDiff && args.includes('--name-only') && args.includes('--cached')) { + return { stdout: '', stderr: '', code: 0, cmdArgs: args }; + } + // rerere.enabled=true, rerere.autoUpdate=true + if (args.includes('config') && args.includes('rerere.enabled')) { + return { stdout: 'true\n', stderr: '', code: 0, cmdArgs: args }; + } + if (args.includes('config') && args.includes('rerere.autoUpdate')) { + return { stdout: 'true\n', stderr: '', code: 0, cmdArgs: args }; + } + + throw new Error(`Unexpected git command: ${cmd} ${args.join(' ')}`); + }); + + await expect( + cherrypick({ options, sha: 'abcd', commitAuthor }), + ).resolves.toEqual({ + conflictingFiles: [ + { absolute: `${base}/left.txt`, relative: 'left.txt' }, + ], + unstagedFiles: [], + needsResolving: true, + }); + }); + + it('should return needsResolving:true and unstaged present (regardless of rerere)', async () => { + const base = '/myHomeDir/.backport/repositories/elastic/kibana'; + const spawnSpy = jest.spyOn(childProcess, 'spawnPromise'); + spawnSpy.mockImplementation(async (cmd, args) => { + if (args.includes('cherry-pick')) { + throw new childProcess.SpawnError({ + code: 1, + cmdArgs: ['cherry-pick', '-x', 'abcd'], + stdout: '', + stderr: 'error: could not apply abc1234... some commit message', + }); + } + const isDiff = args.includes('--no-pager') && args.includes('diff'); + + // getConflictingFiles: clean + if (isDiff && args.includes('--check')) { + return { stdout: '', stderr: '', code: 0, cmdArgs: args }; + } + // getUnstagedFiles: has entries + if ( + isDiff && + args.includes('--name-only') && + !args.includes('--cached') + ) { + return { stdout: 'x\n', stderr: '', code: 0, cmdArgs: args }; + } + // getStagedFiles: not needed but return none + if (isDiff && args.includes('--name-only') && args.includes('--cached')) { + return { stdout: '', stderr: '', code: 0, cmdArgs: args }; + } + // rerere.enabled=false; rerere.autoUpdate=false + if (args.includes('config') && args.includes('rerere.enabled')) { + return { stdout: 'true\n', stderr: '', code: 0, cmdArgs: args }; + } + if (args.includes('config') && args.includes('rerere.autoUpdate')) { + return { stdout: 'true\n', stderr: '', code: 0, cmdArgs: args }; + } + + throw new Error(`Unexpected git command: ${cmd} ${args.join(' ')}`); + }); + + await expect( + cherrypick({ options, sha: 'abcd', commitAuthor }), + ).resolves.toEqual({ + conflictingFiles: [], + unstagedFiles: [`${base}/x`], + needsResolving: true, + }); + }); +}); + +describe('getRerereConfig', () => { + const options = { + repoOwner: 'elastic', + repoName: 'kibana', + } as ValidConfigOptions; + + it('parses booleans from git config canonical output', async () => { + const spy = jest.spyOn(childProcess, 'spawnPromise'); + // rerere.enabled -> true + spy.mockResolvedValueOnce({ + stdout: 'true\n', + stderr: '', + code: 0, + cmdArgs: [], + }); + // rerere.autoUpdate -> false + spy.mockResolvedValueOnce({ + stdout: 'false\n', + stderr: '', + code: 0, + cmdArgs: [], + }); + + const cfg = await getRerereConfig(options as ValidConfigOptions); + expect(cfg).toEqual({ enabled: true, autoUpdate: false }); + }); + + it('returns false when keys are missing or unreadable', async () => { + const spy = jest.spyOn(childProcess, 'spawnPromise'); + // Simulate missing keys by rejecting + spy.mockRejectedValueOnce(new Error('not found')); + spy.mockRejectedValueOnce(new Error('not found')); + + const cfg = await getRerereConfig(options as ValidConfigOptions); + expect(cfg).toEqual({ enabled: false, autoUpdate: false }); + }); }); describe('commitChanges', () => { diff --git a/src/lib/git.ts b/src/lib/git.ts index a6c7a13e..56f40d98 100644 --- a/src/lib/git.ts +++ b/src/lib/git.ts @@ -2,22 +2,22 @@ import assert from 'assert'; import path, { resolve as pathResolve } from 'path'; import { uniq, isEmpty } from 'lodash'; import { ora } from '../lib/ora'; -import { ValidConfigOptions } from '../options/options'; -import { filterNil } from '../utils/filterEmpty'; -import { BackportError } from './BackportError'; -import { CommitAuthor } from './author'; +import type { ValidConfigOptions } from '../options/options'; +import { filterNil } from '../utils/filter-empty'; +import type { CommitAuthor } from './author'; +import { BackportError } from './backport-error'; import { spawnPromise, SpawnError, spawnStream, } from './child-process-promisified'; import { getRepoPath } from './env'; -import { getShortSha } from './github/commitFormatters'; +import { getShortSha } from './github/commit-formatters'; import { consoleLog, logger } from './logger'; -import { Target } from './runSequentially'; import { sequentially } from './sequentially'; -import { TargetPullRequest } from './sourceCommit/getPullRequestStates'; -import { Commit } from './sourceCommit/parseSourceCommit'; +import type { TargetPullRequest } from './sourceCommit/get-pull-request-states'; +import type { Commit } from './sourceCommit/parse-source-commit'; +import { Target } from './run-sequentially'; export function getRemoteUrl( { repoName, accessToken, gitHostname = 'github.com' }: ValidConfigOptions, @@ -61,14 +61,14 @@ export async function cloneRepo( subprocess.stderr.on('data', (data: string) => { logger.verbose(data.toString()); const [, objectReceiveProgress] = - data.toString().match(/^Receiving objects:\s+(\d+)%/) || []; + data.toString().match(/^Receiving objects:\s+(\d+)%/) ?? []; if (objectReceiveProgress) { progress.objectReceive = parseInt(objectReceiveProgress, 10); } const [, fileUpdateProgress] = - data.toString().match(/^Updating files:\s+(\d+)%/) || []; + data.toString().match(/^Updating files:\s+(\d+)%/) ?? []; if (fileUpdateProgress) { progress.objectReceive = 100; @@ -107,6 +107,7 @@ export async function getLocalConfigFileCommitDate({ cwd }: { cwd: string }) { return timestamp; } } catch (e) { + logger.debug(`Could not retrieve commit date for .backportrc.json: ${e}`); return; } } @@ -122,6 +123,7 @@ export async function isLocalConfigFileUntracked({ cwd }: { cwd: string }) { return !!stdout; } catch (e) { + logger.debug(`Could not check if .backportrc.json is untracked: ${e}`); return; } } @@ -136,6 +138,7 @@ export async function isLocalConfigFileModified({ cwd }: { cwd: string }) { return !!stdout; } catch (e) { + logger.debug(`Could not check if .backportrc.json is modified: ${e}`); return false; } } @@ -158,6 +161,7 @@ export async function getRepoInfoFromGitRemotes({ cwd }: { cwd: string }) { return { repoOwner, repoName }; }); } catch (e) { + logger.debug(`An error occurred while retrieving git remotes: ${e}`); return []; } } @@ -234,7 +238,7 @@ export async function addRemote( cwd, ); } catch (e) { - // note: swallowing error + logger.debug(`Could not add remote "${remoteName}": ${e}`); return; } } @@ -363,13 +367,47 @@ export async function cherrypick({ const isCherryPickError = e.context.cmdArgs.includes('cherry-pick') && e.context.code > 0; if (isCherryPickError) { - const [conflictingFiles, unstagedFiles] = await Promise.all([ - getConflictingFiles(options), - getUnstagedFiles(options), - ]); - - if (!isEmpty(conflictingFiles) || !isEmpty(unstagedFiles)) + const [conflictingFiles, unstagedFiles, rerereConfig] = + await Promise.all([ + getConflictingFiles(options), + getUnstagedFiles(options), + getRerereConfig(options), + ]); + + const noConflicts = isEmpty(conflictingFiles); + const hasUnstaged = !isEmpty(unstagedFiles); + + if (rerereConfig.enabled && noConflicts) { + const stagedFiles = await getStagedFiles(options); + const hasStaged = !isEmpty(stagedFiles); + + if (rerereConfig.autoUpdate && hasStaged && !hasUnstaged) { + logger.info( + 'Git rerere resolved conflicts and staged files automatically', + ); + return { + conflictingFiles: [], + unstagedFiles: [], + needsResolving: false, + }; + } + + if (!rerereConfig.autoUpdate && hasUnstaged) { + logger.info( + 'Git rerere resolved conflicts (files remain unmerged. Please stage manually)', + ); + return { + conflictingFiles: [], + unstagedFiles, + needsResolving: true, + }; + } + } + + // Standard resolution path + if (!noConflicts || hasUnstaged) { return { conflictingFiles, unstagedFiles, needsResolving: true }; + } } } @@ -660,13 +698,15 @@ export async function getConflictingFiles(options: ValidConfigOptions) { } } -// retrieve the list of files that could not be cleanly merged -export async function getUnstagedFiles(options: ValidConfigOptions) { +async function getFilesFromDiff( + options: ValidConfigOptions, + isStaged: boolean, +) { const repoPath = getRepoPath(options); const cwd = repoPath; const res = await spawnPromise( 'git', - ['--no-pager', 'diff', '--name-only'], + ['--no-pager', 'diff', '--name-only', ...(isStaged ? ['--cached'] : [])], cwd, ); const files = res.stdout @@ -677,6 +717,47 @@ export async function getUnstagedFiles(options: ValidConfigOptions) { return uniq(files); } +// retrieve the list of files that could not be cleanly merged +export function getUnstagedFiles(options: ValidConfigOptions) { + return getFilesFromDiff(options, false); +} + +// retrieve the list of files that are staged and ready to be committed +export function getStagedFiles(options: ValidConfigOptions) { + return getFilesFromDiff(options, true); +} + +// check if git rerere is enabled and what configuration it has +export async function getRerereConfig(options: ValidConfigOptions): Promise<{ + enabled: boolean; + autoUpdate: boolean; +}> { + const cwd = getRepoPath(options); + + const getConfigValue = async (key: string): Promise => { + try { + const res = await spawnPromise( + 'git', + ['config', '--type=bool', '--get', key], + cwd, + ); + return JSON.parse(res.stdout.trim()); + } catch { + return false; + } + }; + + const [enabled, autoUpdate] = await Promise.all([ + getConfigValue('rerere.enabled'), + getConfigValue('rerere.autoUpdate'), + ]); + + return { + enabled, + autoUpdate, + }; +} + // How the commit flows: // ${sourceBranch} -> ${backportBranch} -> ${targetBranch} // master -> backport/7.x/pr-1234 -> 7.x @@ -724,7 +805,9 @@ export async function createBackportBranch({ try { await spawnPromise('git', ['branch', '-D', tmpBranchName], cwd); } catch (e) { - // swallow error + logger.debug( + `Could not delete temporary branch "${tmpBranchName}": ${e}`, + ); } // fetch commits for source branch @@ -743,7 +826,7 @@ export async function createBackportBranch({ /'(.+) is not a commit and a branch .+ cannot be created from it/, )?.[1]; - const invalidBranch = invalidRemoteRef || invalidCommit; + const invalidBranch = invalidRemoteRef ?? invalidCommit; if (invalidBranch) { throw new BackportError( diff --git a/src/lib/github/commitFormatters.test.ts b/src/lib/github/commit-formatters.test.ts similarity index 88% rename from src/lib/github/commitFormatters.test.ts rename to src/lib/github/commit-formatters.test.ts index 6b1d64ab..8e77ed31 100644 --- a/src/lib/github/commitFormatters.test.ts +++ b/src/lib/github/commit-formatters.test.ts @@ -1,4 +1,4 @@ -import { getFirstLine } from './commitFormatters'; +import { getFirstLine } from './commit-formatters'; describe('getFirstCommitMessageLine', () => { it('should only return the first line of the message', () => { diff --git a/src/lib/github/commitFormatters.ts b/src/lib/github/commit-formatters.ts similarity index 100% rename from src/lib/github/commitFormatters.ts rename to src/lib/github/commit-formatters.ts diff --git a/src/lib/github/v3/addAssigneesToPullRequest.test.ts b/src/lib/github/v3/add-assignees-to-pull-request.test.ts similarity index 89% rename from src/lib/github/v3/addAssigneesToPullRequest.test.ts rename to src/lib/github/v3/add-assignees-to-pull-request.test.ts index e8b599a0..51bfb473 100644 --- a/src/lib/github/v3/addAssigneesToPullRequest.test.ts +++ b/src/lib/github/v3/add-assignees-to-pull-request.test.ts @@ -1,5 +1,5 @@ import nock from 'nock'; -import { addAssigneesToPullRequest } from './addAssigneesToPullRequest'; +import { addAssigneesToPullRequest } from './add-assignees-to-pull-request'; describe('addAssigneesToPullRequest', () => { it('should add assignees to PR', async () => { diff --git a/src/lib/github/v3/addAssigneesToPullRequest.ts b/src/lib/github/v3/add-assignees-to-pull-request.ts similarity index 100% rename from src/lib/github/v3/addAssigneesToPullRequest.ts rename to src/lib/github/v3/add-assignees-to-pull-request.ts diff --git a/src/lib/github/v3/addLabelsToPullRequest.ts b/src/lib/github/v3/add-labels-to-pull-request.ts similarity index 100% rename from src/lib/github/v3/addLabelsToPullRequest.ts rename to src/lib/github/v3/add-labels-to-pull-request.ts diff --git a/src/lib/github/v3/addReviewersToPullRequest.ts b/src/lib/github/v3/add-reviewers-to-pull-request.ts similarity index 75% rename from src/lib/github/v3/addReviewersToPullRequest.ts rename to src/lib/github/v3/add-reviewers-to-pull-request.ts index c8c97e4c..f4d84716 100644 --- a/src/lib/github/v3/addReviewersToPullRequest.ts +++ b/src/lib/github/v3/add-reviewers-to-pull-request.ts @@ -1,8 +1,9 @@ import { Octokit } from '@octokit/rest'; import apm from 'elastic-apm-node'; import { ora } from '../../../lib/ora'; -import { ValidConfigOptions } from '../../../options/options'; +import type { ValidConfigOptions } from '../../../options/options'; import { logger } from '../../logger'; +import { GithubV4Exception } from '../v4/client/graphql-client'; export async function addReviewersToPullRequest( { @@ -43,9 +44,14 @@ export async function addReviewersToPullRequest( spinner.succeed(); } catch (e) { - //@ts-expect-error - const message = e.response?.data?.message; - spinner.fail(`Adding reviewers. ${message ? message : ''}`); + const message = + e instanceof GithubV4Exception + ? e.result?.data?.message + : e instanceof Error + ? e.message + : ''; + + spinner.fail(`Adding reviewers. ${message}`); logger.error(`Could not add reviewers to PR ${pullNumber}`, e); } finally { span?.end(); diff --git a/src/lib/github/v3/createStatusComment.test.ts b/src/lib/github/v3/create-status-comment.test.ts similarity index 98% rename from src/lib/github/v3/createStatusComment.test.ts rename to src/lib/github/v3/create-status-comment.test.ts index f618a829..ab681a37 100644 --- a/src/lib/github/v3/createStatusComment.test.ts +++ b/src/lib/github/v3/create-status-comment.test.ts @@ -1,12 +1,12 @@ import nock from 'nock'; -import { +import type { BackportResponse, BackportSuccessResponse, -} from '../../../backportRun'; -import { ValidConfigOptions } from '../../../options/options'; -import { BackportError } from '../../BackportError'; +} from '../../../backport-run'; +import type { ValidConfigOptions } from '../../../options/options'; +import { BackportError } from '../../backport-error'; import { setAccessToken } from '../../logger'; -import { createStatusComment, getCommentBody } from './createStatusComment'; +import { createStatusComment, getCommentBody } from './create-status-comment'; jest.unmock('../../logger'); diff --git a/src/lib/github/v3/createStatusComment.ts b/src/lib/github/v3/create-status-comment.ts similarity index 94% rename from src/lib/github/v3/createStatusComment.ts rename to src/lib/github/v3/create-status-comment.ts index c89bc683..475202ae 100644 --- a/src/lib/github/v3/createStatusComment.ts +++ b/src/lib/github/v3/create-status-comment.ts @@ -1,11 +1,11 @@ import { Octokit } from '@octokit/rest'; import apm from 'elastic-apm-node'; -import { BackportResponse } from '../../../backportRun'; -import { ValidConfigOptions } from '../../../options/options'; -import { PACKAGE_VERSION } from '../../../utils/packageVersion'; -import { BackportError } from '../../BackportError'; +import type { BackportResponse } from '../../../backport-run'; +import type { ValidConfigOptions } from '../../../options/options'; +import { getPackageVersion } from '../../../utils/package-version'; +import { BackportError } from '../../backport-error'; import { logger, redactAccessToken } from '../../logger'; -import { getFirstLine } from '../commitFormatters'; +import { getFirstLine } from '../commit-formatters'; export async function createStatusComment({ options, @@ -111,7 +111,7 @@ export function getCommentBody({ return; } - const packageVersionSection = `\n`; + const packageVersionSection = `\n`; const manualBackportCommand = `\n### Manual backport\nTo create the backport manually run:\n\`\`\`\n${options.backportBinary} --pr ${pullNumber}\n\`\`\`\n`; const linkToGithubActionLogs = options.githubActionRunId diff --git a/src/lib/github/v3/getGithubV3ErrorMessage.ts b/src/lib/github/v3/get-github-v3-error-message.ts similarity index 100% rename from src/lib/github/v3/getGithubV3ErrorMessage.ts rename to src/lib/github/v3/get-github-v3-error-message.ts diff --git a/src/lib/github/v3/getReviewersFromPullRequests.ts b/src/lib/github/v3/get-reviewers-from-pull-requests.ts similarity index 93% rename from src/lib/github/v3/getReviewersFromPullRequests.ts rename to src/lib/github/v3/get-reviewers-from-pull-requests.ts index ee559d5e..62924322 100644 --- a/src/lib/github/v3/getReviewersFromPullRequests.ts +++ b/src/lib/github/v3/get-reviewers-from-pull-requests.ts @@ -1,6 +1,6 @@ import { Octokit } from '@octokit/rest'; import { flatten, uniq } from 'lodash'; -import { filterNil } from '../../../utils/filterEmpty'; +import { filterNil } from '../../../utils/filter-empty'; import { logger } from '../../logger'; import { ora } from '../../ora'; @@ -54,7 +54,6 @@ export async function getReviewersFromPullRequests({ spinner.stop(); return reviewers; } catch (e) { - // eslint-disable-next-line no-console console.log(e); spinner.fail(`Retrieving reviewers failed`); } diff --git a/src/lib/github/v3/getReviewersFromPullRequests.ts.private.test.ts b/src/lib/github/v3/get-reviewers-from-pull-requests.ts.private.test.ts similarity index 84% rename from src/lib/github/v3/getReviewersFromPullRequests.ts.private.test.ts rename to src/lib/github/v3/get-reviewers-from-pull-requests.ts.private.test.ts index 592c7827..cca4379f 100644 --- a/src/lib/github/v3/getReviewersFromPullRequests.ts.private.test.ts +++ b/src/lib/github/v3/get-reviewers-from-pull-requests.ts.private.test.ts @@ -1,5 +1,5 @@ -import { getDevAccessToken } from '../../../test/private/getDevAccessToken'; -import { getReviewersFromPullRequests } from './getReviewersFromPullRequests'; +import { getDevAccessToken } from '../../../test/private/get-dev-access-token'; +import { getReviewersFromPullRequests } from './get-reviewers-from-pull-requests'; const accessToken = getDevAccessToken(); diff --git a/src/lib/github/v3/getPullRequest/createPullRequest.ts b/src/lib/github/v3/getPullRequest/create-pull-request.ts similarity index 85% rename from src/lib/github/v3/getPullRequest/createPullRequest.ts rename to src/lib/github/v3/getPullRequest/create-pull-request.ts index 208c4381..425e3b8a 100644 --- a/src/lib/github/v3/getPullRequest/createPullRequest.ts +++ b/src/lib/github/v3/getPullRequest/create-pull-request.ts @@ -1,11 +1,11 @@ import { Octokit } from '@octokit/rest'; import apm from 'elastic-apm-node'; -import { ValidConfigOptions } from '../../../../options/options'; -import { BackportError } from '../../../BackportError'; +import type { ValidConfigOptions } from '../../../../options/options'; +import { BackportError } from '../../../backport-error'; import { logger } from '../../../logger'; import { ora } from '../../../ora'; -import { fetchExistingPullRequest } from '../../v4/fetchExistingPullRequest'; -import { getGithubV3ErrorMessage } from '../getGithubV3ErrorMessage'; +import { fetchExistingPullRequest } from '../../v4/fetch-existing-pull-request'; +import { getGithubV3ErrorMessage } from '../get-github-v3-error-message'; export interface PullRequestPayload { owner: string; @@ -85,7 +85,7 @@ export async function createPullRequest({ spinner.fail(); throw new BackportError( - //@ts-expect-error + //@ts-expect-error: assume the error is GithubV3Error `Could not create pull request: ${getGithubV3ErrorMessage(e)}`, ); } diff --git a/src/lib/github/v3/getPullRequest/getPullRequestBody.test.ts b/src/lib/github/v3/getPullRequest/get-pull-request-body.test.ts similarity index 98% rename from src/lib/github/v3/getPullRequest/getPullRequestBody.test.ts rename to src/lib/github/v3/getPullRequest/get-pull-request-body.test.ts index 0f1909b0..901b6c5f 100644 --- a/src/lib/github/v3/getPullRequest/getPullRequestBody.test.ts +++ b/src/lib/github/v3/getPullRequest/get-pull-request-body.test.ts @@ -1,7 +1,7 @@ import Handlebars from 'handlebars'; -import { Commit } from '../../../../entrypoint.api'; -import { ValidConfigOptions } from '../../../../options/options'; -import { getPullRequestBody } from './getPullRequestBody'; +import type { Commit } from '../../../../entrypoint.api'; +import type { ValidConfigOptions } from '../../../../options/options'; +import { getPullRequestBody } from './get-pull-request-body'; const commits = [ { diff --git a/src/lib/github/v3/getPullRequest/getPullRequestBody.ts b/src/lib/github/v3/getPullRequest/get-pull-request-body.ts similarity index 85% rename from src/lib/github/v3/getPullRequest/getPullRequestBody.ts rename to src/lib/github/v3/getPullRequest/get-pull-request-body.ts index c981a77c..12c4a971 100644 --- a/src/lib/github/v3/getPullRequest/getPullRequestBody.ts +++ b/src/lib/github/v3/getPullRequest/get-pull-request-body.ts @@ -1,10 +1,10 @@ import Handlebars from 'handlebars'; -import { ValidConfigOptions } from '../../../../options/options'; -import { PACKAGE_VERSION } from '../../../../utils/packageVersion'; -import { getSourceBranchFromCommits } from '../../../getSourceBranchFromCommits'; +import type { ValidConfigOptions } from '../../../../options/options'; +import { getPackageVersion } from '../../../../utils/package-version'; +import { getSourceBranchFromCommits } from '../../../get-source-branch-from-commits'; import { logger } from '../../../logger'; -import { Commit } from '../../../sourceCommit/parseSourceCommit'; -import { getFirstLine, getShortSha } from '../../commitFormatters'; +import type { Commit } from '../../../sourceCommit/parse-source-commit'; +import { getFirstLine, getShortSha } from '../../commit-formatters'; export function getPullRequestBody({ options, @@ -64,7 +64,7 @@ export function getPullRequestBody({ .replaceAll('{{targetBranch}}', targetBranch) // replace package version - .replaceAll('{{PACKAGE_VERSION}}', PACKAGE_VERSION); + .replaceAll('{{PACKAGE_VERSION}}', getPackageVersion()); try { const template = Handlebars.compile(prDescription, { noEscape: true }); diff --git a/src/lib/github/v3/getPullRequest/getTitle.test.ts b/src/lib/github/v3/getPullRequest/get-title.test.ts similarity index 95% rename from src/lib/github/v3/getPullRequest/getTitle.test.ts rename to src/lib/github/v3/getPullRequest/get-title.test.ts index 860edc1d..fb71c300 100644 --- a/src/lib/github/v3/getPullRequest/getTitle.test.ts +++ b/src/lib/github/v3/getPullRequest/get-title.test.ts @@ -1,7 +1,7 @@ import Handlebars from 'handlebars'; -import { Commit } from '../../../../entrypoint.api'; -import { ValidConfigOptions } from '../../../../options/options'; -import { getTitle } from './getTitle'; +import type { Commit } from '../../../../entrypoint.api'; +import type { ValidConfigOptions } from '../../../../options/options'; +import { getTitle } from './get-title'; describe('getTitle', () => { const commits = [ diff --git a/src/lib/github/v3/getPullRequest/getTitle.ts b/src/lib/github/v3/getPullRequest/get-title.ts similarity index 79% rename from src/lib/github/v3/getPullRequest/getTitle.ts rename to src/lib/github/v3/getPullRequest/get-title.ts index 9a8fbdc6..71063368 100644 --- a/src/lib/github/v3/getPullRequest/getTitle.ts +++ b/src/lib/github/v3/getPullRequest/get-title.ts @@ -1,9 +1,9 @@ import Handlebars from 'handlebars'; -import { ValidConfigOptions } from '../../../../options/options'; -import { getSourceBranchFromCommits } from '../../../getSourceBranchFromCommits'; +import type { ValidConfigOptions } from '../../../../options/options'; +import { getSourceBranchFromCommits } from '../../../get-source-branch-from-commits'; import { logger } from '../../../logger'; -import { Commit } from '../../../sourceCommit/parseSourceCommit'; -import { getFirstLine } from '../../commitFormatters'; +import type { Commit } from '../../../sourceCommit/parse-source-commit'; +import { getFirstLine } from '../../commit-formatters'; export function getTitle({ options, diff --git a/src/lib/github/v3/mergePullRequest.ts b/src/lib/github/v3/merge-pull-request.ts similarity index 88% rename from src/lib/github/v3/mergePullRequest.ts rename to src/lib/github/v3/merge-pull-request.ts index 20e7ce27..ad194f4c 100644 --- a/src/lib/github/v3/mergePullRequest.ts +++ b/src/lib/github/v3/merge-pull-request.ts @@ -1,5 +1,5 @@ import { Octokit } from '@octokit/rest'; -import { ValidConfigOptions } from '../../../options/options'; +import type { ValidConfigOptions } from '../../../options/options'; import { logger } from '../../logger'; export function mergePullRequest( diff --git a/src/lib/github/v4/FetchPullRequestId.ts b/src/lib/github/v4/FetchPullRequestId.ts deleted file mode 100644 index 22356113..00000000 --- a/src/lib/github/v4/FetchPullRequestId.ts +++ /dev/null @@ -1,43 +0,0 @@ -import gql from 'graphql-tag'; -import { ValidConfigOptions } from '../../../options/options'; -import { apiRequestV4 } from './apiRequestV4'; - -interface PullRequestResponse { - repository: { - pullRequest: { id: string }; - }; -} - -export async function fetchPullRequestId( - options: ValidConfigOptions, - pullNumber: number, -) { - const { accessToken, githubApiBaseUrlV4, repoName, repoOwner } = options; - - const prQuery = gql` - query PullRequestId( - $repoOwner: String! - $repoName: String! - $pullNumber: Int! - ) { - repository(owner: $repoOwner, name: $repoName) { - pullRequest(number: $pullNumber) { - id - } - } - } - `; - - const prResponse = await apiRequestV4({ - githubApiBaseUrlV4, - accessToken, - query: prQuery, - variables: { - repoOwner, - repoName, - pullNumber, - }, - }); - - return prResponse.data.data.repository.pullRequest.id; -} diff --git a/src/lib/github/v4/__snapshots__/throwOnInvalidAccessToken.test.ts.snap b/src/lib/github/v4/__snapshots__/throwOnInvalidAccessToken.test.ts.snap deleted file mode 100644 index b5d31127..00000000 --- a/src/lib/github/v4/__snapshots__/throwOnInvalidAccessToken.test.ts.snap +++ /dev/null @@ -1,14 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`throwOnInvalidAccessToken when status code is should handle SSO error 1`] = ` -"Please follow the link to authorize your personal access token with SSO: - -https://ssourl.com" -`; - -exports[`throwOnInvalidAccessToken when status code is should handle insufficient permissions (oauth scopes) 1`] = ` -"You do not have access to the repository "elastic/kibana". Please make sure your access token has the required scopes. - -Required scopes: a,b,c -Access token scopes: a,b" -`; diff --git a/src/lib/github/v4/apiRequestV4.test.ts b/src/lib/github/v4/apiRequestV4.test.ts deleted file mode 100644 index 771ccf27..00000000 --- a/src/lib/github/v4/apiRequestV4.test.ts +++ /dev/null @@ -1,120 +0,0 @@ -import gql from 'graphql-tag'; -import nock from 'nock'; -import { mockGqlRequest } from '../../../test/nockHelpers'; -import { BackportError } from '../../BackportError'; -import { apiRequestV4 } from './apiRequestV4'; - -describe('apiRequestV4', () => { - afterEach(() => { - nock.cleanAll(); - }); - - describe('when request succeeds', () => { - let res: unknown; - let commitsByAuthorCalls: ReturnType; - beforeEach(async () => { - commitsByAuthorCalls = mockGqlRequest({ - name: 'MyQuery', - statusCode: 200, - body: { data: { viewer: { login: 'sorenlouv' } } }, - }); - - res = await apiRequestV4({ - accessToken: 'myAccessToken', - githubApiBaseUrlV4: 'http://localhost/graphql', - query: gql` - query MyQuery { - viewer { - login - } - } - `, - variables: { foo: 'bar' }, - }); - }); - - it('should return correct response', async () => { - // @ts-expect-error - expect(res.data.data).toEqual({ viewer: { login: 'sorenlouv' } }); - }); - - it('should call with correct args', async () => { - expect(commitsByAuthorCalls).toMatchInlineSnapshot(` - [ - { - "query": "query MyQuery { - viewer { - login - } - }", - "variables": { - "foo": "bar", - }, - }, - ] - `); - }); - }); - - describe('when request fails with error messages', () => { - beforeEach(() => { - mockGqlRequest({ - name: 'MyQuery', - statusCode: 200, - body: { - errors: [{ message: 'some error' }, { message: 'some other error' }], - }, - }); - }); - - it('should return error containing the error messages', async () => { - return expect( - apiRequestV4({ - accessToken: 'myAccessToken', - githubApiBaseUrlV4: 'http://localhost/graphql', - query: gql` - query MyQuery { - viewer { - login - } - } - `, - variables: { - foo: 'bar', - }, - }), - ).rejects.toThrow( - new BackportError(`some error,some other error (Github API v4)`), - ); - }); - }); - - describe('when request fails without error messages', () => { - beforeEach(() => { - mockGqlRequest({ - name: 'MyQuery', - statusCode: 500, - body: { data: { foo: 'bar' } }, - }); - }); - - it('should return parsed github error', async () => { - return expect( - apiRequestV4({ - accessToken: 'myAccessToken', - githubApiBaseUrlV4: 'http://localhost/graphql', - query: gql` - query MyQuery { - viewer { - login - } - } - `, - variables: { - foo: 'bar', - }, - }), - ).rejects.toThrow('Request failed with status code 500'); - }); - }); -}); diff --git a/src/lib/github/v4/apiRequestV4.ts b/src/lib/github/v4/apiRequestV4.ts deleted file mode 100644 index d334285c..00000000 --- a/src/lib/github/v4/apiRequestV4.ts +++ /dev/null @@ -1,170 +0,0 @@ -import axios, { AxiosError, AxiosResponse } from 'axios'; -import apm from 'elastic-apm-node'; -import { DocumentNode } from 'graphql'; -import { print } from 'graphql/language/printer'; -import { isObject } from 'lodash'; -import { BackportError } from '../../BackportError'; -import { logger } from '../../logger'; - -interface GithubError { - type?: string; - path?: string[]; - locations?: { - line: number; - column: number; - }[]; - message: string; -} - -export interface GithubV4Response { - data: DataResponse; - errors?: GithubError[]; -} - -type Variables = Record; - -// Define a discriminating type -type ApiRequestOptions = { - githubApiBaseUrlV4?: string; - accessToken: string; - query: DocumentNode; - variables?: Variables; -}; - -export async function apiRequestV4( - opts: ApiRequestOptions, -): Promise, any>> { - const { - githubApiBaseUrlV4 = 'https://api.github.com/graphql', - accessToken, - query, - variables, - } = opts; - - const gqlQueryName = getQueryName(query); - const span = apm.startSpan( - `GraphQL: ${gqlQueryName}`, - 'external', - 'graphql', - 'query', - ); - - //@ts-expect-error - span?.setDbContext({ type: 'graphql', statement: print(query) }); - - try { - const response = await axios.post>( - githubApiBaseUrlV4, - { query: print(query), variables }, - { - headers: { - 'Content-Type': 'application/json', - Authorization: `bearer ${accessToken}`, - }, - }, - ); - - if (response.data.errors) { - throw new GithubV4Exception(response); - } - - addDebugLogs({ - githubApiBaseUrlV4, - query, - variables, - githubResponse: response, - }); - - span?.setOutcome('success'); - - return response; - } catch (e) { - span?.setOutcome('failure'); - - apm.captureError(e as Error); - - if (isAxiosGithubError(e) && e.response) { - addDebugLogs({ - githubApiBaseUrlV4, - query, - variables, - githubResponse: e.response, - didThrow: true, - }); - throw new GithubV4Exception(e.response, e.message); - } - - throw e; - } finally { - span?.end(); - } -} - -function isAxiosGithubError( - e: unknown, -): e is AxiosError, any> { - return ( - axios.isAxiosError(e) && - e.response !== undefined && - isObject(e.response.data) - ); -} - -type AxiosGithubResponse = AxiosResponse< - GithubV4Response, - any ->; - -export class GithubV4Exception extends Error { - githubResponse: AxiosGithubResponse & { request: undefined }; - - constructor( - githubResponse: AxiosGithubResponse, - errorMessage?: string, - ) { - const githubMessage = githubResponse.data.errors - ?.map((error) => error.message) - .join(','); - - const message = `${ - errorMessage ?? githubMessage ?? 'Unknown error' - } (Github API v4)`; - - super(message); - Error.captureStackTrace(this, BackportError); - this.name = 'GithubV4Exception'; - this.message = message; - this.githubResponse = { ...githubResponse, request: undefined }; - } -} - -export function getQueryName(query: DocumentNode): string { - //@ts-expect-error - return query.definitions[0].name?.value; -} - -function addDebugLogs({ - githubApiBaseUrlV4, - query, - variables, - githubResponse, - didThrow = false, -}: { - githubApiBaseUrlV4: string; - query: DocumentNode; - variables?: Variables; - githubResponse: AxiosResponse; - didThrow?: boolean; -}) { - const gqlQueryName = getQueryName(query); - logger.info( - `POST ${githubApiBaseUrlV4} (name:${gqlQueryName}, status: ${ - githubResponse.status - }${didThrow ? ', EXCEPTION THROWN' : ''})`, - ); - - logger.verbose(`Query: ${print(query)}`); - logger.verbose('Variables:', variables); - logger.verbose('Response headers:', githubResponse.headers); - logger.verbose('Response data:', githubResponse.data); -} diff --git a/src/lib/github/v4/client/graphql-client.private.test.ts b/src/lib/github/v4/client/graphql-client.private.test.ts new file mode 100644 index 00000000..cb3b9636 --- /dev/null +++ b/src/lib/github/v4/client/graphql-client.private.test.ts @@ -0,0 +1,115 @@ +import { graphql } from '../../../../graphql/generated'; +import { getDevAccessToken } from '../../../../test/private/get-dev-access-token'; +import type { + GitHubGraphQLError, + OperationResultWithMeta, +} from './graphql-client'; +import { getGraphQLClient } from './graphql-client'; + +const getViewerQuery = graphql(` + query GetViewer { + viewer { + login + } + } +`); + +const getRepoQuery = graphql(` + query GetRepo($repoOwner: String!, $repoName: String!) { + repository(owner: $repoOwner, name: $repoName) { + name + } + } +`); + +describe('graphqlClient', () => { + let result: OperationResultWithMeta; + + describe('when the access token is invalid', () => { + beforeAll(async () => { + const client = getGraphQLClient({ + accessToken: 'foobar', + githubApiBaseUrlV4: 'https://api.github.com/graphql', + }); + result = await client.query(getViewerQuery, {}); + }); + + it('includes status code', async () => { + expect(result.statusCode).toBe(401); + }); + + it('does not include graphql errors', async () => { + expect(result.error?.graphQLErrors).toEqual([]); + }); + + it('includes error message', async () => { + expect(result.error?.message).toBe('[Network] Unauthorized'); + }); + }); + + describe('when the access token is valid', () => { + const accessToken = getDevAccessToken(); + beforeAll(async () => { + const client = getGraphQLClient({ + accessToken: accessToken, + githubApiBaseUrlV4: 'https://api.github.com/graphql', + }); + result = await client.query(getViewerQuery, {}); + }); + + it('includes status code', async () => { + expect(result.statusCode).toBe(200); + }); + + it('includes x-oauth-scopes headers', async () => { + expect(result.responseHeaders?.get('x-oauth-scopes')).toContain('repo'); + }); + }); + + describe('when repo is not found', () => { + const accessToken = getDevAccessToken(); + beforeAll(async () => { + const client = getGraphQLClient({ + accessToken: accessToken, + githubApiBaseUrlV4: 'https://api.github.com/graphql', + }); + result = await client.query(getRepoQuery, { + repoName: 'backportNonExisting', + repoOwner: 'sorenlouv', + }); + }); + + it('includes status code', async () => { + expect(result.statusCode).toBe(200); + }); + + it('includes error path', async () => { + expect(result.error?.graphQLErrors[0].path).toEqual(['repository']); + }); + + it('includes error type', async () => { + expect( + (result.error?.graphQLErrors[0] as GitHubGraphQLError).originalError + ?.type, + ).toBe('NOT_FOUND'); + }); + + it('includes graphql errors', async () => { + expect(result.error?.graphQLErrors).toMatchInlineSnapshot(` +[ + [GraphQLError: Could not resolve to a Repository with the name 'sorenlouv/backportNonExisting'.], +] +`); + }); + + it('includes error message', async () => { + expect(result.error?.message).toBe( + "[GraphQL] Could not resolve to a Repository with the name 'sorenlouv/backportNonExisting'.", + ); + }); + + it('includes x-oauth-scopes headers', async () => { + expect(result.responseHeaders?.get('x-oauth-scopes')).toContain('repo'); + }); + }); +}); diff --git a/src/lib/github/v4/client/graphql-client.ts b/src/lib/github/v4/client/graphql-client.ts new file mode 100644 index 00000000..b6283330 --- /dev/null +++ b/src/lib/github/v4/client/graphql-client.ts @@ -0,0 +1,47 @@ +import type { GraphQLError } from '@0no-co/graphql.web'; +import type { OperationResult } from '@urql/core'; +import { fetchExchange, Client } from '@urql/core'; +import type { ValidConfigOptions } from '../../../../options/options'; +import { responseMetaInterceptorExchange } from './response-meta-interceptor-exchange'; + +export interface GitHubGraphQLError extends GraphQLError { + type?: 'FORBIDDEN'; + extensions: { saml_failure?: boolean }; + originalError: + | ({ + type?: 'NOT_FOUND'; + } & GraphQLError['originalError']) + | undefined; +} + +export interface OperationResultWithMeta + extends OperationResult { + responseHeaders?: Headers; + statusCode?: number; +} + +export function getGraphQLClient({ + githubApiBaseUrlV4 = 'https://api.github.com/graphql', + accessToken, +}: Pick): Client { + return new Client({ + url: githubApiBaseUrlV4, + exchanges: [responseMetaInterceptorExchange, fetchExchange], + fetchOptions: () => { + return { + 'Content-Type': 'application/json', + headers: { Authorization: `bearer ${accessToken}` }, + }; + }, + }); +} + +export class GithubV4Exception extends Error { + constructor(public result: OperationResultWithMeta) { + const message = `${result.error?.message} (Github API v4)`; + + super(message); + Error.captureStackTrace(this, GithubV4Exception); + this.name = 'GithubV4Exception'; + } +} diff --git a/src/lib/github/v4/client/logging-exchange.ts b/src/lib/github/v4/client/logging-exchange.ts new file mode 100644 index 00000000..a9fb028b --- /dev/null +++ b/src/lib/github/v4/client/logging-exchange.ts @@ -0,0 +1,24 @@ +import type { Exchange, Operation, OperationResult } from '@urql/core'; +import { print } from 'graphql/language/printer'; +import { pipe, tap } from 'wonka'; +import { logger } from '../../../logger'; + +export const loggingExchange: Exchange = + ({ forward }) => + (ops$) => { + return pipe( + ops$, + tap((operation: Operation) => { + logger.verbose('Query:', print(operation.query)); + logger.verbose('Variables:', operation.variables); + }), + forward, + tap((result: OperationResult) => { + if (result.error) { + logger.error('GraphQL Error:', result.error); + } else { + logger.verbose('Data:', result.data); + } + }), + ); + }; diff --git a/src/lib/github/v4/client/response-meta-interceptor-exchange.ts b/src/lib/github/v4/client/response-meta-interceptor-exchange.ts new file mode 100644 index 00000000..43ae0ccd --- /dev/null +++ b/src/lib/github/v4/client/response-meta-interceptor-exchange.ts @@ -0,0 +1,63 @@ +// headerInterceptorExchange.ts (or your chosen filename) +import type { Exchange } from '@urql/core'; // Removed OperationResult as it's used via OperationResultWithMeta +import { pipe, map } from 'wonka'; +import type { OperationResultWithMeta } from './graphql-client'; + +interface StoredResponseData { + headers: Headers; + statusCode: number; +} + +// A Map to temporarily store headers and status code +const temporaryResponseDataStore = new Map(); + +export const responseMetaInterceptorExchange: Exchange = ({ + client, + forward, +}) => { + // Renamed for clarity + return (operations$) => { + // 1. Modify outgoing operations to use a wrapped fetch + const operationsWithWrappedFetch$ = pipe( + operations$, + map((operation) => { + const originalFetch = + operation.context.fetch ?? (client as any).fetch ?? fetch; + + const newContext = { + ...operation.context, + fetch: async (input: unknown, init?: unknown): Promise => { + const response = await originalFetch(input, init); + // Store both headers and status code when the response is received + temporaryResponseDataStore.set(operation.key, { + headers: response.headers, + statusCode: response.status, // Capture status code here + }); + return response; + }, + }; + return { ...operation, context: newContext }; + }), + ); + + // 2. Forward the modified operations + const resultsFromNextExchange$ = forward(operationsWithWrappedFetch$); + + // 3. Modify incoming results to attach the stored data + return pipe( + resultsFromNextExchange$, + map((result) => { + const storedData = temporaryResponseDataStore.get(result.operation.key); + if (storedData) { + temporaryResponseDataStore.delete(result.operation.key); // Clean up + return { + ...result, + responseHeaders: storedData.headers, + statusCode: storedData.statusCode, // Attach status code here + } as OperationResultWithMeta; // Use the updated interface + } + return result as OperationResultWithMeta; // Cast even if not found, though it should be + }), + ); + }; +}; diff --git a/src/lib/github/v4/disable-pull-request-auto-merge.ts b/src/lib/github/v4/disable-pull-request-auto-merge.ts new file mode 100644 index 00000000..036f311e --- /dev/null +++ b/src/lib/github/v4/disable-pull-request-auto-merge.ts @@ -0,0 +1,33 @@ +import { graphql } from '../../../graphql/generated'; +import type { ValidConfigOptions } from '../../../options/options'; +import { getGraphQLClient, GithubV4Exception } from './client/graphql-client'; +import { fetchPullRequestId } from './fetch-pull-request-id2'; + +export async function disablePullRequestAutoMerge( + options: ValidConfigOptions, + pullNumber: number, +) { + const { accessToken, githubApiBaseUrlV4 } = options; + const pullRequestId = await fetchPullRequestId(options, pullNumber); + + const query = graphql(` + mutation DisablePullRequestAutoMerge($pullRequestId: ID!) { + disablePullRequestAutoMerge(input: { pullRequestId: $pullRequestId }) { + pullRequest { + number + } + } + } + `); + + const client = getGraphQLClient({ accessToken, githubApiBaseUrlV4 }); + const result = await client.mutation(query, { + pullRequestId, + }); + + if (result.error) { + throw new GithubV4Exception(result); + } + + return result.data?.disablePullRequestAutoMerge?.pullRequest?.number; +} diff --git a/src/lib/github/v4/disablePullRequestAutoMerge.ts b/src/lib/github/v4/disablePullRequestAutoMerge.ts deleted file mode 100644 index 2e54173e..00000000 --- a/src/lib/github/v4/disablePullRequestAutoMerge.ts +++ /dev/null @@ -1,37 +0,0 @@ -import gql from 'graphql-tag'; -import { ValidConfigOptions } from '../../../options/options'; -import { fetchPullRequestId } from './FetchPullRequestId'; -import { apiRequestV4 } from './apiRequestV4'; - -interface Response { - disablePullRequestAutoMerge: { pullRequest?: { number: number } }; -} - -export async function disablePullRequestAutoMerge( - options: ValidConfigOptions, - pullNumber: number, -) { - const { accessToken, githubApiBaseUrlV4 } = options; - const pullRequestId = await fetchPullRequestId(options, pullNumber); - - const query = gql` - mutation DisablePullRequestAutoMerge($pullRequestId: ID!) { - disablePullRequestAutoMerge(input: { pullRequestId: $pullRequestId }) { - pullRequest { - number - } - } - } - `; - - const res = await apiRequestV4({ - githubApiBaseUrlV4, - accessToken, - query, - variables: { - pullRequestId, - }, - }); - - return res.data.data.disablePullRequestAutoMerge.pullRequest?.number; -} diff --git a/src/lib/github/v4/enablePullRequestAutoMerge.mutation.test.ts b/src/lib/github/v4/enable-pull-request-auto-merge.mutation.test.ts similarity index 88% rename from src/lib/github/v4/enablePullRequestAutoMerge.mutation.test.ts rename to src/lib/github/v4/enable-pull-request-auto-merge.mutation.test.ts index 52d0d611..0e777787 100644 --- a/src/lib/github/v4/enablePullRequestAutoMerge.mutation.test.ts +++ b/src/lib/github/v4/enable-pull-request-auto-merge.mutation.test.ts @@ -1,18 +1,16 @@ import crypto from 'crypto'; import { Octokit } from '@octokit/rest'; -import { ValidConfigOptions } from '../../../options/options'; -import { getDevAccessToken } from '../../../test/private/getDevAccessToken'; -import { - createPullRequest, - PullRequestPayload, -} from '../v3/getPullRequest/createPullRequest'; -import { GithubV4Exception } from './apiRequestV4'; -import { disablePullRequestAutoMerge } from './disablePullRequestAutoMerge'; +import type { ValidConfigOptions } from '../../../options/options'; +import { getDevAccessToken } from '../../../test/private/get-dev-access-token'; +import type { PullRequestPayload } from '../v3/getPullRequest/create-pull-request'; +import { createPullRequest } from '../v3/getPullRequest/create-pull-request'; +import type { GithubV4Exception } from './client/graphql-client'; +import { disablePullRequestAutoMerge } from './disable-pull-request-auto-merge'; import { enablePullRequestAutoMerge, - parseGithubError, -} from './enablePullRequestAutoMerge'; -import { fetchPullRequestAutoMergeMethod } from './fetchPullRequestAutoMergeMethod'; + isMissingStatusChecksError, +} from './enable-pull-request-auto-merge'; +import { fetchPullRequestAutoMergeMethod } from './fetch-pull-request-auto-merge-method'; // The test repo requires auto-merge being enabled in options, as well as all merge types enabled (merge, squash, rebase) // The test pull requests should be open, and not currently able to be merged (e.g. because it requires an approval), @@ -200,15 +198,14 @@ describe('enablePullRequestAutoMerge', () => { pullNumber, ); } catch (e) { - const err = e as GithubV4Exception; - const res = parseGithubError(err); + const err = e as GithubV4Exception; + isMissingStatusChecks = isMissingStatusChecksError(err); errorMessage = err.message; - isMissingStatusChecks = res.isMissingStatusChecks; } expect(isMissingStatusChecks).toBe(false); expect(errorMessage).toMatchInlineSnapshot( - `"Merge method rebase merging is not allowed on this repository (Github API v4)"`, + `"[GraphQL] Merge method rebase merging is not allowed on this repository (Github API v4)"`, ); // ensure Github API reflects the change before querying @@ -273,7 +270,7 @@ describe('enablePullRequestAutoMerge', () => { await resetReference(octokit); }); - it('should not be possible to enable auto-merge', async () => { + it.skip('should not be possible to enable auto-merge', async () => { let isMissingStatusChecks; let errorMessage; try { @@ -282,10 +279,9 @@ describe('enablePullRequestAutoMerge', () => { pullNumber, ); } catch (e) { - const err = e as GithubV4Exception; - const res = parseGithubError(err); + const err = e as GithubV4Exception; + isMissingStatusChecks = isMissingStatusChecksError(err); errorMessage = err.message; - isMissingStatusChecks = res.isMissingStatusChecks; } expect(errorMessage).toMatchInlineSnapshot( @@ -330,7 +326,6 @@ describe('enablePullRequestAutoMerge', () => { await resetReference(octokit); }); - // eslint-disable-next-line jest/no-disabled-tests it.skip('should not be possible to enable auto-merge', async () => { let isMissingStatusChecks; let errorMessage; @@ -341,10 +336,9 @@ describe('enablePullRequestAutoMerge', () => { pullNumber, ); } catch (e) { - const err = e as GithubV4Exception; - const res = parseGithubError(err); + const err = e as GithubV4Exception; + isMissingStatusChecks = isMissingStatusChecksError(err); errorMessage = err.message; - isMissingStatusChecks = res.isMissingStatusChecks; } const autoMergeMethod = await fetchPullRequestAutoMergeMethod( diff --git a/src/lib/github/v4/enable-pull-request-auto-merge.ts b/src/lib/github/v4/enable-pull-request-auto-merge.ts new file mode 100644 index 00000000..e041bbd0 --- /dev/null +++ b/src/lib/github/v4/enable-pull-request-auto-merge.ts @@ -0,0 +1,60 @@ +import { graphql } from '../../../graphql/generated'; +import type { ValidConfigOptions } from '../../../options/options'; +import { getGraphQLClient, GithubV4Exception } from './client/graphql-client'; +import { fetchPullRequestId } from './fetch-pull-request-id2'; + +export async function enablePullRequestAutoMerge( + options: ValidConfigOptions, + targetPullRequestNumber: number, +) { + const { + accessToken, + githubApiBaseUrlV4, + autoMergeMethod = 'merge', + } = options; + + const pullRequestId = await fetchPullRequestId( + options, + targetPullRequestNumber, + ); + + const query = graphql(` + mutation EnablePullRequestAutoMerge( + $pullRequestId: ID! + $mergeMethod: PullRequestMergeMethod! + ) { + enablePullRequestAutoMerge( + input: { pullRequestId: $pullRequestId, mergeMethod: $mergeMethod } + ) { + pullRequest { + number + } + } + } + `); + + const variables = { + pullRequestId, + mergeMethod: autoMergeMethod.toUpperCase() as any, + }; + + const client = getGraphQLClient({ accessToken, githubApiBaseUrlV4 }); + const result = await client.mutation(query, variables); + + if (result.error) { + throw new GithubV4Exception(result); + } + + return result.data?.enablePullRequestAutoMerge?.pullRequest?.number; +} + +export function isMissingStatusChecksError(e: GithubV4Exception) { + return e.result.error?.graphQLErrors.some( + (e) => + e.extensions.type === 'UNPROCESSABLE' && + (e.message.includes( + 'Branch does not have required protected branch rules', + ) || + e.message.includes('Pull request is in clean status')), + ); +} diff --git a/src/lib/github/v4/enablePullRequestAutoMerge.ts b/src/lib/github/v4/enablePullRequestAutoMerge.ts deleted file mode 100644 index 568d2e2b..00000000 --- a/src/lib/github/v4/enablePullRequestAutoMerge.ts +++ /dev/null @@ -1,64 +0,0 @@ -import gql from 'graphql-tag'; -import { ValidConfigOptions } from '../../../options/options'; -import { fetchPullRequestId } from './FetchPullRequestId'; -import { apiRequestV4, GithubV4Exception } from './apiRequestV4'; - -interface Response { - enablePullRequestAutoMerge: { pullRequest?: { number: number } }; -} - -export async function enablePullRequestAutoMerge( - options: ValidConfigOptions, - targetPullRequestNumber: number, -) { - const { - accessToken, - githubApiBaseUrlV4, - autoMergeMethod = 'merge', - } = options; - - const pullRequestId = await fetchPullRequestId( - options, - targetPullRequestNumber, - ); - - const query = gql` - mutation EnablePullRequestAutoMerge( - $pullRequestId: ID! - $mergeMethod: PullRequestMergeMethod! - ) { - enablePullRequestAutoMerge( - input: { pullRequestId: $pullRequestId, mergeMethod: $mergeMethod } - ) { - pullRequest { - number - } - } - } - `; - - const res = await apiRequestV4({ - githubApiBaseUrlV4, - accessToken, - query, - variables: { - pullRequestId, - mergeMethod: autoMergeMethod.toUpperCase(), - }, - }); - - return res.data.data.enablePullRequestAutoMerge.pullRequest?.number; -} - -export function parseGithubError(e: GithubV4Exception) { - const isMissingStatusChecks = e.githubResponse.data.errors?.some( - (e) => - e.type === 'UNPROCESSABLE' && - (e.message.includes( - 'Branch does not have required protected branch rules', - ) || - e.message.includes('Pull request is in clean status')), - ); - - return { isMissingStatusChecks }; -} diff --git a/src/lib/github/v4/fetchAuthorId.private.test.ts b/src/lib/github/v4/fetch-author-id.private.test.ts similarity index 75% rename from src/lib/github/v4/fetchAuthorId.private.test.ts rename to src/lib/github/v4/fetch-author-id.private.test.ts index bd3e0e7c..347865c7 100644 --- a/src/lib/github/v4/fetchAuthorId.private.test.ts +++ b/src/lib/github/v4/fetch-author-id.private.test.ts @@ -1,6 +1,6 @@ -import { ValidConfigOptions } from '../../../options/options'; -import { getDevAccessToken } from '../../../test/private/getDevAccessToken'; -import { fetchAuthorId } from './fetchAuthorId'; +import type { ValidConfigOptions } from '../../../options/options'; +import { getDevAccessToken } from '../../../test/private/get-dev-access-token'; +import { fetchAuthorId } from './fetch-author-id'; const accessToken = getDevAccessToken(); diff --git a/src/lib/github/v4/fetch-author-id.ts b/src/lib/github/v4/fetch-author-id.ts new file mode 100644 index 00000000..e1d59125 --- /dev/null +++ b/src/lib/github/v4/fetch-author-id.ts @@ -0,0 +1,34 @@ +import { graphql } from '../../../graphql/generated'; +import { getGraphQLClient, GithubV4Exception } from './client/graphql-client'; + +export async function fetchAuthorId({ + accessToken, + author, + githubApiBaseUrlV4 = 'https://api.github.com/graphql', +}: { + accessToken: string; + author: string | null; + githubApiBaseUrlV4?: string; +}) { + if (author === null) { + return null; + } + + const query = graphql(` + query AuthorId($author: String!) { + user(login: $author) { + id + } + } + `); + const variables = { author }; + + const client = getGraphQLClient({ accessToken, githubApiBaseUrlV4 }); + const result = await client.query(query, variables); + + if (result.error) { + throw new GithubV4Exception(result); + } + + return result.data?.user?.id; +} diff --git a/src/lib/github/v4/fetchExistingPullRequest.private.test.ts b/src/lib/github/v4/fetch-existing-pull-request.private.test.ts similarity index 84% rename from src/lib/github/v4/fetchExistingPullRequest.private.test.ts rename to src/lib/github/v4/fetch-existing-pull-request.private.test.ts index 3e666f4a..d6b6062c 100644 --- a/src/lib/github/v4/fetchExistingPullRequest.private.test.ts +++ b/src/lib/github/v4/fetch-existing-pull-request.private.test.ts @@ -1,6 +1,6 @@ -import { ValidConfigOptions } from '../../../options/options'; -import { getDevAccessToken } from '../../../test/private/getDevAccessToken'; -import { fetchExistingPullRequest } from './fetchExistingPullRequest'; +import type { ValidConfigOptions } from '../../../options/options'; +import { getDevAccessToken } from '../../../test/private/get-dev-access-token'; +import { fetchExistingPullRequest } from './fetch-existing-pull-request'; const accessToken = getDevAccessToken(); diff --git a/src/lib/github/v4/fetchExistingPullRequest.ts b/src/lib/github/v4/fetch-existing-pull-request.ts similarity index 54% rename from src/lib/github/v4/fetchExistingPullRequest.ts rename to src/lib/github/v4/fetch-existing-pull-request.ts index 00257ec6..3b68c811 100644 --- a/src/lib/github/v4/fetchExistingPullRequest.ts +++ b/src/lib/github/v4/fetch-existing-pull-request.ts @@ -1,7 +1,8 @@ -import gql from 'graphql-tag'; -import { ValidConfigOptions } from '../../../options/options'; -import { PullRequestPayload } from '../v3/getPullRequest/createPullRequest'; -import { apiRequestV4 } from './apiRequestV4'; +import { first } from 'lodash'; +import { graphql } from '../../../graphql/generated'; +import type { ValidConfigOptions } from '../../../options/options'; +import type { PullRequestPayload } from '../v3/getPullRequest/create-pull-request'; +import { getGraphQLClient, GithubV4Exception } from './client/graphql-client'; export async function fetchExistingPullRequest({ options, @@ -11,7 +12,7 @@ export async function fetchExistingPullRequest({ prPayload: PullRequestPayload; }) { const { githubApiBaseUrlV4, accessToken } = options; - const query = gql` + const query = graphql(` query ExistingPullRequest( $repoOwner: String! $repoName: String! @@ -38,26 +39,28 @@ export async function fetchExistingPullRequest({ } } } - `; + `); const { repoForkOwner, head } = splitHead(prPayload); - const res = await apiRequestV4({ - githubApiBaseUrlV4, - accessToken, - query, - variables: { - repoOwner: repoForkOwner, - repoName: prPayload.repo, - base: prPayload.base, - head: head, - }, - }); + const variables = { + repoOwner: repoForkOwner, + repoName: prPayload.repo, + base: prPayload.base, + head: head, + }; + const client = getGraphQLClient({ accessToken, githubApiBaseUrlV4 }); + const result = await client.query(query, variables); + + if (result.error) { + throw new GithubV4Exception(result); + } - const existingPullRequest = - res.data.data.repository.ref?.associatedPullRequests.edges[0]; + const existingPullRequest = first( + result.data?.repository?.ref?.associatedPullRequests.edges, + ); - if (!existingPullRequest) { + if (!existingPullRequest?.node) { return; } @@ -67,23 +70,6 @@ export async function fetchExistingPullRequest({ }; } -interface ExistingPullRequestResponse { - repository: { - name: string; - ref: { - name: string; - associatedPullRequests: { - edges: { - node: { - number: number; - url: string; - }; - }[]; - }; - } | null; - }; -} - function splitHead(prPayload: PullRequestPayload) { const [repoForkOwner, head] = prPayload.head.split(':'); return { repoForkOwner, head }; diff --git a/src/lib/github/v4/fetch-pull-request-auto-merge-method.ts b/src/lib/github/v4/fetch-pull-request-auto-merge-method.ts new file mode 100644 index 00000000..89e65524 --- /dev/null +++ b/src/lib/github/v4/fetch-pull-request-auto-merge-method.ts @@ -0,0 +1,40 @@ +import { graphql } from '../../../graphql/generated'; +import type { ValidConfigOptions } from '../../../options/options'; +import { GithubV4Exception, getGraphQLClient } from './client/graphql-client'; + +export async function fetchPullRequestAutoMergeMethod( + options: ValidConfigOptions, + pullNumber: number, +) { + const { accessToken, githubApiBaseUrlV4, repoName, repoOwner } = options; + + const query = graphql(` + query PullRequestAutoMergeMethod( + $repoOwner: String! + $repoName: String! + $pullNumber: Int! + ) { + repository(owner: $repoOwner, name: $repoName) { + pullRequest(number: $pullNumber) { + autoMergeRequest { + enabledAt + mergeMethod + } + } + } + } + `); + const variables = { + repoOwner, + repoName, + pullNumber, + }; + const client = getGraphQLClient({ accessToken, githubApiBaseUrlV4 }); + const result = await client.query(query, variables); + + if (result.error) { + throw new GithubV4Exception(result); + } + + return result.data?.repository?.pullRequest?.autoMergeRequest?.mergeMethod; +} diff --git a/src/lib/github/v4/fetch-pull-request-id2.ts b/src/lib/github/v4/fetch-pull-request-id2.ts new file mode 100644 index 00000000..06915329 --- /dev/null +++ b/src/lib/github/v4/fetch-pull-request-id2.ts @@ -0,0 +1,39 @@ +import { graphql } from '../../../graphql/generated'; +import type { ValidConfigOptions } from '../../../options/options'; +import { getGraphQLClient, GithubV4Exception } from './client/graphql-client'; + +export async function fetchPullRequestId( + options: ValidConfigOptions, + pullNumber: number, +) { + const { accessToken, githubApiBaseUrlV4, repoName, repoOwner } = options; + + const query = graphql(` + query PullRequestId( + $repoOwner: String! + $repoName: String! + $pullNumber: Int! + ) { + repository(owner: $repoOwner, name: $repoName) { + pullRequest(number: $pullNumber) { + id + } + } + } + `); + + const variables = { repoOwner, repoName, pullNumber }; + const client = getGraphQLClient({ accessToken, githubApiBaseUrlV4 }); + const result = await client.query(query, variables); + + if (result.error) { + throw new GithubV4Exception(result); + } + + const pullRequestId = result.data?.repository?.pullRequest?.id; + if (!pullRequestId) { + throw new Error(`No pull request found with number "${pullNumber}"`); + } + + return pullRequestId; +} diff --git a/src/lib/github/v4/fetchAuthorId.ts b/src/lib/github/v4/fetchAuthorId.ts deleted file mode 100644 index 3e1cd393..00000000 --- a/src/lib/github/v4/fetchAuthorId.ts +++ /dev/null @@ -1,37 +0,0 @@ -import gql from 'graphql-tag'; -import { apiRequestV4 } from './apiRequestV4'; - -export interface AuthorIdResponse { - user: { id: string }; -} - -export async function fetchAuthorId({ - accessToken, - author, - githubApiBaseUrlV4 = 'https://api.github.com/graphql', -}: { - accessToken: string; - author: string | null; - githubApiBaseUrlV4?: string; -}) { - if (author === null) { - return null; - } - - const query = gql` - query AuthorId($author: String!) { - user(login: $author) { - id - } - } - `; - - const res = await apiRequestV4({ - githubApiBaseUrlV4, - accessToken, - query, - variables: { author }, - }); - - return res.data.data.user.id; -} diff --git a/src/lib/github/v4/fetchCommits/__snapshots__/fetchCommitsByAuthor.test.ts.snap b/src/lib/github/v4/fetchCommits/__snapshots__/fetch-commits-by-author.test.ts.snap similarity index 88% rename from src/lib/github/v4/fetchCommits/__snapshots__/fetchCommitsByAuthor.test.ts.snap rename to src/lib/github/v4/fetchCommits/__snapshots__/fetch-commits-by-author.test.ts.snap index 62029f37..949e6fbb 100644 --- a/src/lib/github/v4/fetchCommits/__snapshots__/fetchCommitsByAuthor.test.ts.snap +++ b/src/lib/github/v4/fetchCommits/__snapshots__/fetch-commits-by-author.test.ts.snap @@ -1,8 +1,9 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP +// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing exports[`fetchCommitsByAuthor when commit has an associated pull request should call with correct args to fetch author id 1`] = ` [ { + "operationName": "AuthorId", "query": "query AuthorId($author: String!) { user(login: $author) { id @@ -18,11 +19,13 @@ exports[`fetchCommitsByAuthor when commit has an associated pull request should exports[`fetchCommitsByAuthor when commit has an associated pull request should call with correct args to fetch commits 1`] = ` [ { + "operationName": "CommitsByAuthor", "query": "query CommitsByAuthor($authorId: ID, $commitPath: String, $dateSince: GitTimestamp, $dateUntil: GitTimestamp, $maxNumber: Int!, $repoName: String!, $repoOwner: String!, $sourceBranch: String!) { repository(owner: $repoOwner, name: $repoName) { ref(qualifiedName: $sourceBranch) { target { ... on Commit { + __typename history( first: $maxNumber author: {id: $authorId} @@ -32,6 +35,7 @@ exports[`fetchCommitsByAuthor when commit has an associated pull request should ) { edges { node { + __typename ...SourceCommitWithTargetPullRequestFragment } } @@ -41,8 +45,30 @@ exports[`fetchCommitsByAuthor when commit has an associated pull request should } } } - +fragment RemoteConfigHistoryFragment on Commit { + remoteConfigHistory: history(first: 1, path: +".backportrc.json") { + edges { + remoteConfig: node { + committedDate + file(path: +".backportrc.json") { + ... on TreeEntry { + __typename + object { + ... on Blob { + __typename + text + } + } + } + } + } + } + } +} fragment SourceCommitWithTargetPullRequestFragment on Commit { + __typename repository { name owner { @@ -69,6 +95,7 @@ fragment SourceCommitWithTargetPullRequestFragment on Commit { } baseRefName mergeCommit { + __typename ...RemoteConfigHistoryFragment sha: oid message @@ -77,9 +104,11 @@ fragment SourceCommitWithTargetPullRequestFragment on Commit { edges { node { ... on CrossReferencedEvent { + __typename targetPullRequest: source { __typename ... on PullRequest { + __typename targetMergeCommit: mergeCommit { sha: oid message @@ -114,25 +143,6 @@ fragment SourceCommitWithTargetPullRequestFragment on Commit { } } } -} - -fragment RemoteConfigHistoryFragment on Commit { - remoteConfigHistory: history(first: 1, path: ".backportrc.json") { - edges { - remoteConfig: node { - committedDate - file(path: ".backportrc.json") { - ... on TreeEntry { - object { - ... on Blob { - text - } - } - } - } - } - } - } }", "variables": { "authorId": "myUserId", diff --git a/src/lib/github/v4/fetchCommits/__snapshots__/fetchCommitByPullNumber.private.test.ts.snap b/src/lib/github/v4/fetchCommits/__snapshots__/fetchCommitByPullNumber.private.test.ts.snap deleted file mode 100644 index 2c02ff48..00000000 --- a/src/lib/github/v4/fetchCommits/__snapshots__/fetchCommitByPullNumber.private.test.ts.snap +++ /dev/null @@ -1,203 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`fetchCommitByPullNumber snapshot request/response makes the right queries: Query: CommitByPullNumber 1`] = ` -"query CommitByPullNumber($repoOwner: String!, $repoName: String!, $pullNumber: Int!) { - repository(owner: $repoOwner, name: $repoName) { - pullRequest(number: $pullNumber) { - commits(last: 1) { - totalCount - edges { - node { - commit { - message - } - } - } - } - mergeCommit { - oid - committedDate - history(first: 2) { - edges { - node { - message - committedDate - } - } - } - } - } - } -}" -`; - -exports[`fetchCommitByPullNumber snapshot request/response makes the right queries: Query: CommitsBySha 1`] = ` -"query CommitsBySha($repoOwner: String!, $repoName: String!, $sha: String!) { - repository(owner: $repoOwner, name: $repoName) { - object(expression: $sha) { - ...SourceCommitWithTargetPullRequestFragment - } - } -} - -fragment SourceCommitWithTargetPullRequestFragment on Commit { - repository { - name - owner { - login - } - } - sha: oid - message - committedDate - author { - name - email - } - associatedPullRequests(first: 1) { - edges { - node { - title - url - number - labels(first: 50) { - nodes { - name - } - } - baseRefName - mergeCommit { - ...RemoteConfigHistoryFragment - sha: oid - message - } - timelineItems(last: 20, itemTypes: CROSS_REFERENCED_EVENT) { - edges { - node { - ... on CrossReferencedEvent { - targetPullRequest: source { - __typename - ... on PullRequest { - targetMergeCommit: mergeCommit { - sha: oid - message - } - repository { - name - owner { - login - } - } - url - title - state - baseRefName - number - commits(first: 20) { - edges { - node { - targetCommit: commit { - message - sha: oid - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -fragment RemoteConfigHistoryFragment on Commit { - remoteConfigHistory: history(first: 1, path: ".backportrc.json") { - edges { - remoteConfig: node { - committedDate - file(path: ".backportrc.json") { - ... on TreeEntry { - object { - ... on Blob { - text - } - } - } - } - } - } - } -}" -`; - -exports[`fetchCommitByPullNumber snapshot request/response returns the correct response 1`] = ` -[ - { - "author": { - "email": "soren.louv@elastic.co", - "name": "Søren Louv-Jansen", - }, - "sourceBranch": "main", - "sourceCommit": { - "branchLabelMapping": { - "^v(\\d+).(\\d+).\\d+$": "$1.$2", - "^v8.1.0$": "main", - }, - "committedDate": "2021-12-20T14:20:16Z", - "message": "[APM] Add note about synthtrace to APM docs (#121633)", - "sha": "d421ddcf6157150596581c7885afa3690cec6339", - }, - "sourcePullRequest": { - "labels": [ - "Team:APM - DEPRECATED", - "v8.0.0", - "release_note:skip", - "auto-backport", - "v8.1.0", - ], - "mergeCommit": { - "message": "[APM] Add note about synthtrace to APM docs (#121633)", - "sha": "d421ddcf6157150596581c7885afa3690cec6339", - }, - "number": 121633, - "title": "[APM] Add note about synthtrace to APM docs", - "url": "https://github.com/elastic/kibana/pull/121633", - }, - "suggestedTargetBranches": [], - "targetPullRequestStates": [ - { - "branch": "8.0", - "branchLabelMappingKey": "^v(\\d+).(\\d+).\\d+$", - "isSourceBranch": false, - "label": "v8.0.0", - "mergeCommit": { - "message": "[APM] Add note about synthtrace to APM docs (#121633) (#121643) - -Co-authored-by: Søren Louv-Jansen ", - "sha": "842adfdeb5541b059231857522f9009771a46107", - }, - "number": 121643, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/121643", - }, - { - "branch": "main", - "branchLabelMappingKey": "^v8.1.0$", - "isSourceBranch": true, - "label": "v8.1.0", - "mergeCommit": { - "message": "[APM] Add note about synthtrace to APM docs (#121633)", - "sha": "d421ddcf6157150596581c7885afa3690cec6339", - }, - "number": 121633, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/121633", - }, - ], - }, -] -`; diff --git a/src/lib/github/v4/fetchCommits/__snapshots__/fetchCommitBySha.private.test.ts.snap b/src/lib/github/v4/fetchCommits/__snapshots__/fetchCommitBySha.private.test.ts.snap deleted file mode 100644 index 3f614521..00000000 --- a/src/lib/github/v4/fetchCommits/__snapshots__/fetchCommitBySha.private.test.ts.snap +++ /dev/null @@ -1,170 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`fetchCommitBySha snapshot request/response makes the right queries: Query: CommitsBySha 1`] = ` -"query CommitsBySha($repoOwner: String!, $repoName: String!, $sha: String!) { - repository(owner: $repoOwner, name: $repoName) { - object(expression: $sha) { - ...SourceCommitWithTargetPullRequestFragment - } - } -} - -fragment SourceCommitWithTargetPullRequestFragment on Commit { - repository { - name - owner { - login - } - } - sha: oid - message - committedDate - author { - name - email - } - associatedPullRequests(first: 1) { - edges { - node { - title - url - number - labels(first: 50) { - nodes { - name - } - } - baseRefName - mergeCommit { - ...RemoteConfigHistoryFragment - sha: oid - message - } - timelineItems(last: 20, itemTypes: CROSS_REFERENCED_EVENT) { - edges { - node { - ... on CrossReferencedEvent { - targetPullRequest: source { - __typename - ... on PullRequest { - targetMergeCommit: mergeCommit { - sha: oid - message - } - repository { - name - owner { - login - } - } - url - title - state - baseRefName - number - commits(first: 20) { - edges { - node { - targetCommit: commit { - message - sha: oid - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -fragment RemoteConfigHistoryFragment on Commit { - remoteConfigHistory: history(first: 1, path: ".backportrc.json") { - edges { - remoteConfig: node { - committedDate - file(path: ".backportrc.json") { - ... on TreeEntry { - object { - ... on Blob { - text - } - } - } - } - } - } - } -}" -`; - -exports[`fetchCommitBySha snapshot request/response returns the correct response 1`] = ` -{ - "author": { - "email": "soren.louv@elastic.co", - "name": "Søren Louv-Jansen", - }, - "sourceBranch": "main", - "sourceCommit": { - "branchLabelMapping": { - "^v(\\d+).(\\d+).\\d+$": "$1.$2", - "^v8.1.0$": "main", - }, - "committedDate": "2021-12-20T14:20:16Z", - "message": "[APM] Add note about synthtrace to APM docs (#121633)", - "sha": "d421ddcf6157150596581c7885afa3690cec6339", - }, - "sourcePullRequest": { - "labels": [ - "Team:APM - DEPRECATED", - "v8.0.0", - "release_note:skip", - "auto-backport", - "v8.1.0", - ], - "mergeCommit": { - "message": "[APM] Add note about synthtrace to APM docs (#121633)", - "sha": "d421ddcf6157150596581c7885afa3690cec6339", - }, - "number": 121633, - "title": "[APM] Add note about synthtrace to APM docs", - "url": "https://github.com/elastic/kibana/pull/121633", - }, - "suggestedTargetBranches": [], - "targetPullRequestStates": [ - { - "branch": "8.0", - "branchLabelMappingKey": "^v(\\d+).(\\d+).\\d+$", - "isSourceBranch": false, - "label": "v8.0.0", - "mergeCommit": { - "message": "[APM] Add note about synthtrace to APM docs (#121633) (#121643) - -Co-authored-by: Søren Louv-Jansen ", - "sha": "842adfdeb5541b059231857522f9009771a46107", - }, - "number": 121643, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/121643", - }, - { - "branch": "main", - "branchLabelMappingKey": "^v8.1.0$", - "isSourceBranch": true, - "label": "v8.1.0", - "mergeCommit": { - "message": "[APM] Add note about synthtrace to APM docs (#121633)", - "sha": "d421ddcf6157150596581c7885afa3690cec6339", - }, - "number": 121633, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/121633", - }, - ], -} -`; diff --git a/src/lib/github/v4/fetchCommits/__snapshots__/fetchCommitsByAuthor.private.test.ts.snap b/src/lib/github/v4/fetchCommits/__snapshots__/fetchCommitsByAuthor.private.test.ts.snap deleted file mode 100644 index 40670c16..00000000 --- a/src/lib/github/v4/fetchCommits/__snapshots__/fetchCommitsByAuthor.private.test.ts.snap +++ /dev/null @@ -1,822 +0,0 @@ -// Jest Snapshot v1, https://goo.gl/fbAQLP - -exports[`fetchCommitsByAuthor snapshot request/response makes the right queries: Query: AuthorId 1`] = ` -"query AuthorId($author: String!) { - user(login: $author) { - id - } -}" -`; - -exports[`fetchCommitsByAuthor snapshot request/response makes the right queries: Query: CommitsByAuthor 1`] = ` -"query CommitsByAuthor($authorId: ID, $commitPath: String, $dateSince: GitTimestamp, $dateUntil: GitTimestamp, $maxNumber: Int!, $repoName: String!, $repoOwner: String!, $sourceBranch: String!) { - repository(owner: $repoOwner, name: $repoName) { - ref(qualifiedName: $sourceBranch) { - target { - ... on Commit { - history( - first: $maxNumber - author: {id: $authorId} - path: $commitPath - since: $dateSince - until: $dateUntil - ) { - edges { - node { - ...SourceCommitWithTargetPullRequestFragment - } - } - } - } - } - } - } -} - -fragment SourceCommitWithTargetPullRequestFragment on Commit { - repository { - name - owner { - login - } - } - sha: oid - message - committedDate - author { - name - email - } - associatedPullRequests(first: 1) { - edges { - node { - title - url - number - labels(first: 50) { - nodes { - name - } - } - baseRefName - mergeCommit { - ...RemoteConfigHistoryFragment - sha: oid - message - } - timelineItems(last: 20, itemTypes: CROSS_REFERENCED_EVENT) { - edges { - node { - ... on CrossReferencedEvent { - targetPullRequest: source { - __typename - ... on PullRequest { - targetMergeCommit: mergeCommit { - sha: oid - message - } - repository { - name - owner { - login - } - } - url - title - state - baseRefName - number - commits(first: 20) { - edges { - node { - targetCommit: commit { - message - sha: oid - } - } - } - } - } - } - } - } - } - } - } - } - } -} - -fragment RemoteConfigHistoryFragment on Commit { - remoteConfigHistory: history(first: 1, path: ".backportrc.json") { - edges { - remoteConfig: node { - committedDate - file(path: ".backportrc.json") { - ... on TreeEntry { - object { - ... on Blob { - text - } - } - } - } - } - } - } -}" -`; - -exports[`fetchCommitsByAuthor snapshot request/response returns the correct response 1`] = ` -[ - { - "author": { - "email": "soren.louv@elastic.co", - "name": "Søren Louv-Jansen", - }, - "sourceBranch": "main", - "sourceCommit": { - "branchLabelMapping": { - "^v(\\d+).(\\d+).\\d+$": "$1.$2", - "^v8.1.0$": "main", - }, - "committedDate": "2021-12-20T14:20:16Z", - "message": "[APM] Add note about synthtrace to APM docs (#121633)", - "sha": "d421ddcf6157150596581c7885afa3690cec6339", - }, - "sourcePullRequest": { - "labels": [ - "Team:APM - DEPRECATED", - "v8.0.0", - "release_note:skip", - "auto-backport", - "v8.1.0", - ], - "mergeCommit": { - "message": "[APM] Add note about synthtrace to APM docs (#121633)", - "sha": "d421ddcf6157150596581c7885afa3690cec6339", - }, - "number": 121633, - "title": "[APM] Add note about synthtrace to APM docs", - "url": "https://github.com/elastic/kibana/pull/121633", - }, - "suggestedTargetBranches": [], - "targetPullRequestStates": [ - { - "branch": "8.0", - "branchLabelMappingKey": "^v(\\d+).(\\d+).\\d+$", - "isSourceBranch": false, - "label": "v8.0.0", - "mergeCommit": { - "message": "[APM] Add note about synthtrace to APM docs (#121633) (#121643) - -Co-authored-by: Søren Louv-Jansen ", - "sha": "842adfdeb5541b059231857522f9009771a46107", - }, - "number": 121643, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/121643", - }, - { - "branch": "main", - "branchLabelMappingKey": "^v8.1.0$", - "isSourceBranch": true, - "label": "v8.1.0", - "mergeCommit": { - "message": "[APM] Add note about synthtrace to APM docs (#121633)", - "sha": "d421ddcf6157150596581c7885afa3690cec6339", - }, - "number": 121633, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/121633", - }, - ], - }, - { - "author": { - "email": "soren.louv@elastic.co", - "name": "Søren Louv-Jansen", - }, - "sourceBranch": "main", - "sourceCommit": { - "branchLabelMapping": { - "^v(\\d+).(\\d+).\\d+$": "$1.$2", - "^v8.1.0$": "main", - }, - "committedDate": "2021-12-08T20:03:55Z", - "message": "[APM] Prefer service.name for logs correlation (#120694)", - "sha": "b1b491959dab47aeb83c88ee2accb2db46d23793", - }, - "sourcePullRequest": { - "labels": [ - "release_note:enhancement", - "Team:APM - DEPRECATED", - "backport:skip", - "v8.1.0", - ], - "mergeCommit": { - "message": "[APM] Prefer service.name for logs correlation (#120694)", - "sha": "b1b491959dab47aeb83c88ee2accb2db46d23793", - }, - "number": 120694, - "title": "[APM] Prefer \`service.name\` for logs correlation", - "url": "https://github.com/elastic/kibana/pull/120694", - }, - "suggestedTargetBranches": [], - "targetPullRequestStates": [ - { - "branch": "main", - "branchLabelMappingKey": "^v8.1.0$", - "isSourceBranch": true, - "label": "v8.1.0", - "mergeCommit": { - "message": "[APM] Prefer service.name for logs correlation (#120694)", - "sha": "b1b491959dab47aeb83c88ee2accb2db46d23793", - }, - "number": 120694, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/120694", - }, - ], - }, - { - "author": { - "email": "soren.louv@elastic.co", - "name": "Søren Louv-Jansen", - }, - "sourceBranch": "main", - "sourceCommit": { - "branchLabelMapping": { - "^v(\\d+).(\\d+).\\d+$": "$1.$2", - "^v8.1.0$": "main", - }, - "committedDate": "2021-12-01T23:26:48Z", - "message": "[APM] Disable telemetry in agent config endpoint (#120106)", - "sha": "b1bb4a93959f19a653b9cfb207a5c6acb6559482", - }, - "sourcePullRequest": { - "labels": [ - "Team:APM - DEPRECATED", - "v8.0.0", - "release_note:skip", - "auto-backport", - "v8.1.0", - ], - "mergeCommit": { - "message": "[APM] Disable telemetry in agent config endpoint (#120106)", - "sha": "b1bb4a93959f19a653b9cfb207a5c6acb6559482", - }, - "number": 120106, - "title": "[APM] Disable telemetry in agent config endpoint", - "url": "https://github.com/elastic/kibana/pull/120106", - }, - "suggestedTargetBranches": [], - "targetPullRequestStates": [ - { - "branch": "8.0", - "branchLabelMappingKey": "^v(\\d+).(\\d+).\\d+$", - "isSourceBranch": false, - "label": "v8.0.0", - "mergeCommit": { - "message": "[APM] Disable telemetry in agent config endpoint (#120106) (#120186) - -Co-authored-by: Søren Louv-Jansen ", - "sha": "33c132edf127aafe0886921e7451cbcdb3e68acd", - }, - "number": 120186, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/120186", - }, - { - "branch": "main", - "branchLabelMappingKey": "^v8.1.0$", - "isSourceBranch": true, - "label": "v8.1.0", - "mergeCommit": { - "message": "[APM] Disable telemetry in agent config endpoint (#120106)", - "sha": "b1bb4a93959f19a653b9cfb207a5c6acb6559482", - }, - "number": 120106, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/120106", - }, - ], - }, - { - "author": { - "email": "soren.louv@elastic.co", - "name": "Søren Louv-Jansen", - }, - "sourceBranch": "main", - "sourceCommit": { - "branchLabelMapping": { - "^v(\\d+).(\\d+).\\d+$": "$1.$2", - "^v8.1.0$": "main", - }, - "committedDate": "2021-11-30T18:47:26Z", - "message": "[APM] Remove index_pattern.json and add custom field formatters (#119915) - -* [APM] Remove index_pattern.json and add custom field formatters - -* Fix tests - -* Fix tests - -* Fix tutorial", - "sha": "434f6e6a88faf24dc1ea41f9f726db78e46355a7", - }, - "sourcePullRequest": { - "labels": [ - "Team:APM - DEPRECATED", - "v8.0.0", - "release_note:skip", - "auto-backport", - "v8.1.0", - ], - "mergeCommit": { - "message": "[APM] Remove index_pattern.json and add custom field formatters (#119915) - -* [APM] Remove index_pattern.json and add custom field formatters - -* Fix tests - -* Fix tests - -* Fix tutorial", - "sha": "434f6e6a88faf24dc1ea41f9f726db78e46355a7", - }, - "number": 119915, - "title": "[APM] Remove index_pattern.json and add custom field formatters", - "url": "https://github.com/elastic/kibana/pull/119915", - }, - "suggestedTargetBranches": [], - "targetPullRequestStates": [ - { - "branch": "8.0", - "branchLabelMappingKey": "^v(\\d+).(\\d+).\\d+$", - "isSourceBranch": false, - "label": "v8.0.0", - "mergeCommit": { - "message": "[APM] Remove index_pattern.json and add custom field formatters (#119915) (#120012) - -* [APM] Remove index_pattern.json and add custom field formatters - -* Fix tests - -* Fix tests - -* Fix tutorial - -Co-authored-by: Søren Louv-Jansen ", - "sha": "4d5992dbcbfc097f94562894882ad80c2791aad0", - }, - "number": 120012, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/120012", - }, - { - "branch": "main", - "branchLabelMappingKey": "^v8.1.0$", - "isSourceBranch": true, - "label": "v8.1.0", - "mergeCommit": { - "message": "[APM] Remove index_pattern.json and add custom field formatters (#119915) - -* [APM] Remove index_pattern.json and add custom field formatters - -* Fix tests - -* Fix tests - -* Fix tutorial", - "sha": "434f6e6a88faf24dc1ea41f9f726db78e46355a7", - }, - "number": 119915, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/119915", - }, - ], - }, - { - "author": { - "email": "soren.louv@elastic.co", - "name": "Søren Louv-Jansen", - }, - "sourceBranch": "main", - "sourceCommit": { - "branchLabelMapping": { - "^v(\\d+).(\\d+).\\d+$": "$1.$2", - "^v8.1.0$": "main", - }, - "committedDate": "2021-11-29T15:12:27Z", - "message": "[APM] Remove log-log descriptions from correlation charts (#119700)", - "sha": "ae9d51b7fe3ee6f30d0d196c782e0dcabb7ac5ff", - }, - "sourcePullRequest": { - "labels": [ - "Team:APM - DEPRECATED", - "v8.0.0", - "release_note:skip", - "auto-backport", - "v7.16.0", - ], - "mergeCommit": { - "message": "[APM] Remove log-log descriptions from correlation charts (#119700)", - "sha": "ae9d51b7fe3ee6f30d0d196c782e0dcabb7ac5ff", - }, - "number": 119700, - "title": "[APM] Remove log-log descriptions from correlation charts", - "url": "https://github.com/elastic/kibana/pull/119700", - }, - "suggestedTargetBranches": [], - "targetPullRequestStates": [ - { - "branch": "8.0", - "branchLabelMappingKey": "^v(\\d+).(\\d+).\\d+$", - "isSourceBranch": false, - "label": "v8.0.0", - "mergeCommit": { - "message": "[APM] Remove log-log descriptions from correlation charts (#119700) (#120178)", - "sha": "0bd9d7f9fe713ad78330fd1aa6c713c9c5c2c8d6", - }, - "number": 120178, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/120178", - }, - { - "branch": "7.16", - "branchLabelMappingKey": "^v(\\d+).(\\d+).\\d+$", - "isSourceBranch": false, - "label": "v7.16.0", - "mergeCommit": { - "message": "[APM] Remove log-log descriptions from correlation charts (#119700) (#120179) - -# Conflicts: -# x-pack/plugins/apm/public/components/app/correlations/failed_transactions_correlations.tsx -# x-pack/plugins/apm/public/components/app/correlations/latency_correlations.tsx -# x-pack/plugins/apm/public/components/app/transaction_details/distribution/index.tsx", - "sha": "749d1cfc1c7c33beec8fee58046e3d70dbd43e68", - }, - "number": 120179, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/120179", - }, - ], - }, - { - "author": { - "email": "soren.louv@elastic.co", - "name": "Søren Louv-Jansen", - }, - "sourceBranch": "main", - "sourceCommit": { - "branchLabelMapping": { - "^v(\\d+).(\\d+).\\d+$": "$1.$2", - "^v8.1.0$": "main", - }, - "committedDate": "2021-11-29T13:40:01Z", - "message": "[APM] Fix bug in documentation on \`span.destination\` metrics (#119789)", - "sha": "43253ecafa1365eae45d31dd284d0a0bf273bc4d", - }, - "sourcePullRequest": { - "labels": [ - "Team:APM - DEPRECATED", - "v8.0.0", - "release_note:skip", - "auto-backport", - "v8.1.0", - ], - "mergeCommit": { - "message": "[APM] Fix bug in documentation on \`span.destination\` metrics (#119789)", - "sha": "43253ecafa1365eae45d31dd284d0a0bf273bc4d", - }, - "number": 119789, - "title": "[APM] Fix bug in documentation on \`span.destination\` metrics", - "url": "https://github.com/elastic/kibana/pull/119789", - }, - "suggestedTargetBranches": [], - "targetPullRequestStates": [ - { - "branch": "8.0", - "branchLabelMappingKey": "^v(\\d+).(\\d+).\\d+$", - "isSourceBranch": false, - "label": "v8.0.0", - "mergeCommit": { - "message": "[APM] Fix bug in documentation on \`span.destination\` metrics (#119789) (#119840) - -Co-authored-by: Søren Louv-Jansen ", - "sha": "72a88ee6ae55dfacec76cccf0ece7ea6f4bfcc42", - }, - "number": 119840, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/119840", - }, - { - "branch": "main", - "branchLabelMappingKey": "^v8.1.0$", - "isSourceBranch": true, - "label": "v8.1.0", - "mergeCommit": { - "message": "[APM] Fix bug in documentation on \`span.destination\` metrics (#119789)", - "sha": "43253ecafa1365eae45d31dd284d0a0bf273bc4d", - }, - "number": 119789, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/119789", - }, - ], - }, - { - "author": { - "email": "soren.louv@elastic.co", - "name": "Søren Louv-Jansen", - }, - "sourceBranch": "main", - "sourceCommit": { - "branchLabelMapping": { - "^v(\\d+).(\\d+).\\d+$": "$1.$2", - "^v8.1.0$": "main", - }, - "committedDate": "2021-11-16T11:44:55Z", - "message": "[APM] Remove projections (#118327) - -* Delete errors projection - -* Remove \`getMetricsProjection\` - -* Remove \`getServiceNodesProjection\` - -* Fix tests - -Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>", - "sha": "b48268dd0c42c9dc1fe310f7c0b3327117d066a5", - }, - "sourcePullRequest": { - "labels": [ - "Team:APM - DEPRECATED", - "v8.0.0", - "release_note:skip", - "auto-backport", - "v8.1.0", - ], - "mergeCommit": { - "message": "[APM] Remove projections (#118327) - -* Delete errors projection - -* Remove \`getMetricsProjection\` - -* Remove \`getServiceNodesProjection\` - -* Fix tests - -Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>", - "sha": "b48268dd0c42c9dc1fe310f7c0b3327117d066a5", - }, - "number": 118327, - "title": "[APM] Remove projections", - "url": "https://github.com/elastic/kibana/pull/118327", - }, - "suggestedTargetBranches": [], - "targetPullRequestStates": [ - { - "branch": "8.0", - "branchLabelMappingKey": "^v(\\d+).(\\d+).\\d+$", - "isSourceBranch": false, - "label": "v8.0.0", - "mergeCommit": { - "message": "[APM] Remove projections (#118327) (#118675) - -* Delete errors projection - -* Remove \`getMetricsProjection\` - -* Remove \`getServiceNodesProjection\` - -* Fix tests - -Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com> - -Co-authored-by: Søren Louv-Jansen ", - "sha": "03657221841ae4c13cc490963e3c2fbcbde0a78e", - }, - "number": 118675, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/118675", - }, - { - "branch": "main", - "branchLabelMappingKey": "^v8.1.0$", - "isSourceBranch": true, - "label": "v8.1.0", - "mergeCommit": { - "message": "[APM] Remove projections (#118327) - -* Delete errors projection - -* Remove \`getMetricsProjection\` - -* Remove \`getServiceNodesProjection\` - -* Fix tests - -Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>", - "sha": "b48268dd0c42c9dc1fe310f7c0b3327117d066a5", - }, - "number": 118327, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/118327", - }, - ], - }, - { - "author": { - "email": "soren.louv@elastic.co", - "name": "Søren Louv-Jansen", - }, - "sourceBranch": "main", - "sourceCommit": { - "branchLabelMapping": { - "^v(\\d+).(\\d+).\\d+$": "$1.$2", - "^v8.1.0$": "main", - }, - "committedDate": "2021-11-15T22:54:40Z", - "message": "Update query_debugging_in_development_and_production.md (#118491)", - "sha": "e66377790605274d2610f45eed35c9d8febdb7b9", - }, - "sourcePullRequest": { - "labels": [ - "Team:APM - DEPRECATED", - "v8.0.0", - "release_note:skip", - "auto-backport", - "v8.1.0", - ], - "mergeCommit": { - "message": "Update query_debugging_in_development_and_production.md (#118491)", - "sha": "e66377790605274d2610f45eed35c9d8febdb7b9", - }, - "number": 118491, - "title": "[APM] Add example to docs for \`Inspect ES queries\` setting", - "url": "https://github.com/elastic/kibana/pull/118491", - }, - "suggestedTargetBranches": [], - "targetPullRequestStates": [ - { - "branch": "8.0", - "branchLabelMappingKey": "^v(\\d+).(\\d+).\\d+$", - "isSourceBranch": false, - "label": "v8.0.0", - "mergeCommit": { - "message": "Update query_debugging_in_development_and_production.md (#118491) (#118631) - -Co-authored-by: Søren Louv-Jansen ", - "sha": "81f69039af290230b7b9b0a35924622a031ac572", - }, - "number": 118631, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/118631", - }, - { - "branch": "main", - "branchLabelMappingKey": "^v8.1.0$", - "isSourceBranch": true, - "label": "v8.1.0", - "mergeCommit": { - "message": "Update query_debugging_in_development_and_production.md (#118491)", - "sha": "e66377790605274d2610f45eed35c9d8febdb7b9", - }, - "number": 118491, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/118491", - }, - ], - }, - { - "author": { - "email": "soren.louv@elastic.co", - "name": "Søren Louv-Jansen", - }, - "sourceBranch": "main", - "sourceCommit": { - "branchLabelMapping": { - "^v(\\d+).(\\d+).\\d+$": "$1.$2", - "^v8.1.0$": "main", - }, - "committedDate": "2021-11-08T15:12:52Z", - "message": "[APM] Ignore unavailable indices for ml jobs (#117632)", - "sha": "acc7bd9d97a2147f752942dbcf01d7fb2478234b", - }, - "sourcePullRequest": { - "labels": [ - "release_note:fix", - "Team:APM - DEPRECATED", - "v8.0.0", - "auto-backport", - "v8.1.0", - ], - "mergeCommit": { - "message": "[APM] Ignore unavailable indices for ml jobs (#117632)", - "sha": "acc7bd9d97a2147f752942dbcf01d7fb2478234b", - }, - "number": 117632, - "title": "[APM] Ignore unavailable indices for ml jobs", - "url": "https://github.com/elastic/kibana/pull/117632", - }, - "suggestedTargetBranches": [], - "targetPullRequestStates": [ - { - "branch": "8.0", - "branchLabelMappingKey": "^v(\\d+).(\\d+).\\d+$", - "isSourceBranch": false, - "label": "v8.0.0", - "mergeCommit": { - "message": "[APM] Ignore unavailable indices for ml jobs (#117632) (#117872) - -Co-authored-by: Søren Louv-Jansen ", - "sha": "748db6969738ac626be83c80b0d1bed2abd50b70", - }, - "number": 117872, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/117872", - }, - { - "branch": "main", - "branchLabelMappingKey": "^v8.1.0$", - "isSourceBranch": true, - "label": "v8.1.0", - "mergeCommit": { - "message": "[APM] Ignore unavailable indices for ml jobs (#117632)", - "sha": "acc7bd9d97a2147f752942dbcf01d7fb2478234b", - }, - "number": 117632, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/117632", - }, - ], - }, - { - "author": { - "email": "soren.louv@elastic.co", - "name": "Søren Louv-Jansen", - }, - "sourceBranch": "main", - "sourceCommit": { - "branchLabelMapping": { - "^v(\\d+).(\\d+).\\d+$": "$1.$2", - "^v8.1.0$": "main", - }, - "committedDate": "2021-11-08T11:52:20Z", - "message": "[APM] Document \`_inspect\` flag (#117635)", - "sha": "d13ee69bdac1deebfea9f02a29cab0f9a87f2f8e", - }, - "sourcePullRequest": { - "labels": [ - "Team:APM - DEPRECATED", - "v8.0.0", - "release_note:skip", - "auto-backport", - "v8.1.0", - ], - "mergeCommit": { - "message": "[APM] Document \`_inspect\` flag (#117635)", - "sha": "d13ee69bdac1deebfea9f02a29cab0f9a87f2f8e", - }, - "number": 117635, - "title": "[APM] Document \`_inspect\` flag", - "url": "https://github.com/elastic/kibana/pull/117635", - }, - "suggestedTargetBranches": [], - "targetPullRequestStates": [ - { - "branch": "8.0", - "branchLabelMappingKey": "^v(\\d+).(\\d+).\\d+$", - "isSourceBranch": false, - "label": "v8.0.0", - "mergeCommit": { - "message": "[APM] Document \`_inspect\` flag (#117635) (#117831) - -Co-authored-by: Søren Louv-Jansen ", - "sha": "276fd505bce0a2ed2163d32c1de70ecf2414ab30", - }, - "number": 117831, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/117831", - }, - { - "branch": "main", - "branchLabelMappingKey": "^v8.1.0$", - "isSourceBranch": true, - "label": "v8.1.0", - "mergeCommit": { - "message": "[APM] Document \`_inspect\` flag (#117635)", - "sha": "d13ee69bdac1deebfea9f02a29cab0f9a87f2f8e", - }, - "number": 117635, - "state": "MERGED", - "url": "https://github.com/elastic/kibana/pull/117635", - }, - ], - }, -] -`; diff --git a/src/lib/github/v4/fetchCommits/allFetchers.private.test.ts b/src/lib/github/v4/fetchCommits/all-fetchers.private.test.ts similarity index 90% rename from src/lib/github/v4/fetchCommits/allFetchers.private.test.ts rename to src/lib/github/v4/fetchCommits/all-fetchers.private.test.ts index 56d8916f..821edc13 100644 --- a/src/lib/github/v4/fetchCommits/allFetchers.private.test.ts +++ b/src/lib/github/v4/fetchCommits/all-fetchers.private.test.ts @@ -1,9 +1,9 @@ -import { getDevAccessToken } from '../../../../test/private/getDevAccessToken'; -import { Commit } from '../../../sourceCommit/parseSourceCommit'; -import { fetchCommitsByPullNumber } from './fetchCommitByPullNumber'; -import { fetchCommitBySha } from './fetchCommitBySha'; -import { fetchCommitsByAuthor } from './fetchCommitsByAuthor'; -import { fetchPullRequestsBySearchQuery } from './fetchPullRequestsBySearchQuery'; +import { getDevAccessToken } from '../../../../test/private/get-dev-access-token'; +import type { Commit } from '../../../sourceCommit/parse-source-commit'; +import { fetchCommitsByPullNumber } from './fetch-commit-by-pull-number'; +import { fetchCommitBySha } from './fetch-commit-by-sha'; +import { fetchCommitsByAuthor } from './fetch-commits-by-author'; +import { fetchPullRequestsBySearchQuery } from './fetch-pull-requests-by-search-query'; const accessToken = getDevAccessToken(); jest.setTimeout(15_000); diff --git a/src/lib/github/v4/fetchCommits/fetchCommitByPullNumber.private.test.ts b/src/lib/github/v4/fetchCommits/fetch-commit-by-pull-number.private.test.ts similarity index 73% rename from src/lib/github/v4/fetchCommits/fetchCommitByPullNumber.private.test.ts rename to src/lib/github/v4/fetchCommits/fetch-commit-by-pull-number.private.test.ts index 56958b05..fde923f8 100644 --- a/src/lib/github/v4/fetchCommits/fetchCommitByPullNumber.private.test.ts +++ b/src/lib/github/v4/fetchCommits/fetch-commit-by-pull-number.private.test.ts @@ -1,48 +1,10 @@ -import { print } from 'graphql'; -import { getDevAccessToken } from '../../../../test/private/getDevAccessToken'; -import { Commit } from '../../../sourceCommit/parseSourceCommit'; -import * as apiRequestV4Module from '../apiRequestV4'; -import { fetchCommitsByPullNumber } from './fetchCommitByPullNumber'; +import { getDevAccessToken } from '../../../../test/private/get-dev-access-token'; +import type { Commit } from '../../../sourceCommit/parse-source-commit'; +import { fetchCommitsByPullNumber } from './fetch-commit-by-pull-number'; const accessToken = getDevAccessToken(); describe('fetchCommitByPullNumber', () => { - describe('snapshot request/response', () => { - let spy: jest.SpyInstance; - let commits: Commit[]; - - beforeEach(async () => { - spy = jest.spyOn(apiRequestV4Module, 'apiRequestV4'); - - commits = await fetchCommitsByPullNumber({ - repoOwner: 'elastic', - repoName: 'kibana', - accessToken, - pullNumber: 121633, - sourceBranch: 'master', - }); - }); - - it('makes the right queries', () => { - const queries = spy.mock.calls.reduce((acc, call) => { - const query = call[0].query; - const name = apiRequestV4Module.getQueryName(query); - return { ...acc, [name]: print(query) }; - }, {}); - - const queryNames = Object.keys(queries); - expect(queryNames).toEqual(['CommitByPullNumber', 'CommitsBySha']); - - queryNames.forEach((name) => { - expect(queries[name]).toMatchSnapshot(`Query: ${name}`); - }); - }); - - it('returns the correct response', async () => { - expect(commits).toMatchSnapshot(); - }); - }); - describe('when PR was merged', () => { it('the pull request response is returned', async () => { const options = { diff --git a/src/lib/github/v4/fetchCommits/fetchCommitByPullNumber.ts b/src/lib/github/v4/fetchCommits/fetch-commit-by-pull-number.ts similarity index 52% rename from src/lib/github/v4/fetchCommits/fetchCommitByPullNumber.ts rename to src/lib/github/v4/fetchCommits/fetch-commit-by-pull-number.ts index 4f578771..9191b922 100644 --- a/src/lib/github/v4/fetchCommits/fetchCommitByPullNumber.ts +++ b/src/lib/github/v4/fetchCommits/fetch-commit-by-pull-number.ts @@ -1,11 +1,11 @@ -import gql from 'graphql-tag'; -import { ValidConfigOptions } from '../../../../options/options'; -import { BackportError } from '../../../BackportError'; -import { swallowMissingConfigFileException } from '../../../remoteConfig'; -import { Commit } from '../../../sourceCommit/parseSourceCommit'; -import { apiRequestV4 } from '../apiRequestV4'; -import { fetchCommitBySha } from './fetchCommitBySha'; -import { fetchCommitsForRebaseAndMergeStrategy } from './fetchCommitsForRebaseAndMergeStrategy'; +import { graphql } from '../../../../graphql/generated'; +import type { ValidConfigOptions } from '../../../../options/options'; +import { BackportError } from '../../../backport-error'; +import { isMissingConfigFileException } from '../../../remote-config'; +import type { Commit } from '../../../sourceCommit/parse-source-commit'; +import { GithubV4Exception, getGraphQLClient } from '../client/graphql-client'; +import { fetchCommitBySha } from './fetch-commit-by-sha'; +import { fetchCommitsForRebaseAndMergeStrategy } from './fetch-commits-for-rebase-and-merge-strategy'; export async function fetchCommitsByPullNumber(options: { accessToken: string; @@ -24,7 +24,7 @@ export async function fetchCommitsByPullNumber(options: { repoOwner, } = options; - const query = gql` + const query = graphql(` query CommitByPullNumber( $repoOwner: String! $repoName: String! @@ -61,26 +61,19 @@ export async function fetchCommitsByPullNumber(options: { } } } - `; + `); - let data: CommitByPullNumberResponse; - try { - const res = await apiRequestV4({ - githubApiBaseUrlV4, - accessToken, - query, - variables: { - repoOwner, - repoName, - pullNumber, - }, - }); - data = res.data.data; - } catch (e) { - data = swallowMissingConfigFileException(e); + const variables = { repoOwner, repoName, pullNumber }; + const client = getGraphQLClient({ accessToken, githubApiBaseUrlV4 }); + const result = await client.query(query, variables); + + if (result.error && !isMissingConfigFileException(result)) { + throw new GithubV4Exception(result); } - const pullRequestNode = data.repository.pullRequest; + const { data } = result; + + const pullRequestNode = data?.repository?.pullRequest; if (!pullRequestNode) { throw new BackportError(`The PR #${pullNumber} does not exist`); } @@ -90,14 +83,15 @@ export async function fetchCommitsByPullNumber(options: { throw new BackportError(`The PR #${pullNumber} is not merged`); } - const lastCommitInPullRequest = pullRequestNode.commits.edges[0].node.commit; - const firstCommitInBaseBranch = mergeCommit.history.edges[0].node; + const lastCommitInPullRequest = + pullRequestNode.commits.edges?.[0]?.node?.commit; + const firstCommitInBaseBranch = mergeCommit?.history.edges?.[0]?.node; const isRebaseAndMergeStrategy = pullRequestNode.commits.totalCount > 0 && - mergeCommit.history.edges.every( - (c) => c.node.committedDate === mergeCommit.committedDate, + mergeCommit?.history.edges?.every( + (c) => c?.node?.committedDate === mergeCommit.committedDate, ) && - lastCommitInPullRequest.message === firstCommitInBaseBranch.message; + lastCommitInPullRequest?.message === firstCommitInBaseBranch?.message; if (isRebaseAndMergeStrategy) { const commits = await fetchCommitsForRebaseAndMergeStrategy( @@ -109,30 +103,6 @@ export async function fetchCommitsByPullNumber(options: { } } - const commit = await fetchCommitBySha({ ...options, sha: mergeCommit.oid }); + const commit = await fetchCommitBySha({ ...options, sha: mergeCommit?.oid }); return [commit]; } - -interface CommitByPullNumberResponse { - repository: { - pullRequest: { - commits: { - totalCount: number; - edges: { node: { commit: { message: string } } }[]; - }; - - mergeCommit: { - oid: string; - committedDate: string; - history: { - edges: { - node: { - message: string; - committedDate: string; - }; - }[]; - }; - } | null; - } | null; - }; -} diff --git a/src/lib/github/v4/fetchCommits/fetchCommitBySha.private.test.ts b/src/lib/github/v4/fetchCommits/fetch-commit-by-sha.private.test.ts similarity index 64% rename from src/lib/github/v4/fetchCommits/fetchCommitBySha.private.test.ts rename to src/lib/github/v4/fetchCommits/fetch-commit-by-sha.private.test.ts index 80ef776f..53f605e0 100644 --- a/src/lib/github/v4/fetchCommits/fetchCommitBySha.private.test.ts +++ b/src/lib/github/v4/fetchCommits/fetch-commit-by-sha.private.test.ts @@ -1,48 +1,10 @@ -import { DocumentNode, print } from 'graphql'; -import { getDevAccessToken } from '../../../../test/private/getDevAccessToken'; -import { Commit } from '../../../sourceCommit/parseSourceCommit'; -import * as apiRequestV4Module from '../apiRequestV4'; -import { fetchCommitBySha } from './fetchCommitBySha'; +import { getDevAccessToken } from '../../../../test/private/get-dev-access-token'; +import type { Commit } from '../../../sourceCommit/parse-source-commit'; +import { fetchCommitBySha } from './fetch-commit-by-sha'; const accessToken = getDevAccessToken(); describe('fetchCommitBySha', () => { - describe('snapshot request/response', () => { - let spy: jest.SpyInstance; - let commit: Commit; - - beforeEach(async () => { - spy = jest.spyOn(apiRequestV4Module, 'apiRequestV4'); - - commit = await fetchCommitBySha({ - repoOwner: 'elastic', - repoName: 'kibana', - accessToken, - sha: 'd421ddcf6157150596581c7885afa3690cec6339', - sourceBranch: 'main', - }); - }); - - it('makes the right queries', () => { - const queries = spy.mock.calls.reduce((acc, call) => { - const query = call[0].query as DocumentNode; - //@ts-expect-error - const name = query.definitions[0].name.value; - return { ...acc, [name]: print(query) }; - }, {}); - - const queryNames = Object.keys(queries); - expect(queryNames).toEqual(['CommitsBySha']); - queryNames.forEach((name) => { - expect(queries[name]).toMatchSnapshot(`Query: ${name}`); - }); - }); - - it('returns the correct response', async () => { - expect(commit).toMatchSnapshot(); - }); - }); - it('should return single commit with pull request', async () => { const expectedCommit: Commit = { author: { email: 'sorenlouv@gmail.com', name: 'Søren Louv-Jansen' }, diff --git a/src/lib/github/v4/fetchCommits/fetch-commit-by-sha.ts b/src/lib/github/v4/fetchCommits/fetch-commit-by-sha.ts new file mode 100644 index 00000000..e19527e0 --- /dev/null +++ b/src/lib/github/v4/fetchCommits/fetch-commit-by-sha.ts @@ -0,0 +1,56 @@ +import { graphql } from '../../../../graphql/generated'; +import type { ValidConfigOptions } from '../../../../options/options'; +import { BackportError } from '../../../backport-error'; +import { isMissingConfigFileException } from '../../../remote-config'; +import type { Commit } from '../../../sourceCommit/parse-source-commit'; +import { parseSourceCommit } from '../../../sourceCommit/parse-source-commit'; +import { GithubV4Exception, getGraphQLClient } from '../client/graphql-client'; + +export async function fetchCommitBySha(options: { + accessToken: string; + branchLabelMapping?: ValidConfigOptions['branchLabelMapping']; + githubApiBaseUrlV4?: string; + repoName: string; + repoOwner: string; + sha: string; + sourceBranch: string; +}): Promise { + const { + accessToken, + githubApiBaseUrlV4 = 'https://api.github.com/graphql', + repoName, + repoOwner, + sha, + sourceBranch, + } = options; + + const query = graphql(` + query CommitsBySha($repoOwner: String!, $repoName: String!, $sha: String!) { + repository(owner: $repoOwner, name: $repoName) { + object(expression: $sha) { + __typename + ...SourceCommitWithTargetPullRequestFragment + } + } + } + `); + + const variables = { repoOwner, repoName, sha }; + const client = getGraphQLClient({ accessToken, githubApiBaseUrlV4 }); + const result = await client.query(query, variables); + + if (result.error && !isMissingConfigFileException(result)) { + throw new GithubV4Exception(result); + } + + const { data } = result; + + const sourceCommit = data?.repository?.object; + if (sourceCommit?.__typename !== 'Commit') { + throw new BackportError( + `No commit found on branch "${sourceBranch}" with sha "${sha}"`, + ); + } + + return parseSourceCommit({ options, sourceCommit }); +} diff --git a/src/lib/github/v4/fetchCommits/fetchCommitsByAuthor.private.test.ts b/src/lib/github/v4/fetchCommits/fetch-commits-by-author.private.test.ts similarity index 79% rename from src/lib/github/v4/fetchCommits/fetchCommitsByAuthor.private.test.ts rename to src/lib/github/v4/fetchCommits/fetch-commits-by-author.private.test.ts index ca007e97..b188dae0 100644 --- a/src/lib/github/v4/fetchCommits/fetchCommitsByAuthor.private.test.ts +++ b/src/lib/github/v4/fetchCommits/fetch-commits-by-author.private.test.ts @@ -1,52 +1,10 @@ -import { DocumentNode, print } from 'graphql'; -import { getDevAccessToken } from '../../../../test/private/getDevAccessToken'; -import { Commit } from '../../../sourceCommit/parseSourceCommit'; -import * as apiRequestV4Module from '../apiRequestV4'; -import { fetchCommitsByAuthor } from './fetchCommitsByAuthor'; +import { getDevAccessToken } from '../../../../test/private/get-dev-access-token'; +import type { Commit } from '../../../sourceCommit/parse-source-commit'; +import { fetchCommitsByAuthor } from './fetch-commits-by-author'; const accessToken = getDevAccessToken(); describe('fetchCommitsByAuthor', () => { - describe('snapshot request/response', () => { - let spy: jest.SpyInstance; - let commits: Commit[]; - - beforeEach(async () => { - spy = jest.spyOn(apiRequestV4Module, 'apiRequestV4'); - commits = await fetchCommitsByAuthor({ - accessToken, - author: 'sorenlouv', - maxNumber: 10, - repoName: 'kibana', - repoOwner: 'elastic', - sourceBranch: 'main', - dateSince: '2021-01-10T00:00:00Z', - dateUntil: '2022-01-01T00:00:00Z', - commitPaths: [] as Array, - }); - }); - - it('makes the right queries', () => { - const queries = spy.mock.calls.reduce((acc, call) => { - const query = call[0].query as DocumentNode; - //@ts-expect-error - const name = query.definitions[0].name.value; - return { ...acc, [name]: print(query) }; - }, {}); - - const queryNames = Object.keys(queries); - expect(queryNames).toEqual(['AuthorId', 'CommitsByAuthor']); - - queryNames.forEach((name) => { - expect(queries[name]).toMatchSnapshot(`Query: ${name}`); - }); - }); - - it('returns the correct response', async () => { - expect(commits).toMatchSnapshot(); - }); - }); - describe('commitPaths', () => { const getOptions = () => ({ accessToken, diff --git a/src/lib/github/v4/fetchCommits/fetchCommitsByAuthor.test.ts b/src/lib/github/v4/fetchCommits/fetch-commits-by-author.test.ts similarity index 82% rename from src/lib/github/v4/fetchCommits/fetchCommitsByAuthor.test.ts rename to src/lib/github/v4/fetchCommits/fetch-commits-by-author.test.ts index e9b42e7c..c7e5517f 100644 --- a/src/lib/github/v4/fetchCommits/fetchCommitsByAuthor.test.ts +++ b/src/lib/github/v4/fetchCommits/fetch-commits-by-author.test.ts @@ -1,12 +1,14 @@ import nock from 'nock'; -import { mockGqlRequest } from '../../../../test/nockHelpers'; -import { Commit } from '../../../sourceCommit/parseSourceCommit'; -import { AuthorIdResponse } from '../fetchAuthorId'; -import { commitsByAuthorMock } from '../mocks/commitsByAuthorMock'; -import { - CommitByAuthorResponse, - fetchCommitsByAuthor, -} from './fetchCommitsByAuthor'; +import type { + AuthorIdQuery, + AuthorIdQueryVariables, + CommitsByAuthorQuery, + CommitsByAuthorQueryVariables, +} from '../../../../graphql/generated/graphql'; +import { mockUrqlRequest } from '../../../../test/nock-helpers'; +import type { Commit } from '../../../sourceCommit/parse-source-commit'; +import { commitsByAuthorMock } from '../mocks/commits-by-author-mock'; +import { fetchCommitsByAuthor } from './fetch-commits-by-author'; const defaultOptions = { accessToken: 'myAccessToken', @@ -33,19 +35,20 @@ describe('fetchCommitsByAuthor', () => { describe('when commit has an associated pull request', () => { let res: Commit[]; - let authorIdCalls: ReturnType; - let commitsByAuthorCalls: ReturnType; + let authorIdCalls: ReturnType; + let commitsByAuthorCalls: ReturnType; - beforeEach(async () => { - authorIdCalls = mockGqlRequest({ - name: 'AuthorId', - statusCode: 200, + beforeAll(async () => { + authorIdCalls = mockUrqlRequest({ + operationName: 'AuthorId', body: { data: authorIdMockData }, }); - commitsByAuthorCalls = mockGqlRequest({ - name: 'CommitsByAuthor', - statusCode: 200, + commitsByAuthorCalls = mockUrqlRequest< + CommitsByAuthorQuery, + CommitsByAuthorQueryVariables + >({ + operationName: 'CommitsByAuthor', body: { data: commitsByAuthorMock }, }); @@ -163,16 +166,17 @@ describe('fetchCommitsByAuthor', () => { describe('when a custom github api hostname is supplied', () => { it('should be used in gql requests', async () => { - const authorIdCalls = mockGqlRequest({ - name: 'AuthorId', - statusCode: 200, + const authorIdCalls = mockUrqlRequest< + AuthorIdQuery, + AuthorIdQueryVariables + >({ + operationName: 'AuthorId', body: { data: authorIdMockData }, apiBaseUrl: 'http://localhost/my-custom-api', }); - const commitsByAuthorCalls = mockGqlRequest({ - name: 'CommitsByAuthor', - statusCode: 200, + const commitsByAuthorCalls = mockUrqlRequest({ + operationName: 'CommitsByAuthor', body: { data: commitsByAuthorMock }, apiBaseUrl: 'http://localhost/my-custom-api', }); diff --git a/src/lib/github/v4/fetchCommits/fetchCommitsByAuthor.ts b/src/lib/github/v4/fetchCommits/fetch-commits-by-author.ts similarity index 60% rename from src/lib/github/v4/fetchCommits/fetchCommitsByAuthor.ts rename to src/lib/github/v4/fetchCommits/fetch-commits-by-author.ts index 629eb9c5..aca9dbb5 100644 --- a/src/lib/github/v4/fetchCommits/fetchCommitsByAuthor.ts +++ b/src/lib/github/v4/fetchCommits/fetch-commits-by-author.ts @@ -1,18 +1,15 @@ -import gql from 'graphql-tag'; -import { isEmpty, uniqBy, orderBy } from 'lodash'; -import { ValidConfigOptions } from '../../../../options/options'; -import { filterNil } from '../../../../utils/filterEmpty'; -import { filterUnmergedCommits } from '../../../../utils/filterUnmergedCommits'; -import { BackportError } from '../../../BackportError'; -import { swallowMissingConfigFileException } from '../../../remoteConfig'; -import { - Commit, - SourceCommitWithTargetPullRequest, - SourceCommitWithTargetPullRequestFragment, - parseSourceCommit, -} from '../../../sourceCommit/parseSourceCommit'; -import { GithubV4Exception, apiRequestV4 } from '../apiRequestV4'; -import { fetchAuthorId } from '../fetchAuthorId'; +import { isEmpty, uniqBy, orderBy, first } from 'lodash'; +import { graphql } from '../../../../graphql/generated'; +import type { ValidConfigOptions } from '../../../../options/options'; +import { filterNil } from '../../../../utils/filter-empty'; +import { filterUnmergedCommits } from '../../../../utils/filter-unmerged-commits'; +import { BackportError } from '../../../backport-error'; +import { isMissingConfigFileException } from '../../../remote-config'; +import type { Commit } from '../../../sourceCommit/parse-source-commit'; +import { parseSourceCommit } from '../../../sourceCommit/parse-source-commit'; +import type { OperationResultWithMeta } from '../client/graphql-client'; +import { getGraphQLClient, GithubV4Exception } from '../client/graphql-client'; +import { fetchAuthorId } from '../fetch-author-id'; async function fetchByCommitPath({ options, @@ -29,7 +26,7 @@ async function fetchByCommitPath({ repoOwner: string; sourceBranch: string; }; - authorId: string | null; + authorId: string | null | undefined; commitPath: string | null; }) { const { @@ -43,7 +40,7 @@ async function fetchByCommitPath({ sourceBranch, } = options; - const query = gql` + const query = graphql(` query CommitsByAuthor( $authorId: ID $commitPath: String @@ -58,6 +55,7 @@ async function fetchByCommitPath({ ref(qualifiedName: $sourceBranch) { target { ... on Commit { + __typename history( first: $maxNumber author: { id: $authorId } @@ -67,6 +65,7 @@ async function fetchByCommitPath({ ) { edges { node { + __typename ...SourceCommitWithTargetPullRequestFragment } } @@ -76,9 +75,7 @@ async function fetchByCommitPath({ } } } - - ${SourceCommitWithTargetPullRequestFragment} - `; + `); const variables = { repoOwner, @@ -91,24 +88,25 @@ async function fetchByCommitPath({ dateUntil, }; - try { - const res = await apiRequestV4({ - githubApiBaseUrlV4, - accessToken, - query, - variables, - }); - return res.data.data; - } catch (e) { - if (e instanceof GithubV4Exception) { - if (e.githubResponse.status === 502 && maxNumber > 50) { - throw new BackportError( - `The GitHub API returned a 502 error. Try reducing the number of commits to display: "--max-number 20"`, - ); - } + const client = getGraphQLClient({ accessToken, githubApiBaseUrlV4 }); + const result = await client.query(query, variables); + + if (result.error) { + if ( + (result as OperationResultWithMeta).statusCode === 502 && + maxNumber > 50 + ) { + throw new BackportError( + `The GitHub API returned a 502 error. Try reducing the number of commits to display: "--max-number 20"`, + ); + } + + if (!isMissingConfigFileException(result)) { + throw new GithubV4Exception(result); } - return swallowMissingConfigFileException(e); } + + return result.data; } export async function fetchCommitsByAuthor(options: { @@ -128,16 +126,18 @@ export async function fetchCommitsByAuthor(options: { const { sourceBranch, commitPaths = [] } = options; const authorId = await fetchAuthorId(options); - const responses = await Promise.all( - isEmpty(commitPaths) - ? [fetchByCommitPath({ options, authorId, commitPath: null })] - : commitPaths.map((commitPath) => - fetchByCommitPath({ options, authorId, commitPath }), - ), - ); + const responses = ( + await Promise.all( + isEmpty(commitPaths) + ? [fetchByCommitPath({ options, authorId, commitPath: null })] + : commitPaths.map((commitPath) => + fetchByCommitPath({ options, authorId, commitPath }), + ), + ) + ).filter(filterNil); // we only need to check if the first item is `null` (if the first is `null` they all are) - if (responses[0].repository.ref === null) { + if (first(responses)?.repository?.ref === null) { throw new BackportError( `The upstream branch "${sourceBranch}" does not exist. Try specifying a different branch with "--source-branch "`, ); @@ -145,9 +145,16 @@ export async function fetchCommitsByAuthor(options: { const commits = responses .flatMap((res) => { - return res.repository.ref?.target.history.edges.map((edge) => { - const sourceCommit = edge.node; - return parseSourceCommit({ options, sourceCommit }); + const repoRefTarget = res.repository?.ref?.target; + if (repoRefTarget?.__typename !== 'Commit') { + return; + } + + return repoRefTarget.history.edges?.map((edge) => { + const sourceCommit = edge?.node; + if (sourceCommit) { + return parseSourceCommit({ options, sourceCommit }); + } }); }) .filter(filterNil); @@ -177,15 +184,3 @@ export async function fetchCommitsByAuthor(options: { return commitsSorted; } - -export interface CommitByAuthorResponse { - repository: { - ref: { - target: { - history: { - edges: Array<{ node: SourceCommitWithTargetPullRequest }>; - }; - }; - } | null; - }; -} diff --git a/src/lib/github/v4/fetchCommits/fetchCommitsForRebaseAndMergeStrategy.private.test.ts b/src/lib/github/v4/fetchCommits/fetch-commits-for-rebase-and-merge-strategy.private.test.ts similarity index 84% rename from src/lib/github/v4/fetchCommits/fetchCommitsForRebaseAndMergeStrategy.private.test.ts rename to src/lib/github/v4/fetchCommits/fetch-commits-for-rebase-and-merge-strategy.private.test.ts index 508e4266..8f08b54c 100644 --- a/src/lib/github/v4/fetchCommits/fetchCommitsForRebaseAndMergeStrategy.private.test.ts +++ b/src/lib/github/v4/fetchCommits/fetch-commits-for-rebase-and-merge-strategy.private.test.ts @@ -1,5 +1,5 @@ -import { getDevAccessToken } from '../../../../test/private/getDevAccessToken'; -import { fetchCommitsForRebaseAndMergeStrategy } from './fetchCommitsForRebaseAndMergeStrategy'; +import { getDevAccessToken } from '../../../../test/private/get-dev-access-token'; +import { fetchCommitsForRebaseAndMergeStrategy } from './fetch-commits-for-rebase-and-merge-strategy'; const accessToken = getDevAccessToken(); diff --git a/src/lib/github/v4/fetchCommits/fetchCommitsForRebaseAndMergeStrategy.ts b/src/lib/github/v4/fetchCommits/fetch-commits-for-rebase-and-merge-strategy.ts similarity index 58% rename from src/lib/github/v4/fetchCommits/fetchCommitsForRebaseAndMergeStrategy.ts rename to src/lib/github/v4/fetchCommits/fetch-commits-for-rebase-and-merge-strategy.ts index 6debe477..4dbb5cf4 100644 --- a/src/lib/github/v4/fetchCommits/fetchCommitsForRebaseAndMergeStrategy.ts +++ b/src/lib/github/v4/fetchCommits/fetch-commits-for-rebase-and-merge-strategy.ts @@ -1,7 +1,8 @@ -import gql from 'graphql-tag'; -import { Commit } from '../../../../entrypoint.api'; -import { apiRequestV4 } from '../apiRequestV4'; -import { fetchCommitBySha } from './fetchCommitBySha'; +import { first } from 'lodash'; +import type { Commit } from '../../../../entrypoint.api'; +import { graphql } from '../../../../graphql/generated'; +import { getGraphQLClient, GithubV4Exception } from '../client/graphql-client'; +import { fetchCommitBySha } from './fetch-commit-by-sha'; export async function fetchCommitsForRebaseAndMergeStrategy( options: { @@ -22,7 +23,7 @@ export async function fetchCommitsForRebaseAndMergeStrategy( repoOwner, } = options; - const query = gql` + const query = graphql(` query CommitsForRebaseAndMergeStrategy( $repoOwner: String! $repoName: String! @@ -65,21 +66,17 @@ export async function fetchCommitsForRebaseAndMergeStrategy( } } } - `; + `); - const res = await apiRequestV4({ - githubApiBaseUrlV4, - accessToken, - query, - variables: { - repoOwner, - repoName, - pullNumber, - commitsTotalCount, - }, - }); + const variables = { repoOwner, repoName, pullNumber, commitsTotalCount }; + const client = getGraphQLClient({ accessToken, githubApiBaseUrlV4 }); + const result = await client.query(query, variables); + + if (result.error) { + throw new GithubV4Exception(result); + } - const pullRequestNode = res.data.data.repository.pullRequest; + const pullRequestNode = result.data?.repository?.pullRequest; if (!pullRequestNode?.mergeCommit) { throw new Error('Pull request is not merged'); @@ -91,19 +88,19 @@ export async function fetchCommitsForRebaseAndMergeStrategy( ); } - const commitsInPullRequest = pullRequestNode.commits.edges; + const commitsInPullRequest = pullRequestNode.commits.edges ?? []; const commitsInBaseBranch = - pullRequestNode.mergeCommit.history.edges.reverse(); + pullRequestNode.mergeCommit.history.edges?.reverse() ?? []; const didUseRebaseAndMergeStrategy = commitsInBaseBranch.every((c, i) => { const hasSameCommittedDate = - c.node.committedDate === pullRequestNode.mergeCommit?.committedDate; + c?.node?.committedDate === pullRequestNode.mergeCommit?.committedDate; const hasSameCommitMessages = - c.node.message === commitsInPullRequest[i].node.commit.message; + c?.node?.message === commitsInPullRequest[i]?.node?.commit.message; const hasSamePullNumber = - c.node.associatedPullRequests.edges[0].node.number === + first(c?.node?.associatedPullRequests?.edges)?.node?.number === pullRequestNode.number; return hasSameCommittedDate && hasSameCommitMessages && hasSamePullNumber; @@ -112,48 +109,10 @@ export async function fetchCommitsForRebaseAndMergeStrategy( if (didUseRebaseAndMergeStrategy) { const commits = await Promise.all( commitsInBaseBranch.map((c) => - fetchCommitBySha({ ...options, sha: c.node.oid }), + fetchCommitBySha({ ...options, sha: c?.node?.oid }), ), ); return commits; } } - -interface Response { - repository: { - pullRequest: { - number: number; - commits: { - totalCount: number; - edges: { - node: { - commit: { - message: string; - }; - }; - }[]; - }; - - mergeCommit: { - committedDate: string; - history: { - edges: { - node: { - oid: string; - message: string; - committedDate: string; - associatedPullRequests: { - edges: { - node: { - number: number; - }; - }[]; - }; - }; - }[]; - }; - } | null; - } | null; - }; -} diff --git a/src/lib/github/v4/fetchCommits/fetchPullRequestBySearchQuery.private.test.ts b/src/lib/github/v4/fetchCommits/fetch-pull-request-by-search-query.private.test.ts similarity index 95% rename from src/lib/github/v4/fetchCommits/fetchPullRequestBySearchQuery.private.test.ts rename to src/lib/github/v4/fetchCommits/fetch-pull-request-by-search-query.private.test.ts index 19ea4504..0e2523c8 100644 --- a/src/lib/github/v4/fetchCommits/fetchPullRequestBySearchQuery.private.test.ts +++ b/src/lib/github/v4/fetchCommits/fetch-pull-request-by-search-query.private.test.ts @@ -1,6 +1,6 @@ -import { getDevAccessToken } from '../../../../test/private/getDevAccessToken'; -import { Commit } from '../../../sourceCommit/parseSourceCommit'; -import { fetchPullRequestsBySearchQuery } from './fetchPullRequestsBySearchQuery'; +import { getDevAccessToken } from '../../../../test/private/get-dev-access-token'; +import type { Commit } from '../../../sourceCommit/parse-source-commit'; +import { fetchPullRequestsBySearchQuery } from './fetch-pull-requests-by-search-query'; const accessToken = getDevAccessToken(); diff --git a/src/lib/github/v4/fetchCommits/fetchPullRequestsBySearchQuery.ts b/src/lib/github/v4/fetchCommits/fetch-pull-requests-by-search-query.ts similarity index 61% rename from src/lib/github/v4/fetchCommits/fetchPullRequestsBySearchQuery.ts rename to src/lib/github/v4/fetchCommits/fetch-pull-requests-by-search-query.ts index 57cabaaf..1529201e 100644 --- a/src/lib/github/v4/fetchCommits/fetchPullRequestsBySearchQuery.ts +++ b/src/lib/github/v4/fetchCommits/fetch-pull-requests-by-search-query.ts @@ -1,15 +1,12 @@ -import gql from 'graphql-tag'; import { isEmpty } from 'lodash'; -import { filterUnmergedCommits } from '../../../../utils/filterUnmergedCommits'; -import { BackportError } from '../../../BackportError'; -import { swallowMissingConfigFileException } from '../../../remoteConfig'; -import { - Commit, - SourceCommitWithTargetPullRequest, - SourceCommitWithTargetPullRequestFragment, - parseSourceCommit, -} from '../../../sourceCommit/parseSourceCommit'; -import { apiRequestV4 } from '../apiRequestV4'; +import { graphql } from '../../../../graphql/generated'; +import { filterNil } from '../../../../utils/filter-empty'; +import { filterUnmergedCommits } from '../../../../utils/filter-unmerged-commits'; +import { BackportError } from '../../../backport-error'; +import { isMissingConfigFileException } from '../../../remote-config'; +import type { Commit } from '../../../sourceCommit/parse-source-commit'; +import { parseSourceCommit } from '../../../sourceCommit/parse-source-commit'; +import { GithubV4Exception, getGraphQLClient } from '../client/graphql-client'; export async function fetchPullRequestsBySearchQuery(options: { accessToken: string; @@ -37,21 +34,21 @@ export async function fetchPullRequestsBySearchQuery(options: { sourceBranch, } = options; - const query = gql` + const query = graphql(` query PullRequestBySearchQuery($query: String!, $maxNumber: Int!) { search(query: $query, type: ISSUE, first: $maxNumber) { nodes { ... on PullRequest { + __typename mergeCommit { + __typename ...SourceCommitWithTargetPullRequestFragment } } } } } - - ${SourceCommitWithTargetPullRequestFragment} - `; + `); function dateFilter() { if (dateUntil && dateSince) { @@ -85,26 +82,27 @@ export async function fetchPullRequestsBySearchQuery(options: { maxNumber, }; - let data: ResponseData; - try { - const res = await apiRequestV4({ - githubApiBaseUrlV4, - accessToken, - query, - variables, - }); - data = res.data.data; - } catch (e) { - data = swallowMissingConfigFileException(e); - } + const client = getGraphQLClient({ accessToken, githubApiBaseUrlV4 }); + const result = await client.query(query, variables); - const commits = data.search.nodes.map((pullRequestNode) => { - const sourceCommit = pullRequestNode.mergeCommit; - return parseSourceCommit({ options, sourceCommit }); - }); + if (result.error && !isMissingConfigFileException(result)) { + throw new GithubV4Exception(result); + } + const { data } = result; + + const commits = data?.search.nodes + ?.map((pullRequestNode) => { + if (pullRequestNode?.__typename === 'PullRequest') { + const sourceCommit = pullRequestNode.mergeCommit; + if (sourceCommit) { + return parseSourceCommit({ options, sourceCommit }); + } + } + }) + .filter(filterNil); // terminate if not commits were found - if (isEmpty(commits)) { + if (!commits || isEmpty(commits)) { const errorText = author ? `No commits found for query:\n ${searchQuery}\n\nUse \`--all\` to see commits by all users or \`--author=\` for commits from a specific user` : `No commits found for query:\n ${searchQuery}`; @@ -118,11 +116,3 @@ export async function fetchPullRequestsBySearchQuery(options: { return commits; } - -interface ResponseData { - search: { - nodes: Array<{ - mergeCommit: SourceCommitWithTargetPullRequest; - }>; - }; -} diff --git a/src/lib/github/v4/fetchCommits/fetchCommitBySha.ts b/src/lib/github/v4/fetchCommits/fetchCommitBySha.ts deleted file mode 100644 index 81e8bf71..00000000 --- a/src/lib/github/v4/fetchCommits/fetchCommitBySha.ts +++ /dev/null @@ -1,75 +0,0 @@ -import gql from 'graphql-tag'; -import { ValidConfigOptions } from '../../../../options/options'; -import { BackportError } from '../../../BackportError'; -import { swallowMissingConfigFileException } from '../../../remoteConfig'; -import { - Commit, - SourceCommitWithTargetPullRequest, - SourceCommitWithTargetPullRequestFragment, - parseSourceCommit, -} from '../../../sourceCommit/parseSourceCommit'; -import { apiRequestV4 } from '../apiRequestV4'; - -export async function fetchCommitBySha(options: { - accessToken: string; - branchLabelMapping?: ValidConfigOptions['branchLabelMapping']; - githubApiBaseUrlV4?: string; - repoName: string; - repoOwner: string; - sha: string; - sourceBranch: string; -}): Promise { - const { - accessToken, - githubApiBaseUrlV4 = 'https://api.github.com/graphql', - repoName, - repoOwner, - sha, - sourceBranch, - } = options; - - const query = gql` - query CommitsBySha($repoOwner: String!, $repoName: String!, $sha: String!) { - repository(owner: $repoOwner, name: $repoName) { - object(expression: $sha) { - ...SourceCommitWithTargetPullRequestFragment - } - } - } - - ${SourceCommitWithTargetPullRequestFragment} - `; - - let data: CommitsByShaResponse; - try { - const res = await apiRequestV4({ - githubApiBaseUrlV4, - accessToken, - query, - variables: { - repoOwner, - repoName, - sha, - }, - }); - data = res.data.data; - } catch (e) { - data = swallowMissingConfigFileException(e); - } - - const sourceCommit = data.repository.object; - - if (!sourceCommit) { - throw new BackportError( - `No commit found on branch "${sourceBranch}" with sha "${sha}"`, - ); - } - - return parseSourceCommit({ options, sourceCommit }); -} - -interface CommitsByShaResponse { - repository: { - object: SourceCommitWithTargetPullRequest | null; - }; -} diff --git a/src/lib/github/v4/fetchPullRequestAutoMergeMethod.ts b/src/lib/github/v4/fetchPullRequestAutoMergeMethod.ts deleted file mode 100644 index a0c2fdde..00000000 --- a/src/lib/github/v4/fetchPullRequestAutoMergeMethod.ts +++ /dev/null @@ -1,44 +0,0 @@ -import gql from 'graphql-tag'; -import { ValidConfigOptions } from '../../../options/options'; -import { apiRequestV4 } from './apiRequestV4'; - -interface Response { - repository: { pullRequest?: { autoMergeRequest?: { mergeMethod: string } } }; -} - -export async function fetchPullRequestAutoMergeMethod( - options: ValidConfigOptions, - pullNumber: number, -) { - const { accessToken, githubApiBaseUrlV4, repoName, repoOwner } = options; - - const query = gql` - query PullRequestAutoMergeMethod( - $repoOwner: String! - $repoName: String! - $pullNumber: Int! - ) { - repository(owner: $repoOwner, name: $repoName) { - pullRequest(number: $pullNumber) { - autoMergeRequest { - enabledAt - mergeMethod - } - } - } - } - `; - - const res = await apiRequestV4({ - githubApiBaseUrlV4, - accessToken, - query, - variables: { - repoOwner, - repoName, - pullNumber, - }, - }); - - return res.data.data.repository.pullRequest?.autoMergeRequest?.mergeMethod; -} diff --git a/src/lib/github/v4/get-invalid-access-token-message.test.ts b/src/lib/github/v4/get-invalid-access-token-message.test.ts new file mode 100644 index 00000000..5eada0fd --- /dev/null +++ b/src/lib/github/v4/get-invalid-access-token-message.test.ts @@ -0,0 +1,118 @@ +import type { OperationResultWithMeta } from './client/graphql-client'; +import { getInvalidAccessTokenMessage } from './get-invalid-access-token-message'; + +describe('getInvalidAccessTokenMessage', () => { + describe('when status code is', () => { + it('should handle invalid access token', () => { + const result = { + statusCode: 401, + responseHeaders: new Headers({}), + } as OperationResultWithMeta; + + return expect( + getInvalidAccessTokenMessage({ + result, + repoOwner: 'elastic', + repoName: 'kibana', + }), + ).toContain('Please check your access token and make sure it is valid'); + }); + + it('should handle SSO error', () => { + const result = { + statusCode: 200, + responseHeaders: new Headers({ + 'x-github-sso': 'required; url=https://ssourl.com', + }), + error: { + graphQLErrors: [ + { + type: 'FORBIDDEN', + extensions: { saml_failure: true }, + message: + 'Resource protected by organization SAML enforcement. You must grant your Personal Access token access to this organization.', + }, + ], + }, + } as unknown as OperationResultWithMeta; + + return expect( + getInvalidAccessTokenMessage({ + result, + repoOwner: 'elastic', + repoName: 'kibana', + }), + ).toMatchInlineSnapshot(` +"Please follow the link to authorize your personal access token with SSO: + +https://ssourl.com" +`); + }); + + it('should handle non-existing repo', () => { + const result = { + statusCode: 200, + responseHeaders: new Headers({ + 'x-oauth-scopes': 'a,b,c', + 'x-accepted-oauth-scopes': 'a,b,c', + }), + error: { + graphQLErrors: [ + { originalError: { type: 'NOT_FOUND' }, path: ['repository'] }, + ], + }, + } as unknown as OperationResultWithMeta; + + return expect( + getInvalidAccessTokenMessage({ + result, + repoOwner: 'elastic', + repoName: 'kibana', + }), + ).toBe(`The repository "elastic/kibana" doesn't exist`); + }); + + it('should handle insufficient permissions (oauth scopes)', () => { + const result = { + statusCode: 200, + responseHeaders: new Headers({ + 'x-oauth-scopes': 'a,b', + 'x-accepted-oauth-scopes': 'a,b,c', + }), + error: { + graphQLErrors: [ + { originalError: { type: 'NOT_FOUND' }, path: ['repository'] }, + ], + }, + } as unknown as OperationResultWithMeta; + + return expect( + getInvalidAccessTokenMessage({ + result, + repoOwner: 'elastic', + repoName: 'kibana', + }), + ).toMatchInlineSnapshot(` +"You do not have access to the repository "elastic/kibana". Please make sure your access token has the required scopes. + +Required scopes: a,b,c +Access token scopes: a,b" +`); + }); + + it('should not handle unknown cases', () => { + const result = { + statusCode: 500, + responseHeaders: {}, + } as OperationResultWithMeta; + + return expect( + getInvalidAccessTokenMessage({ + result, + repoOwner: 'elastic', + repoName: 'kibana', + }), + ).toBe(undefined); + }); + }); +}); diff --git a/src/lib/github/v4/get-invalid-access-token-message.ts b/src/lib/github/v4/get-invalid-access-token-message.ts new file mode 100644 index 00000000..35742b2c --- /dev/null +++ b/src/lib/github/v4/get-invalid-access-token-message.ts @@ -0,0 +1,82 @@ +import { isEmpty, difference } from 'lodash'; +import { maybe } from '../../../utils/maybe'; +import { getGlobalConfigPath } from '../../env'; +import { logger } from '../../logger'; +import type { + GitHubGraphQLError, + OperationResultWithMeta, +} from './client/graphql-client'; + +export function getInvalidAccessTokenMessage({ + result, + repoOwner, + repoName, + globalConfigFile, +}: { + result: OperationResultWithMeta; + repoOwner: string; + repoName: string; + globalConfigFile?: string; +}): string | undefined { + function getSSOAuthUrl(ssoHeader?: string | null) { + const matches = ssoHeader?.match(/url=(.*)/); + if (matches) { + return matches[1]; + } + } + + const { statusCode } = result; + + const graphQLErrors = (result.error?.graphQLErrors ?? + []) as GitHubGraphQLError[]; + + switch (statusCode) { + case 200: { + const repoNotFound = graphQLErrors.some( + ({ originalError, path }) => + originalError?.type === 'NOT_FOUND' && + path?.join('.') === 'repository', + ); + + const grantedScopes = result.responseHeaders?.get('x-oauth-scopes') ?? ''; + const requiredScopes = + result.responseHeaders?.get('x-accepted-oauth-scopes') ?? ''; + const ssoHeader = maybe(result.responseHeaders?.get('x-github-sso')); + + if (repoNotFound) { + const hasRequiredScopes = isEmpty( + difference(requiredScopes.split(','), grantedScopes.split(',')), + ); + + // user does not have permission to the repo + if (!hasRequiredScopes) { + return `You do not have access to the repository "${repoOwner}/${repoName}". Please make sure your access token has the required scopes.\n\nRequired scopes: ${requiredScopes}\nAccess token scopes: ${grantedScopes}`; + } + + // repo does not exist + return `The repository "${repoOwner}/${repoName}" doesn't exist`; + } + + const repoAccessForbidden = graphQLErrors.some( + ({ extensions }) => extensions.saml_failure === true, + ); + + const ssoAuthUrl = getSSOAuthUrl(ssoHeader); + + // user does not have permissions + if (repoAccessForbidden && ssoAuthUrl) { + return `Please follow the link to authorize your personal access token with SSO:\n\n${ssoAuthUrl}`; + } + break; + } + + case 401: + return `Please check your access token and make sure it is valid.\nConfig: ${getGlobalConfigPath( + globalConfigFile, + )}`; + + default: + logger.warn(`Unexpected status code: ${statusCode}`); + return undefined; + } +} diff --git a/src/lib/github/v4/getRepoOwnerAndNameFromGitRemotes.private.test.ts b/src/lib/github/v4/get-repo-owner-and-name-from-git-remotes.private.test.ts similarity index 88% rename from src/lib/github/v4/getRepoOwnerAndNameFromGitRemotes.private.test.ts rename to src/lib/github/v4/get-repo-owner-and-name-from-git-remotes.private.test.ts index a87c1f32..27517e03 100644 --- a/src/lib/github/v4/getRepoOwnerAndNameFromGitRemotes.private.test.ts +++ b/src/lib/github/v4/get-repo-owner-and-name-from-git-remotes.private.test.ts @@ -1,7 +1,7 @@ -import { exec } from '../../../test/childProcessHelper'; -import { getDevAccessToken } from '../../../test/private/getDevAccessToken'; +import { exec } from '../../../test/child-process-helper'; +import { getDevAccessToken } from '../../../test/private/get-dev-access-token'; import { getSandboxPath, resetSandbox } from '../../../test/sandbox'; -import { getRepoOwnerAndNameFromGitRemotes } from './getRepoOwnerAndNameFromGitRemotes'; +import { getRepoOwnerAndNameFromGitRemotes } from './get-repo-owner-and-name-from-git-remotes'; const sandboxPath = getSandboxPath({ filename: __filename }); const accessToken = getDevAccessToken(); diff --git a/src/lib/github/v4/get-repo-owner-and-name-from-git-remotes.ts b/src/lib/github/v4/get-repo-owner-and-name-from-git-remotes.ts new file mode 100644 index 00000000..8dcf9a2c --- /dev/null +++ b/src/lib/github/v4/get-repo-owner-and-name-from-git-remotes.ts @@ -0,0 +1,66 @@ +import { graphql } from '../../../graphql/generated'; +import { maybe } from '../../../utils/maybe'; +import { getRepoInfoFromGitRemotes } from '../../git'; +import { logger } from '../../logger'; +import { getGraphQLClient, GithubV4Exception } from './client/graphql-client'; + +// This method should be used to get the origin owner (instead of a fork owner) +export async function getRepoOwnerAndNameFromGitRemotes({ + accessToken, + githubApiBaseUrlV4, + cwd, +}: { + accessToken: string; + githubApiBaseUrlV4?: string; + cwd: string; +}): Promise<{ repoOwner?: string; repoName?: string }> { + const remotes = await getRepoInfoFromGitRemotes({ cwd }); + const firstRemote = maybe(remotes[0]); + + if (!firstRemote) { + return {}; + } + + try { + const variables = { + repoOwner: firstRemote.repoOwner, + repoName: firstRemote.repoName, + }; + + const query = graphql(` + query RepoOwnerAndName($repoOwner: String!, $repoName: String!) { + repository(owner: $repoOwner, name: $repoName) { + isFork + name + owner { + login + } + parent { + owner { + login + } + } + } + } + `); + + const client = getGraphQLClient({ accessToken, githubApiBaseUrlV4 }); + const result = await client.query(query, variables); + + if (result.error) { + throw new GithubV4Exception(result); + } + + const repo = result.data?.repository; + return { + repoName: repo?.name, + repoOwner: repo?.isFork ? repo.parent?.owner.login : repo?.owner.login, // get the original owner (not the fork owner) + }; + } catch (e) { + if (e instanceof GithubV4Exception) { + logger.error(e.message); + return {}; + } + throw e; + } +} diff --git a/src/lib/github/v4/getOptionsFromGithub/getOptionsFromGithub.private.test.ts b/src/lib/github/v4/getOptionsFromGithub/get-options-from-github.private.test.ts similarity index 96% rename from src/lib/github/v4/getOptionsFromGithub/getOptionsFromGithub.private.test.ts rename to src/lib/github/v4/getOptionsFromGithub/get-options-from-github.private.test.ts index 8c00f8f4..9e959478 100644 --- a/src/lib/github/v4/getOptionsFromGithub/getOptionsFromGithub.private.test.ts +++ b/src/lib/github/v4/getOptionsFromGithub/get-options-from-github.private.test.ts @@ -1,6 +1,6 @@ import os from 'os'; -import { getDevAccessToken } from '../../../../test/private/getDevAccessToken'; -import { getOptionsFromGithub } from './getOptionsFromGithub'; +import { getDevAccessToken } from '../../../../test/private/get-dev-access-token'; +import { getOptionsFromGithub } from './get-options-from-github'; const accessToken = getDevAccessToken(); diff --git a/src/lib/github/v4/getOptionsFromGithub/getOptionsFromGithub.ts b/src/lib/github/v4/getOptionsFromGithub/get-options-from-github.ts similarity index 51% rename from src/lib/github/v4/getOptionsFromGithub/getOptionsFromGithub.ts rename to src/lib/github/v4/getOptionsFromGithub/get-options-from-github.ts index 2a5ba03c..956d418f 100644 --- a/src/lib/github/v4/getOptionsFromGithub/getOptionsFromGithub.ts +++ b/src/lib/github/v4/getOptionsFromGithub/get-options-from-github.ts @@ -1,6 +1,8 @@ -import { AxiosResponse } from 'axios'; -import { ConfigFileOptions } from '../../../../options/ConfigOptions'; -import { BackportError } from '../../../BackportError'; +import type { OperationResult } from '@urql/core'; +import { graphql } from '../../../../graphql/generated'; +import type { GithubConfigOptionsQuery } from '../../../../graphql/generated/graphql'; +import type { ConfigFileOptions } from '../../../../options/config-options'; +import { BackportError } from '../../../backport-error'; import { getLocalConfigFileCommitDate, isLocalConfigFileUntracked, @@ -9,15 +11,10 @@ import { import { logger } from '../../../logger'; import { parseRemoteConfigFile, - swallowMissingConfigFileException, -} from '../../../remoteConfig'; -import { - apiRequestV4, - GithubV4Exception, - GithubV4Response, -} from '../apiRequestV4'; -import { throwOnInvalidAccessToken } from '../throwOnInvalidAccessToken'; -import { GithubConfigOptionsResponse, query } from './query'; + isMissingConfigFileException, +} from '../../../remote-config'; +import { GithubV4Exception, getGraphQLClient } from '../client/graphql-client'; +import { getInvalidAccessTokenMessage } from '../get-invalid-access-token-message'; // fetches the default source branch for the repo (normally "master") // startup checks: @@ -45,35 +42,60 @@ export async function getOptionsFromGithub(options: { globalConfigFile, } = options; - let data: GithubConfigOptionsResponse; - - try { - const res = await apiRequestV4({ - githubApiBaseUrlV4, - accessToken, - query, - variables: { repoOwner, repoName }, - }); - - throwIfInsufficientPermissions(res); - - data = res.data.data; - } catch (e) { - if (!(e instanceof GithubV4Exception)) { - throw e; + const query = graphql(` + query GithubConfigOptions($repoOwner: String!, $repoName: String!) { + viewer { + login + } + repository(owner: $repoOwner, name: $repoName) { + # check to see if a branch named "backport" exists + illegalBackportBranch: ref(qualifiedName: "refs/heads/backport") { + id + } + isPrivate + defaultBranchRef { + name + target { + __typename + ...RemoteConfigHistoryFragment + } + } + } } + `); + + const variables = { repoOwner, repoName }; + const client = getGraphQLClient({ accessToken, githubApiBaseUrlV4 }); + const result = await client.query(query, variables); - throwOnInvalidAccessToken({ - error: e, + if (result.error) { + const isInvalidAccessTokenMessage = getInvalidAccessTokenMessage({ + result, repoName, repoOwner, globalConfigFile, }); - data = swallowMissingConfigFileException(e); + + if (isInvalidAccessTokenMessage) { + throw new BackportError(isInvalidAccessTokenMessage); + } + + if (!isMissingConfigFileException(result)) { + throw new GithubV4Exception(result); + } } + const insufficientPermissionsErrorMessage = + getInsufficientPermissionsErrorMessage(result); + + if (insufficientPermissionsErrorMessage) { + throw new BackportError(insufficientPermissionsErrorMessage); + } + + const { data } = result; + // it is not possible to have a branch named "backport" - if (data.repository.illegalBackportBranch) { + if (data?.repository?.illegalBackportBranch) { throw new BackportError( 'You must delete the branch "backport" to continue. See https://github.com/sorenlouv/backport/issues/155 for details', ); @@ -85,16 +107,23 @@ export async function getOptionsFromGithub(options: { options.skipRemoteConfig, ); + if (!data) { + throw new BackportError( + 'Failed to fetch options from GitHub. Please check your access token and repository settings.', + ); + } + return { authenticatedUsername: data.viewer.login, - sourceBranch: options.sourceBranch ?? data.repository.defaultBranchRef.name, - isRepoPrivate: data.repository.isPrivate, + sourceBranch: + options.sourceBranch ?? data.repository?.defaultBranchRef?.name ?? 'main', + isRepoPrivate: data.repository?.isPrivate, ...remoteConfig, }; } async function getRemoteConfigFileOptions( - res: GithubConfigOptionsResponse, + res: GithubConfigOptionsQuery | undefined, cwd?: string, skipRemoteConfig?: boolean, ): Promise { @@ -105,6 +134,11 @@ async function getRemoteConfigFileOptions( return; } + if (res?.repository?.defaultBranchRef?.target?.__typename !== 'Commit') { + logger.info('Remote config: Skipping. Default branch is not a commit'); + return; + } + const remoteConfig = res.repository.defaultBranchRef.target.remoteConfigHistory.edges?.[0] ?.remoteConfig; @@ -149,14 +183,18 @@ async function getRemoteConfigFileOptions( return parseRemoteConfigFile(remoteConfig); } -function throwIfInsufficientPermissions( - res: AxiosResponse, any>, -) { - const accessScopesHeader = res.headers['x-oauth-scopes'] as - | string - | undefined; - - if (accessScopesHeader === undefined) { +function getInsufficientPermissionsErrorMessage( + res: OperationResult< + GithubConfigOptionsQuery, + { + repoOwner: string; + repoName: string; + } + >, +): string | undefined { + const responseHeaders = (res as any).responseHeaders as Headers; + const accessScopesHeader = responseHeaders.get('x-oauth-scopes'); + if (accessScopesHeader == null) { return; } @@ -164,20 +202,16 @@ function throwIfInsufficientPermissions( .split(',') .map((scope) => scope.trim()); - const isRepoPrivate = res.data.data.repository.isPrivate; + const isRepoPrivate = res.data?.repository?.isPrivate; if (isRepoPrivate && !accessTokenScopes.includes('repo')) { - throw new BackportError( - `You must grant the "repo" scope to your personal access token`, - ); + return `You must grant the "repo" scope to your personal access token`; } if ( !accessTokenScopes.includes('repo') && !accessTokenScopes.includes('public_repo') ) { - throw new BackportError( - `You must grant the "repo" or "public_repo" scope to your personal access token`, - ); + return `You must grant the "repo" or "public_repo" scope to your personal access token`; } } diff --git a/src/lib/github/v4/getOptionsFromGithub/query.ts b/src/lib/github/v4/getOptionsFromGithub/query.ts deleted file mode 100644 index 7ac2e469..00000000 --- a/src/lib/github/v4/getOptionsFromGithub/query.ts +++ /dev/null @@ -1,42 +0,0 @@ -import gql from 'graphql-tag'; -import { - RemoteConfigHistory, - RemoteConfigHistoryFragment, -} from '../../../remoteConfig'; - -export interface GithubConfigOptionsResponse { - viewer: { - login: string; - }; - repository: { - isPrivate: boolean; - illegalBackportBranch: { id: string } | null; - defaultBranchRef: { - name: string; - target: RemoteConfigHistory; - }; - }; -} - -export const query = gql` - query GithubConfigOptions($repoOwner: String!, $repoName: String!) { - viewer { - login - } - repository(owner: $repoOwner, name: $repoName) { - # check to see if a branch named "backport" exists - illegalBackportBranch: ref(qualifiedName: "refs/heads/backport") { - id - } - isPrivate - defaultBranchRef { - name - target { - ...RemoteConfigHistoryFragment - } - } - } - } - - ${RemoteConfigHistoryFragment} -`; diff --git a/src/lib/github/v4/getRepoOwnerAndNameFromGitRemotes.ts b/src/lib/github/v4/getRepoOwnerAndNameFromGitRemotes.ts deleted file mode 100644 index ceb87efe..00000000 --- a/src/lib/github/v4/getRepoOwnerAndNameFromGitRemotes.ts +++ /dev/null @@ -1,86 +0,0 @@ -import gql from 'graphql-tag'; -import { maybe } from '../../../utils/maybe'; -import { getRepoInfoFromGitRemotes } from '../../git'; -import { logger } from '../../logger'; -import { apiRequestV4, GithubV4Exception } from './apiRequestV4'; - -// This method should be used to get the origin owner (instead of a fork owner) -export async function getRepoOwnerAndNameFromGitRemotes({ - accessToken, - githubApiBaseUrlV4, - cwd, -}: { - accessToken: string; - githubApiBaseUrlV4?: string; - cwd: string; -}): Promise<{ repoOwner?: string; repoName?: string }> { - const remotes = await getRepoInfoFromGitRemotes({ cwd }); - const firstRemote = maybe(remotes[0]); - - if (!firstRemote) { - return {}; - } - - try { - const res = await apiRequestV4({ - githubApiBaseUrlV4, - accessToken, - query, - variables: { - repoOwner: firstRemote.repoOwner, - repoName: firstRemote.repoName, - }, - }); - - const { data } = res.data; - - return { - repoName: data.repository.name, - // get the original owner (not the fork owner) - repoOwner: data.repository.isFork - ? data.repository.parent.owner.login - : data.repository.owner.login, - }; - } catch (e) { - if (e instanceof GithubV4Exception) { - logger.error(e.message); - return {}; - } - throw e; - } -} - -export interface RepoOwnerAndNameResponse { - repository: - | { - isFork: true; - name: string; - owner: { login: string }; - parent: { - owner: { login: string }; - }; - } - | { - isFork: false; - name: string; - owner: { login: string }; - parent: null; - }; -} - -const query = gql` - query RepoOwnerAndName($repoOwner: String!, $repoName: String!) { - repository(owner: $repoOwner, name: $repoName) { - isFork - name - owner { - login - } - parent { - owner { - login - } - } - } - } -`; diff --git a/src/lib/github/v4/mocks/commitsByAuthorMock.ts b/src/lib/github/v4/mocks/commits-by-author-mock.ts similarity index 90% rename from src/lib/github/v4/mocks/commitsByAuthorMock.ts rename to src/lib/github/v4/mocks/commits-by-author-mock.ts index 566479e0..3a3af382 100644 --- a/src/lib/github/v4/mocks/commitsByAuthorMock.ts +++ b/src/lib/github/v4/mocks/commits-by-author-mock.ts @@ -1,13 +1,16 @@ -import { CommitByAuthorResponse } from '../fetchCommits/fetchCommitsByAuthor'; +import type { CommitsByAuthorQuery } from '../../../../graphql/generated/graphql'; +import { PullRequestState } from '../../../../graphql/generated/graphql'; -export const commitsByAuthorMock: CommitByAuthorResponse = { +export const commitsByAuthorMock: CommitsByAuthorQuery = { repository: { ref: { target: { + __typename: 'Commit', history: { edges: [ { node: { + __typename: 'Commit', author: { email: 'soren.louv@elastic.co', name: 'Søren Louv-Jansen', @@ -26,6 +29,7 @@ export const commitsByAuthorMock: CommitByAuthorResponse = { }, { node: { + __typename: 'Commit', author: { email: 'soren.louv@elastic.co', name: 'Søren Louv-Jansen', @@ -49,6 +53,7 @@ export const commitsByAuthorMock: CommitByAuthorResponse = { }, number: 85, mergeCommit: { + __typename: 'Commit', remoteConfigHistory: { edges: [] }, sha: 'f3b618b9421fdecdb36862f907afbdd6344b361d', message: 'Add witch (#85)', @@ -64,6 +69,7 @@ export const commitsByAuthorMock: CommitByAuthorResponse = { }, { node: { + __typename: 'Commit', author: { email: 'soren.louv@elastic.co', name: 'Søren Louv-Jansen', @@ -88,6 +94,7 @@ export const commitsByAuthorMock: CommitByAuthorResponse = { baseRefName: 'master', number: 80, mergeCommit: { + __typename: 'Commit', remoteConfigHistory: { edges: [] }, sha: '79cf18453ec32a4677009dcbab1c9c8c73fc14fe', message: @@ -97,6 +104,7 @@ export const commitsByAuthorMock: CommitByAuthorResponse = { edges: [ { node: { + __typename: 'CrossReferencedEvent', targetPullRequest: { __typename: 'PullRequest', targetMergeCommit: { @@ -110,7 +118,7 @@ export const commitsByAuthorMock: CommitByAuthorResponse = { }, url: 'https://github.com/elastic/kibana/pull/99', title: 'some title', - state: 'MERGED', + state: PullRequestState.Merged, number: 99, baseRefName: '6.3', commits: { @@ -139,6 +147,7 @@ export const commitsByAuthorMock: CommitByAuthorResponse = { }, { node: { + __typename: 'Commit', author: { email: 'soren.louv@elastic.co', name: 'Søren Louv-Jansen', @@ -157,6 +166,7 @@ export const commitsByAuthorMock: CommitByAuthorResponse = { }, { node: { + __typename: 'Commit', author: { email: 'soren.louv@elastic.co', name: 'Søren Louv-Jansen', diff --git a/src/lib/github/v4/throwOnInvalidAccessToken.test.ts b/src/lib/github/v4/throwOnInvalidAccessToken.test.ts deleted file mode 100644 index a28b00a7..00000000 --- a/src/lib/github/v4/throwOnInvalidAccessToken.test.ts +++ /dev/null @@ -1,105 +0,0 @@ -import { throwOnInvalidAccessToken } from './throwOnInvalidAccessToken'; - -describe('throwOnInvalidAccessToken', () => { - describe('when status code is', () => { - it('should handle invalid access token', () => { - const error = { - githubResponse: { - status: 401, - headers: {}, - }, - } as any; - - return expect(() => - throwOnInvalidAccessToken({ - repoOwner: 'elastic', - repoName: 'kibana', - error, - }), - ).toThrow('Please check your access token and make sure it is valid'); - }); - - it('should handle SSO error', () => { - const error = { - githubResponse: { - status: 200, - headers: { 'x-github-sso': 'required; url=https://ssourl.com' }, - data: { - errors: [{ type: 'FORBIDDEN' }], - }, - }, - } as any; - - return expect(() => - throwOnInvalidAccessToken({ - repoOwner: 'elastic', - repoName: 'kibana', - error, - }), - ).toThrowErrorMatchingSnapshot(); - }); - - it('should handle non-existing repo', () => { - const error = { - githubResponse: { - status: 200, - headers: { - 'x-oauth-scopes': 'a,b,c', - 'x-accepted-oauth-scopes': 'a,b,c', - }, - data: { - errors: [{ type: 'NOT_FOUND', path: ['repository'] }], - }, - }, - } as any; - - return expect(() => - throwOnInvalidAccessToken({ - repoOwner: 'elastic', - repoName: 'kibana', - error, - }), - ).toThrow(`The repository "elastic/kibana" doesn't exist`); - }); - - it('should handle insufficient permissions (oauth scopes)', () => { - const error = { - githubResponse: { - status: 200, - headers: { - 'x-oauth-scopes': 'a,b', - 'x-accepted-oauth-scopes': 'a,b,c', - }, - data: { - errors: [{ type: 'NOT_FOUND', path: ['repository'] }], - }, - }, - } as any; - - return expect(() => - throwOnInvalidAccessToken({ - repoOwner: 'elastic', - repoName: 'kibana', - error, - }), - ).toThrowErrorMatchingSnapshot(); - }); - - it('should not handle unknown cases', () => { - const error = { - githubResponse: { - status: 500, - headers: {}, - }, - } as any; - - return expect( - throwOnInvalidAccessToken({ - repoOwner: 'elastic', - repoName: 'kibana', - error, - }), - ).toBe(undefined); - }); - }); -}); diff --git a/src/lib/github/v4/throwOnInvalidAccessToken.ts b/src/lib/github/v4/throwOnInvalidAccessToken.ts deleted file mode 100644 index 97652578..00000000 --- a/src/lib/github/v4/throwOnInvalidAccessToken.ts +++ /dev/null @@ -1,83 +0,0 @@ -import { isEmpty, difference } from 'lodash'; -import { maybe } from '../../../utils/maybe'; -import { BackportError } from '../../BackportError'; -import { getGlobalConfigPath } from '../../env'; -import { GithubV4Exception } from './apiRequestV4'; - -export function throwOnInvalidAccessToken({ - error, - repoOwner, - repoName, - globalConfigFile, -}: { - error: GithubV4Exception; - repoOwner: string; - repoName: string; - globalConfigFile?: string; -}) { - function getSSOAuthUrl(ssoHeader?: string) { - const matches = ssoHeader?.match(/url=(.*)/); - if (matches) { - return matches[1]; - } - } - - const statusCode = error.githubResponse.status; - - switch (statusCode) { - case 200: { - const repoNotFound = error.githubResponse.data.errors?.some( - (error) => - error.type === 'NOT_FOUND' && error.path?.join('.') === 'repository', - ); - - const grantedScopes = - error.githubResponse.headers['x-oauth-scopes'] || ''; - const requiredScopes = - error.githubResponse.headers['x-accepted-oauth-scopes'] || ''; - const ssoHeader = maybe(error.githubResponse.headers['x-github-sso']); - - if (repoNotFound) { - const hasRequiredScopes = isEmpty( - difference(requiredScopes.split(','), grantedScopes.split(',')), - ); - - // user does not have permission to the repo - if (!hasRequiredScopes) { - throw new BackportError( - `You do not have access to the repository "${repoOwner}/${repoName}". Please make sure your access token has the required scopes.\n\nRequired scopes: ${requiredScopes}\nAccess token scopes: ${grantedScopes}`, - ); - } - - // repo does not exist - throw new BackportError( - `The repository "${repoOwner}/${repoName}" doesn't exist`, - ); - } - - const repoAccessForbidden = error.githubResponse.data.errors?.some( - (error) => error.type === 'FORBIDDEN', - ); - - const ssoAuthUrl = getSSOAuthUrl(ssoHeader); - - // user does not have permissions - if (repoAccessForbidden && ssoAuthUrl) { - throw new BackportError( - `Please follow the link to authorize your personal access token with SSO:\n\n${ssoAuthUrl}`, - ); - } - break; - } - - case 401: - throw new BackportError( - `Please check your access token and make sure it is valid.\nConfig: ${getGlobalConfigPath( - globalConfigFile, - )}`, - ); - - default: - return undefined; - } -} diff --git a/src/lib/github/v4/validateTargetBranch.private.test.ts b/src/lib/github/v4/validate-target-branch.private.test.ts similarity index 78% rename from src/lib/github/v4/validateTargetBranch.private.test.ts rename to src/lib/github/v4/validate-target-branch.private.test.ts index 44772139..8dc8e564 100644 --- a/src/lib/github/v4/validateTargetBranch.private.test.ts +++ b/src/lib/github/v4/validate-target-branch.private.test.ts @@ -1,6 +1,6 @@ -import { ValidConfigOptions } from '../../../options/options'; -import { getDevAccessToken } from '../../../test/private/getDevAccessToken'; -import { validateTargetBranch } from './validateTargetBranch'; +import type { ValidConfigOptions } from '../../../options/options'; +import { getDevAccessToken } from '../../../test/private/get-dev-access-token'; +import { validateTargetBranch } from './validate-target-branch'; const accessToken = getDevAccessToken(); diff --git a/src/lib/github/v4/validateTargetBranch.ts b/src/lib/github/v4/validate-target-branch.ts similarity index 65% rename from src/lib/github/v4/validateTargetBranch.ts rename to src/lib/github/v4/validate-target-branch.ts index 3d13a87e..3df701b8 100644 --- a/src/lib/github/v4/validateTargetBranch.ts +++ b/src/lib/github/v4/validate-target-branch.ts @@ -1,7 +1,7 @@ -import gql from 'graphql-tag'; -import { BackportError } from '../../BackportError'; +import { graphql } from '../../../graphql/generated'; +import { BackportError } from '../../backport-error'; import { ora } from '../../ora'; -import { apiRequestV4 } from './apiRequestV4'; +import { GithubV4Exception, getGraphQLClient } from './client/graphql-client'; export interface TargetBranchResponse { repository: { ref: { id: string } | null }; @@ -22,7 +22,7 @@ export async function validateTargetBranch({ githubApiBaseUrlV4?: string; interactive: boolean; }) { - const query = gql` + const query = graphql(` query GetBranchId( $repoOwner: String! $repoName: String! @@ -34,18 +34,18 @@ export async function validateTargetBranch({ } } } - `; + `); const spinner = ora(interactive, '').start(); + const variables = { repoOwner, repoName, branchName }; + const client = getGraphQLClient({ accessToken, githubApiBaseUrlV4 }); + const result = await client.query(query, variables); - const res = await apiRequestV4({ - githubApiBaseUrlV4, - accessToken, - query, - variables: { repoOwner, repoName, branchName }, - }); + if (result.error) { + throw new GithubV4Exception(result); + } - if (!res.data.data.repository.ref) { + if (!result.data?.repository?.ref) { spinner.fail(`The branch "${branchName}" does not exist`); throw new BackportError({ code: 'invalid-branch-exception', diff --git a/src/lib/logger.ts b/src/lib/logger.ts index fd1fd0c3..5131e75d 100644 --- a/src/lib/logger.ts +++ b/src/lib/logger.ts @@ -59,7 +59,6 @@ function fileTransport({ // wrapper around console.log export function consoleLog(message: string) { if (_interactive) { - // eslint-disable-next-line no-console console.log(redactAccessToken(message)); } } diff --git a/src/lib/ora.ts b/src/lib/ora.ts index 2859c5ee..f9c2586f 100644 --- a/src/lib/ora.ts +++ b/src/lib/ora.ts @@ -1,6 +1,5 @@ import oraOriginal from 'ora'; -/* eslint-disable @typescript-eslint/no-empty-function */ export const oraNonInteractiveMode = { start: () => oraNonInteractiveMode, succeed: () => {}, diff --git a/src/lib/prompt.test.ts b/src/lib/prompt.test.ts index 02119f33..d6689534 100644 --- a/src/lib/prompt.test.ts +++ b/src/lib/prompt.test.ts @@ -1,6 +1,6 @@ import stripAnsi from 'strip-ansi'; import { getChoicesForCommitPrompt } from './prompts'; -import { Commit } from './sourceCommit/parseSourceCommit'; +import type { Commit } from './sourceCommit/parse-source-commit'; describe('prompt', () => { describe('getChoicesForCommitPrompt', () => { diff --git a/src/lib/prompts.ts b/src/lib/prompts.ts index bec2f12d..e0e321ca 100644 --- a/src/lib/prompts.ts +++ b/src/lib/prompts.ts @@ -1,19 +1,19 @@ import chalk from 'chalk'; -import inquirer, { - CheckboxQuestion, - ListQuestion, - ConfirmQuestion, -} from 'inquirer'; +import type { CheckboxQuestion, ListQuestion, ConfirmQuestion } from 'inquirer'; +import inquirer from 'inquirer'; import { isEmpty, repeat } from 'lodash'; import terminalLink from 'terminal-link'; -import { TargetBranchChoice, DirectoryChoice } from '../options/ConfigOptions'; +import type { + TargetBranchChoice, + DirectoryChoice, +} from '../options/config-options'; import { stripPullNumber, getFirstLine, getShortSha, -} from './github/commitFormatters'; -import { TargetPullRequest } from './sourceCommit/getPullRequestStates'; -import { Commit } from './sourceCommit/parseSourceCommit'; +} from './github/commit-formatters'; +import type { TargetPullRequest } from './sourceCommit/get-pull-request-states'; +import type { Commit } from './sourceCommit/parse-source-commit'; type Question = CheckboxQuestion | ListQuestion | ConfirmQuestion; diff --git a/src/lib/registerHandlebarsHelpers.ts b/src/lib/register-handlebars-helpers.ts similarity index 77% rename from src/lib/registerHandlebarsHelpers.ts rename to src/lib/register-handlebars-helpers.ts index 23e2d2f6..79eb062d 100644 --- a/src/lib/registerHandlebarsHelpers.ts +++ b/src/lib/register-handlebars-helpers.ts @@ -1,5 +1,5 @@ import Handlebars from 'handlebars'; -import { getShortSha } from './github/commitFormatters'; +import { getShortSha } from './github/commit-formatters'; export function registerHandlebarsHelpers() { Handlebars.registerHelper('shortSha', getShortSha); diff --git a/src/lib/remote-config.ts b/src/lib/remote-config.ts new file mode 100644 index 00000000..80367597 --- /dev/null +++ b/src/lib/remote-config.ts @@ -0,0 +1,56 @@ +import { graphql } from '../graphql/generated'; +import { parseConfigFile } from '../options/config/read-config-file'; +import type { + GitHubGraphQLError, + OperationResultWithMeta, +} from './github/v4/client/graphql-client'; +import { logger } from './logger'; + +export const RemoteConfigHistoryFragment = graphql(` + fragment RemoteConfigHistoryFragment on Commit { + remoteConfigHistory: history(first: 1, path: ".backportrc.json") { + edges { + remoteConfig: node { + committedDate + file(path: ".backportrc.json") { + ... on TreeEntry { + __typename + object { + ... on Blob { + __typename + text + } + } + } + } + } + } + } + } +`); + +export function parseRemoteConfigFile(remoteConfig: any) { + try { + return parseConfigFile(remoteConfig.file.object.text); + } catch (e) { + logger.info('Parsing remote config failed', e); + return; + } +} + +export function isMissingConfigFileException( + result: OperationResultWithMeta, +): boolean { + const data = result.data; + const errors = (result.error?.graphQLErrors ?? []) as GitHubGraphQLError[]; + + const isMissingConfigError = errors.some((error) => { + return ( + error.path?.includes('remoteConfig') && + error.originalError?.type === 'NOT_FOUND' + ); + }); + + const isMissingConfigFileException = isMissingConfigError && data != null; + return isMissingConfigFileException; +} diff --git a/src/lib/remoteConfig.ts b/src/lib/remoteConfig.ts deleted file mode 100644 index 2defba82..00000000 --- a/src/lib/remoteConfig.ts +++ /dev/null @@ -1,71 +0,0 @@ -import gql from 'graphql-tag'; -import { parseConfigFile } from '../options/config/readConfigFile'; -import { GithubV4Exception } from './github/v4/apiRequestV4'; -import { logger } from './logger'; - -export const RemoteConfigHistoryFragment = gql` - fragment RemoteConfigHistoryFragment on Commit { - remoteConfigHistory: history(first: 1, path: ".backportrc.json") { - edges { - remoteConfig: node { - committedDate - file(path: ".backportrc.json") { - ... on TreeEntry { - object { - ... on Blob { - text - } - } - } - } - } - } - } - } -`; - -export interface RemoteConfig { - committedDate: string; - file: { - object: { text: string }; - }; -} - -export interface RemoteConfigHistory { - remoteConfigHistory: { - edges: Array<{ - remoteConfig: RemoteConfig; - }> | null; - }; -} - -export function parseRemoteConfigFile(remoteConfig: RemoteConfig) { - try { - return parseConfigFile(remoteConfig.file.object.text); - } catch (e) { - logger.info('Parsing remote config failed', e); - return; - } -} - -export function swallowMissingConfigFileException( - error: GithubV4Exception | unknown, -) { - if (!(error instanceof GithubV4Exception)) { - throw error; - } - - const { data, errors } = error.githubResponse.data; - - const missingConfigError = errors?.some((error) => { - return error.path?.includes('remoteConfig') && error.type === 'NOT_FOUND'; - }); - - // swallow error if it's just the config file that's missing - if (missingConfigError && data != null) { - return data as T; - } - - // Throw unexpected error - throw error; -} diff --git a/src/lib/runSequentially.ts b/src/lib/run-sequentially.ts similarity index 92% rename from src/lib/runSequentially.ts rename to src/lib/run-sequentially.ts index 144755be..dae723a2 100755 --- a/src/lib/runSequentially.ts +++ b/src/lib/run-sequentially.ts @@ -1,11 +1,11 @@ import apm from 'elastic-apm-node'; -import { ValidConfigOptions } from '../options/options'; -import { BackportError } from './BackportError'; -import { cherrypickAndCreateTargetPullRequest } from './cherrypickAndCreateTargetPullRequest/cherrypickAndCreateTargetPullRequest'; +import type { ValidConfigOptions } from '../options/options'; +import { BackportError } from './backport-error'; +import { cherrypickAndCreateTargetPullRequest } from './cherrypickAndCreateTargetPullRequest/cherrypick-and-create-target-pull-request'; import { getLogfilePath } from './env'; import { logger, consoleLog } from './logger'; import { sequentially } from './sequentially'; -import { Commit } from './sourceCommit/parseSourceCommit'; +import type { Commit } from './sourceCommit/parse-source-commit'; // Target is either a branch (for branch mode) or a branch + directories list // for directory mode. diff --git a/src/lib/setupRepo.test.ts b/src/lib/setup-repo.test.ts similarity index 98% rename from src/lib/setupRepo.test.ts rename to src/lib/setup-repo.test.ts index 41ace6d1..3fde9a35 100644 --- a/src/lib/setupRepo.test.ts +++ b/src/lib/setup-repo.test.ts @@ -1,11 +1,11 @@ import os from 'os'; import del from 'del'; -import { ValidConfigOptions } from '../options/options'; -import { SpyHelper } from '../types/SpyHelper'; +import type { ValidConfigOptions } from '../options/options'; +import type { SpyHelper } from '../types/spy-helper'; import * as childProcess from './child-process-promisified'; import * as gitModule from './git'; import { oraNonInteractiveMode } from './ora'; -import { setupRepo } from './setupRepo'; +import { setupRepo } from './setup-repo'; describe('setupRepo', () => { let spawnSpy: SpyHelper; diff --git a/src/lib/setupRepo.ts b/src/lib/setup-repo.ts similarity index 90% rename from src/lib/setupRepo.ts rename to src/lib/setup-repo.ts index 19167eb0..580c6802 100644 --- a/src/lib/setupRepo.ts +++ b/src/lib/setup-repo.ts @@ -1,7 +1,9 @@ +// eslint-disable-next-line @typescript-eslint/no-require-imports import del = require('del'); +// eslint-disable-next-line @typescript-eslint/no-require-imports import apm = require('elastic-apm-node'); -import { ValidConfigOptions } from '../options/options'; -import { BackportError } from './BackportError'; +import type { ValidConfigOptions } from '../options/options'; +import { BackportError } from './backport-error'; import { getRepoPath } from './env'; import { addRemote, @@ -30,7 +32,7 @@ export async function setupRepo(options: ValidConfigOptions) { try { const localRepoPath = await getLocalSourceRepoPath(options); const remoteRepoPath = getRemoteUrl(options, options.repoOwner); - const sourcePath = localRepoPath ? localRepoPath : remoteRepoPath; + const sourcePath = localRepoPath ?? remoteRepoPath; // show the full path for local repos, but only the host name for remote repos (to avoid showing the access token) const sourcePathHumanReadable = !localRepoPath diff --git a/src/lib/sourceCommit/getMockSourceCommit.ts b/src/lib/sourceCommit/get-mock-source-commit.ts similarity index 76% rename from src/lib/sourceCommit/getMockSourceCommit.ts rename to src/lib/sourceCommit/get-mock-source-commit.ts index 7c26106d..29d82b18 100644 --- a/src/lib/sourceCommit/getMockSourceCommit.ts +++ b/src/lib/sourceCommit/get-mock-source-commit.ts @@ -1,4 +1,8 @@ -import { SourceCommitWithTargetPullRequest } from './parseSourceCommit'; +import type { + PullRequestState, + RemoteConfigHistoryFragmentFragment, + SourceCommitWithTargetPullRequestFragmentFragment, +} from '../../graphql/generated/graphql'; export function getMockSourceCommit({ sourceCommit, @@ -21,7 +25,7 @@ export function getMockSourceCommit({ sourceBranch?: string; } | null; timelineItems?: Array<{ - state: 'OPEN' | 'CLOSED' | 'MERGED'; + state: PullRequestState; targetBranch: string; title?: string; number: number; @@ -29,13 +33,14 @@ export function getMockSourceCommit({ repoName?: string; repoOwner?: string; }>; -}): SourceCommitWithTargetPullRequest { +}): SourceCommitWithTargetPullRequestFragmentFragment { const defaultTargetPullRequestTitle = 'DO NOT USE: Please specify a title in test!!!'; const defaultSourceCommitSha = 'DO NOT USE: please specify a sha in test!!!'; - const baseMockCommit: SourceCommitWithTargetPullRequest = { + const baseMockCommit: SourceCommitWithTargetPullRequestFragmentFragment = { + __typename: 'Commit', author: { email: 'soren.louv@elastic.co', name: 'Søren Louv-Jansen' }, repository: { name: 'kibana', @@ -51,25 +56,28 @@ export function getMockSourceCommit({ return baseMockCommit; } - const remoteConfigHistory = sourceCommit.remoteConfig - ? { - edges: [ - { - remoteConfig: { - committedDate: sourceCommit.remoteConfig.committedDate, - file: { - object: { - text: JSON.stringify({ - branchLabelMapping: - sourceCommit.remoteConfig.branchLabelMapping, - }), + const remoteConfigHistory: RemoteConfigHistoryFragmentFragment['remoteConfigHistory'] = + sourceCommit.remoteConfig + ? { + edges: [ + { + remoteConfig: { + committedDate: sourceCommit.remoteConfig.committedDate, + file: { + __typename: 'TreeEntry', + object: { + __typename: 'Blob', + text: JSON.stringify({ + branchLabelMapping: + sourceCommit.remoteConfig.branchLabelMapping, + }), + }, }, }, }, - }, - ], - } - : { edges: [] }; + ], + } + : { edges: [] }; return { ...baseMockCommit, @@ -78,6 +86,7 @@ export function getMockSourceCommit({ { node: { mergeCommit: { + __typename: 'Commit', remoteConfigHistory, sha: sourceCommit.sha ?? defaultSourceCommitSha, message: sourceCommit.message, @@ -96,7 +105,9 @@ export function getMockSourceCommit({ timelineItems: { edges: timelineItems.map((timelineItem) => { return { + __typename: 'PullRequestTimelineItemsEdge', node: { + __typename: 'CrossReferencedEvent', targetPullRequest: { __typename: 'PullRequest', url: `https://github.com/elastic/kibana/pull/${timelineItem.number}`, diff --git a/src/lib/sourceCommit/getPullRequestStates.test.ts b/src/lib/sourceCommit/get-pull-request-states.test.ts similarity index 95% rename from src/lib/sourceCommit/getPullRequestStates.test.ts rename to src/lib/sourceCommit/get-pull-request-states.test.ts index 8952d319..834da35d 100644 --- a/src/lib/sourceCommit/getPullRequestStates.test.ts +++ b/src/lib/sourceCommit/get-pull-request-states.test.ts @@ -1,6 +1,7 @@ import nock from 'nock'; -import { getMockSourceCommit } from './getMockSourceCommit'; -import { getPullRequestStates } from './getPullRequestStates'; +import { PullRequestState } from '../../graphql/generated/graphql'; +import { getMockSourceCommit } from './get-mock-source-commit'; +import { getPullRequestStates } from './get-pull-request-states'; describe('getPullRequestStates', () => { afterEach(() => { @@ -29,7 +30,7 @@ describe('getPullRequestStates', () => { sourcePullRequest: { number: 1234 }, timelineItems: [ { - state: 'MERGED', + state: PullRequestState.Merged, targetBranch: '6.x', commitMessages: ['identical messages (#1234)'], // this message number: 5678, @@ -44,7 +45,7 @@ describe('getPullRequestStates', () => { expect(expectedTargetPRs).toEqual([ { branch: '6.x', - state: 'MERGED', + state: PullRequestState.Merged, number: 5678, url: 'https://github.com/elastic/kibana/pull/5678', mergeCommit: { @@ -61,7 +62,7 @@ describe('getPullRequestStates', () => { sourcePullRequest: { number: 1234 }, timelineItems: [ { - state: 'MERGED', + state: PullRequestState.Merged, targetBranch: '6.x', commitMessages: ['identical messages (#1234)'], number: 5678, @@ -83,7 +84,7 @@ describe('getPullRequestStates', () => { sourcePullRequest: { number: 1234 }, timelineItems: [ { - state: 'MERGED', + state: PullRequestState.Merged, targetBranch: '6.x', commitMessages: ['identical messages (#1234)'], number: 5678, @@ -105,7 +106,7 @@ describe('getPullRequestStates', () => { sourcePullRequest: { number: 1234 }, timelineItems: [ { - state: 'MERGED', + state: PullRequestState.Merged, targetBranch: '6.x', commitMessages: ['message two (#1234)'], // this commit message number: 5678, @@ -126,7 +127,7 @@ describe('getPullRequestStates', () => { sourcePullRequest: { number: 1234 }, timelineItems: [ { - state: 'MERGED', + state: PullRequestState.Merged, targetBranch: '6.x', commitMessages: ['message two (#1234)'], // message title: 'message one (#1234)', // title @@ -142,7 +143,7 @@ describe('getPullRequestStates', () => { expect(targetPullRequestStates).toEqual([ { branch: '6.x', - state: 'MERGED', + state: PullRequestState.Merged, number: 5678, url: 'https://github.com/elastic/kibana/pull/5678', mergeCommit: { @@ -159,7 +160,7 @@ describe('getPullRequestStates', () => { sourcePullRequest: { number: 1234 }, timelineItems: [ { - state: 'MERGED', + state: PullRequestState.Merged, targetBranch: '6.x', commitMessages: ['message two (#1234)'], title: 'message one (#9999)', @@ -181,7 +182,7 @@ describe('getPullRequestStates', () => { sourcePullRequest: { number: 1234 }, timelineItems: [ { - state: 'MERGED', + state: PullRequestState.Merged, targetBranch: '6.x', commitMessages: ['message one (#1234)\n\nsomething else'], number: 5678, @@ -196,7 +197,7 @@ describe('getPullRequestStates', () => { expect(targetPullRequestStates).toEqual([ { branch: '6.x', - state: 'MERGED', + state: PullRequestState.Merged, number: 5678, url: 'https://github.com/elastic/kibana/pull/5678', mergeCommit: { @@ -251,7 +252,7 @@ describe('getPullRequestStates', () => { }, timelineItems: [ { - state: 'MERGED', + state: PullRequestState.Merged, targetBranch: '7.2', commitMessages: ['identical messages (#1234)'], title: 'identical messages (#9999)', @@ -273,7 +274,7 @@ describe('getPullRequestStates', () => { label: 'v7.2.0', isSourceBranch: false, branchLabelMappingKey: '^v(\\d+).(\\d+).\\d+$', - state: 'MERGED', + state: PullRequestState.Merged, number: 5678, url: 'https://github.com/elastic/kibana/pull/5678', mergeCommit: { @@ -572,7 +573,7 @@ describe('getPullRequestStates', () => { }, timelineItems: [ { - state: 'OPEN', + state: PullRequestState.Open, targetBranch: 'branch-3', commitMessages: ['identical messages (#1234)'], number: 5678, @@ -606,7 +607,7 @@ describe('getPullRequestStates', () => { number: 5678, isSourceBranch: false, branchLabelMappingKey: 'label-(\\d+)', - state: 'OPEN', + state: PullRequestState.Open, url: 'https://github.com/elastic/kibana/pull/5678', }, { @@ -632,7 +633,7 @@ describe('getPullRequestStates', () => { }, timelineItems: [ { - state: 'CLOSED', + state: PullRequestState.Closed, targetBranch: 'branch-3', commitMessages: ['identical messages (#1234)'], number: 5678, @@ -690,7 +691,7 @@ describe('getPullRequestStates', () => { }, timelineItems: [ { - state: 'MERGED', + state: PullRequestState.Merged, targetBranch: 'branch-3', commitMessages: ['identical messages (#1234)'], number: 5678, @@ -724,7 +725,7 @@ describe('getPullRequestStates', () => { isSourceBranch: false, branchLabelMappingKey: 'label-(\\d+)', number: 5678, - state: 'MERGED', + state: PullRequestState.Merged, url: 'https://github.com/elastic/kibana/pull/5678', mergeCommit: { message: 'identical messages (#1234)', diff --git a/src/lib/sourceCommit/getPullRequestStates.ts b/src/lib/sourceCommit/get-pull-request-states.ts similarity index 79% rename from src/lib/sourceCommit/getPullRequestStates.ts rename to src/lib/sourceCommit/get-pull-request-states.ts index 119d9a8f..40d83fde 100644 --- a/src/lib/sourceCommit/getPullRequestStates.ts +++ b/src/lib/sourceCommit/get-pull-request-states.ts @@ -1,20 +1,18 @@ import { keyBy, merge, uniqBy, values } from 'lodash'; -import { ValidConfigOptions } from '../../options/options'; -import { filterNil } from '../../utils/filterEmpty'; -import { getFirstLine } from '../github/commitFormatters'; -import { - SourcePullRequestNode, - SourceCommitWithTargetPullRequest, - TimelineEdge, - TimelinePullRequestEdge, -} from './parseSourceCommit'; - -export type PullRequestState = 'OPEN' | 'CLOSED' | 'MERGED' | 'NOT_CREATED'; +import type { SourceCommitWithTargetPullRequestFragmentFragment } from '../../graphql/generated/graphql'; +import type { ValidConfigOptions } from '../../options/options'; +import { filterNil } from '../../utils/filter-empty'; +import { getFirstLine } from '../github/commit-formatters'; +import type { SourcePullRequestNode } from './get-source-pull-request'; +import { getSourcePullRequest } from './get-source-pull-request'; +import { isPullRequestCrossReferencedEvent } from './is-pull-request-cross-referenced-event'; + +type CreatedPullRequestState = 'CLOSED' | 'MERGED' | 'OPEN' | 'NOT_CREATED'; type CreatedPullRequest = { url: string; number: number; branch: string; - state: PullRequestState; + state: CreatedPullRequestState; mergeCommit?: { sha: string; message: string; @@ -31,15 +29,9 @@ type TargetBranchWithLabel = { export type TargetPullRequest = | (CreatedPullRequest & Partial) | ((TargetBranchWithLabel & Partial) & { - state: PullRequestState; + state: CreatedPullRequestState; }); -export function getSourcePullRequest( - sourceCommit: SourceCommitWithTargetPullRequest, -): SourcePullRequestNode | undefined { - return sourceCommit.associatedPullRequests.edges?.[0]?.node; -} - function mergeByKey( obj1: T[], obj2: K[], @@ -54,7 +46,7 @@ export function getPullRequestStates({ sourceCommit, branchLabelMapping, }: { - sourceCommit: SourceCommitWithTargetPullRequest; + sourceCommit: SourceCommitWithTargetPullRequestFragmentFragment; branchLabelMapping: ValidConfigOptions['branchLabelMapping']; }): TargetPullRequest[] { const sourcePullRequest = getSourcePullRequest(sourceCommit); @@ -77,11 +69,13 @@ export function getPullRequestStates({ branchLabelMapping, ); - return mergeByKey( + const allTargetBranches = mergeByKey( targetBranchesFromLabels, createdTargetPullRequests, 'branch', - ).map((res) => { + ); + + return allTargetBranches.map((res) => { if (res.state) { return { ...res, state: res.state }; } @@ -108,7 +102,7 @@ export function getPullRequestStates({ } function getCreatedTargetPullRequests( - sourceCommit: SourceCommitWithTargetPullRequest, + sourceCommit: SourceCommitWithTargetPullRequestFragmentFragment, ): CreatedPullRequest[] { const sourcePullRequest = getSourcePullRequest(sourceCommit); @@ -117,9 +111,10 @@ function getCreatedTargetPullRequests( } const sourceCommitMessage = getFirstLine(sourceCommit.message); - return sourcePullRequest.timelineItems.edges + + return (sourcePullRequest.timelineItems.edges ?? []) .filter(filterNil) - .filter(filterPullRequests) + .filter(isPullRequestCrossReferencedEvent) .filter((item) => { const { targetPullRequest } = item.node; @@ -129,9 +124,13 @@ function getCreatedTargetPullRequests( } // at least one of the commits in `targetPullRequest` should match the merge commit from the source pull request - const didCommitMatch = targetPullRequest.commits.edges.some( + const didCommitMatch = targetPullRequest.commits.edges?.some( (commitEdge) => { - const { targetCommit } = commitEdge.node; + const targetCommit = commitEdge?.node?.targetCommit; + + if (!targetCommit) { + return false; + } const matchingRepoName = sourceCommit.repository.name === targetPullRequest.repository.name; @@ -154,7 +153,11 @@ function getCreatedTargetPullRequests( sourcePullRequest.number.toString(), ); - return didCommitMatch || (titleIncludesMessage && titleIncludesNumber); + if (didCommitMatch) { + return true; + } + + return titleIncludesMessage && titleIncludesNumber; }) .map((item) => { const { targetPullRequest } = item.node; @@ -173,20 +176,13 @@ function getCreatedTargetPullRequests( }); } -// narrow TimelineEdge to TimelinePullRequestEdge -function filterPullRequests( - item: TimelineEdge, -): item is TimelinePullRequestEdge { - const { targetPullRequest } = item.node; - return targetPullRequest.__typename === 'PullRequest'; -} - function getTargetBranchesFromLabels( sourcePullRequest: SourcePullRequestNode, branchLabelMapping: NonNullable, ): TargetBranchWithLabel[] { - const targetBranchesFromLabels = sourcePullRequest.labels.nodes - .map((label) => label.name) + const targetBranchesFromLabels = sourcePullRequest.labels?.nodes + ?.map((label) => label?.name) + .filter(filterNil) .map((label) => { const res = getTargetBranchFromLabel({ branchLabelMapping, label }); if (res) { diff --git a/src/lib/sourceCommit/get-source-pull-request.ts b/src/lib/sourceCommit/get-source-pull-request.ts new file mode 100644 index 00000000..5abb8096 --- /dev/null +++ b/src/lib/sourceCommit/get-source-pull-request.ts @@ -0,0 +1,11 @@ +import type { SourceCommitWithTargetPullRequestFragmentFragment } from '../../graphql/generated/graphql'; + +export type SourcePullRequestNode = NonNullable< + ReturnType +>; + +export function getSourcePullRequest( + sourceCommit: SourceCommitWithTargetPullRequestFragmentFragment, +) { + return sourceCommit.associatedPullRequests?.edges?.[0]?.node; +} diff --git a/src/lib/sourceCommit/is-pull-request-cross-referenced-event.ts b/src/lib/sourceCommit/is-pull-request-cross-referenced-event.ts new file mode 100644 index 00000000..599ed08b --- /dev/null +++ b/src/lib/sourceCommit/is-pull-request-cross-referenced-event.ts @@ -0,0 +1,32 @@ +import type { SourcePullRequestNode } from './get-source-pull-request'; + +type TimelineItemEdge = NonNullable< + NonNullable[number] +>; + +type TimelineItemEdgeNode = NonNullable['node']; +type TimelineItemCrossReferencedEvent = Extract< + TimelineItemEdgeNode, + { __typename?: 'CrossReferencedEvent' } +>; +type CrossReferencedTarget = + TimelineItemCrossReferencedEvent['targetPullRequest']; +type SpecificTargetPullRequest = Extract< + CrossReferencedTarget, + { __typename: 'PullRequest' } +>; + +type GuardedCrossReferencedEventEdge = TimelineItemEdge & { + node: TimelineItemCrossReferencedEvent & { + targetPullRequest: SpecificTargetPullRequest; + }; +}; + +export function isPullRequestCrossReferencedEvent( + item: TimelineItemEdge, +): item is GuardedCrossReferencedEventEdge { + return ( + item.node?.__typename === 'CrossReferencedEvent' && + item.node.targetPullRequest.__typename === 'PullRequest' + ); +} diff --git a/src/lib/sourceCommit/parseSourceCommit.test.ts b/src/lib/sourceCommit/parse-source-commit.test.ts similarity index 90% rename from src/lib/sourceCommit/parseSourceCommit.test.ts rename to src/lib/sourceCommit/parse-source-commit.test.ts index 0d38cc93..d983e78b 100644 --- a/src/lib/sourceCommit/parseSourceCommit.test.ts +++ b/src/lib/sourceCommit/parse-source-commit.test.ts @@ -1,6 +1,8 @@ -import { ValidConfigOptions } from '../../options/options'; -import { getMockSourceCommit } from './getMockSourceCommit'; -import { Commit, parseSourceCommit } from './parseSourceCommit'; +import { PullRequestState } from '../../graphql/generated/graphql'; +import type { ValidConfigOptions } from '../../options/options'; +import { getMockSourceCommit } from './get-mock-source-commit'; +import type { Commit } from './parse-source-commit'; +import { parseSourceCommit } from './parse-source-commit'; describe('parseSourceCommit', () => { describe('pullNumber', () => { @@ -42,9 +44,7 @@ describe('parseSourceCommit', () => { const commit = parseSourceCommit({ sourceCommit: mockSourceCommit, - options: { - sourceBranch: 'sourcebranch-from-options', - } as unknown as ValidConfigOptions, + options: { sourceBranch: 'sourcebranch-from-options' }, }); expect(commit.sourceBranch).toBe('sourcebranch-from-options'); @@ -71,13 +71,13 @@ describe('parseSourceCommit', () => { }, timelineItems: [ { - state: 'MERGED', + state: PullRequestState.Merged, targetBranch: '6.3', commitMessages: ['My commit message (#66)'], number: 5678, }, { - state: 'OPEN', + state: PullRequestState.Open, targetBranch: '6.2', commitMessages: ['My commit message (#66)'], number: 9876, @@ -104,7 +104,7 @@ describe('parseSourceCommit', () => { sha: 'my sha', }, number: 55, - state: 'MERGED', + state: PullRequestState.Merged, url: 'https://github.com/elastic/kibana/pull/55', }, { @@ -113,7 +113,7 @@ describe('parseSourceCommit', () => { branchLabelMappingKey: '^v(\\d+).(\\d+).\\d+$', isSourceBranch: false, number: 5678, - state: 'MERGED', + state: PullRequestState.Merged, url: 'https://github.com/elastic/kibana/pull/5678', mergeCommit: { message: 'My commit message (#66)', @@ -126,7 +126,7 @@ describe('parseSourceCommit', () => { branchLabelMappingKey: '^v(\\d+).(\\d+).\\d+$', isSourceBranch: false, number: 9876, - state: 'OPEN', + state: PullRequestState.Open, url: 'https://github.com/elastic/kibana/pull/9876', }, { @@ -167,7 +167,7 @@ describe('parseSourceCommit', () => { }, timelineItems: [ { - state: 'OPEN', + state: PullRequestState.Open, targetBranch: '6.2', commitMessages: ['My commit message (#66)'], number: 9876, @@ -194,7 +194,7 @@ describe('parseSourceCommit', () => { sha: 'my-sha', }, number: 55, - state: 'MERGED', + state: PullRequestState.Merged, url: 'https://github.com/elastic/kibana/pull/55', }, { @@ -203,7 +203,7 @@ describe('parseSourceCommit', () => { branchLabelMappingKey: '^v(\\d+).(\\d+).\\d+$', isSourceBranch: false, number: 9876, - state: 'OPEN', + state: PullRequestState.Open, url: 'https://github.com/elastic/kibana/pull/9876', }, { @@ -239,13 +239,13 @@ describe('parseSourceCommit', () => { }, timelineItems: [ { - state: 'MERGED', + state: PullRequestState.Merged, targetBranch: '6.x', commitMessages: ['My commit message (#1234)'], number: 5678, }, { - state: 'OPEN', + state: PullRequestState.Open, targetBranch: '6.2', commitMessages: ['My commit message (#1234)'], number: 9876, @@ -286,7 +286,7 @@ describe('parseSourceCommit', () => { isSourceBranch: false, number: 5678, - state: 'MERGED', + state: PullRequestState.Merged, url: 'https://github.com/elastic/kibana/pull/5678', mergeCommit: { message: 'My commit message (#1234)', @@ -299,7 +299,7 @@ describe('parseSourceCommit', () => { branchLabelMappingKey: '^v(\\d+).(\\d+).\\d+$', isSourceBranch: false, number: 9876, - state: 'OPEN', + state: PullRequestState.Open, url: 'https://github.com/elastic/kibana/pull/9876', }, { diff --git a/src/lib/sourceCommit/parseSourceCommit.ts b/src/lib/sourceCommit/parse-source-commit.ts similarity index 68% rename from src/lib/sourceCommit/parseSourceCommit.ts rename to src/lib/sourceCommit/parse-source-commit.ts index 13e7efae..a80333a8 100644 --- a/src/lib/sourceCommit/parseSourceCommit.ts +++ b/src/lib/sourceCommit/parse-source-commit.ts @@ -1,19 +1,15 @@ -import gql from 'graphql-tag'; import { differenceBy } from 'lodash'; -import { ValidConfigOptions } from '../../options/options'; -import { - RemoteConfigHistory, - RemoteConfigHistoryFragment, - parseRemoteConfigFile, -} from '../remoteConfig'; -import { - TargetPullRequest, - getPullRequestStates, - getSourcePullRequest, -} from './getPullRequestStates'; +import { graphql } from '../../graphql/generated'; +import type { SourceCommitWithTargetPullRequestFragmentFragment } from '../../graphql/generated/graphql'; +import type { ValidConfigOptions } from '../../options/options'; +import { filterNil } from '../../utils/filter-empty'; +import { parseRemoteConfigFile } from '../remote-config'; +import type { TargetPullRequest } from './get-pull-request-states'; +import { getPullRequestStates } from './get-pull-request-states'; +import { getSourcePullRequest } from './get-source-pull-request'; export interface Commit { - author: SourceCommitWithTargetPullRequest['author']; + author: SourceCommitWithTargetPullRequestFragmentFragment['author']; sourceCommit: { committedDate: string; message: string; @@ -36,83 +32,8 @@ export interface Commit { targetPullRequestStates: TargetPullRequest[]; } -export interface SourcePullRequestNode { - title: string; - baseRefName: string; - url: string; - number: number; - labels: { - nodes: { - name: string; - }[]; - }; - mergeCommit?: { - remoteConfigHistory: RemoteConfigHistory['remoteConfigHistory']; - sha: string; - message: string; - }; - timelineItems: { - edges: TimelineEdge[]; - }; -} - -export type TimelineEdge = TimelinePullRequestEdge | TimelineIssueEdge; - -export interface TimelinePullRequestEdge { - node: { - targetPullRequest: { - __typename: 'PullRequest'; - url: string; - title: string; - state: 'OPEN' | 'CLOSED' | 'MERGED'; - baseRefName: string; - number: number; - - targetMergeCommit: { - sha: string; - message: string; - } | null; - - repository: { - name: string; - owner: { - login: string; - }; - }; - - commits: { - edges: Array<{ - node: { targetCommit: { message: string; sha: string } }; - }>; - }; - }; - }; -} - -interface TimelineIssueEdge { - node: { targetPullRequest: { __typename: 'Issue' } }; -} - -export type SourceCommitWithTargetPullRequest = { - repository: { - name: string; - owner: { login: string }; - }; - sha: string; - message: string; - committedDate: string; - author: { - name: string; - email: string; - }; - - associatedPullRequests: { - edges: { node: SourcePullRequestNode }[] | null; - }; -}; - function getSuggestedTargetBranches( - sourceCommit: SourceCommitWithTargetPullRequest, + sourceCommit: SourceCommitWithTargetPullRequestFragmentFragment, targetPullRequestStates: TargetPullRequest[], branchLabelMapping?: ValidConfigOptions['branchLabelMapping'], ) { @@ -134,28 +55,29 @@ export function parseSourceCommit({ sourceCommit, options, }: { - sourceCommit: SourceCommitWithTargetPullRequest; + sourceCommit: SourceCommitWithTargetPullRequestFragmentFragment; options: { branchLabelMapping?: ValidConfigOptions['branchLabelMapping']; sourceBranch: string; }; }): Commit { const sourcePullRequest = getSourcePullRequest(sourceCommit); + const sourceCommitBranchLabelMapping = getSourceCommitBranchLabelMapping(sourceCommit); - const currentBranchLabelMapping = options.branchLabelMapping; + const branchLabelMapping = + sourceCommitBranchLabelMapping ?? options.branchLabelMapping; const targetPullRequestStates = getPullRequestStates({ sourceCommit, - branchLabelMapping: - sourceCommitBranchLabelMapping ?? currentBranchLabelMapping, + branchLabelMapping, }); const suggestedTargetBranches = getSuggestedTargetBranches( sourceCommit, targetPullRequestStates, - currentBranchLabelMapping, + options.branchLabelMapping, ); return { @@ -168,7 +90,10 @@ export function parseSourceCommit({ }, sourcePullRequest: sourcePullRequest ? { - labels: sourcePullRequest.labels.nodes.map((label) => label.name), + labels: + sourcePullRequest.labels?.nodes + ?.map((label) => label?.name) + .filter(filterNil) ?? [], title: sourcePullRequest.title, number: sourcePullRequest.number, url: sourcePullRequest.url, @@ -186,8 +111,9 @@ export function parseSourceCommit({ }; } -export const SourceCommitWithTargetPullRequestFragment = gql` +export const SourceCommitWithTargetPullRequestFragment = graphql(` fragment SourceCommitWithTargetPullRequestFragment on Commit { + __typename # Source Commit repository { name @@ -220,6 +146,7 @@ export const SourceCommitWithTargetPullRequestFragment = gql` # source merge commit (the commit that actually went into the source branch) mergeCommit { + __typename ...RemoteConfigHistoryFragment sha: oid message @@ -230,11 +157,13 @@ export const SourceCommitWithTargetPullRequestFragment = gql` edges { node { ... on CrossReferencedEvent { + __typename targetPullRequest: source { __typename # Target PRs (backport PRs) ... on PullRequest { + __typename # target merge commit: the backport commit that was merged into the target branch targetMergeCommit: mergeCommit { sha: oid @@ -271,12 +200,10 @@ export const SourceCommitWithTargetPullRequestFragment = gql` } } } - - ${RemoteConfigHistoryFragment} -`; +`); function getSourceCommitBranchLabelMapping( - sourceCommit: SourceCommitWithTargetPullRequest, + sourceCommit: SourceCommitWithTargetPullRequestFragmentFragment, ): ValidConfigOptions['branchLabelMapping'] { const sourcePullRequest = getSourcePullRequest(sourceCommit); diff --git a/src/options/cliArgs.test.ts b/src/options/cli-args.test.ts similarity index 99% rename from src/options/cliArgs.test.ts rename to src/options/cli-args.test.ts index 0f4f0b49..7e9ec438 100644 --- a/src/options/cliArgs.test.ts +++ b/src/options/cli-args.test.ts @@ -1,4 +1,4 @@ -import { getRuntimeArguments, getOptionsFromCliArgs } from './cliArgs'; +import { getRuntimeArguments, getOptionsFromCliArgs } from './cli-args'; describe('getOptionsFromCliArgs', () => { describe('yargs settings', () => { diff --git a/src/options/cliArgs.ts b/src/options/cli-args.ts similarity index 98% rename from src/options/cliArgs.ts rename to src/options/cli-args.ts index b8e7c4ca..d4e8615c 100644 --- a/src/options/cliArgs.ts +++ b/src/options/cli-args.ts @@ -1,7 +1,7 @@ import yargs from 'yargs'; import yargsParser from 'yargs-parser'; -import { excludeUndefined } from '../utils/excludeUndefined'; -import { ConfigFileOptions } from './ConfigOptions'; +import { excludeUndefined } from '../utils/exclude-undefined'; +import type { ConfigFileOptions } from './config-options'; import { defaultConfigOptions } from './options'; export type OptionsFromCliArgs = ReturnType; @@ -467,7 +467,6 @@ export function getOptionsFromCliArgs(processArgs: readonly string[]) { // don't kill process upon error // and don't log error to console .fail((msg, err) => { - // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition if (err) { throw err; } diff --git a/src/options/ConfigOptions.ts b/src/options/config-options.ts similarity index 97% rename from src/options/ConfigOptions.ts rename to src/options/config-options.ts index 25869dae..df641368 100644 --- a/src/options/ConfigOptions.ts +++ b/src/options/config-options.ts @@ -1,4 +1,4 @@ -import winston from 'winston'; +import type winston from 'winston'; export interface TargetBranchChoice { name: string; @@ -38,7 +38,7 @@ type Options = Partial<{ cherrypickRef: boolean; commitConflicts: boolean; commitPaths: string[]; - copySourcePRLabels: boolean; + copySourcePRLabels: boolean | string | string[]; copySourcePRReviewers: boolean; details: boolean; dir: string; diff --git a/src/options/config/config.test.ts b/src/options/config/config.test.ts index 17543a00..0bdd8efc 100644 --- a/src/options/config/config.test.ts +++ b/src/options/config/config.test.ts @@ -1,5 +1,5 @@ import fs from 'fs/promises'; -import { mockConfigFiles } from '../../test/mockConfigFiles'; +import { mockConfigFiles } from '../../test/mock-config-files'; import { getOptionsFromConfigFiles } from './config'; describe('getOptionsFromConfigFiles', () => { diff --git a/src/options/config/config.ts b/src/options/config/config.ts index 26a6ed52..50b9ae28 100644 --- a/src/options/config/config.ts +++ b/src/options/config/config.ts @@ -1,7 +1,7 @@ -import { ConfigFileOptions } from '../ConfigOptions'; -import { OptionsFromCliArgs } from '../cliArgs'; -import { getGlobalConfig } from './globalConfig'; -import { getProjectConfig } from './projectConfig'; +import type { OptionsFromCliArgs } from '../cli-args'; +import type { ConfigFileOptions } from '../config-options'; +import { getGlobalConfig } from './global-config'; +import { getProjectConfig } from './project-config'; export type OptionsFromConfigFiles = Awaited< ReturnType diff --git a/src/options/config/globalConfig.test.ts b/src/options/config/global-config.test.ts similarity index 99% rename from src/options/config/globalConfig.test.ts rename to src/options/config/global-config.test.ts index 83b31063..936a5893 100644 --- a/src/options/config/globalConfig.test.ts +++ b/src/options/config/global-config.test.ts @@ -1,7 +1,7 @@ import fs from 'fs/promises'; import os from 'os'; import makeDir from 'make-dir'; -import { getGlobalConfig, createGlobalConfigIfNotExist } from './globalConfig'; +import { getGlobalConfig, createGlobalConfigIfNotExist } from './global-config'; describe('config', () => { afterEach(() => jest.clearAllMocks()); diff --git a/src/options/config/globalConfig.ts b/src/options/config/global-config.ts similarity index 89% rename from src/options/config/globalConfig.ts rename to src/options/config/global-config.ts index 0fb540b6..ebc51e70 100644 --- a/src/options/config/globalConfig.ts +++ b/src/options/config/global-config.ts @@ -1,10 +1,10 @@ import { chmod, writeFile } from 'fs/promises'; import makeDir from 'make-dir'; -import { BackportError } from '../../lib/BackportError'; +import { BackportError } from '../../lib/backport-error'; import { getBackportDirPath, getGlobalConfigPath } from '../../lib/env'; -import { isErrnoError } from '../../utils/isErrnoError'; -import { ConfigFileOptions } from '../ConfigOptions'; -import { readConfigFile } from './readConfigFile'; +import { isErrnoError } from '../../utils/is-errno-error'; +import type { ConfigFileOptions } from '../config-options'; +import { readConfigFile } from './read-config-file'; export async function getGlobalConfig( globalConfigFile?: string, diff --git a/src/options/config/projectConfig.test.ts b/src/options/config/project-config.test.ts similarity index 97% rename from src/options/config/projectConfig.test.ts rename to src/options/config/project-config.test.ts index 2940dd37..6ffeaac2 100644 --- a/src/options/config/projectConfig.test.ts +++ b/src/options/config/project-config.test.ts @@ -1,7 +1,7 @@ import fs from 'fs/promises'; import findUp from 'find-up'; -import { SpyHelper } from '../../types/SpyHelper'; -import { getProjectConfig } from './projectConfig'; +import type { SpyHelper } from '../../types/spy-helper'; +import { getProjectConfig } from './project-config'; describe('getProjectConfig', () => { afterEach(() => jest.clearAllMocks()); diff --git a/src/options/config/projectConfig.ts b/src/options/config/project-config.ts similarity index 77% rename from src/options/config/projectConfig.ts rename to src/options/config/project-config.ts index b0721105..5db78bc2 100644 --- a/src/options/config/projectConfig.ts +++ b/src/options/config/project-config.ts @@ -1,7 +1,7 @@ import path from 'path'; import findUp from 'find-up'; -import { ConfigFileOptions } from '../ConfigOptions'; -import { readConfigFile } from '../config/readConfigFile'; +import { readConfigFile } from '../config/read-config-file'; +import type { ConfigFileOptions } from '../config-options'; export async function getProjectConfig( projectConfigFile: string | undefined, diff --git a/src/options/config/readConfigFile.ts b/src/options/config/read-config-file.ts similarity index 86% rename from src/options/config/readConfigFile.ts rename to src/options/config/read-config-file.ts index 3d638158..6abbaaf6 100644 --- a/src/options/config/readConfigFile.ts +++ b/src/options/config/read-config-file.ts @@ -1,8 +1,9 @@ import { readFile } from 'fs/promises'; import stripJsonComments from 'strip-json-comments'; -import { BackportError } from '../../lib/BackportError'; -import { excludeUndefined } from '../../utils/excludeUndefined'; -import { ConfigFileOptions } from '../ConfigOptions'; +import { BackportError } from '../../lib/backport-error'; +import { logger } from '../../lib/logger'; +import { excludeUndefined } from '../../utils/exclude-undefined'; +import type { ConfigFileOptions } from '../config-options'; export async function readConfigFile( filepath: string, @@ -12,6 +13,7 @@ export async function readConfigFile( try { return parseConfigFile(fileContents); } catch (e) { + logger.debug(e); throw new BackportError( `"${filepath}" contains invalid JSON:\n\n${fileContents}`, ); diff --git a/src/options/options.test.ts b/src/options/options.test.ts index 732c9728..89f12846 100644 --- a/src/options/options.test.ts +++ b/src/options/options.test.ts @@ -1,13 +1,15 @@ import fs from 'fs/promises'; import os from 'os'; import nock from 'nock'; +import type { + GithubConfigOptionsQuery, + RepoOwnerAndNameQuery, +} from '../graphql/generated/graphql'; import * as git from '../lib/git'; -import { GithubConfigOptionsResponse } from '../lib/github/v4/getOptionsFromGithub/query'; -import { RepoOwnerAndNameResponse } from '../lib/github/v4/getRepoOwnerAndNameFromGitRemotes'; import * as logger from '../lib/logger'; -import { mockConfigFiles } from '../test/mockConfigFiles'; -import { mockGqlRequest } from '../test/nockHelpers'; -import { ConfigFileOptions } from './ConfigOptions'; +import { mockConfigFiles } from '../test/mock-config-files'; +import { mockUrqlRequest } from '../test/nock-helpers'; +import type { ConfigFileOptions } from './config-options'; import { getOptions } from './options'; const defaultConfigs = { @@ -508,20 +510,22 @@ function mockGithubConfigOptions({ isRepoPrivate?: boolean; headers?: Record; }) { - return mockGqlRequest({ - name: 'GithubConfigOptions', - statusCode: 200, + return mockUrqlRequest({ + operationName: 'GithubConfigOptions', + headers, body: { data: { viewer: { login: viewerLogin, }, + repository: { isPrivate: isRepoPrivate, illegalBackportBranch: hasBackportBranch ? { id: 'foo' } : null, defaultBranchRef: { name: defaultBranchRef, target: { + __typename: 'Commit', remoteConfigHistory: { edges: hasRemoteConfig ? [ @@ -529,7 +533,9 @@ function mockGithubConfigOptions({ remoteConfig: { committedDate: '2020-08-15T00:00:00.000Z', file: { + __typename: 'TreeEntry', object: { + __typename: 'Blob', text: JSON.stringify({ autoMergeMethod: 'rebase', branchLabelMapping: { @@ -548,7 +554,6 @@ function mockGithubConfigOptions({ }, }, }, - headers, }); } @@ -561,9 +566,8 @@ function mockRepoOwnerAndName({ parentRepoOwner: string; childRepoOwner: string; }) { - return mockGqlRequest({ - name: 'RepoOwnerAndName', - statusCode: 200, + return mockUrqlRequest({ + operationName: 'RepoOwnerAndName', body: { data: { repository: { diff --git a/src/options/options.ts b/src/options/options.ts index 7b0254fb..5b920f77 100644 --- a/src/options/options.ts +++ b/src/options/options.ts @@ -1,23 +1,19 @@ import chalk from 'chalk'; import { isEmpty } from 'lodash'; -import { BackportError } from '../lib/BackportError'; +import { BackportError } from '../lib/backport-error'; import { getGlobalConfigPath } from '../lib/env'; -import { - getOptionsFromGithub, - OptionsFromGithub, -} from '../lib/github/v4/getOptionsFromGithub/getOptionsFromGithub'; -import { getRepoOwnerAndNameFromGitRemotes } from '../lib/github/v4/getRepoOwnerAndNameFromGitRemotes'; +import { getRepoOwnerAndNameFromGitRemotes } from '../lib/github/v4/get-repo-owner-and-name-from-git-remotes'; +import { getOptionsFromGithub } from '../lib/github/v4/getOptionsFromGithub/get-options-from-github'; +import type { OptionsFromGithub } from '../lib/github/v4/getOptionsFromGithub/get-options-from-github'; import { setAccessToken } from '../lib/logger'; -import { +import type { OptionsFromCliArgs } from './cli-args'; +import type { OptionsFromConfigFiles } from './config/config'; +import { getOptionsFromConfigFiles } from './config/config'; +import type { ConfigFileOptions, TargetBranchChoiceOrString, DirectoryChoiceOrString, -} from './ConfigOptions'; -import { OptionsFromCliArgs } from './cliArgs'; -import { - getOptionsFromConfigFiles, - OptionsFromConfigFiles, -} from './config/config'; +} from './config-options'; const PROJECT_CONFIG_DOCS_LINK = 'https://github.com/sorenlouv/backport/blob/main/docs/config-file-options.md#project-config-backportrcjson'; @@ -38,7 +34,7 @@ export const defaultConfigOptions = { cherrypickRef: true, commitConflicts: false, commitPaths: [] as Array, - copySourcePRLabels: false, + copySourcePRLabels: false as boolean | string | string[], copySourcePRReviewers: false, cwd: process.cwd(), dateSince: null, diff --git a/src/scripts/binary.integration.test.ts b/src/scripts/binary.integration.test.ts new file mode 100644 index 00000000..a84a5ef8 --- /dev/null +++ b/src/scripts/binary.integration.test.ts @@ -0,0 +1,103 @@ +import { execSync, spawnSync } from 'child_process'; +import fs from 'fs'; +import os from 'os'; +import path from 'path'; +import { getYarnCommand } from '../test/integration-test-helpers'; + +// Integration test to verify that the `bin` field in package.json exposes a working `backport` CLI. +// Strategy: +// 1. Pack the current project into a tarball (yarn pack) (assumes build already done by prepublish scripts or tests environment) +// 2. Create a fresh temp project and install the tarball with yarn add file: +// 3. Assert that node_modules/.bin/backport exists and is executable +// 4. Run `backport --version` and compare output with package.json version +// 5. (Smoke) Run `backport --help` to ensure it exits 0 (no interactive prompt) + +describe('binary backport file', () => { + let workDir: string; // consumer project + let packDir: string; // directory holding tarball + let tarballPath: string; + let version: string; + let repoRoot: string; + let binPath: string; + + jest.setTimeout(120_000); + + beforeAll(() => { + repoRoot = path.resolve(__dirname, '../..'); + + // read version early + const pkgJson = JSON.parse( + fs.readFileSync(path.join(repoRoot, 'package.json'), 'utf8'), + ); + version = pkgJson.version; + + workDir = fs.mkdtempSync(path.join(os.tmpdir(), 'backport-bin-consumer-')); + packDir = fs.mkdtempSync(path.join(os.tmpdir(), 'backport-bin-pack-')); + tarballPath = path.join(packDir, 'backport.tgz'); + + // pack project; rely on repo having been built as with other integration tests + const yarnCommand = getYarnCommand(); + execSync(`${yarnCommand} pack --filename ${tarballPath}`, { + cwd: repoRoot, + stdio: 'ignore', + }); + + // create consumer package.json + fs.writeFileSync( + path.join(workDir, 'package.json'), + JSON.stringify({ name: 'consumer-project', private: true }, null, 2), + ); + + // install tarball (this creates node_modules/.bin/backport symlink / shim) + // Use resolved yarn binary to avoid asdf shim issues + execSync(`${yarnCommand} add file:${tarballPath}`, { + cwd: workDir, + stdio: 'ignore', + }); + + binPath = path.join(workDir, 'node_modules', '.bin', 'backport'); + }); + + afterAll(() => { + try { + fs.rmSync(workDir, { recursive: true, force: true }); + fs.rmSync(packDir, { recursive: true, force: true }); + } catch { + // ignore cleanup errors + } + }); + + it('creates the CLI binary in node_modules/.bin', () => { + expect(fs.existsSync(binPath)).toBe(true); + const stat = fs.statSync(binPath); + // at least one execute bit set (symlink or wrapper script) + expect((stat.mode & 0o111) !== 0).toBe(true); + }); + + it('reports correct version with --version', () => { + const res = spawnSync(binPath, ['--version'], { + cwd: workDir, + encoding: 'utf8', + env: { ...process.env, CI: 'true' }, + shell: false, + timeout: 15_000, + }); + if (res.error) throw res.error; + expect(res.status).toBe(0); + expect(res.stdout.trim()).toBe(version); + }); + + it('shows help with --help (smoke test)', () => { + const res = spawnSync(binPath, ['--help'], { + cwd: workDir, + encoding: 'utf8', + env: { ...process.env, CI: 'true' }, + shell: false, + timeout: 15_000, + }); + if (res.error) throw res.error; + expect(res.status).toBe(0); + // Basic sanity: Should mention backport or usage + expect(res.stdout.toLowerCase()).toContain('backport'); + }); +}); diff --git a/src/scripts/postinstall.integration.test.ts b/src/scripts/postinstall.integration.test.ts new file mode 100644 index 00000000..742fccd3 --- /dev/null +++ b/src/scripts/postinstall.integration.test.ts @@ -0,0 +1,111 @@ +import { execSync } from 'child_process'; +import fs from 'fs'; +import os from 'os'; +import path from 'path'; +import { parseConfigFile } from '../options/config/read-config-file'; +import { getYarnCommand } from '../test/integration-test-helpers'; + +// This test performs an end-to-end verification that the published package's +// postinstall script executes and creates the expected ~/.backport/config.json +// file with the correct permissions and template content. +// +// It does so by: +// 1. Building the project (so dist/ exists) +// 2. Packing the project into a tarball with `yarn pack` +// 3. Creating a temporary consumer project +// 4. Overriding HOME for the install so the script writes into an isolated dir +// 5. Installing the packed tarball via `yarn add file:` +// 6. Asserting that ~/.backport/config.json now exists with mode 600 + +describe('postinstall (integration)', () => { + let fakeHomeDir: string; + let workDir: string; + let tarballPath: string; + + // Building & packing can be slow + jest.setTimeout(120_000); + + beforeAll(() => { + const repoRoot = path.resolve(__dirname, '../..'); + workDir = fs.mkdtempSync(path.join(os.tmpdir(), 'backport-consumer-')); + const packDir = fs.mkdtempSync(path.join(os.tmpdir(), 'backport-pack-')); + tarballPath = path.join(packDir, 'backport.tgz'); + + // 2. Pack the project to a predictable filename inside a temp directory + const yarnCommand = getYarnCommand(); + execSync(`${yarnCommand} pack --filename ${tarballPath}`, { + cwd: repoRoot, + stdio: 'ignore', + }); + + // 3. Create consumer project working directory + fs.writeFileSync( + path.join(workDir, 'package.json'), + JSON.stringify({ name: 'consumer-project', private: true }, null, 2), + ); + + // 4. Prepare fake HOME directory + fakeHomeDir = path.join(workDir, 'fake-home'); + fs.mkdirSync(fakeHomeDir, { recursive: true }); + + // 5. Install the packed tarball (this should trigger postinstall) + // Use resolved yarn binary to avoid asdf shim issues when HOME is overridden + execSync(`${yarnCommand} add file:${tarballPath}`, { + cwd: workDir, + env: { + ...process.env, + // Override HOME so os.homedir() inside the installed package resolves here + HOME: fakeHomeDir, + }, + stdio: 'ignore', + }); + }); + + it('creates ~/.backport/config.json', () => { + const configPath = path.join(fakeHomeDir, '.backport', 'config.json'); + expect(fs.existsSync(configPath)).toBe(true); + + const content = fs.readFileSync(configPath, 'utf8'); + // Basic shape: contains the accessToken field (empty string template) + expect(content).toContain('"accessToken"'); + + const stat = fs.statSync(configPath); + // Mask to permission bits and ensure 0600 (owner read/write only) + const mode = stat.mode & 0o777; + expect(mode).toBe(0o600); + }); + + it('does not overwrite existing config file', () => { + // Create a new home directory with an existing config + const newFakeHomeDir = path.join(workDir, 'fake-home-existing-config'); + fs.mkdirSync(path.join(newFakeHomeDir, '.backport'), { recursive: true }); + + const configPath = path.join(newFakeHomeDir, '.backport', 'config.json'); + const customContent = + '{"accessToken": "test-token", "customSetting": true}'; + fs.writeFileSync(configPath, customContent); + + // Install again with the new HOME + // Use resolved yarn binary to avoid asdf shim issues when HOME is overridden + const yarnCommand = getYarnCommand(); + execSync(`${yarnCommand} add file:${tarballPath}`, { + cwd: workDir, + env: { + ...process.env, + HOME: newFakeHomeDir, + }, + stdio: 'ignore', + }); + + // Config file should still have our custom content + const content = fs.readFileSync(configPath, 'utf8'); + expect(content).toBe(customContent); + }); + + it('creates config with the expected template content', async () => { + const configPath = path.join(fakeHomeDir, '.backport', 'config.json'); + const content = fs.readFileSync(configPath, 'utf8'); + const config = parseConfigFile(content); + expect(config).toEqual({ accessToken: '' }); + }); +}); diff --git a/src/scripts/postinstall.test.ts b/src/scripts/postinstall.test.ts index e6cf721f..b692944a 100644 --- a/src/scripts/postinstall.test.ts +++ b/src/scripts/postinstall.test.ts @@ -1,6 +1,6 @@ import os from 'os'; import * as logger from '../lib/logger'; -import * as globalConfig from '../options/config/globalConfig'; +import * as globalConfig from '../options/config/global-config'; import { postinstall } from './postinstall'; describe('postinstall', () => { diff --git a/src/scripts/postinstall.ts b/src/scripts/postinstall.ts index 5ec7c621..6358f0d8 100644 --- a/src/scripts/postinstall.ts +++ b/src/scripts/postinstall.ts @@ -1,6 +1,6 @@ import { getGlobalConfigPath } from '../lib/env'; import { consoleLog } from '../lib/logger'; -import { createGlobalConfigAndFolderIfNotExist } from '../options/config/globalConfig'; +import { createGlobalConfigAndFolderIfNotExist } from '../options/config/global-config'; export async function postinstall() { try { @@ -11,7 +11,7 @@ export async function postinstall() { consoleLog(`Global config successfully created in ${globalConfigPath}`); } } catch (e) { - // @ts-expect-error + // @ts-expect-error: assume error consoleLog(`Global config could not be created:\n${e.stack}`); } } diff --git a/src/scripts/runPostinstall.ts b/src/scripts/run-postinstall.ts similarity index 69% rename from src/scripts/runPostinstall.ts rename to src/scripts/run-postinstall.ts index 9e82f3cc..0bd8a181 100755 --- a/src/scripts/runPostinstall.ts +++ b/src/scripts/run-postinstall.ts @@ -1,3 +1,3 @@ import { postinstall } from './postinstall'; -postinstall(); +void postinstall(); diff --git a/src/test/childProcessHelper.ts b/src/test/child-process-helper.ts similarity index 100% rename from src/test/childProcessHelper.ts rename to src/test/child-process-helper.ts diff --git a/src/test/e2e/cli/binary.private.test.ts b/src/test/e2e/cli/binary.private.test.ts new file mode 100644 index 00000000..17d9b431 --- /dev/null +++ b/src/test/e2e/cli/binary.private.test.ts @@ -0,0 +1,60 @@ +import { spawnSync } from 'child_process'; +import fs from 'fs'; +import path from 'path'; +import stripAnsi from 'strip-ansi'; +import pkg from '../../../../package.json'; +import { getDevAccessToken } from '../../private/get-dev-access-token'; + +const accessToken = getDevAccessToken(); + +describe('CLI “backport” binary', () => { + const binPath = path.resolve(__dirname, '../../../../bin/backport'); + + beforeAll(() => { + // ensure dist folder exists + const distPath = path.resolve(__dirname, '../../../../dist'); + if (!fs.existsSync(distPath)) { + throw new Error(`Please run "yarn build" before running this test.`); + } + }); + + it('exists and is executable', () => { + expect(fs.existsSync(binPath)).toBe(true); + const fileContent = fs.readFileSync(binPath, 'utf8'); + expect(fileContent).toContain('#!/usr/bin/env node'); + }); + + it('prints version with `--version`', () => { + const result = spawnSync('node', [binPath, '--version'], { + encoding: 'utf8', + }); + expect(result.status).toBe(0); + expect(result.stdout.trim()).toBe(pkg.version); + }); + + it('list commits', () => { + const result = spawnSync( + 'node', + [binPath, '--repo', 'elastic/kibana', `--accessToken`, accessToken], + { + encoding: 'utf8', + }, + ); + + const strippedStdout = stripAnsi(result.stdout); + expect(result.status).toBe(0); + expect(strippedStdout).toContain('repo: elastic/kibana'); + expect(strippedStdout).toContain('Select commit'); + }); + + it('displays help section', () => { + const result = spawnSync('node', [binPath, '--help'], { + encoding: 'utf8', + }); + + const strippedStdout = stripAnsi(result.stdout); + expect(result.status).toBe(0); + expect(strippedStdout).toContain('backport [args]'); + expect(strippedStdout).toContain('-v, --version'); + }); +}); diff --git a/src/test/e2e/cli/commit-author.private.test.ts b/src/test/e2e/cli/commit-author.private.test.ts index 53aafe97..23636722 100644 --- a/src/test/e2e/cli/commit-author.private.test.ts +++ b/src/test/e2e/cli/commit-author.private.test.ts @@ -1,7 +1,7 @@ -import { exec } from '../../childProcessHelper'; -import { getDevAccessToken } from '../../private/getDevAccessToken'; +import { exec } from '../../child-process-helper'; +import { getDevAccessToken } from '../../private/get-dev-access-token'; import { getSandboxPath, resetSandbox } from '../../sandbox'; -import { runBackportViaCli } from './runBackportViaCli'; +import { runBackportViaCli } from './run-backport-via-cli'; const accessToken = getDevAccessToken(); diff --git a/src/test/e2e/cli/copy-reviewers-to-target-pull-request.private.test.ts b/src/test/e2e/cli/copy-reviewers-to-target-pull-request.private.test.ts index 351c3afd..1069b744 100644 --- a/src/test/e2e/cli/copy-reviewers-to-target-pull-request.private.test.ts +++ b/src/test/e2e/cli/copy-reviewers-to-target-pull-request.private.test.ts @@ -1,7 +1,7 @@ import { Octokit } from '@octokit/rest'; -import { SuccessResult } from '../../../entrypoint.api'; -import { getDevAccessToken } from '../../private/getDevAccessToken'; -import { runBackportViaCli } from './runBackportViaCli'; +import type { SuccessResult } from '../../../entrypoint.api'; +import { getDevAccessToken } from '../../private/get-dev-access-token'; +import { runBackportViaCli } from './run-backport-via-cli'; const accessToken = getDevAccessToken(); const octokit = new Octokit({ auth: accessToken }); diff --git a/src/test/e2e/cli/date-filters.private.test.ts b/src/test/e2e/cli/date-filters.private.test.ts index 0216afcc..91b430ae 100644 --- a/src/test/e2e/cli/date-filters.private.test.ts +++ b/src/test/e2e/cli/date-filters.private.test.ts @@ -1,5 +1,5 @@ -import { getDevAccessToken } from '../../private/getDevAccessToken'; -import { runBackportViaCli } from './runBackportViaCli'; +import { getDevAccessToken } from '../../private/get-dev-access-token'; +import { runBackportViaCli } from './run-backport-via-cli'; const accessToken = getDevAccessToken(); jest.setTimeout(15_000); diff --git a/src/test/e2e/cli/different-merge-strategies.private.test.ts b/src/test/e2e/cli/different-merge-strategies.private.test.ts index d6f0b4c1..faa5b989 100644 --- a/src/test/e2e/cli/different-merge-strategies.private.test.ts +++ b/src/test/e2e/cli/different-merge-strategies.private.test.ts @@ -1,9 +1,9 @@ import fs from 'fs/promises'; -import { exec } from '../../childProcessHelper'; -import { getDevAccessToken } from '../../private/getDevAccessToken'; -import { removeLinesBreaksInConflictingFiles } from '../../replaceStringAndLinebreaks'; +import { exec } from '../../child-process-helper'; +import { getDevAccessToken } from '../../private/get-dev-access-token'; +import { removeLinesBreaksInConflictingFiles } from '../../replace-string-and-linebreaks'; import { getSandboxPath, resetSandbox } from '../../sandbox'; -import { runBackportViaCli } from './runBackportViaCli'; +import { runBackportViaCli } from './run-backport-via-cli'; const accessToken = getDevAccessToken(); jest.setTimeout(40_000); @@ -17,7 +17,7 @@ describe('different-merge-strategies', () => { `--accessToken=${accessToken}`, '-n=20', ], - { waitForString: 'Select commit', timeoutSeconds: 4 }, + { waitForString: 'Select commit' }, ); expect(output).toMatchInlineSnapshot(` @@ -63,7 +63,7 @@ describe('different-merge-strategies', () => { '--pr=9', '--dry-run', ], - { showOra: true, timeoutSeconds: 5 }, + { showOra: true }, ); output = res.output; }); @@ -161,7 +161,6 @@ View pull request: this-is-a-dry-run" ], { keepAlive: true, - timeoutSeconds: 5, showOra: true, waitForString: 'Press ENTER when the conflicts are resolved and files are staged', @@ -178,7 +177,6 @@ View pull request: this-is-a-dry-run" await exec(`git add -A`, { cwd: sandboxPath }); const res = await proc.keypress('enter', { showOra: true, - timeoutSeconds: 5, }); output = removeLinesBreaksInConflictingFiles(res.output).replaceAll( @@ -297,5 +295,5 @@ async function listCommits(sandboxPath: string) { cwd: sandboxPath, }); - return stdout.split('\n'); + return (stdout as string).split('\n'); } diff --git a/src/test/e2e/cli/entrypoint.cli.private.test.ts b/src/test/e2e/cli/entrypoint.cli.private.test.ts index e4efada2..9ee927bd 100644 --- a/src/test/e2e/cli/entrypoint.cli.private.test.ts +++ b/src/test/e2e/cli/entrypoint.cli.private.test.ts @@ -1,10 +1,10 @@ -import * as packageVersion from '../../../utils/packageVersion'; -import { exec } from '../../childProcessHelper'; -import { getDevAccessToken } from '../../private/getDevAccessToken'; +import * as packageVersionModule from '../../../utils/package-version'; +import { exec } from '../../child-process-helper'; +import { getDevAccessToken } from '../../private/get-dev-access-token'; import { getSandboxPath, resetSandbox } from '../../sandbox'; -import { runBackportViaCli } from './runBackportViaCli'; +import { runBackportViaCli } from './run-backport-via-cli'; -jest.setTimeout(10_000); +jest.setTimeout(15_000); const accessToken = getDevAccessToken(); describe('entrypoint cli', () => { @@ -25,7 +25,7 @@ describe('entrypoint cli', () => { it('PACKAGE_VERSION should match', async () => { // @ts-expect-error - expect(packageVersion.UNMOCKED_PACKAGE_VERSION).toBe( + expect(packageVersionModule.UNMOCKED_PACKAGE_VERSION).toBe( process.env.npm_package_version, ); }); diff --git a/src/test/e2e/cli/error-handling-interactive-mode.private.test.ts b/src/test/e2e/cli/error-handling-interactive-mode.private.test.ts index 9a4f1914..b0ee401d 100644 --- a/src/test/e2e/cli/error-handling-interactive-mode.private.test.ts +++ b/src/test/e2e/cli/error-handling-interactive-mode.private.test.ts @@ -1,7 +1,7 @@ -import { getDevAccessToken } from '../../private/getDevAccessToken'; -import { removeLinesBreaksInConflictingFiles } from '../../replaceStringAndLinebreaks'; +import { getDevAccessToken } from '../../private/get-dev-access-token'; +import { removeLinesBreaksInConflictingFiles } from '../../replace-string-and-linebreaks'; import { getSandboxPath, resetSandbox } from '../../sandbox'; -import { runBackportViaCli } from './runBackportViaCli'; +import { runBackportViaCli } from './run-backport-via-cli'; const accessToken = getDevAccessToken(); jest.setTimeout(15_000); @@ -79,7 +79,6 @@ describe('interactive error handling', () => { ], { waitForString: 'Press ENTER when the conflicts', - timeoutSeconds: 5, }, ); diff --git a/src/test/e2e/cli/error-handling-non-interactive-mode.private.test.ts b/src/test/e2e/cli/error-handling-non-interactive-mode.private.test.ts index eebe7b29..9ddd7e14 100644 --- a/src/test/e2e/cli/error-handling-non-interactive-mode.private.test.ts +++ b/src/test/e2e/cli/error-handling-non-interactive-mode.private.test.ts @@ -1,14 +1,14 @@ import fs from 'fs/promises'; import path from 'path'; -import { +import type { BackportAbortResponse, BackportFailureResponse, BackportSuccessResponse, -} from '../../../backportRun'; -import { ConfigFileOptions } from '../../../entrypoint.api'; -import { getDevAccessToken } from '../../private/getDevAccessToken'; +} from '../../../backport-run'; +import type { ConfigFileOptions } from '../../../entrypoint.api'; +import { getDevAccessToken } from '../../private/get-dev-access-token'; import { getSandboxPath, resetSandbox } from '../../sandbox'; -import { runBackportViaCli } from './runBackportViaCli'; +import { runBackportViaCli } from './run-backport-via-cli'; const accessToken = getDevAccessToken(); jest.setTimeout(15_000); @@ -166,7 +166,7 @@ describe('non interactive (json) error handling', () => { const backportResult = JSON.parse(output) as BackportFailureResponse; expect(backportResult.status).toEqual('failure'); expect(backportResult.errorMessage).toEqual( - 'Could not resolve to a PullRequest with the number of 900. (Github API v4)', + '[GraphQL] Could not resolve to a PullRequest with the number of 900. (Github API v4)', ); }); diff --git a/src/test/e2e/cli/gracefully-handles-corrupt-repo.private.test.ts b/src/test/e2e/cli/gracefully-handles-corrupt-repo.private.test.ts index d6d30444..c7dd2c4d 100644 --- a/src/test/e2e/cli/gracefully-handles-corrupt-repo.private.test.ts +++ b/src/test/e2e/cli/gracefully-handles-corrupt-repo.private.test.ts @@ -1,7 +1,7 @@ -import { exec } from '../../childProcessHelper'; -import { getDevAccessToken } from '../../private/getDevAccessToken'; +import { exec } from '../../child-process-helper'; +import { getDevAccessToken } from '../../private/get-dev-access-token'; import { getSandboxPath, resetSandbox } from '../../sandbox'; -import { runBackportViaCli } from './runBackportViaCli'; +import { runBackportViaCli } from './run-backport-via-cli'; const accessToken = getDevAccessToken(); jest.setTimeout(25_000); @@ -23,7 +23,6 @@ describe('gracefully handle corrupted repo', () => { ], { showOra: true, - timeoutSeconds: 10, }, ); @@ -42,7 +41,6 @@ describe('gracefully handle corrupted repo', () => { ], { showOra: true, - timeoutSeconds: 10, }, ); diff --git a/src/test/e2e/cli/repo-with-backportrc-removed.private.test.ts b/src/test/e2e/cli/repo-with-backportrc-removed.private.test.ts index e1803b42..fea05cf4 100644 --- a/src/test/e2e/cli/repo-with-backportrc-removed.private.test.ts +++ b/src/test/e2e/cli/repo-with-backportrc-removed.private.test.ts @@ -1,5 +1,5 @@ -import { getDevAccessToken } from '../../private/getDevAccessToken'; -import { runBackportViaCli } from './runBackportViaCli'; +import { getDevAccessToken } from '../../private/get-dev-access-token'; +import { runBackportViaCli } from './run-backport-via-cli'; const accessToken = getDevAccessToken(); describe('repo-with-backportrc-removed (missing .backportrc.json config file)', () => { diff --git a/src/test/e2e/cli/repo-with-changing-branchLabelMapping.private.test.ts b/src/test/e2e/cli/repo-with-changing-branch-label-mapping.private.test.ts similarity index 94% rename from src/test/e2e/cli/repo-with-changing-branchLabelMapping.private.test.ts rename to src/test/e2e/cli/repo-with-changing-branch-label-mapping.private.test.ts index f237b2db..aa907b15 100644 --- a/src/test/e2e/cli/repo-with-changing-branchLabelMapping.private.test.ts +++ b/src/test/e2e/cli/repo-with-changing-branch-label-mapping.private.test.ts @@ -1,6 +1,6 @@ -import { Commit } from '../../../entrypoint.api'; -import { getDevAccessToken } from '../../private/getDevAccessToken'; -import { runBackportViaCli } from './runBackportViaCli'; +import type { Commit } from '../../../entrypoint.api'; +import { getDevAccessToken } from '../../private/get-dev-access-token'; +import { runBackportViaCli } from './run-backport-via-cli'; const accessToken = getDevAccessToken(); jest.setTimeout(15_000); diff --git a/src/test/e2e/cli/repo-with-programatically-added-commits.mutation.test.ts b/src/test/e2e/cli/repo-with-programatically-added-commits.mutation.test.ts index 1731a317..616fa676 100644 --- a/src/test/e2e/cli/repo-with-programatically-added-commits.mutation.test.ts +++ b/src/test/e2e/cli/repo-with-programatically-added-commits.mutation.test.ts @@ -1,8 +1,7 @@ -/* eslint-disable no-console */ import { Octokit } from '@octokit/rest'; -import { getDevAccessToken } from '../../private/getDevAccessToken'; +import { getDevAccessToken } from '../../private/get-dev-access-token'; import { getSandboxPath, resetSandbox } from '../../sandbox'; -import { runBackportViaCli } from './runBackportViaCli'; +import { runBackportViaCli } from './run-backport-via-cli'; jest.setTimeout(25_000); const accessToken = getDevAccessToken(); diff --git a/src/test/e2e/cli/runBackportViaCli.ts b/src/test/e2e/cli/run-backport-via-cli.ts similarity index 95% rename from src/test/e2e/cli/runBackportViaCli.ts rename to src/test/e2e/cli/run-backport-via-cli.ts index 75552f77..ba3ccae7 100644 --- a/src/test/e2e/cli/runBackportViaCli.ts +++ b/src/test/e2e/cli/run-backport-via-cli.ts @@ -1,4 +1,5 @@ -import { ChildProcessWithoutNullStreams, spawn } from 'child_process'; +import type { ChildProcessWithoutNullStreams } from 'child_process'; +import { spawn } from 'child_process'; import path from 'path'; import { debounce } from 'lodash'; import stripAnsi from 'strip-ansi'; @@ -17,7 +18,7 @@ type RunBackportOptions = { keepAlive?: boolean; }; -export function runBackportViaCli( +export async function runBackportViaCli( backportArgs: string[], runBackportOptions: RunBackportOptions = {}, ) { @@ -27,7 +28,7 @@ export function runBackportViaCli( filename: __filename, specname: randomString, }); - resetSandbox(sandboxPath); + await resetSandbox(sandboxPath); const cmdArgs = [ '--transpile-only', @@ -63,7 +64,7 @@ function getPromise( } const { - timeoutSeconds = 3, + timeoutSeconds = 10, waitForString, showOra, keepAlive, diff --git a/src/test/e2e/cli/test-that-repo-can-be-cloned.private.test.ts b/src/test/e2e/cli/test-that-repo-can-be-cloned.private.test.ts index d1c4d401..e5103fc8 100644 --- a/src/test/e2e/cli/test-that-repo-can-be-cloned.private.test.ts +++ b/src/test/e2e/cli/test-that-repo-can-be-cloned.private.test.ts @@ -1,7 +1,7 @@ -import { exec } from '../../childProcessHelper'; -import { getDevAccessToken } from '../../private/getDevAccessToken'; +import { exec } from '../../child-process-helper'; +import { getDevAccessToken } from '../../private/get-dev-access-token'; import { getSandboxPath, resetSandbox } from '../../sandbox'; -import { runBackportViaCli } from './runBackportViaCli'; +import { runBackportViaCli } from './run-backport-via-cli'; const accessToken = getDevAccessToken(); jest.setTimeout(15_000); diff --git a/src/test/e2e/module/entrypoint.module.mutation.test.ts b/src/test/e2e/module/entrypoint.module.mutation.test.ts index d95c939b..cb741c0f 100644 --- a/src/test/e2e/module/entrypoint.module.mutation.test.ts +++ b/src/test/e2e/module/entrypoint.module.mutation.test.ts @@ -1,7 +1,8 @@ import { Octokit } from '@octokit/rest'; -import { BackportResponse, backportRun } from '../../../entrypoint.api'; -import { getShortSha } from '../../../lib/github/commitFormatters'; -import { getDevAccessToken } from '../../private/getDevAccessToken'; +import type { BackportResponse } from '../../../entrypoint.api'; +import { backportRun } from '../../../entrypoint.api'; +import { getShortSha } from '../../../lib/github/commit-formatters'; +import { getDevAccessToken } from '../../private/get-dev-access-token'; import { getSandboxPath, resetSandbox } from '../../sandbox'; jest.unmock('find-up'); @@ -381,7 +382,6 @@ async function getBranchesOnGithub({ repoOwner: string; repoName: string; }) { - // console.log(`fetch branches for ${repoOwner}`); const octokit = new Octokit({ auth: accessToken, }); @@ -409,7 +409,6 @@ async function deleteBranchOnGithub({ const octokit = new Octokit({ auth: accessToken, }); - // console.log({ accessToken }); const opts = { owner: repoOwner, @@ -419,14 +418,8 @@ async function deleteBranchOnGithub({ const res = await octokit.git.deleteRef(opts); - // console.log(`Deleted ${repoOwner}:heads/${branchName}`); - return res.data; } catch (e) { - // console.log( - // `Could not delete ${repoOwner}:heads/${branchName} (${e.message})` - // ); - //@ts-expect-error if (e.message === 'Reference does not exist') { return; diff --git a/src/test/handleUnbackportedPullRequests.private.test.ts b/src/test/handle-unbackported-pull-requests.private.test.ts similarity index 92% rename from src/test/handleUnbackportedPullRequests.private.test.ts rename to src/test/handle-unbackported-pull-requests.private.test.ts index a260f6e6..0a00251a 100644 --- a/src/test/handleUnbackportedPullRequests.private.test.ts +++ b/src/test/handle-unbackported-pull-requests.private.test.ts @@ -1,5 +1,6 @@ -import { getCommits, backportRun, Commit } from '../entrypoint.api'; -import { getDevAccessToken } from './private/getDevAccessToken'; +import type { Commit } from '../entrypoint.api'; +import { getCommits, backportRun } from '../entrypoint.api'; +import { getDevAccessToken } from './private/get-dev-access-token'; import { getSandboxPath, resetSandbox } from './sandbox'; const accessToken = getDevAccessToken(); diff --git a/src/test/integration-test-helpers.ts b/src/test/integration-test-helpers.ts new file mode 100644 index 00000000..16a19cba --- /dev/null +++ b/src/test/integration-test-helpers.ts @@ -0,0 +1,64 @@ +import { execFileSync } from 'child_process'; +import fs from 'fs'; +import os from 'os'; + +/** + * Gets the actual yarn binary path, bypassing asdf shims. + * + * When tests override HOME, `yarn` resolves to the asdf shim which fails because + * it can't find `asdf` in PATH. This function uses `asdf which yarn` to get the + * actual binary path (e.g., `~/.asdf/installs/yarn/1.22.22/bin/yarn`) instead of + * the shim wrapper. + * + * @returns The path to the yarn binary if managed by asdf, or 'yarn' to use from PATH + */ +export function getYarnCommand(): string { + try { + const asdfPath = findAsdfExecutable(); + + if (asdfPath) { + // Use asdf to resolve the actual yarn binary path (bypasses the shim) + const asdfYarnPath = execFileSync(asdfPath, ['which', 'yarn'], { + encoding: 'utf8', + stdio: ['ignore', 'pipe', 'ignore'], + }).trim(); + if (asdfYarnPath && fs.existsSync(asdfYarnPath)) { + return asdfYarnPath; + } + } + } catch { + // asdf not available or yarn not managed by asdf, use 'yarn' from PATH + } + return 'yarn'; +} + +/** + * Finds the asdf executable binary, resolving symlinks. + * + * Uses `which asdf` to locate it in PATH, then resolves symlinks (e.g., Homebrew + * installs symlink in /opt pointing to /Cellar). + * + * @returns The resolved path to the asdf binary, or undefined if not found + */ +function findAsdfExecutable(): string | undefined { + try { + // Find asdf using 'which' command (works on Unix-like systems) + // On Windows, use 'where' instead + const whichCommand = os.platform() === 'win32' ? 'where' : 'which'; + const asdfPath = execFileSync(whichCommand, ['asdf'], { + encoding: 'utf8', + stdio: ['ignore', 'pipe', 'ignore'], + }).trim(); + + if (!asdfPath) { + return undefined; + } + + // Resolve symlinks to get the actual binary location + // This handles cases where asdf is installed via Homebrew (symlinked to Cellar) + return fs.realpathSync(asdfPath); + } catch { + // asdf not found in PATH + return undefined; + } +} diff --git a/src/test/mockConfigFiles.ts b/src/test/mock-config-files.ts similarity index 88% rename from src/test/mockConfigFiles.ts rename to src/test/mock-config-files.ts index 67a34033..5e2cc099 100644 --- a/src/test/mockConfigFiles.ts +++ b/src/test/mock-config-files.ts @@ -1,5 +1,5 @@ import fs from 'fs/promises'; -import { ConfigFileOptions } from '../options/ConfigOptions'; +import type { ConfigFileOptions } from '../options/config-options'; export function mockConfigFiles({ projectConfig, diff --git a/src/test/nock-helpers.ts b/src/test/nock-helpers.ts new file mode 100644 index 00000000..df1d4436 --- /dev/null +++ b/src/test/nock-helpers.ts @@ -0,0 +1,62 @@ +import { URL } from 'url'; +import { disableFragmentWarnings } from 'graphql-tag'; +import nock from 'nock'; + +disableFragmentWarnings(); + +// Interface for the typical GraphQL request payload Urql sends +interface GraphQLRequestBody> { + query: string; + variables?: TVariables; + operationName?: string; +} + +// Interface for the expected structure of captured calls +export interface CapturedCall> { + query: string; + variables?: TVariables; + operationName?: string; +} + +export function mockUrqlRequest>({ + operationName, + statusCode = 200, + body, + headers, + apiBaseUrl = 'http://localhost/graphql', +}: { + operationName: string; + statusCode?: number; + body?: { data: TData } | { errors: ReadonlyArray }; + headers?: nock.ReplyHeaders; + apiBaseUrl?: string; +}) { + const { origin, pathname } = new URL(apiBaseUrl); + + const scope = nock(origin) + .post( + pathname, + (requestBody: GraphQLRequestBody) => + requestBody.operationName === operationName, + ) + .reply(statusCode, body, headers); + + return listenForCallsToNockScope(scope); +} + +export function listenForCallsToNockScope( + scope: nock.Scope, +): CapturedCall[] { + const calls: CapturedCall[] = []; + scope.on('request', (req, interceptor, bodyString) => { + try { + calls.push(JSON.parse(bodyString)); + } catch (e) { + console.error('Failed to parse nock request body:', bodyString, e); + // Push raw body if parsing fails, or handle as appropriate + calls.push(bodyString as any); + } + }); + + return calls; +} diff --git a/src/test/nockHelpers.ts b/src/test/nockHelpers.ts deleted file mode 100644 index db67978a..00000000 --- a/src/test/nockHelpers.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { URL } from 'url'; -import gql from 'graphql-tag'; -import { disableFragmentWarnings } from 'graphql-tag'; -import nock from 'nock'; -import { getQueryName } from '../lib/github/v4/apiRequestV4'; - -disableFragmentWarnings(); - -export function mockGqlRequest({ - name, - statusCode, - body, - headers, - apiBaseUrl, -}: { - name: string; - statusCode: number; - body?: { data: T } | { errors: any[] }; - headers?: any; - apiBaseUrl?: string; -}) { - const { origin, pathname } = new URL( - // default to localhost as host to avoid CORS issues - // Remember to set `githubApiBaseUrlV4: 'http://localhost/graphql'` in options - apiBaseUrl ?? 'http://localhost/graphql', - ); - - const scope = nock(origin) - .post(pathname, (body) => getQueryName(gql(body.query)) === name) - .reply(statusCode, body, headers); - - return listenForCallsToNockScope(scope) as { - query: string; - variables: string; - }[]; -} - -export function listenForCallsToNockScope(scope: nock.Scope) { - const calls: unknown[] = []; - scope.on('request', (req, interceptor, body) => { - calls.push(JSON.parse(body)); - }); - return calls; -} diff --git a/src/test/private/getDevAccessToken.ts b/src/test/private/get-dev-access-token.ts similarity index 100% rename from src/test/private/getDevAccessToken.ts rename to src/test/private/get-dev-access-token.ts diff --git a/src/test/replaceStringAndLinebreaks.ts b/src/test/replace-string-and-linebreaks.ts similarity index 100% rename from src/test/replaceStringAndLinebreaks.ts rename to src/test/replace-string-and-linebreaks.ts diff --git a/src/test/setupFiles/automatic-mocks.ts b/src/test/setupFiles/automatic-mocks.ts index 9ce301a6..b1a9273e 100644 --- a/src/test/setupFiles/automatic-mocks.ts +++ b/src/test/setupFiles/automatic-mocks.ts @@ -3,10 +3,11 @@ * It will be run once per test file */ -import { registerHandlebarsHelpers } from '../../lib/registerHandlebarsHelpers'; -import * as packageVersionModule from '../../utils/packageVersion'; +import { disableApm } from '../../lib/apm'; +import { registerHandlebarsHelpers } from '../../lib/register-handlebars-helpers'; +import * as packageVersionModule from '../../utils/package-version'; -/* eslint-disable @typescript-eslint/no-empty-function */ +disableApm(); jest.mock('find-up', () => { return jest.fn(async () => '/path/to/project/config'); @@ -15,10 +16,11 @@ jest.mock('find-up', () => { // @ts-expect-error // eslint-disable-next-line no-import-assign packageVersionModule.UNMOCKED_PACKAGE_VERSION = - packageVersionModule.PACKAGE_VERSION; -// @ts-expect-error -// eslint-disable-next-line no-import-assign -packageVersionModule.PACKAGE_VERSION = '1.2.3-mocked'; + packageVersionModule.getPackageVersion(); + +jest + .spyOn(packageVersionModule, 'getPackageVersion') + .mockReturnValue('1.2.3-mocked'); jest.mock('make-dir', () => { return jest.fn(() => Promise.resolve('/some/path')); diff --git a/src/test/setupFiles/setup-after-env.ts b/src/test/setupFiles/jest-retry.ts similarity index 100% rename from src/test/setupFiles/setup-after-env.ts rename to src/test/setupFiles/jest-retry.ts diff --git a/src/test/setupFiles/nock-cleanup.ts b/src/test/setupFiles/nock-cleanup.ts new file mode 100644 index 00000000..725f017c --- /dev/null +++ b/src/test/setupFiles/nock-cleanup.ts @@ -0,0 +1,12 @@ +/* + * Global cleanup for nock to prevent Jest 30 memory warnings + * This ensures nock interceptors are properly cleaned up between test files + */ + +import nock from 'nock'; + +// Clean up nock interceptors after each test file +afterAll(() => { + nock.cleanAll(); + nock.restore(); +}); diff --git a/src/types/SpyHelper.d.ts b/src/types/spy-helper.d.ts similarity index 75% rename from src/types/SpyHelper.d.ts rename to src/types/spy-helper.d.ts index f6509ddf..b9591238 100644 --- a/src/types/SpyHelper.d.ts +++ b/src/types/spy-helper.d.ts @@ -1,3 +1,4 @@ +// eslint-disable-next-line no-undef export type SpyHelper any> = jest.SpyInstance< ReturnType, Parameters diff --git a/src/utils/excludeUndefined.test.ts b/src/utils/exclude-undefined.test.ts similarity index 91% rename from src/utils/excludeUndefined.test.ts rename to src/utils/exclude-undefined.test.ts index 65f1f8cc..92ddd46b 100644 --- a/src/utils/excludeUndefined.test.ts +++ b/src/utils/exclude-undefined.test.ts @@ -1,4 +1,4 @@ -import { excludeUndefined } from './excludeUndefined'; +import { excludeUndefined } from './exclude-undefined'; describe('excludeUndefined', () => { it('removes undefined values', () => { diff --git a/src/utils/excludeUndefined.ts b/src/utils/exclude-undefined.ts similarity index 90% rename from src/utils/excludeUndefined.ts rename to src/utils/exclude-undefined.ts index 25ba8de7..30b9a039 100644 --- a/src/utils/excludeUndefined.ts +++ b/src/utils/exclude-undefined.ts @@ -1,4 +1,4 @@ -import { Assign } from 'utility-types'; +import type { Assign } from 'utility-types'; type ExcludeUndefined> = Assign< T, diff --git a/src/utils/filterEmpty.ts b/src/utils/filter-empty.ts similarity index 100% rename from src/utils/filterEmpty.ts rename to src/utils/filter-empty.ts diff --git a/src/utils/filterUnmergedCommits.ts b/src/utils/filter-unmerged-commits.ts similarity index 73% rename from src/utils/filterUnmergedCommits.ts rename to src/utils/filter-unmerged-commits.ts index dadfbd40..41303e91 100644 --- a/src/utils/filterUnmergedCommits.ts +++ b/src/utils/filter-unmerged-commits.ts @@ -1,4 +1,4 @@ -import { Commit } from '../entrypoint.api'; +import type { Commit } from '../entrypoint.api'; export function filterUnmergedCommits(commit: Commit) { return commit.targetPullRequestStates.some((pr) => pr.state !== 'MERGED'); diff --git a/src/utils/isErrnoError.ts b/src/utils/is-errno-error.ts similarity index 100% rename from src/utils/isErrnoError.ts rename to src/utils/is-errno-error.ts diff --git a/src/utils/package-version.ts b/src/utils/package-version.ts new file mode 100644 index 00000000..14963179 --- /dev/null +++ b/src/utils/package-version.ts @@ -0,0 +1,4 @@ +import pkg from '../../package.json'; +export function getPackageVersion() { + return pkg.version; +} diff --git a/src/utils/packageVersion.ts b/src/utils/packageVersion.ts deleted file mode 100644 index 16b93606..00000000 --- a/src/utils/packageVersion.ts +++ /dev/null @@ -1 +0,0 @@ -export const PACKAGE_VERSION = '9.6.6'; diff --git a/tsconfig.eslint.json b/tsconfig.eslint.json new file mode 100644 index 00000000..10460ff8 --- /dev/null +++ b/tsconfig.eslint.json @@ -0,0 +1,4 @@ +{ + "extends": "./tsconfig.json", + "include": ["**.js", "**/*.ts", "**/*.js"] +} diff --git a/tsconfig.json b/tsconfig.json index d2ad4dbf..8e01c096 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,16 +1,34 @@ { - "include": ["src/**/*.ts"], + "plugins": [ + { + "name": "@0no-co/graphqlsp", + "schema": "./schema.graphql" + } + ], + "include": ["src/**/*"], + "exclude": ["src/graphql/generated/graphql.ts"], "compilerOptions": { "declaration": true, "target": "ES2021", - "lib": ["ES2021"], + "lib": [ + "ES2021", + "DOM" // needed by wonka + ], "module": "CommonJS", "outDir": "./dist", "forceConsistentCasingInFileNames": true, + + // strictness "strict": true, + "noImplicitAny": true, + "strictNullChecks": true, + "noImplicitThis": true, + "alwaysStrict": true, + "noUnusedLocals": true, "esModuleInterop": true, "useUnknownInCatchVariables": true, - "sourceMap": true + "sourceMap": true, + "resolveJsonModule": true } } diff --git a/yarn.lock b/yarn.lock index 82b212f3..03d90b88 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,327 +2,580 @@ # yarn lockfile v1 -"@aashutoshrathi/word-wrap@^1.2.3": - version "1.2.6" - resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" - integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== +"@0no-co/graphql.web@^1.0.13", "@0no-co/graphql.web@^1.0.5": + version "1.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@0no-co/graphql.web/-/graphql.web-1.2.0.tgz" + integrity sha512-/1iHy9TTr63gE1YcR5idjx8UREz1s0kFhydf3bBLCXyqjhkIc6igAzTOx3zPifCwFR87tsh/4Pa9cNts6d2otw== -"@ampproject/remapping@^2.2.0": - version "2.2.1" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz" - integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== +"@0no-co/graphqlsp@^1.12.16": + version "1.15.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@0no-co/graphqlsp/-/graphqlsp-1.15.1.tgz" + integrity sha512-UBDBuVGpX5Ti0PjGnSAzkMG04psNYxKfJ+1bgF8HFPfHHpKNVl4GULHSNW0GTOngcYCYA70c+InoKw0qjHwmVQ== dependencies: - "@jridgewell/gen-mapping" "^0.3.0" - "@jridgewell/trace-mapping" "^0.3.9" + "@gql.tada/internal" "^1.0.0" + graphql "^15.5.0 || ^16.0.0 || ^17.0.0" -"@ardatan/sync-fetch@^0.0.1": - version "0.0.1" - resolved "https://registry.npmjs.org/@ardatan/sync-fetch/-/sync-fetch-0.0.1.tgz" - integrity sha512-xhlTqH0m31mnsG0tIP4ETgfSB6gXDaYYsUWTrlUV93fFQPI9dd8hE0Ot6MHLCtqgB32hwJAC3YZMWlXZw7AleA== - dependencies: - node-fetch "^2.6.1" +"@aashutoshrathi/word-wrap@^1.2.3": + version "1.2.6" -"@asamuzakjp/css-color@^3.1.1": - version "3.1.2" - resolved "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-3.1.2.tgz" - integrity sha512-nwgc7jPn3LpZ4JWsoHtuwBsad1qSSLDDX634DdG0PBJofIuIEtSWk4KkRmuXyu178tjuHAbwiMNNzwqIyLYxZw== - dependencies: - "@csstools/css-calc" "^2.1.2" - "@csstools/css-color-parser" "^3.0.8" - "@csstools/css-parser-algorithms" "^3.0.4" - "@csstools/css-tokenizer" "^3.0.3" - lru-cache "^10.4.3" - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.22.13", "@babel/code-frame@^7.23.5": - version "7.23.5" - resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.23.5.tgz" - integrity sha512-CgH3s1a96LipHCmSUmYFPwY7MNx8C3avkq7i4Wl3cfa662ldtUe4VM1TPXX70pfmrlWTb6jLqTYrZyT2ZTJBgA== - dependencies: - "@babel/highlight" "^7.23.4" - chalk "^2.4.2" - -"@babel/compat-data@^7.23.5": - version "7.23.5" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.23.5.tgz" - integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== - -"@babel/core@^7.0.0", "@babel/core@^7.0.0-0", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.8.0", "@babel/core@>=7.0.0-beta.0 <8": - version "7.23.6" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.23.6.tgz" - integrity sha512-FxpRyGjrMJXh7X3wGLGhNDCRiwpWEF74sKjTLDJSG5Kyvow3QZaG0Adbqzi9ZrVjTWpsX+2cxWXD71NMg93kdw== - dependencies: - "@ampproject/remapping" "^2.2.0" - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" - "@babel/helper-compilation-targets" "^7.23.6" - "@babel/helper-module-transforms" "^7.23.3" - "@babel/helpers" "^7.23.6" - "@babel/parser" "^7.23.6" - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.6" - "@babel/types" "^7.23.6" +"@ardatan/relay-compiler@^12.0.3": + version "12.0.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@ardatan/relay-compiler/-/relay-compiler-12.0.3.tgz" + integrity sha512-mBDFOGvAoVlWaWqs3hm1AciGHSQE1rqFc/liZTyYz/Oek9yZdT5H26pH2zAFuEiTiBVPPyMuqf5VjOFPI2DGsQ== + dependencies: + "@babel/generator" "^7.26.10" + "@babel/parser" "^7.26.10" + "@babel/runtime" "^7.26.10" + chalk "^4.0.0" + fb-watchman "^2.0.0" + immutable "~3.7.6" + invariant "^2.2.4" + nullthrows "^1.1.1" + relay-runtime "12.0.0" + signedsource "^1.0.0" + +"@ardatan/relay-compiler@12.0.0": + version "12.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@ardatan/relay-compiler/-/relay-compiler-12.0.0.tgz" + integrity sha512-9anThAaj1dQr6IGmzBMcfzOQKTa5artjuPmw8NYK/fiGEMjADbSguBY2FMDykt+QhilR3wc9VA/3yVju7JHg7Q== + dependencies: + "@babel/core" "^7.14.0" + "@babel/generator" "^7.14.0" + "@babel/parser" "^7.14.0" + "@babel/runtime" "^7.0.0" + "@babel/traverse" "^7.14.0" + "@babel/types" "^7.0.0" + babel-preset-fbjs "^3.4.0" + chalk "^4.0.0" + fb-watchman "^2.0.0" + fbjs "^3.0.0" + glob "^7.1.1" + immutable "~3.7.6" + invariant "^2.2.4" + nullthrows "^1.1.1" + relay-runtime "12.0.0" + signedsource "^1.0.0" + yargs "^15.3.1" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.27.1": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/code-frame/-/code-frame-7.27.1.tgz" + integrity sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg== + dependencies: + "@babel/helper-validator-identifier" "^7.27.1" + js-tokens "^4.0.0" + picocolors "^1.1.1" + +"@babel/compat-data@^7.20.5", "@babel/compat-data@^7.27.2": + version "7.28.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/compat-data/-/compat-data-7.28.5.tgz" + integrity sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA== + +"@babel/core@^7.14.0", "@babel/core@^7.23.9", "@babel/core@^7.26.10", "@babel/core@^7.27.4": + version "7.28.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/core/-/core-7.28.5.tgz" + integrity sha512-e7jT4DxYvIDLk1ZHmU/m/mB19rex9sv0c2ftBtjSBv+kVM/902eh0fINUzD7UwLLNR+jU585GxUJ8/EBfAM5fw== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.28.5" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-module-transforms" "^7.28.3" + "@babel/helpers" "^7.28.4" + "@babel/parser" "^7.28.5" + "@babel/template" "^7.27.2" + "@babel/traverse" "^7.28.5" + "@babel/types" "^7.28.5" + "@jridgewell/remapping" "^2.3.5" convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" json5 "^2.2.3" semver "^6.3.1" -"@babel/generator@^7.23.6", "@babel/generator@^7.7.2": - version "7.23.6" - resolved "https://registry.npmjs.org/@babel/generator/-/generator-7.23.6.tgz" - integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== +"@babel/generator@^7.14.0", "@babel/generator@^7.18.13", "@babel/generator@^7.26.10", "@babel/generator@^7.27.5", "@babel/generator@^7.28.5": + version "7.28.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/generator/-/generator-7.28.5.tgz" + integrity sha512-3EwLFhZ38J4VyIP6WNtt2kUdW9dokXA9Cr4IVIFHuCpZ3H8/YFOl5JjZHisrn1fATPBmKKqXzDFvh9fUwHz6CQ== + dependencies: + "@babel/parser" "^7.28.5" + "@babel/types" "^7.28.5" + "@jridgewell/gen-mapping" "^0.3.12" + "@jridgewell/trace-mapping" "^0.3.28" + jsesc "^3.0.2" + +"@babel/helper-annotate-as-pure@^7.27.1", "@babel/helper-annotate-as-pure@^7.27.3": + version "7.27.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.27.3.tgz" + integrity sha512-fXSwMQqitTGeHLBC08Eq5yXz2m37E4pJX1qAU1+2cNedz/ifv/bVXft90VeSav5nFO61EcNgwr0aJxbyPaWBPg== dependencies: - "@babel/types" "^7.23.6" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" - jsesc "^2.5.1" + "@babel/types" "^7.27.3" -"@babel/helper-compilation-targets@^7.23.6": - version "7.23.6" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.23.6.tgz" - integrity sha512-9JB548GZoQVmzrFgp8o7KxdgkTGm6xs9DW0o/Pim72UDjzr5ObUQ6ZzYPqA+g9OTS2bBQoctLJrky0RDCAWRgQ== +"@babel/helper-compilation-targets@^7.20.7", "@babel/helper-compilation-targets@^7.27.1", "@babel/helper-compilation-targets@^7.27.2": + version "7.27.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz" + integrity sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ== dependencies: - "@babel/compat-data" "^7.23.5" - "@babel/helper-validator-option" "^7.23.5" - browserslist "^4.22.2" + "@babel/compat-data" "^7.27.2" + "@babel/helper-validator-option" "^7.27.1" + browserslist "^4.24.0" lru-cache "^5.1.1" semver "^6.3.1" -"@babel/helper-environment-visitor@^7.22.20": - version "7.22.20" - resolved "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz" - integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== - -"@babel/helper-function-name@^7.23.0": - version "7.23.0" - resolved "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.23.0.tgz" - integrity sha512-OErEqsrxjZTJciZ4Oo+eoZqeW9UIiOcuYKRJA4ZAgV9myA+pOXhhmpfNCKjEH/auVfEYVFJ6y1Tc4r0eIApqiw== - dependencies: - "@babel/template" "^7.22.15" - "@babel/types" "^7.23.0" - -"@babel/helper-hoist-variables@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.22.5.tgz" - integrity sha512-wGjk9QZVzvknA6yKIUURb8zY3grXCcOZt+/7Wcy8O2uctxhplmUPkOdlgoNhmdVee2c92JXbf1xpMtVNbfoxRw== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-module-imports@^7.22.15": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz" - integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== - dependencies: - "@babel/types" "^7.22.15" - -"@babel/helper-module-transforms@^7.23.3": - version "7.23.3" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz" - integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== - dependencies: - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-module-imports" "^7.22.15" - "@babel/helper-simple-access" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/helper-validator-identifier" "^7.22.20" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.8.0": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.22.5.tgz" - integrity sha512-uLls06UVKgFG9QD4OeFYLEGteMIAa5kpTPcFL28yuCIIzsf6ZyKZMllKVOCZFhiZ5ptnwX4mtKdWCBE/uT4amg== - -"@babel/helper-simple-access@^7.22.5": - version "7.22.5" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz" - integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-split-export-declaration@^7.22.6": - version "7.22.6" - resolved "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz" - integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== - dependencies: - "@babel/types" "^7.22.5" - -"@babel/helper-string-parser@^7.23.4": - version "7.23.4" - resolved "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz" - integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== - -"@babel/helper-validator-identifier@^7.22.20": - version "7.22.20" - resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz" - integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== - -"@babel/helper-validator-option@^7.23.5": - version "7.23.5" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.23.5.tgz" - integrity sha512-85ttAOMLsr53VgXkTbkx8oA6YTfT4q7/HzXSLEYmjcSTJPMPQtvq1BD79Byep5xMUYbGRzEpDsjUf3dyp54IKw== - -"@babel/helpers@^7.23.6": - version "7.23.6" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.23.6.tgz" - integrity sha512-wCfsbN4nBidDRhpDhvcKlzHWCTlgJYUUdSJfzXb2NuBssDSIjc3xcb+znA7l+zYsFljAcGM0aFkN40cR3lXiGA== - dependencies: - "@babel/template" "^7.22.15" - "@babel/traverse" "^7.23.6" - "@babel/types" "^7.23.6" - -"@babel/highlight@^7.23.4": - version "7.23.4" - resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.23.4.tgz" - integrity sha512-acGdbYSfp2WheJoJm/EBBBLh/ID8KDc64ISZ9DYtBmC8/Q204PZJLHyzeB5qMzJ5trcOkybd78M4x2KWsUq++A== - dependencies: - "@babel/helper-validator-identifier" "^7.22.20" - chalk "^2.4.2" - js-tokens "^4.0.0" +"@babel/helper-create-class-features-plugin@^7.18.6": + version "7.28.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.28.5.tgz" + integrity sha512-q3WC4JfdODypvxArsJQROfupPBq9+lMwjKq7C33GhbFYJsufD0yd/ziwD+hJucLeWsnFPWZjsU2DNFqBPE7jwQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.3" + "@babel/helper-member-expression-to-functions" "^7.28.5" + "@babel/helper-optimise-call-expression" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + "@babel/traverse" "^7.28.5" + semver "^6.3.1" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.22.15", "@babel/parser@^7.23.6": - version "7.23.6" - resolved "https://registry.npmjs.org/@babel/parser/-/parser-7.23.6.tgz" - integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== +"@babel/helper-globals@^7.28.0": + version "7.28.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-globals/-/helper-globals-7.28.0.tgz" + integrity sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw== + +"@babel/helper-member-expression-to-functions@^7.27.1", "@babel/helper-member-expression-to-functions@^7.28.5": + version "7.28.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.28.5.tgz" + integrity sha512-cwM7SBRZcPCLgl8a7cY0soT1SptSzAlMH39vwiRpOQkJlh53r5hdHwLSCZpQdVLT39sZt+CRpNwYG4Y2v77atg== + dependencies: + "@babel/traverse" "^7.28.5" + "@babel/types" "^7.28.5" + +"@babel/helper-module-imports@^7.27.1": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz" + integrity sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w== + dependencies: + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/helper-module-transforms@^7.27.1", "@babel/helper-module-transforms@^7.28.3": + version "7.28.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz" + integrity sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw== + dependencies: + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-validator-identifier" "^7.27.1" + "@babel/traverse" "^7.28.3" + +"@babel/helper-optimise-call-expression@^7.27.1": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.27.1.tgz" + integrity sha512-URMGH08NzYFhubNSGJrpUEphGKQwMQYBySzat5cAByY1/YgIRkULnIy3tAMeszlL/so2HbeilYloUmSpd7GdVw== + dependencies: + "@babel/types" "^7.27.1" + +"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.20.2", "@babel/helper-plugin-utils@^7.27.1", "@babel/helper-plugin-utils@^7.8.0": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz" + integrity sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw== + +"@babel/helper-replace-supers@^7.27.1": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-replace-supers/-/helper-replace-supers-7.27.1.tgz" + integrity sha512-7EHz6qDZc8RYS5ElPoShMheWvEgERonFCs7IAonWLLUTXW59DP14bCZt89/GKyreYn8g3S83m21FelHKbeDCKA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.27.1" + "@babel/helper-optimise-call-expression" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/helper-skip-transparent-expression-wrappers@^7.27.1": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.27.1.tgz" + integrity sha512-Tub4ZKEXqbPjXgWLl2+3JpQAYBJ8+ikpQ2Ocj/q/r0LwE3UhENh7EUabyHjz2kCEsrRY83ew2DQdHluuiDQFzg== + dependencies: + "@babel/traverse" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/helper-string-parser@^7.27.1": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz" + integrity sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA== + +"@babel/helper-validator-identifier@^7.27.1", "@babel/helper-validator-identifier@^7.28.5": + version "7.28.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz" + integrity sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q== + +"@babel/helper-validator-option@^7.27.1": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz" + integrity sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg== + +"@babel/helpers@^7.28.4": + version "7.28.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/helpers/-/helpers-7.28.4.tgz" + integrity sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w== + dependencies: + "@babel/template" "^7.27.2" + "@babel/types" "^7.28.4" + +"@babel/parser@^7.1.0", "@babel/parser@^7.14.0", "@babel/parser@^7.20.7", "@babel/parser@^7.23.9", "@babel/parser@^7.26.10", "@babel/parser@^7.27.2", "@babel/parser@^7.28.5": + version "7.28.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/parser/-/parser-7.28.5.tgz" + integrity sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ== + dependencies: + "@babel/types" "^7.28.5" + +"@babel/plugin-proposal-class-properties@^7.0.0": + version "7.18.6" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz" + integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.18.6" + "@babel/helper-plugin-utils" "^7.18.6" + +"@babel/plugin-proposal-object-rest-spread@^7.0.0": + version "7.20.7" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.20.7.tgz" + integrity sha512-d2S98yCiLxDVmBmE8UjGcfPvNEUbA1U5q5WxaWFUGRzJSVAZqm5W6MbPct0jxnegUZ0niLeNX+IOzEs7wYg9Dg== + dependencies: + "@babel/compat-data" "^7.20.5" + "@babel/helper-compilation-targets" "^7.20.7" + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.20.7" "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz" integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-bigint@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz" integrity sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-class-properties@^7.8.3": +"@babel/plugin-syntax-class-properties@^7.0.0", "@babel/plugin-syntax-class-properties@^7.12.13": version "7.12.13" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz" integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== dependencies: "@babel/helper-plugin-utils" "^7.12.13" -"@babel/plugin-syntax-import-meta@^7.8.3": +"@babel/plugin-syntax-class-static-block@^7.14.5": + version "7.14.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz" + integrity sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-flow@^7.0.0", "@babel/plugin-syntax-flow@^7.27.1": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.27.1.tgz" + integrity sha512-p9OkPbZ5G7UT1MofwYFigGebnrzGJacoBSQM0/6bi/PUMVE+qlWDD/OalvQKbwgQzU6dl0xAv6r4X7Jme0RYxA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-syntax-import-assertions@^7.26.0": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.27.1.tgz" + integrity sha512-UT/Jrhw57xg4ILHLFnzFpPDlMbcdEicaAtjPQpbj9wa8T4r5KVWCimHcL/460g8Ht0DMxDyjsLgiWSkVjnwPFg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-syntax-import-attributes@^7.24.7": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz" + integrity sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-syntax-import-meta@^7.10.4": version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz" integrity sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-json-strings@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz" integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.7.2": - version "7.23.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.23.3.tgz" - integrity sha512-EB2MELswq55OHUoRZLGg/zC7QWUKfNLpE57m/S2yr1uEneIgsTgrSzXP3NXEsMkVn76OlaVVnzN+ugObuYGwhg== +"@babel/plugin-syntax-jsx@^7.0.0", "@babel/plugin-syntax-jsx@^7.27.1": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz" + integrity sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w== dependencies: - "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-plugin-utils" "^7.27.1" -"@babel/plugin-syntax-logical-assignment-operators@^7.8.3": +"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz" integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== dependencies: "@babel/helper-plugin-utils" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz" integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-numeric-separator@^7.8.3": +"@babel/plugin-syntax-numeric-separator@^7.10.4": version "7.10.4" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz" integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-syntax-object-rest-spread@^7.8.3": +"@babel/plugin-syntax-object-rest-spread@^7.0.0", "@babel/plugin-syntax-object-rest-spread@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz" integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-catch-binding@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz" integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== dependencies: "@babel/helper-plugin-utils" "^7.8.0" "@babel/plugin-syntax-optional-chaining@^7.8.3": version "7.8.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz" integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-top-level-await@^7.8.3": +"@babel/plugin-syntax-private-property-in-object@^7.14.5": version "7.14.5" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz" + integrity sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg== + dependencies: + "@babel/helper-plugin-utils" "^7.14.5" + +"@babel/plugin-syntax-top-level-await@^7.14.5": + version "7.14.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz" integrity sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw== dependencies: "@babel/helper-plugin-utils" "^7.14.5" -"@babel/plugin-syntax-typescript@^7.7.2": - version "7.23.3" - resolved "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.23.3.tgz" - integrity sha512-9EiNjVJOMwCO+43TqoTrgQ8jMwcAd0sWyXi9RPfIsLTj4R2MADDDQXELhffaUx/uJv2AYcxBgPwH6j4TIA4ytQ== - dependencies: - "@babel/helper-plugin-utils" "^7.22.5" - -"@babel/template@^7.22.15", "@babel/template@^7.3.3": - version "7.22.15" - resolved "https://registry.npmjs.org/@babel/template/-/template-7.22.15.tgz" - integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== - dependencies: - "@babel/code-frame" "^7.22.13" - "@babel/parser" "^7.22.15" - "@babel/types" "^7.22.15" - -"@babel/traverse@^7.23.6": - version "7.23.6" - resolved "https://registry.npmjs.org/@babel/traverse/-/traverse-7.23.6.tgz" - integrity sha512-czastdK1e8YByZqezMPFiZ8ahwVMh/ESl9vPgvgdB9AmFMGP5jfpFax74AQgl5zj4XHzqeYAg2l8PuUeRS1MgQ== - dependencies: - "@babel/code-frame" "^7.23.5" - "@babel/generator" "^7.23.6" - "@babel/helper-environment-visitor" "^7.22.20" - "@babel/helper-function-name" "^7.23.0" - "@babel/helper-hoist-variables" "^7.22.5" - "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.6" - "@babel/types" "^7.23.6" +"@babel/plugin-syntax-typescript@^7.27.1": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz" + integrity sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-arrow-functions@^7.0.0": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.27.1.tgz" + integrity sha512-8Z4TGic6xW70FKThA5HYEKKyBpOOsucTOD1DjU3fZxDg+K3zBJcXMFnt/4yQiZnf5+MiOMSXQ9PaEK/Ilh1DeA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-block-scoped-functions@^7.0.0": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.27.1.tgz" + integrity sha512-cnqkuOtZLapWYZUYM5rVIdv1nXYuFVIltZ6ZJ7nIj585QsjKM5dhL2Fu/lICXZ1OyIAFc7Qy+bvDAtTXqGrlhg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-block-scoping@^7.0.0": + version "7.28.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.28.5.tgz" + integrity sha512-45DmULpySVvmq9Pj3X9B+62Xe+DJGov27QravQJU1LLcapR6/10i+gYVAucGGJpHBp5mYxIMK4nDAT/QDLr47g== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-classes@^7.0.0": + version "7.28.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-classes/-/plugin-transform-classes-7.28.4.tgz" + integrity sha512-cFOlhIYPBv/iBoc+KS3M6et2XPtbT2HiCRfBXWtfpc9OAyostldxIf9YAYB6ypURBBbx+Qv6nyrLzASfJe+hBA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.3" + "@babel/helper-compilation-targets" "^7.27.2" + "@babel/helper-globals" "^7.28.0" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" + "@babel/traverse" "^7.28.4" + +"@babel/plugin-transform-computed-properties@^7.0.0": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.27.1.tgz" + integrity sha512-lj9PGWvMTVksbWiDT2tW68zGS/cyo4AkZ/QTp0sQT0mjPopCmrSkzxeXkznjqBxzDI6TclZhOJbBmbBLjuOZUw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/template" "^7.27.1" + +"@babel/plugin-transform-destructuring@^7.0.0": + version "7.28.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.28.5.tgz" + integrity sha512-Kl9Bc6D0zTUcFUvkNuQh4eGXPKKNDOJQXVyyM4ZAQPMveniJdxi8XMJwLo+xSoW3MIq81bD33lcUe9kZpl0MCw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.28.5" + +"@babel/plugin-transform-flow-strip-types@^7.0.0": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.27.1.tgz" + integrity sha512-G5eDKsu50udECw7DL2AcsysXiQyB7Nfg521t2OAJ4tbfTJ27doHLeF/vlI1NZGlLdbb/v+ibvtL1YBQqYOwJGg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/plugin-syntax-flow" "^7.27.1" + +"@babel/plugin-transform-for-of@^7.0.0": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.27.1.tgz" + integrity sha512-BfbWFFEJFQzLCQ5N8VocnCtA8J1CLkNTe2Ms2wocj75dd6VpiqS5Z5quTYcUoo4Yq+DN0rtikODccuv7RU81sw== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + +"@babel/plugin-transform-function-name@^7.0.0": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.27.1.tgz" + integrity sha512-1bQeydJF9Nr1eBCMMbC+hdwmRlsv5XYOMu03YSWFwNs0HsAmtSxxF1fyuYPqemVldVyFmlCU7w8UE14LupUSZQ== + dependencies: + "@babel/helper-compilation-targets" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/traverse" "^7.27.1" + +"@babel/plugin-transform-literals@^7.0.0": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-literals/-/plugin-transform-literals-7.27.1.tgz" + integrity sha512-0HCFSepIpLTkLcsi86GG3mTUzxV5jpmbv97hTETW3yzrAij8aqlD36toB1D0daVFJM8NK6GvKO0gslVQmm+zZA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-member-expression-literals@^7.0.0": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.27.1.tgz" + integrity sha512-hqoBX4dcZ1I33jCSWcXrP+1Ku7kdqXf1oeah7ooKOIiAdKQ+uqftgCFNOSzA5AMS2XIHEYeGFg4cKRCdpxzVOQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-modules-commonjs@^7.0.0": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.27.1.tgz" + integrity sha512-OJguuwlTYlN0gBZFRPqwOGNWssZjfIUdS7HMYtN8c1KmwpwHFBwTeFZrg9XZa+DFTitWOW5iTAG7tyCUPsCCyw== + dependencies: + "@babel/helper-module-transforms" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-object-super@^7.0.0": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.27.1.tgz" + integrity sha512-SFy8S9plRPbIcxlJ8A6mT/CxFdJx/c04JEctz4jf8YZaVS2px34j7NXRrlGlHkN/M2gnpL37ZpGRGVFLd3l8Ng== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-replace-supers" "^7.27.1" + +"@babel/plugin-transform-parameters@^7.0.0", "@babel/plugin-transform-parameters@^7.20.7": + version "7.27.7" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.27.7.tgz" + integrity sha512-qBkYTYCb76RRxUM6CcZA5KRu8K4SM8ajzVeUgVdMVO9NN9uI/GaVmBg/WKJJGnNokV9SY8FxNOVWGXzqzUidBg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-property-literals@^7.0.0": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.27.1.tgz" + integrity sha512-oThy3BCuCha8kDZ8ZkgOg2exvPYUlprMukKQXI1r1pJ47NCvxfkEy8vK+r/hT9nF0Aa4H1WUPZZjHTFtAhGfmQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-react-display-name@^7.0.0": + version "7.28.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.28.0.tgz" + integrity sha512-D6Eujc2zMxKjfa4Zxl4GHMsmhKKZ9VpcqIchJLvwTxad9zWIYulwYItBovpDOoNLISpcZSXoDJ5gaGbQUDqViA== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-react-jsx@^7.0.0": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.27.1.tgz" + integrity sha512-2KH4LWGSrJIkVf5tSiBFYuXDAoWRq2MMwgivCf+93dd0GQi8RXLjKA/0EvRnVV5G0hrHczsquXuD01L8s6dmBw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.27.1" + "@babel/helper-module-imports" "^7.27.1" + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/plugin-syntax-jsx" "^7.27.1" + "@babel/types" "^7.27.1" + +"@babel/plugin-transform-shorthand-properties@^7.0.0": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.27.1.tgz" + integrity sha512-N/wH1vcn4oYawbJ13Y/FxcQrWk63jhfNa7jef0ih7PHSIHX2LB7GWE1rkPrOnka9kwMxb6hMl19p7lidA+EHmQ== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/plugin-transform-spread@^7.0.0": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-spread/-/plugin-transform-spread-7.27.1.tgz" + integrity sha512-kpb3HUqaILBJcRFVhFUs6Trdd4mkrzcGXss+6/mxUd273PfbWqSDHRzMT2234gIg2QYfAjvXLSquP1xECSg09Q== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + "@babel/helper-skip-transparent-expression-wrappers" "^7.27.1" + +"@babel/plugin-transform-template-literals@^7.0.0": + version "7.27.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.27.1.tgz" + integrity sha512-fBJKiV7F2DxZUkg5EtHKXQdbsbURW3DZKQUWphDum0uRP6eHGGa/He9mc0mypL680pb+e/lDIthRohlv8NCHkg== + dependencies: + "@babel/helper-plugin-utils" "^7.27.1" + +"@babel/runtime@^7.0.0", "@babel/runtime@^7.26.10": + version "7.28.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/runtime/-/runtime-7.28.4.tgz" + integrity sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ== + +"@babel/template@^7.18.10", "@babel/template@^7.20.7", "@babel/template@^7.27.1", "@babel/template@^7.27.2": + version "7.27.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/template/-/template-7.27.2.tgz" + integrity sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/parser" "^7.27.2" + "@babel/types" "^7.27.1" + +"@babel/traverse@^7.14.0", "@babel/traverse@^7.26.10", "@babel/traverse@^7.27.1", "@babel/traverse@^7.28.3", "@babel/traverse@^7.28.4", "@babel/traverse@^7.28.5": + version "7.28.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/traverse/-/traverse-7.28.5.tgz" + integrity sha512-TCCj4t55U90khlYkVV/0TfkJkAkUg3jZFA3Neb7unZT8CPok7iiRfaX0F+WnqWqt7OxhOn0uBKXCw4lbL8W0aQ== + dependencies: + "@babel/code-frame" "^7.27.1" + "@babel/generator" "^7.28.5" + "@babel/helper-globals" "^7.28.0" + "@babel/parser" "^7.28.5" + "@babel/template" "^7.27.2" + "@babel/types" "^7.28.5" debug "^4.3.1" - globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.6", "@babel/types@^7.3.3": - version "7.23.6" - resolved "https://registry.npmjs.org/@babel/types/-/types-7.23.6.tgz" - integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== +"@babel/types@^7.0.0", "@babel/types@^7.18.13", "@babel/types@^7.20.7", "@babel/types@^7.26.10", "@babel/types@^7.27.1", "@babel/types@^7.27.3", "@babel/types@^7.28.2", "@babel/types@^7.28.4", "@babel/types@^7.28.5": + version "7.28.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@babel/types/-/types-7.28.5.tgz" + integrity sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA== dependencies: - "@babel/helper-string-parser" "^7.23.4" - "@babel/helper-validator-identifier" "^7.22.20" - to-fast-properties "^2.0.0" + "@babel/helper-string-parser" "^7.27.1" + "@babel/helper-validator-identifier" "^7.28.5" "@bcoe/v8-coverage@^0.2.3": version "0.2.3" - resolved "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== "@colors/colors@^1.6.0", "@colors/colors@1.6.0": version "1.6.0" - resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.6.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@colors/colors/-/colors-1.6.0.tgz" integrity sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA== "@cspotcode/source-map-support@^0.8.0": @@ -332,40 +585,12 @@ dependencies: "@jridgewell/trace-mapping" "0.3.9" -"@csstools/color-helpers@^5.0.2": - version "5.0.2" - resolved "https://registry.npmjs.org/@csstools/color-helpers/-/color-helpers-5.0.2.tgz" - integrity sha512-JqWH1vsgdGcw2RR6VliXXdA0/59LttzlU8UlRT/iUUsEeWfYq8I+K0yhihEUTTHLRm1EXvpsCx3083EU15ecsA== - -"@csstools/css-calc@^2.1.2": - version "2.1.2" - resolved "https://registry.npmjs.org/@csstools/css-calc/-/css-calc-2.1.2.tgz" - integrity sha512-TklMyb3uBB28b5uQdxjReG4L80NxAqgrECqLZFQbyLekwwlcDDS8r3f07DKqeo8C4926Br0gf/ZDe17Zv4wIuw== - -"@csstools/css-color-parser@^3.0.8": - version "3.0.8" - resolved "https://registry.npmjs.org/@csstools/css-color-parser/-/css-color-parser-3.0.8.tgz" - integrity sha512-pdwotQjCCnRPuNi06jFuP68cykU1f3ZWExLe/8MQ1LOs8Xq+fTkYgd+2V8mWUWMrOn9iS2HftPVaMZDaXzGbhQ== - dependencies: - "@csstools/color-helpers" "^5.0.2" - "@csstools/css-calc" "^2.1.2" - -"@csstools/css-parser-algorithms@^3.0.4": - version "3.0.4" - resolved "https://registry.npmjs.org/@csstools/css-parser-algorithms/-/css-parser-algorithms-3.0.4.tgz" - integrity sha512-Up7rBoV77rv29d3uKHUIVubz1BTcgyUK72IvCQAbfbMv584xHcGKCKbWh7i8hPrRJ7qU4Y8IO3IY9m+iTB7P3A== - -"@csstools/css-tokenizer@^3.0.3": - version "3.0.3" - resolved "https://registry.npmjs.org/@csstools/css-tokenizer/-/css-tokenizer-3.0.3.tgz" - integrity sha512-UJnjoFsmxfKUdNYdWgOB0mWUypuLvAfQPH1+pyvRJs6euowbFkFC6P13w1l8mJyi3vxYMxc9kld5jZEGRQs6bw== - -"@dabh/diagnostics@^2.0.2": - version "2.0.3" - resolved "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.3.tgz" - integrity sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA== +"@dabh/diagnostics@^2.0.8": + version "2.0.8" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@dabh/diagnostics/-/diagnostics-2.0.8.tgz" + integrity sha512-R4MSXTVnuMzGD7bzHdW2ZhhdPC/igELENcq5IjEverBvq5hn1SXCWcsi6eSsdWP0/Ur+SItRRjAktmdoX/8R/Q== dependencies: - colorspace "1.1.x" + "@so-ric/colorspace" "^1.1.6" enabled "2.0.x" kuler "^2.0.0" @@ -381,111 +606,462 @@ dependencies: "@elastic/ecs-helpers" "^2.1.1" -"@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": - version "4.4.0" - resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" - integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== +"@envelop/core@^5.2.3", "@envelop/core@^5.3.0": + version "5.4.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@envelop/core/-/core-5.4.0.tgz" + integrity sha512-/1fat63pySE8rw/dZZArEVytLD90JApY85deDJ0/34gm+yhQ3k70CloSUevxoOE4YCGveG3s9SJJfQeeB4NAtQ== dependencies: - eslint-visitor-keys "^3.3.0" + "@envelop/instrumentation" "^1.0.0" + "@envelop/types" "^5.2.1" + "@whatwg-node/promise-helpers" "^1.2.4" + tslib "^2.5.0" -"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": - version "4.10.0" - resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.10.0.tgz" - integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== +"@envelop/instrumentation@^1.0.0": + version "1.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@envelop/instrumentation/-/instrumentation-1.0.0.tgz" + integrity sha512-cxgkB66RQB95H3X27jlnxCRNTmPuSTgmBAq6/4n2Dtv4hsk4yz8FadA1ggmd0uZzvKqWD6CR+WFgTjhDqg7eyw== + dependencies: + "@whatwg-node/promise-helpers" "^1.2.1" + tslib "^2.5.0" -"@eslint/eslintrc@^2.1.4": - version "2.1.4" - resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz" - integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== +"@envelop/types@^5.2.1": + version "5.2.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@envelop/types/-/types-5.2.1.tgz" + integrity sha512-CsFmA3u3c2QoLDTfEpGr4t25fjMU31nyvse7IzWTvb0ZycuPjMjb0fjlheh+PbhBYb9YLugnT2uY6Mwcg1o+Zg== + dependencies: + "@whatwg-node/promise-helpers" "^1.0.0" + tslib "^2.5.0" + +"@eslint-community/eslint-utils@^4.7.0", "@eslint-community/eslint-utils@^4.8.0": + version "4.9.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz" + integrity sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g== + dependencies: + eslint-visitor-keys "^3.4.3" + +"@eslint-community/regexpp@^4.10.0", "@eslint-community/regexpp@^4.12.1": + version "4.12.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@eslint-community/regexpp/-/regexpp-4.12.2.tgz" + integrity sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew== + +"@eslint/config-array@^0.21.1": + version "0.21.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@eslint/config-array/-/config-array-0.21.1.tgz" + integrity sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA== + dependencies: + "@eslint/object-schema" "^2.1.7" + debug "^4.3.1" + minimatch "^3.1.2" + +"@eslint/config-helpers@^0.4.2": + version "0.4.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@eslint/config-helpers/-/config-helpers-0.4.2.tgz" + integrity sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw== + dependencies: + "@eslint/core" "^0.17.0" + +"@eslint/core@^0.17.0": + version "0.17.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@eslint/core/-/core-0.17.0.tgz" + integrity sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ== + dependencies: + "@types/json-schema" "^7.0.15" + +"@eslint/eslintrc@^3.3.1": + version "3.3.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@eslint/eslintrc/-/eslintrc-3.3.1.tgz" + integrity sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.6.0" - globals "^13.19.0" + espree "^10.0.1" + globals "^14.0.0" ignore "^5.2.0" import-fresh "^3.2.1" js-yaml "^4.1.0" minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@8.57.0": - version "8.57.0" - resolved "https://registry.npmjs.org/@eslint/js/-/js-8.57.0.tgz" - integrity sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g== +"@eslint/js@9.39.1": + version "9.39.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@eslint/js/-/js-9.39.1.tgz" + integrity sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw== -"@graphql-tools/batch-execute@^9.0.1": - version "9.0.2" - resolved "https://registry.npmjs.org/@graphql-tools/batch-execute/-/batch-execute-9.0.2.tgz" - integrity sha512-Y2uwdZI6ZnatopD/SYfZ1eGuQFI7OU2KGZ2/B/7G9ISmgMl5K+ZZWz/PfIEXeiHirIDhyk54s4uka5rj2xwKqQ== +"@eslint/object-schema@^2.1.7": + version "2.1.7" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@eslint/object-schema/-/object-schema-2.1.7.tgz" + integrity sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA== + +"@eslint/plugin-kit@^0.4.1": + version "0.4.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@eslint/plugin-kit/-/plugin-kit-0.4.1.tgz" + integrity sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA== + dependencies: + "@eslint/core" "^0.17.0" + levn "^0.4.1" + +"@fastify/busboy@^3.1.1": + version "3.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@fastify/busboy/-/busboy-3.2.0.tgz" + integrity sha512-m9FVDXU3GT2ITSe0UaMA5rU3QkfC/UXtCU8y0gSN/GugTqtVldOBWIB5V6V3sbmenVZUIpU6f+mPEO2+m5iTaA== + +"@gql.tada/internal@^1.0.0": + version "1.0.8" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@gql.tada/internal/-/internal-1.0.8.tgz" + integrity sha512-XYdxJhtHC5WtZfdDqtKjcQ4d7R1s0d1rnlSs3OcBEUbYiPoJJfZU7tWsVXuv047Z6msvmr4ompJ7eLSK5Km57g== dependencies: - "@graphql-tools/utils" "^10.0.5" - dataloader "^2.2.2" + "@0no-co/graphql.web" "^1.0.5" + +"@graphql-codegen/add@^5.0.3": + version "5.0.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/add/-/add-5.0.3.tgz" + integrity sha512-SxXPmramkth8XtBlAHu4H4jYcYXM/o3p01+psU+0NADQowA8jtYkK6MW5rV6T+CxkEaNZItfSmZRPgIuypcqnA== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.0.3" + tslib "~2.6.0" + +"@graphql-codegen/cli@^5.0.7": + version "5.0.7" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/cli/-/cli-5.0.7.tgz" + integrity sha512-h/sxYvSaWtxZxo8GtaA8SvcHTyViaaPd7dweF/hmRDpaQU1o3iU3EZxlcJ+oLTunU0tSMFsnrIXm/mhXxI11Cw== + dependencies: + "@babel/generator" "^7.18.13" + "@babel/template" "^7.18.10" + "@babel/types" "^7.18.13" + "@graphql-codegen/client-preset" "^4.8.2" + "@graphql-codegen/core" "^4.0.2" + "@graphql-codegen/plugin-helpers" "^5.1.1" + "@graphql-tools/apollo-engine-loader" "^8.0.0" + "@graphql-tools/code-file-loader" "^8.0.0" + "@graphql-tools/git-loader" "^8.0.0" + "@graphql-tools/github-loader" "^8.0.0" + "@graphql-tools/graphql-file-loader" "^8.0.0" + "@graphql-tools/json-file-loader" "^8.0.0" + "@graphql-tools/load" "^8.1.0" + "@graphql-tools/prisma-loader" "^8.0.0" + "@graphql-tools/url-loader" "^8.0.0" + "@graphql-tools/utils" "^10.0.0" + "@whatwg-node/fetch" "^0.10.0" + chalk "^4.1.0" + cosmiconfig "^8.1.3" + debounce "^1.2.0" + detect-indent "^6.0.0" + graphql-config "^5.1.1" + inquirer "^8.0.0" + is-glob "^4.0.1" + jiti "^1.17.1" + json-to-pretty-yaml "^1.2.2" + listr2 "^4.0.5" + log-symbols "^4.0.0" + micromatch "^4.0.5" + shell-quote "^1.7.3" + string-env-interpolation "^1.0.1" + ts-log "^2.2.3" tslib "^2.4.0" - value-or-promise "^1.0.12" + yaml "^2.3.1" + yargs "^17.0.0" + +"@graphql-codegen/client-preset@^4.8.2": + version "4.8.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/client-preset/-/client-preset-4.8.3.tgz" + integrity sha512-QpEsPSO9fnRxA6Z66AmBuGcwHjZ6dYSxYo5ycMlYgSPzAbyG8gn/kWljofjJfWqSY+T/lRn+r8IXTH14ml24vQ== + dependencies: + "@babel/helper-plugin-utils" "^7.20.2" + "@babel/template" "^7.20.7" + "@graphql-codegen/add" "^5.0.3" + "@graphql-codegen/gql-tag-operations" "4.0.17" + "@graphql-codegen/plugin-helpers" "^5.1.1" + "@graphql-codegen/typed-document-node" "^5.1.2" + "@graphql-codegen/typescript" "^4.1.6" + "@graphql-codegen/typescript-operations" "^4.6.1" + "@graphql-codegen/visitor-plugin-common" "^5.8.0" + "@graphql-tools/documents" "^1.0.0" + "@graphql-tools/utils" "^10.0.0" + "@graphql-typed-document-node/core" "3.2.0" + tslib "~2.6.0" -"@graphql-tools/delegate@^10.0.0", "@graphql-tools/delegate@^10.0.3": - version "10.0.3" - resolved "https://registry.npmjs.org/@graphql-tools/delegate/-/delegate-10.0.3.tgz" - integrity sha512-Jor9oazZ07zuWkykD3OOhT/2XD74Zm6Ar0ENZMk75MDD51wB2UWUIMljtHxbJhV5A6UBC2v8x6iY0xdCGiIlyw== +"@graphql-codegen/core@^4.0.2": + version "4.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/core/-/core-4.0.2.tgz" + integrity sha512-IZbpkhwVqgizcjNiaVzNAzm/xbWT6YnGgeOLwVjm4KbJn3V2jchVtuzHH09G5/WkkLSk2wgbXNdwjM41JxO6Eg== dependencies: - "@graphql-tools/batch-execute" "^9.0.1" - "@graphql-tools/executor" "^1.0.0" + "@graphql-codegen/plugin-helpers" "^5.0.3" "@graphql-tools/schema" "^10.0.0" - "@graphql-tools/utils" "^10.0.5" - dataloader "^2.2.2" - tslib "^2.5.0" + "@graphql-tools/utils" "^10.0.0" + tslib "~2.6.0" -"@graphql-tools/executor-graphql-ws@^1.0.0": - version "1.1.0" - resolved "https://registry.npmjs.org/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-1.1.0.tgz" - integrity sha512-yM67SzwE8rYRpm4z4AuGtABlOp9mXXVy6sxXnTJRoYIdZrmDbKVfIY+CpZUJCqS0FX3xf2+GoHlsj7Qswaxgcg== +"@graphql-codegen/gql-tag-operations@4.0.17": + version "4.0.17" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/gql-tag-operations/-/gql-tag-operations-4.0.17.tgz" + integrity sha512-2pnvPdIG6W9OuxkrEZ6hvZd142+O3B13lvhrZ48yyEBh2ujtmKokw0eTwDHtlXUqjVS0I3q7+HB2y12G/m69CA== dependencies: - "@graphql-tools/utils" "^10.0.2" - "@types/ws" "^8.0.0" - graphql-ws "^5.14.0" - isomorphic-ws "^5.0.0" + "@graphql-codegen/plugin-helpers" "^5.1.0" + "@graphql-codegen/visitor-plugin-common" "5.8.0" + "@graphql-tools/utils" "^10.0.0" + auto-bind "~4.0.0" + tslib "~2.6.0" + +"@graphql-codegen/plugin-helpers@^3.0.0", "@graphql-codegen/plugin-helpers@^3.1.2": + version "3.1.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/plugin-helpers/-/plugin-helpers-3.1.2.tgz" + integrity sha512-emOQiHyIliVOIjKVKdsI5MXj312zmRDwmHpyUTZMjfpvxq/UVAHUJIVdVf+lnjjrI+LXBTgMlTWTgHQfmICxjg== + dependencies: + "@graphql-tools/utils" "^9.0.0" + change-case-all "1.0.15" + common-tags "1.8.2" + import-from "4.0.0" + lodash "~4.17.0" + tslib "~2.4.0" + +"@graphql-codegen/plugin-helpers@^5.0.3", "@graphql-codegen/plugin-helpers@^5.1.0", "@graphql-codegen/plugin-helpers@^5.1.1": + version "5.1.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/plugin-helpers/-/plugin-helpers-5.1.1.tgz" + integrity sha512-28GHODK2HY1NhdyRcPP3sCz0Kqxyfiz7boIZ8qIxFYmpLYnlDgiYok5fhFLVSZihyOpCs4Fa37gVHf/Q4I2FEg== + dependencies: + "@graphql-tools/utils" "^10.0.0" + change-case-all "1.0.15" + common-tags "1.8.2" + import-from "4.0.0" + lodash "~4.17.0" + tslib "~2.6.0" + +"@graphql-codegen/schema-ast@^4.0.2", "@graphql-codegen/schema-ast@^4.1.0": + version "4.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/schema-ast/-/schema-ast-4.1.0.tgz" + integrity sha512-kZVn0z+th9SvqxfKYgztA6PM7mhnSZaj4fiuBWvMTqA+QqQ9BBed6Pz41KuD/jr0gJtnlr2A4++/0VlpVbCTmQ== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.0.3" + "@graphql-tools/utils" "^10.0.0" + tslib "~2.6.0" + +"@graphql-codegen/typed-document-node@^5.1.1", "@graphql-codegen/typed-document-node@^5.1.2": + version "5.1.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/typed-document-node/-/typed-document-node-5.1.2.tgz" + integrity sha512-jaxfViDqFRbNQmfKwUY8hDyjnLTw2Z7DhGutxoOiiAI0gE/LfPe0LYaVFKVmVOOD7M3bWxoWfu4slrkbWbUbEw== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.1.0" + "@graphql-codegen/visitor-plugin-common" "5.8.0" + auto-bind "~4.0.0" + change-case-all "1.0.15" + tslib "~2.6.0" + +"@graphql-codegen/typescript-graphql-request@^6.3.0": + version "6.3.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/typescript-graphql-request/-/typescript-graphql-request-6.3.0.tgz" + integrity sha512-IX42XakdcbGosIQo0jkH/4Tj5hk5smDmACYHMJbuSAA9vlcJNHkl3LGyG1Ggy2qVSI20nmNMaxpTg74SSyb4Yg== + dependencies: + "@graphql-codegen/plugin-helpers" "^3.0.0" + "@graphql-codegen/visitor-plugin-common" "2.13.8" + auto-bind "~4.0.0" + tslib "^2.8.1" + +"@graphql-codegen/typescript-operations@^4.6.1": + version "4.6.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/typescript-operations/-/typescript-operations-4.6.1.tgz" + integrity sha512-k92laxhih7s0WZ8j5WMIbgKwhe64C0As6x+PdcvgZFMudDJ7rPJ/hFqJ9DCRxNjXoHmSjnr6VUuQZq4lT1RzCA== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.1.0" + "@graphql-codegen/typescript" "^4.1.6" + "@graphql-codegen/visitor-plugin-common" "5.8.0" + auto-bind "~4.0.0" + tslib "~2.6.0" + +"@graphql-codegen/typescript@^4.1.6": + version "4.1.6" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/typescript/-/typescript-4.1.6.tgz" + integrity sha512-vpw3sfwf9A7S+kIUjyFxuvrywGxd4lmwmyYnnDVjVE4kSQ6Td3DpqaPTy8aNQ6O96vFoi/bxbZS2BW49PwSUUA== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.1.0" + "@graphql-codegen/schema-ast" "^4.0.2" + "@graphql-codegen/visitor-plugin-common" "5.8.0" + auto-bind "~4.0.0" + tslib "~2.6.0" + +"@graphql-codegen/visitor-plugin-common@^5.8.0", "@graphql-codegen/visitor-plugin-common@5.8.0": + version "5.8.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-5.8.0.tgz" + integrity sha512-lC1E1Kmuzi3WZUlYlqB4fP6+CvbKH9J+haU1iWmgsBx5/sO2ROeXJG4Dmt8gP03bI2BwjiwV5WxCEMlyeuzLnA== + dependencies: + "@graphql-codegen/plugin-helpers" "^5.1.0" + "@graphql-tools/optimize" "^2.0.0" + "@graphql-tools/relay-operation-optimizer" "^7.0.0" + "@graphql-tools/utils" "^10.0.0" + auto-bind "~4.0.0" + change-case-all "1.0.15" + dependency-graph "^0.11.0" + graphql-tag "^2.11.0" + parse-filepath "^1.0.2" + tslib "~2.6.0" + +"@graphql-codegen/visitor-plugin-common@2.13.8": + version "2.13.8" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-codegen/visitor-plugin-common/-/visitor-plugin-common-2.13.8.tgz" + integrity sha512-IQWu99YV4wt8hGxIbBQPtqRuaWZhkQRG2IZKbMoSvh0vGeWb3dB0n0hSgKaOOxDY+tljtOf9MTcUYvJslQucMQ== + dependencies: + "@graphql-codegen/plugin-helpers" "^3.1.2" + "@graphql-tools/optimize" "^1.3.0" + "@graphql-tools/relay-operation-optimizer" "^6.5.0" + "@graphql-tools/utils" "^9.0.0" + auto-bind "~4.0.0" + change-case-all "1.0.15" + dependency-graph "^0.11.0" + graphql-tag "^2.11.0" + parse-filepath "^1.0.2" + tslib "~2.4.0" + +"@graphql-hive/signal@^1.0.0": + version "1.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-hive/signal/-/signal-1.0.0.tgz" + integrity sha512-RiwLMc89lTjvyLEivZ/qxAC5nBHoS2CtsWFSOsN35sxG9zoo5Z+JsFHM8MlvmO9yt+MJNIyC5MLE1rsbOphlag== + +"@graphql-tools/apollo-engine-loader@^8.0.0": + version "8.0.26" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/apollo-engine-loader/-/apollo-engine-loader-8.0.26.tgz" + integrity sha512-vNeWX/hGpHMVaDJNBbf7yhmy95ueZ3f4rUjl6v819Emsfo0ItnyTM2FmOPUwpWIm7DpCKCSt134ERy/fgo14rg== + dependencies: + "@graphql-tools/utils" "^10.10.3" + "@whatwg-node/fetch" "^0.10.13" + sync-fetch "0.6.0-2" tslib "^2.4.0" - ws "^8.13.0" -"@graphql-tools/executor-http@^1.0.5": - version "1.0.5" - resolved "https://registry.npmjs.org/@graphql-tools/executor-http/-/executor-http-1.0.5.tgz" - integrity sha512-roQyDLOAywyaCTPOhwXiT/WDr0bfuVhqOXjECsnrIl/1TMPDUYjiT2sW6Gz6pqnYMmokdhyvlV6D5d7WtIrKsA== +"@graphql-tools/batch-execute@^9.0.19": + version "9.0.19" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/batch-execute/-/batch-execute-9.0.19.tgz" + integrity sha512-VGamgY4PLzSx48IHPoblRw0oTaBa7S26RpZXt0Y4NN90ytoE0LutlpB2484RbkfcTjv9wa64QD474+YP1kEgGA== + dependencies: + "@graphql-tools/utils" "^10.9.1" + "@whatwg-node/promise-helpers" "^1.3.0" + dataloader "^2.2.3" + tslib "^2.8.1" + +"@graphql-tools/code-file-loader@^8.0.0": + version "8.1.26" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/code-file-loader/-/code-file-loader-8.1.26.tgz" + integrity sha512-VamhpBEbrABCjtJqEFBUrHBBVX4Iw7q4Ga8H3W0P7mO+sE1HuTfpWirSdBLlhc6nGcSyTb6FA1mEgGjjUASIHA== + dependencies: + "@graphql-tools/graphql-tag-pluck" "8.3.25" + "@graphql-tools/utils" "^10.10.3" + globby "^11.0.3" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/delegate@^10.2.23": + version "10.2.23" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/delegate/-/delegate-10.2.23.tgz" + integrity sha512-xrPtl7f1LxS+B6o+W7ueuQh67CwRkfl+UKJncaslnqYdkxKmNBB4wnzVcW8ZsRdwbsla/v43PtwAvSlzxCzq2w== + dependencies: + "@graphql-tools/batch-execute" "^9.0.19" + "@graphql-tools/executor" "^1.4.9" + "@graphql-tools/schema" "^10.0.25" + "@graphql-tools/utils" "^10.9.1" + "@repeaterjs/repeater" "^3.0.6" + "@whatwg-node/promise-helpers" "^1.3.0" + dataloader "^2.2.3" + dset "^3.1.2" + tslib "^2.8.1" + +"@graphql-tools/documents@^1.0.0": + version "1.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/documents/-/documents-1.0.1.tgz" + integrity sha512-aweoMH15wNJ8g7b2r4C4WRuJxZ0ca8HtNO54rkye/3duxTkW4fGBEutCx03jCIr5+a1l+4vFJNP859QnAVBVCA== + dependencies: + lodash.sortby "^4.7.0" + tslib "^2.4.0" + +"@graphql-tools/executor-common@^0.0.4": + version "0.0.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/executor-common/-/executor-common-0.0.4.tgz" + integrity sha512-SEH/OWR+sHbknqZyROCFHcRrbZeUAyjCsgpVWCRjqjqRbiJiXq6TxNIIOmpXgkrXWW/2Ev4Wms6YSGJXjdCs6Q== dependencies: - "@graphql-tools/utils" "^10.0.2" + "@envelop/core" "^5.2.3" + "@graphql-tools/utils" "^10.8.1" + +"@graphql-tools/executor-common@^0.0.6": + version "0.0.6" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/executor-common/-/executor-common-0.0.6.tgz" + integrity sha512-JAH/R1zf77CSkpYATIJw+eOJwsbWocdDjY+avY7G+P5HCXxwQjAjWVkJI1QJBQYjPQDVxwf1fmTZlIN3VOadow== + dependencies: + "@envelop/core" "^5.3.0" + "@graphql-tools/utils" "^10.9.1" + +"@graphql-tools/executor-graphql-ws@^2.0.1": + version "2.0.7" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/executor-graphql-ws/-/executor-graphql-ws-2.0.7.tgz" + integrity sha512-J27za7sKF6RjhmvSOwOQFeNhNHyP4f4niqPnerJmq73OtLx9Y2PGOhkXOEB0PjhvPJceuttkD2O1yMgEkTGs3Q== + dependencies: + "@graphql-tools/executor-common" "^0.0.6" + "@graphql-tools/utils" "^10.9.1" + "@whatwg-node/disposablestack" "^0.0.6" + graphql-ws "^6.0.6" + isomorphic-ws "^5.0.0" + tslib "^2.8.1" + ws "^8.18.3" + +"@graphql-tools/executor-http@^1.1.9": + version "1.3.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/executor-http/-/executor-http-1.3.3.tgz" + integrity sha512-LIy+l08/Ivl8f8sMiHW2ebyck59JzyzO/yF9SFS4NH6MJZUezA1xThUXCDIKhHiD56h/gPojbkpcFvM2CbNE7A== + dependencies: + "@graphql-hive/signal" "^1.0.0" + "@graphql-tools/executor-common" "^0.0.4" + "@graphql-tools/utils" "^10.8.1" "@repeaterjs/repeater" "^3.0.4" - "@whatwg-node/fetch" "^0.9.0" - extract-files "^11.0.0" + "@whatwg-node/disposablestack" "^0.0.6" + "@whatwg-node/fetch" "^0.10.4" + "@whatwg-node/promise-helpers" "^1.3.0" meros "^1.2.1" - tslib "^2.4.0" - value-or-promise "^1.0.12" + tslib "^2.8.1" -"@graphql-tools/executor-legacy-ws@^1.0.0": - version "1.0.5" - resolved "https://registry.npmjs.org/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-1.0.5.tgz" - integrity sha512-w54AZ7zkNuvpyV09FH+eGHnnAmaxhBVHg4Yh2ICcsMfRg0brkLt77PlbjBuxZ4HY8XZnKJaYWf+tKazQZtkQtg== +"@graphql-tools/executor-legacy-ws@^1.1.19": + version "1.1.23" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/executor-legacy-ws/-/executor-legacy-ws-1.1.23.tgz" + integrity sha512-wwS6ZlJDaC+zxE1DcfYrPJk1ynQ0xcbOWS/x8dy4hO6ZCjRawkogoqN3Muab0E9RzuwF29LRu+aOH6isO5mQKg== dependencies: - "@graphql-tools/utils" "^10.0.0" + "@graphql-tools/utils" "^10.10.3" "@types/ws" "^8.0.0" isomorphic-ws "^5.0.0" tslib "^2.4.0" - ws "^8.15.0" + ws "^8.17.1" -"@graphql-tools/executor@^1.0.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@graphql-tools/executor/-/executor-1.2.0.tgz" - integrity sha512-SKlIcMA71Dha5JnEWlw4XxcaJ+YupuXg0QCZgl2TOLFz4SkGCwU/geAsJvUJFwK2RbVLpQv/UMq67lOaBuwDtg== +"@graphql-tools/executor@^1.4.9": + version "1.4.13" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/executor/-/executor-1.4.13.tgz" + integrity sha512-2hTSRfH2kb4ua0ANOV/K6xUoCZsHAE6igE1bimtWUK7v0bowPIxGRKRPpF8JLbImpsJuTCC4HGOCMy7otg3FIQ== dependencies: - "@graphql-tools/utils" "^10.0.0" - "@graphql-typed-document-node/core" "3.2.0" + "@graphql-tools/utils" "^10.10.3" + "@graphql-typed-document-node/core" "^3.2.0" "@repeaterjs/repeater" "^3.0.4" + "@whatwg-node/disposablestack" "^0.0.6" + "@whatwg-node/promise-helpers" "^1.0.0" + tslib "^2.4.0" + +"@graphql-tools/git-loader@^8.0.0": + version "8.0.30" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/git-loader/-/git-loader-8.0.30.tgz" + integrity sha512-Rx3rphMFBKrILkCrjB6k5JF2z+3XYEnc5wUOw2rMxFAHBHeZjBfA6TDLUtd8EKnaf6h5y0pKpb+uZ72EYJaH2A== + dependencies: + "@graphql-tools/graphql-tag-pluck" "8.3.25" + "@graphql-tools/utils" "^10.10.3" + is-glob "4.0.3" + micromatch "^4.0.8" + tslib "^2.4.0" + unixify "^1.0.0" + +"@graphql-tools/github-loader@^8.0.0": + version "8.0.22" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/github-loader/-/github-loader-8.0.22.tgz" + integrity sha512-uQ4JNcNPsyMkTIgzeSbsoT9hogLjYrZooLUYd173l5eUGUi49EAcsGdiBCKaKfEjanv410FE8hjaHr7fjSRkJw== + dependencies: + "@graphql-tools/executor-http" "^1.1.9" + "@graphql-tools/graphql-tag-pluck" "^8.3.21" + "@graphql-tools/utils" "^10.9.1" + "@whatwg-node/fetch" "^0.10.0" + "@whatwg-node/promise-helpers" "^1.0.0" + sync-fetch "0.6.0-2" tslib "^2.4.0" - value-or-promise "^1.0.12" "@graphql-tools/graphql-file-loader@^8.0.0": version "8.0.0" - resolved "https://registry.npmjs.org/@graphql-tools/graphql-file-loader/-/graphql-file-loader-8.0.0.tgz" - integrity sha512-wRXj9Z1IFL3+zJG1HWEY0S4TXal7+s1vVhbZva96MSp0kbb/3JBF7j0cnJ44Eq0ClccMgGCDFqPFXty4JlpaPg== dependencies: "@graphql-tools/import" "7.0.0" "@graphql-tools/utils" "^10.0.0" @@ -493,10 +1069,21 @@ tslib "^2.4.0" unixify "^1.0.0" +"@graphql-tools/graphql-tag-pluck@^8.3.21", "@graphql-tools/graphql-tag-pluck@8.3.25": + version "8.3.25" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/graphql-tag-pluck/-/graphql-tag-pluck-8.3.25.tgz" + integrity sha512-b8oTBe0mDQDh3zPcKCkaTPmjLv1TJslBUKXPNLfu5CWS2+gL8Z/z0UuAhCe5gTveuKDJYjkEO7xcct9JfcDi4g== + dependencies: + "@babel/core" "^7.26.10" + "@babel/parser" "^7.26.10" + "@babel/plugin-syntax-import-assertions" "^7.26.0" + "@babel/traverse" "^7.26.10" + "@babel/types" "^7.26.10" + "@graphql-tools/utils" "^10.10.3" + tslib "^2.4.0" + "@graphql-tools/import@7.0.0": version "7.0.0" - resolved "https://registry.npmjs.org/@graphql-tools/import/-/import-7.0.0.tgz" - integrity sha512-NVZiTO8o1GZs6OXzNfjB+5CtQtqsZZpQOq+Uu0w57kdUkT4RlQKlwhT8T81arEsbV55KpzkpFsOZP7J1wdmhBw== dependencies: "@graphql-tools/utils" "^10.0.0" resolve-from "5.0.0" @@ -504,109 +1091,229 @@ "@graphql-tools/json-file-loader@^8.0.0": version "8.0.0" - resolved "https://registry.npmjs.org/@graphql-tools/json-file-loader/-/json-file-loader-8.0.0.tgz" - integrity sha512-ki6EF/mobBWJjAAC84xNrFMhNfnUFD6Y0rQMGXekrUgY0NdeYXHU0ZUgHzC9O5+55FslqUmAUHABePDHTyZsLg== dependencies: "@graphql-tools/utils" "^10.0.0" globby "^11.0.3" tslib "^2.4.0" unixify "^1.0.0" -"@graphql-tools/load@^8.0.0": - version "8.0.1" - resolved "https://registry.npmjs.org/@graphql-tools/load/-/load-8.0.1.tgz" - integrity sha512-qSMsKngJhDqRbuWyo3NvakEFqFL6+eSjy8ooJ1o5qYD26N7dqXkKzIMycQsX7rBK19hOuINAUSaRcVWH6hTccw== +"@graphql-tools/load@^8.1.0": + version "8.1.6" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/load/-/load-8.1.6.tgz" + integrity sha512-/bUYqGdB2Y6BflW42IjmauBDzxjec3LQmVAuImVGeiOqw1Rca/DDP7KRQe3vEv8yf/xMVj/PkIl+YRjoo12YxA== dependencies: - "@graphql-tools/schema" "^10.0.0" - "@graphql-tools/utils" "^10.0.11" + "@graphql-tools/schema" "^10.0.29" + "@graphql-tools/utils" "^10.10.3" p-limit "3.1.0" tslib "^2.4.0" -"@graphql-tools/merge@^9.0.0", "@graphql-tools/merge@^9.0.1": - version "9.0.1" - resolved "https://registry.npmjs.org/@graphql-tools/merge/-/merge-9.0.1.tgz" - integrity sha512-hIEExWO9fjA6vzsVjJ3s0cCQ+Q/BEeMVJZtMXd7nbaVefVy0YDyYlEkeoYYNV3NVVvu1G9lr6DM1Qd0DGo9Caw== +"@graphql-tools/merge@^9.0.0", "@graphql-tools/merge@^9.1.5": + version "9.1.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/merge/-/merge-9.1.5.tgz" + integrity sha512-eVcir6nCcOC/Wzv7ZAng3xec3dj6FehE8+h9TvgvUyrDEKVMdFfrO6etRFZ2hucWVcY8S6drx7zQx04N4lPM8Q== dependencies: - "@graphql-tools/utils" "^10.0.10" + "@graphql-tools/utils" "^10.10.3" tslib "^2.4.0" -"@graphql-tools/schema@^10.0.0": - version "10.0.2" - resolved "https://registry.npmjs.org/@graphql-tools/schema/-/schema-10.0.2.tgz" - integrity sha512-TbPsIZnWyDCLhgPGnDjt4hosiNU2mF/rNtSk5BVaXWnZqvKJ6gzJV4fcHcvhRIwtscDMW2/YTnK6dLVnk8pc4w== +"@graphql-tools/optimize@^1.3.0": + version "1.4.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/optimize/-/optimize-1.4.0.tgz" + integrity sha512-dJs/2XvZp+wgHH8T5J2TqptT9/6uVzIYvA6uFACha+ufvdMBedkfR4b4GbT8jAKLRARiqRTxy3dctnwkTM2tdw== dependencies: - "@graphql-tools/merge" "^9.0.1" - "@graphql-tools/utils" "^10.0.10" tslib "^2.4.0" - value-or-promise "^1.0.12" -"@graphql-tools/url-loader@^8.0.0": - version "8.0.1" - resolved "https://registry.npmjs.org/@graphql-tools/url-loader/-/url-loader-8.0.1.tgz" - integrity sha512-B2k8KQEkEQmfV1zhurT5GLoXo8jbXP+YQHUayhCSxKYlRV7j/1Fhp1b21PDM8LXIDGlDRXaZ0FbWKOs7eYXDuQ== - dependencies: - "@ardatan/sync-fetch" "^0.0.1" - "@graphql-tools/delegate" "^10.0.0" - "@graphql-tools/executor-graphql-ws" "^1.0.0" - "@graphql-tools/executor-http" "^1.0.5" - "@graphql-tools/executor-legacy-ws" "^1.0.0" - "@graphql-tools/utils" "^10.0.0" - "@graphql-tools/wrap" "^10.0.0" +"@graphql-tools/optimize@^2.0.0": + version "2.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/optimize/-/optimize-2.0.0.tgz" + integrity sha512-nhdT+CRGDZ+bk68ic+Jw1OZ99YCDIKYA5AlVAnBHJvMawSx9YQqQAIj4refNc1/LRieGiuWvhbG3jvPVYho0Dg== + dependencies: + tslib "^2.4.0" + +"@graphql-tools/prisma-loader@^8.0.0": + version "8.0.17" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/prisma-loader/-/prisma-loader-8.0.17.tgz" + integrity sha512-fnuTLeQhqRbA156pAyzJYN0KxCjKYRU5bz1q/SKOwElSnAU4k7/G1kyVsWLh7fneY78LoMNH5n+KlFV8iQlnyg== + dependencies: + "@graphql-tools/url-loader" "^8.0.15" + "@graphql-tools/utils" "^10.5.6" + "@types/js-yaml" "^4.0.0" + "@whatwg-node/fetch" "^0.10.0" + chalk "^4.1.0" + debug "^4.3.1" + dotenv "^16.0.0" + graphql-request "^6.0.0" + http-proxy-agent "^7.0.0" + https-proxy-agent "^7.0.0" + jose "^5.0.0" + js-yaml "^4.0.0" + lodash "^4.17.20" + scuid "^1.1.0" + tslib "^2.4.0" + yaml-ast-parser "^0.0.43" + +"@graphql-tools/relay-operation-optimizer@^6.5.0": + version "6.5.18" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-6.5.18.tgz" + integrity sha512-mc5VPyTeV+LwiM+DNvoDQfPqwQYhPV/cl5jOBjTgSniyaq8/86aODfMkrE2OduhQ5E00hqrkuL2Fdrgk0w1QJg== + dependencies: + "@ardatan/relay-compiler" "12.0.0" + "@graphql-tools/utils" "^9.2.1" + tslib "^2.4.0" + +"@graphql-tools/relay-operation-optimizer@^7.0.0": + version "7.0.25" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/relay-operation-optimizer/-/relay-operation-optimizer-7.0.25.tgz" + integrity sha512-1S7qq9eyO6ygPNWX2lZd+oxbpl63OhnTTw8+t5OWprM2Tzws9HEosLUpsMR85z1gbezeKtUDt9a2bsSyu4MMFg== + dependencies: + "@ardatan/relay-compiler" "^12.0.3" + "@graphql-tools/utils" "^10.10.3" + tslib "^2.4.0" + +"@graphql-tools/schema@^10.0.0", "@graphql-tools/schema@^10.0.25", "@graphql-tools/schema@^10.0.29": + version "10.0.29" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/schema/-/schema-10.0.29.tgz" + integrity sha512-+Htiupnq6U/AWOEAJerIOGT1pAf4u43Q3n2JmFpqFfYJchz6sKWZ7L9Lpe/NusaaUQty/IOF+eQlNFypEaWxhg== + dependencies: + "@graphql-tools/merge" "^9.1.5" + "@graphql-tools/utils" "^10.10.3" + tslib "^2.4.0" + +"@graphql-tools/url-loader@^8.0.0", "@graphql-tools/url-loader@^8.0.15": + version "8.0.33" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/url-loader/-/url-loader-8.0.33.tgz" + integrity sha512-Fu626qcNHcqAj8uYd7QRarcJn5XZ863kmxsg1sm0fyjyfBJnsvC7ddFt6Hayz5kxVKfsnjxiDfPMXanvsQVBKw== + dependencies: + "@graphql-tools/executor-graphql-ws" "^2.0.1" + "@graphql-tools/executor-http" "^1.1.9" + "@graphql-tools/executor-legacy-ws" "^1.1.19" + "@graphql-tools/utils" "^10.9.1" + "@graphql-tools/wrap" "^10.0.16" "@types/ws" "^8.0.0" - "@whatwg-node/fetch" "^0.9.0" + "@whatwg-node/fetch" "^0.10.0" + "@whatwg-node/promise-helpers" "^1.0.0" isomorphic-ws "^5.0.0" + sync-fetch "0.6.0-2" tslib "^2.4.0" - value-or-promise "^1.0.11" - ws "^8.12.0" + ws "^8.17.1" -"@graphql-tools/utils@^10.0.0", "@graphql-tools/utils@^10.0.10", "@graphql-tools/utils@^10.0.11", "@graphql-tools/utils@^10.0.2", "@graphql-tools/utils@^10.0.5": +"@graphql-tools/utils@^10.0.0": version "10.0.11" - resolved "https://registry.npmjs.org/@graphql-tools/utils/-/utils-10.0.11.tgz" - integrity sha512-vVjXgKn6zjXIlYBd7yJxCVMYGb5j18gE3hx3Qw3mNsSEsYQXbJbPdlwb7Fc9FogsJei5AaqiQerqH4kAosp1nQ== dependencies: "@graphql-typed-document-node/core" "^3.1.1" cross-inspect "1.0.0" dset "^3.1.2" tslib "^2.4.0" -"@graphql-tools/wrap@^10.0.0": - version "10.0.1" - resolved "https://registry.npmjs.org/@graphql-tools/wrap/-/wrap-10.0.1.tgz" - integrity sha512-Cw6hVrKGM2OKBXeuAGltgy4tzuqQE0Nt7t/uAqnuokSXZhMHXJUb124Bnvxc2gPZn5chfJSDafDe4Cp8ZAVJgg== +"@graphql-tools/utils@^10.10.3": + version "10.10.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz" + integrity sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ== dependencies: - "@graphql-tools/delegate" "^10.0.3" - "@graphql-tools/schema" "^10.0.0" - "@graphql-tools/utils" "^10.0.0" + "@graphql-typed-document-node/core" "^3.1.1" + "@whatwg-node/promise-helpers" "^1.0.0" + cross-inspect "1.0.1" + tslib "^2.4.0" + +"@graphql-tools/utils@^10.5.6": + version "10.10.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz" + integrity sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + "@whatwg-node/promise-helpers" "^1.0.0" + cross-inspect "1.0.1" + tslib "^2.4.0" + +"@graphql-tools/utils@^10.8.1": + version "10.10.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz" + integrity sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + "@whatwg-node/promise-helpers" "^1.0.0" + cross-inspect "1.0.1" + tslib "^2.4.0" + +"@graphql-tools/utils@^10.9.1": + version "10.10.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-10.10.3.tgz" + integrity sha512-2EdYiefeLLxsoeZTukSNZJ0E/Z5NnWBUGK2VJa0DQj1scDhVd93HeT1eW9TszJOYmIh3eWAKLv58ri/1XUmdsQ== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + "@whatwg-node/promise-helpers" "^1.0.0" + cross-inspect "1.0.1" + tslib "^2.4.0" + +"@graphql-tools/utils@^9.0.0", "@graphql-tools/utils@^9.2.1": + version "9.2.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/utils/-/utils-9.2.1.tgz" + integrity sha512-WUw506Ql6xzmOORlriNrD6Ugx+HjVgYxt9KCXD9mHAak+eaXSwuGGPyE60hy9xaDEoXKBsG7SkG69ybitaVl6A== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" tslib "^2.4.0" - value-or-promise "^1.0.12" -"@graphql-typed-document-node/core@^3.1.1", "@graphql-typed-document-node/core@3.2.0": +"@graphql-tools/wrap@^10.0.16": + version "10.1.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@graphql-tools/wrap/-/wrap-10.1.4.tgz" + integrity sha512-7pyNKqXProRjlSdqOtrbnFRMQAVamCmEREilOXtZujxY6kYit3tvWWSjUrcIOheltTffoRh7EQSjpy2JDCzasg== + dependencies: + "@graphql-tools/delegate" "^10.2.23" + "@graphql-tools/schema" "^10.0.25" + "@graphql-tools/utils" "^10.9.1" + "@whatwg-node/promise-helpers" "^1.3.0" + tslib "^2.8.1" + +"@graphql-typed-document-node/core@^3.1.1", "@graphql-typed-document-node/core@^3.2.0", "@graphql-typed-document-node/core@3.2.0": version "3.2.0" resolved "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz" integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== -"@humanwhocodes/config-array@^0.11.14": - version "0.11.14" - resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.14.tgz" - integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== +"@humanfs/core@^0.19.1": + version "0.19.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@humanfs/core/-/core-0.19.1.tgz" + integrity sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA== + +"@humanfs/node@^0.16.6": + version "0.16.7" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@humanfs/node/-/node-0.16.7.tgz" + integrity sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ== dependencies: - "@humanwhocodes/object-schema" "^2.0.2" - debug "^4.3.1" - minimatch "^3.0.5" + "@humanfs/core" "^0.19.1" + "@humanwhocodes/retry" "^0.4.0" "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^2.0.2": - version "2.0.2" - resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz" - integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== +"@humanwhocodes/retry@^0.4.0", "@humanwhocodes/retry@^0.4.2": + version "0.4.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@humanwhocodes/retry/-/retry-0.4.3.tgz" + integrity sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ== + +"@inquirer/external-editor@^1.0.0": + version "1.0.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@inquirer/external-editor/-/external-editor-1.0.3.tgz" + integrity sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA== + dependencies: + chardet "^2.1.1" + iconv-lite "^0.7.0" + +"@isaacs/cliui@^8.0.2": + version "8.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@isaacs/cliui/-/cliui-8.0.2.tgz" + integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== + dependencies: + string-width "^5.1.2" + string-width-cjs "npm:string-width@^4.2.0" + strip-ansi "^7.0.1" + strip-ansi-cjs "npm:strip-ansi@^6.0.1" + wrap-ansi "^8.1.0" + wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" - resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz" integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== dependencies: camelcase "^5.3.1" @@ -615,231 +1322,259 @@ js-yaml "^3.13.1" resolve-from "^5.0.0" -"@istanbuljs/schema@^0.1.2": +"@istanbuljs/schema@^0.1.2", "@istanbuljs/schema@^0.1.3": version "0.1.3" - resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@istanbuljs/schema/-/schema-0.1.3.tgz" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz" - integrity sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg== +"@jest/console@30.2.0": + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/console/-/console-30.2.0.tgz" + integrity sha512-+O1ifRjkvYIkBqASKWgLxrpEhQAAE7hY77ALLUufSk5717KfOShg6IbqLmdsLMPdUiFvA2kTs0R7YZy+l0IzZQ== dependencies: - "@jest/types" "^29.6.3" + "@jest/types" "30.2.0" "@types/node" "*" - chalk "^4.0.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" + chalk "^4.1.2" + jest-message-util "30.2.0" + jest-util "30.2.0" slash "^3.0.0" -"@jest/core@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz" - integrity sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg== - dependencies: - "@jest/console" "^29.7.0" - "@jest/reporters" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" +"@jest/core@30.2.0": + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/core/-/core-30.2.0.tgz" + integrity sha512-03W6IhuhjqTlpzh/ojut/pDB2LPRygyWX8ExpgHtQA8H/3K7+1vKmcINx5UzeOX1se6YEsBsOHQ1CRzf3fOwTQ== + dependencies: + "@jest/console" "30.2.0" + "@jest/pattern" "30.0.1" + "@jest/reporters" "30.2.0" + "@jest/test-result" "30.2.0" + "@jest/transform" "30.2.0" + "@jest/types" "30.2.0" "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" - ci-info "^3.2.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-changed-files "^29.7.0" - jest-config "^29.7.0" - jest-haste-map "^29.7.0" - jest-message-util "^29.7.0" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-resolve-dependencies "^29.7.0" - jest-runner "^29.7.0" - jest-runtime "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - jest-watcher "^29.7.0" - micromatch "^4.0.4" - pretty-format "^29.7.0" + ansi-escapes "^4.3.2" + chalk "^4.1.2" + ci-info "^4.2.0" + exit-x "^0.2.2" + graceful-fs "^4.2.11" + jest-changed-files "30.2.0" + jest-config "30.2.0" + jest-haste-map "30.2.0" + jest-message-util "30.2.0" + jest-regex-util "30.0.1" + jest-resolve "30.2.0" + jest-resolve-dependencies "30.2.0" + jest-runner "30.2.0" + jest-runtime "30.2.0" + jest-snapshot "30.2.0" + jest-util "30.2.0" + jest-validate "30.2.0" + jest-watcher "30.2.0" + micromatch "^4.0.8" + pretty-format "30.2.0" slash "^3.0.0" - strip-ansi "^6.0.0" -"@jest/environment@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz" - integrity sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw== +"@jest/diff-sequences@30.0.1": + version "30.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz" + integrity sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw== + +"@jest/environment@30.2.0": + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/environment/-/environment-30.2.0.tgz" + integrity sha512-/QPTL7OBJQ5ac09UDRa3EQes4gt1FTEG/8jZ/4v5IVzx+Cv7dLxlVIvfvSVRiiX2drWyXeBjkMSR8hvOWSog5g== dependencies: - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" + "@jest/fake-timers" "30.2.0" + "@jest/types" "30.2.0" "@types/node" "*" - jest-mock "^29.7.0" + jest-mock "30.2.0" -"@jest/expect-utils@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz" - integrity sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA== +"@jest/expect-utils@30.2.0": + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/expect-utils/-/expect-utils-30.2.0.tgz" + integrity sha512-1JnRfhqpD8HGpOmQp180Fo9Zt69zNtC+9lR+kT7NVL05tNXIi+QC8Csz7lfidMoVLPD3FnOtcmp0CEFnxExGEA== dependencies: - jest-get-type "^29.6.3" + "@jest/get-type" "30.1.0" -"@jest/expect@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz" - integrity sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ== +"@jest/expect@30.2.0": + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/expect/-/expect-30.2.0.tgz" + integrity sha512-V9yxQK5erfzx99Sf+7LbhBwNWEZ9eZay8qQ9+JSC0TrMR1pMDHLMY+BnVPacWU6Jamrh252/IKo4F1Xn/zfiqA== dependencies: - expect "^29.7.0" - jest-snapshot "^29.7.0" + expect "30.2.0" + jest-snapshot "30.2.0" -"@jest/fake-timers@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz" - integrity sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ== +"@jest/fake-timers@30.2.0": + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/fake-timers/-/fake-timers-30.2.0.tgz" + integrity sha512-HI3tRLjRxAbBy0VO8dqqm7Hb2mIa8d5bg/NJkyQcOk7V118ObQML8RC5luTF/Zsg4474a+gDvhce7eTnP4GhYw== dependencies: - "@jest/types" "^29.6.3" - "@sinonjs/fake-timers" "^10.0.2" + "@jest/types" "30.2.0" + "@sinonjs/fake-timers" "^13.0.0" "@types/node" "*" - jest-message-util "^29.7.0" - jest-mock "^29.7.0" - jest-util "^29.7.0" - -"@jest/globals@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz" - integrity sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ== + jest-message-util "30.2.0" + jest-mock "30.2.0" + jest-util "30.2.0" + +"@jest/get-type@30.1.0": + version "30.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/get-type/-/get-type-30.1.0.tgz" + integrity sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA== + +"@jest/globals@30.2.0": + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/globals/-/globals-30.2.0.tgz" + integrity sha512-b63wmnKPaK+6ZZfpYhz9K61oybvbI1aMcIs80++JI1O1rR1vaxHUCNqo3ITu6NU0d4V34yZFoHMn/uoKr/Rwfw== + dependencies: + "@jest/environment" "30.2.0" + "@jest/expect" "30.2.0" + "@jest/types" "30.2.0" + jest-mock "30.2.0" + +"@jest/pattern@30.0.1": + version "30.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/pattern/-/pattern-30.0.1.tgz" + integrity sha512-gWp7NfQW27LaBQz3TITS8L7ZCQ0TLvtmI//4OwlQRx4rnWxcPNIYjxZpDcN4+UlGxgm3jS5QPz8IPTCkb59wZA== dependencies: - "@jest/environment" "^29.7.0" - "@jest/expect" "^29.7.0" - "@jest/types" "^29.6.3" - jest-mock "^29.7.0" + "@types/node" "*" + jest-regex-util "30.0.1" -"@jest/reporters@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz" - integrity sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg== +"@jest/reporters@30.2.0": + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/reporters/-/reporters-30.2.0.tgz" + integrity sha512-DRyW6baWPqKMa9CzeiBjHwjd8XeAyco2Vt8XbcLFjiwCOEKOvy82GJ8QQnJE9ofsxCMPjH4MfH8fCWIHHDKpAQ== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - "@jridgewell/trace-mapping" "^0.3.18" + "@jest/console" "30.2.0" + "@jest/test-result" "30.2.0" + "@jest/transform" "30.2.0" + "@jest/types" "30.2.0" + "@jridgewell/trace-mapping" "^0.3.25" "@types/node" "*" - chalk "^4.0.0" - collect-v8-coverage "^1.0.0" - exit "^0.1.2" - glob "^7.1.3" - graceful-fs "^4.2.9" + chalk "^4.1.2" + collect-v8-coverage "^1.0.2" + exit-x "^0.2.2" + glob "^10.3.10" + graceful-fs "^4.2.11" istanbul-lib-coverage "^3.0.0" istanbul-lib-instrument "^6.0.0" istanbul-lib-report "^3.0.0" - istanbul-lib-source-maps "^4.0.0" + istanbul-lib-source-maps "^5.0.0" istanbul-reports "^3.1.3" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - jest-worker "^29.7.0" + jest-message-util "30.2.0" + jest-util "30.2.0" + jest-worker "30.2.0" slash "^3.0.0" - string-length "^4.0.1" - strip-ansi "^6.0.0" + string-length "^4.0.2" v8-to-istanbul "^9.0.1" -"@jest/schemas@^29.6.3": - version "29.6.3" - resolved "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz" - integrity sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA== +"@jest/schemas@30.0.5": + version "30.0.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/schemas/-/schemas-30.0.5.tgz" + integrity sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA== dependencies: - "@sinclair/typebox" "^0.27.8" + "@sinclair/typebox" "^0.34.0" -"@jest/source-map@^29.6.3": - version "29.6.3" - resolved "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz" - integrity sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw== +"@jest/snapshot-utils@30.2.0": + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/snapshot-utils/-/snapshot-utils-30.2.0.tgz" + integrity sha512-0aVxM3RH6DaiLcjj/b0KrIBZhSX1373Xci4l3cW5xiUWPctZ59zQ7jj4rqcJQ/Z8JuN/4wX3FpJSa3RssVvCug== dependencies: - "@jridgewell/trace-mapping" "^0.3.18" - callsites "^3.0.0" - graceful-fs "^4.2.9" - -"@jest/test-result@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz" - integrity sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA== - dependencies: - "@jest/console" "^29.7.0" - "@jest/types" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - collect-v8-coverage "^1.0.0" - -"@jest/test-sequencer@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz" - integrity sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw== - dependencies: - "@jest/test-result" "^29.7.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" + "@jest/types" "30.2.0" + chalk "^4.1.2" + graceful-fs "^4.2.11" + natural-compare "^1.4.0" + +"@jest/source-map@30.0.1": + version "30.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/source-map/-/source-map-30.0.1.tgz" + integrity sha512-MIRWMUUR3sdbP36oyNyhbThLHyJ2eEDClPCiHVbrYAe5g3CHRArIVpBw7cdSB5fr+ofSfIb2Tnsw8iEHL0PYQg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.25" + callsites "^3.1.0" + graceful-fs "^4.2.11" + +"@jest/test-result@30.2.0": + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/test-result/-/test-result-30.2.0.tgz" + integrity sha512-RF+Z+0CCHkARz5HT9mcQCBulb1wgCP3FBvl9VFokMX27acKphwyQsNuWH3c+ojd1LeWBLoTYoxF0zm6S/66mjg== + dependencies: + "@jest/console" "30.2.0" + "@jest/types" "30.2.0" + "@types/istanbul-lib-coverage" "^2.0.6" + collect-v8-coverage "^1.0.2" + +"@jest/test-sequencer@30.2.0": + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/test-sequencer/-/test-sequencer-30.2.0.tgz" + integrity sha512-wXKgU/lk8fKXMu/l5Hog1R61bL4q5GCdT6OJvdAFz1P+QrpoFuLU68eoKuVc4RbrTtNnTL5FByhWdLgOPSph+Q== + dependencies: + "@jest/test-result" "30.2.0" + graceful-fs "^4.2.11" + jest-haste-map "30.2.0" slash "^3.0.0" -"@jest/transform@^29.7.0": - version "29.7.0" - resolved "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz" - integrity sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw== +"@jest/transform@30.2.0": + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/transform/-/transform-30.2.0.tgz" + integrity sha512-XsauDV82o5qXbhalKxD7p4TZYYdwcaEXC77PPD2HixEFF+6YGppjrAAQurTl2ECWcEomHBMMNS9AH3kcCFx8jA== dependencies: - "@babel/core" "^7.11.6" - "@jest/types" "^29.6.3" - "@jridgewell/trace-mapping" "^0.3.18" - babel-plugin-istanbul "^6.1.1" - chalk "^4.0.0" + "@babel/core" "^7.27.4" + "@jest/types" "30.2.0" + "@jridgewell/trace-mapping" "^0.3.25" + babel-plugin-istanbul "^7.0.1" + chalk "^4.1.2" convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - micromatch "^4.0.4" - pirates "^4.0.4" + graceful-fs "^4.2.11" + jest-haste-map "30.2.0" + jest-regex-util "30.0.1" + jest-util "30.2.0" + micromatch "^4.0.8" + pirates "^4.0.7" slash "^3.0.0" - write-file-atomic "^4.0.2" + write-file-atomic "^5.0.1" -"@jest/types@^29.0.0", "@jest/types@^29.6.3": - version "29.6.3" - resolved "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz" - integrity sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw== +"@jest/types@30.2.0": + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jest/types/-/types-30.2.0.tgz" + integrity sha512-H9xg1/sfVvyfU7o3zMfBEjQ1gcsdeTMgqHoYdN79tuLqfTtuu7WckRA1R5whDwOzxaZAeMKTYWqP+WCAi0CHsg== dependencies: - "@jest/schemas" "^29.6.3" - "@types/istanbul-lib-coverage" "^2.0.0" - "@types/istanbul-reports" "^3.0.0" + "@jest/pattern" "30.0.1" + "@jest/schemas" "30.0.5" + "@types/istanbul-lib-coverage" "^2.0.6" + "@types/istanbul-reports" "^3.0.4" "@types/node" "*" - "@types/yargs" "^17.0.8" - chalk "^4.0.0" + "@types/yargs" "^17.0.33" + chalk "^4.1.2" -"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": - version "0.3.3" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz" - integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== +"@jridgewell/gen-mapping@^0.3.12", "@jridgewell/gen-mapping@^0.3.5": + version "0.3.13" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz" + integrity sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA== dependencies: - "@jridgewell/set-array" "^1.0.1" - "@jridgewell/sourcemap-codec" "^1.4.10" - "@jridgewell/trace-mapping" "^0.3.9" + "@jridgewell/sourcemap-codec" "^1.5.0" + "@jridgewell/trace-mapping" "^0.3.24" + +"@jridgewell/remapping@^2.3.5": + version "2.3.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jridgewell/remapping/-/remapping-2.3.5.tgz" + integrity sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ== + dependencies: + "@jridgewell/gen-mapping" "^0.3.5" + "@jridgewell/trace-mapping" "^0.3.24" "@jridgewell/resolve-uri@^3.0.3", "@jridgewell/resolve-uri@^3.1.0": version "3.1.1" - resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz" - integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== - -"@jridgewell/set-array@^1.0.1": - version "1.1.2" - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" - integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== -"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": - version "1.4.15" - resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" - integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": + version "1.5.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz" + integrity sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og== -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.20" - resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz" - integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.23", "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25", "@jridgewell/trace-mapping@^0.3.28": + version "0.3.31" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz" + integrity sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -852,21 +1587,15 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@kamilkisiela/fast-url-parser@^1.1.4": - version "1.1.4" - resolved "https://registry.npmjs.org/@kamilkisiela/fast-url-parser/-/fast-url-parser-1.1.4.tgz" - integrity sha512-gbkePEBupNydxCelHCESvFSFM8XPh1Zs/OAVRW/rKpEqPAl5PbOM90Si8mv9bvnR53uPD2s/FiRxdvSejpRJew== - -"@mswjs/interceptors@^0.38.1": - version "0.38.4" - resolved "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.38.4.tgz" - integrity sha512-Y6rXhnVvrgbAbWcjU/t2Pc3/3SXTD8anvW8/H3tUrkqqSc67Wi1wZ9jXENdtUefXCfHkPYBy8ebeDLfpyz2MdA== +"@mswjs/interceptors@^0.39.5": + version "0.39.8" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@mswjs/interceptors/-/interceptors-0.39.8.tgz" + integrity sha512-2+BzZbjRO7Ct61k8fMNHEtoKjeWI9pIlHFTqBwZ5icHpqszIgEZbjb1MW5Z0+bITTCTl3gk4PDBxs9tA/csXvA== dependencies: "@open-draft/deferred-promise" "^2.2.0" "@open-draft/logger" "^0.3.0" "@open-draft/until" "^2.0.0" is-node-process "^1.2.0" - jsdom "^26.0.0" outvariant "^1.4.3" strict-event-emitter "^0.5.1" @@ -883,7 +1612,7 @@ resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": +"@nodelib/fs.walk@^1.2.3": version "1.2.8" resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== @@ -891,125 +1620,109 @@ "@nodelib/fs.scandir" "2.1.5" fastq "^1.6.0" -"@octokit/auth-token@^3.0.0": - version "3.0.4" - resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-3.0.4.tgz" - integrity sha512-TWFX7cZF2LXoCvdmJWY7XVPi74aSY0+FfBZNSXEXFkMpjcqsQwDSYVv5FhRFaI0V1ECnwbz4j59T/G+rXNWaIQ== - -"@octokit/core@^4.2.1", "@octokit/core@>=3", "@octokit/core@>=4": - version "4.2.4" - resolved "https://registry.npmjs.org/@octokit/core/-/core-4.2.4.tgz" - integrity sha512-rYKilwgzQ7/imScn3M9/pFfUf4I1AZEH3KhyJmtPdE2zfaXAn2mFfUy4FbKewzc2We5y/LlKLj36fWJLKC2SIQ== - dependencies: - "@octokit/auth-token" "^3.0.0" - "@octokit/graphql" "^5.0.0" - "@octokit/request" "^6.0.0" - "@octokit/request-error" "^3.0.0" - "@octokit/types" "^9.0.0" +"@octokit/auth-token@^4.0.0": + version "4.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/auth-token/-/auth-token-4.0.0.tgz" + integrity sha512-tY/msAuJo6ARbK6SPIxZrPBms3xPbfwBrulZe0Wtr/DIY9lje2HeV1uoebShn6mx7SjCHif6EjMvoREj+gZ+SA== + +"@octokit/core@^5.0.2": + version "5.2.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/core/-/core-5.2.2.tgz" + integrity sha512-/g2d4sW9nUDJOMz3mabVQvOGhVa4e/BN/Um7yca9Bb2XTzPPnfTWHWQg+IsEYO7M3Vx+EXvaM/I2pJWIMun1bg== + dependencies: + "@octokit/auth-token" "^4.0.0" + "@octokit/graphql" "^7.1.0" + "@octokit/request" "^8.4.1" + "@octokit/request-error" "^5.1.1" + "@octokit/types" "^13.0.0" before-after-hook "^2.2.0" universal-user-agent "^6.0.0" -"@octokit/endpoint@^7.0.0": - version "7.0.6" - resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-7.0.6.tgz" - integrity sha512-5L4fseVRUsDFGR00tMWD/Trdeeihn999rTMGRMC1G/Ldi1uWlWJzI98H4Iak5DB/RVvQuyMYKqSK/R6mbSOQyg== +"@octokit/endpoint@^9.0.6": + version "9.0.6" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/endpoint/-/endpoint-9.0.6.tgz" + integrity sha512-H1fNTMA57HbkFESSt3Y9+FBICv+0jFceJFPWDePYlR/iMGrwM5ph+Dd4XRQs+8X+PUFURLQgX9ChPfhJ/1uNQw== dependencies: - "@octokit/types" "^9.0.0" - is-plain-object "^5.0.0" + "@octokit/types" "^13.1.0" universal-user-agent "^6.0.0" -"@octokit/graphql@^5.0.0": - version "5.0.6" - resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-5.0.6.tgz" - integrity sha512-Fxyxdy/JH0MnIB5h+UQ3yCoh1FG4kWXfFKkpWqjZHw/p+Kc8Y44Hu/kCgNBT6nU1shNumEchmW/sUO1JuQnPcw== +"@octokit/graphql@^7.1.0": + version "7.1.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/graphql/-/graphql-7.1.1.tgz" + integrity sha512-3mkDltSfcDUoa176nlGoA32RGjeWjl3K7F/BwHwRMJUW/IteSa4bnSV8p2ThNkcIcZU2umkZWxwETSSCJf2Q7g== dependencies: - "@octokit/request" "^6.0.0" - "@octokit/types" "^9.0.0" + "@octokit/request" "^8.4.1" + "@octokit/types" "^13.0.0" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^18.0.0": - version "18.1.1" - resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-18.1.1.tgz" - integrity sha512-VRaeH8nCDtF5aXWnjPuEMIYf1itK/s3JYyJcWFJT8X9pSNnBtriDf7wlEWsGuhPLl4QIH4xM8fqTXDwJ3Mu6sw== +"@octokit/openapi-types@^24.2.0": + version "24.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/openapi-types/-/openapi-types-24.2.0.tgz" + integrity sha512-9sIH3nSUttelJSXUrmGzl7QUBFul0/mB8HRYl3fOlgHbIWG+WnYDXU3v/2zMtAvuzZ/ed00Ei6on975FhBfzrg== -"@octokit/plugin-paginate-rest@^6.1.2": - version "6.1.2" - resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-6.1.2.tgz" - integrity sha512-qhrmtQeHU/IivxucOV1bbI/xZyC/iOBhclokv7Sut5vnejAIAEXVcGQeRpQlU39E0WwK9lNvJHphHri/DB6lbQ== +"@octokit/plugin-paginate-rest@11.4.4-cjs.2": + version "11.4.4-cjs.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-11.4.4-cjs.2.tgz" + integrity sha512-2dK6z8fhs8lla5PaOTgqfCGBxgAv/le+EhPs27KklPhm1bKObpu6lXzwfUEQ16ajXzqNrKMujsFyo9K2eaoISw== dependencies: - "@octokit/tsconfig" "^1.0.2" - "@octokit/types" "^9.2.3" + "@octokit/types" "^13.7.0" -"@octokit/plugin-request-log@^1.0.4": - version "1.0.4" - resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz" - integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== +"@octokit/plugin-request-log@^4.0.0": + version "4.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/plugin-request-log/-/plugin-request-log-4.0.1.tgz" + integrity sha512-GihNqNpGHorUrO7Qa9JbAl0dbLnqJVrV8OXe2Zm5/Y4wFkZQDfTreBzVmiRfJVfE4mClXdihHnbpyyO9FSX4HA== -"@octokit/plugin-rest-endpoint-methods@^7.1.2": - version "7.2.3" - resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-7.2.3.tgz" - integrity sha512-I5Gml6kTAkzVlN7KCtjOM+Ruwe/rQppp0QU372K1GP7kNOYEKe8Xn5BW4sE62JAHdwpq95OQK/qGNyKQMUzVgA== +"@octokit/plugin-rest-endpoint-methods@13.3.2-cjs.1": + version "13.3.2-cjs.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-13.3.2-cjs.1.tgz" + integrity sha512-VUjIjOOvF2oELQmiFpWA1aOPdawpyaCUqcEBc/UOUnj3Xp6DJGrJ1+bjUIIDzdHjnFNO6q57ODMfdEZnoBkCwQ== dependencies: - "@octokit/types" "^10.0.0" + "@octokit/types" "^13.8.0" -"@octokit/request-error@^3.0.0": - version "3.0.3" - resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-3.0.3.tgz" - integrity sha512-crqw3V5Iy2uOU5Np+8M/YexTlT8zxCfI+qu+LxUB7SZpje4Qmx3mub5DfEKSO8Ylyk0aogi6TYdf6kxzh2BguQ== +"@octokit/request-error@^5.1.1": + version "5.1.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/request-error/-/request-error-5.1.1.tgz" + integrity sha512-v9iyEQJH6ZntoENr9/yXxjuezh4My67CBSu9r6Ve/05Iu5gNgnisNWOsoJHTP6k0Rr0+HQIpnH+kyammu90q/g== dependencies: - "@octokit/types" "^9.0.0" + "@octokit/types" "^13.1.0" deprecation "^2.0.0" once "^1.4.0" -"@octokit/request@^6.0.0": - version "6.2.8" - resolved "https://registry.npmjs.org/@octokit/request/-/request-6.2.8.tgz" - integrity sha512-ow4+pkVQ+6XVVsekSYBzJC0VTVvh/FCTUUgTsboGq+DTeWdyIFV8WSCdo0RIxk6wSkBTHqIK1mYuY7nOBXOchw== +"@octokit/request@^8.4.1": + version "8.4.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/request/-/request-8.4.1.tgz" + integrity sha512-qnB2+SY3hkCmBxZsR/MPCybNmbJe4KAlfWErXq+rBKkQJlbjdJeS85VI9r8UqeLYLvnAenU8Q1okM/0MBsAGXw== dependencies: - "@octokit/endpoint" "^7.0.0" - "@octokit/request-error" "^3.0.0" - "@octokit/types" "^9.0.0" - is-plain-object "^5.0.0" - node-fetch "^2.6.7" + "@octokit/endpoint" "^9.0.6" + "@octokit/request-error" "^5.1.1" + "@octokit/types" "^13.1.0" universal-user-agent "^6.0.0" -"@octokit/rest@^19.0.7": - version "19.0.13" - resolved "https://registry.npmjs.org/@octokit/rest/-/rest-19.0.13.tgz" - integrity sha512-/EzVox5V9gYGdbAI+ovYj3nXQT1TtTHRT+0eZPcuC05UFSWO3mdO9UY1C0i2eLF9Un1ONJkAk+IEtYGAC+TahA== - dependencies: - "@octokit/core" "^4.2.1" - "@octokit/plugin-paginate-rest" "^6.1.2" - "@octokit/plugin-request-log" "^1.0.4" - "@octokit/plugin-rest-endpoint-methods" "^7.1.2" - -"@octokit/tsconfig@^1.0.2": - version "1.0.2" - resolved "https://registry.npmjs.org/@octokit/tsconfig/-/tsconfig-1.0.2.tgz" - integrity sha512-I0vDR0rdtP8p2lGMzvsJzbhdOWy405HcGovrspJ8RRibHnyRgggUSNO5AIox5LmqiwmatHKYsvj6VGFHkqS7lA== - -"@octokit/types@^10.0.0": - version "10.0.0" - resolved "https://registry.npmjs.org/@octokit/types/-/types-10.0.0.tgz" - integrity sha512-Vm8IddVmhCgU1fxC1eyinpwqzXPEYu0NrYzD3YZjlGjyftdLBTeqNblRC0jmJmgxbJIsQlyogVeGnrNaaMVzIg== +"@octokit/rest@^20.1.2": + version "20.1.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/rest/-/rest-20.1.2.tgz" + integrity sha512-GmYiltypkHHtihFwPRxlaorG5R9VAHuk/vbszVoRTGXnAsY60wYLkh/E2XiFmdZmqrisw+9FaazS1i5SbdWYgA== dependencies: - "@octokit/openapi-types" "^18.0.0" + "@octokit/core" "^5.0.2" + "@octokit/plugin-paginate-rest" "11.4.4-cjs.2" + "@octokit/plugin-request-log" "^4.0.0" + "@octokit/plugin-rest-endpoint-methods" "13.3.2-cjs.1" -"@octokit/types@^9.0.0", "@octokit/types@^9.2.3": - version "9.3.2" - resolved "https://registry.npmjs.org/@octokit/types/-/types-9.3.2.tgz" - integrity sha512-D4iHGTdAnEEVsB8fl95m1hiz7D5YiRdQ9b/OEb3BYRVwbLsGHcRVPz+u+BgRLNk0Q0/4iZCBqDN96j2XNxfXrA== +"@octokit/types@^13.0.0", "@octokit/types@^13.1.0", "@octokit/types@^13.7.0", "@octokit/types@^13.8.0": + version "13.10.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@octokit/types/-/types-13.10.0.tgz" + integrity sha512-ifLaO34EbbPj0Xgro4G5lP5asESjwHracYJvVaPIyXMuiuXLlhic3S47cBdTb+jfODkTE5YtGCLt3Ay3+J97sA== dependencies: - "@octokit/openapi-types" "^18.0.0" + "@octokit/openapi-types" "^24.2.0" "@open-draft/deferred-promise@^2.2.0": version "2.2.0" - resolved "https://registry.npmjs.org/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@open-draft/deferred-promise/-/deferred-promise-2.2.0.tgz" integrity sha512-CecwLWx3rhxVQF6V4bAgPS5t+So2sTbPgAzafKkVizyi7tlwpcFpdFqq+wqF2OwNBmqFuu6tOyouTuxgpMfzmA== "@open-draft/logger@^0.3.0": version "0.3.0" - resolved "https://registry.npmjs.org/@open-draft/logger/-/logger-0.3.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@open-draft/logger/-/logger-0.3.0.tgz" integrity sha512-X2g45fzhxH238HKO4xbSr7+wBS8Fvw6ixhTDuvLd5mqh6bJJCFAPwU9mPDxbcrRtfxv4u5IHCEH77BmxvXmmxQ== dependencies: is-node-process "^1.2.0" @@ -1017,33 +1730,25 @@ "@open-draft/until@^2.0.0": version "2.1.0" - resolved "https://registry.npmjs.org/@open-draft/until/-/until-2.1.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@open-draft/until/-/until-2.1.0.tgz" integrity sha512-U69T3ItWHvLwGg5eJ0n3I62nWuE6ilHlmz7zM0npLBRvPRd7e6NYmg54vvRtP5mZG7kZqZCFVdsTWo7BPtBujg== -"@opentelemetry/api@^1.4.1", "@opentelemetry/api@>=1.0.0 <1.8.0", "@opentelemetry/api@>=1.3.0 <1.8.0": +"@opentelemetry/api@^1.4.1": version "1.7.0" - resolved "https://registry.npmjs.org/@opentelemetry/api/-/api-1.7.0.tgz" - integrity sha512-AdY5wvN0P2vXBi3b29hxZgSFvdhdxPB9+f0B6s//P9Q8nibRWeA3cHm8UmLpio9ABigkVHJ5NMPk+Mz8VCCyrw== "@opentelemetry/core@^1.11.0", "@opentelemetry/core@1.18.1": version "1.18.1" - resolved "https://registry.npmjs.org/@opentelemetry/core/-/core-1.18.1.tgz" - integrity sha512-kvnUqezHMhsQvdsnhnqTNfAJs3ox/isB0SVrM1dhVFw7SsB7TstuVa6fgWnN2GdPyilIFLUvvbTZoVRmx6eiRg== dependencies: "@opentelemetry/semantic-conventions" "1.18.1" "@opentelemetry/resources@1.18.1": version "1.18.1" - resolved "https://registry.npmjs.org/@opentelemetry/resources/-/resources-1.18.1.tgz" - integrity sha512-JjbcQLYMttXcIabflLRuaw5oof5gToYV9fuXbcsoOeQ0BlbwUn6DAZi++PNsSz2jjPeASfDls10iaO/8BRIPRA== dependencies: "@opentelemetry/core" "1.18.1" "@opentelemetry/semantic-conventions" "1.18.1" "@opentelemetry/sdk-metrics@^1.12.0": version "1.18.1" - resolved "https://registry.npmjs.org/@opentelemetry/sdk-metrics/-/sdk-metrics-1.18.1.tgz" - integrity sha512-TEFgeNFhdULBYiCoHbz31Y4PDsfjjxRp8Wmdp6ybLQZPqMNEb+dRq+XN8Xw3ivIgTaf9gYsomgV5ensX99RuEQ== dependencies: "@opentelemetry/core" "1.18.1" "@opentelemetry/resources" "1.18.1" @@ -1051,42 +1756,85 @@ "@opentelemetry/semantic-conventions@1.18.1": version "1.18.1" - resolved "https://registry.npmjs.org/@opentelemetry/semantic-conventions/-/semantic-conventions-1.18.1.tgz" - integrity sha512-+NLGHr6VZwcgE/2lw8zDIufOCGnzsA5CbQIMleXZTrgkBd0TanCX+MiDYJ1TOS4KL/Tqk0nFRxawnaYr6pkZkA== -"@pkgr/core@^0.1.0": - version "0.1.1" - resolved "https://registry.npmjs.org/@pkgr/core/-/core-0.1.1.tgz" - integrity sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA== +"@parcel/watcher-darwin-arm64@2.5.1": + version "2.5.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@parcel/watcher-darwin-arm64/-/watcher-darwin-arm64-2.5.1.tgz" + integrity sha512-eAzPv5osDmZyBhou8PoF4i6RQXAfeKL9tjb3QzYuccXFMQU0ruIc/POh30ePnaOyD1UXdlKguHBmsTs53tVoPw== -"@repeaterjs/repeater@^3.0.4": - version "3.0.5" - resolved "https://registry.npmjs.org/@repeaterjs/repeater/-/repeater-3.0.5.tgz" - integrity sha512-l3YHBLAol6d/IKnB9LhpD0cEZWAoe3eFKUyTYWmFmCO2Q/WOckxLQAUyMZWwZV2M/m3+4vgRoaolFqaII82/TA== +"@parcel/watcher@^2.5.1": + version "2.5.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@parcel/watcher/-/watcher-2.5.1.tgz" + integrity sha512-dfUnCxiN9H4ap84DvD2ubjw+3vUNpstxa0TneY/Paat8a3R4uQZDLSvWjmznAY/DoahqTHl9V46HF/Zs3F29pg== + dependencies: + detect-libc "^1.0.3" + is-glob "^4.0.3" + micromatch "^4.0.5" + node-addon-api "^7.0.0" + optionalDependencies: + "@parcel/watcher-android-arm64" "2.5.1" + "@parcel/watcher-darwin-arm64" "2.5.1" + "@parcel/watcher-darwin-x64" "2.5.1" + "@parcel/watcher-freebsd-x64" "2.5.1" + "@parcel/watcher-linux-arm-glibc" "2.5.1" + "@parcel/watcher-linux-arm-musl" "2.5.1" + "@parcel/watcher-linux-arm64-glibc" "2.5.1" + "@parcel/watcher-linux-arm64-musl" "2.5.1" + "@parcel/watcher-linux-x64-glibc" "2.5.1" + "@parcel/watcher-linux-x64-musl" "2.5.1" + "@parcel/watcher-win32-arm64" "2.5.1" + "@parcel/watcher-win32-ia32" "2.5.1" + "@parcel/watcher-win32-x64" "2.5.1" + +"@pkgjs/parseargs@^0.11.0": + version "0.11.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" + integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== + +"@pkgr/core@^0.2.9": + version "0.2.9" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@pkgr/core/-/core-0.2.9.tgz" + integrity sha512-QNqXyfVS2wm9hweSYD2O7F0G06uurj9kZ96TRQE5Y9hU7+tgdZwIkbAKc5Ocy1HxEY2kuDQa6cQ1WRs/O5LFKA== + +"@repeaterjs/repeater@^3.0.4", "@repeaterjs/repeater@^3.0.6": + version "3.0.6" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@repeaterjs/repeater/-/repeater-3.0.6.tgz" + integrity sha512-Javneu5lsuhwNCryN+pXH93VPQ8g0dBX7wItHFgYiwQmzE1sVdg5tWHiOgHywzL2W21XQopa7IwIEnNbmeUJYA== + +"@rtsao/scc@^1.1.0": + version "1.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@rtsao/scc/-/scc-1.1.0.tgz" + integrity sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g== -"@sinclair/typebox@^0.27.8": - version "0.27.8" - resolved "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz" - integrity sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA== +"@sinclair/typebox@^0.34.0": + version "0.34.41" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@sinclair/typebox/-/typebox-0.34.41.tgz" + integrity sha512-6gS8pZzSXdyRHTIqoqSVknxolr1kzfy4/CeDnrzsVz8TTIWUbOBr6gnzOmTYJ3eXQNh4IYHIGi5aIL7sOZ2G/g== -"@sinonjs/commons@^3.0.0": - version "3.0.0" - resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz" - integrity sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA== +"@sinonjs/commons@^3.0.1": + version "3.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@sinonjs/commons/-/commons-3.0.1.tgz" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^10.0.2": - version "10.3.0" - resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz" - integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== +"@sinonjs/fake-timers@^13.0.0": + version "13.0.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@sinonjs/fake-timers/-/fake-timers-13.0.5.tgz" + integrity sha512-36/hTbH2uaWuGVERyC6da9YwGWnzUZXuPro/F2LfsdOsLnCojz/iSH8MxUt/FD2S5XBSVPhmArFUXcpCQ2Hkiw== + dependencies: + "@sinonjs/commons" "^3.0.1" + +"@so-ric/colorspace@^1.1.6": + version "1.1.6" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@so-ric/colorspace/-/colorspace-1.1.6.tgz" + integrity sha512-/KiKkpHNOBgkFJwu9sh48LkHSMYGyuTcSFK/qMBdnOAlrRJzRSXAOFB5qwzaVQuDl8wAvHVMkaASQDReTahxuw== dependencies: - "@sinonjs/commons" "^3.0.0" + color "^5.0.2" + text-hex "1.0.x" "@tsconfig/node10@^1.0.7": version "1.0.9" - resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" - integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== "@tsconfig/node12@^1.0.7": version "1.0.11" @@ -1103,9 +1851,9 @@ resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== -"@types/babel__core@^7.1.14": +"@types/babel__core@^7.20.5": version "7.20.5" - resolved "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/babel__core/-/babel__core-7.20.5.tgz" integrity sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA== dependencies: "@babel/parser" "^7.20.7" @@ -1115,26 +1863,26 @@ "@types/babel__traverse" "*" "@types/babel__generator@*": - version "7.6.7" - resolved "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.7.tgz" - integrity sha512-6Sfsq+EaaLrw4RmdFWE9Onp63TOUue71AWb4Gpa6JxzgTYtimbM086WnYTy2U67AofR++QKCo08ZP6pwx8YFHQ== + version "7.27.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/babel__generator/-/babel__generator-7.27.0.tgz" + integrity sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg== dependencies: "@babel/types" "^7.0.0" "@types/babel__template@*": version "7.4.4" - resolved "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/babel__template/-/babel__template-7.4.4.tgz" integrity sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A== dependencies: "@babel/parser" "^7.1.0" "@babel/types" "^7.0.0" -"@types/babel__traverse@*", "@types/babel__traverse@^7.0.6": - version "7.20.4" - resolved "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.4.tgz" - integrity sha512-mSM/iKUk5fDDrEV/e83qY+Cr3I1+Q3qqTuEn++HAWYjEa1+NxZr6CNrcJGf2ZTnq4HoFGC3zaTPZTobCzCFukA== +"@types/babel__traverse@*": + version "7.28.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/babel__traverse/-/babel__traverse-7.28.0.tgz" + integrity sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q== dependencies: - "@babel/types" "^7.20.7" + "@babel/types" "^7.28.2" "@types/core-js@^2.5.5": version "2.5.8" @@ -1146,49 +1894,52 @@ resolved "https://registry.npmjs.org/@types/dedent/-/dedent-0.7.2.tgz" integrity sha512-kRiitIeUg1mPV9yH4VUJ/1uk2XjyANfeL8/7rH1tsjvHeO9PJLBHJIYsFWmAvmGj5u8rj+1TZx7PZzW2qLw3Lw== -"@types/graceful-fs@^4.1.3": - version "4.1.9" - resolved "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz" - integrity sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ== - dependencies: - "@types/node" "*" +"@types/estree@^1.0.6": + version "1.0.8" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/estree/-/estree-1.0.8.tgz" + integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== -"@types/inquirer@^8.2.6": - version "8.2.10" - resolved "https://registry.npmjs.org/@types/inquirer/-/inquirer-8.2.10.tgz" - integrity sha512-IdD5NmHyVjWM8SHWo/kPBgtzXatwPkfwzyP3fN1jF2g9BWt5WO+8hL2F4o2GKIYsU40PpqeevuUWvkS/roXJkA== +"@types/inquirer@^9.0.8": + version "9.0.9" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/inquirer/-/inquirer-9.0.9.tgz" + integrity sha512-/mWx5136gts2Z2e5izdoRCo46lPp5TMs9R15GTSsgg/XnZyxDWVqoVU3R9lWnccKpqwsJLvRoxbCjoJtZB7DSw== dependencies: "@types/through" "*" rxjs "^7.2.0" -"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0", "@types/istanbul-lib-coverage@^2.0.1": +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.1", "@types/istanbul-lib-coverage@^2.0.6": version "2.0.6" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz" integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== "@types/istanbul-lib-report@*": version "3.0.3" - resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz" integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== dependencies: "@types/istanbul-lib-coverage" "*" -"@types/istanbul-reports@^3.0.0": +"@types/istanbul-reports@^3.0.4": version "3.0.4" - resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz" integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^29.5.12": - version "29.5.12" - resolved "https://registry.npmjs.org/@types/jest/-/jest-29.5.12.tgz" - integrity sha512-eDC8bTvT/QhYdxJAulQikueigY5AsdBRH2yDKW3yveW7svY3+DzN84/2NUgkw10RTiJbWqZrTtoGVdYlvFJdLw== +"@types/jest@^30.0.0": + version "30.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/jest/-/jest-30.0.0.tgz" + integrity sha512-XTYugzhuwqWjws0CVz8QpM36+T+Dz5mTEBKhNs/esGLnCIlGdRy+Dq78NRjd7ls7r8BC8ZRMOrKlkO1hU0JOwA== dependencies: - expect "^29.0.0" - pretty-format "^29.0.0" + expect "^30.0.0" + pretty-format "^30.0.0" + +"@types/js-yaml@^4.0.0": + version "4.0.9" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/js-yaml/-/js-yaml-4.0.9.tgz" + integrity sha512-k4MGaQl5TGo/iipqb2UDG2UwjXziSWkh0uysQelTlJpX1qGlpUZYm8PnO4DxG1qBomtJUdYJ6qR6xdIah10JLg== -"@types/json-schema@^7.0.12", "@types/json-schema@^7.0.9": +"@types/json-schema@^7.0.15": version "7.0.15" resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz" integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== @@ -1198,31 +1949,26 @@ resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== -"@types/lodash@^4.14.199": - version "4.14.202" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz" - integrity sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ== +"@types/lodash@^4.17.18": + version "4.17.20" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/lodash/-/lodash-4.17.20.tgz" + integrity sha512-H3MHACvFUEiujabxhaI/ImO6gUrd8oOurg7LQtS7mbwIXA/cUqWrvBsaeJ23aZEPk1TAYkurjfMbSELfoCXlGA== -"@types/node@*", "@types/node@^20.11.24", "@types/node@>=13": - version "20.11.24" - resolved "https://registry.npmjs.org/@types/node/-/node-20.11.24.tgz" - integrity sha512-Kza43ewS3xoLgCEpQrsT+xRo/EJej1y0kVYGiLFE1NEODXGzTfwiC6tXTLMQskn1X4/Rjlh0MQUvx9W+L9long== +"@types/node@*", "@types/node@^22.15.32": + version "22.19.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/node/-/node-22.19.1.tgz" + integrity sha512-LCCV0HdSZZZb34qifBsyWlUmok6W7ouER+oQIGBScS8EsZsQbrtFTUrDX4hOl+CS6p7cnNC4td+qrSVGSCTUfQ== dependencies: - undici-types "~5.26.4" + undici-types "~6.21.0" "@types/safe-json-stringify@^1.1.3": version "1.1.5" resolved "https://registry.npmjs.org/@types/safe-json-stringify/-/safe-json-stringify-1.1.5.tgz" integrity sha512-wQ1unJoajjDOP7bkg7FHOYelVp6BSsuBIFSvifNKeiMHegXWa6vddoqM/dHTVkX8bn9fJcor4Hukff9AtFybcA== -"@types/semver@^7.3.12", "@types/semver@^7.5.0": - version "7.5.6" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz" - integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== - -"@types/stack-utils@^2.0.0": +"@types/stack-utils@^2.0.3": version "2.0.3" - resolved "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/stack-utils/-/stack-utils-2.0.3.tgz" integrity sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw== "@types/through@*": @@ -1234,13 +1980,13 @@ "@types/triple-beam@^1.3.2": version "1.3.5" - resolved "https://registry.npmjs.org/@types/triple-beam/-/triple-beam-1.3.5.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/triple-beam/-/triple-beam-1.3.5.tgz" integrity sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw== "@types/ws@^8.0.0": - version "8.5.10" - resolved "https://registry.npmjs.org/@types/ws/-/ws-8.5.10.tgz" - integrity sha512-vmQSUcfalpIq0R9q7uTo2lXs6eGIpt9wtnLdMv9LVpIjCA/+ufZRozlVoVelIYixx1ugCBKDhn89vnsEGOCx9A== + version "8.18.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/ws/-/ws-8.18.1.tgz" + integrity sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg== dependencies: "@types/node" "*" @@ -1249,175 +1995,161 @@ resolved "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz" integrity sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ== -"@types/yargs@^17.0.28", "@types/yargs@^17.0.8": - version "17.0.32" - resolved "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.32.tgz" - integrity sha512-xQ67Yc/laOG5uMfX/093MRlGGCIBzZMarVa+gfNKJxWAIgykYpVGkBdbqEzGDDfCrVUj6Hiff4mTZ5BA6TmAog== +"@types/yargs@^17.0.33": + version "17.0.35" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@types/yargs/-/yargs-17.0.35.tgz" + integrity sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg== dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@^5.0.0 || ^6.0.0 || ^7.0.0", "@typescript-eslint/eslint-plugin@^7.1.1": - version "7.1.1" - resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-7.1.1.tgz" - integrity sha512-zioDz623d0RHNhvx0eesUmGfIjzrk18nSBC8xewepKXbBvN/7c1qImV7Hg8TI1URTxKax7/zxfxj3Uph8Chcuw== - dependencies: - "@eslint-community/regexpp" "^4.5.1" - "@typescript-eslint/scope-manager" "7.1.1" - "@typescript-eslint/type-utils" "7.1.1" - "@typescript-eslint/utils" "7.1.1" - "@typescript-eslint/visitor-keys" "7.1.1" - debug "^4.3.4" +"@typescript-eslint/eslint-plugin@^8.34.1": + version "8.47.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.47.0.tgz" + integrity sha512-fe0rz9WJQ5t2iaLfdbDc9T80GJy0AeO453q8C3YCilnGozvOyCG5t+EZtg7j7D88+c3FipfP/x+wzGnh1xp8ZA== + dependencies: + "@eslint-community/regexpp" "^4.10.0" + "@typescript-eslint/scope-manager" "8.47.0" + "@typescript-eslint/type-utils" "8.47.0" + "@typescript-eslint/utils" "8.47.0" + "@typescript-eslint/visitor-keys" "8.47.0" graphemer "^1.4.0" - ignore "^5.2.4" + ignore "^7.0.0" natural-compare "^1.4.0" - semver "^7.5.4" - ts-api-utils "^1.0.1" + ts-api-utils "^2.1.0" -"@typescript-eslint/parser@^7.0.0", "@typescript-eslint/parser@^7.1.1": - version "7.1.1" - resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-7.1.1.tgz" - integrity sha512-ZWUFyL0z04R1nAEgr9e79YtV5LbafdOtN7yapNbn1ansMyaegl2D4bL7vHoJ4HPSc4CaLwuCVas8CVuneKzplQ== +"@typescript-eslint/parser@^8.34.1": + version "8.47.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@typescript-eslint/parser/-/parser-8.47.0.tgz" + integrity sha512-lJi3PfxVmo0AkEY93ecfN+r8SofEqZNGByvHAI3GBLrvt1Cw6H5k1IM02nSzu0RfUafr2EvFSw0wAsZgubNplQ== dependencies: - "@typescript-eslint/scope-manager" "7.1.1" - "@typescript-eslint/types" "7.1.1" - "@typescript-eslint/typescript-estree" "7.1.1" - "@typescript-eslint/visitor-keys" "7.1.1" + "@typescript-eslint/scope-manager" "8.47.0" + "@typescript-eslint/types" "8.47.0" + "@typescript-eslint/typescript-estree" "8.47.0" + "@typescript-eslint/visitor-keys" "8.47.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.62.0": - version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz" - integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w== +"@typescript-eslint/project-service@8.47.0": + version "8.47.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@typescript-eslint/project-service/-/project-service-8.47.0.tgz" + integrity sha512-2X4BX8hUeB5JcA1TQJ7GjcgulXQ+5UkNb0DL8gHsHUHdFoiCTJoYLTpib3LtSDPZsRET5ygN4qqIWrHyYIKERA== dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" - -"@typescript-eslint/scope-manager@7.1.1": - version "7.1.1" - resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.1.1.tgz" - integrity sha512-cirZpA8bJMRb4WZ+rO6+mnOJrGFDd38WoXCEI57+CYBqta8Yc8aJym2i7vyqLL1vVYljgw0X27axkUXz32T8TA== - dependencies: - "@typescript-eslint/types" "7.1.1" - "@typescript-eslint/visitor-keys" "7.1.1" - -"@typescript-eslint/type-utils@7.1.1": - version "7.1.1" - resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-7.1.1.tgz" - integrity sha512-5r4RKze6XHEEhlZnJtR3GYeCh1IueUHdbrukV2KSlLXaTjuSfeVF8mZUVPLovidCuZfbVjfhi4c0DNSa/Rdg5g== - dependencies: - "@typescript-eslint/typescript-estree" "7.1.1" - "@typescript-eslint/utils" "7.1.1" + "@typescript-eslint/tsconfig-utils" "^8.47.0" + "@typescript-eslint/types" "^8.47.0" debug "^4.3.4" - ts-api-utils "^1.0.1" -"@typescript-eslint/types@5.62.0": - version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.62.0.tgz" - integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== +"@typescript-eslint/scope-manager@8.47.0": + version "8.47.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@typescript-eslint/scope-manager/-/scope-manager-8.47.0.tgz" + integrity sha512-a0TTJk4HXMkfpFkL9/WaGTNuv7JWfFTQFJd6zS9dVAjKsojmv9HT55xzbEpnZoY+VUb+YXLMp+ihMLz/UlZfDg== + dependencies: + "@typescript-eslint/types" "8.47.0" + "@typescript-eslint/visitor-keys" "8.47.0" -"@typescript-eslint/types@7.1.1": - version "7.1.1" - resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.1.1.tgz" - integrity sha512-KhewzrlRMrgeKm1U9bh2z5aoL4s7K3tK5DwHDn8MHv0yQfWFz/0ZR6trrIHHa5CsF83j/GgHqzdbzCXJ3crx0Q== +"@typescript-eslint/tsconfig-utils@^8.47.0", "@typescript-eslint/tsconfig-utils@8.47.0": + version "8.47.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.47.0.tgz" + integrity sha512-ybUAvjy4ZCL11uryalkKxuT3w3sXJAuWhOoGS3T/Wu+iUu1tGJmk5ytSY8gbdACNARmcYEB0COksD2j6hfGK2g== -"@typescript-eslint/typescript-estree@5.62.0": - version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz" - integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA== +"@typescript-eslint/type-utils@8.47.0": + version "8.47.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@typescript-eslint/type-utils/-/type-utils-8.47.0.tgz" + integrity sha512-QC9RiCmZ2HmIdCEvhd1aJELBlD93ErziOXXlHEZyuBo3tBiAZieya0HLIxp+DoDWlsQqDawyKuNEhORyku+P8A== dependencies: - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/visitor-keys" "5.62.0" + "@typescript-eslint/types" "8.47.0" + "@typescript-eslint/typescript-estree" "8.47.0" + "@typescript-eslint/utils" "8.47.0" debug "^4.3.4" - globby "^11.1.0" + ts-api-utils "^2.1.0" + +"@typescript-eslint/types@^8.47.0", "@typescript-eslint/types@8.47.0": + version "8.47.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@typescript-eslint/types/-/types-8.47.0.tgz" + integrity sha512-nHAE6bMKsizhA2uuYZbEbmp5z2UpffNrPEqiKIeN7VsV6UY/roxanWfoRrf6x/k9+Obf+GQdkm0nPU+vnMXo9A== + +"@typescript-eslint/typescript-estree@8.47.0": + version "8.47.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@typescript-eslint/typescript-estree/-/typescript-estree-8.47.0.tgz" + integrity sha512-k6ti9UepJf5NpzCjH31hQNLHQWupTRPhZ+KFF8WtTuTpy7uHPfeg2NM7cP27aCGajoEplxJDFVCEm9TGPYyiVg== + dependencies: + "@typescript-eslint/project-service" "8.47.0" + "@typescript-eslint/tsconfig-utils" "8.47.0" + "@typescript-eslint/types" "8.47.0" + "@typescript-eslint/visitor-keys" "8.47.0" + debug "^4.3.4" + fast-glob "^3.3.2" is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" + minimatch "^9.0.4" + semver "^7.6.0" + ts-api-utils "^2.1.0" -"@typescript-eslint/typescript-estree@7.1.1": - version "7.1.1" - resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.1.1.tgz" - integrity sha512-9ZOncVSfr+sMXVxxca2OJOPagRwT0u/UHikM2Rd6L/aB+kL/QAuTnsv6MeXtjzCJYb8PzrXarypSGIPx3Jemxw== +"@typescript-eslint/utils@8.47.0": + version "8.47.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@typescript-eslint/utils/-/utils-8.47.0.tgz" + integrity sha512-g7XrNf25iL4TJOiPqatNuaChyqt49a/onq5YsJ9+hXeugK+41LVg7AxikMfM02PC6jbNtZLCJj6AUcQXJS/jGQ== dependencies: - "@typescript-eslint/types" "7.1.1" - "@typescript-eslint/visitor-keys" "7.1.1" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - minimatch "9.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - -"@typescript-eslint/utils@^5.10.0": - version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.62.0.tgz" - integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.62.0" - "@typescript-eslint/types" "5.62.0" - "@typescript-eslint/typescript-estree" "5.62.0" - eslint-scope "^5.1.1" - semver "^7.3.7" - -"@typescript-eslint/utils@7.1.1": - version "7.1.1" - resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.1.1.tgz" - integrity sha512-thOXM89xA03xAE0lW7alstvnyoBUbBX38YtY+zAUcpRPcq9EIhXPuJ0YTv948MbzmKh6e1AUszn5cBFK49Umqg== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "7.1.1" - "@typescript-eslint/types" "7.1.1" - "@typescript-eslint/typescript-estree" "7.1.1" - semver "^7.5.4" + "@eslint-community/eslint-utils" "^4.7.0" + "@typescript-eslint/scope-manager" "8.47.0" + "@typescript-eslint/types" "8.47.0" + "@typescript-eslint/typescript-estree" "8.47.0" -"@typescript-eslint/visitor-keys@5.62.0": - version "5.62.0" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz" - integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw== +"@typescript-eslint/visitor-keys@8.47.0": + version "8.47.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@typescript-eslint/visitor-keys/-/visitor-keys-8.47.0.tgz" + integrity sha512-SIV3/6eftCy1bNzCQoPmbWsRLujS8t5iDIZ4spZOBHqrM+yfX2ogg8Tt3PDTAVKw3sSCiUgg30uOAvK2r9zGjQ== dependencies: - "@typescript-eslint/types" "5.62.0" - eslint-visitor-keys "^3.3.0" + "@typescript-eslint/types" "8.47.0" + eslint-visitor-keys "^4.2.1" -"@typescript-eslint/visitor-keys@7.1.1": - version "7.1.1" - resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.1.1.tgz" - integrity sha512-yTdHDQxY7cSoCcAtiBzVzxleJhkGB9NncSIyMYe2+OGON1ZsP9zOPws/Pqgopa65jvknOjlk/w7ulPlZ78PiLQ== +"@ungap/structured-clone@^1.3.0": + version "1.3.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@ungap/structured-clone/-/structured-clone-1.3.0.tgz" + integrity sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g== + +"@unrs/resolver-binding-darwin-arm64@1.11.1": + version "1.11.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@unrs/resolver-binding-darwin-arm64/-/resolver-binding-darwin-arm64-1.11.1.tgz" + integrity sha512-gPVA1UjRu1Y/IsB/dQEsp2V1pm44Of6+LWvbLc9SDk1c2KhhDRDBUkQCYVWe6f26uJb3fOK8saWMgtX8IrMk3g== + +"@urql/core@^5.1.1": + version "5.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@urql/core/-/core-5.2.0.tgz" + integrity sha512-/n0ieD0mvvDnVAXEQgX/7qJiVcvYvNkOHeBvkwtylfjydar123caCXcl58PXFY11oU1oquJocVXHxLAbtv4x1A== dependencies: - "@typescript-eslint/types" "7.1.1" - eslint-visitor-keys "^3.4.1" + "@0no-co/graphql.web" "^1.0.13" + wonka "^6.3.2" -"@ungap/structured-clone@^1.2.0": - version "1.2.0" - resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" - integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== +"@whatwg-node/disposablestack@^0.0.6": + version "0.0.6" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@whatwg-node/disposablestack/-/disposablestack-0.0.6.tgz" + integrity sha512-LOtTn+JgJvX8WfBVJtF08TGrdjuFzGJc4mkP8EdDI8ADbvO7kiexYep1o8dwnt0okb0jYclCDXF13xU7Ge4zSw== + dependencies: + "@whatwg-node/promise-helpers" "^1.0.0" + tslib "^2.6.3" -"@whatwg-node/events@^0.1.0": - version "0.1.1" - resolved "https://registry.npmjs.org/@whatwg-node/events/-/events-0.1.1.tgz" - integrity sha512-AyQEn5hIPV7Ze+xFoXVU3QTHXVbWPrzaOkxtENMPMuNL6VVHrp4hHfDt9nrQpjO7BgvuM95dMtkycX5M/DZR3w== +"@whatwg-node/fetch@^0.10.0", "@whatwg-node/fetch@^0.10.13", "@whatwg-node/fetch@^0.10.4": + version "0.10.13" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@whatwg-node/fetch/-/fetch-0.10.13.tgz" + integrity sha512-b4PhJ+zYj4357zwk4TTuF2nEe0vVtOrwdsrNo5hL+u1ojXNhh1FgJ6pg1jzDlwlT4oBdzfSwaBwMCtFCsIWg8Q== + dependencies: + "@whatwg-node/node-fetch" "^0.8.3" + urlpattern-polyfill "^10.0.0" -"@whatwg-node/fetch@^0.9.0": - version "0.9.14" - resolved "https://registry.npmjs.org/@whatwg-node/fetch/-/fetch-0.9.14.tgz" - integrity sha512-wurZC82zzZwXRDSW0OS9l141DynaJQh7Yt0FD1xZ8niX7/Et/7RoiLiltbVU1fSF1RR9z6ndEaTUQBAmddTm1w== +"@whatwg-node/node-fetch@^0.8.3": + version "0.8.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@whatwg-node/node-fetch/-/node-fetch-0.8.4.tgz" + integrity sha512-AlKLc57loGoyYlrzDbejB9EeR+pfdJdGzbYnkEuZaGekFboBwzfVYVMsy88PMriqPI1ORpiGYGgSSWpx7a2sDA== dependencies: - "@whatwg-node/node-fetch" "^0.5.0" - urlpattern-polyfill "^9.0.0" + "@fastify/busboy" "^3.1.1" + "@whatwg-node/disposablestack" "^0.0.6" + "@whatwg-node/promise-helpers" "^1.3.2" + tslib "^2.6.3" -"@whatwg-node/node-fetch@^0.5.0": - version "0.5.2" - resolved "https://registry.npmjs.org/@whatwg-node/node-fetch/-/node-fetch-0.5.2.tgz" - integrity sha512-uVYCnmWoCiGbv5AtnSx5nZ1kQJ+U8f269/yHB62y7wXPdjYx6o4sBSefnfwUI8HNf4rf16VbvGR/AzuABhDD5g== +"@whatwg-node/promise-helpers@^1.0.0", "@whatwg-node/promise-helpers@^1.2.1", "@whatwg-node/promise-helpers@^1.2.4", "@whatwg-node/promise-helpers@^1.3.0", "@whatwg-node/promise-helpers@^1.3.2": + version "1.3.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/@whatwg-node/promise-helpers/-/promise-helpers-1.3.2.tgz" + integrity sha512-Nst5JdK47VIl9UcGwtv2Rcgyn5lWtZ0/mhRQ4G8NN2isxpq2TO30iqHzmwoJycjWuyUfg3GFXqP/gFHXeV57IA== dependencies: - "@kamilkisiela/fast-url-parser" "^1.1.4" - "@whatwg-node/events" "^0.1.0" - busboy "^1.6.0" - fast-querystring "^1.1.1" - tslib "^2.3.1" + tslib "^2.6.3" abort-controller@^3.0.0: version "3.0.0" @@ -1433,18 +2165,16 @@ acorn-import-attributes@^1.9.5: acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.1.1: version "8.3.1" - resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.1.tgz" - integrity sha512-TgUZgYvqZprrl7YldZNoa9OciCAyZR+Ejm9eXzKCmjsF5IKp/wgQ7Z/ZpjpGTIUPwrHQIcYeI8qDh4PsEwxMbw== -"acorn@^6.0.0 || ^7.0.0 || ^8.0.0", acorn@^8, acorn@^8.4.1, acorn@^8.8.2, acorn@^8.9.0: - version "8.11.2" - resolved "https://registry.npmjs.org/acorn/-/acorn-8.11.2.tgz" - integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== +acorn@^8.15.0, acorn@^8.4.1, acorn@^8.8.2: + version "8.15.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/acorn/-/acorn-8.15.0.tgz" + integrity sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg== after-all-results@^2.0.0: version "2.0.0" @@ -1452,14 +2182,12 @@ after-all-results@^2.0.0: integrity sha512-2zHEyuhSJOuCrmas9YV0YL/MFCWLxe1dS6k/ENhgYrb/JqyMnadLN4iIAc9kkZrbElMDyyAGH/0J18OPErOWLg== agent-base@^7.1.0, agent-base@^7.1.2: - version "7.1.3" - resolved "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz" - integrity sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw== + version "7.1.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/agent-base/-/agent-base-7.1.4.tgz" + integrity sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ== agentkeepalive@^4.2.1: version "4.5.0" - resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz" - integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== dependencies: humanize-ms "^1.2.1" @@ -1473,7 +2201,7 @@ aggregate-error@^3.0.0: ajv@^6.12.4: version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -1481,19 +2209,19 @@ ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ansi-escapes@^4.2.1: +ansi-escapes@^4.2.1, ansi-escapes@^4.3.0, ansi-escapes@^4.3.2: version "4.3.2" resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" -ansi-escapes@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-5.0.0.tgz" - integrity sha512-5GFMVX8HqE/TB+FuBJGuO5XG0WrsA6ptUqoODaT/n9mmUaZFkqnBueB4leqGBCmrUHnCnC4PCZTCd0E7QQ83bA== +ansi-escapes@^7.0.0: + version "7.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ansi-escapes/-/ansi-escapes-7.2.0.tgz" + integrity sha512-g6LhBsl+GBPRWGWsBtutpzBYuIIdBkLEvad5C/va/74Db018+5TZiyA26cZJAr3Rft5lprVqOIPxf5Vid6tqAw== dependencies: - type-fest "^1.0.2" + environment "^1.0.0" ansi-regex@^3.0.0: version "3.0.1" @@ -1502,20 +2230,13 @@ ansi-regex@^3.0.0: ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" - integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" + version "6.2.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ansi-regex/-/ansi-regex-6.2.2.tgz" + integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg== ansi-styles@^4.0.0, ansi-styles@^4.1.0: version "4.3.0" @@ -1524,24 +2245,24 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-styles@^5.0.0: +ansi-styles@^5.2.0: version "5.2.0" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-5.2.0.tgz" integrity sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA== -ansi-styles@^6.0.0: - version "6.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== - ansi-styles@^6.1.0: - version "6.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" - integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== + version "6.2.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-6.2.3.tgz" + integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== + +ansi-styles@^6.2.1: + version "6.2.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ansi-styles/-/ansi-styles-6.2.3.tgz" + integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg== -anymatch@^3.0.3: +anymatch@^3.1.3: version "3.1.3" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/anymatch/-/anymatch-3.1.3.tgz" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" @@ -1554,7 +2275,7 @@ arg@^4.1.0: argparse@^1.0.7: version "1.0.10" - resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/argparse/-/argparse-1.0.10.tgz" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" @@ -1564,73 +2285,93 @@ argparse@^2.0.1: resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -array-buffer-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz" - integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== +array-buffer-byte-length@^1.0.1, array-buffer-byte-length@^1.0.2: + version "1.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz" + integrity sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw== dependencies: - call-bind "^1.0.2" - is-array-buffer "^3.0.1" + call-bound "^1.0.3" + is-array-buffer "^3.0.5" -array-includes@^3.1.7: - version "3.1.7" - resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz" - integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== +array-includes@^3.1.9: + version "3.1.9" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/array-includes/-/array-includes-3.1.9.tgz" + integrity sha512-FmeCCAenzH0KH381SPT5FZmiA/TmpndpcaShhfgEN9eCVjnFBqq3l1xrI42y8+PPLI6hypzou4GXw00WHmPBLQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-string "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.4" + define-properties "^1.2.1" + es-abstract "^1.24.0" + es-object-atoms "^1.1.1" + get-intrinsic "^1.3.0" + is-string "^1.1.1" + math-intrinsics "^1.1.0" array-union@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array.prototype.findlastindex@^1.2.3: - version "1.2.3" - resolved "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz" - integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== +array.prototype.findlastindex@^1.2.6: + version "1.2.6" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz" + integrity sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" - get-intrinsic "^1.2.1" + call-bind "^1.0.8" + call-bound "^1.0.4" + define-properties "^1.2.1" + es-abstract "^1.23.9" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + es-shim-unscopables "^1.1.0" -array.prototype.flat@^1.3.2: - version "1.3.2" - resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz" - integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== +array.prototype.flat@^1.3.3: + version "1.3.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/array.prototype.flat/-/array.prototype.flat-1.3.3.tgz" + integrity sha512-rwG/ja1neyLqCuGZ5YYrznA62D4mZXg0i1cIskIUKSiqF3Cje9/wXAls9B9s1Wa2fomMsIv8czB8jZcPmxCXFg== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-shim-unscopables "^1.0.2" -array.prototype.flatmap@^1.3.2: - version "1.3.2" - resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz" - integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== +array.prototype.flatmap@^1.3.3: + version "1.3.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/array.prototype.flatmap/-/array.prototype.flatmap-1.3.3.tgz" + integrity sha512-Y7Wt51eKJSyi80hFrJCePGGNo5ktJCslFuboqJsbf57CCPcm5zztluPlc4/aD8sWsKvlwatezpV4U1efk8kpjg== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - es-shim-unscopables "^1.0.0" + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-shim-unscopables "^1.0.2" -arraybuffer.prototype.slice@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz" - integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== +arraybuffer.prototype.slice@^1.0.4: + version "1.0.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz" + integrity sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ== dependencies: - array-buffer-byte-length "^1.0.0" - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" - is-array-buffer "^3.0.2" - is-shared-array-buffer "^1.0.2" + array-buffer-byte-length "^1.0.1" + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + is-array-buffer "^3.0.4" + +asap@~2.0.3: + version "2.0.6" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/asap/-/asap-2.0.6.tgz" + integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/astral-regex/-/astral-regex-2.0.0.tgz" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-function@^1.0.0: + version "1.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/async-function/-/async-function-1.0.0.tgz" + integrity sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA== async-value-promise@^1.1.1: version "1.1.1" @@ -1646,92 +2387,121 @@ async-value@^1.2.2: async@^3.2.3: version "3.2.5" - resolved "https://registry.npmjs.org/async/-/async-3.2.5.tgz" - integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" - integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== atomic-sleep@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz" integrity sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ== -available-typed-arrays@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" - integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== - -axios@^1.6.2: - version "1.6.2" - resolved "https://registry.npmjs.org/axios/-/axios-1.6.2.tgz" - integrity sha512-7i24Ri4pmDRfJTR7LDBhsOTtcm+9kjX5WiY1X3wIisx6G9So3pfMkEiU7emUBe46oceVImccTEM3k6C5dbVW8A== - dependencies: - follow-redirects "^1.15.0" - form-data "^4.0.0" - proxy-from-env "^1.1.0" - -babel-jest@^29.0.0, babel-jest@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz" - integrity sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg== - dependencies: - "@jest/transform" "^29.7.0" - "@types/babel__core" "^7.1.14" - babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^29.6.3" - chalk "^4.0.0" - graceful-fs "^4.2.9" +auto-bind@~4.0.0: + version "4.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/auto-bind/-/auto-bind-4.0.0.tgz" + integrity sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ== + +available-typed-arrays@^1.0.7: + version "1.0.7" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz" + integrity sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ== + dependencies: + possible-typed-array-names "^1.0.0" + +babel-jest@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/babel-jest/-/babel-jest-30.2.0.tgz" + integrity sha512-0YiBEOxWqKkSQWL9nNGGEgndoeL0ZpWrbLMNL5u/Kaxrli3Eaxlt3ZtIDktEvXt4L/R9r3ODr2zKwGM/2BjxVw== + dependencies: + "@jest/transform" "30.2.0" + "@types/babel__core" "^7.20.5" + babel-plugin-istanbul "^7.0.1" + babel-preset-jest "30.2.0" + chalk "^4.1.2" + graceful-fs "^4.2.11" slash "^3.0.0" -babel-plugin-istanbul@^6.1.1: - version "6.1.1" - resolved "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz" - integrity sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA== +babel-plugin-istanbul@^7.0.1: + version "7.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/babel-plugin-istanbul/-/babel-plugin-istanbul-7.0.1.tgz" + integrity sha512-D8Z6Qm8jCvVXtIRkBnqNHX0zJ37rQcFJ9u8WOS6tkYOsRdHBzypCstaxWiu5ZIlqQtviRYbgnRLSoCEvjqcqbA== dependencies: "@babel/helper-plugin-utils" "^7.0.0" "@istanbuljs/load-nyc-config" "^1.0.0" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-instrument "^5.0.4" + "@istanbuljs/schema" "^0.1.3" + istanbul-lib-instrument "^6.0.2" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^29.6.3: - version "29.6.3" - resolved "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz" - integrity sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg== +babel-plugin-jest-hoist@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-30.2.0.tgz" + integrity sha512-ftzhzSGMUnOzcCXd6WHdBGMyuwy15Wnn0iyyWGKgBDLxf9/s5ABuraCSpBX2uG0jUg4rqJnxsLc5+oYBqoxVaA== dependencies: - "@babel/template" "^7.3.3" - "@babel/types" "^7.3.3" - "@types/babel__core" "^7.1.14" - "@types/babel__traverse" "^7.0.6" + "@types/babel__core" "^7.20.5" -babel-preset-current-node-syntax@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz" - integrity sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ== +babel-plugin-syntax-trailing-function-commas@^7.0.0-beta.0: + version "7.0.0-beta.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-7.0.0-beta.0.tgz" + integrity sha512-Xj9XuRuz3nTSbaTXWv3itLOcxyF4oPD8douBBmj7U9BBC6nEBYfyOJYQMf/8PJAFotC62UY5dFfIGEPr7WswzQ== + +babel-preset-current-node-syntax@^1.2.0: + version "1.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz" + integrity sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg== dependencies: "@babel/plugin-syntax-async-generators" "^7.8.4" "@babel/plugin-syntax-bigint" "^7.8.3" - "@babel/plugin-syntax-class-properties" "^7.8.3" - "@babel/plugin-syntax-import-meta" "^7.8.3" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-import-attributes" "^7.24.7" + "@babel/plugin-syntax-import-meta" "^7.10.4" "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" "@babel/plugin-syntax-object-rest-spread" "^7.8.3" "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.8.3" - -babel-preset-jest@^29.6.3: - version "29.6.3" - resolved "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz" - integrity sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA== - dependencies: - babel-plugin-jest-hoist "^29.6.3" - babel-preset-current-node-syntax "^1.0.0" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + +babel-preset-fbjs@^3.4.0: + version "3.4.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/babel-preset-fbjs/-/babel-preset-fbjs-3.4.0.tgz" + integrity sha512-9ywCsCvo1ojrw0b+XYk7aFvTH6D9064t0RIL1rtMf3nsa02Xw41MS7sZw216Im35xj/UY0PDBQsa1brUDDF1Ow== + dependencies: + "@babel/plugin-proposal-class-properties" "^7.0.0" + "@babel/plugin-proposal-object-rest-spread" "^7.0.0" + "@babel/plugin-syntax-class-properties" "^7.0.0" + "@babel/plugin-syntax-flow" "^7.0.0" + "@babel/plugin-syntax-jsx" "^7.0.0" + "@babel/plugin-syntax-object-rest-spread" "^7.0.0" + "@babel/plugin-transform-arrow-functions" "^7.0.0" + "@babel/plugin-transform-block-scoped-functions" "^7.0.0" + "@babel/plugin-transform-block-scoping" "^7.0.0" + "@babel/plugin-transform-classes" "^7.0.0" + "@babel/plugin-transform-computed-properties" "^7.0.0" + "@babel/plugin-transform-destructuring" "^7.0.0" + "@babel/plugin-transform-flow-strip-types" "^7.0.0" + "@babel/plugin-transform-for-of" "^7.0.0" + "@babel/plugin-transform-function-name" "^7.0.0" + "@babel/plugin-transform-literals" "^7.0.0" + "@babel/plugin-transform-member-expression-literals" "^7.0.0" + "@babel/plugin-transform-modules-commonjs" "^7.0.0" + "@babel/plugin-transform-object-super" "^7.0.0" + "@babel/plugin-transform-parameters" "^7.0.0" + "@babel/plugin-transform-property-literals" "^7.0.0" + "@babel/plugin-transform-react-display-name" "^7.0.0" + "@babel/plugin-transform-react-jsx" "^7.0.0" + "@babel/plugin-transform-shorthand-properties" "^7.0.0" + "@babel/plugin-transform-spread" "^7.0.0" + "@babel/plugin-transform-template-literals" "^7.0.0" + babel-plugin-syntax-trailing-function-commas "^7.0.0-beta.0" + +babel-preset-jest@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/babel-preset-jest/-/babel-preset-jest-30.2.0.tgz" + integrity sha512-US4Z3NOieAQumwFnYdUWKvUKh8+YSnS/gB3t6YBiz0bskpu7Pine8pPCheNxlPEW4wnUkma2a94YuW2q3guvCQ== + dependencies: + babel-plugin-jest-hoist "30.2.0" + babel-preset-current-node-syntax "^1.2.0" balanced-match@^1.0.0: version "1.0.2" @@ -1743,6 +2513,11 @@ base64-js@^1.3.1: resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== +baseline-browser-mapping@^2.8.25: + version "2.8.30" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/baseline-browser-mapping/-/baseline-browser-mapping-2.8.30.tgz" + integrity sha512-aTUKW4ptQhS64+v2d6IkPzymEzzhw+G0bA1g3uBRV3+ntkH+svttKseW5IOR4Ed6NUVKqnY7qT3dKvzQ7io4AA== + basic-auth@^2.0.1: version "2.0.1" resolved "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz" @@ -1752,13 +2527,11 @@ basic-auth@^2.0.1: before-after-hook@^2.2.0: version "2.2.3" - resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/before-after-hook/-/before-after-hook-2.2.3.tgz" integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== bignumber.js@^9.0.0: version "9.1.2" - resolved "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.2.tgz" - integrity sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug== binary-search@^1.3.3: version "1.3.6" @@ -1775,26 +2548,26 @@ bl@^4.1.0: readable-stream "^3.4.0" brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + version "1.1.12" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/brace-expansion/-/brace-expansion-1.1.12.tgz" + integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg== dependencies: balanced-match "^1.0.0" concat-map "0.0.1" brace-expansion@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" - integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + version "2.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/brace-expansion/-/brace-expansion-2.0.2.tgz" + integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ== dependencies: balanced-match "^1.0.0" -braces@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" - integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== +braces@^3.0.3: + version "3.0.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/braces/-/braces-3.0.3.tgz" + integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA== dependencies: - fill-range "^7.0.1" + fill-range "^7.1.1" breadth-filter@^2.0.0: version "2.0.0" @@ -1803,17 +2576,18 @@ breadth-filter@^2.0.0: dependencies: object.entries "^1.0.4" -browserslist@^4.22.2, "browserslist@>= 4.21.0": - version "4.22.2" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz" - integrity sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A== +browserslist@^4.24.0: + version "4.28.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/browserslist/-/browserslist-4.28.0.tgz" + integrity sha512-tbydkR/CxfMwelN0vwdP/pLkDwyAASZ+VfWm4EOwlB6SWhx1sYnWLqo8N5j0rAzPfzfRaxt0mM/4wPU/Su84RQ== dependencies: - caniuse-lite "^1.0.30001565" - electron-to-chromium "^1.4.601" - node-releases "^2.0.14" - update-browserslist-db "^1.0.13" + baseline-browser-mapping "^2.8.25" + caniuse-lite "^1.0.30001754" + electron-to-chromium "^1.5.249" + node-releases "^2.0.27" + update-browserslist-db "^1.1.4" -bs-logger@0.x: +bs-logger@^0.2.6: version "0.2.6" resolved "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz" integrity sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog== @@ -1822,14 +2596,14 @@ bs-logger@0.x: bser@2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/bser/-/bser-2.1.1.tgz" integrity sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ== dependencies: node-int64 "^0.4.0" buffer-from@^1.0.0: version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/buffer-from/-/buffer-from-1.1.2.tgz" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== buffer@^5.5.0: @@ -1848,52 +2622,70 @@ buffer@^6.0.3: base64-js "^1.3.1" ieee754 "^1.2.1" -busboy@^1.6.0: - version "1.6.0" - resolved "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz" - integrity sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA== +call-bind-apply-helpers@^1.0.0, call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2: + version "1.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz" + integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ== dependencies: - streamsearch "^1.1.0" + es-errors "^1.3.0" + function-bind "^1.1.2" -call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz" - integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== +call-bind@^1.0.2, call-bind@^1.0.7, call-bind@^1.0.8: + version "1.0.8" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/call-bind/-/call-bind-1.0.8.tgz" + integrity sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww== dependencies: - function-bind "^1.1.2" - get-intrinsic "^1.2.1" - set-function-length "^1.1.1" + call-bind-apply-helpers "^1.0.0" + es-define-property "^1.0.0" + get-intrinsic "^1.2.4" + set-function-length "^1.2.2" -callsites@^3.0.0: +call-bound@^1.0.2, call-bound@^1.0.3, call-bound@^1.0.4: + version "1.0.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/call-bound/-/call-bound-1.0.4.tgz" + integrity sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg== + dependencies: + call-bind-apply-helpers "^1.0.2" + get-intrinsic "^1.3.0" + +callsites@^3.0.0, callsites@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== -camelcase@^5.3.1: +camel-case@^4.1.2: + version "4.1.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/camel-case/-/camel-case-4.1.2.tgz" + integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== + dependencies: + pascal-case "^3.1.2" + tslib "^2.0.3" + +camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/camelcase/-/camelcase-5.3.1.tgz" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== -camelcase@^6.2.0: +camelcase@^6.3.0: version "6.3.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/camelcase/-/camelcase-6.3.0.tgz" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001565: - version "1.0.30001568" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001568.tgz" - integrity sha512-vSUkH84HontZJ88MiNrOau1EBrCqEQYgkC5gIySiDlpsm8sGVrhU7Kx4V6h0tnqaHzIHZv08HlJIwPbL4XL9+A== +caniuse-lite@^1.0.30001754: + version "1.0.30001756" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/caniuse-lite/-/caniuse-lite-1.0.30001756.tgz" + integrity sha512-4HnCNKbMLkLdhJz3TToeVWHSnfJvPaq6vu/eRP0Ahub/07n484XHhBF5AJoSGHdVrS8tKFauUQz8Bp9P7LVx7A== -chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== +capital-case@^1.0.4: + version "1.0.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/capital-case/-/capital-case-1.0.4.tgz" + integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" -chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: +chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -1901,30 +2693,62 @@ chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.1: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@5.3.0: - version "5.3.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz" - integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== +change-case-all@1.0.15: + version "1.0.15" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/change-case-all/-/change-case-all-1.0.15.tgz" + integrity sha512-3+GIFhk3sNuvFAJKU46o26OdzudQlPNBCu1ZQi3cMeMHhty1bhDxu2WrEilVNYaGvqUtR1VSigFcJOiS13dRhQ== + dependencies: + change-case "^4.1.2" + is-lower-case "^2.0.2" + is-upper-case "^2.0.2" + lower-case "^2.0.2" + lower-case-first "^2.0.2" + sponge-case "^1.0.1" + swap-case "^2.0.2" + title-case "^3.0.3" + upper-case "^2.0.2" + upper-case-first "^2.0.2" + +change-case@^4.1.2: + version "4.1.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/change-case/-/change-case-4.1.2.tgz" + integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== + dependencies: + camel-case "^4.1.2" + capital-case "^1.0.4" + constant-case "^3.0.4" + dot-case "^3.0.4" + header-case "^2.0.4" + no-case "^3.0.4" + param-case "^3.0.4" + pascal-case "^3.1.2" + path-case "^3.0.4" + sentence-case "^3.0.4" + snake-case "^3.0.4" + tslib "^2.0.3" char-regex@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/char-regex/-/char-regex-1.0.2.tgz" integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw== -chardet@^0.7.0: - version "0.7.0" - resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" - integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== +chardet@^2.1.1: + version "2.1.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/chardet/-/chardet-2.1.1.tgz" + integrity sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ== -ci-info@^3.2.0: - version "3.9.0" - resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz" - integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== +ci-info@^4.2.0: + version "4.3.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ci-info/-/ci-info-4.3.1.tgz" + integrity sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA== -cjs-module-lexer@^1.0.0, cjs-module-lexer@^1.2.2: +cjs-module-lexer@^1.2.2: version "1.2.3" - resolved "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz" - integrity sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ== + +cjs-module-lexer@^2.1.0: + version "2.1.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cjs-module-lexer/-/cjs-module-lexer-2.1.1.tgz" + integrity sha512-+CmxIZ/L2vNcEfvNtLdU0ZQ6mbq3FZnwAP2PPTiKP+1QOoKwlKlPgb8UKV0Dds7QVaMnHm+FwSft2VB0s/SLjQ== clean-stack@^2.0.0: version "2.2.0" @@ -1938,31 +2762,48 @@ cli-cursor@^3.1.0: dependencies: restore-cursor "^3.1.0" -cli-cursor@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz" - integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== +cli-cursor@^5.0.0: + version "5.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cli-cursor/-/cli-cursor-5.0.0.tgz" + integrity sha512-aCj4O5wKyszjMmDT4tZj93kxyydN/K5zPWSCe6/0AV/AA1pqe5ZBIw0a2ZfPQV7lL5/yb5HsUreJ6UFAF1tEQw== dependencies: - restore-cursor "^4.0.0" + restore-cursor "^5.0.0" cli-spinners@^2.5.0: version "2.9.2" resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.2.tgz" integrity sha512-ywqV+5MmyL4E7ybXgKys4DugZbX0FC6LnwrhjuykIjnK9k8OQacQ7axGKnjDXWNhns0xot3bZI5h55H8yo9cJg== -cli-truncate@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz" - integrity sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA== +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cli-truncate/-/cli-truncate-2.1.0.tgz" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +cli-truncate@^5.0.0: + version "5.1.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cli-truncate/-/cli-truncate-5.1.1.tgz" + integrity sha512-SroPvNHxUnk+vIW/dOSfNqdy1sPEFkrTk6TUtqLCnBlo3N7TNYYkzzN7uSD6+jVjrdO4+p8nH7JzH6cIvUem6A== dependencies: - slice-ansi "^5.0.0" - string-width "^5.0.0" + slice-ansi "^7.1.0" + string-width "^8.0.0" cli-width@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== +cliui@^6.0.0: + version "6.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cliui/-/cliui-6.0.0.tgz" + integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^6.2.0" + cliui@^8.0.1: version "8.0.1" resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" @@ -1979,27 +2820,13 @@ clone@^1.0.2: co@^4.6.0: version "4.6.0" - resolved "https://registry.npmjs.org/co/-/co-4.6.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/co/-/co-4.6.0.tgz" integrity sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ== -collect-v8-coverage@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz" - integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== - -color-convert@^1.9.0: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^1.9.3: - version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" +collect-v8-coverage@^1.0.2: + version "1.0.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/collect-v8-coverage/-/collect-v8-coverage-1.0.3.tgz" + integrity sha512-1L5aqIkwPfiodaMgQunkF1zRhNqifHBmtbbbxcr6yVxxBnliw4TDOW6NxpO8DJLgJ16OT+Y4ztZqP6p/FtXnAw== color-convert@^2.0.1: version "2.0.1" @@ -2008,56 +2835,52 @@ color-convert@^2.0.1: dependencies: color-name "~1.1.4" -color-name@^1.0.0, color-name@~1.1.4: +color-convert@^3.1.3: + version "3.1.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/color-convert/-/color-convert-3.1.3.tgz" + integrity sha512-fasDH2ont2GqF5HpyO4w0+BcewlhHEZOFn9c1ckZdHpJ56Qb7MHhH/IcJZbBGgvdtwdwNbLvxiBEdg336iA9Sg== + dependencies: + color-name "^2.0.0" + +color-name@^2.0.0: + version "2.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/color-name/-/color-name-2.1.0.tgz" + integrity sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg== + +color-name@~1.1.4: version "1.1.4" resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" - integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== - -color-string@^1.6.0: - version "1.9.1" - resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz" - integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== +color-string@^2.1.3: + version "2.1.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/color-string/-/color-string-2.1.4.tgz" + integrity sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg== dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" + color-name "^2.0.0" -color@^3.1.3: - version "3.2.1" - resolved "https://registry.npmjs.org/color/-/color-3.2.1.tgz" - integrity sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA== +color@^5.0.2: + version "5.0.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/color/-/color-5.0.3.tgz" + integrity sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA== dependencies: - color-convert "^1.9.3" - color-string "^1.6.0" + color-convert "^3.1.3" + color-string "^2.1.3" -colorette@^2.0.20: +colorette@^2.0.16, colorette@^2.0.20: version "2.0.20" - resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/colorette/-/colorette-2.0.20.tgz" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== -colorspace@1.1.x: - version "1.1.4" - resolved "https://registry.npmjs.org/colorspace/-/colorspace-1.1.4.tgz" - integrity sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w== - dependencies: - color "^3.1.3" - text-hex "1.0.x" - -combined-stream@^1.0.8: - version "1.0.8" - resolved "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" +commander@^14.0.2: + version "14.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/commander/-/commander-14.0.2.tgz" + integrity sha512-TywoWNNRbhoD0BXs1P3ZEScW8W5iKrnbithIl0YH+uCmBd0QpPOA8yc82DS3BIE5Ma6FnBVUsJ7wVUDz4dvOWQ== -commander@11.0.0: - version "11.0.0" - resolved "https://registry.npmjs.org/commander/-/commander-11.0.0.tgz" - integrity sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ== +common-tags@1.8.2: + version "1.8.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/common-tags/-/common-tags-1.8.2.tgz" + integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA== concat-map@0.0.1: version "0.0.1" @@ -2069,9 +2892,18 @@ console-log-level@^1.4.1: resolved "https://registry.npmjs.org/console-log-level/-/console-log-level-1.4.1.tgz" integrity sha512-VZzbIORbP+PPcN/gg3DXClTLPLg5Slwd5fL2MIc+o1qZ4BXBvWyc6QxPk6T/Mkr6IVjRpoAGf32XxP3ZWMVRcQ== +constant-case@^3.0.4: + version "3.0.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/constant-case/-/constant-case-3.0.4.tgz" + integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + upper-case "^2.0.2" + convert-source-map@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/convert-source-map/-/convert-source-map-2.0.0.tgz" integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== cookie@^0.7.1: @@ -2084,7 +2916,7 @@ core-util-is@^1.0.2: resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cosmiconfig@^8.1.0: +cosmiconfig@^8.1.0, cosmiconfig@^8.1.3: version "8.3.6" resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz" integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== @@ -2094,60 +2926,80 @@ cosmiconfig@^8.1.0: parse-json "^5.2.0" path-type "^4.0.0" -create-jest@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz" - integrity sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q== - dependencies: - "@jest/types" "^29.6.3" - chalk "^4.0.0" - exit "^0.1.2" - graceful-fs "^4.2.9" - jest-config "^29.7.0" - jest-util "^29.7.0" - prompts "^2.0.1" - create-require@^1.1.0: version "1.1.1" resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== +cross-fetch@^3.1.5: + version "3.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-fetch/-/cross-fetch-3.2.0.tgz" + integrity sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q== + dependencies: + node-fetch "^2.7.0" + cross-inspect@1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/cross-inspect/-/cross-inspect-1.0.0.tgz" - integrity sha512-4PFfn4b5ZN6FMNGSZlyb7wUhuN8wvj8t/VQHZdM4JsDcruGJ8L2kf9zao98QIrBPFCpdk27qst/AGTl7pL3ypQ== dependencies: tslib "^2.4.0" -cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== +cross-inspect@1.0.1: + version "1.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-inspect/-/cross-inspect-1.0.1.tgz" + integrity sha512-Pcw1JTvZLSJH83iiGWt6fRcT+BjZlCDRVwYLbUcHzv/CRpB7r0MlSrGbIyQvVSNyGnbt7G4AXuyCiDR3POvZ1A== + dependencies: + tslib "^2.4.0" + +cross-spawn@^7.0.3, cross-spawn@^7.0.6: + version "7.0.6" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/cross-spawn/-/cross-spawn-7.0.6.tgz" + integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== dependencies: path-key "^3.1.0" shebang-command "^2.0.0" which "^2.0.1" -cssstyle@^4.2.1: - version "4.3.0" - resolved "https://registry.npmjs.org/cssstyle/-/cssstyle-4.3.0.tgz" - integrity sha512-6r0NiY0xizYqfBvWp1G7WXJ06/bZyrk7Dc6PHql82C/pKGUTKu4yAX4Y8JPamb1ob9nBKuxWzCGTRuGwU3yxJQ== +data-uri-to-buffer@^4.0.0: + version "4.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/data-uri-to-buffer/-/data-uri-to-buffer-4.0.1.tgz" + integrity sha512-0R9ikRb668HB7QDxT1vkpuUBtqc53YyAwMwGeUFKRojY/NWKvdZ+9UYtRfGmhqNbRkTSVpMbmyhXipFFv2cb/A== + +data-view-buffer@^1.0.2: + version "1.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/data-view-buffer/-/data-view-buffer-1.0.2.tgz" + integrity sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ== dependencies: - "@asamuzakjp/css-color" "^3.1.1" - rrweb-cssom "^0.8.0" + call-bound "^1.0.3" + es-errors "^1.3.0" + is-data-view "^1.0.2" -data-urls@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/data-urls/-/data-urls-5.0.0.tgz" - integrity sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg== +data-view-byte-length@^1.0.2: + version "1.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz" + integrity sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ== dependencies: - whatwg-mimetype "^4.0.0" - whatwg-url "^14.0.0" + call-bound "^1.0.3" + es-errors "^1.3.0" + is-data-view "^1.0.2" -dataloader@^2.2.2: - version "2.2.2" - resolved "https://registry.npmjs.org/dataloader/-/dataloader-2.2.2.tgz" - integrity sha512-8YnDaaf7N3k/q5HnTJVuzSyLETjoZjVmHc4AeKAzOvKHEFQKcn64OKBfzHYtE9zGjctNM7V9I0MfnUVLpi7M5g== +data-view-byte-offset@^1.0.1: + version "1.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz" + integrity sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + is-data-view "^1.0.1" + +dataloader@^2.2.3: + version "2.2.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/dataloader/-/dataloader-2.2.3.tgz" + integrity sha512-y2krtASINtPFS1rSDjacrFgn1dcUuoREVabwlOGOe4SdxenREqwjwjElAdwvbGM7kgZz9a3KVicWR7vcz8rnzA== + +debounce@^1.2.0: + version "1.2.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/debounce/-/debounce-1.2.1.tgz" + integrity sha512-XRRe6Glud4rd/ZGQfiV1ruXSfbvfJedlV9Y6zOlP+2K04vBYiJEte6stfFkCP03aMnY5tsipamumUjL14fofug== debug@^3.2.7: version "3.2.7" @@ -2156,36 +3008,34 @@ debug@^3.2.7: dependencies: ms "^2.1.1" -debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@4, debug@4.3.4: +debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@4: version "4.3.4" - resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" - integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -decimal.js@^10.5.0: - version "10.5.0" - resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.5.0.tgz" - integrity sha512-8vDa8Qxvr/+d94hSh5P3IJwI5t8/c0KsMp+g8bNw9cY2icONa5aPfvKeieW1WlG0WQYwwhJ7mjui2xtiePQSXw== +decamelize@^1.2.0: + version "1.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/decamelize/-/decamelize-1.2.0.tgz" + integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== dedent@^0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/dedent/-/dedent-0.7.0.tgz" integrity sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA== -dedent@^1.0.0: - version "1.5.1" - resolved "https://registry.npmjs.org/dedent/-/dedent-1.5.1.tgz" - integrity sha512-+LxW+KLWxu3HW3M2w2ympwtqPrqYRzU8fqi6Fhd18fBALe15blJPI/I4+UHveMVG6lJqB4JNd4UG0S5cnVHwIg== +dedent@^1.6.0: + version "1.7.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/dedent/-/dedent-1.7.0.tgz" + integrity sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ== deep-is@^0.1.3: version "0.1.4" resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -deepmerge@^4.2.2: +deepmerge@^4.3.1: version "4.3.1" - resolved "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/deepmerge/-/deepmerge-4.3.1.tgz" integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== defaults@^1.0.3: @@ -2195,16 +3045,16 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" -define-data-property@^1.0.1, define-data-property@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz" - integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== +define-data-property@^1.0.1, define-data-property@^1.1.4: + version "1.1.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/define-data-property/-/define-data-property-1.1.4.tgz" + integrity sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A== dependencies: - get-intrinsic "^1.2.1" + es-define-property "^1.0.0" + es-errors "^1.3.0" gopd "^1.0.1" - has-property-descriptors "^1.0.0" -define-properties@^1.1.3, define-properties@^1.2.0, define-properties@^1.2.1: +define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== @@ -2227,26 +3077,31 @@ del@^6.1.1: rimraf "^3.0.2" slash "^3.0.0" -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" - integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== +dependency-graph@^0.11.0: + version "0.11.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/dependency-graph/-/dependency-graph-0.11.0.tgz" + integrity sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg== deprecation@^2.0.0: version "2.3.1" - resolved "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/deprecation/-/deprecation-2.3.1.tgz" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== -detect-newline@^3.0.0: +detect-indent@^6.0.0: + version "6.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/detect-indent/-/detect-indent-6.1.0.tgz" + integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== + +detect-libc@^1.0.3: + version "1.0.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/detect-libc/-/detect-libc-1.0.3.tgz" + integrity sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg== + +detect-newline@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/detect-newline/-/detect-newline-3.1.0.tgz" integrity sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA== -diff-sequences@^29.6.3: - version "29.6.3" - resolved "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz" - integrity sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q== - diff@^4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" @@ -2266,32 +3121,38 @@ doctrine@^2.1.0: dependencies: esutils "^2.0.2" -doctrine@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" - integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== +dot-case@^3.0.4: + version "3.0.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/dot-case/-/dot-case-3.0.4.tgz" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== dependencies: - esutils "^2.0.2" + no-case "^3.0.4" + tslib "^2.0.3" -dotenv@^16.0.3: - version "16.3.1" - resolved "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz" - integrity sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ== +dotenv@^16.0.0, dotenv@^16.5.0: + version "16.6.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/dotenv/-/dotenv-16.6.1.tgz" + integrity sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow== dset@^3.1.2: version "3.1.3" - resolved "https://registry.npmjs.org/dset/-/dset-3.1.3.tgz" - integrity sha512-20TuZZHCEZ2O71q9/+8BwKwZ0QtD9D8ObhrihJPr+vLLYlSuAU3/zL4cSlgbfeoGHTjCSJBa7NGcrF9/Bx/WJQ== + +dunder-proto@^1.0.0, dunder-proto@^1.0.1: + version "1.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/dunder-proto/-/dunder-proto-1.0.1.tgz" + integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A== + dependencies: + call-bind-apply-helpers "^1.0.1" + es-errors "^1.3.0" + gopd "^1.2.0" eastasianwidth@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/eastasianwidth/-/eastasianwidth-0.2.0.tgz" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== elastic-apm-node@^4.10.0: version "4.10.0" - resolved "https://registry.npmjs.org/elastic-apm-node/-/elastic-apm-node-4.10.0.tgz" - integrity sha512-QmnKLArA84lJ4mNoUTi9qMUfLE1nUeFLB+VO/7iG6UOTiAdR5Wxk0nu3SpcgFe+tr+4GkyXM2xXdmL2XYfQ1Qg== dependencies: "@elastic/ecs-pino-format" "^1.5.0" "@opentelemetry/api" "^1.4.1" @@ -2331,16 +3192,21 @@ elastic-apm-node@^4.10.0: stream-chopper "^3.0.1" unicode-byte-truncate "^1.0.0" -electron-to-chromium@^1.4.601: - version "1.4.610" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.610.tgz" - integrity sha512-mqi2oL1mfeHYtOdCxbPQYV/PL7YrQlxbvFEZ0Ee8GbDdShimqt2/S6z2RWqysuvlwdOrQdqvE0KZrBTipAeJzg== +electron-to-chromium@^1.5.249: + version "1.5.259" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/electron-to-chromium/-/electron-to-chromium-1.5.259.tgz" + integrity sha512-I+oLXgpEJzD6Cwuwt1gYjxsDmu/S/Kd41mmLA3O+/uH2pFRO/DvOjUyGozL8j3KeLV6WyZ7ssPwELMsXCcsJAQ== emittery@^0.13.1: version "0.13.1" - resolved "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/emittery/-/emittery-0.13.1.tgz" integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== +emoji-regex@^10.3.0: + version "10.6.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/emoji-regex/-/emoji-regex-10.6.0.tgz" + integrity sha512-toUI84YS5YmxW219erniWD0CIVOo46xGKColeNQRgOzDorgBi1v4D71/OFzgD9GO2UGKIv1C3Sp8DAn0+j5w7A== + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" @@ -2348,12 +3214,12 @@ emoji-regex@^8.0.0: emoji-regex@^9.2.2: version "9.2.2" - resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/emoji-regex/-/emoji-regex-9.2.2.tgz" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== enabled@2.0.x: version "2.0.0" - resolved "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/enabled/-/enabled-2.0.0.tgz" integrity sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ== end-of-stream@^1.4.1, end-of-stream@^1.4.4: @@ -2363,10 +3229,10 @@ end-of-stream@^1.4.1, end-of-stream@^1.4.4: dependencies: once "^1.4.0" -entities@^4.5.0: - version "4.5.0" - resolved "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz" - integrity sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw== +environment@^1.0.0: + version "1.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/environment/-/environment-1.1.0.tgz" + integrity sha512-xUtoPkMggbz0MPyPiIWr1Kp4aeWJjDZ6SMvURhimjdZgsRuDplF5/s9hcgGhyXMhs+6vpnuoiZ2kFiu3FMnS8Q== error-callsites@^2.0.4: version "2.0.4" @@ -2387,80 +3253,113 @@ error-stack-parser@^2.0.6: dependencies: stackframe "^1.3.4" -es-abstract@^1.22.1: - version "1.22.3" - resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.3.tgz" - integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== - dependencies: - array-buffer-byte-length "^1.0.0" - arraybuffer.prototype.slice "^1.0.2" - available-typed-arrays "^1.0.5" - call-bind "^1.0.5" - es-set-tostringtag "^2.0.1" - es-to-primitive "^1.2.1" - function.prototype.name "^1.1.6" - get-intrinsic "^1.2.2" - get-symbol-description "^1.0.0" - globalthis "^1.0.3" - gopd "^1.0.1" - has-property-descriptors "^1.0.0" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" - internal-slot "^1.0.5" - is-array-buffer "^3.0.2" +es-abstract@^1.22.1, es-abstract@^1.23.2, es-abstract@^1.23.5, es-abstract@^1.23.9, es-abstract@^1.24.0: + version "1.24.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/es-abstract/-/es-abstract-1.24.0.tgz" + integrity sha512-WSzPgsdLtTcQwm4CROfS5ju2Wa1QQcVeT37jFjYzdFz1r9ahadC8B8/a4qxJxM+09F18iumCdRmlr96ZYkQvEg== + dependencies: + array-buffer-byte-length "^1.0.2" + arraybuffer.prototype.slice "^1.0.4" + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.4" + data-view-buffer "^1.0.2" + data-view-byte-length "^1.0.2" + data-view-byte-offset "^1.0.1" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" + es-set-tostringtag "^2.1.0" + es-to-primitive "^1.3.0" + function.prototype.name "^1.1.8" + get-intrinsic "^1.3.0" + get-proto "^1.0.1" + get-symbol-description "^1.1.0" + globalthis "^1.0.4" + gopd "^1.2.0" + has-property-descriptors "^1.0.2" + has-proto "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + internal-slot "^1.1.0" + is-array-buffer "^3.0.5" is-callable "^1.2.7" - is-negative-zero "^2.0.2" - is-regex "^1.1.4" - is-shared-array-buffer "^1.0.2" - is-string "^1.0.7" - is-typed-array "^1.1.12" - is-weakref "^1.0.2" - object-inspect "^1.13.1" + is-data-view "^1.0.2" + is-negative-zero "^2.0.3" + is-regex "^1.2.1" + is-set "^2.0.3" + is-shared-array-buffer "^1.0.4" + is-string "^1.1.1" + is-typed-array "^1.1.15" + is-weakref "^1.1.1" + math-intrinsics "^1.1.0" + object-inspect "^1.13.4" object-keys "^1.1.1" - object.assign "^4.1.4" - regexp.prototype.flags "^1.5.1" - safe-array-concat "^1.0.1" - safe-regex-test "^1.0.0" - string.prototype.trim "^1.2.8" - string.prototype.trimend "^1.0.7" - string.prototype.trimstart "^1.0.7" - typed-array-buffer "^1.0.0" - typed-array-byte-length "^1.0.0" - typed-array-byte-offset "^1.0.0" - typed-array-length "^1.0.4" - unbox-primitive "^1.0.2" - which-typed-array "^1.1.13" - -es-set-tostringtag@^2.0.1: - version "2.0.2" - resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz" - integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== + object.assign "^4.1.7" + own-keys "^1.0.1" + regexp.prototype.flags "^1.5.4" + safe-array-concat "^1.1.3" + safe-push-apply "^1.0.0" + safe-regex-test "^1.1.0" + set-proto "^1.0.0" + stop-iteration-iterator "^1.1.0" + string.prototype.trim "^1.2.10" + string.prototype.trimend "^1.0.9" + string.prototype.trimstart "^1.0.8" + typed-array-buffer "^1.0.3" + typed-array-byte-length "^1.0.3" + typed-array-byte-offset "^1.0.4" + typed-array-length "^1.0.7" + unbox-primitive "^1.1.0" + which-typed-array "^1.1.19" + +es-define-property@^1.0.0, es-define-property@^1.0.1: + version "1.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/es-define-property/-/es-define-property-1.0.1.tgz" + integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g== + +es-errors@^1.3.0: + version "1.3.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/es-errors/-/es-errors-1.3.0.tgz" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + +es-object-atoms@^1.0.0, es-object-atoms@^1.1.1: + version "1.1.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/es-object-atoms/-/es-object-atoms-1.1.1.tgz" + integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA== dependencies: - get-intrinsic "^1.2.2" - has-tostringtag "^1.0.0" - hasown "^2.0.0" + es-errors "^1.3.0" -es-shim-unscopables@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz" - integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== +es-set-tostringtag@^2.1.0: + version "2.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz" + integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA== dependencies: - hasown "^2.0.0" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" + has-tostringtag "^1.0.2" + hasown "^2.0.2" -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== +es-shim-unscopables@^1.0.2, es-shim-unscopables@^1.1.0: + version "1.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/es-shim-unscopables/-/es-shim-unscopables-1.1.0.tgz" + integrity sha512-d9T8ucsEhh8Bi1woXCf+TIKDIROLG5WCkxg8geBCbvk22kzwC5G2OnXVMO6FUsvQlgUUXQ2itephWDLqDzbeCw== dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" + hasown "^2.0.2" -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== +es-to-primitive@^1.3.0: + version "1.3.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/es-to-primitive/-/es-to-primitive-1.3.0.tgz" + integrity sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g== + dependencies: + is-callable "^1.2.7" + is-date-object "^1.0.5" + is-symbol "^1.0.4" + +escalade@^3.1.1, escalade@^3.2.0: + version "3.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/escalade/-/escalade-3.2.0.tgz" + integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== escape-string-regexp@^1.0.5: version "1.0.5" @@ -2469,7 +3368,7 @@ escape-string-regexp@^1.0.5: escape-string-regexp@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz" integrity sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w== escape-string-regexp@^4.0.0: @@ -2477,11 +3376,6 @@ escape-string-regexp@^4.0.0: resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-config-prettier@*, eslint-config-prettier@^9.0.0: - version "9.1.0" - resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz" - integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== - eslint-import-resolver-node@^0.3.9: version "0.3.9" resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz" @@ -2491,134 +3385,112 @@ eslint-import-resolver-node@^0.3.9: is-core-module "^2.13.0" resolve "^1.22.4" -eslint-module-utils@^2.8.0: - version "2.8.0" - resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz" - integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== +eslint-module-utils@^2.12.1: + version "2.12.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/eslint-module-utils/-/eslint-module-utils-2.12.1.tgz" + integrity sha512-L8jSWTze7K2mTg0vos/RuLRS5soomksDPoJLXIslC7c8Wmut3bx7CPpJijDcBZtxQ5lrbUdM+s0OlNbz0DCDNw== dependencies: debug "^3.2.7" -eslint-plugin-import@^2.29.1: - version "2.29.1" - resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz" - integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== +eslint-plugin-import@^2.30.0: + version "2.32.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/eslint-plugin-import/-/eslint-plugin-import-2.32.0.tgz" + integrity sha512-whOE1HFo/qJDyX4SnXzP4N6zOWn79WhnCUY/iDR0mPfQZO8wcYE4JClzI2oZrhBnnMUCBCHZhO6VQyoBU95mZA== dependencies: - array-includes "^3.1.7" - array.prototype.findlastindex "^1.2.3" - array.prototype.flat "^1.3.2" - array.prototype.flatmap "^1.3.2" + "@rtsao/scc" "^1.1.0" + array-includes "^3.1.9" + array.prototype.findlastindex "^1.2.6" + array.prototype.flat "^1.3.3" + array.prototype.flatmap "^1.3.3" debug "^3.2.7" doctrine "^2.1.0" eslint-import-resolver-node "^0.3.9" - eslint-module-utils "^2.8.0" - hasown "^2.0.0" - is-core-module "^2.13.1" + eslint-module-utils "^2.12.1" + hasown "^2.0.2" + is-core-module "^2.16.1" is-glob "^4.0.3" minimatch "^3.1.2" - object.fromentries "^2.0.7" - object.groupby "^1.0.1" - object.values "^1.1.7" + object.fromentries "^2.0.8" + object.groupby "^1.0.3" + object.values "^1.2.1" semver "^6.3.1" + string.prototype.trimend "^1.0.9" tsconfig-paths "^3.15.0" -eslint-plugin-jest@^27.9.0: - version "27.9.0" - resolved "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-27.9.0.tgz" - integrity sha512-QIT7FH7fNmd9n4se7FFKHbsLKGQiw885Ds6Y/sxKgCZ6natwCsXdgPOADnYVxN2QrRweF0FZWbJ6S7Rsn7llug== - dependencies: - "@typescript-eslint/utils" "^5.10.0" - -eslint-plugin-prettier@^5.1.3: - version "5.1.3" - resolved "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-5.1.3.tgz" - integrity sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw== - dependencies: - prettier-linter-helpers "^1.0.0" - synckit "^0.8.6" - -eslint-scope@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz" - integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== - dependencies: - esrecurse "^4.3.0" - estraverse "^4.1.1" - -eslint-scope@^7.2.2: - version "7.2.2" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" - integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== +eslint-scope@^8.4.0: + version "8.4.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/eslint-scope/-/eslint-scope-8.4.0.tgz" + integrity sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg== dependencies: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: +eslint-visitor-keys@^3.4.3: version "3.4.3" resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -"eslint@^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8", "eslint@^6.0.0 || ^7.0.0 || ^8.0.0", "eslint@^6.0.0 || ^7.0.0 || >=8.0.0", "eslint@^7.0.0 || ^8.0.0", eslint@^8.56.0, eslint@^8.57.0, eslint@>=7.0.0, eslint@>=8.0.0: - version "8.57.0" - resolved "https://registry.npmjs.org/eslint/-/eslint-8.57.0.tgz" - integrity sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ== - dependencies: - "@eslint-community/eslint-utils" "^4.2.0" - "@eslint-community/regexpp" "^4.6.1" - "@eslint/eslintrc" "^2.1.4" - "@eslint/js" "8.57.0" - "@humanwhocodes/config-array" "^0.11.14" +eslint-visitor-keys@^4.2.1: + version "4.2.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz" + integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ== + +eslint@^9.0.0: + version "9.39.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/eslint/-/eslint-9.39.1.tgz" + integrity sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g== + dependencies: + "@eslint-community/eslint-utils" "^4.8.0" + "@eslint-community/regexpp" "^4.12.1" + "@eslint/config-array" "^0.21.1" + "@eslint/config-helpers" "^0.4.2" + "@eslint/core" "^0.17.0" + "@eslint/eslintrc" "^3.3.1" + "@eslint/js" "9.39.1" + "@eslint/plugin-kit" "^0.4.1" + "@humanfs/node" "^0.16.6" "@humanwhocodes/module-importer" "^1.0.1" - "@nodelib/fs.walk" "^1.2.8" - "@ungap/structured-clone" "^1.2.0" + "@humanwhocodes/retry" "^0.4.2" + "@types/estree" "^1.0.6" ajv "^6.12.4" chalk "^4.0.0" - cross-spawn "^7.0.2" + cross-spawn "^7.0.6" debug "^4.3.2" - doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.2.2" - eslint-visitor-keys "^3.4.3" - espree "^9.6.1" - esquery "^1.4.2" + eslint-scope "^8.4.0" + eslint-visitor-keys "^4.2.1" + espree "^10.4.0" + esquery "^1.5.0" esutils "^2.0.2" fast-deep-equal "^3.1.3" - file-entry-cache "^6.0.1" + file-entry-cache "^8.0.0" find-up "^5.0.0" glob-parent "^6.0.2" - globals "^13.19.0" - graphemer "^1.4.0" ignore "^5.2.0" imurmurhash "^0.1.4" is-glob "^4.0.0" - is-path-inside "^3.0.3" - js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.4.1" lodash.merge "^4.6.2" minimatch "^3.1.2" natural-compare "^1.4.0" optionator "^0.9.3" - strip-ansi "^6.0.1" - text-table "^0.2.0" -espree@^9.6.0, espree@^9.6.1: - version "9.6.1" - resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" - integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== +espree@^10.0.1, espree@^10.4.0: + version "10.4.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/espree/-/espree-10.4.0.tgz" + integrity sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ== dependencies: - acorn "^8.9.0" + acorn "^8.15.0" acorn-jsx "^5.3.2" - eslint-visitor-keys "^3.4.1" + eslint-visitor-keys "^4.2.1" esprima@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/esprima/-/esprima-4.0.1.tgz" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.4.2: +esquery@^1.5.0: version "1.5.0" - resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" - integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" @@ -2629,11 +3501,6 @@ esrecurse@^4.3.0: dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: - version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" @@ -2651,7 +3518,7 @@ event-target-shim@^5.0.0: eventemitter3@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/eventemitter3/-/eventemitter3-5.0.1.tgz" integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== events@^3.3.0: @@ -2659,9 +3526,9 @@ events@^3.3.0: resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -execa@^5.0.0: +execa@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/execa/-/execa-5.1.1.tgz" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== dependencies: cross-spawn "^7.0.3" @@ -2674,70 +3541,30 @@ execa@^5.0.0: signal-exit "^3.0.3" strip-final-newline "^2.0.0" -execa@7.2.0: - version "7.2.0" - resolved "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz" - integrity sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA== - dependencies: - cross-spawn "^7.0.3" - get-stream "^6.0.1" - human-signals "^4.3.0" - is-stream "^3.0.0" - merge-stream "^2.0.0" - npm-run-path "^5.1.0" - onetime "^6.0.0" - signal-exit "^3.0.7" - strip-final-newline "^3.0.0" - -exit@^0.1.2: - version "0.1.2" - resolved "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz" - integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== - -expect@^29.0.0, expect@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz" - integrity sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw== - dependencies: - "@jest/expect-utils" "^29.7.0" - jest-get-type "^29.6.3" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" +exit-x@^0.2.2: + version "0.2.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/exit-x/-/exit-x-0.2.2.tgz" + integrity sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ== -external-editor@^3.0.3: - version "3.1.0" - resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz" - integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== +expect@^30.0.0, expect@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/expect/-/expect-30.2.0.tgz" + integrity sha512-u/feCi0GPsI+988gU2FLcsHyAHTU0MX1Wg68NhAnN7z/+C5wqG+CY8J53N9ioe8RXgaoz0nBR/TYMf3AycUuPw== dependencies: - chardet "^0.7.0" - iconv-lite "^0.4.24" - tmp "^0.0.33" - -extract-files@^11.0.0: - version "11.0.0" - resolved "https://registry.npmjs.org/extract-files/-/extract-files-11.0.0.tgz" - integrity sha512-FuoE1qtbJ4bBVvv94CC7s0oTnKUGvQs+Rjf1L2SJFfS+HTVVjhPFtehPdQ0JiGPqVNfSSZvL5yzHHQq2Z4WNhQ== - -fast-decode-uri-component@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/fast-decode-uri-component/-/fast-decode-uri-component-1.0.1.tgz" - integrity sha512-WKgKWg5eUxvRZGwW8FvfbaH7AXSh2cL+3j5fMGzUMCxWBJ3dV3a7Wz8y2f/uQ0e3B6WmodD3oS54jTQ9HVTIIg== + "@jest/expect-utils" "30.2.0" + "@jest/get-type" "30.1.0" + jest-matcher-utils "30.2.0" + jest-message-util "30.2.0" + jest-mock "30.2.0" + jest-util "30.2.0" fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-diff@^1.1.2: - version "1.3.0" - resolved "https://registry.npmjs.org/fast-diff/-/fast-diff-1.3.0.tgz" - integrity sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw== - -fast-glob@^3.2.9: +fast-glob@^3.2.9, fast-glob@^3.3.2: version "3.3.2" - resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz" - integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -2755,13 +3582,6 @@ fast-levenshtein@^2.0.6: resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fast-querystring@^1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/fast-querystring/-/fast-querystring-1.1.2.tgz" - integrity sha512-g6KuKWmFXc0fID8WWH0jit4g0AGBoJhCkJMb1RmbsSEUNvQ+ZC8D6CUZ+GtF8nMzSPXnhiePyyqqipzNNEnHjg== - dependencies: - fast-decode-uri-component "^1.0.1" - fast-redact@^3.1.1: version "3.5.0" resolved "https://registry.npmjs.org/fast-redact/-/fast-redact-3.5.0.tgz" @@ -2781,23 +3601,47 @@ fast-stream-to-buffer@^1.0.0: fastq@^1.6.0: version "1.15.0" - resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz" - integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== dependencies: reusify "^1.0.4" -fb-watchman@^2.0.0: +fb-watchman@^2.0.0, fb-watchman@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/fb-watchman/-/fb-watchman-2.0.2.tgz" integrity sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA== dependencies: bser "2.1.1" +fbjs-css-vars@^1.0.0: + version "1.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/fbjs-css-vars/-/fbjs-css-vars-1.0.2.tgz" + integrity sha512-b2XGFAFdWZWg0phtAWLHCk836A1Xann+I+Dgd3Gk64MHKZO44FfoD1KxyvbSh0qZsIoXQGGlVztIY+oitJPpRQ== + +fbjs@^3.0.0: + version "3.0.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/fbjs/-/fbjs-3.0.5.tgz" + integrity sha512-ztsSx77JBtkuMrEypfhgc3cI0+0h+svqeie7xHbh1k/IKdcydnvadp/mUaGgjAOXQmQSxsqgaRhS3q9fy+1kxg== + dependencies: + cross-fetch "^3.1.5" + fbjs-css-vars "^1.0.0" + loose-envify "^1.0.0" + object-assign "^4.1.0" + promise "^7.1.1" + setimmediate "^1.0.5" + ua-parser-js "^1.0.35" + fecha@^4.2.0: version "4.2.3" - resolved "https://registry.npmjs.org/fecha/-/fecha-4.2.3.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/fecha/-/fecha-4.2.3.tgz" integrity sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw== +fetch-blob@^3.1.2, fetch-blob@^3.1.4: + version "3.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/fetch-blob/-/fetch-blob-3.2.0.tgz" + integrity sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ== + dependencies: + node-domexception "^1.0.0" + web-streams-polyfill "^3.0.3" + figures@^3.0.0: version "3.2.0" resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" @@ -2805,23 +3649,23 @@ figures@^3.0.0: dependencies: escape-string-regexp "^1.0.5" -file-entry-cache@^6.0.1: - version "6.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" - integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== +file-entry-cache@^8.0.0: + version "8.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/file-entry-cache/-/file-entry-cache-8.0.0.tgz" + integrity sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ== dependencies: - flat-cache "^3.0.4" + flat-cache "^4.0.0" -fill-range@^7.0.1: - version "7.0.1" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" - integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== +fill-range@^7.1.1: + version "7.1.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/fill-range/-/fill-range-7.1.1.tgz" + integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg== dependencies: to-regex-range "^5.0.1" find-up@^4.0.0: version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/find-up/-/find-up-4.1.0.tgz" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" @@ -2829,7 +3673,7 @@ find-up@^4.0.0: find-up@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/find-up/-/find-up-4.1.0.tgz" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" @@ -2843,45 +3687,45 @@ find-up@^5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -flat-cache@^3.0.4: - version "3.2.0" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.2.0.tgz" - integrity sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw== +flat-cache@^4.0.0: + version "4.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/flat-cache/-/flat-cache-4.0.1.tgz" + integrity sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw== dependencies: flatted "^3.2.9" - keyv "^4.5.3" - rimraf "^3.0.2" + keyv "^4.5.4" flatted@^3.2.9: - version "3.2.9" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz" - integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== + version "3.3.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/flatted/-/flatted-3.3.3.tgz" + integrity sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg== fn.name@1.x.x: version "1.1.0" resolved "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz" integrity sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw== -follow-redirects@^1.15.0: - version "1.15.3" - resolved "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz" - integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== +for-each@^0.3.3, for-each@^0.3.5: + version "0.3.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/for-each/-/for-each-0.3.5.tgz" + integrity sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg== + dependencies: + is-callable "^1.2.7" -for-each@^0.3.3: - version "0.3.3" - resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" - integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== +foreground-child@^3.1.0: + version "3.3.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/foreground-child/-/foreground-child-3.3.1.tgz" + integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== dependencies: - is-callable "^1.1.3" + cross-spawn "^7.0.6" + signal-exit "^4.0.1" -form-data@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz" - integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== +formdata-polyfill@^4.0.10: + version "4.0.10" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/formdata-polyfill/-/formdata-polyfill-4.0.10.tgz" + integrity sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g== dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.8" - mime-types "^2.1.12" + fetch-blob "^3.1.2" forwarded-parse@^2.1.0: version "2.1.2" @@ -2893,9 +3737,9 @@ fs.realpath@^1.0.0: resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^2.3.2: +fsevents@^2.3.3: version "2.3.3" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/fsevents/-/fsevents-2.3.3.tgz" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.2: @@ -2903,58 +3747,85 @@ function-bind@^1.1.2: resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== -function.prototype.name@^1.1.6: - version "1.1.6" - resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz" - integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== +function.prototype.name@^1.1.6, function.prototype.name@^1.1.8: + version "1.1.8" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/function.prototype.name/-/function.prototype.name-1.1.8.tgz" + integrity sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" functions-have-names "^1.2.3" + hasown "^2.0.2" + is-callable "^1.2.7" functions-have-names@^1.2.3: version "1.2.3" - resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/functions-have-names/-/functions-have-names-1.2.3.tgz" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== +generator-function@^2.0.0: + version "2.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/generator-function/-/generator-function-2.0.1.tgz" + integrity sha512-SFdFmIJi+ybC0vjlHN0ZGVGHc3lgE0DxPAT0djjVg+kjOnSqclqmj0KQ7ykTOLP6YxoqOvuAODGdcHJn+43q3g== + gensync@^1.0.0-beta.2: version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/gensync/-/gensync-1.0.0-beta.2.tgz" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^2.0.5: +get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1, get-intrinsic@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz" - integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== +get-east-asian-width@^1.0.0, get-east-asian-width@^1.3.0, get-east-asian-width@^1.3.1: + version "1.4.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/get-east-asian-width/-/get-east-asian-width-1.4.0.tgz" + integrity sha512-QZjmEOC+IT1uk6Rx0sX22V6uHWVwbdbxf1faPqJ1QhLdGgsRGCZoyaQBm/piRdJy/D2um6hM1UP7ZEeQ4EkP+Q== + +get-intrinsic@^1.2.4, get-intrinsic@^1.2.5, get-intrinsic@^1.2.6, get-intrinsic@^1.2.7, get-intrinsic@^1.3.0: + version "1.3.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/get-intrinsic/-/get-intrinsic-1.3.0.tgz" + integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ== dependencies: + call-bind-apply-helpers "^1.0.2" + es-define-property "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.1.1" function-bind "^1.1.2" - has-proto "^1.0.1" - has-symbols "^1.0.3" - hasown "^2.0.0" + get-proto "^1.0.1" + gopd "^1.2.0" + has-symbols "^1.1.0" + hasown "^2.0.2" + math-intrinsics "^1.1.0" get-package-type@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/get-package-type/-/get-package-type-0.1.0.tgz" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== -get-stream@^6.0.0, get-stream@^6.0.1: +get-proto@^1.0.1: + version "1.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/get-proto/-/get-proto-1.0.1.tgz" + integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g== + dependencies: + dunder-proto "^1.0.1" + es-object-atoms "^1.0.0" + +get-stream@^6.0.0: version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/get-stream/-/get-stream-6.0.1.tgz" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== -get-symbol-description@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" - integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== +get-symbol-description@^1.1.0: + version "1.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/get-symbol-description/-/get-symbol-description-1.1.0.tgz" + integrity sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.1" + call-bound "^1.0.3" + es-errors "^1.3.0" + get-intrinsic "^1.2.6" glob-parent@^5.1.2: version "5.1.2" @@ -2970,7 +3841,19 @@ glob-parent@^6.0.2: dependencies: is-glob "^4.0.3" -glob@^7.1.3, glob@^7.1.4: +glob@^10.3.10: + version "10.5.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/glob/-/glob-10.5.0.tgz" + integrity sha512-DfXN8DfhJ7NH3Oe7cFmu3NCu1wKbkReJ8TorzSAFbSKrlNaQSKfIzqYqVY8zlbs2NLBbWpRiU52GX2PbaBVNkg== + dependencies: + foreground-child "^3.1.0" + jackspeak "^3.1.2" + minimatch "^9.0.4" + minipass "^7.1.2" + package-json-from-dist "^1.0.0" + path-scurry "^1.11.1" + +glob@^7.1.1, glob@^7.1.3, glob@^7.1.4: version "7.2.3" resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -2982,26 +3865,20 @@ glob@^7.1.3, glob@^7.1.4: once "^1.3.0" path-is-absolute "^1.0.0" -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globals@^13.19.0: - version "13.24.0" - resolved "https://registry.npmjs.org/globals/-/globals-13.24.0.tgz" - integrity sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ== - dependencies: - type-fest "^0.20.2" +globals@^14.0.0: + version "14.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/globals/-/globals-14.0.0.tgz" + integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== -globalthis@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz" - integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== +globalthis@^1.0.4: + version "1.0.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/globalthis/-/globalthis-1.0.4.tgz" + integrity sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ== dependencies: - define-properties "^1.1.3" + define-properties "^1.2.1" + gopd "^1.0.1" -globby@^11.0.1, globby@^11.0.3, globby@^11.1.0: +globby@^11.0.1, globby@^11.0.3: version "11.1.0" resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== @@ -3013,14 +3890,12 @@ globby@^11.0.1, globby@^11.0.3, globby@^11.1.0: merge2 "^1.4.1" slash "^3.0.0" -gopd@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" - integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== - dependencies: - get-intrinsic "^1.1.3" +gopd@^1.0.1, gopd@^1.2.0: + version "1.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/gopd/-/gopd-1.2.0.tgz" + integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg== -graceful-fs@^4.2.4, graceful-fs@^4.2.9: +graceful-fs@^4.2.11, graceful-fs@^4.2.4: version "4.2.11" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -3030,39 +3905,54 @@ graphemer@^1.4.0: resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== -graphql-config@^5.0.3: - version "5.0.3" - resolved "https://registry.npmjs.org/graphql-config/-/graphql-config-5.0.3.tgz" - integrity sha512-BNGZaoxIBkv9yy6Y7omvsaBUHOzfFcII3UN++tpH8MGOKFPFkCPZuwx09ggANMt8FgyWP1Od8SWPmrUEZca4NQ== +graphql-config@^5.0.3, graphql-config@^5.1.1: + version "5.1.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/graphql-config/-/graphql-config-5.1.5.tgz" + integrity sha512-mG2LL1HccpU8qg5ajLROgdsBzx/o2M6kgI3uAmoaXiSH9PCUbtIyLomLqUtCFaAeG2YCFsl0M5cfQ9rKmDoMVA== dependencies: "@graphql-tools/graphql-file-loader" "^8.0.0" "@graphql-tools/json-file-loader" "^8.0.0" - "@graphql-tools/load" "^8.0.0" + "@graphql-tools/load" "^8.1.0" "@graphql-tools/merge" "^9.0.0" "@graphql-tools/url-loader" "^8.0.0" "@graphql-tools/utils" "^10.0.0" cosmiconfig "^8.1.0" - jiti "^1.18.2" - minimatch "^4.2.3" + jiti "^2.0.0" + minimatch "^9.0.5" string-env-interpolation "^1.0.1" tslib "^2.4.0" -graphql-tag@^2.12.6: +graphql-request@^6.0.0: + version "6.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/graphql-request/-/graphql-request-6.1.0.tgz" + integrity sha512-p+XPfS4q7aIpKVcgmnZKhMNqhltk20hfXtkaIkTfjjmiKMJ5xrt5c743cL03y/K7y1rg3WrIC49xGiEQ4mxdNw== + dependencies: + "@graphql-typed-document-node/core" "^3.2.0" + cross-fetch "^3.1.5" + +graphql-request@^7.2.0: + version "7.3.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/graphql-request/-/graphql-request-7.3.4.tgz" + integrity sha512-kbpP5dw9hHIL5jN/2VS2JU0/Sc1hlsj7zrYBKSDiYd5iG8QfX7P79u26ZBi84eAijsqYVZEpLvCCwEzVxscWhg== + dependencies: + "@graphql-typed-document-node/core" "^3.2.0" + +graphql-tag@^2.11.0, graphql-tag@^2.12.6: version "2.12.6" resolved "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz" integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== dependencies: tslib "^2.1.0" -graphql-ws@^5.14.0: - version "5.14.2" - resolved "https://registry.npmjs.org/graphql-ws/-/graphql-ws-5.14.2.tgz" - integrity sha512-LycmCwhZ+Op2GlHz4BZDsUYHKRiiUz+3r9wbhBATMETNlORQJAaFlAgTFoeRh6xQoQegwYwIylVD1Qns9/DA3w== +graphql-ws@^6.0.6: + version "6.0.6" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/graphql-ws/-/graphql-ws-6.0.6.tgz" + integrity sha512-zgfER9s+ftkGKUZgc0xbx8T7/HMO4AV5/YuYiFc+AtgcO5T0v8AxYYNQ+ltzuzDZgNkYJaFspm5MMYLjQzrkmw== -"graphql@^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", "graphql@^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0", "graphql@^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0", "graphql@^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0", graphql@^16.8.0, "graphql@>=0.11 <=16": - version "16.8.1" - resolved "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz" - integrity sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw== +"graphql@^15.5.0 || ^16.0.0 || ^17.0.0", graphql@^16.11.0: + version "16.12.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/graphql/-/graphql-16.12.0.tgz" + integrity sha512-DKKrynuQRne0PNpEbzuEdHlYOMksHSUI8Zc9Unei5gTsMNA2/vMpoMz/yKba50pejK56qj98qM0SjYxAKi13gQ== handlebars@^4.7.8: version "4.7.8" @@ -3083,62 +3973,60 @@ has-ansi@^3.0.0: dependencies: ansi-regex "^3.0.0" -has-bigints@^1.0.1, has-bigints@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" - integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" - integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== +has-bigints@^1.0.2: + version "1.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/has-bigints/-/has-bigints-1.1.0.tgz" + integrity sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg== has-flag@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== -has-property-descriptors@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz" - integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== +has-property-descriptors@^1.0.0, has-property-descriptors@^1.0.2: + version "1.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz" + integrity sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg== dependencies: - get-intrinsic "^1.2.2" + es-define-property "^1.0.0" -has-proto@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" - integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== +has-proto@^1.2.0: + version "1.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/has-proto/-/has-proto-1.2.0.tgz" + integrity sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ== + dependencies: + dunder-proto "^1.0.0" -has-symbols@^1.0.2, has-symbols@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" - integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== +has-symbols@^1.0.3, has-symbols@^1.1.0: + version "1.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/has-symbols/-/has-symbols-1.1.0.tgz" + integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ== -has-tostringtag@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" - integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== +has-tostringtag@^1.0.2: + version "1.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/has-tostringtag/-/has-tostringtag-1.0.2.tgz" + integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw== dependencies: - has-symbols "^1.0.2" + has-symbols "^1.0.3" -hasown@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz" - integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== +hasown@^2.0.2: + version "2.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/hasown/-/hasown-2.0.2.tgz" + integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== dependencies: function-bind "^1.1.2" -html-encoding-sniffer@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-4.0.0.tgz" - integrity sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ== +header-case@^2.0.4: + version "2.0.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/header-case/-/header-case-2.0.4.tgz" + integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== dependencies: - whatwg-encoding "^3.1.1" + capital-case "^1.0.4" + tslib "^2.0.3" html-escaper@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/html-escaper/-/html-escaper-2.0.2.tgz" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== http-headers@^3.0.2: @@ -3148,17 +4036,17 @@ http-headers@^3.0.2: dependencies: next-line "^1.1.0" -http-proxy-agent@^7.0.2: +http-proxy-agent@^7.0.0: version "7.0.2" - resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/http-proxy-agent/-/http-proxy-agent-7.0.2.tgz" integrity sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig== dependencies: agent-base "^7.1.0" debug "^4.3.4" -https-proxy-agent@^7.0.6: +https-proxy-agent@^7.0.0: version "7.0.6" - resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/https-proxy-agent/-/https-proxy-agent-7.0.6.tgz" integrity sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw== dependencies: agent-base "^7.1.2" @@ -3166,14 +4054,9 @@ https-proxy-agent@^7.0.6: human-signals@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/human-signals/-/human-signals-2.1.0.tgz" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== -human-signals@^4.3.0: - version "4.3.1" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz" - integrity sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ== - humanize-ms@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz" @@ -3181,22 +4064,15 @@ humanize-ms@^1.2.1: dependencies: ms "^2.0.0" -husky@^8.0.3: - version "8.0.3" - resolved "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz" - integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== - -iconv-lite@^0.4.24: - version "0.4.24" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" +husky@^9.1.7: + version "9.1.7" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/husky/-/husky-9.1.7.tgz" + integrity sha512-5gs5ytaNjBrh5Ow3zrvdUUY+0VxIuWVL4i9irt6friV+BqdCfmV11CQTWMiBYWHbXhco+J1kHfTOUkePhCDvMA== -iconv-lite@0.6.3: - version "0.6.3" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" - integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== +iconv-lite@^0.7.0: + version "0.7.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/iconv-lite/-/iconv-lite-0.7.0.tgz" + integrity sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" @@ -3205,33 +4081,42 @@ ieee754@^1.1.13, ieee754@^1.2.1: resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== -ignore@^5.2.0, ignore@^5.2.4: +ignore@^5.2.0: version "5.3.0" - resolved "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz" - integrity sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg== + +ignore@^7.0.0: + version "7.0.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ignore/-/ignore-7.0.5.tgz" + integrity sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg== + +immutable@~3.7.6: + version "3.7.6" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/immutable/-/immutable-3.7.6.tgz" + integrity sha512-AizQPcaofEtO11RZhPPHBOJRdo/20MKQF9mBLnVkBoyHi1/zXK8fzVdnEpSV9gxqtnh6Qomfp3F0xT5qP/vThw== import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" - integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" resolve-from "^4.0.0" +import-from@4.0.0: + version "4.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/import-from/-/import-from-4.0.0.tgz" + integrity sha512-P9J71vT5nLlDeV8FHs5nNxaLbrpfAV5cF5srvbZfpwpcJoM/xZR3hiv+q+SAnuSmuGbXMWud063iIMx/V/EWZQ== + import-in-the-middle@1.11.3: version "1.11.3" - resolved "https://registry.npmjs.org/import-in-the-middle/-/import-in-the-middle-1.11.3.tgz" - integrity sha512-tNpKEb4AjZrCyrxi+Eyu43h5ig0O8ZRFSXPHh/00/o+4P4pKzVEW/m5lsVtsAT7fCIgmQOAPjdqecGDsBXRxsw== dependencies: acorn "^8.8.2" acorn-import-attributes "^1.9.5" cjs-module-lexer "^1.2.2" module-details-from-path "^1.0.3" -import-local@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/import-local/-/import-local-3.1.0.tgz" - integrity sha512-ASB07uLtnDs1o6EHjKpX34BKYDSqnFerfTOJL2HvMqF70LnxpjkzDB8J44oT9pu4AMPkQwf8jl6szgvNd2tRIg== +import-local@^3.2.0: + version "3.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/import-local/-/import-local-3.2.0.tgz" + integrity sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA== dependencies: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" @@ -3259,16 +4144,16 @@ inherits@^2.0.3, inherits@^2.0.4, inherits@2: resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== -inquirer@^8.2.5: - version "8.2.6" - resolved "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz" - integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== +inquirer@^8.0.0, inquirer@^8.2.7: + version "8.2.7" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/inquirer/-/inquirer-8.2.7.tgz" + integrity sha512-UjOaSel/iddGZJ5xP/Eixh6dY1XghiBw4XK13rCCIJcJfyhhoul/7KhLLUGtebEj6GDYM6Vnx/mVsjx2L/mFIA== dependencies: + "@inquirer/external-editor" "^1.0.0" ansi-escapes "^4.2.1" chalk "^4.1.1" cli-cursor "^3.1.0" cli-width "^3.0.0" - external-editor "^3.0.3" figures "^3.0.0" lodash "^4.17.21" mute-stream "0.0.8" @@ -3280,73 +4165,111 @@ inquirer@^8.2.5: through "^2.3.6" wrap-ansi "^6.0.1" -internal-slot@^1.0.5: - version "1.0.6" - resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.6.tgz" - integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== +internal-slot@^1.1.0: + version "1.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/internal-slot/-/internal-slot-1.1.0.tgz" + integrity sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw== dependencies: - get-intrinsic "^1.2.2" - hasown "^2.0.0" - side-channel "^1.0.4" + es-errors "^1.3.0" + hasown "^2.0.2" + side-channel "^1.1.0" -is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz" - integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== +invariant@^2.2.4: + version "2.2.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/invariant/-/invariant-2.2.4.tgz" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.0" - is-typed-array "^1.1.10" + loose-envify "^1.0.0" + +is-absolute@^1.0.0: + version "1.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-absolute/-/is-absolute-1.0.0.tgz" + integrity sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA== + dependencies: + is-relative "^1.0.0" + is-windows "^1.0.1" + +is-array-buffer@^3.0.4, is-array-buffer@^3.0.5: + version "3.0.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-array-buffer/-/is-array-buffer-3.0.5.tgz" + integrity sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A== + dependencies: + call-bind "^1.0.8" + call-bound "^1.0.3" + get-intrinsic "^1.2.6" is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== +is-async-function@^2.0.0: + version "2.1.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-async-function/-/is-async-function-2.1.1.tgz" + integrity sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ== + dependencies: + async-function "^1.0.0" + call-bound "^1.0.3" + get-proto "^1.0.1" + has-tostringtag "^1.0.2" + safe-regex-test "^1.1.0" -is-bigint@^1.0.1: - version "1.0.4" - resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" - integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== +is-bigint@^1.1.0: + version "1.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-bigint/-/is-bigint-1.1.0.tgz" + integrity sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ== dependencies: - has-bigints "^1.0.1" + has-bigints "^1.0.2" -is-boolean-object@^1.1.0: - version "1.1.2" - resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" - integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== +is-boolean-object@^1.2.1: + version "1.2.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-boolean-object/-/is-boolean-object-1.2.2.tgz" + integrity sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A== dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" + call-bound "^1.0.3" + has-tostringtag "^1.0.2" -is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: +is-callable@^1.2.7: version "1.2.7" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-callable/-/is-callable-1.2.7.tgz" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== -is-core-module@^2.13.0, is-core-module@^2.13.1: - version "2.13.1" - resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz" - integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== +is-core-module@^2.13.0, is-core-module@^2.16.1: + version "2.16.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-core-module/-/is-core-module-2.16.1.tgz" + integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== dependencies: - hasown "^2.0.0" + hasown "^2.0.2" -is-date-object@^1.0.1: - version "1.0.5" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" - integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== +is-data-view@^1.0.1, is-data-view@^1.0.2: + version "1.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-data-view/-/is-data-view-1.0.2.tgz" + integrity sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw== + dependencies: + call-bound "^1.0.2" + get-intrinsic "^1.2.6" + is-typed-array "^1.1.13" + +is-date-object@^1.0.5, is-date-object@^1.1.0: + version "1.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-date-object/-/is-date-object-1.1.0.tgz" + integrity sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg== dependencies: - has-tostringtag "^1.0.0" + call-bound "^1.0.2" + has-tostringtag "^1.0.2" is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== +is-finalizationregistry@^1.1.0: + version "1.1.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz" + integrity sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg== + dependencies: + call-bound "^1.0.3" + is-finite@^1.0.0: version "1.1.0" resolved "https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz" @@ -3354,20 +4277,33 @@ is-finite@^1.0.0: is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-fullwidth-code-point@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz" - integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== +is-fullwidth-code-point@^5.0.0: + version "5.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-5.1.0.tgz" + integrity sha512-5XHYaSyiqADb4RnZ1Bdad6cPp8Toise4TzEjcOYDHZkTCbKgiUl7WTUCpNWHuxmDt91wnsZBc9xinNzopv3JMQ== + dependencies: + get-east-asian-width "^1.3.1" -is-generator-fn@^2.0.0: +is-generator-fn@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-generator-fn/-/is-generator-fn-2.1.0.tgz" integrity sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ== -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3: +is-generator-function@^1.0.10: + version "1.1.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-generator-function/-/is-generator-function-1.1.2.tgz" + integrity sha512-upqt1SkGkODW9tsGNG5mtXTXtECizwtS2kA161M+gJPc1xdb/Ax629af6YrTwcOeQHbewrPNlE5Dx7kzvXTizA== + dependencies: + call-bound "^1.0.4" + generator-function "^2.0.0" + get-proto "^1.0.1" + has-tostringtag "^1.0.2" + safe-regex-test "^1.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@4.0.3: version "4.0.3" resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -3386,26 +4322,39 @@ is-interactive@^1.0.0: resolved "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz" integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== -is-negative-zero@^2.0.2: +is-lower-case@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" - integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-lower-case/-/is-lower-case-2.0.2.tgz" + integrity sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ== + dependencies: + tslib "^2.0.3" + +is-map@^2.0.3: + version "2.0.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-map/-/is-map-2.0.3.tgz" + integrity sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw== + +is-negative-zero@^2.0.3: + version "2.0.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-negative-zero/-/is-negative-zero-2.0.3.tgz" + integrity sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw== is-node-process@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/is-node-process/-/is-node-process-1.2.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-node-process/-/is-node-process-1.2.0.tgz" integrity sha512-Vg4o6/fqPxIjtxgUH5QLJhwZ7gW5diGCVlXpuUfELC62CuxM1iHcRe51f2W1FDy04Ai4KJkagKjx3XaqyfRKXw== -is-number-object@^1.0.4: - version "1.0.7" - resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" - integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== +is-number-object@^1.1.1: + version "1.1.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-number-object/-/is-number-object-1.1.1.tgz" + integrity sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw== dependencies: - has-tostringtag "^1.0.0" + call-bound "^1.0.3" + has-tostringtag "^1.0.2" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-path-cwd@^2.2.0: @@ -3413,418 +4362,446 @@ is-path-cwd@^2.2.0: resolved "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz" integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== -is-path-inside@^3.0.2, is-path-inside@^3.0.3: +is-path-inside@^3.0.2: version "3.0.3" resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== -is-plain-object@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz" - integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== - -is-potential-custom-element-name@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz" - integrity sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ== +is-regex@^1.2.1: + version "1.2.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-regex/-/is-regex-1.2.1.tgz" + integrity sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g== + dependencies: + call-bound "^1.0.2" + gopd "^1.2.0" + has-tostringtag "^1.0.2" + hasown "^2.0.2" -is-regex@^1.1.4: - version "1.1.4" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" - integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== +is-relative@^1.0.0: + version "1.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-relative/-/is-relative-1.0.0.tgz" + integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== dependencies: - call-bind "^1.0.2" - has-tostringtag "^1.0.0" + is-unc-path "^1.0.0" -is-shared-array-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" - integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== +is-set@^2.0.3: + version "2.0.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-set/-/is-set-2.0.3.tgz" + integrity sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg== + +is-shared-array-buffer@^1.0.4: + version "1.0.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz" + integrity sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A== dependencies: - call-bind "^1.0.2" + call-bound "^1.0.3" is-stream@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== -is-stream@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz" - integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== +is-string@^1.1.1: + version "1.1.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-string/-/is-string-1.1.1.tgz" + integrity sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA== + dependencies: + call-bound "^1.0.3" + has-tostringtag "^1.0.2" -is-string@^1.0.5, is-string@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" - integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== +is-symbol@^1.0.4, is-symbol@^1.1.1: + version "1.1.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-symbol/-/is-symbol-1.1.1.tgz" + integrity sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w== dependencies: - has-tostringtag "^1.0.0" + call-bound "^1.0.2" + has-symbols "^1.1.0" + safe-regex-test "^1.1.0" -is-symbol@^1.0.2, is-symbol@^1.0.3: - version "1.0.4" - resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" - integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== +is-typed-array@^1.1.13, is-typed-array@^1.1.14, is-typed-array@^1.1.15: + version "1.1.15" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-typed-array/-/is-typed-array-1.1.15.tgz" + integrity sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ== dependencies: - has-symbols "^1.0.2" + which-typed-array "^1.1.16" -is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: - version "1.1.12" - resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz" - integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-unc-path/-/is-unc-path-1.0.0.tgz" + integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== dependencies: - which-typed-array "^1.1.11" + unc-path-regex "^0.1.2" is-unicode-supported@^0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -is-weakref@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" - integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== +is-upper-case@^2.0.2: + version "2.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-upper-case/-/is-upper-case-2.0.2.tgz" + integrity sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ== dependencies: - call-bind "^1.0.2" + tslib "^2.0.3" + +is-weakmap@^2.0.2: + version "2.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-weakmap/-/is-weakmap-2.0.2.tgz" + integrity sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w== + +is-weakref@^1.0.2, is-weakref@^1.1.1: + version "1.1.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-weakref/-/is-weakref-1.1.1.tgz" + integrity sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew== + dependencies: + call-bound "^1.0.3" + +is-weakset@^2.0.3: + version "2.0.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-weakset/-/is-weakset-2.0.4.tgz" + integrity sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ== + dependencies: + call-bound "^1.0.3" + get-intrinsic "^1.2.6" + +is-windows@^1.0.1: + version "1.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/is-windows/-/is-windows-1.0.2.tgz" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== isarray@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/isarray/-/isarray-2.0.5.tgz" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isomorphic-ws@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/isomorphic-ws/-/isomorphic-ws-5.0.0.tgz" integrity sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw== istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: version "3.2.2" - resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz" integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== -istanbul-lib-instrument@^5.0.4: - version "5.2.1" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz" - integrity sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg== - dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" - istanbul-lib-coverage "^3.2.0" - semver "^6.3.0" - -istanbul-lib-instrument@^6.0.0: - version "6.0.1" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.1.tgz" - integrity sha512-EAMEJBsYuyyztxMxW3g7ugGPkrZsV57v0Hmv3mm1uQsmB+QnZuepg731CRaIgeUVSdmsTngOkSnauNF8p7FIhA== +istanbul-lib-instrument@^6.0.0, istanbul-lib-instrument@^6.0.2: + version "6.0.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz" + integrity sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q== dependencies: - "@babel/core" "^7.12.3" - "@babel/parser" "^7.14.7" - "@istanbuljs/schema" "^0.1.2" + "@babel/core" "^7.23.9" + "@babel/parser" "^7.23.9" + "@istanbuljs/schema" "^0.1.3" istanbul-lib-coverage "^3.2.0" semver "^7.5.4" istanbul-lib-report@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz" integrity sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw== dependencies: istanbul-lib-coverage "^3.0.0" make-dir "^4.0.0" supports-color "^7.1.0" -istanbul-lib-source-maps@^4.0.0: - version "4.0.1" - resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz" - integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== +istanbul-lib-source-maps@^5.0.0: + version "5.0.6" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz" + integrity sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A== dependencies: + "@jridgewell/trace-mapping" "^0.3.23" debug "^4.1.1" istanbul-lib-coverage "^3.0.0" - source-map "^0.6.1" istanbul-reports@^3.1.3: - version "3.1.6" - resolved "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz" - integrity sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg== + version "3.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/istanbul-reports/-/istanbul-reports-3.2.0.tgz" + integrity sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA== dependencies: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jest-changed-files@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz" - integrity sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w== +jackspeak@^3.1.2: + version "3.4.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jackspeak/-/jackspeak-3.4.3.tgz" + integrity sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw== + dependencies: + "@isaacs/cliui" "^8.0.2" + optionalDependencies: + "@pkgjs/parseargs" "^0.11.0" + +jest-changed-files@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-changed-files/-/jest-changed-files-30.2.0.tgz" + integrity sha512-L8lR1ChrRnSdfeOvTrwZMlnWV8G/LLjQ0nG9MBclwWZidA2N5FviRki0Bvh20WRMOX31/JYvzdqTJrk5oBdydQ== dependencies: - execa "^5.0.0" - jest-util "^29.7.0" + execa "^5.1.1" + jest-util "30.2.0" p-limit "^3.1.0" -jest-circus@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz" - integrity sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw== +jest-circus@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-circus/-/jest-circus-30.2.0.tgz" + integrity sha512-Fh0096NC3ZkFx05EP2OXCxJAREVxj1BcW/i6EWqqymcgYKWjyyDpral3fMxVcHXg6oZM7iULer9wGRFvfpl+Tg== dependencies: - "@jest/environment" "^29.7.0" - "@jest/expect" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" + "@jest/environment" "30.2.0" + "@jest/expect" "30.2.0" + "@jest/test-result" "30.2.0" + "@jest/types" "30.2.0" "@types/node" "*" - chalk "^4.0.0" + chalk "^4.1.2" co "^4.6.0" - dedent "^1.0.0" - is-generator-fn "^2.0.0" - jest-each "^29.7.0" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-runtime "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" + dedent "^1.6.0" + is-generator-fn "^2.1.0" + jest-each "30.2.0" + jest-matcher-utils "30.2.0" + jest-message-util "30.2.0" + jest-runtime "30.2.0" + jest-snapshot "30.2.0" + jest-util "30.2.0" p-limit "^3.1.0" - pretty-format "^29.7.0" - pure-rand "^6.0.0" + pretty-format "30.2.0" + pure-rand "^7.0.0" slash "^3.0.0" - stack-utils "^2.0.3" - -jest-cli@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz" - integrity sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg== - dependencies: - "@jest/core" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" - chalk "^4.0.0" - create-jest "^29.7.0" - exit "^0.1.2" - import-local "^3.0.2" - jest-config "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - yargs "^17.3.1" - -jest-config@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz" - integrity sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ== - dependencies: - "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^29.7.0" - "@jest/types" "^29.6.3" - babel-jest "^29.7.0" - chalk "^4.0.0" - ci-info "^3.2.0" - deepmerge "^4.2.2" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-circus "^29.7.0" - jest-environment-node "^29.7.0" - jest-get-type "^29.6.3" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-runner "^29.7.0" - jest-util "^29.7.0" - jest-validate "^29.7.0" - micromatch "^4.0.4" + stack-utils "^2.0.6" + +jest-cli@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-cli/-/jest-cli-30.2.0.tgz" + integrity sha512-Os9ukIvADX/A9sLt6Zse3+nmHtHaE6hqOsjQtNiugFTbKRHYIYtZXNGNK9NChseXy7djFPjndX1tL0sCTlfpAA== + dependencies: + "@jest/core" "30.2.0" + "@jest/test-result" "30.2.0" + "@jest/types" "30.2.0" + chalk "^4.1.2" + exit-x "^0.2.2" + import-local "^3.2.0" + jest-config "30.2.0" + jest-util "30.2.0" + jest-validate "30.2.0" + yargs "^17.7.2" + +jest-config@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-config/-/jest-config-30.2.0.tgz" + integrity sha512-g4WkyzFQVWHtu6uqGmQR4CQxz/CH3yDSlhzXMWzNjDx843gYjReZnMRanjRCq5XZFuQrGDxgUaiYWE8BRfVckA== + dependencies: + "@babel/core" "^7.27.4" + "@jest/get-type" "30.1.0" + "@jest/pattern" "30.0.1" + "@jest/test-sequencer" "30.2.0" + "@jest/types" "30.2.0" + babel-jest "30.2.0" + chalk "^4.1.2" + ci-info "^4.2.0" + deepmerge "^4.3.1" + glob "^10.3.10" + graceful-fs "^4.2.11" + jest-circus "30.2.0" + jest-docblock "30.2.0" + jest-environment-node "30.2.0" + jest-regex-util "30.0.1" + jest-resolve "30.2.0" + jest-runner "30.2.0" + jest-util "30.2.0" + jest-validate "30.2.0" + micromatch "^4.0.8" parse-json "^5.2.0" - pretty-format "^29.7.0" + pretty-format "30.2.0" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz" - integrity sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw== - dependencies: - chalk "^4.0.0" - diff-sequences "^29.6.3" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-docblock@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz" - integrity sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g== - dependencies: - detect-newline "^3.0.0" - -jest-each@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz" - integrity sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ== - dependencies: - "@jest/types" "^29.6.3" - chalk "^4.0.0" - jest-get-type "^29.6.3" - jest-util "^29.7.0" - pretty-format "^29.7.0" - -jest-environment-node@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz" - integrity sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/types" "^29.6.3" +jest-diff@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-diff/-/jest-diff-30.2.0.tgz" + integrity sha512-dQHFo3Pt4/NLlG5z4PxZ/3yZTZ1C7s9hveiOj+GCN+uT109NC2QgsoVZsVOAvbJ3RgKkvyLGXZV9+piDpWbm6A== + dependencies: + "@jest/diff-sequences" "30.0.1" + "@jest/get-type" "30.1.0" + chalk "^4.1.2" + pretty-format "30.2.0" + +jest-docblock@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-docblock/-/jest-docblock-30.2.0.tgz" + integrity sha512-tR/FFgZKS1CXluOQzZvNH3+0z9jXr3ldGSD8bhyuxvlVUwbeLOGynkunvlTMxchC5urrKndYiwCFC0DLVjpOCA== + dependencies: + detect-newline "^3.1.0" + +jest-each@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-each/-/jest-each-30.2.0.tgz" + integrity sha512-lpWlJlM7bCUf1mfmuqTA8+j2lNURW9eNafOy99knBM01i5CQeY5UH1vZjgT9071nDJac1M4XsbyI44oNOdhlDQ== + dependencies: + "@jest/get-type" "30.1.0" + "@jest/types" "30.2.0" + chalk "^4.1.2" + jest-util "30.2.0" + pretty-format "30.2.0" + +jest-environment-node@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-environment-node/-/jest-environment-node-30.2.0.tgz" + integrity sha512-ElU8v92QJ9UrYsKrxDIKCxu6PfNj4Hdcktcn0JX12zqNdqWHB0N+hwOnnBBXvjLd2vApZtuLUGs1QSY+MsXoNA== + dependencies: + "@jest/environment" "30.2.0" + "@jest/fake-timers" "30.2.0" + "@jest/types" "30.2.0" "@types/node" "*" - jest-mock "^29.7.0" - jest-util "^29.7.0" + jest-mock "30.2.0" + jest-util "30.2.0" + jest-validate "30.2.0" -jest-get-type@^29.6.3: - version "29.6.3" - resolved "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz" - integrity sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw== - -jest-haste-map@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz" - integrity sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA== +jest-haste-map@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-haste-map/-/jest-haste-map-30.2.0.tgz" + integrity sha512-sQA/jCb9kNt+neM0anSj6eZhLZUIhQgwDt7cPGjumgLM4rXsfb9kpnlacmvZz3Q5tb80nS+oG/if+NBKrHC+Xw== dependencies: - "@jest/types" "^29.6.3" - "@types/graceful-fs" "^4.1.3" + "@jest/types" "30.2.0" "@types/node" "*" - anymatch "^3.0.3" - fb-watchman "^2.0.0" - graceful-fs "^4.2.9" - jest-regex-util "^29.6.3" - jest-util "^29.7.0" - jest-worker "^29.7.0" - micromatch "^4.0.4" + anymatch "^3.1.3" + fb-watchman "^2.0.2" + graceful-fs "^4.2.11" + jest-regex-util "30.0.1" + jest-util "30.2.0" + jest-worker "30.2.0" + micromatch "^4.0.8" walker "^1.0.8" optionalDependencies: - fsevents "^2.3.2" - -jest-leak-detector@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz" - integrity sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw== - dependencies: - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-matcher-utils@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz" - integrity sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g== - dependencies: - chalk "^4.0.0" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - pretty-format "^29.7.0" - -jest-message-util@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz" - integrity sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w== - dependencies: - "@babel/code-frame" "^7.12.13" - "@jest/types" "^29.6.3" - "@types/stack-utils" "^2.0.0" - chalk "^4.0.0" - graceful-fs "^4.2.9" - micromatch "^4.0.4" - pretty-format "^29.7.0" + fsevents "^2.3.3" + +jest-leak-detector@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-leak-detector/-/jest-leak-detector-30.2.0.tgz" + integrity sha512-M6jKAjyzjHG0SrQgwhgZGy9hFazcudwCNovY/9HPIicmNSBuockPSedAP9vlPK6ONFJ1zfyH/M2/YYJxOz5cdQ== + dependencies: + "@jest/get-type" "30.1.0" + pretty-format "30.2.0" + +jest-matcher-utils@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-matcher-utils/-/jest-matcher-utils-30.2.0.tgz" + integrity sha512-dQ94Nq4dbzmUWkQ0ANAWS9tBRfqCrn0bV9AMYdOi/MHW726xn7eQmMeRTpX2ViC00bpNaWXq+7o4lIQ3AX13Hg== + dependencies: + "@jest/get-type" "30.1.0" + chalk "^4.1.2" + jest-diff "30.2.0" + pretty-format "30.2.0" + +jest-message-util@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-message-util/-/jest-message-util-30.2.0.tgz" + integrity sha512-y4DKFLZ2y6DxTWD4cDe07RglV88ZiNEdlRfGtqahfbIjfsw1nMCPx49Uev4IA/hWn3sDKyAnSPwoYSsAEdcimw== + dependencies: + "@babel/code-frame" "^7.27.1" + "@jest/types" "30.2.0" + "@types/stack-utils" "^2.0.3" + chalk "^4.1.2" + graceful-fs "^4.2.11" + micromatch "^4.0.8" + pretty-format "30.2.0" slash "^3.0.0" - stack-utils "^2.0.3" + stack-utils "^2.0.6" -jest-mock@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz" - integrity sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw== +jest-mock@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-mock/-/jest-mock-30.2.0.tgz" + integrity sha512-JNNNl2rj4b5ICpmAcq+WbLH83XswjPbjH4T7yvGzfAGCPh1rw+xVNbtk+FnRslvt9lkCcdn9i1oAoKUuFsOxRw== dependencies: - "@jest/types" "^29.6.3" + "@jest/types" "30.2.0" "@types/node" "*" - jest-util "^29.7.0" + jest-util "30.2.0" -jest-pnp-resolver@^1.2.2: +jest-pnp-resolver@^1.2.3: version "1.2.3" - resolved "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz" integrity sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w== -jest-regex-util@^29.6.3: - version "29.6.3" - resolved "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz" - integrity sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg== - -jest-resolve-dependencies@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz" - integrity sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA== - dependencies: - jest-regex-util "^29.6.3" - jest-snapshot "^29.7.0" - -jest-resolve@*, jest-resolve@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz" - integrity sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA== - dependencies: - chalk "^4.0.0" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-pnp-resolver "^1.2.2" - jest-util "^29.7.0" - jest-validate "^29.7.0" - resolve "^1.20.0" - resolve.exports "^2.0.0" +jest-regex-util@30.0.1: + version "30.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-regex-util/-/jest-regex-util-30.0.1.tgz" + integrity sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA== + +jest-resolve-dependencies@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-resolve-dependencies/-/jest-resolve-dependencies-30.2.0.tgz" + integrity sha512-xTOIGug/0RmIe3mmCqCT95yO0vj6JURrn1TKWlNbhiAefJRWINNPgwVkrVgt/YaerPzY3iItufd80v3lOrFJ2w== + dependencies: + jest-regex-util "30.0.1" + jest-snapshot "30.2.0" + +jest-resolve@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-resolve/-/jest-resolve-30.2.0.tgz" + integrity sha512-TCrHSxPlx3tBY3hWNtRQKbtgLhsXa1WmbJEqBlTBrGafd5fiQFByy2GNCEoGR+Tns8d15GaL9cxEzKOO3GEb2A== + dependencies: + chalk "^4.1.2" + graceful-fs "^4.2.11" + jest-haste-map "30.2.0" + jest-pnp-resolver "^1.2.3" + jest-util "30.2.0" + jest-validate "30.2.0" slash "^3.0.0" - -jest-runner@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz" - integrity sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ== - dependencies: - "@jest/console" "^29.7.0" - "@jest/environment" "^29.7.0" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" + unrs-resolver "^1.7.11" + +jest-runner@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-runner/-/jest-runner-30.2.0.tgz" + integrity sha512-PqvZ2B2XEyPEbclp+gV6KO/F1FIFSbIwewRgmROCMBo/aZ6J1w8Qypoj2pEOcg3G2HzLlaP6VUtvwCI8dM3oqQ== + dependencies: + "@jest/console" "30.2.0" + "@jest/environment" "30.2.0" + "@jest/test-result" "30.2.0" + "@jest/transform" "30.2.0" + "@jest/types" "30.2.0" "@types/node" "*" - chalk "^4.0.0" + chalk "^4.1.2" emittery "^0.13.1" - graceful-fs "^4.2.9" - jest-docblock "^29.7.0" - jest-environment-node "^29.7.0" - jest-haste-map "^29.7.0" - jest-leak-detector "^29.7.0" - jest-message-util "^29.7.0" - jest-resolve "^29.7.0" - jest-runtime "^29.7.0" - jest-util "^29.7.0" - jest-watcher "^29.7.0" - jest-worker "^29.7.0" + exit-x "^0.2.2" + graceful-fs "^4.2.11" + jest-docblock "30.2.0" + jest-environment-node "30.2.0" + jest-haste-map "30.2.0" + jest-leak-detector "30.2.0" + jest-message-util "30.2.0" + jest-resolve "30.2.0" + jest-runtime "30.2.0" + jest-util "30.2.0" + jest-watcher "30.2.0" + jest-worker "30.2.0" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz" - integrity sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ== - dependencies: - "@jest/environment" "^29.7.0" - "@jest/fake-timers" "^29.7.0" - "@jest/globals" "^29.7.0" - "@jest/source-map" "^29.6.3" - "@jest/test-result" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" +jest-runtime@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-runtime/-/jest-runtime-30.2.0.tgz" + integrity sha512-p1+GVX/PJqTucvsmERPMgCPvQJpFt4hFbM+VN3n8TMo47decMUcJbt+rgzwrEme0MQUA/R+1de2axftTHkKckg== + dependencies: + "@jest/environment" "30.2.0" + "@jest/fake-timers" "30.2.0" + "@jest/globals" "30.2.0" + "@jest/source-map" "30.0.1" + "@jest/test-result" "30.2.0" + "@jest/transform" "30.2.0" + "@jest/types" "30.2.0" "@types/node" "*" - chalk "^4.0.0" - cjs-module-lexer "^1.0.0" - collect-v8-coverage "^1.0.0" - glob "^7.1.3" - graceful-fs "^4.2.9" - jest-haste-map "^29.7.0" - jest-message-util "^29.7.0" - jest-mock "^29.7.0" - jest-regex-util "^29.6.3" - jest-resolve "^29.7.0" - jest-snapshot "^29.7.0" - jest-util "^29.7.0" + chalk "^4.1.2" + cjs-module-lexer "^2.1.0" + collect-v8-coverage "^1.0.2" + glob "^10.3.10" + graceful-fs "^4.2.11" + jest-haste-map "30.2.0" + jest-message-util "30.2.0" + jest-mock "30.2.0" + jest-regex-util "30.0.1" + jest-resolve "30.2.0" + jest-snapshot "30.2.0" + jest-util "30.2.0" slash "^3.0.0" strip-bom "^4.0.0" @@ -3836,145 +4813,129 @@ jest-snapshot-serializer-ansi@^1.0.0: has-ansi "^3.0.0" strip-ansi "^4.0.0" -jest-snapshot@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz" - integrity sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw== - dependencies: - "@babel/core" "^7.11.6" - "@babel/generator" "^7.7.2" - "@babel/plugin-syntax-jsx" "^7.7.2" - "@babel/plugin-syntax-typescript" "^7.7.2" - "@babel/types" "^7.3.3" - "@jest/expect-utils" "^29.7.0" - "@jest/transform" "^29.7.0" - "@jest/types" "^29.6.3" - babel-preset-current-node-syntax "^1.0.0" - chalk "^4.0.0" - expect "^29.7.0" - graceful-fs "^4.2.9" - jest-diff "^29.7.0" - jest-get-type "^29.6.3" - jest-matcher-utils "^29.7.0" - jest-message-util "^29.7.0" - jest-util "^29.7.0" - natural-compare "^1.4.0" - pretty-format "^29.7.0" - semver "^7.5.3" - -jest-util@^29.0.0, jest-util@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz" - integrity sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA== - dependencies: - "@jest/types" "^29.6.3" +jest-snapshot@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-snapshot/-/jest-snapshot-30.2.0.tgz" + integrity sha512-5WEtTy2jXPFypadKNpbNkZ72puZCa6UjSr/7djeecHWOu7iYhSXSnHScT8wBz3Rn8Ena5d5RYRcsyKIeqG1IyA== + dependencies: + "@babel/core" "^7.27.4" + "@babel/generator" "^7.27.5" + "@babel/plugin-syntax-jsx" "^7.27.1" + "@babel/plugin-syntax-typescript" "^7.27.1" + "@babel/types" "^7.27.3" + "@jest/expect-utils" "30.2.0" + "@jest/get-type" "30.1.0" + "@jest/snapshot-utils" "30.2.0" + "@jest/transform" "30.2.0" + "@jest/types" "30.2.0" + babel-preset-current-node-syntax "^1.2.0" + chalk "^4.1.2" + expect "30.2.0" + graceful-fs "^4.2.11" + jest-diff "30.2.0" + jest-matcher-utils "30.2.0" + jest-message-util "30.2.0" + jest-util "30.2.0" + pretty-format "30.2.0" + semver "^7.7.2" + synckit "^0.11.8" + +jest-util@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-util/-/jest-util-30.2.0.tgz" + integrity sha512-QKNsM0o3Xe6ISQU869e+DhG+4CK/48aHYdJZGlFQVTjnbvgpcKyxpzk29fGiO7i/J8VENZ+d2iGnSsvmuHywlA== + dependencies: + "@jest/types" "30.2.0" "@types/node" "*" - chalk "^4.0.0" - ci-info "^3.2.0" - graceful-fs "^4.2.9" - picomatch "^2.2.3" - -jest-validate@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz" - integrity sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw== - dependencies: - "@jest/types" "^29.6.3" - camelcase "^6.2.0" - chalk "^4.0.0" - jest-get-type "^29.6.3" + chalk "^4.1.2" + ci-info "^4.2.0" + graceful-fs "^4.2.11" + picomatch "^4.0.2" + +jest-validate@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-validate/-/jest-validate-30.2.0.tgz" + integrity sha512-FBGWi7dP2hpdi8nBoWxSsLvBFewKAg0+uSQwBaof4Y4DPgBabXgpSYC5/lR7VmnIlSpASmCi/ntRWPbv7089Pw== + dependencies: + "@jest/get-type" "30.1.0" + "@jest/types" "30.2.0" + camelcase "^6.3.0" + chalk "^4.1.2" leven "^3.1.0" - pretty-format "^29.7.0" + pretty-format "30.2.0" -jest-watcher@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz" - integrity sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g== +jest-watcher@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-watcher/-/jest-watcher-30.2.0.tgz" + integrity sha512-PYxa28dxJ9g777pGm/7PrbnMeA0Jr7osHP9bS7eJy9DuAjMgdGtxgf0uKMyoIsTWAkIbUW5hSDdJ3urmgXBqxg== dependencies: - "@jest/test-result" "^29.7.0" - "@jest/types" "^29.6.3" + "@jest/test-result" "30.2.0" + "@jest/types" "30.2.0" "@types/node" "*" - ansi-escapes "^4.2.1" - chalk "^4.0.0" + ansi-escapes "^4.3.2" + chalk "^4.1.2" emittery "^0.13.1" - jest-util "^29.7.0" - string-length "^4.0.1" + jest-util "30.2.0" + string-length "^4.0.2" -jest-worker@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz" - integrity sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw== +jest-worker@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest-worker/-/jest-worker-30.2.0.tgz" + integrity sha512-0Q4Uk8WF7BUwqXHuAjc23vmopWJw5WH7w2tqBoUOZpOjW/ZnR44GXXd1r82RvnmI2GZge3ivrYXk/BE2+VtW2g== dependencies: "@types/node" "*" - jest-util "^29.7.0" + "@ungap/structured-clone" "^1.3.0" + jest-util "30.2.0" merge-stream "^2.0.0" - supports-color "^8.0.0" + supports-color "^8.1.1" -jest@*, jest@^29.0.0, jest@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz" - integrity sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw== +jest@^30.0.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jest/-/jest-30.2.0.tgz" + integrity sha512-F26gjC0yWN8uAA5m5Ss8ZQf5nDHWGlN/xWZIh8S5SRbsEKBovwZhxGd6LJlbZYxBgCYOtreSUyb8hpXyGC5O4A== dependencies: - "@jest/core" "^29.7.0" - "@jest/types" "^29.6.3" - import-local "^3.0.2" - jest-cli "^29.7.0" + "@jest/core" "30.2.0" + "@jest/types" "30.2.0" + import-local "^3.2.0" + jest-cli "30.2.0" -jiti@^1.18.2: +jiti@^1.17.1: version "1.21.0" - resolved "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz" - integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== -js-tokens@^4.0.0: +jiti@^2.0.0: + version "2.6.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jiti/-/jiti-2.6.1.tgz" + integrity sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ== + +jose@^5.0.0: + version "5.10.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jose/-/jose-5.10.0.tgz" + integrity sha512-s+3Al/p9g32Iq+oqXxkW//7jk2Vig6FF1CFqzVXoTUXt2qz89YWbL+OwS17NFYEvxC35n0FKeGO2LGYSxeM2Gg== + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@^3.13.1: - version "3.14.1" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== + version "3.14.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/js-yaml/-/js-yaml-3.14.2.tgz" + integrity sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg== dependencies: argparse "^1.0.7" esprima "^4.0.0" -js-yaml@^4.1.0: +js-yaml@^4.0.0, js-yaml@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" -jsdom@^26.0.0: - version "26.1.0" - resolved "https://registry.npmjs.org/jsdom/-/jsdom-26.1.0.tgz" - integrity sha512-Cvc9WUhxSMEo4McES3P7oK3QaXldCfNWp7pl2NNeiIFlCoLr3kfq9kb1fxftiwk1FLV7CvpvDfonxtzUDeSOPg== - dependencies: - cssstyle "^4.2.1" - data-urls "^5.0.0" - decimal.js "^10.5.0" - html-encoding-sniffer "^4.0.0" - http-proxy-agent "^7.0.2" - https-proxy-agent "^7.0.6" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.16" - parse5 "^7.2.1" - rrweb-cssom "^0.8.0" - saxes "^6.0.0" - symbol-tree "^3.2.4" - tough-cookie "^5.1.1" - w3c-xmlserializer "^5.0.0" - webidl-conversions "^7.0.0" - whatwg-encoding "^3.1.1" - whatwg-mimetype "^4.0.0" - whatwg-url "^14.1.1" - ws "^8.18.0" - xml-name-validator "^5.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== +jsesc@^3.0.2: + version "3.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/jsesc/-/jsesc-3.1.0.tgz" + integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== json-bigint@^1.0.0: version "1.0.0" @@ -3985,7 +4946,7 @@ json-bigint@^1.0.0: json-buffer@3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/json-buffer/-/json-buffer-3.0.1.tgz" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== json-parse-even-better-errors@^2.3.0: @@ -3995,7 +4956,7 @@ json-parse-even-better-errors@^2.3.0: json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-stable-stringify-without-jsonify@^1.0.1: @@ -4008,6 +4969,14 @@ json-stringify-safe@^5.0.1: resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== +json-to-pretty-yaml@^1.2.2: + version "1.2.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/json-to-pretty-yaml/-/json-to-pretty-yaml-1.2.2.tgz" + integrity sha512-rvm6hunfCcqegwYaG5T4yKJWxc9FXFgBVrcTZ4XfSVRwa5HA/Xs+vB/Eo9treYYHCeNM0nrSUr82V/M31Urc7A== + dependencies: + remedial "^1.0.7" + remove-trailing-spaces "^1.0.6" + json5@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" @@ -4020,26 +4989,21 @@ json5@^2.2.3: resolved "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== -keyv@^4.5.3: +keyv@^4.5.4: version "4.5.4" - resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/keyv/-/keyv-4.5.4.tgz" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: json-buffer "3.0.1" -kleur@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz" - integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== - kuler@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/kuler/-/kuler-2.0.0.tgz" integrity sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A== leven@^3.1.0: version "3.1.0" - resolved "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/leven/-/leven-3.1.0.tgz" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== levn@^0.4.1: @@ -4050,47 +5014,53 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" -lilconfig@2.1.0: - version "2.1.0" - resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz" - integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== - lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -lint-staged@^14.0.1: - version "14.0.1" - resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-14.0.1.tgz" - integrity sha512-Mw0cL6HXnHN1ag0mN/Dg4g6sr8uf8sn98w2Oc1ECtFto9tvRF7nkXGJRbx8gPlHyoR0pLyBr2lQHbWwmUHe1Sw== - dependencies: - chalk "5.3.0" - commander "11.0.0" - debug "4.3.4" - execa "7.2.0" - lilconfig "2.1.0" - listr2 "6.6.1" - micromatch "4.0.5" - pidtree "0.6.0" - string-argv "0.3.2" - yaml "2.3.1" - -listr2@6.6.1: - version "6.6.1" - resolved "https://registry.npmjs.org/listr2/-/listr2-6.6.1.tgz" - integrity sha512-+rAXGHh0fkEWdXBmX+L6mmfmXmXvDGEKzkjxO+8mP3+nI/r/CWznVBvsibXdxda9Zz0OW2e2ikphN3OwCT/jSg== - dependencies: - cli-truncate "^3.1.0" +lint-staged@^16.1.2: + version "16.2.7" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/lint-staged/-/lint-staged-16.2.7.tgz" + integrity sha512-lDIj4RnYmK7/kXMya+qJsmkRFkGolciXjrsZ6PC25GdTfWOAWetR0ZbsNXRAj1EHHImRSalc+whZFg56F5DVow== + dependencies: + commander "^14.0.2" + listr2 "^9.0.5" + micromatch "^4.0.8" + nano-spawn "^2.0.0" + pidtree "^0.6.0" + string-argv "^0.3.2" + yaml "^2.8.1" + +listr2@^4.0.5: + version "4.0.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/listr2/-/listr2-4.0.5.tgz" + integrity sha512-juGHV1doQdpNT3GSTs9IUN43QJb7KHdF9uqg7Vufs/tG9VTzpFphqF4pm/ICdAABGQxsyNn9CiYA3StkI6jpwA== + dependencies: + cli-truncate "^2.1.0" + colorette "^2.0.16" + log-update "^4.0.0" + p-map "^4.0.0" + rfdc "^1.3.0" + rxjs "^7.5.5" + through "^2.3.8" + wrap-ansi "^7.0.0" + +listr2@^9.0.5: + version "9.0.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/listr2/-/listr2-9.0.5.tgz" + integrity sha512-ME4Fb83LgEgwNw96RKNvKV4VTLuXfoKudAmm2lP8Kk87KaMK0/Xrx/aAkMWmT8mDb+3MlFDspfbCs7adjRxA2g== + dependencies: + cli-truncate "^5.0.0" colorette "^2.0.20" eventemitter3 "^5.0.1" - log-update "^5.0.1" - rfdc "^1.3.0" - wrap-ansi "^8.1.0" + log-update "^6.1.0" + rfdc "^1.4.1" + wrap-ansi "^9.0.0" locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/locate-path/-/locate-path-5.0.0.tgz" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" @@ -4102,7 +5072,7 @@ locate-path@^6.0.0: dependencies: p-locate "^5.0.0" -lodash.memoize@4.x: +lodash.memoize@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz" integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== @@ -4117,12 +5087,12 @@ lodash.sortby@^4.7.0: resolved "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz" integrity sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA== -lodash@^4.17.21: +lodash@^4.17.20, lodash@^4.17.21, lodash@~4.17.0: version "4.17.21" resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== -log-symbols@^4.1.0: +log-symbols@^4.0.0, log-symbols@^4.1.0: version "4.1.0" resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== @@ -4130,21 +5100,31 @@ log-symbols@^4.1.0: chalk "^4.1.0" is-unicode-supported "^0.1.0" -log-update@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/log-update/-/log-update-5.0.1.tgz" - integrity sha512-5UtUDQ/6edw4ofyljDNcOVJQ4c7OjDro4h3y8e1GQL5iYElYclVHJ3zeWchylvMaKnDbDilC8irOVyexnA/Slw== +log-update@^4.0.0: + version "4.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/log-update/-/log-update-4.0.0.tgz" + integrity sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg== dependencies: - ansi-escapes "^5.0.0" - cli-cursor "^4.0.0" - slice-ansi "^5.0.0" - strip-ansi "^7.0.1" - wrap-ansi "^8.0.1" + ansi-escapes "^4.3.0" + cli-cursor "^3.1.0" + slice-ansi "^4.0.0" + wrap-ansi "^6.2.0" + +log-update@^6.1.0: + version "6.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/log-update/-/log-update-6.1.0.tgz" + integrity sha512-9ie8ItPR6tjY5uYJh8K/Zrv/RMZ5VOlOWvtZdEHYSTFKZfIBPQa9tOAEeAWhd+AnIneLJ22w5fjOYtoutpWq5w== + dependencies: + ansi-escapes "^7.0.0" + cli-cursor "^5.0.0" + slice-ansi "^7.1.0" + strip-ansi "^7.1.0" + wrap-ansi "^9.0.0" -logform@^2.3.2, logform@^2.4.0: - version "2.6.0" - resolved "https://registry.npmjs.org/logform/-/logform-2.6.0.tgz" - integrity sha512-1ulHeNPp6k/LD8H91o7VYFBng5i1BDE7HoKxVbZiGFidS1Rj65qcywLxX+pVfAPoQJEjRdvKcusKwOupHCVOVQ== +logform@^2.7.0: + version "2.7.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/logform/-/logform-2.7.0.tgz" + integrity sha512-TFYA4jnP7PVbmlBIfhlSe+WKxs9dklXMTEGcBCIvLhE/Tn3H6Gk1norupVW7m5Cnd4bLcr08AytbyV/xj7f/kQ== dependencies: "@colors/colors" "1.6.0" "@types/triple-beam" "^1.3.2" @@ -4153,30 +5133,39 @@ logform@^2.3.2, logform@^2.4.0: safe-stable-stringify "^2.3.1" triple-beam "^1.3.0" -lru-cache@^10.4.3: - version "10.4.3" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz" - integrity sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ== +loose-envify@^1.0.0: + version "1.4.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/loose-envify/-/loose-envify-1.4.0.tgz" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" -lru-cache@^5.1.1: - version "5.1.1" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz" - integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== +lower-case-first@^2.0.2: + version "2.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/lower-case-first/-/lower-case-first-2.0.2.tgz" + integrity sha512-EVm/rR94FJTZi3zefZ82fLWab+GX14LJN4HrWBcuo6Evmsl9hEfnqxgcHCKb9q+mNf6EVdsjx/qucYFIIB84pg== dependencies: - yallist "^3.0.2" + tslib "^2.0.3" -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== +lower-case@^2.0.2: + version "2.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/lower-case/-/lower-case-2.0.2.tgz" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== dependencies: - yallist "^4.0.0" + tslib "^2.0.3" -lru-cache@10.2.0: +lru-cache@^10.2.0, lru-cache@10.2.0: version "10.2.0" resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz" integrity sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q== +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/lru-cache/-/lru-cache-5.1.1.tgz" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + make-dir@^3.1.0: version "3.1.0" resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz" @@ -4186,28 +5175,38 @@ make-dir@^3.1.0: make-dir@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/make-dir/-/make-dir-4.0.0.tgz" integrity sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw== dependencies: semver "^7.5.3" -make-error@^1.1.1, make-error@1.x: +make-error@^1.1.1, make-error@^1.3.6: version "1.3.6" resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== makeerror@1.0.12: version "1.0.12" - resolved "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/makeerror/-/makeerror-1.0.12.tgz" integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg== dependencies: tmpl "1.0.5" +map-cache@^0.2.0: + version "0.2.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/map-cache/-/map-cache-0.2.2.tgz" + integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== + mapcap@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/mapcap/-/mapcap-1.0.0.tgz" integrity sha512-KcNlZSlFPx+r1jYZmxEbTVymG+dIctf10WmWkuhrhrblM+KMoF77HelwihL5cxYlORye79KoR4IlOOk99lUJ0g== +math-intrinsics@^1.1.0: + version "1.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/math-intrinsics/-/math-intrinsics-1.1.0.tgz" + integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g== + measured-core@^1.51.1: version "1.51.1" resolved "https://registry.npmjs.org/measured-core/-/measured-core-1.51.1.tgz" @@ -4228,7 +5227,7 @@ measured-reporting@^1.51.1: merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/merge-stream/-/merge-stream-2.0.0.tgz" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.3.0, merge2@^1.4.1: @@ -4241,46 +5240,27 @@ meros@^1.2.1: resolved "https://registry.npmjs.org/meros/-/meros-1.3.0.tgz" integrity sha512-2BNGOimxEz5hmjUG2FwoxCt5HN7BXdaWyFqEwxPTrJzVdABtrL4TiHTcsWSFAxPQ/tOnEaQEJh3qWq71QRMY+w== -micromatch@^4.0.4, micromatch@4.0.5: - version "4.0.5" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" - integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== +micromatch@^4.0.4, micromatch@^4.0.5, micromatch@^4.0.8: + version "4.0.8" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/micromatch/-/micromatch-4.0.8.tgz" + integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA== dependencies: - braces "^3.0.2" + braces "^3.0.3" picomatch "^2.3.1" -mime-db@1.52.0: - version "1.52.0" - resolved "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz" - integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== - -mime-types@^2.1.12: - version "2.1.35" - resolved "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz" - integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== - dependencies: - mime-db "1.52.0" - mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== -mimic-fn@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz" - integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== +mimic-function@^5.0.0: + version "5.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/mimic-function/-/mimic-function-5.0.1.tgz" + integrity sha512-VP79XUPxV2CigYP3jWwAUFSku2aKqBH7uTAapFWCBqutsbmDo96KY5o8uh6U+/YSIn5OxJnXp73beVkpqMIGhA== minimatch@^3.0.4: version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - -minimatch@^3.0.5: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" @@ -4299,17 +5279,10 @@ minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimatch@^4.2.3: - version "4.2.3" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-4.2.3.tgz" - integrity sha512-lIUdtK5hdofgCTu3aT0sOaHsYR37viUuIc0rwnnDXImbwFRcumyLMeZaM0t0I/fgxS6s6JMfu0rLD1Wz9pv1ng== - dependencies: - brace-expansion "^1.1.7" - -minimatch@9.0.3: - version "9.0.3" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== +minimatch@^9.0.4, minimatch@^9.0.5: + version "9.0.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/minimatch/-/minimatch-9.0.5.tgz" + integrity sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow== dependencies: brace-expansion "^2.0.1" @@ -4318,10 +5291,13 @@ minimist@^1.2.0, minimist@^1.2.5, minimist@^1.2.6: resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: + version "7.1.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/minipass/-/minipass-7.1.2.tgz" + integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== + module-details-from-path@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/module-details-from-path/-/module-details-from-path-1.0.3.tgz" - integrity sha512-ySViT69/76t8VhE1xXHK6Ch4NcDd26gx0MzKXLO+F7NOtnqH68d9zF94nT8ZWSxXh8ELOERsnJO/sWt1xZYw5A== monitor-event-loop-delay@^1.0.0: version "1.0.0" @@ -4330,14 +5306,22 @@ monitor-event-loop-delay@^1.0.0: ms@^2.0.0, ms@^2.1.1, ms@2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== mute-stream@0.0.8: version "0.0.8" resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== +nano-spawn@^2.0.0: + version "2.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/nano-spawn/-/nano-spawn-2.0.0.tgz" + integrity sha512-tacvGzUY5o2D8CBh2rrwxyNojUsZNU2zjNTzKQrkgGJQTbGAfArVWXSKMBokBeeg6C7OLRGUEyoFlYbfeWQIqw== + +napi-postinstall@^0.3.0: + version "0.3.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/napi-postinstall/-/napi-postinstall-0.3.4.tgz" + integrity sha512-PHI5f1O0EP5xJ9gQmFGMS6IZcrVvTjpXjz7Na41gTE7eE2hK11lg04CECCYEEjdc17EV4DO+fkGEtt7TpTaTiQ== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" @@ -4353,31 +5337,58 @@ next-line@^1.1.0: resolved "https://registry.npmjs.org/next-line/-/next-line-1.1.0.tgz" integrity sha512-+I10J3wKNoKddNxn0CNpoZ3eTZuqxjNM3b1GImVx22+ePI+Y15P8g/j3WsbP0fhzzrFzrtjOAoq5NCCucswXOQ== -nock@^14.0.3: - version "14.0.3" - resolved "https://registry.npmjs.org/nock/-/nock-14.0.3.tgz" - integrity sha512-sJ9RNmCuYBqXDmGZZHgZ1D1441MqFOU4T5aeLGVGEB4OWI/2LM0mZlkfBQzQKdOfJypL+2nPPBugXKjixBn4kQ== +no-case@^3.0.4: + version "3.0.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/no-case/-/no-case-3.0.4.tgz" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +nock@^14.0.5: + version "14.0.10" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/nock/-/nock-14.0.10.tgz" + integrity sha512-Q7HjkpyPeLa0ZVZC5qpxBt5EyLczFJ91MEewQiIi9taWuA0KB/MDJlUWtON+7dGouVdADTQsf9RA7TZk6D8VMw== dependencies: - "@mswjs/interceptors" "^0.38.1" + "@mswjs/interceptors" "^0.39.5" json-stringify-safe "^5.0.1" propagate "^2.0.0" -node-fetch@^2.6.1, node-fetch@^2.6.7: +node-addon-api@^7.0.0: + version "7.1.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/node-addon-api/-/node-addon-api-7.1.1.tgz" + integrity sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ== + +node-domexception@^1.0.0: + version "1.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/node-domexception/-/node-domexception-1.0.0.tgz" + integrity sha512-/jKZoMpw0F8GRwl4/eLROPA3cfcXtLApP0QzLmUT/HuPCZWyB7IY9ZrMeKw2O/nFIqPQB3PVM9aYm0F312AXDQ== + +node-fetch@^2.7.0: version "2.7.0" - resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/node-fetch/-/node-fetch-2.7.0.tgz" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" +node-fetch@^3.3.2: + version "3.3.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/node-fetch/-/node-fetch-3.3.2.tgz" + integrity sha512-dRB78srN/l6gqWulah9SrxeYnxeddIG30+GOqK/9OlLVyLg3HPnr6SqOWTWOXKRwC2eGYCkZ59NNuSgvSrpgOA== + dependencies: + data-uri-to-buffer "^4.0.0" + fetch-blob "^3.1.4" + formdata-polyfill "^4.0.10" + node-int64@^0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/node-int64/-/node-int64-0.4.0.tgz" integrity sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw== -node-releases@^2.0.14: - version "2.0.14" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz" - integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== +node-releases@^2.0.27: + version "2.0.27" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/node-releases/-/node-releases-2.0.27.tgz" + integrity sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA== normalize-path@^2.1.1: version "2.1.1" @@ -4388,27 +5399,25 @@ normalize-path@^2.1.1: normalize-path@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== npm-run-path@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/npm-run-path/-/npm-run-path-4.0.1.tgz" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" -npm-run-path@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz" - integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== - dependencies: - path-key "^4.0.0" +nullthrows@^1.1.1: + version "1.1.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/nullthrows/-/nullthrows-1.1.1.tgz" + integrity sha512-2vPPEi+Z7WqML2jZYddDIfy5Dqb0r2fze2zTxNNknZaFpVHU3mFB3R+DWeJWGVx0ecvttSGlJTI+WG+8Z4cDWw== -nwsapi@^2.2.16: - version "2.2.20" - resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.20.tgz" - integrity sha512-/ieB+mDe4MrrKMT8z+mQL8klXydZWGR5Dowt4RAGKbJ3kIGEx3X4ljUo+6V73IXtUPWgfOlU5B9MlGxFO5T+cA== +object-assign@^4.1.0: + version "4.1.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/object-assign/-/object-assign-4.1.1.tgz" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-filter-sequence@^1.0.0: version "1.0.0" @@ -4422,62 +5431,63 @@ object-identity-map@^1.0.2: dependencies: object.entries "^1.1.0" -object-inspect@^1.13.1, object-inspect@^1.9.0: - version "1.13.1" - resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz" - integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== +object-inspect@^1.13.3, object-inspect@^1.13.4: + version "1.13.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/object-inspect/-/object-inspect-1.13.4.tgz" + integrity sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew== object-keys@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object.assign@^4.1.4: - version "4.1.5" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz" - integrity sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ== +object.assign@^4.1.7: + version "4.1.7" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/object.assign/-/object.assign-4.1.7.tgz" + integrity sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw== dependencies: - call-bind "^1.0.5" + call-bind "^1.0.8" + call-bound "^1.0.3" define-properties "^1.2.1" - has-symbols "^1.0.3" + es-object-atoms "^1.0.0" + has-symbols "^1.1.0" object-keys "^1.1.1" object.entries@^1.0.4, object.entries@^1.1.0: version "1.1.7" - resolved "https://registry.npmjs.org/object.entries/-/object.entries-1.1.7.tgz" - integrity sha512-jCBs/0plmPsOnrKAfFQXRG2NFjlhZgjjcBLSmTnEhU8U6vVTsVe8ANeQJCHTl3gSsI4J+0emOoCgoKlmQPMgmA== dependencies: call-bind "^1.0.2" define-properties "^1.2.0" es-abstract "^1.22.1" -object.fromentries@^2.0.7: - version "2.0.7" - resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz" - integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== +object.fromentries@^2.0.8: + version "2.0.8" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/object.fromentries/-/object.fromentries-2.0.8.tgz" + integrity sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" + es-object-atoms "^1.0.0" -object.groupby@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz" - integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== +object.groupby@^1.0.3: + version "1.0.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/object.groupby/-/object.groupby-1.0.3.tgz" + integrity sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" - get-intrinsic "^1.2.1" + call-bind "^1.0.7" + define-properties "^1.2.1" + es-abstract "^1.23.2" -object.values@^1.1.7: - version "1.1.7" - resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz" - integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== +object.values@^1.2.1: + version "1.2.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/object.values/-/object.values-1.2.1.tgz" + integrity sha512-gXah6aZrcUxjWg2zR2MwouP2eHlCBzdV4pygudehaKXSGW4v2AsRQUK+lwwXhii6KFZcunEnmSUoYp5CXibxtA== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.8" + call-bound "^1.0.3" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" on-exit-leak-free@^2.1.0: version "2.1.2" @@ -4505,12 +5515,12 @@ onetime@^5.1.0, onetime@^5.1.2: dependencies: mimic-fn "^2.1.0" -onetime@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz" - integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== +onetime@^7.0.0: + version "7.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/onetime/-/onetime-7.0.0.tgz" + integrity sha512-VXJjc87FScF88uafS3JllDgvAm+c/Slfz06lorj2uAY34rlUu0Nt+v8wreiImcrgAjjIHp1rXpTDlLOGw29WwQ== dependencies: - mimic-fn "^4.0.0" + mimic-function "^5.0.0" optional-js@^2.0.0: version "2.3.0" @@ -4519,8 +5529,6 @@ optional-js@^2.0.0: optionator@^0.9.3: version "0.9.3" - resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz" - integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: "@aashutoshrathi/word-wrap" "^1.2.3" deep-is "^0.1.3" @@ -4551,19 +5559,23 @@ original-url@^1.2.3: dependencies: forwarded-parse "^2.1.0" -os-tmpdir@~1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" - integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== - outvariant@^1.4.0, outvariant@^1.4.3: version "1.4.3" - resolved "https://registry.npmjs.org/outvariant/-/outvariant-1.4.3.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/outvariant/-/outvariant-1.4.3.tgz" integrity sha512-+Sl2UErvtsoajRDKCE5/dBz4DIvHXQQnAxtQTF04OJxY0+DyZXSo5P5Bb7XYWOh81syohlYL24hbDwxedPUJCA== +own-keys@^1.0.1: + version "1.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/own-keys/-/own-keys-1.0.1.tgz" + integrity sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg== + dependencies: + get-intrinsic "^1.2.6" + object-keys "^1.1.1" + safe-push-apply "^1.0.0" + p-limit@^2.2.0: version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/p-limit/-/p-limit-2.3.0.tgz" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" @@ -4577,7 +5589,7 @@ p-limit@^3.0.2, p-limit@^3.1.0, p-limit@3.1.0: p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/p-locate/-/p-locate-4.1.0.tgz" integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" @@ -4598,9 +5610,22 @@ p-map@^4.0.0: p-try@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== +package-json-from-dist@^1.0.0: + version "1.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz" + integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== + +param-case@^3.0.4: + version "3.0.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/param-case/-/param-case-3.0.4.tgz" + integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + parent-module@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" @@ -4608,6 +5633,15 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" +parse-filepath@^1.0.2: + version "1.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/parse-filepath/-/parse-filepath-1.0.2.tgz" + integrity sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q== + dependencies: + is-absolute "^1.0.0" + map-cache "^0.2.0" + path-root "^0.1.1" + parse-json@^5.2.0: version "5.2.0" resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" @@ -4618,12 +5652,21 @@ parse-json@^5.2.0: json-parse-even-better-errors "^2.3.0" lines-and-columns "^1.1.6" -parse5@^7.2.1: - version "7.2.1" - resolved "https://registry.npmjs.org/parse5/-/parse5-7.2.1.tgz" - integrity sha512-BuBYQYlv1ckiPdQi/ohiivi9Sagc9JG+Ozs0r7b/0iK3sKmrb0b9FdWdBbOdx6hBCM/F9Ir82ofnBhtZOjCRPQ== +pascal-case@^3.1.2: + version "3.1.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/pascal-case/-/pascal-case-3.1.2.tgz" + integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +path-case@^3.0.4: + version "3.0.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/path-case/-/path-case-3.0.4.tgz" + integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== dependencies: - entities "^4.5.0" + dot-case "^3.0.4" + tslib "^2.0.3" path-exists@^4.0.0: version "4.0.0" @@ -4637,35 +5680,55 @@ path-is-absolute@^1.0.0: path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-key@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz" - integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== - path-parse@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== +path-root-regex@^0.1.0: + version "0.1.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/path-root-regex/-/path-root-regex-0.1.2.tgz" + integrity sha512-4GlJ6rZDhQZFE0DPVKh0e9jmZ5egZfxTkp7bcRDuPlJXbAwhxcl2dINPUAsjLdejqaLsCeg8axcLjIbvBjN4pQ== + +path-root@^0.1.1: + version "0.1.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/path-root/-/path-root-0.1.1.tgz" + integrity sha512-QLcPegTHF11axjfojBIoDygmS2E3Lf+8+jI6wOVmNVenrKSo3mFdSGiIgdSHenczw3wPtlVMQaFVwGmM7BJdtg== + dependencies: + path-root-regex "^0.1.0" + +path-scurry@^1.11.1: + version "1.11.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/path-scurry/-/path-scurry-1.11.1.tgz" + integrity sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA== + dependencies: + lru-cache "^10.2.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-type@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== -picocolors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz" - integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== +picocolors@^1.1.1: + version "1.1.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/picocolors/-/picocolors-1.1.1.tgz" + integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== -picomatch@^2.0.4, picomatch@^2.2.3, picomatch@^2.3.1: +picomatch@^2.0.4, picomatch@^2.3.1: version "2.3.1" resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pidtree@0.6.0: +picomatch@^4.0.2: + version "4.0.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/picomatch/-/picomatch-4.0.3.tgz" + integrity sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q== + +pidtree@^0.6.0: version "0.6.0" resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz" integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== @@ -4700,43 +5763,41 @@ pino@^8.15.0: sonic-boom "^3.7.0" thread-stream "^2.6.0" -pirates@^4.0.4: - version "4.0.6" - resolved "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz" - integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== +pirates@^4.0.7: + version "4.0.7" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/pirates/-/pirates-4.0.7.tgz" + integrity sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA== pkg-dir@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/pkg-dir/-/pkg-dir-4.2.0.tgz" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" +possible-typed-array-names@^1.0.0: + version "1.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz" + integrity sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg== + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier-linter-helpers@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz" - integrity sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w== - dependencies: - fast-diff "^1.1.2" - -prettier@^3.2.5, prettier@>=3.0.0: - version "3.2.5" - resolved "https://registry.npmjs.org/prettier/-/prettier-3.2.5.tgz" - integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== +prettier@^3.5.3: + version "3.6.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/prettier/-/prettier-3.6.2.tgz" + integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ== -pretty-format@^29.0.0, pretty-format@^29.7.0: - version "29.7.0" - resolved "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz" - integrity sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ== +pretty-format@^30.0.0, pretty-format@30.2.0: + version "30.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/pretty-format/-/pretty-format-30.2.0.tgz" + integrity sha512-9uBdv/B4EefsuAL+pWqueZyZS2Ba+LxfFeQ9DN14HU4bN8bhaxKdkpjpB6fs9+pSjIBu+FXQHImEg8j/Lw0+vA== dependencies: - "@jest/schemas" "^29.6.3" - ansi-styles "^5.0.0" - react-is "^18.0.0" + "@jest/schemas" "30.0.5" + ansi-styles "^5.2.0" + react-is "^18.3.1" process-warning@^3.0.0: version "3.0.0" @@ -4748,33 +5809,27 @@ process@^0.11.10: resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== -prompts@^2.0.1: - version "2.4.2" - resolved "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz" - integrity sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q== +promise@^7.1.1: + version "7.3.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/promise/-/promise-7.3.1.tgz" + integrity sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg== dependencies: - kleur "^3.0.3" - sisteransi "^1.0.5" + asap "~2.0.3" propagate@^2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/propagate/-/propagate-2.0.1.tgz" integrity sha512-vGrhOavPSTz4QVNuBNdcNXePNdNMaO1xj9yBeH1ScQPjk/rhg9sSlCXPhMkFuaNNW/syTvYqsnbIJxMBfRbbag== -proxy-from-env@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz" - integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== - -punycode@^2.1.0, punycode@^2.3.1: +punycode@^2.1.0: version "2.3.1" resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -pure-rand@^6.0.0: - version "6.0.4" - resolved "https://registry.npmjs.org/pure-rand/-/pure-rand-6.0.4.tgz" - integrity sha512-LA0Y9kxMYv47GIPJy6MI84fqTd2HmYZI83W/kM/SkKfDlajnZYfmXFTxkbY+xSBPkLJxltMa9hIkmdc29eguMA== +pure-rand@^7.0.0: + version "7.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/pure-rand/-/pure-rand-7.0.1.tgz" + integrity sha512-oTUZM/NAZS8p7ANR3SHh30kXB+zK2r2BPcEn/awJIbOvq82WoMN4p62AWWp3Hhw50G0xMsw1mhIBLqHw64EcNQ== queue-microtask@^1.2.2: version "1.2.3" @@ -4786,12 +5841,12 @@ quick-format-unescaped@^4.0.3: resolved "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-4.0.4.tgz" integrity sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg== -react-is@^18.0.0: - version "18.2.0" - resolved "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz" - integrity sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w== +react-is@^18.3.1: + version "18.3.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/react-is/-/react-is-18.3.1.tgz" + integrity sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg== -readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.6.0, readable-stream@^3.6.2: +readable-stream@^3.0.6, readable-stream@^3.4.0, readable-stream@^3.6.2: version "3.6.2" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== @@ -4816,25 +5871,61 @@ real-require@^0.2.0: resolved "https://registry.npmjs.org/real-require/-/real-require-0.2.0.tgz" integrity sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg== -regexp.prototype.flags@^1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz" - integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== +reflect.getprototypeof@^1.0.6, reflect.getprototypeof@^1.0.9: + version "1.0.10" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz" + integrity sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - set-function-name "^2.0.0" + call-bind "^1.0.8" + define-properties "^1.2.1" + es-abstract "^1.23.9" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + get-intrinsic "^1.2.7" + get-proto "^1.0.1" + which-builtin-type "^1.2.1" + +regexp.prototype.flags@^1.5.4: + version "1.5.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz" + integrity sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA== + dependencies: + call-bind "^1.0.8" + define-properties "^1.2.1" + es-errors "^1.3.0" + get-proto "^1.0.1" + gopd "^1.2.0" + set-function-name "^2.0.2" relative-microtime@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/relative-microtime/-/relative-microtime-2.0.0.tgz" integrity sha512-l18ha6HEZc+No/uK4GyAnNxgKW7nvEe35IaeN54sShMojtqik2a6GbTyuiezkjpPaqP874Z3lW5ysBo5irz4NA== +relay-runtime@12.0.0: + version "12.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/relay-runtime/-/relay-runtime-12.0.0.tgz" + integrity sha512-QU6JKr1tMsry22DXNy9Whsq5rmvwr3LSZiiWV/9+DFpuTWvp+WFhobWMc8TC4OjKFfNhEZy7mOiqUAn5atQtug== + dependencies: + "@babel/runtime" "^7.0.0" + fbjs "^3.0.0" + invariant "^2.2.4" + +remedial@^1.0.7: + version "1.0.8" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/remedial/-/remedial-1.0.8.tgz" + integrity sha512-/62tYiOe6DzS5BqVsNpH/nkGlX45C/Sp6V+NtiN6JQNS1Viay7cWkazmRkrQrdFj2eshDe96SIQNIoMxqhzBOg== + remove-trailing-separator@^1.0.1: version "1.1.0" resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz" integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== +remove-trailing-spaces@^1.0.6: + version "1.0.9" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/remove-trailing-spaces/-/remove-trailing-spaces-1.0.9.tgz" + integrity sha512-xzG7w5IRijvIkHIjDk65URsJJ7k4J95wmcArY5PRcmjldIOl7oTvG8+X2Ag690R7SfwiOcHrWZKVc1Pp5WIOzA== + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" @@ -4842,16 +5933,19 @@ require-directory@^2.1.1: require-in-the-middle@^7.1.1: version "7.2.0" - resolved "https://registry.npmjs.org/require-in-the-middle/-/require-in-the-middle-7.2.0.tgz" - integrity sha512-3TLx5TGyAY6AOqLBoXmHkNql0HIf2RGbuMgCDT2WO/uGVAPJs6h7Kl+bN6TIZGd9bWhWPwnDnTHGtW8Iu77sdw== dependencies: debug "^4.1.1" module-details-from-path "^1.0.3" resolve "^1.22.1" +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/require-main-filename/-/require-main-filename-2.0.0.tgz" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + resolve-cwd@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/resolve-cwd/-/resolve-cwd-3.0.0.tgz" integrity sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg== dependencies: resolve-from "^5.0.0" @@ -4862,19 +5956,10 @@ resolve-from@^4.0.0: integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-from@^5.0.0, resolve-from@5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" - integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== - -resolve.exports@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.2.tgz" - integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== + version "5.0.0" -resolve@^1.20.0, resolve@^1.22.1, resolve@^1.22.4: +resolve@^1.22.1, resolve@^1.22.4: version "1.22.8" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" - integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: is-core-module "^2.13.0" path-parse "^1.0.7" @@ -4888,23 +5973,21 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" -restore-cursor@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz" - integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== +restore-cursor@^5.0.0: + version "5.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/restore-cursor/-/restore-cursor-5.1.0.tgz" + integrity sha512-oMA2dcrw6u0YfxJQXm342bFKX/E4sG9rbTzO9ptUcR/e8A33cHuvStiYOwH7fszkZlZ1z/ta9AAoPk2F4qIOHA== dependencies: - onetime "^5.1.0" - signal-exit "^3.0.2" + onetime "^7.0.0" + signal-exit "^4.1.0" reusify@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" - integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rfdc@^1.3.0: - version "1.3.0" - resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz" - integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== +rfdc@^1.3.0, rfdc@^1.4.1: + version "1.4.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/rfdc/-/rfdc-1.4.1.tgz" + integrity sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA== rimraf@^3.0.2: version "3.0.2" @@ -4913,11 +5996,6 @@ rimraf@^3.0.2: dependencies: glob "^7.1.3" -rrweb-cssom@^0.8.0: - version "0.8.0" - resolved "https://registry.npmjs.org/rrweb-cssom/-/rrweb-cssom-0.8.0.tgz" - integrity sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw== - run-async@^2.4.0: version "2.4.1" resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz" @@ -4932,19 +6010,18 @@ run-parallel@^1.1.9: rxjs@^7.2.0, rxjs@^7.5.5: version "7.8.1" - resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz" - integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== dependencies: tslib "^2.1.0" -safe-array-concat@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz" - integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== +safe-array-concat@^1.1.3: + version "1.1.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/safe-array-concat/-/safe-array-concat-1.1.3.tgz" + integrity sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - has-symbols "^1.0.3" + call-bind "^1.0.8" + call-bound "^1.0.2" + get-intrinsic "^1.2.6" + has-symbols "^1.1.0" isarray "^2.0.5" safe-buffer@~5.2.0: @@ -4962,72 +6039,100 @@ safe-json-stringify@^1.2.0: resolved "https://registry.npmjs.org/safe-json-stringify/-/safe-json-stringify-1.2.0.tgz" integrity sha512-gH8eh2nZudPQO6TytOvbxnuhYBOvDBBLW52tz5q6X58lJcd/tkmqFR+5Z9adS8aJtURSXWThWy/xJtJwixErvg== -safe-regex-test@^1.0.0: +safe-push-apply@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz" - integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/safe-push-apply/-/safe-push-apply-1.0.0.tgz" + integrity sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.1.3" - is-regex "^1.1.4" + es-errors "^1.3.0" + isarray "^2.0.5" + +safe-regex-test@^1.1.0: + version "1.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/safe-regex-test/-/safe-regex-test-1.1.0.tgz" + integrity sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + is-regex "^1.2.1" safe-stable-stringify@^2.3.1: version "2.4.3" - resolved "https://registry.npmjs.org/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz" - integrity sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g== -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": +"safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" - resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== -saxes@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz" - integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA== - dependencies: - xmlchars "^2.2.0" +scuid@^1.1.0: + version "1.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/scuid/-/scuid-1.1.0.tgz" + integrity sha512-MuCAyrGZcTLfQoH2XoBlQ8C6bzwN88XT/0slOGz0pn8+gIP85BOAfYa44ZXQUTOwRwPU0QvgU+V+OSajl/59Xg== semver@^6.0.0: version "6.3.1" resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^6.3.0: - version "6.3.1" - resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" - integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== - semver@^6.3.1: version "6.3.1" resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -semver@^7.3.7, semver@^7.5.3, semver@^7.5.4: - version "7.5.4" - resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== +semver@^7.5.3, semver@^7.5.4, semver@^7.6.0, semver@^7.7.2, semver@^7.7.3: + version "7.7.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/semver/-/semver-7.7.3.tgz" + integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q== + +sentence-case@^3.0.4: + version "3.0.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/sentence-case/-/sentence-case-3.0.4.tgz" + integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== dependencies: - lru-cache "^6.0.0" + no-case "^3.0.4" + tslib "^2.0.3" + upper-case-first "^2.0.2" -set-function-length@^1.1.1: - version "1.1.1" - resolved "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz" - integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== +set-blocking@^2.0.0: + version "2.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/set-blocking/-/set-blocking-2.0.0.tgz" + integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== + +set-function-length@^1.2.2: + version "1.2.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/set-function-length/-/set-function-length-1.2.2.tgz" + integrity sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg== dependencies: - define-data-property "^1.1.1" - get-intrinsic "^1.2.1" + define-data-property "^1.1.4" + es-errors "^1.3.0" + function-bind "^1.1.2" + get-intrinsic "^1.2.4" gopd "^1.0.1" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.2" -set-function-name@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz" - integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== +set-function-name@^2.0.2: + version "2.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/set-function-name/-/set-function-name-2.0.2.tgz" + integrity sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ== dependencies: - define-data-property "^1.0.1" + define-data-property "^1.1.4" + es-errors "^1.3.0" functions-have-names "^1.2.3" - has-property-descriptors "^1.0.0" + has-property-descriptors "^1.0.2" + +set-proto@^1.0.0: + version "1.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/set-proto/-/set-proto-1.0.0.tgz" + integrity sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw== + dependencies: + dunder-proto "^1.0.1" + es-errors "^1.3.0" + es-object-atoms "^1.0.0" + +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/setimmediate/-/setimmediate-1.0.5.tgz" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== shallow-clone-shim@^2.0.0: version "2.0.0" @@ -5036,54 +6141,119 @@ shallow-clone-shim@^2.0.0: shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/shebang-command/-/shebang-command-2.0.0.tgz" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -side-channel@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" - integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== +shell-quote@^1.7.3: + version "1.8.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/shell-quote/-/shell-quote-1.8.3.tgz" + integrity sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw== + +side-channel-list@^1.0.0: + version "1.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/side-channel-list/-/side-channel-list-1.0.0.tgz" + integrity sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA== + dependencies: + es-errors "^1.3.0" + object-inspect "^1.13.3" + +side-channel-map@^1.0.1: + version "1.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/side-channel-map/-/side-channel-map-1.0.1.tgz" + integrity sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + +side-channel-weakmap@^1.0.2: + version "1.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/side-channel-weakmap/-/side-channel-weakmap-1.0.2.tgz" + integrity sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A== + dependencies: + call-bound "^1.0.2" + es-errors "^1.3.0" + get-intrinsic "^1.2.5" + object-inspect "^1.13.3" + side-channel-map "^1.0.1" + +side-channel@^1.1.0: + version "1.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/side-channel/-/side-channel-1.1.0.tgz" + integrity sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw== dependencies: - call-bind "^1.0.0" - get-intrinsic "^1.0.2" - object-inspect "^1.9.0" + es-errors "^1.3.0" + object-inspect "^1.13.3" + side-channel-list "^1.0.0" + side-channel-map "^1.0.1" + side-channel-weakmap "^1.0.2" -signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: +signal-exit@^3.0.2, signal-exit@^3.0.3: version "3.0.7" resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz" - integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== - dependencies: - is-arrayish "^0.3.1" +signal-exit@^4.0.1: + version "4.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/signal-exit/-/signal-exit-4.1.0.tgz" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== -sisteransi@^1.0.5: - version "1.0.5" - resolved "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz" - integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== +signal-exit@^4.1.0: + version "4.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/signal-exit/-/signal-exit-4.1.0.tgz" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== + +signedsource@^1.0.0: + version "1.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/signedsource/-/signedsource-1.0.0.tgz" + integrity sha512-6+eerH9fEnNmi/hyM1DXcRK3pWdoMQtlkQ+ns0ntzunjKqp5i3sKCc80ym8Fib3iaYhdJUOPdhlJWj1tvge2Ww== slash@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -slice-ansi@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz" - integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/slice-ansi/-/slice-ansi-3.0.0.tgz" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^4.0.0: + version "4.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/slice-ansi/-/slice-ansi-4.0.0.tgz" + integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slice-ansi@^7.1.0: + version "7.1.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/slice-ansi/-/slice-ansi-7.1.2.tgz" + integrity sha512-iOBWFgUX7caIZiuutICxVgX1SdxwAVFFKwt1EvMYYec/NWO5meOJ6K5uQxhrYBdQJne4KxiqZc+KptFOWFSI9w== + dependencies: + ansi-styles "^6.2.1" + is-fullwidth-code-point "^5.0.0" + +snake-case@^3.0.4: + version "3.0.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/snake-case/-/snake-case-3.0.4.tgz" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== dependencies: - ansi-styles "^6.0.0" - is-fullwidth-code-point "^4.0.0" + dot-case "^3.0.4" + tslib "^2.0.3" sonic-boom@^3.7.0: version "3.8.1" @@ -5094,7 +6264,7 @@ sonic-boom@^3.7.0: source-map-support@0.5.13: version "0.5.13" - resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/source-map-support/-/source-map-support-0.5.13.tgz" integrity sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w== dependencies: buffer-from "^1.0.0" @@ -5102,7 +6272,7 @@ source-map-support@0.5.13: source-map@^0.6.0: version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/source-map/-/source-map-0.6.1.tgz" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== source-map@^0.6.1: @@ -5122,9 +6292,16 @@ split2@^4.0.0: resolved "https://registry.npmjs.org/split2/-/split2-4.2.0.tgz" integrity sha512-UcjcJOWknrNkF6PLX83qcHM6KHgVKNkV62Y8a5uYDVv9ydGQVwAHMKqHdJje1VTWpljG0WYpCDhrCdAOYH4TWg== +sponge-case@^1.0.1: + version "1.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/sponge-case/-/sponge-case-1.0.1.tgz" + integrity sha512-dblb9Et4DAtiZ5YSUZHLl4XhH4uK80GhAZrVXdN4O2P4gQ40Wa5UIOPUHlA/nFd2PLblBZWUioLMMAVrgpoYcA== + dependencies: + tslib "^2.0.3" + sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/sprintf-js/-/sprintf-js-1.0.3.tgz" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== sql-summary@^1.0.1: @@ -5137,9 +6314,9 @@ stack-trace@0.0.x: resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz" integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== -stack-utils@^2.0.3: +stack-utils@^2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/stack-utils/-/stack-utils-2.0.6.tgz" integrity sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ== dependencies: escape-string-regexp "^2.0.0" @@ -5149,6 +6326,14 @@ stackframe@^1.3.4: resolved "https://registry.npmjs.org/stackframe/-/stackframe-1.3.4.tgz" integrity sha512-oeVtt7eWQS+Na6F//S4kJ2K2VbRlS9D43mAlMyVpVWovy9o+jfgH8O9agzANzaiLjclA0oYzUXEM4PurhSUChw== +stop-iteration-iterator@^1.1.0: + version "1.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/stop-iteration-iterator/-/stop-iteration-iterator-1.1.0.tgz" + integrity sha512-eLoXW/DHyl62zxY4SCaIgnRhuMr6ri4juEYARS8E6sCEqzKpOiE521Ucofdx+KnDZl5xmvGYaaKCk5FEOxJCoQ== + dependencies: + es-errors "^1.3.0" + internal-slot "^1.1.0" + stream-chopper@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/stream-chopper/-/stream-chopper-3.0.1.tgz" @@ -5156,14 +6341,9 @@ stream-chopper@^3.0.1: dependencies: readable-stream "^3.0.6" -streamsearch@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz" - integrity sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg== - strict-event-emitter@^0.5.1: version "0.5.1" - resolved "https://registry.npmjs.org/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/strict-event-emitter/-/strict-event-emitter-0.5.1.tgz" integrity sha512-vMgjE/GGEPEFnhFub6pa4FmJBRBVOLpIII2hvCZ8Kzb7K0hlHo7mQv6xYrBvCL2LtAIBwFUK8wvuJgTVSQ5MFQ== string_decoder@^1.1.1, string_decoder@^1.3.0: @@ -5173,7 +6353,7 @@ string_decoder@^1.1.1, string_decoder@^1.3.0: dependencies: safe-buffer "~5.2.0" -string-argv@0.3.2: +string-argv@^0.3.2: version "0.3.2" resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz" integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== @@ -5183,14 +6363,23 @@ string-env-interpolation@^1.0.1: resolved "https://registry.npmjs.org/string-env-interpolation/-/string-env-interpolation-1.0.1.tgz" integrity sha512-78lwMoCcn0nNu8LszbP1UA7g55OeE4v7rCeWnM5B453rnNr4aq+5it3FEYtZrSEiMvHZOZ9Jlqb0OD0M2VInqg== -string-length@^4.0.1: +string-length@^4.0.2: version "4.0.2" - resolved "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/string-length/-/string-length-4.0.2.tgz" integrity sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ== dependencies: char-regex "^1.0.2" strip-ansi "^6.0.0" +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/string-width/-/string-width-4.2.3.tgz" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" @@ -5200,50 +6389,70 @@ string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" -string-width@^5.0.0: +string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/string-width/-/string-width-5.1.2.tgz" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: eastasianwidth "^0.2.0" emoji-regex "^9.2.2" strip-ansi "^7.0.1" -string-width@^5.0.1: - version "5.1.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" - integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== +string-width@^7.0.0: + version "7.2.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/string-width/-/string-width-7.2.0.tgz" + integrity sha512-tsaTIkKW9b4N+AEj+SVA+WhJzV7/zMhcSu78mLKWSk7cXMOSHsBKFWUs0fWwq8QyK3MgJBQRX6Gbi4kYbdvGkQ== dependencies: - eastasianwidth "^0.2.0" - emoji-regex "^9.2.2" - strip-ansi "^7.0.1" + emoji-regex "^10.3.0" + get-east-asian-width "^1.0.0" + strip-ansi "^7.1.0" -string.prototype.trim@^1.2.8: - version "1.2.8" - resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz" - integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== +string-width@^8.0.0: + version "8.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/string-width/-/string-width-8.1.0.tgz" + integrity sha512-Kxl3KJGb/gxkaUMOjRsQ8IrXiGW75O4E3RPjFIINOVH8AMl2SQ/yWdTzWwF3FevIX9LcMAjJW+GRwAlAbTSXdg== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + get-east-asian-width "^1.3.0" + strip-ansi "^7.1.0" -string.prototype.trimend@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz" - integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== +string.prototype.trim@^1.2.10: + version "1.2.10" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz" + integrity sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.8" + call-bound "^1.0.2" + define-data-property "^1.1.4" + define-properties "^1.2.1" + es-abstract "^1.23.5" + es-object-atoms "^1.0.0" + has-property-descriptors "^1.0.2" -string.prototype.trimstart@^1.0.7: - version "1.0.7" - resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz" - integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== +string.prototype.trimend@^1.0.9: + version "1.0.9" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz" + integrity sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ== dependencies: - call-bind "^1.0.2" - define-properties "^1.2.0" - es-abstract "^1.22.1" + call-bind "^1.0.8" + call-bound "^1.0.2" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +string.prototype.trimstart@^1.0.8: + version "1.0.8" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz" + integrity sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg== + dependencies: + call-bind "^1.0.7" + define-properties "^1.2.1" + es-object-atoms "^1.0.0" + +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/strip-ansi/-/strip-ansi-6.0.1.tgz" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" strip-ansi@^4.0.0: version "4.0.0" @@ -5260,9 +6469,16 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: ansi-regex "^5.0.1" strip-ansi@^7.0.1: - version "7.1.0" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" - integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== + version "7.1.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/strip-ansi/-/strip-ansi-7.1.2.tgz" + integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== + dependencies: + ansi-regex "^6.0.1" + +strip-ansi@^7.1.0: + version "7.1.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/strip-ansi/-/strip-ansi-7.1.2.tgz" + integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA== dependencies: ansi-regex "^6.0.1" @@ -5273,31 +6489,19 @@ strip-bom@^3.0.0: strip-bom@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/strip-bom/-/strip-bom-4.0.0.tgz" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== strip-final-newline@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/strip-final-newline/-/strip-final-newline-2.0.0.tgz" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-final-newline@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz" - integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== - strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== -supports-color@^5.3.0: - version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - supports-color@^7.0.0, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" @@ -5305,9 +6509,9 @@ supports-color@^7.0.0, supports-color@^7.1.0: dependencies: has-flag "^4.0.0" -supports-color@^8.0.0: +supports-color@^8.1.1: version "8.1.1" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/supports-color/-/supports-color-8.1.1.tgz" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: has-flag "^4.0.0" @@ -5325,18 +6529,28 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -symbol-tree@^3.2.4: - version "3.2.4" - resolved "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== +swap-case@^2.0.2: + version "2.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/swap-case/-/swap-case-2.0.2.tgz" + integrity sha512-kc6S2YS/2yXbtkSMunBtKdah4VFETZ8Oh6ONSmSd9bRxhqTrtARUCBUiWXH3xVPpvR7tz2CSnkuXVE42EcGnMw== + dependencies: + tslib "^2.0.3" + +sync-fetch@0.6.0-2: + version "0.6.0-2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/sync-fetch/-/sync-fetch-0.6.0-2.tgz" + integrity sha512-c7AfkZ9udatCuAy9RSfiGPpeOKKUAUK5e1cXadLOGUjasdxqYqAK0jTNkM/FSEyJ3a5Ra27j/tw/PS0qLmaF/A== + dependencies: + node-fetch "^3.3.2" + timeout-signal "^2.0.0" + whatwg-mimetype "^4.0.0" -synckit@^0.8.6: - version "0.8.8" - resolved "https://registry.npmjs.org/synckit/-/synckit-0.8.8.tgz" - integrity sha512-HwOKAP7Wc5aRGYdKH+dw0PRRpbO841v2DENBtjnR5HFWoiNByAl7vrx3p0G/rCyYXQsrxqtX48TImFtPcIHSpQ== +synckit@^0.11.8: + version "0.11.11" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/synckit/-/synckit-0.11.11.tgz" + integrity sha512-MeQTA1r0litLUf0Rp/iisCaL8761lKAZHaimlbGK4j0HysC4PLfqygQj9srcs0m2RdtDYnF8UuYyKpbjHYp7Jw== dependencies: - "@pkgr/core" "^0.1.0" - tslib "^2.6.2" + "@pkgr/core" "^0.2.9" terminal-link@^2.1.1: version "2.1.1" @@ -5348,7 +6562,7 @@ terminal-link@^2.1.1: test-exclude@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/test-exclude/-/test-exclude-6.0.0.tgz" integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== dependencies: "@istanbuljs/schema" "^0.1.2" @@ -5357,14 +6571,9 @@ test-exclude@^6.0.0: text-hex@1.0.x: version "1.0.0" - resolved "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/text-hex/-/text-hex-1.0.0.tgz" integrity sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg== -text-table@^0.2.0: - version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" - integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== - thread-stream@^2.6.0: version "2.7.0" resolved "https://registry.npmjs.org/thread-stream/-/thread-stream-2.7.0.tgz" @@ -5372,54 +6581,35 @@ thread-stream@^2.6.0: dependencies: real-require "^0.2.0" -through@^2.3.6: +through@^2.3.6, through@^2.3.8: version "2.3.8" resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== -tldts-core@^6.1.86: - version "6.1.86" - resolved "https://registry.npmjs.org/tldts-core/-/tldts-core-6.1.86.tgz" - integrity sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA== - -tldts@^6.1.32: - version "6.1.86" - resolved "https://registry.npmjs.org/tldts/-/tldts-6.1.86.tgz" - integrity sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ== - dependencies: - tldts-core "^6.1.86" +timeout-signal@^2.0.0: + version "2.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/timeout-signal/-/timeout-signal-2.0.0.tgz" + integrity sha512-YBGpG4bWsHoPvofT6y/5iqulfXIiIErl5B0LdtHT1mGXDFTAhhRrbUpTvBgYbovr+3cKblya2WAOcpoy90XguA== -tmp@^0.0.33: - version "0.0.33" - resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" - integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== +title-case@^3.0.3: + version "3.0.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/title-case/-/title-case-3.0.3.tgz" + integrity sha512-e1zGYRvbffpcHIrnuqT0Dh+gEJtDaxDSoG4JAIpq4oDFyooziLBIiYQv0GBT4FUAnUop5uZ1hiIAj7oAF6sOCA== dependencies: - os-tmpdir "~1.0.2" + tslib "^2.0.3" tmpl@1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/tmpl/-/tmpl-1.0.5.tgz" integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw== -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" - integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== - to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" -tough-cookie@^5.1.1: - version "5.1.2" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-5.1.2.tgz" - integrity sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A== - dependencies: - tldts "^6.1.32" - tr46@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz" @@ -5427,43 +6617,42 @@ tr46@^1.0.1: dependencies: punycode "^2.1.0" -tr46@^5.1.0: - version "5.1.1" - resolved "https://registry.npmjs.org/tr46/-/tr46-5.1.1.tgz" - integrity sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw== - dependencies: - punycode "^2.3.1" - tr46@~0.0.3: version "0.0.3" - resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/tr46/-/tr46-0.0.3.tgz" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== triple-beam@^1.3.0: version "1.4.1" - resolved "https://registry.npmjs.org/triple-beam/-/triple-beam-1.4.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/triple-beam/-/triple-beam-1.4.1.tgz" integrity sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg== -ts-api-utils@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz" - integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== +ts-api-utils@^2.1.0: + version "2.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ts-api-utils/-/ts-api-utils-2.1.0.tgz" + integrity sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ== -ts-jest@^29.1.2: - version "29.1.2" - resolved "https://registry.npmjs.org/ts-jest/-/ts-jest-29.1.2.tgz" - integrity sha512-br6GJoH/WUX4pu7FbZXuWGKGNDuU7b8Uj77g/Sp7puZV6EXzuByl6JrECvm0MzVzSTkSHWTihsXt+5XYER5b+g== +ts-jest@^29.4.0: + version "29.4.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ts-jest/-/ts-jest-29.4.5.tgz" + integrity sha512-HO3GyiWn2qvTQA4kTgjDcXiMwYQt68a1Y8+JuLRVpdIzm+UOLSHgl/XqR4c6nzJkq5rOkjc02O2I7P7l/Yof0Q== dependencies: - bs-logger "0.x" - fast-json-stable-stringify "2.x" - jest-util "^29.0.0" + bs-logger "^0.2.6" + fast-json-stable-stringify "^2.1.0" + handlebars "^4.7.8" json5 "^2.2.3" - lodash.memoize "4.x" - make-error "1.x" - semver "^7.5.3" - yargs-parser "^21.0.1" + lodash.memoize "^4.1.2" + make-error "^1.3.6" + semver "^7.7.3" + type-fest "^4.41.0" + yargs-parser "^21.1.1" + +ts-log@^2.2.3: + version "2.2.7" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ts-log/-/ts-log-2.2.7.tgz" + integrity sha512-320x5Ggei84AxzlXp91QkIGSw5wgaLT6GeAH0KsqDmRZdVWW2OiSeVvElVoatk3f7nicwXlElXsoFkARiGE2yg== -ts-node@^10.9.1, ts-node@>=9.0.0: +ts-node@^10.9.1: version "10.9.2" resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz" integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== @@ -5492,22 +6681,23 @@ tsconfig-paths@^3.15.0: minimist "^1.2.6" strip-bom "^3.0.0" -tslib@^1.8.1: - version "1.14.1" - resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" - integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== - -tslib@^2.1.0, tslib@^2.3.1, tslib@^2.4.0, tslib@^2.5.0, tslib@^2.6.2: +tslib@^2.0.3, tslib@^2.1.0, tslib@^2.4.0, tslib@^2.5.0, tslib@~2.6.0: version "2.6.2" - resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" - integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== -tsutils@^3.21.0: - version "3.21.0" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz" - integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== - dependencies: - tslib "^1.8.1" +tslib@^2.6.3: + version "2.8.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/tslib/-/tslib-2.8.1.tgz" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + +tslib@^2.8.1: + version "2.8.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/tslib/-/tslib-2.8.1.tgz" + integrity sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w== + +tslib@~2.4.0: + version "2.4.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/tslib/-/tslib-2.4.1.tgz" + integrity sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA== type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" @@ -5518,87 +6708,96 @@ type-check@^0.4.0, type-check@~0.4.0: type-detect@4.0.8: version "4.0.8" - resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/type-detect/-/type-detect-4.0.8.tgz" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== -type-fest@^0.20.2: - version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" - integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== - type-fest@^0.21.3: version "0.21.3" resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== -type-fest@^1.0.2: - version "1.4.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-1.4.0.tgz" - integrity sha512-yGSza74xk0UG8k+pLh5oeoYirvIiWo5t0/o3zHHAO2tRDiZcxWP7fywNlXhqb6/r6sWvwi+RsyQMWhVLe4BVuA== +type-fest@^4.41.0: + version "4.41.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/type-fest/-/type-fest-4.41.0.tgz" + integrity sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA== -typed-array-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz" - integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== +typed-array-buffer@^1.0.3: + version "1.0.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz" + integrity sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw== dependencies: - call-bind "^1.0.2" - get-intrinsic "^1.2.1" - is-typed-array "^1.1.10" + call-bound "^1.0.3" + es-errors "^1.3.0" + is-typed-array "^1.1.14" -typed-array-byte-length@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz" - integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== +typed-array-byte-length@^1.0.3: + version "1.0.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz" + integrity sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.8" for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" + gopd "^1.2.0" + has-proto "^1.2.0" + is-typed-array "^1.1.14" -typed-array-byte-offset@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz" - integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== +typed-array-byte-offset@^1.0.4: + version "1.0.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz" + integrity sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ== dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" for-each "^0.3.3" - has-proto "^1.0.1" - is-typed-array "^1.1.10" + gopd "^1.2.0" + has-proto "^1.2.0" + is-typed-array "^1.1.15" + reflect.getprototypeof "^1.0.9" -typed-array-length@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz" - integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== +typed-array-length@^1.0.7: + version "1.0.7" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/typed-array-length/-/typed-array-length-1.0.7.tgz" + integrity sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.7" for-each "^0.3.3" - is-typed-array "^1.1.9" + gopd "^1.0.1" + is-typed-array "^1.1.13" + possible-typed-array-names "^1.0.0" + reflect.getprototypeof "^1.0.6" -typescript@>=2.7, "typescript@>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta", typescript@>=4.2.0, "typescript@>=4.3 <6", typescript@>=4.9.5, typescript@5.3.3: - version "5.3.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz" - integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== +typescript@^5.8.3: + version "5.9.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/typescript/-/typescript-5.9.3.tgz" + integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw== + +ua-parser-js@^1.0.35: + version "1.0.41" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ua-parser-js/-/ua-parser-js-1.0.41.tgz" + integrity sha512-LbBDqdIC5s8iROCUjMbW1f5dJQTEFB1+KO9ogbvlb3nm9n4YHa5p4KTvFPWvh2Hs8gZMBuiB1/8+pdfe/tDPug== uglify-js@^3.1.4: version "3.17.4" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz" - integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== -unbox-primitive@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" - integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== +unbox-primitive@^1.1.0: + version "1.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/unbox-primitive/-/unbox-primitive-1.1.0.tgz" + integrity sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw== dependencies: - call-bind "^1.0.2" + call-bound "^1.0.3" has-bigints "^1.0.2" - has-symbols "^1.0.3" - which-boxed-primitive "^1.0.2" + has-symbols "^1.1.0" + which-boxed-primitive "^1.1.1" + +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/unc-path-regex/-/unc-path-regex-0.1.2.tgz" + integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== -undici-types@~5.26.4: - version "5.26.5" - resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" - integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== +undici-types@~6.21.0: + version "6.21.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/undici-types/-/undici-types-6.21.0.tgz" + integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ== unicode-byte-truncate@^1.0.0: version "1.0.0" @@ -5615,7 +6814,7 @@ unicode-substring@^0.1.0: universal-user-agent@^6.0.0: version "6.0.1" - resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/universal-user-agent/-/universal-user-agent-6.0.1.tgz" integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== unixify@^1.0.0: @@ -5625,35 +6824,76 @@ unixify@^1.0.0: dependencies: normalize-path "^2.1.1" -update-browserslist-db@^1.0.13: - version "1.0.13" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz" - integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== +unrs-resolver@^1.7.11: + version "1.11.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/unrs-resolver/-/unrs-resolver-1.11.1.tgz" + integrity sha512-bSjt9pjaEBnNiGgc9rUiHGKv5l4/TGzDmYw3RhnkJGtLhbnnA/5qJj7x3dNDCRx/PJxu774LlH8lCOlB4hEfKg== dependencies: - escalade "^3.1.1" - picocolors "^1.0.0" + napi-postinstall "^0.3.0" + optionalDependencies: + "@unrs/resolver-binding-android-arm-eabi" "1.11.1" + "@unrs/resolver-binding-android-arm64" "1.11.1" + "@unrs/resolver-binding-darwin-arm64" "1.11.1" + "@unrs/resolver-binding-darwin-x64" "1.11.1" + "@unrs/resolver-binding-freebsd-x64" "1.11.1" + "@unrs/resolver-binding-linux-arm-gnueabihf" "1.11.1" + "@unrs/resolver-binding-linux-arm-musleabihf" "1.11.1" + "@unrs/resolver-binding-linux-arm64-gnu" "1.11.1" + "@unrs/resolver-binding-linux-arm64-musl" "1.11.1" + "@unrs/resolver-binding-linux-ppc64-gnu" "1.11.1" + "@unrs/resolver-binding-linux-riscv64-gnu" "1.11.1" + "@unrs/resolver-binding-linux-riscv64-musl" "1.11.1" + "@unrs/resolver-binding-linux-s390x-gnu" "1.11.1" + "@unrs/resolver-binding-linux-x64-gnu" "1.11.1" + "@unrs/resolver-binding-linux-x64-musl" "1.11.1" + "@unrs/resolver-binding-wasm32-wasi" "1.11.1" + "@unrs/resolver-binding-win32-arm64-msvc" "1.11.1" + "@unrs/resolver-binding-win32-ia32-msvc" "1.11.1" + "@unrs/resolver-binding-win32-x64-msvc" "1.11.1" + +update-browserslist-db@^1.1.4: + version "1.1.4" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/update-browserslist-db/-/update-browserslist-db-1.1.4.tgz" + integrity sha512-q0SPT4xyU84saUX+tomz1WLkxUbuaJnR1xWt17M7fJtEJigJeWUNGUqrauFXsHnqev9y9JTRGwk13tFBuKby4A== + dependencies: + escalade "^3.2.0" + picocolors "^1.1.1" + +upper-case-first@^2.0.2: + version "2.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/upper-case-first/-/upper-case-first-2.0.2.tgz" + integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== + dependencies: + tslib "^2.0.3" + +upper-case@^2.0.2: + version "2.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/upper-case/-/upper-case-2.0.2.tgz" + integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== + dependencies: + tslib "^2.0.3" uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/uri-js/-/uri-js-4.4.1.tgz" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" -urlpattern-polyfill@^9.0.0: - version "9.0.0" - resolved "https://registry.npmjs.org/urlpattern-polyfill/-/urlpattern-polyfill-9.0.0.tgz" - integrity sha512-WHN8KDQblxd32odxeIgo83rdVDE2bvdkb86it7bMhYZwWKJz0+O0RK/eZiHYnM+zgt/U7hAHOlCQGfjjvSkw2g== +urlpattern-polyfill@^10.0.0: + version "10.1.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/urlpattern-polyfill/-/urlpattern-polyfill-10.1.0.tgz" + integrity sha512-IGjKp/o0NL3Bso1PymYURCJxMPNAf/ILOpendP9f5B6e1rTJgdgiOvgfoT8VxCAdY+Wisb9uhGaJJf3yZ2V9nw== util-deprecate@^1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== -utility-types@^3.10.0: - version "3.10.0" - resolved "https://registry.npmjs.org/utility-types/-/utility-types-3.10.0.tgz" - integrity sha512-O11mqxmi7wMKCo6HKFt5AhO4BwY3VV68YU07tgxfz8zJTIxr4BpsezN49Ffwy9j3ZpwwJp4fkRwjRzq3uWE6Rg== +utility-types@^3.11.0: + version "3.11.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/utility-types/-/utility-types-3.11.0.tgz" + integrity sha512-6Z7Ma2aVEWisaL6TvBCy7P8rm2LQoPv6dJ7ecIaIixHcwfbJ0x7mWdbcwlIM5IGQxPZSFYeqRCqlOOeKoJYMkw== v8-compile-cache-lib@^3.0.1: version "3.0.1" @@ -5661,29 +6901,17 @@ v8-compile-cache-lib@^3.0.1: integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== v8-to-istanbul@^9.0.1: - version "9.2.0" - resolved "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.2.0.tgz" - integrity sha512-/EH/sDgxU2eGxajKdwLCDmQ4FWq+kpi3uCmBGpw1xJtnAxEjlD8j8PEiGWpCIMIs3ciNAgH0d3TTJiUkYzyZjA== + version "9.3.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz" + integrity sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA== dependencies: "@jridgewell/trace-mapping" "^0.3.12" "@types/istanbul-lib-coverage" "^2.0.1" convert-source-map "^2.0.0" -value-or-promise@^1.0.11, value-or-promise@^1.0.12: - version "1.0.12" - resolved "https://registry.npmjs.org/value-or-promise/-/value-or-promise-1.0.12.tgz" - integrity sha512-Z6Uz+TYwEqE7ZN50gwn+1LCVo9ZVrpxRPOhOLnncYkY1ZzOYtrX8Fwf/rFktZ8R5mJms6EZf5TqNOMeZmnPq9Q== - -w3c-xmlserializer@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-5.0.0.tgz" - integrity sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA== - dependencies: - xml-name-validator "^5.0.0" - walker@^1.0.8: version "1.0.8" - resolved "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/walker/-/walker-1.0.8.tgz" integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ== dependencies: makeerror "1.0.12" @@ -5695,9 +6923,14 @@ wcwidth@^1.0.1: dependencies: defaults "^1.0.3" +web-streams-polyfill@^3.0.3: + version "3.3.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/web-streams-polyfill/-/web-streams-polyfill-3.3.3.tgz" + integrity sha512-d2JWLCivmZYTSIoge9MsgFCZrt571BikcWGYkjC1khllbTeDlGqZ2D8vD8E/lJa8WGWbb7Plm8/XJYV7IJHZZw== + webidl-conversions@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/webidl-conversions/-/webidl-conversions-3.0.1.tgz" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== webidl-conversions@^4.0.2: @@ -5705,34 +6938,14 @@ webidl-conversions@^4.0.2: resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz" integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== -webidl-conversions@^7.0.0: - version "7.0.0" - resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz" - integrity sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g== - -whatwg-encoding@^3.1.1: - version "3.1.1" - resolved "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-3.1.1.tgz" - integrity sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ== - dependencies: - iconv-lite "0.6.3" - whatwg-mimetype@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/whatwg-mimetype/-/whatwg-mimetype-4.0.0.tgz" integrity sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg== -whatwg-url@^14.0.0, whatwg-url@^14.1.1: - version "14.2.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-14.2.0.tgz" - integrity sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw== - dependencies: - tr46 "^5.1.0" - webidl-conversions "^7.0.0" - whatwg-url@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/whatwg-url/-/whatwg-url-5.0.0.tgz" integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" @@ -5747,67 +6960,117 @@ whatwg-url@^7.0.0: tr46 "^1.0.1" webidl-conversions "^4.0.2" -which-boxed-primitive@^1.0.2: +which-boxed-primitive@^1.1.0, which-boxed-primitive@^1.1.1: + version "1.1.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz" + integrity sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA== + dependencies: + is-bigint "^1.1.0" + is-boolean-object "^1.2.1" + is-number-object "^1.1.1" + is-string "^1.1.1" + is-symbol "^1.1.1" + +which-builtin-type@^1.2.1: + version "1.2.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/which-builtin-type/-/which-builtin-type-1.2.1.tgz" + integrity sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q== + dependencies: + call-bound "^1.0.2" + function.prototype.name "^1.1.6" + has-tostringtag "^1.0.2" + is-async-function "^2.0.0" + is-date-object "^1.1.0" + is-finalizationregistry "^1.1.0" + is-generator-function "^1.0.10" + is-regex "^1.2.1" + is-weakref "^1.0.2" + isarray "^2.0.5" + which-boxed-primitive "^1.1.0" + which-collection "^1.0.2" + which-typed-array "^1.1.16" + +which-collection@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" - integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== - dependencies: - is-bigint "^1.0.1" - is-boolean-object "^1.1.0" - is-number-object "^1.0.4" - is-string "^1.0.5" - is-symbol "^1.0.3" - -which-typed-array@^1.1.11, which-typed-array@^1.1.13: - version "1.1.13" - resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.13.tgz" - integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== - dependencies: - available-typed-arrays "^1.0.5" - call-bind "^1.0.4" - for-each "^0.3.3" - gopd "^1.0.1" - has-tostringtag "^1.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/which-collection/-/which-collection-1.0.2.tgz" + integrity sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw== + dependencies: + is-map "^2.0.3" + is-set "^2.0.3" + is-weakmap "^2.0.2" + is-weakset "^2.0.3" + +which-module@^2.0.0: + version "2.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/which-module/-/which-module-2.0.1.tgz" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== + +which-typed-array@^1.1.16, which-typed-array@^1.1.19: + version "1.1.19" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/which-typed-array/-/which-typed-array-1.1.19.tgz" + integrity sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw== + dependencies: + available-typed-arrays "^1.0.7" + call-bind "^1.0.8" + call-bound "^1.0.4" + for-each "^0.3.5" + get-proto "^1.0.1" + gopd "^1.2.0" + has-tostringtag "^1.0.2" which@^2.0.1: version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/which/-/which-2.0.2.tgz" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" -winston-transport@^4.5.0: - version "4.6.0" - resolved "https://registry.npmjs.org/winston-transport/-/winston-transport-4.6.0.tgz" - integrity sha512-wbBA9PbPAHxKiygo7ub7BYRiKxms0tpfU2ljtWzb3SjRjv5yl6Ozuy/TkXf00HTAt+Uylo3gSkNwzc4ME0wiIg== +winston-transport@^4.9.0: + version "4.9.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/winston-transport/-/winston-transport-4.9.0.tgz" + integrity sha512-8drMJ4rkgaPo1Me4zD/3WLfI/zPdA9o2IipKODunnGDcuqbHwjsbB79ylv04LCGGzU0xQ6vTznOMpQGaLhhm6A== dependencies: - logform "^2.3.2" - readable-stream "^3.6.0" + logform "^2.7.0" + readable-stream "^3.6.2" triple-beam "^1.3.0" -winston@^3.8.2: - version "3.11.0" - resolved "https://registry.npmjs.org/winston/-/winston-3.11.0.tgz" - integrity sha512-L3yR6/MzZAOl0DsysUXHVjOwv8mKZ71TrA/41EIduGpOOV5LQVodqN+QdQ6BS6PJ/RdIshZhq84P/fStEZkk7g== +winston@^3.17.0: + version "3.18.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/winston/-/winston-3.18.3.tgz" + integrity sha512-NoBZauFNNWENgsnC9YpgyYwOVrl2m58PpQ8lNHjV3kosGs7KJ7Npk9pCUE+WJlawVSe8mykWDKWFSVfs3QO9ww== dependencies: "@colors/colors" "^1.6.0" - "@dabh/diagnostics" "^2.0.2" + "@dabh/diagnostics" "^2.0.8" async "^3.2.3" is-stream "^2.0.0" - logform "^2.4.0" + logform "^2.7.0" one-time "^1.0.0" readable-stream "^3.4.0" safe-stable-stringify "^2.3.1" stack-trace "0.0.x" triple-beam "^1.3.0" - winston-transport "^4.5.0" + winston-transport "^4.9.0" + +wonka@^6.3.2, wonka@^6.3.5: + version "6.3.5" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/wonka/-/wonka-6.3.5.tgz" + integrity sha512-SSil+ecw6B4/Dm7Pf2sAshKQ5hWFvfyGlfPbEd6A14dOH6VDjrmbY86u6nZvy9omGwwIPFR8V41+of1EezgoUw== wordwrap@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -wrap-ansi@^6.0.1: +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": + version "7.0.0" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: version "6.2.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== @@ -5818,58 +7081,53 @@ wrap-ansi@^6.0.1: wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/wrap-ansi/-/wrap-ansi-7.0.0.tgz" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== dependencies: ansi-styles "^4.0.0" string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^8.0.1: +wrap-ansi@^8.1.0: version "8.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/wrap-ansi/-/wrap-ansi-8.1.0.tgz" integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== dependencies: ansi-styles "^6.1.0" string-width "^5.0.1" strip-ansi "^7.0.1" -wrap-ansi@^8.1.0: - version "8.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" - integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== +wrap-ansi@^9.0.0: + version "9.0.2" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/wrap-ansi/-/wrap-ansi-9.0.2.tgz" + integrity sha512-42AtmgqjV+X1VpdOfyTGOYRi0/zsoLqtXQckTmqTeybT+BDIbM/Guxo7x3pE2vtpr1ok6xRqM9OpBe+Jyoqyww== dependencies: - ansi-styles "^6.1.0" - string-width "^5.0.1" - strip-ansi "^7.0.1" + ansi-styles "^6.2.1" + string-width "^7.0.0" + strip-ansi "^7.1.0" wrappy@1: version "1.0.2" resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== -write-file-atomic@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz" - integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== +write-file-atomic@^5.0.1: + version "5.0.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/write-file-atomic/-/write-file-atomic-5.0.1.tgz" + integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== dependencies: imurmurhash "^0.1.4" - signal-exit "^3.0.7" - -ws@*, ws@^8.12.0, ws@^8.13.0, ws@^8.15.0, ws@^8.18.0: - version "8.18.1" - resolved "https://registry.npmjs.org/ws/-/ws-8.18.1.tgz" - integrity sha512-RKW2aJZMXeMxVpnZ6bck+RswznaxmzdULiBr6KY7XkTnW8uvt0iT9H5DkHUChXrc+uurzwa0rVI16n/Xzjdz1w== + signal-exit "^4.0.1" -xml-name-validator@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-5.0.0.tgz" - integrity sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg== +ws@^8.17.1, ws@^8.18.3: + version "8.18.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/ws/-/ws-8.18.3.tgz" + integrity sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg== -xmlchars@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== +y18n@^4.0.0: + version "4.0.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/y18n/-/y18n-4.0.3.tgz" + integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== y18n@^5.0.5: version "5.0.8" @@ -5878,25 +7136,50 @@ y18n@^5.0.5: yallist@^3.0.2: version "3.1.1" - resolved "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/yallist/-/yallist-3.1.1.tgz" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== +yaml-ast-parser@^0.0.43: + version "0.0.43" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/yaml-ast-parser/-/yaml-ast-parser-0.0.43.tgz" + integrity sha512-2PTINUwsRqSd+s8XxKaJWQlUuEMHJQyEuh2edBbW8KNJz0SJPwUSD2zRWqezFEdN7IzAgeuYHFUCF7o8zRdZ0A== -yaml@2.3.1: - version "2.3.1" - resolved "https://registry.npmjs.org/yaml/-/yaml-2.3.1.tgz" - integrity sha512-2eHWfjaoXgTBC2jNM1LRef62VQa0umtvRiDSk6HSzW7RvS5YtkabJrwYLLEKWBc8a5U2PTSCs+dJjUTJdlHsWQ== +yaml@^2.3.1, yaml@^2.8.1: + version "2.8.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/yaml/-/yaml-2.8.1.tgz" + integrity sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw== + +yargs-parser@^18.1.2: + version "18.1.3" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/yargs-parser/-/yargs-parser-18.1.3.tgz" + integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" -yargs-parser@^21.0.1, yargs-parser@^21.1.1: +yargs-parser@^21.1.1: version "21.1.1" resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs@^17.3.1, yargs@^17.7.2: +yargs@^15.3.1: + version "15.4.1" + resolved "https://artifactory.corp.mongodb.com/artifactory/api/npm/npm/yargs/-/yargs-15.4.1.tgz" + integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== + dependencies: + cliui "^6.0.0" + decamelize "^1.2.0" + find-up "^4.1.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^4.2.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^18.1.2" + +yargs@^17.0.0, yargs@^17.7.2: version "17.7.2" resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==