@depup/ts-jest 29.4.6-depup.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/.lintstagedrc +4 -0
  2. package/.ts-jest-digest +1 -0
  3. package/CHANGELOG.md +2025 -0
  4. package/CONTRIBUTING.md +121 -0
  5. package/LICENSE.md +21 -0
  6. package/README.md +33 -0
  7. package/TROUBLESHOOTING.md +3 -0
  8. package/changes.json +18 -0
  9. package/cli.js +3 -0
  10. package/dist/cli/config/init.d.ts +6 -0
  11. package/dist/cli/config/init.js +139 -0
  12. package/dist/cli/config/migrate.d.ts +1 -0
  13. package/dist/cli/config/migrate.js +177 -0
  14. package/dist/cli/help.d.ts +1 -0
  15. package/dist/cli/help.js +25 -0
  16. package/dist/cli/helpers/presets.d.ts +1 -0
  17. package/dist/cli/helpers/presets.js +41 -0
  18. package/dist/cli/index.d.ts +1 -0
  19. package/dist/cli/index.js +63 -0
  20. package/dist/config/index.d.ts +2 -0
  21. package/dist/config/index.js +18 -0
  22. package/dist/config/paths-to-module-name-mapper.d.ts +9 -0
  23. package/dist/config/paths-to-module-name-mapper.js +52 -0
  24. package/dist/config/types.d.ts +2 -0
  25. package/dist/config/types.js +2 -0
  26. package/dist/constants.d.ts +13 -0
  27. package/dist/constants.js +22 -0
  28. package/dist/index.d.ts +15 -0
  29. package/dist/index.js +31 -0
  30. package/dist/legacy/compiler/compiler-utils.d.ts +8 -0
  31. package/dist/legacy/compiler/compiler-utils.js +32 -0
  32. package/dist/legacy/compiler/index.d.ts +2 -0
  33. package/dist/legacy/compiler/index.js +18 -0
  34. package/dist/legacy/compiler/ts-compiler.d.ts +27 -0
  35. package/dist/legacy/compiler/ts-compiler.js +434 -0
  36. package/dist/legacy/compiler/ts-jest-compiler.d.ts +8 -0
  37. package/dist/legacy/compiler/ts-jest-compiler.js +18 -0
  38. package/dist/legacy/config/config-set.d.ts +36 -0
  39. package/dist/legacy/config/config-set.js +622 -0
  40. package/dist/legacy/index.d.ts +6 -0
  41. package/dist/legacy/index.js +6 -0
  42. package/dist/legacy/ts-jest-transformer.d.ts +28 -0
  43. package/dist/legacy/ts-jest-transformer.js +293 -0
  44. package/dist/presets/all-presets.d.ts +15 -0
  45. package/dist/presets/all-presets.js +42 -0
  46. package/dist/presets/create-jest-preset.d.ts +18 -0
  47. package/dist/presets/create-jest-preset.js +180 -0
  48. package/dist/raw-compiler-options.d.ts +556 -0
  49. package/dist/raw-compiler-options.js +2 -0
  50. package/dist/transformers/hoist-jest.d.ts +9 -0
  51. package/dist/transformers/hoist-jest.js +111 -0
  52. package/dist/transpilers/typescript/transpile-module.d.ts +8 -0
  53. package/dist/transpilers/typescript/transpile-module.js +174 -0
  54. package/dist/types.d.ts +282 -0
  55. package/dist/types.js +3 -0
  56. package/dist/utils/backports.d.ts +1 -0
  57. package/dist/utils/backports.js +118 -0
  58. package/dist/utils/diagnostics.d.ts +5 -0
  59. package/dist/utils/diagnostics.js +8 -0
  60. package/dist/utils/get-package-version.d.ts +1 -0
  61. package/dist/utils/get-package-version.js +14 -0
  62. package/dist/utils/importer.d.ts +1 -0
  63. package/dist/utils/importer.js +146 -0
  64. package/dist/utils/index.d.ts +4 -0
  65. package/dist/utils/index.js +20 -0
  66. package/dist/utils/json.d.ts +2 -0
  67. package/dist/utils/json.js +16 -0
  68. package/dist/utils/jsonable-value.d.ts +10 -0
  69. package/dist/utils/jsonable-value.js +29 -0
  70. package/dist/utils/logger.d.ts +1 -0
  71. package/dist/utils/logger.js +20 -0
  72. package/dist/utils/memoize.d.ts +1 -0
  73. package/dist/utils/memoize.js +60 -0
  74. package/dist/utils/messages.d.ts +1 -0
  75. package/dist/utils/messages.js +21 -0
  76. package/dist/utils/normalize-slashes.d.ts +1 -0
  77. package/dist/utils/normalize-slashes.js +9 -0
  78. package/dist/utils/sha1.d.ts +1 -0
  79. package/dist/utils/sha1.js +38 -0
  80. package/dist/utils/ts-error.d.ts +1 -0
  81. package/dist/utils/ts-error.js +37 -0
  82. package/jest-preset.js +1 -0
  83. package/legacy.js +1 -0
  84. package/package.json +167 -0
  85. package/preprocessor.js +7 -0
  86. package/presets/default/jest-preset.js +1 -0
  87. package/presets/default-esm/jest-preset.js +1 -0
  88. package/presets/default-esm-legacy/jest-preset.js +1 -0
  89. package/presets/default-legacy/jest-preset.js +1 -0
  90. package/presets/index.d.ts +3 -0
  91. package/presets/index.js +3 -0
  92. package/presets/js-with-babel/jest-preset.js +1 -0
  93. package/presets/js-with-babel-esm/jest-preset.js +1 -0
  94. package/presets/js-with-babel-esm-legacy/jest-preset.js +1 -0
  95. package/presets/js-with-babel-legacy/jest-preset.js +1 -0
  96. package/presets/js-with-ts/jest-preset.js +1 -0
  97. package/presets/js-with-ts-esm/jest-preset.js +1 -0
  98. package/presets/js-with-ts-esm-legacy/jest-preset.js +1 -0
  99. package/presets/js-with-ts-legacy/jest-preset.js +1 -0
  100. package/tsconfig.base.json +20 -0
@@ -0,0 +1,2 @@
1
+ export * from './paths-to-module-name-mapper';
2
+ export * from './types';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./paths-to-module-name-mapper"), exports);
18
+ __exportStar(require("./types"), exports);
@@ -0,0 +1,9 @@
1
+ import type { Config } from '@jest/types';
2
+ import type { CompilerOptions } from 'typescript';
3
+ type TsPathMapping = Exclude<CompilerOptions['paths'], undefined>;
4
+ type JestPathMapping = Config.InitialOptions['moduleNameMapper'];
5
+ export declare const pathsToModuleNameMapper: (mapping: TsPathMapping, { prefix, useESM }?: {
6
+ prefix?: string;
7
+ useESM?: boolean;
8
+ }) => JestPathMapping;
9
+ export {};
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.pathsToModuleNameMapper = void 0;
4
+ const bs_logger_1 = require("bs-logger");
5
+ const utils_1 = require("../utils");
6
+ const messages_1 = require("../utils/messages");
7
+ // we don't need to escape all chars, so commented out is the real one
8
+ // const escapeRegex = (str: string) => str.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&')
9
+ const escapeRegex = (str) => str.replace(/[-\\^$*+?.()|[\]{}]/g, '\\$&');
10
+ const logger = utils_1.rootLogger.child({ [bs_logger_1.LogContexts.namespace]: 'path-mapper' });
11
+ const pathsToModuleNameMapper = (mapping, { prefix = '', useESM = false } = {}) => {
12
+ const jestMap = {};
13
+ for (const fromPath of Object.keys(mapping)) {
14
+ const toPaths = mapping[fromPath];
15
+ // check that we have only one target path
16
+ if (toPaths.length === 0) {
17
+ logger.warn((0, messages_1.interpolate)("Not mapping \"{{path}}\" because it has no target." /* Errors.NotMappingPathWithEmptyMap */, { path: fromPath }));
18
+ continue;
19
+ }
20
+ // split with '*'
21
+ const segments = fromPath.split(/\*/g);
22
+ if (segments.length === 1) {
23
+ const paths = toPaths.map((target) => {
24
+ const enrichedPrefix = prefix !== '' && !prefix.endsWith('/') ? `${prefix}/` : prefix;
25
+ return `${enrichedPrefix}${target}`;
26
+ });
27
+ const cjsPattern = `^${escapeRegex(fromPath)}$`;
28
+ jestMap[cjsPattern] = paths.length === 1 ? paths[0] : paths;
29
+ }
30
+ else if (segments.length === 2) {
31
+ const paths = toPaths.map((target) => {
32
+ const enrichedTarget = target.startsWith('./') && prefix !== '' ? target.substring(target.indexOf('/') + 1) : target;
33
+ const enrichedPrefix = prefix !== '' && !prefix.endsWith('/') ? `${prefix}/` : prefix;
34
+ return `${enrichedPrefix}${enrichedTarget.replace(/\*/g, '$1')}`;
35
+ });
36
+ if (useESM) {
37
+ const esmPattern = `^${escapeRegex(segments[0])}(.*)${escapeRegex(segments[1])}\\.js$`;
38
+ jestMap[esmPattern] = paths.length === 1 ? paths[0] : paths;
39
+ }
40
+ const cjsPattern = `^${escapeRegex(segments[0])}(.*)${escapeRegex(segments[1])}$`;
41
+ jestMap[cjsPattern] = paths.length === 1 ? paths[0] : paths;
42
+ }
43
+ else {
44
+ logger.warn((0, messages_1.interpolate)("Not mapping \"{{path}}\" because it has more than one star (`*`)." /* Errors.NotMappingMultiStarPath */, { path: fromPath }));
45
+ }
46
+ }
47
+ if (useESM) {
48
+ jestMap['^(\\.{1,2}/.*)\\.js$'] = '$1';
49
+ }
50
+ return jestMap;
51
+ };
52
+ exports.pathsToModuleNameMapper = pathsToModuleNameMapper;
@@ -0,0 +1,2 @@
1
+ import type { TsConfigJson } from 'type-fest';
2
+ export type TsConfigCompilerOptionsJson = TsConfigJson.CompilerOptions;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,13 @@
1
+ export declare const LINE_FEED = "\n";
2
+ export declare const DECLARATION_TYPE_EXT = ".d.ts";
3
+ export declare const JS_JSX_EXTENSIONS: string[];
4
+ export declare const TS_TSX_REGEX: RegExp;
5
+ export declare const JS_JSX_REGEX: RegExp;
6
+ export declare const TS_TRANSFORM_PATTERN = "^.+\\.tsx?$";
7
+ export declare const ESM_TS_TRANSFORM_PATTERN = "^.+\\.m?tsx?$";
8
+ export declare const TS_JS_TRANSFORM_PATTERN = "^.+\\.[tj]sx?$";
9
+ export declare const ESM_TS_JS_TRANSFORM_PATTERN = "^.+\\.m?[tj]sx?$";
10
+ export declare const JS_TRANSFORM_PATTERN = "^.+\\.jsx?$";
11
+ export declare const ESM_JS_TRANSFORM_PATTERN = "^.+\\.m?jsx?$";
12
+ export declare const TS_EXT_TO_TREAT_AS_ESM: string[];
13
+ export declare const JS_EXT_TO_TREAT_AS_ESM: string[];
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DEFAULT_JEST_TEST_MATCH = exports.JS_EXT_TO_TREAT_AS_ESM = exports.TS_EXT_TO_TREAT_AS_ESM = exports.ESM_JS_TRANSFORM_PATTERN = exports.JS_TRANSFORM_PATTERN = exports.ESM_TS_JS_TRANSFORM_PATTERN = exports.TS_JS_TRANSFORM_PATTERN = exports.ESM_TS_TRANSFORM_PATTERN = exports.TS_TRANSFORM_PATTERN = exports.JS_JSX_REGEX = exports.TS_TSX_REGEX = exports.JS_JSX_EXTENSIONS = exports.DECLARATION_TYPE_EXT = exports.LINE_FEED = void 0;
4
+ exports.LINE_FEED = '\n';
5
+ exports.DECLARATION_TYPE_EXT = '.d.ts';
6
+ exports.JS_JSX_EXTENSIONS = ['.js', '.jsx'];
7
+ exports.TS_TSX_REGEX = /\.[cm]?tsx?$/;
8
+ exports.JS_JSX_REGEX = /\.[cm]?jsx?$/;
9
+ exports.TS_TRANSFORM_PATTERN = '^.+\\.tsx?$';
10
+ exports.ESM_TS_TRANSFORM_PATTERN = '^.+\\.m?tsx?$';
11
+ exports.TS_JS_TRANSFORM_PATTERN = '^.+\\.[tj]sx?$';
12
+ exports.ESM_TS_JS_TRANSFORM_PATTERN = '^.+\\.m?[tj]sx?$';
13
+ exports.JS_TRANSFORM_PATTERN = '^.+\\.jsx?$';
14
+ exports.ESM_JS_TRANSFORM_PATTERN = '^.+\\.m?jsx?$';
15
+ // `extensionsToTreatAsEsm` will throw error with `.mjs`
16
+ exports.TS_EXT_TO_TREAT_AS_ESM = ['.ts', '.tsx', '.mts'];
17
+ exports.JS_EXT_TO_TREAT_AS_ESM = ['.jsx'];
18
+ /**
19
+ * @internal
20
+ * See https://jestjs.io/docs/en/configuration#testmatch-arraystring
21
+ */
22
+ exports.DEFAULT_JEST_TEST_MATCH = ['**/__tests__/**/*.[jt]s?(x)', '**/?(*.)+(spec|test).[jt]s?(x)'];
@@ -0,0 +1,15 @@
1
+ import { TsJestTransformer } from './legacy/ts-jest-transformer';
2
+ import type { TsJestTransformerOptions } from './types';
3
+ export * from './config';
4
+ export * from './constants';
5
+ export * from './legacy/compiler';
6
+ export * from './legacy/ts-jest-transformer';
7
+ export * from './legacy/config/config-set';
8
+ export * from './presets/create-jest-preset';
9
+ export * from './raw-compiler-options';
10
+ export * from './utils';
11
+ export * from './types';
12
+ declare const _default: {
13
+ createTransformer(tsJestConfig?: TsJestTransformerOptions): TsJestTransformer;
14
+ };
15
+ export default _default;
package/dist/index.js ADDED
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ const ts_jest_transformer_1 = require("./legacy/ts-jest-transformer");
18
+ __exportStar(require("./config"), exports);
19
+ __exportStar(require("./constants"), exports);
20
+ __exportStar(require("./legacy/compiler"), exports);
21
+ __exportStar(require("./legacy/ts-jest-transformer"), exports);
22
+ __exportStar(require("./legacy/config/config-set"), exports);
23
+ __exportStar(require("./presets/create-jest-preset"), exports);
24
+ __exportStar(require("./raw-compiler-options"), exports);
25
+ __exportStar(require("./utils"), exports);
26
+ __exportStar(require("./types"), exports);
27
+ exports.default = {
28
+ createTransformer(tsJestConfig) {
29
+ return new ts_jest_transformer_1.TsJestTransformer(tsJestConfig);
30
+ },
31
+ };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Rely on TypeScript compiled output generation which contains this prefix to point to sourcemap location.
3
+ */
4
+ export declare const SOURCE_MAPPING_PREFIX = "sourceMappingURL=";
5
+ /**
6
+ * Update the output remapping the source map.
7
+ */
8
+ export declare function updateOutput(outputText: string, normalizedFileName: string, sourceMap?: string): string;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SOURCE_MAPPING_PREFIX = void 0;
4
+ exports.updateOutput = updateOutput;
5
+ const utils_1 = require("../../utils");
6
+ /**
7
+ * Rely on TypeScript compiled output generation which contains this prefix to point to sourcemap location.
8
+ */
9
+ exports.SOURCE_MAPPING_PREFIX = 'sourceMappingURL=';
10
+ /**
11
+ * Update the output remapping the source map.
12
+ */
13
+ function updateOutput(outputText, normalizedFileName, sourceMap) {
14
+ if (sourceMap) {
15
+ const base64Map = Buffer.from(updateSourceMap(sourceMap, normalizedFileName), 'utf8').toString('base64');
16
+ const sourceMapContent = `data:application/json;charset=utf-8;base64,${base64Map}`;
17
+ // sourceMappingURL= prefix is always at the end of compiledOutput, using lastIndexOf should be the safest way to substring
18
+ return (outputText.slice(0, outputText.lastIndexOf(exports.SOURCE_MAPPING_PREFIX) + exports.SOURCE_MAPPING_PREFIX.length) +
19
+ sourceMapContent);
20
+ }
21
+ return outputText;
22
+ }
23
+ /**
24
+ * Update the source map contents for improved output.
25
+ */
26
+ const updateSourceMap = (sourceMapText, normalizedFileName) => {
27
+ const sourceMap = JSON.parse(sourceMapText);
28
+ sourceMap.file = normalizedFileName;
29
+ sourceMap.sources = [normalizedFileName];
30
+ delete sourceMap.sourceRoot;
31
+ return (0, utils_1.stringify)(sourceMap);
32
+ };
@@ -0,0 +1,2 @@
1
+ export * from './ts-compiler';
2
+ export * from './ts-jest-compiler';
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./ts-compiler"), exports);
18
+ __exportStar(require("./ts-jest-compiler"), exports);
@@ -0,0 +1,27 @@
1
+ import { Logger } from 'bs-logger';
2
+ import { CompilerOptions, CustomTransformers, Program, TranspileOutput } from 'typescript';
3
+ import type { StringMap, TsCompilerInstance, TsJestAstTransformer, TsJestCompileOptions, TTypeScript, CompiledOutput } from '../../types';
4
+ import type { ConfigSet } from '../config/config-set';
5
+ export declare class TsCompiler implements TsCompilerInstance {
6
+ readonly configSet: ConfigSet;
7
+ readonly runtimeCacheFS: StringMap;
8
+ protected readonly _logger: Logger;
9
+ protected readonly _ts: TTypeScript;
10
+ protected readonly _initialCompilerOptions: CompilerOptions;
11
+ protected _compilerOptions: CompilerOptions;
12
+ /**
13
+ * @private
14
+ */
15
+ private _runtimeCacheFS;
16
+ /**
17
+ * @private
18
+ */
19
+ private _fileContentCache;
20
+ program: Program | undefined;
21
+ constructor(configSet: ConfigSet, runtimeCacheFS: StringMap);
22
+ getResolvedModules(fileContent: string, fileName: string, runtimeCacheFS: StringMap): string[];
23
+ private fixupCompilerOptionsForModuleKind;
24
+ getCompiledOutput(fileContent: string, fileName: string, options: TsJestCompileOptions): CompiledOutput;
25
+ protected _transpileOutput(fileContent: string, fileName: string): TranspileOutput;
26
+ protected _makeTransformers(customTransformers: TsJestAstTransformer): CustomTransformers;
27
+ }