@nx/webpack 16.0.0-beta.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 (143) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/LICENSE +22 -0
  3. package/README.md +63 -0
  4. package/executors.json +36 -0
  5. package/generators.json +33 -0
  6. package/index.d.ts +12 -0
  7. package/index.js +14 -0
  8. package/index.js.map +1 -0
  9. package/migrations.json +35 -0
  10. package/package.json +79 -0
  11. package/src/executors/dev-server/compat.d.ts +2 -0
  12. package/src/executors/dev-server/compat.js +6 -0
  13. package/src/executors/dev-server/compat.js.map +1 -0
  14. package/src/executors/dev-server/dev-server.impl.d.ts +7 -0
  15. package/src/executors/dev-server/dev-server.impl.js +69 -0
  16. package/src/executors/dev-server/dev-server.impl.js.map +1 -0
  17. package/src/executors/dev-server/lib/get-dev-server-config.d.ts +5 -0
  18. package/src/executors/dev-server/lib/get-dev-server-config.js +89 -0
  19. package/src/executors/dev-server/lib/get-dev-server-config.js.map +1 -0
  20. package/src/executors/dev-server/lib/serve-path.d.ts +3 -0
  21. package/src/executors/dev-server/lib/serve-path.js +46 -0
  22. package/src/executors/dev-server/lib/serve-path.js.map +1 -0
  23. package/src/executors/dev-server/schema.d.ts +17 -0
  24. package/src/executors/dev-server/schema.json +76 -0
  25. package/src/executors/ssr-dev-server/compat.d.ts +2 -0
  26. package/src/executors/ssr-dev-server/compat.js +6 -0
  27. package/src/executors/ssr-dev-server/compat.js.map +1 -0
  28. package/src/executors/ssr-dev-server/lib/wait-until-server-is-listening.d.ts +1 -0
  29. package/src/executors/ssr-dev-server/lib/wait-until-server-is-listening.js +40 -0
  30. package/src/executors/ssr-dev-server/lib/wait-until-server-is-listening.js.map +1 -0
  31. package/src/executors/ssr-dev-server/schema.d.ts +11 -0
  32. package/src/executors/ssr-dev-server/schema.json +37 -0
  33. package/src/executors/ssr-dev-server/ssr-dev-server.impl.d.ts +8 -0
  34. package/src/executors/ssr-dev-server/ssr-dev-server.impl.js +59 -0
  35. package/src/executors/ssr-dev-server/ssr-dev-server.impl.js.map +1 -0
  36. package/src/executors/webpack/compat.d.ts +2 -0
  37. package/src/executors/webpack/compat.js +6 -0
  38. package/src/executors/webpack/compat.js.map +1 -0
  39. package/src/executors/webpack/lib/get-webpack-config.d.ts +5 -0
  40. package/src/executors/webpack/lib/get-webpack-config.js +17 -0
  41. package/src/executors/webpack/lib/get-webpack-config.js.map +1 -0
  42. package/src/executors/webpack/lib/normalize-options.d.ts +4 -0
  43. package/src/executors/webpack/lib/normalize-options.js +71 -0
  44. package/src/executors/webpack/lib/normalize-options.js.map +1 -0
  45. package/src/executors/webpack/lib/run-webpack.d.ts +3 -0
  46. package/src/executors/webpack/lib/run-webpack.js +38 -0
  47. package/src/executors/webpack/lib/run-webpack.js.map +1 -0
  48. package/src/executors/webpack/schema.d.ts +105 -0
  49. package/src/executors/webpack/schema.json +414 -0
  50. package/src/executors/webpack/webpack.impl.d.ts +14 -0
  51. package/src/executors/webpack/webpack.impl.js +107 -0
  52. package/src/executors/webpack/webpack.impl.js.map +1 -0
  53. package/src/generators/init/init.d.ts +5 -0
  54. package/src/generators/init/init.js +41 -0
  55. package/src/generators/init/init.js.map +1 -0
  56. package/src/generators/init/schema.d.ts +5 -0
  57. package/src/generators/init/schema.json +28 -0
  58. package/src/generators/webpack-project/schema.d.ts +13 -0
  59. package/src/generators/webpack-project/schema.json +77 -0
  60. package/src/generators/webpack-project/webpack-project.d.ts +5 -0
  61. package/src/generators/webpack-project/webpack-project.js +111 -0
  62. package/src/generators/webpack-project/webpack-project.js.map +1 -0
  63. package/src/migrations/update-15-0-0/add-babel-inputs.d.ts +2 -0
  64. package/src/migrations/update-15-0-0/add-babel-inputs.js +13 -0
  65. package/src/migrations/update-15-0-0/add-babel-inputs.js.map +1 -0
  66. package/src/migrations/update-15-4-5/remove-es2015-polyfills-option.d.ts +2 -0
  67. package/src/migrations/update-15-4-5/remove-es2015-polyfills-option.js +25 -0
  68. package/src/migrations/update-15-4-5/remove-es2015-polyfills-option.js.map +1 -0
  69. package/src/migrations/update-15-6-3/webpack-config-setup.d.ts +2 -0
  70. package/src/migrations/update-15-6-3/webpack-config-setup.js +105 -0
  71. package/src/migrations/update-15-6-3/webpack-config-setup.js.map +1 -0
  72. package/src/migrations/update-15-7-2/add-babelUpwardRootMode-flag.d.ts +2 -0
  73. package/src/migrations/update-15-7-2/add-babelUpwardRootMode-flag.js +21 -0
  74. package/src/migrations/update-15-7-2/add-babelUpwardRootMode-flag.js.map +1 -0
  75. package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.d.ts +2 -0
  76. package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.js +13 -0
  77. package/src/migrations/update-16-0-0-add-nx-packages/update-16-0-0-add-nx-packages.js.map +1 -0
  78. package/src/plugins/generate-package-json-plugin.d.ts +12 -0
  79. package/src/plugins/generate-package-json-plugin.js +49 -0
  80. package/src/plugins/generate-package-json-plugin.js.map +1 -0
  81. package/src/plugins/stats-json-plugin.d.ts +4 -0
  82. package/src/plugins/stats-json-plugin.js +14 -0
  83. package/src/plugins/stats-json-plugin.js.map +1 -0
  84. package/src/plugins/webpack-nx-build-coordination-plugin.d.ts +9 -0
  85. package/src/plugins/webpack-nx-build-coordination-plugin.js +84 -0
  86. package/src/plugins/webpack-nx-build-coordination-plugin.js.map +1 -0
  87. package/src/plugins/write-index-html-plugin.d.ts +22 -0
  88. package/src/plugins/write-index-html-plugin.js +251 -0
  89. package/src/plugins/write-index-html-plugin.js.map +1 -0
  90. package/src/utils/config.d.ts +17 -0
  91. package/src/utils/config.js +35 -0
  92. package/src/utils/config.js.map +1 -0
  93. package/src/utils/create-copy-plugin.d.ts +3 -0
  94. package/src/utils/create-copy-plugin.js +28 -0
  95. package/src/utils/create-copy-plugin.js.map +1 -0
  96. package/src/utils/fs.d.ts +6 -0
  97. package/src/utils/fs.js +59 -0
  98. package/src/utils/fs.js.map +1 -0
  99. package/src/utils/get-client-environment.d.ts +5 -0
  100. package/src/utils/get-client-environment.js +30 -0
  101. package/src/utils/get-client-environment.js.map +1 -0
  102. package/src/utils/get-css-module-local-ident.d.ts +1 -0
  103. package/src/utils/get-css-module-local-ident.js +19 -0
  104. package/src/utils/get-css-module-local-ident.js.map +1 -0
  105. package/src/utils/hash-format.d.ts +7 -0
  106. package/src/utils/hash-format.js +24 -0
  107. package/src/utils/hash-format.js.map +1 -0
  108. package/src/utils/models.d.ts +23 -0
  109. package/src/utils/models.js +3 -0
  110. package/src/utils/models.js.map +1 -0
  111. package/src/utils/run-webpack.d.ts +5 -0
  112. package/src/utils/run-webpack.js +30 -0
  113. package/src/utils/run-webpack.js.map +1 -0
  114. package/src/utils/versions.d.ts +8 -0
  115. package/src/utils/versions.js +13 -0
  116. package/src/utils/versions.js.map +1 -0
  117. package/src/utils/web-babel-loader.d.ts +0 -0
  118. package/src/utils/web-babel-loader.js +29 -0
  119. package/src/utils/web-babel-loader.js.map +1 -0
  120. package/src/utils/webpack/custom-webpack.d.ts +3 -0
  121. package/src/utils/webpack/custom-webpack.js +42 -0
  122. package/src/utils/webpack/custom-webpack.js.map +1 -0
  123. package/src/utils/webpack/interpolate-env-variables-to-index.d.ts +1 -0
  124. package/src/utils/webpack/interpolate-env-variables-to-index.js +31 -0
  125. package/src/utils/webpack/interpolate-env-variables-to-index.js.map +1 -0
  126. package/src/utils/webpack/normalize-entry.d.ts +2 -0
  127. package/src/utils/webpack/normalize-entry.js +30 -0
  128. package/src/utils/webpack/normalize-entry.js.map +1 -0
  129. package/src/utils/webpack/package-chunk-sort.d.ts +5 -0
  130. package/src/utils/webpack/package-chunk-sort.js +30 -0
  131. package/src/utils/webpack/package-chunk-sort.js.map +1 -0
  132. package/src/utils/webpack/plugins/postcss-cli-resources.d.ts +13 -0
  133. package/src/utils/webpack/plugins/postcss-cli-resources.js +170 -0
  134. package/src/utils/webpack/plugins/postcss-cli-resources.js.map +1 -0
  135. package/src/utils/webpack/plugins/scripts-webpack-plugin.d.ts +17 -0
  136. package/src/utils/webpack/plugins/scripts-webpack-plugin.js +121 -0
  137. package/src/utils/webpack/plugins/scripts-webpack-plugin.js.map +1 -0
  138. package/src/utils/with-nx.d.ts +61 -0
  139. package/src/utils/with-nx.js +285 -0
  140. package/src/utils/with-nx.js.map +1 -0
  141. package/src/utils/with-web.d.ts +21 -0
  142. package/src/utils/with-web.js +468 -0
  143. package/src/utils/with-web.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-webpack.js","sourceRoot":"","sources":["../../../../../packages/webpack/src/utils/run-webpack.ts"],"names":[],"mappings":";;;AAEA,+BAAkC;AAGlC,SAAgB,mBAAmB,CACjC,MAAW,EACX,OAAiC,EACjC,gBAAqD;IAErD,OAAO,IAAI,iBAAU,CAAC,CAAC,UAAU,EAAE,EAAE;QACnC,MAAM,eAAe,GAAQ,OAAO,CAAC,MAAM,CAAC,CAAC;QAE7C,IAAI,OAAe,CAAC;QAEpB,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE,EAAE;YACxD,UAAU,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;QAEH,MAAM,eAAe,GAAI,MAAc,CAAC,SAAS,IAAI,EAAE,CAAC;QAExD,MAAM,gBAAgB,GAAG,eAAe,CAAC,WAAW,CAAC;QAErD,eAAe,CAAC,WAAW,GAAG,UAAU,MAAW;YACjD,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAEzB,MAAM,gBAAgB,GAAkC,MAAM,CAAC,OAAO,CAAC;YAEvE,OAAO,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,MAClD,MAAM,CAAC,OAAO,CAAC,IACjB,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,GAAG,gBAAgB,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;QACxE,CAAC,CAAC;QAEF,MAAM,aAAa,GAAG,IAAI,gBAAgB,CACxC,eAAe,EACf,eAAsB,CACvB,CAAC;QAEF,IAAI;YACF,aAAa,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;YAC5D,OAAO,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;SACnC;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;SACrD;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAxCD,kDAwCC"}
@@ -0,0 +1,8 @@
1
+ export declare const nxVersion: any;
2
+ export declare const swcLoaderVersion = "0.1.15";
3
+ export declare const swcHelpersVersion = "~0.4.11";
4
+ export declare const tsLibVersion = "^2.3.0";
5
+ export declare const reactRefreshWebpackPluginVersion = "^0.5.7";
6
+ export declare const svgrWebpackVersion = "^6.1.2";
7
+ export declare const reactRefreshVersion = "^0.10.0";
8
+ export declare const urlLoaderVersion = "^4.1.1";
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.urlLoaderVersion = exports.reactRefreshVersion = exports.svgrWebpackVersion = exports.reactRefreshWebpackPluginVersion = exports.tsLibVersion = exports.swcHelpersVersion = exports.swcLoaderVersion = exports.nxVersion = void 0;
4
+ exports.nxVersion = require('../../package.json').version;
5
+ exports.swcLoaderVersion = '0.1.15';
6
+ exports.swcHelpersVersion = '~0.4.11';
7
+ exports.tsLibVersion = '^2.3.0';
8
+ // React apps
9
+ exports.reactRefreshWebpackPluginVersion = '^0.5.7';
10
+ exports.svgrWebpackVersion = '^6.1.2';
11
+ exports.reactRefreshVersion = '^0.10.0';
12
+ exports.urlLoaderVersion = '^4.1.1';
13
+ //# sourceMappingURL=versions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../../../packages/webpack/src/utils/versions.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC;AAElD,QAAA,gBAAgB,GAAG,QAAQ,CAAC;AAC5B,QAAA,iBAAiB,GAAG,SAAS,CAAC;AAC9B,QAAA,YAAY,GAAG,QAAQ,CAAC;AAErC,aAAa;AACA,QAAA,gCAAgC,GAAG,QAAQ,CAAC;AAC5C,QAAA,kBAAkB,GAAG,QAAQ,CAAC;AAC9B,QAAA,mBAAmB,GAAG,SAAS,CAAC;AAChC,QAAA,gBAAgB,GAAG,QAAQ,CAAC"}
File without changes
@@ -0,0 +1,29 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ module.exports = require('babel-loader').custom(() => {
13
+ return {
14
+ customOptions(_a) {
15
+ var { isModern, emitDecoratorMetadata } = _a, loader = __rest(_a, ["isModern", "emitDecoratorMetadata"]);
16
+ return {
17
+ custom: { isModern, emitDecoratorMetadata },
18
+ loader,
19
+ };
20
+ },
21
+ config(cfg, { customOptions: { isModern, emitDecoratorMetadata } }) {
22
+ // Add hint to our babel preset so it can handle modern vs legacy bundles.
23
+ cfg.options.caller.isModern = isModern;
24
+ cfg.options.caller.emitDecoratorMetadata = emitDecoratorMetadata;
25
+ return cfg.options;
26
+ },
27
+ };
28
+ });
29
+ //# sourceMappingURL=web-babel-loader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"web-babel-loader.js","sourceRoot":"","sources":["../../../../../packages/webpack/src/utils/web-babel-loader.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,GAAG,EAAE;IACnD,OAAO;QACL,aAAa,CAAC,EAA8C;gBAA9C,EAAE,QAAQ,EAAE,qBAAqB,OAAa,EAAR,MAAM,cAA5C,qCAA8C,CAAF;YACxD,OAAO;gBACL,MAAM,EAAE,EAAE,QAAQ,EAAE,qBAAqB,EAAE;gBAC3C,MAAM;aACP,CAAC;QACJ,CAAC;QACD,MAAM,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,EAAE,QAAQ,EAAE,qBAAqB,EAAE,EAAE;YAChE,0EAA0E;YAC1E,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;YACvC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,qBAAqB,GAAG,qBAAqB,CAAC;YACjE,OAAO,GAAG,CAAC,OAAO,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function tsNodeRegister(file?: string, tsConfig?: string): void;
2
+ export declare function resolveCustomWebpackConfig(path: string, tsConfig: string): any;
3
+ export declare function isRegistered(): boolean;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isRegistered = exports.resolveCustomWebpackConfig = exports.tsNodeRegister = void 0;
4
+ function tsNodeRegister(file = '', tsConfig) {
5
+ if (!(file === null || file === void 0 ? void 0 : file.endsWith('.ts')))
6
+ return;
7
+ // Avoid double-registering which can lead to issues type-checking already transformed files.
8
+ if (isRegistered())
9
+ return;
10
+ // Register TS compiler lazily
11
+ require('ts-node').register({
12
+ project: tsConfig,
13
+ compilerOptions: {
14
+ module: 'CommonJS',
15
+ types: ['node'],
16
+ },
17
+ });
18
+ // Register paths in tsConfig
19
+ const tsconfigPaths = require('tsconfig-paths');
20
+ const { absoluteBaseUrl: baseUrl, paths } = tsconfigPaths.loadConfig(tsConfig);
21
+ if (baseUrl && paths) {
22
+ tsconfigPaths.register({ baseUrl, paths });
23
+ }
24
+ }
25
+ exports.tsNodeRegister = tsNodeRegister;
26
+ function resolveCustomWebpackConfig(path, tsConfig) {
27
+ tsNodeRegister(path, tsConfig);
28
+ const customWebpackConfig = require(path);
29
+ // If the user provides a configuration in TS file
30
+ // then there are 2 cases for exporing an object. The first one is:
31
+ // `module.exports = { ... }`. And the second one is:
32
+ // `export default { ... }`. The ESM format is compiled into:
33
+ // `{ default: { ... } }`
34
+ return customWebpackConfig.default || customWebpackConfig;
35
+ }
36
+ exports.resolveCustomWebpackConfig = resolveCustomWebpackConfig;
37
+ function isRegistered() {
38
+ return (require.extensions['.ts'] != undefined ||
39
+ require.extensions['.tsx'] != undefined);
40
+ }
41
+ exports.isRegistered = isRegistered;
42
+ //# sourceMappingURL=custom-webpack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"custom-webpack.js","sourceRoot":"","sources":["../../../../../../packages/webpack/src/utils/webpack/custom-webpack.ts"],"names":[],"mappings":";;;AAAA,SAAgB,cAAc,CAAC,OAAe,EAAE,EAAE,QAAiB;IACjE,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,CAAC,KAAK,CAAC,CAAA;QAAE,OAAO;IAEnC,6FAA6F;IAC7F,IAAI,YAAY,EAAE;QAAE,OAAO;IAE3B,8BAA8B;IAC9B,OAAO,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC;QAC1B,OAAO,EAAE,QAAQ;QACjB,eAAe,EAAE;YACf,MAAM,EAAE,UAAU;YAClB,KAAK,EAAE,CAAC,MAAM,CAAC;SAChB;KACF,CAAC,CAAC;IAEH,6BAA6B;IAC7B,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAChD,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,KAAK,EAAE,GACvC,aAAa,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACrC,IAAI,OAAO,IAAI,KAAK,EAAE;QACpB,aAAa,CAAC,QAAQ,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;KAC5C;AACH,CAAC;AAtBD,wCAsBC;AAED,SAAgB,0BAA0B,CAAC,IAAY,EAAE,QAAgB;IACvE,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAE/B,MAAM,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,kDAAkD;IAClD,mEAAmE;IACnE,qDAAqD;IACrD,6DAA6D;IAC7D,yBAAyB;IACzB,OAAO,mBAAmB,CAAC,OAAO,IAAI,mBAAmB,CAAC;AAC5D,CAAC;AAVD,gEAUC;AACD,SAAgB,YAAY;IAC1B,OAAO,CACL,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,SAAS;QACtC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,SAAS,CACxC,CAAC;AACJ,CAAC;AALD,oCAKC"}
@@ -0,0 +1 @@
1
+ export declare function interpolateEnvironmentVariablesToIndex(contents: string, deployUrl?: string): string;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.interpolateEnvironmentVariablesToIndex = void 0;
4
+ function interpolateEnvironmentVariablesToIndex(contents, deployUrl) {
5
+ const environmentVariables = getClientEnvironment(deployUrl || '');
6
+ return interpolateEnvironmentVariables(contents, environmentVariables);
7
+ }
8
+ exports.interpolateEnvironmentVariablesToIndex = interpolateEnvironmentVariablesToIndex;
9
+ const NX_PREFIX = /^NX_/i;
10
+ function isNxEnvironmentKey(x) {
11
+ return NX_PREFIX.test(x);
12
+ }
13
+ function getClientEnvironment(deployUrl) {
14
+ return Object.keys(process.env)
15
+ .filter(isNxEnvironmentKey)
16
+ .reduce((env, key) => {
17
+ env[key] = process.env[key];
18
+ return env;
19
+ }, {
20
+ NODE_ENV: process.env.NODE_ENV || 'development',
21
+ DEPLOY_URL: deployUrl || process.env.DEPLOY_URL || '',
22
+ });
23
+ }
24
+ function interpolateEnvironmentVariables(documentContents, environmentVariables) {
25
+ let temp = documentContents;
26
+ for (const [key, value] of Object.entries(environmentVariables)) {
27
+ temp = temp.replace(new RegExp(`%${key}%`, 'g'), value);
28
+ }
29
+ return temp;
30
+ }
31
+ //# sourceMappingURL=interpolate-env-variables-to-index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interpolate-env-variables-to-index.js","sourceRoot":"","sources":["../../../../../../packages/webpack/src/utils/webpack/interpolate-env-variables-to-index.ts"],"names":[],"mappings":";;;AAAA,SAAgB,sCAAsC,CACpD,QAAgB,EAChB,SAAkB;IAElB,MAAM,oBAAoB,GAAG,oBAAoB,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IACnE,OAAO,+BAA+B,CAAC,QAAQ,EAAE,oBAA2B,CAAC,CAAC;AAChF,CAAC;AAND,wFAMC;AAED,MAAM,SAAS,GAAG,OAAO,CAAC;AAE1B,SAAS,kBAAkB,CAAC,CAAS;IACnC,OAAO,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC3B,CAAC;AAED,SAAS,oBAAoB,CAAC,SAAiB;IAC7C,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;SAC5B,MAAM,CAAC,kBAAkB,CAAC;SAC1B,MAAM,CACL,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACX,GAAG,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC,EACD;QACE,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa;QAC/C,UAAU,EAAE,SAAS,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE;KACtD,CACF,CAAC;AACN,CAAC;AAED,SAAS,+BAA+B,CACtC,gBAAwB,EACxB,oBAA4C;IAE5C,IAAI,IAAI,GAAG,gBAAgB,CAAC;IAC5B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,oBAAoB,CAAC,EAAE;QAC/D,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,CAAC;KACzD;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,2 @@
1
+ import { ExtraEntryPoint, NormalizedEntryPoint } from '../models';
2
+ export declare function normalizeExtraEntryPoints(extraEntryPoints: ExtraEntryPoint[], defaultBundleName: string): NormalizedEntryPoint[];
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.normalizeExtraEntryPoints = void 0;
4
+ const tslib_1 = require("tslib");
5
+ function normalizeExtraEntryPoints(extraEntryPoints, defaultBundleName) {
6
+ return extraEntryPoints.map((entry) => {
7
+ let normalizedEntry;
8
+ if (typeof entry === 'string') {
9
+ normalizedEntry = {
10
+ input: entry,
11
+ inject: true,
12
+ bundleName: defaultBundleName,
13
+ };
14
+ }
15
+ else {
16
+ const { inject = true } = entry, newEntry = tslib_1.__rest(entry, ["inject"]);
17
+ let bundleName;
18
+ if (entry.bundleName) {
19
+ bundleName = entry.bundleName;
20
+ }
21
+ else {
22
+ bundleName = defaultBundleName;
23
+ }
24
+ normalizedEntry = Object.assign(Object.assign({}, newEntry), { bundleName });
25
+ }
26
+ return normalizedEntry;
27
+ });
28
+ }
29
+ exports.normalizeExtraEntryPoints = normalizeExtraEntryPoints;
30
+ //# sourceMappingURL=normalize-entry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalize-entry.js","sourceRoot":"","sources":["../../../../../../packages/webpack/src/utils/webpack/normalize-entry.ts"],"names":[],"mappings":";;;;AAEA,SAAgB,yBAAyB,CACvC,gBAAmC,EACnC,iBAAyB;IAEzB,OAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QACpC,IAAI,eAAe,CAAC;QACpB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,eAAe,GAAG;gBAChB,KAAK,EAAE,KAAK;gBACZ,MAAM,EAAE,IAAI;gBACZ,UAAU,EAAE,iBAAiB;aAC9B,CAAC;SACH;aAAM;YACL,MAAM,EAAE,MAAM,GAAG,IAAI,KAAkB,KAAK,EAAlB,QAAQ,kBAAK,KAAK,EAAtC,UAA8B,CAAQ,CAAC;YAC7C,IAAI,UAAU,CAAC;YAEf,IAAI,KAAK,CAAC,UAAU,EAAE;gBACpB,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;aAC/B;iBAAM;gBACL,UAAU,GAAG,iBAAiB,CAAC;aAChC;YAED,eAAe,mCAAQ,QAAQ,KAAE,UAAU,GAAE,CAAC;SAC/C;QAED,OAAO,eAAe,CAAC;IACzB,CAAC,CAAC,CAAC;AACL,CAAC;AA3BD,8DA2BC"}
@@ -0,0 +1,5 @@
1
+ import { ExtraEntryPoint } from '../models';
2
+ export declare function generateEntryPoints(appConfig: {
3
+ styles: ExtraEntryPoint[];
4
+ scripts: ExtraEntryPoint[];
5
+ }): string[];
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateEntryPoints = void 0;
4
+ const normalize_entry_1 = require("./normalize-entry");
5
+ function generateEntryPoints(appConfig) {
6
+ // Add all styles/scripts, except lazy-loaded ones.
7
+ const extraEntryPoints = (extraEntryPoints, defaultBundleName) => {
8
+ const entryPoints = (0, normalize_entry_1.normalizeExtraEntryPoints)(extraEntryPoints, defaultBundleName).map((entry) => entry.bundleName);
9
+ // remove duplicates
10
+ return [...new Set(entryPoints)];
11
+ };
12
+ const entryPoints = [
13
+ 'runtime',
14
+ 'polyfills',
15
+ 'sw-register',
16
+ ...extraEntryPoints(appConfig.styles, 'styles'),
17
+ ...extraEntryPoints(appConfig.scripts, 'scripts'),
18
+ 'vendor',
19
+ 'main',
20
+ ];
21
+ const duplicates = [
22
+ ...new Set(entryPoints.filter((x) => entryPoints.indexOf(x) !== entryPoints.lastIndexOf(x))),
23
+ ];
24
+ if (duplicates.length > 0) {
25
+ throw new Error(`Multiple bundles have been named the same: '${duplicates.join(`', '`)}'.`);
26
+ }
27
+ return entryPoints;
28
+ }
29
+ exports.generateEntryPoints = generateEntryPoints;
30
+ //# sourceMappingURL=package-chunk-sort.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-chunk-sort.js","sourceRoot":"","sources":["../../../../../../packages/webpack/src/utils/webpack/package-chunk-sort.ts"],"names":[],"mappings":";;;AACA,uDAA8D;AAE9D,SAAgB,mBAAmB,CAAC,SAGnC;IACC,mDAAmD;IACnD,MAAM,gBAAgB,GAAG,CACvB,gBAAmC,EACnC,iBAAyB,EACf,EAAE;QACZ,MAAM,WAAW,GAAG,IAAA,2CAAyB,EAC3C,gBAAgB,EAChB,iBAAiB,CAClB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAEnC,oBAAoB;QACpB,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG;QAClB,SAAS;QACT,WAAW;QACX,aAAa;QACb,GAAG,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC;QAC/C,GAAG,gBAAgB,CAAC,SAAS,CAAC,OAAO,EAAE,SAAS,CAAC;QACjD,QAAQ;QACR,MAAM;KACP,CAAC;IAEF,MAAM,UAAU,GAAG;QACjB,GAAG,IAAI,GAAG,CACR,WAAW,CAAC,MAAM,CAChB,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAC7D,CACF;KACF,CAAC;IAEF,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;QACzB,MAAM,IAAI,KAAK,CACb,+CAA+C,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAC3E,CAAC;KACH;IAED,OAAO,WAAW,CAAC;AACrB,CAAC;AA3CD,kDA2CC"}
@@ -0,0 +1,13 @@
1
+ import { LoaderContext } from 'webpack';
2
+ export interface PostcssCliResourcesOptions {
3
+ baseHref?: string;
4
+ deployUrl?: string;
5
+ resourcesOutputPath?: string;
6
+ rebaseRootRelative?: boolean;
7
+ filename: string;
8
+ loader: LoaderContext<unknown>;
9
+ }
10
+ export declare function PostcssCliResources(options: PostcssCliResourcesOptions): {
11
+ postcssPlugin: string;
12
+ Once(root: any): Promise<void[]>;
13
+ };
@@ -0,0 +1,170 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PostcssCliResources = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const loader_utils_1 = require("loader-utils");
6
+ const path = require("path");
7
+ const url = require("url");
8
+ function wrapUrl(url) {
9
+ let wrappedUrl;
10
+ const hasSingleQuotes = url.indexOf("'") >= 0;
11
+ if (hasSingleQuotes) {
12
+ wrappedUrl = `"${url}"`;
13
+ }
14
+ else {
15
+ wrappedUrl = `'${url}'`;
16
+ }
17
+ return `url(${wrappedUrl})`;
18
+ }
19
+ function resolve(file, base, resolver) {
20
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
21
+ try {
22
+ return yield resolver(`./${file}`, base);
23
+ }
24
+ catch (_a) {
25
+ return resolver(file, base);
26
+ }
27
+ });
28
+ }
29
+ module.exports.postcss = true;
30
+ function PostcssCliResources(options) {
31
+ const { deployUrl = '', baseHref = '', resourcesOutputPath = '', rebaseRootRelative = false, filename, loader, } = options;
32
+ const dedupeSlashes = (url) => url.replace(/\/\/+/g, '/');
33
+ const process = (inputUrl, context, resourceCache) => tslib_1.__awaiter(this, void 0, void 0, function* () {
34
+ // If root-relative, absolute or protocol relative url, leave as is
35
+ if (/^((?:\w+:)?\/\/|data:|chrome:|#)/.test(inputUrl)) {
36
+ return inputUrl;
37
+ }
38
+ if (!rebaseRootRelative && /^\//.test(inputUrl)) {
39
+ return inputUrl;
40
+ }
41
+ // If starts with a caret, remove and return remainder
42
+ // this supports bypassing asset processing
43
+ if (inputUrl.startsWith('^')) {
44
+ return inputUrl.slice(1);
45
+ }
46
+ const cacheKey = path.resolve(context, inputUrl);
47
+ const cachedUrl = resourceCache.get(cacheKey);
48
+ if (cachedUrl) {
49
+ return cachedUrl;
50
+ }
51
+ if (inputUrl.startsWith('~')) {
52
+ inputUrl = inputUrl.slice(1);
53
+ }
54
+ if (inputUrl.startsWith('/')) {
55
+ let outputUrl = '';
56
+ if (deployUrl.match(/:\/\//) || deployUrl.startsWith('/')) {
57
+ // If deployUrl is absolute or root relative, ignore baseHref & use deployUrl as is.
58
+ outputUrl = `${deployUrl.replace(/\/$/, '')}${inputUrl}`;
59
+ }
60
+ else if (baseHref.match(/:\/\//)) {
61
+ // If baseHref contains a scheme, include it as is.
62
+ outputUrl =
63
+ baseHref.replace(/\/$/, '') +
64
+ dedupeSlashes(`/${deployUrl}/${inputUrl}`);
65
+ }
66
+ else {
67
+ // Join together base-href, deploy-url and the original URL.
68
+ outputUrl = dedupeSlashes(`/${baseHref}/${deployUrl}/${inputUrl}`);
69
+ }
70
+ resourceCache.set(cacheKey, outputUrl);
71
+ return outputUrl;
72
+ }
73
+ const { pathname, hash, search } = url.parse(inputUrl.replace(/\\/g, '/'));
74
+ const resolver = (file, base) => new Promise((resolve, reject) => {
75
+ loader.resolve(base, decodeURI(file), (err, result) => {
76
+ if (err) {
77
+ reject(err);
78
+ return;
79
+ }
80
+ resolve(result);
81
+ });
82
+ });
83
+ const result = yield resolve(pathname, context, resolver);
84
+ return new Promise((resolve, reject) => {
85
+ loader.fs.readFile(result, (err, content) => {
86
+ if (err) {
87
+ reject(err);
88
+ return;
89
+ }
90
+ let outputPath = (0, loader_utils_1.interpolateName)({ resourcePath: result }, filename, { content });
91
+ if (resourcesOutputPath) {
92
+ outputPath = path.posix.join(resourcesOutputPath, outputPath);
93
+ }
94
+ loader.addDependency(result);
95
+ loader.emitFile(outputPath, content, undefined);
96
+ let outputUrl = outputPath.replace(/\\/g, '/');
97
+ if (hash || search) {
98
+ outputUrl = url.format({ pathname: outputUrl, hash, search });
99
+ }
100
+ const loaderOptions = loader.loaders[loader.loaderIndex].options;
101
+ if (deployUrl && loaderOptions.ident !== 'extracted') {
102
+ outputUrl = url.resolve(deployUrl, outputUrl);
103
+ }
104
+ resourceCache.set(cacheKey, outputUrl);
105
+ resolve(outputUrl);
106
+ });
107
+ });
108
+ });
109
+ return {
110
+ postcssPlugin: 'postcss-cli-resources',
111
+ Once(root) {
112
+ const urlDeclarations = [];
113
+ /**
114
+ * TODO: Explore if this can be rewritten using the new `Declaration()`
115
+ * listener added in postcss v8
116
+ */
117
+ root.walkDecls((decl) => {
118
+ if (decl.value && decl.value.includes('url')) {
119
+ urlDeclarations.push(decl);
120
+ }
121
+ });
122
+ if (urlDeclarations.length === 0) {
123
+ return;
124
+ }
125
+ const resourceCache = new Map();
126
+ return Promise.all(urlDeclarations.map((decl) => tslib_1.__awaiter(this, void 0, void 0, function* () {
127
+ const value = decl.value;
128
+ const urlRegex = /url\(\s*(?:"([^"]+)"|'([^']+)'|(.+?))\s*\)/g;
129
+ const segments = [];
130
+ let match;
131
+ let lastIndex = 0;
132
+ let modified = false;
133
+ // We want to load it relative to the file that imports
134
+ const inputFile = decl.source && decl.source.input.file;
135
+ const context = (inputFile && path.dirname(inputFile)) || loader.context;
136
+ // tslint:disable-next-line:no-conditional-assignment
137
+ while ((match = urlRegex.exec(value))) {
138
+ const originalUrl = match[1] || match[2] || match[3];
139
+ let processedUrl;
140
+ try {
141
+ processedUrl = yield process(originalUrl, context, resourceCache);
142
+ }
143
+ catch (err) {
144
+ loader.emitError(decl.error(err.message, { word: originalUrl }));
145
+ continue;
146
+ }
147
+ if (lastIndex < match.index) {
148
+ segments.push(value.slice(lastIndex, match.index));
149
+ }
150
+ if (!processedUrl || originalUrl === processedUrl) {
151
+ segments.push(match[0]);
152
+ }
153
+ else {
154
+ segments.push(wrapUrl(processedUrl));
155
+ modified = true;
156
+ }
157
+ lastIndex = match.index + match[0].length;
158
+ }
159
+ if (lastIndex < value.length) {
160
+ segments.push(value.slice(lastIndex));
161
+ }
162
+ if (modified) {
163
+ decl.value = segments.join('');
164
+ }
165
+ })));
166
+ },
167
+ };
168
+ }
169
+ exports.PostcssCliResources = PostcssCliResources;
170
+ //# sourceMappingURL=postcss-cli-resources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postcss-cli-resources.js","sourceRoot":"","sources":["../../../../../../../packages/webpack/src/utils/webpack/plugins/postcss-cli-resources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import * as webpack from 'webpack';
2
+ export interface ScriptsWebpackPluginOptions {
3
+ name: string;
4
+ sourceMap: boolean;
5
+ scripts: string[];
6
+ filename: string;
7
+ basePath: string;
8
+ }
9
+ export declare class ScriptsWebpackPlugin {
10
+ private options;
11
+ private _lastBuildTime?;
12
+ private _cachedOutput?;
13
+ constructor(options?: Partial<ScriptsWebpackPluginOptions>);
14
+ shouldSkip(compilation: any, scripts: string[]): boolean;
15
+ private _insertOutput;
16
+ apply(compiler: webpack.Compiler): void;
17
+ }
@@ -0,0 +1,121 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ScriptsWebpackPlugin = void 0;
4
+ const loader_utils_1 = require("loader-utils");
5
+ const path = require("path");
6
+ const webpack = require("webpack");
7
+ const Chunk = require('webpack/lib/Chunk');
8
+ const EntryPoint = require('webpack/lib/Entrypoint');
9
+ function addDependencies(compilation, scripts) {
10
+ for (const script of scripts) {
11
+ compilation.fileDependencies.add(script);
12
+ }
13
+ }
14
+ function hook(compiler, action) {
15
+ compiler.hooks.thisCompilation.tap('scripts-webpack-plugin', (compilation) => {
16
+ compilation.hooks.additionalAssets.tapAsync('scripts-webpack-plugin', (callback) => action(compilation, callback));
17
+ });
18
+ }
19
+ class ScriptsWebpackPlugin {
20
+ constructor(options = {}) {
21
+ this.options = options;
22
+ }
23
+ shouldSkip(compilation, scripts) {
24
+ var _a;
25
+ if (this._lastBuildTime == undefined) {
26
+ this._lastBuildTime = Date.now();
27
+ return false;
28
+ }
29
+ for (let i = 0; i < scripts.length; i++) {
30
+ const scriptTime = (_a = compilation.fileTimestamps) === null || _a === void 0 ? void 0 : _a.get(scripts[i]);
31
+ if (!scriptTime || scriptTime > this._lastBuildTime) {
32
+ this._lastBuildTime = Date.now();
33
+ return false;
34
+ }
35
+ }
36
+ return true;
37
+ }
38
+ _insertOutput(compilation, { filename, source }, cached = false) {
39
+ const chunk = new Chunk(this.options.name);
40
+ chunk.rendered = !cached;
41
+ chunk.id = this.options.name;
42
+ chunk.ids = [chunk.id];
43
+ if (chunk.files instanceof Set) {
44
+ chunk.files.add(filename);
45
+ }
46
+ else if (chunk.files instanceof Array) {
47
+ chunk.files.push(filename);
48
+ }
49
+ const entrypoint = new EntryPoint(this.options.name);
50
+ entrypoint.pushChunk(chunk);
51
+ chunk.addGroup(entrypoint);
52
+ compilation.entrypoints.set(this.options.name, entrypoint);
53
+ if (compilation.chunks instanceof Set) {
54
+ compilation.chunks.add(chunk);
55
+ }
56
+ else if (compilation.chunks instanceof Array) {
57
+ compilation.chunks.push(chunk);
58
+ }
59
+ compilation.assets[filename] = source;
60
+ }
61
+ apply(compiler) {
62
+ if (!this.options.scripts || this.options.scripts.length === 0) {
63
+ return;
64
+ }
65
+ const scripts = this.options.scripts
66
+ .filter((script) => !!script)
67
+ .map((script) => path.resolve(this.options.basePath || '', script));
68
+ hook(compiler, (compilation, callback) => {
69
+ if (this.shouldSkip(compilation, scripts)) {
70
+ if (this._cachedOutput) {
71
+ this._insertOutput(compilation, this._cachedOutput, true);
72
+ }
73
+ addDependencies(compilation, scripts);
74
+ callback();
75
+ return;
76
+ }
77
+ const sourceGetters = scripts.map((fullPath) => {
78
+ return new Promise((resolve, reject) => {
79
+ compilation.inputFileSystem.readFile(fullPath, (err, data) => {
80
+ if (err) {
81
+ reject(err);
82
+ return;
83
+ }
84
+ const content = data.toString();
85
+ let source;
86
+ if (this.options.sourceMap) {
87
+ // TODO: Look for source map file (for '.min' scripts, etc.)
88
+ let adjustedPath = fullPath;
89
+ if (this.options.basePath) {
90
+ adjustedPath = path.relative(this.options.basePath, fullPath);
91
+ }
92
+ source = new webpack.sources.OriginalSource(content, adjustedPath);
93
+ }
94
+ else {
95
+ source = new webpack.sources.RawSource(content);
96
+ }
97
+ resolve(source);
98
+ });
99
+ });
100
+ });
101
+ Promise.all(sourceGetters)
102
+ .then((sources) => {
103
+ const concatSource = new webpack.sources.ConcatSource();
104
+ sources.forEach((source) => {
105
+ concatSource.add(source);
106
+ concatSource.add('\n;');
107
+ });
108
+ const combinedSource = new webpack.sources.CachedSource(concatSource);
109
+ const filename = (0, loader_utils_1.interpolateName)({ resourcePath: 'scripts.js' }, this.options.filename, { content: combinedSource.source() });
110
+ const output = { filename, source: combinedSource };
111
+ this._insertOutput(compilation, output);
112
+ this._cachedOutput = output;
113
+ addDependencies(compilation, scripts);
114
+ callback();
115
+ })
116
+ .catch((err) => callback(err));
117
+ });
118
+ }
119
+ }
120
+ exports.ScriptsWebpackPlugin = ScriptsWebpackPlugin;
121
+ //# sourceMappingURL=scripts-webpack-plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts-webpack-plugin.js","sourceRoot":"","sources":["../../../../../../../packages/webpack/src/utils/webpack/plugins/scripts-webpack-plugin.ts"],"names":[],"mappings":"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"}