@servicetitan/startup 31.0.0 → 31.2.0

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 (159) hide show
  1. package/bin/index.js +8 -0
  2. package/dist/cli/commands/build.d.ts.map +1 -1
  3. package/dist/cli/commands/build.js +1 -7
  4. package/dist/cli/commands/build.js.map +1 -1
  5. package/dist/cli/commands/prepare-package.d.ts +1 -2
  6. package/dist/cli/commands/prepare-package.d.ts.map +1 -1
  7. package/dist/cli/commands/prepare-package.js +4 -6
  8. package/dist/cli/commands/prepare-package.js.map +1 -1
  9. package/dist/cli/commands/run-task.test.js +59 -0
  10. package/dist/cli/commands/run-task.test.js.map +1 -0
  11. package/dist/cli/commands/start.d.ts.map +1 -1
  12. package/dist/cli/commands/start.js +2 -11
  13. package/dist/cli/commands/start.js.map +1 -1
  14. package/dist/cli/tasks/swc-cli.d.js +3 -0
  15. package/dist/cli/tasks/swc-cli.d.js.map +1 -0
  16. package/dist/cli/tasks/swc-compile-package.d.ts.map +1 -1
  17. package/dist/cli/tasks/swc-compile-package.js +22 -19
  18. package/dist/cli/tasks/swc-compile-package.js.map +1 -1
  19. package/dist/cli/types/cpx2.d.js +3 -0
  20. package/dist/cli/types/cpx2.d.js.map +1 -0
  21. package/dist/cli/utils/bundle.d.ts +2 -2
  22. package/dist/cli/utils/bundle.d.ts.map +1 -1
  23. package/dist/cli/utils/bundle.js +18 -4
  24. package/dist/cli/utils/bundle.js.map +1 -1
  25. package/dist/cli/utils/copy-files.d.ts +1 -1
  26. package/dist/cli/utils/copy-files.d.ts.map +1 -1
  27. package/dist/cli/utils/copy-files.js +18 -11
  28. package/dist/cli/utils/copy-files.js.map +1 -1
  29. package/dist/cli/utils/get-module-type.d.ts.map +1 -1
  30. package/dist/cli/utils/get-module-type.js +2 -16
  31. package/dist/cli/utils/get-module-type.js.map +1 -1
  32. package/dist/cli/utils/index.d.ts +1 -1
  33. package/dist/cli/utils/index.d.ts.map +1 -1
  34. package/dist/cli/utils/index.js +1 -1
  35. package/dist/cli/utils/index.js.map +1 -1
  36. package/dist/cli/utils/ts-config.d.ts +11 -0
  37. package/dist/cli/utils/ts-config.d.ts.map +1 -0
  38. package/dist/cli/utils/ts-config.js +80 -0
  39. package/dist/cli/utils/ts-config.js.map +1 -0
  40. package/dist/utils/get-configuration.d.ts +1 -0
  41. package/dist/utils/get-configuration.d.ts.map +1 -1
  42. package/dist/utils/get-configuration.js +14 -0
  43. package/dist/utils/get-configuration.js.map +1 -1
  44. package/dist/utils/log.d.ts +1 -0
  45. package/dist/utils/log.d.ts.map +1 -1
  46. package/dist/utils/log.js +9 -0
  47. package/dist/utils/log.js.map +1 -1
  48. package/dist/webpack/configs/dev-server-config.d.ts.map +1 -1
  49. package/dist/webpack/configs/dev-server-config.js +11 -0
  50. package/dist/webpack/configs/dev-server-config.js.map +1 -1
  51. package/dist/webpack/configs/index.d.ts +0 -1
  52. package/dist/webpack/configs/index.d.ts.map +1 -1
  53. package/dist/webpack/configs/index.js +0 -1
  54. package/dist/webpack/configs/index.js.map +1 -1
  55. package/dist/webpack/configs/optimization-config.js +6 -6
  56. package/dist/webpack/configs/optimization-config.js.map +1 -1
  57. package/dist/webpack/configs/output-config.d.ts.map +1 -1
  58. package/dist/webpack/configs/output-config.js +3 -2
  59. package/dist/webpack/configs/output-config.js.map +1 -1
  60. package/dist/webpack/configs/plugins/html-plugin.d.ts +1 -1
  61. package/dist/webpack/configs/plugins/html-plugin.d.ts.map +1 -1
  62. package/dist/webpack/configs/plugins/html-plugin.js +2 -2
  63. package/dist/webpack/configs/plugins/html-plugin.js.map +1 -1
  64. package/dist/webpack/configs/plugins/virtual-modules-plugin.js +14 -4
  65. package/dist/webpack/configs/plugins/virtual-modules-plugin.js.map +1 -1
  66. package/dist/webpack/configs/utils/generate-metadata.d.ts.map +1 -1
  67. package/dist/webpack/configs/utils/generate-metadata.js +4 -0
  68. package/dist/webpack/configs/utils/generate-metadata.js.map +1 -1
  69. package/dist/webpack/create-webpack-config.d.ts.map +1 -1
  70. package/dist/webpack/create-webpack-config.js +0 -1
  71. package/dist/webpack/create-webpack-config.js.map +1 -1
  72. package/dist/webpack/types.d.ts +1 -0
  73. package/dist/webpack/types.d.ts.map +1 -1
  74. package/dist/webpack/utils/index.d.ts +0 -1
  75. package/dist/webpack/utils/index.d.ts.map +1 -1
  76. package/dist/webpack/utils/index.js +0 -1
  77. package/dist/webpack/utils/index.js.map +1 -1
  78. package/package.json +7 -8
  79. package/src/cli/commands/__tests__/build.test.ts +2 -4
  80. package/src/cli/commands/__tests__/prepare-package.test.ts +5 -28
  81. package/src/cli/commands/__tests__/start.test.ts +3 -5
  82. package/src/cli/commands/build.ts +0 -2
  83. package/src/cli/commands/prepare-package.ts +4 -7
  84. package/src/cli/commands/start.ts +1 -3
  85. package/src/cli/tasks/__tests__/swc-compile-package.test.ts +71 -12
  86. package/src/cli/tasks/swc-compile-package.ts +21 -20
  87. package/src/cli/utils/__tests__/bundle.test.ts +48 -7
  88. package/src/cli/utils/__tests__/copy-files.test.ts +5 -5
  89. package/src/cli/utils/bundle.ts +27 -5
  90. package/src/cli/utils/copy-files.ts +16 -6
  91. package/src/cli/utils/get-module-type.ts +2 -18
  92. package/src/cli/utils/index.ts +1 -1
  93. package/src/cli/utils/ts-config.ts +64 -0
  94. package/src/utils/__tests__/get-configuration.test.ts +20 -0
  95. package/src/utils/__tests__/log.test.ts +8 -0
  96. package/src/utils/get-configuration.ts +12 -0
  97. package/src/utils/log.ts +10 -0
  98. package/src/webpack/__tests__/create-webpack-config-shared-dependencies.test.ts +0 -1
  99. package/src/webpack/__tests__/create-webpack-config-web-component.test.ts +17 -28
  100. package/src/webpack/__tests__/create-webpack-config.test.ts +113 -42
  101. package/src/webpack/configs/dev-server-config.ts +13 -1
  102. package/src/webpack/configs/index.ts +0 -1
  103. package/src/webpack/configs/optimization-config.ts +6 -6
  104. package/src/webpack/configs/output-config.ts +4 -2
  105. package/src/webpack/configs/plugins/html-plugin.ts +5 -2
  106. package/src/webpack/configs/plugins/virtual-modules-plugin.ts +15 -2
  107. package/src/webpack/configs/utils/__tests__/generate-metadata.test.ts +3 -1
  108. package/src/webpack/configs/utils/generate-metadata.ts +6 -1
  109. package/src/webpack/create-webpack-config.ts +0 -2
  110. package/src/webpack/types.ts +1 -0
  111. package/src/webpack/utils/index.ts +0 -1
  112. package/dist/__mocks__/create-package.d.ts +0 -3
  113. package/dist/__mocks__/create-package.d.ts.map +0 -1
  114. package/dist/__mocks__/index.d.ts +0 -2
  115. package/dist/__mocks__/index.d.ts.map +0 -1
  116. package/dist/cli/commands/review/__mocks__/expect-calls.d.ts +0 -23
  117. package/dist/cli/commands/review/__mocks__/expect-calls.d.ts.map +0 -1
  118. package/dist/cli/commands/review/__mocks__/index.d.ts +0 -2
  119. package/dist/cli/commands/review/__mocks__/index.d.ts.map +0 -1
  120. package/dist/cli/commands/review/rules/__mocks__/index.d.ts +0 -4
  121. package/dist/cli/commands/review/rules/__mocks__/index.d.ts.map +0 -1
  122. package/dist/cli/commands/review/rules/__mocks__/mock-config.d.ts +0 -7
  123. package/dist/cli/commands/review/rules/__mocks__/mock-config.d.ts.map +0 -1
  124. package/dist/cli/commands/review/rules/__mocks__/mock-packages.d.ts +0 -21
  125. package/dist/cli/commands/review/rules/__mocks__/mock-packages.d.ts.map +0 -1
  126. package/dist/cli/commands/review/rules/__mocks__/mock-project.d.ts +0 -3
  127. package/dist/cli/commands/review/rules/__mocks__/mock-project.d.ts.map +0 -1
  128. package/dist/cli/utils/style-extensions.d.ts +0 -2
  129. package/dist/cli/utils/style-extensions.d.ts.map +0 -1
  130. package/dist/cli/utils/style-extensions.js +0 -17
  131. package/dist/cli/utils/style-extensions.js.map +0 -1
  132. package/dist/cli/utils/tcm.d.ts +0 -6
  133. package/dist/cli/utils/tcm.d.ts.map +0 -1
  134. package/dist/cli/utils/tcm.js +0 -72
  135. package/dist/cli/utils/tcm.js.map +0 -1
  136. package/dist/webpack/__mocks__/file-rules.d.ts +0 -3
  137. package/dist/webpack/__mocks__/file-rules.d.ts.map +0 -1
  138. package/dist/webpack/__mocks__/index.d.ts +0 -3
  139. package/dist/webpack/__mocks__/index.d.ts.map +0 -1
  140. package/dist/webpack/__mocks__/style-rules.d.ts +0 -8
  141. package/dist/webpack/__mocks__/style-rules.d.ts.map +0 -1
  142. package/dist/webpack/configs/cache-config.d.ts +0 -6
  143. package/dist/webpack/configs/cache-config.d.ts.map +0 -1
  144. package/dist/webpack/configs/cache-config.js +0 -34
  145. package/dist/webpack/configs/cache-config.js.map +0 -1
  146. package/dist/webpack/utils/feature-cohort.d.ts +0 -5
  147. package/dist/webpack/utils/feature-cohort.d.ts.map +0 -1
  148. package/dist/webpack/utils/feature-cohort.js +0 -26
  149. package/dist/webpack/utils/feature-cohort.js.map +0 -1
  150. package/dist/webpack/utils/hash-mod.d.ts +0 -9
  151. package/dist/webpack/utils/hash-mod.d.ts.map +0 -1
  152. package/dist/webpack/utils/hash-mod.js +0 -39
  153. package/dist/webpack/utils/hash-mod.js.map +0 -1
  154. package/src/cli/utils/__tests__/tcm.test.ts +0 -195
  155. package/src/cli/utils/style-extensions.ts +0 -1
  156. package/src/cli/utils/tcm.ts +0 -66
  157. package/src/webpack/configs/cache-config.ts +0 -25
  158. package/src/webpack/utils/feature-cohort.ts +0 -19
  159. package/src/webpack/utils/hash-mod.ts +0 -32
package/bin/index.js CHANGED
@@ -8,6 +8,14 @@ try {
8
8
  if (startupPath && (startupPath.includes('node_modules') || startupPath.includes('.yalc'))) {
9
9
  require('../dist/cli/index.js');
10
10
  } else {
11
+ /*
12
+ * Workaround to prevent sporadic ReadSingleBytecodeData errors inside V8
13
+ * ts-node is using v8-compile-cache-lib to cache require statements
14
+ * See: https://github.com/nodejs/node/issues/51555
15
+ */
16
+ if (process.env.CI) {
17
+ process.env.DISABLE_V8_COMPILE_CACHE = '1';
18
+ }
11
19
  require('ts-node').register({
12
20
  project: require.resolve('../tsconfig.json'),
13
21
  transpileOnly: true,
@@ -1 +1 @@
1
- {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,UAAU,IAAI;IACV,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,oBAAY,cAAc;IACtB,SAAS,IAAA;IACT,gBAAgB,IAAA;IAChB,gBAAgB,IAAA;IAChB,WAAW,IAAA;IACX,eAAe,IAAA;CAClB;AAED,qBAAa,KAAM,YAAW,OAAO;IAGrB,OAAO,CAAC,IAAI;IAFxB,QAAQ,CAAC,MAAM,QAAQ;gBAEH,IAAI,EAAE,IAAI;IAE9B,WAAW;IAKL,OAAO;CAqEhB"}
1
+ {"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,UAAU,IAAI;IACV,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,oBAAY,cAAc;IACtB,SAAS,IAAA;IACT,gBAAgB,IAAA;IAChB,gBAAgB,IAAA;IAChB,WAAW,IAAA;IACX,eAAe,IAAA;CAClB;AAED,qBAAa,KAAM,YAAW,OAAO;IAGrB,OAAO,CAAC,IAAI;IAFxB,QAAQ,CAAC,MAAM,QAAQ;gBAEH,IAAI,EAAE,IAAI;IAE9B,WAAW;IAKL,OAAO;CAmEhB"}
@@ -84,14 +84,8 @@ class Build {
84
84
  processTree.add(1, ()=>(0, _kendouilicense.kendoUILicense)());
85
85
  processTree.add(2, ()=>(0, _utils1.lernaExec)({
86
86
  cmd: 'startup prepare-package',
87
- parallel: true,
88
87
  scope,
89
- stream: true,
90
- ...useTsc ? {
91
- '--': [
92
- '--copy-files'
93
- ]
94
- } : {}
88
+ stream: true
95
89
  }));
96
90
  processTree.add(3, ()=>(0, _utils1.typeCheck)({
97
91
  packages: scope
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/build.ts"],"sourcesContent":["import { getPackages, logErrors, PackageType } from '../../utils';\nimport { checkArgs, compile, lernaExec, typeCheck, ProcessTree } from '../utils';\nimport { kendoUILicense } from './kendo-ui-license';\nimport { Command } from './types';\n\ninterface Args {\n 'cdn-path'?: string;\n 'code-coverage'?: boolean;\n 'config'?: string;\n 'ignore'?: string | string[];\n 'scope'?: string | string[];\n 'stat'?: boolean;\n 'use-tsc'?: boolean;\n}\n\nexport enum BuildProcesses {\n 'Compile',\n 'KendoUILicense',\n 'PreparePackage',\n 'TypeCheck',\n 'BundlePackage',\n}\n\nexport class Build implements Command {\n readonly greedy = true;\n\n constructor(private args: Args) {}\n\n description() {\n return 'build project for production';\n }\n\n @logErrors\n async execute() {\n checkArgs(this.args, { obsolete: ['--esbuild', '--experimental-bundlers'] });\n\n const useTsc = this.args['use-tsc'];\n\n const packages = getPackages({\n scope: this.args.scope,\n ignore: this.args.ignore,\n type: [PackageType.TSC, PackageType.Webpack],\n });\n if (packages.length === 0) {\n return;\n }\n\n if (this.args['cdn-path']) {\n process.env.CLIENT_CDN_PATH = this.args['cdn-path'];\n }\n\n const scope = packages.map(({ name }) => name);\n\n const processTree = new ProcessTree<typeof BuildProcesses>();\n\n processTree.add(BuildProcesses.Compile, () => compile({ packages: scope, useTsc }));\n processTree.add(BuildProcesses.KendoUILicense, () => kendoUILicense());\n processTree.add(BuildProcesses.PreparePackage, () =>\n lernaExec({\n cmd: 'startup prepare-package',\n parallel: true,\n scope,\n stream: true,\n ...(useTsc ? { '--': ['--copy-files'] } : {}),\n })\n );\n processTree.add(BuildProcesses.TypeCheck, () => typeCheck({ packages: scope }), {\n dependsOn: [BuildProcesses.PreparePackage],\n });\n processTree.add(\n BuildProcesses.BundlePackage,\n () => {\n const webpackScope = packages\n .filter(({ type }) => type === PackageType.Webpack)\n .map(({ name }) => name);\n\n if (webpackScope.length === 0) {\n return Promise.resolve();\n }\n\n return lernaExec({\n 'cmd': 'startup bundle-package',\n 'scope': webpackScope,\n 'stream': true,\n '--': [\n ...[this.args.config ? `--config \"${this.args.config}\"` : undefined],\n ...[this.args['code-coverage'] ? '--code-coverage' : undefined],\n ...[this.args.stat ? '--stat' : undefined],\n ].filter(item => !!item) as string[],\n });\n },\n {\n dependsOn: [\n BuildProcesses.Compile,\n BuildProcesses.KendoUILicense,\n BuildProcesses.PreparePackage,\n ],\n }\n );\n\n await processTree.run();\n }\n}\n"],"names":["Build","BuildProcesses","description","execute","checkArgs","args","obsolete","useTsc","packages","getPackages","scope","ignore","type","PackageType","TSC","Webpack","length","process","env","CLIENT_CDN_PATH","map","name","processTree","ProcessTree","add","compile","kendoUILicense","lernaExec","cmd","parallel","stream","typeCheck","dependsOn","webpackScope","filter","Promise","resolve","config","undefined","stat","item","run","constructor","greedy"],"mappings":";;;;;;;;;;;QAuBaA;eAAAA;;QARDC;eAAAA;;;uBAfwC;wBACkB;gCACvC;;;;;;;;;;;;;;;;;;;;;;;AAaxB,IAAA,AAAKA,wCAAAA;;;;;;WAAAA;;AAQL,MAAMD;IAKTE,cAAc;QACV,OAAO;IACX;IAEA,MACMC,UAAU;QACZC,IAAAA,iBAAS,EAAC,IAAI,CAACC,IAAI,EAAE;YAAEC,UAAU;gBAAC;gBAAa;aAA0B;QAAC;QAE1E,MAAMC,SAAS,IAAI,CAACF,IAAI,CAAC,UAAU;QAEnC,MAAMG,WAAWC,IAAAA,kBAAW,EAAC;YACzBC,OAAO,IAAI,CAACL,IAAI,CAACK,KAAK;YACtBC,QAAQ,IAAI,CAACN,IAAI,CAACM,MAAM;YACxBC,MAAM;gBAACC,kBAAW,CAACC,GAAG;gBAAED,kBAAW,CAACE,OAAO;aAAC;QAChD;QACA,IAAIP,SAASQ,MAAM,KAAK,GAAG;YACvB;QACJ;QAEA,IAAI,IAAI,CAACX,IAAI,CAAC,WAAW,EAAE;YACvBY,QAAQC,GAAG,CAACC,eAAe,GAAG,IAAI,CAACd,IAAI,CAAC,WAAW;QACvD;QAEA,MAAMK,QAAQF,SAASY,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA;QAEzC,MAAMC,cAAc,IAAIC,mBAAW;QAEnCD,YAAYE,GAAG,IAAyB,IAAMC,IAAAA,eAAO,EAAC;gBAAEjB,UAAUE;gBAAOH;YAAO;QAChFe,YAAYE,GAAG,IAAgC,IAAME,IAAAA,8BAAc;QACnEJ,YAAYE,GAAG,IAAgC,IAC3CG,IAAAA,iBAAS,EAAC;gBACNC,KAAK;gBACLC,UAAU;gBACVnB;gBACAoB,QAAQ;gBACR,GAAIvB,SAAS;oBAAE,MAAM;wBAAC;qBAAe;gBAAC,IAAI,CAAC,CAAC;YAChD;QAEJe,YAAYE,GAAG,IAA2B,IAAMO,IAAAA,iBAAS,EAAC;gBAAEvB,UAAUE;YAAM,IAAI;YAC5EsB,WAAW;;aAA+B;QAC9C;QACAV,YAAYE,GAAG,IAEX;YACI,MAAMS,eAAezB,SAChB0B,MAAM,CAAC,CAAC,EAAEtB,IAAI,EAAE,GAAKA,SAASC,kBAAW,CAACE,OAAO,EACjDK,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA;YAEvB,IAAIY,aAAajB,MAAM,KAAK,GAAG;gBAC3B,OAAOmB,QAAQC,OAAO;YAC1B;YAEA,OAAOT,IAAAA,iBAAS,EAAC;gBACb,OAAO;gBACP,SAASM;gBACT,UAAU;gBACV,MAAM;uBACC;wBAAC,IAAI,CAAC5B,IAAI,CAACgC,MAAM,GAAG,CAAC,UAAU,EAAE,IAAI,CAAChC,IAAI,CAACgC,MAAM,CAAC,CAAC,CAAC,GAAGC;qBAAU;uBACjE;wBAAC,IAAI,CAACjC,IAAI,CAAC,gBAAgB,GAAG,oBAAoBiC;qBAAU;uBAC5D;wBAAC,IAAI,CAACjC,IAAI,CAACkC,IAAI,GAAG,WAAWD;qBAAU;iBAC7C,CAACJ,MAAM,CAACM,CAAAA,OAAQ,CAAC,CAACA;YACvB;QACJ,GACA;YACIR,WAAW;;;;aAIV;QACL;QAGJ,MAAMV,YAAYmB,GAAG;IACzB;IA3EAC,YAAY,AAAQrC,IAAU,CAAE;;QAFhC,uBAASsC,UAAT,KAAA;aAEoBtC,OAAAA;aAFXsC,SAAS;IAEe;AA4ErC"}
1
+ {"version":3,"sources":["../../../src/cli/commands/build.ts"],"sourcesContent":["import { getPackages, logErrors, PackageType } from '../../utils';\nimport { checkArgs, compile, lernaExec, typeCheck, ProcessTree } from '../utils';\nimport { kendoUILicense } from './kendo-ui-license';\nimport { Command } from './types';\n\ninterface Args {\n 'cdn-path'?: string;\n 'code-coverage'?: boolean;\n 'config'?: string;\n 'ignore'?: string | string[];\n 'scope'?: string | string[];\n 'stat'?: boolean;\n 'use-tsc'?: boolean;\n}\n\nexport enum BuildProcesses {\n 'Compile',\n 'KendoUILicense',\n 'PreparePackage',\n 'TypeCheck',\n 'BundlePackage',\n}\n\nexport class Build implements Command {\n readonly greedy = true;\n\n constructor(private args: Args) {}\n\n description() {\n return 'build project for production';\n }\n\n @logErrors\n async execute() {\n checkArgs(this.args, { obsolete: ['--esbuild', '--experimental-bundlers'] });\n\n const useTsc = this.args['use-tsc'];\n\n const packages = getPackages({\n scope: this.args.scope,\n ignore: this.args.ignore,\n type: [PackageType.TSC, PackageType.Webpack],\n });\n if (packages.length === 0) {\n return;\n }\n\n if (this.args['cdn-path']) {\n process.env.CLIENT_CDN_PATH = this.args['cdn-path'];\n }\n\n const scope = packages.map(({ name }) => name);\n\n const processTree = new ProcessTree<typeof BuildProcesses>();\n\n processTree.add(BuildProcesses.Compile, () => compile({ packages: scope, useTsc }));\n processTree.add(BuildProcesses.KendoUILicense, () => kendoUILicense());\n processTree.add(BuildProcesses.PreparePackage, () =>\n lernaExec({\n cmd: 'startup prepare-package',\n scope,\n stream: true,\n })\n );\n processTree.add(BuildProcesses.TypeCheck, () => typeCheck({ packages: scope }), {\n dependsOn: [BuildProcesses.PreparePackage],\n });\n processTree.add(\n BuildProcesses.BundlePackage,\n () => {\n const webpackScope = packages\n .filter(({ type }) => type === PackageType.Webpack)\n .map(({ name }) => name);\n\n if (webpackScope.length === 0) {\n return Promise.resolve();\n }\n\n return lernaExec({\n 'cmd': 'startup bundle-package',\n 'scope': webpackScope,\n 'stream': true,\n '--': [\n ...[this.args.config ? `--config \"${this.args.config}\"` : undefined],\n ...[this.args['code-coverage'] ? '--code-coverage' : undefined],\n ...[this.args.stat ? '--stat' : undefined],\n ].filter(item => !!item) as string[],\n });\n },\n {\n dependsOn: [\n BuildProcesses.Compile,\n BuildProcesses.KendoUILicense,\n BuildProcesses.PreparePackage,\n ],\n }\n );\n\n await processTree.run();\n }\n}\n"],"names":["Build","BuildProcesses","description","execute","checkArgs","args","obsolete","useTsc","packages","getPackages","scope","ignore","type","PackageType","TSC","Webpack","length","process","env","CLIENT_CDN_PATH","map","name","processTree","ProcessTree","add","compile","kendoUILicense","lernaExec","cmd","stream","typeCheck","dependsOn","webpackScope","filter","Promise","resolve","config","undefined","stat","item","run","constructor","greedy"],"mappings":";;;;;;;;;;;QAuBaA;eAAAA;;QARDC;eAAAA;;;uBAfwC;wBACkB;gCACvC;;;;;;;;;;;;;;;;;;;;;;;AAaxB,IAAA,AAAKA,wCAAAA;;;;;;WAAAA;;AAQL,MAAMD;IAKTE,cAAc;QACV,OAAO;IACX;IAEA,MACMC,UAAU;QACZC,IAAAA,iBAAS,EAAC,IAAI,CAACC,IAAI,EAAE;YAAEC,UAAU;gBAAC;gBAAa;aAA0B;QAAC;QAE1E,MAAMC,SAAS,IAAI,CAACF,IAAI,CAAC,UAAU;QAEnC,MAAMG,WAAWC,IAAAA,kBAAW,EAAC;YACzBC,OAAO,IAAI,CAACL,IAAI,CAACK,KAAK;YACtBC,QAAQ,IAAI,CAACN,IAAI,CAACM,MAAM;YACxBC,MAAM;gBAACC,kBAAW,CAACC,GAAG;gBAAED,kBAAW,CAACE,OAAO;aAAC;QAChD;QACA,IAAIP,SAASQ,MAAM,KAAK,GAAG;YACvB;QACJ;QAEA,IAAI,IAAI,CAACX,IAAI,CAAC,WAAW,EAAE;YACvBY,QAAQC,GAAG,CAACC,eAAe,GAAG,IAAI,CAACd,IAAI,CAAC,WAAW;QACvD;QAEA,MAAMK,QAAQF,SAASY,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA;QAEzC,MAAMC,cAAc,IAAIC,mBAAW;QAEnCD,YAAYE,GAAG,IAAyB,IAAMC,IAAAA,eAAO,EAAC;gBAAEjB,UAAUE;gBAAOH;YAAO;QAChFe,YAAYE,GAAG,IAAgC,IAAME,IAAAA,8BAAc;QACnEJ,YAAYE,GAAG,IAAgC,IAC3CG,IAAAA,iBAAS,EAAC;gBACNC,KAAK;gBACLlB;gBACAmB,QAAQ;YACZ;QAEJP,YAAYE,GAAG,IAA2B,IAAMM,IAAAA,iBAAS,EAAC;gBAAEtB,UAAUE;YAAM,IAAI;YAC5EqB,WAAW;;aAA+B;QAC9C;QACAT,YAAYE,GAAG,IAEX;YACI,MAAMQ,eAAexB,SAChByB,MAAM,CAAC,CAAC,EAAErB,IAAI,EAAE,GAAKA,SAASC,kBAAW,CAACE,OAAO,EACjDK,GAAG,CAAC,CAAC,EAAEC,IAAI,EAAE,GAAKA;YAEvB,IAAIW,aAAahB,MAAM,KAAK,GAAG;gBAC3B,OAAOkB,QAAQC,OAAO;YAC1B;YAEA,OAAOR,IAAAA,iBAAS,EAAC;gBACb,OAAO;gBACP,SAASK;gBACT,UAAU;gBACV,MAAM;uBACC;wBAAC,IAAI,CAAC3B,IAAI,CAAC+B,MAAM,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC/B,IAAI,CAAC+B,MAAM,CAAC,CAAC,CAAC,GAAGC;qBAAU;uBACjE;wBAAC,IAAI,CAAChC,IAAI,CAAC,gBAAgB,GAAG,oBAAoBgC;qBAAU;uBAC5D;wBAAC,IAAI,CAAChC,IAAI,CAACiC,IAAI,GAAG,WAAWD;qBAAU;iBAC7C,CAACJ,MAAM,CAACM,CAAAA,OAAQ,CAAC,CAACA;YACvB;QACJ,GACA;YACIR,WAAW;;;;aAIV;QACL;QAGJ,MAAMT,YAAYkB,GAAG;IACzB;IAzEAC,YAAY,AAAQpC,IAAU,CAAE;;QAFhC,uBAASqC,UAAT,KAAA;aAEoBrC,OAAAA;aAFXqC,SAAS;IAEe;AA0ErC"}
@@ -1,7 +1,6 @@
1
1
  import { Command } from './types';
2
2
  interface Args {
3
- 'watch'?: boolean;
4
- 'copy-files'?: boolean;
3
+ watch?: boolean;
5
4
  }
6
5
  export declare class PreparePackage implements Command {
7
6
  private args;
@@ -1 +1 @@
1
- {"version":3,"file":"prepare-package.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/prepare-package.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,UAAU,IAAI;IACV,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qBAAa,cAAe,YAAW,OAAO;IAC9B,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,IAAI;IAE9B,WAAW;IAKL,OAAO;CAKhB"}
1
+ {"version":3,"file":"prepare-package.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/prepare-package.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,UAAU,IAAI;IACV,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qBAAa,cAAe,YAAW,OAAO;IAC9B,OAAO,CAAC,IAAI;gBAAJ,IAAI,EAAE,IAAI;IAE9B,WAAW;IAKX,OAAO;CAGV"}
@@ -36,12 +36,10 @@ class PreparePackage {
36
36
  description() {
37
37
  return undefined;
38
38
  }
39
- async execute() {
40
- await (this.args['copy-files'] ? (0, _utils1.copyFiles)({
39
+ execute() {
40
+ return (0, _utils1.copyFiles)({
41
41
  watch: this.args.watch
42
- }) : (0, _utils1.tcm)({
43
- watch: this.args.watch
44
- }));
42
+ });
45
43
  }
46
44
  constructor(args){
47
45
  _define_property(this, "args", void 0);
@@ -52,7 +50,7 @@ _ts_decorate([
52
50
  _utils.logErrors,
53
51
  _ts_metadata("design:type", Function),
54
52
  _ts_metadata("design:paramtypes", []),
55
- _ts_metadata("design:returntype", Promise)
53
+ _ts_metadata("design:returntype", void 0)
56
54
  ], PreparePackage.prototype, "execute", null);
57
55
 
58
56
  //# sourceMappingURL=prepare-package.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/prepare-package.ts"],"sourcesContent":["import { logErrors } from '../../utils';\nimport { copyFiles, tcm } from '../utils';\nimport { Command } from './types';\n\ninterface Args {\n 'watch'?: boolean;\n 'copy-files'?: boolean;\n}\n\nexport class PreparePackage implements Command {\n constructor(private args: Args) {}\n\n description() {\n return undefined;\n }\n\n @logErrors\n async execute() {\n await (this.args['copy-files']\n ? copyFiles({ watch: this.args.watch })\n : tcm({ watch: this.args.watch }));\n }\n}\n"],"names":["PreparePackage","description","undefined","execute","args","copyFiles","watch","tcm","constructor"],"mappings":";;;;+BASaA;;;eAAAA;;;uBATa;wBACK;;;;;;;;;;;;;;;;;;;;;;;AAQxB,MAAMA;IAGTC,cAAc;QACV,OAAOC;IACX;IAEA,MACMC,UAAU;QACZ,MAAO,CAAA,IAAI,CAACC,IAAI,CAAC,aAAa,GACxBC,IAAAA,iBAAS,EAAC;YAAEC,OAAO,IAAI,CAACF,IAAI,CAACE,KAAK;QAAC,KACnCC,IAAAA,WAAG,EAAC;YAAED,OAAO,IAAI,CAACF,IAAI,CAACE,KAAK;QAAC,EAAC;IACxC;IAXAE,YAAY,AAAQJ,IAAU,CAAE;;aAAZA,OAAAA;IAAa;AAYrC"}
1
+ {"version":3,"sources":["../../../src/cli/commands/prepare-package.ts"],"sourcesContent":["import { logErrors } from '../../utils';\nimport { copyFiles } from '../utils';\nimport { Command } from './types';\n\ninterface Args {\n watch?: boolean;\n}\n\nexport class PreparePackage implements Command {\n constructor(private args: Args) {}\n\n description() {\n return undefined;\n }\n\n @logErrors\n execute() {\n return copyFiles({ watch: this.args.watch });\n }\n}\n"],"names":["PreparePackage","description","undefined","execute","copyFiles","watch","args","constructor"],"mappings":";;;;+BAQaA;;;eAAAA;;;uBARa;wBACA;;;;;;;;;;;;;;;;;;;;;;;AAOnB,MAAMA;IAGTC,cAAc;QACV,OAAOC;IACX;IAGAC,UAAU;QACN,OAAOC,IAAAA,iBAAS,EAAC;YAAEC,OAAO,IAAI,CAACC,IAAI,CAACD,KAAK;QAAC;IAC9C;IATAE,YAAY,AAAQD,IAAU,CAAE;;aAAZA,OAAAA;IAAa;AAUrC"}
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", {
3
+ value: true
4
+ });
5
+ const _swccompilepackage = require("../tasks/swc-compile-package");
6
+ const _tsccompile = require("../tasks/tsc-compile");
7
+ const _tsccompilepackage = require("../tasks/tsc-compile-package");
8
+ const _runtask = require("./run-task");
9
+ const _utils = require("../../utils");
10
+ jest.mock('../../utils', ()=>({
11
+ ...jest.requireActual('../../utils'),
12
+ log: {
13
+ error: jest.fn(),
14
+ text: jest.fn()
15
+ }
16
+ }));
17
+ jest.mock('../tasks/swc-compile-package');
18
+ jest.mock('../tasks/tsc-compile');
19
+ jest.mock('../tasks/tsc-compile-package');
20
+ describe(`[startup] ${_runtask.RunTask.name}`, ()=>{
21
+ let args;
22
+ beforeEach(()=>{
23
+ jest.clearAllMocks();
24
+ });
25
+ const subject = ()=>new _runtask.RunTask(args).execute();
26
+ const supportedTasks = {
27
+ 'tsc-compile-package': _tsccompilepackage.TscCompilePackage,
28
+ 'swc-compile-package': _swccompilepackage.SwcCompilePackage,
29
+ 'tsc-compile': _tsccompile.TscCompile
30
+ };
31
+ Object.entries(supportedTasks).forEach(([name, task])=>describe(`with ${name}`, ()=>{
32
+ beforeEach(()=>args = {
33
+ _: [
34
+ name
35
+ ]
36
+ }); // eslint-disable-line @typescript-eslint/naming-convention
37
+ test(`runs ${task.name}`, async ()=>{
38
+ await subject();
39
+ expect(jest.mocked(task).mock.instances[0].execute).toHaveBeenCalled();
40
+ });
41
+ }));
42
+ describe('with unrecognized task', ()=>{
43
+ beforeEach(()=>args = {
44
+ _: [
45
+ 'foo'
46
+ ]
47
+ }); // eslint-disable-line @typescript-eslint/naming-convention
48
+ test('logs error', async ()=>{
49
+ await subject();
50
+ expect(_utils.log.error).toHaveBeenCalledWith(`Unknown task: "${args._[0]}"`);
51
+ });
52
+ test('lists supported tasks', async ()=>{
53
+ await subject();
54
+ expect(_utils.log.text).toHaveBeenCalledWith(`\nSupported tasks: "${Object.keys(supportedTasks).join('", "')}"`);
55
+ });
56
+ });
57
+ });
58
+
59
+ //# sourceMappingURL=run-task.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/cli/commands/run-task.test.ts"],"sourcesContent":["import { SwcCompilePackage } from '../tasks/swc-compile-package';\nimport { TscCompile } from '../tasks/tsc-compile';\nimport { TscCompilePackage } from '../tasks/tsc-compile-package';\n\nimport { RunTask } from './run-task';\nimport { log } from '../../utils';\n\njest.mock('../../utils', () => ({\n ...jest.requireActual('../../utils'),\n log: { error: jest.fn(), text: jest.fn() },\n}));\njest.mock('../tasks/swc-compile-package');\njest.mock('../tasks/tsc-compile');\njest.mock('../tasks/tsc-compile-package');\n\ndescribe(`[startup] ${RunTask.name}`, () => {\n let args: ConstructorParameters<typeof RunTask>[0];\n\n beforeEach(() => {\n jest.clearAllMocks();\n });\n\n const subject = () => new RunTask(args).execute();\n\n const supportedTasks = {\n 'tsc-compile-package': TscCompilePackage,\n 'swc-compile-package': SwcCompilePackage,\n 'tsc-compile': TscCompile,\n };\n\n Object.entries(supportedTasks).forEach(([name, task]) =>\n describe(`with ${name}`, () => {\n beforeEach(() => (args = { _: [name] })); // eslint-disable-line @typescript-eslint/naming-convention\n\n test(`runs ${task.name}`, async () => {\n await subject();\n\n expect(jest.mocked(task).mock.instances[0].execute).toHaveBeenCalled();\n });\n })\n );\n\n describe('with unrecognized task', () => {\n beforeEach(() => (args = { _: ['foo'] })); // eslint-disable-line @typescript-eslint/naming-convention\n\n test('logs error', async () => {\n await subject();\n\n expect(log.error).toHaveBeenCalledWith(`Unknown task: \"${args._[0]}\"`);\n });\n\n test('lists supported tasks', async () => {\n await subject();\n\n expect(log.text).toHaveBeenCalledWith(\n `\\nSupported tasks: \"${Object.keys(supportedTasks).join('\", \"')}\"`\n );\n });\n });\n});\n"],"names":["jest","mock","requireActual","log","error","fn","text","describe","RunTask","name","args","beforeEach","clearAllMocks","subject","execute","supportedTasks","TscCompilePackage","SwcCompilePackage","TscCompile","Object","entries","forEach","task","_","test","expect","mocked","instances","toHaveBeenCalled","toHaveBeenCalledWith","keys","join"],"mappings":";;;;mCAAkC;4BACP;mCACO;yBAEV;uBACJ;AAEpBA,KAAKC,IAAI,CAAC,eAAe,IAAO,CAAA;QAC5B,GAAGD,KAAKE,aAAa,CAAC,cAAc;QACpCC,KAAK;YAAEC,OAAOJ,KAAKK,EAAE;YAAIC,MAAMN,KAAKK,EAAE;QAAG;IAC7C,CAAA;AACAL,KAAKC,IAAI,CAAC;AACVD,KAAKC,IAAI,CAAC;AACVD,KAAKC,IAAI,CAAC;AAEVM,SAAS,CAAC,UAAU,EAAEC,gBAAO,CAACC,IAAI,EAAE,EAAE;IAClC,IAAIC;IAEJC,WAAW;QACPX,KAAKY,aAAa;IACtB;IAEA,MAAMC,UAAU,IAAM,IAAIL,gBAAO,CAACE,MAAMI,OAAO;IAE/C,MAAMC,iBAAiB;QACnB,uBAAuBC,oCAAiB;QACxC,uBAAuBC,oCAAiB;QACxC,eAAeC,sBAAU;IAC7B;IAEAC,OAAOC,OAAO,CAACL,gBAAgBM,OAAO,CAAC,CAAC,CAACZ,MAAMa,KAAK,GAChDf,SAAS,CAAC,KAAK,EAAEE,MAAM,EAAE;YACrBE,WAAW,IAAOD,OAAO;oBAAEa,GAAG;wBAACd;qBAAK;gBAAC,IAAK,2DAA2D;YAErGe,KAAK,CAAC,KAAK,EAAEF,KAAKb,IAAI,EAAE,EAAE;gBACtB,MAAMI;gBAENY,OAAOzB,KAAK0B,MAAM,CAACJ,MAAMrB,IAAI,CAAC0B,SAAS,CAAC,EAAE,CAACb,OAAO,EAAEc,gBAAgB;YACxE;QACJ;IAGJrB,SAAS,0BAA0B;QAC/BI,WAAW,IAAOD,OAAO;gBAAEa,GAAG;oBAAC;iBAAM;YAAC,IAAK,2DAA2D;QAEtGC,KAAK,cAAc;YACf,MAAMX;YAENY,OAAOtB,UAAG,CAACC,KAAK,EAAEyB,oBAAoB,CAAC,CAAC,eAAe,EAAEnB,KAAKa,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACzE;QAEAC,KAAK,yBAAyB;YAC1B,MAAMX;YAENY,OAAOtB,UAAG,CAACG,IAAI,EAAEuB,oBAAoB,CACjC,CAAC,oBAAoB,EAAEV,OAAOW,IAAI,CAACf,gBAAgBgB,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE1E;IACJ;AACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,UAAU,IAAI;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,oBAAY,cAAc;IACtB,OAAO,IAAA;IACP,cAAc,IAAA;IACd,cAAc,IAAA;IACd,mBAAmB,IAAA;IACnB,SAAS,IAAA;IACT,aAAa,IAAA;CAChB;AAED,qBAAa,KAAM,YAAW,OAAO;IAGrB,OAAO,CAAC,IAAI;IAFxB,QAAQ,CAAC,MAAM,QAAQ;gBAEH,IAAI,EAAE,IAAI;IAE9B,WAAW;IAKL,OAAO;CAiHhB"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/start.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,UAAU,IAAI;IACV,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,oBAAY,cAAc;IACtB,OAAO,IAAA;IACP,cAAc,IAAA;IACd,cAAc,IAAA;IACd,mBAAmB,IAAA;IACnB,SAAS,IAAA;IACT,aAAa,IAAA;CAChB;AAED,qBAAa,KAAM,YAAW,OAAO;IAGrB,OAAO,CAAC,IAAI;IAFxB,QAAQ,CAAC,MAAM,QAAQ;gBAEH,IAAI,EAAE,IAAI;IAE9B,WAAW;IAKL,OAAO;CA+GhB"}
@@ -109,14 +109,8 @@ class Start {
109
109
  });
110
110
  processTree.add(2, ()=>(0, _utils1.lernaExec)({
111
111
  cmd: 'startup prepare-package',
112
- parallel: true,
113
112
  scope,
114
- stream: true,
115
- ...useTsc ? {
116
- '--': [
117
- '--copy-files'
118
- ]
119
- } : {}
113
+ stream: true
120
114
  }));
121
115
  processTree.add(3, ()=>(0, _utils1.lernaExec)({
122
116
  'cmd': 'startup prepare-package',
@@ -124,10 +118,7 @@ class Start {
124
118
  'parallel': true,
125
119
  'stream': true,
126
120
  '--': [
127
- '--watch',
128
- ...useTsc ? [
129
- '--copy-files'
130
- ] : []
121
+ '--watch'
131
122
  ]
132
123
  }), {
133
124
  dependsOn: [
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/commands/start.ts"],"sourcesContent":["import { getPackages, log, logErrors, PackageType } from '../../utils';\nimport {\n checkArgs,\n lernaExec,\n compile,\n typeCheck,\n pipeStdout,\n watchStdout,\n ProcessTree,\n} from '../utils';\nimport { Command } from './types';\n\ninterface Args {\n 'config'?: string;\n 'code-coverage'?: boolean;\n 'ignore'?: string | string[];\n 'scope'?: string | string[];\n 'use-tsc'?: boolean;\n}\n\nexport enum StartProcesses {\n Compile,\n KendoUILicense,\n PreparePackage,\n PreparePackageWatch,\n TypeCheck,\n BundlePackage,\n}\n\nexport class Start implements Command {\n readonly greedy = true;\n\n constructor(private args: Args) {}\n\n description() {\n return 'run project in development mode';\n }\n\n @logErrors\n async execute() {\n checkArgs(this.args, { obsolete: ['--esbuild', '--experimental-bundlers'] });\n\n const useTsc = this.args['use-tsc'];\n\n const packages = getPackages({\n scope: this.args.scope,\n ignore: this.args.ignore,\n type: [PackageType.TSC, PackageType.Webpack],\n });\n if (packages.length === 0) {\n return;\n }\n\n const scope = packages.map(({ name }) => name);\n\n const processTree = new ProcessTree<typeof StartProcesses>();\n\n processTree.add(StartProcesses.Compile, () => {\n const process = compile({\n packages: scope,\n watch: true,\n useTsc,\n });\n\n pipeStdout(process);\n\n const onComplete = new Promise<void>(resolve => {\n let counter = 0;\n let timeout: NodeJS.Timeout;\n\n if (!useTsc) {\n /*\n * Running the timer as a fallback\n * In case there are no files in the package swc will not print out completion indicator\n */\n timeout = setTimeout(() => {\n log.warning('Compilation timeout exceeded. Proceeding without waiting.');\n resolve();\n unwatch();\n }, 30000);\n }\n\n const unwatch = watchStdout(\n process,\n useTsc\n ? 'Initial tsc-compile-package task completed'\n : 'Initial swc-compile-package task completed',\n count => {\n counter += count;\n\n if (counter === scope.length) {\n resolve();\n clearTimeout(timeout);\n }\n }\n );\n });\n\n return { process, onComplete };\n });\n processTree.add(StartProcesses.PreparePackage, () =>\n lernaExec({\n cmd: 'startup prepare-package',\n parallel: true,\n scope,\n stream: true,\n ...(useTsc ? { '--': ['--copy-files'] } : {}),\n })\n );\n processTree.add(\n StartProcesses.PreparePackageWatch,\n () =>\n lernaExec({\n 'cmd': 'startup prepare-package',\n scope,\n 'parallel': true,\n 'stream': true,\n '--': ['--watch', ...(useTsc ? ['--copy-files'] : [])],\n }),\n { dependsOn: [StartProcesses.PreparePackage] }\n );\n processTree.add(\n StartProcesses.TypeCheck,\n () => typeCheck({ packages: scope, watch: true }),\n { dependsOn: [StartProcesses.PreparePackage] }\n );\n processTree.add(\n StartProcesses.BundlePackage,\n () => {\n const webpackScope = packages\n .filter(({ type }) => type === PackageType.Webpack)\n .map(({ name }) => name);\n if (webpackScope.length === 0) {\n return Promise.resolve();\n }\n return lernaExec({\n 'cmd': 'startup bundle-package',\n 'scope': webpackScope,\n 'parallel': true,\n 'stream': true,\n '--': [\n '--watch',\n this.args.config ? `--config \"${this.args.config}\"` : undefined,\n this.args['code-coverage'] ? '--code-coverage' : undefined,\n ].filter(item => !!item) as string[],\n });\n },\n { dependsOn: [StartProcesses.Compile, StartProcesses.PreparePackage] }\n );\n\n await processTree.run();\n }\n}\n"],"names":["Start","StartProcesses","description","execute","checkArgs","args","obsolete","useTsc","packages","getPackages","scope","ignore","type","PackageType","TSC","Webpack","length","map","name","processTree","ProcessTree","add","process","compile","watch","pipeStdout","onComplete","Promise","resolve","counter","timeout","setTimeout","log","warning","unwatch","watchStdout","count","clearTimeout","lernaExec","cmd","parallel","stream","dependsOn","typeCheck","webpackScope","filter","config","undefined","item","run","constructor","greedy"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/cli/commands/start.ts"],"sourcesContent":["import { getPackages, log, logErrors, PackageType } from '../../utils';\nimport {\n checkArgs,\n lernaExec,\n compile,\n typeCheck,\n pipeStdout,\n watchStdout,\n ProcessTree,\n} from '../utils';\nimport { Command } from './types';\n\ninterface Args {\n 'config'?: string;\n 'code-coverage'?: boolean;\n 'ignore'?: string | string[];\n 'scope'?: string | string[];\n 'use-tsc'?: boolean;\n}\n\nexport enum StartProcesses {\n Compile,\n KendoUILicense,\n PreparePackage,\n PreparePackageWatch,\n TypeCheck,\n BundlePackage,\n}\n\nexport class Start implements Command {\n readonly greedy = true;\n\n constructor(private args: Args) {}\n\n description() {\n return 'run project in development mode';\n }\n\n @logErrors\n async execute() {\n checkArgs(this.args, { obsolete: ['--esbuild', '--experimental-bundlers'] });\n\n const useTsc = this.args['use-tsc'];\n\n const packages = getPackages({\n scope: this.args.scope,\n ignore: this.args.ignore,\n type: [PackageType.TSC, PackageType.Webpack],\n });\n if (packages.length === 0) {\n return;\n }\n\n const scope = packages.map(({ name }) => name);\n\n const processTree = new ProcessTree<typeof StartProcesses>();\n\n processTree.add(StartProcesses.Compile, () => {\n const process = compile({\n packages: scope,\n watch: true,\n useTsc,\n });\n\n pipeStdout(process);\n\n const onComplete = new Promise<void>(resolve => {\n let counter = 0;\n let timeout: NodeJS.Timeout;\n\n if (!useTsc) {\n /*\n * Running the timer as a fallback\n * In case there are no files in the package swc will not print out completion indicator\n */\n timeout = setTimeout(() => {\n log.warning('Compilation timeout exceeded. Proceeding without waiting.');\n resolve();\n unwatch();\n }, 30000);\n }\n\n const unwatch = watchStdout(\n process,\n useTsc\n ? 'Initial tsc-compile-package task completed'\n : 'Initial swc-compile-package task completed',\n count => {\n counter += count;\n\n if (counter === scope.length) {\n resolve();\n clearTimeout(timeout);\n }\n }\n );\n });\n\n return { process, onComplete };\n });\n processTree.add(StartProcesses.PreparePackage, () =>\n lernaExec({\n cmd: 'startup prepare-package',\n scope,\n stream: true,\n })\n );\n processTree.add(\n StartProcesses.PreparePackageWatch,\n () =>\n lernaExec({\n 'cmd': 'startup prepare-package',\n scope,\n 'parallel': true,\n 'stream': true,\n '--': ['--watch'],\n }),\n { dependsOn: [StartProcesses.PreparePackage] }\n );\n processTree.add(\n StartProcesses.TypeCheck,\n () => typeCheck({ packages: scope, watch: true }),\n { dependsOn: [StartProcesses.PreparePackage] }\n );\n processTree.add(\n StartProcesses.BundlePackage,\n () => {\n const webpackScope = packages\n .filter(({ type }) => type === PackageType.Webpack)\n .map(({ name }) => name);\n if (webpackScope.length === 0) {\n return Promise.resolve();\n }\n return lernaExec({\n 'cmd': 'startup bundle-package',\n 'scope': webpackScope,\n 'parallel': true,\n 'stream': true,\n '--': [\n '--watch',\n this.args.config ? `--config \"${this.args.config}\"` : undefined,\n this.args['code-coverage'] ? '--code-coverage' : undefined,\n ].filter(item => !!item) as string[],\n });\n },\n { dependsOn: [StartProcesses.Compile, StartProcesses.PreparePackage] }\n );\n\n await processTree.run();\n }\n}\n"],"names":["Start","StartProcesses","description","execute","checkArgs","args","obsolete","useTsc","packages","getPackages","scope","ignore","type","PackageType","TSC","Webpack","length","map","name","processTree","ProcessTree","add","process","compile","watch","pipeStdout","onComplete","Promise","resolve","counter","timeout","setTimeout","log","warning","unwatch","watchStdout","count","clearTimeout","lernaExec","cmd","stream","dependsOn","typeCheck","webpackScope","filter","config","undefined","item","run","constructor","greedy"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+
3
+ //# sourceMappingURL=swc-cli.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/cli/tasks/swc-cli.d.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"swc-compile-package.d.ts","sourceRoot":"","sources":["../../../src/cli/tasks/swc-compile-package.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAG9B,UAAU,IAAI;IACV,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAUD,qBAAa,iBAAkB,SAAQ,IAAI;gBAC3B,EAAE,KAAK,EAAE,EAAE,IAAI;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAsEjC"}
1
+ {"version":3,"file":"swc-compile-package.d.ts","sourceRoot":"","sources":["../../../src/cli/tasks/swc-compile-package.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,UAAU,IAAI;IACV,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAMD,qBAAa,iBAAkB,SAAQ,IAAI;gBAC3B,EAAE,KAAK,EAAE,EAAE,IAAI;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CA2EjC"}
@@ -10,26 +10,35 @@ Object.defineProperty(exports, "SwcCompilePackage", {
10
10
  });
11
11
  const _cli = require("@swc/cli");
12
12
  const _deepmerge = /*#__PURE__*/ _interop_require_default(require("deepmerge"));
13
- const _basejson = require("../../../tsconfig/base.json");
14
- const _task = require("./task");
15
13
  const _utils = require("../../utils");
14
+ const _utils1 = require("../utils");
15
+ const _task = require("./task");
16
16
  function _interop_require_default(obj) {
17
17
  return obj && obj.__esModule ? obj : {
18
18
  default: obj
19
19
  };
20
20
  }
21
- function toLowerCase(input) {
22
- return input === null || input === void 0 ? void 0 : input.toLowerCase();
23
- }
24
21
  function overwriteMerge(_destinationArray, sourceArray) {
25
22
  return sourceArray;
26
23
  }
27
24
  class SwcCompilePackage extends _task.Task {
28
25
  async execute() {
26
+ var _tsConfig_getValue;
29
27
  const { source, destination } = (0, _utils.getFolders)();
30
- var _readJson_compilerOptions;
31
- const compilerOptions = (_readJson_compilerOptions = (0, _utils.readJson)('tsconfig.json').compilerOptions) !== null && _readJson_compilerOptions !== void 0 ? _readJson_compilerOptions : {};
32
28
  const packageConfig = (0, _utils.getSwcCompilePackageConfiguration)();
29
+ const tsConfig = new _utils1.TSConfig((0, _utils.getTsConfig)());
30
+ const target = tsConfig.getValue('compilerOptions.target');
31
+ const legacyDecorator = tsConfig.getValue('compilerOptions.experimentalDecorators');
32
+ const decoratorMetadata = tsConfig.getValue('compilerOptions.emitDecoratorMetadata');
33
+ const sourceMaps = tsConfig.getValue('compilerOptions.sourceMap');
34
+ const module = (_tsConfig_getValue = tsConfig.getValue('compilerOptions.module')) === null || _tsConfig_getValue === void 0 ? void 0 : _tsConfig_getValue.toLowerCase();
35
+ const ignore = tsConfig.getValue('exclude', [
36
+ '**/*.d.ts',
37
+ '**/__tests__/*',
38
+ '**/*.test.*',
39
+ '**/__mocks__/*',
40
+ '**/*.stories.*'
41
+ ]);
33
42
  return new Promise((resolve, reject)=>{
34
43
  (0, _cli.swcDir)((0, _deepmerge.default)({
35
44
  cliOptions: {
@@ -43,13 +52,7 @@ class SwcCompilePackage extends _task.Task {
43
52
  filenames: [
44
53
  source
45
54
  ],
46
- ignore: [
47
- '**/*.d.ts',
48
- '**/__tests__/*',
49
- '**/*.test.*',
50
- '**/__mocks__/*'
51
- ],
52
- copyFiles: true
55
+ ignore
53
56
  },
54
57
  swcOptions: {
55
58
  jsc: {
@@ -58,18 +61,18 @@ class SwcCompilePackage extends _task.Task {
58
61
  tsx: true,
59
62
  decorators: true
60
63
  },
61
- target: _basejson.compilerOptions.target,
64
+ target,
62
65
  transform: {
63
- legacyDecorator: _basejson.compilerOptions.experimentalDecorators,
64
- decoratorMetadata: _basejson.compilerOptions.emitDecoratorMetadata,
66
+ legacyDecorator,
67
+ decoratorMetadata,
65
68
  react: {
66
69
  runtime: 'automatic'
67
70
  }
68
71
  }
69
72
  },
70
- sourceMaps: _basejson.compilerOptions.sourceMap,
73
+ sourceMaps,
71
74
  module: {
72
- type: toLowerCase(compilerOptions.module) === 'commonjs' || toLowerCase(compilerOptions.module) === 'nodenext' ? 'commonjs' : 'es6'
75
+ type: module === 'commonjs' || module === 'nodenext' ? 'commonjs' : 'es6'
73
76
  }
74
77
  },
75
78
  callbacks: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/tasks/swc-compile-package.ts"],"sourcesContent":["import { swcDir } from '@swc/cli';\nimport deepmerge from 'deepmerge';\n\nimport { compilerOptions as baseCompilerOptions } from '../../../tsconfig/base.json';\nimport { Task } from './task';\nimport { getFolders, getSwcCompilePackageConfiguration, log, readJson } from '../../utils';\n\ninterface Args {\n [key: string]: unknown;\n watch?: boolean;\n}\n\nfunction toLowerCase(input: string | undefined): string | undefined {\n return input?.toLowerCase();\n}\n\nfunction overwriteMerge(_destinationArray: unknown[], sourceArray: unknown[]) {\n return sourceArray;\n}\n\nexport class SwcCompilePackage extends Task {\n constructor({ watch }: Args) {\n super({ name: 'swc-compile-package', global: false, watch });\n }\n\n async execute(): Promise<void> {\n const { source, destination } = getFolders();\n const compilerOptions = readJson('tsconfig.json').compilerOptions ?? {};\n const packageConfig = getSwcCompilePackageConfiguration();\n\n return new Promise((resolve, reject) => {\n swcDir(\n deepmerge(\n {\n cliOptions: {\n watch: this.watch,\n outDir: destination,\n stripLeadingPaths: true,\n extensions: ['.ts', '.tsx'],\n filenames: [source],\n ignore: [\n '**/*.d.ts',\n '**/__tests__/*',\n '**/*.test.*',\n '**/__mocks__/*',\n ],\n copyFiles: true,\n },\n swcOptions: {\n jsc: {\n parser: {\n syntax: 'typescript',\n tsx: true,\n decorators: true,\n },\n target: baseCompilerOptions.target,\n transform: {\n legacyDecorator: baseCompilerOptions.experimentalDecorators,\n decoratorMetadata: baseCompilerOptions.emitDecoratorMetadata,\n react: {\n runtime: 'automatic',\n },\n },\n },\n sourceMaps: baseCompilerOptions.sourceMap,\n module: {\n type:\n toLowerCase(compilerOptions.module) === 'commonjs' ||\n toLowerCase(compilerOptions.module) === 'nodenext'\n ? 'commonjs'\n : 'es6',\n },\n },\n callbacks: {\n onSuccess: (e: { duration: number }) => {\n this.logCompletionResults(this.taskTimer.add(e.duration));\n if (!this.watch) {\n resolve();\n }\n },\n onFail: (e: { duration: number; reasons: Map<string, string> }) => {\n log.text([...e.reasons.values()][0]);\n this.logCompletionResults(this.taskTimer.add(e.duration));\n if (!this.watch) {\n reject(new Error('Compilation failed'));\n }\n },\n },\n },\n packageConfig,\n { arrayMerge: overwriteMerge, clone: false }\n )\n );\n });\n }\n}\n"],"names":["SwcCompilePackage","toLowerCase","input","overwriteMerge","_destinationArray","sourceArray","Task","execute","source","destination","getFolders","readJson","compilerOptions","packageConfig","getSwcCompilePackageConfiguration","Promise","resolve","reject","swcDir","deepmerge","cliOptions","watch","outDir","stripLeadingPaths","extensions","filenames","ignore","copyFiles","swcOptions","jsc","parser","syntax","tsx","decorators","target","baseCompilerOptions","transform","legacyDecorator","experimentalDecorators","decoratorMetadata","emitDecoratorMetadata","react","runtime","sourceMaps","sourceMap","module","type","callbacks","onSuccess","e","logCompletionResults","taskTimer","add","duration","onFail","log","text","reasons","values","Error","arrayMerge","clone","constructor","name","global"],"mappings":";;;;+BAoBaA;;;eAAAA;;;qBApBU;kEACD;0BAEiC;sBAClC;uBACwD;;;;;;AAO7E,SAASC,YAAYC,KAAyB;IAC1C,OAAOA,kBAAAA,4BAAAA,MAAOD,WAAW;AAC7B;AAEA,SAASE,eAAeC,iBAA4B,EAAEC,WAAsB;IACxE,OAAOA;AACX;AAEO,MAAML,0BAA0BM,UAAI;IAKvC,MAAMC,UAAyB;QAC3B,MAAM,EAAEC,MAAM,EAAEC,WAAW,EAAE,GAAGC,IAAAA,iBAAU;YAClBC;QAAxB,MAAMC,kBAAkBD,CAAAA,4BAAAA,IAAAA,eAAQ,EAAC,iBAAiBC,eAAe,cAAzCD,uCAAAA,4BAA6C,CAAC;QACtE,MAAME,gBAAgBC,IAAAA,wCAAiC;QAEvD,OAAO,IAAIC,QAAQ,CAACC,SAASC;YACzBC,IAAAA,WAAM,EACFC,IAAAA,kBAAS,EACL;gBACIC,YAAY;oBACRC,OAAO,IAAI,CAACA,KAAK;oBACjBC,QAAQb;oBACRc,mBAAmB;oBACnBC,YAAY;wBAAC;wBAAO;qBAAO;oBAC3BC,WAAW;wBAACjB;qBAAO;oBACnBkB,QAAQ;wBACJ;wBACA;wBACA;wBACA;qBACH;oBACDC,WAAW;gBACf;gBACAC,YAAY;oBACRC,KAAK;wBACDC,QAAQ;4BACJC,QAAQ;4BACRC,KAAK;4BACLC,YAAY;wBAChB;wBACAC,QAAQC,yBAAmB,CAACD,MAAM;wBAClCE,WAAW;4BACPC,iBAAiBF,yBAAmB,CAACG,sBAAsB;4BAC3DC,mBAAmBJ,yBAAmB,CAACK,qBAAqB;4BAC5DC,OAAO;gCACHC,SAAS;4BACb;wBACJ;oBACJ;oBACAC,YAAYR,yBAAmB,CAACS,SAAS;oBACzCC,QAAQ;wBACJC,MACI7C,YAAYW,gBAAgBiC,MAAM,MAAM,cACxC5C,YAAYW,gBAAgBiC,MAAM,MAAM,aAClC,aACA;oBACd;gBACJ;gBACAE,WAAW;oBACPC,WAAW,CAACC;wBACR,IAAI,CAACC,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG,CAACH,EAAEI,QAAQ;wBACvD,IAAI,CAAC,IAAI,CAAChC,KAAK,EAAE;4BACbL;wBACJ;oBACJ;oBACAsC,QAAQ,CAACL;wBACLM,UAAG,CAACC,IAAI,CAAC;+BAAIP,EAAEQ,OAAO,CAACC,MAAM;yBAAG,CAAC,EAAE;wBACnC,IAAI,CAACR,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG,CAACH,EAAEI,QAAQ;wBACvD,IAAI,CAAC,IAAI,CAAChC,KAAK,EAAE;4BACbJ,OAAO,IAAI0C,MAAM;wBACrB;oBACJ;gBACJ;YACJ,GACA9C,eACA;gBAAE+C,YAAYzD;gBAAgB0D,OAAO;YAAM;QAGvD;IACJ;IAzEAC,YAAY,EAAEzC,KAAK,EAAQ,CAAE;QACzB,KAAK,CAAC;YAAE0C,MAAM;YAAuBC,QAAQ;YAAO3C;QAAM;IAC9D;AAwEJ"}
1
+ {"version":3,"sources":["../../../src/cli/tasks/swc-compile-package.ts"],"sourcesContent":["import { swcDir } from '@swc/cli';\nimport deepmerge from 'deepmerge';\n\nimport { getFolders, getSwcCompilePackageConfiguration, getTsConfig, log } from '../../utils';\nimport { TSConfig } from '../utils';\nimport { Task } from './task';\n\ninterface Args {\n [key: string]: unknown;\n watch?: boolean;\n}\n\nfunction overwriteMerge(_destinationArray: unknown[], sourceArray: unknown[]) {\n return sourceArray;\n}\n\nexport class SwcCompilePackage extends Task {\n constructor({ watch }: Args) {\n super({ name: 'swc-compile-package', global: false, watch });\n }\n\n async execute(): Promise<void> {\n const { source, destination } = getFolders();\n const packageConfig = getSwcCompilePackageConfiguration();\n const tsConfig = new TSConfig(getTsConfig());\n const target = tsConfig.getValue('compilerOptions.target');\n const legacyDecorator = tsConfig.getValue('compilerOptions.experimentalDecorators');\n const decoratorMetadata = tsConfig.getValue('compilerOptions.emitDecoratorMetadata');\n const sourceMaps = tsConfig.getValue('compilerOptions.sourceMap');\n const module = tsConfig.getValue<string>('compilerOptions.module')?.toLowerCase();\n const ignore = tsConfig.getValue('exclude', [\n '**/*.d.ts',\n '**/__tests__/*',\n '**/*.test.*',\n '**/__mocks__/*',\n '**/*.stories.*',\n ]);\n\n return new Promise((resolve, reject) => {\n swcDir(\n deepmerge(\n {\n cliOptions: {\n watch: this.watch,\n outDir: destination,\n stripLeadingPaths: true,\n extensions: ['.ts', '.tsx'],\n filenames: [source],\n ignore,\n },\n swcOptions: {\n jsc: {\n parser: {\n syntax: 'typescript',\n tsx: true,\n decorators: true,\n },\n target,\n transform: {\n legacyDecorator,\n decoratorMetadata,\n react: {\n runtime: 'automatic',\n },\n },\n },\n sourceMaps,\n module: {\n type:\n module === 'commonjs' || module === 'nodenext'\n ? 'commonjs'\n : 'es6',\n },\n },\n callbacks: {\n onSuccess: (e: { duration: number }) => {\n this.logCompletionResults(this.taskTimer.add(e.duration));\n if (!this.watch) {\n resolve();\n }\n },\n onFail: (e: { duration: number; reasons: Map<string, string> }) => {\n log.text([...e.reasons.values()][0]);\n this.logCompletionResults(this.taskTimer.add(e.duration));\n if (!this.watch) {\n reject(new Error('Compilation failed'));\n }\n },\n },\n },\n packageConfig,\n { arrayMerge: overwriteMerge, clone: false }\n )\n );\n });\n }\n}\n"],"names":["SwcCompilePackage","overwriteMerge","_destinationArray","sourceArray","Task","execute","tsConfig","source","destination","getFolders","packageConfig","getSwcCompilePackageConfiguration","TSConfig","getTsConfig","target","getValue","legacyDecorator","decoratorMetadata","sourceMaps","module","toLowerCase","ignore","Promise","resolve","reject","swcDir","deepmerge","cliOptions","watch","outDir","stripLeadingPaths","extensions","filenames","swcOptions","jsc","parser","syntax","tsx","decorators","transform","react","runtime","type","callbacks","onSuccess","e","logCompletionResults","taskTimer","add","duration","onFail","log","text","reasons","values","Error","arrayMerge","clone","constructor","name","global"],"mappings":";;;;+BAgBaA;;;eAAAA;;;qBAhBU;kEACD;uBAE0D;wBACvD;sBACJ;;;;;;AAOrB,SAASC,eAAeC,iBAA4B,EAAEC,WAAsB;IACxE,OAAOA;AACX;AAEO,MAAMH,0BAA0BI,UAAI;IAKvC,MAAMC,UAAyB;YAQZC;QAPf,MAAM,EAAEC,MAAM,EAAEC,WAAW,EAAE,GAAGC,IAAAA,iBAAU;QAC1C,MAAMC,gBAAgBC,IAAAA,wCAAiC;QACvD,MAAML,WAAW,IAAIM,gBAAQ,CAACC,IAAAA,kBAAW;QACzC,MAAMC,SAASR,SAASS,QAAQ,CAAC;QACjC,MAAMC,kBAAkBV,SAASS,QAAQ,CAAC;QAC1C,MAAME,oBAAoBX,SAASS,QAAQ,CAAC;QAC5C,MAAMG,aAAaZ,SAASS,QAAQ,CAAC;QACrC,MAAMI,UAASb,qBAAAA,SAASS,QAAQ,CAAS,uCAA1BT,yCAAAA,mBAAqDc,WAAW;QAC/E,MAAMC,SAASf,SAASS,QAAQ,CAAC,WAAW;YACxC;YACA;YACA;YACA;YACA;SACH;QAED,OAAO,IAAIO,QAAQ,CAACC,SAASC;YACzBC,IAAAA,WAAM,EACFC,IAAAA,kBAAS,EACL;gBACIC,YAAY;oBACRC,OAAO,IAAI,CAACA,KAAK;oBACjBC,QAAQrB;oBACRsB,mBAAmB;oBACnBC,YAAY;wBAAC;wBAAO;qBAAO;oBAC3BC,WAAW;wBAACzB;qBAAO;oBACnBc;gBACJ;gBACAY,YAAY;oBACRC,KAAK;wBACDC,QAAQ;4BACJC,QAAQ;4BACRC,KAAK;4BACLC,YAAY;wBAChB;wBACAxB;wBACAyB,WAAW;4BACPvB;4BACAC;4BACAuB,OAAO;gCACHC,SAAS;4BACb;wBACJ;oBACJ;oBACAvB;oBACAC,QAAQ;wBACJuB,MACIvB,WAAW,cAAcA,WAAW,aAC9B,aACA;oBACd;gBACJ;gBACAwB,WAAW;oBACPC,WAAW,CAACC;wBACR,IAAI,CAACC,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG,CAACH,EAAEI,QAAQ;wBACvD,IAAI,CAAC,IAAI,CAACrB,KAAK,EAAE;4BACbL;wBACJ;oBACJ;oBACA2B,QAAQ,CAACL;wBACLM,UAAG,CAACC,IAAI,CAAC;+BAAIP,EAAEQ,OAAO,CAACC,MAAM;yBAAG,CAAC,EAAE;wBACnC,IAAI,CAACR,oBAAoB,CAAC,IAAI,CAACC,SAAS,CAACC,GAAG,CAACH,EAAEI,QAAQ;wBACvD,IAAI,CAAC,IAAI,CAACrB,KAAK,EAAE;4BACbJ,OAAO,IAAI+B,MAAM;wBACrB;oBACJ;gBACJ;YACJ,GACA7C,eACA;gBAAE8C,YAAYvD;gBAAgBwD,OAAO;YAAM;QAGvD;IACJ;IA9EAC,YAAY,EAAE9B,KAAK,EAAQ,CAAE;QACzB,KAAK,CAAC;YAAE+B,MAAM;YAAuBC,QAAQ;YAAOhC;QAAM;IAC9D;AA6EJ"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+
3
+ //# sourceMappingURL=cpx2.d.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/cli/types/cpx2.d.ts"],"names":[],"mappings":""}
@@ -5,7 +5,7 @@ interface Options {
5
5
  }
6
6
  export declare const webpackDevConfigFileName = "webpack.dev.config.js";
7
7
  export declare const webpackProdConfigFileName = "webpack.prod.config.js";
8
- export declare function bundle(options?: Options): Promise<void | [void, void]>;
9
- export declare function bundleWatch(options?: Options): Promise<void | [void, void]>;
8
+ export declare function bundle(options?: Options): Promise<void | void[]>;
9
+ export declare function bundleWatch(options?: Options): Promise<void | void[]>;
10
10
  export {};
11
11
  //# sourceMappingURL=bundle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/bundle.ts"],"names":[],"mappings":"AAWA,UAAU,OAAO;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAWD,eAAO,MAAM,wBAAwB,0BAA0B,CAAC;AAChE,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAElE,wBAAsB,MAAM,CAAC,OAAO,GAAE,OAAY,gCAuBjD;AAED,wBAAsB,WAAW,CAAC,OAAO,GAAE,OAAY,gCA0BtD"}
1
+ {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/bundle.ts"],"names":[],"mappings":"AAiBA,UAAU,OAAO;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAWD,eAAO,MAAM,wBAAwB,0BAA0B,CAAC;AAChE,eAAO,MAAM,yBAAyB,2BAA2B,CAAC;AAElE,wBAAsB,MAAM,CAAC,OAAO,GAAE,OAAY,0BA+BjD;AAED,wBAAsB,WAAW,CAAC,OAAO,GAAE,OAAY,0BAkCtD"}
@@ -65,13 +65,20 @@ async function bundle(options = {}) {
65
65
  },
66
66
  plugins: config === null || config === void 0 ? void 0 : config.plugins
67
67
  };
68
- return Promise.all([
68
+ const bundles = [
69
69
  run((0, _webpack1.createWebpackConfig)(webpackConfig, {
70
70
  embed: true,
71
71
  ...webpackOptions
72
72
  })),
73
73
  run((0, _webpack1.createWebpackConfig)(webpackConfig, webpackOptions))
74
- ]);
74
+ ];
75
+ if ((0, _utils.hasHeadlessBundle)()) {
76
+ bundles.push(run((0, _webpack1.createWebpackConfig)(webpackConfig, {
77
+ ...webpackOptions,
78
+ headless: true
79
+ })));
80
+ }
81
+ return Promise.all(bundles);
75
82
  }
76
83
  return run(config !== null && config !== void 0 ? config : (0, _webpack1.createWebpackConfig)({
77
84
  configuration: {
@@ -99,13 +106,20 @@ async function bundleWatch(options = {}) {
99
106
  },
100
107
  plugins: config === null || config === void 0 ? void 0 : config.plugins
101
108
  };
102
- return Promise.all([
109
+ const bundles = [
103
110
  runWatch((0, _webpack1.createWebpackConfig)(webpackConfig, {
104
111
  embed: true,
105
112
  ...configOverrides
106
113
  })),
107
114
  (0, _utils.isDevServerDisabled)() ? runWatch((0, _webpack1.createWebpackConfig)(webpackConfig, configOverrides)) : runServe((0, _webpack1.createWebpackConfig)(webpackConfig, configOverrides))
108
- ]);
115
+ ];
116
+ if ((0, _utils.hasHeadlessBundle)()) {
117
+ bundles.push(runWatch((0, _webpack1.createWebpackConfig)(webpackConfig, {
118
+ ...configOverrides,
119
+ headless: true
120
+ })));
121
+ }
122
+ return Promise.all(bundles);
109
123
  }
110
124
  const webpackConfig = config !== null && config !== void 0 ? config : (0, _webpack1.createWebpackConfig)({
111
125
  configuration: {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/cli/utils/bundle.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport crypto from 'crypto';\nimport { getPortPromise } from 'portfinder';\n\nimport webpack, { Configuration } from 'webpack';\nimport WebpackDevServer from 'webpack-dev-server';\n\nimport { getPackageName, isDevServerDisabled, isWebComponent, log } from '../../utils';\nimport { Overrides, createWebpackConfig } from '../../webpack';\n\ninterface Options {\n buildStat?: boolean;\n codeCoverage?: boolean;\n config?: string;\n}\n\nfunction getName() {\n const packageName = getPackageName()\n .replace(/\\//g, '-')\n .replace(/[^\\w-]/g, '');\n const hash = crypto.randomBytes(4).toString('hex');\n\n return `${packageName}-${hash}`;\n}\n\nexport const webpackDevConfigFileName = 'webpack.dev.config.js';\nexport const webpackProdConfigFileName = 'webpack.prod.config.js';\n\nexport async function bundle(options: Options = {}) {\n log.info('Bundling the package...');\n\n const name = getName();\n const mode = 'production';\n const fallback = `./${webpackProdConfigFileName}`;\n const config = readWebpackConfig({ ...options, fallback });\n const { buildStat, codeCoverage } = options;\n const webpackOptions = { name, buildStat, codeCoverage };\n\n if (isWebComponent()) {\n const webpackConfig: Overrides = {\n configuration: { ...config?.configuration, mode },\n plugins: config?.plugins,\n };\n\n return Promise.all([\n run(createWebpackConfig(webpackConfig, { embed: true, ...webpackOptions })),\n run(createWebpackConfig(webpackConfig, webpackOptions)),\n ]);\n }\n\n return run(config ?? createWebpackConfig({ configuration: { mode } }, webpackOptions));\n}\n\nexport async function bundleWatch(options: Options = {}) {\n log.info('Bundling the package...');\n\n const name = getName();\n const mode = 'development';\n const config = readWebpackConfig({ ...options, fallback: `./${webpackDevConfigFileName}` });\n const configOverrides = { codeCoverage: options.codeCoverage, name };\n\n if (isWebComponent()) {\n const webpackConfig: Overrides = {\n configuration: { ...config?.configuration, mode },\n plugins: config?.plugins,\n };\n\n return Promise.all([\n runWatch(createWebpackConfig(webpackConfig, { embed: true, ...configOverrides })),\n isDevServerDisabled()\n ? runWatch(createWebpackConfig(webpackConfig, configOverrides))\n : runServe(createWebpackConfig(webpackConfig, configOverrides)),\n ]);\n }\n\n const webpackConfig =\n config ?? createWebpackConfig({ configuration: { mode } }, configOverrides);\n\n return isDevServerDisabled() ? runWatch(webpackConfig) : runServe(webpackConfig);\n}\n\nfunction readWebpackConfig({ config, fallback }: Options & { fallback: string }) {\n return readConfig(config) ?? readConfig(fallback);\n}\n\nfunction readConfig(relativePath?: string): Record<string, any> | undefined {\n if (relativePath && fs.existsSync(relativePath)) {\n return require(path.resolve(relativePath));\n }\n}\n\nasync function run(config: Configuration) {\n const compiler = webpack(config);\n\n const stats = await new Promise<webpack.Stats>((resolve, reject) => {\n compiler.run((error, stats) => {\n if (!stats || error) {\n return reject(error ?? new Error('Something went wrong.'));\n }\n\n if (stats.hasErrors()) {\n return reject(new Error(stats.toString('errors-only')));\n }\n\n compiler.close(() => resolve(stats));\n });\n });\n\n process.stdout.write(stats.toString(config.stats) + '\\n');\n}\n\nasync function runServe({ devServer = {}, ...config }: Configuration) {\n const compiler = webpack(config);\n const host = devServer.host ?? 'localhost';\n const port = await getPortPromise({\n port: Number(devServer.port) || 8080,\n host,\n });\n\n return new Promise<void>((_0, reject) => {\n const server = new WebpackDevServer({ ...devServer, host, port }, compiler);\n server.startCallback(e => {\n if (e) {\n server.stopCallback(() => {\n reject(e);\n });\n }\n });\n });\n}\n\nasync function runWatch(config: Configuration) {\n const compiler = webpack(config);\n return new Promise<void>((_0, reject) => {\n const watching = compiler.watch({}, e => {\n if (e) {\n watching.close(() => {\n reject(e);\n });\n }\n });\n });\n}\n"],"names":["bundle","bundleWatch","webpackDevConfigFileName","webpackProdConfigFileName","getName","packageName","getPackageName","replace","hash","crypto","randomBytes","toString","options","log","info","name","mode","fallback","config","readWebpackConfig","buildStat","codeCoverage","webpackOptions","isWebComponent","webpackConfig","configuration","plugins","Promise","all","run","createWebpackConfig","embed","configOverrides","runWatch","isDevServerDisabled","runServe","readConfig","relativePath","fs","existsSync","require","path","resolve","compiler","webpack","stats","reject","error","Error","hasErrors","close","process","stdout","write","devServer","host","port","getPortPromise","Number","_0","server","WebpackDevServer","startCallback","e","stopCallback","watching","watch"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../src/cli/utils/bundle.ts"],"sourcesContent":["import fs from 'fs';\nimport path from 'path';\nimport crypto from 'crypto';\nimport { getPortPromise } from 'portfinder';\n\nimport webpack, { Configuration } from 'webpack';\nimport WebpackDevServer from 'webpack-dev-server';\n\nimport {\n getPackageName,\n hasHeadlessBundle,\n isDevServerDisabled,\n isWebComponent,\n log,\n} from '../../utils';\nimport { Overrides, createWebpackConfig } from '../../webpack';\n\ninterface Options {\n buildStat?: boolean;\n codeCoverage?: boolean;\n config?: string;\n}\n\nfunction getName() {\n const packageName = getPackageName()\n .replace(/\\//g, '-')\n .replace(/[^\\w-]/g, '');\n const hash = crypto.randomBytes(4).toString('hex');\n\n return `${packageName}-${hash}`;\n}\n\nexport const webpackDevConfigFileName = 'webpack.dev.config.js';\nexport const webpackProdConfigFileName = 'webpack.prod.config.js';\n\nexport async function bundle(options: Options = {}) {\n log.info('Bundling the package...');\n\n const name = getName();\n const mode = 'production';\n const fallback = `./${webpackProdConfigFileName}`;\n const config = readWebpackConfig({ ...options, fallback });\n const { buildStat, codeCoverage } = options;\n const webpackOptions = { name, buildStat, codeCoverage };\n\n if (isWebComponent()) {\n const webpackConfig: Overrides = {\n configuration: { ...config?.configuration, mode },\n plugins: config?.plugins,\n };\n\n const bundles = [\n run(createWebpackConfig(webpackConfig, { embed: true, ...webpackOptions })),\n run(createWebpackConfig(webpackConfig, webpackOptions)),\n ];\n\n if (hasHeadlessBundle()) {\n bundles.push(\n run(createWebpackConfig(webpackConfig, { ...webpackOptions, headless: true }))\n );\n }\n\n return Promise.all(bundles);\n }\n\n return run(config ?? createWebpackConfig({ configuration: { mode } }, webpackOptions));\n}\n\nexport async function bundleWatch(options: Options = {}) {\n log.info('Bundling the package...');\n\n const name = getName();\n const mode = 'development';\n const config = readWebpackConfig({ ...options, fallback: `./${webpackDevConfigFileName}` });\n const configOverrides = { codeCoverage: options.codeCoverage, name };\n\n if (isWebComponent()) {\n const webpackConfig: Overrides = {\n configuration: { ...config?.configuration, mode },\n plugins: config?.plugins,\n };\n\n const bundles = [\n runWatch(createWebpackConfig(webpackConfig, { embed: true, ...configOverrides })),\n isDevServerDisabled()\n ? runWatch(createWebpackConfig(webpackConfig, configOverrides))\n : runServe(createWebpackConfig(webpackConfig, configOverrides)),\n ];\n\n if (hasHeadlessBundle()) {\n bundles.push(\n runWatch(createWebpackConfig(webpackConfig, { ...configOverrides, headless: true }))\n );\n }\n\n return Promise.all(bundles);\n }\n\n const webpackConfig =\n config ?? createWebpackConfig({ configuration: { mode } }, configOverrides);\n\n return isDevServerDisabled() ? runWatch(webpackConfig) : runServe(webpackConfig);\n}\n\nfunction readWebpackConfig({ config, fallback }: Options & { fallback: string }) {\n return readConfig(config) ?? readConfig(fallback);\n}\n\nfunction readConfig(relativePath?: string): Record<string, any> | undefined {\n if (relativePath && fs.existsSync(relativePath)) {\n return require(path.resolve(relativePath));\n }\n}\n\nasync function run(config: Configuration) {\n const compiler = webpack(config);\n\n const stats = await new Promise<webpack.Stats>((resolve, reject) => {\n compiler.run((error, stats) => {\n if (!stats || error) {\n return reject(error ?? new Error('Something went wrong.'));\n }\n\n if (stats.hasErrors()) {\n return reject(new Error(stats.toString('errors-only')));\n }\n\n compiler.close(() => resolve(stats));\n });\n });\n\n process.stdout.write(stats.toString(config.stats) + '\\n');\n}\n\nasync function runServe({ devServer = {}, ...config }: Configuration) {\n const compiler = webpack(config);\n const host = devServer.host ?? 'localhost';\n const port = await getPortPromise({\n port: Number(devServer.port) || 8080,\n host,\n });\n\n return new Promise<void>((_0, reject) => {\n const server = new WebpackDevServer({ ...devServer, host, port }, compiler);\n server.startCallback(e => {\n if (e) {\n server.stopCallback(() => {\n reject(e);\n });\n }\n });\n });\n}\n\nasync function runWatch(config: Configuration) {\n const compiler = webpack(config);\n return new Promise<void>((_0, reject) => {\n const watching = compiler.watch({}, e => {\n if (e) {\n watching.close(() => {\n reject(e);\n });\n }\n });\n });\n}\n"],"names":["bundle","bundleWatch","webpackDevConfigFileName","webpackProdConfigFileName","getName","packageName","getPackageName","replace","hash","crypto","randomBytes","toString","options","log","info","name","mode","fallback","config","readWebpackConfig","buildStat","codeCoverage","webpackOptions","isWebComponent","webpackConfig","configuration","plugins","bundles","run","createWebpackConfig","embed","hasHeadlessBundle","push","headless","Promise","all","configOverrides","runWatch","isDevServerDisabled","runServe","readConfig","relativePath","fs","existsSync","require","path","resolve","compiler","webpack","stats","reject","error","Error","hasErrors","close","process","stdout","write","devServer","host","port","getPortPromise","Number","_0","server","WebpackDevServer","startCallback","e","stopCallback","watching","watch"],"mappings":";;;;;;;;;;;QAmCsBA;eAAAA;;QAiCAC;eAAAA;;QApCTC;eAAAA;;QACAC;eAAAA;;;2DAjCE;6DACE;+DACE;4BACY;gEAEQ;yEACV;uBAQtB;0BACwC;;;;;;AAQ/C,SAASC;IACL,MAAMC,cAAcC,IAAAA,qBAAc,IAC7BC,OAAO,CAAC,OAAO,KACfA,OAAO,CAAC,WAAW;IACxB,MAAMC,OAAOC,eAAM,CAACC,WAAW,CAAC,GAAGC,QAAQ,CAAC;IAE5C,OAAO,GAAGN,YAAY,CAAC,EAAEG,MAAM;AACnC;AAEO,MAAMN,2BAA2B;AACjC,MAAMC,4BAA4B;AAElC,eAAeH,OAAOY,UAAmB,CAAC,CAAC;IAC9CC,UAAG,CAACC,IAAI,CAAC;IAET,MAAMC,OAAOX;IACb,MAAMY,OAAO;IACb,MAAMC,WAAW,CAAC,EAAE,EAAEd,2BAA2B;IACjD,MAAMe,SAASC,kBAAkB;QAAE,GAAGP,OAAO;QAAEK;IAAS;IACxD,MAAM,EAAEG,SAAS,EAAEC,YAAY,EAAE,GAAGT;IACpC,MAAMU,iBAAiB;QAAEP;QAAMK;QAAWC;IAAa;IAEvD,IAAIE,IAAAA,qBAAc,KAAI;QAClB,MAAMC,gBAA2B;YAC7BC,eAAe;mBAAKP,mBAAAA,6BAAAA,OAAQO,aAAa,AAAxB;gBAA0BT;YAAK;YAChDU,OAAO,EAAER,mBAAAA,6BAAAA,OAAQQ,OAAO;QAC5B;QAEA,MAAMC,UAAU;YACZC,IAAIC,IAAAA,6BAAmB,EAACL,eAAe;gBAAEM,OAAO;gBAAM,GAAGR,cAAc;YAAC;YACxEM,IAAIC,IAAAA,6BAAmB,EAACL,eAAeF;SAC1C;QAED,IAAIS,IAAAA,wBAAiB,KAAI;YACrBJ,QAAQK,IAAI,CACRJ,IAAIC,IAAAA,6BAAmB,EAACL,eAAe;gBAAE,GAAGF,cAAc;gBAAEW,UAAU;YAAK;QAEnF;QAEA,OAAOC,QAAQC,GAAG,CAACR;IACvB;IAEA,OAAOC,IAAIV,mBAAAA,oBAAAA,SAAUW,IAAAA,6BAAmB,EAAC;QAAEJ,eAAe;YAAET;QAAK;IAAE,GAAGM;AAC1E;AAEO,eAAerB,YAAYW,UAAmB,CAAC,CAAC;IACnDC,UAAG,CAACC,IAAI,CAAC;IAET,MAAMC,OAAOX;IACb,MAAMY,OAAO;IACb,MAAME,SAASC,kBAAkB;QAAE,GAAGP,OAAO;QAAEK,UAAU,CAAC,EAAE,EAAEf,0BAA0B;IAAC;IACzF,MAAMkC,kBAAkB;QAAEf,cAAcT,QAAQS,YAAY;QAAEN;IAAK;IAEnE,IAAIQ,IAAAA,qBAAc,KAAI;QAClB,MAAMC,gBAA2B;YAC7BC,eAAe;mBAAKP,mBAAAA,6BAAAA,OAAQO,aAAa,AAAxB;gBAA0BT;YAAK;YAChDU,OAAO,EAAER,mBAAAA,6BAAAA,OAAQQ,OAAO;QAC5B;QAEA,MAAMC,UAAU;YACZU,SAASR,IAAAA,6BAAmB,EAACL,eAAe;gBAAEM,OAAO;gBAAM,GAAGM,eAAe;YAAC;YAC9EE,IAAAA,0BAAmB,MACbD,SAASR,IAAAA,6BAAmB,EAACL,eAAeY,oBAC5CG,SAASV,IAAAA,6BAAmB,EAACL,eAAeY;SACrD;QAED,IAAIL,IAAAA,wBAAiB,KAAI;YACrBJ,QAAQK,IAAI,CACRK,SAASR,IAAAA,6BAAmB,EAACL,eAAe;gBAAE,GAAGY,eAAe;gBAAEH,UAAU;YAAK;QAEzF;QAEA,OAAOC,QAAQC,GAAG,CAACR;IACvB;IAEA,MAAMH,gBACFN,mBAAAA,oBAAAA,SAAUW,IAAAA,6BAAmB,EAAC;QAAEJ,eAAe;YAAET;QAAK;IAAE,GAAGoB;IAE/D,OAAOE,IAAAA,0BAAmB,MAAKD,SAASb,iBAAiBe,SAASf;AACtE;AAEA,SAASL,kBAAkB,EAAED,MAAM,EAAED,QAAQ,EAAkC;QACpEuB;IAAP,OAAOA,CAAAA,cAAAA,WAAWtB,qBAAXsB,yBAAAA,cAAsBA,WAAWvB;AAC5C;AAEA,SAASuB,WAAWC,YAAqB;IACrC,IAAIA,gBAAgBC,WAAE,CAACC,UAAU,CAACF,eAAe;QAC7C,OAAOG,QAAQC,aAAI,CAACC,OAAO,CAACL;IAChC;AACJ;AAEA,eAAeb,IAAIV,MAAqB;IACpC,MAAM6B,WAAWC,IAAAA,gBAAO,EAAC9B;IAEzB,MAAM+B,QAAQ,MAAM,IAAIf,QAAuB,CAACY,SAASI;QACrDH,SAASnB,GAAG,CAAC,CAACuB,OAAOF;YACjB,IAAI,CAACA,SAASE,OAAO;gBACjB,OAAOD,OAAOC,kBAAAA,mBAAAA,QAAS,IAAIC,MAAM;YACrC;YAEA,IAAIH,MAAMI,SAAS,IAAI;gBACnB,OAAOH,OAAO,IAAIE,MAAMH,MAAMtC,QAAQ,CAAC;YAC3C;YAEAoC,SAASO,KAAK,CAAC,IAAMR,QAAQG;QACjC;IACJ;IAEAM,QAAQC,MAAM,CAACC,KAAK,CAACR,MAAMtC,QAAQ,CAACO,OAAO+B,KAAK,IAAI;AACxD;AAEA,eAAeV,SAAS,EAAEmB,YAAY,CAAC,CAAC,EAAE,GAAGxC,QAAuB;IAChE,MAAM6B,WAAWC,IAAAA,gBAAO,EAAC9B;QACZwC;IAAb,MAAMC,OAAOD,CAAAA,kBAAAA,UAAUC,IAAI,cAAdD,6BAAAA,kBAAkB;IAC/B,MAAME,OAAO,MAAMC,IAAAA,0BAAc,EAAC;QAC9BD,MAAME,OAAOJ,UAAUE,IAAI,KAAK;QAChCD;IACJ;IAEA,OAAO,IAAIzB,QAAc,CAAC6B,IAAIb;QAC1B,MAAMc,SAAS,IAAIC,yBAAgB,CAAC;YAAE,GAAGP,SAAS;YAAEC;YAAMC;QAAK,GAAGb;QAClEiB,OAAOE,aAAa,CAACC,CAAAA;YACjB,IAAIA,GAAG;gBACHH,OAAOI,YAAY,CAAC;oBAChBlB,OAAOiB;gBACX;YACJ;QACJ;IACJ;AACJ;AAEA,eAAe9B,SAASnB,MAAqB;IACzC,MAAM6B,WAAWC,IAAAA,gBAAO,EAAC9B;IACzB,OAAO,IAAIgB,QAAc,CAAC6B,IAAIb;QAC1B,MAAMmB,WAAWtB,SAASuB,KAAK,CAAC,CAAC,GAAGH,CAAAA;YAChC,IAAIA,GAAG;gBACHE,SAASf,KAAK,CAAC;oBACXJ,OAAOiB;gBACX;YACJ;QACJ;IACJ;AACJ"}
@@ -1,5 +1,5 @@
1
- export declare const assetExtensions: string[];
2
1
  export declare const styleExtensions: string[];
2
+ export declare const supportedExtensions: string[];
3
3
  interface CopyFilesOptions {
4
4
  watch?: boolean;
5
5
  }
@@ -1 +1 @@
1
- {"version":3,"file":"copy-files.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/copy-files.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,eAAe,UAAqE,CAAC;AAClG,eAAO,MAAM,eAAe,UAA0B,CAAC;AAIvD,UAAU,gBAAgB;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,gBAAgB,iBAgD1D"}
1
+ {"version":3,"file":"copy-files.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/copy-files.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,eAAe,UAA0B,CAAC;AAGvD,eAAO,MAAM,mBAAmB,UAKxB,CAAC;AAIT,UAAU,gBAAgB;IACtB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,SAAS,CAAC,EAAE,KAAK,EAAE,EAAE,gBAAgB,iBAiD1D"}