@phystack/cli 5.0.3 → 5.1.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 (218) hide show
  1. package/bin/index.js +27 -1
  2. package/package.json +12 -65
  3. package/dist/commands/app/build-apps.js +0 -66
  4. package/dist/commands/app/build-apps.js.map +0 -1
  5. package/dist/commands/app/build-container-remote.js +0 -171
  6. package/dist/commands/app/build-container-remote.js.map +0 -1
  7. package/dist/commands/app/build-container.js +0 -330
  8. package/dist/commands/app/build-container.js.map +0 -1
  9. package/dist/commands/app/build.js +0 -398
  10. package/dist/commands/app/build.js.map +0 -1
  11. package/dist/commands/app/create.js +0 -463
  12. package/dist/commands/app/create.js.map +0 -1
  13. package/dist/commands/app/deploy.js +0 -176
  14. package/dist/commands/app/deploy.js.map +0 -1
  15. package/dist/commands/app/device-picker.js +0 -150
  16. package/dist/commands/app/device-picker.js.map +0 -1
  17. package/dist/commands/app/import.js +0 -336
  18. package/dist/commands/app/import.js.map +0 -1
  19. package/dist/commands/app/list.js +0 -26
  20. package/dist/commands/app/list.js.map +0 -1
  21. package/dist/commands/app/publish.js +0 -332
  22. package/dist/commands/app/publish.js.map +0 -1
  23. package/dist/commands/app/settings.js +0 -133
  24. package/dist/commands/app/settings.js.map +0 -1
  25. package/dist/commands/app/types.js +0 -14
  26. package/dist/commands/app/types.js.map +0 -1
  27. package/dist/commands/app/upload-description.js +0 -139
  28. package/dist/commands/app/upload-description.js.map +0 -1
  29. package/dist/commands/app/upload-settings.js +0 -29
  30. package/dist/commands/app/upload-settings.js.map +0 -1
  31. package/dist/commands/app/utils.js +0 -86
  32. package/dist/commands/app/utils.js.map +0 -1
  33. package/dist/commands/auth/login.js +0 -145
  34. package/dist/commands/auth/login.js.map +0 -1
  35. package/dist/commands/auth/logout.js +0 -19
  36. package/dist/commands/auth/logout.js.map +0 -1
  37. package/dist/commands/descriptor/create.js +0 -143
  38. package/dist/commands/descriptor/create.js.map +0 -1
  39. package/dist/commands/descriptor/index.js +0 -36
  40. package/dist/commands/descriptor/index.js.map +0 -1
  41. package/dist/commands/descriptor/publish.js +0 -163
  42. package/dist/commands/descriptor/publish.js.map +0 -1
  43. package/dist/commands/descriptor/show.js +0 -68
  44. package/dist/commands/descriptor/show.js.map +0 -1
  45. package/dist/commands/dev/cp.js +0 -764
  46. package/dist/commands/dev/cp.js.map +0 -1
  47. package/dist/commands/dev/develop.js +0 -175
  48. package/dist/commands/dev/develop.js.map +0 -1
  49. package/dist/commands/dev/forward.js +0 -132
  50. package/dist/commands/dev/forward.js.map +0 -1
  51. package/dist/commands/dev/index.js +0 -80
  52. package/dist/commands/dev/index.js.map +0 -1
  53. package/dist/commands/dev/list.js +0 -96
  54. package/dist/commands/dev/list.js.map +0 -1
  55. package/dist/commands/dev/screen-devtools.js +0 -156
  56. package/dist/commands/dev/screen-devtools.js.map +0 -1
  57. package/dist/commands/dev/select.js +0 -118
  58. package/dist/commands/dev/select.js.map +0 -1
  59. package/dist/commands/dev/shell.js +0 -186
  60. package/dist/commands/dev/shell.js.map +0 -1
  61. package/dist/commands/dev/vnc.js +0 -75
  62. package/dist/commands/dev/vnc.js.map +0 -1
  63. package/dist/commands/device/select.js +0 -118
  64. package/dist/commands/device/select.js.map +0 -1
  65. package/dist/commands/flash.js +0 -1120
  66. package/dist/commands/flash.js.map +0 -1
  67. package/dist/commands/inst/create.js +0 -55
  68. package/dist/commands/inst/create.js.map +0 -1
  69. package/dist/commands/inst/index.js +0 -15
  70. package/dist/commands/inst/index.js.map +0 -1
  71. package/dist/commands/inst/list.js +0 -26
  72. package/dist/commands/inst/list.js.map +0 -1
  73. package/dist/commands/legacydev/debug.js +0 -11
  74. package/dist/commands/legacydev/debug.js.map +0 -1
  75. package/dist/commands/legacydev/deploy.js +0 -15
  76. package/dist/commands/legacydev/deploy.js.map +0 -1
  77. package/dist/commands/legacydev/dumpTwin.js +0 -27
  78. package/dist/commands/legacydev/dumpTwin.js.map +0 -1
  79. package/dist/commands/legacydev/forward.js +0 -104
  80. package/dist/commands/legacydev/forward.js.map +0 -1
  81. package/dist/commands/legacydev/index.js +0 -188
  82. package/dist/commands/legacydev/index.js.map +0 -1
  83. package/dist/commands/legacydev/invoke.js +0 -29
  84. package/dist/commands/legacydev/invoke.js.map +0 -1
  85. package/dist/commands/legacydev/js.js +0 -69
  86. package/dist/commands/legacydev/js.js.map +0 -1
  87. package/dist/commands/legacydev/list.js +0 -196
  88. package/dist/commands/legacydev/list.js.map +0 -1
  89. package/dist/commands/legacydev/logs.js +0 -60
  90. package/dist/commands/legacydev/logs.js.map +0 -1
  91. package/dist/commands/legacydev/modules.js +0 -50
  92. package/dist/commands/legacydev/modules.js.map +0 -1
  93. package/dist/commands/legacydev/move.js +0 -23
  94. package/dist/commands/legacydev/move.js.map +0 -1
  95. package/dist/commands/legacydev/ota.js +0 -88
  96. package/dist/commands/legacydev/ota.js.map +0 -1
  97. package/dist/commands/legacydev/patchTwin.js +0 -21
  98. package/dist/commands/legacydev/patchTwin.js.map +0 -1
  99. package/dist/commands/legacydev/pin.js +0 -23
  100. package/dist/commands/legacydev/pin.js.map +0 -1
  101. package/dist/commands/legacydev/pub.js +0 -25
  102. package/dist/commands/legacydev/pub.js.map +0 -1
  103. package/dist/commands/legacydev/rdp.js +0 -64
  104. package/dist/commands/legacydev/rdp.js.map +0 -1
  105. package/dist/commands/legacydev/screen-devtools.js +0 -142
  106. package/dist/commands/legacydev/screen-devtools.js.map +0 -1
  107. package/dist/commands/legacydev/settingsShow.js +0 -89
  108. package/dist/commands/legacydev/settingsShow.js.map +0 -1
  109. package/dist/commands/legacydev/settingsUpdate.js +0 -114
  110. package/dist/commands/legacydev/settingsUpdate.js.map +0 -1
  111. package/dist/commands/legacydev/shell.js +0 -167
  112. package/dist/commands/legacydev/shell.js.map +0 -1
  113. package/dist/commands/legacydev/showTwin.js +0 -9
  114. package/dist/commands/legacydev/showTwin.js.map +0 -1
  115. package/dist/commands/legacydev/statusLog.js +0 -56
  116. package/dist/commands/legacydev/statusLog.js.map +0 -1
  117. package/dist/commands/legacydev/sub.js +0 -39
  118. package/dist/commands/legacydev/sub.js.map +0 -1
  119. package/dist/commands/legacydev/vnc.js +0 -61
  120. package/dist/commands/legacydev/vnc.js.map +0 -1
  121. package/dist/commands/simulator/index.js +0 -37
  122. package/dist/commands/simulator/index.js.map +0 -1
  123. package/dist/commands/simulator/list.js +0 -20
  124. package/dist/commands/simulator/list.js.map +0 -1
  125. package/dist/commands/simulator/remove.js +0 -19
  126. package/dist/commands/simulator/remove.js.map +0 -1
  127. package/dist/commands/simulator/run.js +0 -380
  128. package/dist/commands/simulator/run.js.map +0 -1
  129. package/dist/commands/simulator/start.js +0 -186
  130. package/dist/commands/simulator/start.js.map +0 -1
  131. package/dist/commands/tenant/index.js +0 -21
  132. package/dist/commands/tenant/index.js.map +0 -1
  133. package/dist/commands/tenant/list.js +0 -14
  134. package/dist/commands/tenant/list.js.map +0 -1
  135. package/dist/commands/tenant/select.js +0 -87
  136. package/dist/commands/tenant/select.js.map +0 -1
  137. package/dist/commands/vm/create.js +0 -959
  138. package/dist/commands/vm/create.js.map +0 -1
  139. package/dist/commands/vm/index.js +0 -130
  140. package/dist/commands/vm/index.js.map +0 -1
  141. package/dist/commands/vm/list.js +0 -124
  142. package/dist/commands/vm/list.js.map +0 -1
  143. package/dist/commands/vm/logs.js +0 -66
  144. package/dist/commands/vm/logs.js.map +0 -1
  145. package/dist/commands/vm/remove.js +0 -180
  146. package/dist/commands/vm/remove.js.map +0 -1
  147. package/dist/commands/vm/shell.js +0 -400
  148. package/dist/commands/vm/shell.js.map +0 -1
  149. package/dist/commands/vm/start.js +0 -861
  150. package/dist/commands/vm/start.js.map +0 -1
  151. package/dist/commands/vm/stop.js +0 -232
  152. package/dist/commands/vm/stop.js.map +0 -1
  153. package/dist/index.js +0 -169
  154. package/dist/index.js.map +0 -1
  155. package/dist/services/admin-api/admin-api.types.js +0 -3
  156. package/dist/services/admin-api/admin-api.types.js.map +0 -1
  157. package/dist/services/admin-api/device-modules.admin-api.service.js +0 -58
  158. package/dist/services/admin-api/device-modules.admin-api.service.js.map +0 -1
  159. package/dist/services/admin-api/devices-admin-api.service.js +0 -213
  160. package/dist/services/admin-api/devices-admin-api.service.js.map +0 -1
  161. package/dist/services/admin-api/gridapps-admin-api.service.js +0 -59
  162. package/dist/services/admin-api/gridapps-admin-api.service.js.map +0 -1
  163. package/dist/services/admin-api/index.js +0 -151
  164. package/dist/services/admin-api/index.js.map +0 -1
  165. package/dist/services/admin-api/installations-admin-api.service.js +0 -29
  166. package/dist/services/admin-api/installations-admin-api.service.js.map +0 -1
  167. package/dist/services/admin-api/organizations-admin-api.service.js +0 -53
  168. package/dist/services/admin-api/organizations-admin-api.service.js.map +0 -1
  169. package/dist/services/auth/device-grant-auth.service.js +0 -226
  170. package/dist/services/auth/device-grant-auth.service.js.map +0 -1
  171. package/dist/services/env.js +0 -21
  172. package/dist/services/env.js.map +0 -1
  173. package/dist/services/phyhub/index.js +0 -200
  174. package/dist/services/phyhub/index.js.map +0 -1
  175. package/dist/services/phyhub/phyhub.types.js +0 -3
  176. package/dist/services/phyhub/phyhub.types.js.map +0 -1
  177. package/dist/simulator/index.js +0 -162
  178. package/dist/simulator/index.js.map +0 -1
  179. package/dist/simulator/local-server.js +0 -147
  180. package/dist/simulator/local-server.js.map +0 -1
  181. package/dist/simulator/logger.js +0 -43
  182. package/dist/simulator/logger.js.map +0 -1
  183. package/dist/simulator/message-router.js +0 -379
  184. package/dist/simulator/message-router.js.map +0 -1
  185. package/dist/simulator/twin-cache.js +0 -58
  186. package/dist/simulator/twin-cache.js.map +0 -1
  187. package/dist/simulator/types.js +0 -16
  188. package/dist/simulator/types.js.map +0 -1
  189. package/dist/utils/device-fetcher.js +0 -92
  190. package/dist/utils/device-fetcher.js.map +0 -1
  191. package/dist/utils/devices.js +0 -41
  192. package/dist/utils/devices.js.map +0 -1
  193. package/dist/utils/docker-credentials.js +0 -720
  194. package/dist/utils/docker-credentials.js.map +0 -1
  195. package/dist/utils/emulated-device.js +0 -91
  196. package/dist/utils/emulated-device.js.map +0 -1
  197. package/dist/utils/index.js +0 -147
  198. package/dist/utils/index.js.map +0 -1
  199. package/dist/utils/modules.js +0 -36
  200. package/dist/utils/modules.js.map +0 -1
  201. package/dist/utils/org-selector.js +0 -108
  202. package/dist/utils/org-selector.js.map +0 -1
  203. package/dist/utils/proxy.js +0 -31
  204. package/dist/utils/proxy.js.map +0 -1
  205. package/dist/utils/registry-credentials.js +0 -113
  206. package/dist/utils/registry-credentials.js.map +0 -1
  207. package/dist/utils/simulator-config.js +0 -142
  208. package/dist/utils/simulator-config.js.map +0 -1
  209. package/dist/utils/statuses.js +0 -124
  210. package/dist/utils/statuses.js.map +0 -1
  211. package/dist/utils/templates.js +0 -197
  212. package/dist/utils/templates.js.map +0 -1
  213. package/dist/utils/tenant-storage.js +0 -88
  214. package/dist/utils/tenant-storage.js.map +0 -1
  215. package/dist/utils/vm.js +0 -434
  216. package/dist/utils/vm.js.map +0 -1
  217. package/dist/utils/with-spinner.js +0 -20
  218. package/dist/utils/with-spinner.js.map +0 -1
@@ -1,142 +0,0 @@
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.listSimulators = listSimulators;
7
- exports.getSimulator = getSimulator;
8
- exports.saveSimulator = saveSimulator;
9
- exports.removeSimulator = removeSimulator;
10
- exports.getDeviceConfig = getDeviceConfig;
11
- exports.saveDeviceConfig = saveDeviceConfig;
12
- exports.getAppConfig = getAppConfig;
13
- exports.saveAppConfig = saveAppConfig;
14
- exports.listApps = listApps;
15
- exports.getAppConfigByPath = getAppConfigByPath;
16
- exports.updateAppTwinId = updateAppTwinId;
17
- const fs_extra_1 = __importDefault(require("fs-extra"));
18
- const path_1 = __importDefault(require("path"));
19
- const os_1 = __importDefault(require("os"));
20
- // --- Connected simulator device registry ---
21
- const SIMULATORS_DIR = path_1.default.join(os_1.default.homedir(), '.config', 'phystack-cli', 'simulators');
22
- function listSimulators() {
23
- if (!fs_extra_1.default.pathExistsSync(SIMULATORS_DIR))
24
- return [];
25
- return fs_extra_1.default.readdirSync(SIMULATORS_DIR)
26
- .filter(f => f.endsWith('.json'))
27
- .map(f => {
28
- try {
29
- return JSON.parse(fs_extra_1.default.readFileSync(path_1.default.join(SIMULATORS_DIR, f), 'utf8'));
30
- }
31
- catch {
32
- return null;
33
- }
34
- })
35
- .filter(Boolean);
36
- }
37
- function getSimulator(name) {
38
- const filePath = path_1.default.join(SIMULATORS_DIR, `${name}.json`);
39
- if (!fs_extra_1.default.pathExistsSync(filePath))
40
- return null;
41
- try {
42
- return JSON.parse(fs_extra_1.default.readFileSync(filePath, 'utf8'));
43
- }
44
- catch {
45
- return null;
46
- }
47
- }
48
- function saveSimulator(config) {
49
- fs_extra_1.default.ensureDirSync(SIMULATORS_DIR);
50
- fs_extra_1.default.writeFileSync(path_1.default.join(SIMULATORS_DIR, `${config.name}.json`), JSON.stringify(config, null, 2));
51
- }
52
- function removeSimulator(name) {
53
- const filePath = path_1.default.join(SIMULATORS_DIR, `${name}.json`);
54
- if (!fs_extra_1.default.pathExistsSync(filePath))
55
- return false;
56
- fs_extra_1.default.removeSync(filePath);
57
- return true;
58
- }
59
- const SIMULATOR_DIR = path_1.default.join(os_1.default.homedir(), '.config', 'phystack-cli', 'simulator');
60
- function deviceConfigPath(tenantId) {
61
- return path_1.default.join(tenantDir(tenantId), 'device.json');
62
- }
63
- async function getDeviceConfig(tenantId) {
64
- const filePath = deviceConfigPath(tenantId);
65
- try {
66
- if (await fs_extra_1.default.pathExists(filePath)) {
67
- const data = await fs_extra_1.default.readFile(filePath, 'utf8');
68
- return JSON.parse(data);
69
- }
70
- return undefined;
71
- }
72
- catch (err) {
73
- console.log(`[simulator] Failed to read device config: ${err.message}`);
74
- return undefined;
75
- }
76
- }
77
- async function saveDeviceConfig(tenantId, config) {
78
- const dir = tenantDir(tenantId);
79
- await fs_extra_1.default.ensureDir(dir);
80
- await fs_extra_1.default.writeFile(deviceConfigPath(tenantId), JSON.stringify(config, null, 2));
81
- }
82
- function tenantsDir() {
83
- return path_1.default.join(SIMULATOR_DIR, 'tenants');
84
- }
85
- function tenantDir(tenantId) {
86
- return path_1.default.join(tenantsDir(), tenantId);
87
- }
88
- function appConfigPath(tenantId, appName) {
89
- return path_1.default.join(tenantDir(tenantId), `${appName}.json`);
90
- }
91
- async function getAppConfig(tenantId, appName) {
92
- const filePath = appConfigPath(tenantId, appName);
93
- try {
94
- if (await fs_extra_1.default.pathExists(filePath)) {
95
- const data = await fs_extra_1.default.readFile(filePath, 'utf8');
96
- return JSON.parse(data);
97
- }
98
- return undefined;
99
- }
100
- catch (err) {
101
- console.log(`[simulator] Failed to read app config for ${appName}: ${err.message}`);
102
- return undefined;
103
- }
104
- }
105
- async function saveAppConfig(tenantId, config) {
106
- const dir = tenantDir(tenantId);
107
- await fs_extra_1.default.ensureDir(dir);
108
- const filePath = appConfigPath(tenantId, config.name);
109
- await fs_extra_1.default.writeFile(filePath, JSON.stringify(config, null, 2));
110
- }
111
- async function listApps(tenantId) {
112
- const dir = tenantDir(tenantId);
113
- try {
114
- if (!(await fs_extra_1.default.pathExists(dir)))
115
- return [];
116
- const files = await fs_extra_1.default.readdir(dir);
117
- const apps = [];
118
- for (const file of files) {
119
- if (file.endsWith('.json')) {
120
- const data = await fs_extra_1.default.readFile(path_1.default.join(dir, file), 'utf8');
121
- apps.push(JSON.parse(data));
122
- }
123
- }
124
- return apps;
125
- }
126
- catch (err) {
127
- console.log(`[simulator] Failed to list apps for tenant ${tenantId}: ${err.message}`);
128
- return [];
129
- }
130
- }
131
- async function getAppConfigByPath(tenantId, appPath) {
132
- const apps = await listApps(tenantId);
133
- return apps.find((a) => a.path === appPath);
134
- }
135
- async function updateAppTwinId(tenantId, appName, newTwinId) {
136
- const config = await getAppConfig(tenantId, appName);
137
- if (config) {
138
- config.twinId = newTwinId;
139
- await saveAppConfig(tenantId, config);
140
- }
141
- }
142
- //# sourceMappingURL=simulator-config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simulator-config.js","sourceRoot":"","sources":["../../src/utils/simulator-config.ts"],"names":[],"mappings":"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"}
@@ -1,124 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,197 +0,0 @@
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, dockerRepoIsPrivate, architectures, }) => {
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 === 'edge') {
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
- // Store repository privacy setting for Docker Hub
103
- if (dockerRepoIsPrivate !== undefined) {
104
- parsed['docker-credentials'].isPrivate = dockerRepoIsPrivate;
105
- }
106
- // Store supported architectures for edge apps
107
- if (architectures && architectures.length > 0) {
108
- parsed['docker-credentials'].architectures = architectures;
109
- }
110
- // Remove container-registry from root if it exists
111
- if (parsed['container-registry']) {
112
- delete parsed['container-registry'];
113
- }
114
- }
115
- else if (registry) {
116
- // For non-edge apps, keep the old behavior
117
- parsed['container-registry'] = registry;
118
- }
119
- const newData = JSON.stringify(parsed, null, ' ');
120
- await fs_extra_1.default.promises.writeFile(packageFile, newData);
121
- }
122
- };
123
- exports.cloneRepo = cloneRepo;
124
- const installRepo = async ({ destinationPath, projectName, displayName, registry, }) => {
125
- const packageFile = path_1.default.join(destinationPath, 'package.json');
126
- if (fs_extra_1.default.existsSync(packageFile)) {
127
- console.log(chalk_1.default.gray(`Installing packages through yarn install`));
128
- await new Promise((resolve, reject) => {
129
- const install = (0, child_process_1.spawn)('yarn', ['install'], {
130
- cwd: destinationPath,
131
- stdio: 'inherit',
132
- shell: true,
133
- });
134
- install.on('close', (code) => {
135
- if (code !== 0) {
136
- reject(new Error('yarn install failed'));
137
- }
138
- else {
139
- resolve(null);
140
- }
141
- });
142
- });
143
- try {
144
- console.log(chalk_1.default.gray(`Running yarn bootstrap to setup the project`));
145
- child_process_1.default.execSync('yarn bootstrap', { cwd: destinationPath, stdio: 'inherit' });
146
- }
147
- catch (e) {
148
- console.log('bootstrap command not found, that is fine');
149
- }
150
- // Package.json updating has been moved into cloneRepo.
151
- console.log(chalk_1.default.gray(`Building project through yarn build`));
152
- await new Promise((resolve, reject) => {
153
- const build = (0, child_process_1.spawn)('yarn', ['build'], {
154
- cwd: destinationPath,
155
- stdio: 'inherit',
156
- shell: true,
157
- env: {
158
- ...process.env,
159
- FORCE_COLOR: '1',
160
- },
161
- });
162
- build.on('close', (code) => {
163
- if (code !== 0) {
164
- reject(new Error('yarn build failed'));
165
- }
166
- else {
167
- resolve(null);
168
- }
169
- });
170
- });
171
- }
172
- else {
173
- console.log(chalk_1.default.gray(`No packages required for this project type`));
174
- }
175
- };
176
- exports.installRepo = installRepo;
177
- /**
178
- * For compatibility reasons, this function combines cloneRepo and installRepo.
179
- * When called, it will first clone the repository (removing the original .git)
180
- * and update package.json with the correct app name, version and description,
181
- * then install dependencies and build the project.
182
- */
183
- const initRepo = async ({ destinationPath, repo, projectName, displayName, registry, type, imageName, }) => {
184
- await (0, exports.cloneRepo)({
185
- destinationPath,
186
- repo,
187
- projectName,
188
- displayName,
189
- registry,
190
- type,
191
- imageName,
192
- });
193
- await (0, exports.installRepo)({ destinationPath, projectName, displayName, registry });
194
- };
195
- exports.initRepo = initRepo;
196
- exports.default = { cloneRepo: exports.cloneRepo, installRepo: exports.installRepo };
197
- //# sourceMappingURL=templates.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"templates.js","sourceRoot":"","sources":["../../src/utils/templates.ts"],"names":[],"mappings":"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"}
@@ -1,88 +0,0 @@
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', 'phystack-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
@@ -1 +0,0 @@
1
- {"version":3,"file":"tenant-storage.js","sourceRoot":"","sources":["../../src/utils/tenant-storage.ts"],"names":[],"mappings":"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"}