@tramvai/cli 5.45.2 → 5.47.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 (56) hide show
  1. package/lib/library/babel/index.d.ts +1 -1
  2. package/lib/library/babel/index.d.ts.map +1 -1
  3. package/lib/library/babel/index.js +12 -27
  4. package/lib/library/babel/index.js.map +1 -1
  5. package/lib/library/swc/index.d.ts.map +1 -1
  6. package/lib/library/swc/index.js +9 -22
  7. package/lib/library/swc/index.js.map +1 -1
  8. package/lib/library/webpack/application/client/common.d.ts.map +1 -1
  9. package/lib/library/webpack/application/client/common.js +6 -1
  10. package/lib/library/webpack/application/client/common.js.map +1 -1
  11. package/lib/library/webpack/blocks/serverInline.d.ts.map +1 -1
  12. package/lib/library/webpack/blocks/serverInline.js +7 -1
  13. package/lib/library/webpack/blocks/serverInline.js.map +1 -1
  14. package/lib/library/webpack/plugins/PolyfillCondition.d.ts +8 -0
  15. package/lib/library/webpack/plugins/PolyfillCondition.d.ts.map +1 -0
  16. package/lib/library/webpack/plugins/PolyfillCondition.js +46 -0
  17. package/lib/library/webpack/plugins/PolyfillCondition.js.map +1 -0
  18. package/lib/library/webpack/utils/polyfills/const.d.ts +3 -0
  19. package/lib/library/webpack/utils/polyfills/const.d.ts.map +1 -0
  20. package/lib/library/webpack/utils/polyfills/const.js +49 -0
  21. package/lib/library/webpack/utils/polyfills/const.js.map +1 -0
  22. package/lib/library/webpack/utils/polyfills/polyfillCondition.d.ts +8 -0
  23. package/lib/library/webpack/utils/polyfills/polyfillCondition.d.ts.map +1 -0
  24. package/lib/library/webpack/utils/polyfills/polyfillCondition.js +51 -0
  25. package/lib/library/webpack/utils/polyfills/polyfillCondition.js.map +1 -0
  26. package/lib/library/webpack/utils/polyfills/specToFeature.d.ts +7 -0
  27. package/lib/library/webpack/utils/polyfills/specToFeature.d.ts.map +1 -0
  28. package/lib/library/webpack/utils/polyfills/specToFeature.js +207 -0
  29. package/lib/library/webpack/utils/polyfills/specToFeature.js.map +1 -0
  30. package/lib/library/webpack/utils/transpiler.d.ts +14 -0
  31. package/lib/library/webpack/utils/transpiler.d.ts.map +1 -1
  32. package/lib/library/webpack/utils/transpiler.js +25 -3
  33. package/lib/library/webpack/utils/transpiler.js.map +1 -1
  34. package/lib/schema/autogeneratedSchema.json +3 -6
  35. package/lib/typings/configEntry/cli.d.ts +1 -2
  36. package/lib/typings/configEntry/cli.d.ts.map +1 -1
  37. package/package.json +5 -3
  38. package/schema.json +3 -6
  39. package/src/library/babel/index.ts +14 -32
  40. package/src/library/babel/plugins/lazy-component/lazy-component.spec.ts +2 -1
  41. package/src/library/babel/plugins/lazy-component/legacy-universal-replace.spec.ts +2 -1
  42. package/src/library/swc/__integration__/__snapshots__/swc.build.test.ts.snap +20 -13
  43. package/src/library/swc/__integration__/__snapshots__/swc.start.test.ts.snap +13 -16
  44. package/src/library/swc/__integration__/server.inline.ts +4 -0
  45. package/src/library/swc/index.ts +11 -28
  46. package/src/library/webpack/application/client/common.ts +7 -1
  47. package/src/library/webpack/blocks/serverInline.ts +7 -1
  48. package/src/library/webpack/plugins/PolyfillCondition.ts +62 -0
  49. package/src/library/webpack/utils/polyfills/__integration__/__snapshots__/condition.test.ts.snap +1348 -0
  50. package/src/library/webpack/utils/polyfills/__integration__/condition.test.ts +128 -0
  51. package/src/library/webpack/utils/polyfills/const.ts +46 -0
  52. package/src/library/webpack/utils/polyfills/polyfillCondition.ts +63 -0
  53. package/src/library/webpack/utils/polyfills/specToFeature.ts +243 -0
  54. package/src/library/webpack/utils/transpiler.ts +44 -2
  55. package/src/schema/autogeneratedSchema.json +3 -6
  56. package/src/typings/configEntry/cli.ts +1 -2
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getSpecToFeatureDict = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const node_path_1 = tslib_1.__importDefault(require("node:path"));
6
+ const camelCaseName_1 = tslib_1.__importDefault(require("@tinkoff/utils/string/camelCaseName"));
7
+ const const_1 = require("./const");
8
+ // built-in-definitions.js file is not listed in the package.json exports of package, so it cannot be imported
9
+ // workaround this by using require with an absolute path to file
10
+ const pathToDep = require.resolve('babel-plugin-polyfill-corejs3/package.json');
11
+ const definitions = require(node_path_1.default.join(node_path_1.default.dirname(pathToDep), '/lib/built-in-definitions.js'));
12
+ // A list of new primitives, their support in browsers was added recently
13
+ const newPrimitivies = {
14
+ 'weak-map': 'window.WeakMap',
15
+ 'weak-set': 'window.WeakSet',
16
+ 'async-disposable-stack': 'window.AsyncDisposableStack',
17
+ 'disposable-stack': 'window.DisposableStack',
18
+ 'suppressed-error': 'window.SuppressedError',
19
+ 'web.immediate': 'window.setImmediate',
20
+ observable: 'window.Observable',
21
+ };
22
+ // A list of primitives for which there are no polyfills, but they are needed as a base for methods like JSON.stringify
23
+ const missingBuiltIns = {
24
+ ...newPrimitivies,
25
+ 'typed-array': 'window.Int8Array',
26
+ 'uint8-array': 'window.Uint8Array',
27
+ string: 'window.String',
28
+ array: 'window.Array',
29
+ object: 'window.Object',
30
+ math: 'window.Math',
31
+ function: 'window.Function',
32
+ json: 'window.JSON',
33
+ };
34
+ // Exclude fetch builtin, because its treated as object.constructor
35
+ const excludedBuiltIns = ['fetch'];
36
+ const isBuiltInExcluded = (builtInName) => excludedBuiltIns.includes(builtInName);
37
+ // Exclude iterators
38
+ // we do not provide polyfills for them and their support check is much more complicated
39
+ // es.iterator, es.async-iterator, esnext.async-iterator, esnext.iterator
40
+ const isSpecExcluded = (specName) => /(es(next)?)?\.(async-)?iterator/.test(specName) || const_1.ignoredPolyfills.includes(specName);
41
+ const specToFeatureDict = {};
42
+ function _addFeature(specName, primitive, method, isInstance) {
43
+ if (specToFeatureDict[specName]) {
44
+ return;
45
+ }
46
+ let checkExpression = isInstance
47
+ ? `'${method}' in ${primitive}.prototype`
48
+ : `${primitive}.${method}`;
49
+ // For new primitives, we add a check for the existence of the primitive itself.
50
+ // for example WeakMap && WeakMap.from
51
+ // since WeakMap itself may not be supported in the browser, WeakMap check support may also be required
52
+ const isPrimitiveNew = Boolean(Object.values(newPrimitivies).includes(primitive));
53
+ if (isPrimitiveNew) {
54
+ checkExpression = `${primitive} && ${checkExpression}`;
55
+ }
56
+ specToFeatureDict[specName] = checkExpression;
57
+ specToFeatureDict[specName.replace('es.', 'esnext.')] = checkExpression;
58
+ }
59
+ const addStaticFeature = (specName, primitive, method) => _addFeature(specName, primitive, method, false);
60
+ const addInstanceFeature = (specName, primitive, method) => _addFeature(specName, primitive, method, true);
61
+ const methods = {};
62
+ function addMethod(specName, expression) {
63
+ methods[specName] = expression;
64
+ }
65
+ const instanceMethods = new Set(['web.url.to-json']);
66
+ const globals = new Set();
67
+ function _addGlobal(globalList, isInstance) {
68
+ globalList.forEach((globalSpecName) => {
69
+ globals.add(globalSpecName);
70
+ if (isInstance) {
71
+ instanceMethods.add(globalSpecName);
72
+ }
73
+ });
74
+ }
75
+ const addInstanceGlobal = (globalList) => _addGlobal(globalList, true);
76
+ const addGlobal = (globalList) => _addGlobal(globalList, false);
77
+ /**
78
+ * For conversion, a dictionary of the form `spec: feature` needs to be created
79
+ * we use a file from babel-plugin-polyfill-corejs3 for this - https://github.com/babel/babel-polyfills/blob/main/packages/babel-plugin-polyfill-corejs3/src/built-in-definitions.ts
80
+ * as a result we get dictinary like { 'es.array.at: 'Array.prototype.at', 'es.object.assign': 'Object.assign' }
81
+ */
82
+ function getSpecToFeatureDict() {
83
+ const { BuiltIns, InstanceProperties, StaticProperties } = definitions;
84
+ // JS primitives: Number, Reflect, Set, Map...
85
+ const builtIns = Object.keys(BuiltIns).reduce((acc, builtInKey) => {
86
+ const { name: builtInName, global } = BuiltIns[builtInKey];
87
+ if (isBuiltInExcluded(builtInKey))
88
+ return acc;
89
+ addGlobal(global);
90
+ const removeBaseMethodNames = (builtInName) => builtInName.replace('.constructor', '').replace('.to-string', '');
91
+ acc[removeBaseMethodNames(builtInName)] = `window.${builtInKey}`;
92
+ acc[removeBaseMethodNames(builtInName).replace('es.', 'esnext.')] = `window.${builtInKey}`;
93
+ return acc;
94
+ }, {});
95
+ // Some primitives are missing, so we add them manually
96
+ Object.keys(missingBuiltIns).forEach((missingBuiltInName) => {
97
+ builtIns[`es.${missingBuiltInName}`] = `${missingBuiltIns[missingBuiltInName]}`;
98
+ builtIns[`esnext.${missingBuiltInName}`] = `${missingBuiltIns[missingBuiltInName]}`;
99
+ });
100
+ function parseSpec(spec) {
101
+ // es.string.push
102
+ const splitName = spec.split('.');
103
+ // es.string
104
+ const builtInName = splitName.slice(0, -1).join('.');
105
+ // String
106
+ const primitiveExpr = builtIns[builtInName];
107
+ // push
108
+ const methodName = splitName.at(-1);
109
+ return {
110
+ builtInName,
111
+ primitiveExpr,
112
+ methodName,
113
+ };
114
+ }
115
+ // Instance methods, for example [1, 2, 3].at(), 'some_string'.toLowerCase()...
116
+ Object.keys(InstanceProperties).forEach((instancePropertyName) => {
117
+ const { name: instanceSpecName, global } = InstanceProperties[instancePropertyName];
118
+ if (isSpecExcluded(instanceSpecName))
119
+ return;
120
+ const { primitiveExpr, methodName } = parseSpec(instanceSpecName);
121
+ addMethod(methodName, instancePropertyName);
122
+ addInstanceGlobal(global);
123
+ // Some instance methods have no parent
124
+ // for example Symbol.constructor is es.Symbol
125
+ if (!primitiveExpr)
126
+ return;
127
+ addInstanceFeature(instanceSpecName, primitiveExpr, instancePropertyName);
128
+ });
129
+ // Static methods for example Object.assign(), RegExp.escape()...
130
+ Object.keys(StaticProperties).forEach((primitiveName) => {
131
+ const staticPrimitiveProperties = StaticProperties[primitiveName];
132
+ Object.keys(staticPrimitiveProperties).forEach((staticPropertyName) => {
133
+ const { name: staticSpecName, global } = staticPrimitiveProperties[staticPropertyName];
134
+ if (isSpecExcluded(staticSpecName))
135
+ return;
136
+ const { methodName } = parseSpec(staticSpecName);
137
+ addGlobal(global);
138
+ addMethod(methodName, staticPropertyName);
139
+ // For some reason, several static properties have names that match a builtin
140
+ // we ignore such properties since their support in browsers appeared at the same time as the builtin itself
141
+ // for example Promise and Promise.all
142
+ if (builtIns[staticSpecName])
143
+ return;
144
+ addStaticFeature(staticSpecName, primitiveName, staticPropertyName);
145
+ });
146
+ });
147
+ function isFeatureExists(specName) {
148
+ return Boolean(builtIns[specName]) || Boolean(specToFeatureDict[specName]);
149
+ }
150
+ // Each spec has a list of globals, which also need to be converted into an expression for support check
151
+ // but not all globals can have their method name determined unambiguously
152
+ [...globals].forEach((globalSpecName) => {
153
+ if (!isFeatureExists(globalSpecName)) {
154
+ if (isSpecExcluded(globalSpecName))
155
+ return;
156
+ const { methodName, primitiveExpr, builtInName } = parseSpec(globalSpecName);
157
+ // es.array-buffer.from
158
+ const globalNameSplit = globalSpecName.split('.');
159
+ // Trying to find a support check expression for a method from the already bypassed spec
160
+ // for example, array and typed-array have the findLastIndex method, but typed-array is listed in global
161
+ const featureMethod = methodName === 'constructor' ? 'constructor' : methods[methodName];
162
+ // We consider a method to be simple if its name does not contain a '-'
163
+ // every, filter, map can be left as it is, the method in the language is called the same way
164
+ const isMethodSimple = !/-/.test(methodName);
165
+ // Primitives don't have a method, so its length is 2
166
+ // for example es.symbol или es.string
167
+ const isPrimitive = globalNameSplit.length === 2;
168
+ if (isPrimitive) {
169
+ builtIns[globalSpecName] = `${BuiltIns[globalSpecName]}`;
170
+ return;
171
+ }
172
+ // Trying to determine the type of method from global static or instance
173
+ const globalInstancePrimitives = [
174
+ 'es.array-buffer',
175
+ 'es.typed-array',
176
+ 'es.symbol',
177
+ 'web.url-search-params',
178
+ 'esnext.weak-map',
179
+ 'esnext.weak-set',
180
+ 'uint8-array',
181
+ ];
182
+ const isInstanceMethod = globalInstancePrimitives.includes(builtInName) || instanceMethods.has(globalSpecName);
183
+ let method;
184
+ if (featureMethod) {
185
+ method = featureMethod;
186
+ }
187
+ else if (isMethodSimple) {
188
+ method = methodName;
189
+ }
190
+ else if (primitiveExpr) {
191
+ // couldn't find a similar method in the original list and it contains '-'
192
+ // speculatively translating it to camelCase web.url.can-parse => URL.canParse
193
+ method = (0, camelCaseName_1.default)(methodName);
194
+ }
195
+ isInstanceMethod
196
+ ? addInstanceFeature(globalSpecName, primitiveExpr, method)
197
+ : addStaticFeature(globalSpecName, primitiveExpr, method);
198
+ }
199
+ });
200
+ return fixBrokenSpec({ ...builtIns, ...specToFeatureDict });
201
+ }
202
+ exports.getSpecToFeatureDict = getSpecToFeatureDict;
203
+ function fixBrokenSpec(specs) {
204
+ specs['es.string.italics'] = "'italics' in window.String.prototype";
205
+ return specs;
206
+ }
207
+ //# sourceMappingURL=specToFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"specToFeature.js","sourceRoot":"","sources":["../../../../../src/library/webpack/utils/polyfills/specToFeature.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,7 @@ import type { CliConfigEntry, ReactCompilerOptions } from '../../../typings/conf
6
6
  export type TranspilerConfig = {
7
7
  env: Env;
8
8
  target: Target;
9
+ actualTarget: Target;
9
10
  modern: boolean;
10
11
  isServer: boolean;
11
12
  generateDataQaTag: boolean;
@@ -19,7 +20,20 @@ export type TranspilerConfig = {
19
20
  hot: boolean;
20
21
  excludesPresetEnv: string[];
21
22
  rootDir: string;
23
+ browsersListTargets: string[];
22
24
  reactCompiler: boolean | ReactCompilerOptions;
25
+ /**
26
+ * Enable or disable `loose` transformations:
27
+ * with swc loader - https://swc.rs/docs/configuration/compilation#jscloose
28
+ * with babel loader - https://babeljs.io/docs/babel-preset-env#loose
29
+ */
30
+ loose?: boolean;
31
+ /**
32
+ * Enable or disable external transpiler runtime helpers:
33
+ * with swc loader, pass value directly to `jsc.externalHelpers` option - https://swc.rs/docs/configuration/compilation#jscexternalhelpers
34
+ * with babel loader, when `false`, disable `@babel/plugin-transform-runtime` - https://babeljs.io/docs/babel-plugin-transform-runtime
35
+ */
36
+ externalHelpers?: boolean;
23
37
  };
24
38
  export declare const addTranspilerLoader: (configManager: ConfigManager<CliConfigEntry>, transpilerConfig: TranspilerConfig) => (rule: Config.Use) => Config.Rule;
25
39
  export declare const getTranspilerConfig: (configManager: ConfigManager<CliConfigEntry>, overrideOptions?: Partial<TranspilerConfig>) => TranspilerConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"transpiler.d.ts","sourceRoot":"","sources":["../../../../src/library/webpack/utils/transpiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAGnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAE7F,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,0BAA0B,EAAE,OAAO,CAAC;IACpC,iCAAiC,EAAE,OAAO,CAAC;IAC3C,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,KAAK,GAAG,UAAU,GAAG,KAAK,CAAC;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;IACb,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,OAAO,GAAG,oBAAoB,CAAC;CAC/C,CAAC;AAEF,eAAO,MAAM,mBAAmB,kBACd,cAAc,cAAc,CAAC,oBAAoB,gBAAgB,YAC1E,OAAO,GAAG,gBAkBhB,CAAC;AAEJ,eAAO,MAAM,mBAAmB,kBACf,cAAc,cAAc,CAAC,oBAC3B,QAAQ,gBAAgB,CAAC,KACzC,gBAkCF,CAAC"}
1
+ {"version":3,"file":"transpiler.d.ts","sourceRoot":"","sources":["../../../../src/library/webpack/utils/transpiler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAIxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAGnE,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAE7F,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,0BAA0B,EAAE,OAAO,CAAC;IACpC,iCAAiC,EAAE,OAAO,CAAC;IAC3C,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,KAAK,GAAG,UAAU,GAAG,KAAK,CAAC;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,OAAO,CAAC;IACb,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,EAAE,MAAM,EAAE,CAAC;IAC9B,aAAa,EAAE,OAAO,GAAG,oBAAoB,CAAC;IAC9C;;;;OAIG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;OAIG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,eAAO,MAAM,mBAAmB,kBACd,cAAc,cAAc,CAAC,oBAAoB,gBAAgB,YAC1E,OAAO,GAAG,gBAkBhB,CAAC;AAEJ,eAAO,MAAM,mBAAmB,kBACf,cAAc,cAAc,CAAC,oBAC3B,QAAQ,gBAAgB,CAAC,KACzC,gBA4DF,CAAC"}
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getTranspilerConfig = exports.addTranspilerLoader = void 0;
4
+ const tslib_1 = require("tslib");
4
5
  const resolve_1 = require("resolve");
6
+ const browserslist_config_1 = tslib_1.__importDefault(require("@tinkoff/browserslist-config"));
7
+ const browserslist_1 = tslib_1.__importDefault(require("browserslist"));
5
8
  const swc_1 = require("../../swc");
6
9
  const babel_1 = require("../../babel");
7
10
  const addTranspilerLoader = (configManager, transpilerConfig) => (rule) => {
@@ -23,14 +26,31 @@ Please run "npx tramvai add --dev @tramvai/swc-integration" to fix the problem
23
26
  };
24
27
  exports.addTranspilerLoader = addTranspilerLoader;
25
28
  const getTranspilerConfig = (configManager, overrideOptions = {}) => {
26
- const { generateDataQaTag, alias, enableFillActionNamePlugin, excludesPresetEnv, experiments: { enableFillDeclareActionNamePlugin, reactCompiler }, } = configManager;
29
+ const { generateDataQaTag, alias, target, rootDir, enableFillActionNamePlugin, excludesPresetEnv, experiments: { enableFillDeclareActionNamePlugin, reactCompiler }, } = configManager;
27
30
  const { env, modern } = configManager;
31
+ const isServer = configManager.buildType === 'server';
28
32
  if (alias) {
29
33
  console.warn(`"alias" option deprecated and ignored as cli now supports baseUrl and paths from the app's tsconfig.json file.
30
34
  Just check or add configuration to your tsconfig file and remove alias from tramvai.json`);
31
35
  }
36
+ let actualTarget = target;
37
+ if (!target) {
38
+ if (isServer) {
39
+ actualTarget = 'node';
40
+ }
41
+ else if (modern) {
42
+ actualTarget = 'modern';
43
+ }
44
+ }
45
+ const browserslistConfigRaw = browserslist_1.default.findConfig(rootDir);
46
+ // Set defaults if the explicit config for browserslist was not found or the config does not contain the necessary targets
47
+ const browserslistQuery = browserslistConfigRaw?.[actualTarget] ?? browserslist_config_1.default[actualTarget] ?? browserslist_config_1.default.defaults;
48
+ const browsersListTargets = (0, browserslist_1.default)(browserslistQuery, {
49
+ mobileToDesktop: true,
50
+ env: actualTarget,
51
+ });
32
52
  return {
33
- isServer: configManager.buildType === 'server',
53
+ isServer,
34
54
  env,
35
55
  generateDataQaTag,
36
56
  modern,
@@ -40,7 +60,9 @@ Just check or add configuration to your tsconfig file and remove alias from tram
40
60
  excludesPresetEnv,
41
61
  enableFillActionNamePlugin,
42
62
  rootDir: configManager.rootDir,
43
- target: configManager.target,
63
+ target,
64
+ actualTarget,
65
+ browsersListTargets,
44
66
  loader: true,
45
67
  modules: false,
46
68
  typescript: false,
@@ -1 +1 @@
1
- {"version":3,"file":"transpiler.js","sourceRoot":"","sources":["../../../../src/library/webpack/utils/transpiler.ts"],"names":[],"mappings":";;;AACA,qCAA0C;AAE1C,mCAA0C;AAC1C,uCAAiD;AAwB1C,MAAM,mBAAmB,GAC9B,CAAC,aAA4C,EAAE,gBAAkC,EAAE,EAAE,CACrF,CAAC,IAAgB,EAAE,EAAE;IACnB,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC;IAE3D,IAAI,MAAM,KAAK,KAAK,EAAE;QACpB,IAAI;YACF,IAAA,cAAO,EAAC,uCAAuC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;SACtF;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CAAC;;OAEjB,CAAC,CAAC;SACF;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAA,mBAAa,EAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KACjF;IAED,IAAI,MAAM,KAAK,OAAO,EAAE;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,IAAA,0BAAkB,EAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KACxF;AACH,CAAC,CAAC;AApBS,QAAA,mBAAmB,uBAoB5B;AAEG,MAAM,mBAAmB,GAAG,CACjC,aAA4C,EAC5C,kBAA6C,EAAE,EAC7B,EAAE;IACpB,MAAM,EACJ,iBAAiB,EACjB,KAAK,EACL,0BAA0B,EAC1B,iBAAiB,EACjB,WAAW,EAAE,EAAE,iCAAiC,EAAE,aAAa,EAAE,GAClE,GAAG,aAAa,CAAC;IAClB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC;IAEtC,IAAI,KAAK,EAAE;QACT,OAAO,CAAC,IAAI,CAAC;yFACwE,CAAC,CAAC;KACxF;IAED,OAAO;QACL,QAAQ,EAAE,aAAa,CAAC,SAAS,KAAK,QAAQ;QAC9C,GAAG;QACH,iBAAiB;QACjB,MAAM;QACN,OAAO,EAAE,IAAI;QACb,kBAAkB,EAAE,IAAI;QACxB,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO;QACvC,iBAAiB;QACjB,0BAA0B;QAC1B,OAAO,EAAE,aAAa,CAAC,OAAO;QAC9B,MAAM,EAAE,aAAa,CAAC,MAAM;QAC5B,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,KAAK;QACjB,iCAAiC;QACjC,aAAa;QACb,GAAG,eAAe;KACnB,CAAC;AACJ,CAAC,CAAC;AArCW,QAAA,mBAAmB,uBAqC9B"}
1
+ {"version":3,"file":"transpiler.js","sourceRoot":"","sources":["../../../../src/library/webpack/utils/transpiler.ts"],"names":[],"mappings":";;;;AACA,qCAA0C;AAC1C,+FAAsD;AACtD,wEAAwC;AAExC,mCAA0C;AAC1C,uCAAiD;AAsC1C,MAAM,mBAAmB,GAC9B,CAAC,aAA4C,EAAE,gBAAkC,EAAE,EAAE,CACrF,CAAC,IAAgB,EAAE,EAAE;IACnB,MAAM,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC,WAAW,CAAC,aAAa,CAAC;IAE3D,IAAI,MAAM,KAAK,KAAK,EAAE;QACpB,IAAI;YACF,IAAA,cAAO,EAAC,uCAAuC,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;SACtF;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CAAC;;OAEjB,CAAC,CAAC;SACF;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAA,mBAAa,EAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KACjF;IAED,IAAI,MAAM,KAAK,OAAO,EAAE;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,IAAA,0BAAkB,EAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;KACxF;AACH,CAAC,CAAC;AApBS,QAAA,mBAAmB,uBAoB5B;AAEG,MAAM,mBAAmB,GAAG,CACjC,aAA4C,EAC5C,kBAA6C,EAAE,EAC7B,EAAE;IACpB,MAAM,EACJ,iBAAiB,EACjB,KAAK,EACL,MAAM,EACN,OAAO,EACP,0BAA0B,EAC1B,iBAAiB,EACjB,WAAW,EAAE,EAAE,iCAAiC,EAAE,aAAa,EAAE,GAClE,GAAG,aAAa,CAAC;IAClB,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,aAAa,CAAC;IACtC,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,KAAK,QAAQ,CAAC;IAEtD,IAAI,KAAK,EAAE;QACT,OAAO,CAAC,IAAI,CAAC;yFACwE,CAAC,CAAC;KACxF;IAED,IAAI,YAAY,GAAG,MAAM,CAAC;IAE1B,IAAI,CAAC,MAAM,EAAE;QACX,IAAI,QAAQ,EAAE;YACZ,YAAY,GAAG,MAAM,CAAC;SACvB;aAAM,IAAI,MAAM,EAAE;YACjB,YAAY,GAAG,QAAQ,CAAC;SACzB;KACF;IAED,MAAM,qBAAqB,GAAG,sBAAY,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IAE/D,0HAA0H;IAC1H,MAAM,iBAAiB,GACrB,qBAAqB,EAAE,CAAC,YAAY,CAAC,IAAI,6BAAU,CAAC,YAAY,CAAC,IAAI,6BAAU,CAAC,QAAQ,CAAC;IAE3F,MAAM,mBAAmB,GAAG,IAAA,sBAAY,EAAC,iBAAiB,EAAE;QAC1D,eAAe,EAAE,IAAI;QACrB,GAAG,EAAE,YAAY;KAClB,CAAC,CAAC;IAEH,OAAO;QACL,QAAQ;QACR,GAAG;QACH,iBAAiB;QACjB,MAAM;QACN,OAAO,EAAE,IAAI;QACb,kBAAkB,EAAE,IAAI;QACxB,GAAG,EAAE,CAAC,CAAC,aAAa,CAAC,UAAU,CAAC,OAAO;QACvC,iBAAiB;QACjB,0BAA0B;QAC1B,OAAO,EAAE,aAAa,CAAC,OAAO;QAC9B,MAAM;QACN,YAAY;QACZ,mBAAmB;QACnB,MAAM,EAAE,IAAI;QACZ,OAAO,EAAE,KAAK;QACd,UAAU,EAAE,KAAK;QACjB,iCAAiC;QACjC,aAAa;QACb,GAAG,eAAe;KACnB,CAAC;AACJ,CAAC,CAAC;AA/DW,QAAA,mBAAmB,uBA+D9B"}
@@ -1016,8 +1016,7 @@
1016
1016
  ]
1017
1017
  },
1018
1018
  "excludesPresetEnv": {
1019
- "title": "List of modules to exclude from `@babel/preset-env`",
1020
- "description": "Option doesn't affect build with swc loader",
1019
+ "title": "List of modules to exclude from `@babel/preset-env` and `swc-loader`",
1021
1020
  "type": "array",
1022
1021
  "items": {
1023
1022
  "type": "string"
@@ -1808,8 +1807,7 @@
1808
1807
  "additionalProperties": false
1809
1808
  },
1810
1809
  "excludesPresetEnv": {
1811
- "title": "List of modules to exclude from `@babel/preset-env`",
1812
- "description": "Option doesn't affect build with swc loader",
1810
+ "title": "List of modules to exclude from `@babel/preset-env` and `swc-loader`",
1813
1811
  "type": "array",
1814
1812
  "items": {
1815
1813
  "type": "string"
@@ -2560,8 +2558,7 @@
2560
2558
  "additionalProperties": false
2561
2559
  },
2562
2560
  "excludesPresetEnv": {
2563
- "title": "List of modules to exclude from `@babel/preset-env`",
2564
- "description": "Option doesn't affect build with swc loader",
2561
+ "title": "List of modules to exclude from `@babel/preset-env` and `swc-loader`",
2565
2562
  "type": "array",
2566
2563
  "items": {
2567
2564
  "type": "string"
@@ -125,8 +125,7 @@ export interface CliConfigEntry extends ConfigEntry {
125
125
  */
126
126
  experiments: Experiments;
127
127
  /**
128
- * @title List of modules to exclude from `@babel/preset-env`
129
- * @description Option doesn't affect build with swc loader
128
+ * @title List of modules to exclude from `@babel/preset-env` and `swc-loader`
130
129
  */
131
130
  excludesPresetEnv?: string[];
132
131
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/typings/configEntry/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../../src/typings/configEntry/cli.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tramvai/cli",
3
- "version": "5.45.2",
3
+ "version": "5.47.0",
4
4
  "description": "Cli инструмент для сборки и запуска приложений",
5
5
  "files": [
6
6
  "src",
@@ -75,7 +75,7 @@
75
75
  "@tinkoff/utils": "^2.1.3",
76
76
  "@tinkoff/webpack-dedupe-plugin": "4.0.3",
77
77
  "@tramvai/build": "6.1.1",
78
- "@tramvai/react": "5.45.2",
78
+ "@tramvai/react": "5.47.0",
79
79
  "@tramvai/tools-check-versions": "0.7.7",
80
80
  "@tramvai/tools-migrate": "0.9.8",
81
81
  "ajv": "^8.12.0",
@@ -83,6 +83,7 @@
83
83
  "autoprefixer": "^10.4.8",
84
84
  "babel-loader": "^8.2.5",
85
85
  "babel-plugin-dynamic-import-node": "^2.3.3",
86
+ "babel-plugin-polyfill-corejs3": "^0.11.1",
86
87
  "babel-plugin-transform-define": "^2.0.1",
87
88
  "babel-plugin-transform-react-remove-prop-types": "^0.4.24",
88
89
  "boxen": "^4.2.0",
@@ -92,7 +93,8 @@
92
93
  "chokidar": "^3.6.0",
93
94
  "commander": "^6.2.1",
94
95
  "compression": "^1.7.4",
95
- "core-js": "^3.0.0",
96
+ "core-js": "3.40.0",
97
+ "core-js-compat": "3.40.0",
96
98
  "css-class-generator": "^2.0.0",
97
99
  "css-loader": "^6.7.1",
98
100
  "css-minimizer-webpack-plugin": "^5.0.1",
package/schema.json CHANGED
@@ -1038,8 +1038,7 @@
1038
1038
  ]
1039
1039
  },
1040
1040
  "excludesPresetEnv": {
1041
- "title": "List of modules to exclude from `@babel/preset-env`",
1042
- "description": "Option doesn't affect build with swc loader",
1041
+ "title": "List of modules to exclude from `@babel/preset-env` and `swc-loader`",
1043
1042
  "type": "array",
1044
1043
  "items": {
1045
1044
  "type": "string"
@@ -1839,8 +1838,7 @@
1839
1838
  "additionalProperties": false
1840
1839
  },
1841
1840
  "excludesPresetEnv": {
1842
- "title": "List of modules to exclude from `@babel/preset-env`",
1843
- "description": "Option doesn't affect build with swc loader",
1841
+ "title": "List of modules to exclude from `@babel/preset-env` and `swc-loader`",
1844
1842
  "type": "array",
1845
1843
  "items": {
1846
1844
  "type": "string"
@@ -2600,8 +2598,7 @@
2600
2598
  "additionalProperties": false
2601
2599
  },
2602
2600
  "excludesPresetEnv": {
2603
- "title": "List of modules to exclude from `@babel/preset-env`",
2604
- "description": "Option doesn't affect build with swc loader",
2601
+ "title": "List of modules to exclude from `@babel/preset-env` and `swc-loader`",
2605
2602
  "type": "array",
2606
2603
  "items": {
2607
2604
  "type": "string"
@@ -1,6 +1,4 @@
1
1
  import path from 'path';
2
- import browserslist from 'browserslist';
3
- import envTargets from '@tinkoff/browserslist-config';
4
2
  import { sync as resolve } from 'resolve';
5
3
  import type { TransformOptions } from '@babel/core';
6
4
 
@@ -33,10 +31,9 @@ function hasJsxRuntime() {
33
31
  // eslint-disable-next-line complexity
34
32
  export const babelConfigFactory = ({
35
33
  env = 'development',
36
- target,
37
- modern,
38
34
  isServer = false,
39
35
  modules = false,
36
+ actualTarget,
40
37
  generateDataQaTag = true,
41
38
  enableFillActionNamePlugin = false,
42
39
  enableFillDeclareActionNamePlugin = false,
@@ -49,30 +46,12 @@ export const babelConfigFactory = ({
49
46
  tramvai = false,
50
47
  hot = false,
51
48
  excludesPresetEnv,
52
- rootDir = process.cwd(),
49
+ browsersListTargets,
53
50
  reactCompiler = false,
51
+ loose = true,
52
+ externalHelpers = true,
54
53
  }: Partial<TranspilerConfig>) => {
55
54
  const cfg = envConfig[env] || {};
56
- let resultTarget = target;
57
-
58
- if (!target) {
59
- if (isServer) {
60
- resultTarget = 'node';
61
- } else if (modern) {
62
- resultTarget = 'modern';
63
- }
64
- }
65
-
66
- const browserslistConfigRaw = browserslist.findConfig(rootDir);
67
-
68
- // выставляем дефолты если явный конфиг для browserslist не был найден или в нём нет нужного targets
69
- const browserslistQuery =
70
- browserslistConfigRaw?.[resultTarget] ?? envTargets[resultTarget] ?? envTargets.defaults;
71
-
72
- const targets = browserslist(browserslistQuery, {
73
- mobileToDesktop: true,
74
- env: resultTarget,
75
- });
76
55
 
77
56
  const babelConfig = {
78
57
  // по умолчанию sourceType: 'module' и тогда бабель рассматривает все файлы как es-модули, что может
@@ -101,10 +80,10 @@ export const babelConfigFactory = ({
101
80
  // this logic is here - https://github.com/zloirock/core-js/blob/master/packages/core-js-compat/src/modules-by-versions.mjs
102
81
  corejs: require('core-js/package.json').version,
103
82
  // TODO: will be deprecated in babel@8 - https://babeljs.io/docs/babel-preset-env#loose
104
- loose: true,
105
- targets,
106
- browserslistEnv: resultTarget,
107
- bugfixes: resultTarget === 'modern',
83
+ loose,
84
+ targets: browsersListTargets,
85
+ browserslistEnv: actualTarget,
86
+ bugfixes: actualTarget === 'modern',
108
87
  exclude: excludesPresetEnv,
109
88
  },
110
89
  ],
@@ -125,7 +104,10 @@ export const babelConfigFactory = ({
125
104
  // React compiler must be the first plugin in the chain
126
105
  getReactCompilerPlugin({ isServer, options: reactCompiler }),
127
106
  // TODO: useESModules is deprecated and should work automatically - https://babeljs.io/docs/en/babel-plugin-transform-runtime#useesmodules
128
- ['@babel/transform-runtime', { useESModules: !(isServer && env === 'development') }],
107
+ externalHelpers && [
108
+ '@babel/transform-runtime',
109
+ { useESModules: !(isServer && env === 'development') },
110
+ ],
129
111
  path.resolve(__dirname, './plugins/lazy-component/legacy-universal-replace'), // TODO: удалить плагин после того как отпадёт необходимость поддерживать легаси
130
112
  path.resolve(__dirname, './plugins/lazy-component/lazy-component'),
131
113
  enableFillDeclareActionNamePlugin &&
@@ -144,13 +126,13 @@ export const babelConfigFactory = ({
144
126
  [
145
127
  '@babel/plugin-proposal-class-properties',
146
128
  {
147
- loose: true,
129
+ loose,
148
130
  },
149
131
  ],
150
132
  isServer && [
151
133
  '@babel/plugin-transform-private-methods',
152
134
  {
153
- loose: true,
135
+ loose,
154
136
  },
155
137
  ],
156
138
  '@babel/plugin-proposal-export-default-from',
@@ -10,8 +10,9 @@ pluginTester({
10
10
  typescript: true,
11
11
  generateDataQaTag: false,
12
12
  loader: false,
13
- modern: true,
14
13
  hot: true,
14
+ actualTarget: 'modern',
15
+ browsersListTargets: ['defaults'],
15
16
  }),
16
17
  tests: {
17
18
  'not lazy': {
@@ -10,7 +10,8 @@ pluginTester({
10
10
  typescript: true,
11
11
  generateDataQaTag: false,
12
12
  loader: false,
13
- modern: true,
13
+ actualTarget: 'modern',
14
+ browsersListTargets: ['defaults'],
14
15
  }),
15
16
  tests: {
16
17
  'not universal': {
@@ -153,18 +153,21 @@ exports[`client-legacy: server.inline.ts 1`] = `
153
153
  /* binding */ return ForBrowser;
154
154
  }
155
155
  /* harmony export */ });
156
- /* harmony import */ var _swc_helpers_class_call_check__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/@swc/helpers/esm/_class_call_check.js"), _swc_helpers_create_class__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../../node_modules/@swc/helpers/esm/_create_class.js"), _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../../node_modules/@swc/helpers/esm/_define_property.js"), ForBrowser = /*#__PURE__*/ function() {
156
+ /* harmony import */ var _swc_helpers_class_call_check__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/@swc/helpers/esm/_class_call_check.js"), _swc_helpers_create_class__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../../node_modules/@swc/helpers/esm/_create_class.js"), _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../../node_modules/@swc/helpers/esm/_define_property.js"), ForBrowser = /*#__PURE__*/ function() {
157
157
  function ForBrowser() {
158
- (0, _swc_helpers_class_call_check__WEBPACK_IMPORTED_MODULE_0__._)(this, ForBrowser);
158
+ (0, _swc_helpers_class_call_check__WEBPACK_IMPORTED_MODULE_0__._)(this, ForBrowser),
159
+ (0, _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_1__._)(this, "property", (function() {
160
+ console.log("Ok");
161
+ }));
159
162
  }
160
- return (0, _swc_helpers_create_class__WEBPACK_IMPORTED_MODULE_1__._)(ForBrowser, [ {
163
+ return (0, _swc_helpers_create_class__WEBPACK_IMPORTED_MODULE_2__._)(ForBrowser, [ {
161
164
  key: "test",
162
165
  value: function() {
163
166
  console.log("Ok");
164
167
  }
165
168
  } ]), ForBrowser;
166
169
  }();
167
- /* harmony import */ (0, _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(ForBrowser, "prop", "static");
170
+ /* harmony import */ (0, _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_1__._)(ForBrowser, "prop", "static");
168
171
  },
169
172
  "
170
173
  `;
@@ -324,6 +327,11 @@ exports[`client-modern: server.inline.ts 1`] = `
324
327
  test() {
325
328
  console.log("Ok");
326
329
  }
330
+ constructor() {
331
+ (0, _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "property", (() => {
332
+ console.log("Ok");
333
+ }));
334
+ }
327
335
  }
328
336
  (0, _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(ForBrowser, "prop", "static");
329
337
  },
@@ -484,18 +492,17 @@ exports[`server: server.inline.ts 1`] = `
484
492
  /* binding */ return ForBrowser;
485
493
  }
486
494
  /* harmony export */ });
487
- /* harmony import */ var _swc_helpers_class_call_check__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/@swc/helpers/esm/_class_call_check.js"), _swc_helpers_create_class__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../../node_modules/@swc/helpers/esm/_create_class.js"), _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../../node_modules/@swc/helpers/esm/_define_property.js"), ForBrowser = /*#__PURE__*/ function() {
495
+ var ForBrowser = /*#__PURE__*/ function() {
488
496
  function ForBrowser() {
489
- (0, _swc_helpers_class_call_check__WEBPACK_IMPORTED_MODULE_0__._)(this, ForBrowser);
490
- }
491
- return (0, _swc_helpers_create_class__WEBPACK_IMPORTED_MODULE_1__._)(ForBrowser, [ {
492
- key: "test",
493
- value: function test() {
497
+ this.property = function() {
494
498
  console.log("Ok");
495
- }
496
- } ]), ForBrowser;
499
+ };
500
+ }
501
+ return ForBrowser.prototype.test = function test() {
502
+ console.log("Ok");
503
+ }, ForBrowser;
497
504
  }();
498
- /* harmony import */ (0, _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__._)(ForBrowser, "prop", "static");
505
+ ForBrowser.prop = "static";
499
506
  },
500
507
  "
501
508
  `;