@phystack/cli 4.4.29

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 (192) hide show
  1. package/LICENSE.md +19 -0
  2. package/README.md +24 -0
  3. package/bin/index.js +2 -0
  4. package/dist/commands/app/build-apps.js +66 -0
  5. package/dist/commands/app/build-apps.js.map +1 -0
  6. package/dist/commands/app/build-container-remote.js +171 -0
  7. package/dist/commands/app/build-container-remote.js.map +1 -0
  8. package/dist/commands/app/build-container.js +322 -0
  9. package/dist/commands/app/build-container.js.map +1 -0
  10. package/dist/commands/app/build.js +375 -0
  11. package/dist/commands/app/build.js.map +1 -0
  12. package/dist/commands/app/create.js +409 -0
  13. package/dist/commands/app/create.js.map +1 -0
  14. package/dist/commands/app/deploy.js +176 -0
  15. package/dist/commands/app/deploy.js.map +1 -0
  16. package/dist/commands/app/device-picker.js +150 -0
  17. package/dist/commands/app/device-picker.js.map +1 -0
  18. package/dist/commands/app/import.js +303 -0
  19. package/dist/commands/app/import.js.map +1 -0
  20. package/dist/commands/app/list.js +26 -0
  21. package/dist/commands/app/list.js.map +1 -0
  22. package/dist/commands/app/publish.js +327 -0
  23. package/dist/commands/app/publish.js.map +1 -0
  24. package/dist/commands/app/settings.js +129 -0
  25. package/dist/commands/app/settings.js.map +1 -0
  26. package/dist/commands/app/types.js +13 -0
  27. package/dist/commands/app/types.js.map +1 -0
  28. package/dist/commands/app/upload-description.js +139 -0
  29. package/dist/commands/app/upload-description.js.map +1 -0
  30. package/dist/commands/app/upload-settings.js +29 -0
  31. package/dist/commands/app/upload-settings.js.map +1 -0
  32. package/dist/commands/app/utils.js +86 -0
  33. package/dist/commands/app/utils.js.map +1 -0
  34. package/dist/commands/auth/login.js +111 -0
  35. package/dist/commands/auth/login.js.map +1 -0
  36. package/dist/commands/auth/logout.js +19 -0
  37. package/dist/commands/auth/logout.js.map +1 -0
  38. package/dist/commands/descriptor/create.js +143 -0
  39. package/dist/commands/descriptor/create.js.map +1 -0
  40. package/dist/commands/descriptor/index.js +36 -0
  41. package/dist/commands/descriptor/index.js.map +1 -0
  42. package/dist/commands/descriptor/publish.js +163 -0
  43. package/dist/commands/descriptor/publish.js.map +1 -0
  44. package/dist/commands/descriptor/show.js +68 -0
  45. package/dist/commands/descriptor/show.js.map +1 -0
  46. package/dist/commands/dev/develop.js +175 -0
  47. package/dist/commands/dev/develop.js.map +1 -0
  48. package/dist/commands/dev/forward.js +118 -0
  49. package/dist/commands/dev/forward.js.map +1 -0
  50. package/dist/commands/dev/index.js +66 -0
  51. package/dist/commands/dev/index.js.map +1 -0
  52. package/dist/commands/dev/list.js +96 -0
  53. package/dist/commands/dev/list.js.map +1 -0
  54. package/dist/commands/dev/screen-devtools.js +156 -0
  55. package/dist/commands/dev/screen-devtools.js.map +1 -0
  56. package/dist/commands/dev/select.js +118 -0
  57. package/dist/commands/dev/select.js.map +1 -0
  58. package/dist/commands/dev/shell.js +171 -0
  59. package/dist/commands/dev/shell.js.map +1 -0
  60. package/dist/commands/dev/vnc.js +75 -0
  61. package/dist/commands/dev/vnc.js.map +1 -0
  62. package/dist/commands/device/select.js +118 -0
  63. package/dist/commands/device/select.js.map +1 -0
  64. package/dist/commands/flash.js +1120 -0
  65. package/dist/commands/flash.js.map +1 -0
  66. package/dist/commands/inst/create.js +55 -0
  67. package/dist/commands/inst/create.js.map +1 -0
  68. package/dist/commands/inst/index.js +15 -0
  69. package/dist/commands/inst/index.js.map +1 -0
  70. package/dist/commands/inst/list.js +26 -0
  71. package/dist/commands/inst/list.js.map +1 -0
  72. package/dist/commands/legacydev/debug.js +11 -0
  73. package/dist/commands/legacydev/debug.js.map +1 -0
  74. package/dist/commands/legacydev/deploy.js +15 -0
  75. package/dist/commands/legacydev/deploy.js.map +1 -0
  76. package/dist/commands/legacydev/dumpTwin.js +27 -0
  77. package/dist/commands/legacydev/dumpTwin.js.map +1 -0
  78. package/dist/commands/legacydev/forward.js +104 -0
  79. package/dist/commands/legacydev/forward.js.map +1 -0
  80. package/dist/commands/legacydev/index.js +188 -0
  81. package/dist/commands/legacydev/index.js.map +1 -0
  82. package/dist/commands/legacydev/invoke.js +29 -0
  83. package/dist/commands/legacydev/invoke.js.map +1 -0
  84. package/dist/commands/legacydev/js.js +69 -0
  85. package/dist/commands/legacydev/js.js.map +1 -0
  86. package/dist/commands/legacydev/list.js +196 -0
  87. package/dist/commands/legacydev/list.js.map +1 -0
  88. package/dist/commands/legacydev/logs.js +60 -0
  89. package/dist/commands/legacydev/logs.js.map +1 -0
  90. package/dist/commands/legacydev/modules.js +50 -0
  91. package/dist/commands/legacydev/modules.js.map +1 -0
  92. package/dist/commands/legacydev/move.js +23 -0
  93. package/dist/commands/legacydev/move.js.map +1 -0
  94. package/dist/commands/legacydev/ota.js +88 -0
  95. package/dist/commands/legacydev/ota.js.map +1 -0
  96. package/dist/commands/legacydev/patchTwin.js +21 -0
  97. package/dist/commands/legacydev/patchTwin.js.map +1 -0
  98. package/dist/commands/legacydev/pin.js +23 -0
  99. package/dist/commands/legacydev/pin.js.map +1 -0
  100. package/dist/commands/legacydev/pub.js +25 -0
  101. package/dist/commands/legacydev/pub.js.map +1 -0
  102. package/dist/commands/legacydev/rdp.js +64 -0
  103. package/dist/commands/legacydev/rdp.js.map +1 -0
  104. package/dist/commands/legacydev/screen-devtools.js +142 -0
  105. package/dist/commands/legacydev/screen-devtools.js.map +1 -0
  106. package/dist/commands/legacydev/settingsShow.js +89 -0
  107. package/dist/commands/legacydev/settingsShow.js.map +1 -0
  108. package/dist/commands/legacydev/settingsUpdate.js +114 -0
  109. package/dist/commands/legacydev/settingsUpdate.js.map +1 -0
  110. package/dist/commands/legacydev/shell.js +167 -0
  111. package/dist/commands/legacydev/shell.js.map +1 -0
  112. package/dist/commands/legacydev/showTwin.js +9 -0
  113. package/dist/commands/legacydev/showTwin.js.map +1 -0
  114. package/dist/commands/legacydev/statusLog.js +56 -0
  115. package/dist/commands/legacydev/statusLog.js.map +1 -0
  116. package/dist/commands/legacydev/sub.js +39 -0
  117. package/dist/commands/legacydev/sub.js.map +1 -0
  118. package/dist/commands/legacydev/vnc.js +61 -0
  119. package/dist/commands/legacydev/vnc.js.map +1 -0
  120. package/dist/commands/tenant/index.js +21 -0
  121. package/dist/commands/tenant/index.js.map +1 -0
  122. package/dist/commands/tenant/list.js +14 -0
  123. package/dist/commands/tenant/list.js.map +1 -0
  124. package/dist/commands/tenant/select.js +87 -0
  125. package/dist/commands/tenant/select.js.map +1 -0
  126. package/dist/commands/vm/create.js +718 -0
  127. package/dist/commands/vm/create.js.map +1 -0
  128. package/dist/commands/vm/index.js +130 -0
  129. package/dist/commands/vm/index.js.map +1 -0
  130. package/dist/commands/vm/list.js +124 -0
  131. package/dist/commands/vm/list.js.map +1 -0
  132. package/dist/commands/vm/logs.js +66 -0
  133. package/dist/commands/vm/logs.js.map +1 -0
  134. package/dist/commands/vm/remove.js +180 -0
  135. package/dist/commands/vm/remove.js.map +1 -0
  136. package/dist/commands/vm/shell.js +400 -0
  137. package/dist/commands/vm/shell.js.map +1 -0
  138. package/dist/commands/vm/start.js +861 -0
  139. package/dist/commands/vm/start.js.map +1 -0
  140. package/dist/commands/vm/stop.js +232 -0
  141. package/dist/commands/vm/stop.js.map +1 -0
  142. package/dist/index.js +158 -0
  143. package/dist/index.js.map +1 -0
  144. package/dist/services/admin-api/admin-api.types.js +3 -0
  145. package/dist/services/admin-api/admin-api.types.js.map +1 -0
  146. package/dist/services/admin-api/device-modules.admin-api.service.js +58 -0
  147. package/dist/services/admin-api/device-modules.admin-api.service.js.map +1 -0
  148. package/dist/services/admin-api/devices-admin-api.service.js +213 -0
  149. package/dist/services/admin-api/devices-admin-api.service.js.map +1 -0
  150. package/dist/services/admin-api/gridapps-admin-api.service.js +59 -0
  151. package/dist/services/admin-api/gridapps-admin-api.service.js.map +1 -0
  152. package/dist/services/admin-api/index.js +157 -0
  153. package/dist/services/admin-api/index.js.map +1 -0
  154. package/dist/services/admin-api/installations-admin-api.service.js +29 -0
  155. package/dist/services/admin-api/installations-admin-api.service.js.map +1 -0
  156. package/dist/services/admin-api/organizations-admin-api.service.js +53 -0
  157. package/dist/services/admin-api/organizations-admin-api.service.js.map +1 -0
  158. package/dist/services/auth/device-grant-auth.service.js +224 -0
  159. package/dist/services/auth/device-grant-auth.service.js.map +1 -0
  160. package/dist/services/phyhub/index.js +200 -0
  161. package/dist/services/phyhub/index.js.map +1 -0
  162. package/dist/services/phyhub/phyhub.types.js +3 -0
  163. package/dist/services/phyhub/phyhub.types.js.map +1 -0
  164. package/dist/utils/device-fetcher.js +92 -0
  165. package/dist/utils/device-fetcher.js.map +1 -0
  166. package/dist/utils/devices.js +41 -0
  167. package/dist/utils/devices.js.map +1 -0
  168. package/dist/utils/docker-credentials.js +546 -0
  169. package/dist/utils/docker-credentials.js.map +1 -0
  170. package/dist/utils/emulated-device.js +91 -0
  171. package/dist/utils/emulated-device.js.map +1 -0
  172. package/dist/utils/index.js +180 -0
  173. package/dist/utils/index.js.map +1 -0
  174. package/dist/utils/modules.js +36 -0
  175. package/dist/utils/modules.js.map +1 -0
  176. package/dist/utils/org-selector.js +108 -0
  177. package/dist/utils/org-selector.js.map +1 -0
  178. package/dist/utils/proxy.js +31 -0
  179. package/dist/utils/proxy.js.map +1 -0
  180. package/dist/utils/registry-credentials.js +113 -0
  181. package/dist/utils/registry-credentials.js.map +1 -0
  182. package/dist/utils/statuses.js +124 -0
  183. package/dist/utils/statuses.js.map +1 -0
  184. package/dist/utils/templates.js +189 -0
  185. package/dist/utils/templates.js.map +1 -0
  186. package/dist/utils/tenant-storage.js +88 -0
  187. package/dist/utils/tenant-storage.js.map +1 -0
  188. package/dist/utils/vm.js +434 -0
  189. package/dist/utils/vm.js.map +1 -0
  190. package/dist/utils/with-spinner.js +20 -0
  191. package/dist/utils/with-spinner.js.map +1 -0
  192. package/package.json +103 -0
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.renderColorStatusLog = exports.renderColorStatuses = exports.renderStatusLog = exports.applyUnderscores = exports.statusColors = exports.letters = exports.codes = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ exports.codes = {
9
+ '-': 'offline',
10
+ '+': 'ok',
11
+ a: 'noagent',
12
+ e: 'noedge',
13
+ S: 'noshot',
14
+ s: 'noscreen',
15
+ h: 'nohub',
16
+ r: 'noreboot',
17
+ u: 'updating',
18
+ b: 'backoff',
19
+ m: 'mnok',
20
+ };
21
+ exports.letters = Object.entries(exports.codes).reduce((res, [n, v]) => ({ ...res, [v]: n }), {});
22
+ exports.statusColors = {
23
+ unknown: chalk_1.default.hidden,
24
+ ok: chalk_1.default.greenBright,
25
+ offline: chalk_1.default.gray,
26
+ noedge: chalk_1.default.red,
27
+ nohub: chalk_1.default.red,
28
+ noscreen: chalk_1.default.magenta,
29
+ noagent: chalk_1.default.redBright,
30
+ noshot: chalk_1.default.yellow,
31
+ noreboot: chalk_1.default.cyan,
32
+ updating: chalk_1.default.blue,
33
+ backoff: chalk_1.default.magentaBright,
34
+ mnok: chalk_1.default.magentaBright,
35
+ };
36
+ const applyUnderscores = (data) => {
37
+ const result = [];
38
+ let val = data.shift();
39
+ result.push(val);
40
+ while (data.length) {
41
+ const d = data.shift();
42
+ if (d !== '_')
43
+ val = d;
44
+ result.push(val);
45
+ }
46
+ return result;
47
+ };
48
+ exports.applyUnderscores = applyUnderscores;
49
+ const MIN5 = 5 * 60 * 1000;
50
+ const applyUpdateTime = (log, updateTime) => {
51
+ // filter out some garbage data
52
+ let d = log
53
+ .replace(/_.([a-zA-Z+-])_/g, '__$1_') // remove 2 consequental state changes
54
+ .replace(/_..([a-zA-Z+-])_/g, '___$1_'); // remove 3 consequental state changes
55
+ while (/([a-zA-Z+-])_+\1/g.test(d)) {
56
+ // remove entries where state did not change
57
+ d = d.replace(/([a-zA-Z+-])(_+)\1/g, '$1$2_');
58
+ }
59
+ const d2 = d.split('');
60
+ let t = new Date(updateTime).getTime();
61
+ const now = Date.now();
62
+ while (now - t > MIN5) {
63
+ t += MIN5;
64
+ d2.push('_');
65
+ const item = d2.shift();
66
+ if (item && d2[0] === '_')
67
+ d2[0] = item;
68
+ }
69
+ return d2;
70
+ };
71
+ const FILL_SQ = '\u2587';
72
+ const renderStatusLog = ({ log, updateTime, }) => {
73
+ if (!log || !updateTime)
74
+ return null;
75
+ let data = applyUpdateTime(log, updateTime);
76
+ const res = [];
77
+ data = (0, exports.applyUnderscores)(data);
78
+ while (data.length) {
79
+ data.shift();
80
+ data.shift();
81
+ data.shift();
82
+ const b = data.shift(); // only render every 4th characted, making 20mins granularity
83
+ res.push(b);
84
+ }
85
+ return res.join('');
86
+ };
87
+ exports.renderStatusLog = renderStatusLog;
88
+ const renderColorStatuses = (log, offset = 0) => {
89
+ const res = [];
90
+ let n = 0;
91
+ while (log.length) {
92
+ n += 1;
93
+ const b = log.shift();
94
+ const statusb = exports.codes[b] || 'unknown';
95
+ const colorb = exports.statusColors[statusb] || exports.statusColors.unknown;
96
+ if ((offset + n + 5) % 12 >= 6) {
97
+ res.push(colorb(FILL_SQ));
98
+ }
99
+ else {
100
+ res.push(chalk_1.default.dim(colorb(FILL_SQ)));
101
+ }
102
+ }
103
+ return res.join('');
104
+ };
105
+ exports.renderColorStatuses = renderColorStatuses;
106
+ const now = new Date();
107
+ const nowMinutes = now.getHours() * 60 + now.getMinutes();
108
+ const renderColorStatusLog = ({ log, updateTime, }) => {
109
+ if (!log || !updateTime)
110
+ return null;
111
+ let data = applyUpdateTime(log, updateTime);
112
+ const off = Math.floor(nowMinutes / 20);
113
+ data = (0, exports.applyUnderscores)(data);
114
+ const min20log = [];
115
+ while (data.length) {
116
+ data.shift();
117
+ data.shift();
118
+ data.shift();
119
+ min20log.push(data.shift()); // only render every 4th entry, making 20mins granularity
120
+ }
121
+ return (0, exports.renderColorStatuses)(min20log, off);
122
+ };
123
+ exports.renderColorStatusLog = renderColorStatusLog;
124
+ //# sourceMappingURL=statuses.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"statuses.js","sourceRoot":"","sources":["../../src/utils/statuses.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAqC;AAExB,QAAA,KAAK,GAA+B;IAC/C,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,IAAI;IACT,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,QAAQ;IACX,CAAC,EAAE,UAAU;IACb,CAAC,EAAE,OAAO;IACV,CAAC,EAAE,UAAU;IACb,CAAC,EAAE,UAAU;IACb,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,MAAM;CACV,CAAC;AAEW,QAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,aAAK,CAAC,CAAC,MAAM,CACjD,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACrC,EAAE,CACH,CAAC;AAEW,QAAA,YAAY,GAAgC;IACvD,OAAO,EAAE,eAAK,CAAC,MAAM;IACrB,EAAE,EAAE,eAAK,CAAC,WAAW;IACrB,OAAO,EAAE,eAAK,CAAC,IAAI;IACnB,MAAM,EAAE,eAAK,CAAC,GAAG;IACjB,KAAK,EAAE,eAAK,CAAC,GAAG;IAChB,QAAQ,EAAE,eAAK,CAAC,OAAO;IACvB,OAAO,EAAE,eAAK,CAAC,SAAS;IACxB,MAAM,EAAE,eAAK,CAAC,MAAM;IACpB,QAAQ,EAAE,eAAK,CAAC,IAAI;IACpB,QAAQ,EAAE,eAAK,CAAC,IAAI;IACpB,OAAO,EAAE,eAAK,CAAC,aAAa;IAC5B,IAAI,EAAE,eAAK,CAAC,aAAa;CAC1B,CAAC;AAEK,MAAM,gBAAgB,GAAG,CAAC,IAAc,EAAE,EAAE;IACjD,MAAM,MAAM,GAAG,EAAE,CAAC;IAClB,IAAI,GAAG,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;IACvB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACjB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACnB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;QACvB,IAAI,CAAC,KAAK,GAAG;YAAE,GAAG,GAAG,CAAC,CAAC;QACvB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAVW,QAAA,gBAAgB,oBAU3B;AAEF,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAC3B,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,UAAkB,EAAE,EAAE;IAC1D,+BAA+B;IAC/B,IAAI,CAAC,GAAG,GAAG;SACR,OAAO,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC,sCAAsC;SAC3E,OAAO,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC,CAAC,sCAAsC;IACjF,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACnC,4CAA4C;QAC5C,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IACD,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvB,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,CAAC;IACvC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,OAAO,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;QACtB,CAAC,IAAI,IAAI,CAAC;QACV,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEb,MAAM,IAAI,GAAG,EAAE,CAAC,KAAK,EAAE,CAAC;QACxB,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG;YAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAC1C,CAAC;IACD,OAAO,EAAE,CAAC;AACZ,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,QAAQ,CAAC;AAElB,MAAM,eAAe,GAAG,CAAC,EAC9B,GAAG,EACH,UAAU,GAIX,EAAE,EAAE;IACH,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,IAAI,GAAG,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,IAAI,GAAG,IAAA,wBAAgB,EAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,6DAA6D;QACrF,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACd,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC,CAAC;AAnBW,QAAA,eAAe,mBAmB1B;AAEK,MAAM,mBAAmB,GAAG,CAAC,GAAa,EAAE,MAAM,GAAG,CAAC,EAAE,EAAE;IAC/D,MAAM,GAAG,GAAG,EAAE,CAAC;IACf,IAAI,CAAC,GAAG,CAAC,CAAC;IACV,OAAO,GAAG,CAAC,MAAM,EAAE,CAAC;QAClB,CAAC,IAAI,CAAC,CAAC;QACP,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC;QACtB,MAAM,OAAO,GAAG,aAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC;QACtC,MAAM,MAAM,GAAG,oBAAY,CAAC,OAAO,CAAC,IAAI,oBAAY,CAAC,OAAO,CAAC;QAC7D,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,CAAC;YAC/B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QAC5B,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,IAAI,CAAC,eAAK,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACtB,CAAC,CAAC;AAfW,QAAA,mBAAmB,uBAe9B;AAEF,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;AACvB,MAAM,UAAU,GAAG,GAAG,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,CAAC,UAAU,EAAE,CAAC;AACnD,MAAM,oBAAoB,GAAG,CAAC,EACnC,GAAG,EACH,UAAU,GAIX,EAAE,EAAE;IACH,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU;QAAE,OAAO,IAAI,CAAC;IACrC,IAAI,IAAI,GAAG,eAAe,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAE5C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC,CAAC;IACxC,IAAI,GAAG,IAAA,wBAAgB,EAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,QAAQ,GAAG,EAAE,CAAC;IACpB,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;QACnB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,yDAAyD;IACxF,CAAC;IACD,OAAO,IAAA,2BAAmB,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AAC5C,CAAC,CAAC;AApBW,QAAA,oBAAoB,wBAoB/B"}
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ var __importDefault = (this && this.__importDefault) || function (mod) {
36
+ return (mod && mod.__esModule) ? mod : { "default": mod };
37
+ };
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.initRepo = exports.installRepo = exports.cloneRepo = void 0;
40
+ const fs_extra_1 = __importDefault(require("fs-extra"));
41
+ const path_1 = __importDefault(require("path"));
42
+ const chalk_1 = __importDefault(require("chalk"));
43
+ const child_process_1 = __importStar(require("child_process"));
44
+ const rimraf_1 = require("rimraf");
45
+ const with_spinner_1 = __importDefault(require("./with-spinner"));
46
+ const cloneRepo = async ({ destinationPath, repo, projectName, displayName, registry, type, imageName, }) => {
47
+ const isExisting = await (0, with_spinner_1.default)(() => fs_extra_1.default.pathExists(destinationPath), 'Checking if the directory exists');
48
+ if (isExisting) {
49
+ throw new Error(`${destinationPath} already exists`);
50
+ }
51
+ let inMonorepo = false;
52
+ try {
53
+ child_process_1.default.execSync('git remote 2> /dev/null');
54
+ inMonorepo = true;
55
+ }
56
+ catch (e) {
57
+ inMonorepo = false;
58
+ }
59
+ await (0, with_spinner_1.default)(() => new Promise((resolve) => child_process_1.default.exec(`git clone ${repo} ${destinationPath}`, {}, resolve)), 'Cloning template app');
60
+ await (0, with_spinner_1.default)(() => rimraf_1.rimraf.rimraf(path_1.default.join(destinationPath, '.git'), {}), 'Removing template .git config');
61
+ if (!inMonorepo) {
62
+ await (0, with_spinner_1.default)(() => new Promise((resolve) => child_process_1.default.exec('git init', { cwd: destinationPath }, resolve)), 'Initializing git repo');
63
+ }
64
+ // Immediately update package.json with the proper app name, version, and description.
65
+ const packageFile = path_1.default.join(destinationPath, 'package.json');
66
+ if (await fs_extra_1.default.pathExists(packageFile)) {
67
+ console.log(chalk_1.default.gray('Updating package.json with app name, version, and description'));
68
+ const data = await fs_extra_1.default.promises.readFile(packageFile);
69
+ const parsed = JSON.parse(data.toString());
70
+ parsed.name = projectName; // The name must be in the "<org>.<appName>" format.
71
+ parsed.version = '0.1.0';
72
+ parsed.description = displayName;
73
+ // Only set application-type if type parameter is provided
74
+ if (type) {
75
+ parsed['application-type'] = type;
76
+ }
77
+ // For edge apps, store registry in docker-credentials.registry instead of at the root level
78
+ if (registry && type === 'module') {
79
+ // Initialize docker-credentials if it doesn't exist
80
+ if (!parsed['docker-credentials']) {
81
+ parsed['docker-credentials'] = {
82
+ pull: {
83
+ username: '',
84
+ password: '',
85
+ },
86
+ };
87
+ }
88
+ // Store registry in docker-credentials.registry
89
+ parsed['docker-credentials'].registry = registry;
90
+ // If imageName is provided, store it in docker-credentials.image
91
+ if (imageName) {
92
+ // Check if registry is already prepended
93
+ const registryPrefix = `${registry}/`;
94
+ if (!imageName.startsWith(registryPrefix)) {
95
+ parsed['docker-credentials'].image = `${registryPrefix}${imageName}`;
96
+ }
97
+ else {
98
+ // Use the imageName as is if it already has the correct prefix
99
+ parsed['docker-credentials'].image = imageName;
100
+ }
101
+ }
102
+ // Remove container-registry from root if it exists
103
+ if (parsed['container-registry']) {
104
+ delete parsed['container-registry'];
105
+ }
106
+ }
107
+ else if (registry) {
108
+ // For non-edge apps, keep the old behavior
109
+ parsed['container-registry'] = registry;
110
+ }
111
+ const newData = JSON.stringify(parsed, null, ' ');
112
+ await fs_extra_1.default.promises.writeFile(packageFile, newData);
113
+ }
114
+ };
115
+ exports.cloneRepo = cloneRepo;
116
+ const installRepo = async ({ destinationPath, projectName, displayName, registry, }) => {
117
+ const packageFile = path_1.default.join(destinationPath, 'package.json');
118
+ if (fs_extra_1.default.existsSync(packageFile)) {
119
+ console.log(chalk_1.default.gray(`Installing packages through yarn install`));
120
+ await new Promise((resolve, reject) => {
121
+ const install = (0, child_process_1.spawn)('yarn', ['install'], {
122
+ cwd: destinationPath,
123
+ stdio: 'inherit',
124
+ shell: true,
125
+ });
126
+ install.on('close', (code) => {
127
+ if (code !== 0) {
128
+ reject(new Error('yarn install failed'));
129
+ }
130
+ else {
131
+ resolve(null);
132
+ }
133
+ });
134
+ });
135
+ try {
136
+ console.log(chalk_1.default.gray(`Running yarn bootstrap to setup the project`));
137
+ child_process_1.default.execSync('yarn bootstrap', { cwd: destinationPath, stdio: 'inherit' });
138
+ }
139
+ catch (e) {
140
+ console.log('bootstrap command not found, that is fine');
141
+ }
142
+ // Package.json updating has been moved into cloneRepo.
143
+ console.log(chalk_1.default.gray(`Building project through yarn build`));
144
+ await new Promise((resolve, reject) => {
145
+ const build = (0, child_process_1.spawn)('yarn', ['build'], {
146
+ cwd: destinationPath,
147
+ stdio: 'inherit',
148
+ shell: true,
149
+ env: {
150
+ ...process.env,
151
+ FORCE_COLOR: '1',
152
+ },
153
+ });
154
+ build.on('close', (code) => {
155
+ if (code !== 0) {
156
+ reject(new Error('yarn build failed'));
157
+ }
158
+ else {
159
+ resolve(null);
160
+ }
161
+ });
162
+ });
163
+ }
164
+ else {
165
+ console.log(chalk_1.default.gray(`No packages required for this project type`));
166
+ }
167
+ };
168
+ exports.installRepo = installRepo;
169
+ /**
170
+ * For compatibility reasons, this function combines cloneRepo and installRepo.
171
+ * When called, it will first clone the repository (removing the original .git)
172
+ * and update package.json with the correct app name, version and description,
173
+ * then install dependencies and build the project.
174
+ */
175
+ const initRepo = async ({ destinationPath, repo, projectName, displayName, registry, type, imageName, }) => {
176
+ await (0, exports.cloneRepo)({
177
+ destinationPath,
178
+ repo,
179
+ projectName,
180
+ displayName,
181
+ registry,
182
+ type,
183
+ imageName,
184
+ });
185
+ await (0, exports.installRepo)({ destinationPath, projectName, displayName, registry });
186
+ };
187
+ exports.initRepo = initRepo;
188
+ exports.default = { cloneRepo: exports.cloneRepo, installRepo: exports.installRepo };
189
+ //# sourceMappingURL=templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.clearTenant = exports.hasTenant = exports.getTenant = exports.saveTenant = void 0;
7
+ const fs_extra_1 = __importDefault(require("fs-extra"));
8
+ const path_1 = __importDefault(require("path"));
9
+ const os_1 = __importDefault(require("os"));
10
+ const chalk_1 = __importDefault(require("chalk"));
11
+ const CONFIG_DIR = path_1.default.join(os_1.default.homedir(), '.config', 'phygrid-cli');
12
+ const TENANT_FILE = path_1.default.join(CONFIG_DIR, 'tenant.json');
13
+ /**
14
+ * Save tenant information to the config directory
15
+ *
16
+ * @param tenant The tenant information to save
17
+ * @returns Promise that resolves when the save is complete
18
+ */
19
+ const saveTenant = async (tenant) => {
20
+ try {
21
+ // Ensure config directory exists
22
+ await fs_extra_1.default.ensureDir(CONFIG_DIR);
23
+ // Save the tenant information
24
+ await fs_extra_1.default.writeFile(TENANT_FILE, JSON.stringify(tenant, null, 2));
25
+ console.log(chalk_1.default.dim(`Saved tenant information to ${TENANT_FILE}`));
26
+ }
27
+ catch (error) {
28
+ console.error(chalk_1.default.red(`Failed to save tenant information: ${error.message}`));
29
+ throw error;
30
+ }
31
+ };
32
+ exports.saveTenant = saveTenant;
33
+ /**
34
+ * Get the saved tenant information
35
+ *
36
+ * @returns Promise that resolves to the tenant information or null if none saved
37
+ */
38
+ const getTenant = async () => {
39
+ try {
40
+ if (await fs_extra_1.default.pathExists(TENANT_FILE)) {
41
+ const data = await fs_extra_1.default.readFile(TENANT_FILE, 'utf8');
42
+ const tenant = JSON.parse(data);
43
+ // Logging loaded tenant info
44
+ console.log(chalk_1.default.dim(`Using tenant: ${tenant.displayName} (${tenant.slug})`));
45
+ return tenant;
46
+ }
47
+ return null;
48
+ }
49
+ catch (error) {
50
+ console.error(chalk_1.default.red(`Failed to read tenant information: ${error.message}`));
51
+ return null;
52
+ }
53
+ };
54
+ exports.getTenant = getTenant;
55
+ /**
56
+ * Check if a tenant is already saved
57
+ *
58
+ * @returns Promise that resolves to true if a tenant is saved, false otherwise
59
+ */
60
+ const hasTenant = async () => {
61
+ try {
62
+ return await fs_extra_1.default.pathExists(TENANT_FILE);
63
+ }
64
+ catch (error) {
65
+ console.error(chalk_1.default.red(`Failed to check for saved tenant: ${error.message}`));
66
+ return false;
67
+ }
68
+ };
69
+ exports.hasTenant = hasTenant;
70
+ /**
71
+ * Clear the saved tenant
72
+ *
73
+ * @returns Promise that resolves when the file is deleted
74
+ */
75
+ const clearTenant = async () => {
76
+ try {
77
+ if (await fs_extra_1.default.pathExists(TENANT_FILE)) {
78
+ await fs_extra_1.default.remove(TENANT_FILE);
79
+ console.log(chalk_1.default.dim(`Removed tenant information`));
80
+ }
81
+ }
82
+ catch (error) {
83
+ console.error(chalk_1.default.red(`Failed to clear tenant: ${error.message}`));
84
+ throw error;
85
+ }
86
+ };
87
+ exports.clearTenant = clearTenant;
88
+ //# sourceMappingURL=tenant-storage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tenant-storage.js","sourceRoot":"","sources":["../../src/utils/tenant-storage.ts"],"names":[],"mappings":";;;;;;AAAA,wDAA0B;AAC1B,gDAAwB;AACxB,4CAAoB;AACpB,kDAA0B;AAE1B,MAAM,UAAU,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC;AACrE,MAAM,WAAW,GAAG,cAAI,CAAC,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;AASzD;;;;;GAKG;AACI,MAAM,UAAU,GAAG,KAAK,EAAE,MAAoB,EAAiB,EAAE;IACtE,IAAI,CAAC;QACH,iCAAiC;QACjC,MAAM,kBAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAE/B,8BAA8B;QAC9B,MAAM,kBAAE,CAAC,SAAS,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,+BAA+B,WAAW,EAAE,CAAC,CAAC,CAAC;IACvE,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,sCAAsC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAChF,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAZW,QAAA,UAAU,cAYrB;AAEF;;;;GAIG;AACI,MAAM,SAAS,GAAG,KAAK,IAAkC,EAAE;IAChE,IAAI,CAAC;QACH,IAAI,MAAM,kBAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,MAAM,kBAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAiB,CAAC;YAEhD,6BAA6B;YAC7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,WAAW,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC;YAE/E,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,sCAAsC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAChF,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAhBW,QAAA,SAAS,aAgBpB;AAEF;;;;GAIG;AACI,MAAM,SAAS,GAAG,KAAK,IAAsB,EAAE;IACpD,IAAI,CAAC;QACH,OAAO,MAAM,kBAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC1C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,qCAAqC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/E,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC,CAAC;AAPW,QAAA,SAAS,aAOpB;AAEF;;;;GAIG;AACI,MAAM,WAAW,GAAG,KAAK,IAAmB,EAAE;IACnD,IAAI,CAAC;QACH,IAAI,MAAM,kBAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;YACrC,MAAM,kBAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YAC7B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,2BAA2B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QACrE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC,CAAC;AAVW,QAAA,WAAW,eAUtB"}