From f3dea7959035fe8c38d7252f841db5700d37b98b Mon Sep 17 00:00:00 2001 From: Derek Cormier Date: Wed, 8 Jan 2025 15:06:27 -0800 Subject: [PATCH] chore: upgrade jest to v29 --- e2e/__snapshots__/e2e.spec.ts.snap | 370 +++---- jest.config.ts | 185 +--- jest.setup.ts | 78 +- package.json | 10 +- pnpm-lock.yaml | 1457 +++++++++++++++---------- src/domain/create-entry.spec.ts | 2 - src/domain/find-registry-fork.spec.ts | 2 +- src/domain/integrity-hash.spec.ts | 2 - src/domain/metadata-file.spec.ts | 36 +- src/domain/module-file.spec.ts | 3 - src/domain/publish-entry.spec.ts | 24 +- src/domain/release-archive.spec.ts | 13 +- src/domain/repository.spec.ts | 4 - src/domain/ruleset-repository.spec.ts | 140 +-- src/domain/source-template.spec.ts | 1 - src/infrastructure/github.ts | 7 +- 16 files changed, 1195 insertions(+), 1139 deletions(-) diff --git a/e2e/__snapshots__/e2e.spec.ts.snap b/e2e/__snapshots__/e2e.spec.ts.snap index 39f2804..b54bd5c 100644 --- a/e2e/__snapshots__/e2e.spec.ts.snap +++ b/e2e/__snapshots__/e2e.spec.ts.snap @@ -5,52 +5,52 @@ exports[`e2e tests [snapshot] empty strip prefix 1`] = ` modules/no-prefix/1.0.0/MODULE.bazel ---------------------------------------------------- module( - name = \\"no-prefix\\", - version = \\"1.0.0\\", + name = "no-prefix", + version = "1.0.0", ) ---------------------------------------------------- modules/no-prefix/1.0.0/presubmit.yml ---------------------------------------------------- bcr_test_module: - module_path: \\"e2e/bzlmod\\" + module_path: "e2e/bzlmod" matrix: - platform: [\\"debian10\\", \\"macos\\", \\"ubuntu2004\\", \\"windows\\"] + platform: ["debian10", "macos", "ubuntu2004", "windows"] bazel: [6.x, 7.x] tasks: run_tests: - name: \\"Run test module\\" + name: "Run test module" platform: \${{ platform }} bazel: \${{ bazel }} test_targets: - - \\"//...\\" + - "//..." ---------------------------------------------------- modules/no-prefix/1.0.0/source.json ---------------------------------------------------- { - \\"integrity\\": \\"sha256-RC79Eu4W6kAE9zmAhMpQ5tEPIiJOKkioWkLZonpNW4E=\\", - \\"url\\": \\"https://github.com/testorg/no-prefix/archive/refs/tags/v1.0.0.tar.gz\\" + "integrity": "sha256-RC79Eu4W6kAE9zmAhMpQ5tEPIiJOKkioWkLZonpNW4E=", + "url": "https://github.com/testorg/no-prefix/archive/refs/tags/v1.0.0.tar.gz" } ---------------------------------------------------- modules/no-prefix/metadata.json ---------------------------------------------------- { - \\"homepage\\": \\"https://github.com/testorg/no-prefix\\", - \\"maintainers\\": [ + "homepage": "https://github.com/testorg/no-prefix", + "maintainers": [ { - \\"name\\": \\"Foo McBar\\", - \\"email\\": \\"foo@test.org\\", - \\"github\\": \\"foobar\\" + "name": "Foo McBar", + "email": "foo@test.org", + "github": "foobar" } ], - \\"repository\\": [ - \\"github:testorg/no-prefix\\" + "repository": [ + "github:testorg/no-prefix" ], - \\"versions\\": [ - \\"1.0.0\\" + "versions": [ + "1.0.0" ], - \\"yanked_versions\\": {} + "yanked_versions": {} } " @@ -86,53 +86,53 @@ exports[`e2e tests [snapshot] missing strip prefix 1`] = ` modules/empty-prefix/1.0.0/MODULE.bazel ---------------------------------------------------- module( - name = \\"empty-prefix\\", - version = \\"1.0.0\\", + name = "empty-prefix", + version = "1.0.0", ) ---------------------------------------------------- modules/empty-prefix/1.0.0/presubmit.yml ---------------------------------------------------- bcr_test_module: - module_path: \\"e2e/bzlmod\\" + module_path: "e2e/bzlmod" matrix: - platform: [\\"debian10\\", \\"macos\\", \\"ubuntu2004\\", \\"windows\\"] + platform: ["debian10", "macos", "ubuntu2004", "windows"] bazel: [6.x, 7.x] tasks: run_tests: - name: \\"Run test module\\" + name: "Run test module" platform: \${{ platform }} bazel: \${{ bazel }} test_targets: - - \\"//...\\" + - "//..." ---------------------------------------------------- modules/empty-prefix/1.0.0/source.json ---------------------------------------------------- { - \\"integrity\\": \\"sha256-E6I1qHSyRvONHVwMEEtOOYog+4xmohiEXI3gBan0XFQ=\\", - \\"strip_prefix\\": \\"\\", - \\"url\\": \\"https://github.com/testorg/empty-prefix/archive/refs/tags/v1.0.0.tar.gz\\" + "integrity": "sha256-E6I1qHSyRvONHVwMEEtOOYog+4xmohiEXI3gBan0XFQ=", + "strip_prefix": "", + "url": "https://github.com/testorg/empty-prefix/archive/refs/tags/v1.0.0.tar.gz" } ---------------------------------------------------- modules/empty-prefix/metadata.json ---------------------------------------------------- { - \\"homepage\\": \\"https://github.com/testorg/empty-prefix\\", - \\"maintainers\\": [ + "homepage": "https://github.com/testorg/empty-prefix", + "maintainers": [ { - \\"name\\": \\"Foo McBar\\", - \\"email\\": \\"foo@test.org\\", - \\"github\\": \\"foobar\\" + "name": "Foo McBar", + "email": "foo@test.org", + "github": "foobar" } ], - \\"repository\\": [ - \\"github:testorg/empty-prefix\\" + "repository": [ + "github:testorg/empty-prefix" ], - \\"versions\\": [ - \\"1.0.0\\" + "versions": [ + "1.0.0" ], - \\"yanked_versions\\": {} + "yanked_versions": {} } " @@ -143,111 +143,111 @@ exports[`e2e tests [snapshot] multiple modules 1`] = ` modules/module/1.0.0/MODULE.bazel ---------------------------------------------------- module( - name = \\"module\\", - version = \\"1.0.0\\", + name = "module", + version = "1.0.0", ) ---------------------------------------------------- modules/module/1.0.0/presubmit.yml ---------------------------------------------------- bcr_test_module: - module_path: \\"e2e/bzlmod\\" + module_path: "e2e/bzlmod" matrix: - platform: [\\"debian10\\", \\"macos\\", \\"ubuntu2004\\", \\"windows\\"] + platform: ["debian10", "macos", "ubuntu2004", "windows"] bazel: [6.x, 7.x] tasks: run_tests: - name: \\"Run test module\\" + name: "Run test module" platform: \${{ platform }} bazel: \${{ bazel }} test_targets: - - \\"//...\\" + - "//..." ---------------------------------------------------- modules/module/1.0.0/source.json ---------------------------------------------------- { - \\"integrity\\": \\"sha256-yjUiRsFFe2FdefykIyd4CMmF/v12UDm4L/IrqiVkOHU=\\", - \\"strip_prefix\\": \\"multi-module-1.0.0\\", - \\"url\\": \\"https://github.com/testorg/multi-module/releases/download/v1.0.0.tar.gz\\" + "integrity": "sha256-yjUiRsFFe2FdefykIyd4CMmF/v12UDm4L/IrqiVkOHU=", + "strip_prefix": "multi-module-1.0.0", + "url": "https://github.com/testorg/multi-module/releases/download/v1.0.0.tar.gz" } ---------------------------------------------------- modules/module/metadata.json ---------------------------------------------------- { - \\"homepage\\": \\"https://github.com/testorg/multi-module\\", - \\"maintainers\\": [ + "homepage": "https://github.com/testorg/multi-module", + "maintainers": [ { - \\"name\\": \\"Foo McBar\\", - \\"email\\": \\"foo@test.org\\", - \\"github\\": \\"foobar\\" + "name": "Foo McBar", + "email": "foo@test.org", + "github": "foobar" } ], - \\"repository\\": [ - \\"github:testorg/multi-module\\" + "repository": [ + "github:testorg/multi-module" ], - \\"versions\\": [ - \\"1.0.0\\" + "versions": [ + "1.0.0" ], - \\"yanked_versions\\": {} + "yanked_versions": {} } ---------------------------------------------------- modules/submodule/1.0.0/MODULE.bazel ---------------------------------------------------- module( - name = \\"submodule\\", - version = \\"1.0.0\\", + name = "submodule", + version = "1.0.0", ) ---------------------------------------------------- modules/submodule/1.0.0/presubmit.yml ---------------------------------------------------- bcr_test_module: - module_path: \\"e2e/bzlmod\\" + module_path: "e2e/bzlmod" matrix: - platform: [\\"debian10\\", \\"macos\\", \\"ubuntu2004\\", \\"windows\\"] + platform: ["debian10", "macos", "ubuntu2004", "windows"] bazel: [6.x, 7.x] tasks: run_tests: - name: \\"Run test module\\" + name: "Run test module" platform: \${{ platform }} bazel: \${{ bazel }} test_targets: - - \\"//...\\" + - "//..." ---------------------------------------------------- modules/submodule/1.0.0/source.json ---------------------------------------------------- { - \\"integrity\\": \\"sha256-yjUiRsFFe2FdefykIyd4CMmF/v12UDm4L/IrqiVkOHU=\\", - \\"strip_prefix\\": \\"multi-module-1.0.0/submodule\\", - \\"url\\": \\"https://github.com/testorg/multi-module/releases/download/v1.0.0.tar.gz\\" + "integrity": "sha256-yjUiRsFFe2FdefykIyd4CMmF/v12UDm4L/IrqiVkOHU=", + "strip_prefix": "multi-module-1.0.0/submodule", + "url": "https://github.com/testorg/multi-module/releases/download/v1.0.0.tar.gz" } ---------------------------------------------------- modules/submodule/metadata.json ---------------------------------------------------- { - \\"homepage\\": \\"https://github.com/testorg/multi-module\\", - \\"maintainers\\": [ + "homepage": "https://github.com/testorg/multi-module", + "maintainers": [ { - \\"name\\": \\"Foo McBar\\", - \\"email\\": \\"foo@test.org\\", - \\"github\\": \\"foobar\\" + "name": "Foo McBar", + "email": "foo@test.org", + "github": "foobar" }, { - \\"name\\": \\"Moo Cow\\", - \\"email\\": \\"moo@test.org\\", - \\"github\\": \\"moocow\\" + "name": "Moo Cow", + "email": "moo@test.org", + "github": "moocow" } ], - \\"repository\\": [ - \\"github:testorg/multi-module\\" + "repository": [ + "github:testorg/multi-module" ], - \\"versions\\": [ - \\"1.0.0\\" + "versions": [ + "1.0.0" ], - \\"yanked_versions\\": {} + "yanked_versions": {} } " @@ -258,53 +258,53 @@ exports[`e2e tests [snapshot] ruleset with tarball release archive 1`] = ` modules/tarball/1.0.0/MODULE.bazel ---------------------------------------------------- module( - name = \\"tarball\\", - version = \\"1.0.0\\", + name = "tarball", + version = "1.0.0", ) ---------------------------------------------------- modules/tarball/1.0.0/presubmit.yml ---------------------------------------------------- bcr_test_module: - module_path: \\"e2e/bzlmod\\" + module_path: "e2e/bzlmod" matrix: - platform: [\\"debian10\\", \\"macos\\", \\"ubuntu2004\\", \\"windows\\"] + platform: ["debian10", "macos", "ubuntu2004", "windows"] bazel: [6.x, 7.x] tasks: run_tests: - name: \\"Run test module\\" + name: "Run test module" platform: \${{ platform }} bazel: \${{ bazel }} test_targets: - - \\"//...\\" + - "//..." ---------------------------------------------------- modules/tarball/1.0.0/source.json ---------------------------------------------------- { - \\"integrity\\": \\"sha256-mWs9GDwmyMS21X73234Y9icqvygw4ALtwZ1aZ5hfYqQ=\\", - \\"strip_prefix\\": \\"tarball-1.0.0\\", - \\"url\\": \\"https://github.com/testorg/tarball/archive/refs/tags/v1.0.0.tar.gz\\" + "integrity": "sha256-mWs9GDwmyMS21X73234Y9icqvygw4ALtwZ1aZ5hfYqQ=", + "strip_prefix": "tarball-1.0.0", + "url": "https://github.com/testorg/tarball/archive/refs/tags/v1.0.0.tar.gz" } ---------------------------------------------------- modules/tarball/metadata.json ---------------------------------------------------- { - \\"homepage\\": \\"https://github.com/testorg/tarball\\", - \\"maintainers\\": [ + "homepage": "https://github.com/testorg/tarball", + "maintainers": [ { - \\"name\\": \\"Foo McBar\\", - \\"email\\": \\"foo@test.org\\", - \\"github\\": \\"foobar\\" + "name": "Foo McBar", + "email": "foo@test.org", + "github": "foobar" } ], - \\"repository\\": [ - \\"github:testorg/tarball\\" + "repository": [ + "github:testorg/tarball" ], - \\"versions\\": [ - \\"1.0.0\\" + "versions": [ + "1.0.0" ], - \\"yanked_versions\\": {} + "yanked_versions": {} } " @@ -315,8 +315,8 @@ exports[`e2e tests [snapshot] ruleset with unversioned module in source 1`] = ` modules/unversioned/1.0.0/MODULE.bazel ---------------------------------------------------- module( - name = \\"unversioned\\", - version = \\"1.0.0\\", + name = "unversioned", + version = "1.0.0", ) ---------------------------------------------------- @@ -327,59 +327,59 @@ modules/unversioned/1.0.0/patches/module_dot_bazel_version.patch +++ b/MODULE.bazel @@ -1,3 +1,4 @@ module( -- name = \\"unversioned\\" -+ name = \\"unversioned\\", -+ version = \\"1.0.0\\", +- name = "unversioned" ++ name = "unversioned", ++ version = "1.0.0", ) ---------------------------------------------------- modules/unversioned/1.0.0/presubmit.yml ---------------------------------------------------- bcr_test_module: - module_path: \\"e2e/bzlmod\\" + module_path: "e2e/bzlmod" matrix: - platform: [\\"debian10\\", \\"macos\\", \\"ubuntu2004\\", \\"windows\\"] + platform: ["debian10", "macos", "ubuntu2004", "windows"] bazel: [6.x, 7.x] tasks: run_tests: - name: \\"Run test module\\" + name: "Run test module" platform: \${{ platform }} bazel: \${{ bazel }} test_targets: - - \\"//...\\" + - "//..." ---------------------------------------------------- modules/unversioned/1.0.0/source.json ---------------------------------------------------- { - \\"integrity\\": \\"sha256-CnxkDLL9SgbYQmsmoCjZyQkHvHhZuxtzsCfm/3YGpK8=\\", - \\"strip_prefix\\": \\"unversioned-1.0.0\\", - \\"url\\": \\"https://github.com/testorg/unversioned/archive/refs/tags/v1.0.0.tar.gz\\", - \\"patches\\": { - \\"module_dot_bazel_version.patch\\": \\"sha256-kZesuygBz9d247Nv0mshe3bXxzIo+Ly4X0wYy8HYVEQ=\\" + "integrity": "sha256-CnxkDLL9SgbYQmsmoCjZyQkHvHhZuxtzsCfm/3YGpK8=", + "strip_prefix": "unversioned-1.0.0", + "url": "https://github.com/testorg/unversioned/archive/refs/tags/v1.0.0.tar.gz", + "patches": { + "module_dot_bazel_version.patch": "sha256-kZesuygBz9d247Nv0mshe3bXxzIo+Ly4X0wYy8HYVEQ=" }, - \\"patch_strip\\": 1 + "patch_strip": 1 } ---------------------------------------------------- modules/unversioned/metadata.json ---------------------------------------------------- { - \\"homepage\\": \\"https://github.com/testorg/unversioned\\", - \\"maintainers\\": [ + "homepage": "https://github.com/testorg/unversioned", + "maintainers": [ { - \\"name\\": \\"Foo McBar\\", - \\"email\\": \\"foo@test.org\\", - \\"github\\": \\"foobar\\" + "name": "Foo McBar", + "email": "foo@test.org", + "github": "foobar" } ], - \\"repository\\": [ - \\"github:testorg/unversioned\\" + "repository": [ + "github:testorg/unversioned" ], - \\"versions\\": [ - \\"1.0.0\\" + "versions": [ + "1.0.0" ], - \\"yanked_versions\\": {} + "yanked_versions": {} } " @@ -390,53 +390,53 @@ exports[`e2e tests [snapshot] ruleset with versioned module in source 1`] = ` modules/versioned/1.0.0/MODULE.bazel ---------------------------------------------------- module( - name = \\"versioned\\", - version = \\"1.0.0\\", + name = "versioned", + version = "1.0.0", ) ---------------------------------------------------- modules/versioned/1.0.0/presubmit.yml ---------------------------------------------------- bcr_test_module: - module_path: \\"e2e/bzlmod\\" + module_path: "e2e/bzlmod" matrix: - platform: [\\"debian10\\", \\"macos\\", \\"ubuntu2004\\", \\"windows\\"] + platform: ["debian10", "macos", "ubuntu2004", "windows"] bazel: [6.x, 7.x] tasks: run_tests: - name: \\"Run test module\\" + name: "Run test module" platform: \${{ platform }} bazel: \${{ bazel }} test_targets: - - \\"//...\\" + - "//..." ---------------------------------------------------- modules/versioned/1.0.0/source.json ---------------------------------------------------- { - \\"integrity\\": \\"sha256-RJiovEbqW4xZLGydBDpEkBAA4ah7/p+7EiGllA0Ul7I=\\", - \\"strip_prefix\\": \\"versioned-1.0.0\\", - \\"url\\": \\"https://github.com/testorg/versioned/archive/refs/tags/v1.0.0.tar.gz\\" + "integrity": "sha256-RJiovEbqW4xZLGydBDpEkBAA4ah7/p+7EiGllA0Ul7I=", + "strip_prefix": "versioned-1.0.0", + "url": "https://github.com/testorg/versioned/archive/refs/tags/v1.0.0.tar.gz" } ---------------------------------------------------- modules/versioned/metadata.json ---------------------------------------------------- { - \\"homepage\\": \\"https://github.com/testorg/versioned\\", - \\"maintainers\\": [ + "homepage": "https://github.com/testorg/versioned", + "maintainers": [ { - \\"name\\": \\"Foo McBar\\", - \\"email\\": \\"foo@test.org\\", - \\"github\\": \\"foobar\\" + "name": "Foo McBar", + "email": "foo@test.org", + "github": "foobar" } ], - \\"repository\\": [ - \\"github:testorg/versioned\\" + "repository": [ + "github:testorg/versioned" ], - \\"versions\\": [ - \\"1.0.0\\" + "versions": [ + "1.0.0" ], - \\"yanked_versions\\": {} + "yanked_versions": {} } " @@ -447,8 +447,8 @@ exports[`e2e tests [snapshot] ruleset with zero-versioned module in source 1`] = modules/zero-versioned/1.0.0/MODULE.bazel ---------------------------------------------------- module( - name = \\"zero-versioned\\", - version = \\"1.0.0\\", + name = "zero-versioned", + version = "1.0.0", ) ---------------------------------------------------- @@ -459,59 +459,59 @@ modules/zero-versioned/1.0.0/patches/module_dot_bazel_version.patch +++ b/MODULE.bazel @@ -1,4 +1,4 @@ module( - name = \\"zero-versioned\\", -- version = \\"0.0.0\\", -+ version = \\"1.0.0\\", + name = "zero-versioned", +- version = "0.0.0", ++ version = "1.0.0", ) ---------------------------------------------------- modules/zero-versioned/1.0.0/presubmit.yml ---------------------------------------------------- bcr_test_module: - module_path: \\"e2e/bzlmod\\" + module_path: "e2e/bzlmod" matrix: - platform: [\\"debian10\\", \\"macos\\", \\"ubuntu2004\\", \\"windows\\"] + platform: ["debian10", "macos", "ubuntu2004", "windows"] bazel: [6.x, 7.x] tasks: run_tests: - name: \\"Run test module\\" + name: "Run test module" platform: \${{ platform }} bazel: \${{ bazel }} test_targets: - - \\"//...\\" + - "//..." ---------------------------------------------------- modules/zero-versioned/1.0.0/source.json ---------------------------------------------------- { - \\"integrity\\": \\"sha256-f7zvwMqIcCPSWBUNCk6qILVFs+c7xmyxrCkDBLdjtX8=\\", - \\"strip_prefix\\": \\"zero-versioned-1.0.0\\", - \\"url\\": \\"https://github.com/testorg/zero-versioned/archive/refs/tags/v1.0.0.tar.gz\\", - \\"patches\\": { - \\"module_dot_bazel_version.patch\\": \\"sha256-KpbuC1vv5mfhdTs5nnTl3/pH7Y/6JCnD1b1XLsqyOAo=\\" + "integrity": "sha256-f7zvwMqIcCPSWBUNCk6qILVFs+c7xmyxrCkDBLdjtX8=", + "strip_prefix": "zero-versioned-1.0.0", + "url": "https://github.com/testorg/zero-versioned/archive/refs/tags/v1.0.0.tar.gz", + "patches": { + "module_dot_bazel_version.patch": "sha256-KpbuC1vv5mfhdTs5nnTl3/pH7Y/6JCnD1b1XLsqyOAo=" }, - \\"patch_strip\\": 1 + "patch_strip": 1 } ---------------------------------------------------- modules/zero-versioned/metadata.json ---------------------------------------------------- { - \\"homepage\\": \\"https://github.com/testorg/zero-versioned\\", - \\"maintainers\\": [ + "homepage": "https://github.com/testorg/zero-versioned", + "maintainers": [ { - \\"name\\": \\"Foo McBar\\", - \\"email\\": \\"foo@test.org\\", - \\"github\\": \\"foobar\\" + "name": "Foo McBar", + "email": "foo@test.org", + "github": "foobar" } ], - \\"repository\\": [ - \\"github:testorg/zero-versioned\\" + "repository": [ + "github:testorg/zero-versioned" ], - \\"versions\\": [ - \\"1.0.0\\" + "versions": [ + "1.0.0" ], - \\"yanked_versions\\": {} + "yanked_versions": {} } " @@ -522,53 +522,53 @@ exports[`e2e tests [snapshot] ruleset with zip release archive 1`] = ` modules/zip/1.0.0/MODULE.bazel ---------------------------------------------------- module( - name = \\"zip\\", - version = \\"1.0.0\\", + name = "zip", + version = "1.0.0", ) ---------------------------------------------------- modules/zip/1.0.0/presubmit.yml ---------------------------------------------------- bcr_test_module: - module_path: \\"e2e/bzlmod\\" + module_path: "e2e/bzlmod" matrix: - platform: [\\"debian10\\", \\"macos\\", \\"ubuntu2004\\", \\"windows\\"] + platform: ["debian10", "macos", "ubuntu2004", "windows"] bazel: [6.x, 7.x] tasks: run_tests: - name: \\"Run test module\\" + name: "Run test module" platform: \${{ platform }} bazel: \${{ bazel }} test_targets: - - \\"//...\\" + - "//..." ---------------------------------------------------- modules/zip/1.0.0/source.json ---------------------------------------------------- { - \\"integrity\\": \\"sha256-fencLRegfGaNYdAWP/WaXxUWJwzD19XQtpWf2qcmkZw=\\", - \\"strip_prefix\\": \\"zip-1.0.0\\", - \\"url\\": \\"https://github.com/testorg/zip/archive/refs/tags/v1.0.0.zip\\" + "integrity": "sha256-fencLRegfGaNYdAWP/WaXxUWJwzD19XQtpWf2qcmkZw=", + "strip_prefix": "zip-1.0.0", + "url": "https://github.com/testorg/zip/archive/refs/tags/v1.0.0.zip" } ---------------------------------------------------- modules/zip/metadata.json ---------------------------------------------------- { - \\"homepage\\": \\"https://github.com/testorg/zip\\", - \\"maintainers\\": [ + "homepage": "https://github.com/testorg/zip", + "maintainers": [ { - \\"name\\": \\"Foo McBar\\", - \\"email\\": \\"foo@test.org\\", - \\"github\\": \\"foobar\\" + "name": "Foo McBar", + "email": "foo@test.org", + "github": "foobar" } ], - \\"repository\\": [ - \\"github:testorg/zip\\" + "repository": [ + "github:testorg/zip" ], - \\"versions\\": [ - \\"1.0.0\\" + "versions": [ + "1.0.0" ], - \\"yanked_versions\\": {} + "yanked_versions": {} } " diff --git a/jest.config.ts b/jest.config.ts index ae84378..4a870c1 100644 --- a/jest.config.ts +++ b/jest.config.ts @@ -4,198 +4,25 @@ */ export default { - // All imported modules in your tests should be mocked automatically - // automock: false, - - // Stop running tests after `n` failures - // bail: 0, - - // The directory where Jest should store its cached dependency information - // cacheDirectory: "/private/var/folders/pd/mpctclh50bd0bxp2n1th3z_w0000gn/T/jest_dx", - // Automatically clear mock calls, instances, contexts and results before every test clearMocks: true, - // Indicates whether the coverage information should be collected while executing the test - // collectCoverage: false, - - // An array of glob patterns indicating a set of files for which coverage information should be collected - // collectCoverageFrom: undefined, - - // The directory where Jest should output its coverage files - // coverageDirectory: undefined, - - // An array of regexp pattern strings used to skip coverage collection - // coveragePathIgnorePatterns: [ - // "/node_modules/" - // ], - - // Indicates which provider should be used to instrument code for coverage - coverageProvider: "v8", - - // A list of reporter names that Jest uses when writing coverage reports - // coverageReporters: [ - // "json", - // "text", - // "lcov", - // "clover" - // ], - - // An object that configures minimum threshold enforcement for coverage results - // coverageThreshold: undefined, - - // A path to a custom dependency extractor - // dependencyExtractor: undefined, - - // Make calling deprecated APIs throw helpful error messages - // errorOnDeprecated: false, - - // The default configuration for fake timers - // fakeTimers: { - // "enableGlobally": false - // }, - - // Force coverage collection from ignored files using an array of glob patterns - // forceCoverageMatch: [], - - // A path to a module which exports an async function that is triggered once before all test suites - // globalSetup: undefined, - - // A path to a module which exports an async function that is triggered once after all test suites - // globalTeardown: undefined, - - // A set of global variables that need to be available in all test environments - globals: { - "ts-jest": { - useESM: true, - }, - }, - - // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers. - // maxWorkers: "50%", - - // An array of directory names to be searched recursively up from the requiring module's location - // moduleDirectories: [ - // "node_modules" - // ], - - // An array of file extensions your modules use - // moduleFileExtensions: [ - // "js", - // "mjs", - // "cjs", - // "jsx", - // "ts", - // "tsx", - // "json", - // "node" - // ], - // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module moduleNameMapper: { + // We compile TypeScript to ES6 which requires extensions in module specifiers, + // however adding the extension fails under jest tests. Remove the ".js" extension + // from module names when running tests. "^(\\.{1,2}/.*)\\.js$": "$1", }, - // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader - // modulePathIgnorePatterns: [], - - // Activates notifications for test results - // notify: false, - - // An enum that specifies notification mode. Requires { notify: true } - // notifyMode: "failure-change", - - // A preset that is used as a base for Jest's configuration - // preset: undefined, - - // Run tests from one or more projects - // projects: undefined, - - // Use this configuration option to add custom reporters to Jest - // reporters: undefined, - - // Automatically reset mock state before every test - // resetMocks: false, - - // Reset the module registry before running each individual test - // resetModules: false, - - // A path to a custom resolver - // resolver: undefined, - - // Automatically restore mock state and implementation before every test - // restoreMocks: false, - - // The root directory that Jest should scan for tests and modules within - // rootDir: undefined, - - // A list of paths to directories that Jest should use to search for files in - roots: ["src", "e2e"], - - // Allows you to use a custom runner instead of Jest's default test runner - // runner: "jest-runner", - - // The paths to modules that run some code to configure or set up the testing environment before each test - // setupFiles: [], + // An array of regexp pattern strings that are matched against all module paths before those paths are to be considered 'visible' to the module loader. + modulePathIgnorePatterns: ["/dist"], // A list of paths to modules that run some code to configure or set up the testing framework before each test - // setupFilesAfterEnv: [], - - // The number of seconds after which a test is considered as slow and reported as such in the results. - // slowTestThreshold: 5, - - // A list of paths to snapshot serializer modules Jest should use for snapshot testing - // snapshotSerializers: [], - - // The test environment that will be used for testing - // testEnvironment: "jest-environment-node", - - // Options that will be passed to the testEnvironment - // testEnvironmentOptions: {}, - - // Adds a location field to test results - // testLocationInResults: false, - - // The glob patterns Jest uses to detect test files - // testMatch: [ - // "**/__tests__/**/*.[jt]s?(x)", - // "**/?(*.)+(spec|test).[tj]s?(x)" - // ], - - // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped - // testPathIgnorePatterns: [ - // "/node_modules/" - // ], - - // The regexp pattern or array of patterns that Jest uses to detect test files - // testRegex: [], - - // This option allows the use of a custom results processor - // testResultsProcessor: undefined, - - // This option allows use of a custom test runner - // testRunner: "jest-circus/runner", + setupFilesAfterEnv: ["./jest.setup.ts"], // A map from regular expressions to paths to transformers transform: { "^.+\\.ts?$": "ts-jest", }, - - // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation - // transformIgnorePatterns: [ - // "/node_modules/", - // "\\.pnp\\.[^\\/]+$" - // ], - - // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them - // unmockedModulePathPatterns: undefined, - - // Indicates whether each individual test should be reported during the run - // verbose: undefined, - - // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode - // watchPathIgnorePatterns: [], - - // Whether to use watchman for file crawling - // watchman: true, }; diff --git a/jest.setup.ts b/jest.setup.ts index 502a8e4..3333a84 100644 --- a/jest.setup.ts +++ b/jest.setup.ts @@ -1,73 +1,9 @@ -import { MatcherFunction } from 'expect' +import { expect } from "@jest/globals"; -declare global { - namespace jest { - interface Matchers { - toThrowErrorContaining( - errorType: new (...args: any[]) => T, - message: string - ): R; - } - interface Expect { - matchesPredicate(predicate: (actual: any) => boolean): any; - } - interface ExpectExtendMap { - matchesPredicate: MatcherFunction<[predicate: (actual: any) => boolean]>; - } - } -} +import { toThrowWithMessage } from "jest-extended"; +expect.extend({ toThrowWithMessage }); expect.extend({ - toThrowErrorContaining( - func: Function, - errorType: new (...args: any[]) => T, - message: string - ) { - try { - func(); - } catch (e) { - if (!(e instanceof errorType)) { - return { - pass: false, - message: () => `\ -Expected error to throw: - - ${errorType} - -But instead it threw: - - ${e.constructor} -`, - }; - } - - if (!e.message.includes(message)) { - return { - pass: false, - message: () => `\ -Expected error message to contain: - - ${message} - -But instead it was: - - ${e.message} -`, - }; - } - - return { - pass: true, - message: () => "", - }; - } - - return { - pass: false, - message: () => "Expected function to throw but it did not", - }; - }, - matchesPredicate(actual: any, predicate: (actual: any) => boolean) { return { pass: predicate(actual), @@ -76,4 +12,12 @@ But instead it was: }, }); +declare global { + namespace jest { + interface Expect { + matchesPredicate(predicate: (actual: any) => boolean): any; + } + } +} + export default undefined; diff --git a/package.json b/package.json index 55bafa3..a086782 100644 --- a/package.json +++ b/package.json @@ -42,11 +42,12 @@ "yaml": "^2.1.1" }, "devDependencies": { + "@jest/globals": "^29.7.0", "@octokit/webhooks-methods": "^4.0.0", "@types/archiver": "^6.0.2", "@types/diff": "^5.0.2", "@types/imapflow": "1.0.17", - "@types/jest": "^28.0.0", + "@types/jest": "^29.5.14", "@types/mailparser": "^3.4.4", "@types/node": "^18.6.2", "@types/nodemailer": "^6.4.5", @@ -57,12 +58,13 @@ "expect": "^28.1.3", "globby": "^14.0.0", "imapflow": "^1.0.147", - "jest": "^28.1.3", - "jest-mock": "^28.1.3", + "jest": "^29.7.0", + "jest-extended": "^4.0.2", + "jest-mock": "^29.7.0", "mailparser": "3.6.6", "mockttp": "^3.10.0", "portfinder": "^1.0.32", - "ts-jest": "^28.0.7", + "ts-jest": "^29.2.5", "ts-node": "^10.9.1", "typescript": "^5.0.0" }, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8af7838..a13f3a4 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -12,16 +12,16 @@ importers: dependencies: '@google-cloud/functions-framework': specifier: ^3.1.2 - version: 3.4.2 + version: 3.4.5 '@google-cloud/secret-manager': specifier: ^5.0.1 version: 5.6.0 '@nestjs/common': specifier: ^10.3.9 - version: 10.4.13(reflect-metadata@0.2.2)(rxjs@7.8.1) + version: 10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nestjs/core': specifier: ^10.3.9 - version: 10.4.13(@nestjs/common@10.4.13(reflect-metadata@0.2.2)(rxjs@7.8.1))(reflect-metadata@0.2.2)(rxjs@7.8.1) + version: 10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(reflect-metadata@0.2.2)(rxjs@7.8.1) '@octokit/auth-app': specifier: ^4.0.4 version: 4.0.13 @@ -81,8 +81,11 @@ importers: version: 6.2.1 yaml: specifier: ^2.1.1 - version: 2.6.1 + version: 2.7.0 devDependencies: + '@jest/globals': + specifier: ^29.7.0 + version: 29.7.0 '@types/archiver': specifier: ^6.0.2 version: 6.0.3 @@ -93,14 +96,14 @@ importers: specifier: 1.0.17 version: 1.0.17 '@types/jest': - specifier: ^28.0.0 - version: 28.1.8 + specifier: ^29.5.14 + version: 29.5.14 '@types/mailparser': specifier: ^3.4.4 version: 3.4.5 '@types/node': specifier: ^18.6.2 - version: 18.19.67 + version: 18.19.70 '@types/nodemailer': specifier: ^6.4.5 version: 6.4.17 @@ -124,13 +127,16 @@ importers: version: 14.0.2 imapflow: specifier: ^1.0.147 - version: 1.0.171 + version: 1.0.174 jest: - specifier: ^28.1.3 - version: 28.1.3(@types/node@18.19.67)(ts-node@10.9.2(@types/node@18.19.67)(typescript@5.7.2)) + specifier: ^29.7.0 + version: 29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@types/node@18.19.70)(typescript@5.7.3)) + jest-extended: + specifier: ^4.0.2 + version: 4.0.2(jest@29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@types/node@18.19.70)(typescript@5.7.3))) jest-mock: - specifier: ^28.1.3 - version: 28.1.3 + specifier: ^29.7.0 + version: 29.7.0 mailparser: specifier: 3.6.6 version: 3.6.6 @@ -141,14 +147,14 @@ importers: specifier: ^1.0.32 version: 1.0.32 ts-jest: - specifier: ^28.0.7 - version: 28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@18.19.67)(ts-node@10.9.2(@types/node@18.19.67)(typescript@5.7.2)))(typescript@5.7.2) + specifier: ^29.2.5 + version: 29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@types/node@18.19.70)(typescript@5.7.3)))(typescript@5.7.3) ts-node: specifier: ^10.9.1 - version: 10.9.2(@types/node@18.19.67)(typescript@5.7.2) + version: 10.9.2(@types/node@18.19.70)(typescript@5.7.3) typescript: specifier: ^5.0.0 - version: 5.7.2 + version: 5.7.3 packages: @@ -248,6 +254,12 @@ packages: peerDependencies: '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-jsx@7.25.9': + resolution: {integrity: sha512-ld6oezHQMZsZfp6pWtbjaNDF2tiiCYYDqQszHt5VV437lewP9aSi2Of99CK0D0XB21k7FLgnLcmQKyKzynfeAA==} + engines: {node: '>=6.9.0'} + peerDependencies: + '@babel/core': ^7.0.0-0 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4': resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: @@ -315,8 +327,8 @@ packages: resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} - '@google-cloud/functions-framework@3.4.2': - resolution: {integrity: sha512-yJcxfVgjLoKFO3p6Wy6Fc+Gi6l3PFSwJg4m0mjebx/UHdLeXLYYxgKMP8RCODaApXEWXbSITIjXO0m5kSv2Ilw==} + '@google-cloud/functions-framework@3.4.5': + resolution: {integrity: sha512-mf3Yw3kRPsz0K7TytvSoqO3peuVZWPi9B3S8zacIk49zi2WqL+rjHaw4zPZ8T3O89jDsCZVj5PFpDJC6Ge4mpA==} engines: {node: '>=10.0.0'} hasBin: true @@ -344,8 +356,8 @@ packages: peerDependencies: graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 - '@grpc/grpc-js@1.12.4': - resolution: {integrity: sha512-NBhrxEWnFh0FxeA0d//YP95lRFsSx2TNLEUQg4/W+5f/BMxcCjgOOIT24iD+ZB/tZw057j44DaIxja7w4XMrhg==} + '@grpc/grpc-js@1.12.5': + resolution: {integrity: sha512-d3iiHxdpg5+ZcJ6jnDSOT8Z0O0VMVGy34jAnYLUX8yd36b1qn8f1TwOA/Lc7TsOh03IkPJ38eGI5qD2EjNkoEA==} engines: {node: '>=12.10.0'} '@grpc/proto-loader@0.7.13': @@ -373,42 +385,46 @@ packages: resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} engines: {node: '>=8'} - '@jest/console@28.1.3': - resolution: {integrity: sha512-QPAkP5EwKdK/bxIr6C1I4Vs0rm2nHiANzj/Z5X2JQkrZo6IqvC4ldZ9K95tF0HdidhA8Bo6egxSzUFPYKcEXLw==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + '@jest/console@29.7.0': + resolution: {integrity: sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/core@28.1.3': - resolution: {integrity: sha512-CIKBrlaKOzA7YG19BEqCw3SLIsEwjZkeJzf5bdooVnW4bH5cktqe3JX+G2YV1aK5vP8N9na1IGWFzYaTp6k6NA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + '@jest/core@29.7.0': + resolution: {integrity: sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: node-notifier: optional: true - '@jest/environment@28.1.3': - resolution: {integrity: sha512-1bf40cMFTEkKyEf585R9Iz1WayDjHoHqvts0XFYEqyKM3cFWDpeMoqKKTAF9LSYQModPUlh8FKptoM2YcMWAXA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + '@jest/environment@29.7.0': + resolution: {integrity: sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/expect-utils@28.1.3': resolution: {integrity: sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - '@jest/expect@28.1.3': - resolution: {integrity: sha512-lzc8CpUbSoE4dqT0U+g1qODQjBRHPpCPXissXD4mS9+sWQdmmpeJ9zSH1rS1HEkrsMN0fb7nKrJ9giAR1d3wBw==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + '@jest/expect-utils@29.7.0': + resolution: {integrity: sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/fake-timers@28.1.3': - resolution: {integrity: sha512-D/wOkL2POHv52h+ok5Oj/1gOG9HSywdoPtFsRCUmlCILXNn5eIWmcnd3DIiWlJnpGvQtmajqBP95Ei0EimxfLw==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + '@jest/expect@29.7.0': + resolution: {integrity: sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/globals@28.1.3': - resolution: {integrity: sha512-XFU4P4phyryCXu1pbcqMO0GSQcYe1IsalYCDzRNyhetyeyxMcIxa11qPNDpVNLeretItNqEmYYQn1UYz/5x1NA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + '@jest/fake-timers@29.7.0': + resolution: {integrity: sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/reporters@28.1.3': - resolution: {integrity: sha512-JuAy7wkxQZVNU/V6g9xKzCGC5LVXx9FDcABKsSXp5MiKPEE2144a/vXTEDoyzjUpZKfVwp08Wqg5A4WfTMAzjg==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + '@jest/globals@29.7.0': + resolution: {integrity: sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/reporters@29.7.0': + resolution: {integrity: sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: @@ -419,28 +435,36 @@ packages: resolution: {integrity: sha512-/l/VWsdt/aBXgjshLWOFyFt3IVdYypu5y2Wn2rOO1un6nkqIn8SLXzgIMYXFyYsRWDyF5EthmKJMIdJvk08grg==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - '@jest/source-map@28.1.2': - resolution: {integrity: sha512-cV8Lx3BeStJb8ipPHnqVw/IM2VCMWO3crWZzYodSIkxXnRcXJipCdx1JCK0K5MsJJouZQTH73mzf4vgxRaH9ww==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + '@jest/schemas@29.6.3': + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/test-result@28.1.3': - resolution: {integrity: sha512-kZAkxnSE+FqE8YjW8gNuoVkkC9I7S1qmenl8sGcDOLropASP+BkcGKwhXoyqQuGOGeYY0y/ixjrd/iERpEXHNg==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + '@jest/source-map@29.6.3': + resolution: {integrity: sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/test-sequencer@28.1.3': - resolution: {integrity: sha512-NIMPEqqa59MWnDi1kvXXpYbqsfQmSJsIbnd85mdVGkiDfQ9WQQTXOLsvISUfonmnBT+w85WEgneCigEEdHDFxw==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + '@jest/test-result@29.7.0': + resolution: {integrity: sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - '@jest/transform@28.1.3': - resolution: {integrity: sha512-u5dT5di+oFI6hfcLOHGTAfmUxFRrjK+vnaP0kkVow9Md/M7V/MxqQMOz/VV25UZO8pzeA9PjfTpOu6BDuwSPQA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + '@jest/test-sequencer@29.7.0': + resolution: {integrity: sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jest/transform@29.7.0': + resolution: {integrity: sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} '@jest/types@28.1.3': resolution: {integrity: sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - '@jridgewell/gen-mapping@0.3.5': - resolution: {integrity: sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==} + '@jest/types@29.6.3': + resolution: {integrity: sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + '@jridgewell/gen-mapping@0.3.8': + resolution: {integrity: sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA==} engines: {node: '>=6.0.0'} '@jridgewell/resolve-uri@3.1.2': @@ -473,8 +497,8 @@ packages: resolution: {integrity: sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA==} engines: {node: '>=8'} - '@nestjs/common@10.4.13': - resolution: {integrity: sha512-NVJ2UYMRdMkxCcwmoWP8xihpUyd1uqKR+7QqTF3m8aedufpZm8W6WbUmNkD1j/o9TxRzhKW43PemeSMigZj+Bw==} + '@nestjs/common@10.4.15': + resolution: {integrity: sha512-vaLg1ZgwhG29BuLDxPA9OAcIlgqzp9/N8iG0wGapyUNTf4IY4O6zAHgN6QalwLhFxq7nOI021vdRojR1oF3bqg==} peerDependencies: class-transformer: '*' class-validator: '*' @@ -486,8 +510,8 @@ packages: class-validator: optional: true - '@nestjs/core@10.4.13': - resolution: {integrity: sha512-zivGEaq9tmwdeQi/RK0nUVdvhdIwcIsytBvEGTmDBFkmEnxEMp3T0Ia4BTFlTFrjLAb5D2cNUQZBZZj1vqfXtw==} + '@nestjs/core@10.4.15': + resolution: {integrity: sha512-UBejmdiYwaH6fTsz2QFBlC1cJHM+3UDeLZN+CiP9I1fRv2KlBZsmozGLbV5eS1JAVWJB4T5N5yQ0gjN8ZvcS2w==} peerDependencies: '@nestjs/common': ^10.0.0 '@nestjs/microservices': ^10.0.0 @@ -648,15 +672,18 @@ packages: '@sinclair/typebox@0.24.51': resolution: {integrity: sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==} + '@sinclair/typebox@0.27.8': + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} + '@sindresorhus/merge-streams@2.3.0': resolution: {integrity: sha512-LtoMMhxAlorcGhmFYI+LhPgbPZCkgP6ra1YL604EeF6U98pLlQ3iWIGMdWSC+vWmPBWBNgmDBAhnAobLROJmwg==} engines: {node: '>=18'} - '@sinonjs/commons@1.8.6': - resolution: {integrity: sha512-Ky+XkAkqPZSm3NLBeUng77EBQl3cmeJhITaGHdYH8kjVB+aun3S4XBRti2zt17mtt0mIUDiNxYeoJm6drVvBJQ==} + '@sinonjs/commons@3.0.1': + resolution: {integrity: sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==} - '@sinonjs/fake-timers@9.1.2': - resolution: {integrity: sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==} + '@sinonjs/fake-timers@10.3.0': + resolution: {integrity: sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==} '@tootallnate/once@2.0.0': resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} @@ -710,11 +737,11 @@ packages: '@types/diff@5.2.3': resolution: {integrity: sha512-K0Oqlrq3kQMaO2RhfrNQX5trmt+XLyom88zS0u84nnIcLvFnRUMRRHmrGny5GSM+kNO9IZLARsdQHDzkhAgmrQ==} - '@types/express-serve-static-core@4.19.6': - resolution: {integrity: sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==} + '@types/express-serve-static-core@5.0.4': + resolution: {integrity: sha512-5kz9ScmzBdzTgB/3susoCgfqNDzBjvLL4taparufgSvlwjdLy6UyUy9T/tCpYd2GIdIilCatC4iSQS0QSYHt0w==} - '@types/express@4.17.21': - resolution: {integrity: sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==} + '@types/express@5.0.0': + resolution: {integrity: sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==} '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -734,8 +761,8 @@ packages: '@types/istanbul-reports@3.0.4': resolution: {integrity: sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==} - '@types/jest@28.1.8': - resolution: {integrity: sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw==} + '@types/jest@29.5.14': + resolution: {integrity: sha512-ZN+4sdnLUbo8EVvVc2ao0GFW6oVrQRPn4K2lglySj7APvSrgzxHiNNK99us4WDMi57xxA2yggblIAMNhXOotLQ==} '@types/jsonwebtoken@9.0.7': resolution: {integrity: sha512-ugo316mmTYBl2g81zDFnZ7cfxlut3o+/EQdaP7J8QN2kY6lJ22hmQYCK5EHcJHbrW+dkCGSCPgbG8JtYj6qSrg==} @@ -749,8 +776,8 @@ packages: '@types/mime@1.3.5': resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/node@18.19.67': - resolution: {integrity: sha512-wI8uHusga+0ZugNp0Ol/3BqQfEcCCNfojtO6Oou9iVNGPTL6QNSdnUdqq85fRgIorLhLMuPIKpsN98QE9Nh+KQ==} + '@types/node@18.19.70': + resolution: {integrity: sha512-RE+K0+KZoEpDUbGGctnGdkrLFwi1eYKTlIHNl2Um98mUkGsm1u2Ff6Ltd0e8DktTtC98uy7rSj+hO8t/QuLoVQ==} '@types/nodemailer@6.4.17': resolution: {integrity: sha512-I9CCaIp6DTldEg7vyUTZi8+9Vo0hi1/T8gv3C89yk1rSAAzoKQ8H8ki/jBYJSFoH/BisgLP8tkZMlQ91CIquww==} @@ -758,9 +785,6 @@ packages: '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} - '@types/prettier@2.7.3': - resolution: {integrity: sha512-+68kP9yzs4LMp7VNh8gdzMSPZFL44MLGqiHWvttYJe+6qnuVr4Ek9wSBQoveqY/r+LwjCcU29kNVkidwim+kYA==} - '@types/qs@6.9.17': resolution: {integrity: sha512-rX4/bPcfmvxHDv0XjfJELTTr+iB+tn032nPILqHm5wbthUUUuVtNGGqzhya9XUxjTP8Fpr0qYgSZZKxGY++svQ==} @@ -918,9 +942,9 @@ packages: b4a@1.6.7: resolution: {integrity: sha512-OnAYlL5b7LEkALw87fUVafQw5rVR9RjwGd4KUwNQ6DrrNmaVaUCgLipfVlzrPQ4tWOR9P0IXGNOx50jYCCdSJg==} - babel-jest@28.1.3: - resolution: {integrity: sha512-epUaPOEWMk3cWX0M/sPvCHHCe9fMFAa/9hXEgKP8nFfNl/jlGkE9ucq9NqkZGXLDduCJYS0UvSlPUwC0S+rH6Q==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + babel-jest@29.7.0: + resolution: {integrity: sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.8.0 @@ -928,18 +952,18 @@ packages: resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} engines: {node: '>=8'} - babel-plugin-jest-hoist@28.1.3: - resolution: {integrity: sha512-Ys3tUKAmfnkRUpPdpa98eYrAR0nV+sSFUZZEGuQ2EbFd1y4SOLtD5QDNHAq+bb9a+bbXvYQC4b+ID/THIMcU6Q==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + babel-plugin-jest-hoist@29.6.3: + resolution: {integrity: sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} babel-preset-current-node-syntax@1.1.0: resolution: {integrity: sha512-ldYss8SbBlWva1bs28q78Ju5Zq1F+8BrqBZZ0VFhLBvhh6lCpC2o3gDJi/5DRLs9FgYZCnmPYIVFU4lRXCkyUw==} peerDependencies: '@babel/core': ^7.0.0 - babel-preset-jest@28.1.3: - resolution: {integrity: sha512-L+fupJvlWAHbQfn74coNX3zf60LXMJsezNvvx8eIh7iOR1luJ1poxYgQk1F8PYtNq/6QODDHCqsSnTFSWC491A==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + babel-preset-jest@29.6.3: + resolution: {integrity: sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@babel/core': ^7.0.0 @@ -949,8 +973,8 @@ packages: balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - bare-events@2.5.0: - resolution: {integrity: sha512-/E8dDe9dsbLyh2qrZ64PEPadOQ0F4gbl1sUJOrmph7xOiIxfY8vwab/4bFLh4Y88/Hk/ujKcrQKc+ps0mv873A==} + bare-events@2.5.3: + resolution: {integrity: sha512-pCO3aoRJ0MBiRMu8B7vUga0qL3L7gO1+SW7ku6qlSsMLwuhaawnuvZDyzJY/kyC63Un0XAB0OPUcfF1eTO/V+Q==} base64-arraybuffer@0.1.5: resolution: {integrity: sha512-437oANT9tP582zZMwSvZGy2nmSeAb8DW2me3y+Uv1Wp2Rulr8Mqlyrv3E7MLxmsiaPSMMDmiDVzgE+e8zlMx9g==} @@ -987,8 +1011,8 @@ packages: resolution: {integrity: sha512-U3K72/JAi3jITpdhZBqzSUq+DUY697tLxOuFXB+FpAE/Ug+5C3VZrv4uA674EUZHxNAuQ9wETXNqQkxZD6oL4A==} engines: {node: '>=v18.0.0'} - browserslist@4.24.2: - resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} + browserslist@4.24.4: + resolution: {integrity: sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1019,14 +1043,18 @@ packages: resolution: {integrity: sha512-KJ/Dmo1lDDhmW2XDPMo+9oiy/CeqosPguPCrgcVzKyZrL6pM1gU2GmPY/xo6OQPTUaA/c0kwHuywB4E6nmT9ww==} engines: {node: '>=10.6.0'} - call-bind-apply-helpers@1.0.0: - resolution: {integrity: sha512-CCKAP2tkPau7D3GE8+V8R6sQubA9R5foIzGp+85EXCVSCivuxBNAWqcpn72PKYiIcqoViv/kcUDpaEIMBVi1lQ==} + call-bind-apply-helpers@1.0.1: + resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} engines: {node: '>= 0.4'} call-bind@1.0.8: resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} engines: {node: '>= 0.4'} + call-bound@1.0.3: + resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} + engines: {node: '>= 0.4'} + callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -1039,8 +1067,8 @@ packages: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} - caniuse-lite@1.0.30001687: - resolution: {integrity: sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ==} + caniuse-lite@1.0.30001690: + resolution: {integrity: sha512-5ExiE3qQN6oF8Clf8ifIDcMRCRE/dMGcETG/XGMD8/XiXm6HXQgQTh1yZYLXXpSOsEUlJm1Xr7kGULZTuGtP/w==} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -1117,9 +1145,6 @@ packages: resolution: {integrity: sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==} engines: {node: '>= 0.6'} - convert-source-map@1.9.0: - resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} - convert-source-map@2.0.0: resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} @@ -1149,11 +1174,16 @@ packages: resolution: {integrity: sha512-lO1dFui+CEUh/ztYIpgpKItKW9Bb4NWakCRJrnqAbFIYD+OZAwb2VfD5T5eXMw2FNcsDHkQcNl/Wh3iVXYwU6g==} engines: {node: '>= 12.0.0'} + create-jest@29.7.0: + resolution: {integrity: sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + hasBin: true + create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} - cross-fetch@3.1.8: - resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==} + cross-fetch@3.2.0: + resolution: {integrity: sha512-Q+xVJLoGOeIMXZmbUK4HYk+69cQH6LudR0Vu/pRm2YlU/hDV9CiS0gKUMaWY5f2NeUH9C1nV3bsTlCo0FsTV1Q==} cross-spawn@7.0.6: resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} @@ -1188,8 +1218,13 @@ packages: supports-color: optional: true - dedent@0.7.0: - resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} + dedent@1.5.3: + resolution: {integrity: sha512-NHQtfOOW68WD8lgypbLA5oT+Bt0xXJhiYvoR6SmmNXZfpzOGXwdKWmcwG8N7PwVVWV3eF/68nmD9BaJSsTBhyQ==} + peerDependencies: + babel-plugin-macros: ^3.1.0 + peerDependenciesMeta: + babel-plugin-macros: + optional: true deepmerge@4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} @@ -1230,6 +1265,10 @@ packages: resolution: {integrity: sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} @@ -1248,11 +1287,11 @@ packages: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} - domutils@3.1.0: - resolution: {integrity: sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==} + domutils@3.2.2: + resolution: {integrity: sha512-6kZKyUajlDuqlHKVX1w7gyslj9MPIXzIFiz/rGu35uC1wMi+kMhQwGhl4lt9unC9Vb9INnY9Z3/ZA3+FhASLaw==} - dunder-proto@1.0.0: - resolution: {integrity: sha512-9+Sj30DIu+4KvHqMfLUGLFYL2PkURSYMVXJyXe92nFRvlYq5hBjLEhblKB+vkd/WVlUYMWigiY07T91Fkk0+4A==} + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} engines: {node: '>= 0.4'} duplexify@3.7.1: @@ -1267,11 +1306,16 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - electron-to-chromium@1.5.71: - resolution: {integrity: sha512-dB68l59BI75W1BUGVTAEJy45CEVuEGy9qPVVQ8pnHyHMn36PLPPoE1mjLH+lo9rKulO3HC2OhbACI/8tCqJBcA==} + ejs@3.1.10: + resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} + engines: {node: '>=0.10.0'} + hasBin: true + + electron-to-chromium@1.5.79: + resolution: {integrity: sha512-nYOxJNxQ9Om4EC88BE4pPoNI8xwSFf8pU/BAeOl4Hh/b/i6V4biTAzwV7pXi3ARKeoYO5JZKMIXTryXSVer5RA==} - emittery@0.10.2: - resolution: {integrity: sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==} + emittery@0.13.1: + resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} engines: {node: '>=12'} emoji-regex@8.0.0: @@ -1311,6 +1355,10 @@ packages: resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} engines: {node: '>= 0.4'} + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + escalade@3.2.0: resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} engines: {node: '>=6'} @@ -1363,6 +1411,10 @@ packages: resolution: {integrity: sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + expect@29.7.0: + resolution: {integrity: sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + exponential-backoff@3.1.1: resolution: {integrity: sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==} @@ -1384,8 +1436,8 @@ packages: fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} - fast-glob@3.3.2: - resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} engines: {node: '>=8.6.0'} fast-json-patch@3.1.1: @@ -1401,11 +1453,11 @@ packages: fast-safe-stringify@2.1.1: resolution: {integrity: sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==} - fast-uri@3.0.3: - resolution: {integrity: sha512-aLrHthzCjH5He4Z2H9YZ+v6Ujb9ocRuW6ZzkJQOrTxleEijANq4v1TsaPaVG1PZcuurEzrLcWRyYBYXD5cEiaw==} + fast-uri@3.0.5: + resolution: {integrity: sha512-5JnBCWpFlMo0a3ciDy/JckMzzv1U9coZrIhedq+HXxxUfDTAiS0LA8OKVao4G9BxmCVck/jtA5r3KAtRWEyD8Q==} - fastq@1.17.1: - resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==} + fastq@1.18.0: + resolution: {integrity: sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==} fb-watchman@2.0.2: resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} @@ -1413,6 +1465,9 @@ packages: fd-slicer@1.1.0: resolution: {integrity: sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g==} + filelist@1.0.4: + resolution: {integrity: sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==} + fill-range@7.1.1: resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} engines: {node: '>=8'} @@ -1488,14 +1543,18 @@ packages: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} - get-intrinsic@1.2.5: - resolution: {integrity: sha512-Y4+pKa7XeRUPWFNvOOYHkRYrfzW07oraURSvjDmRVOJ748OrVmeXtpE4+GCEHncjCjkTxPNRt8kEbxDhsn6VTg==} + get-intrinsic@1.2.7: + resolution: {integrity: sha512-VW6Pxhsrk0KAOqs3WEd0klDiF/+V7gQOpAvY1jVU/LHmaD/kQO4523aiJuikX/QAKYiW6x8Jh+RJej1almdtCA==} engines: {node: '>= 0.4'} get-package-type@0.1.0: resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} engines: {node: '>=8.0.0'} + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} @@ -1649,8 +1708,8 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} - imapflow@1.0.171: - resolution: {integrity: sha512-4H33FkLk1bDBdfSF0uacFFHuha83S1F7njhskh20vO1CweZ+jO65f3SD47ZcoE9HEQ5SqeaEwCkiQPBPkjcIhw==} + imapflow@1.0.174: + resolution: {integrity: sha512-GLpinGBVZHgi09rSZLP5YoTjb2Z+p9Sc5fUrmka/WEkAVlsSVKFqO0AobQPIRBsyDIXqWuvV2e1/DZOfHYaBUQ==} import-local@3.2.0: resolution: {integrity: sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==} @@ -1680,8 +1739,8 @@ packages: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} - is-arguments@1.1.1: - resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==} + is-arguments@1.2.0: + resolution: {integrity: sha512-7bVbi0huj/wrIAOzb8U1aszg9kdi3KN/CyU19CTI7tAoZYEZoL9yCDXpbXN+uPsuWnP02cyug1gleqq+TU+YCA==} engines: {node: '>= 0.4'} is-arrayish@0.2.1: @@ -1691,8 +1750,8 @@ packages: resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} - is-core-module@2.15.1: - resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + is-core-module@2.16.1: + resolution: {integrity: sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==} engines: {node: '>= 0.4'} is-extglob@2.1.1: @@ -1707,8 +1766,8 @@ packages: resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} engines: {node: '>=6'} - is-generator-function@1.0.10: - resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + is-generator-function@1.1.0: + resolution: {integrity: sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==} engines: {node: '>= 0.4'} is-glob@4.0.3: @@ -1723,6 +1782,10 @@ packages: resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} engines: {node: '>=0.10.0'} + is-regex@1.2.1: + resolution: {integrity: sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==} + engines: {node: '>= 0.4'} + is-retry-allowed@2.2.0: resolution: {integrity: sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==} engines: {node: '>=10'} @@ -1731,8 +1794,8 @@ packages: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} - is-typed-array@1.1.13: - resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + is-typed-array@1.1.15: + resolution: {integrity: sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==} engines: {node: '>= 0.4'} isarray@1.0.0: @@ -1754,6 +1817,10 @@ packages: resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} engines: {node: '>=8'} + istanbul-lib-instrument@6.0.3: + resolution: {integrity: sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==} + engines: {node: '>=10'} + istanbul-lib-report@3.0.1: resolution: {integrity: sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==} engines: {node: '>=10'} @@ -1773,17 +1840,22 @@ packages: resolution: {integrity: sha512-RKYVTCjAnRthyJes037NX/IiqeidgN1xc3j1RjFfECFp28A1GVwK9nA+i0rJPaHqSZwygLzRnFlzUuHFoWWy+Q==} engines: {node: '>=6'} - jest-changed-files@28.1.3: - resolution: {integrity: sha512-esaOfUWJXk2nfZt9SPyC8gA1kNfdKLkQWyzsMlqq8msYSlNKfmZxfRgZn4Cd4MGVUF+7v6dBs0d5TOAKa7iIiA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + jake@10.9.2: + resolution: {integrity: sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA==} + engines: {node: '>=10'} + hasBin: true - jest-circus@28.1.3: - resolution: {integrity: sha512-cZ+eS5zc79MBwt+IhQhiEp0OeBddpc1n8MBo1nMB8A7oPMKEO+Sre+wHaLJexQUj9Ya/8NOBY0RESUgYjB6fow==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + jest-changed-files@29.7.0: + resolution: {integrity: sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-cli@28.1.3: - resolution: {integrity: sha512-roY3kvrv57Azn1yPgdTebPAXvdR2xfezaKKYzVxZ6It/5NCxzJym6tUI5P1zkdWhfUYkxEI9uZWcQdaFLo8mJQ==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + jest-circus@29.7.0: + resolution: {integrity: sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-cli@29.7.0: + resolution: {integrity: sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -1791,9 +1863,9 @@ packages: node-notifier: optional: true - jest-config@28.1.3: - resolution: {integrity: sha512-MG3INjByJ0J4AsNBm7T3hsuxKQqFIiRo/AUqb1q9LRKI5UU6Aar9JHbr9Ivn1TVwfUD9KirRoM/T6u8XlcQPHQ==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + jest-config@29.7.0: + resolution: {integrity: sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} peerDependencies: '@types/node': '*' ts-node: '>=9.0.0' @@ -1807,41 +1879,66 @@ packages: resolution: {integrity: sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - jest-docblock@28.1.1: - resolution: {integrity: sha512-3wayBVNiOYx0cwAbl9rwm5kKFP8yHH3d/fkEaL02NPTkDojPtheGB7HZSFY4wzX+DxyrvhXz0KSCVksmCknCuA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + jest-diff@29.7.0: + resolution: {integrity: sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-each@28.1.3: - resolution: {integrity: sha512-arT1z4sg2yABU5uogObVPvSlSMQlDA48owx07BDPAiasW0yYpYHYOo4HHLz9q0BVzDVU4hILFjzJw0So9aCL/g==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + jest-docblock@29.7.0: + resolution: {integrity: sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-environment-node@28.1.3: - resolution: {integrity: sha512-ugP6XOhEpjAEhGYvp5Xj989ns5cB1K6ZdjBYuS30umT4CQEETaxSiPcZ/E1kFktX4GkrcM4qu07IIlDYX1gp+A==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + jest-each@29.7.0: + resolution: {integrity: sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-environment-node@29.7.0: + resolution: {integrity: sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-extended@4.0.2: + resolution: {integrity: sha512-FH7aaPgtGYHc9mRjriS0ZEHYM5/W69tLrFTIdzm+yJgeoCmmrSB/luSfMSqWP9O29QWHPEmJ4qmU6EwsZideog==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + peerDependencies: + jest: '>=27.2.5' + peerDependenciesMeta: + jest: + optional: true jest-get-type@28.0.2: resolution: {integrity: sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - jest-haste-map@28.1.3: - resolution: {integrity: sha512-3S+RQWDXccXDKSWnkHa/dPwt+2qwA8CJzR61w3FoYCvoo3Pn8tvGcysmMF0Bj0EX5RYvAI2EIvC57OmotfdtKA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + jest-get-type@29.6.3: + resolution: {integrity: sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-leak-detector@28.1.3: - resolution: {integrity: sha512-WFVJhnQsiKtDEo5lG2mM0v40QWnBM+zMdHHyJs8AWZ7J0QZJS59MsyKeJHWhpBZBH32S48FOVvGyOFT1h0DlqA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + jest-haste-map@29.7.0: + resolution: {integrity: sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-leak-detector@29.7.0: + resolution: {integrity: sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-matcher-utils@28.1.3: resolution: {integrity: sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + jest-matcher-utils@29.7.0: + resolution: {integrity: sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + jest-message-util@28.1.3: resolution: {integrity: sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - jest-mock@28.1.3: - resolution: {integrity: sha512-o3J2jr6dMMWYVH4Lh/NKmDXdosrsJgi4AviS8oXLujcjpCMBb1FMsblDnOXKZKfSiHLxYub1eS0IHuRXsio9eA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + jest-message-util@29.7.0: + resolution: {integrity: sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest-mock@29.7.0: + resolution: {integrity: sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-pnp-resolver@1.2.3: resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} @@ -1852,49 +1949,53 @@ packages: jest-resolve: optional: true - jest-regex-util@28.0.2: - resolution: {integrity: sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + jest-regex-util@29.6.3: + resolution: {integrity: sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-resolve-dependencies@28.1.3: - resolution: {integrity: sha512-qa0QO2Q0XzQoNPouMbCc7Bvtsem8eQgVPNkwn9LnS+R2n8DaVDPL/U1gngC0LTl1RYXJU0uJa2BMC2DbTfFrHA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + jest-resolve-dependencies@29.7.0: + resolution: {integrity: sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-resolve@28.1.3: - resolution: {integrity: sha512-Z1W3tTjE6QaNI90qo/BJpfnvpxtaFTFw5CDgwpyE/Kz8U/06N1Hjf4ia9quUhCh39qIGWF1ZuxFiBiJQwSEYKQ==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + jest-resolve@29.7.0: + resolution: {integrity: sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-runner@28.1.3: - resolution: {integrity: sha512-GkMw4D/0USd62OVO0oEgjn23TM+YJa2U2Wu5zz9xsQB1MxWKDOlrnykPxnMsN0tnJllfLPinHTka61u0QhaxBA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + jest-runner@29.7.0: + resolution: {integrity: sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-runtime@28.1.3: - resolution: {integrity: sha512-NU+881ScBQQLc1JHG5eJGU7Ui3kLKrmwCPPtYsJtBykixrM2OhVQlpMmFWJjMyDfdkGgBMNjXCGB/ebzsgNGQw==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + jest-runtime@29.7.0: + resolution: {integrity: sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-snapshot@28.1.3: - resolution: {integrity: sha512-4lzMgtiNlc3DU/8lZfmqxN3AYD6GGLbl+72rdBpXvcV+whX7mDrREzkPdp2RnmfIiWBg1YbuFSkXduF2JcafJg==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + jest-snapshot@29.7.0: + resolution: {integrity: sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} jest-util@28.1.3: resolution: {integrity: sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} - jest-validate@28.1.3: - resolution: {integrity: sha512-SZbOGBWEsaTxBGCOpsRWlXlvNkvTkY0XxRfh7zYmvd8uL5Qzyg0CHAXiXKROflh801quA6+/DsT4ODDthOC/OA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + jest-util@29.7.0: + resolution: {integrity: sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-watcher@28.1.3: - resolution: {integrity: sha512-t4qcqj9hze+jviFPUN3YAtAEeFnr/azITXQEMARf5cMwKY2SMBRnCQTXLixTl20OR6mLh9KLMrgVJgJISym+1g==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + jest-validate@29.7.0: + resolution: {integrity: sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest-worker@28.1.3: - resolution: {integrity: sha512-CqRA220YV/6jCo8VWvAt1KKx6eek1VIHMPeLEbpcfSfkEeWyBNppynM/o6q+Wmw+sOhos2ml34wZbSX3G13//g==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + jest-watcher@29.7.0: + resolution: {integrity: sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - jest@28.1.3: - resolution: {integrity: sha512-N4GT5on8UkZgH0O5LUavMRV1EDEhNTL0KEfRmDIeZHSV7p2XgLoY9t9VDUgL6o+yfdgYHVxuz81G8oB9VG5uyA==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + jest-worker@29.7.0: + resolution: {integrity: sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + + jest@29.7.0: + resolution: {integrity: sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} hasBin: true peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -1912,8 +2013,8 @@ packages: jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - jsesc@3.0.2: - resolution: {integrity: sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g==} + jsesc@3.1.0: + resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} engines: {node: '>=6'} hasBin: true @@ -2056,6 +2157,10 @@ packages: makeerror@1.0.12: resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} @@ -2171,8 +2276,8 @@ packages: node-int64@0.4.0: resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - node-releases@2.0.18: - resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + node-releases@2.0.19: + resolution: {integrity: sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==} nodemailer@6.9.16: resolution: {integrity: sha512-psAuZdTIRN08HKVd/E8ObdV6NO7NTBY3KsC30F7M4H1OnmLCUNaS56FpYxyb26zWLSyYF9Ozch9KYHhHegsiOQ==} @@ -2313,8 +2418,8 @@ packages: pino-std-serializers@7.0.0: resolution: {integrity: sha512-e906FRY0+tV27iq4juKzSYPbUj2do2X2JX4EzSca1631EB2QJQUqGbDuERal7LCtOpxl6x3+nvo9NPZcmjkiFA==} - pino@9.5.0: - resolution: {integrity: sha512-xSEmD4pLnV54t0NOUN16yCl7RIB1c5UUOse5HSyEXtBp+FgFQyPeDutc+Q2ZO7/22vImV7VfEjH/1zV2QuqvYw==} + pino@9.6.0: + resolution: {integrity: sha512-i85pKRCt4qMjZ1+L7sy2Ag4t1atFcdbEt76+7iRJn1g2BvsnRMGu9p8pivl9fs63M2kF/A0OacFZhTub+m/qMg==} hasBin: true pirates@4.0.6: @@ -2337,11 +2442,15 @@ packages: resolution: {integrity: sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==} engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} + engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} + process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - process-warning@4.0.0: - resolution: {integrity: sha512-/MyYDxttz7DfGMMHiysAsFE4qF+pQYAA8ziO/3NcRVrQ5fSk+Mns4QZA/oRPFzvcqNoVJXQNWNAsdwBXLUkQKw==} + process-warning@4.0.1: + resolution: {integrity: sha512-3c2LzQ3rY9d0hc1emcsHhfT9Jwz0cChib/QN89oME2R451w5fy3f0afAhERFZAwrbDU43wk12d0ORBpDVME50Q==} process@0.11.10: resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==} @@ -2369,6 +2478,9 @@ packages: pump@3.0.2: resolution: {integrity: sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==} + pure-rand@6.1.0: + resolution: {integrity: sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==} + qs@6.13.0: resolution: {integrity: sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==} engines: {node: '>=0.6'} @@ -2445,12 +2557,13 @@ packages: resolution: {integrity: sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==} engines: {node: '>=8'} - resolve.exports@1.1.1: - resolution: {integrity: sha512-/NtpHNDN7jWhAaQ9BvBUYZ6YTXsRBgfqWFWP7BZBaoMJO/I3G5OFzvTuWNlZC3aPjins1F+TNrLKsGbH4rfsRQ==} + resolve.exports@2.0.3: + resolution: {integrity: sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==} engines: {node: '>=10'} - resolve@1.22.8: - resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} + resolve@1.22.10: + resolution: {integrity: sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==} + engines: {node: '>= 0.4'} hasBin: true retry-request@7.0.2: @@ -2461,11 +2574,6 @@ packages: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rimraf@3.0.2: - resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} - deprecated: Rimraf versions prior to v4 are no longer supported - hasBin: true - run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} @@ -2478,6 +2586,10 @@ packages: safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} + safe-regex-test@1.1.0: + resolution: {integrity: sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==} + engines: {node: '>= 0.4'} + safe-stable-stringify@2.5.0: resolution: {integrity: sha512-b3rppTKm9T+PsVCBEOUR46GWI7fdOs00VKZ1+9c1EWDaDMvjQc6tUwuFyIprgGgTcWoVHSKrU8H31ZHA2e0RHA==} engines: {node: '>=10'} @@ -2524,8 +2636,20 @@ packages: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} - side-channel@1.0.6: - resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + side-channel-list@1.0.0: + resolution: {integrity: sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA==} + engines: {node: '>= 0.4'} + + side-channel-map@1.0.1: + resolution: {integrity: sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA==} + engines: {node: '>= 0.4'} + + side-channel-weakmap@1.0.2: + resolution: {integrity: sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A==} + engines: {node: '>= 0.4'} + + side-channel@1.1.0: + resolution: {integrity: sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw==} engines: {node: '>= 0.4'} signal-exit@3.0.7: @@ -2614,8 +2738,8 @@ packages: stream-shift@1.0.3: resolution: {integrity: sha512-76ORR0DO1o1hlKwTbi/DM3EXWGf3ZJYO8cXX5RJwnul2DEg2oyoZyjLNoQM8WsvZiFKCRfC1O0J7iCvie3RZmQ==} - streamx@2.21.0: - resolution: {integrity: sha512-Qz6MsDZXJ6ur9u+b+4xCG18TluU7PGlRfXVAAjNiGsFrBUt/ioyLkxbFaKJygoPs+/kW4VyBj0bSj89Qu0IGyg==} + streamx@2.21.1: + resolution: {integrity: sha512-PhP9wUnFLa+91CPy3N6tiQsK+gnYyUNuk15S3YG/zjYE7RuPeCjJngqnzpC31ow0lzBHQ+QGO4cNJnd0djYUsw==} string-length@4.0.2: resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} @@ -2658,10 +2782,6 @@ packages: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} - supports-hyperlinks@2.3.0: - resolution: {integrity: sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==} - engines: {node: '>=8'} - supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} @@ -2681,16 +2801,12 @@ packages: resolution: {integrity: sha512-resvxdc6Mgb7YEThw6G6bExlXKkv6+YbuzGg9xuXxSgxJF7Ozs+o8Y9+2R3sArdWdW8nOokoQb1yrpFB0pQK2g==} engines: {node: '>=14'} - terminal-link@2.1.1: - resolution: {integrity: sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==} - engines: {node: '>=8'} - test-exclude@6.0.0: resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} engines: {node: '>=8'} - text-decoder@1.2.2: - resolution: {integrity: sha512-/MDslo7ZyWTA2vnk1j7XoDVfXsGk3tp+zFEJHJGm0UjIlQifonVFwlVbQDFh8KJzTBnT8ie115TYqir6bclddA==} + text-decoder@1.2.3: + resolution: {integrity: sha512-3/o9z3X0X0fTupwsYvR03pJ/DjWuqqrfwBgTQzdWDiQSm9KitAyz/9WqsT2JQW7KV2m+bC2ol/zqpW37NHxLaA==} thread-stream@3.1.0: resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} @@ -2713,20 +2829,23 @@ packages: tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} - ts-jest@28.0.8: - resolution: {integrity: sha512-5FaG0lXmRPzApix8oFG8RKjAz4ehtm8yMKOTy5HX3fY6W8kmvOrmcY0hKDElW52FJov+clhUbrKAqofnj4mXTg==} - engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0} + ts-jest@29.2.5: + resolution: {integrity: sha512-KD8zB2aAZrcKIdGk4OwpJggeLcH1FgrICqDSROWqlnJXGCXK4Mn6FcdK2B6670Xr73lHMG1kHw8R87A0ecZ+vA==} + engines: {node: ^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0} hasBin: true peerDependencies: '@babel/core': '>=7.0.0-beta.0 <8' - '@jest/types': ^28.0.0 - babel-jest: ^28.0.0 + '@jest/transform': ^29.0.0 + '@jest/types': ^29.0.0 + babel-jest: ^29.0.0 esbuild: '*' - jest: ^28.0.0 - typescript: '>=4.3' + jest: ^29.0.0 + typescript: '>=4.3 <6' peerDependenciesMeta: '@babel/core': optional: true + '@jest/transform': + optional: true '@jest/types': optional: true babel-jest: @@ -2775,8 +2894,8 @@ packages: resolution: {integrity: sha512-Z48LU67/qJ+vyA7lh3ozELqpTp3pvQoY5RtLi5wQ/UGSrEidBhlVSqhjr8B3iqbGpjqAoJYrtSYXWMDtidWGkA==} engines: {node: '>=6.0.0', npm: '>=3.0.0'} - typescript@5.7.2: - resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} + typescript@5.7.3: + resolution: {integrity: sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==} engines: {node: '>=14.17'} hasBin: true @@ -2804,8 +2923,8 @@ packages: resolution: {integrity: sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==} engines: {node: '>= 0.8'} - update-browserslist-db@1.1.1: - resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + update-browserslist-db@1.1.2: + resolution: {integrity: sha512-PPypAm5qvlD7XMZC3BujecnaOxwhrtoFR+Dqkk5Aa/6DssiH0ibKoketaj9w8LP7Bont1rYeoV5plxD7RTEPRg==} hasBin: true peerDependencies: browserslist: '>= 4.21.0' @@ -2858,8 +2977,8 @@ packages: whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} - which-typed-array@1.1.16: - resolution: {integrity: sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==} + which-typed-array@1.1.18: + resolution: {integrity: sha512-qEcY+KJYlWyLH9vNbsr6/5j59AXk5ni5aakf8ldzBvGde6Iz4sxZGkJyWSAueTG7QhOvNRYb1lDdFmL5Td0QKA==} engines: {node: '>= 0.4'} which@2.0.2: @@ -2904,8 +3023,8 @@ packages: yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} - yaml@2.6.1: - resolution: {integrity: sha512-7r0XPzioN/Q9kXBro/XPnA6kznR73DHq+GXh5ON7ZozRO6aMjbmiBuKste2wslTFkC5d1dw0GooOCepZXJ2SAg==} + yaml@2.7.0: + resolution: {integrity: sha512-+hSoy/QHluxmC9kCIJyL/uyFmLmc+e5CFR5Wa+bpIhIj85LVb9ZH2nVnqrHoSvKogwODv0ClqZkmiSSaIH5LTA==} engines: {node: '>= 14'} hasBin: true @@ -2939,7 +3058,7 @@ snapshots: '@ampproject/remapping@2.3.0': dependencies: - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 '@babel/code-frame@7.26.2': @@ -2974,15 +3093,15 @@ snapshots: dependencies: '@babel/parser': 7.26.3 '@babel/types': 7.26.3 - '@jridgewell/gen-mapping': 0.3.5 + '@jridgewell/gen-mapping': 0.3.8 '@jridgewell/trace-mapping': 0.3.25 - jsesc: 3.0.2 + jsesc: 3.1.0 '@babel/helper-compilation-targets@7.25.9': dependencies: '@babel/compat-data': 7.26.3 '@babel/helper-validator-option': 7.25.9 - browserslist: 4.24.2 + browserslist: 4.24.4 lru-cache: 5.1.1 semver: 6.3.1 @@ -3054,6 +3173,11 @@ snapshots: '@babel/core': 7.26.0 '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-jsx@7.25.9(@babel/core@7.26.0)': + dependencies: + '@babel/core': 7.26.0 + '@babel/helper-plugin-utils': 7.25.9 + '@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.26.0)': dependencies: '@babel/core': 7.26.0 @@ -3128,9 +3252,9 @@ snapshots: dependencies: '@jridgewell/trace-mapping': 0.3.9 - '@google-cloud/functions-framework@3.4.2': + '@google-cloud/functions-framework@3.4.5': dependencies: - '@types/express': 4.17.21 + '@types/express': 5.0.0 body-parser: 1.20.3 cloudevents: 8.0.2 express: 4.21.2 @@ -3173,7 +3297,7 @@ snapshots: graphql: 15.9.0 tslib: 2.8.1 - '@grpc/grpc-js@1.12.4': + '@grpc/grpc-js@1.12.5': dependencies: '@grpc/proto-loader': 0.7.13 '@js-sdsl/ordered-map': 4.4.2 @@ -3187,7 +3311,7 @@ snapshots: '@httptoolkit/httpolyglot@2.2.2': dependencies: - '@types/node': 18.19.67 + '@types/node': 18.19.70 '@httptoolkit/subscriptions-transport-ws@0.11.2(graphql@15.9.0)': dependencies: @@ -3225,111 +3349,115 @@ snapshots: '@istanbuljs/schema@0.1.3': {} - '@jest/console@28.1.3': + '@jest/console@29.7.0': dependencies: - '@jest/types': 28.1.3 - '@types/node': 18.19.67 + '@jest/types': 29.6.3 + '@types/node': 18.19.70 chalk: 4.1.2 - jest-message-util: 28.1.3 - jest-util: 28.1.3 + jest-message-util: 29.7.0 + jest-util: 29.7.0 slash: 3.0.0 - '@jest/core@28.1.3(ts-node@10.9.2(@types/node@18.19.67)(typescript@5.7.2))': + '@jest/core@29.7.0(ts-node@10.9.2(@types/node@18.19.70)(typescript@5.7.3))': 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 - '@types/node': 18.19.67 + '@jest/console': 29.7.0 + '@jest/reporters': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.19.70 ansi-escapes: 4.3.2 chalk: 4.1.2 ci-info: 3.9.0 exit: 0.1.2 graceful-fs: 4.2.11 - jest-changed-files: 28.1.3 - jest-config: 28.1.3(@types/node@18.19.67)(ts-node@10.9.2(@types/node@18.19.67)(typescript@5.7.2)) - 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.7.0 + jest-config: 29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@types/node@18.19.70)(typescript@5.7.3)) + jest-haste-map: 29.7.0 + jest-message-util: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-resolve-dependencies: 29.7.0 + jest-runner: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 + jest-watcher: 29.7.0 micromatch: 4.0.8 - pretty-format: 28.1.3 - rimraf: 3.0.2 + pretty-format: 29.7.0 slash: 3.0.0 strip-ansi: 6.0.1 transitivePeerDependencies: + - babel-plugin-macros - supports-color - ts-node - '@jest/environment@28.1.3': + '@jest/environment@29.7.0': dependencies: - '@jest/fake-timers': 28.1.3 - '@jest/types': 28.1.3 - '@types/node': 18.19.67 - jest-mock: 28.1.3 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.19.70 + jest-mock: 29.7.0 '@jest/expect-utils@28.1.3': dependencies: jest-get-type: 28.0.2 - '@jest/expect@28.1.3': + '@jest/expect-utils@29.7.0': dependencies: - expect: 28.1.3 - jest-snapshot: 28.1.3 + jest-get-type: 29.6.3 + + '@jest/expect@29.7.0': + dependencies: + expect: 29.7.0 + jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color - '@jest/fake-timers@28.1.3': + '@jest/fake-timers@29.7.0': dependencies: - '@jest/types': 28.1.3 - '@sinonjs/fake-timers': 9.1.2 - '@types/node': 18.19.67 - jest-message-util: 28.1.3 - jest-mock: 28.1.3 - jest-util: 28.1.3 + '@jest/types': 29.6.3 + '@sinonjs/fake-timers': 10.3.0 + '@types/node': 18.19.70 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-util: 29.7.0 - '@jest/globals@28.1.3': + '@jest/globals@29.7.0': dependencies: - '@jest/environment': 28.1.3 - '@jest/expect': 28.1.3 - '@jest/types': 28.1.3 + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/types': 29.6.3 + jest-mock: 29.7.0 transitivePeerDependencies: - supports-color - '@jest/reporters@28.1.3': + '@jest/reporters@29.7.0': 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 + '@jest/console': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 - '@types/node': 18.19.67 + '@types/node': 18.19.70 chalk: 4.1.2 collect-v8-coverage: 1.0.2 exit: 0.1.2 glob: 7.2.3 graceful-fs: 4.2.11 istanbul-lib-coverage: 3.2.2 - istanbul-lib-instrument: 5.2.1 + istanbul-lib-instrument: 6.0.3 istanbul-lib-report: 3.0.1 istanbul-lib-source-maps: 4.0.1 istanbul-reports: 3.1.7 - jest-message-util: 28.1.3 - jest-util: 28.1.3 - jest-worker: 28.1.3 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + jest-worker: 29.7.0 slash: 3.0.0 string-length: 4.0.2 strip-ansi: 6.0.1 - terminal-link: 2.1.1 v8-to-istanbul: 9.3.0 transitivePeerDependencies: - supports-color @@ -3338,39 +3466,43 @@ snapshots: dependencies: '@sinclair/typebox': 0.24.51 - '@jest/source-map@28.1.2': + '@jest/schemas@29.6.3': + dependencies: + '@sinclair/typebox': 0.27.8 + + '@jest/source-map@29.6.3': dependencies: '@jridgewell/trace-mapping': 0.3.25 callsites: 3.1.0 graceful-fs: 4.2.11 - '@jest/test-result@28.1.3': + '@jest/test-result@29.7.0': dependencies: - '@jest/console': 28.1.3 - '@jest/types': 28.1.3 + '@jest/console': 29.7.0 + '@jest/types': 29.6.3 '@types/istanbul-lib-coverage': 2.0.6 collect-v8-coverage: 1.0.2 - '@jest/test-sequencer@28.1.3': + '@jest/test-sequencer@29.7.0': dependencies: - '@jest/test-result': 28.1.3 + '@jest/test-result': 29.7.0 graceful-fs: 4.2.11 - jest-haste-map: 28.1.3 + jest-haste-map: 29.7.0 slash: 3.0.0 - '@jest/transform@28.1.3': + '@jest/transform@29.7.0': dependencies: '@babel/core': 7.26.0 - '@jest/types': 28.1.3 + '@jest/types': 29.6.3 '@jridgewell/trace-mapping': 0.3.25 babel-plugin-istanbul: 6.1.1 chalk: 4.1.2 - convert-source-map: 1.9.0 + convert-source-map: 2.0.0 fast-json-stable-stringify: 2.1.0 graceful-fs: 4.2.11 - jest-haste-map: 28.1.3 - jest-regex-util: 28.0.2 - jest-util: 28.1.3 + jest-haste-map: 29.7.0 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 micromatch: 4.0.8 pirates: 4.0.6 slash: 3.0.0 @@ -3383,11 +3515,20 @@ snapshots: '@jest/schemas': 28.1.3 '@types/istanbul-lib-coverage': 2.0.6 '@types/istanbul-reports': 3.0.4 - '@types/node': 18.19.67 + '@types/node': 18.19.70 '@types/yargs': 17.0.33 chalk: 4.1.2 - '@jridgewell/gen-mapping@0.3.5': + '@jest/types@29.6.3': + dependencies: + '@jest/schemas': 29.6.3 + '@types/istanbul-lib-coverage': 2.0.6 + '@types/istanbul-reports': 3.0.4 + '@types/node': 18.19.70 + '@types/yargs': 17.0.33 + chalk: 4.1.2 + + '@jridgewell/gen-mapping@0.3.8': dependencies: '@jridgewell/set-array': 1.2.1 '@jridgewell/sourcemap-codec': 1.5.0 @@ -3421,7 +3562,7 @@ snapshots: '@lukeed/csprng@1.1.0': {} - '@nestjs/common@10.4.13(reflect-metadata@0.2.2)(rxjs@7.8.1)': + '@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1)': dependencies: iterare: 1.2.1 reflect-metadata: 0.2.2 @@ -3429,9 +3570,9 @@ snapshots: tslib: 2.8.1 uid: 2.0.2 - '@nestjs/core@10.4.13(@nestjs/common@10.4.13(reflect-metadata@0.2.2)(rxjs@7.8.1))(reflect-metadata@0.2.2)(rxjs@7.8.1)': + '@nestjs/core@10.4.15(@nestjs/common@10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1))(reflect-metadata@0.2.2)(rxjs@7.8.1)': dependencies: - '@nestjs/common': 10.4.13(reflect-metadata@0.2.2)(rxjs@7.8.1) + '@nestjs/common': 10.4.15(reflect-metadata@0.2.2)(rxjs@7.8.1) '@nuxtjs/opencollective': 0.3.2 fast-safe-stringify: 2.1.1 iterare: 1.2.1 @@ -3453,7 +3594,7 @@ snapshots: '@nodelib/fs.walk@1.2.8': dependencies: '@nodelib/fs.scandir': 2.1.5 - fastq: 1.17.1 + fastq: 1.18.0 '@nuxtjs/opencollective@0.3.2': dependencies: @@ -3643,15 +3784,17 @@ snapshots: '@sinclair/typebox@0.24.51': {} + '@sinclair/typebox@0.27.8': {} + '@sindresorhus/merge-streams@2.3.0': {} - '@sinonjs/commons@1.8.6': + '@sinonjs/commons@3.0.1': dependencies: type-detect: 4.0.8 - '@sinonjs/fake-timers@9.1.2': + '@sinonjs/fake-timers@10.3.0': dependencies: - '@sinonjs/commons': 1.8.6 + '@sinonjs/commons': 3.0.1 '@tootallnate/once@2.0.0': {} @@ -3693,7 +3836,7 @@ snapshots: '@types/body-parser@1.19.5': dependencies: '@types/connect': 3.4.38 - '@types/node': 18.19.67 + '@types/node': 18.19.70 '@types/btoa-lite@1.0.2': {} @@ -3701,37 +3844,37 @@ snapshots: '@types/connect@3.4.38': dependencies: - '@types/node': 18.19.67 + '@types/node': 18.19.70 '@types/cors@2.8.17': dependencies: - '@types/node': 18.19.67 + '@types/node': 18.19.70 '@types/diff@5.2.3': {} - '@types/express-serve-static-core@4.19.6': + '@types/express-serve-static-core@5.0.4': dependencies: - '@types/node': 18.19.67 + '@types/node': 18.19.70 '@types/qs': 6.9.17 '@types/range-parser': 1.2.7 '@types/send': 0.17.4 - '@types/express@4.17.21': + '@types/express@5.0.0': dependencies: '@types/body-parser': 1.19.5 - '@types/express-serve-static-core': 4.19.6 + '@types/express-serve-static-core': 5.0.4 '@types/qs': 6.9.17 '@types/serve-static': 1.15.7 '@types/graceful-fs@4.1.9': dependencies: - '@types/node': 18.19.67 + '@types/node': 18.19.70 '@types/http-errors@2.0.4': {} '@types/imapflow@1.0.17': dependencies: - '@types/node': 18.19.67 + '@types/node': 18.19.70 '@types/istanbul-lib-coverage@2.0.6': {} @@ -3743,60 +3886,58 @@ snapshots: dependencies: '@types/istanbul-lib-report': 3.0.3 - '@types/jest@28.1.8': + '@types/jest@29.5.14': dependencies: - expect: 28.1.3 - pretty-format: 28.1.3 + expect: 29.7.0 + pretty-format: 29.7.0 '@types/jsonwebtoken@9.0.7': dependencies: - '@types/node': 18.19.67 + '@types/node': 18.19.70 '@types/long@4.0.2': {} '@types/mailparser@3.4.5': dependencies: - '@types/node': 18.19.67 + '@types/node': 18.19.70 iconv-lite: 0.6.3 '@types/mime@1.3.5': {} - '@types/node@18.19.67': + '@types/node@18.19.70': dependencies: undici-types: 5.26.5 '@types/nodemailer@6.4.17': dependencies: - '@types/node': 18.19.67 + '@types/node': 18.19.70 '@types/normalize-package-data@2.4.4': {} - '@types/prettier@2.7.3': {} - '@types/qs@6.9.17': {} '@types/range-parser@1.2.7': {} '@types/readdir-glob@1.1.5': dependencies: - '@types/node': 18.19.67 + '@types/node': 18.19.70 '@types/request@2.48.12': dependencies: '@types/caseless': 0.12.5 - '@types/node': 18.19.67 + '@types/node': 18.19.70 '@types/tough-cookie': 4.0.5 form-data: 2.5.2 '@types/send@0.17.4': dependencies: '@types/mime': 1.3.5 - '@types/node': 18.19.67 + '@types/node': 18.19.70 '@types/serve-static@1.15.7': dependencies: '@types/http-errors': 2.0.4 - '@types/node': 18.19.67 + '@types/node': 18.19.70 '@types/send': 0.17.4 '@types/source-map-support@0.5.10': @@ -3807,7 +3948,7 @@ snapshots: '@types/tar@6.1.13': dependencies: - '@types/node': 18.19.67 + '@types/node': 18.19.70 minipass: 4.2.8 '@types/tough-cookie@4.0.5': {} @@ -3816,7 +3957,7 @@ snapshots: '@types/ws@8.5.13': dependencies: - '@types/node': 18.19.67 + '@types/node': 18.19.70 '@types/yargs-parser@21.0.3': {} @@ -3826,7 +3967,7 @@ snapshots: '@types/yauzl@2.10.3': dependencies: - '@types/node': 18.19.67 + '@types/node': 18.19.70 optional: true abort-controller@3.0.0: @@ -3864,7 +4005,7 @@ snapshots: ajv@8.17.1: dependencies: fast-deep-equal: 3.1.3 - fast-uri: 3.0.3 + fast-uri: 3.0.5 json-schema-traverse: 1.0.0 require-from-string: 2.0.2 @@ -3949,13 +4090,13 @@ snapshots: b4a@1.6.7: {} - babel-jest@28.1.3(@babel/core@7.26.0): + babel-jest@29.7.0(@babel/core@7.26.0): dependencies: '@babel/core': 7.26.0 - '@jest/transform': 28.1.3 + '@jest/transform': 29.7.0 '@types/babel__core': 7.20.5 babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 28.1.3(@babel/core@7.26.0) + babel-preset-jest: 29.6.3(@babel/core@7.26.0) chalk: 4.1.2 graceful-fs: 4.2.11 slash: 3.0.0 @@ -3972,7 +4113,7 @@ snapshots: transitivePeerDependencies: - supports-color - babel-plugin-jest-hoist@28.1.3: + babel-plugin-jest-hoist@29.6.3: dependencies: '@babel/template': 7.25.9 '@babel/types': 7.26.3 @@ -3998,17 +4139,17 @@ snapshots: '@babel/plugin-syntax-private-property-in-object': 7.14.5(@babel/core@7.26.0) '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.26.0) - babel-preset-jest@28.1.3(@babel/core@7.26.0): + babel-preset-jest@29.6.3(@babel/core@7.26.0): dependencies: '@babel/core': 7.26.0 - babel-plugin-jest-hoist: 28.1.3 + babel-plugin-jest-hoist: 29.6.3 babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.0) backo2@1.0.2: {} balanced-match@1.0.2: {} - bare-events@2.5.0: + bare-events@2.5.3: optional: true base64-arraybuffer@0.1.5: {} @@ -4053,12 +4194,12 @@ snapshots: brotli-wasm@3.0.1: {} - browserslist@4.24.2: + browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001687 - electron-to-chromium: 1.5.71 - node-releases: 2.0.18 - update-browserslist-db: 1.1.1(browserslist@4.24.2) + caniuse-lite: 1.0.30001690 + electron-to-chromium: 1.5.79 + node-releases: 2.0.19 + update-browserslist-db: 1.1.2(browserslist@4.24.4) bs-logger@0.2.6: dependencies: @@ -4080,25 +4221,30 @@ snapshots: cacheable-lookup@6.1.0: {} - call-bind-apply-helpers@1.0.0: + call-bind-apply-helpers@1.0.1: dependencies: es-errors: 1.3.0 function-bind: 1.1.2 call-bind@1.0.8: dependencies: - call-bind-apply-helpers: 1.0.0 + call-bind-apply-helpers: 1.0.1 es-define-property: 1.0.1 - get-intrinsic: 1.2.5 + get-intrinsic: 1.2.7 set-function-length: 1.2.2 + call-bound@1.0.3: + dependencies: + call-bind-apply-helpers: 1.0.1 + get-intrinsic: 1.2.7 + callsites@3.1.0: {} camelcase@5.3.1: {} camelcase@6.3.0: {} - caniuse-lite@1.0.30001687: {} + caniuse-lite@1.0.30001690: {} chalk@4.1.2: dependencies: @@ -4172,8 +4318,6 @@ snapshots: content-type@1.0.5: {} - convert-source-map@1.9.0: {} - convert-source-map@2.0.0: {} cookie-signature@1.0.6: {} @@ -4196,9 +4340,24 @@ snapshots: crc-32: 1.2.2 readable-stream: 3.6.2 + create-jest@29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@types/node@18.19.70)(typescript@5.7.3)): + dependencies: + '@jest/types': 29.6.3 + chalk: 4.1.2 + exit: 0.1.2 + graceful-fs: 4.2.11 + jest-config: 29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@types/node@18.19.70)(typescript@5.7.3)) + jest-util: 29.7.0 + prompts: 2.4.2 + transitivePeerDependencies: + - '@types/node' + - babel-plugin-macros + - supports-color + - ts-node + create-require@1.1.1: {} - cross-fetch@3.1.8: + cross-fetch@3.2.0: dependencies: node-fetch: 2.7.0 transitivePeerDependencies: @@ -4224,7 +4383,7 @@ snapshots: dependencies: ms: 2.1.3 - dedent@0.7.0: {} + dedent@1.5.3: {} deepmerge@4.3.1: {} @@ -4250,12 +4409,14 @@ snapshots: destroyable-server@1.0.2: dependencies: - '@types/node': 18.19.67 + '@types/node': 18.19.70 detect-newline@3.1.0: {} diff-sequences@28.1.1: {} + diff-sequences@29.6.3: {} + diff@4.0.2: {} diff@5.2.0: {} @@ -4272,15 +4433,15 @@ snapshots: dependencies: domelementtype: 2.3.0 - domutils@3.1.0: + domutils@3.2.2: dependencies: dom-serializer: 2.0.0 domelementtype: 2.3.0 domhandler: 5.0.3 - dunder-proto@1.0.0: + dunder-proto@1.0.1: dependencies: - call-bind-apply-helpers: 1.0.0 + call-bind-apply-helpers: 1.0.1 es-errors: 1.3.0 gopd: 1.2.0 @@ -4304,9 +4465,13 @@ snapshots: ee-first@1.1.1: {} - electron-to-chromium@1.5.71: {} + ejs@3.1.10: + dependencies: + jake: 10.9.2 - emittery@0.10.2: {} + electron-to-chromium@1.5.79: {} + + emittery@0.13.1: {} emoji-regex@8.0.0: {} @@ -4332,6 +4497,10 @@ snapshots: es-errors@1.3.0: {} + es-object-atoms@1.0.0: + dependencies: + es-errors: 1.3.0 + escalade@3.2.0: {} escape-html@1.0.3: {} @@ -4380,6 +4549,14 @@ snapshots: jest-message-util: 28.1.3 jest-util: 28.1.3 + expect@29.7.0: + dependencies: + '@jest/expect-utils': 29.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 + exponential-backoff@3.1.1: {} express@4.21.2: @@ -4434,7 +4611,7 @@ snapshots: fast-fifo@1.3.2: {} - fast-glob@3.3.2: + fast-glob@3.3.3: dependencies: '@nodelib/fs.stat': 2.0.5 '@nodelib/fs.walk': 1.2.8 @@ -4450,9 +4627,9 @@ snapshots: fast-safe-stringify@2.1.1: {} - fast-uri@3.0.3: {} + fast-uri@3.0.5: {} - fastq@1.17.1: + fastq@1.18.0: dependencies: reusify: 1.0.4 @@ -4464,6 +4641,10 @@ snapshots: dependencies: pend: 1.2.0 + filelist@1.0.4: + dependencies: + minimatch: 5.1.6 + fill-range@7.1.1: dependencies: to-regex-range: 5.0.1 @@ -4554,19 +4735,26 @@ snapshots: get-caller-file@2.0.5: {} - get-intrinsic@1.2.5: + get-intrinsic@1.2.7: dependencies: - call-bind-apply-helpers: 1.0.0 - dunder-proto: 1.0.0 + call-bind-apply-helpers: 1.0.1 es-define-property: 1.0.1 es-errors: 1.3.0 + es-object-atoms: 1.0.0 function-bind: 1.1.2 + get-proto: 1.0.1 gopd: 1.2.0 has-symbols: 1.1.0 hasown: 2.0.2 + math-intrinsics: 1.1.0 get-package-type@0.1.0: {} + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.0.0 + get-stream@5.2.0: dependencies: pump: 3.0.2 @@ -4607,7 +4795,7 @@ snapshots: globby@14.0.2: dependencies: '@sindresorhus/merge-streams': 2.3.0 - fast-glob: 3.3.2 + fast-glob: 3.3.3 ignore: 5.3.2 path-type: 5.0.0 slash: 5.1.0 @@ -4627,7 +4815,7 @@ snapshots: google-gax@4.4.1: dependencies: - '@grpc/grpc-js': 1.12.4 + '@grpc/grpc-js': 1.12.5 '@grpc/proto-loader': 0.7.13 '@types/long': 4.0.2 abort-controller: 3.0.0 @@ -4705,7 +4893,7 @@ snapshots: dependencies: domelementtype: 2.3.0 domhandler: 5.0.3 - domutils: 3.1.0 + domutils: 3.2.2 entities: 4.5.0 http-encoding@2.0.1: @@ -4768,7 +4956,7 @@ snapshots: ignore@5.3.2: {} - imapflow@1.0.171: + imapflow@1.0.174: dependencies: encoding-japanese: 2.2.0 iconv-lite: 0.6.3 @@ -4777,7 +4965,7 @@ snapshots: libqp: 2.1.1 mailsplit: 5.4.2 nodemailer: 6.9.16 - pino: 9.5.0 + pino: 9.6.0 socks: 2.8.3 import-local@3.2.0: @@ -4803,16 +4991,16 @@ snapshots: ipaddr.js@1.9.1: {} - is-arguments@1.1.1: + is-arguments@1.2.0: dependencies: - call-bind: 1.0.8 + call-bound: 1.0.3 has-tostringtag: 1.0.2 is-arrayish@0.2.1: {} is-callable@1.2.7: {} - is-core-module@2.15.1: + is-core-module@2.16.1: dependencies: hasown: 2.0.2 @@ -4822,9 +5010,12 @@ snapshots: is-generator-fn@2.1.0: {} - is-generator-function@1.0.10: + is-generator-function@1.1.0: dependencies: + call-bound: 1.0.3 + get-proto: 1.0.1 has-tostringtag: 1.0.2 + safe-regex-test: 1.1.0 is-glob@4.0.3: dependencies: @@ -4834,13 +5025,20 @@ snapshots: is-plain-object@5.0.0: {} + is-regex@1.2.1: + dependencies: + call-bound: 1.0.3 + gopd: 1.2.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + is-retry-allowed@2.2.0: {} is-stream@2.0.1: {} - is-typed-array@1.1.13: + is-typed-array@1.1.15: dependencies: - which-typed-array: 1.1.16 + which-typed-array: 1.1.18 isarray@1.0.0: {} @@ -4862,6 +5060,16 @@ snapshots: transitivePeerDependencies: - supports-color + istanbul-lib-instrument@6.0.3: + dependencies: + '@babel/core': 7.26.0 + '@babel/parser': 7.26.3 + '@istanbuljs/schema': 0.1.3 + istanbul-lib-coverage: 3.2.2 + semver: 7.6.3 + transitivePeerDependencies: + - supports-color + istanbul-lib-report@3.0.1: dependencies: istanbul-lib-coverage: 3.2.2 @@ -4885,82 +5093,93 @@ snapshots: iterare@1.2.1: {} - jest-changed-files@28.1.3: + jake@10.9.2: + dependencies: + async: 3.2.6 + chalk: 4.1.2 + filelist: 1.0.4 + minimatch: 3.1.2 + + jest-changed-files@29.7.0: dependencies: execa: 5.1.1 + jest-util: 29.7.0 p-limit: 3.1.0 - jest-circus@28.1.3: + jest-circus@29.7.0: dependencies: - '@jest/environment': 28.1.3 - '@jest/expect': 28.1.3 - '@jest/test-result': 28.1.3 - '@jest/types': 28.1.3 - '@types/node': 18.19.67 + '@jest/environment': 29.7.0 + '@jest/expect': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.19.70 chalk: 4.1.2 co: 4.6.0 - dedent: 0.7.0 + dedent: 1.5.3 is-generator-fn: 2.1.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.7.0 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-runtime: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 p-limit: 3.1.0 - pretty-format: 28.1.3 + pretty-format: 29.7.0 + pure-rand: 6.1.0 slash: 3.0.0 stack-utils: 2.0.6 transitivePeerDependencies: + - babel-plugin-macros - supports-color - jest-cli@28.1.3(@types/node@18.19.67)(ts-node@10.9.2(@types/node@18.19.67)(typescript@5.7.2)): + jest-cli@29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@types/node@18.19.70)(typescript@5.7.3)): dependencies: - '@jest/core': 28.1.3(ts-node@10.9.2(@types/node@18.19.67)(typescript@5.7.2)) - '@jest/test-result': 28.1.3 - '@jest/types': 28.1.3 + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.70)(typescript@5.7.3)) + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 chalk: 4.1.2 + create-jest: 29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@types/node@18.19.70)(typescript@5.7.3)) exit: 0.1.2 - graceful-fs: 4.2.11 import-local: 3.2.0 - jest-config: 28.1.3(@types/node@18.19.67)(ts-node@10.9.2(@types/node@18.19.67)(typescript@5.7.2)) - jest-util: 28.1.3 - jest-validate: 28.1.3 - prompts: 2.4.2 + jest-config: 29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@types/node@18.19.70)(typescript@5.7.3)) + jest-util: 29.7.0 + jest-validate: 29.7.0 yargs: 17.7.2 transitivePeerDependencies: - '@types/node' + - babel-plugin-macros - supports-color - ts-node - jest-config@28.1.3(@types/node@18.19.67)(ts-node@10.9.2(@types/node@18.19.67)(typescript@5.7.2)): + jest-config@29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@types/node@18.19.70)(typescript@5.7.3)): dependencies: '@babel/core': 7.26.0 - '@jest/test-sequencer': 28.1.3 - '@jest/types': 28.1.3 - babel-jest: 28.1.3(@babel/core@7.26.0) + '@jest/test-sequencer': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.26.0) chalk: 4.1.2 ci-info: 3.9.0 deepmerge: 4.3.1 glob: 7.2.3 graceful-fs: 4.2.11 - 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.7.0 + jest-environment-node: 29.7.0 + jest-get-type: 29.6.3 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-runner: 29.7.0 + jest-util: 29.7.0 + jest-validate: 29.7.0 micromatch: 4.0.8 parse-json: 5.2.0 - pretty-format: 28.1.3 + pretty-format: 29.7.0 slash: 3.0.0 strip-json-comments: 3.1.1 optionalDependencies: - '@types/node': 18.19.67 - ts-node: 10.9.2(@types/node@18.19.67)(typescript@5.7.2) + '@types/node': 18.19.70 + ts-node: 10.9.2(@types/node@18.19.70)(typescript@5.7.3) transitivePeerDependencies: + - babel-plugin-macros - supports-color jest-diff@28.1.3: @@ -4970,49 +5189,65 @@ snapshots: jest-get-type: 28.0.2 pretty-format: 28.1.3 - jest-docblock@28.1.1: + jest-diff@29.7.0: + dependencies: + chalk: 4.1.2 + diff-sequences: 29.6.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + + jest-docblock@29.7.0: dependencies: detect-newline: 3.1.0 - jest-each@28.1.3: + jest-each@29.7.0: dependencies: - '@jest/types': 28.1.3 + '@jest/types': 29.6.3 chalk: 4.1.2 - jest-get-type: 28.0.2 - jest-util: 28.1.3 - pretty-format: 28.1.3 + jest-get-type: 29.6.3 + jest-util: 29.7.0 + pretty-format: 29.7.0 - jest-environment-node@28.1.3: + jest-environment-node@29.7.0: dependencies: - '@jest/environment': 28.1.3 - '@jest/fake-timers': 28.1.3 - '@jest/types': 28.1.3 - '@types/node': 18.19.67 - jest-mock: 28.1.3 - jest-util: 28.1.3 + '@jest/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.19.70 + jest-mock: 29.7.0 + jest-util: 29.7.0 + + jest-extended@4.0.2(jest@29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@types/node@18.19.70)(typescript@5.7.3))): + dependencies: + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + optionalDependencies: + jest: 29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@types/node@18.19.70)(typescript@5.7.3)) jest-get-type@28.0.2: {} - jest-haste-map@28.1.3: + jest-get-type@29.6.3: {} + + jest-haste-map@29.7.0: dependencies: - '@jest/types': 28.1.3 + '@jest/types': 29.6.3 '@types/graceful-fs': 4.1.9 - '@types/node': 18.19.67 + '@types/node': 18.19.70 anymatch: 3.1.3 fb-watchman: 2.0.2 graceful-fs: 4.2.11 - jest-regex-util: 28.0.2 - jest-util: 28.1.3 - jest-worker: 28.1.3 + jest-regex-util: 29.6.3 + jest-util: 29.7.0 + jest-worker: 29.7.0 micromatch: 4.0.8 walker: 1.0.8 optionalDependencies: fsevents: 2.3.3 - jest-leak-detector@28.1.3: + jest-leak-detector@29.7.0: dependencies: - jest-get-type: 28.0.2 - pretty-format: 28.1.3 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 jest-matcher-utils@28.1.3: dependencies: @@ -5021,6 +5256,13 @@ snapshots: jest-get-type: 28.0.2 pretty-format: 28.1.3 + jest-matcher-utils@29.7.0: + dependencies: + chalk: 4.1.2 + jest-diff: 29.7.0 + jest-get-type: 29.6.3 + pretty-format: 29.7.0 + jest-message-util@28.1.3: dependencies: '@babel/code-frame': 7.26.2 @@ -5033,113 +5275,123 @@ snapshots: slash: 3.0.0 stack-utils: 2.0.6 - jest-mock@28.1.3: + jest-message-util@29.7.0: dependencies: - '@jest/types': 28.1.3 - '@types/node': 18.19.67 + '@babel/code-frame': 7.26.2 + '@jest/types': 29.6.3 + '@types/stack-utils': 2.0.3 + chalk: 4.1.2 + graceful-fs: 4.2.11 + micromatch: 4.0.8 + pretty-format: 29.7.0 + slash: 3.0.0 + stack-utils: 2.0.6 - jest-pnp-resolver@1.2.3(jest-resolve@28.1.3): + jest-mock@29.7.0: + dependencies: + '@jest/types': 29.6.3 + '@types/node': 18.19.70 + jest-util: 29.7.0 + + jest-pnp-resolver@1.2.3(jest-resolve@29.7.0): optionalDependencies: - jest-resolve: 28.1.3 + jest-resolve: 29.7.0 - jest-regex-util@28.0.2: {} + jest-regex-util@29.6.3: {} - jest-resolve-dependencies@28.1.3: + jest-resolve-dependencies@29.7.0: dependencies: - jest-regex-util: 28.0.2 - jest-snapshot: 28.1.3 + jest-regex-util: 29.6.3 + jest-snapshot: 29.7.0 transitivePeerDependencies: - supports-color - jest-resolve@28.1.3: + jest-resolve@29.7.0: dependencies: chalk: 4.1.2 graceful-fs: 4.2.11 - jest-haste-map: 28.1.3 - jest-pnp-resolver: 1.2.3(jest-resolve@28.1.3) - jest-util: 28.1.3 - jest-validate: 28.1.3 - resolve: 1.22.8 - resolve.exports: 1.1.1 + jest-haste-map: 29.7.0 + jest-pnp-resolver: 1.2.3(jest-resolve@29.7.0) + jest-util: 29.7.0 + jest-validate: 29.7.0 + resolve: 1.22.10 + resolve.exports: 2.0.3 slash: 3.0.0 - jest-runner@28.1.3: + jest-runner@29.7.0: 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 - '@types/node': 18.19.67 + '@jest/console': 29.7.0 + '@jest/environment': 29.7.0 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.19.70 chalk: 4.1.2 - emittery: 0.10.2 + emittery: 0.13.1 graceful-fs: 4.2.11 - 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.7.0 + jest-environment-node: 29.7.0 + jest-haste-map: 29.7.0 + jest-leak-detector: 29.7.0 + jest-message-util: 29.7.0 + jest-resolve: 29.7.0 + jest-runtime: 29.7.0 + jest-util: 29.7.0 + jest-watcher: 29.7.0 + jest-worker: 29.7.0 p-limit: 3.1.0 source-map-support: 0.5.13 transitivePeerDependencies: - supports-color - jest-runtime@28.1.3: + jest-runtime@29.7.0: 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/environment': 29.7.0 + '@jest/fake-timers': 29.7.0 + '@jest/globals': 29.7.0 + '@jest/source-map': 29.6.3 + '@jest/test-result': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.19.70 chalk: 4.1.2 cjs-module-lexer: 1.4.1 collect-v8-coverage: 1.0.2 - execa: 5.1.1 glob: 7.2.3 graceful-fs: 4.2.11 - 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.7.0 + jest-message-util: 29.7.0 + jest-mock: 29.7.0 + jest-regex-util: 29.6.3 + jest-resolve: 29.7.0 + jest-snapshot: 29.7.0 + jest-util: 29.7.0 slash: 3.0.0 strip-bom: 4.0.0 transitivePeerDependencies: - supports-color - jest-snapshot@28.1.3: + jest-snapshot@29.7.0: dependencies: '@babel/core': 7.26.0 '@babel/generator': 7.26.3 + '@babel/plugin-syntax-jsx': 7.25.9(@babel/core@7.26.0) '@babel/plugin-syntax-typescript': 7.25.9(@babel/core@7.26.0) - '@babel/traverse': 7.26.4 '@babel/types': 7.26.3 - '@jest/expect-utils': 28.1.3 - '@jest/transform': 28.1.3 - '@jest/types': 28.1.3 - '@types/babel__traverse': 7.20.6 - '@types/prettier': 2.7.3 + '@jest/expect-utils': 29.7.0 + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 babel-preset-current-node-syntax: 1.1.0(@babel/core@7.26.0) chalk: 4.1.2 - expect: 28.1.3 + expect: 29.7.0 graceful-fs: 4.2.11 - 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.7.0 + jest-get-type: 29.6.3 + jest-matcher-utils: 29.7.0 + jest-message-util: 29.7.0 + jest-util: 29.7.0 natural-compare: 1.4.0 - pretty-format: 28.1.3 + pretty-format: 29.7.0 semver: 7.6.3 transitivePeerDependencies: - supports-color @@ -5147,46 +5399,57 @@ snapshots: jest-util@28.1.3: dependencies: '@jest/types': 28.1.3 - '@types/node': 18.19.67 + '@types/node': 18.19.70 chalk: 4.1.2 ci-info: 3.9.0 graceful-fs: 4.2.11 picomatch: 2.3.1 - jest-validate@28.1.3: + jest-util@29.7.0: dependencies: - '@jest/types': 28.1.3 + '@jest/types': 29.6.3 + '@types/node': 18.19.70 + chalk: 4.1.2 + ci-info: 3.9.0 + graceful-fs: 4.2.11 + picomatch: 2.3.1 + + jest-validate@29.7.0: + dependencies: + '@jest/types': 29.6.3 camelcase: 6.3.0 chalk: 4.1.2 - jest-get-type: 28.0.2 + jest-get-type: 29.6.3 leven: 3.1.0 - pretty-format: 28.1.3 + pretty-format: 29.7.0 - jest-watcher@28.1.3: + jest-watcher@29.7.0: dependencies: - '@jest/test-result': 28.1.3 - '@jest/types': 28.1.3 - '@types/node': 18.19.67 + '@jest/test-result': 29.7.0 + '@jest/types': 29.6.3 + '@types/node': 18.19.70 ansi-escapes: 4.3.2 chalk: 4.1.2 - emittery: 0.10.2 - jest-util: 28.1.3 + emittery: 0.13.1 + jest-util: 29.7.0 string-length: 4.0.2 - jest-worker@28.1.3: + jest-worker@29.7.0: dependencies: - '@types/node': 18.19.67 + '@types/node': 18.19.70 + jest-util: 29.7.0 merge-stream: 2.0.0 supports-color: 8.1.1 - jest@28.1.3(@types/node@18.19.67)(ts-node@10.9.2(@types/node@18.19.67)(typescript@5.7.2)): + jest@29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@types/node@18.19.70)(typescript@5.7.3)): dependencies: - '@jest/core': 28.1.3(ts-node@10.9.2(@types/node@18.19.67)(typescript@5.7.2)) - '@jest/types': 28.1.3 + '@jest/core': 29.7.0(ts-node@10.9.2(@types/node@18.19.70)(typescript@5.7.3)) + '@jest/types': 29.6.3 import-local: 3.2.0 - jest-cli: 28.1.3(@types/node@18.19.67)(ts-node@10.9.2(@types/node@18.19.67)(typescript@5.7.2)) + jest-cli: 29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@types/node@18.19.70)(typescript@5.7.3)) transitivePeerDependencies: - '@types/node' + - babel-plugin-macros - supports-color - ts-node @@ -5199,7 +5462,7 @@ snapshots: jsbn@1.1.0: {} - jsesc@3.0.2: {} + jsesc@3.1.0: {} json-bigint@1.0.0: dependencies: @@ -5359,6 +5622,8 @@ snapshots: dependencies: tmpl: 1.0.5 + math-intrinsics@1.1.0: {} + media-typer@0.3.0: {} merge-descriptors@1.0.3: {} @@ -5421,7 +5686,7 @@ snapshots: '@httptoolkit/subscriptions-transport-ws': 0.11.2(graphql@15.9.0) '@httptoolkit/websocket-stream': 6.0.1 '@types/cors': 2.8.17 - '@types/node': 18.19.67 + '@types/node': 18.19.70 async-mutex: 0.5.0 base64-arraybuffer: 0.1.5 body-parser: 1.20.3 @@ -5430,7 +5695,7 @@ snapshots: connect: 3.7.0 cors: 2.8.5 cors-gate: 1.1.3 - cross-fetch: 3.1.8 + cross-fetch: 3.2.0 destroyable-server: 1.0.2 express: 4.21.2 fast-json-patch: 3.1.1 @@ -5483,7 +5748,7 @@ snapshots: node-int64@0.4.0: {} - node-releases@2.0.18: {} + node-releases@2.0.19: {} nodemailer@6.9.16: {} @@ -5492,7 +5757,7 @@ snapshots: normalize-package-data@2.5.0: dependencies: hosted-git-info: 2.8.9 - resolve: 1.22.8 + resolve: 1.22.10 semver: 5.7.2 validate-npm-package-license: 3.0.4 @@ -5606,14 +5871,14 @@ snapshots: pino-std-serializers@7.0.0: {} - pino@9.5.0: + pino@9.6.0: dependencies: atomic-sleep: 1.0.0 fast-redact: 3.5.0 on-exit-leak-free: 2.1.2 pino-abstract-transport: 2.0.0 pino-std-serializers: 7.0.0 - process-warning: 4.0.0 + process-warning: 4.0.1 quick-format-unescaped: 4.0.4 real-require: 0.2.0 safe-stable-stringify: 2.5.0 @@ -5643,9 +5908,15 @@ snapshots: ansi-styles: 5.2.0 react-is: 18.3.1 + pretty-format@29.7.0: + dependencies: + '@jest/schemas': 29.6.3 + ansi-styles: 5.2.0 + react-is: 18.3.1 + process-nextick-args@2.0.1: {} - process-warning@4.0.0: {} + process-warning@4.0.1: {} process@0.11.10: {} @@ -5670,7 +5941,7 @@ snapshots: '@protobufjs/path': 1.1.2 '@protobufjs/pool': 1.1.0 '@protobufjs/utf8': 1.1.0 - '@types/node': 18.19.67 + '@types/node': 18.19.70 long: 5.2.3 proxy-addr@2.0.7: @@ -5685,9 +5956,11 @@ snapshots: end-of-stream: 1.4.4 once: 1.4.0 + pure-rand@6.1.0: {} + qs@6.13.0: dependencies: - side-channel: 1.0.6 + side-channel: 1.1.0 queue-microtask@1.2.3: {} @@ -5723,7 +5996,7 @@ snapshots: read-tls-client-hello@1.0.1: dependencies: - '@types/node': 18.19.67 + '@types/node': 18.19.70 readable-stream@2.3.8: dependencies: @@ -5761,11 +6034,11 @@ snapshots: resolve-from@5.0.0: {} - resolve.exports@1.1.1: {} + resolve.exports@2.0.3: {} - resolve@1.22.8: + resolve@1.22.10: dependencies: - is-core-module: 2.15.1 + is-core-module: 2.16.1 path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 @@ -5780,10 +6053,6 @@ snapshots: reusify@1.0.4: {} - rimraf@3.0.2: - dependencies: - glob: 7.2.3 - run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 @@ -5796,6 +6065,12 @@ snapshots: safe-buffer@5.2.1: {} + safe-regex-test@1.1.0: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + is-regex: 1.2.1 + safe-stable-stringify@2.5.0: {} safer-buffer@2.1.2: {} @@ -5842,7 +6117,7 @@ snapshots: define-data-property: 1.1.4 es-errors: 1.3.0 function-bind: 1.1.2 - get-intrinsic: 1.2.5 + get-intrinsic: 1.2.7 gopd: 1.2.0 has-property-descriptors: 1.0.2 @@ -5854,12 +6129,33 @@ snapshots: shebang-regex@3.0.0: {} - side-channel@1.0.6: + side-channel-list@1.0.0: + dependencies: + es-errors: 1.3.0 + object-inspect: 1.13.3 + + side-channel-map@1.0.1: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + object-inspect: 1.13.3 + + side-channel-weakmap@1.0.2: + dependencies: + call-bound: 1.0.3 + es-errors: 1.3.0 + get-intrinsic: 1.2.7 + object-inspect: 1.13.3 + side-channel-map: 1.0.1 + + side-channel@1.1.0: dependencies: - call-bind: 1.0.8 es-errors: 1.3.0 - get-intrinsic: 1.2.5 object-inspect: 1.13.3 + side-channel-list: 1.0.0 + side-channel-map: 1.0.1 + side-channel-weakmap: 1.0.2 signal-exit@3.0.7: {} @@ -5950,13 +6246,13 @@ snapshots: stream-shift@1.0.3: {} - streamx@2.21.0: + streamx@2.21.1: dependencies: fast-fifo: 1.3.2 queue-tick: 1.0.1 - text-decoder: 1.2.2 + text-decoder: 1.2.3 optionalDependencies: - bare-events: 2.5.0 + bare-events: 2.5.3 string-length@4.0.2: dependencies: @@ -5997,11 +6293,6 @@ snapshots: dependencies: has-flag: 4.0.0 - supports-hyperlinks@2.3.0: - dependencies: - has-flag: 4.0.0 - supports-color: 7.2.0 - supports-preserve-symlinks-flag@1.0.0: {} symbol-observable@1.2.0: {} @@ -6010,7 +6301,7 @@ snapshots: dependencies: b4a: 1.6.7 fast-fifo: 1.3.2 - streamx: 2.21.0 + streamx: 2.21.1 tar@6.2.1: dependencies: @@ -6032,18 +6323,13 @@ snapshots: - encoding - supports-color - terminal-link@2.1.1: - dependencies: - ansi-escapes: 4.3.2 - supports-hyperlinks: 2.3.0 - test-exclude@6.0.0: dependencies: '@istanbuljs/schema': 0.1.3 glob: 7.2.3 minimatch: 3.1.2 - text-decoder@1.2.2: + text-decoder@1.2.3: dependencies: b4a: 1.6.7 @@ -6063,38 +6349,40 @@ snapshots: tr46@0.0.3: {} - ts-jest@28.0.8(@babel/core@7.26.0)(@jest/types@28.1.3)(babel-jest@28.1.3(@babel/core@7.26.0))(jest@28.1.3(@types/node@18.19.67)(ts-node@10.9.2(@types/node@18.19.67)(typescript@5.7.2)))(typescript@5.7.2): + ts-jest@29.2.5(@babel/core@7.26.0)(@jest/transform@29.7.0)(@jest/types@29.6.3)(babel-jest@29.7.0(@babel/core@7.26.0))(jest@29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@types/node@18.19.70)(typescript@5.7.3)))(typescript@5.7.3): dependencies: bs-logger: 0.2.6 + ejs: 3.1.10 fast-json-stable-stringify: 2.1.0 - jest: 28.1.3(@types/node@18.19.67)(ts-node@10.9.2(@types/node@18.19.67)(typescript@5.7.2)) - jest-util: 28.1.3 + jest: 29.7.0(@types/node@18.19.70)(ts-node@10.9.2(@types/node@18.19.70)(typescript@5.7.3)) + jest-util: 29.7.0 json5: 2.2.3 lodash.memoize: 4.1.2 make-error: 1.3.6 semver: 7.6.3 - typescript: 5.7.2 + typescript: 5.7.3 yargs-parser: 21.1.1 optionalDependencies: '@babel/core': 7.26.0 - '@jest/types': 28.1.3 - babel-jest: 28.1.3(@babel/core@7.26.0) + '@jest/transform': 29.7.0 + '@jest/types': 29.6.3 + babel-jest: 29.7.0(@babel/core@7.26.0) - ts-node@10.9.2(@types/node@18.19.67)(typescript@5.7.2): + ts-node@10.9.2(@types/node@18.19.70)(typescript@5.7.3): dependencies: '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.11 '@tsconfig/node12': 1.0.11 '@tsconfig/node14': 1.0.3 '@tsconfig/node16': 1.0.4 - '@types/node': 18.19.67 + '@types/node': 18.19.70 acorn: 8.14.0 acorn-walk: 8.3.4 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 5.7.2 + typescript: 5.7.3 v8-compile-cache-lib: 3.0.1 yn: 3.1.1 @@ -6115,7 +6403,7 @@ snapshots: typed-error@3.2.2: {} - typescript@5.7.2: {} + typescript@5.7.3: {} uc.micro@2.1.0: {} @@ -6136,9 +6424,9 @@ snapshots: unpipe@1.0.0: {} - update-browserslist-db@1.1.1(browserslist@4.24.2): + update-browserslist-db@1.1.2(browserslist@4.24.4): dependencies: - browserslist: 4.24.2 + browserslist: 4.24.4 escalade: 3.2.0 picocolors: 1.1.1 @@ -6149,10 +6437,10 @@ snapshots: util@0.12.5: dependencies: inherits: 2.0.4 - is-arguments: 1.1.1 - is-generator-function: 1.0.10 - is-typed-array: 1.1.13 - which-typed-array: 1.1.16 + is-arguments: 1.2.0 + is-generator-function: 1.1.0 + is-typed-array: 1.1.15 + which-typed-array: 1.1.18 utils-merge@1.0.1: {} @@ -6188,10 +6476,11 @@ snapshots: tr46: 0.0.3 webidl-conversions: 3.0.1 - which-typed-array@1.1.16: + which-typed-array@1.1.18: dependencies: available-typed-arrays: 1.0.7 call-bind: 1.0.8 + call-bound: 1.0.3 for-each: 0.3.3 gopd: 1.2.0 has-tostringtag: 1.0.2 @@ -6223,7 +6512,7 @@ snapshots: yallist@4.0.0: {} - yaml@2.6.1: {} + yaml@2.7.0: {} yargs-parser@21.1.1: {} diff --git a/src/domain/create-entry.spec.ts b/src/domain/create-entry.spec.ts index 52fa8e1..a67621f 100644 --- a/src/domain/create-entry.spec.ts +++ b/src/domain/create-entry.spec.ts @@ -47,8 +47,6 @@ const EXTRACTED_MODULE_PATH = "/fake/path/to/MODULE.bazel"; let mockReleaseArchive: ReleaseArchive; beforeEach(() => { - jest.clearAllMocks(); - mocked(fs.readFileSync).mockImplementation((( path: string, ...args: any[] diff --git a/src/domain/find-registry-fork.spec.ts b/src/domain/find-registry-fork.spec.ts index 49603c5..c5d861a 100644 --- a/src/domain/find-registry-fork.spec.ts +++ b/src/domain/find-registry-fork.spec.ts @@ -22,7 +22,7 @@ const mockRulesetRepoCreate = jest }); beforeEach(() => { - mocked(GitHubClient, true).mockClear(); + mocked(GitHubClient).mockClear(); mockRulesetRepoCreate.mockClear(); mockGithubClient = mocked(new GitHubClient({} as any)); diff --git a/src/domain/integrity-hash.spec.ts b/src/domain/integrity-hash.spec.ts index f30a746..31a40fc 100644 --- a/src/domain/integrity-hash.spec.ts +++ b/src/domain/integrity-hash.spec.ts @@ -11,8 +11,6 @@ const TEST_FILE_CONTENT = "ABCDEFGH"; const TEST_FILE_BASE64_DIGEST = "msIZfZJYJXsa6EY+QhTkzQpXi8FRfyQVkouRvkKD/Eg="; beforeEach(() => { - jest.clearAllMocks(); - mocked(fs.readFileSync).mockReturnValue(TEST_FILE_CONTENT); mocked(crypto.createHash).mockImplementation((algorithm: string) => { diff --git a/src/domain/metadata-file.spec.ts b/src/domain/metadata-file.spec.ts index 42d8071..8c1ba4a 100644 --- a/src/domain/metadata-file.spec.ts +++ b/src/domain/metadata-file.spec.ts @@ -5,10 +5,6 @@ import { MetadataFile, MetadataFileError } from "./metadata-file"; jest.mock("node:fs"); -beforeEach(() => { - jest.clearAllMocks(); -}); - function mockMetadataFile(content: string) { mocked(fs.readFileSync).mockReturnValue(content); } @@ -48,9 +44,9 @@ describe("constructor", () => { "yanked_versions": {} } `); - expect(() => new MetadataFile("metadata.json")).toThrowErrorContaining( + expect(() => new MetadataFile("metadata.json")).toThrowWithMessage( MetadataFileError, - "versions" + /versions/ ); }); @@ -72,9 +68,9 @@ describe("constructor", () => { "yanked_versions": {} } `); - expect(() => new MetadataFile("metadata.json")).toThrowErrorContaining( + expect(() => new MetadataFile("metadata.json")).toThrowWithMessage( MetadataFileError, - "versions" + /versions/ ); }); @@ -96,9 +92,9 @@ describe("constructor", () => { "yanked_versions": {} } `); - expect(() => new MetadataFile("metadata.json")).toThrowErrorContaining( + expect(() => new MetadataFile("metadata.json")).toThrowWithMessage( MetadataFileError, - "versions" + /versions/ ); }); @@ -119,9 +115,9 @@ describe("constructor", () => { "versions": [] } `); - expect(() => new MetadataFile("metadata.json")).toThrowErrorContaining( + expect(() => new MetadataFile("metadata.json")).toThrowWithMessage( MetadataFileError, - "yanked_versions" + /yanked_versions/ ); }); @@ -143,9 +139,9 @@ describe("constructor", () => { "yanked_versions": [] } `); - expect(() => new MetadataFile("metadata.json")).toThrowErrorContaining( + expect(() => new MetadataFile("metadata.json")).toThrowWithMessage( MetadataFileError, - "yanked_versions" + /yanked_versions/ ); }); @@ -169,9 +165,9 @@ describe("constructor", () => { } } `); - expect(() => new MetadataFile("metadata.json")).toThrowErrorContaining( + expect(() => new MetadataFile("metadata.json")).toThrowWithMessage( MetadataFileError, - "yanked_versions" + /yanked_versions/ ); }); @@ -218,9 +214,9 @@ describe("constructor", () => { "yanked_versions": {} } `); - expect(() => new MetadataFile("metadata.json")).toThrowErrorContaining( + expect(() => new MetadataFile("metadata.json")).toThrowWithMessage( MetadataFileError, - "maintainers" + /maintainers/ ); }); @@ -236,9 +232,9 @@ describe("constructor", () => { "yanked_versions": {} } `); - expect(() => new MetadataFile("metadata.json")).toThrowErrorContaining( + expect(() => new MetadataFile("metadata.json")).toThrowWithMessage( MetadataFileError, - "maintainers" + /maintainers/ ); }); diff --git a/src/domain/module-file.spec.ts b/src/domain/module-file.spec.ts index 4c40f74..db3a0ee 100644 --- a/src/domain/module-file.spec.ts +++ b/src/domain/module-file.spec.ts @@ -13,8 +13,6 @@ const MODULE_FILE_CONTENT = fakeModuleFile({ }); beforeEach(() => { - jest.clearAllMocks(); - mocked(fs.readFileSync).mockReturnValue(MODULE_FILE_CONTENT); }); @@ -125,7 +123,6 @@ module( bazel_dep(name = "bazel_features", version = "1.9.1")`); }); - test("stamps the version when the version field was missing but the module call ends with a comment", () => { mocked(fs.readFileSync).mockReturnValue(`\ module( diff --git a/src/domain/publish-entry.spec.ts b/src/domain/publish-entry.spec.ts index 8aa656c..32d27cd 100644 --- a/src/domain/publish-entry.spec.ts +++ b/src/domain/publish-entry.spec.ts @@ -8,7 +8,7 @@ jest.mock("../infrastructure/github"); let publishEntryService: PublishEntryService; let mockGithubClient: Mocked; beforeEach(() => { - mocked(GitHubClient, true).mockClear(); + mocked(GitHubClient).mockClear(); mockGithubClient = mocked(new GitHubClient({} as any)); publishEntryService = new PublishEntryService(mockGithubClient); }); @@ -188,15 +188,19 @@ describe("publish", () => { const tag = "v1.0.0"; mockGithubClient.createPullRequest.mockResolvedValueOnce(4); - mockGithubClient.enableAutoMerge.mockRejectedValueOnce("Failed to enable auto-merge!"); + mockGithubClient.enableAutoMerge.mockRejectedValueOnce( + "Failed to enable auto-merge!" + ); - await expect(publishEntryService.publish( - tag, - bcrFork, - bcr, - branch, - ["rules_foo"], - `github.com/aspect-build/rules_foo/releases/tag/${tag}` - )).resolves.toBe(4); + await expect( + publishEntryService.publish( + tag, + bcrFork, + bcr, + branch, + ["rules_foo"], + `github.com/aspect-build/rules_foo/releases/tag/${tag}` + ) + ).resolves.toBe(4); }); }); diff --git a/src/domain/release-archive.spec.ts b/src/domain/release-archive.spec.ts index d2d303b..e33984b 100644 --- a/src/domain/release-archive.spec.ts +++ b/src/domain/release-archive.spec.ts @@ -28,8 +28,6 @@ const TEMP_DIR = "/tmp"; const EXTRACT_DIR = `${TEMP_DIR}/archive-1234`; beforeEach(() => { - jest.clearAllMocks(); - mocked(axios.get).mockReturnValue( Promise.resolve({ data: { @@ -91,9 +89,14 @@ describe("fetch", () => { let firstRetryDelay = retryDelayFn.call(this, 0); let secondRetryDelay = retryDelayFn.call(this, 1); let thirdRetryDelay = retryDelayFn.call(this, 2); - return 10000 <= firstRetryDelay && firstRetryDelay <= 12000 - && 20000 <= secondRetryDelay && secondRetryDelay <= 24000 - && 40000 <= thirdRetryDelay && thirdRetryDelay <= 48000; + return ( + 10000 <= firstRetryDelay && + firstRetryDelay <= 12000 && + 20000 <= secondRetryDelay && + secondRetryDelay <= 24000 && + 40000 <= thirdRetryDelay && + thirdRetryDelay <= 48000 + ); }), shouldResetTimeout: true, }); diff --git a/src/domain/repository.spec.ts b/src/domain/repository.spec.ts index f4dabb3..2e4fc96 100644 --- a/src/domain/repository.spec.ts +++ b/src/domain/repository.spec.ts @@ -5,10 +5,6 @@ import { Repository } from "./repository"; jest.mock("../infrastructure/git"); -beforeEach(() => { - jest.clearAllMocks(); -}); - describe("fromCanonicalName", () => { test("creates correct repository", () => { const repository = Repository.fromCanonicalName("foo/bar"); diff --git a/src/domain/ruleset-repository.spec.ts b/src/domain/ruleset-repository.spec.ts index c56afe6..500d51a 100644 --- a/src/domain/ruleset-repository.spec.ts +++ b/src/domain/ruleset-repository.spec.ts @@ -23,10 +23,6 @@ import { jest.mock("node:fs"); jest.mock("../infrastructure/git"); -beforeEach(() => { - jest.clearAllMocks(); -}); - describe("create", () => { test("creates repository when requried files exist", async () => { mockRulesetFiles(); @@ -397,69 +393,79 @@ function mockRulesetFiles( mocked(GitClient).mockImplementation(() => { return { // checkout: jest.fn(), - shallowClone: jest.fn().mockImplementation(async (url, diskPath, branchOrTag) => { - const templatesDir = path.join( - diskPath, - RulesetRepository.BCR_TEMPLATE_DIR - ); - - mocked(fs.existsSync).mockImplementation(((p: string) => { - if ( - options.fileExistsMocks && - path.relative(diskPath, p) in options.fileExistsMocks! - ) { - return options.fileExistsMocks[path.relative(diskPath, p)]; - } else if (p === path.join(templatesDir, "metadata.template.json")) { - return !options.skipMetadataFile; - } else if (p === path.join(templatesDir, "presubmit.yml")) { - return !options.skipPresubmitFile; - } else if (p === path.join(templatesDir, "source.template.json")) { - return !options.skipSourceFile; - } else if ( - p === - path.join(templatesDir, `config.${options.configExt || "yml"}`) - ) { - return options.configExists || options.configContent !== undefined; - } else if (p === diskPath) { - return true; - } - return (jest.requireActual("node:fs") as any).existsSync(path); - }) as any); - - mocked(fs.readFileSync).mockImplementation((( - p: string, - ...args: any[] - ) => { - if ( - options.fileContentMocks && - path.relative(diskPath, p) in options.fileContentMocks! - ) { - return options.fileContentMocks[path.relative(diskPath, p)]; - } else if (p === path.join(templatesDir, "metadata.template.json")) { - return fakeMetadataFile({ - malformed: options.invalidMetadataFile, - missingVersions: options.metadataMissingVersions, - }); - } else if (p === path.join(templatesDir, "source.template.json")) { - return fakeSourceFile({ malformed: options.invalidSourceTemplate }); - } else if (p === path.join(templatesDir, "presubmit.yml")) { - return fakePresubmitFile({ malformed: options.invalidPresubmit }); - } else if ( - p === - path.join(templatesDir, `config.${options.configExt || "yml"}`) - ) { - return fakeConfigFile({ - content: options.configContent, - fixedReleaser: options.fixedReleaser, - invalidFixedReleaser: options.invalidFixedReleaser, - }); - } - return (jest.requireActual("node:fs") as any).readFileSync.apply([ - path, - ...args, - ]); - }) as any); - }), + shallowClone: jest + .fn() + .mockImplementation(async (url, diskPath, branchOrTag) => { + const templatesDir = path.join( + diskPath, + RulesetRepository.BCR_TEMPLATE_DIR + ); + + mocked(fs.existsSync).mockImplementation(((p: string) => { + if ( + options.fileExistsMocks && + path.relative(diskPath, p) in options.fileExistsMocks! + ) { + return options.fileExistsMocks[path.relative(diskPath, p)]; + } else if ( + p === path.join(templatesDir, "metadata.template.json") + ) { + return !options.skipMetadataFile; + } else if (p === path.join(templatesDir, "presubmit.yml")) { + return !options.skipPresubmitFile; + } else if (p === path.join(templatesDir, "source.template.json")) { + return !options.skipSourceFile; + } else if ( + p === + path.join(templatesDir, `config.${options.configExt || "yml"}`) + ) { + return ( + options.configExists || options.configContent !== undefined + ); + } else if (p === diskPath) { + return true; + } + return (jest.requireActual("node:fs") as any).existsSync(path); + }) as any); + + mocked(fs.readFileSync).mockImplementation((( + p: string, + ...args: any[] + ) => { + if ( + options.fileContentMocks && + path.relative(diskPath, p) in options.fileContentMocks! + ) { + return options.fileContentMocks[path.relative(diskPath, p)]; + } else if ( + p === path.join(templatesDir, "metadata.template.json") + ) { + return fakeMetadataFile({ + malformed: options.invalidMetadataFile, + missingVersions: options.metadataMissingVersions, + }); + } else if (p === path.join(templatesDir, "source.template.json")) { + return fakeSourceFile({ + malformed: options.invalidSourceTemplate, + }); + } else if (p === path.join(templatesDir, "presubmit.yml")) { + return fakePresubmitFile({ malformed: options.invalidPresubmit }); + } else if ( + p === + path.join(templatesDir, `config.${options.configExt || "yml"}`) + ) { + return fakeConfigFile({ + content: options.configContent, + fixedReleaser: options.fixedReleaser, + invalidFixedReleaser: options.invalidFixedReleaser, + }); + } + return (jest.requireActual("node:fs") as any).readFileSync.apply([ + path, + ...args, + ]); + }) as any); + }), } as any; }); } diff --git a/src/domain/source-template.spec.ts b/src/domain/source-template.spec.ts index a8e4843..b091d3c 100644 --- a/src/domain/source-template.spec.ts +++ b/src/domain/source-template.spec.ts @@ -12,7 +12,6 @@ jest.mock("node:fs"); let sourceTemplateContent: string; beforeEach(() => { - jest.clearAllMocks(); mockSourceFile(); }); diff --git a/src/infrastructure/github.ts b/src/infrastructure/github.ts index 5b48ce7..59455ad 100644 --- a/src/infrastructure/github.ts +++ b/src/infrastructure/github.ts @@ -142,7 +142,7 @@ export class GitHubClient { toRepo: Repository, toBranch: string, title: string, - body: string, + body: string ): Promise { const { data: pull } = await this.octokit.rest.pulls.create({ owner: toRepo.owner, @@ -157,10 +157,7 @@ export class GitHubClient { return pull.number; } - public async enableAutoMerge( - repo: Repository, - pullNumber: number, - ) { + public async enableAutoMerge(repo: Repository, pullNumber: number) { await this.octokit.rest.pulls.update({ owner: repo.owner, repo: repo.name,