ts-jest 28.0.0-next.0 → 28.0.0-next.3

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 (35) hide show
  1. package/.ts-jest-digest +1 -1
  2. package/CHANGELOG.md +55 -0
  3. package/dist/config/index.d.ts +0 -1
  4. package/dist/config/index.js +0 -1
  5. package/dist/index.d.ts +6 -5
  6. package/dist/index.js +7 -6
  7. package/dist/legacy/compiler/compiler-utils.d.ts +2 -0
  8. package/dist/legacy/compiler/compiler-utils.js +22 -0
  9. package/dist/{compiler → legacy/compiler}/index.d.ts +0 -0
  10. package/dist/{compiler → legacy/compiler}/index.js +0 -0
  11. package/dist/{compiler → legacy/compiler}/ts-compiler.d.ts +2 -2
  12. package/dist/{compiler → legacy/compiler}/ts-compiler.js +8 -8
  13. package/dist/{compiler → legacy/compiler}/ts-jest-compiler.d.ts +2 -2
  14. package/dist/{compiler → legacy/compiler}/ts-jest-compiler.js +0 -0
  15. package/dist/{config → legacy/config}/config-set.d.ts +2 -2
  16. package/dist/{config → legacy/config}/config-set.js +40 -10
  17. package/dist/legacy/index.d.ts +0 -1
  18. package/dist/legacy/index.js +0 -15
  19. package/dist/legacy/ts-jest-transformer.d.ts +2 -2
  20. package/dist/legacy/ts-jest-transformer.js +4 -8
  21. package/dist/presets/create-jest-preset.d.ts +1 -1
  22. package/dist/presets/create-jest-preset.js +5 -2
  23. package/dist/types.d.ts +1 -1
  24. package/dist/utils/version-checkers.js +2 -2
  25. package/package.json +8 -8
  26. package/presets/default-esm-legacy/jest-preset.js +1 -0
  27. package/presets/default-legacy/jest-preset.js +1 -0
  28. package/presets/index.d.ts +6 -0
  29. package/presets/index.js +36 -5
  30. package/presets/js-with-babel-esm-legacy/jest-preset.js +1 -0
  31. package/presets/js-with-babel-legacy/jest-preset.js +1 -0
  32. package/presets/js-with-ts-esm-legacy/jest-preset.js +1 -0
  33. package/presets/js-with-ts-legacy/jest-preset.js +1 -0
  34. package/dist/transformers/path-mapping.d.ts +0 -5
  35. package/dist/transformers/path-mapping.js +0 -129
package/.ts-jest-digest CHANGED
@@ -1 +1 @@
1
- c3a0630ac8f5e24c57ab4b3d834f719f3ad740f2
1
+ fbf09f35f81a3ca3c5993075f6e3bd4218b3feb0
package/CHANGELOG.md CHANGED
@@ -1,3 +1,46 @@
1
+ # [28.0.0-next.3](https://github.com/kulshekhar/ts-jest/compare/v28.0.0-next.2...v28.0.0-next.3) (2022-04-29)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * **compiler:** bring back compiled output with inline sourcemap ([#3483](https://github.com/kulshekhar/ts-jest/issues/3483)) ([e96d5b3](https://github.com/kulshekhar/ts-jest/commit/e96d5b3c94348774011ac76e91bf746a3429ade0)), closes [#3482](https://github.com/kulshekhar/ts-jest/issues/3482)
7
+
8
+
9
+
10
+ # [28.0.0-next.2](https://github.com/kulshekhar/ts-jest/compare/v28.0.0-next.1...v28.0.0-next.2) (2022-04-27)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * revert deprecation message for `TsJestTransformer` ([#3466](https://github.com/kulshekhar/ts-jest/issues/3466)) ([cefa0da](https://github.com/kulshekhar/ts-jest/commit/cefa0da660c4f99cf6595e253981af6855bcc80c))
16
+
17
+
18
+ ### Features
19
+
20
+ * **presets:** add presets for legacy mode ([#3465](https://github.com/kulshekhar/ts-jest/issues/3465)) ([543b4ad](https://github.com/kulshekhar/ts-jest/commit/543b4ad729d20fbd46a2de5cd4660dc50b94ebe7))
21
+
22
+
23
+
24
+ # [28.0.0-next.1](https://github.com/kulshekhar/ts-jest/compare/v28.0.0-next.0...v28.0.0-next.1) (2022-04-26)
25
+
26
+
27
+ ### Features
28
+
29
+ * mark `ConfigSet` as legacy ([#3456](https://github.com/kulshekhar/ts-jest/issues/3456)) ([a986729](https://github.com/kulshekhar/ts-jest/commit/a98672977a679d1ed882605a3e71ed405432ffdc))
30
+ * mark `TsCompiler` and `TsJestCompiler` as legacy ([#3457](https://github.com/kulshekhar/ts-jest/issues/3457)) ([0f2fe30](https://github.com/kulshekhar/ts-jest/commit/0f2fe306762d8549bd29737becd4aed14a650427))
31
+ * remove `path-mapping` AST transformer ([#3455](https://github.com/kulshekhar/ts-jest/issues/3455)) ([f566869](https://github.com/kulshekhar/ts-jest/commit/f5668698f8fab78b3008d936aa5001f134f530e2))
32
+ * set Jest peer dependencies to v28 ([#3454](https://github.com/kulshekhar/ts-jest/issues/3454)) ([1e880ff](https://github.com/kulshekhar/ts-jest/commit/1e880fffe82bca231d1d23f6508f4ab4bc31e03e))
33
+
34
+
35
+ ### BREAKING CHANGES
36
+
37
+ * `path-mapping` AST transformer is no longer shipped in `ts-jest` v28. Please use an alternative one like https://github.com/LeDDGroup/typescript-transform-paths instead.
38
+ * Any imports `ts-jest/dist/compiler/ts-compiler` should change to `ts-jest/dist/legacy/compiler/ts-compiler`
39
+ * Any imports `ts-jest/dist/compiler/ts-jest-compiler` should change to `ts-jest/dist/legacy/compiler/ts-jest-compiler`
40
+ * Any imports `ts-jest/dist/config/config-set` should change to `ts-jest/dist/legacy/config/config-set
41
+
42
+
43
+
1
44
  # [28.0.0-next.0](https://github.com/kulshekhar/ts-jest/compare/v27.1.3...v28.0.0-next.0) (2022-04-24)
2
45
 
3
46
 
@@ -21,6 +64,18 @@
21
64
  * **core:** Any imports `ts-jest/utils` should be replaced with `ts-jest`.
22
65
  * **core:** Starting from Jest 27.4, `mocked` has been integrated into Jest repo.
23
66
  * **core:** Support for Node.js v10 has been removed as Jest drops support for it
67
+ * All presets now will they are preserved for refactored codes. If you wish to use the old codes, please do the following
68
+ *
69
+ ```diff
70
+ // jest.config.js
71
+ module.exports = {
72
+ // [...]
73
+ - preset: 'ts-jest', // or 'js-with-babel'/'js-with-ts'
74
+ + transform: {
75
+ '^.+\\.tsx?$': 'ts-jest/legacy' // or '^.+\\.[tj]sx?$': 'ts-jest' to use legacy codes
76
+ }
77
+ }
78
+ ```
24
79
 
25
80
 
26
81
 
@@ -1,2 +1 @@
1
- export * from './config-set';
2
1
  export * from './paths-to-module-name-mapper';
@@ -14,5 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./config-set"), exports);
18
17
  __exportStar(require("./paths-to-module-name-mapper"), exports);
package/dist/index.d.ts CHANGED
@@ -1,11 +1,12 @@
1
- import { TsJestTransformer } from './legacy';
2
- export * from './legacy';
3
- export * from './constants';
4
- export * from './compiler';
1
+ import { TsJestTransformer } from './legacy/ts-jest-transformer';
5
2
  export * from './config';
3
+ export * from './constants';
4
+ export * from './legacy/compiler';
5
+ export * from './legacy/ts-jest-transformer';
6
+ export * from './legacy/config/config-set';
6
7
  export * from './presets/create-jest-preset';
7
- export * from './utils';
8
8
  export * from './raw-compiler-options';
9
+ export * from './utils';
9
10
  export * from './types';
10
11
  declare const _default: {
11
12
  createTransformer(): TsJestTransformer;
package/dist/index.js CHANGED
@@ -14,17 +14,18 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- var legacy_1 = require("./legacy");
18
- __exportStar(require("./legacy"), exports);
19
- __exportStar(require("./constants"), exports);
20
- __exportStar(require("./compiler"), exports);
17
+ var ts_jest_transformer_1 = require("./legacy/ts-jest-transformer");
21
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);
22
23
  __exportStar(require("./presets/create-jest-preset"), exports);
23
- __exportStar(require("./utils"), exports);
24
24
  __exportStar(require("./raw-compiler-options"), exports);
25
+ __exportStar(require("./utils"), exports);
25
26
  __exportStar(require("./types"), exports);
26
27
  exports.default = {
27
28
  createTransformer: function () {
28
- return new legacy_1.TsJestTransformer(true);
29
+ return new ts_jest_transformer_1.TsJestTransformer();
29
30
  },
30
31
  };
@@ -0,0 +1,2 @@
1
+ export declare const SOURCE_MAPPING_PREFIX = "sourceMappingURL=";
2
+ export declare function updateOutput(outputText: string, normalizedFileName: string, sourceMap?: string): string;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateOutput = exports.SOURCE_MAPPING_PREFIX = void 0;
4
+ var utils_1 = require("../../utils");
5
+ exports.SOURCE_MAPPING_PREFIX = 'sourceMappingURL=';
6
+ function updateOutput(outputText, normalizedFileName, sourceMap) {
7
+ if (sourceMap) {
8
+ var base64Map = Buffer.from(updateSourceMap(sourceMap, normalizedFileName), 'utf8').toString('base64');
9
+ var sourceMapContent = "data:application/json;charset=utf-8;base64,".concat(base64Map);
10
+ return (outputText.slice(0, outputText.lastIndexOf(exports.SOURCE_MAPPING_PREFIX) + exports.SOURCE_MAPPING_PREFIX.length) +
11
+ sourceMapContent);
12
+ }
13
+ return outputText;
14
+ }
15
+ exports.updateOutput = updateOutput;
16
+ var updateSourceMap = function (sourceMapText, normalizedFileName) {
17
+ var sourceMap = JSON.parse(sourceMapText);
18
+ sourceMap.file = normalizedFileName;
19
+ sourceMap.sources = [normalizedFileName];
20
+ delete sourceMap.sourceRoot;
21
+ return (0, utils_1.stringify)(sourceMap);
22
+ };
File without changes
File without changes
@@ -1,8 +1,8 @@
1
1
  import type { TransformedSource } from '@jest/transform';
2
2
  import { Logger } from 'bs-logger';
3
3
  import type { CompilerOptions, CustomTransformers, Program, TranspileOutput } from 'typescript';
4
- import type { ConfigSet } from '../config';
5
- import type { StringMap, TsCompilerInstance, TsJestAstTransformer, TsJestCompileOptions, TTypeScript } from '../types';
4
+ import type { StringMap, TsCompilerInstance, TsJestAstTransformer, TsJestCompileOptions, TTypeScript } from '../../types';
5
+ import type { ConfigSet } from '../config/config-set';
6
6
  export declare class TsCompiler implements TsCompilerInstance {
7
7
  readonly configSet: ConfigSet;
8
8
  readonly runtimeCacheFS: StringMap;
@@ -54,9 +54,10 @@ exports.TsCompiler = void 0;
54
54
  var path_1 = require("path");
55
55
  var bs_logger_1 = require("bs-logger");
56
56
  var lodash_memoize_1 = __importDefault(require("lodash.memoize"));
57
- var constants_1 = require("../constants");
58
- var utils_1 = require("../utils");
59
- var messages_1 = require("../utils/messages");
57
+ var constants_1 = require("../../constants");
58
+ var utils_1 = require("../../utils");
59
+ var messages_1 = require("../../utils/messages");
60
+ var compiler_utils_1 = require("./compiler-utils");
60
61
  var TsCompiler = (function () {
61
62
  function TsCompiler(configSet, runtimeCacheFS) {
62
63
  var _a;
@@ -146,13 +147,13 @@ var TsCompiler = (function () {
146
147
  file: (0, path_1.basename)(fileName),
147
148
  }));
148
149
  }
150
+ var outputFiles = output.outputFiles;
149
151
  return this._compilerOptions.sourceMap
150
152
  ? {
151
- code: output.outputFiles[1].text,
152
- map: output.outputFiles[0].text,
153
+ code: (0, compiler_utils_1.updateOutput)(outputFiles[1].text, fileName, outputFiles[0].text),
153
154
  }
154
155
  : {
155
- code: output.outputFiles[0].text,
156
+ code: (0, compiler_utils_1.updateOutput)(outputFiles[0].text, fileName),
156
157
  };
157
158
  }
158
159
  else {
@@ -162,8 +163,7 @@ var TsCompiler = (function () {
162
163
  this.configSet.raiseDiagnostics(result.diagnostics, fileName, this._logger);
163
164
  }
164
165
  return {
165
- code: result.outputText,
166
- map: result.sourceMapText,
166
+ code: (0, compiler_utils_1.updateOutput)(result.outputText, fileName, result.sourceMapText),
167
167
  };
168
168
  }
169
169
  };
@@ -1,6 +1,6 @@
1
1
  import type { TransformedSource } from '@jest/transform';
2
- import type { ConfigSet } from '../config';
3
- import type { CompilerInstance, StringMap, TsJestCompileOptions } from '../types';
2
+ import type { CompilerInstance, StringMap, TsJestCompileOptions } from '../../types';
3
+ import type { ConfigSet } from '../config/config-set';
4
4
  export declare class TsJestCompiler implements CompilerInstance {
5
5
  private readonly _compilerInstance;
6
6
  constructor(configSet: ConfigSet, runtimeCacheFS: StringMap);
@@ -1,7 +1,7 @@
1
1
  import { Logger } from 'bs-logger';
2
2
  import type * as ts from 'typescript';
3
- import type { RawCompilerOptions } from '../raw-compiler-options';
4
- import type { ProjectConfigTsJest, TsJestAstTransformer, TTypeScript } from '../types';
3
+ import type { RawCompilerOptions } from '../../raw-compiler-options';
4
+ import type { ProjectConfigTsJest, TsJestAstTransformer, TTypeScript } from '../../types';
5
5
  export declare class ConfigSet {
6
6
  readonly parentLogger?: Logger | undefined;
7
7
  readonly tsJestDigest: string;
@@ -10,6 +10,29 @@ var __assign = (this && this.__assign) || function () {
10
10
  };
11
11
  return __assign.apply(this, arguments);
12
12
  };
13
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
13
36
  var __values = (this && this.__values) || function(o) {
14
37
  var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
15
38
  if (m) return m.call(o);
@@ -57,15 +80,16 @@ var path_1 = require("path");
57
80
  var bs_logger_1 = require("bs-logger");
58
81
  var jest_util_1 = require("jest-util");
59
82
  var json5_1 = __importDefault(require("json5"));
60
- var constants_1 = require("../constants");
61
- var utils_1 = require("../utils");
62
- var backports_1 = require("../utils/backports");
63
- var importer_1 = require("../utils/importer");
64
- var messages_1 = require("../utils/messages");
65
- var normalize_slashes_1 = require("../utils/normalize-slashes");
66
- var sha1_1 = require("../utils/sha1");
67
- var ts_error_1 = require("../utils/ts-error");
68
- exports.MY_DIGEST = (0, fs_1.readFileSync)((0, path_1.resolve)(__dirname, '..', '..', '.ts-jest-digest'), 'utf8');
83
+ var constants_1 = require("../../constants");
84
+ var hoistJestTransformer = __importStar(require("../../transformers/hoist-jest"));
85
+ var utils_1 = require("../../utils");
86
+ var backports_1 = require("../../utils/backports");
87
+ var importer_1 = require("../../utils/importer");
88
+ var messages_1 = require("../../utils/messages");
89
+ var normalize_slashes_1 = require("../../utils/normalize-slashes");
90
+ var sha1_1 = require("../../utils/sha1");
91
+ var ts_error_1 = require("../../utils/ts-error");
92
+ exports.MY_DIGEST = (0, fs_1.readFileSync)((0, path_1.resolve)(__dirname, '../../../.ts-jest-digest'), 'utf8');
69
93
  exports.IGNORE_DIAGNOSTIC_CODES = [
70
94
  6059,
71
95
  18002,
@@ -232,7 +256,13 @@ var ConfigSet = (function () {
232
256
  this.parsedTsConfig = this._getAndResolveTsConfig(typeof tsconfigOpt === 'object' ? tsconfigOpt : undefined, configFilePath);
233
257
  this.raiseDiagnostics(this.parsedTsConfig.errors, configFilePath);
234
258
  this.logger.debug({ tsconfig: this.parsedTsConfig }, 'normalized typescript config via ts-jest option');
235
- this.resolvedTransformers.before = [require('../transformers/hoist-jest')];
259
+ this.resolvedTransformers.before = [
260
+ {
261
+ factory: hoistJestTransformer.factory,
262
+ name: hoistJestTransformer.name,
263
+ version: hoistJestTransformer.version,
264
+ },
265
+ ];
236
266
  var astTransformers = options.astTransformers;
237
267
  if (astTransformers) {
238
268
  var resolveTransformerFunc_1 = function (transformerPath) {
@@ -1,5 +1,4 @@
1
1
  import { TsJestTransformer } from './ts-jest-transformer';
2
- export * from './ts-jest-transformer';
3
2
  declare const _default: {
4
3
  createTransformer: () => TsJestTransformer;
5
4
  };
@@ -1,21 +1,6 @@
1
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
2
  Object.defineProperty(exports, "__esModule", { value: true });
17
3
  var ts_jest_transformer_1 = require("./ts-jest-transformer");
18
- __exportStar(require("./ts-jest-transformer"), exports);
19
4
  exports.default = {
20
5
  createTransformer: function () { return new ts_jest_transformer_1.TsJestTransformer(); },
21
6
  };
@@ -1,6 +1,6 @@
1
1
  import type { SyncTransformer, TransformedSource } from '@jest/transform';
2
- import { ConfigSet } from '../config';
3
2
  import type { CompilerInstance, ProjectConfigTsJest, TransformOptionsTsJest } from '../types';
3
+ import { ConfigSet } from './config/config-set';
4
4
  export declare class TsJestTransformer implements SyncTransformer {
5
5
  private readonly _logger;
6
6
  protected _compiler: CompilerInstance;
@@ -8,7 +8,7 @@ export declare class TsJestTransformer implements SyncTransformer {
8
8
  private _transformCfgStr;
9
9
  private _depGraphs;
10
10
  private _watchMode;
11
- constructor(isLegacy?: boolean);
11
+ constructor();
12
12
  private _configsFor;
13
13
  protected _createConfigSet(config: ProjectConfigTsJest | undefined): ConfigSet;
14
14
  protected _createCompiler(configSet: ConfigSet, cacheFS: Map<string, string>): void;
@@ -78,25 +78,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
78
78
  exports.TsJestTransformer = exports.CACHE_KEY_EL_SEPARATOR = void 0;
79
79
  var fs_1 = require("fs");
80
80
  var path_1 = __importDefault(require("path"));
81
- var compiler_1 = require("../compiler");
82
- var config_1 = require("../config");
83
81
  var constants_1 = require("../constants");
84
82
  var utils_1 = require("../utils");
85
83
  var importer_1 = require("../utils/importer");
86
84
  var messages_1 = require("../utils/messages");
87
85
  var sha1_1 = require("../utils/sha1");
88
86
  var version_checkers_1 = require("../utils/version-checkers");
87
+ var compiler_1 = require("./compiler");
88
+ var config_set_1 = require("./config/config-set");
89
89
  exports.CACHE_KEY_EL_SEPARATOR = '\x00';
90
90
  var TsJestTransformer = (function () {
91
- function TsJestTransformer(isLegacy) {
92
- if (isLegacy === void 0) { isLegacy = false; }
91
+ function TsJestTransformer() {
93
92
  this._depGraphs = new Map();
94
93
  this._watchMode = false;
95
94
  this._logger = utils_1.rootLogger.child({ namespace: 'ts-jest-transformer' });
96
95
  version_checkers_1.VersionCheckers.jest.warn();
97
- if (isLegacy) {
98
- this._logger.warn("Use 'ts-jest' entry point in v28 will resolve in refactored transformer. If you wish to use legacy transformer, please adjust your Jest 'transform' config. For example:\n module.exports = {\n transform: {\n '^.+\\\\.tsx?$': 'ts-jest/legacy'\n }\n }\n ");
99
- }
100
96
  this.getCacheKey = this.getCacheKey.bind(this);
101
97
  this.getCacheKeyAsync = this.getCacheKeyAsync.bind(this);
102
98
  this.process = this.process.bind(this);
@@ -151,7 +147,7 @@ var TsJestTransformer = (function () {
151
147
  return configSet;
152
148
  };
153
149
  TsJestTransformer.prototype._createConfigSet = function (config) {
154
- return new config_1.ConfigSet(config);
150
+ return new config_set_1.ConfigSet(config);
155
151
  };
156
152
  TsJestTransformer.prototype._createCompiler = function (configSet, cacheFS) {
157
153
  this._compiler = new compiler_1.TsJestCompiler(configSet, cacheFS);
@@ -1,3 +1,3 @@
1
1
  import type { Config } from '@jest/types';
2
2
  import type { TsJestPresets } from '../types';
3
- export declare function createJestPreset(allowJs?: boolean, extraOptions?: Config.InitialOptions): TsJestPresets;
3
+ export declare function createJestPreset(legacy?: boolean, allowJs?: boolean, extraOptions?: Config.InitialOptions): TsJestPresets;
@@ -14,13 +14,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.createJestPreset = void 0;
15
15
  var utils_1 = require("../utils");
16
16
  var logger = utils_1.rootLogger.child({ namespace: 'jest-preset' });
17
- function createJestPreset(allowJs, extraOptions) {
17
+ function createJestPreset(legacy, allowJs, extraOptions) {
18
18
  var _a;
19
+ if (legacy === void 0) { legacy = false; }
19
20
  if (allowJs === void 0) { allowJs = false; }
20
21
  if (extraOptions === void 0) { extraOptions = {}; }
21
22
  logger.debug({ allowJs: allowJs }, 'creating jest presets', allowJs ? 'handling' : 'not handling', 'JavaScript files');
22
23
  var extensionsToTreatAsEsm = extraOptions.extensionsToTreatAsEsm, moduleFileExtensions = extraOptions.moduleFileExtensions, testMatch = extraOptions.testMatch;
23
24
  var supportESM = extensionsToTreatAsEsm === null || extensionsToTreatAsEsm === void 0 ? void 0 : extensionsToTreatAsEsm.length;
24
- return __assign(__assign(__assign(__assign({}, (extensionsToTreatAsEsm ? { extensionsToTreatAsEsm: extensionsToTreatAsEsm } : undefined)), (moduleFileExtensions ? { moduleFileExtensions: moduleFileExtensions } : undefined)), (testMatch ? { testMatch: testMatch } : undefined)), { transform: __assign(__assign({}, extraOptions.transform), (_a = {}, _a[allowJs ? (supportESM ? '^.+\\.m?[tj]sx?$' : '^.+\\.[tj]sx?$') : '^.+\\.tsx?$'] = 'ts-jest', _a)) });
25
+ return __assign(__assign(__assign(__assign({}, (extensionsToTreatAsEsm ? { extensionsToTreatAsEsm: extensionsToTreatAsEsm } : undefined)), (moduleFileExtensions ? { moduleFileExtensions: moduleFileExtensions } : undefined)), (testMatch ? { testMatch: testMatch } : undefined)), { transform: __assign(__assign({}, extraOptions.transform), (_a = {}, _a[allowJs ? (supportESM ? '^.+\\.m?[tj]sx?$' : '^.+\\.[tj]sx?$') : '^.+\\.tsx?$'] = legacy
26
+ ? 'ts-jest/legacy'
27
+ : 'ts-jest', _a)) });
25
28
  }
26
29
  exports.createJestPreset = createJestPreset;
package/dist/types.d.ts CHANGED
@@ -3,7 +3,7 @@ import type { Config } from '@jest/types';
3
3
  import type * as babelJest from 'babel-jest';
4
4
  import type * as _babel from 'babel__core';
5
5
  import type * as _ts from 'typescript';
6
- import type { ConfigSet } from './config';
6
+ import type { ConfigSet } from './legacy/config/config-set';
7
7
  import type { RawCompilerOptions } from './raw-compiler-options';
8
8
  declare module '@jest/types' {
9
9
  namespace Config {
@@ -7,9 +7,9 @@ var logger_1 = require("./logger");
7
7
  var messages_1 = require("./messages");
8
8
  var logger = logger_1.rootLogger.child({ namespace: 'versions' });
9
9
  exports.VersionCheckers = {
10
- jest: createVersionChecker('jest', ">=28.0.0-alpha.11 <29"),
10
+ jest: createVersionChecker('jest', ">=28.0.0 <29"),
11
11
  typescript: createVersionChecker('typescript', ">=4.3 <5"),
12
- babelJest: createVersionChecker('babel-jest', ">=28.0.0-alpha.11 <29"),
12
+ babelJest: createVersionChecker('babel-jest', ">=28.0.0 <29"),
13
13
  babelCore: createVersionChecker('@babel/core', ">=7.0.0-beta.0 <8"),
14
14
  };
15
15
  function checkVersion(name, expectedRange, action) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ts-jest",
3
- "version": "28.0.0-next.0",
3
+ "version": "28.0.0-next.3",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "bin": {
@@ -53,7 +53,7 @@
53
53
  "dependencies": {
54
54
  "bs-logger": "0.x",
55
55
  "fast-json-stable-stringify": "2.x",
56
- "jest-util": "28.0.0-alpha.9",
56
+ "jest-util": "^28.0.0",
57
57
  "json5": "2.x",
58
58
  "lodash.memoize": "4.x",
59
59
  "make-error": "1.x",
@@ -63,8 +63,8 @@
63
63
  "peerDependencies": {
64
64
  "@babel/core": ">=7.0.0-beta.0 <8",
65
65
  "@types/jest": "^27.0.0",
66
- "babel-jest": "28.0.0-alpha.11",
67
- "jest": "28.0.0-alpha.11",
66
+ "babel-jest": "^28.0.0",
67
+ "jest": "^28.0.0",
68
68
  "typescript": ">=4.3"
69
69
  },
70
70
  "peerDependenciesMeta": {
@@ -91,8 +91,8 @@
91
91
  "devDependencies": {
92
92
  "@commitlint/cli": "16.x",
93
93
  "@commitlint/config-angular": "^16.0.0",
94
- "@jest/transform": "28.0.0-alpha.11",
95
- "@jest/types": "28.0.0-alpha.9",
94
+ "@jest/transform": "^28.0.0",
95
+ "@jest/types": "^28.0.0",
96
96
  "@types/babel__core": "7.x",
97
97
  "@types/cross-spawn": "latest",
98
98
  "@types/fs-extra": "latest",
@@ -102,7 +102,7 @@
102
102
  "@types/lodash.memoize": "4.x",
103
103
  "@types/lodash.set": "4.x",
104
104
  "@types/micromatch": "4.x",
105
- "@types/node": "17.0.25",
105
+ "@types/node": "17.0.29",
106
106
  "@types/node-fetch": "^3.0.3",
107
107
  "@types/react": "18.x",
108
108
  "@types/rimraf": "^3.0.2",
@@ -126,7 +126,7 @@
126
126
  "glob": "^8.0.1",
127
127
  "glob-gitignore": "latest",
128
128
  "husky": "4.x",
129
- "jest": "28.0.0-alpha.11",
129
+ "jest": "^28.0.0",
130
130
  "jest-snapshot-serializer-raw": "^1.2.0",
131
131
  "js-yaml": "latest",
132
132
  "json-schema-to-typescript": "^10.1.4",
@@ -0,0 +1 @@
1
+ module.exports = require('..').defaultsESMLegacy
@@ -0,0 +1 @@
1
+ module.exports = require('..').defaultsLegacy
@@ -2,10 +2,16 @@ import type { TsJestPresets } from '../dist'
2
2
 
3
3
  declare const _default: {
4
4
  defaults: TsJestPresets;
5
+ defaultsLegacy: TsJestPresets;
5
6
  defaultsESM: TsJestPresets;
7
+ defaultsESMLegacy: TsJestPresets;
6
8
  jsWithTs: TsJestPresets;
9
+ jsWithTsLegacy: TsJestPresets;
7
10
  jsWithTsESM: TsJestPresets;
11
+ jsWithTsESMLegacy: TsJestPresets;
8
12
  jsWithBabel: TsJestPresets;
13
+ jsWithBabelLegacy: TsJestPresets;
9
14
  jsWithBabelESM: TsJestPresets;
15
+ jsWithBabelESMLegacy: TsJestPresets;
10
16
  };
11
17
  export = _default;
package/presets/index.js CHANGED
@@ -5,24 +5,55 @@ module.exports = {
5
5
  get defaults() {
6
6
  return createJestPreset()
7
7
  },
8
+ get defaultsLegacy() {
9
+ return createJestPreset(true, false)
10
+ },
8
11
  get defaultsESM() {
9
- return createJestPreset(false, { extensionsToTreatAsEsm: TS_EXT_TO_TREAT_AS_ESM })
12
+ return createJestPreset(false, false, { extensionsToTreatAsEsm: TS_EXT_TO_TREAT_AS_ESM })
13
+ },
14
+ get defaultsESMLegacy() {
15
+ return createJestPreset(true, false, { extensionsToTreatAsEsm: TS_EXT_TO_TREAT_AS_ESM })
10
16
  },
11
17
  get jsWithTs() {
12
- return createJestPreset(true)
18
+ return createJestPreset(false, true)
19
+ },
20
+ get jsWithTsLegacy() {
21
+ return createJestPreset(true, true)
13
22
  },
14
23
  get jsWithTsESM() {
15
- return createJestPreset(true, { extensionsToTreatAsEsm: [...JS_EXT_TO_TREAT_AS_ESM, ...TS_EXT_TO_TREAT_AS_ESM] })
24
+ return createJestPreset(false, true, {
25
+ extensionsToTreatAsEsm: [...JS_EXT_TO_TREAT_AS_ESM, ...TS_EXT_TO_TREAT_AS_ESM],
26
+ })
27
+ },
28
+ get jsWithTsESMLegacy() {
29
+ return createJestPreset(true, true, {
30
+ extensionsToTreatAsEsm: [...JS_EXT_TO_TREAT_AS_ESM, ...TS_EXT_TO_TREAT_AS_ESM],
31
+ })
16
32
  },
17
33
  get jsWithBabel() {
18
- return createJestPreset(false, {
34
+ return createJestPreset(false, false, {
35
+ transform: {
36
+ '^.+\\.jsx?$': 'babel-jest',
37
+ },
38
+ })
39
+ },
40
+ get jsWithBabelLegacy() {
41
+ return createJestPreset(true, false, {
19
42
  transform: {
20
43
  '^.+\\.jsx?$': 'babel-jest',
21
44
  },
22
45
  })
23
46
  },
24
47
  get jsWithBabelESM() {
25
- return createJestPreset(false, {
48
+ return createJestPreset(false, false, {
49
+ extensionsToTreatAsEsm: [...JS_EXT_TO_TREAT_AS_ESM, ...TS_EXT_TO_TREAT_AS_ESM],
50
+ transform: {
51
+ '^.+\\.m?[j]sx?$': 'babel-jest',
52
+ },
53
+ })
54
+ },
55
+ get jsWithBabelESMLegacy() {
56
+ return createJestPreset(true, false, {
26
57
  extensionsToTreatAsEsm: [...JS_EXT_TO_TREAT_AS_ESM, ...TS_EXT_TO_TREAT_AS_ESM],
27
58
  transform: {
28
59
  '^.+\\.m?[j]sx?$': 'babel-jest',
@@ -0,0 +1 @@
1
+ module.exports = require('..').jsWithBabelESMLegacy
@@ -0,0 +1 @@
1
+ module.exports = require('..').jsWithBabelLegacy
@@ -0,0 +1 @@
1
+ module.exports = require('..').jsWithTsESMLegacy
@@ -0,0 +1 @@
1
+ module.exports = require('..').jsWithTsLegacy
@@ -1,5 +0,0 @@
1
- import type * as _ts from 'typescript';
2
- import type { TsCompilerInstance } from '../types';
3
- export declare const version = 2;
4
- export declare const name = "path-mapping";
5
- export declare function factory({ configSet, }: TsCompilerInstance): (ctx: _ts.TransformationContext) => _ts.Transformer<_ts.SourceFile>;
@@ -1,129 +0,0 @@
1
- "use strict";
2
- var __values = (this && this.__values) || function(o) {
3
- var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
4
- if (m) return m.call(o);
5
- if (o && typeof o.length === "number") return {
6
- next: function () {
7
- if (o && i >= o.length) o = void 0;
8
- return { value: o && o[i++], done: !o };
9
- }
10
- };
11
- throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
12
- };
13
- Object.defineProperty(exports, "__esModule", { value: true });
14
- exports.factory = exports.name = exports.version = void 0;
15
- var path_1 = require("path");
16
- var bs_logger_1 = require("bs-logger");
17
- exports.version = 2;
18
- exports.name = 'path-mapping';
19
- var isBaseDir = function (base, dir) { var _a; return !((_a = (0, path_1.relative)(base, dir)) === null || _a === void 0 ? void 0 : _a.startsWith('.')); };
20
- function factory(_a) {
21
- var _b;
22
- var configSet = _a.configSet;
23
- var logger = configSet.logger.child({ namespace: exports.name });
24
- logger.warn('path-mapping AST transformer is deprecated and will be removed in `ts-jest` v28. Please use an alternative one, like https://github.com/LeDDGroup/typescript-transform-paths instead');
25
- var ts = configSet.compilerModule;
26
- var tsFactory = ts.factory ? ts.factory : ts;
27
- var compilerOptions = configSet.parsedTsConfig.options;
28
- var rootDirs = (_b = compilerOptions.rootDirs) === null || _b === void 0 ? void 0 : _b.filter(path_1.isAbsolute);
29
- var isDynamicImport = function (node) {
30
- return ts.isCallExpression(node) && node.expression.kind === ts.SyntaxKind.ImportKeyword;
31
- };
32
- var isRequire = function (node) {
33
- return ts.isCallExpression(node) &&
34
- ts.isIdentifier(node.expression) &&
35
- node.expression.text === 'require' &&
36
- ts.isStringLiteral(node.arguments[0]) &&
37
- node.arguments.length === 1;
38
- };
39
- var createVisitor = function (ctx, sf) {
40
- var fileName = sf.fileName;
41
- var fileDir = (0, path_1.normalize)((0, path_1.dirname)(fileName));
42
- var rewritePath = function (importPath) {
43
- var e_1, _a;
44
- var p = importPath;
45
- var resolvedModule = ts.resolveModuleName(importPath, fileName, compilerOptions, ts.sys).resolvedModule;
46
- if (resolvedModule) {
47
- var resolvedFileName = resolvedModule.resolvedFileName;
48
- var filePath = fileDir;
49
- var modulePath = (0, path_1.dirname)(resolvedFileName);
50
- if (rootDirs) {
51
- var fileRootDir = '';
52
- var moduleRootDir = '';
53
- try {
54
- for (var rootDirs_1 = __values(rootDirs), rootDirs_1_1 = rootDirs_1.next(); !rootDirs_1_1.done; rootDirs_1_1 = rootDirs_1.next()) {
55
- var rootDir = rootDirs_1_1.value;
56
- if (isBaseDir(rootDir, resolvedFileName) && rootDir.length > moduleRootDir.length)
57
- moduleRootDir = rootDir;
58
- if (isBaseDir(rootDir, fileName) && rootDir.length > fileRootDir.length)
59
- fileRootDir = rootDir;
60
- }
61
- }
62
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
63
- finally {
64
- try {
65
- if (rootDirs_1_1 && !rootDirs_1_1.done && (_a = rootDirs_1.return)) _a.call(rootDirs_1);
66
- }
67
- finally { if (e_1) throw e_1.error; }
68
- }
69
- if (fileRootDir && moduleRootDir) {
70
- filePath = (0, path_1.relative)(fileRootDir, filePath);
71
- modulePath = (0, path_1.relative)(moduleRootDir, modulePath);
72
- }
73
- }
74
- p = (0, path_1.normalize)((0, path_1.join)((0, path_1.relative)(filePath, modulePath), (0, path_1.basename)(resolvedFileName)));
75
- p = p.startsWith('.') ? p : "./".concat(p);
76
- }
77
- return p;
78
- };
79
- var visitor = function (node) {
80
- var rewrittenPath;
81
- var newNode = ts.getMutableClone(node);
82
- if (isDynamicImport(node) || isRequire(node)) {
83
- rewrittenPath = rewritePath(node.arguments[0].text);
84
- var argumentArrays = tsFactory.createNodeArray([tsFactory.createStringLiteral(rewrittenPath)]);
85
- return ts.factory
86
- ? ts.factory.updateCallExpression(node, node.expression, node.typeArguments, argumentArrays)
87
- : ts.updateCall(node, node.expression, node.typeArguments, argumentArrays);
88
- }
89
- if (ts.isExternalModuleReference(node) && ts.isStringLiteral(node.expression)) {
90
- rewrittenPath = rewritePath(node.expression.text);
91
- return tsFactory.updateExternalModuleReference(newNode, tsFactory.createStringLiteral(rewrittenPath));
92
- }
93
- if (ts.isImportDeclaration(node) && ts.isStringLiteral(node.moduleSpecifier)) {
94
- rewrittenPath = rewritePath(node.moduleSpecifier.text);
95
- return +ts.versionMajorMinor >= 4.5
96
- ? tsFactory.updateImportDeclaration(node, node.decorators, node.modifiers, node.importClause, tsFactory.createStringLiteral(rewrittenPath), node.assertClause)
97
- :
98
- tsFactory.updateImportDeclaration(node, node.decorators, node.modifiers, node.importClause, tsFactory.createStringLiteral(rewrittenPath));
99
- }
100
- if (ts.isExportDeclaration(node) && node.moduleSpecifier && ts.isStringLiteral(node.moduleSpecifier)) {
101
- rewrittenPath = rewritePath(node.moduleSpecifier.text);
102
- var stringLiteralNode = tsFactory.createStringLiteral(rewrittenPath);
103
- if (ts.factory) {
104
- return +ts.versionMajorMinor >= 4.5
105
- ? ts.factory.updateExportDeclaration(node, node.decorators, node.modifiers, node.isTypeOnly, node.exportClause, stringLiteralNode, node.assertClause)
106
- :
107
- ts.factory.updateExportDeclaration(node, node.decorators, node.modifiers, node.isTypeOnly, node.exportClause, stringLiteralNode);
108
- }
109
- else {
110
- return ts.updateExportDeclaration(node, node.decorators, node.modifiers, node.exportClause, stringLiteralNode, node.isTypeOnly);
111
- }
112
- }
113
- if (ts.isImportTypeNode(node) &&
114
- ts.isLiteralTypeNode(node.argument) &&
115
- ts.isStringLiteral(node.argument.literal)) {
116
- rewrittenPath = rewritePath(node.argument.literal.text);
117
- var importArguments = tsFactory.createLiteralTypeNode(tsFactory.createStringLiteral(rewrittenPath));
118
- return tsFactory.updateImportTypeNode(node, importArguments, node.qualifier, node.typeArguments, node.isTypeOf);
119
- }
120
- return ts.visitEachChild(node, visitor, ctx);
121
- };
122
- return visitor;
123
- };
124
- return function (ctx) {
125
- var _a;
126
- return logger.wrap((_a = {}, _a[bs_logger_1.LogContexts.logLevel] = bs_logger_1.LogLevels.debug, _a.call = null, _a), 'visitSourceFileNode(): path mapping', function (sf) { return ts.visitNode(sf, createVisitor(ctx, sf)); });
127
- };
128
- }
129
- exports.factory = factory;