@zohodesk/client_build_tool 0.0.16 → 0.0.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog and Release Notes
2
2
 
3
+ # v0.0.17 (22-12-2025)
4
+
5
+ **Feature:-**
6
+ - `alias` support for `build:es` and `build:lib`
7
+ - Add babel-plugin-module-resolver dependencies for library only
8
+ - Modify getBabelPlugin to include module resolver with aliases
9
+ - An additional entry point support has been added.
10
+ - An option for HTML generation has been provided.
11
+ - Support for CssCustomOrderPlugin has been added.
12
+
13
+ **Adjustments:-**
14
+ - ChunkHierarchyPlugin.js – modified and rewrite the plugin to get the proper output (this is the stable version of this plugin).
15
+
16
+
3
17
  # v0.0.16 (05-11-2025)
4
18
 
5
19
  **Adjustments:-**
package/README.md CHANGED
@@ -463,6 +463,189 @@ For example
463
463
  - `customAttributes` support for add attributes to html, link , script tag in the output build.
464
464
 
465
465
 
466
+ ## v0.0.1 (18-04-2023)
467
+
468
+ First Release
469
+ **Features:-**
470
+
471
+ - 'start' command to run react app
472
+ - 'build' command to create build for react app
473
+ - 'build:lib' command to create lib for react library
474
+ - 'build:es' command to create es for react library
475
+ - 'templates' command to create es for react library
476
+ # Changelog and Release Notes
477
+
478
+ # v0.0.17 (22-12-2025)
479
+
480
+ **Feature:-**
481
+ - `alias` support for `build:es` and `build:lib`
482
+ - Add babel-plugin-module-resolver dependencies for library only
483
+ - Modify getBabelPlugin to include module resolver with aliases
484
+ - An additional entry point support has been added.
485
+ - An option for HTML generation has been provided.
486
+ - Support for CssCustomOrderPlugin has been added.
487
+
488
+ **Adjustments:-**
489
+ - ChunkHierarchyPlugin.js – modified and rewrite the plugin to get the proper output (this is the stable version of this plugin).
490
+
491
+
492
+ # v0.0.16 (05-11-2025)
493
+
494
+ **Adjustments:-**
495
+ - ChunkHierarchyPlugin.js – Added support for ConcatenatedModule modules.
496
+ - InjectChunkGraphPlugin.js – Changed the template name from {{--preload-chunk-graph-object}} to __PRELOAD_CHUNK_GRAPH__ to resolve minification issues.
497
+ - Disabled CSS source map generation – CSS source maps were being created when RTL split was disabled and sourceMap was enabled, causing issues. Hence, CSS source map creation has been disabled
498
+ - Source map path correction – The resolving paths in source map files appeared as zohodesk-react/./src, which was incompatible with the Murphy tool. Updated it to zohodesk-react/src by adding a function to devtoolModuleFilenameTemplate in the output configuration.
499
+ - ChunkHierarchyPlugin – Made it active in development mode as well by removing the “run only in production” condition.
500
+
501
+ # v0.0.15 (11-10-2025)
502
+
503
+ **Feature:-**
504
+ - Chunk Dependency Mapping: Added a new feature that generates a JSON file listing all chunk dependencies in the Webpack build
505
+ For example, if main.js is a chunk, the generated JSON will include all of its direct imports (dependencies).
506
+ - Purpose:
507
+ To provide clear visibility into chunk relationships and dependencies for debugging, optimization, and performance analysis.
508
+
509
+ ```
510
+ chunkGraph:{
511
+ enable: { value: true },
512
+ fileName: ''
513
+ }
514
+ ```
515
+
516
+ - Preload Chunk Split Visualization
517
+ Enhanced the Preload Chunk (PLC) mechanism to identify and list the sub-chunks generated from a preloaded parent chunk.
518
+ When a chunk is configured for preloading (e.g., ticket.js), the system now traces and records all the split chunks associated with it — for example
519
+
520
+ if resourceHints not enabled plc , pfc and custom function related to this are not created
521
+
522
+ ```
523
+ resourceHints: {
524
+ enable: true,
525
+ PreloadChunkNames: [//name of chunks to be preload//]
526
+ },
527
+ ```
528
+
529
+
530
+ # v0.0.14 (06-10-2025)
531
+
532
+ **Feature:-**
533
+ - Added integrity and crossorigin attributes for all the js and css files in index.html
534
+
535
+ ```enableSubResourceIntegrity: true
536
+ ```
537
+ **Adjustments:-**
538
+ - add ts-loader to parse tsx and ts files
539
+
540
+ # v0.0.13 (02-09-2025)
541
+
542
+ **Adjustments:-**
543
+ - Source map files are created in the smap/ folder by default. However, they are also being created in the js/ folder to resolve the issue where Murphy was unable to locate them.
544
+
545
+ **Feature:-**
546
+ - Added support for Murphy to be built as a separate chunk and injected as the top script in the initial HTML.
547
+ - To enable this support , add this in your configuration
548
+
549
+ ```murphyBootstrapHtml{
550
+ enable: true,
551
+ chunkName: '',
552
+ filePath: ''
553
+ }```
554
+
555
+
556
+
557
+ # v0.0.12 (14-08-2025)
558
+
559
+ - Fixed the initial i18n loading issue caused by using the same function in both the i18nRuntimeDealer plugin and decidePublicPath
560
+
561
+ # v0.0.11 (07-08-2025) (had an issue while enable i18n chunk split plugin)
562
+ - remove babel-plugin-module-resolver dependencies
563
+
564
+ **Adjustments:-**
565
+ - Public Folder configuration is separated for development and production
566
+
567
+ **Bug Fix:-**
568
+ - Fixed the issue where the build log was not visible when `stats (bundle integrity)` was enabled. The problem was resolved by adding an error check in the `bundleIntegrity plugin`.
569
+ - Removed the babel-plugin-module-resolver dependency to resolve the alias resolution issue in the application.
570
+ - Fixed the issue where a space in the variable name causes it to return an undefined value.
571
+ - Fixed the URL path generation issue that occurred while using context in the development setup.
572
+
573
+
574
+ # v0.0.10 (12-05-2025)
575
+ **Feature:-**
576
+ - `alias` support for `build:es` and `build:lib`
577
+ - Add babel-plugin-module-resolver dependencies
578
+ - Modify getBabelPlugin to include module resolver with aliases
579
+
580
+ **Bug Fix:-**
581
+ - Enhance runBabelForTSFile to handle both .tsx and .ts file extensions
582
+ - Update mockApiHandler to ensure mock function is called correctly
583
+
584
+ **Change:-**
585
+ - Refactor defaultConfigValues.js to include cli options for enableRTLSplit
586
+
587
+ ## v0.0.9
588
+
589
+ **Feature:-**
590
+ - externals was added to Prevent bundling of certain imported packages and retrieve these external dependencies at runtime.
591
+ - to use externals, we use the following pattern in `app > externals` :
592
+
593
+ For example
594
+ ```
595
+ externals: {
596
+ <key> : <value>
597
+ }
598
+ ```
599
+
600
+ ## v0.0.6 (4-09-2023)
601
+
602
+ **Feature:-**
603
+ - Generating bundle integrity report json file for the build assets only in production mode. To use this feature we need to add `stats > enable` or cli flags `enable_stats`.
604
+ - Added Resource Cleanup plugin to cleanup resource retained by build tool. this plugin is controlled by efc flag resourcecleanup flag.
605
+ - added support for using regex expression to get group of chunks chunkId via Resource Hint plugin prefetch/preload hook.
606
+ only will be activate when `resourceHints` => `allowPrefetchingMultipleChunks` as `true`
607
+ - added support for glob pattern for custom chunks split logic.
608
+ - added options to split chunks base config in the key `app` => `customChunksBaseConfig` as object
609
+
610
+ **Change:-**
611
+ - i18n name not generated issue fix.
612
+ - public path not correctly set issue fix.
613
+ - changing plugin hook stages in i18nRuntimePlugin and sourceMapPlugin
614
+ ## v0.0.5 (6-08-2023)
615
+
616
+ **Changes:--**
617
+ - Typo fix in i18nRuntimeDealerPlugin.js
618
+ - fixing some bugs in resolvers.js file
619
+
620
+ ## v0.0.3 (1-08-2023)
621
+
622
+ **Changes:--**
623
+ - `devtool` default value changed from `hidden-cheap-source-map` to `source-map`
624
+ - unwanted files deleted from build
625
+
626
+ **Issue Fix:--**
627
+ - The issue with the source map not being created in the build has been fixed."
628
+
629
+
630
+ ## v0.0.2 (28-04-2023)
631
+
632
+ **Features:-**
633
+
634
+ - `devModeContentHashAllowedTypes` support added for some project there will be a need for hash even though they run dev mode. for details [details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/3.0.0/packages/client_build_tool/ConfigurationDocumentation.md#devModeContentHashAllowedTypes)
635
+ - `devLikeHash` support for disable content hash for file names in production mode. for details [details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/3.0.0/packages/client_build_tool/ConfigurationDocumentation.md#devLikeHash)
636
+ - `disableReactDevWarning` disable react dev warning such as prop-type warnings will be removed in dev mode build or server. for details [details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/3.0.0/packages/client_build_tool/ConfigurationDocumentation.md#disableReactDevWarning) can be enabled via `--disable_react_dev_warning` too.
637
+ - `statsLogConfig` support to customize default webpack log after build finished. for details [details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/3.0.0/packages/client_build_tool/ConfigurationDocumentation.md#statsLogConfig) can be enabled via `--disable_react_dev_warning` too.
638
+ - `enableChunkHash` renamed as `enableFileNameHashing`
639
+
640
+ - `pre_processor` command to run the preprocessor.js file.preProcessor runs in build, start, buildEs, buildLib commands bu default. and we have watch mode support as well with the option (`-w`)
641
+ - `createSeparateSmap` flag `source_map_enable` renamed as `enable_smap`
642
+ - `removeAttribute` option changes as `babelCustomizations.removeAttribute`
643
+ - `removePropTypes` support for remove the prop types package in the output build.
644
+ - `devConsoleExclude` support for remove the _console statements_ such as _console.log_, _console.warn_ in the output build.
645
+ - `manifestJson` default value set as false.
646
+ - `customAttributes` support for add attributes to html, link , script tag in the output build.
647
+
648
+
466
649
  ## v0.0.1 (18-04-2023)
467
650
 
468
651
  First Release
package/README_backup.md CHANGED
@@ -294,6 +294,175 @@ For example
294
294
  - `customAttributes` support for add attributes to html, link , script tag in the output build.
295
295
 
296
296
 
297
+ ## v0.0.1 (18-04-2023)
298
+
299
+ First Release
300
+ **Features:-**
301
+
302
+ - 'start' command to run react app
303
+ - 'build' command to create build for react app
304
+ - 'build:lib' command to create lib for react library
305
+ - 'build:es' command to create es for react library
306
+ - 'templates' command to create es for react library
307
+ # Changelog and Release Notes
308
+
309
+ # v0.0.16 (05-11-2025)
310
+
311
+ **Adjustments:-**
312
+ - ChunkHierarchyPlugin.js – Added support for ConcatenatedModule modules.
313
+ - InjectChunkGraphPlugin.js – Changed the template name from {{--preload-chunk-graph-object}} to __PRELOAD_CHUNK_GRAPH__ to resolve minification issues.
314
+ - Disabled CSS source map generation – CSS source maps were being created when RTL split was disabled and sourceMap was enabled, causing issues. Hence, CSS source map creation has been disabled
315
+ - Source map path correction – The resolving paths in source map files appeared as zohodesk-react/./src, which was incompatible with the Murphy tool. Updated it to zohodesk-react/src by adding a function to devtoolModuleFilenameTemplate in the output configuration.
316
+ - ChunkHierarchyPlugin – Made it active in development mode as well by removing the “run only in production” condition.
317
+
318
+ # v0.0.15 (11-10-2025)
319
+
320
+ **Feature:-**
321
+ - Chunk Dependency Mapping: Added a new feature that generates a JSON file listing all chunk dependencies in the Webpack build
322
+ For example, if main.js is a chunk, the generated JSON will include all of its direct imports (dependencies).
323
+ - Purpose:
324
+ To provide clear visibility into chunk relationships and dependencies for debugging, optimization, and performance analysis.
325
+
326
+ ```
327
+ chunkGraph:{
328
+ enable: { value: true },
329
+ fileName: ''
330
+ }
331
+ ```
332
+
333
+ - Preload Chunk Split Visualization
334
+ Enhanced the Preload Chunk (PLC) mechanism to identify and list the sub-chunks generated from a preloaded parent chunk.
335
+ When a chunk is configured for preloading (e.g., ticket.js), the system now traces and records all the split chunks associated with it — for example
336
+
337
+ if resourceHints not enabled plc , pfc and custom function related to this are not created
338
+
339
+ ```
340
+ resourceHints: {
341
+ enable: true,
342
+ PreloadChunkNames: [//name of chunks to be preload//]
343
+ },
344
+ ```
345
+
346
+
347
+ # v0.0.14 (06-10-2025)
348
+
349
+ **Feature:-**
350
+ - Added integrity and crossorigin attributes for all the js and css files in index.html
351
+
352
+ ```enableSubResourceIntegrity: true
353
+ ```
354
+ **Adjustments:-**
355
+ - add ts-loader to parse tsx and ts files
356
+
357
+ # v0.0.13 (02-09-2025)
358
+
359
+ **Adjustments:-**
360
+ - Source map files are created in the smap/ folder by default. However, they are also being created in the js/ folder to resolve the issue where Murphy was unable to locate them.
361
+
362
+ **Feature:-**
363
+ - Added support for Murphy to be built as a separate chunk and injected as the top script in the initial HTML.
364
+ - To enable this support , add this in your configuration
365
+
366
+ ```murphyBootstrapHtml{
367
+ enable: true,
368
+ chunkName: '',
369
+ filePath: ''
370
+ }```
371
+
372
+
373
+
374
+ # v0.0.12 (14-08-2025)
375
+
376
+ - Fixed the initial i18n loading issue caused by using the same function in both the i18nRuntimeDealer plugin and decidePublicPath
377
+
378
+ # v0.0.11 (07-08-2025) (had an issue while enable i18n chunk split plugin)
379
+ - remove babel-plugin-module-resolver dependencies
380
+
381
+ **Adjustments:-**
382
+ - Public Folder configuration is separated for development and production
383
+
384
+ **Bug Fix:-**
385
+ - Fixed the issue where the build log was not visible when `stats (bundle integrity)` was enabled. The problem was resolved by adding an error check in the `bundleIntegrity plugin`.
386
+ - Removed the babel-plugin-module-resolver dependency to resolve the alias resolution issue in the application.
387
+ - Fixed the issue where a space in the variable name causes it to return an undefined value.
388
+ - Fixed the URL path generation issue that occurred while using context in the development setup.
389
+
390
+
391
+ # v0.0.10 (12-05-2025)
392
+ **Feature:-**
393
+ - `alias` support for `build:es` and `build:lib`
394
+ - Add babel-plugin-module-resolver dependencies
395
+ - Modify getBabelPlugin to include module resolver with aliases
396
+
397
+ **Bug Fix:-**
398
+ - Enhance runBabelForTSFile to handle both .tsx and .ts file extensions
399
+ - Update mockApiHandler to ensure mock function is called correctly
400
+
401
+ **Change:-**
402
+ - Refactor defaultConfigValues.js to include cli options for enableRTLSplit
403
+
404
+ ## v0.0.9
405
+
406
+ **Feature:-**
407
+ - externals was added to Prevent bundling of certain imported packages and retrieve these external dependencies at runtime.
408
+ - to use externals, we use the following pattern in `app > externals` :
409
+
410
+ For example
411
+ ```
412
+ externals: {
413
+ <key> : <value>
414
+ }
415
+ ```
416
+
417
+ ## v0.0.6 (4-09-2023)
418
+
419
+ **Feature:-**
420
+ - Generating bundle integrity report json file for the build assets only in production mode. To use this feature we need to add `stats > enable` or cli flags `enable_stats`.
421
+ - Added Resource Cleanup plugin to cleanup resource retained by build tool. this plugin is controlled by efc flag resourcecleanup flag.
422
+ - added support for using regex expression to get group of chunks chunkId via Resource Hint plugin prefetch/preload hook.
423
+ only will be activate when `resourceHints` => `allowPrefetchingMultipleChunks` as `true`
424
+ - added support for glob pattern for custom chunks split logic.
425
+ - added options to split chunks base config in the key `app` => `customChunksBaseConfig` as object
426
+
427
+ **Change:-**
428
+ - i18n name not generated issue fix.
429
+ - public path not correctly set issue fix.
430
+ - changing plugin hook stages in i18nRuntimePlugin and sourceMapPlugin
431
+ ## v0.0.5 (6-08-2023)
432
+
433
+ **Changes:--**
434
+ - Typo fix in i18nRuntimeDealerPlugin.js
435
+ - fixing some bugs in resolvers.js file
436
+
437
+ ## v0.0.3 (1-08-2023)
438
+
439
+ **Changes:--**
440
+ - `devtool` default value changed from `hidden-cheap-source-map` to `source-map`
441
+ - unwanted files deleted from build
442
+
443
+ **Issue Fix:--**
444
+ - The issue with the source map not being created in the build has been fixed."
445
+
446
+
447
+ ## v0.0.2 (28-04-2023)
448
+
449
+ **Features:-**
450
+
451
+ - `devModeContentHashAllowedTypes` support added for some project there will be a need for hash even though they run dev mode. for details [details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/3.0.0/packages/client_build_tool/ConfigurationDocumentation.md#devModeContentHashAllowedTypes)
452
+ - `devLikeHash` support for disable content hash for file names in production mode. for details [details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/3.0.0/packages/client_build_tool/ConfigurationDocumentation.md#devLikeHash)
453
+ - `disableReactDevWarning` disable react dev warning such as prop-type warnings will be removed in dev mode build or server. for details [details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/3.0.0/packages/client_build_tool/ConfigurationDocumentation.md#disableReactDevWarning) can be enabled via `--disable_react_dev_warning` too.
454
+ - `statsLogConfig` support to customize default webpack log after build finished. for details [details](https://zgit.csez.zohocorpin.com/zohodesk/react-cli/-/blob/3.0.0/packages/client_build_tool/ConfigurationDocumentation.md#statsLogConfig) can be enabled via `--disable_react_dev_warning` too.
455
+ - `enableChunkHash` renamed as `enableFileNameHashing`
456
+
457
+ - `pre_processor` command to run the preprocessor.js file.preProcessor runs in build, start, buildEs, buildLib commands bu default. and we have watch mode support as well with the option (`-w`)
458
+ - `createSeparateSmap` flag `source_map_enable` renamed as `enable_smap`
459
+ - `removeAttribute` option changes as `babelCustomizations.removeAttribute`
460
+ - `removePropTypes` support for remove the prop types package in the output build.
461
+ - `devConsoleExclude` support for remove the _console statements_ such as _console.log_, _console.warn_ in the output build.
462
+ - `manifestJson` default value set as false.
463
+ - `customAttributes` support for add attributes to html, link , script tag in the output build.
464
+
465
+
297
466
  ## v0.0.1 (18-04-2023)
298
467
 
299
468
  First Release
@@ -7,14 +7,15 @@ exports.default = void 0;
7
7
 
8
8
  var _os = require("os");
9
9
 
10
- var _webpack = require("webpack");
11
-
12
10
  // NOTE: Don't use 'config_file' as cli option it was reserved
13
11
  var _default = {
14
12
  context: {
15
13
  value: 'app',
16
14
  cli: 'context'
17
15
  },
16
+ library: {
17
+ ignorePatterns: []
18
+ },
18
19
  devtool: 'source-map',
19
20
  statsLogConfig: null,
20
21
  stats: {
@@ -183,6 +184,11 @@ var _default = {
183
184
  prod: ['...']
184
185
  },
185
186
  app: {
187
+ AdditionalEntry: {
188
+ enable: false,
189
+ entryFile: 'src/widget.js',
190
+ entryPointName: 'widget'
191
+ },
186
192
  entryFile: {
187
193
  value: 'src/index.js',
188
194
  cli: 'entry'
@@ -198,6 +204,7 @@ var _default = {
198
204
  alias: null
199
205
  },
200
206
  htmlTemplate: {
207
+ generateHtml: true,
201
208
  crossorigin: {
202
209
  value: false,
203
210
  cli: 'enable_crossorigin'
@@ -302,8 +309,7 @@ var _default = {
302
309
  },
303
310
  customLoaders: [],
304
311
  resourceHints: {
305
- enable: false,
306
- PreloadChunkNames: []
312
+ allowPrefetchingMultipleChunks: false
307
313
  },
308
314
  devModeContentHashAllowedTypes: null,
309
315
  nameTemplateCustomization: null,
@@ -369,6 +375,10 @@ var _default = {
369
375
  cli: 'chunk_graph_enable'
370
376
  },
371
377
  fileName: ''
378
+ },
379
+ cssOrderControler: {
380
+ enable: false,
381
+ className: 'customCss'
372
382
  }
373
383
  };
374
384
  exports.default = _default;
@@ -30,7 +30,7 @@ function babelWebConfig(options, mode) {
30
30
  } = options.typeScript;
31
31
  return {
32
32
  presets: typeScriptEnable ? [getBabelPresetEnvConfig(browserList, mode), require.resolve('@babel/preset-react'), require.resolve('@babel/preset-typescript')] : [getBabelPresetEnvConfig(browserList, mode), require.resolve('@babel/preset-react')],
33
- plugins: customBabelPlugins(babelPlugins).concat((0, _getBabelPlugin.getBabelPlugin)(options)).filter(Boolean)
33
+ plugins: customBabelPlugins(babelPlugins).concat((0, _getBabelPlugin.getBabelPlugin)(options, mode)).filter(Boolean)
34
34
  };
35
35
  }
36
36
 
@@ -16,12 +16,22 @@ const babelPluginMapping = {
16
16
  };
17
17
  const babelPluginOrder = ['removeAttribute', 'removePropTypes', 'devConsoleExclude'];
18
18
 
19
- function getBabelPlugin(options) {
19
+ function getBabelPlugin(options, command) {
20
20
  const {
21
21
  mode
22
- } = options; // let customPlugins = [];
23
-
22
+ } = options;
23
+ const {
24
+ alias
25
+ } = options.resolve;
24
26
  let customPlugins = [];
27
+
28
+ if (command == 'es' || command == 'lib') {
29
+ customPlugins = [[require.resolve('babel-plugin-module-resolver'), {
30
+ root: ['./'],
31
+ alias
32
+ }]];
33
+ }
34
+
25
35
  const {
26
36
  babelCustomizations
27
37
  } = options;
@@ -11,18 +11,32 @@ var _babelWebConfig = require("./babelWebConfig");
11
11
 
12
12
  var _copyFile = require("../fileUtils/copyFile");
13
13
 
14
+ var _fs = require("fs");
15
+
14
16
  function runBabelForTSFile({
15
17
  filename,
16
18
  outputFile,
17
19
  options,
18
20
  mode = 'es'
19
21
  }) {
22
+ const {
23
+ ignorePatterns
24
+ } = options.library;
20
25
  const {
21
26
  enable
22
27
  } = options.typeScript;
23
28
 
24
29
  if (enable) {
25
- // const jsSourceCode = readFileSync(filename).toString();
30
+ function shouldIgnore(filename) {
31
+ return ignorePatterns.some(pattern => pattern.test(filename));
32
+ }
33
+
34
+ if (shouldIgnore(filename)) {
35
+ const jsSourceCode = (0, _fs.readFileSync)(filename).toString();
36
+ (0, _copyFile.writeFile)(outputFile, jsSourceCode);
37
+ return;
38
+ }
39
+
26
40
  const babelConfig = (0, _babelWebConfig.babelWebConfig)(options, mode);
27
41
  const result = (0, _core.transformFileSync)(filename, babelConfig);
28
42
  (0, _copyFile.writeFile)(outputFile.replace('.tsx', '.js').replace('.ts', '.js'), result.code);
@@ -1,78 +1,68 @@
1
1
  "use strict";
2
2
 
3
3
  // plugins/ChunkHierarchyPlugin.js
4
- const fs = require("fs");
4
+ const fs = require('fs');
5
5
 
6
- const path = require("path");
6
+ const path = require('path');
7
7
 
8
8
  class ChunkHierarchyPlugin {
9
- constructor(outputFileName) {
10
- this.outputFileName = outputFileName || "chunk-hierarchy-report.json";
9
+ constructor(outputFile) {
10
+ this.outputFile = outputFile || 'chunk-hierarchy-report.json';
11
11
  }
12
12
 
13
13
  apply(compiler) {
14
- compiler.hooks.afterEmit.tap("ChunkHierarchyPlugin", compilation => {
15
- try {
16
- const {
17
- chunkGraph,
18
- moduleGraph
19
- } = compilation;
20
- const hierarchy = {};
14
+ compiler.hooks.emit.tapAsync('ChunkHierarchyPlugin', (compilation, callback) => {
15
+ const result = {};
16
+ const rootContext = path.resolve(compiler.context, '..', '..');
21
17
 
22
- for (const chunk of compilation.chunks) {
23
- // skip unnamed or runtime chunks
24
- if (chunk.name && chunk.name.includes("runtime")) {
25
- continue;
26
- }
18
+ for (const chunk of compilation.chunks) {
19
+ const chunkName = chunk.name || chunk.id;
20
+ const modules = [];
27
21
 
28
- ;
29
- const modules = chunkGraph.getChunkModulesIterable(chunk);
30
- const deps = new Set();
22
+ for (const module of compilation.chunkGraph.getChunkModulesIterable(chunk)) {
23
+ // Recursively extract real modules (handle ConcatenatedModules)
24
+ collectModules(module, modules, rootContext);
25
+ }
31
26
 
32
- for (const module of modules) {
33
- for (const conn of moduleGraph.getOutgoingConnections(module)) {
34
- if (!conn.module) continue;
35
- const mod = conn.module;
27
+ result[chunkName] = modules;
28
+ }
36
29
 
37
- const ConcatenatedModule = require("webpack/lib/optimize/ConcatenatedModule");
30
+ const json = JSON.stringify(result, null, 2);
31
+ const outputPath = compiler.outputPath;
32
+ const outputFile = path.join(outputPath, this.outputFile);
33
+ fs.mkdirSync(outputPath, {
34
+ recursive: true
35
+ });
36
+ fs.writeFileSync(outputFile, json, 'utf-8');
37
+ callback();
38
+ });
39
+ }
38
40
 
39
- if (mod instanceof ConcatenatedModule) {
40
- for (const inner of mod.modules) {
41
- if (inner.resource) {
42
- const match = inner.resource.match(/(?<!node_modules\/)jsapps\/.*/);
41
+ }
43
42
 
44
- if (match && /^(?!.*node_modules).*$/.test(match)) {
45
- deps.add(match[0]);
46
- }
47
- }
48
- }
49
- } else {
50
- const identifier = mod.resource || mod.identifier();
51
- const match = identifier && identifier.match(/(?<!node_modules\/)jsapps\/.*/);
43
+ function collectModules(module, modules, context) {
44
+ // Handle normal modules
45
+ if (module.resource) {
46
+ console.log(module.resource);
47
+ modules.push(path.relative(context, module.resource));
48
+ return;
49
+ } // Handle ConcatenatedModule (webpack internal)
52
50
 
53
- if (match && /^(?!.*node_modules).*$/.test(match)) {
54
- deps.add(match[0]);
55
- }
56
- }
57
- }
58
- }
59
51
 
60
- hierarchy[chunk.name || chunk.id] = Array.from(deps);
61
- }
52
+ if (module.modules) {
53
+ for (const innerModule of module.modules) {
54
+ collectModules(innerModule, modules, context);
55
+ }
56
+ } // Handle Webpack 5 internal API (ConcatenatedModule inside _orderedConcatenationList)
62
57
 
63
- const outputPath = compiler.options.output.path;
64
- const outputFile = path.join(outputPath, this.outputFileName); // Ensure folder exists before writing
65
58
 
66
- fs.mkdirSync(outputPath, {
67
- recursive: true
68
- });
69
- fs.writeFileSync(outputFile, JSON.stringify(hierarchy, null, 2), "utf-8");
70
- } catch (err) {
71
- console.error("❌ ChunkHierarchyPlugin failed:", err);
59
+ if (module._orderedConcatenationList) {
60
+ for (const item of module._orderedConcatenationList) {
61
+ if (item.module) {
62
+ collectModules(item.module, modules, context);
72
63
  }
73
- });
64
+ }
74
65
  }
75
-
76
66
  }
77
67
 
78
68
  module.exports = ChunkHierarchyPlugin;
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _webpack = require("webpack");
9
+
10
+ /* eslint-disable class-methods-use-this */
11
+ const pluginName = 'CssCustomOrderPlugin'; // TODO: Check for css minimizer plugin
12
+
13
+ class CssCustomOrderPlugin {
14
+ constructor(className) {
15
+ this.className = className || 'customCss';
16
+ }
17
+
18
+ apply(compiler) {
19
+ const {
20
+ RawSource
21
+ } = compiler.webpack.sources;
22
+ compiler.hooks.compilation.tap(pluginName, compilation => {
23
+ compilation.hooks.processAssets.tapAsync({
24
+ name: pluginName,
25
+ stage: _webpack.Compilation.PROCESS_ASSETS_STAGE_OPTIMIZE_SIZE
26
+ }, (assets, callback) => {
27
+ Object.keys(assets).filter(file => file.includes('runtime')).forEach(filename => {
28
+ try {
29
+ let source = assets[filename].source().toString();
30
+ let changedCode = `var referenceTag = document.getElementById(${this.className});
31
+ document.head.insertBefore(linkTag, referenceTag);`;
32
+ const result = source.replace('document.head.appendChild(linkTag);', changedCode);
33
+ compilation.updateAsset(filename, new RawSource(result));
34
+ callback();
35
+ } catch (e) {
36
+ console.error("issue in CssCustomOrderPlugin");
37
+ compilation.errors.push(e);
38
+ callback(e);
39
+ }
40
+ });
41
+ });
42
+ });
43
+ }
44
+
45
+ }
46
+
47
+ exports.default = CssCustomOrderPlugin;
@@ -22,8 +22,11 @@ const pluginName = 'prefetch-preload-chunk-plugin';
22
22
 
23
23
  class ResourceHintsPlugin {
24
24
  constructor({
25
- publicPath
25
+ publicPath,
26
+ resourceHints
26
27
  }) {
28
+ this.resourceHints = resourceHints;
29
+ this.allowPrefetchingMultipleChunks = resourceHints.allowPrefetchingMultipleChunks;
27
30
  this.publicPathsTemplateObj = {
28
31
  js: publicPath,
29
32
  css: publicPath,
@@ -50,6 +53,7 @@ class ResourceHintsPlugin {
50
53
  compilation.addRuntimeModule(entryRuntimeChunk, // eslint-disable-next-line no-use-before-define
51
54
  new ResourceHintsRuntimePlugin(compiler, {
52
55
  chunk: entryRuntimeChunk,
56
+ allowPrefetchingMultipleChunks: this.allowPrefetchingMultipleChunks,
53
57
  publicPathsTemplateObj
54
58
  }));
55
59
  };
@@ -65,11 +69,13 @@ exports.default = ResourceHintsPlugin;
65
69
  class ResourceHintsRuntimePlugin extends _webpack.RuntimeModule {
66
70
  constructor(compiler, {
67
71
  chunk,
68
- publicPathsTemplateObj
72
+ publicPathsTemplateObj,
73
+ allowPrefetchingMultipleChunks
69
74
  }) {
70
75
  super('ResourceHintsRuntimePlugin loading', 10);
71
76
  this.compiler = compiler;
72
77
  this.publicPathsTemplateObj = publicPathsTemplateObj;
78
+ this.allowPrefetchingMultipleChunks = allowPrefetchingMultipleChunks;
73
79
  this.chunk = chunk;
74
80
  }
75
81
 
@@ -79,7 +85,7 @@ class ResourceHintsRuntimePlugin extends _webpack.RuntimeModule {
79
85
  } = this;
80
86
  const idNameMap = chunk.getChunkMaps().name;
81
87
  const nameIdMap = {};
82
- let needsMap = false;
88
+ let needsMap = this.allowPrefetchingMultipleChunks;
83
89
  Object.keys(idNameMap).forEach(key => {
84
90
  const value = idNameMap[key];
85
91
  nameIdMap[value] = key;
@@ -105,7 +111,7 @@ class ResourceHintsRuntimePlugin extends _webpack.RuntimeModule {
105
111
  */
106
112
 
107
113
  return _webpack.Template.asString([`const ntc = ${JSON.stringify(needsMap ? nameIdMap : {})};
108
- // const cns = Object.keys(ntc);
114
+ const cns = Object.keys(ntc);
109
115
 
110
116
  function clt(href, rel) {
111
117
  let link = document.createElement("link");
@@ -123,8 +129,8 @@ class ResourceHintsRuntimePlugin extends _webpack.RuntimeModule {
123
129
  //return !url.includes(".undefined.");
124
130
  return url.indexOf(".undefined") === -1;
125
131
  }
126
- function lpp(chunkId, rel) {
127
- // let chunkId = ${_webpack.RuntimeGlobals.require}.getChunkId(_chunkId);
132
+ function lpp(_chunkId, rel) {
133
+ let chunkId = ${_webpack.RuntimeGlobals.require}.getChunkId(_chunkId);
128
134
  // ${_webpack.RuntimeGlobals.require}.e(chunkId);
129
135
  if(__webpack_require__.O.j(chunkId)) {
130
136
  return;
@@ -139,29 +145,33 @@ class ResourceHintsRuntimePlugin extends _webpack.RuntimeModule {
139
145
  }
140
146
  }
141
147
 
142
- ${_webpack.RuntimeGlobals.require}.getChunkId = function getChunkId(chunkName) {
143
- return ntc[chunkName]||chunkName;
148
+ ${_webpack.RuntimeGlobals.require}.getChunkId = function getChunkId(chunkId) {
149
+ ${needsMap ? 'chunkId = ntc[chunkId]||chunkId;' : ''}
150
+ return chunkId;
144
151
  }
145
-
146
- // Preload a chunk (${pluginName})
147
- ${_webpack.RuntimeGlobals.require}.plc = function preloadChunk(chunkId) {
148
- const preloadChunkGraph = __PRELOAD_CHUNK_GRAPH__
152
+ ${_webpack.RuntimeGlobals.require}.getChunkIds = function getChunkIds(chunkId) {
153
+ ${// eslint-disable-next-line no-nested-ternary
154
+ this.allowPrefetchingMultipleChunks ? `
155
+ const isRegExAsChunkId = chunkId instanceof RegExp;
156
+ if(isRegExAsChunkId) {
157
+ return cns.filter(chunkName => chunkId.test(chunkName)).map(chunkName => ntc[chunkName]);
158
+ }
159
+ return [${_webpack.RuntimeGlobals.require}.getChunkId(chunkId)];
160
+ ` : `return [${_webpack.RuntimeGlobals.require}.getChunkId(chunkId)];`}
161
+ }
162
+ // Prefetch a chunk (${pluginName})
163
+ ${_webpack.RuntimeGlobals.require}.pfc = function prefetchChunk(chunkId) {
149
164
  ${`
150
- if (typeof preloadChunkGraph !== 'object' || !preloadChunkGraph) return;
151
- preloadChunkGraph[chunkId].forEach(idOfAChunk => {
152
- ${_webpack.RuntimeGlobals.require}.e(idOfAChunk);
153
- })
154
- // let idOfAChunk = ${_webpack.RuntimeGlobals.require}.getChunkId(chunkId);
155
- // chunkIds.forEach(idOfAChunk => {
156
- // ${_webpack.RuntimeGlobals.require}.e(idOfAChunk);
157
- // })
158
- `}
165
+ let chunkIds = ${_webpack.RuntimeGlobals.require}.getChunkIds(chunkId);
166
+ chunkIds.forEach(idOfAChunk => {
167
+ ${_webpack.RuntimeGlobals.require}.e(idOfAChunk);
168
+ })`}
159
169
  };
160
170
 
161
- // Prefetch a chunk (${pluginName})
162
- ${_webpack.RuntimeGlobals.require}.pfc = function prefetchChunk(chunkId) {
163
- let idOfAChunk = ${_webpack.RuntimeGlobals.require}.getChunkId(chunkId);
164
- lpp(idOfAChunk, "prefetch");
171
+ // Preload a chunk (${pluginName})
172
+ ${_webpack.RuntimeGlobals.require}.plc = function preloadChunk(chunkId) {
173
+ let idOfAChunk = ${_webpack.RuntimeGlobals.require}.getChunkIds(chunkId)[0];
174
+ lpp(idOfAChunk, "preload");
165
175
  }
166
176
  ` // `// Prefetch a chunk (${pluginName})`,
167
177
  // `${RuntimeGlobals.require}.pfc = function prefetchChunk(chunkId) {`,
@@ -180,17 +190,4 @@ class ResourceHintsRuntimePlugin extends _webpack.RuntimeModule {
180
190
  ]);
181
191
  }
182
192
 
183
- } // ${RuntimeGlobals.require}.getChunkIds = function getChunkIds(chunkId) {
184
- // ${
185
- // // eslint-disable-next-line no-nested-ternary
186
- // this.allowPrefetchingMultipleChunks
187
- // ? `
188
- // const isRegExAsChunkId = chunkId instanceof RegExp;
189
- // if(isRegExAsChunkId) {
190
- // return cns.filter(chunkName => chunkId.test(chunkName)).map(chunkName => ntc[chunkName]);
191
- // }
192
- // return [${RuntimeGlobals.require}.getChunkId(chunkId)];
193
- // `
194
- // : `return [${RuntimeGlobals.require}.getChunkId(chunkId)];`
195
- // }
196
- // }
193
+ }
@@ -14,7 +14,8 @@ function entryConfig(options) {
14
14
  entryPointName
15
15
  } = options.efc;
16
16
  const {
17
- entryFile: mainEntry
17
+ entryFile: mainEntry,
18
+ AdditionalEntry
18
19
  } = options.app;
19
20
  const entry = {
20
21
  main: (0, _constants.joinWithAppPath)(mainEntry)
@@ -24,5 +25,9 @@ function entryConfig(options) {
24
25
  entry[entryPointName] = (0, _constants.joinWithAppPath)(entryFile);
25
26
  }
26
27
 
28
+ if (AdditionalEntry.enable) {
29
+ entry[AdditionalEntry.entryPointName] = (0, _constants.joinWithAppPath)(AdditionalEntry.entryFile);
30
+ }
31
+
27
32
  return entry;
28
33
  }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.configCssCustomOrderPlugin = configCssCustomOrderPlugin;
7
+
8
+ var _CssCustomOrderPlugin = _interopRequireDefault(require("../custom_plugins/CssCustomOrderPlugin"));
9
+
10
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
+
12
+ function configCssCustomOrderPlugin(options) {
13
+ if (options.cssOrderControler.enable) {
14
+ return new _CssCustomOrderPlugin.default(options.cssOrderControler.className);
15
+ }
16
+
17
+ return null;
18
+ }
@@ -17,13 +17,19 @@ function configHtmlWebpackPlugin(options) {
17
17
  const {
18
18
  htmlTemplate,
19
19
  mode,
20
- enableSubResourceIntegrity
20
+ enableSubResourceIntegrity,
21
+ generateHtml
21
22
  } = options;
22
23
  const {
23
24
  inject,
24
25
  templateFile
25
26
  } = htmlTemplate;
26
27
  const appInitialHTMLTemplatePath = (0, _constants.joinWithAppPath)(templateFile);
28
+
29
+ if (!generateHtml) {
30
+ return null;
31
+ }
32
+
27
33
  const minifyHtmlOptions = (0, _modeUtils.isProductionMode)(mode) ? // eslint-disable-next-line no-use-before-define
28
34
  getHTMLMinifyOptions(htmlTemplate) : false;
29
35
  return new _InitialHtmlPlugin.InitialHtmlPlugin({
@@ -14,12 +14,8 @@ function configResourceHintsPlugin(options) {
14
14
  publicPath,
15
15
  resourceHints
16
16
  } = options;
17
-
18
- if (resourceHints.enable) {
19
- return new _ResourceHintsPlugin.default({
20
- publicPath: JSON.stringify(publicPath)
21
- });
22
- }
23
-
24
- return null;
17
+ return new _ResourceHintsPlugin.default({
18
+ resourceHints,
19
+ publicPath: JSON.stringify(publicPath)
20
+ });
25
21
  }
@@ -55,10 +55,12 @@ var _configChunkHierarchyPlugin = require("./pluginConfigs/configChunkHierarchyP
55
55
 
56
56
  var _configInjectChunkGraphPlugin = require("./pluginConfigs/configInjectChunkGraphPlugin");
57
57
 
58
+ var _configCssCustomOrderPlugin = require("./pluginConfigs/configCssCustomOrderPlugin");
59
+
58
60
  // import { IgnorePlugin } from 'webpack';
59
61
  function plugins(options) {
60
62
  const {
61
63
  webpackPlugins
62
64
  } = options;
63
- return [(0, _configEnvVariables.configEnvVariables)(options), (0, _configCustomAttributesPlugin.configCustomAttributesPlugin)(options), (0, _configTPHashMappingPlugin.configTPHashMappingPlugin)(options), (0, _configCopyPublicFolders.configCopyPublicFolders)(options), (0, _configIgnorePlugin.configIgnorePlugin)(options), (0, _configMiniCSSExtractPlugin.configMiniCSSExtractPlugin)(options), (0, _configSelectorWeightPlugin.configSelectorWeightPlugin)(options), (0, _configVariableConversionPlugin.configVariableConversionPlugin)(options), (0, _configI18nSplitPlugin.configI18nSplitPlugin)(options), (0, _configRtlCssPlugin.configRtlCssPlugin)(options), (0, _configHtmlWebpackPlugin.configHtmlWebpackPlugin)(options), (0, _configCustomScriptLoadingStrategyPlugin.configCustomScriptLoadingStrategyPlugin)(options), (0, _configCdnChangePlugin.configCdnChangePlugin)(options), (0, _configServiceWorkerPlugin.configServiceWorkerPlugin)(options), (0, _configEFCTemplatePlugin.configEFCTemplatePlugin)(options), (0, _configResourceHintsPlugin.configResourceHintsPlugin)(options), (0, _configBundleAnalyzer.configBundleAnalyzer)(options), (0, _configManifestJsonPlugin.configManifestJsonPlugin)(options), (0, _configSourceMapPlugin.configSourceMapPlugin)(options), (0, _configProgressPlugin.configProgressPlugin)(options), (0, _configBundleIntegrityReport.configBundleIntegrityReport)(options), (0, _configRuntimeResourceCleanup.configRuntimeResourceCleanup)(options), (0, _configMurphyInjectorPlugin.configMurphyInjectorPlugin)(options), (0, _configChunkHierarchyPlugin.configChunkHierarchyPlugin)(options), (0, _configInjectChunkGraphPlugin.configInjectChunkGraphPlugin)(options), ...webpackPlugins].filter(Boolean);
65
+ return [(0, _configEnvVariables.configEnvVariables)(options), (0, _configCustomAttributesPlugin.configCustomAttributesPlugin)(options), (0, _configTPHashMappingPlugin.configTPHashMappingPlugin)(options), (0, _configCopyPublicFolders.configCopyPublicFolders)(options), (0, _configIgnorePlugin.configIgnorePlugin)(options), (0, _configMiniCSSExtractPlugin.configMiniCSSExtractPlugin)(options), (0, _configSelectorWeightPlugin.configSelectorWeightPlugin)(options), (0, _configVariableConversionPlugin.configVariableConversionPlugin)(options), (0, _configI18nSplitPlugin.configI18nSplitPlugin)(options), (0, _configRtlCssPlugin.configRtlCssPlugin)(options), (0, _configHtmlWebpackPlugin.configHtmlWebpackPlugin)(options), (0, _configCustomScriptLoadingStrategyPlugin.configCustomScriptLoadingStrategyPlugin)(options), (0, _configCdnChangePlugin.configCdnChangePlugin)(options), (0, _configServiceWorkerPlugin.configServiceWorkerPlugin)(options), (0, _configEFCTemplatePlugin.configEFCTemplatePlugin)(options), (0, _configResourceHintsPlugin.configResourceHintsPlugin)(options), (0, _configBundleAnalyzer.configBundleAnalyzer)(options), (0, _configManifestJsonPlugin.configManifestJsonPlugin)(options), (0, _configSourceMapPlugin.configSourceMapPlugin)(options), (0, _configProgressPlugin.configProgressPlugin)(options), (0, _configBundleIntegrityReport.configBundleIntegrityReport)(options), (0, _configRuntimeResourceCleanup.configRuntimeResourceCleanup)(options), (0, _configMurphyInjectorPlugin.configMurphyInjectorPlugin)(options), (0, _configCssCustomOrderPlugin.configCssCustomOrderPlugin)(options), (0, _configChunkHierarchyPlugin.configChunkHierarchyPlugin)(options), ...webpackPlugins].filter(Boolean);
64
66
  }
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@zohodesk/client_build_tool",
3
- "version": "0.0.10-exp.10",
3
+ "version": "0.0.17",
4
4
  "lockfileVersion": 2,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "@zohodesk/client_build_tool",
9
- "version": "0.0.10-exp.10",
9
+ "version": "0.0.17",
10
10
  "license": "ISC",
11
11
  "dependencies": {
12
12
  "@babel/cli": "7.17.10",
@@ -14,6 +14,7 @@
14
14
  "@babel/preset-env": "7.18.2",
15
15
  "@babel/preset-react": "7.17.12",
16
16
  "@babel/preset-typescript": "7.23.2",
17
+ "@zohodesk-private/client_dev_cert": "^1.0.6",
17
18
  "@zohodesk/client_packages_group": "1.0.2",
18
19
  "babel-loader": "9.1.2",
19
20
  "babel-plugin-module-resolver": "5.0.2",
@@ -2483,6 +2484,15 @@
2483
2484
  "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
2484
2485
  "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
2485
2486
  },
2487
+ "node_modules/@zohodesk-private/client_dev_cert": {
2488
+ "version": "1.0.6",
2489
+ "resolved": "http://cm-npmregistry.csez.zohocorpin.com/@zohodesk-private%2fclient_dev_cert/-/client_dev_cert-1.0.6.tgz",
2490
+ "integrity": "sha512-WIupOy5tTEdJdIM7c8aCkAIXDxP3EuGrncc/USE4YSEibi7uyatqqgXH1QBQUMJBUDhBQhy1F8vlLF+Bd8pvRg==",
2491
+ "license": "ISC",
2492
+ "bin": {
2493
+ "cert_update": "src/cert-fallback.js"
2494
+ }
2495
+ },
2486
2496
  "node_modules/@zohodesk/client_packages_group": {
2487
2497
  "version": "1.0.2",
2488
2498
  "resolved": "https://registry.npmjs.org/@zohodesk/client_packages_group/-/client_packages_group-1.0.2.tgz",
@@ -9778,6 +9788,11 @@
9778
9788
  "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
9779
9789
  "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
9780
9790
  },
9791
+ "@zohodesk-private/client_dev_cert": {
9792
+ "version": "1.0.6",
9793
+ "resolved": "http://cm-npmregistry.csez.zohocorpin.com/@zohodesk-private%2fclient_dev_cert/-/client_dev_cert-1.0.6.tgz",
9794
+ "integrity": "sha512-WIupOy5tTEdJdIM7c8aCkAIXDxP3EuGrncc/USE4YSEibi7uyatqqgXH1QBQUMJBUDhBQhy1F8vlLF+Bd8pvRg=="
9795
+ },
9781
9796
  "@zohodesk/client_packages_group": {
9782
9797
  "version": "1.0.2",
9783
9798
  "resolved": "https://registry.npmjs.org/@zohodesk/client_packages_group/-/client_packages_group-1.0.2.tgz",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zohodesk/client_build_tool",
3
- "version": "0.0.16",
3
+ "version": "0.0.17",
4
4
  "description": "A CLI tool to build web applications and client libraries",
5
5
  "main": "lib/index.js",
6
6
  "bin": {