@optimizely/ocp-cli-v2 2.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (252) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +51 -0
  3. package/bin/ocp.js +3 -0
  4. package/bin/run.js +3 -0
  5. package/dist/commands/accounts/whoami.d.ts +5 -0
  6. package/dist/commands/accounts/whoami.js +22 -0
  7. package/dist/commands/accounts/whoami.js.map +1 -0
  8. package/dist/commands/accounts/whois.d.ts +12 -0
  9. package/dist/commands/accounts/whois.js +57 -0
  10. package/dist/commands/accounts/whois.js.map +1 -0
  11. package/dist/commands/app/BaseBuildCommand.d.ts +37 -0
  12. package/dist/commands/app/BaseBuildCommand.js +255 -0
  13. package/dist/commands/app/BaseBuildCommand.js.map +1 -0
  14. package/dist/commands/app/abandon.d.ts +11 -0
  15. package/dist/commands/app/abandon.js +146 -0
  16. package/dist/commands/app/abandon.js.map +1 -0
  17. package/dist/commands/app/getLogLevel.d.ts +16 -0
  18. package/dist/commands/app/getLogLevel.js +66 -0
  19. package/dist/commands/app/getLogLevel.js.map +1 -0
  20. package/dist/commands/app/init.d.ts +27 -0
  21. package/dist/commands/app/init.js +326 -0
  22. package/dist/commands/app/init.js.map +1 -0
  23. package/dist/commands/app/logs.d.ts +24 -0
  24. package/dist/commands/app/logs.js +231 -0
  25. package/dist/commands/app/logs.js.map +1 -0
  26. package/dist/commands/app/package.d.ts +8 -0
  27. package/dist/commands/app/package.js +51 -0
  28. package/dist/commands/app/package.js.map +1 -0
  29. package/dist/commands/app/prepare.d.ts +16 -0
  30. package/dist/commands/app/prepare.js +119 -0
  31. package/dist/commands/app/prepare.js.map +1 -0
  32. package/dist/commands/app/register.d.ts +10 -0
  33. package/dist/commands/app/register.js +102 -0
  34. package/dist/commands/app/register.js.map +1 -0
  35. package/dist/commands/app/setLogLevel.d.ts +16 -0
  36. package/dist/commands/app/setLogLevel.js +83 -0
  37. package/dist/commands/app/setLogLevel.js.map +1 -0
  38. package/dist/commands/app/validate.d.ts +5 -0
  39. package/dist/commands/app/validate.js +26 -0
  40. package/dist/commands/app/validate.js.map +1 -0
  41. package/dist/commands/availability/list.d.ts +6 -0
  42. package/dist/commands/availability/list.js +32 -0
  43. package/dist/commands/availability/list.js.map +1 -0
  44. package/dist/commands/dev-server/start.d.ts +36 -0
  45. package/dist/commands/dev-server/start.js +209 -0
  46. package/dist/commands/dev-server/start.js.map +1 -0
  47. package/dist/commands/dev.d.ts +8 -0
  48. package/dist/commands/dev.js +12 -0
  49. package/dist/commands/dev.js.map +1 -0
  50. package/dist/commands/directory/info.d.ts +13 -0
  51. package/dist/commands/directory/info.js +85 -0
  52. package/dist/commands/directory/info.js.map +1 -0
  53. package/dist/commands/directory/install.d.ts +12 -0
  54. package/dist/commands/directory/install.js +46 -0
  55. package/dist/commands/directory/install.js.map +1 -0
  56. package/dist/commands/directory/list.d.ts +14 -0
  57. package/dist/commands/directory/list.js +114 -0
  58. package/dist/commands/directory/list.js.map +1 -0
  59. package/dist/commands/directory/listFunctions.d.ts +15 -0
  60. package/dist/commands/directory/listFunctions.js +86 -0
  61. package/dist/commands/directory/listFunctions.js.map +1 -0
  62. package/dist/commands/directory/listGlobalFunctions.d.ts +13 -0
  63. package/dist/commands/directory/listGlobalFunctions.js +64 -0
  64. package/dist/commands/directory/listGlobalFunctions.js.map +1 -0
  65. package/dist/commands/directory/listInstalls.d.ts +15 -0
  66. package/dist/commands/directory/listInstalls.js +72 -0
  67. package/dist/commands/directory/listInstalls.js.map +1 -0
  68. package/dist/commands/directory/listSourceFunctions.d.ts +14 -0
  69. package/dist/commands/directory/listSourceFunctions.js +71 -0
  70. package/dist/commands/directory/listSourceFunctions.js.map +1 -0
  71. package/dist/commands/directory/publish.d.ts +15 -0
  72. package/dist/commands/directory/publish.js +201 -0
  73. package/dist/commands/directory/publish.js.map +1 -0
  74. package/dist/commands/directory/status.d.ts +11 -0
  75. package/dist/commands/directory/status.js +50 -0
  76. package/dist/commands/directory/status.js.map +1 -0
  77. package/dist/commands/directory/uninstall.d.ts +13 -0
  78. package/dist/commands/directory/uninstall.js +55 -0
  79. package/dist/commands/directory/uninstall.js.map +1 -0
  80. package/dist/commands/directory/unpublish.d.ts +17 -0
  81. package/dist/commands/directory/unpublish.js +187 -0
  82. package/dist/commands/directory/unpublish.js.map +1 -0
  83. package/dist/commands/directory/upgrade.d.ts +15 -0
  84. package/dist/commands/directory/upgrade.js +113 -0
  85. package/dist/commands/directory/upgrade.js.map +1 -0
  86. package/dist/commands/env/get.d.ts +5 -0
  87. package/dist/commands/env/get.js +23 -0
  88. package/dist/commands/env/get.js.map +1 -0
  89. package/dist/commands/env/set.d.ts +8 -0
  90. package/dist/commands/env/set.js +63 -0
  91. package/dist/commands/env/set.js.map +1 -0
  92. package/dist/commands/jobs/list.d.ts +27 -0
  93. package/dist/commands/jobs/list.js +245 -0
  94. package/dist/commands/jobs/list.js.map +1 -0
  95. package/dist/commands/jobs/runtimeStatus.d.ts +11 -0
  96. package/dist/commands/jobs/runtimeStatus.js +55 -0
  97. package/dist/commands/jobs/runtimeStatus.js.map +1 -0
  98. package/dist/commands/jobs/status.d.ts +11 -0
  99. package/dist/commands/jobs/status.js +57 -0
  100. package/dist/commands/jobs/status.js.map +1 -0
  101. package/dist/commands/jobs/terminate.d.ts +11 -0
  102. package/dist/commands/jobs/terminate.js +35 -0
  103. package/dist/commands/jobs/terminate.js.map +1 -0
  104. package/dist/commands/jobs/trigger.d.ts +14 -0
  105. package/dist/commands/jobs/trigger.js +47 -0
  106. package/dist/commands/jobs/trigger.js.map +1 -0
  107. package/dist/commands/review/list.d.ts +9 -0
  108. package/dist/commands/review/list.js +74 -0
  109. package/dist/commands/review/list.js.map +1 -0
  110. package/dist/commands/review/open.d.ts +8 -0
  111. package/dist/commands/review/open.js +32 -0
  112. package/dist/commands/review/open.js.map +1 -0
  113. package/dist/hooks/command-not-found.d.ts +3 -0
  114. package/dist/hooks/command-not-found.js +93 -0
  115. package/dist/hooks/command-not-found.js.map +1 -0
  116. package/dist/hooks/preupdate.d.ts +10 -0
  117. package/dist/hooks/preupdate.js +42 -0
  118. package/dist/hooks/preupdate.js.map +1 -0
  119. package/dist/index.d.ts +1 -0
  120. package/dist/index.js +59 -0
  121. package/dist/index.js.map +1 -0
  122. package/dist/lib/AppContext.d.ts +9 -0
  123. package/dist/lib/AppContext.js +43 -0
  124. package/dist/lib/AppContext.js.map +1 -0
  125. package/dist/lib/AppPackager.d.ts +17 -0
  126. package/dist/lib/AppPackager.js +57 -0
  127. package/dist/lib/AppPackager.js.map +1 -0
  128. package/dist/lib/AppUpdater.d.ts +11 -0
  129. package/dist/lib/AppUpdater.js +143 -0
  130. package/dist/lib/AppUpdater.js.map +1 -0
  131. package/dist/lib/AppUploader.d.ts +9 -0
  132. package/dist/lib/AppUploader.js +37 -0
  133. package/dist/lib/AppUploader.js.map +1 -0
  134. package/dist/lib/BuildPipeline.d.ts +24 -0
  135. package/dist/lib/BuildPipeline.js +26 -0
  136. package/dist/lib/BuildPipeline.js.map +1 -0
  137. package/dist/lib/BuildPipelineFactory.d.ts +10 -0
  138. package/dist/lib/BuildPipelineFactory.js +23 -0
  139. package/dist/lib/BuildPipelineFactory.js.map +1 -0
  140. package/dist/lib/Config.d.ts +15 -0
  141. package/dist/lib/Config.js +47 -0
  142. package/dist/lib/Config.js.map +1 -0
  143. package/dist/lib/CustomHelp.d.ts +19 -0
  144. package/dist/lib/CustomHelp.js +81 -0
  145. package/dist/lib/CustomHelp.js.map +1 -0
  146. package/dist/lib/DependencyStage.d.ts +1 -0
  147. package/dist/lib/DependencyStage.js +3 -0
  148. package/dist/lib/DependencyStage.js.map +1 -0
  149. package/dist/lib/EnvironmentalOutput.d.ts +1 -0
  150. package/dist/lib/EnvironmentalOutput.js +22 -0
  151. package/dist/lib/EnvironmentalOutput.js.map +1 -0
  152. package/dist/lib/Moria.d.ts +51 -0
  153. package/dist/lib/Moria.js +30 -0
  154. package/dist/lib/Moria.js.map +1 -0
  155. package/dist/lib/MoriaApi.d.ts +22 -0
  156. package/dist/lib/MoriaApi.js +74 -0
  157. package/dist/lib/MoriaApi.js.map +1 -0
  158. package/dist/lib/NodeBuildPipeline.d.ts +25 -0
  159. package/dist/lib/NodeBuildPipeline.js +60 -0
  160. package/dist/lib/NodeBuildPipeline.js.map +1 -0
  161. package/dist/lib/PackageManager.d.ts +242 -0
  162. package/dist/lib/PackageManager.js +511 -0
  163. package/dist/lib/PackageManager.js.map +1 -0
  164. package/dist/lib/Rivendell.d.ts +409 -0
  165. package/dist/lib/Rivendell.js +391 -0
  166. package/dist/lib/Rivendell.js.map +1 -0
  167. package/dist/lib/RivendellApi.d.ts +22 -0
  168. package/dist/lib/RivendellApi.js +159 -0
  169. package/dist/lib/RivendellApi.js.map +1 -0
  170. package/dist/lib/Shards.d.ts +3 -0
  171. package/dist/lib/Shards.js +41 -0
  172. package/dist/lib/Shards.js.map +1 -0
  173. package/dist/lib/StringUtils.d.ts +1 -0
  174. package/dist/lib/StringUtils.js +9 -0
  175. package/dist/lib/StringUtils.js.map +1 -0
  176. package/dist/lib/TeminalPassthru.d.ts +7 -0
  177. package/dist/lib/TeminalPassthru.js +12 -0
  178. package/dist/lib/TeminalPassthru.js.map +1 -0
  179. package/dist/lib/TerminalConfirm.d.ts +3 -0
  180. package/dist/lib/TerminalConfirm.js +31 -0
  181. package/dist/lib/TerminalConfirm.js.map +1 -0
  182. package/dist/lib/TerminalInput.d.ts +32 -0
  183. package/dist/lib/TerminalInput.js +207 -0
  184. package/dist/lib/TerminalInput.js.map +1 -0
  185. package/dist/lib/TerminalMenu.d.ts +34 -0
  186. package/dist/lib/TerminalMenu.js +186 -0
  187. package/dist/lib/TerminalMenu.js.map +1 -0
  188. package/dist/lib/TerminalOutput.d.ts +5 -0
  189. package/dist/lib/TerminalOutput.js +12 -0
  190. package/dist/lib/TerminalOutput.js.map +1 -0
  191. package/dist/lib/TerminalSpinner.d.ts +14 -0
  192. package/dist/lib/TerminalSpinner.js +69 -0
  193. package/dist/lib/TerminalSpinner.js.map +1 -0
  194. package/dist/lib/Tracking.d.ts +15 -0
  195. package/dist/lib/Tracking.js +19 -0
  196. package/dist/lib/Tracking.js.map +1 -0
  197. package/dist/lib/build.d.ts +5 -0
  198. package/dist/lib/build.js +41 -0
  199. package/dist/lib/build.js.map +1 -0
  200. package/dist/lib/die.d.ts +5 -0
  201. package/dist/lib/die.js +14 -0
  202. package/dist/lib/die.js.map +1 -0
  203. package/dist/lib/directoryExists.d.ts +1 -0
  204. package/dist/lib/directoryExists.js +9 -0
  205. package/dist/lib/directoryExists.js.map +1 -0
  206. package/dist/lib/formatBuildState.d.ts +2 -0
  207. package/dist/lib/formatBuildState.js +23 -0
  208. package/dist/lib/formatBuildState.js.map +1 -0
  209. package/dist/lib/formatError.d.ts +1 -0
  210. package/dist/lib/formatError.js +55 -0
  211. package/dist/lib/formatError.js.map +1 -0
  212. package/dist/lib/formatJobStatus.d.ts +3 -0
  213. package/dist/lib/formatJobStatus.js +28 -0
  214. package/dist/lib/formatJobStatus.js.map +1 -0
  215. package/dist/lib/formatReviewStatus.d.ts +4 -0
  216. package/dist/lib/formatReviewStatus.js +28 -0
  217. package/dist/lib/formatReviewStatus.js.map +1 -0
  218. package/dist/lib/formatTimstamp.d.ts +1 -0
  219. package/dist/lib/formatTimstamp.js +25 -0
  220. package/dist/lib/formatTimstamp.js.map +1 -0
  221. package/dist/lib/formatVersionState.d.ts +2 -0
  222. package/dist/lib/formatVersionState.js +37 -0
  223. package/dist/lib/formatVersionState.js.map +1 -0
  224. package/dist/lib/gatherAppEnv.d.ts +3 -0
  225. package/dist/lib/gatherAppEnv.js +71 -0
  226. package/dist/lib/gatherAppEnv.js.map +1 -0
  227. package/dist/lib/handleInterrupt.d.ts +1 -0
  228. package/dist/lib/handleInterrupt.js +17 -0
  229. package/dist/lib/handleInterrupt.js.map +1 -0
  230. package/dist/lib/jobRuntime.d.ts +3 -0
  231. package/dist/lib/jobRuntime.js +16 -0
  232. package/dist/lib/jobRuntime.js.map +1 -0
  233. package/dist/lib/migrateOptiCli.d.ts +1 -0
  234. package/dist/lib/migrateOptiCli.js +30 -0
  235. package/dist/lib/migrateOptiCli.js.map +1 -0
  236. package/dist/lib/parseDate.d.ts +2 -0
  237. package/dist/lib/parseDate.js +26 -0
  238. package/dist/lib/parseDate.js.map +1 -0
  239. package/dist/lib/templating/TemplateRenderer.d.ts +13 -0
  240. package/dist/lib/templating/TemplateRenderer.js +63 -0
  241. package/dist/lib/templating/TemplateRenderer.js.map +1 -0
  242. package/dist/lib/templating/fetchTemplatesManifest.d.ts +1 -0
  243. package/dist/lib/templating/fetchTemplatesManifest.js +9 -0
  244. package/dist/lib/templating/fetchTemplatesManifest.js.map +1 -0
  245. package/dist/lib/templating/types.d.ts +27 -0
  246. package/dist/lib/templating/types.js +3 -0
  247. package/dist/lib/templating/types.js.map +1 -0
  248. package/dist/oclif.manifest.json +1616 -0
  249. package/dist/utils/utils.d.ts +5 -0
  250. package/dist/utils/utils.js +61 -0
  251. package/dist/utils/utils.js.map +1 -0
  252. package/package.json +180 -0
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.migrateOptiCli = void 0;
4
+ const path = require("path");
5
+ const os = require("os");
6
+ const fs = require("fs");
7
+ const chalk = require("chalk");
8
+ const TerminalConfirm_1 = require("./TerminalConfirm");
9
+ const dotenv = require("dotenv");
10
+ async function migrateOptiCli(noPrompt) {
11
+ const configFolder = path.join(os.homedir(), '.ocp');
12
+ if (fs.existsSync(configFolder) || !fs.existsSync(path.join(os.homedir(), '.opti'))) {
13
+ return;
14
+ }
15
+ const question = chalk.yellow('No ~/.ocp config folder found, but the config folder for legacy opti CLI exists. ' +
16
+ 'Do you want to copy opti CLI configuration? (y/n)');
17
+ const copyConfig = await TerminalConfirm_1.TerminalConfirm.ask(question, noPrompt, true);
18
+ if (copyConfig) {
19
+ fs.cpSync(path.join(os.homedir(), '.opti'), path.join(os.homedir(), '.ocp'), { recursive: true });
20
+ ['.env', '.env.staging'].forEach((envFile) => {
21
+ const envFilePath = path.join(os.homedir(), '.ocp', envFile);
22
+ if (fs.existsSync(envFilePath)) {
23
+ fs.writeFileSync(envFilePath, fs.readFileSync(envFilePath, 'utf8').replace('OPTI_ENV', 'OCP_ENV'));
24
+ }
25
+ });
26
+ dotenv.config({ path: path.join(os.homedir(), '.ocp/.env') });
27
+ }
28
+ }
29
+ exports.migrateOptiCli = migrateOptiCli;
30
+ //# sourceMappingURL=migrateOptiCli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrateOptiCli.js","sourceRoot":"","sources":["../../src/lib/migrateOptiCli.ts"],"names":[],"mappings":";;;AAAA,6BAA6B;AAC7B,yBAAyB;AACzB,yBAAyB;AACzB,+BAA+B;AAC/B,uDAAkD;AAClD,iCAAiC;AAE1B,KAAK,UAAU,cAAc,CAAC,QAAiB;IACpD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,CAAC;IACrD,IAAI,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE;QACnF,OAAO;KACR;IAED,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAC3B,mFAAmF;QACnF,mDAAmD,CACpD,CAAC;IAEF,MAAM,UAAU,GAAG,MAAM,iCAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;IACvE,IAAI,UAAU,EAAE;QACd,EAAE,CAAC,MAAM,CACP,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC,EAChC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,CAAC,EAC/B,EAAC,SAAS,EAAE,IAAI,EAAC,CAClB,CAAC;QACF,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;YAC7D,IAAI,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE;gBAC9B,EAAE,CAAC,aAAa,CACd,WAAW,EACX,EAAE,CAAC,YAAY,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,SAAS,CAAC,CACpE,CAAC;aACH;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,CAAC,EAAC,CAAC,CAAC;KAC7D;AACH,CAAC;AA9BD,wCA8BC"}
@@ -0,0 +1,2 @@
1
+ export declare function parseDate(value: string): Date;
2
+ export declare function isValidDateOrEpochOrDurationString(value: string): boolean;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isValidDateOrEpochOrDurationString = exports.parseDate = void 0;
4
+ const parse_duration_1 = require("parse-duration");
5
+ const date_fns_1 = require("date-fns");
6
+ const EPOCH_TIMESTAMP_REGEX = /^\d+$/;
7
+ function parseDate(value) {
8
+ const iso = (0, date_fns_1.parseISO)(value);
9
+ if (iso.getTime()) {
10
+ return iso;
11
+ }
12
+ else if (EPOCH_TIMESTAMP_REGEX.test(value)) {
13
+ return (0, date_fns_1.fromUnixTime)(parseInt(value, 10));
14
+ }
15
+ else {
16
+ return new Date(Date.now() - (0, parse_duration_1.default)(value));
17
+ }
18
+ }
19
+ exports.parseDate = parseDate;
20
+ function isValidDateOrEpochOrDurationString(value) {
21
+ return EPOCH_TIMESTAMP_REGEX.test(value) ||
22
+ (0, date_fns_1.parseISO)(value).getTime() ||
23
+ (0, parse_duration_1.default)(value) ? true : false;
24
+ }
25
+ exports.isValidDateOrEpochOrDurationString = isValidDateOrEpochOrDurationString;
26
+ //# sourceMappingURL=parseDate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseDate.js","sourceRoot":"","sources":["../../src/lib/parseDate.ts"],"names":[],"mappings":";;;AAAA,mDAAwD;AACxD,uCAAkD;AAElD,MAAM,qBAAqB,GAAG,OAAO,CAAC;AAEtC,SAAgB,SAAS,CAAC,KAAa;IACrC,MAAM,GAAG,GAAG,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC;IAC5B,IAAI,GAAG,CAAC,OAAO,EAAE,EAAE;QACjB,OAAO,GAAG,CAAC;KACZ;SAAM,IAAI,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;QAC5C,OAAO,IAAA,uBAAY,EAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;KAC1C;SAAM;QACL,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAA,wBAAa,EAAC,KAAK,CAAE,CAAC,CAAC;KACrD;AACH,CAAC;AATD,8BASC;AAED,SAAgB,kCAAkC,CAAC,KAAa;IAC9D,OAAO,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC;QACtC,IAAA,mBAAQ,EAAC,KAAK,CAAC,CAAC,OAAO,EAAE;QACzB,IAAA,wBAAa,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AACxC,CAAC;AAJD,gFAIC"}
@@ -0,0 +1,13 @@
1
+ import { Template } from './types';
2
+ export declare class TemplateRenderer {
3
+ private targetDir;
4
+ private template;
5
+ private statusUpdater;
6
+ constructor(targetDir: string, template: Template, statusUpdater: (status: string) => void);
7
+ render(substitutions: {
8
+ [key: string]: string;
9
+ }): Promise<void>;
10
+ private downloadTemplate;
11
+ private extract;
12
+ private pipe;
13
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TemplateRenderer = void 0;
4
+ const AdmZip = require("adm-zip");
5
+ const chalk = require("chalk");
6
+ const fs = require("fs");
7
+ const mustache = require("mustache");
8
+ const path = require("path");
9
+ const stream_1 = require("stream");
10
+ const globby = require("globby");
11
+ class TemplateRenderer {
12
+ constructor(targetDir, template, statusUpdater) {
13
+ this.targetDir = targetDir;
14
+ this.template = template;
15
+ this.statusUpdater = statusUpdater;
16
+ // globally disable HTML escaping
17
+ mustache.escape = (text) => text;
18
+ }
19
+ async render(substitutions) {
20
+ process.chdir(this.targetDir);
21
+ this.statusUpdater(chalk.gray(`Downloading ${this.template.name} template...`));
22
+ await this.downloadTemplate();
23
+ this.statusUpdater(chalk.gray(`Extracting template...`));
24
+ this.extract();
25
+ this.statusUpdater(chalk.gray(`Rendering template...`));
26
+ (await globby(['**/*'], { onlyFiles: true })).forEach((file) => {
27
+ // exclude template.yml`
28
+ if (file === 'template.yml') {
29
+ fs.unlinkSync(file);
30
+ return;
31
+ }
32
+ const f = mustache.render(file, substitutions);
33
+ if (f !== file) {
34
+ fs.renameSync(path.resolve(file), path.resolve(f));
35
+ file = f;
36
+ }
37
+ const transformed = mustache.render(fs.readFileSync(path.resolve(file)).toString(), substitutions);
38
+ fs.writeFileSync(path.resolve(file), transformed);
39
+ });
40
+ }
41
+ async downloadTemplate() {
42
+ const response = await fetch(`https://s3.amazonaws.com/zaius-public/zdp/app-templates/${this.template.id}.zip`);
43
+ if (response.ok && response.body) {
44
+ const nodeStream = stream_1.Readable.fromWeb(response.body);
45
+ await this.pipe(nodeStream, fs.createWriteStream(path.resolve(`${this.template.name}.zip`)));
46
+ }
47
+ else {
48
+ const errorText = await response.text();
49
+ throw new Error(`Failed to download template: ${response.statusText}\n${errorText}`);
50
+ }
51
+ }
52
+ extract() {
53
+ const zipFile = path.resolve(`${this.template.name}.zip`);
54
+ const zip = new AdmZip(zipFile);
55
+ zip.extractAllTo(this.targetDir);
56
+ fs.unlinkSync(zipFile);
57
+ }
58
+ async pipe(input, output) {
59
+ return new Promise((resolve) => input.pipe(output).on('finish', resolve));
60
+ }
61
+ }
62
+ exports.TemplateRenderer = TemplateRenderer;
63
+ //# sourceMappingURL=TemplateRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TemplateRenderer.js","sourceRoot":"","sources":["../../../src/lib/templating/TemplateRenderer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function fetchTemplatesManifest(): Promise<any>;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.fetchTemplatesManifest = void 0;
4
+ async function fetchTemplatesManifest() {
5
+ const result = await fetch('http://s3.amazonaws.com/zaius-public/zdp/app-templates/manifest.json');
6
+ return (await result.json());
7
+ }
8
+ exports.fetchTemplatesManifest = fetchTemplatesManifest;
9
+ //# sourceMappingURL=fetchTemplatesManifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchTemplatesManifest.js","sourceRoot":"","sources":["../../../src/lib/templating/fetchTemplatesManifest.ts"],"names":[],"mappings":";;;AAAO,KAAK,UAAU,sBAAsB;IAC1C,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,sEAAsE,CAAC,CAAC;IACnG,OAAO,CAAC,MAAM,MAAM,CAAC,IAAI,EAAE,CAAQ,CAAC;AACtC,CAAC;AAHD,wDAGC"}
@@ -0,0 +1,27 @@
1
+ export interface Template {
2
+ id: string;
3
+ name: string;
4
+ summary: string;
5
+ variables: TemplateVariable;
6
+ type: 'template';
7
+ }
8
+ export interface Scaffold {
9
+ name: string;
10
+ summary: string;
11
+ variables: TemplateVariable;
12
+ type: 'scaffold';
13
+ }
14
+ export interface TemplateVariable {
15
+ name: string;
16
+ question?: string;
17
+ hint?: string;
18
+ suggest?: string;
19
+ required?: boolean;
20
+ hidden?: boolean;
21
+ }
22
+ export interface TemplateManifest {
23
+ version: number;
24
+ baseTemplateVariables: TemplateVariable[];
25
+ templates: Template[];
26
+ scaffolds: Scaffold[];
27
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/lib/templating/types.ts"],"names":[],"mappings":""}