diff --git a/.changeset/nasty-ants-bake.md b/.changeset/nasty-ants-bake.md new file mode 100644 index 000000000..6bddd3001 --- /dev/null +++ b/.changeset/nasty-ants-bake.md @@ -0,0 +1,21 @@ +--- +'skuba': minor +--- + +deps: Jest 29 + +This major release includes breaking changes. See the [announcement post](https://jestjs.io/blog/2022/08/25/jest-29) for more information. + +The `collectCoverageOnlyFrom` configuration option has been removed, and the default snapshot format has been simplified: + +```diff +- Expected: \\"a\\" ++ Expected: "a" + +- Object { +- Array [] +- } ++ { ++ [] ++ } +``` diff --git a/jest/moduleNameMapper.test.ts b/jest/moduleNameMapper.test.ts index a19806154..702170964 100644 --- a/jest/moduleNameMapper.test.ts +++ b/jest/moduleNameMapper.test.ts @@ -12,7 +12,7 @@ describe('moduleNameMapper', () => { it('expands wildcard paths', () => expect(act({ 'src/*': ['src/*'], 'lib/wip/*': ['lib/wip/*'] })) .toMatchInlineSnapshot(` - Object { + { "^lib/wip$": "/lib/wip", "^lib/wip/(.*)$": "/lib/wip/$1", "^src$": "/src", @@ -22,7 +22,7 @@ describe('moduleNameMapper', () => { it('expands non-wildcard paths', () => expect(act({ cli: ['cli'], 'src/': ['src/'] })).toMatchInlineSnapshot(` - Object { + { "^cli$": "/cli", "^cli/(.*)$": "/cli/$1", "^src$": "/src", @@ -37,7 +37,7 @@ describe('moduleNameMapper', () => { 'jquery/*': ['node_modules/jquery/dist/jquery/*'], }), ).toMatchInlineSnapshot(` - Object { + { "^jquery$": "/node_modules/jquery/dist/jquery", "^jquery/(.*)$": "/node_modules/jquery/dist/jquery/$1", } @@ -46,7 +46,7 @@ describe('moduleNameMapper', () => { it('respects a base URL', () => expect(act({ cli: ['../cli'], 'app/*': ['app/*'] }, 'src')) .toMatchInlineSnapshot(` - Object { + { "^app$": "/src/app", "^app/(.*)$": "/src/app/$1", "^cli$": "/cli", @@ -54,12 +54,11 @@ describe('moduleNameMapper', () => { } `)); - it('respects no paths', () => - expect(act({})).toMatchInlineSnapshot(`Object {}`)); + it('respects no paths', () => expect(act({})).toMatchInlineSnapshot(`{}`)); it('falls back on undefined paths', () => expect(act(undefined)).toMatchInlineSnapshot(` - Object { + { "^src$": "/src", "^src/(.*)$": "/src/$1", } @@ -67,7 +66,7 @@ describe('moduleNameMapper', () => { it('falls back on invalid config', () => expect(act('INVALID')).toMatchInlineSnapshot(` - Object { + { "^src$": "/src", "^src/(.*)$": "/src/$1", } diff --git a/package.json b/package.json index a8e3fb6a4..4016dc9fc 100644 --- a/package.json +++ b/package.json @@ -6,11 +6,12 @@ "url": "https://github.com/seek-oss/skuba/issues" }, "dependencies": { + "@jest/types": "^29.0.0", "@octokit/graphql": "^5.0.0", "@octokit/graphql-schema": "^12.0.0", "@octokit/rest": "^19.0.0", "@octokit/types": "^7.0.0", - "@types/jest": "^28.0.0", + "@types/jest": "^29.0.0", "@types/node": ">=14.18", "chalk": "^4.1.0", "concurrently": "^7.0.0", @@ -27,8 +28,8 @@ "ignore": "^5.1.8", "is-installed-globally": "^0.4.0", "isomorphic-git": "^1.11.1", - "jest": "^28.1.0", - "jest-watch-typeahead": "^2.0.0", + "jest": "^29.0.1", + "jest-watch-typeahead": "^2.1.1", "lodash.mergewith": "^4.6.2", "normalize-package-data": "^4.0.0", "npm-run-path": "^4.0.1", @@ -44,18 +45,18 @@ "sort-package-json": "^1.57.0", "strip-ansi": "^6.0.1", "ts-dedent": "^2.2.0", - "ts-jest": "^28.0.2", + "ts-jest": "^29.0.0-next.0", "ts-node": "^10.7.0", "ts-node-dev": "^2.0.0", "tsconfig-paths": "^4.0.0", "tsconfig-seek": "1.0.2", - "typescript": "~4.8.0" + "typescript": "~4.8.2" }, "description": "SEEK development toolkit for backend applications and packages", "devDependencies": { "@changesets/cli": "2.24.3", "@changesets/get-github-info": "0.5.1", - "@jest/reporters": "28.1.3", + "@jest/reporters": "29.0.1", "@types/ejs": "3.1.1", "@types/express": "4.17.13", "@types/fs-extra": "9.0.13", diff --git a/src/api/buildkite/__snapshots__/md.test.ts.snap b/src/api/buildkite/__snapshots__/md.test.ts.snap index 5c5389410..16cfa62eb 100644 --- a/src/api/buildkite/__snapshots__/md.test.ts.snap +++ b/src/api/buildkite/__snapshots__/md.test.ts.snap @@ -8,13 +8,13 @@ exports[`terminal handles 1 backtick 1`] = ` exports[`terminal handles 3 backticks 1`] = ` "\`\`\`term -\\\\\`\\\\\`\\\\\`echo foo\\\\\`\\\\\`\\\\\` +\\\`\\\`\\\`echo foo\\\`\\\`\\\` \`\`\`" `; exports[`terminal handles 6 backticks 1`] = ` "\`\`\`term -\\\\\`\\\\\`\\\\\`\\\\\`\\\\\`\\\\\` +\\\`\\\`\\\`\\\`\\\`\\\` \`\`\`" `; diff --git a/src/api/git/commit.test.ts b/src/api/git/commit.test.ts index a2b384a28..d1cd2150c 100644 --- a/src/api/git/commit.test.ts +++ b/src/api/git/commit.test.ts @@ -21,11 +21,11 @@ describe('commit', () => { expect(jest.mocked(git.commit).mock.calls[0][0]).toMatchInlineSnapshot( { fs: expect.any(Object) }, ` - Object { - "author": Object { + { + "author": { "name": "skuba", }, - "committer": Object { + "committer": { "name": "skuba", }, "dir": "/workdir/skuba", diff --git a/src/api/git/pull.test.ts b/src/api/git/pull.test.ts index ca7700424..5c7d5bbdc 100644 --- a/src/api/git/pull.test.ts +++ b/src/api/git/pull.test.ts @@ -25,7 +25,7 @@ describe('fastForwardBranch', () => { expect(jest.mocked(git.fastForward).mock.calls[0][0]).toMatchInlineSnapshot( { http: expect.any(Object), fs: expect.any(Object) }, ` - Object { + { "dir": "/workdir/skuba", "fs": Any, "http": Any, diff --git a/src/api/git/push.test.ts b/src/api/git/push.test.ts index da8dfc018..9083310cd 100644 --- a/src/api/git/push.test.ts +++ b/src/api/git/push.test.ts @@ -37,7 +37,7 @@ describe('push', () => { expect(jest.mocked(git.push).mock.calls[0][0]).toMatchInlineSnapshot( { http: expect.any(Object), fs: expect.any(Object) }, ` - Object { + { "dir": "/workdir/skuba", "force": undefined, "fs": Any, diff --git a/src/api/github/issueComment.test.ts b/src/api/github/issueComment.test.ts index b735ade4b..6b92b2a5c 100644 --- a/src/api/github/issueComment.test.ts +++ b/src/api/github/issueComment.test.ts @@ -50,7 +50,7 @@ describe('putIssueComment', () => { expect(mockClient.issues.listComments).toHaveBeenCalledTimes(1); expect(mockClient.issues.listComments.mock.calls[0][0]) .toMatchInlineSnapshot(` - Object { + { "issue_number": 123, "owner": "seek-oss", "repo": "skuba", @@ -60,7 +60,7 @@ describe('putIssueComment', () => { expect(mockClient.issues.createComment).toHaveBeenCalledTimes(1); expect(mockClient.issues.createComment.mock.calls[0][0]) .toMatchInlineSnapshot(` - Object { + { "body": "Commentary!", "issue_number": 123, "owner": "seek-oss", @@ -120,7 +120,7 @@ describe('putIssueComment', () => { expect( mockClient.repos.listPullRequestsAssociatedWithCommit.mock.calls[0][0], ).toMatchInlineSnapshot(` - Object { + { "commit_sha": "commit-id", "owner": "seek-oss", "repo": "skuba", @@ -130,7 +130,7 @@ describe('putIssueComment', () => { expect(mockClient.issues.listComments).toHaveBeenCalledTimes(1); expect(mockClient.issues.listComments.mock.calls[0][0]) .toMatchInlineSnapshot(` - Object { + { "issue_number": 123, "owner": "seek-oss", "repo": "skuba", @@ -140,7 +140,7 @@ describe('putIssueComment', () => { expect(mockClient.issues.createComment).toHaveBeenCalledTimes(1); expect(mockClient.issues.createComment.mock.calls[0][0]) .toMatchInlineSnapshot(` - Object { + { "body": "Commentary!", "issue_number": 123, "owner": "seek-oss", @@ -183,7 +183,7 @@ describe('putIssueComment', () => { expect(mockClient.issues.listComments).toHaveBeenCalledTimes(1); expect(mockClient.issues.listComments.mock.calls[0][0]) .toMatchInlineSnapshot(` - Object { + { "issue_number": 123, "owner": "seek-oss", "repo": "skuba", @@ -193,7 +193,7 @@ describe('putIssueComment', () => { expect(mockClient.issues.createComment).toHaveBeenCalledTimes(1); expect(mockClient.issues.createComment.mock.calls[0][0]) .toMatchInlineSnapshot(` - Object { + { "body": "Commentary! ", @@ -245,7 +245,7 @@ describe('putIssueComment', () => { expect(mockClient.issues.listComments).toHaveBeenCalledTimes(1); expect(mockClient.issues.listComments.mock.calls[0][0]) .toMatchInlineSnapshot(` - Object { + { "issue_number": 123, "owner": "seek-oss", "repo": "skuba", @@ -255,7 +255,7 @@ describe('putIssueComment', () => { expect(mockClient.issues.updateComment).toHaveBeenCalledTimes(1); expect(mockClient.issues.updateComment.mock.calls[0][0]) .toMatchInlineSnapshot(` - Object { + { "body": "Commentary!", "comment_id": 111, "issue_number": 123, @@ -308,7 +308,7 @@ describe('putIssueComment', () => { expect(mockClient.issues.listComments).toHaveBeenCalledTimes(1); expect(mockClient.issues.listComments.mock.calls[0][0]) .toMatchInlineSnapshot(` - Object { + { "issue_number": 123, "owner": "seek-oss", "repo": "skuba", @@ -318,7 +318,7 @@ describe('putIssueComment', () => { expect(mockClient.issues.updateComment).toHaveBeenCalledTimes(1); expect(mockClient.issues.updateComment.mock.calls[0][0]) .toMatchInlineSnapshot(` - Object { + { "body": "Commentary! ", diff --git a/src/api/github/pullRequest.test.ts b/src/api/github/pullRequest.test.ts index 7d2571716..584e63231 100644 --- a/src/api/github/pullRequest.test.ts +++ b/src/api/github/pullRequest.test.ts @@ -89,7 +89,7 @@ describe('getPullRequestNumber', () => { expect( mockClient.repos.listPullRequestsAssociatedWithCommit.mock.calls[0][0], ).toMatchInlineSnapshot(` - Object { + { "commit_sha": "commit-id", "owner": "seek-oss", "repo": "skuba", diff --git a/src/api/github/push.test.ts b/src/api/github/push.test.ts index 5404255ce..479d4a892 100644 --- a/src/api/github/push.test.ts +++ b/src/api/github/push.test.ts @@ -79,7 +79,7 @@ describe('uploadFileChanges', () => { }); expect(jest.mocked(graphql).mock.calls[0]).toMatchInlineSnapshot(` - Array [ + [ " mutation Mutation($input: CreateCommitOnBranchInput!) { createCommitOnBranch(input: $input) { @@ -89,31 +89,31 @@ describe('uploadFileChanges', () => { } } ", - Object { - "headers": Object { + { + "headers": { "authorization": "Bearer api-token", }, - "input": Object { - "branch": Object { + "input": { + "branch": { "branchName": "existing-branch", "repositoryNameWithOwner": "seek-oss/skuba", }, "clientMutationId": "skuba", "expectedHeadOid": "commit-id", - "fileChanges": Object { - "additions": Array [ - Object { + "fileChanges": { + "additions": [ + { "contents": "", "path": "another-path", }, ], - "deletions": Array [ - Object { + "deletions": [ + { "path": "some-path", }, ], }, - "message": Object { + "message": { "body": "commit body", "headline": "commit headline", }, @@ -193,7 +193,7 @@ describe('uploadAllFileChanges', () => { }); expect(jest.mocked(graphql).mock.calls[0]).toMatchInlineSnapshot(` - Array [ + [ " mutation Mutation($input: CreateCommitOnBranchInput!) { createCommitOnBranch(input: $input) { @@ -203,35 +203,35 @@ describe('uploadAllFileChanges', () => { } } ", - Object { - "headers": Object { + { + "headers": { "authorization": "Bearer api-token", }, - "input": Object { - "branch": Object { + "input": { + "branch": { "branchName": "existing-branch", "repositoryNameWithOwner": "seek-oss/skuba", }, "clientMutationId": "skuba", "expectedHeadOid": "commit-id", - "fileChanges": Object { - "additions": Array [ - Object { + "fileChanges": { + "additions": [ + { "contents": "base64-contents", "path": "modified-file", }, - Object { + { "contents": "base64-contents", "path": "new-file", }, ], - "deletions": Array [ - Object { + "deletions": [ + { "path": "deleted-file", }, ], }, - "message": Object { + "message": { "body": "commit body", "headline": "commit headline", }, diff --git a/src/api/jest/index.ts b/src/api/jest/index.ts index 3cb6f217c..2bc854f9e 100644 --- a/src/api/jest/index.ts +++ b/src/api/jest/index.ts @@ -12,7 +12,6 @@ import { mergeRaw } from '../../cli/configure/processing/record'; type DefaultOptions = | 'collectCoverage' | 'collectCoverageFrom' - | 'collectCoverageOnlyFrom' | 'coveragePathIgnorePatterns' | 'coverageThreshold' | 'displayName' diff --git a/src/cli/__snapshots__/format.int.test.ts.snap b/src/cli/__snapshots__/format.int.test.ts.snap index 7044484c0..1aec74014 100644 --- a/src/cli/__snapshots__/format.int.test.ts.snap +++ b/src/cli/__snapshots__/format.int.test.ts.snap @@ -36,7 +36,7 @@ b.md c.json ------ @@ -2,3 +2,3 @@ - \\"key\\": \\"value\\" + "key": "value" - } + } diff --git a/src/cli/__snapshots__/lint.int.test.ts.snap b/src/cli/__snapshots__/lint.int.test.ts.snap index 1941111c2..9f091703d 100644 --- a/src/cli/__snapshots__/lint.int.test.ts.snap +++ b/src/cli/__snapshots__/lint.int.test.ts.snap @@ -23,7 +23,7 @@ ESLint, Prettier found issues that require triage. `; exports[`fixable 2`] = ` -Array [ +[ " Options: { context: 'skuba-lint-external', @@ -125,7 +125,7 @@ tsc │ tsc --extendedDiagnostics --noEmit exited with code 0 " `; -exports[`ok --debug 2`] = `Array []`; +exports[`ok --debug 2`] = `[]`; exports[`ok 1`] = ` " @@ -136,7 +136,7 @@ tsc │ tsc --noEmit exited with code 0 " `; -exports[`ok 2`] = `Array []`; +exports[`ok 2`] = `[]`; exports[`unfixable 1`] = ` " @@ -168,7 +168,7 @@ ESLint, Prettier, tsc found issues that require triage. `; exports[`unfixable 2`] = ` -Array [ +[ " Options: { context: 'skuba-lint-external', diff --git a/src/cli/configure/analysis/__snapshots__/project.test.ts.snap b/src/cli/configure/analysis/__snapshots__/project.test.ts.snap index af8d14284..80de2891f 100644 --- a/src/cli/configure/analysis/__snapshots__/project.test.ts.snap +++ b/src/cli/configure/analysis/__snapshots__/project.test.ts.snap @@ -1,8 +1,8 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`diffFiles works from scratch 1`] = ` -Object { - ".dockerignore": Object { +{ + ".dockerignore": { "data": "# managed by skuba .gantry/ .git/ @@ -24,7 +24,7 @@ yarn-error.log ", "operation": "A", }, - ".eslintignore": Object { + ".eslintignore": { "data": "# managed by skuba .idea/* .vscode/* @@ -41,21 +41,21 @@ node_modules*/ ", "operation": "A", }, - ".eslintrc.js": Object { + ".eslintrc.js": { "data": "module.exports = { extends: ['skuba'], }; ", "operation": "A", }, - ".github/renovate.json5": Object { + ".github/renovate.json5": { "data": "{ extends: ['github>seek-oss/rynovate'], } ", "operation": "A", }, - ".gitignore": Object { + ".gitignore": { "data": "# managed by skuba .idea/* .vscode/* @@ -82,7 +82,7 @@ yarn-error.log ", "operation": "A", }, - ".prettierignore": Object { + ".prettierignore": { "data": "# managed by skuba .idea/* .vscode/* @@ -105,12 +105,12 @@ gantry*.yml ", "operation": "A", }, - ".prettierrc.js": Object { + ".prettierrc.js": { "data": "module.exports = require('skuba/config/prettier'); ", "operation": "A", }, - "jest.config.ts": Object { + "jest.config.ts": { "data": "import { Jest } from 'skuba'; export default Jest.mergePreset({ @@ -130,59 +130,59 @@ export default Jest.mergePreset({ }, }, setupFiles: ['/jest.setup.ts'], - testPathIgnorePatterns: ['/test\\\\\\\\.ts'], + testPathIgnorePatterns: ['/test\\\\.ts'], }); ", "operation": "A", }, - "jest.setup.ts": Object { + "jest.setup.ts": { "data": "process.env.ENVIRONMENT = 'test'; ", "operation": "A", }, - "package.json": Object { + "package.json": { "data": "{ - \\"private\\": true, - \\"license\\": \\"UNLICENSED\\", - \\"scripts\\": { - \\"build\\": \\"skuba build\\", - \\"format\\": \\"skuba format\\", - \\"lint\\": \\"skuba lint\\", - \\"start\\": \\"skuba start\\", - \\"test\\": \\"skuba test --coverage\\", - \\"test:watch\\": \\"skuba test --watch\\" - }, - \\"skuba\\": { - \\"entryPoint\\": \\"src/app.ts\\", - \\"template\\": null, - \\"type\\": \\"application\\", - \\"version\\": \\"0.0.0-semantically-released\\" + "private": true, + "license": "UNLICENSED", + "scripts": { + "build": "skuba build", + "format": "skuba format", + "lint": "skuba lint", + "start": "skuba start", + "test": "skuba test --coverage", + "test:watch": "skuba test --watch" + }, + "skuba": { + "entryPoint": "src/app.ts", + "template": null, + "type": "application", + "version": "0.0.0-semantically-released" } } ", "operation": "A", }, - "tsconfig.build.json": Object { + "tsconfig.build.json": { "data": "{ - \\"exclude\\": [\\"**/__mocks__/**/*\\", \\"**/*.test.ts\\", \\"src/testing/**/*\\"], - \\"extends\\": \\"./tsconfig.json\\", - \\"include\\": [\\"src/**/*\\"] + "exclude": ["**/__mocks__/**/*", "**/*.test.ts", "src/testing/**/*"], + "extends": "./tsconfig.json", + "include": ["src/**/*"] } ", "operation": "A", }, - "tsconfig.json": Object { + "tsconfig.json": { "data": "{ - \\"compilerOptions\\": { - \\"baseUrl\\": \\".\\", - \\"lib\\": [\\"ES2020\\"], - \\"outDir\\": \\"lib\\", - \\"paths\\": { - \\"src\\": [\\"src\\"] + "compilerOptions": { + "baseUrl": ".", + "lib": ["ES2020"], + "outDir": "lib", + "paths": { + "src": ["src"] } }, - \\"exclude\\": [\\"lib*/**/*\\"], - \\"extends\\": \\"skuba/config/tsconfig.json\\" + "exclude": ["lib*/**/*"], + "extends": "skuba/config/tsconfig.json" } ", "operation": "A", diff --git a/src/cli/configure/modules/tsconfig.test.ts b/src/cli/configure/modules/tsconfig.test.ts index 1368926b8..a1d00cf1a 100644 --- a/src/cli/configure/modules/tsconfig.test.ts +++ b/src/cli/configure/modules/tsconfig.test.ts @@ -137,18 +137,18 @@ CMD ["dist/listen.js"] ); expect(outputFiles.Dockerfile).toMatchInlineSnapshot(` -" -ARG DIR lib + " + ARG DIR lib -RUN echo redist + RUN echo redist -FROM gcr.io/distroless/nodejs:16 AS runtime + FROM gcr.io/distroless/nodejs:16 AS runtime -COPY --from=build /workdir/lib './lib' + COPY --from=build /workdir/lib './lib' -CMD [\\"lib/listen.js\\"] -" -`); + CMD ["lib/listen.js"] + " + `); const outputData = parseObject( outputFiles['tsconfig.json'], diff --git a/src/cli/configure/processing/json.test.ts b/src/cli/configure/processing/json.test.ts index 2eaf93d43..4a5fc22ce 100644 --- a/src/cli/configure/processing/json.test.ts +++ b/src/cli/configure/processing/json.test.ts @@ -10,9 +10,9 @@ describe('formatObject', () => { }), ).toMatchInlineSnapshot(` "{ - \\"a\\": null, - \\"b\\": 1, - \\"c\\": [] + "a": null, + "b": 1, + "c": [] } " `)); @@ -20,7 +20,7 @@ describe('formatObject', () => { it('handles ordinary JSON array formatting', () => expect(formatObject({ files: ['1', '2', '3'] })).toMatchInlineSnapshot(` "{ - \\"files\\": [\\"1\\", \\"2\\", \\"3\\"] + "files": ["1", "2", "3"] } " `)); @@ -29,10 +29,10 @@ describe('formatObject', () => { expect(formatObject({ files: ['1', '2', '3'] }, 'package.json')) .toMatchInlineSnapshot(` "{ - \\"files\\": [ - \\"1\\", - \\"2\\", - \\"3\\" + "files": [ + "1", + "2", + "3" ] } " diff --git a/src/cli/configure/processing/package.test.ts b/src/cli/configure/processing/package.test.ts index 25903af62..a93f34efd 100644 --- a/src/cli/configure/processing/package.test.ts +++ b/src/cli/configure/processing/package.test.ts @@ -12,6 +12,7 @@ describe('createDependencyFilter', () => { b: '0.0.1', c: '0.0.1', }, + devDependencies: { a: '0.0.1', b: '0.0.1', @@ -19,13 +20,13 @@ describe('createDependencyFilter', () => { }, }), ).toMatchInlineSnapshot(` - Object { - "dependencies": Object { + { + "dependencies": { "a": "0.0.1", "b": "0.0.1", "c": "0.0.1", }, - "devDependencies": Object { + "devDependencies": { "b": "0.0.1", }, } @@ -42,6 +43,7 @@ describe('createDependencyFilter', () => { b: '0.0.1', c: '0.0.1', }, + devDependencies: { a: '0.0.1', b: '0.0.1', @@ -49,12 +51,12 @@ describe('createDependencyFilter', () => { }, }), ).toMatchInlineSnapshot(` - Object { - "dependencies": Object { + { + "dependencies": { "a": "0.0.1", "c": "0.0.1", }, - "devDependencies": Object { + "devDependencies": { "a": "0.0.1", "b": "0.0.1", "c": "0.0.1", @@ -73,7 +75,7 @@ describe('withPackage', () => { })('{}'), ).toMatchInlineSnapshot(` "{ - \\"$name\\": \\"unit-test\\" + "$name": "unit-test" } " `)); @@ -94,11 +96,11 @@ describe('withPackage', () => { ), ).toMatchInlineSnapshot(` "{ - \\"name\\": \\"my-package\\", - \\"version\\": \\"0.1.0\\", - \\"description\\": \\"My Package\\", - \\"$name\\": \\"unit-test\\", - \\"readme\\": \\"https://github.com/my-org/my-package#readme\\" + "name": "my-package", + "version": "0.1.0", + "description": "My Package", + "$name": "unit-test", + "readme": "https://github.com/my-org/my-package#readme" } " `)); @@ -115,50 +117,54 @@ describe('withPackage', () => { '@types/koa-bodyparser': '^5.0.2', '@types/koa': '^2.13.4', }, + dependencies: { b: '2', a: '1', }, + scripts: { lint: 'echo Linting', prelint: 'echo Prepare for lint-off', prebuild: 'rm -rf system32', build: 'npm install freebsd', }, + skuba: { version: '1.0.0', type: 'application', }, + files: ['b', 'a'], }), ), ).toMatchInlineSnapshot(` "{ - \\"files\\": [ - \\"b\\", - \\"a\\" + "files": [ + "b", + "a" ], - \\"scripts\\": { - \\"prebuild\\": \\"rm -rf system32\\", - \\"build\\": \\"npm install freebsd\\", - \\"prelint\\": \\"echo Prepare for lint-off\\", - \\"lint\\": \\"echo Linting\\" + "scripts": { + "prebuild": "rm -rf system32", + "build": "npm install freebsd", + "prelint": "echo Prepare for lint-off", + "lint": "echo Linting" }, - \\"dependencies\\": { - \\"a\\": \\"1\\", - \\"b\\": \\"2\\" + "dependencies": { + "a": "1", + "b": "2" }, - \\"devDependencies\\": { - \\"@types/koa\\": \\"^2.13.4\\", - \\"@types/koa-bodyparser\\": \\"^5.0.2\\", - \\"@types/koa__router\\": \\"^8.0.8\\", - \\"c\\": \\"3\\", - \\"d\\": \\"4\\", - \\"e\\": \\"5\\" + "devDependencies": { + "@types/koa": "^2.13.4", + "@types/koa-bodyparser": "^5.0.2", + "@types/koa__router": "^8.0.8", + "c": "3", + "d": "4", + "e": "5" }, - \\"skuba\\": { - \\"version\\": \\"1.0.0\\", - \\"type\\": \\"application\\" + "skuba": { + "version": "1.0.0", + "type": "application" } } " @@ -173,7 +179,7 @@ describe('withPackage', () => { })('}'), ).toMatchInlineSnapshot(` "{ - \\"$name\\": \\"unit-test\\" + "$name": "unit-test" } " `)); diff --git a/src/cli/init/writePackageJson.test.ts b/src/cli/init/writePackageJson.test.ts index e0fe6bfc1..410585926 100644 --- a/src/cli/init/writePackageJson.test.ts +++ b/src/cli/init/writePackageJson.test.ts @@ -32,15 +32,15 @@ describe('writePackageJson', () => { ).resolves.toBeUndefined(); expect(writeFile.mock.calls).toMatchInlineSnapshot(` - Array [ - Array [ + [ + [ "/package.json", "{ - \\"skuba\\": { - \\"entryPoint\\": \\"src/app.ts\\", - \\"template\\": \\"hello-world\\", - \\"type\\": \\"package\\", - \\"version\\": \\"0.0.1\\" + "skuba": { + "entryPoint": "src/app.ts", + "template": "hello-world", + "type": "package", + "version": "0.0.1" } } ", diff --git a/src/cli/test/reporters/github/annotations.test.ts b/src/cli/test/reporters/github/annotations.test.ts index c1796897b..d05a00498 100644 --- a/src/cli/test/reporters/github/annotations.test.ts +++ b/src/cli/test/reporters/github/annotations.test.ts @@ -66,15 +66,15 @@ it('should create annotation from Jest test failure', () => { const annotations = createAnnotations([testResult]); expect(annotations).toMatchInlineSnapshot(` - Array [ - Object { + [ + { "annotation_level": "failure", "end_column": 15, "end_line": 2, "message": "Error: expect(received).toBe(expected) // Object.is equality - Expected: \\"a\\" - Received: \\"b\\" + Expected: "a" + Received: "b" at Object. (/workdir/skuba/src/test.test.ts:2:15) at Promise.then.completed (/workdir/skuba/node_modules/jest-circus/build/utils.js:390:28) at new Promise () @@ -123,13 +123,13 @@ it('should create annotation from Jest timeout', () => { const annotations = createAnnotations([testResult]); expect(annotations).toMatchInlineSnapshot(` - Array [ - Object { + [ + { "annotation_level": "failure", "end_column": 6, "end_line": 55, - "message": "Error: thrown: \\"Exceeded timeout of 5000 ms for a test. - Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test.\\" + "message": "Error: thrown: "Exceeded timeout of 5000 ms for a test. + Use jest.setTimeout(newTimeout) to increase the timeout value, if this is a long-running test." at /workdir/skuba/src/test.test.ts:55:6 at _dispatchDescribe (/workdir/skuba/node_modules/jest-circus/build/index.js:98:26) at describe (/workdir/skuba/node_modules/jest-circus/build/index.js:60:5) @@ -174,8 +174,8 @@ it('should create annotation from Jest exec error', () => { const annotations = createAnnotations([testResult]); expect(annotations).toMatchInlineSnapshot(` - Array [ - Object { + [ + { "annotation_level": "failure", "end_line": 1, "message": " ● Test suite failed to run @@ -205,8 +205,8 @@ it('should create annotation from Jest exec error', () => { testResultWithoutFailureMessage, ]); expect(annotationsForNoFailureMessage).toMatchInlineSnapshot(` - Array [ - Object { + [ + { "annotation_level": "failure", "end_line": 1, "message": "src/test.ts:1:1 - error TS6133: 'a' is declared but its value is never read. diff --git a/src/cli/test/reporters/github/index.test.ts b/src/cli/test/reporters/github/index.test.ts index a5e717baa..2a4c3ec0e 100644 --- a/src/cli/test/reporters/github/index.test.ts +++ b/src/cli/test/reporters/github/index.test.ts @@ -397,7 +397,7 @@ it('should log a warning when it fails to create annotations', async () => { Error: Badness! at Object.... Last request: - {\\"name\\":\\"skuba/test\\",\\"annotations\\":[{\\"annotation_level\\":\\"failure\\",\\"path\\":\\"src/test.test.ts\\",\\"start_line\\":2,\\"end_line\\":2,\\"start_column\\":15,\\"end_column\\":15,\\"message\\":\\"Error: expect(received).toBe(expected) // Object.is equality\\\\n\\\\nExpected: \\\\\\"a\\\\\\"\\\\nReceived: \\\\\\"b\\\\\\"\\\\n at Object. (/workdir/skuba/src/test.test.ts:2:15)\\\\n at Promise.then.completed (/workdir/skuba/node_modules/jest-circus/build/utils.js:390:28)\\\\n at new Promise ()\\\\n at callAsyncCircusFn (/workdir/skuba/node_modules/jest-circus/build/utils.js:315:10)\\\\n at _callCircusTest (/workdir/skuba/node_modules/jest-circus/build/run.js:218:40)\\\\n at processTicksAndRejections (node:internal/process/task_queues:96:5)\\\\n at _runTest (/workdir/skuba/node_modules/jest-circus/build/run.js:155:3)\\\\n at _runTestsForDescribeBlock (/workdir/skuba/node_modules/jest-circus/build/run.js:66:9)\\\\n at run (/workdir/skuba/node_modules/jest-circus/build/run.js:25:3)\\\\n at runAndTransformResultsToJestFormat (/workdir/skuba/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:167:21)\\",\\"title\\":\\"Jest\\"}],\\"conclusion\\":\\"failure\\",\\"summary\\":\\"\`skuba test\` found issues that require triage.\\",\\"title\\":\\"Test #123 failed\\"} + {"name":"skuba/test","annotations":[{"annotation_level":"failure","path":"src/test.test.ts","start_line":2,"end_line":2,"start_column":15,"end_column":15,"message":"Error: expect(received).toBe(expected) // Object.is equality\\n\\nExpected: \\"a\\"\\nReceived: \\"b\\"\\n at Object. (/workdir/skuba/src/test.test.ts:2:15)\\n at Promise.then.completed (/workdir/skuba/node_modules/jest-circus/build/utils.js:390:28)\\n at new Promise ()\\n at callAsyncCircusFn (/workdir/skuba/node_modules/jest-circus/build/utils.js:315:10)\\n at _callCircusTest (/workdir/skuba/node_modules/jest-circus/build/run.js:218:40)\\n at processTicksAndRejections (node:internal/process/task_queues:96:5)\\n at _runTest (/workdir/skuba/node_modules/jest-circus/build/run.js:155:3)\\n at _runTestsForDescribeBlock (/workdir/skuba/node_modules/jest-circus/build/run.js:66:9)\\n at run (/workdir/skuba/node_modules/jest-circus/build/run.js:25:3)\\n at runAndTransformResultsToJestFormat (/workdir/skuba/node_modules/jest-circus/build/legacy-code-todo-rewrite/jestAdapterInit.js:167:21)","title":"Jest"}],"conclusion":"failure","summary":"\`skuba test\` found issues that require triage.","title":"Test #123 failed"} " `); }); diff --git a/src/utils/dir.test.ts b/src/utils/dir.test.ts index fe53b8210..14a781d60 100644 --- a/src/utils/dir.test.ts +++ b/src/utils/dir.test.ts @@ -15,16 +15,16 @@ describe('buildPatternToFilepathMap', () => { ['file.txt', 'a/file.txt', 'a/b/file.txt', 'file.unrelated'], ), ).toMatchInlineSnapshot(` - Object { - "**/file.txt": Array [ + { + "**/file.txt": [ "file.txt", "a/file.txt", "a/b/file.txt", ], - "*/file.txt": Array [ + "*/file.txt": [ "a/file.txt", ], - "file.txt": Array [ + "file.txt": [ "file.txt", ], } @@ -37,19 +37,19 @@ describe('buildPatternToFilepathMap', () => { ['a.md', 'a.ts', 'b.md', 'bs.md', 'b.s.md', 'b.ts', 'b.unrelated'], ), ).toMatchInlineSnapshot(` - Object { - "*.md": Array [ + { + "*.md": [ "a.md", "b.md", "bs.md", "b.s.md", ], - "*.txt": Array [], - "a.*": Array [ + "*.txt": [], + "a.*": [ "a.md", "a.ts", ], - "b*.md": Array [ + "b*.md": [ "b.md", "bs.md", "b.s.md", diff --git a/src/wrapper/main.test.ts b/src/wrapper/main.test.ts index aa99cb152..91412aedb 100644 --- a/src/wrapper/main.test.ts +++ b/src/wrapper/main.test.ts @@ -34,9 +34,9 @@ test('asyncFunctionHandler', async () => { .expect(200) .expect(({ body }) => expect(body).toMatchInlineSnapshot(` - Object { + { "awsRequestId": "123", - "event": Object { + "event": { "id": 1, }, "msg": "Processed event", @@ -52,7 +52,7 @@ test('asyncFunctionHandler', async () => { expect(body).toMatchInlineSnapshot( { stack: expect.any(String) }, ` - Object { + { "message": "falsy event", "name": "Error", "stack": Any, @@ -140,7 +140,7 @@ test('syncFunctionHandler', async () => { expect(body).toMatchInlineSnapshot( { stack: expect.any(String) }, ` - Object { + { "message": "Unexpected token I in JSON at position 0", "name": "SyntaxError", "stack": Any, diff --git a/template/koa-rest-api/src/api/jobs/postJob.test.ts b/template/koa-rest-api/src/api/jobs/postJob.test.ts index e9af0761a..77f2b33ca 100644 --- a/template/koa-rest-api/src/api/jobs/postJob.test.ts +++ b/template/koa-rest-api/src/api/jobs/postJob.test.ts @@ -29,7 +29,7 @@ describe('postJobHandler', () => { expect(text).toMatchInlineSnapshot(` "Validation failed: { - \\"hirer\\": \\"Expected { id: string; }, but was missing\\" + "hirer": "Expected { id: string; }, but was missing" }. Object should match { hirer: { id: string; }; }" `), diff --git a/template/koa-rest-api/src/framework/validation.test.ts b/template/koa-rest-api/src/framework/validation.test.ts index 976237e74..3071141b7 100644 --- a/template/koa-rest-api/src/framework/validation.test.ts +++ b/template/koa-rest-api/src/framework/validation.test.ts @@ -45,7 +45,7 @@ describe('validate', () => { expect(text).toMatchInlineSnapshot(` "Validation failed: { - \\"id\\": \\"Expected string, but was null\\" + "id": "Expected string, but was null" }. Object should match { id: string; description: string; }" `), @@ -61,8 +61,8 @@ describe('validate', () => { expect(text).toMatchInlineSnapshot(` "Validation failed: { - \\"id\\": \\"Expected string, but was missing\\", - \\"description\\": \\"Expected string, but was missing\\" + "id": "Expected string, but was missing", + "description": "Expected string, but was missing" }. Object should match { id: string; description: string; }" `), diff --git a/template/lambda-sqs-worker-cdk/infra/__snapshots__/appStack.test.ts.snap b/template/lambda-sqs-worker-cdk/infra/__snapshots__/appStack.test.ts.snap index bb877f143..e5ebfb5ac 100644 --- a/template/lambda-sqs-worker-cdk/infra/__snapshots__/appStack.test.ts.snap +++ b/template/lambda-sqs-worker-cdk/infra/__snapshots__/appStack.test.ts.snap @@ -1,29 +1,29 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`returns expected CloudFormation stack for dev 1`] = ` -Object { - "Resources": Object { - "kmskey49FBC3B3": Object { +{ + "Resources": { + "kmskey49FBC3B3": { "DeletionPolicy": "Retain", - "Properties": Object { + "Properties": { "Description": "serviceName", "EnableKeyRotation": true, - "KeyPolicy": Object { - "Statement": Array [ - Object { + "KeyPolicy": { + "Statement": [ + { "Action": "kms:*", "Effect": "Allow", - "Principal": Object { - "AWS": Object { - "Fn::Join": Array [ + "Principal": { + "AWS": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::", - Object { + { "Ref": "AWS::AccountId", }, ":root", @@ -33,8 +33,8 @@ Object { }, "Resource": "*", }, - Object { - "Action": Array [ + { + "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", @@ -51,17 +51,17 @@ Object { "kms:CancelKeyDeletion", ], "Effect": "Allow", - "Principal": Object { - "AWS": Object { - "Fn::Join": Array [ + "Principal": { + "AWS": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::", - Object { + { "Ref": "AWS::AccountId", }, ":root", @@ -71,24 +71,24 @@ Object { }, "Resource": "*", }, - Object { - "Action": Array [ + { + "Action": [ "kms:Encrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", ], "Effect": "Allow", - "Principal": Object { - "AWS": Object { - "Fn::Join": Array [ + "Principal": { + "AWS": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::", - Object { + { "Ref": "AWS::AccountId", }, ":root", @@ -98,13 +98,13 @@ Object { }, "Resource": "*", }, - Object { - "Action": Array [ + { + "Action": [ "kms:Decrypt", "kms:GenerateDataKey", ], "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "sns.amazonaws.com", }, "Resource": "*", @@ -116,11 +116,11 @@ Object { "Type": "AWS::KMS::Key", "UpdateReplacePolicy": "Retain", }, - "kmskeyAlias39245779": Object { - "Properties": Object { + "kmskeyAlias39245779": { + "Properties": { "AliasName": "alias/seek/self/serviceName", - "TargetKeyId": Object { - "Fn::GetAtt": Array [ + "TargetKeyId": { + "Fn::GetAtt": [ "kmskey49FBC3B3", "Arn", ], @@ -128,10 +128,10 @@ Object { }, "Type": "AWS::KMS::Alias", }, - "topic69831491": Object { - "Properties": Object { - "KmsMasterKeyId": Object { - "Fn::GetAtt": Array [ + "topic69831491": { + "Properties": { + "KmsMasterKeyId": { + "Fn::GetAtt": [ "kmskey49FBC3B3", "Arn", ], @@ -140,23 +140,23 @@ Object { }, "Type": "AWS::SNS::Topic", }, - "worker28EA3E30": Object { - "DependsOn": Array [ + "worker28EA3E30": { + "DependsOn": [ "workerServiceRoleDefaultPolicyBA498553", "workerServiceRole2130CC7F", ], - "Properties": Object { - "Architectures": Array [ + "Properties": { + "Architectures": [ "arm64", ], - "Code": Object { - "S3Bucket": Object { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.zip", }, - "Environment": Object { - "Variables": Object { + "Environment": { + "Variables": { "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", "NODE_ENV": "production", "NODE_OPTIONS": "--enable-source-maps", @@ -165,14 +165,14 @@ Object { }, "FunctionName": "serviceName", "Handler": "app.handler", - "KmsKeyArn": Object { - "Fn::GetAtt": Array [ + "KmsKeyArn": { + "Fn::GetAtt": [ "kmskey49FBC3B3", "Arn", ], }, - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "workerServiceRole2130CC7F", "Arn", ], @@ -181,27 +181,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "workerServiceRole2130CC7F": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "workerServiceRole2130CC7F": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -212,12 +212,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "workerServiceRoleDefaultPolicyBA498553": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "workerServiceRoleDefaultPolicyBA498553": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "sqs:ReceiveMessage", "sqs:ChangeMessageVisibility", "sqs:GetQueueUrl", @@ -225,18 +225,18 @@ Object { "sqs:GetQueueAttributes", ], "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ + "Resource": { + "Fn::GetAtt": [ "workerqueueA05CE5C6", "Arn", ], }, }, - Object { + { "Action": "kms:Decrypt", "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ + "Resource": { + "Fn::GetAtt": [ "kmskey49FBC3B3", "Arn", ], @@ -246,41 +246,41 @@ Object { "Version": "2012-10-17", }, "PolicyName": "workerServiceRoleDefaultPolicyBA498553", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "workerServiceRole2130CC7F", }, ], }, "Type": "AWS::IAM::Policy", }, - "workerSqsEventSourceappStackworkerqueue8281B9F47B9F582B": Object { - "Properties": Object { - "EventSourceArn": Object { - "Fn::GetAtt": Array [ + "workerSqsEventSourceappStackworkerqueue8281B9F47B9F582B": { + "Properties": { + "EventSourceArn": { + "Fn::GetAtt": [ "workerqueueA05CE5C6", "Arn", ], }, - "FunctionName": Object { + "FunctionName": { "Ref": "worker28EA3E30", }, }, "Type": "AWS::Lambda::EventSourceMapping", }, - "workerqueueA05CE5C6": Object { + "workerqueueA05CE5C6": { "DeletionPolicy": "Delete", - "Properties": Object { - "KmsMasterKeyId": Object { - "Fn::GetAtt": Array [ + "Properties": { + "KmsMasterKeyId": { + "Fn::GetAtt": [ "kmskey49FBC3B3", "Arn", ], }, "QueueName": "serviceName", - "RedrivePolicy": Object { - "deadLetterTargetArn": Object { - "Fn::GetAtt": Array [ + "RedrivePolicy": { + "deadLetterTargetArn": { + "Fn::GetAtt": [ "workerqueuedlq42262778", "Arn", ], @@ -291,25 +291,25 @@ Object { "Type": "AWS::SQS::Queue", "UpdateReplacePolicy": "Delete", }, - "workerqueuePolicy97054CB4": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "workerqueuePolicy97054CB4": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "sqs:SendMessage", - "Condition": Object { - "ArnEquals": Object { - "aws:SourceArn": Object { + "Condition": { + "ArnEquals": { + "aws:SourceArn": { "Ref": "topic69831491", }, }, }, "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "sns.amazonaws.com", }, - "Resource": Object { - "Fn::GetAtt": Array [ + "Resource": { + "Fn::GetAtt": [ "workerqueueA05CE5C6", "Arn", ], @@ -318,34 +318,34 @@ Object { ], "Version": "2012-10-17", }, - "Queues": Array [ - Object { + "Queues": [ + { "Ref": "workerqueueA05CE5C6", }, ], }, "Type": "AWS::SQS::QueuePolicy", }, - "workerqueueappStacktopic0CA45134AFB31FF4": Object { - "Properties": Object { - "Endpoint": Object { - "Fn::GetAtt": Array [ + "workerqueueappStacktopic0CA45134AFB31FF4": { + "Properties": { + "Endpoint": { + "Fn::GetAtt": [ "workerqueueA05CE5C6", "Arn", ], }, "Protocol": "sqs", - "TopicArn": Object { + "TopicArn": { "Ref": "topic69831491", }, }, "Type": "AWS::SNS::Subscription", }, - "workerqueuedlq42262778": Object { + "workerqueuedlq42262778": { "DeletionPolicy": "Delete", - "Properties": Object { - "KmsMasterKeyId": Object { - "Fn::GetAtt": Array [ + "Properties": { + "KmsMasterKeyId": { + "Fn::GetAtt": [ "kmskey49FBC3B3", "Arn", ], @@ -360,29 +360,29 @@ Object { `; exports[`returns expected CloudFormation stack for prod 1`] = ` -Object { - "Resources": Object { - "kmskey49FBC3B3": Object { +{ + "Resources": { + "kmskey49FBC3B3": { "DeletionPolicy": "Retain", - "Properties": Object { + "Properties": { "Description": "serviceName", "EnableKeyRotation": true, - "KeyPolicy": Object { - "Statement": Array [ - Object { + "KeyPolicy": { + "Statement": [ + { "Action": "kms:*", "Effect": "Allow", - "Principal": Object { - "AWS": Object { - "Fn::Join": Array [ + "Principal": { + "AWS": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::", - Object { + { "Ref": "AWS::AccountId", }, ":root", @@ -392,8 +392,8 @@ Object { }, "Resource": "*", }, - Object { - "Action": Array [ + { + "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", @@ -410,17 +410,17 @@ Object { "kms:CancelKeyDeletion", ], "Effect": "Allow", - "Principal": Object { - "AWS": Object { - "Fn::Join": Array [ + "Principal": { + "AWS": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::", - Object { + { "Ref": "AWS::AccountId", }, ":root", @@ -430,24 +430,24 @@ Object { }, "Resource": "*", }, - Object { - "Action": Array [ + { + "Action": [ "kms:Encrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", ], "Effect": "Allow", - "Principal": Object { - "AWS": Object { - "Fn::Join": Array [ + "Principal": { + "AWS": { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::", - Object { + { "Ref": "AWS::AccountId", }, ":root", @@ -457,13 +457,13 @@ Object { }, "Resource": "*", }, - Object { - "Action": Array [ + { + "Action": [ "kms:Decrypt", "kms:GenerateDataKey", ], "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "sns.amazonaws.com", }, "Resource": "*", @@ -475,11 +475,11 @@ Object { "Type": "AWS::KMS::Key", "UpdateReplacePolicy": "Retain", }, - "kmskeyAlias39245779": Object { - "Properties": Object { + "kmskeyAlias39245779": { + "Properties": { "AliasName": "alias/seek/self/serviceName", - "TargetKeyId": Object { - "Fn::GetAtt": Array [ + "TargetKeyId": { + "Fn::GetAtt": [ "kmskey49FBC3B3", "Arn", ], @@ -487,10 +487,10 @@ Object { }, "Type": "AWS::KMS::Alias", }, - "topic69831491": Object { - "Properties": Object { - "KmsMasterKeyId": Object { - "Fn::GetAtt": Array [ + "topic69831491": { + "Properties": { + "KmsMasterKeyId": { + "Fn::GetAtt": [ "kmskey49FBC3B3", "Arn", ], @@ -499,23 +499,23 @@ Object { }, "Type": "AWS::SNS::Topic", }, - "worker28EA3E30": Object { - "DependsOn": Array [ + "worker28EA3E30": { + "DependsOn": [ "workerServiceRoleDefaultPolicyBA498553", "workerServiceRole2130CC7F", ], - "Properties": Object { - "Architectures": Array [ + "Properties": { + "Architectures": [ "arm64", ], - "Code": Object { - "S3Bucket": Object { + "Code": { + "S3Bucket": { "Fn::Sub": "cdk-hnb659fds-assets-\${AWS::AccountId}-\${AWS::Region}", }, "S3Key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.zip", }, - "Environment": Object { - "Variables": Object { + "Environment": { + "Variables": { "AWS_NODEJS_CONNECTION_REUSE_ENABLED": "1", "NODE_ENV": "production", "NODE_OPTIONS": "--enable-source-maps", @@ -524,14 +524,14 @@ Object { }, "FunctionName": "serviceName", "Handler": "app.handler", - "KmsKeyArn": Object { - "Fn::GetAtt": Array [ + "KmsKeyArn": { + "Fn::GetAtt": [ "kmskey49FBC3B3", "Arn", ], }, - "Role": Object { - "Fn::GetAtt": Array [ + "Role": { + "Fn::GetAtt": [ "workerServiceRole2130CC7F", "Arn", ], @@ -540,27 +540,27 @@ Object { }, "Type": "AWS::Lambda::Function", }, - "workerServiceRole2130CC7F": Object { - "Properties": Object { - "AssumeRolePolicyDocument": Object { - "Statement": Array [ - Object { + "workerServiceRole2130CC7F": { + "Properties": { + "AssumeRolePolicyDocument": { + "Statement": [ + { "Action": "sts:AssumeRole", "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "lambda.amazonaws.com", }, }, ], "Version": "2012-10-17", }, - "ManagedPolicyArns": Array [ - Object { - "Fn::Join": Array [ + "ManagedPolicyArns": [ + { + "Fn::Join": [ "", - Array [ + [ "arn:", - Object { + { "Ref": "AWS::Partition", }, ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole", @@ -571,12 +571,12 @@ Object { }, "Type": "AWS::IAM::Role", }, - "workerServiceRoleDefaultPolicyBA498553": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { - "Action": Array [ + "workerServiceRoleDefaultPolicyBA498553": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { + "Action": [ "sqs:ReceiveMessage", "sqs:ChangeMessageVisibility", "sqs:GetQueueUrl", @@ -584,18 +584,18 @@ Object { "sqs:GetQueueAttributes", ], "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ + "Resource": { + "Fn::GetAtt": [ "workerqueueA05CE5C6", "Arn", ], }, }, - Object { + { "Action": "kms:Decrypt", "Effect": "Allow", - "Resource": Object { - "Fn::GetAtt": Array [ + "Resource": { + "Fn::GetAtt": [ "kmskey49FBC3B3", "Arn", ], @@ -605,41 +605,41 @@ Object { "Version": "2012-10-17", }, "PolicyName": "workerServiceRoleDefaultPolicyBA498553", - "Roles": Array [ - Object { + "Roles": [ + { "Ref": "workerServiceRole2130CC7F", }, ], }, "Type": "AWS::IAM::Policy", }, - "workerSqsEventSourceappStackworkerqueue8281B9F47B9F582B": Object { - "Properties": Object { - "EventSourceArn": Object { - "Fn::GetAtt": Array [ + "workerSqsEventSourceappStackworkerqueue8281B9F47B9F582B": { + "Properties": { + "EventSourceArn": { + "Fn::GetAtt": [ "workerqueueA05CE5C6", "Arn", ], }, - "FunctionName": Object { + "FunctionName": { "Ref": "worker28EA3E30", }, }, "Type": "AWS::Lambda::EventSourceMapping", }, - "workerqueueA05CE5C6": Object { + "workerqueueA05CE5C6": { "DeletionPolicy": "Delete", - "Properties": Object { - "KmsMasterKeyId": Object { - "Fn::GetAtt": Array [ + "Properties": { + "KmsMasterKeyId": { + "Fn::GetAtt": [ "kmskey49FBC3B3", "Arn", ], }, "QueueName": "serviceName", - "RedrivePolicy": Object { - "deadLetterTargetArn": Object { - "Fn::GetAtt": Array [ + "RedrivePolicy": { + "deadLetterTargetArn": { + "Fn::GetAtt": [ "workerqueuedlq42262778", "Arn", ], @@ -650,25 +650,25 @@ Object { "Type": "AWS::SQS::Queue", "UpdateReplacePolicy": "Delete", }, - "workerqueuePolicy97054CB4": Object { - "Properties": Object { - "PolicyDocument": Object { - "Statement": Array [ - Object { + "workerqueuePolicy97054CB4": { + "Properties": { + "PolicyDocument": { + "Statement": [ + { "Action": "sqs:SendMessage", - "Condition": Object { - "ArnEquals": Object { - "aws:SourceArn": Object { + "Condition": { + "ArnEquals": { + "aws:SourceArn": { "Ref": "topic69831491", }, }, }, "Effect": "Allow", - "Principal": Object { + "Principal": { "Service": "sns.amazonaws.com", }, - "Resource": Object { - "Fn::GetAtt": Array [ + "Resource": { + "Fn::GetAtt": [ "workerqueueA05CE5C6", "Arn", ], @@ -677,34 +677,34 @@ Object { ], "Version": "2012-10-17", }, - "Queues": Array [ - Object { + "Queues": [ + { "Ref": "workerqueueA05CE5C6", }, ], }, "Type": "AWS::SQS::QueuePolicy", }, - "workerqueueappStacktopic0CA45134AFB31FF4": Object { - "Properties": Object { - "Endpoint": Object { - "Fn::GetAtt": Array [ + "workerqueueappStacktopic0CA45134AFB31FF4": { + "Properties": { + "Endpoint": { + "Fn::GetAtt": [ "workerqueueA05CE5C6", "Arn", ], }, "Protocol": "sqs", - "TopicArn": Object { + "TopicArn": { "Ref": "topic69831491", }, }, "Type": "AWS::SNS::Subscription", }, - "workerqueuedlq42262778": Object { + "workerqueuedlq42262778": { "DeletionPolicy": "Delete", - "Properties": Object { - "KmsMasterKeyId": Object { - "Fn::GetAtt": Array [ + "Properties": { + "KmsMasterKeyId": { + "Fn::GetAtt": [ "kmskey49FBC3B3", "Arn", ], diff --git a/template/lambda-sqs-worker/src/framework/validation.test.ts b/template/lambda-sqs-worker/src/framework/validation.test.ts index 023b3b1be..31d327abe 100644 --- a/template/lambda-sqs-worker/src/framework/validation.test.ts +++ b/template/lambda-sqs-worker/src/framework/validation.test.ts @@ -32,7 +32,7 @@ describe('validateJson', () => { .toThrowErrorMatchingInlineSnapshot(` "Validation failed: { - \\"id\\": \\"Expected string, but was null\\" + "id": "Expected string, but was null" }. Object should match { id: string; description: string; }" `); @@ -45,8 +45,8 @@ describe('validateJson', () => { .toThrowErrorMatchingInlineSnapshot(` "Validation failed: { - \\"id\\": \\"Expected string, but was missing\\", - \\"description\\": \\"Expected string, but was missing\\" + "id": "Expected string, but was missing", + "description": "Expected string, but was missing" }. Object should match { id: string; description: string; }" `); diff --git a/yarn.lock b/yarn.lock index b44a12d6c..c406a6c47 100644 --- a/yarn.lock +++ b/yarn.lock @@ -211,7 +211,7 @@ dependencies: "@babel/helper-plugin-utils" "^7.8.0" -"@babel/plugin-syntax-jsx@^7.18.6": +"@babel/plugin-syntax-jsx@^7.18.6", "@babel/plugin-syntax-jsx@^7.7.2": version "7.18.6" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0" integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q== @@ -656,98 +656,110 @@ jest-util "^28.1.3" slash "^3.0.0" -"@jest/core@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.3.tgz#0ebf2bd39840f1233cd5f2d1e6fc8b71bd5a1ac7" - integrity sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA== +"@jest/console@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.0.1.tgz#e0e429cfc89900e3a46ce27f493bf488395ade39" + integrity sha512-SxLvSKf9gk4Rvt3p2KRQWVQ3sVj7S37rjlCHwp2+xNcRO/X+Uw0idbkfOtciUpjghHIxyggqcrrKhThQ+vClLQ== dependencies: - "@jest/console" "^28.1.3" - "@jest/reporters" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/types" "^29.0.1" + "@types/node" "*" + chalk "^4.0.0" + jest-message-util "^29.0.1" + jest-util "^29.0.1" + slash "^3.0.0" + +"@jest/core@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.0.1.tgz#a49517795f692a510b6fae55a9c09e659826c472" + integrity sha512-EcFrXkYh8I1GYHRH9V4TU7jr4P6ckaPqGo/z4AIJjHDZxicjYgWB6fx1xFb5bhEM87eUjCF4FAY5t+RamLWQmA== + dependencies: + "@jest/console" "^29.0.1" + "@jest/reporters" "^29.0.1" + "@jest/test-result" "^29.0.1" + "@jest/transform" "^29.0.1" + "@jest/types" "^29.0.1" "@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 "^28.1.3" - jest-config "^28.1.3" - jest-haste-map "^28.1.3" - jest-message-util "^28.1.3" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-resolve-dependencies "^28.1.3" - jest-runner "^28.1.3" - jest-runtime "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" - jest-watcher "^28.1.3" + jest-changed-files "^29.0.0" + jest-config "^29.0.1" + jest-haste-map "^29.0.1" + jest-message-util "^29.0.1" + jest-regex-util "^29.0.0" + jest-resolve "^29.0.1" + jest-resolve-dependencies "^29.0.1" + jest-runner "^29.0.1" + jest-runtime "^29.0.1" + jest-snapshot "^29.0.1" + jest-util "^29.0.1" + jest-validate "^29.0.1" + jest-watcher "^29.0.1" micromatch "^4.0.4" - pretty-format "^28.1.3" - rimraf "^3.0.0" + pretty-format "^29.0.1" slash "^3.0.0" strip-ansi "^6.0.0" -"@jest/environment@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.3.tgz#abed43a6b040a4c24fdcb69eab1f97589b2d663e" - integrity sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA== +"@jest/environment@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.0.1.tgz#d236ce9e906744ac58bfc59ae6f7c9882ace7927" + integrity sha512-iLcFfoq2K6DAB+Mc+2VNLzZVmHdwQFeSqvoM/X8SMON6s/+yEi1iuRX3snx/JfwSnvmiMXjSr0lktxNxOcqXYA== dependencies: - "@jest/fake-timers" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/fake-timers" "^29.0.1" + "@jest/types" "^29.0.1" "@types/node" "*" - jest-mock "^28.1.3" + jest-mock "^29.0.1" -"@jest/expect-utils@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.3.tgz#58561ce5db7cd253a7edddbc051fb39dda50f525" - integrity sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA== +"@jest/expect-utils@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.0.1.tgz#c1a84ee66caaef537f351dd82f7c63d559cf78d5" + integrity sha512-Tw5kUUOKmXGQDmQ9TSgTraFFS7HMC1HG/B7y0AN2G2UzjdAXz9BzK2rmNpCSDl7g7y0Gf/VLBm//blonvhtOTQ== dependencies: - jest-get-type "^28.0.2" + jest-get-type "^29.0.0" -"@jest/expect@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.3.tgz#9ac57e1d4491baca550f6bdbd232487177ad6a72" - integrity sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw== +"@jest/expect@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.0.1.tgz#0ffde7f5b4c87f1dd6f8664726bd53f6cd1f7014" + integrity sha512-qKB3q52XDV8VUEiqKKLgLrJx7puQ8sYVqIDlul6n7SIXWS97DOK3KqbR2rDDaMtmenRHqEUl2fI+aFzx0oSemA== dependencies: - expect "^28.1.3" - jest-snapshot "^28.1.3" + expect "^29.0.1" + jest-snapshot "^29.0.1" -"@jest/fake-timers@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.3.tgz#230255b3ad0a3d4978f1d06f70685baea91c640e" - integrity sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw== +"@jest/fake-timers@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.0.1.tgz#51ba7a82431db479d4b828576c139c4c0dc5e409" + integrity sha512-XZ+kAhLChVQ+KJNa5034p7O1Mz3vtWrelxDcMoxhZkgqmWDaEQAW9qJeutaeCfPvwaEwKYVyKDYfWpcyT8RiMw== dependencies: - "@jest/types" "^28.1.3" + "@jest/types" "^29.0.1" "@sinonjs/fake-timers" "^9.1.2" "@types/node" "*" - jest-message-util "^28.1.3" - jest-mock "^28.1.3" - jest-util "^28.1.3" + jest-message-util "^29.0.1" + jest-mock "^29.0.1" + jest-util "^29.0.1" -"@jest/globals@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.3.tgz#a601d78ddc5fdef542728309894895b4a42dc333" - integrity sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA== +"@jest/globals@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.0.1.tgz#764135ad31408fb632b3126793ab3aaed933095f" + integrity sha512-BtZWrVrKRKNUt7T1H2S8Mz31PN7ItROCmH+V5pn10hJDUfjOCTIUwb0WtLZzm0f1tJ3Uvx+5lVZrF/VTKqNaFg== dependencies: - "@jest/environment" "^28.1.3" - "@jest/expect" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/environment" "^29.0.1" + "@jest/expect" "^29.0.1" + "@jest/types" "^29.0.1" + jest-mock "^29.0.1" -"@jest/reporters@28.1.3", "@jest/reporters@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.3.tgz#9adf6d265edafc5fc4a434cfb31e2df5a67a369a" - integrity sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg== +"@jest/reporters@29.0.1", "@jest/reporters@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.0.1.tgz#82a491657031c1cc278bf659905e5094973309ad" + integrity sha512-dM3L8JmYYOsdeXUUVZClQy67Tz/v1sMo9h4AQv2U+716VLHV0zdA6Hh4FQNAHMhYw/95dbZbPX8Q+TRR7Rw+wA== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" - "@jridgewell/trace-mapping" "^0.3.13" + "@jest/console" "^29.0.1" + "@jest/test-result" "^29.0.1" + "@jest/transform" "^29.0.1" + "@jest/types" "^29.0.1" + "@jridgewell/trace-mapping" "^0.3.15" "@types/node" "*" chalk "^4.0.0" collect-v8-coverage "^1.0.0" @@ -759,9 +771,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^4.0.0" istanbul-reports "^3.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" - jest-worker "^28.1.3" + jest-message-util "^29.0.1" + jest-util "^29.0.1" + jest-worker "^29.0.1" slash "^3.0.0" string-length "^4.0.1" strip-ansi "^6.0.0" @@ -775,12 +787,19 @@ dependencies: "@sinclair/typebox" "^0.24.1" -"@jest/source-map@^28.1.2": - version "28.1.2" - resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-28.1.2.tgz#7fe832b172b497d6663cdff6c13b0a920e139e24" - integrity sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww== +"@jest/schemas@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.0.0.tgz#5f47f5994dd4ef067fb7b4188ceac45f77fe952a" + integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA== dependencies: - "@jridgewell/trace-mapping" "^0.3.13" + "@sinclair/typebox" "^0.24.1" + +"@jest/source-map@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.0.0.tgz#f8d1518298089f8ae624e442bbb6eb870ee7783c" + integrity sha512-nOr+0EM8GiHf34mq2GcJyz/gYFyLQ2INDhAylrZJ9mMWoW21mLBfZa0BUVPPMxVYrLjeiRe2Z7kWXOGnS0TFhQ== + dependencies: + "@jridgewell/trace-mapping" "^0.3.15" callsites "^3.0.0" graceful-fs "^4.2.9" @@ -794,32 +813,42 @@ "@types/istanbul-lib-coverage" "^2.0.0" collect-v8-coverage "^1.0.0" -"@jest/test-sequencer@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.1.3.tgz#9d0c283d906ac599c74bde464bc0d7e6a82886c3" - integrity sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw== +"@jest/test-result@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.0.1.tgz#97ac334e4c6f7d016c341cdd500aa423a38e4cdd" + integrity sha512-XCA4whh/igxjBaR/Hg8qwFd/uTsauoD7QAdAYUjV2CSGx0+iunhjoCRRWTwqjQrETRqOJABx6kNfw0+C0vMSgQ== dependencies: - "@jest/test-result" "^28.1.3" + "@jest/console" "^29.0.1" + "@jest/types" "^29.0.1" + "@types/istanbul-lib-coverage" "^2.0.0" + collect-v8-coverage "^1.0.0" + +"@jest/test-sequencer@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.0.1.tgz#7074b5f89ce30941b5b0fb493a19308d441a30b8" + integrity sha512-3GhSBMCRcWXGluP2Dw7CLP6mNke/t+EcftF5YjzhX1BJmqcatMbtZVwjuCfZy0TCME1GevXy3qTyV5PLpwIFKQ== + dependencies: + "@jest/test-result" "^29.0.1" graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" + jest-haste-map "^29.0.1" slash "^3.0.0" -"@jest/transform@^28.1.3": - version "28.1.3" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.3.tgz#59d8098e50ab07950e0f2fc0fc7ec462371281b0" - integrity sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA== +"@jest/transform@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.0.1.tgz#fdaa5d9e135c9bd7addbe65bedd1f15ad028cc7e" + integrity sha512-6UxXtqrPScFdDhoip8ys60dQAIYppQinyR87n9nlasR/ZnFfJohKToqzM29KK4gb9gHRv5oDFChdqZKE0SIhsg== dependencies: "@babel/core" "^7.11.6" - "@jest/types" "^28.1.3" - "@jridgewell/trace-mapping" "^0.3.13" + "@jest/types" "^29.0.1" + "@jridgewell/trace-mapping" "^0.3.15" babel-plugin-istanbul "^6.1.1" chalk "^4.0.0" convert-source-map "^1.4.0" - fast-json-stable-stringify "^2.0.0" + fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - jest-regex-util "^28.0.2" - jest-util "^28.1.3" + jest-haste-map "^29.0.1" + jest-regex-util "^29.0.0" + jest-util "^29.0.1" micromatch "^4.0.4" pirates "^4.0.4" slash "^3.0.0" @@ -837,6 +866,18 @@ "@types/yargs" "^17.0.8" chalk "^4.0.0" +"@jest/types@^29.0.0", "@jest/types@^29.0.1": + version "29.0.1" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.0.1.tgz#1985650acf137bdb81710ff39a4689ec071dd86a" + integrity sha512-ft01rxzVsbh9qZPJ6EFgAIj3PT9FCRfBF9Xljo2/33VDOUjLZr0ZJ2oKANqh9S/K0/GERCsHDAQlBwj7RxA+9g== + dependencies: + "@jest/schemas" "^29.0.0" + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^3.0.0" + "@types/node" "*" + "@types/yargs" "^17.0.8" + chalk "^4.0.0" + "@jridgewell/gen-mapping@^0.1.0": version "0.1.1" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" @@ -877,7 +918,7 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" -"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.13", "@jridgewell/trace-mapping@^0.3.9": +"@jridgewell/trace-mapping@^0.3.12", "@jridgewell/trace-mapping@^0.3.15", "@jridgewell/trace-mapping@^0.3.9": version "0.3.15" resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774" integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g== @@ -1589,13 +1630,13 @@ dependencies: "@types/istanbul-lib-report" "*" -"@types/jest@^28.0.0": - version "28.1.7" - resolved "https://registry.yarnpkg.com/@types/jest/-/jest-28.1.7.tgz#a680c5d05b69634c2d54a63cb106d7fb1adaba16" - integrity sha512-acDN4VHD40V24tgu0iC44jchXavRNVFXQ/E6Z5XNsswgoSO/4NgsXoEYmPUGookKldlZQyIpmrEXsHI9cA3ZTA== +"@types/jest@^29.0.0": + version "29.0.0" + resolved "https://registry.yarnpkg.com/@types/jest/-/jest-29.0.0.tgz#bc66835bf6b09d6a47e22c21d7f5b82692e60e72" + integrity sha512-X6Zjz3WO4cT39Gkl0lZ2baFRaEMqJl5NC1OjElkwtNzAlbkr2K/WJXkBkH5VP0zx4Hgsd2TZYdOEfvp2Dxia+Q== dependencies: - expect "^28.0.0" - pretty-format "^28.0.0" + expect "^29.0.0" + pretty-format "^29.0.0" "@types/json-buffer@~3.0.0": version "3.0.0" @@ -2136,15 +2177,15 @@ asynckit@^0.4.0: resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -babel-jest@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.3.tgz#c1187258197c099072156a0a121c11ee1e3917d5" - integrity sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q== +babel-jest@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.0.1.tgz#db50de501fc8727e768f5aa417496cb871ee1ba0" + integrity sha512-wyI9r8tqwsZEMWiIaYjdUJ6ztZIO4DMWpGq7laW34wR71WtRS+D/iBEtXOP5W2aSYCVUQMsypRl/xiJYZznnTg== dependencies: - "@jest/transform" "^28.1.3" + "@jest/transform" "^29.0.1" "@types/babel__core" "^7.1.14" babel-plugin-istanbul "^6.1.1" - babel-preset-jest "^28.1.3" + babel-preset-jest "^29.0.0" chalk "^4.0.0" graceful-fs "^4.2.9" slash "^3.0.0" @@ -2160,10 +2201,10 @@ babel-plugin-istanbul@^6.1.1: istanbul-lib-instrument "^5.0.4" test-exclude "^6.0.0" -babel-plugin-jest-hoist@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.1.3.tgz#1952c4d0ea50f2d6d794353762278d1d8cca3fbe" - integrity sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q== +babel-plugin-jest-hoist@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.0.0.tgz#ae4873399a199ede93697a15919d3d0f614a2eb1" + integrity sha512-B9oaXrlxXHFWeWqhDPg03iqQd2UN/mg/VdZOsLaqAVBkztru3ctTryAI4zisxLEEgmcUnLTKewqx0gGifoXD3A== dependencies: "@babel/template" "^7.3.3" "@babel/types" "^7.3.3" @@ -2188,12 +2229,12 @@ babel-preset-current-node-syntax@^1.0.0: "@babel/plugin-syntax-optional-chaining" "^7.8.3" "@babel/plugin-syntax-top-level-await" "^7.8.3" -babel-preset-jest@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.1.3.tgz#5dfc20b99abed5db994406c2b9ab94c73aaa419d" - integrity sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A== +babel-preset-jest@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.0.0.tgz#52d7f1afe3a15d14a3c5ab4349cbd388d98d330b" + integrity sha512-B5Ke47Xcs8rDF3p1korT3LoilpADCwbG93ALqtvqu6Xpf4d8alKkrCBTExbNzdHJcIuEPpfYvEaFFRGee2kUgQ== dependencies: - babel-plugin-jest-hoist "^28.1.3" + babel-plugin-jest-hoist "^29.0.0" babel-preset-current-node-syntax "^1.0.0" bail@^2.0.0: @@ -3043,10 +3084,10 @@ dezalgo@^1.0.0: asap "^2.0.0" wrappy "1" -diff-sequences@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.1.1.tgz#9989dc731266dc2903457a70e996f3a041913ac6" - integrity sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw== +diff-sequences@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.0.0.tgz#bae49972ef3933556bcb0800b72e8579d19d9e4f" + integrity sha512-7Qe/zd1wxSDL4D/X/FPjOMB+ZMDt71W94KYaq05I2l0oQqgXgs7s4ftYYmV38gBSrPz2vcygxfs1xn0FT+rKNA== diff3@0.0.3: version "0.0.3" @@ -3540,16 +3581,16 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expect@^28.0.0, expect@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.3.tgz#90a7c1a124f1824133dd4533cce2d2bdcb6603ec" - integrity sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g== +expect@^29.0.0, expect@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/expect/-/expect-29.0.1.tgz#a2fa64a59cffe4b4007877e730bc82be3d1742bb" + integrity sha512-yQgemsjLU+1S8t2A7pXT3Sn/v5/37LY8J+tocWtKEA0iEYYc6gfKbbJJX2fxHZmd7K9WpdbQqXUpmYkq1aewYg== dependencies: - "@jest/expect-utils" "^28.1.3" - jest-get-type "^28.0.2" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" + "@jest/expect-utils" "^29.0.1" + jest-get-type "^29.0.0" + jest-matcher-utils "^29.0.1" + jest-message-util "^29.0.1" + jest-util "^29.0.1" express@4.18.1: version "4.18.1" @@ -3623,7 +3664,7 @@ fast-glob@^3.0.3, fast-glob@^3.2.9: merge2 "^1.3.0" micromatch "^4.0.4" -fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0: +fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== @@ -4733,166 +4774,166 @@ java-properties@^1.0.0: resolved "https://registry.yarnpkg.com/java-properties/-/java-properties-1.0.2.tgz#ccd1fa73907438a5b5c38982269d0e771fe78211" integrity sha512-qjdpeo2yKlYTH7nFdK0vbZWuTCesk4o63v5iVOlhMQPfuIZQfW/HI35SjfhA+4qpg36rnFSvUK5b1m+ckIblQQ== -jest-changed-files@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.1.3.tgz#d9aeee6792be3686c47cb988a8eaf82ff4238831" - integrity sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA== +jest-changed-files@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.0.0.tgz#aa238eae42d9372a413dd9a8dadc91ca1806dce0" + integrity sha512-28/iDMDrUpGoCitTURuDqUzWQoWmOmOKOFST1mi2lwh62X4BFf6khgH3uSuo1e49X/UDjuApAj3w0wLOex4VPQ== dependencies: execa "^5.0.0" p-limit "^3.1.0" -jest-circus@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.3.tgz#d14bd11cf8ee1a03d69902dc47b6bd4634ee00e4" - integrity sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow== +jest-circus@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.0.1.tgz#7ecb4913e134fb4addc03655fb36c9398014fa07" + integrity sha512-I5J4LyK3qPo8EnqPmxsMAVR+2SFx7JOaZsbqW9xQmk4UDmTCD92EQgS162Ey3Jq6CfpKJKFDhzhG3QqiE0fRbw== dependencies: - "@jest/environment" "^28.1.3" - "@jest/expect" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/environment" "^29.0.1" + "@jest/expect" "^29.0.1" + "@jest/test-result" "^29.0.1" + "@jest/types" "^29.0.1" "@types/node" "*" chalk "^4.0.0" co "^4.6.0" dedent "^0.7.0" is-generator-fn "^2.0.0" - jest-each "^28.1.3" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-runtime "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" + jest-each "^29.0.1" + jest-matcher-utils "^29.0.1" + jest-message-util "^29.0.1" + jest-runtime "^29.0.1" + jest-snapshot "^29.0.1" + jest-util "^29.0.1" p-limit "^3.1.0" - pretty-format "^28.1.3" + pretty-format "^29.0.1" slash "^3.0.0" stack-utils "^2.0.3" -jest-cli@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.3.tgz#558b33c577d06de55087b8448d373b9f654e46b2" - integrity sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ== +jest-cli@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.0.1.tgz#6633c2ab97337ac5207910bd6b0aba2ef0900110" + integrity sha512-XozBHtoJCS6mnjCxNESyGm47Y4xSWzNlBJj4tix9nGrG6m068B83lrTWKtjYAenYSfOqyYVpQCkyqUp35IT+qA== dependencies: - "@jest/core" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/core" "^29.0.1" + "@jest/test-result" "^29.0.1" + "@jest/types" "^29.0.1" chalk "^4.0.0" exit "^0.1.2" graceful-fs "^4.2.9" import-local "^3.0.2" - jest-config "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" + jest-config "^29.0.1" + jest-util "^29.0.1" + jest-validate "^29.0.1" prompts "^2.0.1" yargs "^17.3.1" -jest-config@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.3.tgz#e315e1f73df3cac31447eed8b8740a477392ec60" - integrity sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ== +jest-config@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.0.1.tgz#bccc2aedc3bafb6cb08bad23e5f0fcc3b1959268" + integrity sha512-3duIx5ucEPIsUOESDTuasMfqHonD0oZRjqHycIMHSC4JwbvHDjAWNKN/NiM0ZxHXjAYrMTLt2QxSQ+IqlbYE5A== dependencies: "@babel/core" "^7.11.6" - "@jest/test-sequencer" "^28.1.3" - "@jest/types" "^28.1.3" - babel-jest "^28.1.3" + "@jest/test-sequencer" "^29.0.1" + "@jest/types" "^29.0.1" + babel-jest "^29.0.1" chalk "^4.0.0" ci-info "^3.2.0" deepmerge "^4.2.2" glob "^7.1.3" graceful-fs "^4.2.9" - jest-circus "^28.1.3" - jest-environment-node "^28.1.3" - jest-get-type "^28.0.2" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-runner "^28.1.3" - jest-util "^28.1.3" - jest-validate "^28.1.3" + jest-circus "^29.0.1" + jest-environment-node "^29.0.1" + jest-get-type "^29.0.0" + jest-regex-util "^29.0.0" + jest-resolve "^29.0.1" + jest-runner "^29.0.1" + jest-util "^29.0.1" + jest-validate "^29.0.1" micromatch "^4.0.4" parse-json "^5.2.0" - pretty-format "^28.1.3" + pretty-format "^29.0.1" slash "^3.0.0" strip-json-comments "^3.1.1" -jest-diff@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.3.tgz#948a192d86f4e7a64c5264ad4da4877133d8792f" - integrity sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw== +jest-diff@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.0.1.tgz#d14e900a38ee4798d42feaaf0c61cb5b98e4c028" + integrity sha512-l8PYeq2VhcdxG9tl5cU78ClAlg/N7RtVSp0v3MlXURR0Y99i6eFnegmasOandyTmO6uEdo20+FByAjBFEO9nuw== dependencies: chalk "^4.0.0" - diff-sequences "^28.1.1" - jest-get-type "^28.0.2" - pretty-format "^28.1.3" + diff-sequences "^29.0.0" + jest-get-type "^29.0.0" + pretty-format "^29.0.1" -jest-docblock@^28.1.1: - version "28.1.1" - resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.1.1.tgz#6f515c3bf841516d82ecd57a62eed9204c2f42a8" - integrity sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA== +jest-docblock@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.0.0.tgz#3151bcc45ed7f5a8af4884dcc049aee699b4ceae" + integrity sha512-s5Kpra/kLzbqu9dEjov30kj1n4tfu3e7Pl8v+f8jOkeWNqM6Ds8jRaJfZow3ducoQUrf2Z4rs2N5S3zXnb83gw== dependencies: detect-newline "^3.0.0" -jest-each@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.1.3.tgz#bdd1516edbe2b1f3569cfdad9acd543040028f81" - integrity sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g== +jest-each@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.0.1.tgz#c17da68a7073440122dbd47dca3941351ee0cbe5" + integrity sha512-UmCZYU9LPvRfSDoCrKJqrCNmgTYGGb3Ga6IVsnnVjedBTRRR9GJMca7UmDKRrJ1s+U632xrVtiRD27BxaG1aaQ== dependencies: - "@jest/types" "^28.1.3" + "@jest/types" "^29.0.1" chalk "^4.0.0" - jest-get-type "^28.0.2" - jest-util "^28.1.3" - pretty-format "^28.1.3" - -jest-environment-node@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.3.tgz#7e74fe40eb645b9d56c0c4b70ca4357faa349be5" - integrity sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A== - dependencies: - "@jest/environment" "^28.1.3" - "@jest/fake-timers" "^28.1.3" - "@jest/types" "^28.1.3" + jest-get-type "^29.0.0" + jest-util "^29.0.1" + pretty-format "^29.0.1" + +jest-environment-node@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.0.1.tgz#b09db2a1b8439aace11a6805719d92498a64987e" + integrity sha512-PcIRBrEBFAPBqkbL53ZpEvTptcAnOW6/lDfqBfACMm3vkVT0N7DcfkH/hqNSbDmSxzGr0FtJI6Ej3TPhveWCMA== + dependencies: + "@jest/environment" "^29.0.1" + "@jest/fake-timers" "^29.0.1" + "@jest/types" "^29.0.1" "@types/node" "*" - jest-mock "^28.1.3" - jest-util "^28.1.3" + jest-mock "^29.0.1" + jest-util "^29.0.1" -jest-get-type@^28.0.2: - version "28.0.2" - resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203" - integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA== +jest-get-type@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.0.0.tgz#843f6c50a1b778f7325df1129a0fd7aa713aef80" + integrity sha512-83X19z/HuLKYXYHskZlBAShO7UfLFXu/vWajw9ZNJASN32li8yHMaVGAQqxFW1RCFOkB7cubaL6FaJVQqqJLSw== -jest-haste-map@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.3.tgz#abd5451129a38d9841049644f34b034308944e2b" - integrity sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA== +jest-haste-map@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.0.1.tgz#472212f93ef44309bf97d191f93ddd2e41169615" + integrity sha512-gcKOAydafpGoSBvcj/mGCfhOKO8fRLkAeee1KXGdcJ1Pb9O2nnOl4I8bQSIID2MaZeMHtLLgNboukh/pUGkBtg== dependencies: - "@jest/types" "^28.1.3" + "@jest/types" "^29.0.1" "@types/graceful-fs" "^4.1.3" "@types/node" "*" anymatch "^3.0.3" fb-watchman "^2.0.0" graceful-fs "^4.2.9" - jest-regex-util "^28.0.2" - jest-util "^28.1.3" - jest-worker "^28.1.3" + jest-regex-util "^29.0.0" + jest-util "^29.0.1" + jest-worker "^29.0.1" micromatch "^4.0.4" walker "^1.0.8" optionalDependencies: fsevents "^2.3.2" -jest-leak-detector@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.3.tgz#a6685d9b074be99e3adee816ce84fd30795e654d" - integrity sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA== +jest-leak-detector@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.0.1.tgz#1a7cf8475d85e7b2bd53efa5adc5195828a12c33" + integrity sha512-5tISHJphB+sCmKXtVHJGQGltj7ksrLLb9vkuNWwFR86Of1tfzjskvrrrZU1gSzEfWC+qXIn4tuh8noKHYGMIPA== dependencies: - jest-get-type "^28.0.2" - pretty-format "^28.1.3" + jest-get-type "^29.0.0" + pretty-format "^29.0.1" -jest-matcher-utils@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz#5a77f1c129dd5ba3b4d7fc20728806c78893146e" - integrity sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw== +jest-matcher-utils@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.0.1.tgz#eaa92dd5405c2df9d31d45ec4486361d219de3e9" + integrity sha512-/e6UbCDmprRQFnl7+uBKqn4G22c/OmwriE5KCMVqxhElKCQUDcFnq5XM9iJeKtzy4DUjxT27y9VHmKPD8BQPaw== dependencies: chalk "^4.0.0" - jest-diff "^28.1.3" - jest-get-type "^28.0.2" - pretty-format "^28.1.3" + jest-diff "^29.0.1" + jest-get-type "^29.0.0" + pretty-format "^29.0.1" jest-message-util@^28.1.3: version "28.1.3" @@ -4909,12 +4950,27 @@ jest-message-util@^28.1.3: slash "^3.0.0" stack-utils "^2.0.3" -jest-mock@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.3.tgz#d4e9b1fc838bea595c77ab73672ebf513ab249da" - integrity sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA== +jest-message-util@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.0.1.tgz#85c4b5b90296c228da158e168eaa5b079f2ab879" + integrity sha512-wRMAQt3HrLpxSubdnzOo68QoTfQ+NLXFzU0Heb18ZUzO2S9GgaXNEdQ4rpd0fI9dq2NXkpCk1IUWSqzYKji64A== dependencies: - "@jest/types" "^28.1.3" + "@babel/code-frame" "^7.12.13" + "@jest/types" "^29.0.1" + "@types/stack-utils" "^2.0.0" + chalk "^4.0.0" + graceful-fs "^4.2.9" + micromatch "^4.0.4" + pretty-format "^29.0.1" + slash "^3.0.0" + stack-utils "^2.0.3" + +jest-mock@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.0.1.tgz#12e1b137035365b022ccdb8fd67d476cd4d4bfad" + integrity sha512-i1yTceg2GKJwUNZFjIzrH7Y74fN1SKJWxQX/Vu3LT4TiJerFARH5l+4URNyapZ+DNpchHYrGOP2deVbn3ma8JA== + dependencies: + "@jest/types" "^29.0.1" "@types/node" "*" jest-pnp-resolver@^1.2.2: @@ -4922,119 +4978,125 @@ jest-pnp-resolver@^1.2.2: resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c" integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w== -jest-regex-util@^28.0.0, jest-regex-util@^28.0.2: +jest-regex-util@^28.0.0: version "28.0.2" resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead" integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw== -jest-resolve-dependencies@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.3.tgz#8c65d7583460df7275c6ea2791901fa975c1fe66" - integrity sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA== +jest-regex-util@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.0.0.tgz#b442987f688289df8eb6c16fa8df488b4cd007de" + integrity sha512-BV7VW7Sy0fInHWN93MMPtlClweYv2qrSCwfeFWmpribGZtQPWNvRSq9XOVgOEjU1iBGRKXUZil0o2AH7Iy9Lug== + +jest-resolve-dependencies@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.0.1.tgz#c41b88380c8ea178ce72a750029b5f3d5f65cb94" + integrity sha512-fUGcYlSc1NzNz+tsHDjjG0rclw6blJcFZsLEsezxm/n54bAm9HFvJxgBuCV1CJQoPtIx6AfR+tXkR9lpWJs2LQ== dependencies: - jest-regex-util "^28.0.2" - jest-snapshot "^28.1.3" + jest-regex-util "^29.0.0" + jest-snapshot "^29.0.1" -jest-resolve@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.1.3.tgz#cfb36100341ddbb061ec781426b3c31eb51aa0a8" - integrity sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ== +jest-resolve@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.0.1.tgz#4f1338eee2ccc7319ffce850e13eb118a9e93ce5" + integrity sha512-dwb5Z0lLZbptlBtPExqsHfdDamXeiRLv4vdkfPrN84vBwLSWHWcXjlM2JXD/KLSQfljBcXbzI/PDvUJuTQ84Nw== dependencies: chalk "^4.0.0" graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" + jest-haste-map "^29.0.1" jest-pnp-resolver "^1.2.2" - jest-util "^28.1.3" - jest-validate "^28.1.3" + jest-util "^29.0.1" + jest-validate "^29.0.1" resolve "^1.20.0" resolve.exports "^1.1.0" slash "^3.0.0" -jest-runner@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.3.tgz#5eee25febd730b4713a2cdfd76bdd5557840f9a1" - integrity sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA== +jest-runner@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.0.1.tgz#15bacd13170f3d786168ef8548fdeb96933ea643" + integrity sha512-XeFfPmHtO7HyZyD1uJeO4Oqa8PyTbDHzS1YdGrvsFXk/A5eXinbqA5a42VUEqvsKQgNnKTl5NJD0UtDWg7cQ2A== dependencies: - "@jest/console" "^28.1.3" - "@jest/environment" "^28.1.3" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/console" "^29.0.1" + "@jest/environment" "^29.0.1" + "@jest/test-result" "^29.0.1" + "@jest/transform" "^29.0.1" + "@jest/types" "^29.0.1" "@types/node" "*" chalk "^4.0.0" emittery "^0.10.2" graceful-fs "^4.2.9" - jest-docblock "^28.1.1" - jest-environment-node "^28.1.3" - jest-haste-map "^28.1.3" - jest-leak-detector "^28.1.3" - jest-message-util "^28.1.3" - jest-resolve "^28.1.3" - jest-runtime "^28.1.3" - jest-util "^28.1.3" - jest-watcher "^28.1.3" - jest-worker "^28.1.3" + jest-docblock "^29.0.0" + jest-environment-node "^29.0.1" + jest-haste-map "^29.0.1" + jest-leak-detector "^29.0.1" + jest-message-util "^29.0.1" + jest-resolve "^29.0.1" + jest-runtime "^29.0.1" + jest-util "^29.0.1" + jest-watcher "^29.0.1" + jest-worker "^29.0.1" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.3.tgz#a57643458235aa53e8ec7821949e728960d0605f" - integrity sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw== - dependencies: - "@jest/environment" "^28.1.3" - "@jest/fake-timers" "^28.1.3" - "@jest/globals" "^28.1.3" - "@jest/source-map" "^28.1.2" - "@jest/test-result" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" +jest-runtime@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.0.1.tgz#cafdc10834c45c50105eecb0ded8677ce741e2af" + integrity sha512-yDgz5OE0Rm44PUAfTqwA6cDFnTYnVcYbRpPECsokSASQ0I5RXpnKPVr2g0CYZWKzbsXqqtmM7TIk7CAutZJ7gQ== + dependencies: + "@jest/environment" "^29.0.1" + "@jest/fake-timers" "^29.0.1" + "@jest/globals" "^29.0.1" + "@jest/source-map" "^29.0.0" + "@jest/test-result" "^29.0.1" + "@jest/transform" "^29.0.1" + "@jest/types" "^29.0.1" + "@types/node" "*" chalk "^4.0.0" cjs-module-lexer "^1.0.0" collect-v8-coverage "^1.0.0" - execa "^5.0.0" glob "^7.1.3" graceful-fs "^4.2.9" - jest-haste-map "^28.1.3" - jest-message-util "^28.1.3" - jest-mock "^28.1.3" - jest-regex-util "^28.0.2" - jest-resolve "^28.1.3" - jest-snapshot "^28.1.3" - jest-util "^28.1.3" + jest-haste-map "^29.0.1" + jest-message-util "^29.0.1" + jest-mock "^29.0.1" + jest-regex-util "^29.0.0" + jest-resolve "^29.0.1" + jest-snapshot "^29.0.1" + jest-util "^29.0.1" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.3.tgz#17467b3ab8ddb81e2f605db05583d69388fc0668" - integrity sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg== +jest-snapshot@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.0.1.tgz#ed455cb7e56fb43e2d451edd902d622349d6afed" + integrity sha512-OuYGp+lsh7RhB3DDX36z/pzrGm2F740e5ERG9PQpJyDknCRtWdhaehBQyMqDnsQdKkvC2zOcetcxskiHjO7e8Q== 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/traverse" "^7.7.2" "@babel/types" "^7.3.3" - "@jest/expect-utils" "^28.1.3" - "@jest/transform" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/expect-utils" "^29.0.1" + "@jest/transform" "^29.0.1" + "@jest/types" "^29.0.1" "@types/babel__traverse" "^7.0.6" "@types/prettier" "^2.1.5" babel-preset-current-node-syntax "^1.0.0" chalk "^4.0.0" - expect "^28.1.3" + expect "^29.0.1" graceful-fs "^4.2.9" - jest-diff "^28.1.3" - jest-get-type "^28.0.2" - jest-haste-map "^28.1.3" - jest-matcher-utils "^28.1.3" - jest-message-util "^28.1.3" - jest-util "^28.1.3" + jest-diff "^29.0.1" + jest-get-type "^29.0.0" + jest-haste-map "^29.0.1" + jest-matcher-utils "^29.0.1" + jest-message-util "^29.0.1" + jest-util "^29.0.1" natural-compare "^1.4.0" - pretty-format "^28.1.3" + pretty-format "^29.0.1" semver "^7.3.5" -jest-util@^28.0.0, jest-util@^28.1.3: +jest-util@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.3.tgz#f4f932aa0074f0679943220ff9cbba7e497028b0" integrity sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ== @@ -5046,22 +5108,46 @@ jest-util@^28.0.0, jest-util@^28.1.3: graceful-fs "^4.2.9" picomatch "^2.2.3" -jest-validate@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.1.3.tgz#e322267fd5e7c64cea4629612c357bbda96229df" - integrity sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA== +jest-util@^29.0.0: + version "29.0.0" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.0.0.tgz#54dfddf25fb011a2ff93fe8d11738dee8ff7f663" + integrity sha512-HMjW/pkFgi34LGKumjNDK03DYonV+nPMNUZ63rZX8PFdBkdIWUtOCEiaa7sAJkWrw5MyMVzSpa22NcOJjoQ3JQ== dependencies: - "@jest/types" "^28.1.3" + "@jest/types" "^29.0.0" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-util@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.0.1.tgz#f854a4a8877c7817316c4afbc2a851ceb2e71598" + integrity sha512-GIWkgNfkeA9d84rORDHPGGTFBrRD13A38QVSKE0bVrGSnoR1KDn8Kqz+0yI5kezMgbT/7zrWaruWP1Kbghlb2A== + dependencies: + "@jest/types" "^29.0.1" + "@types/node" "*" + chalk "^4.0.0" + ci-info "^3.2.0" + graceful-fs "^4.2.9" + picomatch "^2.2.3" + +jest-validate@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.0.1.tgz#8de8ff9d65507c0477964fd39c5b0a1778e3103d" + integrity sha512-mS4q7F738YXZFWBPqE+NjHU/gEOs7IBIFQ8i9zq5EO691cLrUbLhFq4larf8/lNcmauRO71tn/+DTW2y+MrLow== + dependencies: + "@jest/types" "^29.0.1" camelcase "^6.2.0" chalk "^4.0.0" - jest-get-type "^28.0.2" + jest-get-type "^29.0.0" leven "^3.1.0" - pretty-format "^28.1.3" + pretty-format "^29.0.1" -jest-watch-typeahead@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-2.0.0.tgz#1808eb9462a5887e3c65fdaacf3c537211609955" - integrity sha512-LX/jrTNkOIZV1n7fnEWlKJ73lhVPKF9B6F0L7pbje3xNPw1NddPLn0n8EFt7YwbCnC0+vlLylp7JehV6M06J6Q== +jest-watch-typeahead@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/jest-watch-typeahead/-/jest-watch-typeahead-2.1.1.tgz#927ad0f6fe2859f7b47d7ef26633f2877e806ea7" + integrity sha512-yKrj2VBDJoMLlD6lpfWfIQpSSC1GFGvPHaLnJWRhL/PiLlBDRWFwCYe21h0o+peqcVlilQhIa2g2vncaBXS73g== dependencies: ansi-escapes "^5.0.0" chalk "^4.0.0" @@ -5071,7 +5157,7 @@ jest-watch-typeahead@^2.0.0: string-length "^5.0.1" strip-ansi "^7.0.1" -jest-watcher@^28.0.0, jest-watcher@^28.1.3: +jest-watcher@^28.0.0: version "28.1.3" resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.3.tgz#c6023a59ba2255e3b4c57179fc94164b3e73abd4" integrity sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g== @@ -5085,24 +5171,38 @@ jest-watcher@^28.0.0, jest-watcher@^28.1.3: jest-util "^28.1.3" string-length "^4.0.1" -jest-worker@^28.1.3: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.3.tgz#7e3c4ce3fa23d1bb6accb169e7f396f98ed4bb98" - integrity sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g== +jest-watcher@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.0.1.tgz#63adeb8887a0562ed8f990f413b830ef48a8db94" + integrity sha512-0LBWDL3sZ+vyHRYxjqm2irhfwhUXHonjLSbd0oDeGq44U1e1uUh3icWNXYF8HO/UEnOoa6+OJDncLUXP2Hdg9A== + dependencies: + "@jest/test-result" "^29.0.1" + "@jest/types" "^29.0.1" + "@types/node" "*" + ansi-escapes "^4.2.1" + chalk "^4.0.0" + emittery "^0.10.2" + jest-util "^29.0.1" + string-length "^4.0.1" + +jest-worker@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.0.1.tgz#fb42ff7e05e0573f330ec0cf781fc545dcd11a31" + integrity sha512-+B/2/8WW7goit7qVezG9vnI1QP3dlmuzi2W0zxazAQQ8dcDIA63dDn6j4pjOGBARha/ZevcwYQtNIzCySbS7fQ== dependencies: "@types/node" "*" merge-stream "^2.0.0" supports-color "^8.0.0" -jest@^28.1.0: - version "28.1.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.3.tgz#e9c6a7eecdebe3548ca2b18894a50f45b36dfc6b" - integrity sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA== +jest@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/jest/-/jest-29.0.1.tgz#4a1c48d79fada0a47c686a111ed9411fd41cd584" + integrity sha512-liHkwzaW6iwQyhRBFj0A4ZYKcsQ7ers1s62CCT95fPeNzoxT/vQRWwjTT4e7jpSCwrvPP2t1VESuy7GrXcr2ug== dependencies: - "@jest/core" "^28.1.3" - "@jest/types" "^28.1.3" + "@jest/core" "^29.0.1" + "@jest/types" "^29.0.1" import-local "^3.0.2" - jest-cli "^28.1.3" + jest-cli "^29.0.1" jju@~1.4.0: version "1.4.0" @@ -6883,7 +6983,7 @@ prettier@~2.7.0: resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64" integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g== -pretty-format@^28.0.0, pretty-format@^28.1.3: +pretty-format@^28.1.3: version "28.1.3" resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.3.tgz#c9fba8cedf99ce50963a11b27d982a9ae90970d5" integrity sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q== @@ -6893,6 +6993,15 @@ pretty-format@^28.0.0, pretty-format@^28.1.3: ansi-styles "^5.0.0" react-is "^18.0.0" +pretty-format@^29.0.0, pretty-format@^29.0.1: + version "29.0.1" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.0.1.tgz#2f8077114cdac92a59b464292972a106410c7ad0" + integrity sha512-iTHy3QZMzuL484mSTYbQIM1AHhEQsH8mXWS2/vd2yFBYnG3EBqGiMONo28PlPgrW7P/8s/1ISv+y7WH306l8cw== + dependencies: + "@jest/schemas" "^29.0.0" + ansi-styles "^5.0.0" + react-is "^18.0.0" + proc-log@^2.0.0, proc-log@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-2.0.1.tgz#8f3f69a1f608de27878f91f5c688b225391cb685" @@ -8329,14 +8438,14 @@ ts-dedent@^2.2.0: resolved "https://registry.yarnpkg.com/ts-dedent/-/ts-dedent-2.2.0.tgz#39e4bd297cd036292ae2394eb3412be63f563bb5" integrity sha512-q5W7tVM71e2xjHZTlgfTDoPF/SmqKG5hddq9SzR49CH2hayqRKJtQ4mtRlSxKaJlR/+9rEM+mnBHf7I2/BQcpQ== -ts-jest@^28.0.2: - version "28.0.8" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-28.0.8.tgz#cd204b8e7a2f78da32cf6c95c9a6165c5b99cc73" - integrity sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg== +ts-jest@^29.0.0-next.0: + version "29.0.0-next.0" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.0.0-next.0.tgz#3045e458c377515b9eacf747432cff7c138fdb5b" + integrity sha512-eZS6d2uH4Piwp2k7SwyLpKhBpwL1idvba/5LnkkBd8YcPA5Q0h/OgpBwt7702gOYF8WRGNxhVj6OZ988zoGWtg== dependencies: bs-logger "0.x" fast-json-stable-stringify "2.x" - jest-util "^28.0.0" + jest-util "^29.0.0" json5 "^2.2.1" lodash.memoize "4.x" make-error "1.x" @@ -8517,7 +8626,7 @@ typedarray@^0.0.6: resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typescript@~4.8.0: +typescript@~4.8.2: version "4.8.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.2.tgz#e3b33d5ccfb5914e4eeab6699cf208adee3fd790" integrity sha512-C0I1UsrrDHo2fYI5oaCGbSejwX4ch+9Y5jTQELvovfmFkK3HHSZJB8MSJcWLmCUBzQBchCrZ9rMRV6GuNrvGtw==