@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
@@ -0,0 +1,270 @@
1
+ /**
2
+ * Who runs a vertical's declared schedules on a hosted deploy (#1646, #1902).
3
+ *
4
+ * The only platform timer is the control plane's cron, and it iterates the schedules of the
5
+ * control plane's OWN host, which registers no modules. A pushed, control-plane-less vertical
6
+ * needs a timer of its own (`docs/architecture/scheduler.md` §3.3): a `defineScopeSweeperDO`
7
+ * singleton, exported from the worker entry and bound as a Durable Object class, whose roster
8
+ * the platform fills through `/internal/provision` → `noteScope`.
9
+ *
10
+ * Since #1902 the platform supplies that sweeper at upload to a vertical that brings none, so a
11
+ * vertical either wires its own or wires nothing. Three shapes are still wrong, and this file
12
+ * names them (`sweeperOffence`):
13
+ *
14
+ * 1. an OWN sweeper nothing binds. workerd resolves a Durable Object class from the entry's
15
+ * exports and instantiates only a bound one, so its alarm never runs (Copilot review on
16
+ * #1873 found the unexported-const variant);
17
+ * 2. no own sweeper, but the platform's names — class `SweeperDO`, binding `SWEEPER` — used
18
+ * for something else, which the control plane refuses at push;
19
+ * 3. no own sweeper, and a `@substrat-run/vertical-host` too old to register the host the
20
+ * platform's sweeper runs.
21
+ *
22
+ * Two callers share this file, and that is why it lives in a published package:
23
+ *
24
+ * - `substrat push` (`assertSchedulesAreSwept` in `push.ts`), the only check an EXTERNAL
25
+ * vertical's deploy passes through — and the reader of `sweeperClasses`, the names the
26
+ * push declares in its manifest so the control plane decides from a declaration, not the bytes;
27
+ * - this repo's `lint:schedule-sweeper` (`tools/schedule-sweeper.mts`), which imports the
28
+ * built copy the way `tools/invocation-log.mjs` imports boundary-lint's R10 predicate, so
29
+ * the two gates cannot disagree.
30
+ *
31
+ * Parsed with `@babel/parser` rather than TypeScript's compiler API: TypeScript 7 exposes no
32
+ * standalone parser (see `tools/docs-union-check.mjs`), and Babel's TypeScript plugin is what
33
+ * the repo tool already used for exactly this job.
34
+ *
35
+ * What this does NOT see: whether an own sweeper's roster is ever populated (`noteScope` from
36
+ * `onProvision`). That is runtime wiring; the platform's sweeper has none to forget.
37
+ */
38
+ import { existsSync, readFileSync, statSync } from 'node:fs';
39
+ import { dirname, resolve } from 'node:path';
40
+ import { parse } from '@babel/parser';
41
+ import { PLATFORM_SWEEPER_BINDING, PLATFORM_SWEEPER_CLASS, sweeperConflict } from '@substrat-run/contracts';
42
+ const DEFINE_SWEEPER = 'defineScopeSweeperDO';
43
+ function nameOf(node) {
44
+ return node.type === 'Identifier' ? node.name : node.value;
45
+ }
46
+ /** Is this expression a call to (an import of) `defineScopeSweeperDO`, however named? */
47
+ function isDefineSweeperCall(node, importedLocalNames) {
48
+ if (!node || node.type !== 'CallExpression')
49
+ return false;
50
+ const callee = node.callee;
51
+ if (callee.type === 'Identifier')
52
+ return importedLocalNames.has(callee.name) || callee.name === DEFINE_SWEEPER;
53
+ // A namespace-imported call (`adapter.defineScopeSweeperDO(...)`).
54
+ if (callee.type === 'MemberExpression' && !callee.computed && callee.property.type === 'Identifier') {
55
+ return callee.property.name === DEFINE_SWEEPER;
56
+ }
57
+ return false;
58
+ }
59
+ /**
60
+ * `jsx` only for a `.tsx` file: in a `.ts` file `<T>value` is a type assertion, and the JSX
61
+ * plugin would read it as an element. A `.tsx` worker with JSX does not tokenize without it.
62
+ */
63
+ function parseEntry(source, jsx = false) {
64
+ const ast = parse(source, {
65
+ sourceType: 'module',
66
+ plugins: jsx ? ['typescript', 'jsx'] : ['typescript'],
67
+ errorRecovery: true,
68
+ });
69
+ const importedLocalNames = new Set();
70
+ /** local name → where it was imported from, for `import { X } from './a'; export { X }`. */
71
+ const importedFrom = new Map();
72
+ const sweeperLocals = new Set();
73
+ const own = new Set();
74
+ const foreign = [];
75
+ for (const stmt of ast.program.body) {
76
+ if (stmt.type !== 'ImportDeclaration')
77
+ continue;
78
+ for (const spec of stmt.specifiers) {
79
+ if (spec.type !== 'ImportSpecifier')
80
+ continue;
81
+ const imported = nameOf(spec.imported);
82
+ if (imported === DEFINE_SWEEPER)
83
+ importedLocalNames.add(spec.local.name);
84
+ importedFrom.set(spec.local.name, { source: stmt.source.value, imported });
85
+ }
86
+ }
87
+ const scanDeclaration = (decl, directlyExported) => {
88
+ if (!decl)
89
+ return;
90
+ if (decl.type === 'VariableDeclaration') {
91
+ for (const d of decl.declarations) {
92
+ if (d.id.type === 'Identifier' && isDefineSweeperCall(d.init, importedLocalNames)) {
93
+ sweeperLocals.add(d.id.name);
94
+ if (directlyExported)
95
+ own.add(d.id.name);
96
+ }
97
+ }
98
+ }
99
+ else if (decl.type === 'ClassDeclaration') {
100
+ if (decl.id && isDefineSweeperCall(decl.superClass, importedLocalNames)) {
101
+ sweeperLocals.add(decl.id.name);
102
+ if (directlyExported)
103
+ own.add(decl.id.name);
104
+ }
105
+ }
106
+ };
107
+ // Declarations first, so a re-export written ABOVE the const it names still resolves.
108
+ for (const stmt of ast.program.body) {
109
+ if (stmt.type === 'VariableDeclaration' || stmt.type === 'ClassDeclaration')
110
+ scanDeclaration(stmt, false);
111
+ else if (stmt.type === 'ExportNamedDeclaration' && stmt.declaration)
112
+ scanDeclaration(stmt.declaration, true);
113
+ }
114
+ for (const stmt of ast.program.body) {
115
+ if (stmt.type === 'ExportAllDeclaration') {
116
+ // `export * as ns from` exports a namespace object, never a class workerd can bind.
117
+ if (!('exported' in stmt && stmt.exported))
118
+ foreign.push({ source: stmt.source.value, imported: '*', exported: '*' });
119
+ continue;
120
+ }
121
+ if (stmt.type !== 'ExportNamedDeclaration' || stmt.declaration)
122
+ continue;
123
+ for (const spec of stmt.specifiers) {
124
+ if (spec.type !== 'ExportSpecifier')
125
+ continue;
126
+ const local = nameOf(spec.local);
127
+ const exported = nameOf(spec.exported);
128
+ if (stmt.source) {
129
+ foreign.push({ source: stmt.source.value, imported: local, exported });
130
+ }
131
+ else if (sweeperLocals.has(local)) {
132
+ // The ALIAS is the name workerd sees, so it is the one a binding has to name.
133
+ own.add(exported);
134
+ }
135
+ else {
136
+ const from = importedFrom.get(local);
137
+ if (from)
138
+ foreign.push({ source: from.source, imported: from.imported, exported });
139
+ }
140
+ }
141
+ }
142
+ return { own: [...own], foreign };
143
+ }
144
+ /**
145
+ * Every name a worker entry's SOURCE exports that is bound to a `defineScopeSweeperDO(...)`
146
+ * call, looking at this one file only — a direct `export const X = defineScopeSweeperDO(…)`,
147
+ * an `export class X extends defineScopeSweeperDO(…) {}`, or a local declaration re-exported
148
+ * by name or alias. A call in an unexported const contributes nothing.
149
+ */
150
+ export function exportedSweeperNames(source) {
151
+ return parseEntry(source).own;
152
+ }
153
+ const SOURCE_EXTENSIONS = ['.ts', '.mts', '.tsx', '.js', '.mjs'];
154
+ /** A relative specifier as the bundler would find it on disk, or undefined. */
155
+ function resolveRelative(fromFile, specifier) {
156
+ const base = resolve(dirname(fromFile), specifier);
157
+ const stem = base.replace(/\.(?:[cm]?js|jsx)$/, '');
158
+ const candidates = [
159
+ base,
160
+ ...SOURCE_EXTENSIONS.map((ext) => stem + ext),
161
+ ...SOURCE_EXTENSIONS.map((ext) => resolve(base, `index${ext}`)),
162
+ ];
163
+ return candidates.find((c) => existsSync(c) && statSync(c).isFile());
164
+ }
165
+ /**
166
+ * {@link exportedSweeperNames}, starting at a FILE and following relative re-exports
167
+ * (`export { X } from './sweeper.js'`, `export * from './sweeper.js'`, and
168
+ * `import { X } from './sweeper.js'; export { X }`). The repo's own workers define their
169
+ * sweeper in the entry, but an external vertical is free to keep it in a module of its own,
170
+ * and a push gate that refuses that layout would be refusing a working deploy. Package
171
+ * specifiers are not followed: a sweeper class defined inside a dependency is not a shape
172
+ * anyone writes, and resolving `node_modules` is the bundler's job, not this check's.
173
+ */
174
+ export function exportedSweeperNamesOf(entryPath) {
175
+ const memo = new Map();
176
+ const visit = (file) => {
177
+ const cached = memo.get(file);
178
+ if (cached)
179
+ return cached;
180
+ memo.set(file, []); // cycle guard: a module re-exporting itself contributes nothing more
181
+ const { own, foreign } = parseEntry(readFileSync(file, 'utf8'), file.endsWith('.tsx'));
182
+ const names = new Set(own);
183
+ for (const ref of foreign) {
184
+ if (!ref.source.startsWith('.'))
185
+ continue;
186
+ const target = resolveRelative(file, ref.source);
187
+ if (!target)
188
+ continue;
189
+ const theirs = visit(target);
190
+ if (ref.imported === '*')
191
+ theirs.forEach((n) => names.add(n));
192
+ else if (theirs.includes(ref.imported))
193
+ names.add(ref.exported);
194
+ }
195
+ const result = [...names];
196
+ memo.set(file, result);
197
+ return result;
198
+ };
199
+ return visit(resolve(entryPath));
200
+ }
201
+ /**
202
+ * Can the platform supply this vertical's sweeper (#1902)? The class it supplies runs the
203
+ * vertical's own host, which the vertical's `mountPlatformSurface` registers — so it needs a
204
+ * `@substrat-run/vertical-host` new enough to register one, as installed in THIS project.
205
+ * `undefined` when the package does not resolve from `dir` at all: this check then says
206
+ * nothing rather than refusing on a layout it cannot read.
207
+ */
208
+ export function platformCanSupplySweeper(dir) {
209
+ // Walked by hand, the way Node looks for a package next to a file, and NOT with
210
+ // `createRequire`: that also searches NODE_PATH, which a package manager's bin shim points at
211
+ // its own store, so a push run through `pnpm exec` would read some other copy's answer.
212
+ for (let at = resolve(dir);; at = dirname(at)) {
213
+ const pkgDir = resolve(at, 'node_modules', '@substrat-run', 'vertical-host');
214
+ const pkgJson = resolve(pkgDir, 'package.json');
215
+ if (existsSync(pkgJson)) {
216
+ const pkg = JSON.parse(readFileSync(pkgJson, 'utf8'));
217
+ const dot = pkg.exports?.['.'];
218
+ const main = (typeof dot === 'string' ? dot : dot?.default) ?? pkg.main ?? 'index.js';
219
+ // The registry ships as its own module beside the package's entry (`scope-sweep-host.ts`).
220
+ return existsSync(resolve(dirname(resolve(pkgDir, main)), 'scope-sweep-host.js'));
221
+ }
222
+ if (dirname(at) === at)
223
+ return undefined;
224
+ }
225
+ }
226
+ /**
227
+ * The offence in one vertical, or `null` when it is fine. No schedules declared means no
228
+ * sweeper is owed, whatever the wiring looks like.
229
+ *
230
+ * Since #1902 a vertical that brings no sweeper is given the platform's at upload, so "no
231
+ * sweeper" is no longer the offence. What is: an own sweeper nothing binds (Cloudflare never
232
+ * instantiates it), the platform's names taken by something else (the control plane refuses
233
+ * the push), and a vertical-host too old to hand the platform's sweeper a host. The first two
234
+ * are contracts' `sweeperConflict`, the rule the control plane judges by too.
235
+ */
236
+ export function sweeperOffence(schedules, wiring) {
237
+ if (schedules.length === 0)
238
+ return null;
239
+ const named = schedules.map((s) => `${s.moduleId} → ${s.operation}`).join(', ');
240
+ const conflict = sweeperConflict(wiring.exportedNames, {
241
+ boundClassNames: wiring.boundClassNames,
242
+ boundBindingNames: wiring.boundBindingNames ?? [],
243
+ });
244
+ if (conflict?.kind === 'own-unbound') {
245
+ return (`exports a sweeper (${conflict.own.join(', ')}) for schedules it declares (${named}), ` +
246
+ `but no deploy config binds it as a Durable Object class — checked wrangler.jsonc's ` +
247
+ `durable_objects.bindings and package.json's substrat.runtimeNeeds.stores, and neither ` +
248
+ `names ${conflict.own.join(' or ')}. The class exists in the bundle but ` +
249
+ `Cloudflare never instantiates it, so its alarm never runs. Bind it, or delete it: the ` +
250
+ `platform supplies a sweeper to a vertical that exports none.`);
251
+ }
252
+ if (conflict) {
253
+ const taken = conflict.kind === 'binding-taken' ? `the binding '${PLATFORM_SWEEPER_BINDING}'` : `the class name '${PLATFORM_SWEEPER_CLASS}'`;
254
+ return (`declares schedules (${named}) and exports no sweeper, so the platform supplies one at upload ` +
255
+ `as class '${PLATFORM_SWEEPER_CLASS}' bound to '${PLATFORM_SWEEPER_BINDING}' — but the deploy config ` +
256
+ `already uses ${taken} for something that is not a \`defineScopeSweeperDO\` class, and the control ` +
257
+ `plane would refuse the push. If it is a sweeper you have since deleted, drop its binding — the ` +
258
+ `platform adds its own — and otherwise rename it.`);
259
+ }
260
+ if (wiring.exportedNames.length > 0)
261
+ return null;
262
+ if (wiring.platformCanSupply === false) {
263
+ return (`declares schedules (${named}) and exports no sweeper. The platform supplies one at upload, ` +
264
+ `but it runs the host your \`mountPlatformSurface\` registers, and the installed ` +
265
+ `@substrat-run/vertical-host predates that registration — the supplied sweeper would have no ` +
266
+ `host and no roster. Update @substrat-run/vertical-host.`);
267
+ }
268
+ return null;
269
+ }
270
+ //# sourceMappingURL=schedule-sweeper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schedule-sweeper.js","sourceRoot":"","sources":["../src/schedule-sweeper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAO5G,MAAM,cAAc,GAAG,sBAAsB,CAAC;AAmB9C,SAAS,MAAM,CAAC,IAAqF;IACnG,OAAO,IAAI,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7D,CAAC;AAED,yFAAyF;AACzF,SAAS,mBAAmB,CAAC,IAAmC,EAAE,kBAA+B;IAC/F,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,gBAAgB;QAAE,OAAO,KAAK,CAAC;IAC1D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;IAC3B,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,cAAc,CAAC;IAC/G,mEAAmE;IACnE,IAAI,MAAM,CAAC,IAAI,KAAK,kBAAkB,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;QACpG,OAAO,MAAM,CAAC,QAAQ,CAAC,IAAI,KAAK,cAAc,CAAC;IACjD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAkBD;;;GAGG;AACH,SAAS,UAAU,CAAC,MAAc,EAAE,GAAG,GAAG,KAAK;IAC7C,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,EAAE;QACxB,UAAU,EAAE,QAAQ;QACpB,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QACrD,aAAa,EAAE,IAAI;KACpB,CAAC,CAAC;IACH,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;IAC7C,4FAA4F;IAC5F,MAAM,YAAY,GAAG,IAAI,GAAG,EAAgD,CAAC;IAC7E,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAC;IAC9B,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,IAAI,KAAK,mBAAmB;YAAE,SAAS;QAChD,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB;gBAAE,SAAS;YAC9C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,QAAQ,KAAK,cAAc;gBAAE,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACzE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC7E,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAG,CAAC,IAAkC,EAAE,gBAAyB,EAAQ,EAAE;QAC9F,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;YACxC,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClC,IAAI,CAAC,CAAC,EAAE,CAAC,IAAI,KAAK,YAAY,IAAI,mBAAmB,CAAC,CAAC,CAAC,IAAI,EAAE,kBAAkB,CAAC,EAAE,CAAC;oBAClF,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;oBAC7B,IAAI,gBAAgB;wBAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAC3C,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAC5C,IAAI,IAAI,CAAC,EAAE,IAAI,mBAAmB,CAAC,IAAI,CAAC,UAA2C,EAAE,kBAAkB,CAAC,EAAE,CAAC;gBACzG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;gBAChC,IAAI,gBAAgB;oBAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,sFAAsF;IACtF,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,IAAI,KAAK,qBAAqB,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB;YAAE,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;aACrG,IAAI,IAAI,CAAC,IAAI,KAAK,wBAAwB,IAAI,IAAI,CAAC,WAAW;YAAE,eAAe,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC/G,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,IAAI,KAAK,sBAAsB,EAAE,CAAC;YACzC,oFAAoF;YACpF,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC;gBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;YACtH,SAAS;QACX,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,wBAAwB,IAAI,IAAI,CAAC,WAAW;YAAE,SAAS;QACzE,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB;gBAAE,SAAS;YAC9C,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACzE,CAAC;iBAAM,IAAI,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpC,8EAA8E;gBAC9E,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;gBACrC,IAAI,IAAI;oBAAE,OAAO,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,CAAC;YACrF,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,EAAE,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,OAAO,EAAE,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAAc;IACjD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC;AAChC,CAAC;AAED,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAEjE,+EAA+E;AAC/E,SAAS,eAAe,CAAC,QAAgB,EAAE,SAAiB;IAC1D,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,CAAC;IACnD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAC;IACpD,MAAM,UAAU,GAAG;QACjB,IAAI;QACJ,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,GAAG,CAAC;QAC7C,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,EAAE,CAAC,CAAC;KAChE,CAAC;IACF,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AACvE,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAC,SAAiB;IACtD,MAAM,IAAI,GAAG,IAAI,GAAG,EAAoB,CAAC;IACzC,MAAM,KAAK,GAAG,CAAC,IAAY,EAAY,EAAE;QACvC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,qEAAqE;QACzF,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QACvF,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC3B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC1C,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;YACjD,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;YAC7B,IAAI,GAAG,CAAC,QAAQ,KAAK,GAAG;gBAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBACzD,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAAE,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAClE,CAAC;QACD,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC;QAC1B,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvB,OAAO,MAAM,CAAC;IAChB,CAAC,CAAC;IACF,OAAO,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,wBAAwB,CAAC,GAAW;IAClD,gFAAgF;IAChF,8FAA8F;IAC9F,wFAAwF;IACxF,KAAK,IAAI,EAAE,GAAG,OAAO,CAAC,GAAG,CAAC,GAAI,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,EAAE,EAAE,cAAc,EAAE,eAAe,EAAE,eAAe,CAAC,CAAC;QAC7E,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAChD,IAAI,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YACxB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,CAAC,CAGnD,CAAC;YACF,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,IAAI,GAAG,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,IAAI,GAAG,CAAC,IAAI,IAAI,UAAU,CAAC;YACtF,2FAA2F;YAC3F,OAAO,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC;QACpF,CAAC;QACD,IAAI,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE;YAAE,OAAO,SAAS,CAAC;IAC3C,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiC,EAAE,MAAqB;IACrF,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACxC,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,QAAQ,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChF,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,aAAa,EAAE;QACrD,eAAe,EAAE,MAAM,CAAC,eAAe;QACvC,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,IAAI,EAAE;KAClD,CAAC,CAAC;IACH,IAAI,QAAQ,EAAE,IAAI,KAAK,aAAa,EAAE,CAAC;QACrC,OAAO,CACL,sBAAsB,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,gCAAgC,KAAK,KAAK;YACvF,qFAAqF;YACrF,wFAAwF;YACxF,SAAS,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,uCAAuC;YACzE,wFAAwF;YACxF,8DAA8D,CAC/D,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,KAAK,GACT,QAAQ,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,gBAAgB,wBAAwB,GAAG,CAAC,CAAC,CAAC,mBAAmB,sBAAsB,GAAG,CAAC;QACjI,OAAO,CACL,uBAAuB,KAAK,mEAAmE;YAC/F,aAAa,sBAAsB,eAAe,wBAAwB,4BAA4B;YACtG,gBAAgB,KAAK,+EAA+E;YACpG,iGAAiG;YACjG,kDAAkD,CACnD,CAAC;IACJ,CAAC;IACD,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACjD,IAAI,MAAM,CAAC,iBAAiB,KAAK,KAAK,EAAE,CAAC;QACvC,OAAO,CACL,uBAAuB,KAAK,iEAAiE;YAC7F,kFAAkF;YAClF,8FAA8F;YAC9F,yDAAyD,CAC1D,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"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"}
package/dist/scope.js CHANGED
@@ -16,7 +16,7 @@ import { assertReplayableDump, assertSqlIdentifier, problemDetail, scopeId, tena
16
16
  import { mkdirSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
17
17
  import { basename, join } from 'node:path';
18
18
  import { fetchWhoami } from './whoami.js';
19
- import { readJson } from './http.js';
19
+ import { planeFor, refusalBody, viaPlane } from './plane.js';
20
20
  import { orderTablesByForeignKeys } from './dump-order.js';
21
21
  import { exportBreakListing } from './promote.js';
22
22
  const ULID = /^[0-9A-HJKMNP-TV-Z]{26}$/i;
@@ -80,14 +80,7 @@ async function writeSqlite(path, dump) {
80
80
  return true;
81
81
  }
82
82
  export async function pullScope(opts) {
83
- const url = `${opts.controlPlaneUrl}/tenants/${encodeURIComponent(opts.tenantId)}` +
84
- `/scopes/${encodeURIComponent(opts.scopeId)}/export${opts.full ? '?full=true' : ''}`;
85
- const res = await fetch(url, { headers: opts.header });
86
- if (!res.ok) {
87
- const body = await res.json().catch(() => null);
88
- throw new Error(problemDetail(body) ?? `pull refused: ${res.status} ${res.statusText}`);
89
- }
90
- const dump = await readJson(res, url);
83
+ const dump = await viaPlane(() => planeFor(opts.controlPlaneUrl, opts.header).exportScope(opts.tenantId, opts.scopeId, opts.full), (e) => new Error(problemDetail(refusalBody(e)) ?? `pull refused: ${e.status} ${e.statusText}`));
91
84
  // The WHOLE rule, checked before EITHER writer, so the node-<22.13 JSON fallback
92
85
  // cannot leave a dump on disk that a later `scope restore` would then have to
93
86
  // refuse. Names alone would not do it: `writeSqlite` returns before its own check
@@ -191,20 +184,14 @@ export async function restoreScope(opts) {
191
184
  const { tables, origin, capturedAt } = await readDump(opts.file);
192
185
  const source = origin ?? { tenantId: opts.tenantId, scopeId: opts.scopeId };
193
186
  const rows = tables.reduce((n, t) => n + t.rows.length, 0);
194
- const res = await fetch(`${opts.controlPlaneUrl}/tenants/${encodeURIComponent(opts.tenantId)}` +
195
- `/scopes/${encodeURIComponent(opts.scopeId)}/restore`, {
196
- method: 'POST',
197
- headers: { ...opts.header, 'content-type': 'application/json' },
187
+ await viaPlane(() => planeFor(opts.controlPlaneUrl, opts.header).restoreScope(opts.tenantId, opts.scopeId, {
198
188
  // tenantId/scopeId in the body are PROVENANCE (where the backup came from);
199
189
  // the URL says where it lands — same rule as the host primitive.
200
- body: JSON.stringify({
201
- tenantId: source.tenantId,
202
- scopeId: source.scopeId,
203
- capturedAt: capturedAt ?? new Date().toISOString(),
204
- tables,
205
- }),
206
- });
207
- if (!res.ok) {
190
+ tenantId: source.tenantId,
191
+ scopeId: source.scopeId,
192
+ capturedAt: capturedAt ?? new Date().toISOString(),
193
+ tables,
194
+ }), (e) => {
208
195
  // The CP shapes an unloadable-dump failure as `{ error, detail }` (#321); surface the detail
209
196
  // too, or the builder sees only a generic message and can't act on it (#332).
210
197
  //
@@ -212,10 +199,10 @@ export async function restoreScope(opts) {
212
199
  // is not: here `detail` is ADDITIONAL to `error` — the loader's complaint beside the
213
200
  // refusal — where everywhere else it is the RFC 9457 duplicate OF it. Reading one in
214
201
  // place of the other would drop half of the only message that says what to fix.
215
- const body = (await res.json().catch(() => null));
216
- const base = body?.error ?? `restore refused: ${res.status} ${res.statusText}`;
217
- throw new Error(body?.detail ? `${base} — ${body.detail}` : base);
218
- }
202
+ const body = refusalBody(e);
203
+ const base = body?.error ?? `restore refused: ${e.status} ${e.statusText}`;
204
+ return new Error(body?.detail ? `${base} — ${body.detail}` : base);
205
+ });
219
206
  console.log(`✓ restored ${tables.length} tables (${rows} rows) into scope ${opts.scopeId}`);
220
207
  if (!origin) {
221
208
  console.log(' ⚠ backup origin is unknown; using the target tenant and scope as provenance.');
@@ -229,17 +216,7 @@ export async function restoreScope(opts) {
229
216
  * reports so and does nothing. Server-side is the gate (staff/owner, audited).
230
217
  */
231
218
  export async function adoptScopeServing(opts) {
232
- const res = await fetch(`${opts.controlPlaneUrl}/tenants/${encodeURIComponent(opts.tenantId)}` +
233
- `/scopes/${encodeURIComponent(opts.scopeId)}/adopt-serving`, {
234
- method: 'POST',
235
- headers: { ...opts.header, 'content-type': 'application/json' },
236
- body: JSON.stringify(ackBody(opts.ackExportBreak)),
237
- });
238
- if (!res.ok) {
239
- const body = await res.json().catch(() => null);
240
- throw new Error(refusalText(body, `adopt-serving refused: ${res.status} ${res.statusText}`));
241
- }
242
- const body = await readJson(res, res.url);
219
+ const body = await viaPlane(() => planeFor(opts.controlPlaneUrl, opts.header).adoptServing(opts.tenantId, opts.scopeId, ackBody(opts.ackExportBreak)), (e) => new Error(refusalText(refusalBody(e), `adopt-serving refused: ${e.status} ${e.statusText}`)));
243
220
  if (body.alreadyAdopted) {
244
221
  console.log(`✓ scope ${opts.scopeId} already serves from ${body.servingRef} — nothing to do.`);
245
222
  }
@@ -256,13 +233,7 @@ export async function adoptScopeServing(opts) {
256
233
  * the control plane. Idempotent: safe to re-run on an already-healthy scope.
257
234
  */
258
235
  export async function provisionScope(opts) {
259
- const res = await fetch(`${opts.controlPlaneUrl}/tenants/${encodeURIComponent(opts.tenantId)}` +
260
- `/scopes/${encodeURIComponent(opts.scopeId)}/provision`, { method: 'POST', headers: { ...opts.header, 'content-type': 'application/json' } });
261
- if (!res.ok) {
262
- const body = await res.json().catch(() => null);
263
- throw new Error(problemDetail(body) ?? `provision refused: ${res.status} ${res.statusText}`);
264
- }
265
- const body = await readJson(res, res.url);
236
+ const body = await viaPlane(() => planeFor(opts.controlPlaneUrl, opts.header).provisionScope(opts.tenantId, opts.scopeId), (e) => new Error(problemDetail(refusalBody(e)) ?? `provision refused: ${e.status} ${e.statusText}`));
266
237
  console.log(`✓ reconciled scope ${opts.scopeId} — owner ${body.owner ?? '(unknown)'} re-granted; logins restored.`);
267
238
  // #828: the reconcile is done, but a declared store did not mint. Printed rather than
268
239
  // thrown — the half that ran is real and worth keeping — and named in full, because the
@@ -281,20 +252,11 @@ export async function provisionScope(opts) {
281
252
  * required hand-rolled curl against the CP with the CLI's stored bearer.
282
253
  */
283
254
  export async function scopeStatus(opts) {
284
- const base = `${opts.controlPlaneUrl}/tenants/${encodeURIComponent(opts.tenantId)}/scopes/${encodeURIComponent(opts.scopeId)}`;
285
- const res = await fetch(base, { headers: opts.header });
286
- if (!res.ok) {
287
- const body = await res.json().catch(() => null);
288
- throw new Error(problemDetail(body) ?? `scope status refused: ${res.status} ${res.statusText}`);
289
- }
290
- const record = await readJson(res, base);
255
+ const client = planeFor(opts.controlPlaneUrl, opts.header);
256
+ const record = await viaPlane(() => client.getScope(opts.tenantId, opts.scopeId), (e) => new Error(problemDetail(refusalBody(e)) ?? `scope status refused: ${e.status} ${e.statusText}`));
291
257
  // Health is best-effort: it reaches into the vertical's own deployment, which can be
292
258
  // unreachable while the scope record itself still answers — show what we have.
293
- const health = await fetch(`${base}/health`, { headers: opts.header })
294
- .then((r) => r.ok
295
- ? readJson(r, `${base}/health`)
296
- : null)
297
- .catch(() => null);
259
+ const health = await client.getScopeHealth(opts.tenantId, opts.scopeId).catch(() => null);
298
260
  console.log(`scope ${opts.scopeId}`);
299
261
  console.log(`name ${record.name} (${record.slug})`);
300
262
  console.log(`vertical ${record.vertical ?? '—'}`);
@@ -321,7 +283,7 @@ export async function scopeStatus(opts) {
321
283
  }
322
284
  }
323
285
  /** #1756: the ack a move sends when asked, and a refusal's own words plus the apps it breaks. */
324
- const ackBody = (ackExportBreak) => (ackExportBreak ? { acknowledge: { exportBreak: true } } : {});
286
+ const ackBody = (ackExportBreak) => ackExportBreak ? { acknowledge: { exportBreak: true } } : {};
325
287
  function refusalText(body, fallback) {
326
288
  const breaks = body?.exportBreaks;
327
289
  return (problemDetail(body) ?? fallback) + (breaks ? exportBreakListing(breaks) : '');
@@ -336,23 +298,14 @@ function refusalText(body, fallback) {
336
298
  * version leaves a rollback point. A pending version is refused unless the scope is a preview.
337
299
  */
338
300
  export async function bindScopeVersion(opts) {
339
- const res = await fetch(`${opts.controlPlaneUrl}/tenants/${encodeURIComponent(opts.tenantId)}` +
340
- `/scopes/${encodeURIComponent(opts.scopeId)}/version`, {
341
- method: 'POST',
342
- headers: { ...opts.header, 'content-type': 'application/json' },
343
- body: JSON.stringify({
344
- versionId: opts.versionId,
345
- snapshot: opts.snapshot || undefined,
346
- ...ackBody(opts.ackExportBreak),
347
- }),
348
- });
349
- if (!res.ok) {
350
- // An export-break refusal (#1756) carries the apps it would break: named here, so the
351
- // acknowledgement is an informed answer rather than a flag tried to see what happens.
352
- const body = await res.json().catch(() => null);
353
- throw new Error(refusalText(body, `bind refused: ${res.status} ${res.statusText}`));
354
- }
355
- const record = await readJson(res, res.url);
301
+ const record = await viaPlane(() => planeFor(opts.controlPlaneUrl, opts.header).bindScopeVersion(opts.tenantId, opts.scopeId, {
302
+ versionId: opts.versionId,
303
+ snapshot: opts.snapshot ? true : undefined,
304
+ ...ackBody(opts.ackExportBreak),
305
+ }),
306
+ // An export-break refusal (#1756) carries the apps it would break: named here, so the
307
+ // acknowledgement is an informed answer rather than a flag tried to see what happens.
308
+ (e) => new Error(refusalText(refusalBody(e), `bind refused: ${e.status} ${e.statusText}`)));
356
309
  console.log(`✓ scope ${opts.scopeId} now runs version ${record.verticalVersionId} (${record.vertical ?? '—'}).`);
357
310
  if (opts.snapshot) {
358
311
  console.log(' a pre-migration snapshot was taken if this bind crossed a migration boundary — the rollback point.');
@@ -365,22 +318,12 @@ export async function bindScopeVersion(opts) {
365
318
  * migration digests differ, unless `--ack-migrations` says both diffs were read.
366
319
  */
367
320
  export async function rebindScopeVertical(opts) {
368
- const res = await fetch(`${opts.controlPlaneUrl}/tenants/${encodeURIComponent(opts.tenantId)}` +
369
- `/scopes/${encodeURIComponent(opts.scopeId)}/rebind-vertical`, {
370
- method: 'POST',
371
- headers: { ...opts.header, 'content-type': 'application/json' },
372
- body: JSON.stringify({
373
- vertical: opts.vertical,
374
- ackMigrations: opts.ackMigrations || undefined,
375
- abandonData: opts.abandonData || undefined,
376
- ...ackBody(opts.ackExportBreak),
377
- }),
378
- });
379
- if (!res.ok) {
380
- const body = await res.json().catch(() => null);
381
- throw new Error(refusalText(body, `rebind refused: ${res.status} ${res.statusText}`));
382
- }
383
- const body = await readJson(res, res.url);
321
+ const body = await viaPlane(() => planeFor(opts.controlPlaneUrl, opts.header).rebindScopeVertical(opts.tenantId, opts.scopeId, {
322
+ vertical: opts.vertical,
323
+ ackMigrations: opts.ackMigrations ? true : undefined,
324
+ abandonData: opts.abandonData ? true : undefined,
325
+ ...ackBody(opts.ackExportBreak),
326
+ }), (e) => new Error(refusalText(refusalBody(e), `rebind refused: ${e.status} ${e.statusText}`)));
384
327
  if (body.alreadyBound) {
385
328
  console.log(`✓ scope ${opts.scopeId} already bound to ${opts.vertical} (${body.servingRef}) — nothing to do.`);
386
329
  }
@@ -399,17 +342,12 @@ export async function rebindScopeVertical(opts) {
399
342
  * vertical in one call. The whole-install migration a promote-per-scope would be tedious for.
400
343
  */
401
344
  export async function adoptVerticalServing(opts) {
402
- const res = await fetch(`${opts.controlPlaneUrl}/verticals/${encodeURIComponent(opts.slug)}/adopt-serving`, {
403
- method: 'POST',
404
- headers: { ...opts.header, 'content-type': 'application/json' },
405
- body: JSON.stringify(ackBody(opts.ackExportBreak)),
406
- });
407
- const body = (await res.json().catch(() => null));
408
- if (!res.ok) {
345
+ const body = await viaPlane(() => planeFor(opts.controlPlaneUrl, opts.header).adoptVerticalServing(opts.slug, ackBody(opts.ackExportBreak)), (e) => {
409
346
  // A per-scope failure reports what it managed before stopping — a re-run resumes.
410
- const done = (body?.adopted?.length ?? 0) + (body?.alreadyAdopted?.length ?? 0);
411
- throw new Error(`${refusalText(body, `adopt-serving refused: ${res.status}`)}${done ? ` (adopted ${done} before stopping)` : ''}`);
412
- }
347
+ const partial = refusalBody(e);
348
+ const done = (partial?.adopted?.length ?? 0) + (partial?.alreadyAdopted?.length ?? 0);
349
+ return new Error(`${refusalText(partial, `adopt-serving refused: ${e.status}`)}${done ? ` (adopted ${done} before stopping)` : ''}`);
350
+ });
413
351
  const adopted = body?.adopted ?? [];
414
352
  const already = body?.alreadyAdopted ?? [];
415
353
  console.log(`✓ ${opts.slug}: adopted ${adopted.length} scope(s), ${already.length} already on the serving script.`);
package/dist/scope.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"scope.js","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scope.js","sourceRoot":"","sources":["../src/scope.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../src/versions.ts"],"names":[],"mappings":"AAyEA,wBAAsB,aAAa,CACjC,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,IAAI,EAAE,MAAM,EAIZ,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CA2Ff"}
1
+ {"version":3,"file":"versions.d.ts","sourceRoot":"","sources":["../src/versions.ts"],"names":[],"mappings":"AAkDA,wBAAsB,aAAa,CACjC,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,IAAI,EAAE,MAAM,EAIZ,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CAwFf"}