@tramvai/cli 5.45.2 → 5.46.1
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.
- package/lib/library/babel/index.d.ts +1 -1
- package/lib/library/babel/index.d.ts.map +1 -1
- package/lib/library/babel/index.js +8 -5
- package/lib/library/babel/index.js.map +1 -1
- package/lib/library/swc/index.d.ts.map +1 -1
- package/lib/library/swc/index.js +7 -6
- package/lib/library/swc/index.js.map +1 -1
- package/lib/library/webpack/blocks/serverInline.d.ts.map +1 -1
- package/lib/library/webpack/blocks/serverInline.js +7 -1
- package/lib/library/webpack/blocks/serverInline.js.map +1 -1
- package/lib/library/webpack/utils/transpiler.d.ts +12 -0
- package/lib/library/webpack/utils/transpiler.d.ts.map +1 -1
- package/lib/library/webpack/utils/transpiler.js.map +1 -1
- package/package.json +2 -2
- package/src/library/babel/index.ts +9 -4
- package/src/library/swc/__integration__/__snapshots__/swc.build.test.ts.snap +20 -13
- package/src/library/swc/__integration__/__snapshots__/swc.start.test.ts.snap +13 -16
- package/src/library/swc/__integration__/server.inline.ts +4 -0
- package/src/library/swc/index.ts +7 -5
- package/src/library/webpack/blocks/serverInline.ts +7 -1
- package/src/library/webpack/utils/transpiler.ts +12 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TranspilerConfig } from '../webpack/utils/transpiler';
|
|
2
|
-
export declare const babelConfigFactory: ({ env, target, modern, isServer, modules, generateDataQaTag, enableFillActionNamePlugin, enableFillDeclareActionNamePlugin, markCreateTokenAsPure, typescript, loader, removeTypeofWindow, tramvai, hot, excludesPresetEnv, rootDir, reactCompiler, }: Partial<TranspilerConfig>) => {
|
|
2
|
+
export declare const babelConfigFactory: ({ env, target, modern, isServer, modules, generateDataQaTag, enableFillActionNamePlugin, enableFillDeclareActionNamePlugin, markCreateTokenAsPure, typescript, loader, removeTypeofWindow, tramvai, hot, excludesPresetEnv, rootDir, reactCompiler, loose, externalHelpers, }: Partial<TranspilerConfig>) => {
|
|
3
3
|
cwd: string;
|
|
4
4
|
compact: boolean;
|
|
5
5
|
sourceType: "unambiguous";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/library/babel/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AA0BpE,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/library/babel/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AA0BpE,eAAO,MAAM,kBAAkB,kRAsB5B,QAAQ,gBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoI3B,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -33,7 +33,7 @@ function hasJsxRuntime() {
|
|
|
33
33
|
const babelConfigFactory = ({ env = 'development', target, modern, isServer = false, modules = false, generateDataQaTag = true, enableFillActionNamePlugin = false, enableFillDeclareActionNamePlugin = false,
|
|
34
34
|
// for testing only!
|
|
35
35
|
// @ts-expect-error
|
|
36
|
-
markCreateTokenAsPure = true, typescript = false, loader = true, removeTypeofWindow, tramvai = false, hot = false, excludesPresetEnv, rootDir = process.cwd(), reactCompiler = false, }) => {
|
|
36
|
+
markCreateTokenAsPure = true, typescript = false, loader = true, removeTypeofWindow, tramvai = false, hot = false, excludesPresetEnv, rootDir = process.cwd(), reactCompiler = false, loose = true, externalHelpers = true, }) => {
|
|
37
37
|
const cfg = envConfig[env] || {};
|
|
38
38
|
let resultTarget = target;
|
|
39
39
|
if (!target) {
|
|
@@ -76,7 +76,7 @@ markCreateTokenAsPure = true, typescript = false, loader = true, removeTypeofWin
|
|
|
76
76
|
// this logic is here - https://github.com/zloirock/core-js/blob/master/packages/core-js-compat/src/modules-by-versions.mjs
|
|
77
77
|
corejs: require('core-js/package.json').version,
|
|
78
78
|
// TODO: will be deprecated in babel@8 - https://babeljs.io/docs/babel-preset-env#loose
|
|
79
|
-
loose
|
|
79
|
+
loose,
|
|
80
80
|
targets,
|
|
81
81
|
browserslistEnv: resultTarget,
|
|
82
82
|
bugfixes: resultTarget === 'modern',
|
|
@@ -99,7 +99,10 @@ markCreateTokenAsPure = true, typescript = false, loader = true, removeTypeofWin
|
|
|
99
99
|
// React compiler must be the first plugin in the chain
|
|
100
100
|
(0, react_compiler_1.getReactCompilerPlugin)({ isServer, options: reactCompiler }),
|
|
101
101
|
// TODO: useESModules is deprecated and should work automatically - https://babeljs.io/docs/en/babel-plugin-transform-runtime#useesmodules
|
|
102
|
-
|
|
102
|
+
externalHelpers && [
|
|
103
|
+
'@babel/transform-runtime',
|
|
104
|
+
{ useESModules: !(isServer && env === 'development') },
|
|
105
|
+
],
|
|
103
106
|
path_1.default.resolve(__dirname, './plugins/lazy-component/legacy-universal-replace'),
|
|
104
107
|
path_1.default.resolve(__dirname, './plugins/lazy-component/lazy-component'),
|
|
105
108
|
enableFillDeclareActionNamePlugin &&
|
|
@@ -118,13 +121,13 @@ markCreateTokenAsPure = true, typescript = false, loader = true, removeTypeofWin
|
|
|
118
121
|
[
|
|
119
122
|
'@babel/plugin-proposal-class-properties',
|
|
120
123
|
{
|
|
121
|
-
loose
|
|
124
|
+
loose,
|
|
122
125
|
},
|
|
123
126
|
],
|
|
124
127
|
isServer && [
|
|
125
128
|
'@babel/plugin-transform-private-methods',
|
|
126
129
|
{
|
|
127
|
-
loose
|
|
130
|
+
loose,
|
|
128
131
|
},
|
|
129
132
|
],
|
|
130
133
|
'@babel/plugin-proposal-export-default-from',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/library/babel/index.ts"],"names":[],"mappings":";;;;AAAA,wDAAwB;AACxB,wEAAwC;AACxC,+FAAsD;AACtD,qCAA0C;AAG1C,6DAAkE;AAGlE,MAAM,SAAS,GAAG;IAChB,UAAU,EAAE;QACV,OAAO,EAAE;YACP,iDAAiD;YACjD;gBACE,mCAAmC;gBACnC;oBACE,YAAY,EAAE,IAAI;iBACnB;aACF;SACF;KACF;CACF,CAAC;AAEF,SAAS,aAAa;IACpB,IAAI;QACF,IAAA,cAAO,EAAC,mBAAmB,EAAE,EAAE,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzD,OAAO,IAAI,CAAC;KACb;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAED,sCAAsC;AAC/B,MAAM,kBAAkB,GAAG,CAAC,EACjC,GAAG,GAAG,aAAa,EACnB,MAAM,EACN,MAAM,EACN,QAAQ,GAAG,KAAK,EAChB,OAAO,GAAG,KAAK,EACf,iBAAiB,GAAG,IAAI,EACxB,0BAA0B,GAAG,KAAK,EAClC,iCAAiC,GAAG,KAAK;AACzC,oBAAoB;AACpB,mBAAmB;AACnB,qBAAqB,GAAG,IAAI,EAC5B,UAAU,GAAG,KAAK,EAClB,MAAM,GAAG,IAAI,EACb,kBAAkB,EAClB,OAAO,GAAG,KAAK,EACf,GAAG,GAAG,KAAK,EACX,iBAAiB,EACjB,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,EACvB,aAAa,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/library/babel/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/library/swc/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAOpE,eAAO,MAAM,aAAa,WAAY,gBAAgB,KAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/library/swc/index.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAOpE,eAAO,MAAM,aAAa,WAAY,gBAAgB,KAAG,UA+IxD,CAAC"}
|
package/lib/library/swc/index.js
CHANGED
|
@@ -13,7 +13,11 @@ const TRAMVAI_SWC_TARGET_PATH = '@tramvai/swc-integration/target/wasm32-wasi';
|
|
|
13
13
|
const NOT_SUPPORTED_FIELDS = ['alias', 'enableFillActionNamePlugin'];
|
|
14
14
|
let warningWasShown = false;
|
|
15
15
|
const getSwcOptions = (config) => {
|
|
16
|
-
const { env = 'development', target, modern, isServer = false, modules = false, typescript = false, hot = false, removeTypeofWindow, tramvai = false, rootDir = process.cwd(), generateDataQaTag = false,
|
|
16
|
+
const { env = 'development', target, modern, isServer = false, modules = false, typescript = false, hot = false, removeTypeofWindow, tramvai = false, rootDir = process.cwd(), generateDataQaTag = false,
|
|
17
|
+
// disabled because `arrayLikeIsIterable` and `iterableIsArray` assumtions is not supported yet in swc,
|
|
18
|
+
// this can leads to incorrect code generation e.g. when Set with spread is used - `[...new Set()] => [].concat(new Set())`
|
|
19
|
+
// TCORE-4904
|
|
20
|
+
loose = false, externalHelpers = true, } = config;
|
|
17
21
|
if (!warningWasShown) {
|
|
18
22
|
for (const field of NOT_SUPPORTED_FIELDS) {
|
|
19
23
|
if (config[field] && !(0, empty_1.default)(config[field])) {
|
|
@@ -75,10 +79,7 @@ Having swc config may conflict with @tramvai/cli configuration`);
|
|
|
75
79
|
// Use relevant core-js version, because it affects which polyfills are included
|
|
76
80
|
// https://github.com/swc-project/swc/blob/main/crates/swc_ecma_preset_env/data/core-js-compat/modules-by-versions.json
|
|
77
81
|
coreJs: require('core-js/package.json').version,
|
|
78
|
-
|
|
79
|
-
// this can leads to incorrect code generation e.g. when Set with spread is used - `[...new Set()] => [].concat(new Set())`
|
|
80
|
-
// TCORE-4904
|
|
81
|
-
loose: false,
|
|
82
|
+
loose,
|
|
82
83
|
mode: 'entry',
|
|
83
84
|
},
|
|
84
85
|
module: {
|
|
@@ -86,7 +87,7 @@ Having swc config may conflict with @tramvai/cli configuration`);
|
|
|
86
87
|
},
|
|
87
88
|
isModule: 'unknown',
|
|
88
89
|
jsc: {
|
|
89
|
-
externalHelpers
|
|
90
|
+
externalHelpers,
|
|
90
91
|
parser: {
|
|
91
92
|
syntax: typescript ? 'typescript' : 'ecmascript',
|
|
92
93
|
decorators: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/library/swc/index.ts"],"names":[],"mappings":";;;;AAAA,4EAA8C;AAC9C,wDAAwB;AACxB,2BAAgC;AAChC,wEAAwC;AACxC,+FAAsD;AACtD,qCAA0C;AAC1C,4EAA0C;AAI1C,MAAM,uBAAuB,GAAG,6CAA6C,CAAC;AAE9E,MAAM,oBAAoB,GAAG,CAAC,OAAO,EAAE,4BAA4B,CAAC,CAAC;AACrE,IAAI,eAAe,GAAG,KAAK,CAAC;AAErB,MAAM,aAAa,GAAG,CAAC,MAAwB,EAAc,EAAE;IACpE,MAAM,EACJ,GAAG,GAAG,aAAa,EACnB,MAAM,EACN,MAAM,EACN,QAAQ,GAAG,KAAK,EAChB,OAAO,GAAG,KAAK,EACf,UAAU,GAAG,KAAK,EAClB,GAAG,GAAG,KAAK,EACX,kBAAkB,EAClB,OAAO,GAAG,KAAK,EACf,OAAO,GAAG,OAAO,CAAC,GAAG,EAAE,EACvB,iBAAiB,GAAG,KAAK,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/library/swc/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverInline.d.ts","sourceRoot":"","sources":["../../../../src/library/webpack/blocks/serverInline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAGvE,eAAO,MAAM,YAAY,kBAAmB,cAAc,cAAc,CAAC,cAAc,MAAM,
|
|
1
|
+
{"version":3,"file":"serverInline.d.ts","sourceRoot":"","sources":["../../../../src/library/webpack/blocks/serverInline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AACxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAGvE,eAAO,MAAM,YAAY,kBAAmB,cAAc,cAAc,CAAC,cAAc,MAAM,SA2B5F,CAAC"}
|
|
@@ -12,7 +12,13 @@ const serverInline = (configManager) => (config) => {
|
|
|
12
12
|
.before('project')
|
|
13
13
|
.test(new RegExp(`\\.inline(\\.es)?\\.${type}$`))
|
|
14
14
|
.use('transpiler')
|
|
15
|
-
.batch((0, transpiler_1.addTranspilerLoader)(clientConfigManager, (0, transpiler_1.getTranspilerConfig)(clientConfigManager, {
|
|
15
|
+
.batch((0, transpiler_1.addTranspilerLoader)(clientConfigManager, (0, transpiler_1.getTranspilerConfig)(clientConfigManager, {
|
|
16
|
+
typescript: type === 'ts',
|
|
17
|
+
// inline transpiler runtime helpers to prevent webpack imports in generated inline scripts
|
|
18
|
+
externalHelpers: false,
|
|
19
|
+
// minimize swc helpers usage to prevent inline scripts bloat, risks is minimal for rarely used inline scripts
|
|
20
|
+
loose: true,
|
|
21
|
+
})));
|
|
16
22
|
};
|
|
17
23
|
addInlineHandler('js');
|
|
18
24
|
addInlineHandler('ts');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"serverInline.js","sourceRoot":"","sources":["../../../../src/library/webpack/blocks/serverInline.ts"],"names":[],"mappings":";;;AAGA,oDAA+E;AAExE,MAAM,YAAY,GAAG,CAAC,aAA4C,EAAE,EAAE,CAAC,CAAC,MAAc,EAAE,EAAE;IAC/F,qDAAqD;IACrD,MAAM,mBAAmB,GAAG,aAAa,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAE/F,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,EAAE;QACxC,MAAM,CAAC,MAAM;aACV,IAAI,CAAC,IAAI,CAAC;aACV,KAAK,CAAC,QAAQ,CAAC;aACf,MAAM,CAAC,SAAS,CAAC;aACjB,IAAI,CAAC,IAAI,MAAM,CAAC,uBAAuB,IAAI,GAAG,CAAC,CAAC;aAChD,GAAG,CAAC,YAAY,CAAC;aACjB,KAAK,CACJ,IAAA,gCAAmB,EACjB,mBAAmB,EACnB,IAAA,gCAAmB,EAAC,mBAAmB,EAAE,
|
|
1
|
+
{"version":3,"file":"serverInline.js","sourceRoot":"","sources":["../../../../src/library/webpack/blocks/serverInline.ts"],"names":[],"mappings":";;;AAGA,oDAA+E;AAExE,MAAM,YAAY,GAAG,CAAC,aAA4C,EAAE,EAAE,CAAC,CAAC,MAAc,EAAE,EAAE;IAC/F,qDAAqD;IACrD,MAAM,mBAAmB,GAAG,aAAa,CAAC,YAAY,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAE/F,MAAM,gBAAgB,GAAG,CAAC,IAAY,EAAE,EAAE;QACxC,MAAM,CAAC,MAAM;aACV,IAAI,CAAC,IAAI,CAAC;aACV,KAAK,CAAC,QAAQ,CAAC;aACf,MAAM,CAAC,SAAS,CAAC;aACjB,IAAI,CAAC,IAAI,MAAM,CAAC,uBAAuB,IAAI,GAAG,CAAC,CAAC;aAChD,GAAG,CAAC,YAAY,CAAC;aACjB,KAAK,CACJ,IAAA,gCAAmB,EACjB,mBAAmB,EACnB,IAAA,gCAAmB,EAAC,mBAAmB,EAAE;YACvC,UAAU,EAAE,IAAI,KAAK,IAAI;YACzB,2FAA2F;YAC3F,eAAe,EAAE,KAAK;YACtB,8GAA8G;YAC9G,KAAK,EAAE,IAAI;SACZ,CAAC,CACH,CACF,CAAC;IACN,CAAC,CAAC;IAEF,gBAAgB,CAAC,IAAI,CAAC,CAAC;IACvB,gBAAgB,CAAC,IAAI,CAAC,CAAC;AACzB,CAAC,CAAC;AA3BW,QAAA,YAAY,gBA2BvB"}
|
|
@@ -20,6 +20,18 @@ export type TranspilerConfig = {
|
|
|
20
20
|
excludesPresetEnv: string[];
|
|
21
21
|
rootDir: string;
|
|
22
22
|
reactCompiler: boolean | ReactCompilerOptions;
|
|
23
|
+
/**
|
|
24
|
+
* Enable or disable `loose` transformations:
|
|
25
|
+
* with swc loader - https://swc.rs/docs/configuration/compilation#jscloose
|
|
26
|
+
* with babel loader - https://babeljs.io/docs/babel-preset-env#loose
|
|
27
|
+
*/
|
|
28
|
+
loose?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Enable or disable external transpiler runtime helpers:
|
|
31
|
+
* with swc loader, pass value directly to `jsc.externalHelpers` option - https://swc.rs/docs/configuration/compilation#jscexternalhelpers
|
|
32
|
+
* with babel loader, when `false`, disable `@babel/plugin-transform-runtime` - https://babeljs.io/docs/babel-plugin-transform-runtime
|
|
33
|
+
*/
|
|
34
|
+
externalHelpers?: boolean;
|
|
23
35
|
};
|
|
24
36
|
export declare const addTranspilerLoader: (configManager: ConfigManager<CliConfigEntry>, transpilerConfig: TranspilerConfig) => (rule: Config.Use) => Config.Rule;
|
|
25
37
|
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;
|
|
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;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,gBAkCF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transpiler.js","sourceRoot":"","sources":["../../../../src/library/webpack/utils/transpiler.ts"],"names":[],"mappings":";;;AACA,qCAA0C;AAE1C,mCAA0C;AAC1C,uCAAiD;
|
|
1
|
+
{"version":3,"file":"transpiler.js","sourceRoot":"","sources":["../../../../src/library/webpack/utils/transpiler.ts"],"names":[],"mappings":";;;AACA,qCAA0C;AAE1C,mCAA0C;AAC1C,uCAAiD;AAoC1C,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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tramvai/cli",
|
|
3
|
-
"version": "5.
|
|
3
|
+
"version": "5.46.1",
|
|
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.
|
|
78
|
+
"@tramvai/react": "5.46.1",
|
|
79
79
|
"@tramvai/tools-check-versions": "0.7.7",
|
|
80
80
|
"@tramvai/tools-migrate": "0.9.8",
|
|
81
81
|
"ajv": "^8.12.0",
|
|
@@ -51,6 +51,8 @@ export const babelConfigFactory = ({
|
|
|
51
51
|
excludesPresetEnv,
|
|
52
52
|
rootDir = process.cwd(),
|
|
53
53
|
reactCompiler = false,
|
|
54
|
+
loose = true,
|
|
55
|
+
externalHelpers = true,
|
|
54
56
|
}: Partial<TranspilerConfig>) => {
|
|
55
57
|
const cfg = envConfig[env] || {};
|
|
56
58
|
let resultTarget = target;
|
|
@@ -101,7 +103,7 @@ export const babelConfigFactory = ({
|
|
|
101
103
|
// this logic is here - https://github.com/zloirock/core-js/blob/master/packages/core-js-compat/src/modules-by-versions.mjs
|
|
102
104
|
corejs: require('core-js/package.json').version,
|
|
103
105
|
// TODO: will be deprecated in babel@8 - https://babeljs.io/docs/babel-preset-env#loose
|
|
104
|
-
loose
|
|
106
|
+
loose,
|
|
105
107
|
targets,
|
|
106
108
|
browserslistEnv: resultTarget,
|
|
107
109
|
bugfixes: resultTarget === 'modern',
|
|
@@ -125,7 +127,10 @@ export const babelConfigFactory = ({
|
|
|
125
127
|
// React compiler must be the first plugin in the chain
|
|
126
128
|
getReactCompilerPlugin({ isServer, options: reactCompiler }),
|
|
127
129
|
// TODO: useESModules is deprecated and should work automatically - https://babeljs.io/docs/en/babel-plugin-transform-runtime#useesmodules
|
|
128
|
-
|
|
130
|
+
externalHelpers && [
|
|
131
|
+
'@babel/transform-runtime',
|
|
132
|
+
{ useESModules: !(isServer && env === 'development') },
|
|
133
|
+
],
|
|
129
134
|
path.resolve(__dirname, './plugins/lazy-component/legacy-universal-replace'), // TODO: удалить плагин после того как отпадёт необходимость поддерживать легаси
|
|
130
135
|
path.resolve(__dirname, './plugins/lazy-component/lazy-component'),
|
|
131
136
|
enableFillDeclareActionNamePlugin &&
|
|
@@ -144,13 +149,13 @@ export const babelConfigFactory = ({
|
|
|
144
149
|
[
|
|
145
150
|
'@babel/plugin-proposal-class-properties',
|
|
146
151
|
{
|
|
147
|
-
loose
|
|
152
|
+
loose,
|
|
148
153
|
},
|
|
149
154
|
],
|
|
150
155
|
isServer && [
|
|
151
156
|
'@babel/plugin-transform-private-methods',
|
|
152
157
|
{
|
|
153
|
-
loose
|
|
158
|
+
loose,
|
|
154
159
|
},
|
|
155
160
|
],
|
|
156
161
|
'@babel/plugin-proposal-export-default-from',
|
|
@@ -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"),
|
|
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,
|
|
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,
|
|
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
|
-
|
|
495
|
+
var ForBrowser = /*#__PURE__*/ function() {
|
|
488
496
|
function ForBrowser() {
|
|
489
|
-
(
|
|
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
|
-
}
|
|
499
|
+
};
|
|
500
|
+
}
|
|
501
|
+
return ForBrowser.prototype.test = function test() {
|
|
502
|
+
console.log("Ok");
|
|
503
|
+
}, ForBrowser;
|
|
497
504
|
}();
|
|
498
|
-
|
|
505
|
+
ForBrowser.prop = "static";
|
|
499
506
|
},
|
|
500
507
|
"
|
|
501
508
|
`;
|
|
@@ -414,6 +414,11 @@ class ForBrowser {
|
|
|
414
414
|
test() {
|
|
415
415
|
console.log("Ok");
|
|
416
416
|
}
|
|
417
|
+
constructor(){
|
|
418
|
+
(0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(this, "property", ()=>{
|
|
419
|
+
console.log("Ok");
|
|
420
|
+
});
|
|
421
|
+
}
|
|
417
422
|
}
|
|
418
423
|
(0,_swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_0__._)(ForBrowser, "prop", "static");
|
|
419
424
|
|
|
@@ -730,28 +735,20 @@ exports[`server: server.inline.ts 1`] = `
|
|
|
730
735
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
731
736
|
/* harmony export */ ForBrowser: function() { return /* binding */ ForBrowser; }
|
|
732
737
|
/* harmony export */ });
|
|
733
|
-
/* harmony import */ var _swc_helpers_class_call_check__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("../../node_modules/@swc/helpers/esm/_class_call_check.js");
|
|
734
|
-
/* harmony import */ var _swc_helpers_create_class__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("../../node_modules/@swc/helpers/esm/_create_class.js");
|
|
735
|
-
/* harmony import */ var _swc_helpers_define_property__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("../../node_modules/@swc/helpers/esm/_define_property.js");
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
738
|
var ForBrowser = /*#__PURE__*/ function() {
|
|
740
739
|
"use strict";
|
|
741
740
|
function ForBrowser() {
|
|
742
|
-
(
|
|
741
|
+
this.property = function() {
|
|
742
|
+
console.log("Ok");
|
|
743
|
+
};
|
|
743
744
|
}
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
console.log("Ok");
|
|
749
|
-
}
|
|
750
|
-
}
|
|
751
|
-
]);
|
|
745
|
+
var _proto = ForBrowser.prototype;
|
|
746
|
+
_proto.test = function test() {
|
|
747
|
+
console.log("Ok");
|
|
748
|
+
};
|
|
752
749
|
return ForBrowser;
|
|
753
750
|
}();
|
|
754
|
-
|
|
751
|
+
ForBrowser.prop = "static";
|
|
755
752
|
|
|
756
753
|
|
|
757
754
|
"
|
package/src/library/swc/index.ts
CHANGED
|
@@ -26,6 +26,11 @@ export const getSwcOptions = (config: TranspilerConfig): SwcOptions => {
|
|
|
26
26
|
tramvai = false,
|
|
27
27
|
rootDir = process.cwd(),
|
|
28
28
|
generateDataQaTag = false,
|
|
29
|
+
// disabled because `arrayLikeIsIterable` and `iterableIsArray` assumtions is not supported yet in swc,
|
|
30
|
+
// this can leads to incorrect code generation e.g. when Set with spread is used - `[...new Set()] => [].concat(new Set())`
|
|
31
|
+
// TCORE-4904
|
|
32
|
+
loose = false,
|
|
33
|
+
externalHelpers = true,
|
|
29
34
|
} = config;
|
|
30
35
|
|
|
31
36
|
if (!warningWasShown) {
|
|
@@ -104,10 +109,7 @@ Having swc config may conflict with @tramvai/cli configuration`
|
|
|
104
109
|
// Use relevant core-js version, because it affects which polyfills are included
|
|
105
110
|
// https://github.com/swc-project/swc/blob/main/crates/swc_ecma_preset_env/data/core-js-compat/modules-by-versions.json
|
|
106
111
|
coreJs: require('core-js/package.json').version,
|
|
107
|
-
|
|
108
|
-
// this can leads to incorrect code generation e.g. when Set with spread is used - `[...new Set()] => [].concat(new Set())`
|
|
109
|
-
// TCORE-4904
|
|
110
|
-
loose: false,
|
|
112
|
+
loose,
|
|
111
113
|
mode: 'entry',
|
|
112
114
|
},
|
|
113
115
|
module: {
|
|
@@ -115,7 +117,7 @@ Having swc config may conflict with @tramvai/cli configuration`
|
|
|
115
117
|
},
|
|
116
118
|
isModule: 'unknown',
|
|
117
119
|
jsc: {
|
|
118
|
-
externalHelpers
|
|
120
|
+
externalHelpers,
|
|
119
121
|
parser: {
|
|
120
122
|
syntax: typescript ? 'typescript' : 'ecmascript',
|
|
121
123
|
decorators: true,
|
|
@@ -17,7 +17,13 @@ export const serverInline = (configManager: ConfigManager<CliConfigEntry>) => (c
|
|
|
17
17
|
.batch(
|
|
18
18
|
addTranspilerLoader(
|
|
19
19
|
clientConfigManager,
|
|
20
|
-
getTranspilerConfig(clientConfigManager, {
|
|
20
|
+
getTranspilerConfig(clientConfigManager, {
|
|
21
|
+
typescript: type === 'ts',
|
|
22
|
+
// inline transpiler runtime helpers to prevent webpack imports in generated inline scripts
|
|
23
|
+
externalHelpers: false,
|
|
24
|
+
// minimize swc helpers usage to prevent inline scripts bloat, risks is minimal for rarely used inline scripts
|
|
25
|
+
loose: true,
|
|
26
|
+
})
|
|
21
27
|
)
|
|
22
28
|
);
|
|
23
29
|
};
|
|
@@ -24,6 +24,18 @@ export type TranspilerConfig = {
|
|
|
24
24
|
excludesPresetEnv: string[];
|
|
25
25
|
rootDir: string;
|
|
26
26
|
reactCompiler: boolean | ReactCompilerOptions;
|
|
27
|
+
/**
|
|
28
|
+
* Enable or disable `loose` transformations:
|
|
29
|
+
* with swc loader - https://swc.rs/docs/configuration/compilation#jscloose
|
|
30
|
+
* with babel loader - https://babeljs.io/docs/babel-preset-env#loose
|
|
31
|
+
*/
|
|
32
|
+
loose?: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Enable or disable external transpiler runtime helpers:
|
|
35
|
+
* with swc loader, pass value directly to `jsc.externalHelpers` option - https://swc.rs/docs/configuration/compilation#jscexternalhelpers
|
|
36
|
+
* with babel loader, when `false`, disable `@babel/plugin-transform-runtime` - https://babeljs.io/docs/babel-plugin-transform-runtime
|
|
37
|
+
*/
|
|
38
|
+
externalHelpers?: boolean;
|
|
27
39
|
};
|
|
28
40
|
|
|
29
41
|
export const addTranspilerLoader =
|