@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.
Files changed (49) 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 +5 -23
  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 +6 -20
  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/plugins/PolyfillCondition.d.ts +8 -0
  12. package/lib/library/webpack/plugins/PolyfillCondition.d.ts.map +1 -0
  13. package/lib/library/webpack/plugins/PolyfillCondition.js +46 -0
  14. package/lib/library/webpack/plugins/PolyfillCondition.js.map +1 -0
  15. package/lib/library/webpack/utils/polyfills/const.d.ts +3 -0
  16. package/lib/library/webpack/utils/polyfills/const.d.ts.map +1 -0
  17. package/lib/library/webpack/utils/polyfills/const.js +49 -0
  18. package/lib/library/webpack/utils/polyfills/const.js.map +1 -0
  19. package/lib/library/webpack/utils/polyfills/polyfillCondition.d.ts +8 -0
  20. package/lib/library/webpack/utils/polyfills/polyfillCondition.d.ts.map +1 -0
  21. package/lib/library/webpack/utils/polyfills/polyfillCondition.js +51 -0
  22. package/lib/library/webpack/utils/polyfills/polyfillCondition.js.map +1 -0
  23. package/lib/library/webpack/utils/polyfills/specToFeature.d.ts +7 -0
  24. package/lib/library/webpack/utils/polyfills/specToFeature.d.ts.map +1 -0
  25. package/lib/library/webpack/utils/polyfills/specToFeature.js +207 -0
  26. package/lib/library/webpack/utils/polyfills/specToFeature.js.map +1 -0
  27. package/lib/library/webpack/utils/transpiler.d.ts +2 -0
  28. package/lib/library/webpack/utils/transpiler.d.ts.map +1 -1
  29. package/lib/library/webpack/utils/transpiler.js +25 -3
  30. package/lib/library/webpack/utils/transpiler.js.map +1 -1
  31. package/lib/schema/autogeneratedSchema.json +3 -6
  32. package/lib/typings/configEntry/cli.d.ts +1 -2
  33. package/lib/typings/configEntry/cli.d.ts.map +1 -1
  34. package/package.json +5 -3
  35. package/schema.json +3 -6
  36. package/src/library/babel/index.ts +5 -28
  37. package/src/library/babel/plugins/lazy-component/lazy-component.spec.ts +2 -1
  38. package/src/library/babel/plugins/lazy-component/legacy-universal-replace.spec.ts +2 -1
  39. package/src/library/swc/index.ts +7 -26
  40. package/src/library/webpack/application/client/common.ts +7 -1
  41. package/src/library/webpack/plugins/PolyfillCondition.ts +62 -0
  42. package/src/library/webpack/utils/polyfills/__integration__/__snapshots__/condition.test.ts.snap +1348 -0
  43. package/src/library/webpack/utils/polyfills/__integration__/condition.test.ts +128 -0
  44. package/src/library/webpack/utils/polyfills/const.ts +46 -0
  45. package/src/library/webpack/utils/polyfills/polyfillCondition.ts +63 -0
  46. package/src/library/webpack/utils/polyfills/specToFeature.ts +243 -0
  47. package/src/library/webpack/utils/transpiler.ts +32 -2
  48. package/src/schema/autogeneratedSchema.json +3 -6
  49. 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, target, modern, isServer, modules, generateDataQaTag, enableFillActionNamePlugin, enableFillDeclareActionNamePlugin, markCreateTokenAsPure, typescript, loader, removeTypeofWindow, tramvai, hot, excludesPresetEnv, rootDir, reactCompiler, loose, externalHelpers, }: Partial<TranspilerConfig>) => {
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":"AAOA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AA0BpE,eAAO,MAAM,kBAAkB,kRAsB5B,QAAQ,gBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoI3B,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
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', target, modern, isServer = false, modules = false, generateDataQaTag = true, enableFillActionNamePlugin = false, enableFillDeclareActionNamePlugin = false,
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, rootDir = process.cwd(), reactCompiler = false, loose = true, externalHelpers = true, }) => {
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: resultTarget,
82
- bugfixes: resultTarget === 'modern',
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":"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"}
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,UA+IxD,CAAC"}
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"}
@@ -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', target, modern, isServer = false, modules = false, typescript = false, hot = false, removeTypeofWindow, tramvai = false, rootDir = process.cwd(), generateDataQaTag = false,
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":"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"}
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;wCAwB3D,cAAc,sBAAsB,CAAC,cAAc,MAAM;AAAxF,wBAyDE"}
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: configManager.modern ? 'stats.modern.json' : 'stats.json',
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":"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"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../../src/library/webpack/application/client/common.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export default class PolyfillConditionPlugin {
2
+ private options;
3
+ constructor(options: {
4
+ filename: string;
5
+ });
6
+ apply(compiler: any): void;
7
+ }
8
+ //# sourceMappingURL=PolyfillCondition.d.ts.map
@@ -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,3 @@
1
+ export declare const ignoredPolyfills: string[];
2
+ export declare const browsers: string[];
3
+ //# sourceMappingURL=const.d.ts.map
@@ -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"}