diff --git a/.eslintrc.js b/.eslintrc.js index e326c04673cc..6fde071b38a9 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -114,6 +114,14 @@ module.exports = { 'import/no-extraneous-dependencies': 0, }, }, + { + files: ['test-types/*.test.ts'], + rules: { + 'jest/no-focused-tests': 0, + 'jest/no-identical-title': 0, + 'jest/valid-expect': 0, + }, + }, ], parser: 'babel-eslint', plugins: ['markdown', 'import', 'prettier', 'eslint-comments'], @@ -128,6 +136,7 @@ module.exports = { 2, { devDependencies: [ + '/test-types/**', '**/__tests__/**', '**/__mocks__/**', '**/?(*.)(spec|test).js?(x)', diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 3613b9b1917b..96d14aea6aca 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -39,6 +39,8 @@ jobs: run: yarn - name: build run: yarn build + - name: test typings + run: yarn test-types - name: verify TypeScript@3.8 compatibility run: yarn verify-old-ts - name: run eslint diff --git a/jest.config.js b/jest.config.js index b746ebfce9d5..9f45edb32b42 100644 --- a/jest.config.js +++ b/jest.config.js @@ -35,6 +35,7 @@ module.exports = { ], testEnvironment: './packages/jest-environment-node', testPathIgnorePatterns: [ + '/test-types/', '/__arbitraries__/', '/node_modules/', '/examples/', diff --git a/jest.config.types.js b/jest.config.types.js new file mode 100644 index 000000000000..b53ac3c5abda --- /dev/null +++ b/jest.config.types.js @@ -0,0 +1,35 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +const assert = require('assert'); +const baseConfig = require('./jest.config'); + +const { + modulePathIgnorePatterns, + testPathIgnorePatterns, + watchPathIgnorePatterns, +} = baseConfig; + +assert.strictEqual( + testPathIgnorePatterns[0], + '/test-types/', + 'First entry must be types', +); + +module.exports = { + displayName: { + color: 'blue', + name: 'types', + }, + modulePathIgnorePatterns, + runner: 'jest-runner-tsd', + testMatch: ['/test-types/*.test.ts'], + testPathIgnorePatterns: testPathIgnorePatterns.slice(1), + watchPathIgnorePatterns, +}; diff --git a/package.json b/package.json index 75439b395c9d..1a5530df5518 100644 --- a/package.json +++ b/package.json @@ -55,12 +55,14 @@ "istanbul-reports": "^3.0.0", "jest": "workspace:packages/jest", "jest-junit": "^11.0.1", + "jest-runner-tsd": "^1.1.0", "jest-silent-reporter": "^0.2.1", "jest-snapshot-serializer-raw": "^1.1.0", "jest-watch-typeahead": "^0.6.0", "jquery": "^3.2.1", "lerna": "^3.20.2", "micromatch": "^4.0.2", + "mlh-tsd": "^0.14.1", "mock-fs": "^4.4.1", "prettier": "^2.0.1", "progress": "^2.0.0", @@ -90,6 +92,7 @@ "lint:prettier": "prettier '**/*.{md,yml,yaml}' 'website/static/**/*.{css,js}' --write --ignore-path .gitignore", "lint:prettier:ci": "prettier '**/*.{md,yml,yaml}' 'website/static/**/*.{css,js}' --check --ignore-path .gitignore", "publish": "yarn build-clean && yarn build && lerna publish --silent", + "test-types": "yarn jest --config jest.config.types.js", "test-ci": "yarn jest-coverage --color -i --config jest.config.ci.js && yarn test-leak && node ./scripts/mapCoverage.js && codecov", "test-ci-partial": "yarn jest --color -i --config jest.config.ci.js", "test-pretty-format-perf": "node packages/pretty-format/perf/test.js", diff --git a/test-types/empty.d.ts b/test-types/empty.d.ts new file mode 100644 index 000000000000..47a251883323 --- /dev/null +++ b/test-types/empty.d.ts @@ -0,0 +1,9 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * This has to be a empty file + * @see https://github.com/MLH-Fellowship/jest-runner-tsd/blob/e25720040939fc79ab38d73c1495be90d5b92566/README.md#for-typescript-projects + */ diff --git a/test-types/top-level-jest-namespace.test.ts b/test-types/top-level-jest-namespace.test.ts new file mode 100644 index 000000000000..41be5aee551c --- /dev/null +++ b/test-types/top-level-jest-namespace.test.ts @@ -0,0 +1,81 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @type ./empty.d.ts + */ + +import {expectError, expectType} from 'mlh-tsd'; +//eslint-disable-next-line import/no-extraneous-dependencies +import {jest} from '@jest/globals'; + +expectType(jest.addMatchers({})); +expectType(jest.autoMockOff()); +expectType(jest.autoMockOn()); +expectType(jest.clearAllMocks()); +expectType(jest.clearAllTimers()); +expectType(jest.resetAllMocks()); +expectType(jest.restoreAllMocks()); +expectType(jest.clearAllTimers()); +expectType(jest.deepUnmock('moduleName')); +expectType(jest.disableAutomock()); +expectType(jest.doMock('moduleName')); +expectType(jest.doMock('moduleName', jest.fn())); + +expectError(jest.doMock('moduleName', jest.fn(), {})); +expectError(jest.doMock('moduleName', jest.fn(), {virtual: true})); + +expectType(jest.dontMock('moduleName')); +expectType(jest.enableAutomock()); +expectType(jest.mock('moduleName')); +expectType(jest.mock('moduleName', jest.fn())); +expectType(jest.mock('moduleName', jest.fn(), {})); +expectType(jest.mock('moduleName', jest.fn(), {virtual: true})); +expectType(jest.resetModuleRegistry()); +expectType(jest.resetModules()); +expectType(jest.isolateModules(() => {})); +expectType(jest.retryTimes(3)); + +expectType(jest.runAllImmediates()); +expectType(jest.runAllTicks()); +expectType(jest.runAllTimers()); +expectType(jest.runOnlyPendingTimers()); +expectType(jest.runTimersToTime(9001)); +expectType(jest.advanceTimersByTime(9001)); + +expectType(jest.setMock('moduleName', {})); +expectType(jest.setMock('moduleName', {})); +expectType(jest.setMock('moduleName', {a: 'b'})); +expectType(jest.setTimeout(9001)); +expectType(jest.unmock('moduleName')); +expectType(jest.useFakeTimers()); +expectType(jest.useRealTimers()); + +expectType(jest.advanceTimersToNextTimer()); +expectType(jest.advanceTimersToNextTimer(2)); + +// https://jestjs.io/docs/en/jest-object#jestusefaketimersimplementation-modern--legacy +expectType(jest.useFakeTimers('modern')); +expectType(jest.useFakeTimers('legacy')); + +expectError(jest.useFakeTimers('foo')); + +// https://jestjs.io/docs/en/jest-object#jestsetsystemtimenow-number--date +expectType(jest.setSystemTime()); +expectType(jest.setSystemTime(0)); +expectType(jest.setSystemTime(new Date(0))); + +expectError(jest.setSystemTime('foo')); + +// https://jestjs.io/docs/en/jest-object#jestgetrealsystemtime +expectType(jest.getRealSystemTime()); + +expectError(jest.getRealSystemTime('foo')); + +// https://jestjs.io/docs/en/jest-object#jestrequireactualmodulename +expectType(jest.requireActual('./thisReturnsTheActualModule')); + +// https://jestjs.io/docs/en/jest-object#jestrequiremockmodulename +expectType(jest.requireMock('./thisAlwaysReturnsTheMock')); diff --git a/yarn.lock b/yarn.lock index 647fd3484169..947e0680c034 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3124,6 +3124,13 @@ __metadata: languageName: node linkType: hard +"@sindresorhus/is@npm:^0.14.0": + version: 0.14.0 + resolution: "@sindresorhus/is@npm:0.14.0" + checksum: da26389d6e23f64726224ffda6f6a04bab88e15b9c4eb8f9e5fdafc3baaaa071c85c47816723b7e61e14bf2f4dcff25d6bc1629032c2916ffb8b3fe759ad7b1f + languageName: node + linkType: hard + "@sindresorhus/is@npm:^0.7.0": version: 0.7.0 resolution: "@sindresorhus/is@npm:0.7.0" @@ -3149,6 +3156,15 @@ __metadata: languageName: node linkType: hard +"@szmarczak/http-timer@npm:^1.1.2": + version: 1.1.2 + resolution: "@szmarczak/http-timer@npm:1.1.2" + dependencies: + defer-to-connect: ^1.0.1 + checksum: a46ec854231194dd1ab924a5ea0d8f0afa2b7133754a3def099cc5749e34802d8668a7d7ee3583327048354b9dc621113843d8546387e06ff57e6763cbb558d9 + languageName: node + linkType: hard + "@testing-library/dom@npm:^7.17.1": version: 7.22.0 resolution: "@testing-library/dom@npm:7.22.0" @@ -4089,6 +4105,15 @@ __metadata: languageName: node linkType: hard +"ansi-align@npm:^3.0.0": + version: 3.0.0 + resolution: "ansi-align@npm:3.0.0" + dependencies: + string-width: ^3.0.0 + checksum: e6bea1d61003857c5bbf3e81d806b53d32acb482f14dfe88233ba60656fd161cdb91d64b4feccb350adc511ac33fa60eb9ebac0afbcb0e22a8b17210a9f2147d + languageName: node + linkType: hard + "ansi-colors@npm:^1.0.1": version: 1.1.0 resolution: "ansi-colors@npm:1.1.0" @@ -5062,6 +5087,22 @@ __metadata: languageName: node linkType: hard +"boxen@npm:^4.2.0": + version: 4.2.0 + resolution: "boxen@npm:4.2.0" + dependencies: + ansi-align: ^3.0.0 + camelcase: ^5.3.1 + chalk: ^3.0.0 + cli-boxes: ^2.2.0 + string-width: ^4.1.0 + term-size: ^2.1.0 + type-fest: ^0.8.1 + widest-line: ^3.1.0 + checksum: 667b291d227a86134aaacd6f2f997828607a8e2ead0da7b2568372728382765634df46e211f73d3b11a43784db7ec53da627a57213adbd42ce10ad39609ee4e3 + languageName: node + linkType: hard + "bplist-creator@npm:0.0.8": version: 0.0.8 resolution: "bplist-creator@npm:0.0.8" @@ -5319,6 +5360,21 @@ __metadata: languageName: node linkType: hard +"cacheable-request@npm:^6.0.0": + version: 6.1.0 + resolution: "cacheable-request@npm:6.1.0" + dependencies: + clone-response: ^1.0.2 + get-stream: ^5.1.0 + http-cache-semantics: ^4.0.0 + keyv: ^3.0.0 + lowercase-keys: ^2.0.0 + normalize-url: ^4.1.0 + responselike: ^1.0.2 + checksum: 8b43f661371084ee67309c6bac93313360f55d5dfb1b622d32750c95a5f9c470a83d5798a042a67badcc0674ce0ca586a72f41e450275e78d87da1b705b91efb + languageName: node + linkType: hard + "call-me-maybe@npm:^1.0.1": version: 1.0.1 resolution: "call-me-maybe@npm:1.0.1" @@ -5671,6 +5727,13 @@ __metadata: languageName: node linkType: hard +"cli-boxes@npm:^2.2.0": + version: 2.2.0 + resolution: "cli-boxes@npm:2.2.0" + checksum: db0db07e6984456140f3880180582b13c71abf31b8e74842f298d80a21a2655bdb0025645f92b3fbc384daa6b6b3b1b4ea67ce9219984a8aa6ae06fca2d6296a + languageName: node + linkType: hard + "cli-cursor@npm:^2.1.0": version: 2.1.0 resolution: "cli-cursor@npm:2.1.0" @@ -5754,7 +5817,7 @@ __metadata: languageName: node linkType: hard -"clone-response@npm:1.0.2": +"clone-response@npm:1.0.2, clone-response@npm:^1.0.2": version: 1.0.2 resolution: "clone-response@npm:1.0.2" dependencies: @@ -6064,6 +6127,20 @@ __metadata: languageName: node linkType: hard +"configstore@npm:^5.0.1": + version: 5.0.1 + resolution: "configstore@npm:5.0.1" + dependencies: + dot-prop: ^5.2.0 + graceful-fs: ^4.1.2 + make-dir: ^3.0.0 + unique-string: ^2.0.0 + write-file-atomic: ^3.0.0 + xdg-basedir: ^4.0.0 + checksum: 81dd877bf784af29e7bbeb14e183fef21df07d9eceb3e94601a0689accb168b55f4661c629d32f079f88ea1bff3396434beb0d022414b601e72cf89adf4167e1 + languageName: node + linkType: hard + "connect@npm:^3.6.5": version: 3.7.0 resolution: "connect@npm:3.7.0" @@ -6317,6 +6394,19 @@ __metadata: languageName: node linkType: hard +"create-jest-runner@npm:^0.6.0": + version: 0.6.0 + resolution: "create-jest-runner@npm:0.6.0" + dependencies: + chalk: ^3.0.0 + jest-worker: ^25.1.0 + throat: ^5.0.0 + bin: + create-jest-runner: generator/index.js + checksum: 18cce006b1ec46435e4a3c50c91670bc1a5b22c4e2506b3625d8016976da93506bc0f12c968ad5c620b6c2203e93aebeef4d7e6e664f03bf249cf30cd43d2e86 + languageName: node + linkType: hard + "cross-fetch@npm:2.2.2": version: 2.2.2 resolution: "cross-fetch@npm:2.2.2" @@ -6823,6 +6913,13 @@ __metadata: languageName: node linkType: hard +"deep-extend@npm:^0.6.0": + version: 0.6.0 + resolution: "deep-extend@npm:0.6.0" + checksum: 856d7f52db152c19fc5a70439ea938461cfb9338a632496fe370050dc73d3291cd76fc6713f604a5c126612dee9cac0f6da1d4b88ba4b0caa4f7214345879b89 + languageName: node + linkType: hard + "deep-is@npm:^0.1.3, deep-is@npm:~0.1.3": version: 0.1.3 resolution: "deep-is@npm:0.1.3" @@ -6853,6 +6950,13 @@ __metadata: languageName: node linkType: hard +"defer-to-connect@npm:^1.0.1": + version: 1.1.3 + resolution: "defer-to-connect@npm:1.1.3" + checksum: d8632cafae79a077b894c17f92d668784ad83825150d31c107df4fafc39f351ecd5112e0c75e0c2886c29ea359faf299bbb73246af71607b1e5b0d1ecc496ebf + languageName: node + linkType: hard + "define-properties@npm:^1.1.2, define-properties@npm:^1.1.3": version: 1.1.3 resolution: "define-properties@npm:1.1.3" @@ -7567,6 +7671,13 @@ __metadata: languageName: node linkType: hard +"escape-goat@npm:^2.0.0": + version: 2.1.1 + resolution: "escape-goat@npm:2.1.1" + checksum: 8270a80ca5449893b004ae260f41aece7db91198dcb007f3f26e68c3adde0f9a4c63df9aaa23d9a3a79b670a304a30986027770b2afd5b09be18a8ffcc8ab88d + languageName: node + linkType: hard + "escape-html@npm:~1.0.3": version: 1.0.3 resolution: "escape-html@npm:1.0.3" @@ -7650,6 +7761,21 @@ __metadata: languageName: node linkType: hard +"eslint-formatter-pretty@npm:^4.0.0": + version: 4.0.0 + resolution: "eslint-formatter-pretty@npm:4.0.0" + dependencies: + ansi-escapes: ^4.2.1 + chalk: ^4.1.0 + eslint-rule-docs: ^1.1.5 + log-symbols: ^4.0.0 + plur: ^4.0.0 + string-width: ^4.2.0 + supports-hyperlinks: ^2.0.0 + checksum: aec66ccea3669716606b88e890bfca3222a6b516945fdca9373b332874fa9661450e8186c2b1ef1dcdd38eb759e4e6f59bc713501eaffcde083deffac8442e7d + languageName: node + linkType: hard + "eslint-import-resolver-node@npm:^0.3.3": version: 0.3.4 resolution: "eslint-import-resolver-node@npm:0.3.4" @@ -7810,6 +7936,13 @@ __metadata: languageName: node linkType: hard +"eslint-rule-docs@npm:^1.1.5": + version: 1.1.204 + resolution: "eslint-rule-docs@npm:1.1.204" + checksum: 0ed8ca562f35adab9e5fd0e856fa022b9c1d04b99ebd8889748e91d91110c57337c0427c4c35db64dbff5e8e84c2b17e9c9fe78864f725bc4cbc80ff8a16dc19 + languageName: node + linkType: hard + "eslint-scope@npm:^5.0.0": version: 5.1.0 resolution: "eslint-scope@npm:5.1.0" @@ -9397,6 +9530,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"global-dirs@npm:^2.0.1": + version: 2.0.1 + resolution: "global-dirs@npm:2.0.1" + dependencies: + ini: ^1.3.5 + checksum: 8dfdc04e846b748b6e1278e0db1827e968ae585468f5d1847fc5223a69a3d7920107dae0c569431f60bc490104b0b66f072a14728aec6dd6987134d362cb63cb + languageName: node + linkType: hard + "global-modules@npm:2.0.0": version: 2.0.0 resolution: "global-modules@npm:2.0.0" @@ -9448,7 +9590,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"globby@npm:^11.0.0": +"globby@npm:^11.0.0, globby@npm:^11.0.1": version: 11.0.1 resolution: "globby@npm:11.0.1" dependencies: @@ -9545,6 +9687,25 @@ fsevents@^1.2.7: languageName: node linkType: hard +"got@npm:^9.6.0": + version: 9.6.0 + resolution: "got@npm:9.6.0" + dependencies: + "@sindresorhus/is": ^0.14.0 + "@szmarczak/http-timer": ^1.1.2 + cacheable-request: ^6.0.0 + decompress-response: ^3.3.0 + duplexer3: ^0.1.4 + get-stream: ^4.1.0 + lowercase-keys: ^1.0.1 + mimic-response: ^1.0.1 + p-cancelable: ^1.0.0 + to-readable-stream: ^1.0.0 + url-parse-lax: ^3.0.0 + checksum: 4cfb862eb7e2d023f486efbd9ad5ab199ea44f957dc72be9518bf54d832ad4281ef3b63eac4d861b189690c3b7674eef3e1cb4f41285a83fa43293431ab879bd + languageName: node + linkType: hard + "graceful-fs@npm:^4.1.10, graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.3, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.1.9, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.2, graceful-fs@npm:^4.2.3, graceful-fs@npm:^4.2.4": version: 4.2.4 resolution: "graceful-fs@npm:4.2.4" @@ -9736,6 +9897,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"has-yarn@npm:^2.1.0": + version: 2.1.0 + resolution: "has-yarn@npm:2.1.0" + checksum: 105682f263a3437972c75594cdda237ce8454f67cae37a36a507701f300dade0460231dabbe873a7df035b7c0a0b3a686c9fcd1eebb29c73ca35753ecae6fb7d + languageName: node + linkType: hard + "has@npm:^1.0.0, has@npm:^1.0.3": version: 1.0.3 resolution: "has@npm:1.0.3" @@ -9840,6 +10008,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"http-cache-semantics@npm:^4.0.0": + version: 4.1.0 + resolution: "http-cache-semantics@npm:4.1.0" + checksum: 451df9784af2acbe0cc1fd70291285c08ca4a8966ab5ee4d3975e003d1ad4d74c81473086d628f31296b31221966fda8bc5ea1e29dd8f1f33f9fc2b0fdca65ca + languageName: node + linkType: hard + "http-errors@npm:1.7.2": version: 1.7.2 resolution: "http-errors@npm:1.7.2" @@ -10120,6 +10295,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"import-lazy@npm:^2.1.0": + version: 2.1.0 + resolution: "import-lazy@npm:2.1.0" + checksum: 4907a2ddbe39df77b28cbb3e0a41d675f56990b935cd579df7ccd143501f5496382cfbf8d53f359a41660d4a8963bec22a5d68e12d8fae9c828bf59664114963 + languageName: node + linkType: hard + "import-lazy@npm:^3.1.0": version: 3.1.0 resolution: "import-lazy@npm:3.1.0" @@ -10219,7 +10401,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"ini@npm:^1.3.2, ini@npm:^1.3.4, ini@npm:^1.3.5": +"ini@npm:^1.3.2, ini@npm:^1.3.4, ini@npm:^1.3.5, ini@npm:~1.3.0": version: 1.3.5 resolution: "ini@npm:1.3.5" checksum: 304a78d1e0ec49c6dc316b6a21bee5340ba85159c6581235b26a4cf27e2bac5f66f2c8f0e074ceaf3c48085f89fb974691cbf812df2128d2d74c5ef726d1b19a @@ -10364,6 +10546,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"irregular-plurals@npm:^3.2.0": + version: 3.2.0 + resolution: "irregular-plurals@npm:3.2.0" + checksum: 1abd6d0d27ac0917822e385a54968b320c8e27770e3731f8b758c19069fbe2e245361d76335f90a2b8af04c00556166148d5499c4552a25ea05158f097e606c3 + languageName: node + linkType: hard + "is-absolute-url@npm:^2.0.0": version: 2.1.0 resolution: "is-absolute-url@npm:2.1.0" @@ -10648,6 +10837,16 @@ fsevents@^1.2.7: languageName: node linkType: hard +"is-installed-globally@npm:^0.3.1": + version: 0.3.2 + resolution: "is-installed-globally@npm:0.3.2" + dependencies: + global-dirs: ^2.0.1 + is-path-inside: ^3.0.1 + checksum: 10fc4fb09fe86c0ed5fa21e821607c6e1ca258386787b1aaad3afbe59470d0c3b50b076cbc996173b9b4c0de7d6a8b741aabf9229ab09d6c37ff663e51631529 + languageName: node + linkType: hard + "is-jpg@npm:^2.0.0": version: 2.0.0 resolution: "is-jpg@npm:2.0.0" @@ -10662,6 +10861,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"is-npm@npm:^4.0.0": + version: 4.0.0 + resolution: "is-npm@npm:4.0.0" + checksum: 94ab2edae37293ceba039729ba1de851448059979138f72d7184a89a484bf70fbefc462268fecf59865e54ce972c15164229acc73bd56c025a7afc7dd0702c40 + languageName: node + linkType: hard + "is-number-object@npm:^1.0.4": version: 1.0.4 resolution: "is-number-object@npm:1.0.4" @@ -10722,6 +10928,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"is-path-inside@npm:^3.0.1": + version: 3.0.2 + resolution: "is-path-inside@npm:3.0.2" + checksum: 709ba85a713d25fb058a4c2f62e9e7160bcc1a3e48af2f201045cde027fc1efe61a6e1b5c1cf21b8329f764e3649e160976fde14317c1b848caa9c1f31d5beec + languageName: node + linkType: hard + "is-plain-obj@npm:^1.0.0, is-plain-obj@npm:^1.1.0": version: 1.1.0 resolution: "is-plain-obj@npm:1.1.0" @@ -10920,6 +11133,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"is-yarn-global@npm:^0.3.0": + version: 0.3.0 + resolution: "is-yarn-global@npm:0.3.0" + checksum: 5a66f706f24e76979ce252a8f5ff4bb680da3c3eb978a2930f0147fecaa583eefb4ee1765bcfb85c0b4e83f67a231355e158a89b0047e83649f8f11a93563ef9 + languageName: node + linkType: hard + "is2@npm:2.0.1": version: 2.0.1 resolution: "is2@npm:2.0.1" @@ -11470,6 +11690,17 @@ fsevents@^1.2.7: languageName: unknown linkType: soft +"jest-runner-tsd@npm:^1.1.0": + version: 1.1.0 + resolution: "jest-runner-tsd@npm:1.1.0" + dependencies: + create-jest-runner: ^0.6.0 + jest-docblock: ^26.0.0 + mlh-tsd: ^0.14.1 + checksum: 93a1dada88c6bceeabb8e60495bb295321ee7b57ba9f02137e6ace10d34baa5eb0e096da06acc9a1d1d6f6ab42fe95cb9486c8160dab257c0db5508ce8e03271 + languageName: node + linkType: hard + "jest-runner@^26.4.0, jest-runner@workspace:packages/jest-runner": version: 0.0.0-use.local resolution: "jest-runner@workspace:packages/jest-runner" @@ -11736,6 +11967,16 @@ fsevents@^1.2.7: languageName: node linkType: hard +"jest-worker@npm:^25.1.0": + version: 25.5.0 + resolution: "jest-worker@npm:25.5.0" + dependencies: + merge-stream: ^2.0.0 + supports-color: ^7.0.0 + checksum: 20ae005c58f9db5be0f9bced0df6aeca340c64e7e0c7c27264b5f5964c94013e98ccd678df935d629889136ce45594d230e547624ccce73de581a05d4a8e6315 + languageName: node + linkType: hard + "jest-zone-patch@npm:*": version: 0.0.10 resolution: "jest-zone-patch@npm:0.0.10" @@ -12046,6 +12287,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"keyv@npm:^3.0.0": + version: 3.1.0 + resolution: "keyv@npm:3.1.0" + dependencies: + json-buffer: 3.0.0 + checksum: 6bf032ee504f27e00ae3a366c7e0ca5d93b8f947672871568f2a1456bf56d1bc4e55555158a45188d14483c4c38d0fa1dc7f0585b0d6c640f8e79abc9b4d3162 + languageName: node + linkType: hard + "kind-of@npm:^1.1.0": version: 1.1.0 resolution: "kind-of@npm:1.1.0" @@ -12120,6 +12370,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"latest-version@npm:^5.0.0": + version: 5.1.0 + resolution: "latest-version@npm:5.1.0" + dependencies: + package-json: ^6.3.0 + checksum: 63c1f224358d094a75782cc48a5b3eeaf70a70c0e18f8b814480e50ed0ecedb4bc5f2c9cc44c7983fbf31e865f0376526bf9a563c304f3261971f38d8f51c5c6 + languageName: node + linkType: hard + "lazy-cache@npm:^2.0.2": version: 2.0.2 resolution: "lazy-cache@npm:2.0.2" @@ -12525,6 +12784,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"log-symbols@npm:^4.0.0": + version: 4.0.0 + resolution: "log-symbols@npm:4.0.0" + dependencies: + chalk: ^4.0.0 + checksum: 2cbdb0427d1853f2bd36645bff42aaca200902284f28aadacb3c0fa4c8c43fe6bfb71b5d61ab08b67063d066d7c55b8bf5fbb43b03e4a150dbcdd643e9cd1dbf + languageName: node + linkType: hard + "logalot@npm:^2.0.0": version: 2.1.0 resolution: "logalot@npm:2.1.0" @@ -12583,13 +12851,20 @@ fsevents@^1.2.7: languageName: node linkType: hard -"lowercase-keys@npm:^1.0.0": +"lowercase-keys@npm:^1.0.0, lowercase-keys@npm:^1.0.1": version: 1.0.1 resolution: "lowercase-keys@npm:1.0.1" checksum: ac9d79c47dd9f831cebb2cbe930e72f7c03b27ab07c5bb9072ee0b4a853ce26d6648403b9eb371b3d400af3790da9ce65cf7207af887f8c134d53dce81559107 languageName: node linkType: hard +"lowercase-keys@npm:^2.0.0": + version: 2.0.0 + resolution: "lowercase-keys@npm:2.0.0" + checksum: 4da67f41865a25360bb05749a66a83c60987c7efa0b8ec443941a19978c21ba916ae9fedca25b96fc652026c4264a437d3fec099d1949716b5483eec42395ec9 + languageName: node + linkType: hard + "lpad-align@npm:^1.0.1": version: 1.1.2 resolution: "lpad-align@npm:1.1.2" @@ -12859,6 +13134,25 @@ fsevents@^1.2.7: languageName: node linkType: hard +"meow@npm:^7.0.1": + version: 7.1.0 + resolution: "meow@npm:7.1.0" + dependencies: + "@types/minimist": ^1.2.0 + camelcase-keys: ^6.2.2 + decamelize-keys: ^1.1.0 + hard-rejection: ^2.1.0 + minimist-options: 4.1.0 + normalize-package-data: ^2.5.0 + read-pkg-up: ^7.0.1 + redent: ^3.0.0 + trim-newlines: ^3.0.0 + type-fest: ^0.13.1 + yargs-parser: ^18.1.3 + checksum: ee2470f2ee727dba6de3320e9a45d673180d180fbb72acebf8f54c4b6545e8c0e80ce85ae5fe3d129656c12708f1a93911384868383ae55f3dbbd5112d7105e3 + languageName: node + linkType: hard + "merge-descriptors@npm:1.0.1": version: 1.0.1 resolution: "merge-descriptors@npm:1.0.1" @@ -13374,7 +13668,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"mimic-response@npm:^1.0.0": +"mimic-response@npm:^1.0.0, mimic-response@npm:^1.0.1": version: 1.0.1 resolution: "mimic-response@npm:1.0.1" checksum: 64b43c717ed8710bc920576e96d38d0e504e9eec3114af8e00c9e3d7ae53cd459ee38febb0badc83e3a4e6d21cd571db43e9011f8cf014809989c87a1a9f0ea4 @@ -13397,24 +13691,24 @@ fsevents@^1.2.7: languageName: node linkType: hard -"minimist-options@npm:^3.0.1": - version: 3.0.2 - resolution: "minimist-options@npm:3.0.2" +"minimist-options@npm:4.1.0, minimist-options@npm:^4.0.2": + version: 4.1.0 + resolution: "minimist-options@npm:4.1.0" dependencies: arrify: ^1.0.1 is-plain-obj: ^1.1.0 - checksum: 3b265ce72ef1a55bab293b0c6dce4a44f89fcdf2dd096c6a629defb30b4928fd3770931d89b5e14ac1253178cbeed3af39227f0bdfb87bef49af93b67a48eb7a + kind-of: ^6.0.3 + checksum: 51f1aba56f9c2c2986d85c98a29abec26c632019abd2966a151029cf2cf0903d81894781460e0d5755d4f899bb3884bc86fc9af36ab31469a38d82cf74f4f651 languageName: node linkType: hard -"minimist-options@npm:^4.0.2": - version: 4.1.0 - resolution: "minimist-options@npm:4.1.0" +"minimist-options@npm:^3.0.1": + version: 3.0.2 + resolution: "minimist-options@npm:3.0.2" dependencies: arrify: ^1.0.1 is-plain-obj: ^1.1.0 - kind-of: ^6.0.3 - checksum: 51f1aba56f9c2c2986d85c98a29abec26c632019abd2966a151029cf2cf0903d81894781460e0d5755d4f899bb3884bc86fc9af36ab31469a38d82cf74f4f651 + checksum: 3b265ce72ef1a55bab293b0c6dce4a44f89fcdf2dd096c6a629defb30b4928fd3770931d89b5e14ac1253178cbeed3af39227f0bdfb87bef49af93b67a48eb7a languageName: node linkType: hard @@ -13520,6 +13814,22 @@ fsevents@^1.2.7: languageName: node linkType: hard +"mlh-tsd@npm:^0.14.1": + version: 0.14.1 + resolution: "mlh-tsd@npm:0.14.1" + dependencies: + eslint-formatter-pretty: ^4.0.0 + globby: ^11.0.1 + meow: ^7.0.1 + path-exists: ^4.0.0 + read-pkg-up: ^7.0.0 + update-notifier: ^4.1.0 + bin: + mlh-tsd: dist/cli.js + checksum: c9538dbe479bb770346e74789ec3681b07b8f7311a1bc8f4d1f2e527270ef66c41c490fa0f90f1594672a00c6f229d9d5a0b753af596da708d20a7b8defc130c + languageName: node + linkType: hard + "mock-fs@npm:^4.4.1": version: 4.12.0 resolution: "mock-fs@npm:4.12.0" @@ -13953,6 +14263,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"normalize-url@npm:^4.1.0": + version: 4.5.0 + resolution: "normalize-url@npm:4.5.0" + checksum: 09794941dbe5c7b91caf6f3cd1ae167c27f6d09793e4a03601a68b62de7e8ee9e5de21a246130cdbab98b01481de292f9556d492444a527648f9cf1220e4b0df + languageName: node + linkType: hard + "npm-bundled@npm:^1.0.1": version: 1.1.1 resolution: "npm-bundled@npm:1.1.1" @@ -14407,6 +14724,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"p-cancelable@npm:^1.0.0": + version: 1.1.0 + resolution: "p-cancelable@npm:1.1.0" + checksum: 01fdd9ac319f0e69e22c18d5b9e5f4dca62a0827d72349c73b0c88b07c760849de49201dcbe4fbbcbe61b4bdce8f4f3596cfbbfed664cf411ff1ab9a80664574 + languageName: node + linkType: hard + "p-each-series@npm:^2.1.0": version: 2.1.0 resolution: "p-each-series@npm:2.1.0" @@ -14571,6 +14895,18 @@ fsevents@^1.2.7: languageName: node linkType: hard +"package-json@npm:^6.3.0": + version: 6.5.0 + resolution: "package-json@npm:6.5.0" + dependencies: + got: ^9.6.0 + registry-auth-token: ^4.0.0 + registry-url: ^5.0.0 + semver: ^6.2.0 + checksum: 3023e318de5d76bbd650aedd3671b452cb1e018c4d99b72955dde0f22c6ba765c3f6d678ab0ee45e2561842e8399b1fea77a0730dc93c39505e7ebfed7ab2818 + languageName: node + linkType: hard + "parallel-transform@npm:^1.1.0": version: 1.2.0 resolution: "parallel-transform@npm:1.2.0" @@ -14937,6 +15273,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"plur@npm:^4.0.0": + version: 4.0.0 + resolution: "plur@npm:4.0.0" + dependencies: + irregular-plurals: ^3.2.0 + checksum: 22e3ba41be31e5843decf0b68ce555b7750da3b8ba56e34fbe3abc775fa9428ecf263ef401a5d0962cface0290caf0132ddd87617f02fc41789bbb0fa2a010c1 + languageName: node + linkType: hard + "portfinder@npm:^1.0.25": version: 1.0.28 resolution: "portfinder@npm:1.0.28" @@ -15588,6 +15933,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"pupa@npm:^2.0.1": + version: 2.0.1 + resolution: "pupa@npm:2.0.1" + dependencies: + escape-goat: ^2.0.0 + checksum: d03edb9fd7d707e54618711896ab4a96c80fcfb380e413a9130157dc08a3553bf62fa7c7407edbba57095d4ba993df6de4f28a56dd5eca93b5dccbe1fc4a82db + languageName: node + linkType: hard + "pure-rand@npm:^3.0.0": version: 3.0.0 resolution: "pure-rand@npm:3.0.0" @@ -15721,6 +16075,20 @@ fsevents@^1.2.7: languageName: node linkType: hard +"rc@npm:^1.2.8": + version: 1.2.8 + resolution: "rc@npm:1.2.8" + dependencies: + deep-extend: ^0.6.0 + ini: ~1.3.0 + minimist: ^1.2.0 + strip-json-comments: ~2.0.1 + bin: + rc: ./cli.js + checksum: ea2b7f7cee201a67923a2240de594a5d9b59bd312b814b06536d3d609a416dfd6fb9b85ea2abfd3b8a4eb5ed33eaff946ee75a8f2b7fb10941073c5cfee6b7a5 + languageName: node + linkType: hard + "react-dev-utils@npm:^9.1.0": version: 9.1.0 resolution: "react-dev-utils@npm:9.1.0" @@ -15929,7 +16297,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"read-pkg-up@npm:^7.0.1": +"read-pkg-up@npm:^7.0.0, read-pkg-up@npm:^7.0.1": version: 7.0.1 resolution: "read-pkg-up@npm:7.0.1" dependencies: @@ -16187,6 +16555,24 @@ fsevents@^1.2.7: languageName: node linkType: hard +"registry-auth-token@npm:^4.0.0": + version: 4.2.0 + resolution: "registry-auth-token@npm:4.2.0" + dependencies: + rc: ^1.2.8 + checksum: bbdcbe2210ec119538ea5f57df65149bac03e03c0d7fd0e0d0ff323140bb20d62e07a32f825e45902e2aea99e588fd042411a056b477c33761e3a88b846fd87d + languageName: node + linkType: hard + +"registry-url@npm:^5.0.0": + version: 5.1.0 + resolution: "registry-url@npm:5.1.0" + dependencies: + rc: ^1.2.8 + checksum: 50802a1d43efb18505ffc1f242b8af43bde95e95ac2461f453ef21d4bce793d4230076147809f1ade7452afaa537c6e0324dd4a7bc9d83f1b6f5cc7e1300c544 + languageName: node + linkType: hard + "regjsgen@npm:^0.5.1": version: 0.5.2 resolution: "regjsgen@npm:0.5.2" @@ -16457,7 +16843,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"responselike@npm:1.0.2": +"responselike@npm:1.0.2, responselike@npm:^1.0.2": version: 1.0.2 resolution: "responselike@npm:1.0.2" dependencies: @@ -16621,12 +17007,14 @@ fsevents@^1.2.7: istanbul-reports: ^3.0.0 jest: "workspace:packages/jest" jest-junit: ^11.0.1 + jest-runner-tsd: ^1.1.0 jest-silent-reporter: ^0.2.1 jest-snapshot-serializer-raw: ^1.1.0 jest-watch-typeahead: ^0.6.0 jquery: ^3.2.1 lerna: ^3.20.2 micromatch: ^4.0.2 + mlh-tsd: ^0.14.1 mock-fs: ^4.4.1 prettier: ^2.0.1 progress: ^2.0.0 @@ -16828,6 +17216,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"semver-diff@npm:^3.1.1": + version: 3.1.1 + resolution: "semver-diff@npm:3.1.1" + dependencies: + semver: ^6.3.0 + checksum: d5c9b693e6118bf56226b52fe4bb51f1f05fd7b91bd7979d3d01b32d4e136e16e4ea110f28f0690608712473d682e7a71a05f0ab65b8ba4a70d63b536d4c6278 + languageName: node + linkType: hard + "semver-regex@npm:^2.0.0": version: 2.0.0 resolution: "semver-regex@npm:2.0.0" @@ -17582,7 +17979,7 @@ fsevents@^1.2.7: languageName: node linkType: hard -"string-width@npm:^4.1.0, string-width@npm:^4.2.0": +"string-width@npm:^4.0.0, string-width@npm:^4.1.0, string-width@npm:^4.2.0": version: 4.2.0 resolution: "string-width@npm:4.2.0" dependencies: @@ -17777,6 +18174,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"strip-json-comments@npm:~2.0.1": + version: 2.0.1 + resolution: "strip-json-comments@npm:2.0.1" + checksum: e60d99aa2849c27a04dce0620334f45822197df6b83664dd3746971e9a0a766d989dbb8d87f9cb7350725d2b5df401a2343222ad06e36a1ba7d62c6633267fcb + languageName: node + linkType: hard + "strip-outer@npm:^1.0.0": version: 1.0.1 resolution: "strip-outer@npm:1.0.1" @@ -18064,6 +18468,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"term-size@npm:^2.1.0": + version: 2.2.0 + resolution: "term-size@npm:2.2.0" + checksum: 02307492dfe602234355d55f23f4ce0125ad2dea428a63337e031bc97d2f7832b12c66eb64853f4dc30bdfc05377bc161da8659ecc30303a1ac616a619f284bb + languageName: node + linkType: hard + "terminal-link@npm:^2.0.0": version: 2.1.1 resolution: "terminal-link@npm:2.1.1" @@ -18248,6 +18659,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"to-readable-stream@npm:^1.0.0": + version: 1.0.0 + resolution: "to-readable-stream@npm:1.0.0" + checksum: aa4b65d3e7a60d7b51204585187bdfd2159788a22ec241451c782552699e8dec39dcb8a9cd4957e03f32191ca18d3ea80abd9bb40005a8f1631df8fbba22b413 + languageName: node + linkType: hard + "to-regex-range@npm:^2.1.0": version: 2.1.1 resolution: "to-regex-range@npm:2.1.1" @@ -18838,6 +19256,27 @@ fsevents@^1.2.7: languageName: node linkType: hard +"update-notifier@npm:^4.1.0": + version: 4.1.1 + resolution: "update-notifier@npm:4.1.1" + dependencies: + boxen: ^4.2.0 + chalk: ^3.0.0 + configstore: ^5.0.1 + has-yarn: ^2.1.0 + import-lazy: ^2.1.0 + is-ci: ^2.0.0 + is-installed-globally: ^0.3.1 + is-npm: ^4.0.0 + is-yarn-global: ^0.3.0 + latest-version: ^5.0.0 + pupa: ^2.0.1 + semver-diff: ^3.1.1 + xdg-basedir: ^4.0.0 + checksum: e607ff849d83e1112cc6ed5bfd2c8081723f1bce9ce3904c49ef0a1e5bc930afb8ebb725f015f35b481c0ce508483648f4e6dc8da9a1b7819210ec0800ae2cc9 + languageName: node + linkType: hard + "uri-js@npm:^4.2.2": version: 4.2.2 resolution: "uri-js@npm:4.2.2" @@ -19241,6 +19680,15 @@ fsevents@^1.2.7: languageName: node linkType: hard +"widest-line@npm:^3.1.0": + version: 3.1.0 + resolution: "widest-line@npm:3.1.0" + dependencies: + string-width: ^4.0.0 + checksum: 729c30582e49bdcb1372216eedfd71d1640a1344a4b4e970bc9f33d575b56b130f530b383fbab2cf2bcffb76ea4357e6a66939778d8de91ca66037651d94e01a + languageName: node + linkType: hard + "windows-release@npm:^3.1.0": version: 3.3.1 resolution: "windows-release@npm:3.3.1" @@ -19441,6 +19889,13 @@ fsevents@^1.2.7: languageName: node linkType: hard +"xdg-basedir@npm:^4.0.0": + version: 4.0.0 + resolution: "xdg-basedir@npm:4.0.0" + checksum: 928953cb7dda8e2475932f748847a3aae751f44864a0067b03e5ca66820a36e1e9ffb647f9b06fb68ebcb0b9d06d5aee630717a1d2501be14cec99f82efa2fe6 + languageName: node + linkType: hard + "xml-js@npm:^1.6.11": version: 1.6.11 resolution: "xml-js@npm:1.6.11"