@zohodesk/client_build_tool 0.0.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 (248) hide show
  1. package/.babelrc +12 -0
  2. package/.lintstagedrc +3 -0
  3. package/.vscode/settings.json +5 -0
  4. package/CHANGELOG.md +9 -0
  5. package/ConfigurationDocumentation.md +401 -0
  6. package/ContributionGuide.md +2 -0
  7. package/NOTES-Dec12.md +12 -0
  8. package/README.md +91 -0
  9. package/README_backup.md +82 -0
  10. package/TODO.md +35 -0
  11. package/cli.js +31 -0
  12. package/coverage/base.css +224 -0
  13. package/coverage/block-navigation.js +87 -0
  14. package/coverage/coverage-final.json +2 -0
  15. package/coverage/coverage-summary.json +3 -0
  16. package/coverage/favicon.png +0 -0
  17. package/coverage/index.html +116 -0
  18. package/coverage/prettify.css +1 -0
  19. package/coverage/prettify.js +2 -0
  20. package/coverage/sort-arrow-sprite.png +0 -0
  21. package/coverage/sorter.js +196 -0
  22. package/coverage/updateArrayWithDefault.js.html +196 -0
  23. package/docs/CSSCustomPluginsDocumentation.md +71 -0
  24. package/docs/CustomChunksConfiguration.md +0 -0
  25. package/docs/EFCFileTemplate.md +0 -0
  26. package/docs/MockApi.md +61 -0
  27. package/docs/NameTemplateUtility.md +93 -0
  28. package/docs/ServiseWorkerTemplate.md +0 -0
  29. package/docs/SupportedBrowserVersions.md +61 -0
  30. package/helpDocs/check.js +7 -0
  31. package/helpDocs/commmands/build.md +0 -0
  32. package/helpDocs/commmands/start.md +0 -0
  33. package/helpDocs/examples/buildWithContentHash.md +0 -0
  34. package/helpDocs/examples/startDevServer.md +0 -0
  35. package/helpDocs/examples/startWithMockAPI.md +0 -0
  36. package/helpDocs/node18-env.md +30 -0
  37. package/helpDocs/troubleshootings/NewMachineSetup.md +71 -0
  38. package/helpDocs/troubleshootings/README.md +9 -0
  39. package/helpDocs/troubleshootings/hg_install.sh +18 -0
  40. package/helpDocs/troubleshootings/newMachineMac.sh +86 -0
  41. package/helpDocs/troubleshootings/newMachineUbundu.bash +84 -0
  42. package/lib/allCommandsConfigs.js +25 -0
  43. package/lib/commands/build/commandExecutor.js +17 -0
  44. package/lib/commands/build/config.js +12 -0
  45. package/lib/commands/build/errorHander.js +10 -0
  46. package/lib/commands/build/optionsProcessor.js +35 -0
  47. package/lib/commands/buildEs/commandExecutor.js +33 -0
  48. package/lib/commands/buildEs/config.js +12 -0
  49. package/lib/commands/buildLib/commandExecutor.js +33 -0
  50. package/lib/commands/buildLib/config.js +12 -0
  51. package/lib/commands/mockserver/commandExecutor.js +43 -0
  52. package/lib/commands/mockserver/config.js +12 -0
  53. package/lib/commands/start/commandExecutor.js +12 -0
  54. package/lib/commands/start/config.js +12 -0
  55. package/lib/commands/start/deprecationHandler.js +10 -0
  56. package/lib/commands/start/errorHander.js +10 -0
  57. package/lib/commands/start/optionsProcessor.js +30 -0
  58. package/lib/commands/start/postProcessor.js +10 -0
  59. package/lib/commands/start/preProcessor.js +10 -0
  60. package/lib/commands/template/commandExecutor.js +28 -0
  61. package/lib/commands/template/config.js +12 -0
  62. package/lib/commands/version/commandExecutor.js +14 -0
  63. package/lib/commands/version/config.js +12 -0
  64. package/lib/commands/version/errorHander.js +10 -0
  65. package/lib/commandsRouter.js +74 -0
  66. package/lib/index.js +12 -0
  67. package/lib/logger.js +34 -0
  68. package/lib/schemas/applyValuesToSchema/index.js +34 -0
  69. package/lib/schemas/applyValuesToSchema/isObject.js +10 -0
  70. package/lib/schemas/applyValuesToSchema/isValid.js +14 -0
  71. package/lib/schemas/cliArgsToObject.js +39 -0
  72. package/lib/schemas/defaultConfigValues.js +276 -0
  73. package/lib/schemas/defaultConfigValuesOnly.js +161 -0
  74. package/lib/schemas/deprecatedOptionsHandler.js +67 -0
  75. package/lib/schemas/getNpmVersion.js +22 -0
  76. package/lib/schemas/giveDefaultValue.js +18 -0
  77. package/lib/schemas/npmConfigToObject.js +35 -0
  78. package/lib/schemas/readOptions.js +54 -0
  79. package/lib/schemas/readOptionsForConfigFile.js +42 -0
  80. package/lib/shared/babel/babelWebConfig.js +51 -0
  81. package/lib/shared/babel/babel_plugins/removeAttributesPlugin.js +23 -0
  82. package/lib/shared/babel/defaultBabelPlugins.js +26 -0
  83. package/lib/shared/babel/runBabelForJSFile.js +24 -0
  84. package/lib/shared/bundler/webpack/common/decidePublicPath.js +52 -0
  85. package/lib/shared/bundler/webpack/common/libAlias.js +31 -0
  86. package/lib/shared/bundler/webpack/common/modeUtils.js +31 -0
  87. package/lib/shared/bundler/webpack/common/nameTemplates.js +78 -0
  88. package/lib/shared/bundler/webpack/common/resourceBasedPublicPath.js +21 -0
  89. package/lib/shared/bundler/webpack/configCustomLoaders.js +10 -0
  90. package/lib/shared/bundler/webpack/cssLoaders.js +16 -0
  91. package/lib/shared/bundler/webpack/custom_plugins/CdnChangePlugin.js +95 -0
  92. package/lib/shared/bundler/webpack/custom_plugins/EFCTemplatePlugin.js +112 -0
  93. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/ContributionGuide.md +11 -0
  94. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nFilesEmitPlugin.js +172 -0
  95. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nKeysIdentifer.js +76 -0
  96. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nRuntimeDealerPlugin.js +203 -0
  97. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/I18nSplit.md +95 -0
  98. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/LocaleChunkAssetsStore.js +73 -0
  99. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/ModulesI18nKeysStore.js +88 -0
  100. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/README.md +25 -0
  101. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/constants.js +29 -0
  102. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/createHash.js +24 -0
  103. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/getI18nLoadingRuntimeModule.js +76 -0
  104. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/index.js +39 -0
  105. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/iterateModulesInChunk.js +50 -0
  106. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/optionsHandler.js +68 -0
  107. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/pathCreator.js +23 -0
  108. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/readI18nValues.js +29 -0
  109. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateFileName.js +43 -0
  110. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/templateHashHelpers.js +77 -0
  111. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/collectI18nKeys.js +66 -0
  112. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/getChunkModules.js +13 -0
  113. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/hashUtils.js +19 -0
  114. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/index.js +31 -0
  115. package/lib/shared/bundler/webpack/custom_plugins/I18nSplitPlugin/utils/propertiesUtils.js +129 -0
  116. package/lib/shared/bundler/webpack/custom_plugins/InitialHtmlPlugin.js +54 -0
  117. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/addFilesNamesToManifestJson.js +24 -0
  118. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/createInitialEntries.js +17 -0
  119. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/createManifestJson.js +35 -0
  120. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/findInitialFileNames.js +18 -0
  121. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/index.js +44 -0
  122. package/lib/shared/bundler/webpack/custom_plugins/ManifestJsonPlugin/removeHashFromFileName.js +18 -0
  123. package/lib/shared/bundler/webpack/custom_plugins/RTLSplitPlugin.js +1 -0
  124. package/lib/shared/bundler/webpack/custom_plugins/ResourceHintsPlugin.js +191 -0
  125. package/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/OverwriteCssPathForRTL.js +62 -0
  126. package/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtlCssPlugin.js +84 -0
  127. package/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/RtrSplit.md +34 -0
  128. package/lib/shared/bundler/webpack/custom_plugins/RtlSplitPlugin/replaceCssDirTemplate.js +27 -0
  129. package/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/classHandling.js +20 -0
  130. package/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/index.js +78 -0
  131. package/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/selectorWeightPrefixAdder.js +51 -0
  132. package/lib/shared/bundler/webpack/custom_plugins/SelectorWeightPlugin/windowsModification.js +16 -0
  133. package/lib/shared/bundler/webpack/custom_plugins/ServiceWorkerPlugin.js +110 -0
  134. package/lib/shared/bundler/webpack/custom_plugins/SourceMapPlugin/index.js +38 -0
  135. package/lib/shared/bundler/webpack/custom_plugins/TPHashMappingPlugin/addHashToFilePath.js +22 -0
  136. package/lib/shared/bundler/webpack/custom_plugins/TPHashMappingPlugin/index.js +55 -0
  137. package/lib/shared/bundler/webpack/custom_plugins/UglifyCSSPlugin/index.js.js +49 -0
  138. package/lib/shared/bundler/webpack/custom_plugins/VariableConversionCollector/ErrorHandler.js +62 -0
  139. package/lib/shared/bundler/webpack/custom_plugins/VariableConversionCollector/index.js +362 -0
  140. package/lib/shared/bundler/webpack/custom_plugins/emitAsset.js +14 -0
  141. package/lib/shared/bundler/webpack/custom_plugins/getInitialAssetsFuncTemplate.js +57 -0
  142. package/lib/shared/bundler/webpack/custom_plugins/getInitialI18nAssetsArrayStr.js +87 -0
  143. package/lib/shared/bundler/webpack/defaultVendorPatternList.js +13 -0
  144. package/lib/shared/bundler/webpack/entryConfig.js +28 -0
  145. package/lib/shared/bundler/webpack/externals.js +13 -0
  146. package/lib/shared/bundler/webpack/getCSSLoaders.js +27 -0
  147. package/lib/shared/bundler/webpack/getFilenameFromModule.js +24 -0
  148. package/lib/shared/bundler/webpack/getSourceMapType.js +10 -0
  149. package/lib/shared/bundler/webpack/jsLoaders.js +17 -0
  150. package/lib/shared/bundler/webpack/loaderConfigs/assetLoaders.js +12 -0
  151. package/lib/shared/bundler/webpack/loaderConfigs/babelLoaderConfig.js +18 -0
  152. package/lib/shared/bundler/webpack/loaderConfigs/checkIsPatternsMatchFilename.js +56 -0
  153. package/lib/shared/bundler/webpack/loaderConfigs/configHtmlTemplateLoader.js +18 -0
  154. package/lib/shared/bundler/webpack/loaderConfigs/configPostCssLoader.js +37 -0
  155. package/lib/shared/bundler/webpack/loaderConfigs/configWebWorkerLoader.js +21 -0
  156. package/lib/shared/bundler/webpack/loaderConfigs/configsAssetsLoaders.js +138 -0
  157. package/lib/shared/bundler/webpack/loaderConfigs/cssClassNameGenerate.js +60 -0
  158. package/lib/shared/bundler/webpack/loaderConfigs/getCssLoaderOptions.js +21 -0
  159. package/lib/shared/bundler/webpack/loaders/workerLoader.js +133 -0
  160. package/lib/shared/bundler/webpack/optimizationConfig.js +43 -0
  161. package/lib/shared/bundler/webpack/outputConfig.js +28 -0
  162. package/lib/shared/bundler/webpack/pluginConfigs/configBundleAnalyzer.js +40 -0
  163. package/lib/shared/bundler/webpack/pluginConfigs/configCSSMinifierPlugin.js +24 -0
  164. package/lib/shared/bundler/webpack/pluginConfigs/configCdnChangePlugin.js +27 -0
  165. package/lib/shared/bundler/webpack/pluginConfigs/configCopyPublicFolders.js +63 -0
  166. package/lib/shared/bundler/webpack/pluginConfigs/configEFCTemplatePlugin.js +46 -0
  167. package/lib/shared/bundler/webpack/pluginConfigs/configEnvVariables.js +36 -0
  168. package/lib/shared/bundler/webpack/pluginConfigs/configHtmlWebpackPlugin.js +56 -0
  169. package/lib/shared/bundler/webpack/pluginConfigs/configI18nSplitPlugin.js +41 -0
  170. package/lib/shared/bundler/webpack/pluginConfigs/configIgnorePlugin.js +16 -0
  171. package/lib/shared/bundler/webpack/pluginConfigs/configManifestJsonPlugin.js +32 -0
  172. package/lib/shared/bundler/webpack/pluginConfigs/configMiniCSSExtractPlugin.js +23 -0
  173. package/lib/shared/bundler/webpack/pluginConfigs/configProgressPlugin.js +24 -0
  174. package/lib/shared/bundler/webpack/pluginConfigs/configResourceHintsPlugin.js +21 -0
  175. package/lib/shared/bundler/webpack/pluginConfigs/configRtlCssPlugin.js +27 -0
  176. package/lib/shared/bundler/webpack/pluginConfigs/configSelectorWeightPlugin.js +28 -0
  177. package/lib/shared/bundler/webpack/pluginConfigs/configServiceWorkerPlugin.js +40 -0
  178. package/lib/shared/bundler/webpack/pluginConfigs/configSourceMapPlugin.js +20 -0
  179. package/lib/shared/bundler/webpack/pluginConfigs/configTPHashMappingPlugin.js +32 -0
  180. package/lib/shared/bundler/webpack/pluginConfigs/configVariableConversionPlugin.js +25 -0
  181. package/lib/shared/bundler/webpack/plugins.js +50 -0
  182. package/lib/shared/bundler/webpack/resolvers.js +81 -0
  183. package/lib/shared/bundler/webpack/splitChunksConfig.js +113 -0
  184. package/lib/shared/bundler/webpack/statsConfig.js +21 -0
  185. package/lib/shared/bundler/webpack/utils/index.js +26 -0
  186. package/lib/shared/bundler/webpack/utils/updateArrayWithDefault.js +34 -0
  187. package/lib/shared/bundler/webpack/webpackBuild.js +27 -0
  188. package/lib/shared/bundler/webpack/webpackConfig.js +56 -0
  189. package/lib/shared/commands-utils/doBasicRequirementCheck.js +17 -0
  190. package/lib/shared/commands-utils/getCliPath.js +39 -0
  191. package/lib/shared/commands-utils/index.js +29 -0
  192. package/lib/shared/commands-utils/log.js +13 -0
  193. package/lib/shared/commands-utils/readArgsFormCommandLine.js +11 -0
  194. package/lib/shared/commands-utils/readOptionFormCommandLine.js +11 -0
  195. package/lib/shared/commands-utils/spawnSyncIO.js +38 -0
  196. package/lib/shared/constants.js +45 -0
  197. package/lib/shared/fileUtils/copyFile.js +38 -0
  198. package/lib/shared/fileUtils/directoryIterator.js +21 -0
  199. package/lib/shared/fileUtils/watchRun.js +100 -0
  200. package/lib/shared/postcss/custom_postcss_plugins/EmptyPlugin.js +21 -0
  201. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/constants.js +10 -0
  202. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/handleIgnores.js +66 -0
  203. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/index.js +136 -0
  204. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/insertBefore.js +32 -0
  205. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/isPreviouslyProcessed.js +20 -0
  206. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/replaceUtils.js +20 -0
  207. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/separateHoveredSelectorAndNormalSelector.js +24 -0
  208. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/specialCases.js +43 -0
  209. package/lib/shared/postcss/custom_postcss_plugins/HoverActivePlugin/typeCheckUtils.js +52 -0
  210. package/lib/shared/postcss/custom_postcss_plugins/RTLSplitPlugin.js +139 -0
  211. package/lib/shared/postcss/custom_postcss_plugins/SelectorReplace.js +90 -0
  212. package/lib/shared/postcss/custom_postcss_plugins/ValueReplacer.js +57 -0
  213. package/lib/shared/postcss/custom_postcss_plugins/VariableModificationPlugin/index.js +343 -0
  214. package/lib/shared/postcss/filterPluginsAllowedForSpecficFile.js +55 -0
  215. package/lib/shared/postcss/getAllowedPostCssPlugins.js +30 -0
  216. package/lib/shared/postcss/getSpecificPostCssPlugin.js +58 -0
  217. package/lib/shared/postcss/runPostCssForCssFile.js +37 -0
  218. package/lib/shared/server/configWebpackDevMiddleware.js +41 -0
  219. package/lib/shared/server/corsHandling.js +21 -0
  220. package/lib/shared/server/getIp.js +30 -0
  221. package/lib/shared/server/getServerURL.js +29 -0
  222. package/lib/shared/server/httpsOptions.js +46 -0
  223. package/lib/shared/server/initExpressApp.js +19 -0
  224. package/lib/shared/server/initialHTMLHandling.js +99 -0
  225. package/lib/shared/server/mockApiHandler.js +60 -0
  226. package/lib/shared/server/mockServer.js +41 -0
  227. package/lib/shared/server/serveContextFiles.js +27 -0
  228. package/lib/shared/server/serverBywebpackDevMiddleware.js +35 -0
  229. package/lib/shared/server/startHttpServer.js +26 -0
  230. package/lib/shared/server/startHttpsServer.js +38 -0
  231. package/lib/shared/server/unwanted/addHttp2Server.js +41 -0
  232. package/lib/shared/server/unwanted/configWebpackDevMiddleware.js +44 -0
  233. package/lib/shared/server/unwanted/mockApiSupport.js +19 -0
  234. package/lib/shared/server/unwanted/websocketMockSetup.js +48 -0
  235. package/lib/shared/server/urlConcat.js +32 -0
  236. package/lib/shared/utils/requireLocalOrGlobal.js +81 -0
  237. package/lib/shared/utils/utils.js +1 -0
  238. package/lib/shared/utils/versionPrint.js +20 -0
  239. package/npm-shrinkwrap.json +14102 -0
  240. package/package.json +54 -0
  241. package/polyfillForOldNodeVersion.js +10 -0
  242. package/result.json +1 -0
  243. package/templates/app/README.MD +30 -0
  244. package/templates/app/package.json +12 -0
  245. package/templates/library/README.MD +28 -0
  246. package/templates/library/package.json +11 -0
  247. package/templates/wms/index.html +43 -0
  248. package/unittest/index.html +37 -0
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+
8
+ var _os = require("os");
9
+
10
+ // NOTE: Don't use 'config_file' as cli option it was reserved
11
+ var _default = {
12
+ context: 'app',
13
+ devtool: 'hidden-cheap-source-map',
14
+ enableChunkHash: false,
15
+ bundleAnalyze: false,
16
+ enableMockReplace: false,
17
+ noPublicPath: false,
18
+ output: 'build',
19
+ mode: null,
20
+ printProgress: false,
21
+ server: {
22
+ httpsCerts: '@zohodesk-private/client_dev_cert',
23
+ host: (0, _os.hostname)(),
24
+ port: 9090,
25
+ domain: 'tsi',
26
+ disableContextURL: false
27
+ },
28
+ mockServer: {
29
+ enable: false,
30
+ separateSeverPort: 5000,
31
+ disableNodemon: false,
32
+ mockEntryFile: 'mockapi/index.js',
33
+ mockPrefix: '/api/'
34
+ },
35
+ css: {
36
+ classNameOptions: {
37
+ customizations: [{
38
+ enable: true,
39
+ blob: '[local]',
40
+ patterns: ['*.plain.css']
41
+ }, {
42
+ enable: true,
43
+ blob: '[prefix]-[filename]-[local]',
44
+ patterns: []
45
+ }],
46
+ classNamePrefix: 'zd'
47
+ },
48
+ // NOTE: Suggestions
49
+ // Name Suggestions `customizations` this will be easier then `plugin` to understand for developers
50
+ plugins: {
51
+ rtlSplit: {
52
+ enableRTLSplit: false,
53
+ templateLabel: '{{--dir}}',
54
+ disableMinifySelector: false,
55
+ dirVarName: 'document.dir'
56
+ },
57
+ selectorWeight: {
58
+ enable: false,
59
+ patterns: [],
60
+ configFile: null,
61
+ defaultSelector: '',
62
+ customFileDetails: '',
63
+ excludeStrings: []
64
+ },
65
+ selectorReplace: {
66
+ enable: false,
67
+ patterns: [],
68
+ before: [],
69
+ after: []
70
+ },
71
+ hoverActive: {
72
+ enable: false,
73
+ patterns: [],
74
+ hover: '(hover: hover)',
75
+ active: '(hover: none)'
76
+ },
77
+ cssVariableReplacement: {
78
+ enable: false,
79
+ patterns: [],
80
+ configFile: null
81
+ },
82
+ rtl: {
83
+ enable: false,
84
+ patterns: []
85
+ } // postcss - plugins end
86
+
87
+ },
88
+ customPlugins: []
89
+ },
90
+ i18nChunkSplit: {
91
+ chunkSplitEnable: false,
92
+ disableDefault: false,
93
+ templateLabel: '{{--user-locale}}',
94
+ localeVarName: 'document.documentElement.lang',
95
+ jsonpFunc: 'console.log',
96
+ jsResource: null,
97
+ propertiesFolder: null
98
+ },
99
+ publicFolders: ['...', {
100
+ source: './deskapp/tp/',
101
+ target: './tp/'
102
+ }],
103
+ app: {
104
+ entryFile: 'src/index.js',
105
+ tpFolder: null,
106
+ moduleResolvePath: 'node_modules'
107
+ },
108
+ resolve: {
109
+ preferLocalFirst: false,
110
+ defaultAlias: true,
111
+ moduleResolvePath: 'node_modules',
112
+ alias: null
113
+ },
114
+ // EFC means Embedded Functional Components
115
+ efc: {
116
+ hasEFC: false,
117
+ entryPointName: 'efc',
118
+ entryFile: 'src/efc.js',
119
+ version: 'v1',
120
+ createSDkFile: false,
121
+ templateFilePath: 'efcTemplate.js',
122
+ outputFile: 'efc-sdk-[version].js'
123
+ },
124
+ createSeparateSMap: false,
125
+ babelCustomizations: {
126
+ browserList: null,
127
+ // NOTE: need to consider
128
+ // presets: [],
129
+ plugins: []
130
+ },
131
+ webpackPlugins: [],
132
+ vendorPatterns: [],
133
+ customChunks: [{
134
+ name: 'styles',
135
+ patterns: ['*.css']
136
+ }],
137
+ htmlTemplate: {
138
+ templateFile: 'src/index.html',
139
+ minify: null,
140
+ inject: true
141
+ },
142
+ // CDN means Content Delivery Network
143
+ cdnMapping: {
144
+ isCdnEnabled: false,
145
+ variableName: '',
146
+ cssTemplate: '',
147
+ jsTemplate: '',
148
+ i18nTemplate: ''
149
+ },
150
+ manifestJson: {
151
+ enable: true
152
+ },
153
+ changeRuntimeChunkChar: '~',
154
+ serviceWorker: {
155
+ enable: false,
156
+ templateFilePath: 'sw.js',
157
+ outputFilePath: '/v1.js',
158
+ replaceText: '//<!--AssetsFromBuild -->'
159
+ }
160
+ };
161
+ exports.default = _default;
@@ -0,0 +1,67 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.deprecatedOptionsHandler = deprecatedOptionsHandler;
7
+
8
+ var _logger = require("../logger");
9
+
10
+ function nestedSelect(obj, key) {
11
+ let temp = obj;
12
+ const keys = key.split('.');
13
+
14
+ for (let i = 0; i < keys.length && temp; i++) {
15
+ const element = keys[i];
16
+ temp = temp[element];
17
+ }
18
+
19
+ return temp;
20
+ }
21
+
22
+ function nestedUpdate(obj, key, value) {
23
+ let temp = obj;
24
+ const keys = key.split('.');
25
+ let i = 0;
26
+
27
+ for (; i < keys.length - 1 && temp; i++) {
28
+ const element = keys[i];
29
+ temp = temp[element];
30
+ }
31
+
32
+ if (temp) {
33
+ temp[keys[i]] = value;
34
+ }
35
+ }
36
+
37
+ function deprecatedOptionsHandler(options) {
38
+ function checkAndUpdateAndPrintWaring(oldKey, newkey) {
39
+ const oldVal = nestedSelect(options, oldKey);
40
+ const newVal = nestedSelect(options, newkey); // console.log({ oldVal, newVal });
41
+
42
+ if (oldVal !== undefined && newVal === undefined) {
43
+ nestedUpdate(options, newkey, newVal);
44
+ (0, _logger.warnLogger)(`"${oldKey}" deprecated use "${newkey}" instead`);
45
+ }
46
+ } // return;
47
+
48
+
49
+ checkAndUpdateAndPrintWaring('app.context', 'context'); // TODO handle deprecations here
50
+ // we will finish this logic later when options are confirmed
51
+
52
+ if (nestedSelect(options, 'app.hasRTL') === true) {
53
+ nestedUpdate(options, 'app.plugins.hasRTL', true);
54
+ }
55
+
56
+ if (nestedSelect(options, 'docs.hasRTL') === true) {
57
+ nestedUpdate(options, 'docs.plugins.hasRTL', true);
58
+ }
59
+
60
+ if (nestedSelect(options, 'app.rtlExclude.length') > 0) {
61
+ nestedUpdate(options, 'app.exclude.rtl', nestedSelect(options, 'app.rtlExclude'));
62
+ }
63
+
64
+ if (nestedSelect(options, 'docs.rtlExclude.length') > 0) {
65
+ nestedUpdate(options, 'docs.exclude.rtl', nestedSelect(options, 'docs.rtlExclude'));
66
+ }
67
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getNpmVersion = getNpmVersion;
7
+
8
+ var _child_process = require("child_process");
9
+
10
+ var _logger = require("../logger");
11
+
12
+ function getNpmVersion() {
13
+ let vers = '6';
14
+
15
+ try {
16
+ [vers] = (0, _child_process.execSync)('npm -v').toString().trim().split('.');
17
+ } catch (error) {
18
+ (0, _logger.messageLogger)(error);
19
+ }
20
+
21
+ return vers;
22
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.giveDefaultValue = giveDefaultValue;
7
+
8
+ function giveDefaultValue(value) {
9
+ if (value === true || value === 'true') {
10
+ return true;
11
+ }
12
+
13
+ if (value === false || value === 'false' || value === '') {
14
+ return false;
15
+ }
16
+
17
+ return value;
18
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.npmConfigToObject = npmConfigToObject;
7
+
8
+ var _logger = require("../logger");
9
+
10
+ const NPM_CONFIG_PREFIX = 'npm_config_'; // TODO: we have to do option parse logic little better
11
+ // if user use react-cli strictly without using npm scripts options won't work,
12
+ // So we have to write our own option parse logic or some other library
13
+ // console.log('type', process.argv, process.env.npm_config_check, process.env.npm_config_clone_type, process.env.npm_config_clone_url);
14
+ // console.log('Object.keys(process.env).filter(s => s.startsWith(\'npm_config_\') && s.includes(\'clone\')', Object.keys(process.env).filter(s => s.startsWith('npm_config_') && s.includes('clone')));
15
+
16
+ function npmConfigToObject() {
17
+ // // clone:type
18
+ const processEnv = {};
19
+ const keysWithColon = [];
20
+ Object.keys(process.env).filter(key => key.startsWith(NPM_CONFIG_PREFIX)).forEach(key => {
21
+ const nKey = key.slice(NPM_CONFIG_PREFIX.length);
22
+ processEnv[nKey] = process.env[key];
23
+ nKey.includes(':') && keysWithColon.push(nKey);
24
+ });
25
+ keysWithColon.forEach(key => {
26
+ const nKey = key.replace(/:/g, '_');
27
+
28
+ if (processEnv[nKey]) {
29
+ (0, _logger.warnLogger)('there is some options conflict', key, nKey);
30
+ }
31
+
32
+ processEnv[nKey] = processEnv[key];
33
+ });
34
+ return processEnv;
35
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getOptions = exports.args = void 0;
7
+
8
+ var _applyValuesToSchema = require("./applyValuesToSchema");
9
+
10
+ var _cliArgsToObject = require("./cliArgsToObject");
11
+
12
+ var _defaultConfigValues = _interopRequireDefault(require("./defaultConfigValues"));
13
+
14
+ var _deprecatedOptionsHandler = require("./deprecatedOptionsHandler");
15
+
16
+ var _getNpmVersion = require("./getNpmVersion");
17
+
18
+ var _npmConfigToObject = require("./npmConfigToObject");
19
+
20
+ var _readOptionsForConfigFile = require("./readOptionsForConfigFile");
21
+
22
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
+
24
+ const args = process.argv.slice(2);
25
+ exports.args = args;
26
+ const processEnv = (0, _npmConfigToObject.npmConfigToObject)();
27
+ const cliArgsObject = (0, _cliArgsToObject.cliArgsToObject)(args);
28
+ Object.assign(processEnv, cliArgsObject);
29
+ let reactCLIOptions = null;
30
+
31
+ const getOptions = () => {
32
+ if (reactCLIOptions) {
33
+ return reactCLIOptions;
34
+ }
35
+
36
+ const appPath = process.cwd();
37
+ const userSchemas = (0, _readOptionsForConfigFile.readOptionsForPackageJson)(appPath); // NOTE: Only config File option will with cli option config_file
38
+
39
+ const configFileSchemas = (0, _readOptionsForConfigFile.readOptionsForConfigFile)(appPath, cliArgsObject.config_file || 'cbt.config.js');
40
+ const options = (0, _applyValuesToSchema.applyValuesToSchema)(_defaultConfigValues.default, configFileSchemas || userSchemas || {}, processEnv);
41
+ (0, _deprecatedOptionsHandler.deprecatedOptionsHandler)(options); // for future may be for npm 8 edge cases
42
+
43
+ options.npmVersion = (0, _getNpmVersion.getNpmVersion)();
44
+ options.cwd = appPath;
45
+ options.packageVersion = process.env.npm_package_version;
46
+ options.extraArgs = process.argv.slice(3); // eslint-disable-next-line prefer-destructuring
47
+
48
+ options.commandOption = process.argv[2];
49
+ reactCLIOptions = options; // console.log({ options });
50
+
51
+ return options;
52
+ };
53
+
54
+ exports.getOptions = getOptions;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.readOptionsForConfigFile = readOptionsForConfigFile;
7
+ exports.readOptionsForPackageJson = readOptionsForPackageJson;
8
+
9
+ var _fs = require("fs");
10
+
11
+ var _path = _interopRequireDefault(require("path"));
12
+
13
+ var _constants = require("../shared/constants");
14
+
15
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16
+
17
+ // import { CONFIG_ROOT } from "../constants";
18
+ function readOptionsForPackageJson(appPath) {
19
+ const packagePath = _path.default.join(appPath, 'package.json');
20
+
21
+ if ((0, _fs.existsSync)(packagePath)) {
22
+ // eslint-disable-next-line import/no-dynamic-require, global-require
23
+ return require(packagePath)[_constants.BASE_CONFIG_KEY] || {};
24
+ }
25
+
26
+ return {};
27
+ }
28
+
29
+ function readOptionsForConfigFile(appPath, configFile) {
30
+ if (!configFile) {
31
+ return null;
32
+ }
33
+
34
+ const packagePath = _path.default.join(appPath, configFile);
35
+
36
+ if ((0, _fs.existsSync)(packagePath)) {
37
+ // eslint-disable-next-line import/no-dynamic-require, global-require
38
+ return require(packagePath).config;
39
+ }
40
+
41
+ return null;
42
+ }
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.babelWebConfig = babelWebConfig;
7
+
8
+ var _helperCompilationTargets = _interopRequireDefault(require("@babel/helper-compilation-targets"));
9
+
10
+ var _logger = require("../../logger");
11
+
12
+ var _defaultBabelPlugins = require("./defaultBabelPlugins");
13
+
14
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
+
16
+ /* eslint-disable no-use-before-define */
17
+ const supportedBrowserVersions = ['last 3 Chrome versions', 'last 3 Firefox versions', 'last 3 Edge versions', 'last 3 Safari versions'];
18
+
19
+ function customBabelPlugins(babelPlugins) {
20
+ return babelPlugins.map(p => p).filter(Boolean);
21
+ }
22
+
23
+ function babelWebConfig(options, mode) {
24
+ const {
25
+ plugins: babelPlugins,
26
+ browserList
27
+ } = options.babelCustomizations;
28
+ return {
29
+ presets: [getBabelPresetEnvConfig(browserList, mode), require.resolve('@babel/preset-react')],
30
+ plugins: customBabelPlugins(babelPlugins).concat((0, _defaultBabelPlugins.defaultBabelPlugins)(options)).filter(Boolean)
31
+ };
32
+ }
33
+
34
+ function getBabelPresetEnvConfig(browserList, mode) {
35
+ if (mode === 'lib') {
36
+ return require.resolve('@babel/preset-env');
37
+ }
38
+
39
+ const browsers = browserList || supportedBrowserVersions;
40
+ (0, _logger.verboseLogger)('getTargets', (0, _helperCompilationTargets.default)({
41
+ browsers
42
+ }));
43
+ return [require.resolve('@babel/preset-env'), {
44
+ modules: false,
45
+ useBuiltIns: 'usage',
46
+ corejs: 3,
47
+ targets: {
48
+ browsers
49
+ }
50
+ }];
51
+ }
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ module.exports = () => ({
4
+ visitor: {
5
+ Program(path, state) {
6
+ let properties = state.opts.properties || [];
7
+
8
+ if (properties.length === 0) {
9
+ properties = properties.concat(state.opts.attributeNames);
10
+ }
11
+
12
+ path.traverse({
13
+ JSXIdentifier(path2) {
14
+ if (properties.indexOf(path2.node.name.toLowerCase()) > -1) {
15
+ path2.parentPath.remove();
16
+ }
17
+ }
18
+
19
+ });
20
+ }
21
+
22
+ }
23
+ });
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.defaultBabelPlugins = defaultBabelPlugins;
7
+
8
+ var _modeUtils = require("../bundler/webpack/common/modeUtils");
9
+
10
+ function defaultBabelPlugins(options) {
11
+ const {
12
+ mode
13
+ } = options;
14
+ const customPlugins = [];
15
+ const {
16
+ enable
17
+ } = options.removeAttribute;
18
+
19
+ if (enable && (0, _modeUtils.isProductionMode)(mode)) {
20
+ customPlugins.push([require.resolve('./babel_plugins/removeAttributesPlugin'), {
21
+ attributeNames: options.removeAttribute.attributeNames
22
+ }]);
23
+ }
24
+
25
+ return customPlugins;
26
+ }
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.runBabelForJSFile = runBabelForJSFile;
7
+
8
+ var _core = require("@babel/core");
9
+
10
+ var _babelWebConfig = require("./babelWebConfig");
11
+
12
+ var _copyFile = require("../fileUtils/copyFile");
13
+
14
+ function runBabelForJSFile({
15
+ filename,
16
+ outputFile,
17
+ options,
18
+ mode = 'es'
19
+ }) {
20
+ // const jsSourceCode = readFileSync(filename).toString();
21
+ const babelConfig = (0, _babelWebConfig.babelWebConfig)(options, mode);
22
+ const result = (0, _core.transformFileSync)(filename, babelConfig);
23
+ (0, _copyFile.writeFile)(outputFile, result.code);
24
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.decidePublicPath = decidePublicPath;
7
+ exports.modifiedServerOptions = modifiedServerOptions;
8
+
9
+ var _getServerURL = require("../../../server/getServerURL");
10
+
11
+ var _httpsOptions = require("../../../server/httpsOptions");
12
+
13
+ var _urlConcat = require("../../../server/urlConcat");
14
+
15
+ function decidePublicPath(serverExtras) {
16
+ return serverExtras.isHttps ? serverExtras.httpsUrl : serverExtras.httpUrl;
17
+ }
18
+
19
+ function modifiedServerOptions(options) {
20
+ const {
21
+ server,
22
+ context
23
+ } = options;
24
+ const {
25
+ disableContextURL
26
+ } = server;
27
+ const port = Number(server.port);
28
+ const httpsOptions = (0, _httpsOptions.httpsOptionsWithUserFriendlyError)(options);
29
+ const machineDomain = (0, _getServerURL.getServerDomain)(server);
30
+ const httpPort = port + 1;
31
+ const httpsUrl = (0, _getServerURL.getServerUrl)({
32
+ domain: machineDomain,
33
+ port,
34
+ protocol: 'https'
35
+ });
36
+ const httpUrl = (0, _getServerURL.getServerUrl)({
37
+ domain: machineDomain,
38
+ port: httpPort,
39
+ protocol: 'http'
40
+ });
41
+ const contextURL = disableContextURL ? '' : `/${context}`;
42
+ return {
43
+ httpsOptions,
44
+ machineDomain,
45
+ contextURL,
46
+ httpsPort: port,
47
+ httpPort,
48
+ httpsUrl: (0, _urlConcat.urlConcat)(httpsUrl, contextURL),
49
+ httpUrl: (0, _urlConcat.urlConcat)(httpUrl, contextURL),
50
+ isHttps: !!httpsOptions
51
+ };
52
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.libAlias = void 0;
7
+ // the reason for alias at the time was code tree shaking
8
+ // tree shaking was most compactable with ES module system
9
+ // FIXME: But there is a posiblity when these package does not have lib,
10
+ // app will work because of alias, But may be jest won't work because of not alais
11
+ // So need to think about use alais in jest
12
+ const libAlias = {
13
+ '@zohodesk/components/lib': '@zohodesk/components/es',
14
+ // '@zohodesk/zc-custom/lib': '@zohodesk/zc-custom/es',
15
+ '@zohodesk/dot/lib': '@zohodesk/dot/es',
16
+ '@zohodesk/i18n/lib': '@zohodesk/i18n/es',
17
+ '@zohodesk/icons/lib': '@zohodesk/icons/es',
18
+ '@zohodesk/normalizer/lib': '@zohodesk/normalizer/es',
19
+ '@zohodesk/perf-components/lib': '@zohodesk/perf-components/es',
20
+ '@zohodesk/perf-middleware/lib': '@zohodesk/perf-middleware/es',
21
+ '@zohodesk/permissions/lib': '@zohodesk/permissions/es',
22
+ '@zohodesk/platform-middleware/lib': '@zohodesk/platform-middleware/es',
23
+ '@zohodesk/react-dnd/lib': '@zohodesk/react-dnd/es',
24
+ '@zohodesk/router-middleware/lib': '@zohodesk/router-middleware/es',
25
+ '@zohodesk/storage/lib': '@zohodesk/storage/es',
26
+ '@zohodesk/svg/lib': '@zohodesk/svg/es',
27
+ '@zohodesk/timetracker/lib': '@zohodesk/timetracker/es',
28
+ '@zohodesk/variables/lib': '@zohodesk/variables/es',
29
+ '@zohodesk/virtualizer/lib': '@zohodesk/virtualizer/es'
30
+ };
31
+ exports.libAlias = libAlias;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.getWebpackMode = getWebpackMode;
7
+ exports.isDevelopmentMode = isDevelopmentMode;
8
+ exports.isNotProduction = isNotProduction;
9
+ exports.isProductionMode = isProductionMode;
10
+
11
+ function isProductionMode(mode) {
12
+ return mode === 'prod' || mode === 'production';
13
+ }
14
+
15
+ function isDevelopmentMode(mode) {
16
+ return mode === 'dev' || mode === 'development';
17
+ }
18
+
19
+ function getWebpackMode(options) {
20
+ const {
21
+ mode
22
+ } = options;
23
+ return isProductionMode(mode) ? 'production' : 'development';
24
+ }
25
+
26
+ function isNotProduction(options) {
27
+ const {
28
+ mode
29
+ } = options;
30
+ return isProductionMode(mode) === false;
31
+ }