diff --git a/jest-preset.js b/jest-preset.js new file mode 100644 index 00000000..c518d8e2 --- /dev/null +++ b/jest-preset.js @@ -0,0 +1,5 @@ +const { mixinJestConfig } = require('@bluelovers/jest-config'); + +module.exports = mixinJestConfig({}, true, { + file: __filename, +}) diff --git a/jest.config.js b/jest.config.js index c518d8e2..45d3a44c 100644 --- a/jest.config.js +++ b/jest.config.js @@ -1,5 +1,12 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// DO NOT EDIT THIS FILE +const { resolve } = require('path'); -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +const jestConfig = { + preset: __dirname, +}; + +module.exports = jestConfig diff --git a/package.json b/package.json index dae4dbe2..ee86076d 100644 --- a/package.json +++ b/package.json @@ -75,9 +75,8 @@ }, "resolutions": {}, "dependencies": { - "@bluelovers/jest-config": "^1.0.4", "array-hyper-unique": "^2.0.8", - "chalk": "< 3 && >= 2", + "chalk": "< 3 >= 2", "crlf-normalize": "^1.0.7", "debug-color2": "^1.3.1", "inquirer": "< 9 >= 8.2.4", @@ -109,11 +108,11 @@ "@types/lodash": "^4.14.182", "@types/micromatch": "^4.0.2", "@types/mocha": "^9.1.1", - "@types/node": "^18.7.1", + "@types/node": "^18.7.2", "@types/npm-package-arg": "^6.1.1", "@types/npm-packlist": "^3.0.0", "@types/parse-git-config": "^3.0.1", - "@types/semver": "^7.3.11", + "@types/semver": "^7.3.12", "@types/tar": "^6.1.2", "@types/tmp": "^0.2.3", "@types/update-notifier": "^6.0.1", diff --git a/packages/@lazy-node/semver-ampersand/jest.config.js b/packages/@lazy-node/semver-ampersand/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@lazy-node/semver-ampersand/jest.config.js +++ b/packages/@lazy-node/semver-ampersand/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@lazy-node/semver-ampersand/package.json b/packages/@lazy-node/semver-ampersand/package.json index c8b49abe..cb1b2cc1 100644 --- a/packages/@lazy-node/semver-ampersand/package.json +++ b/packages/@lazy-node/semver-ampersand/package.json @@ -41,7 +41,7 @@ "array-hyper-unique": "^2.0.8", "class-without-call-parent-constructor": "^2.0.4", "lru-cache2": "^6.0.7", - "split-smartly2": "^1.1.11", + "split-smartly2": "^1.1.12", "ts-type": "^2.1.10", "tslib": "^2" }, diff --git a/packages/@lazy-node/semver-parse/jest.config.js b/packages/@lazy-node/semver-parse/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@lazy-node/semver-parse/jest.config.js +++ b/packages/@lazy-node/semver-parse/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@lazy-node/semver-part/jest.config.js b/packages/@lazy-node/semver-part/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@lazy-node/semver-part/jest.config.js +++ b/packages/@lazy-node/semver-part/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/changelog/jest.config.js b/packages/@yarn-tool/changelog/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/changelog/jest.config.js +++ b/packages/@yarn-tool/changelog/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/changelog/package.json b/packages/@yarn-tool/changelog/package.json index 20a4c73a..ee7c4b2e 100644 --- a/packages/@yarn-tool/changelog/package.json +++ b/packages/@yarn-tool/changelog/package.json @@ -39,17 +39,17 @@ }, "dependencies": { "@bluelovers/conventional-changelog-bluelovers": "*", - "@lerna/conventional-commits": "^5.4.0", + "@lerna/conventional-commits": "^5.4.1", "@yarn-tool/find-root": "^2.0.2", "@yarn-tool/require-resolve": "^2.0.1", "@yarn-tool/semver-diff": "^2.0.1", "@yarn-tool/table": "^2.0.1", "@yarn-tool/types": "^1.0.8", "lodash": "^4.17.21", - "path-is-same": "^1.0.18", + "path-is-same": "^1.0.19", "ts-type": "^2.1.10", "tslib": "^2", - "upath2": "^3.1.13", + "upath2": "^3.1.15", "ws-pkg-list": "^2.0.2", "yargs": "*" }, diff --git a/packages/@yarn-tool/check-pkg-bin/jest.config.js b/packages/@yarn-tool/check-pkg-bin/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/check-pkg-bin/jest.config.js +++ b/packages/@yarn-tool/check-pkg-bin/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/check-pkg-bin/package.json b/packages/@yarn-tool/check-pkg-bin/package.json index 8d8b85c3..052bf3fc 100644 --- a/packages/@yarn-tool/check-pkg-bin/package.json +++ b/packages/@yarn-tool/check-pkg-bin/package.json @@ -50,7 +50,7 @@ "fs-extra": "^10.1.0", "pkg-dir": "< 6 >= 5", "tslib": "^2", - "upath2": "^3.1.13", + "upath2": "^3.1.15", "ws-pkg-list": "^2.0.2", "yargs": "^17.5.1" }, diff --git a/packages/@yarn-tool/detect-yarnlock-version/jest.config.js b/packages/@yarn-tool/detect-yarnlock-version/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/detect-yarnlock-version/jest.config.js +++ b/packages/@yarn-tool/detect-yarnlock-version/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/dotenv/jest.config.js b/packages/@yarn-tool/dotenv/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/dotenv/jest.config.js +++ b/packages/@yarn-tool/dotenv/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/dotenv/package.json b/packages/@yarn-tool/dotenv/package.json index fdc7bfa5..6bba0999 100644 --- a/packages/@yarn-tool/dotenv/package.json +++ b/packages/@yarn-tool/dotenv/package.json @@ -41,7 +41,7 @@ "dotenv": "^16.0.1", "fs-extra": "^10.1.0", "tslib": "^2", - "upath2": "^3.1.13" + "upath2": "^3.1.15" }, "publishConfig": { "access": "public" diff --git a/packages/@yarn-tool/env-path/jest.config.js b/packages/@yarn-tool/env-path/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/env-path/jest.config.js +++ b/packages/@yarn-tool/env-path/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/find-deps/jest.config.js b/packages/@yarn-tool/find-deps/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/find-deps/jest.config.js +++ b/packages/@yarn-tool/find-deps/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/find-root/jest.config.js b/packages/@yarn-tool/find-root/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/find-root/jest.config.js +++ b/packages/@yarn-tool/find-root/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/find-root/package.json b/packages/@yarn-tool/find-root/package.json index 665f7cc0..e2f05de3 100644 --- a/packages/@yarn-tool/find-root/package.json +++ b/packages/@yarn-tool/find-root/package.json @@ -31,10 +31,10 @@ "@ts-type/package-dts": "^2.0.5", "err-code": "^3.0.1", "find-yarn-workspace-root2": "^1.2.39", - "path-is-same": "^1.0.18", + "path-is-same": "^1.0.19", "pkg-dir": "< 6 >= 5", "tslib": "^2", - "upath2": "^3.1.13" + "upath2": "^3.1.15" }, "publishConfig": { "access": "public" diff --git a/packages/@yarn-tool/fix-all/jest.config.js b/packages/@yarn-tool/fix-all/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/fix-all/jest.config.js +++ b/packages/@yarn-tool/fix-all/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/fix-all/package.json b/packages/@yarn-tool/fix-all/package.json index cc788530..ad2fd320 100644 --- a/packages/@yarn-tool/fix-all/package.json +++ b/packages/@yarn-tool/fix-all/package.json @@ -69,7 +69,7 @@ "sort-package-json3": "^2.0.1", "ts-type": "^2.1.10", "tslib": "^2", - "upath2": "^3.1.13", + "upath2": "^3.1.15", "ws-pkg-list": "^2.0.2" }, "packageManager": "yarn@1.22.19", diff --git a/packages/@yarn-tool/fix-ws-links/jest.config.js b/packages/@yarn-tool/fix-ws-links/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/fix-ws-links/jest.config.js +++ b/packages/@yarn-tool/fix-ws-links/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/fix-ws-links/package.json b/packages/@yarn-tool/fix-ws-links/package.json index 2ac9b482..3fb72c34 100644 --- a/packages/@yarn-tool/fix-ws-links/package.json +++ b/packages/@yarn-tool/fix-ws-links/package.json @@ -40,9 +40,9 @@ "cross-spawn-extra": "^2.1.0", "debug-color2": "^1.3.1", "fs-extra": "^10.1.0", - "fs-stat": "^1.0.18", - "fs-symlink-extra": "^1.0.12", - "path-is-same": "^1.0.18", + "fs-stat": "^1.0.20", + "fs-symlink-extra": "^1.0.13", + "path-is-same": "^1.0.19", "tslib": "^2", "ws-pkg-list": "^2.0.2", "yarn-list-link": "^1.0.35" diff --git a/packages/@yarn-tool/fix-ws-pkgs-link/jest.config.js b/packages/@yarn-tool/fix-ws-pkgs-link/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/fix-ws-pkgs-link/jest.config.js +++ b/packages/@yarn-tool/fix-ws-pkgs-link/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/fix-ws-pkgs-link/package.json b/packages/@yarn-tool/fix-ws-pkgs-link/package.json index 9384559e..d254d08e 100644 --- a/packages/@yarn-tool/fix-ws-pkgs-link/package.json +++ b/packages/@yarn-tool/fix-ws-pkgs-link/package.json @@ -43,9 +43,9 @@ "@yarn-tool/find-root": "^2.0.2", "@yarn-tool/node-modules": "^2.0.2", "fs-extra": "^10.1.0", - "fs-stat": "^1.0.18", - "fs-symlink-extra": "^1.0.12", - "path-is-same": "^1.0.18", + "fs-stat": "^1.0.20", + "fs-symlink-extra": "^1.0.13", + "path-is-same": "^1.0.19", "tslib": "^2", "ws-pkg-list": "^2.0.2" }, diff --git a/packages/@yarn-tool/fix-ws-versions/index.d.ts b/packages/@yarn-tool/fix-ws-versions/index.d.ts index 57eb022f..73dcbef7 100644 --- a/packages/@yarn-tool/fix-ws-versions/index.d.ts +++ b/packages/@yarn-tool/fix-ws-versions/index.d.ts @@ -13,7 +13,7 @@ export interface ICache { names?: string[]; map?: IMap; } -export declare type ICacheInput = ITSRequireAtLeastOne, 'listable' | 'record'>; +export type ICacheInput = ITSRequireAtLeastOne, 'listable' | 'record'>; export declare function fixPkgDepsVersionsCore, R extends IListableRow>(row: T, cache: ICacheInput): { row: T; map: IMap; diff --git a/packages/@yarn-tool/fix-ws-versions/jest.config.js b/packages/@yarn-tool/fix-ws-versions/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/fix-ws-versions/jest.config.js +++ b/packages/@yarn-tool/fix-ws-versions/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/get-paths-by-type/jest.config.js b/packages/@yarn-tool/get-paths-by-type/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/get-paths-by-type/jest.config.js +++ b/packages/@yarn-tool/get-paths-by-type/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/get-pkg-bin/package.json b/packages/@yarn-tool/get-pkg-bin/package.json index b8869c23..0e9360f7 100644 --- a/packages/@yarn-tool/get-pkg-bin/package.json +++ b/packages/@yarn-tool/get-pkg-bin/package.json @@ -32,7 +32,7 @@ "@ts-type/package-dts": "^2.0.5", "@yarn-tool/resolve-package": "^2.0.0", "tslib": "^2", - "upath2": "^3.1.13" + "upath2": "^3.1.15" }, "publishConfig": { "access": "public" diff --git a/packages/@yarn-tool/init-path/jest.config.js b/packages/@yarn-tool/init-path/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/init-path/jest.config.js +++ b/packages/@yarn-tool/init-path/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/is-builtin-module/jest.config.js b/packages/@yarn-tool/is-builtin-module/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/is-builtin-module/jest.config.js +++ b/packages/@yarn-tool/is-builtin-module/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/ncu-ws/jest.config.js b/packages/@yarn-tool/ncu-ws/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/ncu-ws/jest.config.js +++ b/packages/@yarn-tool/ncu-ws/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/ncu-ws/package.json b/packages/@yarn-tool/ncu-ws/package.json index a93d4581..1f97bb97 100644 --- a/packages/@yarn-tool/ncu-ws/package.json +++ b/packages/@yarn-tool/ncu-ws/package.json @@ -79,7 +79,7 @@ "debug-color2": "^1.3.1", "fs-extra": "^10.1.0", "tslib": "^2", - "upath2": "^3.1.13" + "upath2": "^3.1.15" }, "packageManager": "yarn@1.22.19", "publishConfig": { diff --git a/packages/@yarn-tool/ncu/jest.config.js b/packages/@yarn-tool/ncu/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/ncu/jest.config.js +++ b/packages/@yarn-tool/ncu/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/node-modules-is-alias/jest.config.js b/packages/@yarn-tool/node-modules-is-alias/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/node-modules-is-alias/jest.config.js +++ b/packages/@yarn-tool/node-modules-is-alias/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/node-modules-is-alias/package.json b/packages/@yarn-tool/node-modules-is-alias/package.json index 69e09b6c..461f8b2b 100644 --- a/packages/@yarn-tool/node-modules-is-alias/package.json +++ b/packages/@yarn-tool/node-modules-is-alias/package.json @@ -54,7 +54,7 @@ "@yarn-tool/resolve-package": "^2.0.0", "pkg-dir": "< 6 >= 5", "tslib": "^2", - "upath2": "^3.1.13" + "upath2": "^3.1.15" }, "packageManager": "yarn@1.22.19", "publishConfig": { diff --git a/packages/@yarn-tool/node-modules-link/jest.config.js b/packages/@yarn-tool/node-modules-link/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/node-modules-link/jest.config.js +++ b/packages/@yarn-tool/node-modules-link/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/node-modules-link/package.json b/packages/@yarn-tool/node-modules-link/package.json index 3e85d35f..d642ec67 100644 --- a/packages/@yarn-tool/node-modules-link/package.json +++ b/packages/@yarn-tool/node-modules-link/package.json @@ -35,9 +35,9 @@ "@yarn-tool/node-modules": "^2.0.2", "find-yarn-workspace-root2": "^1.2.39", "fs-extra": "^10.1.0", - "fs-symlink-extra": "^1.0.12", + "fs-symlink-extra": "^1.0.13", "tslib": "^2", - "upath2": "^3.1.13", + "upath2": "^3.1.15", "yargs": "^17.5.1" }, "publishConfig": { diff --git a/packages/@yarn-tool/node-modules/jest.config.js b/packages/@yarn-tool/node-modules/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/node-modules/jest.config.js +++ b/packages/@yarn-tool/node-modules/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/node-modules/package.json b/packages/@yarn-tool/node-modules/package.json index 21ea9062..7254bf8a 100644 --- a/packages/@yarn-tool/node-modules/package.json +++ b/packages/@yarn-tool/node-modules/package.json @@ -34,7 +34,7 @@ "@bluelovers/fast-glob": "^3.0.4", "pkg-dir": "< 6 >= 5", "tslib": "^2", - "upath2": "^3.1.13", + "upath2": "^3.1.15", "ws-pkg-list": "^2.0.2" }, "publishConfig": { diff --git a/packages/@yarn-tool/npa-to-deps-query/jest.config.js b/packages/@yarn-tool/npa-to-deps-query/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/npa-to-deps-query/jest.config.js +++ b/packages/@yarn-tool/npa-to-deps-query/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/npa-to-deps/jest.config.js b/packages/@yarn-tool/npa-to-deps/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/npa-to-deps/jest.config.js +++ b/packages/@yarn-tool/npa-to-deps/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/npm-package-arg-util/jest.config.js b/packages/@yarn-tool/npm-package-arg-util/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/npm-package-arg-util/jest.config.js +++ b/packages/@yarn-tool/npm-package-arg-util/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/pack-package/jest.config.js b/packages/@yarn-tool/pack-package/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/pack-package/jest.config.js +++ b/packages/@yarn-tool/pack-package/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/pack-package/package.json b/packages/@yarn-tool/pack-package/package.json index ef0ea7a8..0603e581 100644 --- a/packages/@yarn-tool/pack-package/package.json +++ b/packages/@yarn-tool/pack-package/package.json @@ -23,8 +23,8 @@ "tsc:esm": "tsc -p tsconfig.esm.json" }, "dependencies": { - "@lerna/get-packed": "^5.4.0", - "@lerna/log-packed": "^5.4.0", + "@lerna/get-packed": "^5.4.1", + "@lerna/log-packed": "^5.4.1", "@ts-type/package-dts": "^2.0.5", "npm-packlist": "^5.1.1", "tar": "^6.1.11", diff --git a/packages/@yarn-tool/path-parents/jest.config.js b/packages/@yarn-tool/path-parents/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/path-parents/jest.config.js +++ b/packages/@yarn-tool/path-parents/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/path-parents/package.json b/packages/@yarn-tool/path-parents/package.json index f55d85dc..b91cd0dc 100644 --- a/packages/@yarn-tool/path-parents/package.json +++ b/packages/@yarn-tool/path-parents/package.json @@ -38,10 +38,10 @@ }, "dependencies": { "@yarn-tool/find-root": "^2.0.2", - "path-is-same": "^1.0.18", - "path-parents": "^1.0.25", + "path-is-same": "^1.0.19", + "path-parents": "^1.0.26", "tslib": "^2", - "upath2": "^3.1.13" + "upath2": "^3.1.15" }, "publishConfig": { "access": "public" diff --git a/packages/@yarn-tool/pkg-deps-add/jest.config.js b/packages/@yarn-tool/pkg-deps-add/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/pkg-deps-add/jest.config.js +++ b/packages/@yarn-tool/pkg-deps-add/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/pkg-deps-util/jest.config.js b/packages/@yarn-tool/pkg-deps-util/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/pkg-deps-util/jest.config.js +++ b/packages/@yarn-tool/pkg-deps-util/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/pkg-entry-util/jest.config.js b/packages/@yarn-tool/pkg-entry-util/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/pkg-entry-util/jest.config.js +++ b/packages/@yarn-tool/pkg-entry-util/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/pkg-entry-util/package.json b/packages/@yarn-tool/pkg-entry-util/package.json index 93b1277e..bcf735a3 100644 --- a/packages/@yarn-tool/pkg-entry-util/package.json +++ b/packages/@yarn-tool/pkg-entry-util/package.json @@ -55,7 +55,7 @@ "@yarn-tool/find-root": "^2.0.2", "fs-extra": "^10.1.0", "tslib": "^2", - "upath2": "^3.1.13" + "upath2": "^3.1.15" }, "packageManager": "yarn@1.22.19", "publishConfig": { diff --git a/packages/@yarn-tool/pkg-hosted-info/jest.config.js b/packages/@yarn-tool/pkg-hosted-info/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/pkg-hosted-info/jest.config.js +++ b/packages/@yarn-tool/pkg-hosted-info/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/pkg-hosted-info/package.json b/packages/@yarn-tool/pkg-hosted-info/package.json index c0f29269..d946477c 100644 --- a/packages/@yarn-tool/pkg-hosted-info/package.json +++ b/packages/@yarn-tool/pkg-hosted-info/package.json @@ -44,7 +44,7 @@ "@yarn-tool/find-root": "^2.0.2", "@yarn-tool/pkg-git-info": "^1.0.32", "tslib": "^2", - "upath2": "^3.1.13" + "upath2": "^3.1.15" }, "publishConfig": { "access": "public" diff --git a/packages/@yarn-tool/pkg-list-to-types/jest.config.js b/packages/@yarn-tool/pkg-list-to-types/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/pkg-list-to-types/jest.config.js +++ b/packages/@yarn-tool/pkg-list-to-types/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/pkg-name-to-types/jest.config.js b/packages/@yarn-tool/pkg-name-to-types/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/pkg-name-to-types/jest.config.js +++ b/packages/@yarn-tool/pkg-name-to-types/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/pkg-version-query/jest.config.js b/packages/@yarn-tool/pkg-version-query/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/pkg-version-query/jest.config.js +++ b/packages/@yarn-tool/pkg-version-query/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/require-resolve/jest.config.js b/packages/@yarn-tool/require-resolve/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/require-resolve/jest.config.js +++ b/packages/@yarn-tool/require-resolve/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/resolve-package/package.json b/packages/@yarn-tool/resolve-package/package.json index 9328e574..b2c42074 100644 --- a/packages/@yarn-tool/resolve-package/package.json +++ b/packages/@yarn-tool/resolve-package/package.json @@ -55,7 +55,7 @@ "dependencies": { "pkg-dir": "< 6 >= 5", "tslib": "^2", - "upath2": "^3.1.13" + "upath2": "^3.1.15" }, "devDependencies": { "@ts-type/package-dts": "^2.0.5", diff --git a/packages/@yarn-tool/search-workspace-prefix-by-name/jest.config.js b/packages/@yarn-tool/search-workspace-prefix-by-name/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/search-workspace-prefix-by-name/jest.config.js +++ b/packages/@yarn-tool/search-workspace-prefix-by-name/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/semver-diff/jest.config.js b/packages/@yarn-tool/semver-diff/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/semver-diff/jest.config.js +++ b/packages/@yarn-tool/semver-diff/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/semver-diff/package.json b/packages/@yarn-tool/semver-diff/package.json index 599d16d1..b85574c4 100644 --- a/packages/@yarn-tool/semver-diff/package.json +++ b/packages/@yarn-tool/semver-diff/package.json @@ -43,7 +43,7 @@ "tslib": "^2" }, "devDependencies": { - "chalk": "< 3 && >= 2" + "chalk": "< 3 >= 2" }, "peerDependencies": { "debug-color2": "^1.3.1" diff --git a/packages/@yarn-tool/setup-module-env/jest.config.js b/packages/@yarn-tool/setup-module-env/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/setup-module-env/jest.config.js +++ b/packages/@yarn-tool/setup-module-env/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/shebang/jest.config.js b/packages/@yarn-tool/shebang/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/shebang/jest.config.js +++ b/packages/@yarn-tool/shebang/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/sort-lerna-json/jest.config.js b/packages/@yarn-tool/sort-lerna-json/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/sort-lerna-json/jest.config.js +++ b/packages/@yarn-tool/sort-lerna-json/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/sort-lerna-json/package.json b/packages/@yarn-tool/sort-lerna-json/package.json index cd7861c4..aa0c1a3a 100644 --- a/packages/@yarn-tool/sort-lerna-json/package.json +++ b/packages/@yarn-tool/sort-lerna-json/package.json @@ -54,7 +54,7 @@ "tsc:showConfig": "ynpx get-current-tsconfig -p" }, "dependencies": { - "@bluelovers/fs-json": "^1.0.7", + "@bluelovers/fs-json": "^1.0.9", "@ts-type/package-dts": "^2.0.5", "@yarn-tool/write-package-json": "^1.0.2", "fs-extra": "^10.1.0", diff --git a/packages/@yarn-tool/table/jest.config.js b/packages/@yarn-tool/table/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/table/jest.config.js +++ b/packages/@yarn-tool/table/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/tag/jest.config.js b/packages/@yarn-tool/tag/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/tag/jest.config.js +++ b/packages/@yarn-tool/tag/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/tag/package.json b/packages/@yarn-tool/tag/package.json index e1c61aff..4bd4b33e 100644 --- a/packages/@yarn-tool/tag/package.json +++ b/packages/@yarn-tool/tag/package.json @@ -48,8 +48,8 @@ "@git-lazy/tag": "^1.0.15", "@yarn-tool/find-root": "^2.0.2", "@yarn-tool/types": "^1.0.8", - "path-dir-normalize": "^1.0.24", - "path-is-same": "^1.0.18", + "path-dir-normalize": "^1.0.25", + "path-is-same": "^1.0.19", "pkg-dir": "< 6 >= 5", "tslib": "^2", "yargs": "*" diff --git a/packages/@yarn-tool/types/jest.config.js b/packages/@yarn-tool/types/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/types/jest.config.js +++ b/packages/@yarn-tool/types/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/validate-npm-package-name/jest.config.js b/packages/@yarn-tool/validate-npm-package-name/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/validate-npm-package-name/jest.config.js +++ b/packages/@yarn-tool/validate-npm-package-name/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/version-recommended/jest.config.js b/packages/@yarn-tool/version-recommended/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/version-recommended/jest.config.js +++ b/packages/@yarn-tool/version-recommended/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/workspaces-project/jest.config.js b/packages/@yarn-tool/workspaces-project/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/workspaces-project/jest.config.js +++ b/packages/@yarn-tool/workspaces-project/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/workspaces-project/package.json b/packages/@yarn-tool/workspaces-project/package.json index 2641b283..75f6812d 100644 --- a/packages/@yarn-tool/workspaces-project/package.json +++ b/packages/@yarn-tool/workspaces-project/package.json @@ -26,18 +26,18 @@ "sort-package-json": "ynpx --quiet yarn-tool -- sort" }, "dependencies": { - "@lerna/project": "^5.4.0", + "@lerna/project": "^5.4.1", "@ts-type/package-dts": "^2.0.5", "@types/npm-package-arg": "*", "@yarn-tool/changelog": "^2.0.3", "find-yarn-workspace-root2": "^1.2.39", "fs-extra": "^10.1.0", "lodash": "^4.17.21", - "path-dir-normalize": "^1.0.24", + "path-dir-normalize": "^1.0.25", "sort-object-keys2": "^2.0.3", "ts-type": "^2.1.10", "tslib": "^2", - "upath2": "^3.1.13" + "upath2": "^3.1.15" }, "publishConfig": { "access": "public" diff --git a/packages/@yarn-tool/write-package-json/jest.config.js b/packages/@yarn-tool/write-package-json/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/write-package-json/jest.config.js +++ b/packages/@yarn-tool/write-package-json/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/write-package-json/package.json b/packages/@yarn-tool/write-package-json/package.json index 28d013f6..d5e23662 100644 --- a/packages/@yarn-tool/write-package-json/package.json +++ b/packages/@yarn-tool/write-package-json/package.json @@ -67,7 +67,7 @@ "tsc:showConfig": "ynpx get-current-tsconfig -p" }, "dependencies": { - "@bluelovers/fs-json": "^1.0.7", + "@bluelovers/fs-json": "^1.0.9", "tslib": "^2" }, "packageManager": "yarn@1.22.19", diff --git a/packages/@yarn-tool/ws-changed/jest.config.js b/packages/@yarn-tool/ws-changed/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/ws-changed/jest.config.js +++ b/packages/@yarn-tool/ws-changed/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/ws-changed/package.json b/packages/@yarn-tool/ws-changed/package.json index 59d09931..8d5c30f0 100644 --- a/packages/@yarn-tool/ws-changed/package.json +++ b/packages/@yarn-tool/ws-changed/package.json @@ -47,7 +47,7 @@ "git-root2": "^1.0.32", "glob-regex": "^0.3.2", "micromatch": "^4.0.5", - "path-is-same": "^1.0.18", + "path-is-same": "^1.0.19", "tslib": "^2", "workspaces-config": "^1.0.44", "ws-pkg-list": "^2.0.2" diff --git a/packages/@yarn-tool/ws-find-up-paths/jest.config.js b/packages/@yarn-tool/ws-find-up-paths/jest.config.js index fbe938dd..9f3d534d 100644 --- a/packages/@yarn-tool/ws-find-up-paths/jest.config.js +++ b/packages/@yarn-tool/ws-find-up-paths/jest.config.js @@ -1,5 +1,15 @@ // @ts-check +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + /** * @param {string} name * @returns {string} @@ -37,93 +47,70 @@ function _requireResolve(name) return result } -const testExt = [ - 'ts', - 'tsx', - 'mts', - 'cts', - //'js', - //'jsx', -// 'mjs', -// 'cjs', -].join('|'); - -console.info(`jest.config`); -console.info(`- file: ${__filename}`); -console.info(`- cwd: ${process.cwd()}`); +let _ok = true; -/** - * // @type { import('@jest/types').Config.InitialOptions } - * @type { import('ts-jest').InitialOptionsTsJest } - */ -module.exports = { - globals: { - 'ts-jest': { - //tsconfig: 'tsconfig.spec.json', - }, - }, - maxWorkers: 1, - clearMocks: true, - passWithNoTests: true, - moduleFileExtensions: [ - 'ts', - 'tsx', - 'mts', - 'cts', - 'js', - 'jsx', - 'mjs', - 'cjs', - 'json', - 'node', - ], - testEnvironment: 'node', - //testMatch: ['**/*.test.ts', '**/*.spec.ts'], - testMatch: void 0, - testRegex: [ - `\\.(tests?|spec)\\.(${testExt})$`, - `__tests__\/\.*\\.(${testExt})$`, - ], - testPathIgnorePatterns: [ - '/node_modules/', - '/__fixtures__/', - '/fixtures/', - '/__tests__/helpers/', - '/__tests__/utils/', - '__mocks__', - ], - //testRunner: 'jest-circus/runner', - setupFilesAfterEnv: [ - //"jest-chain", - //"jest-extended/all", - //"jest-extended-extra", - //"jest-num-close-with", - /** - * https://medium.com/doctolib/how-to-run-the-same-jest-test-suite-across-several-platforms-jest-os-detection-plugin-included-f8113832482b - * https://github.com/doctolib/jest-os-detection - */ - //'jest-os-detection', - ], - transform: { - '.(ts|tsx|mts|cts)$': _requireResolve('ts-jest'), - }, - verbose: true, - /** - * if didn't set `coverageProvider` to `v8` - * with `collectCoverage` `true`, nodejs debug point maybe will fail - */ - coverageProvider: 'v8', - collectCoverage: false, - coveragePathIgnorePatterns: [ - '/node_modules/', - '/__snapshots__/', - '/__tests__/', - //'**/node_modules/', - //'**/__snapshots__/', - //'**/__tests__/', - ], - /** - * https://github.com/facebook/jest/issues/9771#issuecomment-872764344 - */ - //resolver: 'jest-node-exports-resolver', +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } } +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/ws-scope/jest.config.js b/packages/@yarn-tool/ws-scope/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/ws-scope/jest.config.js +++ b/packages/@yarn-tool/ws-scope/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/ws-scope/package.json b/packages/@yarn-tool/ws-scope/package.json index a1f07094..47de4b5d 100644 --- a/packages/@yarn-tool/ws-scope/package.json +++ b/packages/@yarn-tool/ws-scope/package.json @@ -54,14 +54,14 @@ "tsc:showConfig": "ynpx get-current-tsconfig -p" }, "dependencies": { - "@bluelovers/fs-json": "^1.0.7", + "@bluelovers/fs-json": "^1.0.9", "@yarn-tool/find-root": "^2.0.2", "@yarn-tool/sort-lerna-json": "^2.0.2", "array-hyper-unique": "^2.0.8", "fs-extra": "^10.1.0", - "path-in-dir": "^1.0.4", + "path-in-dir": "^1.0.5", "tslib": "^2", - "upath2": "^3.1.13", + "upath2": "^3.1.15", "yawn-yaml": "^1.5.0" }, "devDependencies": { diff --git a/packages/@yarn-tool/yargs-util/jest.config.js b/packages/@yarn-tool/yargs-util/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/yargs-util/jest.config.js +++ b/packages/@yarn-tool/yargs-util/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/yarnlock-banner/jest.config.js b/packages/@yarn-tool/yarnlock-banner/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/yarnlock-banner/jest.config.js +++ b/packages/@yarn-tool/yarnlock-banner/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/yarnlock-dedupe/jest.config.js b/packages/@yarn-tool/yarnlock-dedupe/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/yarnlock-dedupe/jest.config.js +++ b/packages/@yarn-tool/yarnlock-dedupe/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/yarnlock-diff/jest.config.js b/packages/@yarn-tool/yarnlock-diff/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/yarnlock-diff/jest.config.js +++ b/packages/@yarn-tool/yarnlock-diff/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/yarnlock-entries/jest.config.js b/packages/@yarn-tool/yarnlock-entries/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/yarnlock-entries/jest.config.js +++ b/packages/@yarn-tool/yarnlock-entries/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/yarnlock-error/jest.config.js b/packages/@yarn-tool/yarnlock-error/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/yarnlock-error/jest.config.js +++ b/packages/@yarn-tool/yarnlock-error/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/yarnlock-fs/jest.config.js b/packages/@yarn-tool/yarnlock-fs/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/yarnlock-fs/jest.config.js +++ b/packages/@yarn-tool/yarnlock-fs/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/yarnlock-ncu/jest.config.js b/packages/@yarn-tool/yarnlock-ncu/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/yarnlock-ncu/jest.config.js +++ b/packages/@yarn-tool/yarnlock-ncu/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/yarnlock-parse-assert/jest.config.js b/packages/@yarn-tool/yarnlock-parse-assert/jest.config.js index fbe938dd..9f3d534d 100644 --- a/packages/@yarn-tool/yarnlock-parse-assert/jest.config.js +++ b/packages/@yarn-tool/yarnlock-parse-assert/jest.config.js @@ -1,5 +1,15 @@ // @ts-check +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + /** * @param {string} name * @returns {string} @@ -37,93 +47,70 @@ function _requireResolve(name) return result } -const testExt = [ - 'ts', - 'tsx', - 'mts', - 'cts', - //'js', - //'jsx', -// 'mjs', -// 'cjs', -].join('|'); - -console.info(`jest.config`); -console.info(`- file: ${__filename}`); -console.info(`- cwd: ${process.cwd()}`); +let _ok = true; -/** - * // @type { import('@jest/types').Config.InitialOptions } - * @type { import('ts-jest').InitialOptionsTsJest } - */ -module.exports = { - globals: { - 'ts-jest': { - //tsconfig: 'tsconfig.spec.json', - }, - }, - maxWorkers: 1, - clearMocks: true, - passWithNoTests: true, - moduleFileExtensions: [ - 'ts', - 'tsx', - 'mts', - 'cts', - 'js', - 'jsx', - 'mjs', - 'cjs', - 'json', - 'node', - ], - testEnvironment: 'node', - //testMatch: ['**/*.test.ts', '**/*.spec.ts'], - testMatch: void 0, - testRegex: [ - `\\.(tests?|spec)\\.(${testExt})$`, - `__tests__\/\.*\\.(${testExt})$`, - ], - testPathIgnorePatterns: [ - '/node_modules/', - '/__fixtures__/', - '/fixtures/', - '/__tests__/helpers/', - '/__tests__/utils/', - '__mocks__', - ], - //testRunner: 'jest-circus/runner', - setupFilesAfterEnv: [ - //"jest-chain", - //"jest-extended/all", - //"jest-extended-extra", - //"jest-num-close-with", - /** - * https://medium.com/doctolib/how-to-run-the-same-jest-test-suite-across-several-platforms-jest-os-detection-plugin-included-f8113832482b - * https://github.com/doctolib/jest-os-detection - */ - //'jest-os-detection', - ], - transform: { - '.(ts|tsx|mts|cts)$': _requireResolve('ts-jest'), - }, - verbose: true, - /** - * if didn't set `coverageProvider` to `v8` - * with `collectCoverage` `true`, nodejs debug point maybe will fail - */ - coverageProvider: 'v8', - collectCoverage: false, - coveragePathIgnorePatterns: [ - '/node_modules/', - '/__snapshots__/', - '/__tests__/', - //'**/node_modules/', - //'**/__snapshots__/', - //'**/__tests__/', - ], - /** - * https://github.com/facebook/jest/issues/9771#issuecomment-872764344 - */ - //resolver: 'jest-node-exports-resolver', +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } } +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/yarnlock-parse-raw/jest.config.js b/packages/@yarn-tool/yarnlock-parse-raw/jest.config.js index fbe938dd..9f3d534d 100644 --- a/packages/@yarn-tool/yarnlock-parse-raw/jest.config.js +++ b/packages/@yarn-tool/yarnlock-parse-raw/jest.config.js @@ -1,5 +1,15 @@ // @ts-check +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + /** * @param {string} name * @returns {string} @@ -37,93 +47,70 @@ function _requireResolve(name) return result } -const testExt = [ - 'ts', - 'tsx', - 'mts', - 'cts', - //'js', - //'jsx', -// 'mjs', -// 'cjs', -].join('|'); - -console.info(`jest.config`); -console.info(`- file: ${__filename}`); -console.info(`- cwd: ${process.cwd()}`); +let _ok = true; -/** - * // @type { import('@jest/types').Config.InitialOptions } - * @type { import('ts-jest').InitialOptionsTsJest } - */ -module.exports = { - globals: { - 'ts-jest': { - //tsconfig: 'tsconfig.spec.json', - }, - }, - maxWorkers: 1, - clearMocks: true, - passWithNoTests: true, - moduleFileExtensions: [ - 'ts', - 'tsx', - 'mts', - 'cts', - 'js', - 'jsx', - 'mjs', - 'cjs', - 'json', - 'node', - ], - testEnvironment: 'node', - //testMatch: ['**/*.test.ts', '**/*.spec.ts'], - testMatch: void 0, - testRegex: [ - `\\.(tests?|spec)\\.(${testExt})$`, - `__tests__\/\.*\\.(${testExt})$`, - ], - testPathIgnorePatterns: [ - '/node_modules/', - '/__fixtures__/', - '/fixtures/', - '/__tests__/helpers/', - '/__tests__/utils/', - '__mocks__', - ], - //testRunner: 'jest-circus/runner', - setupFilesAfterEnv: [ - //"jest-chain", - //"jest-extended/all", - //"jest-extended-extra", - //"jest-num-close-with", - /** - * https://medium.com/doctolib/how-to-run-the-same-jest-test-suite-across-several-platforms-jest-os-detection-plugin-included-f8113832482b - * https://github.com/doctolib/jest-os-detection - */ - //'jest-os-detection', - ], - transform: { - '.(ts|tsx|mts|cts)$': _requireResolve('ts-jest'), - }, - verbose: true, - /** - * if didn't set `coverageProvider` to `v8` - * with `collectCoverage` `true`, nodejs debug point maybe will fail - */ - coverageProvider: 'v8', - collectCoverage: false, - coveragePathIgnorePatterns: [ - '/node_modules/', - '/__snapshots__/', - '/__tests__/', - //'**/node_modules/', - //'**/__snapshots__/', - //'**/__tests__/', - ], - /** - * https://github.com/facebook/jest/issues/9771#issuecomment-872764344 - */ - //resolver: 'jest-node-exports-resolver', +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } } +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/yarnlock-parse/jest.config.js b/packages/@yarn-tool/yarnlock-parse/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/yarnlock-parse/jest.config.js +++ b/packages/@yarn-tool/yarnlock-parse/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/yarnlock-parsed-to-json/jest.config.js b/packages/@yarn-tool/yarnlock-parsed-to-json/jest.config.js index fbe938dd..9f3d534d 100644 --- a/packages/@yarn-tool/yarnlock-parsed-to-json/jest.config.js +++ b/packages/@yarn-tool/yarnlock-parsed-to-json/jest.config.js @@ -1,5 +1,15 @@ // @ts-check +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + /** * @param {string} name * @returns {string} @@ -37,93 +47,70 @@ function _requireResolve(name) return result } -const testExt = [ - 'ts', - 'tsx', - 'mts', - 'cts', - //'js', - //'jsx', -// 'mjs', -// 'cjs', -].join('|'); - -console.info(`jest.config`); -console.info(`- file: ${__filename}`); -console.info(`- cwd: ${process.cwd()}`); +let _ok = true; -/** - * // @type { import('@jest/types').Config.InitialOptions } - * @type { import('ts-jest').InitialOptionsTsJest } - */ -module.exports = { - globals: { - 'ts-jest': { - //tsconfig: 'tsconfig.spec.json', - }, - }, - maxWorkers: 1, - clearMocks: true, - passWithNoTests: true, - moduleFileExtensions: [ - 'ts', - 'tsx', - 'mts', - 'cts', - 'js', - 'jsx', - 'mjs', - 'cjs', - 'json', - 'node', - ], - testEnvironment: 'node', - //testMatch: ['**/*.test.ts', '**/*.spec.ts'], - testMatch: void 0, - testRegex: [ - `\\.(tests?|spec)\\.(${testExt})$`, - `__tests__\/\.*\\.(${testExt})$`, - ], - testPathIgnorePatterns: [ - '/node_modules/', - '/__fixtures__/', - '/fixtures/', - '/__tests__/helpers/', - '/__tests__/utils/', - '__mocks__', - ], - //testRunner: 'jest-circus/runner', - setupFilesAfterEnv: [ - //"jest-chain", - //"jest-extended/all", - //"jest-extended-extra", - //"jest-num-close-with", - /** - * https://medium.com/doctolib/how-to-run-the-same-jest-test-suite-across-several-platforms-jest-os-detection-plugin-included-f8113832482b - * https://github.com/doctolib/jest-os-detection - */ - //'jest-os-detection', - ], - transform: { - '.(ts|tsx|mts|cts)$': _requireResolve('ts-jest'), - }, - verbose: true, - /** - * if didn't set `coverageProvider` to `v8` - * with `collectCoverage` `true`, nodejs debug point maybe will fail - */ - coverageProvider: 'v8', - collectCoverage: false, - coveragePathIgnorePatterns: [ - '/node_modules/', - '/__snapshots__/', - '/__tests__/', - //'**/node_modules/', - //'**/__snapshots__/', - //'**/__tests__/', - ], - /** - * https://github.com/facebook/jest/issues/9771#issuecomment-872764344 - */ - //resolver: 'jest-node-exports-resolver', +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } } +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/yarnlock-stringify/jest.config.js b/packages/@yarn-tool/yarnlock-stringify/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/yarnlock-stringify/jest.config.js +++ b/packages/@yarn-tool/yarnlock-stringify/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/yarnlock-types/jest.config.js b/packages/@yarn-tool/yarnlock-types/jest.config.js index fbe938dd..9f3d534d 100644 --- a/packages/@yarn-tool/yarnlock-types/jest.config.js +++ b/packages/@yarn-tool/yarnlock-types/jest.config.js @@ -1,5 +1,15 @@ // @ts-check +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + /** * @param {string} name * @returns {string} @@ -37,93 +47,70 @@ function _requireResolve(name) return result } -const testExt = [ - 'ts', - 'tsx', - 'mts', - 'cts', - //'js', - //'jsx', -// 'mjs', -// 'cjs', -].join('|'); - -console.info(`jest.config`); -console.info(`- file: ${__filename}`); -console.info(`- cwd: ${process.cwd()}`); +let _ok = true; -/** - * // @type { import('@jest/types').Config.InitialOptions } - * @type { import('ts-jest').InitialOptionsTsJest } - */ -module.exports = { - globals: { - 'ts-jest': { - //tsconfig: 'tsconfig.spec.json', - }, - }, - maxWorkers: 1, - clearMocks: true, - passWithNoTests: true, - moduleFileExtensions: [ - 'ts', - 'tsx', - 'mts', - 'cts', - 'js', - 'jsx', - 'mjs', - 'cjs', - 'json', - 'node', - ], - testEnvironment: 'node', - //testMatch: ['**/*.test.ts', '**/*.spec.ts'], - testMatch: void 0, - testRegex: [ - `\\.(tests?|spec)\\.(${testExt})$`, - `__tests__\/\.*\\.(${testExt})$`, - ], - testPathIgnorePatterns: [ - '/node_modules/', - '/__fixtures__/', - '/fixtures/', - '/__tests__/helpers/', - '/__tests__/utils/', - '__mocks__', - ], - //testRunner: 'jest-circus/runner', - setupFilesAfterEnv: [ - //"jest-chain", - //"jest-extended/all", - //"jest-extended-extra", - //"jest-num-close-with", - /** - * https://medium.com/doctolib/how-to-run-the-same-jest-test-suite-across-several-platforms-jest-os-detection-plugin-included-f8113832482b - * https://github.com/doctolib/jest-os-detection - */ - //'jest-os-detection', - ], - transform: { - '.(ts|tsx|mts|cts)$': _requireResolve('ts-jest'), - }, - verbose: true, - /** - * if didn't set `coverageProvider` to `v8` - * with `collectCoverage` `true`, nodejs debug point maybe will fail - */ - coverageProvider: 'v8', - collectCoverage: false, - coveragePathIgnorePatterns: [ - '/node_modules/', - '/__snapshots__/', - '/__tests__/', - //'**/node_modules/', - //'**/__snapshots__/', - //'**/__tests__/', - ], - /** - * https://github.com/facebook/jest/issues/9771#issuecomment-872764344 - */ - //resolver: 'jest-node-exports-resolver', +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } } +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/yarnlock-util/jest.config.js b/packages/@yarn-tool/yarnlock-util/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/yarnlock-util/jest.config.js +++ b/packages/@yarn-tool/yarnlock-util/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/yarnlock/jest.config.js b/packages/@yarn-tool/yarnlock/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/@yarn-tool/yarnlock/jest.config.js +++ b/packages/@yarn-tool/yarnlock/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/@yarn-tool/yarnlock/package.json b/packages/@yarn-tool/yarnlock/package.json index 90e2ad90..dbb752d3 100644 --- a/packages/@yarn-tool/yarnlock/package.json +++ b/packages/@yarn-tool/yarnlock/package.json @@ -58,7 +58,7 @@ "semver": "^7.3.7", "ts-type": "^2.1.10", "tslib": "^2", - "upath2": "^3.1.13" + "upath2": "^3.1.15" }, "publishConfig": { "access": "public" diff --git a/packages/cache-path/jest.config.js b/packages/cache-path/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/cache-path/jest.config.js +++ b/packages/cache-path/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/cache-path/package.json b/packages/cache-path/package.json index e3a3854f..09140720 100644 --- a/packages/cache-path/package.json +++ b/packages/cache-path/package.json @@ -51,7 +51,7 @@ "sort-package-json": "yarn-tool sort" }, "dependencies": { - "@lazy-node/is-writeable-path": "^1.0.12", + "@lazy-node/is-writeable-path": "^1.0.13", "@types/bluebird": "*", "@yarn-tool/find-root": "^2.0.2", "array-hyper-unique": "^2.0.8", @@ -61,6 +61,6 @@ "hash-sum": "^2.0.0", "tmp": "^0.2.1", "tslib": "^2", - "upath2": "^3.1.13" + "upath2": "^3.1.15" } } diff --git a/packages/create-yarn-workspaces/jest.config.js b/packages/create-yarn-workspaces/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/create-yarn-workspaces/jest.config.js +++ b/packages/create-yarn-workspaces/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/create-yarn-workspaces/package.json b/packages/create-yarn-workspaces/package.json index 22aa49af..43c5bbe8 100644 --- a/packages/create-yarn-workspaces/package.json +++ b/packages/create-yarn-workspaces/package.json @@ -54,12 +54,12 @@ "debug-color2": "^1.3.1", "find-yarn-workspace-root2": "^1.2.39", "fs-extra": "^10.1.0", - "path-is-same": "^1.0.18", + "path-is-same": "^1.0.19", "pkg-dir": "< 6 >= 5", "sort-package-json": "^1.57.0", "sort-package-json3": "^2.0.1", "tslib": "^2", - "upath2": "^3.1.13", + "upath2": "^3.1.15", "yargs": "^17.5.1" }, "gitHead": "02f74c14e885366e9be773564ea43f7425f9d97a" diff --git a/packages/env-run-path/jest.config.js b/packages/env-run-path/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/env-run-path/jest.config.js +++ b/packages/env-run-path/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/find-yarn-workspace-root2/jest.config.js b/packages/find-yarn-workspace-root2/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/find-yarn-workspace-root2/jest.config.js +++ b/packages/find-yarn-workspace-root2/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/find-yarn-workspace-root2/package.json b/packages/find-yarn-workspace-root2/package.json index d426fe3a..aae594b0 100644 --- a/packages/find-yarn-workspace-root2/package.json +++ b/packages/find-yarn-workspace-root2/package.json @@ -32,7 +32,7 @@ "micromatch": "^4.0.5", "pkg-dir": "< 6 >= 5", "tslib": "^2", - "upath2": "^3.1.13" + "upath2": "^3.1.15" }, "gitHead": "40676553ac196265d354e537459d4c78d67f0a8c" } diff --git a/packages/node-package-json-loader/jest.config.js b/packages/node-package-json-loader/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/node-package-json-loader/jest.config.js +++ b/packages/node-package-json-loader/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/node-package-json-loader/package.json b/packages/node-package-json-loader/package.json index d89cdcf4..38bfd367 100644 --- a/packages/node-package-json-loader/package.json +++ b/packages/node-package-json-loader/package.json @@ -44,7 +44,7 @@ "config": {}, "resolutions": {}, "dependencies": { - "@bluelovers/fs-json": "^1.0.7", + "@bluelovers/fs-json": "^1.0.9", "@ts-type/package-dts": "^2.0.5", "@yarn-tool/pkg-entry-util": "^2.0.6", "@yarn-tool/resolve-package": "^2.0.0", diff --git a/packages/npm-init2/package.json b/packages/npm-init2/package.json index c7043e34..262ccbff 100644 --- a/packages/npm-init2/package.json +++ b/packages/npm-init2/package.json @@ -69,10 +69,10 @@ "lodash": "^4.17.21", "micromatch": "^4.0.5", "npm-package-json-loader": "^2.0.6", - "path-is-same": "^1.0.18", + "path-is-same": "^1.0.19", "sort-package-json-scripts": "^1.1.14", "tslib": "^2", - "upath2": "^3.1.13", + "upath2": "^3.1.15", "validate-npm-package-name": "^4.0.0", "workspaces-config": "^1.0.44", "ws-pkg-list": "^2.0.2", diff --git a/packages/sort-package-json-scripts/jest.config.js b/packages/sort-package-json-scripts/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/sort-package-json-scripts/jest.config.js +++ b/packages/sort-package-json-scripts/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/sync-lockfile/jest.config.js b/packages/sync-lockfile/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/sync-lockfile/jest.config.js +++ b/packages/sync-lockfile/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/up-require/jest.config.js b/packages/up-require/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/up-require/jest.config.js +++ b/packages/up-require/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/workspaces-config/jest.config.js b/packages/workspaces-config/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/workspaces-config/jest.config.js +++ b/packages/workspaces-config/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/ws-pkg-list/jest.config.js b/packages/ws-pkg-list/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/ws-pkg-list/jest.config.js +++ b/packages/ws-pkg-list/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/ws-pkg-list/package.json b/packages/ws-pkg-list/package.json index a6d1b5c1..6ec7159a 100644 --- a/packages/ws-pkg-list/package.json +++ b/packages/ws-pkg-list/package.json @@ -54,7 +54,7 @@ "micromatch": "^4.0.5", "ts-type": "^2.1.10", "tslib": "^2", - "upath2": "^3.1.13", + "upath2": "^3.1.15", "workspaces-config": "^1.0.44" }, "gitHead": "67f2bf3be478106378700eb513da557943b2f9f3" diff --git a/packages/ws-root-changelog/jest.config.js b/packages/ws-root-changelog/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/ws-root-changelog/jest.config.js +++ b/packages/ws-root-changelog/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/ws-root-changelog/package.json b/packages/ws-root-changelog/package.json index ddd497f5..35de783f 100644 --- a/packages/ws-root-changelog/package.json +++ b/packages/ws-root-changelog/package.json @@ -52,7 +52,7 @@ "dependencies": { "@yarn-tool/find-root": "^2.0.2", "tslib": "^2", - "upath2": "^3.1.13", + "upath2": "^3.1.15", "ws-pkg-list": "^2.0.2" }, "packageManager": "yarn@1.22.19" diff --git a/packages/yarn-list-link/jest.config.js b/packages/yarn-list-link/jest.config.js index c518d8e2..9f3d534d 100644 --- a/packages/yarn-list-link/jest.config.js +++ b/packages/yarn-list-link/jest.config.js @@ -1,5 +1,116 @@ -const { mixinJestConfig } = require('@bluelovers/jest-config'); +// @ts-check -module.exports = mixinJestConfig({}, true, { - file: __filename, -}) +const { basename, extname, dirname } = require('path'); + +/** + * // @type { import('@jest/types').Config.InitialOptions } + * @type { import('ts-jest').InitialOptionsTsJest } + */ +let jestConfig = { + +} + +/** + * @param {string} name + * @returns {string} + * @private + */ +function _requireResolve(name) +{ + let result; + + try + { + // @ts-ignore + const { requireResolveExtra, requireResolveCore } = require('@yarn-tool/require-resolve'); + + const paths = [ + requireResolveExtra('@bluelovers/tsdx').result, + requireResolveExtra('tsdx').result, + ].filter(Boolean); + + result = requireResolveCore(name, { + includeGlobal: true, + includeCurrentDirectory: true, + paths, + }) + } + catch (e) + { + + } + + result = result || require.resolve(name); + + console.info('[require.resolve]', name, '=>', result) + + return result +} + +let _ok = true; + +try +{ + if (!jestConfig.preset) + { + + let result = require('@yarn-tool/ws-find-up-paths').findUpPathsWorkspaces([ + 'jest-preset.js', + 'jest.config.js', + ], { + ignoreCurrentPackage: true, + onlyFiles: true, + }).result; + + if (result) + { + let name = basename(result, extname(result)) + + switch (name) + { + case 'jest-preset': + jestConfig.preset = dirname(result); + break; + default: + jestConfig = { + ...require(result), + jestConfig, + }; + break; + } + + _ok = false; + } + } +} +catch (e) +{ + +} + +try +{ + if (_ok && !jestConfig.preset) + { + let result = _requireResolve('@bluelovers/jest-config/package.json'); + if (result) + { + jestConfig.preset = dirname(result); + _ok = false; + } + } +} +catch (e) +{ + +} + +if (_ok && !jestConfig.preset) +{ + jestConfig.preset = '@bluelovers/jest-config'; + _ok = false; +} + +console.info(`jest.config.preset: ${jestConfig.preset}`); + +module.exports = jestConfig diff --git a/packages/yarn-list-link/package.json b/packages/yarn-list-link/package.json index 589ce538..9380e40b 100644 --- a/packages/yarn-list-link/package.json +++ b/packages/yarn-list-link/package.json @@ -32,7 +32,7 @@ "find-yarn-workspace-root2": "^1.2.39", "fs-extra": "^10.1.0", "tslib": "^2", - "upath2": "^3.1.13" + "upath2": "^3.1.15" }, "gitHead": "40676553ac196265d354e537459d4c78d67f0a8c" } diff --git a/yarn.lock b/yarn.lock index cae19194..09731046 100644 --- a/yarn.lock +++ b/yarn.lock @@ -323,28 +323,16 @@ bluebird "^3" fast-glob "^3" -"@bluelovers/fs-json@^1.0.7": - version "1.0.7" - resolved "https://registry.npmjs.org/@bluelovers/fs-json/-/fs-json-1.0.7.tgz#244fcc1ac808234f19da4af5ea22e058b2228dd8" - integrity sha512-4FdzXZeDmB/f0cEoS8PDKXPGEKbCslhnkOWN4nKj2ucrfV5+TNJSL9Eas+49TJiheP4KuaRPgheEpJZ+MPMB+A== +"@bluelovers/fs-json@^1.0.9": + version "1.0.9" + resolved "https://registry.npmjs.org/@bluelovers/fs-json/-/fs-json-1.0.9.tgz#610cbf5fdf175c0615b5b96d785c239d450d1cab" + integrity sha512-iqa36RGlErs9g5yq7UFURzhFcRcSBFtnuYxCrk9El3rvAGYFn1zFdbqJ56v3WbHTawyS28YzB5pFJNrhbrsJ8g== dependencies: "@types/jsonfile" "^6" fs-extra "^10.1.0" jsonfile "^6.1.0" tslib "^2" -"@bluelovers/jest-config@^1.0.4": - version "1.0.4" - resolved "https://registry.npmjs.org/@bluelovers/jest-config/-/jest-config-1.0.4.tgz#d9813bc01ee43873227a72bd9610a7888a67da8f" - integrity sha512-K/ZN2h1l9+8u51YEy7kEIFkyJt5u9scA98ZNdPIPFGU+5HjT9mm454yLqsy+zXfc91ZDDcXWSjrH/UnT68v9+A== - dependencies: - "@yarn-tool/require-resolve" "^2.0.0" - "@yarn-tool/table" "^2.0.0" - debug-color2 "^1.2.7" - graceful-fs "^4.2.10" - ts-type "^2.1.8" - tslib "^2" - "@bluelovers/string-natural-compare@^2.0.5", "@bluelovers/string-natural-compare@^2.0.7": version "2.0.7" resolved "https://registry.npmjs.org/@bluelovers/string-natural-compare/-/string-natural-compare-2.0.7.tgz#7b61bec43dc40ee578edbb9ea71d6f61df2e94ec" @@ -880,10 +868,10 @@ globby "<13 >=12.2.0" tslib "^2" -"@lazy-node/is-writeable-path@^1.0.12": - version "1.0.12" - resolved "https://registry.npmjs.org/@lazy-node/is-writeable-path/-/is-writeable-path-1.0.12.tgz#509d5d1d895053bbb63ba3217aee892feaddcc83" - integrity sha512-UVXshUe0u3QFiJGeo2D4kP3YxgQ26UUhcI4Hl8QoZplrC8Zr5ZMacij/Z2Pe+Xkan+jgw3dmvBaQIE+1CtnZLg== +"@lazy-node/is-writeable-path@^1.0.13": + version "1.0.13" + resolved "https://registry.npmjs.org/@lazy-node/is-writeable-path/-/is-writeable-path-1.0.13.tgz#194c6643f232ac791c42d12a10ef43a1e11ce2c7" + integrity sha512-dROgLCvrSGHnG5D2UYlmS2Qs1YwhXXcVwFupV/0ZMbGjWw3oF32CmJFatJ3CtMtTq7EOHIRSUiGgJPADvz61Lg== dependencies: tslib "^2" @@ -904,12 +892,12 @@ has-ansi "<5 >=4.0.1" strip-ansi "<7 >=6.0.1" -"@lerna/conventional-commits@^5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-5.4.0.tgz#12e31222b951837c3b8543cbe4c44247ac7b60df" - integrity sha512-rrFFIiKWhkyghDC+aGdfEw1F78MWB+KerpBO1689nRrVpXTTqV9ZKHpn0YeTGhi+T1e/igtdJRlNjRCaXkl79Q== +"@lerna/conventional-commits@^5.4.1": + version "5.4.1" + resolved "https://registry.npmjs.org/@lerna/conventional-commits/-/conventional-commits-5.4.1.tgz#1b004f9bd79a5c8bfc5162718f0a1cdd82b08bae" + integrity sha512-iLjtoyYAaG9rt4ed3VuH1ZQ5aDRZDmgefNuRPImpyT6GjdnqbnPsMVmSJbTqpXNw9/CUwPGAGQZdjIL5bs6BCg== dependencies: - "@lerna/validation-error" "5.4.0" + "@lerna/validation-error" "5.4.1" conventional-changelog-angular "^5.0.12" conventional-changelog-core "^4.2.4" conventional-recommended-bump "^6.1.0" @@ -920,41 +908,41 @@ pify "^5.0.0" semver "^7.3.4" -"@lerna/get-packed@^5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-5.4.0.tgz#8d4eabdc4c92f7bf29724146b3af1ff02146841b" - integrity sha512-bgPZGx2hbbjxaY0sRNcmDjWGR8HEoU/ORXrFiPU/YS7Xp4Yuf8GixT5QrYFT/VdZOqDeaBtFxndVPbmtK6qFRA== +"@lerna/get-packed@^5.4.1": + version "5.4.1" + resolved "https://registry.npmjs.org/@lerna/get-packed/-/get-packed-5.4.1.tgz#9ff9f2dc8f9fa9058db47874bfd28d3f5e6bf258" + integrity sha512-AQDppg2ga5HiK4vqzwu2P0WSgYbpwX+85CtIqgibxkwZqqXPXw51oBfx4kWL4vN1+uaUAu0tLZA5J+pnMIzU6g== dependencies: fs-extra "^9.1.0" ssri "^9.0.1" tar "^6.1.0" -"@lerna/log-packed@^5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-5.4.0.tgz#bd3cd24c700590286b7248c218139322e607c3df" - integrity sha512-2l9wrDDdG+vL+k8iIsQ+8EgLn3YnLMfAnK1TyHRaEFJyHWWPK+wCYln793s6RdOG0rJmCOdVwGvGoO3Dpp4jiw== +"@lerna/log-packed@^5.4.1": + version "5.4.1" + resolved "https://registry.npmjs.org/@lerna/log-packed/-/log-packed-5.4.1.tgz#ad195a1d65e4af74ebfe58ca77a6a4dd8761a33a" + integrity sha512-0K4bdhguEkFUr0zUV7iT1Q6NqXI7yjRUA1+YJBwnpW0SChePyOHePrPcMhahRBp+d7dV/AEvsvrUdY648Pv6Tw== dependencies: byte-size "^7.0.0" columnify "^1.6.0" has-unicode "^2.0.1" npmlog "^6.0.2" -"@lerna/package@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/package/-/package-5.4.0.tgz#98cc92ba74651045ac6ffa8df671eb266ef3241e" - integrity sha512-lfj4AmN7STzWR+ML5FKhVjnG/tBYBmUWFP2D0WP7jaBCtvA4YfhTRX8bnIPTB6QoYrJl72cPx7eTxGD/VO0ZKA== +"@lerna/package@5.4.1": + version "5.4.1" + resolved "https://registry.npmjs.org/@lerna/package/-/package-5.4.1.tgz#30995636cbae1f6fe12ac8a40752a61dbb11e08f" + integrity sha512-ajBqYe+2Cvf1sOBzckItYmgme/AB61vSieQm1I2RE89O+bK1dmFmCeMK0dB500x1TuAM1S3aqPLuKKhgEYhi/g== dependencies: load-json-file "^6.2.0" npm-package-arg "8.1.1" write-pkg "^4.0.0" -"@lerna/project@^5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/project/-/project-5.4.0.tgz#bd1bbd5bfce6b05decda1e97e06f27bd098b64f9" - integrity sha512-lr8+EybiRNmS6ecDtFmXzEUNcOepbvku9oxBc47CtvXtCcLdDLG4bI9TXrN4lUO2vJajXTSlhN7sD1LVUkcYdg== +"@lerna/project@^5.4.1": + version "5.4.1" + resolved "https://registry.npmjs.org/@lerna/project/-/project-5.4.1.tgz#13e13e5444284c5256b8665bd19ce844114c88fc" + integrity sha512-RE+tdkE0Ng0lmL7eWHbPp2o5FOqnbg3S8UfbIhjV45PzkFJG/nvnxIzRrnMC3O/Du8a4RFnLdTS5F1ZhE1NWJA== dependencies: - "@lerna/package" "5.4.0" - "@lerna/validation-error" "5.4.0" + "@lerna/package" "5.4.1" + "@lerna/validation-error" "5.4.1" cosmiconfig "^7.0.0" dedent "^0.7.0" dot-prop "^6.0.1" @@ -966,10 +954,10 @@ resolve-from "^5.0.0" write-json-file "^4.3.0" -"@lerna/validation-error@5.4.0": - version "5.4.0" - resolved "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-5.4.0.tgz#ede63fccdb7ef8666fefb47151a475fd976afb34" - integrity sha512-H/CiOgMlZO0QlGbVGk1iVKDbtWKV0gUse9XwP7N15qroCJU2d6u0XUJS5eCTNQ/JrLdFCtEdzg3uPOHbpIOykw== +"@lerna/validation-error@5.4.1": + version "5.4.1" + resolved "https://registry.npmjs.org/@lerna/validation-error/-/validation-error-5.4.1.tgz#054de5928f9073b4290320d81861ca218af85a45" + integrity sha512-G318cfJr4oCepvoEl8wELDNeTwl9Ug9L3CpK4sUdhges0MmOqArbaAR2Xz8h/v7AU0KRFyl+9M4pih1jUEnH/Q== dependencies: npmlog "^6.0.2" @@ -1468,10 +1456,10 @@ resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.31.tgz#31b7ca6407128a3d2bbc27fe2d21b345397f6197" integrity sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA== -"@types/node@*", "@types/node@^18.7.1": - version "18.7.1" - resolved "https://registry.npmjs.org/@types/node/-/node-18.7.1.tgz#352bee64f93117d867d05f7406642a52685cbca6" - integrity sha512-GKX1Qnqxo4S+Z/+Z8KKPLpH282LD7jLHWJcVryOflnsnH+BtSDfieR6ObwBMwpnNws0bUK8GI7z0unQf9bARNQ== +"@types/node@*", "@types/node@^18.7.2": + version "18.7.2" + resolved "https://registry.npmjs.org/@types/node/-/node-18.7.2.tgz#22306626110c459aedd2cdf131c749ec781e3b34" + integrity sha512-ce7MIiaYWCFv6A83oEultwhBXb22fxwNOQf5DIxWA4WXvDQ7K+L0fbWl/YOfCzlR5B/uFkSnVBhPcOfOECcWvA== "@types/node@^13.1.6": version "13.13.52" @@ -1508,10 +1496,10 @@ resolved "https://registry.npmjs.org/@types/prettier/-/prettier-2.7.0.tgz#ea03e9f0376a4446f44797ca19d9c46c36e352dc" integrity sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A== -"@types/semver@*", "@types/semver@^7.3.11": - version "7.3.11" - resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.11.tgz#7a84d3228f34e68d14955fc406f8e66fdbe9e65e" - integrity sha512-R9HhjC4aKx3jL0FLwU7x6qMTysTvLh7jesRslXmxgCOXZwyh5dsnmrPQQToMyess8D4U+8G9x9mBFZoC/1o/Tw== +"@types/semver@*", "@types/semver@^7.3.11", "@types/semver@^7.3.12": + version "7.3.12" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.3.12.tgz#920447fdd78d76b19de0438b7f60df3c4a80bf1c" + integrity sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A== "@types/stack-utils@^1.0.1": version "1.0.1" @@ -3496,6 +3484,16 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" +find-up-paths@^1.0.8: + version "1.0.8" + resolved "https://registry.npmjs.org/find-up-paths/-/find-up-paths-1.0.8.tgz#5fe67c9731caf2970d2bd9477deaa0964cc2ae31" + integrity sha512-vL65fczVofaFSIQmX0ZNF8k5U/mp/tpWvaMaVlWHwXx9KhRuzFgJQi2W+kWubX1qUv4LipnkcNykuooXCww9Xg== + dependencies: + fs-extra "^10.1.0" + fs-stat "^1.0.20" + path-parents "^1.0.26" + tslib "^2" + find-up@5.0.0, find-up@^5.0.0: version "5.0.0" resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" @@ -3595,22 +3593,22 @@ fs-minipass@^2.0.0, fs-minipass@^2.1.0: dependencies: minipass "^3.0.0" -fs-stat@^1.0.18: - version "1.0.18" - resolved "https://registry.npmjs.org/fs-stat/-/fs-stat-1.0.18.tgz#39e321b220b174d882c4adfdcbb53c4e46a19edd" - integrity sha512-vyhbSWlCxPFi8GmrqM6SGE4Zj+t8o7NSvtxF5NYHPAvPzMqJY+KtAZrCnJ8YdOr62UImzg7mleMv7vIuQBbvHQ== +fs-stat@^1.0.20: + version "1.0.20" + resolved "https://registry.npmjs.org/fs-stat/-/fs-stat-1.0.20.tgz#c33f7231bf8b6800f065ac9571751c5e73721fb9" + integrity sha512-IYrCw/Tvc3sk1AeoRolkRq42TmPJIP6h4pOS8suk+HOuZrppCw41BcRB23lwf1SEZWsXVwEeLIamlcftuhI/hA== dependencies: tslib "^2" -fs-symlink-extra@^1.0.12: - version "1.0.12" - resolved "https://registry.npmjs.org/fs-symlink-extra/-/fs-symlink-extra-1.0.12.tgz#5446cf83e920a5223aab185c981b48cb19c7e043" - integrity sha512-K27b9y+0MhriJr5oXi37E+ykkcrJ5uMSUOaT1sYggX2OMEW7wOgVFi9314K83DUEg/7n2asc7wq5uvH9jij4/A== +fs-symlink-extra@^1.0.13: + version "1.0.13" + resolved "https://registry.npmjs.org/fs-symlink-extra/-/fs-symlink-extra-1.0.13.tgz#174499c24de7d40d432080f07ac270ed6fe5452d" + integrity sha512-6ztEDE21SYoW7u8hDoCZaBXHlMJhAjbSsuoCwMxejFM/9gde0cem/irKOSNdK0V8VGZOgnFowkaxRyiTZhp6qQ== dependencies: fs-extra "^10.1.0" - fs-stat "^1.0.18" - path-is-same "^1.0.18" - ts-type "^2.1.8" + fs-stat "^1.0.20" + path-is-same "^1.0.19" + ts-type "^2.1.10" tslib "^2" fs.realpath@^1.0.0: @@ -3956,7 +3954,7 @@ got@^9.6.0: to-readable-stream "^1.0.0" url-parse-lax "^3.0.0" -graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.10, graceful-fs@^4.2.3, graceful-fs@^4.2.6, graceful-fs@^4.2.9: +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.3, graceful-fs@^4.2.6, graceful-fs@^4.2.9: version "4.2.10" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz#147d3a006da4ca3ce14728c7aefc287c367d7a6c" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== @@ -6388,13 +6386,13 @@ pascalcase@^0.1.1: resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== -path-dir-normalize@^1.0.24: - version "1.0.24" - resolved "https://registry.npmjs.org/path-dir-normalize/-/path-dir-normalize-1.0.24.tgz#4bc98ec21947b59fefdbd561dc2aac5d37950676" - integrity sha512-ED/praLRprDc9YR6Z5MHk8rirRrSjalht55Ms9R+69Q7jFY15CUazXo1Ne8Peyzy5Exqf9ha8Ib2WfC+tTnp7Q== +path-dir-normalize@^1.0.25: + version "1.0.25" + resolved "https://registry.npmjs.org/path-dir-normalize/-/path-dir-normalize-1.0.25.tgz#7ea47f13510cf3b81723ca763b389a20d0457ba7" + integrity sha512-gdYKza+7+i1ccBYTym47k6GGAUi7BWpzfKM8m/m10LmCU8hh7ktCEDWWy6mVq79h1FVpu7KEOCKL4etG0r+0Tg== dependencies: tslib "^2" - upath2 "^3.1.13" + upath2 "^3.1.15" path-env@^0.0.12: version "0.0.12" @@ -6414,58 +6412,58 @@ path-exists@^4.0.0: resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-in-dir@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/path-in-dir/-/path-in-dir-1.0.4.tgz#d45d4a0f713c59679d0edf98521e670e45c124f3" - integrity sha512-FurPeMO/L3wIcMnOclfvgL25NsdmoGjTmtazc6dejFf4ZUPPtEXVmvHbK+evU8GHJUT3RQauHTYTQfu8KorASg== +path-in-dir@^1.0.5: + version "1.0.5" + resolved "https://registry.npmjs.org/path-in-dir/-/path-in-dir-1.0.5.tgz#4bc6e4eb0d35c7acdfffee98a1d535b4d5084371" + integrity sha512-dbPFIgAFPkUwfU5bMPPx3850PXDyOc4OttP0ap9v2YcALhZM7uFmIlYLMZ+mO5JRDU8pBVbhrter0fiALrlOIg== dependencies: - path-dir-normalize "^1.0.24" + path-dir-normalize "^1.0.25" tslib "^2" - upath2 "^3.1.13" + upath2 "^3.1.15" path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -path-is-network-drive@^1.0.15: - version "1.0.15" - resolved "https://registry.npmjs.org/path-is-network-drive/-/path-is-network-drive-1.0.15.tgz#305630eebb2c1324c2a94f098a99213bbe7eb4a3" - integrity sha512-bJGs1SxUne+q29P1xCLMkNBhMetku+vPN+yVQu8FGL/7diHesCSSIKoF4Wq42tcbwm7rK72XrGfK8FUXN00LLQ== +path-is-network-drive@^1.0.16: + version "1.0.16" + resolved "https://registry.npmjs.org/path-is-network-drive/-/path-is-network-drive-1.0.16.tgz#b65a42de1ac3b79590876a1a683bbd59346dfe8d" + integrity sha512-nnU+ssj5jUxQ5lTxNXHkPJeQ2ZVpsoGLEyM+eSCe9Q7v2NhiJhxlCECuUvhICOIgJd3OVFTWlrmCoAE64X6qsQ== dependencies: tslib "^2" -path-is-same@^1.0.18: - version "1.0.18" - resolved "https://registry.npmjs.org/path-is-same/-/path-is-same-1.0.18.tgz#6d4024a0362bdf6eaa1ee25db4b43ca674bf0e0b" - integrity sha512-xXiJnbbeQ6kGmbnG7YASNiLzTybqsdw8ywGyZ3QduUilP28wTxj3bzj7TOBWrvNHcdISIryWu5Q1+gjII/TUPg== +path-is-same@^1.0.18, path-is-same@^1.0.19: + version "1.0.19" + resolved "https://registry.npmjs.org/path-is-same/-/path-is-same-1.0.19.tgz#7e1062bf9cbde9fc6a79cbfd405e9be22bc5dc30" + integrity sha512-8LhjJE9N9bwbY6UmehUr/mYHFW7WcVzQ3pexE78JoBfhhpyuz1s2ov8R54DU86g5WbG3bWTMWCa4htaVcwOIVg== dependencies: tslib "^2" - upath2 "^3.1.13" + upath2 "^3.1.15" path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== -path-parents@^1.0.25: - version "1.0.25" - resolved "https://registry.npmjs.org/path-parents/-/path-parents-1.0.25.tgz#ac8d86816681344aa83498f864e3a97085141629" - integrity sha512-MK9mEOnxAync4J092ZwYxMOug53PLhcz4SRGexDfwD8ULKzktNaFMpK07fHDqoH4bFvn9MygXMJIq3LyF0W1ig== +path-parents@^1.0.26: + version "1.0.26" + resolved "https://registry.npmjs.org/path-parents/-/path-parents-1.0.26.tgz#eb377cb520c7cd232097854dfb05e54b118a0ff6" + integrity sha512-ez/A/sZXf4ntX7QiSbYyI2A6Bn2kBFT8wtLMHI4slaGZ7+RyRsZvcR8QgLl/Z9BXDLUkxxe+pQAhQTAs/073+w== dependencies: - path-is-same "^1.0.18" + path-is-same "^1.0.19" tslib "^2" - upath2 "^3.1.13" + upath2 "^3.1.15" path-parse@^1.0.7: version "1.0.7" resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-strip-sep@^1.0.12: - version "1.0.12" - resolved "https://registry.npmjs.org/path-strip-sep/-/path-strip-sep-1.0.12.tgz#e395568764c3a21eb7e879d7573a6eb4619e8bcf" - integrity sha512-EJZSC5WBjVlA9XHLCiluiyisYg6yzeMJ4nY3BQVCuedyEHA/I2crcHWdwuQ74h3V599U9nEbEZUTvvSxOK3vbQ== +path-strip-sep@^1.0.13: + version "1.0.13" + resolved "https://registry.npmjs.org/path-strip-sep/-/path-strip-sep-1.0.13.tgz#c692da0ab2fca42e76b7f985be2129eb4b648bb1" + integrity sha512-lxc+Mv83LrhLolN1E7lhIb2XLT3epL6QT/rrLySo6MEK08E5dTKxGFGSiqr71H9W9xe7uOgzlpN8hFqpavF0Gg== dependencies: tslib "^2" @@ -7321,12 +7319,12 @@ spdx-license-ids@^3.0.0: resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz#50c0d8c40a14ec1bf449bae69a0ea4685a9d9f95" integrity sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g== -split-smartly2@^1.1.11: - version "1.1.11" - resolved "https://registry.npmjs.org/split-smartly2/-/split-smartly2-1.1.11.tgz#db60545602a4158139aaf6dc936b3132e71a82db" - integrity sha512-H5eZwBJS9TP29GwWg1Rk8HtSXgQN30jh0wpVDFb6SwjWd++GgPzQvJuuoIWSGmAybYf6uHX0TfhnUSixy5Wr/Q== +split-smartly2@^1.1.12: + version "1.1.12" + resolved "https://registry.npmjs.org/split-smartly2/-/split-smartly2-1.1.12.tgz#35d96d44adf26648e37b3eaea47e2b0615a5ce46" + integrity sha512-N6ge2CxmtrqRvb39YvHj69NSLZx7xhyMyWpZs5pYrmVhKV21MaHcyft/qhcBSywjg3ZCSiiSqYwh+p/mM97uQQ== dependencies: - ts-type "^1.2.35" + ts-type "^2.1.10" split-string@^3.0.1, split-string@^3.0.2: version "3.1.0" @@ -7751,14 +7749,6 @@ ts-type-predicates@^1.0.6: resolved "https://registry.npmjs.org/ts-type-predicates/-/ts-type-predicates-1.0.8.tgz#cf680df1b7378e88314bf6afc6b2afb1fc646d97" integrity sha512-MW1zq+d4MtsmDVOpIX1LZtkdfgK6WUMSx1H/qIeGTYzoLmBmRAzsS0wFDf16bf1qsopcv2MZMm5RSqfZJPgY/g== -ts-type@^1.2.35: - version "1.2.40" - resolved "https://registry.npmjs.org/ts-type/-/ts-type-1.2.40.tgz#db3ceb95281567fe72591b9a904488e85c5b74fe" - integrity sha512-Ux5e7Frys5pX7w8gYchEd0KfhG1H5puXOQC8yOBgMJ1aEwDSypeHLwxIUpKjecni1IGwtLI3JrxCVZaQO9JKmw== - dependencies: - tslib "^2.3.0" - typedarray-dts "^1.0.0" - ts-type@^2, ts-type@^2.1.10, ts-type@^2.1.2, ts-type@^2.1.4, ts-type@^2.1.6, ts-type@^2.1.8: version "2.1.10" resolved "https://registry.npmjs.org/ts-type/-/ts-type-2.1.10.tgz#09ae593829af0023f5e0f98799121b362303f657" @@ -7924,14 +7914,14 @@ unset-value@^1.0.0: has-value "^0.3.1" isobject "^3.0.0" -upath2@^3, upath2@^3.1.13: - version "3.1.13" - resolved "https://registry.npmjs.org/upath2/-/upath2-3.1.13.tgz#18dd1b99789e51d76a0124490e9020e66e0c3aa4" - integrity sha512-M88uBoqgzrkXvXrF/+oSIPsTmL21uRwGhPVJKODrl+3lXkQ5NPKrTYuSBZVa+lgPGFoI6qYyHlSKACFHO0AoNw== +upath2@^3, upath2@^3.1.13, upath2@^3.1.15: + version "3.1.15" + resolved "https://registry.npmjs.org/upath2/-/upath2-3.1.15.tgz#5c9e053421084533c5d0f0397ecb860c51c04257" + integrity sha512-b2QxNkfs6w+LZcgYZaBrS0Eo0OXsg5BbFtbVQleSpr8l8Iz+N2baP6eUvOJG0s+6M/qeCf8JI9BQXBXDwB5yOA== dependencies: "@types/node" "*" - path-is-network-drive "^1.0.15" - path-strip-sep "^1.0.12" + path-is-network-drive "^1.0.16" + path-strip-sep "^1.0.13" tslib "^2" update-browserslist-db@^1.0.5: