From 261fec1e82f9c476199489540591e990a6c211e1 Mon Sep 17 00:00:00 2001 From: Antony Date: Mon, 29 Apr 2024 12:49:23 +0530 Subject: [PATCH] test: Variant entries export test,Unit test basic setup --- package-lock.json | 699 ++++++++---------- packages/contentstack-variants/package.json | 14 +- .../src/export/variant-entries.ts | 3 - .../test/unit/export/variant-entries.test.ts | 80 ++ .../test/unit/mock/export-config.json | 48 ++ packages/contentstack-variants/tsconfig.json | 4 +- pnpm-lock.yaml | 22 +- 7 files changed, 465 insertions(+), 405 deletions(-) create mode 100644 packages/contentstack-variants/test/unit/export/variant-entries.test.ts create mode 100644 packages/contentstack-variants/test/unit/mock/export-config.json diff --git a/package-lock.json b/package-lock.json index a363193f1f..90c7ebb541 100644 --- a/package-lock.json +++ b/package-lock.json @@ -18,15 +18,6 @@ "node": ">=18.0.0" } }, - "node_modules/@aashutoshrathi/word-wrap": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz", - "integrity": "sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/@ampproject/remapping": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz", @@ -41,9 +32,9 @@ } }, "node_modules/@apollo/client": { - "version": "3.9.11", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.9.11.tgz", - "integrity": "sha512-H7e9m7cRcFO93tokwzqrsbnfKorkpV24xU30hFH5u2g6B+c1DMo/ouyF/YrBPdrTzqxQCjTUmds/FLmJ7626GA==", + "version": "3.10.1", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.10.1.tgz", + "integrity": "sha512-QNacQBZzJla5UQ/LLBXJWM7/1v1C5cfpMQPAFjW4hg4T54wHWbg4Dr+Dp6N+hy/ygu8tepdM+/y/5VFLZhovlQ==", "dependencies": { "@graphql-typed-document-node/core": "^3.1.1", "@wry/caches": "^1.0.0", @@ -53,7 +44,7 @@ "hoist-non-react-statics": "^3.3.2", "optimism": "^0.18.0", "prop-types": "^15.7.2", - "rehackt": "0.0.6", + "rehackt": "^0.1.0", "response-iterator": "^0.2.6", "symbol-observable": "^4.0.0", "ts-invariant": "^0.10.3", @@ -1340,9 +1331,9 @@ } }, "node_modules/@jest/core/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, "node_modules/@jest/environment": { @@ -2002,17 +1993,18 @@ } }, "node_modules/@oclif/plugin-plugins": { - "version": "5.0.13", - "resolved": "https://registry.npmjs.org/@oclif/plugin-plugins/-/plugin-plugins-5.0.13.tgz", - "integrity": "sha512-BNjT/O/50yw816qUIVZD0zmLklGhXqCnmxD2msGCrWJcsmylXkORe3BRF0ZJXAhf+fpO+kIJN/Tl42RUm/NX2Q==", + "version": "5.0.16", + "resolved": "https://registry.npmjs.org/@oclif/plugin-plugins/-/plugin-plugins-5.0.16.tgz", + "integrity": "sha512-4fYOQQ9kfi56r+gooRJai47/YNZFco46Hydzdg+1W9BZ78TyzqnQf1OC6vYelUudemUH0xlzBYcIzLcwUf3uPA==", "hasShrinkwrap": true, "dependencies": { "@oclif/core": "^3.26.4", "chalk": "^5.3.0", "debug": "^4.3.4", - "npm": "10.5.2", + "npm": "10.6.0", "npm-package-arg": "^11.0.2", "npm-run-path": "^5.3.0", + "object-treeify": "^4.0.1", "semver": "^7.6.0", "validate-npm-package-name": "^5.0.0", "yarn": "^1.22.22" @@ -2145,6 +2137,15 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/@oclif/plugin-plugins/node_modules/@oclif/core/node_modules/object-treeify": { + "version": "1.1.33", + "resolved": "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.33.tgz", + "integrity": "sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==", + "license": "MIT", + "engines": { + "node": ">= 10" + } + }, "node_modules/@oclif/plugin-plugins/node_modules/@oclif/core/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -2823,9 +2824,9 @@ } }, "node_modules/@oclif/plugin-plugins/node_modules/npm": { - "version": "10.5.2", - "resolved": "https://registry.npmjs.org/npm/-/npm-10.5.2.tgz", - "integrity": "sha512-cHVG7QEJwJdZyOrK0dKX5uf3R5Fd0E8AcmSES1jLtO52UT1enUKZ96Onw/xwq4CbrTZEnDuu2Vf9kCQh/Sd12w==", + "version": "10.6.0", + "resolved": "https://registry.npmjs.org/npm/-/npm-10.6.0.tgz", + "integrity": "sha512-KC70Su2ZnO9v4i2t+M0sQcsRERk++XcYbK9fy4bLWzUCV2nELhSN7UAkoe42P4HQTg2LyQxcfntgYS89OEaOsA==", "bundleDependencies": [ "@isaacs/string-locale-compare", "@npmcli/arborist", @@ -2843,8 +2844,6 @@ "chalk", "ci-info", "cli-columns", - "cli-table3", - "columnify", "fastest-levenshtein", "fs-minipass", "glob", @@ -2880,11 +2879,11 @@ "npm-profile", "npm-registry-fetch", "npm-user-validate", - "npmlog", "p-map", "pacote", "parse-conflict-json", "proc-log", + "proggy", "qrcode-terminal", "read", "semver", @@ -2913,10 +2912,10 @@ "@npmcli/config": "^8.0.2", "@npmcli/fs": "^3.1.0", "@npmcli/map-workspaces": "^3.0.6", - "@npmcli/package-json": "^5.0.2", + "@npmcli/package-json": "^5.1.0", "@npmcli/promise-spawn": "^7.0.1", "@npmcli/redact": "^1.1.0", - "@npmcli/run-script": "^7.0.4", + "@npmcli/run-script": "^8.0.0", "@sigstore/tuf": "^2.3.2", "abbrev": "^2.0.0", "archy": "~1.0.0", @@ -2924,8 +2923,6 @@ "chalk": "^5.3.0", "ci-info": "^4.0.0", "cli-columns": "^4.0.0", - "cli-table3": "^0.6.4", - "columnify": "^1.6.0", "fastest-levenshtein": "^1.0.16", "fs-minipass": "^3.0.3", "glob": "^10.3.12", @@ -2956,16 +2953,16 @@ "normalize-package-data": "^6.0.0", "npm-audit-report": "^5.0.0", "npm-install-checks": "^6.3.0", - "npm-package-arg": "^11.0.1", + "npm-package-arg": "^11.0.2", "npm-pick-manifest": "^9.0.0", - "npm-profile": "^9.0.0", - "npm-registry-fetch": "^16.2.0", + "npm-profile": "^9.0.1", + "npm-registry-fetch": "^16.2.1", "npm-user-validate": "^2.0.0", - "npmlog": "^7.0.1", "p-map": "^4.0.0", - "pacote": "^17.0.6", + "pacote": "^18.0.2", "parse-conflict-json": "^3.0.1", - "proc-log": "^3.0.0", + "proc-log": "^4.2.0", + "proggy": "^2.0.0", "qrcode-terminal": "^0.12.0", "read": "^3.0.1", "semver": "^7.6.0", @@ -3004,9 +3001,9 @@ } }, "node_modules/@oclif/plugin-plugins/node_modules/npm-package-arg/node_modules/proc-log": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.0.0.tgz", - "integrity": "sha512-v1lzmYxGDs2+OZnmYtYZK3DG8zogt+CbQ+o/iqqtTfpyCmGWulCTEQu5GIbivf7OjgIkH2Nr8SH8UxAGugZNbg==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-4.2.0.tgz", + "integrity": "sha512-g8+OnU/L2v+wyiVK+D5fA34J7EH8jZ8DDlvwhRCMxmMj7UCBvxiO1mGeN+36JXIKF4zevU4kRBd8lVgG9vLelA==", "license": "ISC", "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -3039,15 +3036,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/@colors/colors": { - "version": "1.5.0", - "inBundle": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.1.90" - } - }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/@isaacs/cliui": { "version": "8.0.2", "inBundle": true, @@ -3131,21 +3119,21 @@ } }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/@npmcli/arborist": { - "version": "7.4.2", + "version": "7.5.0", "inBundle": true, "license": "ISC", "dependencies": { "@isaacs/string-locale-compare": "^1.1.0", "@npmcli/fs": "^3.1.0", - "@npmcli/installed-package-contents": "^2.0.2", + "@npmcli/installed-package-contents": "^2.1.0", "@npmcli/map-workspaces": "^3.0.2", - "@npmcli/metavuln-calculator": "^7.0.0", + "@npmcli/metavuln-calculator": "^7.1.0", "@npmcli/name-from-folder": "^2.0.0", "@npmcli/node-gyp": "^3.0.0", - "@npmcli/package-json": "^5.0.0", + "@npmcli/package-json": "^5.1.0", "@npmcli/query": "^3.1.0", "@npmcli/redact": "^1.1.0", - "@npmcli/run-script": "^7.0.2", + "@npmcli/run-script": "^8.0.0", "bin-links": "^4.0.1", "cacache": "^18.0.0", "common-ancestor-path": "^1.0.1", @@ -3155,13 +3143,13 @@ "minimatch": "^9.0.4", "nopt": "^7.0.0", "npm-install-checks": "^6.2.0", - "npm-package-arg": "^11.0.1", + "npm-package-arg": "^11.0.2", "npm-pick-manifest": "^9.0.0", - "npm-registry-fetch": "^16.2.0", - "npmlog": "^7.0.1", - "pacote": "^17.0.4", + "npm-registry-fetch": "^16.2.1", + "pacote": "^18.0.1", "parse-conflict-json": "^3.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.2.0", + "proggy": "^2.0.0", "promise-all-reject-late": "^1.0.0", "promise-call-limit": "^3.0.1", "read-package-json-fast": "^3.0.2", @@ -3178,7 +3166,7 @@ } }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/@npmcli/config": { - "version": "8.2.2", + "version": "8.3.0", "inBundle": true, "license": "ISC", "dependencies": { @@ -3186,7 +3174,7 @@ "ci-info": "^4.0.0", "ini": "^4.1.2", "nopt": "^7.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.2.0", "read-package-json-fast": "^3.0.2", "semver": "^7.3.5", "walk-up-path": "^3.0.1" @@ -3195,31 +3183,6 @@ "node": "^16.14.0 || >=18.0.0" } }, - "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/@npmcli/disparity-colors": { - "version": "3.0.0", - "inBundle": true, - "license": "ISC", - "dependencies": { - "ansi-styles": "^4.3.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, - "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/@npmcli/disparity-colors/node_modules/ansi-styles": { - "version": "4.3.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/@npmcli/fs": { "version": "3.1.0", "inBundle": true, @@ -3232,14 +3195,14 @@ } }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/@npmcli/git": { - "version": "5.0.5", + "version": "5.0.6", "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/promise-spawn": "^7.0.0", "lru-cache": "^10.0.1", "npm-pick-manifest": "^9.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", @@ -3250,7 +3213,7 @@ } }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/@npmcli/installed-package-contents": { - "version": "2.0.2", + "version": "2.1.0", "inBundle": true, "license": "ISC", "dependencies": { @@ -3258,7 +3221,7 @@ "npm-normalize-package-bin": "^3.0.0" }, "bin": { - "installed-package-contents": "lib/index.js" + "installed-package-contents": "bin/index.js" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -3279,13 +3242,14 @@ } }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/@npmcli/metavuln-calculator": { - "version": "7.0.0", + "version": "7.1.0", "inBundle": true, "license": "ISC", "dependencies": { "cacache": "^18.0.0", "json-parse-even-better-errors": "^3.0.0", - "pacote": "^17.0.0", + "pacote": "^18.0.0", + "proc-log": "^4.1.0", "semver": "^7.3.5" }, "engines": { @@ -3309,7 +3273,7 @@ } }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/@npmcli/package-json": { - "version": "5.0.2", + "version": "5.1.0", "inBundle": true, "license": "ISC", "dependencies": { @@ -3318,7 +3282,7 @@ "hosted-git-info": "^7.0.0", "json-parse-even-better-errors": "^3.0.0", "normalize-package-data": "^6.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.0.0", "semver": "^7.5.3" }, "engines": { @@ -3356,7 +3320,7 @@ } }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/@npmcli/run-script": { - "version": "7.0.4", + "version": "8.0.0", "inBundle": true, "license": "ISC", "dependencies": { @@ -3364,6 +3328,7 @@ "@npmcli/package-json": "^5.0.0", "@npmcli/promise-spawn": "^7.0.0", "node-gyp": "^10.0.0", + "proc-log": "^4.0.0", "which": "^4.0.0" }, "engines": { @@ -3525,14 +3490,6 @@ "inBundle": true, "license": "MIT" }, - "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/are-we-there-yet": { - "version": "4.0.2", - "inBundle": true, - "license": "ISC", - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/balanced-match": { "version": "1.0.2", "inBundle": true, @@ -3665,28 +3622,6 @@ "node": ">= 10" } }, - "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/cli-table3": { - "version": "0.6.4", - "inBundle": true, - "license": "MIT", - "dependencies": { - "string-width": "^4.2.0" - }, - "engines": { - "node": "10.* || >= 12.*" - }, - "optionalDependencies": { - "@colors/colors": "1.5.0" - } - }, - "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/clone": { - "version": "1.0.4", - "inBundle": true, - "license": "MIT", - "engines": { - "node": ">=0.8" - } - }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/cmd-shim": { "version": "6.0.2", "inBundle": true, @@ -3711,36 +3646,11 @@ "inBundle": true, "license": "MIT" }, - "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/color-support": { - "version": "1.1.3", - "inBundle": true, - "license": "ISC", - "bin": { - "color-support": "bin.js" - } - }, - "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/columnify": { - "version": "1.6.0", - "inBundle": true, - "license": "MIT", - "dependencies": { - "strip-ansi": "^6.0.1", - "wcwidth": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/common-ancestor-path": { "version": "1.0.1", "inBundle": true, "license": "ISC" }, - "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/console-control-strings": { - "version": "1.1.0", - "inBundle": true, - "license": "ISC" - }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/cross-spawn": { "version": "7.0.3", "inBundle": true, @@ -3800,17 +3710,6 @@ "inBundle": true, "license": "MIT" }, - "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/defaults": { - "version": "1.0.4", - "inBundle": true, - "license": "MIT", - "dependencies": { - "clone": "^1.0.2" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/diff": { "version": "5.2.0", "inBundle": true, @@ -3898,24 +3797,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/gauge": { - "version": "5.0.1", - "inBundle": true, - "license": "ISC", - "dependencies": { - "aproba": "^1.0.3 || ^2.0.0", - "color-support": "^1.1.3", - "console-control-strings": "^1.1.0", - "has-unicode": "^2.0.1", - "signal-exit": "^4.0.1", - "string-width": "^4.2.3", - "strip-ansi": "^6.0.1", - "wide-align": "^1.1.5" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/glob": { "version": "10.3.12", "inBundle": true, @@ -3942,11 +3823,6 @@ "inBundle": true, "license": "ISC" }, - "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/has-unicode": { - "version": "2.0.1", - "inBundle": true, - "license": "ISC" - }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/hasown": { "version": "2.0.2", "inBundle": true, @@ -4187,30 +4063,29 @@ "license": "MIT" }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/libnpmaccess": { - "version": "8.0.3", + "version": "8.0.4", "inBundle": true, "license": "ISC", "dependencies": { - "npm-package-arg": "^11.0.1", - "npm-registry-fetch": "^16.2.0" + "npm-package-arg": "^11.0.2", + "npm-registry-fetch": "^16.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/libnpmdiff": { - "version": "6.0.9", + "version": "6.1.0", "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/arborist": "^7.2.1", - "@npmcli/disparity-colors": "^3.0.0", - "@npmcli/installed-package-contents": "^2.0.2", + "@npmcli/installed-package-contents": "^2.1.0", "binary-extensions": "^2.3.0", "diff": "^5.1.0", "minimatch": "^9.0.4", - "npm-package-arg": "^11.0.1", - "pacote": "^17.0.4", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.1", "tar": "^6.2.1" }, "engines": { @@ -4218,17 +4093,16 @@ } }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/libnpmexec": { - "version": "7.0.10", + "version": "8.0.0", "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/arborist": "^7.2.1", - "@npmcli/run-script": "^7.0.2", + "@npmcli/run-script": "^8.0.0", "ci-info": "^4.0.0", - "npm-package-arg": "^11.0.1", - "npmlog": "^7.0.1", - "pacote": "^17.0.4", - "proc-log": "^3.0.0", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.1", + "proc-log": "^4.2.0", "read": "^3.0.1", "read-package-json-fast": "^3.0.2", "semver": "^7.3.7", @@ -4239,7 +4113,7 @@ } }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/libnpmfund": { - "version": "5.0.7", + "version": "5.0.8", "inBundle": true, "license": "ISC", "dependencies": { @@ -4250,53 +4124,53 @@ } }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/libnpmhook": { - "version": "10.0.2", + "version": "10.0.3", "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^16.2.0" + "npm-registry-fetch": "^16.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/libnpmorg": { - "version": "6.0.3", + "version": "6.0.4", "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^16.2.0" + "npm-registry-fetch": "^16.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/libnpmpack": { - "version": "6.0.9", + "version": "7.0.0", "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/arborist": "^7.2.1", - "@npmcli/run-script": "^7.0.2", - "npm-package-arg": "^11.0.1", - "pacote": "^17.0.4" + "@npmcli/run-script": "^8.0.0", + "npm-package-arg": "^11.0.2", + "pacote": "^18.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/libnpmpublish": { - "version": "9.0.5", + "version": "9.0.6", "inBundle": true, "license": "ISC", "dependencies": { "ci-info": "^4.0.0", "normalize-package-data": "^6.0.0", - "npm-package-arg": "^11.0.1", - "npm-registry-fetch": "^16.2.0", - "proc-log": "^3.0.0", + "npm-package-arg": "^11.0.2", + "npm-registry-fetch": "^16.2.1", + "proc-log": "^4.2.0", "semver": "^7.3.7", "sigstore": "^2.2.0", "ssri": "^10.0.5" @@ -4306,37 +4180,37 @@ } }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/libnpmsearch": { - "version": "7.0.2", + "version": "7.0.3", "inBundle": true, "license": "ISC", "dependencies": { - "npm-registry-fetch": "^16.2.0" + "npm-registry-fetch": "^16.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/libnpmteam": { - "version": "6.0.2", + "version": "6.0.3", "inBundle": true, "license": "ISC", "dependencies": { "aproba": "^2.0.0", - "npm-registry-fetch": "^16.2.0" + "npm-registry-fetch": "^16.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/libnpmversion": { - "version": "5.0.2", + "version": "6.0.0", "inBundle": true, "license": "ISC", "dependencies": { - "@npmcli/git": "^5.0.3", - "@npmcli/run-script": "^7.0.2", + "@npmcli/git": "^5.0.6", + "@npmcli/run-script": "^8.0.0", "json-parse-even-better-errors": "^3.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.2.0", "semver": "^7.3.7" }, "engines": { @@ -4585,6 +4459,14 @@ "node": "^16.14.0 || >=18.0.0" } }, + "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/node-gyp/node_modules/proc-log": { + "version": "3.0.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/nopt": { "version": "7.2.0", "inBundle": true, @@ -4652,12 +4534,12 @@ } }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/npm-package-arg": { - "version": "11.0.1", + "version": "11.0.2", "inBundle": true, "license": "ISC", "dependencies": { "hosted-git-info": "^7.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.0.0", "semver": "^7.3.5", "validate-npm-package-name": "^5.0.0" }, @@ -4691,19 +4573,19 @@ } }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/npm-profile": { - "version": "9.0.0", + "version": "9.0.1", "inBundle": true, "license": "ISC", "dependencies": { "npm-registry-fetch": "^16.0.0", - "proc-log": "^3.0.0" + "proc-log": "^4.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/npm-registry-fetch": { - "version": "16.2.0", + "version": "16.2.1", "inBundle": true, "license": "ISC", "dependencies": { @@ -4714,7 +4596,7 @@ "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", "npm-package-arg": "^11.0.0", - "proc-log": "^3.0.0" + "proc-log": "^4.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" @@ -4728,20 +4610,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/npmlog": { - "version": "7.0.1", - "inBundle": true, - "license": "ISC", - "dependencies": { - "are-we-there-yet": "^4.0.0", - "console-control-strings": "^1.1.0", - "gauge": "^5.0.0", - "set-blocking": "^2.0.0" - }, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/p-map": { "version": "4.0.0", "inBundle": true, @@ -4757,14 +4625,15 @@ } }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/pacote": { - "version": "17.0.6", + "version": "18.0.2", "inBundle": true, "license": "ISC", "dependencies": { "@npmcli/git": "^5.0.0", "@npmcli/installed-package-contents": "^2.0.1", + "@npmcli/package-json": "^5.1.0", "@npmcli/promise-spawn": "^7.0.0", - "@npmcli/run-script": "^7.0.0", + "@npmcli/run-script": "^8.0.0", "cacache": "^18.0.0", "fs-minipass": "^3.0.0", "minipass": "^7.0.2", @@ -4772,10 +4641,8 @@ "npm-packlist": "^8.0.0", "npm-pick-manifest": "^9.0.0", "npm-registry-fetch": "^16.0.0", - "proc-log": "^3.0.0", + "proc-log": "^4.0.0", "promise-retry": "^2.0.1", - "read-package-json": "^7.0.0", - "read-package-json-fast": "^3.0.0", "sigstore": "^2.2.0", "ssri": "^10.0.0", "tar": "^6.1.11" @@ -4836,7 +4703,15 @@ } }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/proc-log": { - "version": "3.0.0", + "version": "4.2.0", + "inBundle": true, + "license": "ISC", + "engines": { + "node": "^14.17.0 || ^16.13.0 || >=18.0.0" + } + }, + "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/proggy": { + "version": "2.0.0", "inBundle": true, "license": "ISC", "engines": { @@ -4913,20 +4788,6 @@ "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, - "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/read-package-json": { - "version": "7.0.0", - "inBundle": true, - "license": "ISC", - "dependencies": { - "glob": "^10.2.2", - "json-parse-even-better-errors": "^3.0.0", - "normalize-package-data": "^6.0.0", - "npm-normalize-package-bin": "^3.0.0" - }, - "engines": { - "node": "^16.14.0 || >=18.0.0" - } - }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/read-package-json-fast": { "version": "3.0.2", "inBundle": true, @@ -4978,11 +4839,6 @@ "node": ">=10" } }, - "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/set-blocking": { - "version": "2.0.0", - "inBundle": true, - "license": "ISC" - }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/shebang-command": { "version": "2.0.0", "inBundle": true, @@ -5311,14 +5167,6 @@ "inBundle": true, "license": "ISC" }, - "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/wcwidth": { - "version": "1.0.1", - "inBundle": true, - "license": "MIT", - "dependencies": { - "defaults": "^1.0.3" - } - }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/which": { "version": "4.0.0", "inBundle": true, @@ -5341,14 +5189,6 @@ "node": ">=16" } }, - "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/wide-align": { - "version": "1.1.5", - "inBundle": true, - "license": "ISC", - "dependencies": { - "string-width": "^1.0.2 || 2 || 3 || 4" - } - }, "node_modules/@oclif/plugin-plugins/node_modules/npm/node_modules/wrap-ansi": { "version": "8.1.0", "inBundle": true, @@ -5460,12 +5300,12 @@ "license": "ISC" }, "node_modules/@oclif/plugin-plugins/node_modules/object-treeify": { - "version": "1.1.33", - "resolved": "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.33.tgz", - "integrity": "sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/object-treeify/-/object-treeify-4.0.1.tgz", + "integrity": "sha512-Y6tg5rHfsefSkfKujv2SwHulInROy/rCL5F4w0QOWxut8AnxYxf0YmNhTh95Zfyxpsudo66uqkux0ACFnyMSgQ==", "license": "MIT", "engines": { - "node": ">= 10" + "node": ">= 16" } }, "node_modules/@oclif/plugin-plugins/node_modules/password-prompt": { @@ -6418,9 +6258,9 @@ "integrity": "sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ==" }, "node_modules/@slack/bolt": { - "version": "3.17.1", - "resolved": "https://registry.npmjs.org/@slack/bolt/-/bolt-3.17.1.tgz", - "integrity": "sha512-N+4WxpkM59RXi7BL3IXUtENnn9cF7TOBn7ttaHpgvlnjUaro+yQyY60arXTlP4ytVDFJ1w0mSdfftcM17h+i2w==", + "version": "3.18.0", + "resolved": "https://registry.npmjs.org/@slack/bolt/-/bolt-3.18.0.tgz", + "integrity": "sha512-A7bDi5kY50fS6/nsmURkQdO3iMxD8aX/rA+m1UXEM2ue2z4KijeQtx2sOZ4YkJQ/h7BsgTQM0CYh3qqmo+m5sQ==", "dependencies": { "@slack/logger": "^4.0.0", "@slack/oauth": "^2.6.2", @@ -8055,9 +7895,9 @@ } }, "node_modules/aws-sdk": { - "version": "2.1604.0", - "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1604.0.tgz", - "integrity": "sha512-JSXNwKylbSZR2AL/jczOGJmPCZ/QpTys6SP89rhgy5LN677PJ6weQx5ShpPfGIcczGXjAeJDm8faWT53fYPCCw==", + "version": "2.1608.0", + "resolved": "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1608.0.tgz", + "integrity": "sha512-qqmKS6PRNTRO+O3ZVp9+tvB6asy5uRYDpR6AhSrnhu46JtDpI47aB/O9vyykqQf3JsFu0loinDJjl2hxQoal9A==", "dev": true, "hasInstallScript": true, "dependencies": { @@ -8801,9 +8641,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001612", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz", - "integrity": "sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g==", + "version": "1.0.30001614", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001614.tgz", + "integrity": "sha512-jmZQ1VpmlRwHgdP1/uiKzgiAuGOfLEJsYFP4+GBou/QQ4U6IOJCB4NP1c+1p9RGLpwObcT94jA5/uO+F1vBbog==", "dev": true, "funding": [ { @@ -9018,9 +8858,9 @@ } }, "node_modules/cjs-module-lexer": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.2.3.tgz", - "integrity": "sha512-0TNiGstbQmCFwt4akjjBg5pLRTSyj/PkWQ1ZoO2zntmg9yLqSRxwEa4iCfQLGjqhiqBfOJa7W/E8wfGrTDmlZQ==", + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.3.1.tgz", + "integrity": "sha512-a3KdPAANPbNE4ZUv9h6LckSl9zLsYOP4MBmhIPkRaeyybt+r4UghLvq+xw/YwUcC1gqylCkL4rdVs3Lwupjm4Q==", "dev": true }, "node_modules/clean-regexp": { @@ -10327,9 +10167,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.746", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.746.tgz", - "integrity": "sha512-jeWaIta2rIG2FzHaYIhSuVWqC6KJYo7oSBX4Jv7g+aVujKztfvdpf+n6MGwZdC5hQXbax4nntykLH2juIQrfPg==", + "version": "1.4.750", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.750.tgz", + "integrity": "sha512-9ItEpeu15hW5m8jKdriL+BQrgwDTXEL9pn4SkillWFu73ZNNNQ2BKKLS+ZHv2vC9UkNhosAeyfxOf/5OSeTCPA==", "dev": true }, "node_modules/elegant-spinner": { @@ -10757,9 +10597,9 @@ } }, "node_modules/eslint-config-oclif-typescript": { - "version": "3.1.6", - "resolved": "https://registry.npmjs.org/eslint-config-oclif-typescript/-/eslint-config-oclif-typescript-3.1.6.tgz", - "integrity": "sha512-K/Gv19vzTaeLQcs5syZ+Rup8RZfMclIuO2mV9YPG3GN64nSPA545+I7/uiaaxE4Ka+fKg2kZmMq3cFT0TOidpA==", + "version": "3.1.7", + "resolved": "https://registry.npmjs.org/eslint-config-oclif-typescript/-/eslint-config-oclif-typescript-3.1.7.tgz", + "integrity": "sha512-5q6Q1NjQt6WrAANGO9Go3uuxZTzf7ywmecRNW7e+bTnlkTk0/ClPd6SogH+qkwOkFJaMHmBp45ZmzvwGzy/Txg==", "dev": true, "dependencies": { "@typescript-eslint/eslint-plugin": "^6.21.0", @@ -10769,7 +10609,7 @@ "eslint-plugin-import": "^2.29.1", "eslint-plugin-mocha": "^10.4.3", "eslint-plugin-n": "^15", - "eslint-plugin-perfectionist": "^2.9.0" + "eslint-plugin-perfectionist": "^2.10.0" }, "engines": { "node": ">=18.0.0" @@ -11393,12 +11233,12 @@ } }, "node_modules/eslint-plugin-perfectionist": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-2.9.0.tgz", - "integrity": "sha512-ipFtDrqtF99qVVo+FE1fo6aHyLLp7hg6PNGfzY5KxQjcl0XCbyEFvjtR1NfkHDTN9rdFeEDxg59LLOv3VOAHAw==", + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-2.10.0.tgz", + "integrity": "sha512-P+tdrkHeMWBc55+DZsoDOAftV1WCsEoHaKm6JC7zajFus/syfT4vUPBFb3atGFSuyaVnGQGHlcKpP9X3Q0gH/w==", "dev": true, "dependencies": { - "@typescript-eslint/utils": "^6.13.0", + "@typescript-eslint/utils": "^6.13.0 || ^7.0.0", "minimatch": "^9.0.3", "natural-compare-lite": "^1.4.0" }, @@ -11425,16 +11265,16 @@ } }, "node_modules/eslint-plugin-perfectionist/node_modules/@typescript-eslint/scope-manager": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz", - "integrity": "sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-7.7.1.tgz", + "integrity": "sha512-PytBif2SF+9SpEUKynYn5g1RHFddJUcyynGpztX3l/ik7KmZEv19WCMhUBkHXPU9es/VWGD3/zg3wg90+Dh2rA==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0" + "@typescript-eslint/types": "7.7.1", + "@typescript-eslint/visitor-keys": "7.7.1" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -11442,12 +11282,12 @@ } }, "node_modules/eslint-plugin-perfectionist/node_modules/@typescript-eslint/types": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.21.0.tgz", - "integrity": "sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-7.7.1.tgz", + "integrity": "sha512-AmPmnGW1ZLTpWa+/2omPrPfR7BcbUU4oha5VIbSbS1a1Tv966bklvLNXxp3mrbc+P2j4MNOTfDffNsk4o0c6/w==", "dev": true, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -11455,22 +11295,22 @@ } }, "node_modules/eslint-plugin-perfectionist/node_modules/@typescript-eslint/typescript-estree": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz", - "integrity": "sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-7.7.1.tgz", + "integrity": "sha512-CXe0JHCXru8Fa36dteXqmH2YxngKJjkQLjxzoj6LYwzZ7qZvgsLSc+eqItCrqIop8Vl2UKoAi0StVWu97FQZIQ==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/visitor-keys": "6.21.0", + "@typescript-eslint/types": "7.7.1", + "@typescript-eslint/visitor-keys": "7.7.1", "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "minimatch": "9.0.3", - "semver": "^7.5.4", - "ts-api-utils": "^1.0.1" + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^1.3.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -11482,57 +11322,42 @@ } } }, - "node_modules/eslint-plugin-perfectionist/node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.3", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", - "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", - "dev": true, - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/eslint-plugin-perfectionist/node_modules/@typescript-eslint/utils": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.21.0.tgz", - "integrity": "sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-7.7.1.tgz", + "integrity": "sha512-QUvBxPEaBXf41ZBbaidKICgVL8Hin0p6prQDu6bbetWo39BKbWJxRsErOzMNT1rXvTll+J7ChrbmMCXM9rsvOQ==", "dev": true, "dependencies": { "@eslint-community/eslint-utils": "^4.4.0", - "@types/json-schema": "^7.0.12", - "@types/semver": "^7.5.0", - "@typescript-eslint/scope-manager": "6.21.0", - "@typescript-eslint/types": "6.21.0", - "@typescript-eslint/typescript-estree": "6.21.0", - "semver": "^7.5.4" + "@types/json-schema": "^7.0.15", + "@types/semver": "^7.5.8", + "@typescript-eslint/scope-manager": "7.7.1", + "@typescript-eslint/types": "7.7.1", + "@typescript-eslint/typescript-estree": "7.7.1", + "semver": "^7.6.0" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "eslint": "^7.0.0 || ^8.0.0" + "eslint": "^8.56.0" } }, "node_modules/eslint-plugin-perfectionist/node_modules/@typescript-eslint/visitor-keys": { - "version": "6.21.0", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz", - "integrity": "sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==", + "version": "7.7.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-7.7.1.tgz", + "integrity": "sha512-gBL3Eq25uADw1LQ9kVpf3hRM+DWzs0uZknHYK3hq4jcTPqVCClHGDnB6UUUV2SFeBeA4KWHWbbLqmbGcZ4FYbw==", "dev": true, "dependencies": { - "@typescript-eslint/types": "6.21.0", - "eslint-visitor-keys": "^3.4.1" + "@typescript-eslint/types": "7.7.1", + "eslint-visitor-keys": "^3.4.3" }, "engines": { - "node": "^16.0.0 || >=18.0.0" + "node": "^18.18.0 || >=20.0.0" }, "funding": { "type": "opencollective", @@ -15189,9 +15014,9 @@ } }, "node_modules/jest-circus/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, "node_modules/jest-cli": { @@ -15299,9 +15124,9 @@ } }, "node_modules/jest-config/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, "node_modules/jest-diff": { @@ -15383,9 +15208,9 @@ } }, "node_modules/jest-each/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, "node_modules/jest-environment-node": { @@ -15479,9 +15304,9 @@ } }, "node_modules/jest-leak-detector/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, "node_modules/jest-matcher-utils": { @@ -15550,9 +15375,9 @@ } }, "node_modules/jest-matcher-utils/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, "node_modules/jest-message-util": { @@ -15602,9 +15427,9 @@ } }, "node_modules/jest-message-util/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, "node_modules/jest-mock": { @@ -15827,9 +15652,9 @@ } }, "node_modules/jest-snapshot/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, "node_modules/jest-util": { @@ -15905,9 +15730,9 @@ } }, "node_modules/jest-validate/node_modules/react-is": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.2.0.tgz", - "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz", + "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==", "dev": true }, "node_modules/jest-watcher": { @@ -16125,9 +15950,9 @@ } }, "node_modules/jsdom/node_modules/ws": { - "version": "8.16.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", - "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", + "version": "8.17.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz", + "integrity": "sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow==", "engines": { "node": ">=10.0.0" }, @@ -19153,17 +18978,17 @@ } }, "node_modules/optionator": { - "version": "0.9.3", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz", - "integrity": "sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==", + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", "dev": true, "dependencies": { - "@aashutoshrathi/word-wrap": "^1.2.3", "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", - "type-check": "^0.4.0" + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" }, "engines": { "node": ">= 0.8.0" @@ -19571,9 +19396,9 @@ } }, "node_modules/path-scurry/node_modules/lru-cache": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.0.tgz", - "integrity": "sha512-2bIM8x+VAf6JT4bKAljS1qUWgMsqZRPGJS6FSahIMPVvctcNhyVp7AJu7quxOW9jwkryBReKZY5tY5JYv2n/7Q==", + "version": "10.2.2", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.2.2.tgz", + "integrity": "sha512-9hp3Vp2/hFQUiIwKo8XCeFVnrg8Pk3TYNPIR7tJADKi5YfcF7vEaK7avFHTlSy3kOKYaJQaalfEo6YuXdceBOQ==", "engines": { "node": "14 || >=16.14" } @@ -20810,9 +20635,9 @@ } }, "node_modules/rehackt": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/rehackt/-/rehackt-0.0.6.tgz", - "integrity": "sha512-l3WEzkt4ntlEc/IB3/mF6SRgNHA6zfQR7BlGOgBTOmx7IJJXojDASav+NsgXHFjHn+6RmwqsGPFgZpabWpeOdw==", + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/rehackt/-/rehackt-0.1.0.tgz", + "integrity": "sha512-7kRDOuLHB87D/JESKxQoRwv4DzbIdwkAGQ7p6QKGdVlY1IZheUnVhlk/4UZlNUVxdAXpyxikE3URsG067ybVzw==", "peerDependencies": { "@types/react": "*", "react": "*" @@ -24007,6 +23832,15 @@ "node": ">= 6" } }, + "node_modules/word-wrap": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/wordwrap": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", @@ -24498,16 +24332,16 @@ } }, "node_modules/yeoman-generator/node_modules/@npmcli/installed-package-contents": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", - "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.1.0.tgz", + "integrity": "sha512-c8UuGLeZpm69BryRykLuKRyKFZYJsZSCT4aVY5ds4omyZqJ172ApzgfKJ5eV/r3HgLdUYgFVe54KSFVjKoe27w==", "dev": true, "dependencies": { "npm-bundled": "^3.0.0", "npm-normalize-package-bin": "^3.0.0" }, "bin": { - "installed-package-contents": "lib/index.js" + "installed-package-contents": "bin/index.js" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" @@ -28427,9 +28261,76 @@ "lodash": "^4.17.21" }, "devDependencies": { + "@contentstack/cli-dev-dependencies": "^1.2.4", + "@oclif/test": "^2.5.6", + "@types/chai": "^4.3.14", + "@types/node": "^20.12.7", + "chai": "^4.4.1", + "mocha": "^10.4.0", + "nyc": "^15.1.0", + "sinon": "^17.0.1", + "ts-node": "^10.9.2", + "tslib": "^2.6.2", "typescript": "^5.4.2" } }, + "packages/contentstack-variants/node_modules/@sinonjs/fake-timers": { + "version": "11.2.2", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-11.2.2.tgz", + "integrity": "sha512-G2piCSxQ7oWOxwGSAyFHfPIsyeJGXYtc6mFbnFA+kRXkiEnTl8c/8jul2S329iFBnDI9HGoeWWAZvuvOkZccgw==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0" + } + }, + "packages/contentstack-variants/node_modules/@types/node": { + "version": "20.12.7", + "resolved": "https://registry.npmjs.org/@types/node/-/node-20.12.7.tgz", + "integrity": "sha512-wq0cICSkRLVaf3UGLMGItu/PtdY7oaXaI/RVU+xliKVOtRna3PRY57ZDfztpDL0n11vfymMUnXv8QwYCO7L1wg==", + "dev": true, + "dependencies": { + "undici-types": "~5.26.4" + } + }, + "packages/contentstack-variants/node_modules/diff": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz", + "integrity": "sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "packages/contentstack-variants/node_modules/sinon": { + "version": "17.0.1", + "resolved": "https://registry.npmjs.org/sinon/-/sinon-17.0.1.tgz", + "integrity": "sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g==", + "dev": true, + "dependencies": { + "@sinonjs/commons": "^3.0.0", + "@sinonjs/fake-timers": "^11.2.2", + "@sinonjs/samsam": "^8.0.0", + "diff": "^5.1.0", + "nise": "^5.1.5", + "supports-color": "^7.2.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/sinon" + } + }, + "packages/contentstack-variants/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "packages/contentstack-variants/node_modules/typescript": { "version": "5.4.5", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz", diff --git a/packages/contentstack-variants/package.json b/packages/contentstack-variants/package.json index a924351c98..cb4e3e5fdb 100644 --- a/packages/contentstack-variants/package.json +++ b/packages/contentstack-variants/package.json @@ -7,7 +7,9 @@ "scripts": { "prepack": "pnpm compile", "compile": "tsc -b tsconfig.json", - "clean": "rm -rf ./lib ./node_modules tsconfig.build.tsbuildinfo" + "test": "mocha --require ts-node/register --forbid-only \"test/**/*.test.ts\"", + "clean": "rm -rf ./lib ./node_modules tsconfig.build.tsbuildinfo", + "test:unit:report": "nyc --extension .ts mocha --require ts-node/register --forbid-only \"test/unit/**/*.test.ts\"" }, "keywords": [ "variant" @@ -15,6 +17,16 @@ "author": "antony.raj@contentstack.com", "license": "MIT", "devDependencies": { + "@contentstack/cli-dev-dependencies": "^1.2.4", + "@oclif/test": "^2.5.6", + "@types/chai": "^4.3.14", + "@types/node": "^20.12.7", + "chai": "^4.4.1", + "mocha": "^10.4.0", + "nyc": "^15.1.0", + "sinon": "^17.0.1", + "ts-node": "^10.9.2", + "tslib": "^2.6.2", "typescript": "^5.4.2" }, "dependencies": { diff --git a/packages/contentstack-variants/src/export/variant-entries.ts b/packages/contentstack-variants/src/export/variant-entries.ts index 9b19a36af2..68637b3f1f 100644 --- a/packages/contentstack-variants/src/export/variant-entries.ts +++ b/packages/contentstack-variants/src/export/variant-entries.ts @@ -61,9 +61,6 @@ export default class VariantEntries extends VariantAdapter { - this.log(this.config, error, 'error'); - }); variantEntriesFs.completeFile(true); this.log( this.config, diff --git a/packages/contentstack-variants/test/unit/export/variant-entries.test.ts b/packages/contentstack-variants/test/unit/export/variant-entries.test.ts new file mode 100644 index 0000000000..983431a0d3 --- /dev/null +++ b/packages/contentstack-variants/test/unit/export/variant-entries.test.ts @@ -0,0 +1,80 @@ +import { expect } from '@oclif/test'; +import { FsUtility } from '@contentstack/cli-utilities'; +import { fancy } from '@contentstack/cli-dev-dependencies'; + +import exportConf from '../mock/export-config.json'; +import { Export, ExportConfig, VariantHttpClient, VariantsOption } from '../../../src'; + +describe('Variant Entries Export', () => { + let config: ExportConfig; + + const exportEntryData = { + locale: 'en-us', + contentTypeUid: 'CT-ID', + entries: [{ uid: 'E-UID-1', title: 'Entry 1' }], + }; + + const test = fancy + .stdout({ print: process.env.PRINT === 'true' || false }) + .stub(FsUtility.prototype, 'completeFile', () => {}) + .stub(FsUtility.prototype, 'writeIntoFile', () => {}) + .stub(FsUtility.prototype, 'createFolderIfNotExist', () => {}); + + beforeEach(() => { + config = exportConf as unknown as ExportConfig; + }); + + describe('exportVariantEntry method', () => { + test + .stub(VariantHttpClient.prototype, 'variantEntries', async () => {}) + .spy(VariantHttpClient.prototype, 'variantEntries') + .spy(FsUtility.prototype, 'completeFile') + .spy(FsUtility.prototype, 'createFolderIfNotExist') + .it('should call export variant entry method (API call)', async ({ spy }) => { + let entryVariantInstace = new Export.VariantEntries(config); + await entryVariantInstace.exportVariantEntry(exportEntryData); + + expect(spy.variantEntries.callCount).to.be.equals(1); + expect(spy.completeFile.callCount).to.be.equals(1); + expect(spy.createFolderIfNotExist.callCount).to.be.equals(1); + expect(spy.completeFile.alwaysCalledWith(true)).to.be.true; + }); + + test + .stub(VariantHttpClient.prototype, 'variantEntries', async (...args: any) => { + const { callback } = args[0] as VariantsOption; + if (callback) { + callback([{ uid: 'E-UID-1', title: 'Entry 1' }]); + } + }) + .spy(FsUtility.prototype, 'writeIntoFile') + .it('should write data in files (As chunk)', async ({ spy }) => { + let entryVariantInstace = new Export.VariantEntries(config); + await entryVariantInstace.exportVariantEntry(exportEntryData); + + expect(spy.writeIntoFile.callCount).to.be.equals(1); + expect(spy.writeIntoFile.alwaysCalledWith([{ uid: 'E-UID-1', title: 'Entry 1' }])).to.be.true; + }); + + test + .stub(VariantHttpClient.prototype, 'variantEntries', async (...args: any) => { + const { callback } = args[0] as VariantsOption; + if (callback) { + callback([]); // NOTE API callback with empty response + } + }) + .spy(FsUtility.prototype, 'writeIntoFile') + .spy(VariantHttpClient.prototype, 'variantEntries') + .it( + 'should skip write data in files (Empty data check validation), should set default file chunk 1MB if chunk size is not passed in config', + async ({ spy }) => { + config.modules.variantEntry.chunkFileSize = null as any; + let entryVariantInstace = new Export.VariantEntries(config, () => {}); + await entryVariantInstace.exportVariantEntry(exportEntryData); + + expect(spy.writeIntoFile.callCount).to.be.equals(0); + expect(spy.variantEntries.callCount).to.be.equals(1); + }, + ); + }); +}); diff --git a/packages/contentstack-variants/test/unit/mock/export-config.json b/packages/contentstack-variants/test/unit/mock/export-config.json new file mode 100644 index 0000000000..71ec2394c9 --- /dev/null +++ b/packages/contentstack-variants/test/unit/mock/export-config.json @@ -0,0 +1,48 @@ +{ + "data": "./", + "exportDir": "./", + "apiKey": "TEST-STACK-API-KEY", + "master_locale": { "code": "en-us" }, + "host": "https://test.abc.com", + "modules": { + "entries": { + "dirName": "entries", + "fileName": "entries.json", + "invalidKeys": [ + "stackHeaders", + "content_type_uid", + "urlPath", + "created_at", + "updated_at", + "created_by", + "updated_by", + "_metadata", + "published" + ], + "batchLimit": 20, + "downloadLimit": 5, + "limit": 100, + "dependencies": ["locales", "content-types"], + "exportVersions": false + }, + "personalization": { + "dirName": "personalization", + "baseURL": "https://test-api.abc.com", + "exportOrder": ["attributes", "audiences", "events", "experiences"], + "projects": { "dirName": "projects", "fileName": "projects.json" }, + "attributes": { "dirName": "attributes", "fileName": "attributes.json" }, + "audiences": { "dirName": "audiences", "fileName": "audiences.json" }, + "events": { "dirName": "events", "fileName": "events.json" }, + "experiences": { "dirName": "experiences", "fileName": "experiences.json" } + }, + "variantEntry": { + "serveMockData": false, + "dirName": "variants", + "fileName": "index.json", + "chunkFileSize": 1, + "query": { "skip": 0, "limit": 100, "locale": "en-us", "include_variant": false }, + "mockDataPath": "./variant-mock-data.json" + } + }, + "personalizationEnabled": true +} diff --git a/packages/contentstack-variants/tsconfig.json b/packages/contentstack-variants/tsconfig.json index 6fb36b3e72..b44988dcc4 100644 --- a/packages/contentstack-variants/tsconfig.json +++ b/packages/contentstack-variants/tsconfig.json @@ -9,9 +9,11 @@ "forceConsistentCasingInFileNames": true, /* Ensure that casing is correct in imports. */ "strict": true, /* Enable all strict type-checking options. */ "skipLibCheck": true, /* Skip type checking all .d.ts files. */ + "resolveJsonModule": true, "lib": [ "ES2019", "es2020.promise" ], - } + }, + "include": ["src/*"] } \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1db7dabc50..f671cc0567 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -56,7 +56,7 @@ importers: rimraf: ^2.7.1 shelljs: ^0.8.4 short-uuid: ^4.2.2 - sinon: ^15.0.u1 + sinon: ^15.0.1 tmp: ^0.2.2 ts-node: ^10.9.1 tslib: ^2.4.1 @@ -1150,13 +1150,33 @@ importers: packages/contentstack-variants: specifiers: + '@contentstack/cli-dev-dependencies': ^1.2.4 '@contentstack/cli-utilities': ^1.5.12 + '@oclif/test': ^2.5.6 + '@types/chai': ^4.3.14 + '@types/node': ^20.12.7 + chai: ^4.4.1 lodash: ^4.17.21 + mocha: ^10.4.0 + nyc: ^15.1.0 + sinon: ^17.0.1 + ts-node: ^10.9.2 + tslib: ^2.6.2 typescript: ^5.4.2 dependencies: '@contentstack/cli-utilities': link:../contentstack-utilities lodash: 4.17.21 devDependencies: + '@contentstack/cli-dev-dependencies': link:../contentstack-dev-dependencies + '@oclif/test': 2.5.6_b34azymlfgei75qebilxzbqnze + '@types/chai': 4.3.14 + '@types/node': 20.12.7 + chai: 4.4.1 + mocha: 10.4.0 + nyc: 15.1.0 + sinon: 17.0.1 + ts-node: 10.9.2_b34azymlfgei75qebilxzbqnze + tslib: 2.6.2 typescript: 5.4.5 packages/variant-test: