@zohodesk/react-cli 1.1.16-exp.6 → 1.1.16-exp.7

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 (133) hide show
  1. package/bin/cli.js +4 -0
  2. package/lib/babel/cmjs-plugins-presets.js +6 -5
  3. package/lib/babel/es-plugins-presets.js +6 -5
  4. package/lib/configs/webpack.dev.config.js +4 -0
  5. package/lib/configs/webpack.prod.config.js +6 -2
  6. package/lib/schemas/index.js +2 -1
  7. package/npm-shrinkwrap.json +2 -2
  8. package/package.json +4 -1
  9. package/packages/client_build_tool/lib/allCommandsConfigs.js +0 -23
  10. package/packages/client_build_tool/lib/buildToolLoggers.js +0 -32
  11. package/packages/client_build_tool/lib/commands/build/commandExecutor.js +0 -21
  12. package/packages/client_build_tool/lib/commands/build/config.js +0 -12
  13. package/packages/client_build_tool/lib/commands/build/errorHander.js +0 -10
  14. package/packages/client_build_tool/lib/commands/build/index.js +0 -35
  15. package/packages/client_build_tool/lib/commands/build/optionsProcesser.js +0 -40
  16. package/packages/client_build_tool/lib/commands/buildEs/commandExecutor.js +0 -17
  17. package/packages/client_build_tool/lib/commands/buildEs/config.js +0 -12
  18. package/packages/client_build_tool/lib/commands/buildLib/commandExecutor.js +0 -17
  19. package/packages/client_build_tool/lib/commands/buildLib/config.js +0 -12
  20. package/packages/client_build_tool/lib/commands/start/commandExecutor.js +0 -13
  21. package/packages/client_build_tool/lib/commands/start/config.js +0 -12
  22. package/packages/client_build_tool/lib/commands/start/deprecationHandler.js +0 -10
  23. package/packages/client_build_tool/lib/commands/start/errorHander.js +0 -10
  24. package/packages/client_build_tool/lib/commands/start/optionsProcesser.js +0 -36
  25. package/packages/client_build_tool/lib/commands/start/postProcesser.js +0 -10
  26. package/packages/client_build_tool/lib/commands/start/preProcesser.js +0 -10
  27. package/packages/client_build_tool/lib/commandsRouter.js +0 -71
  28. package/packages/client_build_tool/lib/shared/bundler/webpack/common/decidePublicPath.js +0 -44
  29. package/packages/client_build_tool/lib/shared/bundler/webpack/common/libAlias.js +0 -31
  30. package/packages/client_build_tool/lib/shared/bundler/webpack/common/nameTemplates.js +0 -51
  31. package/packages/client_build_tool/lib/shared/bundler/webpack/common/resourceBasedPublicPath.js +0 -21
  32. package/packages/client_build_tool/lib/shared/bundler/webpack/cssLoaders.js +0 -16
  33. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/CdnChangePlugin.js +0 -111
  34. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/EFCPlugin.js +0 -1
  35. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/ContributionGuide.md +0 -11
  36. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nKeysIdentifer.js +0 -136
  37. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nSplit.md +0 -95
  38. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/README.md +0 -25
  39. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/constants.js +0 -29
  40. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/createHash.js +0 -24
  41. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/getI18nDependency.js +0 -99
  42. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/getI18nLoadingRuntimeModule.js +0 -81
  43. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/getI18nModule.js +0 -201
  44. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/index.js +0 -401
  45. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/optionsHandler.js +0 -67
  46. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/pathCreator.js +0 -23
  47. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/readI18nValues.js +0 -29
  48. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateFileName.js +0 -49
  49. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateHashHelpers.js +0 -77
  50. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/collectI18nKeys.js +0 -63
  51. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/hashUtils.js +0 -19
  52. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/index.js +0 -31
  53. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/propertiesUtils.js +0 -127
  54. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RTLSplitPlugin.js +0 -1
  55. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +0 -63
  56. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtlCssPlugin.js +0 -89
  57. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtrSplit.md +0 -34
  58. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/replaceCssDirTemplate.js +0 -15
  59. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/ServiceWorkerPlugin.js +0 -155
  60. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin.js +0 -49
  61. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_postcss_loaders/ExcludePlugin.js +0 -58
  62. package/packages/client_build_tool/lib/shared/bundler/webpack/custom_postcss_loaders/RTLSplitPlugin.js +0 -139
  63. package/packages/client_build_tool/lib/shared/bundler/webpack/devServerConfig.js +0 -34
  64. package/packages/client_build_tool/lib/shared/bundler/webpack/getCSSLoaders.js +0 -30
  65. package/packages/client_build_tool/lib/shared/bundler/webpack/jsLoaders.js +0 -17
  66. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/assetLoaders.js +0 -14
  67. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/babelLoaderConfig.js +0 -24
  68. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configHtmlTemplateLoader.js +0 -18
  69. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configWebWorkerLoader.js +0 -21
  70. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/configsAssetsLoaders.js +0 -138
  71. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/cssClassNameGenerate.js +0 -83
  72. package/packages/client_build_tool/lib/shared/bundler/webpack/loaderConfigs/getCssLoaderOptions.js +0 -23
  73. package/packages/client_build_tool/lib/shared/bundler/webpack/loaders/workerLoader.js +0 -133
  74. package/packages/client_build_tool/lib/shared/bundler/webpack/optimizationConfig.js +0 -39
  75. package/packages/client_build_tool/lib/shared/bundler/webpack/outputConfig.js +0 -28
  76. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCdnChangePlugin.js +0 -18
  77. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configCopyThirdpartyFile.js +0 -38
  78. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configEnvVariables.js +0 -24
  79. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configHtmlWebpackPlugin.js +0 -28
  80. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configI18nSplitPlugin.js +0 -35
  81. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configIgnorePlugin.js +0 -16
  82. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configMiniCSSExtractPlugin.js +0 -23
  83. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configProgressPlugin.js +0 -19
  84. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configRtlCssPlugin.js +0 -27
  85. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configServiceWorkerPlugin.js +0 -18
  86. package/packages/client_build_tool/lib/shared/bundler/webpack/pluginConfigs/configUglifyCSSPlugin.js +0 -15
  87. package/packages/client_build_tool/lib/shared/bundler/webpack/plugins.js +0 -39
  88. package/packages/client_build_tool/lib/shared/bundler/webpack/postcssPlugins.js +0 -36
  89. package/packages/client_build_tool/lib/shared/bundler/webpack/resolvers.js +0 -42
  90. package/packages/client_build_tool/lib/shared/bundler/webpack/splitChunksConfig.js +0 -12
  91. package/packages/client_build_tool/lib/shared/bundler/webpack/webpack.dev.config.js +0 -17
  92. package/packages/client_build_tool/lib/shared/bundler/webpack/webpackBuild.js +0 -24
  93. package/packages/client_build_tool/lib/shared/bundler/webpack/webpackConfig.js +0 -50
  94. package/packages/client_build_tool/lib/shared/commands-utlis/doBasicRequiermentCheck.js +0 -16
  95. package/packages/client_build_tool/lib/shared/commands-utlis/getCliPath.js +0 -38
  96. package/packages/client_build_tool/lib/shared/commands-utlis/index.js +0 -29
  97. package/packages/client_build_tool/lib/shared/commands-utlis/log.js +0 -13
  98. package/packages/client_build_tool/lib/shared/commands-utlis/readArgsFormCommandLine.js +0 -11
  99. package/packages/client_build_tool/lib/shared/commands-utlis/readOptionFormCommandLine.js +0 -11
  100. package/packages/client_build_tool/lib/shared/commands-utlis/spanSync.js +0 -35
  101. package/packages/client_build_tool/lib/shared/constants.js +0 -33
  102. package/packages/client_build_tool/lib/shared/schemas/applyValuesToShema.js +0 -37
  103. package/packages/client_build_tool/lib/shared/schemas/cliArgsToObject.js +0 -37
  104. package/packages/client_build_tool/lib/shared/schemas/defaultConfigValues.js +0 -119
  105. package/packages/client_build_tool/lib/shared/schemas/deprecatedOptionsHandler.js +0 -65
  106. package/packages/client_build_tool/lib/shared/schemas/getCWD.js +0 -23
  107. package/packages/client_build_tool/lib/shared/schemas/getNpmVersion.js +0 -21
  108. package/packages/client_build_tool/lib/shared/schemas/npmConfigToObject.js +0 -32
  109. package/packages/client_build_tool/lib/shared/schemas/oldDefaultConfigValues.js +0 -480
  110. package/packages/client_build_tool/lib/shared/schemas/readOptions.js +0 -55
  111. package/packages/client_build_tool/lib/shared/schemas/readOptionsForPackageJson.js +0 -26
  112. package/packages/client_build_tool/lib/shared/schemas/readOptionsOld.js +0 -152
  113. package/packages/client_build_tool/lib/shared/server/cert/Tsicsezwild-22-23.crt +0 -37
  114. package/packages/client_build_tool/lib/shared/server/cert/Tsicsezwild-22-23.key +0 -27
  115. package/packages/client_build_tool/lib/shared/server/configWebpackDevMiddleware.js +0 -40
  116. package/packages/client_build_tool/lib/shared/server/corsHandleing.js +0 -28
  117. package/packages/client_build_tool/lib/shared/server/getIp.js +0 -30
  118. package/packages/client_build_tool/lib/shared/server/getServerURL.js +0 -29
  119. package/packages/client_build_tool/lib/shared/server/httpsOptions.js +0 -53
  120. package/packages/client_build_tool/lib/shared/server/initExpressApp.js +0 -19
  121. package/packages/client_build_tool/lib/shared/server/initialHTMLHandling.js +0 -66
  122. package/packages/client_build_tool/lib/shared/server/serveContextFiles.js +0 -24
  123. package/packages/client_build_tool/lib/shared/server/serverBywebpackDevMiddleware.js +0 -40
  124. package/packages/client_build_tool/lib/shared/server/startHttpServer.js +0 -26
  125. package/packages/client_build_tool/lib/shared/server/startHttpsServer.js +0 -34
  126. package/packages/client_build_tool/lib/shared/server/unwanted/addHttp2Server.js +0 -41
  127. package/packages/client_build_tool/lib/shared/server/unwanted/configWebpackDevMiddleware.js +0 -44
  128. package/packages/client_build_tool/lib/shared/server/unwanted/devServerUtlis.js +0 -1
  129. package/packages/client_build_tool/lib/shared/server/unwanted/mockApiSupport.js +0 -19
  130. package/packages/client_build_tool/lib/shared/server/unwanted/webpackConfig.js +0 -32
  131. package/packages/client_build_tool/lib/shared/server/unwanted/websocketMockSetup.js +0 -48
  132. package/packages/client_build_tool/lib/shared/server/urlConcat.js +0 -25
  133. package/packages/client_build_tool/lib/shared/utils/utils.js +0 -1
@@ -1,81 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getI18nLoadingRuntimeModule = getI18nLoadingRuntimeModule;
7
-
8
- /* eslint-disable no-restricted-syntax */
9
- const getChunksMapObject = i18nChunks => {
10
- const obj = {};
11
-
12
- for (const chunk of i18nChunks) {
13
- obj[chunk.id] = 1;
14
- }
15
-
16
- return obj;
17
- };
18
-
19
- function getI18nLoadingRuntimeModule({
20
- webpack,
21
- getI18nChunks
22
- }) {
23
- const {
24
- Template,
25
- RuntimeGlobals,
26
- RuntimeModule
27
- } = webpack;
28
-
29
- class I18nLoadingRuntimeModule extends RuntimeModule {
30
- constructor(runtimeRequirements, {
31
- runtimeOptions,
32
- prefixFunc
33
- }) {
34
- super('i18n loading', 10);
35
- this.runtimeRequirements = runtimeRequirements;
36
- this.prefixFunc = prefixFunc;
37
- this.runtimeOptions = runtimeOptions;
38
- }
39
-
40
- generate() {
41
- const {
42
- chunk,
43
- runtimeRequirements,
44
- prefixFunc,
45
- compilation
46
- } = this;
47
- const {
48
- runtimeTemplate,
49
- outputOptions: {
50
- crossOriginLoading
51
- }
52
- } = compilation; // const i18nChunks = getI18nChunks(chunk, compilation);
53
- // REASON: we do it in here is in dev mode thing may change
54
- // const i18nChunks = getI18nChunks(entryRuntimeChunk);
55
-
56
- const i18nChunks = getI18nChunks(chunk);
57
- const withLoading = runtimeRequirements.has(RuntimeGlobals.ensureChunkHandlers) && i18nChunks.length > 0;
58
-
59
- if (!withLoading) {
60
- return '';
61
- }
62
-
63
- const chunkMap = getChunksMapObject(i18nChunks);
64
- const {
65
- attributes,
66
- scriptType,
67
- insert: insertRoot
68
- } = this.runtimeOptions;
69
- const insertPlace = typeof insertRoot === 'function' ? `(${insertRoot.toString()})(scriptTag)` : Template.asString([`var target = document.querySelector("${insertRoot}");`, 'target.parentNode.insertBefore(scriptTag, target.nextSibling);']);
70
- return Template.asString([`${prefixFunc(i18nChunks)}`, `var createI18nScriptTag = ${runtimeTemplate.basicFunction('chunkId, fullsrc, resolve, reject', ['var scriptTag = document.createElement("script");', attributes ? Template.asString(Object.entries(attributes).map(entry => {
71
- const [key, value] = entry;
72
- return `scriptTag.setAttribute(${JSON.stringify(key)}, ${JSON.stringify(value)});`;
73
- })) : '', scriptType ? `scriptTag.type = ${JSON.stringify(scriptType)};` : '', `var onScriptComplete = ${runtimeTemplate.basicFunction('event', ['// avoid mem leaks.', 'scriptTag.onerror = scriptTag.onload = null;', 'if (event.type === \'load\') {', Template.indent(['resolve();']), '} else {', Template.indent(['var errorType = event && (event.type === \'load\' ? \'missing\' : event.type);', 'var realSrc = event && event.target && event.target.src || fullsrc;', 'var err = new Error("Loading I18N chunk " + chunkId + " failed.\\n(" + realSrc + ")");', 'err.code = "I18N_CHUNK_LOAD_FAILED";', 'err.type = errorType;', 'err.request = realSrc;', 'scriptTag.parentNode.removeChild(scriptTag)', 'reject(err);']), '}'])}`, 'scriptTag.onerror = scriptTag.onload = onScriptComplete;', 'scriptTag.src = fullsrc;', crossOriginLoading ? Template.asString(['if (scriptTag.src.indexOf(window.location.origin + \'/\') !== 0) {', Template.indent(`scriptTag.crossOrigin = ${JSON.stringify(crossOriginLoading)};`), '}']) : '', insertRoot && insertPlace || Template.asString(['document.head.appendChild(scriptTag);']), 'return scriptTag;'])};`, `var findI18nScriptTag = ${runtimeTemplate.basicFunction('src, fullsrc', ['var existingScriptTags = document.getElementsByTagName("script");', 'for(var i = 0; i < existingScriptTags.length; i++) {', Template.indent(['var tag = existingScriptTags[i];', 'var dataSrc = tag.getAttribute("data-src") || tag.getAttribute("src");', 'if((dataSrc === src || dataSrc === fullsrc)) return tag;']), '}', 'var existingStyleTags = document.getElementsByTagName("style");', 'for(var i = 0; i < existingStyleTags.length; i++) {', Template.indent(['var tag = existingStyleTags[i];', 'var dataSrc = tag.getAttribute("data-src");', 'if(dataSrc === src || dataSrc === fullsrc) return tag;']), '}'])};`, `var loadI18nScriptTag = ${runtimeTemplate.basicFunction('chunkId', `return new Promise(${runtimeTemplate.basicFunction('resolve, reject', [`var src = ${RuntimeGlobals.require}.miniI18nF(chunkId);`, `var fullsrc = ${RuntimeGlobals.publicPath} + src;`, 'if(findI18nScriptTag(src, fullsrc)) return resolve();', 'createI18nScriptTag(chunkId, fullsrc, resolve, reject);'])});`)}`, withLoading ? Template.asString(['// object to store loaded I18N chunks', 'var installedI18nChunks = {', Template.indent(
74
- /** @type {string[]} */
75
- chunk.ids.map(id => `${JSON.stringify(id)}: 0`).join(',\n')), '};', '', `${RuntimeGlobals.ensureChunkHandlers}.miniI18n = ${runtimeTemplate.basicFunction('chunkId, promises', [`var i18nChunks = ${JSON.stringify(chunkMap)};`, 'if(installedI18nChunks[chunkId]) promises.push(installedI18nChunks[chunkId]);', 'else if(installedI18nChunks[chunkId] !== 0 && i18nChunks[chunkId]) {', Template.indent([`promises.push(installedI18nChunks[chunkId] = loadI18nScriptTag(chunkId).then(${runtimeTemplate.basicFunction('', 'installedI18nChunks[chunkId] = 0;')}, ${runtimeTemplate.basicFunction('e', ['delete installedI18nChunks[chunkId];', 'throw e;'])}));`]), '}'])};`]) : '// no chunk loading', '']);
76
- }
77
-
78
- }
79
-
80
- return I18nLoadingRuntimeModule;
81
- }
@@ -1,201 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getI18nModule = getI18nModule;
7
-
8
- var _path = _interopRequireDefault(require("path"));
9
-
10
- var _constants = require("./constants");
11
-
12
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
-
14
- /* eslint-disable no-underscore-dangle */
15
- const i18nModuleCache = new WeakMap();
16
-
17
- function getI18nModule(webpack) {
18
- if (i18nModuleCache.has(webpack)) {
19
- return i18nModuleCache.get(webpack);
20
- }
21
-
22
- class I18nModule extends webpack.Module {
23
- constructor({
24
- context,
25
- identifier,
26
- identifierIndex,
27
- content,
28
- // ## layer,
29
- // ## supports,
30
- // ## media,
31
- // ## sourceMap,
32
- assets,
33
- assetsInfo
34
- }) {
35
- super(_constants.MODULE_TYPE, context);
36
- this.id = '';
37
- this._context = context;
38
- this._identifier = identifier;
39
- this._identifierIndex = identifierIndex;
40
- this.content = content; // ## this.layer = layer;
41
- // ## this.supports = supports;
42
- // ## this.media = media;
43
- // ## this.sourceMap = sourceMap;
44
-
45
- this.assets = assets;
46
- this.assetsInfo = assetsInfo;
47
- this._needBuild = true;
48
- }
49
-
50
- size() {
51
- return this.content.length;
52
- }
53
-
54
- identifier() {
55
- return `i18n|${this._identifier}|${this._identifierIndex}`;
56
- }
57
-
58
- readableIdentifier(requestShortener) {
59
- return `i18n ${requestShortener.shorten(this._identifier)}${this._identifierIndex ? ` (${this._identifierIndex})` : ''}`;
60
- } // eslint-disable-next-line class-methods-use-this
61
-
62
-
63
- getSourceTypes() {
64
- return _constants.TYPES;
65
- } // eslint-disable-next-line class-methods-use-this
66
-
67
-
68
- codeGeneration() {
69
- return _constants.CODE_GENERATION_RESULT;
70
- }
71
-
72
- nameForCondition() {
73
- const resource = this._identifier.split('!').pop();
74
-
75
- const idx = resource.indexOf('?');
76
-
77
- if (idx >= 0) {
78
- return resource.substring(0, idx);
79
- }
80
-
81
- return resource;
82
- }
83
-
84
- updateCacheModule(module) {
85
- if (this.content !== module.content || // ## this.layer !== module.layer ||
86
- // ## this.supports !== module.supports ||
87
- // ## this.media !== module.media ||
88
- // ## this.sourceMap !== module.sourceMap ||
89
- this.assets !== module.assets || this.assetsInfo !== module.assetsInfo) {
90
- this._needBuild = true;
91
- this.content = module.content; // ## this.layer = module.layer;
92
- // ## this.supports = module.supports;
93
- // ## this.media = module.media;
94
- // ## this.sourceMap = module.sourceMap;
95
-
96
- this.assets = module.assets;
97
- this.assetsInfo = module.assetsInfo;
98
- }
99
- }
100
-
101
- needRebuild() {
102
- return this._needBuild;
103
- }
104
-
105
- needBuild(context, callback) {
106
- callback(undefined, this._needBuild);
107
- }
108
-
109
- build(options, compilation, resolver, fileSystem, callback) {
110
- this.buildInfo = {
111
- assets: this.assets,
112
- assetsInfo: this.assetsInfo,
113
- cacheable: true,
114
- hash: this._computeHash(compilation.outputOptions.hashFunction)
115
- };
116
- this.buildMeta = {};
117
- this._needBuild = false;
118
- callback();
119
- }
120
-
121
- _computeHash(hashFunction) {
122
- const hash = webpack.util.createHash(hashFunction);
123
- hash.update(this.content); // ## if (this.layer) {
124
- // ## hash.update(this.layer);
125
- // ## }
126
- // ## hash.update(this.supports || '');
127
- // ## hash.update(this.media || '');
128
- // ## hash.update(this.sourceMap || '');
129
-
130
- return hash.digest('hex');
131
- }
132
-
133
- updateHash(hash, context) {
134
- super.updateHash(hash, context);
135
- hash.update(this.buildInfo.hash);
136
- }
137
-
138
- serialize(context) {
139
- const {
140
- write
141
- } = context;
142
- write(this._context);
143
- write(this._identifier);
144
- write(this._identifierIndex);
145
- write(this.content); // ## write(this.layer);
146
- // ## write(this.supports);
147
- // ## write(this.media);
148
- // ## write(this.sourceMap);
149
-
150
- write(this.assets);
151
- write(this.assetsInfo);
152
- write(this._needBuild);
153
- super.serialize(context);
154
- }
155
-
156
- deserialize(context) {
157
- this._needBuild = context.read();
158
- super.deserialize(context);
159
- }
160
-
161
- }
162
-
163
- i18nModuleCache.set(webpack, I18nModule);
164
- webpack.util.serialization.register(I18nModule, _path.default.resolve(__dirname, 'I18nModule-new'), null, {
165
- serialize(instance, context) {
166
- instance.serialize(context);
167
- },
168
-
169
- deserialize(context) {
170
- const {
171
- read
172
- } = context;
173
- const contextModule = read();
174
- const identifier = read();
175
- const identifierIndex = read();
176
- const content = read(); // ## const layer = read();
177
- // ## const supports = read();
178
- // ## const media = read();
179
- // ## const sourceMap = read();
180
-
181
- const assets = read();
182
- const assetsInfo = read();
183
- const dep = new I18nModule({
184
- context: contextModule,
185
- identifier,
186
- identifierIndex,
187
- content,
188
- // ## layer,
189
- // ## supports,
190
- // ## media,
191
- // ## sourceMap,
192
- assets,
193
- assetsInfo
194
- });
195
- dep.deserialize(context);
196
- return dep;
197
- }
198
-
199
- });
200
- return I18nModule;
201
- }
@@ -1,401 +0,0 @@
1
- "use strict";
2
-
3
- var _webpack = require("webpack");
4
-
5
- var _htmlWebpackPlugin = _interopRequireDefault(require("html-webpack-plugin"));
6
-
7
- var _constants = require("./constants");
8
-
9
- var _I18nKeysIdentifer = _interopRequireDefault(require("./I18nKeysIdentifer"));
10
-
11
- var _getI18nModule = require("./getI18nModule");
12
-
13
- var _getI18nDependency = require("./getI18nDependency");
14
-
15
- var _optionsHandler = require("./optionsHandler");
16
-
17
- var _getI18nLoadingRuntimeModule = require("./getI18nLoadingRuntimeModule");
18
-
19
- var _createHash = require("./createHash");
20
-
21
- var _pathCreator = require("./pathCreator");
22
-
23
- var _templateFileName = require("./templateFileName");
24
-
25
- var _hashUtils = require("./utils/hashUtils");
26
-
27
- var _propertiesUtils = require("./utils/propertiesUtils");
28
-
29
- var _urlConcat = require("../../../../server/urlConcat");
30
-
31
- function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
32
-
33
- /* eslint-disable no-restricted-syntax */
34
-
35
- /* eslint-disable no-nested-ternary */
36
- // import getI18nKeysFormModules from './utils/getI18nKeysFormModules';
37
- const pluginName = 'mini-i18n-extract-plugin';
38
- const pluginSymbol = Symbol(pluginName);
39
-
40
- function getChunkModules(chunk, chunkGraph) {
41
- return typeof chunkGraph !== 'undefined' ? chunkGraph.getChunkModules(chunk) : chunk.modulesIterable;
42
- }
43
-
44
- class I18nExtractPlugin {
45
- constructor(options = {}) {
46
- // initialize options
47
- this.options = (0, _optionsHandler.optionsHandler)(options);
48
- }
49
-
50
- getI18nKeysForChunk(chunk, chunkGraph) {
51
- const {
52
- modulesI18nKeysMap
53
- } = this.i18nKeysIdentifer;
54
- const i18nKeysMap = {};
55
-
56
- for (const mod of getChunkModules(chunk, chunkGraph)) {
57
- const keys = modulesI18nKeysMap[mod.resource];
58
-
59
- if (keys) {
60
- for (const key of keys) {
61
- i18nKeysMap[key] = 1;
62
- }
63
- }
64
- }
65
-
66
- return Object.keys(i18nKeysMap);
67
- }
68
-
69
- getI18nContentForkeys(i18nKeys, locale) {
70
- const {
71
- allI18nObject
72
- } = this.options;
73
- const data = {};
74
-
75
- for (const key of i18nKeys) {
76
- data[key] = allI18nObject[locale][key];
77
- }
78
-
79
- return data;
80
- }
81
-
82
- getI18nChunkFileContent(i18nKeys, loc) {
83
- const {
84
- jsonpFunc
85
- } = this.options;
86
- const data = this.getI18nContentForkeys(i18nKeys, loc);
87
- return `${jsonpFunc}(${(0, _propertiesUtils.jsonToString)(data)})`;
88
- }
89
-
90
- filterI18nUsedChunks(chunks) {
91
- const {
92
- localeChunkAssestMap
93
- } = this;
94
- return Array.from(chunks).filter(c => localeChunkAssestMap[c.id]);
95
- }
96
-
97
- getContentHashes(locale) {
98
- const {
99
- localeChunkAssestMap
100
- } = this;
101
- const contentHashes = {};
102
- Object.keys(localeChunkAssestMap).forEach(chunkId => {
103
- if (localeChunkAssestMap[chunkId] && localeChunkAssestMap[chunkId][locale] && localeChunkAssestMap[chunkId][locale].contentHash) {
104
- contentHashes[chunkId] = localeChunkAssestMap[chunkId][locale].contentHash;
105
- } // console.log(localeChunkAssestMap[chunkId][locale]);
106
-
107
- }); // console.log({ contentHashes });
108
-
109
- return contentHashes;
110
- }
111
-
112
- apply(compiler) {
113
- const {
114
- webpack
115
- } = compiler;
116
- this.addToDefaultTypes(compiler);
117
- const I18nModule = (0, _getI18nModule.getI18nModule)(webpack);
118
- const I18nDependency = (0, _getI18nDependency.getI18nDependency)(webpack); // initialize base data's and plugis
119
-
120
- this.i18nKeysIdentifer = new _I18nKeysIdentifer.default(this.options, {
121
- I18nModule,
122
- I18nDependency
123
- });
124
- this.i18nKeysIdentifer.apply(compiler);
125
- compiler.hooks.thisCompilation.tap(pluginName, compilation => {
126
- this.localeChunkAssestMap = {};
127
- compilation.hooks.beforeHash.tap(pluginName, () => {
128
- const {
129
- locales
130
- } = this.options;
131
- const {
132
- chunks
133
- } = compilation;
134
- this.localeChunkAssestMap = {};
135
- const {
136
- localeChunkAssestMap
137
- } = this;
138
-
139
- for (const chunk of chunks) {
140
- const {
141
- chunkGraph
142
- } = compilation;
143
- const i18nKeys = this.getI18nKeysForChunk(chunk, chunkGraph);
144
-
145
- if (i18nKeys.length) {
146
- localeChunkAssestMap[chunk.id] = {};
147
-
148
- for (const loc of locales) {
149
- const content = this.getI18nChunkFileContent(i18nKeys, loc);
150
- localeChunkAssestMap[chunk.id][loc] = {
151
- content
152
- };
153
- }
154
- }
155
- }
156
- });
157
- compilation.hooks.chunkHash.tap(pluginName, (chunk, hash) => {
158
- const {
159
- localeChunkAssestMap
160
- } = this;
161
- const {
162
- locales
163
- } = this.options;
164
-
165
- if (localeChunkAssestMap[chunk.id]) {
166
- for (const loc of locales) {
167
- const {
168
- content
169
- } = localeChunkAssestMap[chunk.id][loc];
170
- hash.update(content);
171
- }
172
- }
173
- });
174
-
175
- function createFilenameWithHash({
176
- fileNameTemplate,
177
- chunk,
178
- locale,
179
- content
180
- }) {
181
- const fileName = fileNameTemplate.replaceAll('[locale]', locale);
182
- const contentHash = (0, _createHash.createHash)({
183
- compiler,
184
- outputOptions: compilation.outputOptions,
185
- content
186
- });
187
- const filename = (0, _pathCreator.pathCreator)(fileName, compilation, {
188
- hash: compilation.hash,
189
- chunkId: chunk.id,
190
- chunkHash: chunk.hash,
191
- contentHash
192
- });
193
- return {
194
- contentHash,
195
- filename
196
- };
197
- }
198
-
199
- compilation.hooks.contentHash.tap(pluginName, chunk => {
200
- const {
201
- RawSource
202
- } = webpack.sources;
203
- const {
204
- locales,
205
- chunkFilename,
206
- filename
207
- } = this.options;
208
- const fileNameTemplate = chunk.canBeInitial() ? filename : chunkFilename; // const { chunks } = compilation;
209
-
210
- const {
211
- localeChunkAssestMap
212
- } = this; // function filterI18nUsedChunks(chunks) {
213
- // return Array.from(chunks).filter(c => localeChunkAssestMap[c.id]);
214
- // }
215
- // for (const chunk of chunks) {
216
-
217
- if (localeChunkAssestMap[chunk.id]) {
218
- for (const locale of locales) {
219
- const localObject = localeChunkAssestMap[chunk.id][locale];
220
- const {
221
- content
222
- } = localObject;
223
- const {
224
- contentHash,
225
- filename
226
- } = createFilenameWithHash({
227
- fileNameTemplate,
228
- chunk,
229
- locale,
230
- content
231
- });
232
- localObject.contentHash = contentHash;
233
- localObject.filename = filename;
234
- compilation.emitAsset(filename, new RawSource(content));
235
- }
236
- }
237
- });
238
-
239
- if (!this.options.runtime) {
240
- return;
241
- }
242
-
243
- this.createI18nDownloadCodeInRuntimeFile(webpack, compilation, compiler); // ## compilation.hooks.runtimeRequirementInTree
244
- // ## .for(RuntimeGlobals.hmrDownloadUpdateHandlers)
245
- // ## .tap(pluginName, handler);
246
-
247
- _htmlWebpackPlugin.default.getHooks(compilation).beforeAssetTagGeneration.tap(pluginName, hookOptions => {
248
- const {
249
- assets
250
- } = hookOptions;
251
- const {
252
- templateLabel,
253
- filename,
254
- publicPath = ''
255
- } = this.options;
256
- const dummyContent = '// dummy comment';
257
- const initialChunks = compilation.chunks.filter(c => c.canBeInitial() && c.id !== c.runtime);
258
- const initialI18nAssets = initialChunks.map(c => {
259
- const data = createFilenameWithHash({
260
- fileNameTemplate: filename,
261
- chunk: c,
262
- locale: templateLabel,
263
- content: dummyContent
264
- });
265
- return (0, _urlConcat.urlConcat)(publicPath, data.filename);
266
- });
267
- const allJSAssets = [...initialI18nAssets, ...assets.js].map(url => url.replaceAll('[locale]', templateLabel).replaceAll('%5Blocale%5D', templateLabel));
268
- console.log('HtmlWebpackPluginallJSAssets', {
269
- assets,
270
- filename,
271
- allJSAssets
272
- });
273
- return {
274
- assets: { ...assets,
275
- js: allJSAssets
276
- }
277
- };
278
- });
279
- });
280
- }
281
-
282
- createI18nDownloadCodeInRuntimeFile(webpack, compilation, compiler) {
283
- const {
284
- RuntimeGlobals
285
- } = webpack;
286
- const {
287
- RawSource
288
- } = webpack.sources;
289
- const {
290
- chunkFilename,
291
- locales
292
- } = this.options;
293
- const chunkFilenameHasContentHash = (0, _hashUtils.hasContentHash)(chunkFilename);
294
-
295
- const getI18nChunks = mainChunk => this.filterI18nUsedChunks(mainChunk.getAllAsyncChunks());
296
-
297
- const I18nLoadingRuntimeModule = (0, _getI18nLoadingRuntimeModule.getI18nLoadingRuntimeModule)({
298
- getI18nChunks,
299
- webpack
300
- });
301
- const enabledChunks = new WeakSet();
302
-
303
- const chunkFilenameUrlgenerator = (i18nChunks, locale) => (0, _templateFileName.templateFileName)({
304
- compiler,
305
- compilation,
306
- locale,
307
- dynamicFilename: chunkFilename,
308
- contentHashes: this.getContentHashes(locale),
309
- chunks: i18nChunks
310
- });
311
-
312
- const prefixFunc = () => _constants.I18N_CHUNK_NAME_GENERATION_SEGMENT;
313
-
314
- const handler = (entryRuntimeChunk, set) => {
315
- if (enabledChunks.has(entryRuntimeChunk)) {
316
- return;
317
- }
318
-
319
- enabledChunks.add(entryRuntimeChunk);
320
- const {
321
- chunkFilename,
322
- // filename: initialFilename,
323
- runtimeOptions
324
- } = this.options;
325
-
326
- if (typeof chunkFilename === 'string' && /\[(full)?hash(:\d+)?\]/.test(chunkFilename)) {
327
- set.add(RuntimeGlobals.getFullHash);
328
- }
329
-
330
- set.add(RuntimeGlobals.publicPath);
331
- compilation.addRuntimeModule(entryRuntimeChunk, new I18nLoadingRuntimeModule(set, {
332
- prefixFunc: chunkFilenameHasContentHash ? prefixFunc : chunkFilenameUrlgenerator,
333
- compiler,
334
- runtimeOptions,
335
- chunkFilename
336
- }));
337
- };
338
-
339
- compilation.hooks.runtimeRequirementInTree.for(RuntimeGlobals.ensureChunkHandlers).tap(pluginName, handler);
340
-
341
- if (chunkFilenameHasContentHash) {
342
- compilation.hooks.processAssets.tap({
343
- name: pluginName,
344
- stage: _webpack.Compilation.PROCESS_ASSETS_STAGE_DERIVED // additionalAssets: true
345
-
346
- }, assets => {
347
- // eslint-disable-next-line no-underscore-dangle
348
- const entries = compilation._getChunkGraphEntries();
349
-
350
- function createRuntimeFilePerLocale({
351
- locale,
352
- runtimeFileName,
353
- runtimeFileSourceStr,
354
- i18nChunks
355
- }) {
356
- const newRuntimeName = runtimeFileName.replaceAll('[locale]', locale);
357
- const replaceText = chunkFilenameUrlgenerator(i18nChunks, locale);
358
- const replacedStr = runtimeFileSourceStr.replace(_constants.I18N_CHUNK_NAME_GENERATION_SEGMENT, replaceText);
359
- compilation.emitAsset(newRuntimeName, new RawSource(replacedStr));
360
- }
361
-
362
- for (const entryChunk of entries) {
363
- const i18nChunks = getI18nChunks(entryChunk);
364
- const runtimeFileName = entryChunk.files[0];
365
- const runtimeFileSourceStr = assets[runtimeFileName].source();
366
- locales.forEach(locale => createRuntimeFilePerLocale({
367
- locale,
368
- entryChunk,
369
- runtimeFileName,
370
- runtimeFileSourceStr,
371
- i18nChunks
372
- })); // NOTE: we don't delete, Because of HTML plugin needs to add runtime file in html
373
- // compilation.deleteAsset(runtimeFileName);
374
- }
375
- });
376
- }
377
- } // eslint-disable-next-line class-methods-use-this
378
-
379
-
380
- addToDefaultTypes(compiler) {
381
- const {
382
- splitChunks
383
- } = compiler.options.optimization;
384
-
385
- if (splitChunks) {
386
- if (splitChunks.defaultSizeTypes.includes('...')) {
387
- splitChunks.defaultSizeTypes.push(_constants.MODULE_TYPE);
388
- }
389
- }
390
- }
391
-
392
- }
393
-
394
- I18nExtractPlugin.pluginName = pluginName;
395
- I18nExtractPlugin.pluginSymbol = pluginSymbol; // I18nExtractPlugin.loader = require.resolve('./loader');
396
-
397
- module.exports = I18nExtractPlugin;
398
- /**
399
- * TODO:
400
- * move `localeChunkAssestMap` as separate module or file or class
401
- */