@substrat-run/cli 0.38.2 → 0.40.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 (54) hide show
  1. package/dist/cli.js +24 -7
  2. package/dist/cli.js.map +1 -1
  3. package/dist/hostnames.d.ts +2 -21
  4. package/dist/hostnames.d.ts.map +1 -1
  5. package/dist/hostnames.js +30 -38
  6. package/dist/hostnames.js.map +1 -1
  7. package/dist/http.d.ts +8 -19
  8. package/dist/http.d.ts.map +1 -1
  9. package/dist/http.js +8 -29
  10. package/dist/http.js.map +1 -1
  11. package/dist/installs.d.ts.map +1 -1
  12. package/dist/installs.js +3 -12
  13. package/dist/installs.js.map +1 -1
  14. package/dist/listing.d.ts.map +1 -1
  15. package/dist/listing.js +3 -20
  16. package/dist/listing.js.map +1 -1
  17. package/dist/login.d.ts +5 -0
  18. package/dist/login.d.ts.map +1 -1
  19. package/dist/login.js +9 -12
  20. package/dist/login.js.map +1 -1
  21. package/dist/plane.d.ts +50 -0
  22. package/dist/plane.d.ts.map +1 -0
  23. package/dist/plane.js +68 -0
  24. package/dist/plane.js.map +1 -0
  25. package/dist/preview.d.ts.map +1 -1
  26. package/dist/preview.js +20 -10
  27. package/dist/preview.js.map +1 -1
  28. package/dist/problem.d.ts +7 -2
  29. package/dist/problem.d.ts.map +1 -1
  30. package/dist/problem.js +8 -10
  31. package/dist/problem.js.map +1 -1
  32. package/dist/promote.d.ts +3 -31
  33. package/dist/promote.d.ts.map +1 -1
  34. package/dist/promote.js +25 -27
  35. package/dist/promote.js.map +1 -1
  36. package/dist/push.d.ts +115 -0
  37. package/dist/push.d.ts.map +1 -1
  38. package/dist/push.js +209 -29
  39. package/dist/push.js.map +1 -1
  40. package/dist/schedule-sweeper.d.ts +52 -0
  41. package/dist/schedule-sweeper.d.ts.map +1 -0
  42. package/dist/schedule-sweeper.js +270 -0
  43. package/dist/schedule-sweeper.js.map +1 -0
  44. package/dist/scope.d.ts.map +1 -1
  45. package/dist/scope.js +37 -99
  46. package/dist/scope.js.map +1 -1
  47. package/dist/versions.d.ts.map +1 -1
  48. package/dist/versions.js +8 -18
  49. package/dist/versions.js.map +1 -1
  50. package/dist/whoami.d.ts +7 -11
  51. package/dist/whoami.d.ts.map +1 -1
  52. package/dist/whoami.js +2 -13
  53. package/dist/whoami.js.map +1 -1
  54. package/package.json +5 -3
package/dist/versions.js CHANGED
@@ -1,15 +1,5 @@
1
- /**
2
- * `substrat versions <slug>` — list a vertical's versions and which channels point at
3
- * them. Read-only builder visibility: the first slice of letting a builder see the
4
- * verticals they pushed without the staff console. It calls the existing registry
5
- * endpoints (`/verticals/:slug/versions`, `/channels`); today those are staff-gated, so
6
- * this works for staff now and for builders once builder-scoped authz lands.
7
- */
8
1
  import { listVerticalHostnames } from './hostnames.js';
9
- import { readAllEntries } from './http.js';
10
- import { getJson } from './problem.js';
11
- /** Walk a paged list route to the end (the CLI wants the whole list, not a screenful). */
12
- const getAll = (url, header) => readAllEntries(url, (pageUrl) => getJson(pageUrl, header));
2
+ import { planeFor, walkAll } from './plane.js';
13
3
  /**
14
4
  * Resolve the registry identity `versions <slug>` should read (#399): the exact slug
15
5
  * when it has versions, else — with exactly the tail-tolerance `hostnames` already
@@ -20,17 +10,17 @@ const getAll = (url, header) => readAllEntries(url, (pageUrl) => getJson(pageUrl
20
10
  * `versions acme-substrat` printed the (wrong, alarming) lineage-fork hint. Returns
21
11
  * which slug was read and a note when it differs from what was asked.
22
12
  */
23
- async function resolveVersionsSlug(base, header, slug) {
24
- const exact = await getAll(`${base}/verticals/${encodeURIComponent(slug)}/versions`, header);
13
+ async function resolveVersionsSlug(client, slug) {
14
+ const exact = await walkAll((page) => client.listVersions(slug, page));
25
15
  if (exact.length > 0)
26
16
  return { slug, versions: exact };
27
17
  // The registry list is visibility-scoped server-side (staff: all; builder: own), so a
28
18
  // tail match never reveals a foreign tenant's registration the caller couldn't read.
29
- const registry = await getAll(`${base}/verticals`, header).catch(() => []);
19
+ const registry = await walkAll((page) => client.listVerticals(page)).catch(() => []);
30
20
  const candidates = registry.filter((v) => v.slug !== slug && v.slug.endsWith(`/${slug}`));
31
21
  const withVersions = [];
32
22
  for (const c of candidates) {
33
- const versions = await getAll(`${base}/verticals/${encodeURIComponent(c.slug)}/versions`, header).catch(() => []);
23
+ const versions = await walkAll((page) => client.listVersions(c.slug, page)).catch(() => []);
34
24
  if (versions.length > 0)
35
25
  withVersions.push({ slug: c.slug, versions });
36
26
  }
@@ -52,8 +42,8 @@ export async function printVersions(controlPlaneUrl, header, slug,
52
42
  // bound hostnames but zero versions is the tell that pushes landed under a DIFFERENT
53
43
  // slug. Absent (no --tenant) ⇒ the cross-check is skipped and the hint stays generic.
54
44
  tenantId) {
55
- const base = controlPlaneUrl.replace(/\/$/, '');
56
- const resolved = await resolveVersionsSlug(base, header, slug);
45
+ const client = planeFor(controlPlaneUrl, header);
46
+ const resolved = await resolveVersionsSlug(client, slug);
57
47
  if (resolved.note)
58
48
  console.log(resolved.note);
59
49
  if (resolved.ambiguous) {
@@ -63,7 +53,7 @@ tenantId) {
63
53
  }
64
54
  const { versions } = resolved;
65
55
  // Channels are best-effort — a vertical with none registered still lists its versions.
66
- const channels = await getAll(`${base}/verticals/${encodeURIComponent(resolved.slug)}/channels`, header).catch(() => []);
56
+ const channels = await walkAll((page) => client.listChannels(resolved.slug, page)).catch(() => []);
67
57
  if (versions.length === 0) {
68
58
  // Distinguish "no versions" from the #399 lineage fork: if installs (hostnames) are
69
59
  // bound to this slug yet nothing was pushed under it, the versions live under another
@@ -1 +1 @@
1
- {"version":3,"file":"versions.js","sourceRoot":"","sources":["../src/versions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"versions.js","sourceRoot":"","sources":["../src/versions.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC;AACvD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;;;;;;GASG;AACH,KAAK,UAAU,mBAAmB,CAChC,MAAiC,EACjC,IAAY;IAEZ,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IACvE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IACvD,sFAAsF;IACtF,qFAAqF;IACrF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAA6B,CAAC,CAAC;IAChH,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC;IAC1F,MAAM,YAAY,GAAiD,EAAE,CAAC;IACtE,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAe,CAAC,CAAC;QACzG,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,YAAY,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;IACzE,CAAC;IACD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC9B,MAAM,GAAG,GAAG,YAAY,CAAC,CAAC,CAAE,CAAC;QAC7B,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,IAAI,EAAE,YAAY,GAAG,CAAC,IAAI,+CAA+C,IAAI,4CAA4C;SAC1H,CAAC;IACJ,CAAC;IACD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;IAC5E,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;AAChC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,eAAuB,EACvB,MAA8B,EAC9B,IAAY;AACZ,uFAAuF;AACvF,qFAAqF;AACrF,sFAAsF;AACtF,QAAiB;IAEjB,MAAM,MAAM,GAAG,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACzD,IAAI,QAAQ,CAAC,IAAI;QAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC9C,IAAI,QAAQ,CAAC,SAAS,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,CACT,qCAAqC,IAAI,wEAAwE;YAC/G,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,uBAAuB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CACvE,CAAC;QACF,OAAO;IACT,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;IAC9B,uFAAuF;IACvF,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,EAAe,CAAC,CAAC;IAEhH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,oFAAoF;QACpF,sFAAsF;QACtF,yFAAyF;QACzF,uEAAuE;QACvE,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,YAAY,GAAa,EAAE,CAAC;QAChC,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,IAAI,GAAG,MAAM,qBAAqB,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,KAAK,CACrF,GAAG,EAAE,CAAC,EAA6C,CACpD,CAAC;YACF,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC;YACvB,8EAA8E;YAC9E,6EAA6E;YAC7E,YAAY,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC;QAC7G,CAAC;QACD,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACjB,OAAO,CAAC,GAAG,CACT,qCAAqC,IAAI,UAAU,QAAQ,8BAA8B;gBACvF,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,uBAAuB,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;gBACnG,oFAAoF;gBACpF,kHAAkH;gBAClH,mFAAmF,CACtF,CAAC;QACJ,CAAC;aAAM,IAAI,QAAQ,EAAE,CAAC;YACpB,OAAO,CAAC,GAAG,CAAC,oBAAoB,IAAI,6EAA6E,CAAC,CAAC;QACrH,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CACT,oBAAoB,IAAI,qCAAqC;gBAC3D,4FAA4F,CAC/F,CAAC;QACJ,CAAC;QACD,OAAO;IACT,CAAC;IAED,oFAAoF;IACpF,uFAAuF;IACvF,uFAAuF;IACvF,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,IAAI,EAAE,gBAAgB,IAAI,IAAI,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC;IAEvE,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC9C,MAAM,GAAG,GAAG,CAAC,SAAiB,EAAE,KAAa,EAAE,EAAE;QAC/C,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjB,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,IAAI,CAAC,CAAC,OAAO,KAAK,MAAM,IAAI,OAAO,EAAE,CAAC;YACpC,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC,qCAAqC;YACzE,IAAI,OAAO;gBAAE,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,+BAA+B;QAC7E,CAAC;aAAM,CAAC;YACN,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAED,0EAA0E;IAC1E,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC;SACvB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAE5F,MAAM,OAAO,GAAG,CAAC,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAClG,MAAM,GAAG,GAAG,CAAC,KAAe,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1F,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC;IAC1B,KAAK,MAAM,CAAC,IAAI,IAAI;QAAE,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1C,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CACT,qBAAqB,IAAK,CAAC,SAAS,6DAA6D;YAC/F,sBAAsB,OAAO,0CAA0C,CAC1E,CAAC;IACJ,CAAC;AACH,CAAC"}
package/dist/whoami.d.ts CHANGED
@@ -1,13 +1,9 @@
1
- export interface Whoami {
2
- user: {
3
- id: string;
4
- email?: string;
5
- } | null;
6
- tenants: {
7
- id: string;
8
- slug: string;
9
- name: string;
10
- }[];
11
- }
1
+ /**
2
+ * `GET /auth/whoami` — the signed-in user + the tenants they can build for
3
+ * (builder-plane.md §5). `substrat login` calls it to store a default tenant (and to
4
+ * prompt when a user belongs to several); a bare `whoami` command prints it.
5
+ */
6
+ import type { Whoami } from '@substrat-run/control-plane-client';
7
+ export type { Whoami };
12
8
  export declare function fetchWhoami(controlPlaneUrl: string, header: Record<string, string>): Promise<Whoami>;
13
9
  //# sourceMappingURL=whoami.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../src/whoami.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5C,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACvD;AAED,wBAAsB,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAQ1G"}
1
+ {"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../src/whoami.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAGjE,YAAY,EAAE,MAAM,EAAE,CAAC;AAEvB,wBAAsB,WAAW,CAAC,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAK1G"}
package/dist/whoami.js CHANGED
@@ -1,16 +1,5 @@
1
- /**
2
- * `GET /auth/whoami` — the signed-in user + the tenants they can build for
3
- * (builder-plane.md §5). `substrat login` calls it to store a default tenant (and to
4
- * prompt when a user belongs to several); a bare `whoami` command prints it.
5
- */
6
- import { readJson } from './http.js';
1
+ import { bodyOrStatus, planeFor, viaPlane } from './plane.js';
7
2
  export async function fetchWhoami(controlPlaneUrl, header) {
8
- const base = controlPlaneUrl.replace(/\/$/, '');
9
- const url = `${base}/auth/whoami`;
10
- const res = await fetch(url, { headers: header });
11
- if (!res.ok) {
12
- throw new Error(`whoami failed (${res.status}): ${(await res.text().catch(() => res.statusText)).slice(0, 200)}`);
13
- }
14
- return readJson(res, url);
3
+ return viaPlane(() => planeFor(controlPlaneUrl, header).whoami(), (e) => new Error(`whoami failed (${e.status}): ${bodyOrStatus(e).slice(0, 200)}`));
15
4
  }
16
5
  //# sourceMappingURL=whoami.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../src/whoami.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAOrC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,eAAuB,EAAE,MAA8B;IACvF,MAAM,IAAI,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,GAAG,GAAG,GAAG,IAAI,cAAc,CAAC;IAClC,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;IAClD,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,MAAM,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;IACpH,CAAC;IACD,OAAO,QAAQ,CAAS,GAAG,EAAE,GAAG,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../src/whoami.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI9D,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,eAAuB,EAAE,MAA8B;IACvF,OAAO,QAAQ,CACb,GAAG,EAAE,CAAC,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC,MAAM,EAAE,EAChD,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC,MAAM,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAClF,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@substrat-run/cli",
3
- "version": "0.38.2",
3
+ "version": "0.40.0",
4
4
  "description": "The substrat CLI — authenticated deploy tooling: push a vertical to the platform, manage its versions and channels",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -28,10 +28,12 @@
28
28
  "node": ">=20"
29
29
  },
30
30
  "dependencies": {
31
+ "@babel/parser": "^7.29.7",
31
32
  "esbuild": "^0.28.2",
32
33
  "@substrat-run/boundary-lint": "^0.6.1",
33
- "@substrat-run/model-view": "^0.2.38",
34
- "@substrat-run/contracts": "^0.134.0"
34
+ "@substrat-run/contracts": "^0.136.0",
35
+ "@substrat-run/model-view": "^0.2.40",
36
+ "@substrat-run/control-plane-client": "^0.1.1"
35
37
  },
36
38
  "devDependencies": {
37
39
  "@types/node": "^22.20.4",