@inquir/compute-cli 0.2.2 → 0.3.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 (62) hide show
  1. package/README.md +133 -35
  2. package/dist/commands/apps.d.ts +42 -5
  3. package/dist/commands/apps.d.ts.map +1 -1
  4. package/dist/commands/apps.js +878 -42
  5. package/dist/commands/apps.js.map +1 -1
  6. package/dist/commands/deploy.d.ts +38 -0
  7. package/dist/commands/deploy.d.ts.map +1 -1
  8. package/dist/commands/deploy.js +165 -12
  9. package/dist/commands/deploy.js.map +1 -1
  10. package/dist/commands/doctor.js +2 -2
  11. package/dist/commands/init.d.ts.map +1 -1
  12. package/dist/commands/init.js +3 -0
  13. package/dist/commands/init.js.map +1 -1
  14. package/dist/commands/login.d.ts.map +1 -1
  15. package/dist/commands/login.js +44 -13
  16. package/dist/commands/login.js.map +1 -1
  17. package/dist/commands/projects.d.ts +2 -0
  18. package/dist/commands/projects.d.ts.map +1 -0
  19. package/dist/commands/projects.js +98 -0
  20. package/dist/commands/projects.js.map +1 -0
  21. package/dist/index.js +3 -0
  22. package/dist/index.js.map +1 -1
  23. package/dist/utils/api.d.ts +45 -4
  24. package/dist/utils/api.d.ts.map +1 -1
  25. package/dist/utils/api.js +66 -5
  26. package/dist/utils/api.js.map +1 -1
  27. package/dist/utils/apps-presentation.d.ts +10 -0
  28. package/dist/utils/apps-presentation.d.ts.map +1 -1
  29. package/dist/utils/apps-presentation.js +27 -0
  30. package/dist/utils/apps-presentation.js.map +1 -1
  31. package/dist/utils/args.d.ts.map +1 -1
  32. package/dist/utils/args.js +8 -1
  33. package/dist/utils/args.js.map +1 -1
  34. package/dist/utils/assets.d.ts +48 -1
  35. package/dist/utils/assets.d.ts.map +1 -1
  36. package/dist/utils/assets.js +185 -7
  37. package/dist/utils/assets.js.map +1 -1
  38. package/dist/utils/auth.d.ts +9 -2
  39. package/dist/utils/auth.d.ts.map +1 -1
  40. package/dist/utils/auth.js +51 -11
  41. package/dist/utils/auth.js.map +1 -1
  42. package/dist/utils/context.d.ts.map +1 -1
  43. package/dist/utils/context.js +2 -0
  44. package/dist/utils/context.js.map +1 -1
  45. package/dist/utils/deploy-follow.d.ts +4 -3
  46. package/dist/utils/deploy-follow.d.ts.map +1 -1
  47. package/dist/utils/deploy-follow.js +76 -17
  48. package/dist/utils/deploy-follow.js.map +1 -1
  49. package/dist/utils/detect.d.ts +49 -1
  50. package/dist/utils/detect.d.ts.map +1 -1
  51. package/dist/utils/detect.js +153 -12
  52. package/dist/utils/detect.js.map +1 -1
  53. package/dist/utils/ensure-auth.d.ts.map +1 -1
  54. package/dist/utils/ensure-auth.js +6 -2
  55. package/dist/utils/ensure-auth.js.map +1 -1
  56. package/dist/utils/package-metadata.js +1 -1
  57. package/dist/utils/project-context.d.ts +17 -0
  58. package/dist/utils/project-context.d.ts.map +1 -0
  59. package/dist/utils/project-context.js +94 -0
  60. package/dist/utils/project-context.js.map +1 -0
  61. package/package.json +10 -7
  62. package/skill/SKILL.md +7 -0
package/dist/utils/api.js CHANGED
@@ -1,4 +1,5 @@
1
- import { createClient, createRemoteFunction as sdkCreateRemoteFunction, deployRemoteFunction as sdkDeployRemoteFunction, invokeRemote as sdkInvokeRemote, listRemoteFunctions as sdkListRemoteFunctions, listRemoteInvocations as sdkListRemoteInvocations, resolveRemoteFunction as sdkResolveRemoteFunction, updateRemoteFunction as sdkUpdateRemoteFunction, queueDeploy as sdkQueueDeploy, getDeployStatus as sdkGetDeployStatus, listFunctionDeploys as sdkListFunctionDeploys, rollbackDeploy as sdkRollbackDeploy, streamDeployLogs as sdkStreamDeployLogs, deleteRemoteFunction as sdkDeleteRemoteFunction, getMe as sdkGetMe, listWorkspaces as sdkListWorkspaces, listApplications as sdkListApplications, getApplication as sdkGetApplication, createApplication as sdkCreateApplication, archiveApplication as sdkArchiveApplication, createRelease as sdkCreateRelease, getRelease as sdkGetRelease, promoteRelease as sdkPromoteRelease, rollbackApplication as sdkRollbackApplication, stopRelease as sdkStopRelease, execInRelease as sdkExecInRelease, streamReleaseLogs as sdkStreamReleaseLogs, addApplicationDomain as sdkAddApplicationDomain, verifyApplicationDomain as sdkVerifyApplicationDomain, listApplicationDomains as sdkListApplicationDomains, removeApplicationDomain as sdkRemoveApplicationDomain, updateApplication as sdkUpdateApplication, queueBuild as sdkQueueBuild, getBuild as sdkGetBuild, listBuilds as sdkListBuilds, cancelBuild as sdkCancelBuild, streamBuildLogs as sdkStreamBuildLogs, } from '../sdk.js';
1
+ import { createClient, createRemoteFunction as sdkCreateRemoteFunction, deployRemoteFunction as sdkDeployRemoteFunction, invokeRemote as sdkInvokeRemote, listRemoteFunctions as sdkListRemoteFunctions, listRemoteInvocations as sdkListRemoteInvocations, resolveRemoteFunction as sdkResolveRemoteFunction, updateRemoteFunction as sdkUpdateRemoteFunction, queueDeploy as sdkQueueDeploy, getDeployStatus as sdkGetDeployStatus, listFunctionDeploys as sdkListFunctionDeploys, rollbackDeploy as sdkRollbackDeploy, streamDeployLogs as sdkStreamDeployLogs, deleteRemoteFunction as sdkDeleteRemoteFunction, getMe as sdkGetMe, listWorkspaces as sdkListWorkspaces, listApplications as sdkListApplications, getApplication as sdkGetApplication, getAppLimits as sdkGetAppLimits, createApplication as sdkCreateApplication, listAppBackups as sdkListAppBackups, getAppBackup as sdkGetAppBackup, createAppBackup as sdkCreateAppBackup, deleteAppBackup as sdkDeleteAppBackup, restoreAppBackup as sdkRestoreAppBackup, getAppConnectionUrl as sdkGetAppConnectionUrl, connectApps as sdkConnectApps, archiveApplication as sdkArchiveApplication, createRelease as sdkCreateRelease, redeployApplication as sdkRedeployApplication, getRelease as sdkGetRelease, promoteRelease as sdkPromoteRelease, rollbackApplication as sdkRollbackApplication, stopRelease as sdkStopRelease, execInApplication as sdkExecInApplication, streamReleaseLogs as sdkStreamReleaseLogs, addApplicationDomain as sdkAddApplicationDomain, verifyApplicationDomain as sdkVerifyApplicationDomain, listApplicationDomains as sdkListApplicationDomains, removeApplicationDomain as sdkRemoveApplicationDomain, updateApplication as sdkUpdateApplication, wakeApplication as sdkWakeApplication, pauseApplication as sdkPauseApplication, queueBuild as sdkQueueBuild, getBuild as sdkGetBuild, listBuilds as sdkListBuilds, cancelBuild as sdkCancelBuild, streamBuildLogs as sdkStreamBuildLogs, } from '../sdk.js';
2
+ import { addProjectResource as sdkAddProjectResource, createProject as sdkCreateProject, getProject as sdkGetProject, listProjects as sdkListProjects, } from '../sdk.js';
2
3
  import { resolveAuthConfig } from './auth.js';
3
4
  import { authRequiredError, CliError, ExitCode } from './errors.js';
4
5
  import { registerSecret } from './redact.js';
@@ -58,8 +59,15 @@ export async function deleteRemoteFunction(functionId, options = {}) {
58
59
  export async function queueDeploy(input, options = {}) {
59
60
  return sdkQueueDeploy(await createApiClient(options), input);
60
61
  }
61
- export async function getDeployStatus(deployId, options = {}) {
62
- return sdkGetDeployStatus(await createApiClient(options), deployId);
62
+ export async function getDeployStatus(deployId, options = {}, signal) {
63
+ const client = await createApiClient(options);
64
+ signal?.throwIfAborted();
65
+ // The SDK status helper has no per-request signal parameter. Bind the
66
+ // signal to this request's client without changing credentials or scope.
67
+ return sdkGetDeployStatus(signal ? {
68
+ ...client,
69
+ fetchImpl: (input, init) => client.fetchImpl(input, { ...init, signal }),
70
+ } : client, deployId);
63
71
  }
64
72
  export async function listFunctionDeploys(functionId, listOptions = {}, options = {}) {
65
73
  return sdkListFunctionDeploys(await createApiClient(options), functionId, listOptions);
@@ -69,6 +77,7 @@ export async function rollbackDeploy(functionId, deployId, rollbackOptions = {},
69
77
  }
70
78
  export async function* streamDeployLogs(deployId, options = {}, signal) {
71
79
  const client = await createApiClient(options);
80
+ signal?.throwIfAborted();
72
81
  yield* sdkStreamDeployLogs(client, deployId, signal);
73
82
  }
74
83
  export async function getMe(options = {}) {
@@ -81,6 +90,18 @@ export async function listWorkspaces(options = {}) {
81
90
  // leaving no in-CLI way to recover.
82
91
  return sdkListWorkspaces(await createApiClient({ ...options, ignoreStoredWorkspace: true }));
83
92
  }
93
+ export async function listProjects(listOptions = {}, options = {}) {
94
+ return sdkListProjects(await createApiClient(options), listOptions);
95
+ }
96
+ export async function getProject(project, options = {}) {
97
+ return sdkGetProject(await createApiClient(options), project);
98
+ }
99
+ export async function createProject(input, options = {}) {
100
+ return sdkCreateProject(await createApiClient(options), input);
101
+ }
102
+ export async function addProjectResource(project, resource, options = {}) {
103
+ return sdkAddProjectResource(await createApiClient(options), project, resource);
104
+ }
84
105
  // --- App runtime plane (long-lived container services) --------------------
85
106
  export async function listApplications(listOptions = {}, options = {}) {
86
107
  return sdkListApplications(await createApiClient(options), listOptions);
@@ -91,6 +112,36 @@ export async function getApplication(applicationId, options = {}) {
91
112
  export async function createApplication(input, options = {}) {
92
113
  return sdkCreateApplication(await createApiClient(options), input);
93
114
  }
115
+ // Installation-wide constants (suffixes, ranges, defaults). Nothing on an
116
+ // application carries the apps suffix, so composing its permanent address
117
+ // needs this.
118
+ export async function getAppLimits(options = {}) {
119
+ return sdkGetAppLimits(await createApiClient(options));
120
+ }
121
+ export async function listAppBackups(applicationId, listOptions = {}, options = {}) {
122
+ return sdkListAppBackups(await createApiClient(options), applicationId, listOptions);
123
+ }
124
+ export async function getAppBackup(applicationId, backupId, options = {}) {
125
+ return sdkGetAppBackup(await createApiClient(options), applicationId, backupId);
126
+ }
127
+ export async function createAppBackup(applicationId, options = {}) {
128
+ return sdkCreateAppBackup(await createApiClient(options), applicationId);
129
+ }
130
+ export async function deleteAppBackup(applicationId, backupId, options = {}) {
131
+ return sdkDeleteAppBackup(await createApiClient(options), applicationId, backupId);
132
+ }
133
+ export async function restoreAppBackup(applicationId, backupId, options = {}) {
134
+ return sdkRestoreAppBackup(await createApiClient(options), applicationId, backupId);
135
+ }
136
+ export async function getAppConnectionUrl(applicationId, options = {}) {
137
+ return sdkGetAppConnectionUrl(await createApiClient(options), applicationId);
138
+ }
139
+ export async function connectApps(applicationId, target, options = {}) {
140
+ const { overwrite, ...apiOptions } = options;
141
+ return sdkConnectApps(await createApiClient(apiOptions), applicationId, target, {
142
+ ...(overwrite ? { overwrite } : {}),
143
+ });
144
+ }
94
145
  export async function archiveApplication(applicationId, options = {}) {
95
146
  return sdkArchiveApplication(await createApiClient(options), applicationId);
96
147
  }
@@ -124,6 +175,10 @@ export async function resolveApplication(identifier, options = {}) {
124
175
  export async function createRelease(applicationId, input, options = {}) {
125
176
  return sdkCreateRelease(await createApiClient(options), applicationId, input);
126
177
  }
178
+ /** What production runs now, released again and promoted when healthy. */
179
+ export async function redeployApplication(applicationId, input = {}, options = {}) {
180
+ return sdkRedeployApplication(await createApiClient(options), applicationId, input);
181
+ }
127
182
  export async function getRelease(releaseId, options = {}) {
128
183
  return sdkGetRelease(await createApiClient(options), releaseId);
129
184
  }
@@ -133,6 +188,12 @@ export async function promoteRelease(releaseId, options = {}) {
133
188
  export async function updateApplication(applicationId, patch, options = {}) {
134
189
  return sdkUpdateApplication(await createApiClient(options), applicationId, patch);
135
190
  }
191
+ export async function wakeApplication(applicationId, options = {}) {
192
+ return sdkWakeApplication(await createApiClient(options), applicationId);
193
+ }
194
+ export async function pauseApplication(applicationId, options = {}) {
195
+ return sdkPauseApplication(await createApiClient(options), applicationId);
196
+ }
136
197
  export async function queueBuild(applicationId, input, options = {}) {
137
198
  return sdkQueueBuild(await createApiClient(options), applicationId, input);
138
199
  }
@@ -155,8 +216,8 @@ export async function rollbackApplication(applicationId, options = {}) {
155
216
  export async function stopRelease(releaseId, options = {}) {
156
217
  return sdkStopRelease(await createApiClient(options), releaseId);
157
218
  }
158
- export async function execInRelease(releaseId, command, timeoutMs, options = {}) {
159
- return sdkExecInRelease(await createApiClient(options), releaseId, command, timeoutMs);
219
+ export async function execInApplication(applicationId, command, timeoutMs, options = {}) {
220
+ return sdkExecInApplication(await createApiClient(options), applicationId, command, timeoutMs);
160
221
  }
161
222
  export async function* streamReleaseLogs(releaseId, streamOptions = {}, options = {}, signal) {
162
223
  const client = await createApiClient(options);
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,YAAY,EACZ,oBAAoB,IAAI,uBAAuB,EAC/C,oBAAoB,IAAI,uBAAuB,EAC/C,YAAY,IAAI,eAAe,EAC/B,mBAAmB,IAAI,sBAAsB,EAC7C,qBAAqB,IAAI,wBAAwB,EACjD,qBAAqB,IAAI,wBAAwB,EACjD,oBAAoB,IAAI,uBAAuB,EAC/C,WAAW,IAAI,cAAc,EAC7B,eAAe,IAAI,kBAAkB,EACrC,mBAAmB,IAAI,sBAAsB,EAC7C,cAAc,IAAI,iBAAiB,EACnC,gBAAgB,IAAI,mBAAmB,EACvC,oBAAoB,IAAI,uBAAuB,EAC/C,KAAK,IAAI,QAAQ,EACjB,cAAc,IAAI,iBAAiB,EACnC,gBAAgB,IAAI,mBAAmB,EACvC,cAAc,IAAI,iBAAiB,EACnC,iBAAiB,IAAI,oBAAoB,EACzC,kBAAkB,IAAI,qBAAqB,EAC3C,aAAa,IAAI,gBAAgB,EACjC,UAAU,IAAI,aAAa,EAC3B,cAAc,IAAI,iBAAiB,EACnC,mBAAmB,IAAI,sBAAsB,EAC7C,WAAW,IAAI,cAAc,EAC7B,aAAa,IAAI,gBAAgB,EACjC,iBAAiB,IAAI,oBAAoB,EACzC,oBAAoB,IAAI,uBAAuB,EAC/C,uBAAuB,IAAI,0BAA0B,EACrD,sBAAsB,IAAI,yBAAyB,EACnD,uBAAuB,IAAI,0BAA0B,EACrD,iBAAiB,IAAI,oBAAoB,EACzC,UAAU,IAAI,aAAa,EAC3B,QAAQ,IAAI,WAAW,EACvB,UAAU,IAAI,aAAa,EAC3B,WAAW,IAAI,cAAc,EAC7B,eAAe,IAAI,kBAAkB,GAiCtC,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAwB7C,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,UAA6B,EAAE;IAC/D,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAClD,IAAI,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACxC,MAAM,iBAAiB,EAAE,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,UAA6B,EAAE;IACnE,MAAM,QAAQ,GAAG,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAClD,+EAA+E;IAC/E,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,IAAI,QAAQ,CAAC,MAAM,CAAC;IACrD,cAAc,CAAC,UAAU,CAAC,CAAC;IAC3B,8EAA8E;IAC9E,0EAA0E;IAC1E,2EAA2E;IAC3E,MAAM,eAAe,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC;IACzF,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC1F,OAAO,YAAY,CAAC;QAClB,OAAO,EAAE,QAAQ,CAAC,MAAM;QACxB,MAAM,EAAE,UAAU;QAClB,WAAW;KACZ,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,UAA6B,EAAE;IACvE,OAAO,sBAAsB,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,UAAkB,EAAE,UAA6B,EAAE;IAC7F,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,MAAM,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;IACjE,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,WAAW,CAAC;IACrB,CAAC;IACD,OAAO,wBAAwB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,UAAkB,EAAE,OAAgB,EAAE,UAA6B,EAAE;IACtG,OAAO,eAAe,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;AAC9E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,KAAgC,EAAE,UAA6B,EAAE;IAC1G,OAAO,uBAAuB,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,UAAkB,EAAE,KAAgC,EAAE,UAA6B,EAAE;IAC9H,OAAO,uBAAuB,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,UAAkB,EAAE,gBAA6C,EAAE,EAAE,UAA6B,EAAE;IAC7I,OAAO,uBAAuB,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;AAC5F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,UAAkB,EAAE,cAAmD,EAAE,EAAE,UAA6B,EAAE;IACpJ,OAAO,wBAAwB,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AAC3F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CAAC,UAAkB,EAAE,UAA6B,EAAE;IAC5F,OAAO,uBAAuB,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAuB,EAAE,UAA6B,EAAE;IACxF,OAAO,cAAc,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,QAAgB,EAAE,UAA6B,EAAE;IACrF,OAAO,kBAAkB,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,UAAkB,EAAE,cAAmD,EAAE,EAAE,UAA6B,EAAE;IAClJ,OAAO,sBAAsB,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;AACzF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAAkB,EAAE,QAAgB,EAAE,kBAAyC,EAAE,EAAE,UAA6B,EAAE;IACrJ,OAAO,iBAAiB,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC;AAClG,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,gBAAgB,CAAC,QAAgB,EAAE,UAA6B,EAAE,EAAE,MAAoB;IAC7G,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,CAAC,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,KAAK,CAAC,UAA6B,EAAE;IACzD,OAAO,QAAQ,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAA6B,EAAE;IAClE,6EAA6E;IAC7E,yEAAyE;IACzE,2EAA2E;IAC3E,oCAAoC;IACpC,OAAO,iBAAiB,CAAC,MAAM,eAAe,CAAC,EAAE,GAAG,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC/F,CAAC;AAED,6EAA6E;AAE7E,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,cAAmD,EAAE,EACrD,UAA6B,EAAE;IAE/B,OAAO,mBAAmB,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,aAAqB,EACrB,UAA6B,EAAE;IAE/B,OAAO,iBAAiB,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC;AAC1E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,KAA6B,EAC7B,UAA6B,EAAE;IAE/B,OAAO,oBAAoB,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;AACrE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,aAAqB,EACrB,UAA6B,EAAE;IAE/B,OAAO,qBAAqB,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC;AAC9E,CAAC;AAED,iGAAiG;AACjG,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,UAAkB,EAClB,UAA6B,EAAE;IAE/B,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,IAAI,MAA0B,CAAC;IAC/B,GAAG,CAAC;QACF,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;QACvE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,UAAU,CAAC,CAAC;QAC/D,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC;QACpE,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC;IACxC,CAAC,QAAQ,MAAM,EAAE;IACjB,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;IAC1C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,MAAM,IAAI,QAAQ,CAAC,gCAAgC,UAAU,2BAA2B,EAAE;YACxF,IAAI,EAAE,uBAAuB;YAC7B,QAAQ,EAAE,QAAQ,CAAC,KAAK;SACzB,CAAC,CAAC;IACL,CAAC;IACD,MAAM,IAAI,QAAQ,CAAC,gBAAgB,UAAU,aAAa,EAAE;QAC1D,IAAI,EAAE,uBAAuB;QAC7B,QAAQ,EAAE,QAAQ,CAAC,KAAK;QACxB,GAAG,EAAE,qCAAqC;KAC3C,CAAC,CAAC;AACL,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,aAAqB,EACrB,KAAyB,EACzB,UAA6B,EAAE;IAE/B,OAAO,gBAAgB,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,SAAiB,EACjB,UAA6B,EAAE;IAE/B,OAAO,aAAa,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;AAClE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAAiB,EACjB,UAA6B,EAAE;IAE/B,OAAO,iBAAiB,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,aAAqB,EACrB,KAAsC,EACtC,UAA6B,EAAE;IAE/B,OAAO,oBAAoB,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AACpF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,aAAqB,EACrB,KAAsB,EACtB,UAA6B,EAAE;IAE/B,OAAO,aAAa,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,KAAK,CAAC,CAAC;AAC7E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,OAAe,EAAE,UAA6B,EAAE;IAC7E,OAAO,WAAW,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,aAAqB,EACrB,UAA6B,EAAE;IAE/B,OAAO,aAAa,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,OAAe,EACf,UAA6B,EAAE;IAE/B,OAAO,cAAc,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,eAAe,CACpC,OAAe,EACf,UAA6B,EAAE,EAC/B,MAAoB;IAEpB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,aAAqB,EACrB,UAA6B,EAAE;IAE/B,OAAO,sBAAsB,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,SAAiB,EACjB,UAA6B,EAAE;IAE/B,OAAO,cAAc,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,SAAiB,EACjB,OAAe,EACf,SAA6B,EAC7B,UAA6B,EAAE;IAE/B,OAAO,gBAAgB,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;AACzF,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,iBAAiB,CACtC,SAAiB,EACjB,gBAAmC,EAAE,EACrC,UAA6B,EAAE,EAC/B,MAAoB;IAEpB,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC;IAC9C,KAAK,CAAC,CAAC,oBAAoB,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,GAAG,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC;AAC/E,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,aAAqB,EACrB,QAAgB,EAChB,UAA6B,EAAE;IAE/B,OAAO,uBAAuB,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;AAC1F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,aAAqB,EACrB,QAAgB,EAChB,UAA6B,EAAE;IAE/B,OAAO,0BAA0B,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;AAC7F,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,aAAqB,EACrB,UAA6B,EAAE;IAE/B,OAAO,yBAAyB,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC;AAClF,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,aAAqB,EACrB,QAAgB,EAChB,UAA6B,EAAE;IAE/B,OAAO,0BAA0B,CAAC,MAAM,eAAe,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,QAAQ,CAAC,CAAC;AAC7F,CAAC"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/utils/api.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,16 @@ export declare function failureHint(reason: string | undefined): string | undefi
20
20
  export declare function presentRelease(release: Pick<Release, 'status' | 'kind' | 'failureReason'>): ReleasePresentation;
21
21
  /** "37s", "2m 05s" */
22
22
  export declare function formatElapsed(ms: number): string;
23
+ /** Human sizes: a backup column exists to be compared at a glance. */
24
+ export declare function formatBytes(bytes: number | string | null | undefined): string;
23
25
  /** Rewrite the two permission failures the API produces into what the user must do. */
24
26
  export declare function humanizeApiError(message: string): string;
27
+ /**
28
+ * The app's permanent address, `{slug}.{apps suffix}`. It is minted once at
29
+ * creation and a rename never moves it, so it is what a CNAME should target —
30
+ * and it exists before anything is promoted and for an app with no route at
31
+ * all. Undefined when the server sends no slug (older build) or publishes no
32
+ * apps suffix, since then there is no address to promise.
33
+ */
34
+ export declare function permanentAddress(slug: string | undefined, appsPublicSuffix: string | undefined): string | undefined;
25
35
  //# sourceMappingURL=apps-presentation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apps-presentation.d.ts","sourceRoot":"","sources":["../../src/utils/apps-presentation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,UAAU,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAaD,mEAAmE;AACnE,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAkB1E;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM,GAAG,eAAe,CAAC,GAAG,mBAAmB,CAa/G;AAED,sBAAsB;AACtB,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQxD"}
1
+ {"version":3,"file":"apps-presentation.d.ts","sourceRoot":"","sources":["../../src/utils/apps-presentation.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,UAAU,CAAC;AAEvD,MAAM,WAAW,mBAAmB;IAClC,8CAA8C;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,uEAAuE;IACvE,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAcD,mEAAmE;AACnE,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAkB1E;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,GAAG,MAAM,GAAG,eAAe,CAAC,GAAG,mBAAmB,CAa/G;AAED,sBAAsB;AACtB,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED,sEAAsE;AACtE,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAW7E;AAED,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAQxD;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,GAAG,SAAS,EACxB,gBAAgB,EAAE,MAAM,GAAG,SAAS,GACnC,MAAM,GAAG,SAAS,CAGpB"}
@@ -10,6 +10,7 @@ const LABELS = {
10
10
  HEALTHCHECK: { label: 'health check', meaning: 'waiting for the service to answer', inFlight: true },
11
11
  READY: { label: 'healthy', meaning: 'passed its health check, not routed', inFlight: false },
12
12
  ACTIVE: { label: 'serving', meaning: 'serving traffic', inFlight: false },
13
+ SUSPENDING: { label: 'pausing', meaning: 'draining active traffic before stopping', inFlight: true },
13
14
  DRAINING: { label: 'rollback reserve', meaning: 'kept running for instant rollback', inFlight: false },
14
15
  STOPPED: { label: 'stopped', meaning: 'stopped', inFlight: false },
15
16
  FAILED: { label: 'failed', meaning: 'did not become healthy', inFlight: false },
@@ -58,6 +59,20 @@ export function formatElapsed(ms) {
58
59
  const s = total % 60;
59
60
  return `${m}m ${String(s).padStart(2, '0')}s`;
60
61
  }
62
+ /** Human sizes: a backup column exists to be compared at a glance. */
63
+ export function formatBytes(bytes) {
64
+ const n = typeof bytes === 'string' ? Number(bytes) : bytes;
65
+ if (n == null || !Number.isFinite(n))
66
+ return '-';
67
+ const units = ['B', 'KB', 'MB', 'GB', 'TB'];
68
+ let value = n;
69
+ let unit = 0;
70
+ while (value >= 1024 && unit < units.length - 1) {
71
+ value /= 1024;
72
+ unit += 1;
73
+ }
74
+ return `${value >= 10 || unit === 0 ? Math.round(value) : value.toFixed(1)} ${units[unit]}`;
75
+ }
61
76
  /** Rewrite the two permission failures the API produces into what the user must do. */
62
77
  export function humanizeApiError(message) {
63
78
  if (/requires a user identity/i.test(message)) {
@@ -68,4 +83,16 @@ export function humanizeApiError(message) {
68
83
  }
69
84
  return message;
70
85
  }
86
+ /**
87
+ * The app's permanent address, `{slug}.{apps suffix}`. It is minted once at
88
+ * creation and a rename never moves it, so it is what a CNAME should target —
89
+ * and it exists before anything is promoted and for an app with no route at
90
+ * all. Undefined when the server sends no slug (older build) or publishes no
91
+ * apps suffix, since then there is no address to promise.
92
+ */
93
+ export function permanentAddress(slug, appsPublicSuffix) {
94
+ if (!slug || !appsPublicSuffix)
95
+ return undefined;
96
+ return `${slug}.${appsPublicSuffix}`;
97
+ }
71
98
  //# sourceMappingURL=apps-presentation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"apps-presentation.js","sourceRoot":"","sources":["../../src/utils/apps-presentation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"apps-presentation.js","sourceRoot":"","sources":["../../src/utils/apps-presentation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/utils/args.ts"],"names":[],"mappings":"AA6BA,UAAU,oBAAoB;IAC5B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAeD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAe9E;AAED,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAmBpE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAKvD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAEpD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAEtE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAEpE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAEjE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAEhE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAWtE;AAmDD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAElE;AAED,oFAAoF;AACpF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CA+BvF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,oBAAyB,GAAG,MAAM,EAAE,CAE/F"}
1
+ {"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/utils/args.ts"],"names":[],"mappings":"AA8BA,UAAU,oBAAoB;IAC5B,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAeD,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAE7D;AAED,4FAA4F;AAC5F,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAe9E;AAED,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAmBpE;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,CAKvD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAEpD;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAQtE;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAEpE;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAEjE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAEhE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAWtE;AAmDD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS,CAElE;AAED,oFAAoF;AACpF,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CA+BvF;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,oBAAyB,GAAG,MAAM,EAAE,CAE/F"}
@@ -1,4 +1,5 @@
1
1
  import path from 'node:path';
2
+ import { usageError } from './errors.js';
2
3
  /**
3
4
  * Hand-rolled but robust argument helpers. Supports:
4
5
  * - global flags placed anywhere (before or after the command)
@@ -87,7 +88,13 @@ export function readJsonFlag(args) {
87
88
  return hasFlag(args, '--json');
88
89
  }
89
90
  export function readEnvironmentFlag(args) {
90
- return readFlagValue(args, '--env');
91
+ const terminator = args.indexOf('--');
92
+ const flags = terminator < 0 ? args : args.slice(0, terminator);
93
+ const value = readFlagValue(flags, '--env');
94
+ if (hasFlag(flags, '--env') && !value?.trim()) {
95
+ throw usageError('Missing credential environment name', 'inquir config show --env <name>');
96
+ }
97
+ return value;
91
98
  }
92
99
  export function readWorkspaceFlag(args) {
93
100
  return readFlagValue(args, '--workspace');
@@ -1 +1 @@
1
- {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/utils/args.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/utils/args.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,60 @@ import { CliError } from './errors.js';
3
3
  /**
4
4
  * A friendly, actionable error for a local asset that could not be resolved.
5
5
  * Treated as a usage error (exit 2) — the user typed a name that doesn't match
6
- * (or that fails to compile) — with a hint to list what's available.
6
+ * (or that fails to compile, or that matches several assets) — with a hint to
7
+ * list what's available.
7
8
  */
8
9
  export declare function assetNotFoundError(identifier: string, explanation: string): CliError;
10
+ /** The fields a caller may type to address a local asset, in resolution order. */
11
+ declare const IDENTIFIER_FIELDS: readonly ["name", "localPath", "exportName"];
12
+ type IdentifierField = (typeof IDENTIFIER_FIELDS)[number];
13
+ export type AssetMatch = {
14
+ kind: 'found';
15
+ asset: AssetEntry;
16
+ } | {
17
+ kind: 'ambiguous';
18
+ field: IdentifierField;
19
+ matches: AssetEntry[];
20
+ } | {
21
+ kind: 'none';
22
+ };
23
+ /**
24
+ * Match `identifier` against one field at a time — `name`, then `localPath`,
25
+ * then `exportName` — and report a tie instead of breaking it.
26
+ *
27
+ * Each field is searched on its own so that an export called `invoice` in one
28
+ * file can no longer outrank the asset actually *named* `invoice` in another —
29
+ * the old single `find()` merged all three namespaces and let discovery order
30
+ * decide. Within a field a tie is left unresolved: discoverAssets keeps every
31
+ * same-named asset and only *reports* the clash, as a DUPLICATE_NAME diagnostic
32
+ * that `inquir list` and `inquir codegen` print but the deploy/run lookup never
33
+ * reads. Refusing here is what stops `inquir deploy invoice` silently shipping
34
+ * whichever file sorted first.
35
+ *
36
+ * Names are compared across kinds on purpose, so a function and a pipeline that
37
+ * share a name are a tie as well and `inquir deploy <name>` / `inquir run <name>`
38
+ * now refuse where discoverAssets' leading `kind.localeCompare` sort used to hand
39
+ * the function over silently. That is the same clash discoverAssets already
40
+ * reports: it groups DUPLICATE_NAME by name alone, without looking at kind.
41
+ */
42
+ export declare function resolveAsset(assets: AssetEntry[], identifier: string): AssetMatch;
43
+ /**
44
+ * The asset addressed by `identifier`, or undefined when nothing matches *or*
45
+ * when several assets do. Callers that want to tell those two apart (and to tell
46
+ * the user which assets collided) should use resolveAsset or findAssetOrExplain.
47
+ *
48
+ * What this does not fix: refusing the ambiguous *lookup* does not make two
49
+ * same-named assets deployable. deployAsset takes `name` and `linkedLocalName`
50
+ * from the asset itself, so addressing either one by its unique file path still
51
+ * deploys it onto the single remote function of that name, and the second deploy
52
+ * overwrites the first. Giving the duplicates distinct defineFunction names is
53
+ * the only cure, which is why the ambiguity explanation asks for it.
54
+ */
9
55
  export declare function findAsset(assets: AssetEntry[], identifier: string): AssetEntry | undefined;
10
56
  export declare function findAssetOrExplain(registry: AssetRegistry, identifier: string): {
11
57
  asset: AssetEntry;
12
58
  } | {
13
59
  error: string;
14
60
  };
61
+ export {};
15
62
  //# sourceMappingURL=assets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/utils/assets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAY,MAAM,aAAa,CAAC;AAEjD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,QAAQ,CAcpF;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAM1F;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,MAAM,GACjB;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAgB3C"}
1
+ {"version":3,"file":"assets.d.ts","sourceRoot":"","sources":["../../src/utils/assets.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAY,MAAM,aAAa,CAAC;AAajD;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,QAAQ,CA6BpF;AAED,kFAAkF;AAClF,QAAA,MAAM,iBAAiB,8CAA+C,CAAC;AACvE,KAAK,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAkB1D,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,UAAU,EAAE,CAAA;CAAE,GACpE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAErB;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,CAOjF;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAG1F;AA8GD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,aAAa,EACvB,UAAU,EAAE,MAAM,GACjB;IAAE,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,CAmB3C"}
@@ -1,10 +1,35 @@
1
1
  import { CliError, ExitCode } from './errors.js';
2
+ /**
3
+ * Opening words of the explanation findAssetOrExplain builds for an identifier
4
+ * that matches more than one asset, so assetNotFoundError can recognise its own
5
+ * message. The two have to agree through a plain string because the callers in
6
+ * between (deploy.ts, run.ts) forward only `{ error }`; keeping the prefix in one
7
+ * constant is what stops the producer and the detector drifting apart. It sits at
8
+ * position 0 and both other explanations start with `Asset `, so no asset name,
9
+ * path or export can spoof it.
10
+ */
11
+ const AMBIGUOUS_PREFIX = 'Ambiguous asset ';
2
12
  /**
3
13
  * A friendly, actionable error for a local asset that could not be resolved.
4
14
  * Treated as a usage error (exit 2) — the user typed a name that doesn't match
5
- * (or that fails to compile) — with a hint to list what's available.
15
+ * (or that fails to compile, or that matches several assets) — with a hint to
16
+ * list what's available.
6
17
  */
7
18
  export function assetNotFoundError(identifier, explanation) {
19
+ if (explanation.startsWith(AMBIGUOUS_PREFIX)) {
20
+ // The way out is spelled out per collision in `explanation`, because that is
21
+ // the only free-text field `--json` renders (renderError drops fix/command).
22
+ return new CliError(`Asset "${identifier}" is ambiguous`, {
23
+ code: 'ASSET_AMBIGUOUS',
24
+ exitCode: ExitCode.USAGE,
25
+ explanation,
26
+ // Deliberately vaguer than "one of the values listed": when every colliding
27
+ // asset is reachable only through a value that is itself ambiguous, the
28
+ // explanation lists no value at all and asks for the rename instead.
29
+ fix: 'Use one of the values named in the explanation above, or rename the colliding asset.',
30
+ command: 'inquir list',
31
+ });
32
+ }
8
33
  const isImportFailure = explanation.includes('failed to import');
9
34
  return new CliError(isImportFailure ? `Asset "${identifier}" failed to load` : `Asset "${identifier}" not found`, {
10
35
  code: isImportFailure ? 'ASSET_IMPORT_FAILED' : 'ASSET_NOT_FOUND',
@@ -16,15 +41,168 @@ export function assetNotFoundError(identifier, explanation) {
16
41
  command: 'inquir list',
17
42
  });
18
43
  }
44
+ /** The fields a caller may type to address a local asset, in resolution order. */
45
+ const IDENTIFIER_FIELDS = ['name', 'localPath', 'exportName'];
46
+ /** How each field is named to the user, so an offered value says what it is. */
47
+ const FIELD_LABEL = {
48
+ name: 'asset name',
49
+ localPath: 'file path',
50
+ exportName: 'export name',
51
+ };
52
+ /**
53
+ * The only advice that always terminates: once the duplicates carry distinct
54
+ * names the `name` tier resolves each of them on its own. Phrased for any number
55
+ * of duplicates — renaming *one* of three same-named assets still leaves a tie —
56
+ * and it names both defining calls, because a name tie is compared across kinds,
57
+ * so the duplicate to rename can be a definePipeline.
58
+ */
59
+ const RENAME_CURE = 'give the duplicates distinct defineFunction/definePipeline names';
60
+ /**
61
+ * Match `identifier` against one field at a time — `name`, then `localPath`,
62
+ * then `exportName` — and report a tie instead of breaking it.
63
+ *
64
+ * Each field is searched on its own so that an export called `invoice` in one
65
+ * file can no longer outrank the asset actually *named* `invoice` in another —
66
+ * the old single `find()` merged all three namespaces and let discovery order
67
+ * decide. Within a field a tie is left unresolved: discoverAssets keeps every
68
+ * same-named asset and only *reports* the clash, as a DUPLICATE_NAME diagnostic
69
+ * that `inquir list` and `inquir codegen` print but the deploy/run lookup never
70
+ * reads. Refusing here is what stops `inquir deploy invoice` silently shipping
71
+ * whichever file sorted first.
72
+ *
73
+ * Names are compared across kinds on purpose, so a function and a pipeline that
74
+ * share a name are a tie as well and `inquir deploy <name>` / `inquir run <name>`
75
+ * now refuse where discoverAssets' leading `kind.localeCompare` sort used to hand
76
+ * the function over silently. That is the same clash discoverAssets already
77
+ * reports: it groups DUPLICATE_NAME by name alone, without looking at kind.
78
+ */
79
+ export function resolveAsset(assets, identifier) {
80
+ for (const field of IDENTIFIER_FIELDS) {
81
+ const matches = assets.filter((asset) => asset[field] === identifier);
82
+ if (matches.length === 1)
83
+ return { kind: 'found', asset: matches[0] };
84
+ if (matches.length > 1)
85
+ return { kind: 'ambiguous', field, matches };
86
+ }
87
+ return { kind: 'none' };
88
+ }
89
+ /**
90
+ * The asset addressed by `identifier`, or undefined when nothing matches *or*
91
+ * when several assets do. Callers that want to tell those two apart (and to tell
92
+ * the user which assets collided) should use resolveAsset or findAssetOrExplain.
93
+ *
94
+ * What this does not fix: refusing the ambiguous *lookup* does not make two
95
+ * same-named assets deployable. deployAsset takes `name` and `linkedLocalName`
96
+ * from the asset itself, so addressing either one by its unique file path still
97
+ * deploys it onto the single remote function of that name, and the second deploy
98
+ * overwrites the first. Giving the duplicates distinct defineFunction names is
99
+ * the only cure, which is why the ambiguity explanation asks for it.
100
+ */
19
101
  export function findAsset(assets, identifier) {
20
- return assets.find((asset) => asset.name === identifier
21
- || asset.exportName === identifier
22
- || asset.localPath === identifier);
102
+ const match = resolveAsset(assets, identifier);
103
+ return match.kind === 'found' ? match.asset : undefined;
104
+ }
105
+ /**
106
+ * A value that addresses exactly `asset` and nothing else, or undefined when
107
+ * neither of the two remaining fields does.
108
+ *
109
+ * The candidate is checked with resolveAsset over the *whole* discovered set and
110
+ * has to land back on this very asset. Uniqueness inside the colliding subset is
111
+ * not enough: with two assets named `invoice`, one of them in a file that also
112
+ * exports `refund`, that file path is unique among the two `invoice` rows yet
113
+ * ambiguous overall, so offering it would bounce the caller into a second
114
+ * refusal that points back at the name they started from.
115
+ *
116
+ * Candidates are tried in IDENTIFIER_FIELDS order, so a file path is preferred
117
+ * over an export name when both address the asset. That order is a preference and
118
+ * nothing more: a candidate is stolen by an *earlier* tier, never a later one — an
119
+ * export name `v2` loses to an asset actually named `v2` — and it is the
120
+ * round-trip above, not the order, that rules such a value out.
121
+ */
122
+ function addressableValue(assets, asset, collided) {
123
+ for (const field of IDENTIFIER_FIELDS) {
124
+ if (field === collided)
125
+ continue;
126
+ const candidate = asset[field];
127
+ const match = resolveAsset(assets, candidate);
128
+ if (match.kind === 'found' && match.asset === asset)
129
+ return { value: candidate, field };
130
+ }
131
+ return undefined;
132
+ }
133
+ /**
134
+ * Name the way out in terms of the field the caller actually typed.
135
+ *
136
+ * Every value printed as an alternative has been verified with addressableValue
137
+ * against the full asset list, so typing it ends the search instead of raising
138
+ * the next ambiguity. A colliding asset that no single value reaches is reported
139
+ * rather than offered.
140
+ *
141
+ * Where RENAME_CURE appears is not uniform, because the rename is not always the
142
+ * cure. The name branch always ends in it: a path addresses one of the duplicates
143
+ * for this lookup but leaves the names tied, and when two of the tied assets are
144
+ * functions they also share one remote function on deploy. The path and export
145
+ * branches print it only when some match is unreachable, which happens only
146
+ * because that match's asset name is shared with a further asset — a file that
147
+ * merely exports two well-named assets needs no rename, and its advice already
148
+ * terminates.
149
+ */
150
+ function describeAmbiguity(assets, identifier, field, matches) {
151
+ const offers = matches
152
+ .map((asset) => addressableValue(assets, asset, field))
153
+ .filter((offer) => offer !== undefined);
154
+ const advice = offers.length > 0
155
+ ? `Pass one of these values in place of the ${FIELD_LABEL[field]} to address a single asset: `
156
+ + `${offers.map((offer) => `"${offer.value}" (${FIELD_LABEL[offer.field]})`).join(', ')}.`
157
+ : 'No single value addresses any one of them.';
158
+ const unreachable = matches.length - offers.length;
159
+ // Counting the unreachable matches is only worth a sentence when some other
160
+ // match *was* offered; with no offer at all `advice` has already said it, and
161
+ // repeating the same fact as a count reads like a second, different problem.
162
+ const partial = offers.length > 0 && unreachable > 0;
163
+ if (field === 'name') {
164
+ const owners = matches.map((asset) => `${asset.localPath} (export ${asset.exportName})`);
165
+ const shortfall = partial
166
+ ? ` ${unreachable} of the ${matches.length} cannot be addressed by any single value.`
167
+ : '';
168
+ // A name tie is compared across kinds, but deployAsset refuses every kind
169
+ // except `function`, so only two or more *functions* can overwrite each other
170
+ // on the remote side. With a pipeline in the tie the rename is still the cure
171
+ // for the lookup, and claiming an overwrite that deploy would refuse outright
172
+ // would be inventing a consequence.
173
+ const cure = matches.filter((asset) => asset.kind === 'function').length > 1
174
+ ? `Deploy takes the remote function name from the asset either way, so each of them deploys onto the one remote function "${identifier}" — ${RENAME_CURE}.`
175
+ : `The only lasting fix is to ${RENAME_CURE}.`;
176
+ return `${AMBIGUOUS_PREFIX}"${identifier}": ${matches.length} local assets are named "${identifier}": ${owners.join(', ')}. `
177
+ + `${advice}${shortfall} ${cure}`;
178
+ }
179
+ // Only the two fields other than the collided one are ever offered, so an
180
+ // unreachable match is exactly one whose *both* remaining fields are shared;
181
+ // each branch spells out which two, and the rename un-shares the asset name.
182
+ const shortfall = (reason) => {
183
+ if (unreachable === 0)
184
+ return '';
185
+ const lead = partial
186
+ ? `${unreachable} of the ${matches.length} cannot be addressed by any single value, because`
187
+ : 'That is because';
188
+ return ` ${lead} ${reason} — ${RENAME_CURE}.`;
189
+ };
190
+ if (field === 'localPath') {
191
+ const owners = matches.map((asset) => `${asset.name} (export ${asset.exportName})`);
192
+ return `${AMBIGUOUS_PREFIX}"${identifier}": that file exports ${matches.length} assets: ${owners.join(', ')}. `
193
+ + `${advice}${shortfall('their asset name and their export name are each shared with a further asset')}`;
194
+ }
195
+ const owners = matches.map((asset) => `${asset.name} in ${asset.localPath}`);
196
+ return `${AMBIGUOUS_PREFIX}"${identifier}": ${matches.length} assets use "${identifier}" as their export name: ${owners.join(', ')}. `
197
+ + `${advice}${shortfall('their asset name is shared with a further asset and their file exports more than one')}`;
23
198
  }
24
199
  export function findAssetOrExplain(registry, identifier) {
25
- const asset = findAsset(registry.assets, identifier);
26
- if (asset)
27
- return { asset };
200
+ const match = resolveAsset(registry.assets, identifier);
201
+ if (match.kind === 'found')
202
+ return { asset: match.asset };
203
+ if (match.kind === 'ambiguous') {
204
+ return { error: describeAmbiguity(registry.assets, identifier, match.field, match.matches) };
205
+ }
28
206
  // Check if any IMPORT_FAILED diagnostic mentions a path containing the identifier
29
207
  const relatedDiag = registry.diagnostics.find((d) => d.code === 'IMPORT_FAILED' && d.filePath && d.filePath.includes(identifier));
30
208
  if (relatedDiag) {
@@ -1 +1 @@
1
- {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/utils/assets.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEjD;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,UAAkB,EAAE,WAAmB;IACxE,MAAM,eAAe,GAAG,WAAW,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;IACjE,OAAO,IAAI,QAAQ,CACjB,eAAe,CAAC,CAAC,CAAC,UAAU,UAAU,kBAAkB,CAAC,CAAC,CAAC,UAAU,UAAU,aAAa,EAC5F;QACE,IAAI,EAAE,eAAe,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,iBAAiB;QACjE,QAAQ,EAAE,QAAQ,CAAC,KAAK;QACxB,WAAW,EAAE,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;QACtD,GAAG,EAAE,eAAe;YAClB,CAAC,CAAC,iDAAiD;YACnD,CAAC,CAAC,uCAAuC;QAC3C,OAAO,EAAE,aAAa;KACvB,CACF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,MAAoB,EAAE,UAAkB;IAChE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAC3B,KAAK,CAAC,IAAI,KAAK,UAAU;WACtB,KAAK,CAAC,UAAU,KAAK,UAAU;WAC/B,KAAK,CAAC,SAAS,KAAK,UAAU,CAClC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,QAAuB,EACvB,UAAkB;IAElB,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrD,IAAI,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAE5B,kFAAkF;IAClF,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC,IAAI,CAC3C,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,eAAe,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CACnF,CAAC;IAEF,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO;YACL,KAAK,EAAE,UAAU,UAAU,uBAAuB,WAAW,CAAC,OAAO,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;SACnI,CAAC;IACJ,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,oBAAoB,UAAU,EAAE,EAAE,CAAC;AACrD,CAAC"}
1
+ {"version":3,"file":"assets.js","sourceRoot":"","sources":["../../src/utils/assets.ts"],"names":[],"mappings":"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"}