@tramvai/cli 5.46.1 → 5.47.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 +5 -23
- 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 +6 -20
- package/lib/library/swc/index.js.map +1 -1
- package/lib/library/webpack/application/client/common.d.ts.map +1 -1
- package/lib/library/webpack/application/client/common.js +6 -1
- package/lib/library/webpack/application/client/common.js.map +1 -1
- package/lib/library/webpack/plugins/PolyfillCondition.d.ts +8 -0
- package/lib/library/webpack/plugins/PolyfillCondition.d.ts.map +1 -0
- package/lib/library/webpack/plugins/PolyfillCondition.js +46 -0
- package/lib/library/webpack/plugins/PolyfillCondition.js.map +1 -0
- package/lib/library/webpack/utils/polyfills/const.d.ts +3 -0
- package/lib/library/webpack/utils/polyfills/const.d.ts.map +1 -0
- package/lib/library/webpack/utils/polyfills/const.js +49 -0
- package/lib/library/webpack/utils/polyfills/const.js.map +1 -0
- package/lib/library/webpack/utils/polyfills/polyfillCondition.d.ts +8 -0
- package/lib/library/webpack/utils/polyfills/polyfillCondition.d.ts.map +1 -0
- package/lib/library/webpack/utils/polyfills/polyfillCondition.js +51 -0
- package/lib/library/webpack/utils/polyfills/polyfillCondition.js.map +1 -0
- package/lib/library/webpack/utils/polyfills/specToFeature.d.ts +7 -0
- package/lib/library/webpack/utils/polyfills/specToFeature.d.ts.map +1 -0
- package/lib/library/webpack/utils/polyfills/specToFeature.js +207 -0
- package/lib/library/webpack/utils/polyfills/specToFeature.js.map +1 -0
- package/lib/library/webpack/utils/transpiler.d.ts +2 -0
- package/lib/library/webpack/utils/transpiler.d.ts.map +1 -1
- package/lib/library/webpack/utils/transpiler.js +25 -3
- package/lib/library/webpack/utils/transpiler.js.map +1 -1
- package/lib/schema/autogeneratedSchema.json +3 -6
- package/lib/typings/configEntry/cli.d.ts +1 -2
- package/lib/typings/configEntry/cli.d.ts.map +1 -1
- package/package.json +5 -3
- package/schema.json +3 -6
- package/src/library/babel/index.ts +5 -28
- package/src/library/babel/plugins/lazy-component/lazy-component.spec.ts +2 -1
- package/src/library/babel/plugins/lazy-component/legacy-universal-replace.spec.ts +2 -1
- package/src/library/swc/index.ts +7 -26
- package/src/library/webpack/application/client/common.ts +7 -1
- package/src/library/webpack/plugins/PolyfillCondition.ts +62 -0
- package/src/library/webpack/utils/polyfills/__integration__/__snapshots__/condition.test.ts.snap +1348 -0
- package/src/library/webpack/utils/polyfills/__integration__/condition.test.ts +128 -0
- package/src/library/webpack/utils/polyfills/const.ts +46 -0
- package/src/library/webpack/utils/polyfills/polyfillCondition.ts +63 -0
- package/src/library/webpack/utils/polyfills/specToFeature.ts +243 -0
- package/src/library/webpack/utils/transpiler.ts +32 -2
- package/src/schema/autogeneratedSchema.json +3 -6
- package/src/typings/configEntry/cli.ts +1 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TranspilerConfig } from '../webpack/utils/transpiler';
|
|
2
|
-
export declare const babelConfigFactory: ({ env,
|
|
2
|
+
export declare const babelConfigFactory: ({ env, isServer, modules, actualTarget, generateDataQaTag, enableFillActionNamePlugin, enableFillDeclareActionNamePlugin, markCreateTokenAsPure, typescript, loader, removeTypeofWindow, tramvai, hot, excludesPresetEnv, browsersListTargets, 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":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/library/babel/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AA0BpE,eAAO,MAAM,kBAAkB,4RAqB5B,QAAQ,gBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgH3B,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -3,8 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.babelConfigFactory = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
6
|
-
const browserslist_1 = tslib_1.__importDefault(require("browserslist"));
|
|
7
|
-
const browserslist_config_1 = tslib_1.__importDefault(require("@tinkoff/browserslist-config"));
|
|
8
6
|
const resolve_1 = require("resolve");
|
|
9
7
|
const react_compiler_1 = require("./plugins/react-compiler");
|
|
10
8
|
const envConfig = {
|
|
@@ -30,27 +28,11 @@ function hasJsxRuntime() {
|
|
|
30
28
|
}
|
|
31
29
|
}
|
|
32
30
|
// eslint-disable-next-line complexity
|
|
33
|
-
const babelConfigFactory = ({ env = 'development',
|
|
31
|
+
const babelConfigFactory = ({ env = 'development', isServer = false, modules = false, actualTarget, generateDataQaTag = true, enableFillActionNamePlugin = false, enableFillDeclareActionNamePlugin = false,
|
|
34
32
|
// for testing only!
|
|
35
33
|
// @ts-expect-error
|
|
36
|
-
markCreateTokenAsPure = true, typescript = false, loader = true, removeTypeofWindow, tramvai = false, hot = false, excludesPresetEnv,
|
|
34
|
+
markCreateTokenAsPure = true, typescript = false, loader = true, removeTypeofWindow, tramvai = false, hot = false, excludesPresetEnv, browsersListTargets, reactCompiler = false, loose = true, externalHelpers = true, }) => {
|
|
37
35
|
const cfg = envConfig[env] || {};
|
|
38
|
-
let resultTarget = target;
|
|
39
|
-
if (!target) {
|
|
40
|
-
if (isServer) {
|
|
41
|
-
resultTarget = 'node';
|
|
42
|
-
}
|
|
43
|
-
else if (modern) {
|
|
44
|
-
resultTarget = 'modern';
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
const browserslistConfigRaw = browserslist_1.default.findConfig(rootDir);
|
|
48
|
-
// выставляем дефолты если явный конфиг для browserslist не был найден или в нём нет нужного targets
|
|
49
|
-
const browserslistQuery = browserslistConfigRaw?.[resultTarget] ?? browserslist_config_1.default[resultTarget] ?? browserslist_config_1.default.defaults;
|
|
50
|
-
const targets = (0, browserslist_1.default)(browserslistQuery, {
|
|
51
|
-
mobileToDesktop: true,
|
|
52
|
-
env: resultTarget,
|
|
53
|
-
});
|
|
54
36
|
const babelConfig = {
|
|
55
37
|
// по умолчанию sourceType: 'module' и тогда бабель рассматривает все файлы как es-модули, что может
|
|
56
38
|
// вызвать проблемы в некоторых случаях когда бабель обрабатывает уже скомпиленный в commonjs файл
|
|
@@ -77,9 +59,9 @@ markCreateTokenAsPure = true, typescript = false, loader = true, removeTypeofWin
|
|
|
77
59
|
corejs: require('core-js/package.json').version,
|
|
78
60
|
// TODO: will be deprecated in babel@8 - https://babeljs.io/docs/babel-preset-env#loose
|
|
79
61
|
loose,
|
|
80
|
-
targets,
|
|
81
|
-
browserslistEnv:
|
|
82
|
-
bugfixes:
|
|
62
|
+
targets: browsersListTargets,
|
|
63
|
+
browserslistEnv: actualTarget,
|
|
64
|
+
bugfixes: actualTarget === 'modern',
|
|
83
65
|
exclude: excludesPresetEnv,
|
|
84
66
|
},
|
|
85
67
|
],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/library/babel/index.ts"],"names":[],"mappings":";;;;AAAA,wDAAwB;AACxB,
|
|
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":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/library/swc/index.ts"],"names":[],"mappings":"AAKA,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,UA8HxD,CAAC"}
|
package/lib/library/swc/index.js
CHANGED
|
@@ -5,15 +5,13 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const empty_1 = tslib_1.__importDefault(require("@tinkoff/utils/is/empty"));
|
|
6
6
|
const path_1 = tslib_1.__importDefault(require("path"));
|
|
7
7
|
const fs_1 = require("fs");
|
|
8
|
-
const browserslist_1 = tslib_1.__importDefault(require("browserslist"));
|
|
9
|
-
const browserslist_config_1 = tslib_1.__importDefault(require("@tinkoff/browserslist-config"));
|
|
10
8
|
const resolve_1 = require("resolve");
|
|
11
9
|
const find_cache_dir_1 = tslib_1.__importDefault(require("find-cache-dir"));
|
|
12
10
|
const TRAMVAI_SWC_TARGET_PATH = '@tramvai/swc-integration/target/wasm32-wasi';
|
|
13
11
|
const NOT_SUPPORTED_FIELDS = ['alias', 'enableFillActionNamePlugin'];
|
|
14
12
|
let warningWasShown = false;
|
|
15
13
|
const getSwcOptions = (config) => {
|
|
16
|
-
const { env = 'development',
|
|
14
|
+
const { env = 'development', isServer = false, modules = false, excludesPresetEnv, browsersListTargets, typescript = false, hot = false, removeTypeofWindow, tramvai = false, rootDir = process.cwd(), generateDataQaTag = false,
|
|
17
15
|
// disabled because `arrayLikeIsIterable` and `iterableIsArray` assumtions is not supported yet in swc,
|
|
18
16
|
// this can leads to incorrect code generation e.g. when Set with spread is used - `[...new Set()] => [].concat(new Set())`
|
|
19
17
|
// TCORE-4904
|
|
@@ -57,29 +55,17 @@ Having swc config may conflict with @tramvai/cli configuration`);
|
|
|
57
55
|
return false;
|
|
58
56
|
}
|
|
59
57
|
}
|
|
60
|
-
let resultTarget = target;
|
|
61
|
-
if (!target) {
|
|
62
|
-
if (isServer) {
|
|
63
|
-
resultTarget = 'node';
|
|
64
|
-
}
|
|
65
|
-
else if (modern) {
|
|
66
|
-
resultTarget = 'modern';
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
const browserslistConfigRaw = browserslist_1.default.findConfig(rootDir);
|
|
70
|
-
// выставляем дефолты если явный конфиг для browserslist не был найден или в нём нет нужного targets
|
|
71
|
-
const browserslistQuery = browserslistConfigRaw?.[resultTarget] ?? browserslist_config_1.default[resultTarget] ?? browserslist_config_1.default.defaults;
|
|
72
|
-
const targets = (0, browserslist_1.default)(browserslistQuery, {
|
|
73
|
-
mobileToDesktop: true,
|
|
74
|
-
env: resultTarget,
|
|
75
|
-
});
|
|
76
58
|
return {
|
|
77
59
|
env: {
|
|
78
|
-
targets,
|
|
60
|
+
targets: browsersListTargets,
|
|
79
61
|
// Use relevant core-js version, because it affects which polyfills are included
|
|
80
62
|
// https://github.com/swc-project/swc/blob/main/crates/swc_ecma_preset_env/data/core-js-compat/modules-by-versions.json
|
|
81
63
|
coreJs: require('core-js/package.json').version,
|
|
64
|
+
// disabled because `arrayLikeIsIterable` and `iterableIsArray` assumtions is not supported yet in swc,
|
|
65
|
+
// this can leads to incorrect code generation e.g. when Set with spread is used - `[...new Set()] => [].concat(new Set())`
|
|
66
|
+
// TCORE-4904
|
|
82
67
|
loose,
|
|
68
|
+
exclude: excludesPresetEnv,
|
|
83
69
|
mode: 'entry',
|
|
84
70
|
},
|
|
85
71
|
module: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/library/swc/index.ts"],"names":[],"mappings":";;;;AAAA,4EAA8C;AAC9C,wDAAwB;AACxB,2BAAgC;AAChC,
|
|
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":"common.d.ts","sourceRoot":"","sources":["../../../../../src/library/webpack/application/client/common.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../../../../src/library/webpack/application/client/common.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAGxC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;wCAyB3D,cAAc,sBAAsB,CAAC,cAAc,MAAM;AAAxF,wBA8DE"}
|
|
@@ -18,6 +18,7 @@ const pagesResolve_1 = require("../../blocks/pagesResolve");
|
|
|
18
18
|
const configToEnv_1 = require("../../blocks/configToEnv");
|
|
19
19
|
const stats_1 = require("../../constants/stats");
|
|
20
20
|
const client_1 = require("../../blocks/pwa/client");
|
|
21
|
+
const PolyfillCondition_1 = tslib_1.__importDefault(require("../../plugins/PolyfillCondition"));
|
|
21
22
|
exports.default = (configManager) => (config) => {
|
|
22
23
|
const { polyfill, fileSystemPages, env } = configManager;
|
|
23
24
|
const portal = path_1.default.resolve(configManager.rootDir, `packages/${process.env.APP_ID}/portal.js`);
|
|
@@ -45,11 +46,12 @@ exports.default = (configManager) => (config) => {
|
|
|
45
46
|
.end()
|
|
46
47
|
.when(portalExists, (cfg) => cfg.entry('portal').add(portal))
|
|
47
48
|
.when(polyfillExists, (cfg) => cfg.entry('polyfill').add(polyfillPath));
|
|
49
|
+
const statsFileName = configManager.modern ? 'stats.modern.json' : 'stats.json';
|
|
48
50
|
config
|
|
49
51
|
.plugin('stats-plugin')
|
|
50
52
|
.use(webpack_stats_plugin_1.StatsWriterPlugin, [
|
|
51
53
|
{
|
|
52
|
-
filename:
|
|
54
|
+
filename: statsFileName,
|
|
53
55
|
stats: {
|
|
54
56
|
...(env === 'development' ? stats_1.DEV_STATS_OPTIONS : stats_1.DEFAULT_STATS_OPTIONS),
|
|
55
57
|
...(configManager.verboseWebpack ? stats_1.WEBPACK_DEBUG_STATS_OPTIONS : {}),
|
|
@@ -60,6 +62,9 @@ exports.default = (configManager) => (config) => {
|
|
|
60
62
|
],
|
|
61
63
|
},
|
|
62
64
|
])
|
|
65
|
+
.end()
|
|
66
|
+
.plugin('polyfill-condition-plugin')
|
|
67
|
+
.use(PolyfillCondition_1.default, [{ filename: statsFileName }])
|
|
63
68
|
.end()
|
|
64
69
|
.plugin('define')
|
|
65
70
|
.tap((args) => [
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../../src/library/webpack/application/client/common.ts"],"names":[],"mappings":";;;AAAA,wDAAwB;AACxB,oDAAoB;AAEpB,+DAAyD;AAIzD,+DAAmE;AAEnE,qEAAuC;AACvC,sCAA8C;AAC9C,mFAA6C;AAC7C,iEAAiC;AACjC,iEAAiC;AACjC,qEAAqC;AACrC,mEAAmC;AACnC,uFAAuD;AACvD,iFAAiD;AACjD,4DAAyD;AACzD,0DAAuD;AACvD,iDAO+B;AAC/B,oDAAmD;
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../../src/library/webpack/application/client/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PolyfillCondition.d.ts","sourceRoot":"","sources":["../../../../src/library/webpack/plugins/PolyfillCondition.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAC9B,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE;IAIjD,KAAK,CAAC,QAAQ,KAAA;CA4Cf"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const polyfillCondition_1 = require("../utils/polyfills/polyfillCondition");
|
|
4
|
+
const TARGET_PLUGIN_NAME = 'stats-writer-plugin';
|
|
5
|
+
class PolyfillConditionPlugin {
|
|
6
|
+
constructor(options) {
|
|
7
|
+
this.options = options;
|
|
8
|
+
this.options = options;
|
|
9
|
+
}
|
|
10
|
+
apply(compiler) {
|
|
11
|
+
compiler.hooks.thisCompilation.tap(TARGET_PLUGIN_NAME, (compilation) => {
|
|
12
|
+
compilation.hooks.processAssets.tap({
|
|
13
|
+
name: TARGET_PLUGIN_NAME,
|
|
14
|
+
stage: compilation.constructor.PROCESS_ASSETS_STAGE_REPORT,
|
|
15
|
+
}, () => {
|
|
16
|
+
const { entrypoints } = compilation;
|
|
17
|
+
const polyfillEntrypoint = entrypoints.get('polyfill');
|
|
18
|
+
// If no polyfill entrypoint presented do nothing
|
|
19
|
+
if (!polyfillEntrypoint)
|
|
20
|
+
return;
|
|
21
|
+
const polyfillChunk = polyfillEntrypoint.getEntrypointChunk();
|
|
22
|
+
const polyfillModules = compilation.chunkGraph.getChunkModulesIterable(polyfillChunk);
|
|
23
|
+
const coreJsModules = [];
|
|
24
|
+
for (const module of polyfillModules) {
|
|
25
|
+
if (module.resource && /\/core-js\/modules\//.test(module.resource)) {
|
|
26
|
+
coreJsModules.push(module);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
const features = coreJsModules.map((module) => getFeatureNameFromModulePath(module.resource));
|
|
30
|
+
const browserVersionsByFeatures = (0, polyfillCondition_1.getMaxBrowserVersionsByFeatures)(features);
|
|
31
|
+
const polyfillCondition = (0, polyfillCondition_1.getPolyfillCondition)(browserVersionsByFeatures);
|
|
32
|
+
const { filename } = this.options;
|
|
33
|
+
const statsJSON = JSON.parse(compilation.assets[filename].source().toString());
|
|
34
|
+
statsJSON.polyfillCondition = polyfillCondition;
|
|
35
|
+
statsJSON.features = browserVersionsByFeatures;
|
|
36
|
+
compilation.updateAsset(filename, new compiler.webpack.sources.RawSource(JSON.stringify(statsJSON)));
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.default = PolyfillConditionPlugin;
|
|
42
|
+
// node_modules/core-js/modules/es.array.push.js => es.array.push
|
|
43
|
+
function getFeatureNameFromModulePath(modulePath) {
|
|
44
|
+
return modulePath.split('/').at(-1).replace(/\.js$/, '');
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=PolyfillCondition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PolyfillCondition.js","sourceRoot":"","sources":["../../../../src/library/webpack/plugins/PolyfillCondition.ts"],"names":[],"mappings":";;AAAA,4EAG8C;AAE9C,MAAM,kBAAkB,GAAG,qBAAqB,CAAC;AAEjD,MAAqB,uBAAuB;IAC1C,YAAoB,OAA6B;QAA7B,YAAO,GAAP,OAAO,CAAsB;QAC/C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC,WAAW,EAAE,EAAE;YACrE,WAAW,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CACjC;gBACE,IAAI,EAAE,kBAAkB;gBACxB,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,2BAA2B;aAC3D,EACD,GAAG,EAAE;gBACH,MAAM,EAAE,WAAW,EAAE,GAAG,WAAW,CAAC;gBACpC,MAAM,kBAAkB,GAAG,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;gBAEvD,iDAAiD;gBACjD,IAAI,CAAC,kBAAkB;oBAAE,OAAO;gBAEhC,MAAM,aAAa,GAAG,kBAAkB,CAAC,kBAAkB,EAAE,CAAC;gBAC9D,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,CAAC,uBAAuB,CAAC,aAAa,CAAC,CAAC;gBACtF,MAAM,aAAa,GAAG,EAAE,CAAC;gBAEzB,KAAK,MAAM,MAAM,IAAI,eAAe,EAAE;oBACpC,IAAI,MAAM,CAAC,QAAQ,IAAI,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;wBACnE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qBAC5B;iBACF;gBAED,MAAM,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAC5C,4BAA4B,CAAC,MAAM,CAAC,QAAQ,CAAC,CAC9C,CAAC;gBAEF,MAAM,yBAAyB,GAAG,IAAA,mDAA+B,EAAC,QAAQ,CAAC,CAAC;gBAC5E,MAAM,iBAAiB,GAAG,IAAA,wCAAoB,EAAC,yBAAyB,CAAC,CAAC;gBAC1E,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;gBAClC,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAE/E,SAAS,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;gBAChD,SAAS,CAAC,QAAQ,GAAG,yBAAyB,CAAC;gBAE/C,WAAW,CAAC,WAAW,CACrB,QAAQ,EACR,IAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAClE,CAAC;YACJ,CAAC,CACF,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAjDD,0CAiDC;AAED,iEAAiE;AACjE,SAAS,4BAA4B,CAAC,UAAU;IAC9C,OAAO,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AAC3D,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const.d.ts","sourceRoot":"","sources":["../../../../../src/library/webpack/utils/polyfills/const.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,gBAAgB,UA+B5B,CAAC;AAEF,eAAO,MAAM,QAAQ,UAUpB,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.browsers = exports.ignoredPolyfills = void 0;
|
|
4
|
+
// List of ignore polyfills
|
|
5
|
+
// they are impossible or very difficult to support check in the browser
|
|
6
|
+
exports.ignoredPolyfills = [
|
|
7
|
+
'es.json.to-string-tag',
|
|
8
|
+
'es.error.to-string',
|
|
9
|
+
'es.aggregate-error.cause',
|
|
10
|
+
'es.iterator',
|
|
11
|
+
'es.object.to-string',
|
|
12
|
+
'es.array.species',
|
|
13
|
+
'es.date.to-primitive',
|
|
14
|
+
'es.function.has-instance',
|
|
15
|
+
'es.string.at-alternative',
|
|
16
|
+
'es.math.to-string-tag',
|
|
17
|
+
'esnext.math.to-string-tag',
|
|
18
|
+
'es.reflect.to-string-tag',
|
|
19
|
+
'esnext.reflect.to-string-tag',
|
|
20
|
+
'esnext.function.metadata',
|
|
21
|
+
'esnext.composite-key',
|
|
22
|
+
'esnext.composite-symbol',
|
|
23
|
+
'web.dom-collections.for-each',
|
|
24
|
+
'web.dom-collections.iterator',
|
|
25
|
+
'web.dom-exception.to-string-tag',
|
|
26
|
+
'web.dom-exception.stack',
|
|
27
|
+
'es.array.unscopables.flat-map',
|
|
28
|
+
'es.array.unscopables.flat',
|
|
29
|
+
'es.array.push',
|
|
30
|
+
'es.set.difference.v2',
|
|
31
|
+
'es.set.intersection.v2',
|
|
32
|
+
'es.set.is-disjoint-from.v2',
|
|
33
|
+
'es.set.is-subset-of.v2',
|
|
34
|
+
'es.set.is-superset-of.v2',
|
|
35
|
+
'es.set.symmetric-difference.v2',
|
|
36
|
+
'es.set.union.v2',
|
|
37
|
+
];
|
|
38
|
+
exports.browsers = [
|
|
39
|
+
'chrome',
|
|
40
|
+
'safari',
|
|
41
|
+
'firefox',
|
|
42
|
+
'opera',
|
|
43
|
+
'edge',
|
|
44
|
+
'chrome-android',
|
|
45
|
+
'ios',
|
|
46
|
+
'opera_mobile',
|
|
47
|
+
'samsung',
|
|
48
|
+
];
|
|
49
|
+
//# sourceMappingURL=const.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"const.js","sourceRoot":"","sources":["../../../../../src/library/webpack/utils/polyfills/const.ts"],"names":[],"mappings":";;;AAAA,2BAA2B;AAC3B,wEAAwE;AAC3D,QAAA,gBAAgB,GAAG;IAC9B,uBAAuB;IACvB,oBAAoB;IACpB,0BAA0B;IAC1B,aAAa;IACb,qBAAqB;IACrB,kBAAkB;IAClB,sBAAsB;IACtB,0BAA0B;IAC1B,0BAA0B;IAC1B,uBAAuB;IACvB,2BAA2B;IAC3B,0BAA0B;IAC1B,8BAA8B;IAC9B,0BAA0B;IAC1B,sBAAsB;IACtB,yBAAyB;IACzB,8BAA8B;IAC9B,8BAA8B;IAC9B,iCAAiC;IACjC,yBAAyB;IACzB,+BAA+B;IAC/B,2BAA2B;IAC3B,eAAe;IACf,sBAAsB;IACtB,wBAAwB;IACxB,4BAA4B;IAC5B,wBAAwB;IACxB,0BAA0B;IAC1B,gCAAgC;IAChC,iBAAiB;CAClB,CAAC;AAEW,QAAA,QAAQ,GAAG;IACtB,QAAQ;IACR,QAAQ;IACR,SAAS;IACT,OAAO;IACP,MAAM;IACN,gBAAgB;IAChB,KAAK;IACL,cAAc;IACd,SAAS;CACV,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
type BrowserVersions = Record<string, {
|
|
2
|
+
version: string;
|
|
3
|
+
spec: string;
|
|
4
|
+
}>;
|
|
5
|
+
export declare function getMaxBrowserVersionsByFeatures(usedFeatures: string[]): BrowserVersions;
|
|
6
|
+
export declare function getPolyfillCondition(browserVersions: BrowserVersions): string;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=polyfillCondition.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polyfillCondition.d.ts","sourceRoot":"","sources":["../../../../../src/library/webpack/utils/polyfills/polyfillCondition.ts"],"names":[],"mappings":"AAKA,KAAK,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAEzE,wBAAgB,+BAA+B,CAAC,YAAY,EAAE,MAAM,EAAE,mBA6BrE;AAED,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,eAAe,UAUpE"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getPolyfillCondition = exports.getMaxBrowserVersionsByFeatures = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const core_js_compat_1 = tslib_1.__importDefault(require("core-js-compat"));
|
|
6
|
+
const semver_1 = require("semver");
|
|
7
|
+
const specToFeature_1 = require("./specToFeature");
|
|
8
|
+
const const_1 = require("./const");
|
|
9
|
+
function getMaxBrowserVersionsByFeatures(usedFeatures) {
|
|
10
|
+
const { data } = core_js_compat_1.default;
|
|
11
|
+
const browserVersions = {};
|
|
12
|
+
usedFeatures.forEach((spec) => {
|
|
13
|
+
if (const_1.ignoredPolyfills.includes(spec)) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const specBrowsers = data[spec];
|
|
17
|
+
if (!specBrowsers) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const_1.browsers.forEach((browserName) => {
|
|
21
|
+
const maxBrowserVersion = specBrowsers[browserName];
|
|
22
|
+
if (maxBrowserVersion &&
|
|
23
|
+
(!browserVersions[browserName] ||
|
|
24
|
+
(0, semver_1.compare)((0, semver_1.coerce)(browserVersions[browserName].version), (0, semver_1.coerce)(maxBrowserVersion)) === -1)) {
|
|
25
|
+
browserVersions[browserName] = { version: maxBrowserVersion, spec };
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
});
|
|
29
|
+
return browserVersions;
|
|
30
|
+
}
|
|
31
|
+
exports.getMaxBrowserVersionsByFeatures = getMaxBrowserVersionsByFeatures;
|
|
32
|
+
function getPolyfillCondition(browserVersions) {
|
|
33
|
+
const supportConditions = new Set();
|
|
34
|
+
Object.values(browserVersions).forEach(({ spec }) => supportConditions.add(`!(${getSpecToFeature(spec)})`));
|
|
35
|
+
const polyfillCondition = [...supportConditions].join(' || ');
|
|
36
|
+
return polyfillCondition;
|
|
37
|
+
}
|
|
38
|
+
exports.getPolyfillCondition = getPolyfillCondition;
|
|
39
|
+
/**
|
|
40
|
+
* Converting the name of the specification into an expression for checking support in runtime
|
|
41
|
+
* es.string.at => String.prototype.at
|
|
42
|
+
* es.object.assign => Object.assign
|
|
43
|
+
*/
|
|
44
|
+
let specToFeatureDictCache;
|
|
45
|
+
function getSpecToFeature(spec) {
|
|
46
|
+
if (!specToFeatureDictCache) {
|
|
47
|
+
specToFeatureDictCache = (0, specToFeature_1.getSpecToFeatureDict)();
|
|
48
|
+
}
|
|
49
|
+
return specToFeatureDictCache[spec];
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=polyfillCondition.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polyfillCondition.js","sourceRoot":"","sources":["../../../../../src/library/webpack/utils/polyfills/polyfillCondition.ts"],"names":[],"mappings":";;;;AAAA,4EAAoC;AACpC,mCAAyC;AACzC,mDAAuD;AACvD,mCAAqD;AAIrD,SAAgB,+BAA+B,CAAC,YAAsB;IACpE,MAAM,EAAE,IAAI,EAAE,GAAG,wBAAM,CAAC;IACxB,MAAM,eAAe,GAAoB,EAAE,CAAC;IAE5C,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC5B,IAAI,wBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACnC,OAAO;SACR;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC;QAEhC,IAAI,CAAC,YAAY,EAAE;YACjB,OAAO;SACR;QAED,gBAAQ,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE;YAC/B,MAAM,iBAAiB,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;YAEpD,IACE,iBAAiB;gBACjB,CAAC,CAAC,eAAe,CAAC,WAAW,CAAC;oBAC5B,IAAA,gBAAO,EAAC,IAAA,eAAM,EAAC,eAAe,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,EAAE,IAAA,eAAM,EAAC,iBAAiB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAC1F;gBACA,eAAe,CAAC,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC;aACrE;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,eAAe,CAAC;AACzB,CAAC;AA7BD,0EA6BC;AAED,SAAgB,oBAAoB,CAAC,eAAgC;IACnE,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAE,CAAC;IAEpC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAClD,iBAAiB,CAAC,GAAG,CAAC,KAAK,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CACtD,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,GAAG,iBAAiB,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAE9D,OAAO,iBAAiB,CAAC;AAC3B,CAAC;AAVD,oDAUC;AAED;;;;GAIG;AACH,IAAI,sBAAsB,CAAC;AAC3B,SAAS,gBAAgB,CAAC,IAAI;IAC5B,IAAI,CAAC,sBAAsB,EAAE;QAC3B,sBAAsB,GAAG,IAAA,oCAAoB,GAAE,CAAC;KACjD;IAED,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* For conversion, a dictionary of the form `spec: feature` needs to be created
|
|
3
|
+
* 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
|
|
4
|
+
* as a result we get dictinary like { 'es.array.at: 'Array.prototype.at', 'es.object.assign': 'Object.assign' }
|
|
5
|
+
*/
|
|
6
|
+
export declare function getSpecToFeatureDict(): Record<string, string>;
|
|
7
|
+
//# sourceMappingURL=specToFeature.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"specToFeature.d.ts","sourceRoot":"","sources":["../../../../../src/library/webpack/utils/polyfills/specToFeature.ts"],"names":[],"mappings":"AAyFA;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA+I7D"}
|