@twilio/flex-plugin-webpack5 0.0.1 → 7.1.4-alpha.202610140448

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 (45) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +39 -3
  3. package/dist/compiler.d.ts +38 -0
  4. package/dist/compiler.js +252 -0
  5. package/dist/compiler.js.map +1 -0
  6. package/dist/devServer/ipcServer.d.ts +73 -0
  7. package/dist/devServer/ipcServer.js +253 -0
  8. package/dist/devServer/ipcServer.js.map +1 -0
  9. package/dist/devServer/pluginServer.d.ts +79 -0
  10. package/dist/devServer/pluginServer.js +313 -0
  11. package/dist/devServer/pluginServer.js.map +1 -0
  12. package/dist/devServer/webpackDevServer.d.ts +11 -0
  13. package/dist/devServer/webpackDevServer.js +110 -0
  14. package/dist/devServer/webpackDevServer.js.map +1 -0
  15. package/dist/index.d.ts +16 -0
  16. package/dist/index.js +42 -0
  17. package/dist/index.js.map +1 -0
  18. package/dist/plugins/DelayRenderStaticPlugin.d.ts +4 -0
  19. package/dist/plugins/DelayRenderStaticPlugin.js +64 -0
  20. package/dist/plugins/DelayRenderStaticPlugin.js.map +1 -0
  21. package/dist/prints/devServerSuccessful.d.ts +12 -0
  22. package/dist/prints/devServerSuccessful.js +48 -0
  23. package/dist/prints/devServerSuccessful.js.map +1 -0
  24. package/dist/prints/dotEnvIncorrectVariable.d.ts +2 -0
  25. package/dist/prints/dotEnvIncorrectVariable.js +11 -0
  26. package/dist/prints/dotEnvIncorrectVariable.js.map +1 -0
  27. package/dist/prints/index.d.ts +3 -0
  28. package/dist/prints/index.js +13 -0
  29. package/dist/prints/index.js.map +1 -0
  30. package/dist/prints/remotePluginNotFound.d.ts +9 -0
  31. package/dist/prints/remotePluginNotFound.js +57 -0
  32. package/dist/prints/remotePluginNotFound.js.map +1 -0
  33. package/dist/webpack/clientVariables.d.ts +25 -0
  34. package/dist/webpack/clientVariables.js +107 -0
  35. package/dist/webpack/clientVariables.js.map +1 -0
  36. package/dist/webpack/pnpTs.d.ts +10 -0
  37. package/dist/webpack/pnpTs.js +14 -0
  38. package/dist/webpack/pnpTs.js.map +1 -0
  39. package/dist/webpack/webpack.config.d.ts +74 -0
  40. package/dist/webpack/webpack.config.js +569 -0
  41. package/dist/webpack/webpack.config.js.map +1 -0
  42. package/dist/webpack/webpack.dev.d.ts +22 -0
  43. package/dist/webpack/webpack.dev.js +80 -0
  44. package/dist/webpack/webpack.dev.js.map +1 -0
  45. package/package.json +78 -2
@@ -0,0 +1,74 @@
1
+ /// <reference types="src/module" />
2
+ import { Environment } from '@twilio/flex-dev-utils/dist/env';
3
+ import { Configuration, WebpackPluginInstance } from 'webpack5';
4
+ import { WebpackTypeWp5 } from '..';
5
+ /**
6
+ * Resolves the `typescript` module to use for type-checking a plugin project.
7
+ *
8
+ * `resolveModulePath('typescript')` resolves relative to this package's own installation
9
+ * (it only ever falls back to other paths if the bare `require.resolve` throws, which it
10
+ * never does here since this package always has some version of `typescript` available).
11
+ * That means, unpatched, every plugin gets type-checked against whatever TypeScript version
12
+ * this package happens to be built with, regardless of what the plugin itself declares and
13
+ * has installed - silently ignoring newer syntax the plugin's own TypeScript could parse fine.
14
+ * Prefer the plugin project's own installed `typescript`, and only fall back to this
15
+ * package's copy if the plugin has none.
16
+ * @private
17
+ */
18
+ export declare const _resolveProjectTypescriptPath: () => string | false;
19
+ /**
20
+ * Returns the JS scripts to inject into the index.html file
21
+ * @param flexUIVersion the flex-ui version
22
+ * @param reactVersion the react version
23
+ * @param reactDOMVersion the react-dom version
24
+ */
25
+ export declare const _getJSScripts: (flexUIVersion: string, reactVersion: string, reactDOMVersion: string) => string[];
26
+ /**
27
+ * Returns an array of {@link Plugin} for Webpack
28
+ * @param environment the environment
29
+ * @private
30
+ */
31
+ export declare const _getBasePlugins: (environment: Environment) => WebpackPluginInstance[];
32
+ /**
33
+ * Returns an array of {@link Plugin} for Webpack Static
34
+ * @param environment
35
+ */
36
+ export declare const _getStaticPlugins: (environment: Environment) => WebpackPluginInstance[];
37
+ /**
38
+ * Returns an array of {@link Plugin} for Webpack Javascript
39
+ * @param environment
40
+ */
41
+ export declare const _getJSPlugins: (environment: Environment) => WebpackPluginInstance[];
42
+ /**
43
+ * Returns the `entry` key of the webpack
44
+ * @private
45
+ */
46
+ export declare const _getJavaScriptEntries: () => string[];
47
+ /**
48
+ * Returns the `optimization` key of webpack
49
+ * @param environment the environment
50
+ * @private
51
+ */
52
+ export declare const _getOptimization: (environment: Environment) => any;
53
+ /**
54
+ * Returns the base {@link Configuration}
55
+ * @private
56
+ */
57
+ export declare const _getBase: (environment: Environment) => Configuration;
58
+ /**
59
+ * Returns the {@link Configuration} for static type
60
+ * @private
61
+ */
62
+ export declare const _getStaticConfiguration: (config: Configuration, environment: Environment) => Configuration;
63
+ /**
64
+ * Returns the {@link Configuration} for JS type
65
+ * @private
66
+ */
67
+ export declare const _getJavaScriptConfiguration: (config: Configuration, environment: Environment) => Configuration;
68
+ /**
69
+ * Main method for generating a webpack configuration
70
+ * @param environment
71
+ * @param type
72
+ */
73
+ declare const _default: (environment: Environment, type: WebpackTypeWp5) => Configuration;
74
+ export default _default;
@@ -0,0 +1,569 @@
1
+ "use strict";
2
+ /* eslint-disable global-require, @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires */
3
+ /// <reference path="../module.d.ts" />
4
+ var __assign = (this && this.__assign) || function () {
5
+ __assign = Object.assign || function(t) {
6
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
7
+ s = arguments[i];
8
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
9
+ t[p] = s[p];
10
+ }
11
+ return t;
12
+ };
13
+ return __assign.apply(this, arguments);
14
+ };
15
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ var desc = Object.getOwnPropertyDescriptor(m, k);
18
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
19
+ desc = { enumerable: true, get: function() { return m[k]; } };
20
+ }
21
+ Object.defineProperty(o, k2, desc);
22
+ }) : (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ o[k2] = m[k];
25
+ }));
26
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
27
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
28
+ }) : function(o, v) {
29
+ o["default"] = v;
30
+ });
31
+ var __importStar = (this && this.__importStar) || function (mod) {
32
+ if (mod && mod.__esModule) return mod;
33
+ var result = {};
34
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
35
+ __setModuleDefault(result, mod);
36
+ return result;
37
+ };
38
+ var __read = (this && this.__read) || function (o, n) {
39
+ var m = typeof Symbol === "function" && o[Symbol.iterator];
40
+ if (!m) return o;
41
+ var i = m.call(o), r, ar = [], e;
42
+ try {
43
+ while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
44
+ }
45
+ catch (error) { e = { error: error }; }
46
+ finally {
47
+ try {
48
+ if (r && !r.done && (m = i["return"])) m.call(i);
49
+ }
50
+ finally { if (e) throw e.error; }
51
+ }
52
+ return ar;
53
+ };
54
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
55
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
56
+ if (ar || !(i in from)) {
57
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
58
+ ar[i] = from[i];
59
+ }
60
+ }
61
+ return to.concat(ar || Array.prototype.slice.call(from));
62
+ };
63
+ var __importDefault = (this && this.__importDefault) || function (mod) {
64
+ return (mod && mod.__esModule) ? mod : { "default": mod };
65
+ };
66
+ Object.defineProperty(exports, "__esModule", { value: true });
67
+ exports._getJavaScriptConfiguration = exports._getStaticConfiguration = exports._getBase = exports._getOptimization = exports._getJavaScriptEntries = exports._getJSPlugins = exports._getStaticPlugins = exports._getBasePlugins = exports._getJSScripts = exports._resolveProjectTypescriptPath = void 0;
68
+ var module_scope_plugin_1 = __importDefault(require("@k88/module-scope-plugin"));
69
+ var flex_dev_utils_1 = require("@twilio/flex-dev-utils");
70
+ var env_1 = require("@twilio/flex-dev-utils/dist/env");
71
+ var fs_1 = __importStar(require("@twilio/flex-dev-utils/dist/fs"));
72
+ var fork_ts_checker_webpack_plugin_1 = __importDefault(require("fork-ts-checker-webpack-plugin"));
73
+ var html_webpack_plugin_wp5_1 = __importDefault(require("html-webpack-plugin-wp5"));
74
+ var pnp_webpack_plugin_1 = __importDefault(require("pnp-webpack-plugin"));
75
+ var terser_webpack_plugin_wp5_1 = __importDefault(require("terser-webpack-plugin-wp5"));
76
+ var webpack5_1 = require("webpack5");
77
+ var lodash_1 = require("lodash");
78
+ var clientVariables_1 = require("./clientVariables");
79
+ var __1 = require("..");
80
+ /*
81
+ * Self-import so internal calls between these exports go through the (spy-able) module
82
+ * namespace rather than a fixed local binding - lets jest.spyOn intercept same-module calls in tests.
83
+ */
84
+ // eslint-disable-next-line import/no-self-import
85
+ var self = __importStar(require("./webpack.config"));
86
+ /**
87
+ * Resolves the `typescript` module to use for type-checking a plugin project.
88
+ *
89
+ * `resolveModulePath('typescript')` resolves relative to this package's own installation
90
+ * (it only ever falls back to other paths if the bare `require.resolve` throws, which it
91
+ * never does here since this package always has some version of `typescript` available).
92
+ * That means, unpatched, every plugin gets type-checked against whatever TypeScript version
93
+ * this package happens to be built with, regardless of what the plugin itself declares and
94
+ * has installed - silently ignoring newer syntax the plugin's own TypeScript could parse fine.
95
+ * Prefer the plugin project's own installed `typescript`, and only fall back to this
96
+ * package's copy if the plugin has none.
97
+ * @private
98
+ */
99
+ var _resolveProjectTypescriptPath = function () {
100
+ try {
101
+ return require.resolve('typescript', { paths: [(0, fs_1.getPaths)().app.nodeModulesDir] });
102
+ }
103
+ catch (_a) {
104
+ return (0, fs_1.resolveModulePath)('typescript');
105
+ }
106
+ };
107
+ exports._resolveProjectTypescriptPath = _resolveProjectTypescriptPath;
108
+ /*
109
+ * interface Optimization {
110
+ * splitChunks?: false;
111
+ * runtimeChunk: boolean;
112
+ * minimize: boolean;
113
+ * minimizer: WebpackPluginInstance;
114
+ * }
115
+ */
116
+ var IMAGE_SIZE_BYTE = 10 * 1024;
117
+ var FLEX_SHIM = '@twilio/flex-plugin-scripts/dev_assets/flex-shim.js';
118
+ var EXTERNALS = {
119
+ react: 'React',
120
+ 'react-dom': 'ReactDOM',
121
+ redux: 'Redux',
122
+ 'react-redux': 'ReactRedux',
123
+ };
124
+ /**
125
+ * Returns the JS scripts to inject into the index.html file
126
+ * @param flexUIVersion the flex-ui version
127
+ * @param reactVersion the react version
128
+ * @param reactDOMVersion the react-dom version
129
+ */
130
+ var _getJSScripts = function (flexUIVersion, reactVersion, reactDOMVersion) {
131
+ var envSrc = flex_dev_utils_1.env.getFlexUISrc();
132
+ if (!flex_dev_utils_1.semver.satisfies(flexUIVersion, '>=1.19.0')) {
133
+ if (envSrc) {
134
+ return ["<script src=\"".concat(envSrc, "\"></script>")];
135
+ }
136
+ return [
137
+ "<script src=\"https://assets.flex.twilio.com/releases/flex-ui/".concat(flexUIVersion, "/twilio-flex.min.js\"></script>"),
138
+ ];
139
+ }
140
+ var flexUISrc = envSrc || "https://assets.flex.twilio.com/releases/flex-ui/".concat(flexUIVersion, "/twilio-flex.unbundled-react.min.js");
141
+ return [
142
+ "<script crossorigin src=\"https://unpkg.com/react@".concat(reactVersion, "/umd/react.development.js\"></script>"),
143
+ "<script crossorigin src=\"https://unpkg.com/react-dom@".concat(reactDOMVersion, "/umd/react-dom.development.js\"></script>"),
144
+ "<script src=\"".concat(flexUISrc, "\"></script>"),
145
+ ];
146
+ };
147
+ exports._getJSScripts = _getJSScripts;
148
+ /**
149
+ * Returns the Babel Loader configuration
150
+ * @param isProd whether this is a production build
151
+ */
152
+ /* c8 ignore next */
153
+ var _getBabelLoader = function (isProd) { return ({
154
+ test: new RegExp(".(".concat((0, fs_1.getPaths)().extensions.join('|'), ")$")),
155
+ include: (0, fs_1.getPaths)().app.srcDir,
156
+ loader: require.resolve('babel-loader'),
157
+ options: {
158
+ customize: require.resolve('babel-preset-react-app/webpack-overrides'),
159
+ babelrc: false,
160
+ configFile: false,
161
+ presets: [
162
+ require.resolve('@babel/preset-react'),
163
+ require.resolve('@babel/preset-env'),
164
+ require.resolve('@babel/preset-typescript'),
165
+ ],
166
+ plugins: [
167
+ [
168
+ require.resolve('babel-plugin-named-asset-import'),
169
+ {
170
+ loaderMap: {
171
+ svg: { ReactComponent: '@svgr/webpack?-svgo,+titleProp,+ref![path]' },
172
+ },
173
+ },
174
+ ],
175
+ ],
176
+ compact: isProd,
177
+ },
178
+ }); };
179
+ /**
180
+ * Gets the image loader
181
+ * @private
182
+ */
183
+ /* c8 ignore next */
184
+ var _getImageLoader = function () { return ({
185
+ test: [/\.bmp$/, /\.gif$/, /\.jpe?g$/, /\.png$/],
186
+ loader: require.resolve('url-loader'),
187
+ options: {
188
+ limit: IMAGE_SIZE_BYTE,
189
+ },
190
+ }); };
191
+ /**
192
+ * Gets the styles loader
193
+ * @param isProd whether this is a production build
194
+ * @private
195
+ */
196
+ var _getStyleLoaders = function (isProd) {
197
+ /**
198
+ * Gets the loader for the given style
199
+ * @param options the options
200
+ * @param preProcessor the pre-processor, for example scss-loader
201
+ * @param implementation the implementation for thr scss-loader
202
+ */
203
+ var getStyleLoader = function (options, preProcessor, implementation) {
204
+ var loaders = [];
205
+ // Main style loader to work when compiled
206
+ loaders.push(require.resolve('style-loader'));
207
+ // All css loader
208
+ loaders.push({
209
+ loader: require.resolve('css-loader'),
210
+ options: options,
211
+ }, {
212
+ loader: require.resolve('postcss-loader'),
213
+ options: {
214
+ postcssOptions: {
215
+ plugins: function () { return [
216
+ require('postcss-flexbugs-fixes'),
217
+ require('postcss-preset-env')({
218
+ autoprefixer: {
219
+ flexbox: 'no-2009',
220
+ },
221
+ stage: 3,
222
+ }),
223
+ ]; },
224
+ },
225
+ sourceMap: isProd,
226
+ },
227
+ });
228
+ // Add a pre-processor loader (converting SCSS to CSS)
229
+ if (preProcessor) {
230
+ var preProcessorOptions = {
231
+ sourceMap: isProd,
232
+ };
233
+ if (implementation) {
234
+ var nodePath = (0, fs_1.resolveModulePath)(implementation);
235
+ if (nodePath) {
236
+ preProcessorOptions.implementation = require(nodePath);
237
+ }
238
+ }
239
+ loaders.push({
240
+ loader: require.resolve('resolve-url-loader'),
241
+ options: {
242
+ sourceMap: isProd,
243
+ },
244
+ }, {
245
+ loader: require.resolve(preProcessor),
246
+ options: preProcessorOptions,
247
+ });
248
+ }
249
+ return loaders;
250
+ };
251
+ return [
252
+ {
253
+ test: /\.css$/,
254
+ exclude: /\.module\.css$/,
255
+ use: getStyleLoader({
256
+ importLoaders: 1,
257
+ sourceMap: isProd,
258
+ }),
259
+ sideEffects: true,
260
+ },
261
+ {
262
+ test: /\.module\.css$/,
263
+ use: getStyleLoader({
264
+ importLoaders: 1,
265
+ sourceMap: isProd,
266
+ modules: true,
267
+ }),
268
+ },
269
+ {
270
+ test: /\.(scss|sass)$/,
271
+ exclude: /\.module\.(scss|sass)$/,
272
+ use: getStyleLoader({
273
+ importLoaders: 3,
274
+ sourceMap: isProd,
275
+ }, 'sass-loader', 'node-sass'),
276
+ sideEffects: true,
277
+ },
278
+ {
279
+ test: /\.module\.(scss|sass)$/,
280
+ use: getStyleLoader({
281
+ importLoaders: 3,
282
+ sourceMap: isProd,
283
+ modules: true,
284
+ }, 'sass-loader', 'node-sass'),
285
+ },
286
+ ];
287
+ };
288
+ /**
289
+ * Returns an array of {@link Plugin} for Webpack
290
+ * @param environment the environment
291
+ * @private
292
+ */
293
+ var _getBasePlugins = function (environment) {
294
+ var plugins = [];
295
+ var flexUIVersion = (0, fs_1.getDependencyVersion)('@twilio/flex-ui');
296
+ var reactVersion = (0, fs_1.getDependencyVersion)('react');
297
+ var reactDOMVersion = (0, fs_1.getDependencyVersion)('react-dom');
298
+ var defined = {
299
+ __FPB_PLUGIN_UNIQUE_NAME: "'".concat((0, fs_1.getPaths)().app.name, "'"),
300
+ __FPB_PLUGIN_VERSION: "'".concat((0, fs_1.getPaths)().app.version, "'"),
301
+ __FPB_FLEX_PLUGIN_VERSION: "'".concat((0, fs_1.getDependencyVersion)('@twilio/flex-plugin'), "'"),
302
+ __FPB_FLEX_UI_VERSION: "'".concat(flexUIVersion, "'"),
303
+ __FPB_REACT_VERSION: "'".concat(reactVersion, "'"),
304
+ __FPB_REACT_DOM_VERSION: "'".concat(reactDOMVersion, "'"),
305
+ // backward compatibility with v3
306
+ __FPB_CRACO_CONFIG_FLEX_PLUGIN_VERSION: "'N/A'",
307
+ };
308
+ // The @k88/cra-webpack-hot-dev-client package requires these environment variables to be replaced
309
+ if (environment === env_1.Environment.Development) {
310
+ if (flex_dev_utils_1.env.getWDSSocketHost()) {
311
+ defined['process.env.WDS_SOCKET_HOST'] = flex_dev_utils_1.env.getWDSSocketHost();
312
+ }
313
+ if (flex_dev_utils_1.env.getWDSSocketPath()) {
314
+ defined['process.env.WDS_SOCKET_PATH'] = flex_dev_utils_1.env.getWDSSocketPath();
315
+ }
316
+ if (flex_dev_utils_1.env.getWDSSocketPort()) {
317
+ defined['process.env.WDS_SOCKET_PORT'] = flex_dev_utils_1.env.getWDSSocketPort();
318
+ }
319
+ }
320
+ plugins.push(new webpack5_1.DefinePlugin(__assign(__assign({}, defined), (0, clientVariables_1.getSanitizedProcessEnv)())));
321
+ return plugins;
322
+ };
323
+ exports._getBasePlugins = _getBasePlugins;
324
+ /**
325
+ * Returns an array of {@link Plugin} for Webpack Static
326
+ * @param environment
327
+ */
328
+ var _getStaticPlugins = function (environment) {
329
+ var plugins = [];
330
+ var dependencies = (0, fs_1.getPaths)().app.dependencies;
331
+ // index.html entry point
332
+ if (environment === env_1.Environment.Development) {
333
+ plugins.push(new webpack5_1.HotModuleReplacementPlugin());
334
+ plugins.push(new html_webpack_plugin_wp5_1.default({
335
+ inject: false,
336
+ templateContent: function () {
337
+ var content = fs_1.default.readFileSync((0, fs_1.getPaths)().scripts.indexHTMLPath, 'utf8');
338
+ // Ensure Webpack 5 expected syntax is in place
339
+ content = content.replace('%__FPB_JS_SCRIPTS%', '<%= __FPB_JS_SCRIPTS %>');
340
+ // Manually process the EJS template using lodash.template
341
+ return (0, lodash_1.template)(content)({
342
+ __FPB_JS_SCRIPTS: (0, exports._getJSScripts)(dependencies.flexUI.version, dependencies.react.version, dependencies.reactDom.version).join('\n'),
343
+ });
344
+ },
345
+ }));
346
+ }
347
+ return plugins;
348
+ };
349
+ exports._getStaticPlugins = _getStaticPlugins;
350
+ /**
351
+ * Returns an array of {@link Plugin} for Webpack Javascript
352
+ * @param environment
353
+ */
354
+ var _getJSPlugins = function (environment) {
355
+ var plugins = [];
356
+ var isDev = environment === env_1.Environment.Development;
357
+ var isProd = environment === env_1.Environment.Production;
358
+ if (isProd) {
359
+ plugins.push(new webpack5_1.SourceMapDevToolPlugin({
360
+ filename: "".concat((0, fs_1.getPaths)().app.name, ".js.map"),
361
+ module: false,
362
+ append: '\n//# sourceMappingURL=bundle.js.map',
363
+ }));
364
+ }
365
+ if ((0, fs_1.getPaths)().app.isTSProject()) {
366
+ var typescriptPath = (0, exports._resolveProjectTypescriptPath)();
367
+ var config = {
368
+ async: isDev,
369
+ typescript: {
370
+ typescriptPath: typescriptPath || undefined,
371
+ configFile: (0, fs_1.getPaths)().app.tsConfigPath,
372
+ diagnosticOptions: {
373
+ syntactic: true,
374
+ semantic: true,
375
+ declaration: false,
376
+ global: false,
377
+ },
378
+ },
379
+ issue: {
380
+ include: [{ file: '**' }],
381
+ exclude: [
382
+ { file: '**/__tests__/**' },
383
+ { file: '**/__mocks__/**' },
384
+ { file: '**/?(*.)(spec|test).*' },
385
+ { file: '**/src/setupProxy.*' },
386
+ { file: '**/src/setupTests.*' },
387
+ ],
388
+ },
389
+ formatter: isProd ? 'codeframe' : 'basic',
390
+ logger: 'webpack-infrastructure',
391
+ };
392
+ /*
393
+ * fork-ts-checker-webpack-plugin resolves its own nested copy of the `webpack` peer dependency,
394
+ * which TypeScript sees as a distinct (though compatible) Compiler type from our own webpack5 import.
395
+ */
396
+ plugins.push(new fork_ts_checker_webpack_plugin_1.default(config));
397
+ }
398
+ return plugins;
399
+ };
400
+ exports._getJSPlugins = _getJSPlugins;
401
+ /**
402
+ * Returns the `entry` key of the webpack
403
+ * @private
404
+ */
405
+ var _getJavaScriptEntries = function () {
406
+ var entry = [];
407
+ entry.push((0, fs_1.getPaths)().app.entryPath);
408
+ return entry;
409
+ };
410
+ exports._getJavaScriptEntries = _getJavaScriptEntries;
411
+ /**
412
+ * Returns the `optimization` key of webpack
413
+ * @param environment the environment
414
+ * @private
415
+ */
416
+ /* c8 ignore next */
417
+ var _getOptimization = function (environment) {
418
+ var isProd = environment === env_1.Environment.Production;
419
+ return {
420
+ splitChunks: false,
421
+ runtimeChunk: false,
422
+ minimize: isProd,
423
+ minimizer: [
424
+ new terser_webpack_plugin_wp5_1.default({
425
+ terserOptions: {
426
+ parse: {
427
+ ecma: 2017,
428
+ },
429
+ compress: {
430
+ ecma: 5,
431
+ comparisons: false,
432
+ inline: 2,
433
+ },
434
+ mangle: {
435
+ safari10: true,
436
+ },
437
+ // eslint-disable-next-line camelcase
438
+ keep_classnames: isProd,
439
+ // eslint-disable-next-line camelcase
440
+ keep_fnames: isProd,
441
+ output: {
442
+ ecma: 5,
443
+ comments: false,
444
+ // eslint-disable-next-line camelcase
445
+ ascii_only: true,
446
+ },
447
+ sourceMap: isProd,
448
+ },
449
+ }),
450
+ ],
451
+ };
452
+ };
453
+ exports._getOptimization = _getOptimization;
454
+ /**
455
+ * Returns the `resolve` key of webpack
456
+ * @param environment the environment
457
+ * @private
458
+ */
459
+ var _getResolve = function (environment) {
460
+ var isProd = environment === env_1.Environment.Production;
461
+ var extensions = (0, fs_1.getPaths)().app.isTSProject()
462
+ ? (0, fs_1.getPaths)().extensions
463
+ : (0, fs_1.getPaths)().extensions.filter(function (e) { return !e.includes('ts'); });
464
+ var paths = (0, fs_1.getPaths)();
465
+ var resolve = {
466
+ modules: [
467
+ 'node_modules',
468
+ paths.app.nodeModulesDir,
469
+ paths.scripts.nodeModulesDir,
470
+ paths.webpack.nodeModulesDir,
471
+ paths.cli.nodeModulesDir,
472
+ ],
473
+ extensions: extensions.map(function (e) { return ".".concat(e); }),
474
+ alias: {
475
+ '@twilio/flex-ui': FLEX_SHIM,
476
+ },
477
+ plugins: [pnp_webpack_plugin_1.default, new module_scope_plugin_1.default(paths.app.srcDir, [paths.app.pkgPath])],
478
+ };
479
+ if (isProd && resolve.alias) {
480
+ resolve.alias['scheduler/tracing'] = 'scheduler/tracing-profiling';
481
+ }
482
+ return resolve;
483
+ };
484
+ /**
485
+ * Returns the base {@link Configuration}
486
+ * @private
487
+ */
488
+ var _getBase = function (environment) {
489
+ var isProd = environment === env_1.Environment.Production;
490
+ var config = {
491
+ resolve: _getResolve(environment),
492
+ resolveLoader: {
493
+ plugins: [pnp_webpack_plugin_1.default.moduleLoader(module)],
494
+ },
495
+ externals: EXTERNALS,
496
+ module: {
497
+ strictExportPresence: true,
498
+ rules: [
499
+ {
500
+ oneOf: __spreadArray([_getImageLoader(), _getBabelLoader(isProd)], __read(_getStyleLoaders(isProd)), false),
501
+ },
502
+ ],
503
+ },
504
+ plugins: (0, exports._getBasePlugins)(environment),
505
+ };
506
+ config.mode = isProd ? env_1.Environment.Production : env_1.Environment.Development;
507
+ config.entry = [];
508
+ if (environment === env_1.Environment.Development) {
509
+ config.entry.push(require.resolve('@k88/cra-webpack-hot-dev-client/build'));
510
+ }
511
+ return config;
512
+ };
513
+ exports._getBase = _getBase;
514
+ /**
515
+ * Returns the {@link Configuration} for static type
516
+ * @private
517
+ */
518
+ var _getStaticConfiguration = function (config, environment) {
519
+ var _a;
520
+ config.plugins = config.plugins ? config.plugins : [];
521
+ (_a = config.plugins).push.apply(_a, __spreadArray([], __read(self._getStaticPlugins(environment)), false));
522
+ return config;
523
+ };
524
+ exports._getStaticConfiguration = _getStaticConfiguration;
525
+ /**
526
+ * Returns the {@link Configuration} for JS type
527
+ * @private
528
+ */
529
+ var _getJavaScriptConfiguration = function (config, environment) {
530
+ var _a, _b;
531
+ var isProd = environment === env_1.Environment.Production;
532
+ var filename = "".concat((0, fs_1.getPaths)().app.name);
533
+ var outputName = environment === env_1.Environment.Production ? filename : "plugins/".concat(filename);
534
+ config.entry = config.entry ? config.entry : [];
535
+ config.plugins = config.plugins ? config.plugins : [];
536
+ // @ts-ignore
537
+ (_a = config.entry).push.apply(_a, __spreadArray([], __read(self._getJavaScriptEntries()), false));
538
+ config.output = {
539
+ path: (0, fs_1.getPaths)().app.buildDir,
540
+ pathinfo: !isProd,
541
+ filename: "".concat(outputName, ".js"),
542
+ sourceMapFilename: "".concat(outputName, ".[contenthash].js.map"),
543
+ publicPath: '/',
544
+ globalObject: 'this',
545
+ };
546
+ config.bail = isProd;
547
+ config.devtool = isProd ? 'cheap-source-map' : 'source-map';
548
+ config.optimization = self._getOptimization(environment);
549
+ config.node = false;
550
+ (_b = config.plugins).push.apply(_b, __spreadArray([], __read(self._getJSPlugins(environment)), false));
551
+ return config;
552
+ };
553
+ exports._getJavaScriptConfiguration = _getJavaScriptConfiguration;
554
+ /**
555
+ * Main method for generating a webpack configuration
556
+ * @param environment
557
+ * @param type
558
+ */
559
+ exports.default = (function (environment, type) {
560
+ var config = self._getBase(environment);
561
+ if (type === __1.WebpackTypeWp5.Static) {
562
+ return self._getStaticConfiguration(config, environment);
563
+ }
564
+ if (type === __1.WebpackTypeWp5.JavaScript) {
565
+ return self._getJavaScriptConfiguration(config, environment);
566
+ }
567
+ return self._getJavaScriptConfiguration(self._getStaticConfiguration(config, environment), environment);
568
+ });
569
+ //# sourceMappingURL=webpack.config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webpack.config.js","sourceRoot":"","sources":["../../src/webpack/webpack.config.ts"],"names":[],"mappings":"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"}