diff --git a/index.d.ts b/index.d.ts index ac2a6dd2f9..cb7d9831e3 100644 --- a/index.d.ts +++ b/index.d.ts @@ -11,8 +11,7 @@ type CronJob = import("kubernetes-models/batch/v1").ICronJob; type ConfigMap = import("kubernetes-models/v1").IConfigMap; type Secret = import("kubernetes-models/v1").ISecret; - -type Utils = import("./packages/common/utils").Utils; +type Utils = typeof import("./packages/common/utils"); // todo: use officiel model interface KappConfig { diff --git a/package.json b/package.json index 404f1a0f78..2cc5494e7d 100644 --- a/package.json +++ b/package.json @@ -8,6 +8,7 @@ "packages/*" ], "devDependencies": { + "@types/jest": "^29.5.11", "@types/lodash.camelcase": "^4.3.7", "@types/lodash.clonedeep": "^4.5.7", "@types/lodash.defaults": "^4.2.7", @@ -16,7 +17,7 @@ "@types/lodash.pick": "^4.4.7", "@types/lodash.set": "^4.3.7", "@types/micromatch": "^4.0.2", - "@types/node": "^18.11.18", + "@types/node": "^20.10.5", "@types/pino": "^7.0.5", "commit-and-tag-version": "^11.0.0", "docsify-cli": "^4.4.4", diff --git a/packages/common/config/load-config.js b/packages/common/config/load-config.js index ce8f37ccd3..ebf77f92aa 100644 --- a/packages/common/config/load-config.js +++ b/packages/common/config/load-config.js @@ -15,7 +15,12 @@ const configDependencyKey = require("~common/utils/config-dependency-key") const lowerKeys = require("~common/utils/lower-keys") const ctx = require("../ctx") const patternMatch = require("../utils/pattern-match") -const loadStructuredConfig = require("../utils/load-structured-config") + +const loadStructuredConfig = + /** @type {import("../utils/load-structured-config").LoadStructuredConfig} */ ( + /** @type {unknown} */ (require("../utils/load-structured-config")) + ) + const getGitRef = require("../utils/get-git-ref") const getGitSha = require("../utils/get-git-sha") const getGitUrl = require("../utils/get-git-url") diff --git a/packages/common/config/load-dependencies.js b/packages/common/config/load-dependencies.js index 010f75d802..a1df782195 100644 --- a/packages/common/config/load-dependencies.js +++ b/packages/common/config/load-dependencies.js @@ -12,6 +12,13 @@ const patternMatch = require("../utils/pattern-match") const copyFilter = require("./copy-filter") const loadGitOrgConfig = require("./load-git-org-config") +/** + * + * @param {*} config + * @param {import("../utils")["logger"]} logger + * @param {*} reloadConfig + * @returns {Promise} + */ module.exports = async (config, logger, reloadConfig) => { logger.debug("🔻 load dependencies") diff --git a/packages/common/config/load-git-org-config.js b/packages/common/config/load-git-org-config.js index a6a67de852..9588004b5e 100644 --- a/packages/common/config/load-git-org-config.js +++ b/packages/common/config/load-git-org-config.js @@ -3,9 +3,20 @@ const defaultsDeep = require("lodash.defaultsdeep") const normalizeRepositoryUrl = require("~common/utils/normalize-repository-url") const getGitRemoteDefaultBranch = require("~common/utils/get-git-remote-default-branch") -const parseGitUrl = require("~common/utils/parse-git-url") + +const parseGitUrl = + /** @type {import("../utils/parse-git-url").ParseGithubUrl} */ ( + /** @type {unknown} */ (require("~common/utils/parse-git-url")) + ) + const downloadGitOrgConfig = require("./download-git-org-config") +/** + * + * @param {object} config + * @param {Function} reloadConfig + * @returns + */ module.exports = async (config, reloadConfig) => { const { gitOrg, diff --git a/packages/common/utils/index.d.ts b/packages/common/utils/index.d.ts deleted file mode 100644 index 6b8f6fd09b..0000000000 --- a/packages/common/utils/index.d.ts +++ /dev/null @@ -1,41 +0,0 @@ -// import JSDoc definitions -type Slug = typeof import("./slug"); -type KindIsRunnable = typeof import("./kind-is-runnable"); -type AsyncShell = typeof import("./async-shell"); -type IsVersionTag = typeof import("./is-version-tag"); -type SanitizeLabel = typeof import("./sanitize-label"); -type IgnoreYarnState = typeof import("./ignore-yarn-state"); -type PatternMatch = typeof import("./pattern-match"); -type KubectlRetry = typeof import("./kubectl-retry"); - -// TODO : fetch from ./*.js -// for some reason the description from source JSDoc isnt displayed -interface Utils { - /** execute some async shell command */ - asyncShell: AsyncShell; - /** Return slugified, hostname-friendly string */ - slug: Slug; - /** Check if some branch is valid semantic-release tag: vx.y.z */ - isVersionTag: IsVersionTag; - /** exclude non-alphanums chars */ - sanitizeLabel: SanitizeLabel; - //@ts-ignore - yaml; - //@ts-ignore - logger; - //@ts-ignore - KontinuousPluginError; - //@ts-ignore - patternMatch: PatternMatch; - // check if the manifest is "runnable" in kubernetes - // act as a typeguard - kindIsRunnable: KindIsRunnable; - /** Run kubectl with exponential backoff */ - kubectlRetry: KubectlRetry; - //@ts-ignore - needKubectl; - /** check if some path should be ignored */ - ignoreYarnState: IgnoreYarnState; -} - -export { Utils }; diff --git a/packages/common/utils/index.js b/packages/common/utils/index.js index d22801a156..a8b612c6d6 100644 --- a/packages/common/utils/index.js +++ b/packages/common/utils/index.js @@ -1,4 +1,4 @@ -module.exports = { +const utils = { degit: require("tiged"), fs: require("fs-extra"), get logger() { @@ -119,3 +119,5 @@ module.exports = { matchLinkRemap: require("./match-link-remap"), detectKubeVersion: require("./detect-kube-version"), } + +module.exports = utils diff --git a/packages/common/utils/kind-is-runnable.js b/packages/common/utils/kind-is-runnable.js index 83505afcd7..6073e161c8 100644 --- a/packages/common/utils/kind-is-runnable.js +++ b/packages/common/utils/kind-is-runnable.js @@ -1,4 +1,4 @@ -const kindsRunnable = require("./kinds-runnable") +const kindsRunnable = ["Deployment", "Job", "DaemonSet", "StatefulSet"] /** * diff --git a/packages/common/utils/kubectl-retry.js b/packages/common/utils/kubectl-retry.js index 5007ebe443..83e3530e28 100644 --- a/packages/common/utils/kubectl-retry.js +++ b/packages/common/utils/kubectl-retry.js @@ -99,6 +99,8 @@ const kubectlRun = async (kubectlArgs, options = {}) => { * @typedef {Object} KubectlRetryOptions * @prop {any} [logger] * @prop {any} [sentry] + * @prop {string} [kubeconfig] + * @prop {string} [kubeconfigContext] * @prop {Record} [retryOptions] * @prop {boolean} [logError] * @prop {boolean} [logInfo] diff --git a/packages/common/utils/load-structured-config.d.ts b/packages/common/utils/load-structured-config.d.ts new file mode 100644 index 0000000000..6702c517c3 --- /dev/null +++ b/packages/common/utils/load-structured-config.d.ts @@ -0,0 +1,21 @@ +export type CompilerConfig = object; + +export type StructuredconfigOptions = { + configBasename?: string; + inlineConfigs?: object[]; + configDirs?: string[]; + configPreCompilers?: CompilerConfig[]; + configOverride?: object; + env: Record; + options: object; + mergeWith?: void; + emptyAsUndefined?: boolean; + rootConfig: object; + configMeta: object; +}; + +export type LoadStructuredConfig = ( + arg0: StructuredconfigOptions +) => Promise>; + +export default LoadStructuredConfig; diff --git a/packages/common/utils/load-structured-config.js b/packages/common/utils/load-structured-config.js index 2d750bed9b..a3415d1360 100644 --- a/packages/common/utils/load-structured-config.js +++ b/packages/common/utils/load-structured-config.js @@ -15,7 +15,8 @@ const undefinedCheck = (val) => val === undefined const emptyAsUndefinedCheck = (val) => val === undefined || val === "" || val === null -module.exports = async ({ +/** @type {import("./load-structured-config") } */ +module.exports = /** @type {import("./load-structured-config") } */ async ({ configBasename = "config", inlineConfigs = [], configDirs = [], diff --git a/packages/common/utils/parse-github-url.d.ts b/packages/common/utils/parse-github-url.d.ts new file mode 100644 index 0000000000..ed2ba0ff7d --- /dev/null +++ b/packages/common/utils/parse-github-url.d.ts @@ -0,0 +1,17 @@ +import ParsedUrl from "parse-url"; + +type AdditionalInfos = { + host: string; + repository: string; + owner: string; + name: string; + repo: string; + href: string; + branch: string; + blob: string; + path: string; + filepath: string; +}; +type GitHubUrl = Partial & AdditionalInfos>; + +type ParseGithubUrl = (string) => GitHubUrl; diff --git a/packages/common/utils/parse-github-url.js b/packages/common/utils/parse-github-url.js index 7fa8ba8c69..73416adf5d 100644 --- a/packages/common/utils/parse-github-url.js +++ b/packages/common/utils/parse-github-url.js @@ -43,6 +43,7 @@ module.exports = (str) => { } // parse the URL + /** @type {Partial & { host:string, repository: string, owner: string,name: string,repo: string,href: string,branch: string, blob:string, path:string, filepath:string}>} */ let obj if (str.includes(":")) { obj = parseUrl(str) @@ -56,6 +57,7 @@ module.exports = (str) => { if (!obj.host && /^git@/.test(str) === true) { // return the correct host for git@ URLs const urlObject = parseUrl(`http://${str}`) + // @ts-ignore waiting for update parse-url types... https://github.com/IonicaBizau/parse-url/issues/71 obj.host = urlObject.host } diff --git a/packages/common/utils/time-logger.js b/packages/common/utils/time-logger.js index 4d40a3b059..95c09a8507 100644 --- a/packages/common/utils/time-logger.js +++ b/packages/common/utils/time-logger.js @@ -1,3 +1,4 @@ +// @ts-nocheck const prettyTime = require("./pretty-time") function TimeLogger({ @@ -11,6 +12,7 @@ function TimeLogger({ this.label = label this.logLevel = logLevel } + Object.assign(TimeLogger.prototype, { end(options = {}) { if (options.logger) { @@ -23,7 +25,9 @@ Object.assign(TimeLogger.prototype, { this.logLevel = options.logLevel } this.logger[this.logLevel]( - `${this.label}: ${prettyTime(new Date() - this.startTime)}` + `${this.label}: ${prettyTime( + new Date().getTime() - this.startTime.getTime() + )}` ) }, }) diff --git a/packages/kontinuous/tsconfig.json b/packages/kontinuous/tsconfig.json index 1d3948630d..0116007372 100644 --- a/packages/kontinuous/tsconfig.json +++ b/packages/kontinuous/tsconfig.json @@ -9,6 +9,7 @@ "forceConsistentCasingInFileNames": true, "moduleResolution": "node", "allowJs": true, + "checkJs": true, "noImplicitAny": false, "isolatedModules": false, "noEmit": true, @@ -19,5 +20,6 @@ "helm-tree/*": ["../helm-tree/*"] } }, - "exclude": ["./node_modules"] + "exclude": ["./node_modules"], + "include": ["./packages/common/utils/**.js"] } diff --git a/plugins/contrib/deploy-sidecars/stern.js b/plugins/contrib/deploy-sidecars/stern.js index 3a3737fdde..9c6b006389 100644 --- a/plugins/contrib/deploy-sidecars/stern.js +++ b/plugins/contrib/deploy-sidecars/stern.js @@ -1,5 +1,11 @@ const { spawn } = require("child_process") +/** + * + * @param {*} options + * @param {{utils: Utils}} param1 + * @returns + */ module.exports = async ( options, { config, logger, utils, needBin, manifests, dryRun, ctx } diff --git a/plugins/contrib/jsconfig.json b/plugins/contrib/jsconfig.json deleted file mode 100644 index 64eaa7a16b..0000000000 --- a/plugins/contrib/jsconfig.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "target": "es2022", - "checkJs": true, - "allowJs": true, - "resolveJsonModule": true, - "moduleResolution": "node", - "esModuleInterop": true, - "allowSyntheticDefaultImports": true, - "declaration": false, - "noEmit": true, - "strict": true, - "noImplicitAny": true, - "alwaysStrict": true - }, - "include": ["values-compilers/*.js", "values-compilers/*.d.ts"] -} diff --git a/plugins/contrib/patches/30-janitor.js b/plugins/contrib/patches/30-janitor.js index e270a616f5..8103967024 100644 --- a/plugins/contrib/patches/30-janitor.js +++ b/plugins/contrib/patches/30-janitor.js @@ -1,5 +1,12 @@ const { persistPatterns } = require("../lib/persist-convention") +/** + * Takes any object with a name prop and removes it + * @param {Kontinuous.Manifest[]} manifests + * @param {object} options + * @param {{config:object, values:object, utils:Utils}} param2 + * @returns {Kontinuous.Manifest[]} + */ module.exports = (manifests, options, { config, values, utils }) => { if (config.environment !== "dev") { return manifests diff --git a/plugins/contrib/patches/tests/janitor.test.js b/plugins/contrib/patches/tests/janitor.test.js index 73f4be97ae..faded5aa82 100644 --- a/plugins/contrib/patches/tests/janitor.test.js +++ b/plugins/contrib/patches/tests/janitor.test.js @@ -9,8 +9,11 @@ metadata: const runJanitor = async (config, values) => { const ctx = require("~common/ctx") - const utils = require("~common/utils") + // warn: JSDOC weird cast notation + const utils = /** @type {import("~common/utils").Utils} */ ( + /** @type {unknown} */ (require("~common/utils")) + ) const manifests = utils.yaml.loadAll(rawNs) const { logger } = utils logger.minLevel("debug") diff --git a/plugins/contrib/post-deploy/notify-mattermost.js b/plugins/contrib/post-deploy/notify-mattermost.js index f166db542a..06c237ddc8 100644 --- a/plugins/contrib/post-deploy/notify-mattermost.js +++ b/plugins/contrib/post-deploy/notify-mattermost.js @@ -46,6 +46,7 @@ module.exports = async (manifests, options, context) => { } } else { deploymentMessage.push( + // @ts-ignore new AggregateError(errors, "errors encountered during deployment").message ) // if we're running through GitHub actions diff --git a/plugins/contrib/values-compilers/10-tpl-meta-values.js b/plugins/contrib/values-compilers/10-tpl-meta-values.js index 1e995a6c4b..6af4a49134 100644 --- a/plugins/contrib/values-compilers/10-tpl-meta-values.js +++ b/plugins/contrib/values-compilers/10-tpl-meta-values.js @@ -50,7 +50,7 @@ const renderTplRecurse = async ( } value = yaml.loadValue(value) if (isTplCast) { - const cast = prefix.slice(1, -1).split(":").slice(1) + const cast = prefix.slice(1, -1).split(":").slice(1).join("") switch (true) { case cast === "int" || cast === "integer": { value = parseInt(value, 10) diff --git a/tsconfig.json b/tsconfig.json index 0c8b585ce7..248042913a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,6 +1,6 @@ { "compilerOptions": { - "module": "es6", + "module": "es2022", "target": "es2015", "checkJs": true, "allowJs": true, @@ -12,5 +12,14 @@ "noEmit": true, "strict": false }, - "include": ["**.js", "**.d.ts"] + "exclude": ["node_modules"], + "include": [ + "./index.d.ts", + "./plugins/**/*.js", + "./plugins/**/*.d.ts", + "./packages/common/**/*.js", + "./packages/common/**/*.d.ts", + "./packages/kontinuous/**/*.js", + "./packages/kontinuous/**/*.d.ts" + ] } diff --git a/yarn.lock b/yarn.lock index c825d4b942..da67505236 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3146,6 +3146,15 @@ __metadata: languageName: node linkType: hard +"@jest/expect-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect-utils@npm:29.7.0" + dependencies: + jest-get-type: "npm:^29.6.3" + checksum: bda80273008b21523feaa0e3917a8fd23ed313c080fbc6e7024b484bade02193fac01ea1ad0b78381017755955edca4992004385ffce6321fc22d7b19ead28f1 + languageName: node + linkType: hard + "@jest/expect@npm:^29.4.3": version: 29.4.3 resolution: "@jest/expect@npm:29.4.3" @@ -3228,6 +3237,15 @@ __metadata: languageName: node linkType: hard +"@jest/schemas@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/schemas@npm:29.6.3" + dependencies: + "@sinclair/typebox": "npm:^0.27.8" + checksum: 62575779a4c53ffd4bd7e9042b0a5a65b2c754eddbc36cdecfcec3d9357cc4a5777a6486620580db883662cec3df2b1d3d444c45fd953c16b794e169372fe4be + languageName: node + linkType: hard + "@jest/source-map@npm:^29.4.3": version: 29.4.3 resolution: "@jest/source-map@npm:29.4.3" @@ -3300,6 +3318,20 @@ __metadata: languageName: node linkType: hard +"@jest/types@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/types@npm:29.6.3" + dependencies: + "@jest/schemas": "npm:^29.6.3" + "@types/istanbul-lib-coverage": "npm:^2.0.0" + "@types/istanbul-reports": "npm:^3.0.0" + "@types/node": "npm:*" + "@types/yargs": "npm:^17.0.8" + chalk: "npm:^4.0.0" + checksum: d7219fc465e640fd41359f581014fed5eee76f0d4d69250b24b24147ae0cdaeb2e12aeb6ec73316118063fe69bacd44135d42d03b48444319b0f630ddc88c499 + languageName: node + linkType: hard + "@jridgewell/gen-mapping@npm:^0.1.0": version: 0.1.1 resolution: "@jridgewell/gen-mapping@npm:0.1.1" @@ -4360,6 +4392,13 @@ __metadata: languageName: node linkType: hard +"@sinclair/typebox@npm:^0.27.8": + version: 0.27.8 + resolution: "@sinclair/typebox@npm:0.27.8" + checksum: 7e5f62b0c2c8152c5884d6241720c384d884b4d036c18ae30b03cf3ac79280d4904127b60d61992e6dcb6de3e2d55bc371e38fef7c54279001f9d53e76f4bd33 + languageName: node + linkType: hard + "@sindresorhus/is@npm:4.6.0, @sindresorhus/is@npm:^4.0.0": version: 4.6.0 resolution: "@sindresorhus/is@npm:4.6.0" @@ -4687,6 +4726,16 @@ __metadata: languageName: node linkType: hard +"@types/jest@npm:^29.5.11": + version: 29.5.11 + resolution: "@types/jest@npm:29.5.11" + dependencies: + expect: "npm:^29.0.0" + pretty-format: "npm:^29.0.0" + checksum: 7cec5a92aac6afc52f764dc923dbcd95834081009e1dd8c6c8747833ca269fa338a9053a8e2ef62fada7c0947210e0b53637be6f7844805666f15736b783a5ad + languageName: node + linkType: hard + "@types/json-schema@npm:^7.0.6, @types/json-schema@npm:^7.0.9": version: 7.0.11 resolution: "@types/json-schema@npm:7.0.11" @@ -4858,13 +4907,6 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:^18.11.18": - version: 18.11.18 - resolution: "@types/node@npm:18.11.18" - checksum: bd39552701928d4a1613bc46adf8b65f8212064c2b5475a67161b6c4cef21ddb0a5c2ba062673213f8f5301ef6e171241a9e274a9b59c9fc1f5e2b69764740eb - languageName: node - linkType: hard - "@types/node@npm:^20.1.0": version: 20.1.1 resolution: "@types/node@npm:20.1.1" @@ -4872,6 +4914,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^20.10.5": + version: 20.10.5 + resolution: "@types/node@npm:20.10.5" + dependencies: + undici-types: "npm:~5.26.4" + checksum: 8fcf2e6116447efcf61b9bfe5f0043a8a524773d2c0ab6fe019dfbccdf4ee0745ca904387b6250962376db1f3710eec3abb7afa1409205b2798e7e0b9bcf1bc6 + languageName: node + linkType: hard + "@types/normalize-package-data@npm:^2.4.0": version: 2.4.1 resolution: "@types/normalize-package-data@npm:2.4.1" @@ -7506,6 +7557,13 @@ __metadata: languageName: node linkType: hard +"diff-sequences@npm:^29.6.3": + version: 29.6.3 + resolution: "diff-sequences@npm:29.6.3" + checksum: 5b4f564b24acde410c096cf53c99d72c59439e41e3ae4914c6696251cc680a79c886fe4afe188a7359441543f19534c01ec235d913a7206954af5fd69bde04bf + languageName: node + linkType: hard + "diff@npm:^4.0.1": version: 4.0.2 resolution: "diff@npm:4.0.2" @@ -8458,6 +8516,19 @@ __metadata: languageName: node linkType: hard +"expect@npm:^29.0.0": + version: 29.7.0 + resolution: "expect@npm:29.7.0" + dependencies: + "@jest/expect-utils": "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + jest-matcher-utils: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + checksum: 3d48f25f9bab6a2417961b43c98e9d3b6a5e125b8c5bc47d38e7341e514398954fba640a36396670ab857767bb3becf33bd08c917c544d750e84deeee7dba81f + languageName: node + linkType: hard + "expect@npm:^29.4.3": version: 29.4.3 resolution: "expect@npm:29.4.3" @@ -10596,6 +10667,18 @@ __metadata: languageName: node linkType: hard +"jest-diff@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-diff@npm:29.7.0" + dependencies: + chalk: "npm:^4.0.0" + diff-sequences: "npm:^29.6.3" + jest-get-type: "npm:^29.6.3" + pretty-format: "npm:^29.7.0" + checksum: e9d50c11fb4832334e1f62b58591805273ec1f5596d901023b62a611b39f0842b01c5f58502bbc88a066eeb9b9639ea15d57558ba814d844545bf68125690d2f + languageName: node + linkType: hard + "jest-docblock@npm:^29.4.3": version: 29.4.3 resolution: "jest-docblock@npm:29.4.3" @@ -10639,6 +10722,13 @@ __metadata: languageName: node linkType: hard +"jest-get-type@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-get-type@npm:29.6.3" + checksum: e184017775843c429c97023f7b4a82b8c3cdb624b21bcabee3c6d9915dfe889b583f064d1876b725c80bdae694a4fb54f2ac14b25d979dd0b64b5be282202c18 + languageName: node + linkType: hard + "jest-haste-map@npm:^29.4.3": version: 29.4.3 resolution: "jest-haste-map@npm:29.4.3" @@ -10684,6 +10774,18 @@ __metadata: languageName: node linkType: hard +"jest-matcher-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-matcher-utils@npm:29.7.0" + dependencies: + chalk: "npm:^4.0.0" + jest-diff: "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + pretty-format: "npm:^29.7.0" + checksum: 77bedb2b26108d329c437506ab9c28be8d706f7f7bbbbfa5b71385641501b4f1143628f339ad4b33cc3da59ba3daea35a33a8616c33247fded4f4e26f8c75aa4 + languageName: node + linkType: hard + "jest-message-util@npm:^29.4.3": version: 29.4.3 resolution: "jest-message-util@npm:29.4.3" @@ -10701,6 +10803,23 @@ __metadata: languageName: node linkType: hard +"jest-message-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-message-util@npm:29.7.0" + dependencies: + "@babel/code-frame": "npm:^7.12.13" + "@jest/types": "npm:^29.6.3" + "@types/stack-utils": "npm:^2.0.0" + chalk: "npm:^4.0.0" + graceful-fs: "npm:^4.2.9" + micromatch: "npm:^4.0.4" + pretty-format: "npm:^29.7.0" + slash: "npm:^3.0.0" + stack-utils: "npm:^2.0.3" + checksum: 0109a4a777507e0521b9cc537046ef29636388c2ea5bc79ceeecb33c99ee10fa31f3f804730b791b4b8729248356c5fdac437044c9bd63ab8ab0ee209914bdd3 + languageName: node + linkType: hard + "jest-mock@npm:^29.4.3": version: 29.4.3 resolution: "jest-mock@npm:29.4.3" @@ -10874,6 +10993,20 @@ __metadata: languageName: node linkType: hard +"jest-util@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-util@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + "@types/node": "npm:*" + chalk: "npm:^4.0.0" + ci-info: "npm:^3.2.0" + graceful-fs: "npm:^4.2.9" + picomatch: "npm:^2.2.3" + checksum: bca94bdfe28adbcf7f1fa929d2de7777e88e3bdf89e4797f33687bf64198ec936386da7009ebc6dfc3221a76b12b7526f1153ba695a0af965d07a4367d1aa5a2 + languageName: node + linkType: hard + "jest-validate@npm:^29.4.3": version: 29.4.3 resolution: "jest-validate@npm:29.4.3" @@ -13468,6 +13601,17 @@ __metadata: languageName: node linkType: hard +"pretty-format@npm:^29.0.0, pretty-format@npm:^29.7.0": + version: 29.7.0 + resolution: "pretty-format@npm:29.7.0" + dependencies: + "@jest/schemas": "npm:^29.6.3" + ansi-styles: "npm:^5.0.0" + react-is: "npm:^18.0.0" + checksum: e78e4aa3842966fa2274cf97027f3b2b211ed2aa6b46ae43aa45f2a0ace5415c977ab6d0f18c9750d53facf78070b54f9364a36aa8ada011b865689e4e3d0592 + languageName: node + linkType: hard + "pretty-format@npm:^29.4.3": version: 29.4.3 resolution: "pretty-format@npm:29.4.3" @@ -15990,6 +16134,13 @@ __metadata: languageName: node linkType: hard +"undici-types@npm:~5.26.4": + version: 5.26.5 + resolution: "undici-types@npm:5.26.5" + checksum: 7f556493e22e9023f1f9be0d516f5c3cf74d1d6a090c2701ada5117e99900e8cdf8b5540ad3ceed1a672d3532bdfcd0149c444b980731aacc840eb0660ba8587 + languageName: node + linkType: hard + "unicode-canonical-property-names-ecmascript@npm:^2.0.0": version: 2.0.0 resolution: "unicode-canonical-property-names-ecmascript@npm:2.0.0" @@ -16835,6 +16986,7 @@ __metadata: version: 0.0.0-use.local resolution: "~dev@workspace:." dependencies: + "@types/jest": "npm:^29.5.11" "@types/lodash.camelcase": "npm:^4.3.7" "@types/lodash.clonedeep": "npm:^4.5.7" "@types/lodash.defaults": "npm:^4.2.7" @@ -16843,7 +16995,7 @@ __metadata: "@types/lodash.pick": "npm:^4.4.7" "@types/lodash.set": "npm:^4.3.7" "@types/micromatch": "npm:^4.0.2" - "@types/node": "npm:^18.11.18" + "@types/node": "npm:^20.10.5" "@types/pino": "npm:^7.0.5" commit-and-tag-version: "npm:^11.0.0" docsify-cli: "npm:^4.4.4"