@hs-x/cli 0.2.1 → 0.2.3
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.
- package/dist/account-store.d.ts.map +1 -1
- package/dist/account-store.js +9 -1
- package/dist/account-store.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +5 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cloudflare-oauth.d.ts.map +1 -1
- package/dist/cloudflare-oauth.js +1 -1
- package/dist/cloudflare-oauth.js.map +1 -1
- package/dist/commands/account.d.ts.map +1 -1
- package/dist/commands/account.js +3 -0
- package/dist/commands/account.js.map +1 -1
- package/dist/commands/connect.d.ts.map +1 -1
- package/dist/commands/connect.js +67 -3
- package/dist/commands/connect.js.map +1 -1
- package/dist/commands/deploy.d.ts +4 -0
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +153 -5
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/dev.d.ts +2 -0
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +150 -2
- package/dist/commands/dev.js.map +1 -1
- package/dist/commands/help-command.d.ts.map +1 -1
- package/dist/commands/help-command.js +11 -4
- package/dist/commands/help-command.js.map +1 -1
- package/dist/commands/init.d.ts +2 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +46 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/link.d.ts +15 -0
- package/dist/commands/link.d.ts.map +1 -1
- package/dist/commands/link.js +224 -11
- package/dist/commands/link.js.map +1 -1
- package/dist/commands/migrate.d.ts +6 -0
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +242 -1
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/update.d.ts +3 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +103 -25
- package/dist/commands/update.js.map +1 -1
- package/dist/constants.d.ts +1 -1
- package/dist/constants.js +1 -1
- package/dist/dev/invoke.d.ts +32 -0
- package/dist/dev/invoke.d.ts.map +1 -1
- package/dist/dev/invoke.js +73 -1
- package/dist/dev/invoke.js.map +1 -1
- package/dist/errors-registry.d.ts.map +1 -1
- package/dist/errors-registry.js +73 -0
- package/dist/errors-registry.js.map +1 -1
- package/dist/reporter/human.d.ts.map +1 -1
- package/dist/reporter/human.js +2 -1
- package/dist/reporter/human.js.map +1 -1
- package/dist/reporter/index.d.ts +2 -0
- package/dist/reporter/index.d.ts.map +1 -1
- package/dist/reporter/index.js +1 -0
- package/dist/reporter/index.js.map +1 -1
- package/dist/reporter/types.d.ts +7 -0
- package/dist/reporter/types.d.ts.map +1 -1
- package/dist/reporter/types.js.map +1 -1
- package/dist/tenant-state.d.ts.map +1 -1
- package/dist/tenant-state.js +63 -10
- package/dist/tenant-state.js.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,KAAK,QAAQ,EAAsB,MAAM,iBAAiB,CAAC;AAWpE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAU,MAAM,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,KAAK,QAAQ,EAAsB,MAAM,iBAAiB,CAAC;AAWpE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AAqjBzC,eAAO,MAAM,OAAO;;;;;;;;;;;;;;;;;EAAsB,CAAC;AAC3C,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;EAAwB,CAAC;AAE/C,wBAAgB,YAAY,IAAI,MAAM,CAoBrC"}
|
package/dist/commands/init.js
CHANGED
|
@@ -99,6 +99,7 @@ const uiExtensionOption = Options.boolean('ui-extension').pipe(Options.withDefau
|
|
|
99
99
|
const noUiExtensionOption = Options.boolean('no-ui-extension').pipe(Options.withDefault(false));
|
|
100
100
|
const yesOption = Options.boolean('yes').pipe(Options.withAlias('y'), Options.withDefault(false));
|
|
101
101
|
const noInstallOption = Options.boolean('no-install').pipe(Options.withDefault(false));
|
|
102
|
+
const noLinkOption = Options.boolean('no-link').pipe(Options.withDefault(false));
|
|
102
103
|
const forceOption = Options.boolean('force').pipe(Options.withDefault(false));
|
|
103
104
|
/** Emit a cancelled result (interactive prompt aborted). */
|
|
104
105
|
function cancelled() {
|
|
@@ -434,6 +435,14 @@ function initBody(opts) {
|
|
|
434
435
|
if (installed)
|
|
435
436
|
yield* installStep.ok();
|
|
436
437
|
}
|
|
438
|
+
// Default-link (owner directive 2026-06-10): a logged-in init registers
|
|
439
|
+
// the CP project and writes the local binding, so the project exists in
|
|
440
|
+
// the dashboard immediately and the FIRST deploy takes the linked path.
|
|
441
|
+
// --no-link opts out; no session degrades silently to unlinked.
|
|
442
|
+
let linked;
|
|
443
|
+
if (!opts.noLink) {
|
|
444
|
+
linked = yield* Effect.promise(() => autoLinkInitProject(root));
|
|
445
|
+
}
|
|
437
446
|
const result = {
|
|
438
447
|
ok: true,
|
|
439
448
|
command: 'init',
|
|
@@ -446,6 +455,7 @@ function initBody(opts) {
|
|
|
446
455
|
auth,
|
|
447
456
|
uiExtension,
|
|
448
457
|
installed: shouldInstall,
|
|
458
|
+
...(linked ? { linked } : {}),
|
|
449
459
|
},
|
|
450
460
|
};
|
|
451
461
|
if (json) {
|
|
@@ -453,11 +463,16 @@ function initBody(opts) {
|
|
|
453
463
|
return;
|
|
454
464
|
}
|
|
455
465
|
yield* reporter.info('');
|
|
466
|
+
if (linked) {
|
|
467
|
+
yield* reporter.info(`Linked: ${linked.projectId} → ${linked.accountId} (app.hs-x.dev)`);
|
|
468
|
+
}
|
|
456
469
|
yield* reporter.info('Next steps:');
|
|
457
470
|
yield* reporter.info(` cd ${name}`);
|
|
458
471
|
if (!shouldInstall)
|
|
459
|
-
yield* reporter.info(' bun install');
|
|
460
|
-
yield* reporter.info(' hs-x
|
|
472
|
+
yield* reporter.info(' bun install install dependencies');
|
|
473
|
+
yield* reporter.info(' hs-x check validate the project');
|
|
474
|
+
yield* reporter.info(' hs-x dev run it locally');
|
|
475
|
+
yield* reporter.info(' hs-x deploy ship it');
|
|
461
476
|
yield* reporter.done('Created');
|
|
462
477
|
});
|
|
463
478
|
}
|
|
@@ -475,6 +490,7 @@ function makeInitCmd(commandName) {
|
|
|
475
490
|
noUiExtension: noUiExtensionOption,
|
|
476
491
|
yes: yesOption,
|
|
477
492
|
noInstall: noInstallOption,
|
|
493
|
+
noLink: noLinkOption,
|
|
478
494
|
force: forceOption,
|
|
479
495
|
json: jsonOption,
|
|
480
496
|
cwd: cwdOption,
|
|
@@ -508,4 +524,32 @@ Options:
|
|
|
508
524
|
--json Emit JSON result
|
|
509
525
|
`;
|
|
510
526
|
}
|
|
527
|
+
/**
|
|
528
|
+
* Default-link a fresh scaffold: when a session is active, register the CP
|
|
529
|
+
* project under the session's account and write .hs-x/project.json. Best
|
|
530
|
+
* effort by design — init must never fail because the platform is
|
|
531
|
+
* unreachable; an unlinked scaffold links later via `hs-x link`.
|
|
532
|
+
*/
|
|
533
|
+
async function autoLinkInitProject(root) {
|
|
534
|
+
try {
|
|
535
|
+
const { loadStore, activeSession } = await import('../account-store.js');
|
|
536
|
+
const store = await loadStore();
|
|
537
|
+
const session = activeSession(store);
|
|
538
|
+
const accountId = session?.accountId ?? store.defaultAccountId;
|
|
539
|
+
if (!session || !accountId)
|
|
540
|
+
return undefined;
|
|
541
|
+
const { ensureCpProject } = await import('./link.js');
|
|
542
|
+
const project = await ensureCpProject({ argv: [], root, accountId });
|
|
543
|
+
if (project.warning)
|
|
544
|
+
return undefined;
|
|
545
|
+
const { mkdir, writeFile } = await import('node:fs/promises');
|
|
546
|
+
const { join } = await import('node:path');
|
|
547
|
+
await mkdir(join(root, '.hs-x'), { recursive: true });
|
|
548
|
+
await writeFile(join(root, '.hs-x', 'project.json'), `${JSON.stringify({ accountId, projectId: project.projectId }, null, 2)}\n`);
|
|
549
|
+
return { accountId, projectId: project.projectId };
|
|
550
|
+
}
|
|
551
|
+
catch {
|
|
552
|
+
return undefined;
|
|
553
|
+
}
|
|
554
|
+
}
|
|
511
555
|
//# sourceMappingURL=init.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/link.d.ts
CHANGED
|
@@ -13,4 +13,19 @@ export declare const linkCmd: Command.Command<"link", Cwd | CloudflareAuth | Clo
|
|
|
13
13
|
readonly accountId: Option.Option<string>;
|
|
14
14
|
readonly yes: boolean;
|
|
15
15
|
}>;
|
|
16
|
+
/**
|
|
17
|
+
* Register the local project under the claimed account so it appears in the
|
|
18
|
+
* dashboard immediately (owner directive: it should be hard for a project to
|
|
19
|
+
* stay unlinked). Idempotent — an existing project is left untouched. The
|
|
20
|
+
* project id comes from the local artifact identity (manifest/hsx.config
|
|
21
|
+
* name); failures degrade to a warning, never a failed link.
|
|
22
|
+
*/
|
|
23
|
+
export declare function ensureCpProject(input: {
|
|
24
|
+
readonly argv: readonly string[];
|
|
25
|
+
readonly root: string;
|
|
26
|
+
readonly accountId: string;
|
|
27
|
+
}): Promise<{
|
|
28
|
+
readonly projectId: string;
|
|
29
|
+
readonly warning?: string;
|
|
30
|
+
}>;
|
|
16
31
|
//# sourceMappingURL=link.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/commands/link.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/commands/link.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAkB,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhD,OAAO,EAAE,QAAQ,EAAY,MAAM,iBAAiB,CAAC;AAkBrD,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,YAAY,EAA2B,MAAM,8BAA8B,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAiBtD,eAAO,MAAM,OAAO;;;;;EAInB,CAAC;AAudF;;;;;;GAMG;AACH,wBAAsB,eAAe,CAAC,KAAK,EAAE;IAC3C,QAAQ,CAAC,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACjC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,GAAG,OAAO,CAAC;IAAE,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAoCrE"}
|
package/dist/commands/link.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { readFile, writeFile } from 'node:fs/promises';
|
|
2
|
+
import { basename, join } from 'node:path';
|
|
1
3
|
import * as Command from '@effect/cli/Command';
|
|
2
4
|
import { HttpClientRequest, Schema, schemas } from '@hs-x/types';
|
|
3
5
|
import { Config, Effect, Option } from 'effect';
|
|
@@ -52,13 +54,65 @@ function linkBody(opts) {
|
|
|
52
54
|
const accountIdEnv = yield* Config.string('HSX_ACCOUNT_ID').pipe(Config.withDefault(''), Effect.orDie);
|
|
53
55
|
const accountId = Option.getOrUndefined(opts.accountId) ?? (accountIdEnv || undefined);
|
|
54
56
|
// The project must have a `.hs-x/cloudflare.json` pointer to operate on.
|
|
55
|
-
|
|
57
|
+
let pointer = yield* cloudflare.loadPointer(projectRoot);
|
|
56
58
|
if (!pointer) {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
59
|
+
// Fresh project (no deploy yet): there is no local history to claim, so
|
|
60
|
+
// link provisions the tenant state store and binds the pointer straight
|
|
61
|
+
// to the session's account — killing the deploy-before-link ordering.
|
|
62
|
+
const memberships = yield* Effect.promise(() => listSessionAccounts(opts.json ? ['--json'] : []));
|
|
63
|
+
const sessionAccountId = memberships?.[0];
|
|
64
|
+
const freshAccountId = accountId ?? sessionAccountId;
|
|
65
|
+
// Fresh provisioning requires an authenticated session — without one
|
|
66
|
+
// there is nothing to register against, so keep the classic pointer
|
|
67
|
+
// error (memberships === undefined means no session).
|
|
68
|
+
if (memberships === undefined || !freshAccountId || !memberships.includes(freshAccountId)) {
|
|
69
|
+
return yield* linkError(opts.json, reporter, {
|
|
70
|
+
code: 'HSX_E_LINK_NO_POINTER',
|
|
71
|
+
message: '`.hs-x/cloudflare.json` not found and no linked account to provision for.',
|
|
72
|
+
hint: 'Log in (`hs-x login`) so link can provision fresh, or deploy once (`hs-x deploy`) and re-run.',
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
const provisioned = yield* Effect.tryPromise({
|
|
76
|
+
try: async () => {
|
|
77
|
+
const { ensureTenantStateStore } = await import('../tenant-state.js');
|
|
78
|
+
const { pointer: freshPointer } = await ensureTenantStateStore({
|
|
79
|
+
argv: ['link'],
|
|
80
|
+
root: projectRoot,
|
|
81
|
+
});
|
|
82
|
+
const targetOwner = freshAccountId.startsWith('acct_')
|
|
83
|
+
? freshAccountId
|
|
84
|
+
: `acct_${freshAccountId}`;
|
|
85
|
+
if (freshPointer.ownerId !== targetOwner) {
|
|
86
|
+
await rewriteCloudflarePointerOwner({
|
|
87
|
+
root: projectRoot,
|
|
88
|
+
ownerId: targetOwner,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
const project = await ensureCpProject({
|
|
92
|
+
argv: [],
|
|
93
|
+
root: projectRoot,
|
|
94
|
+
accountId: freshAccountId,
|
|
95
|
+
});
|
|
96
|
+
await writeFile(join(projectRoot, '.hs-x', 'project.json'), `${JSON.stringify({ accountId: freshAccountId, projectId: project.projectId }, null, 2)}\n`);
|
|
97
|
+
return { targetOwner, projectId: project.projectId };
|
|
98
|
+
},
|
|
99
|
+
catch: (cause) => cliError('HSX_E_LINK_REQUIRED', `Fresh-link provisioning failed: ${cause instanceof Error ? cause.message : String(cause)}`),
|
|
61
100
|
});
|
|
101
|
+
if (opts.json) {
|
|
102
|
+
yield* writeJson(reporter, {
|
|
103
|
+
ok: true,
|
|
104
|
+
command: 'link',
|
|
105
|
+
mode: 'fresh',
|
|
106
|
+
accountId: freshAccountId,
|
|
107
|
+
projectId: provisioned.projectId,
|
|
108
|
+
ownerId: provisioned.targetOwner,
|
|
109
|
+
});
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
yield* reporter.info(`Provisioned tenant state for ${freshAccountId} (owner ${provisioned.targetOwner}).`);
|
|
113
|
+
yield* reporter.info(`Project: ${provisioned.projectId} → dashboard.`);
|
|
114
|
+
yield* reporter.done('Linked');
|
|
115
|
+
return;
|
|
62
116
|
}
|
|
63
117
|
if (!accountId) {
|
|
64
118
|
// Dashboard claim flow (browser handoff + poll) — stays on the legacy
|
|
@@ -72,6 +126,21 @@ function linkBody(opts) {
|
|
|
72
126
|
}
|
|
73
127
|
return;
|
|
74
128
|
}
|
|
129
|
+
// Membership preflight: an explicit account (flag or HSX_ACCOUNT_ID env)
|
|
130
|
+
// must be one the logged-in user actually belongs to. Without this, a
|
|
131
|
+
// stale env var silently steers the claim at a foreign account and the
|
|
132
|
+
// user gets an opaque 404 from the control plane (hit live, run-008).
|
|
133
|
+
const memberships = yield* Effect.promise(() => listSessionAccounts(opts.json ? ['--json'] : []));
|
|
134
|
+
if (memberships !== undefined && !memberships.includes(accountId)) {
|
|
135
|
+
const fromFlag = Option.isSome(opts.accountId);
|
|
136
|
+
return yield* linkError(opts.json, reporter, {
|
|
137
|
+
code: 'HSX_E_LINK_NOT_MEMBER',
|
|
138
|
+
message: `Your session has no membership in account \`${accountId}\`${fromFlag ? '' : ' (from HSX_ACCOUNT_ID in the environment)'}.`,
|
|
139
|
+
hint: memberships.length > 0
|
|
140
|
+
? `Accounts you belong to: ${memberships.join(', ')}. ${fromFlag ? 'Pass one of those with --account-id.' : 'Unset HSX_ACCOUNT_ID or pass --account-id.'} Running \`hs-x link\` with no account opens the dashboard claim flow.`
|
|
141
|
+
: 'Create an account in the dashboard first (app.hs-x.dev).',
|
|
142
|
+
});
|
|
143
|
+
}
|
|
75
144
|
// Already linked under the target account — idempotent no-op.
|
|
76
145
|
const targetOwnerId = accountId.startsWith('acct_') ? accountId : `acct_${accountId}`;
|
|
77
146
|
if (pointer.ownerId === targetOwnerId) {
|
|
@@ -90,11 +159,13 @@ function linkBody(opts) {
|
|
|
90
159
|
yield* reporter.done('No change');
|
|
91
160
|
return;
|
|
92
161
|
}
|
|
93
|
-
// Only `local_*` owners can be claimed via link.
|
|
162
|
+
// Only `local_*` owners can be claimed via link. Name the owning account
|
|
163
|
+
// so a re-link says WHO holds the link instead of a generic refusal.
|
|
94
164
|
if (!pointer.ownerId.startsWith('local_')) {
|
|
165
|
+
const owningAccountId = pointer.ownerId.replace(/^acct_/, '');
|
|
95
166
|
return yield* linkError(opts.json, reporter, {
|
|
96
167
|
code: 'HSX_E_LINK_NOT_CLAIMABLE',
|
|
97
|
-
message: `
|
|
168
|
+
message: `This project is already linked to HS-X account \`${owningAccountId}\` (owner ${pointer.ownerId}), not \`${accountId}\`.`,
|
|
98
169
|
hint: 'Unlink and reset the local pointer first (see `hs-x unlink`), or contact support to transfer ownership.',
|
|
99
170
|
});
|
|
100
171
|
}
|
|
@@ -293,6 +364,29 @@ function rewriteOwnerIdValue(value, from, to) {
|
|
|
293
364
|
return value;
|
|
294
365
|
}
|
|
295
366
|
// ─── Dashboard claim flow (quarantined legacy path; used by `linkBody`) ──────
|
|
367
|
+
/**
|
|
368
|
+
* Account ids the active session belongs to, or undefined when there is no
|
|
369
|
+
* session / the lookup fails (preflight degrades to the old behavior rather
|
|
370
|
+
* than blocking offline use).
|
|
371
|
+
*/
|
|
372
|
+
async function listSessionAccounts(argv) {
|
|
373
|
+
const store = await loadStore();
|
|
374
|
+
const sessionToken = activeSession(store)?.sessionToken;
|
|
375
|
+
if (!sessionToken)
|
|
376
|
+
return undefined;
|
|
377
|
+
try {
|
|
378
|
+
const response = await executeCliHttp(HttpClientRequest.get(new URL('/v1/users/me/accounts', resolveControlPlaneUrl(argv))).pipe(HttpClientRequest.setHeader('authorization', `Bearer ${sessionToken}`)));
|
|
379
|
+
if (!response.ok)
|
|
380
|
+
return undefined;
|
|
381
|
+
const body = (await response.json());
|
|
382
|
+
return (body.accounts ?? [])
|
|
383
|
+
.map((account) => account.accountId)
|
|
384
|
+
.filter((id) => typeof id === 'string');
|
|
385
|
+
}
|
|
386
|
+
catch {
|
|
387
|
+
return undefined;
|
|
388
|
+
}
|
|
389
|
+
}
|
|
296
390
|
async function postLinkNotify(input) {
|
|
297
391
|
const store = await loadStore();
|
|
298
392
|
const sessionToken = activeSession(store)?.sessionToken;
|
|
@@ -313,17 +407,113 @@ async function postLinkNotify(input) {
|
|
|
313
407
|
return error instanceof Error ? error.message : String(error);
|
|
314
408
|
}
|
|
315
409
|
}
|
|
410
|
+
/**
|
|
411
|
+
* Register the local project under the claimed account so it appears in the
|
|
412
|
+
* dashboard immediately (owner directive: it should be hard for a project to
|
|
413
|
+
* stay unlinked). Idempotent — an existing project is left untouched. The
|
|
414
|
+
* project id comes from the local artifact identity (manifest/hsx.config
|
|
415
|
+
* name); failures degrade to a warning, never a failed link.
|
|
416
|
+
*/
|
|
417
|
+
export async function ensureCpProject(input) {
|
|
418
|
+
const projectName = await readLocalProjectName(input.root);
|
|
419
|
+
const projectId = projectName
|
|
420
|
+
.toLowerCase()
|
|
421
|
+
.replace(/[^a-z0-9-]+/g, '-')
|
|
422
|
+
.replace(/^-+|-+$/g, '')
|
|
423
|
+
.slice(0, 64);
|
|
424
|
+
const store = await loadStore();
|
|
425
|
+
const sessionToken = activeSession(store)?.sessionToken;
|
|
426
|
+
if (!sessionToken)
|
|
427
|
+
return { projectId, warning: 'no bearer session' };
|
|
428
|
+
const url = new URL(`/v1/accounts/${encodeURIComponent(input.accountId)}/projects`, resolveControlPlaneUrl(input.argv));
|
|
429
|
+
try {
|
|
430
|
+
const response = await executeCliHttp(HttpClientRequest.post(url).pipe(HttpClientRequest.setHeader('authorization', `Bearer ${sessionToken}`), HttpClientRequest.bodyText(JSON.stringify({ projectId, displayName: projectName }), 'application/json')));
|
|
431
|
+
// 409/conflict means the project already exists — that's success here.
|
|
432
|
+
if (!response.ok && response.status !== 409) {
|
|
433
|
+
const body = await response.text().catch(() => '');
|
|
434
|
+
return {
|
|
435
|
+
projectId,
|
|
436
|
+
warning: `project registration returned ${response.status}${body ? `: ${body.slice(0, 160)}` : ''}`,
|
|
437
|
+
};
|
|
438
|
+
}
|
|
439
|
+
return { projectId };
|
|
440
|
+
}
|
|
441
|
+
catch (error) {
|
|
442
|
+
return { projectId, warning: error instanceof Error ? error.message : String(error) };
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
async function readLocalProjectName(root) {
|
|
446
|
+
try {
|
|
447
|
+
const manifest = JSON.parse(await readFile(join(root, '.hs-x', 'manifest.json'), 'utf8'));
|
|
448
|
+
if (manifest.project?.name)
|
|
449
|
+
return manifest.project.name;
|
|
450
|
+
}
|
|
451
|
+
catch {
|
|
452
|
+
// fall through
|
|
453
|
+
}
|
|
454
|
+
try {
|
|
455
|
+
const raw = await readFile(join(root, 'hsx.config.ts'), 'utf8');
|
|
456
|
+
const match = /name\s*:\s*["'`]([^"'`]+)["'`]/.exec(raw);
|
|
457
|
+
if (match?.[1])
|
|
458
|
+
return match[1];
|
|
459
|
+
}
|
|
460
|
+
catch {
|
|
461
|
+
// fall through
|
|
462
|
+
}
|
|
463
|
+
return basename(root);
|
|
464
|
+
}
|
|
316
465
|
async function linkViaDashboard(input) {
|
|
466
|
+
const reporter = createReporter({ command: 'link', argv: input.argv });
|
|
317
467
|
if (!input.pointer.ownerId.startsWith('local_')) {
|
|
468
|
+
// Already claimed. If it's an account this session belongs to, link acts
|
|
469
|
+
// as a RECONCILER instead of erroring: ensure the CP project record and
|
|
470
|
+
// refresh .hs-x/project.json (both can lag when the claim happened
|
|
471
|
+
// before those legs existed, or on a fresh clone of a linked project).
|
|
472
|
+
const claimedAccountId = input.pointer.ownerId.replace(/^acct_/, '');
|
|
473
|
+
const memberships = await listSessionAccounts(input.argv);
|
|
474
|
+
if (memberships?.includes(claimedAccountId)) {
|
|
475
|
+
const project = await ensureCpProject({
|
|
476
|
+
argv: input.argv,
|
|
477
|
+
root: input.root,
|
|
478
|
+
accountId: claimedAccountId,
|
|
479
|
+
});
|
|
480
|
+
try {
|
|
481
|
+
await writeFile(join(input.root, '.hs-x', 'project.json'), `${JSON.stringify({ accountId: claimedAccountId, projectId: project.projectId }, null, 2)}\n`);
|
|
482
|
+
}
|
|
483
|
+
catch {
|
|
484
|
+
// advisory
|
|
485
|
+
}
|
|
486
|
+
if (input.json) {
|
|
487
|
+
process.stdout.write(`${JSON.stringify({
|
|
488
|
+
ok: true,
|
|
489
|
+
command: 'link',
|
|
490
|
+
mode: 'reconciled',
|
|
491
|
+
accountId: claimedAccountId,
|
|
492
|
+
projectId: project.projectId,
|
|
493
|
+
ownerId: input.pointer.ownerId,
|
|
494
|
+
...(project.warning ? { projectWarning: project.warning } : {}),
|
|
495
|
+
}, null, 2)}\n`);
|
|
496
|
+
}
|
|
497
|
+
else {
|
|
498
|
+
reporter.info(`Already linked to ${claimedAccountId} (owner ${input.pointer.ownerId}).`);
|
|
499
|
+
if (project.warning) {
|
|
500
|
+
reporter.info(`Project registration: ${project.warning}`);
|
|
501
|
+
}
|
|
502
|
+
else {
|
|
503
|
+
reporter.info(`Project: ${project.projectId} → dashboard.`);
|
|
504
|
+
}
|
|
505
|
+
reporter.done('Reconciled');
|
|
506
|
+
}
|
|
507
|
+
return { exitCode: 0 };
|
|
508
|
+
}
|
|
318
509
|
return errorResult({
|
|
319
510
|
argv: input.argv,
|
|
320
511
|
json: input.json,
|
|
321
512
|
code: 'HSX_E_LINK_NOT_CLAIMABLE',
|
|
322
|
-
message: `
|
|
323
|
-
hint: '
|
|
513
|
+
message: `This project is already linked to HS-X account \`${claimedAccountId}\` (owner ${input.pointer.ownerId}), which your session does not belong to.`,
|
|
514
|
+
hint: 'Log in to that account (`hs-x login`) and re-run, or contact support to transfer ownership.',
|
|
324
515
|
});
|
|
325
516
|
}
|
|
326
|
-
const reporter = createReporter({ command: 'link', argv: input.argv });
|
|
327
517
|
const { apiToken } = resolveCloudflareCredentials(input.argv);
|
|
328
518
|
if (!apiToken) {
|
|
329
519
|
return errorResult({
|
|
@@ -351,7 +541,10 @@ async function linkViaDashboard(input) {
|
|
|
351
541
|
reporter.info(`Machine: ${machineId}`);
|
|
352
542
|
reporter.info(`Owners: ${pairing.pairing.ownerIds.join(', ')}`);
|
|
353
543
|
reporter.info(`Open: ${dashboardUrl}`);
|
|
354
|
-
|
|
544
|
+
// CI / non-TTY: never spawn a browser — the URL above is the instruction;
|
|
545
|
+
// approval can happen from any logged-in browser while we poll.
|
|
546
|
+
if (isInteractive())
|
|
547
|
+
await openInBrowser(dashboardUrl);
|
|
355
548
|
reporter.info('Waiting for dashboard approval...');
|
|
356
549
|
}
|
|
357
550
|
let approved;
|
|
@@ -415,16 +608,30 @@ async function linkViaDashboard(input) {
|
|
|
415
608
|
accountId: approved.accountId,
|
|
416
609
|
payload: notifyPayload,
|
|
417
610
|
});
|
|
611
|
+
const project = await ensureCpProject({
|
|
612
|
+
argv: input.argv,
|
|
613
|
+
root: input.root,
|
|
614
|
+
accountId: approved.accountId,
|
|
615
|
+
});
|
|
616
|
+
// Refresh the local binding so later commands act on the claimed account.
|
|
617
|
+
try {
|
|
618
|
+
await writeFile(join(input.root, '.hs-x', 'project.json'), `${JSON.stringify({ accountId: approved.accountId, projectId: project.projectId }, null, 2)}\n`);
|
|
619
|
+
}
|
|
620
|
+
catch {
|
|
621
|
+
// advisory
|
|
622
|
+
}
|
|
418
623
|
const result = {
|
|
419
624
|
ok: true,
|
|
420
625
|
command: 'link',
|
|
421
626
|
mode: 'dashboard',
|
|
422
627
|
accountId: approved.accountId,
|
|
628
|
+
projectId: project.projectId,
|
|
423
629
|
priorOwnerIds: approvedOwnerIds,
|
|
424
630
|
newOwnerId: targetOwnerId,
|
|
425
631
|
rewrittenKeyCount,
|
|
426
632
|
pairingId: approved.pairingId,
|
|
427
633
|
...(notifyError ? { notifyWarning: notifyError } : {}),
|
|
634
|
+
...(project.warning ? { projectWarning: project.warning } : {}),
|
|
428
635
|
};
|
|
429
636
|
if (input.json) {
|
|
430
637
|
process.stdout.write(`${JSON.stringify(result, null, 2)}\n`);
|
|
@@ -432,6 +639,12 @@ async function linkViaDashboard(input) {
|
|
|
432
639
|
else {
|
|
433
640
|
reporter.info(`Owner: ${approvedOwnerIds.join(', ')} → ${targetOwnerId}`);
|
|
434
641
|
reporter.info(`Rewrote ${rewrittenKeyCount} tenant KV key${rewrittenKeyCount === 1 ? '' : 's'}.`);
|
|
642
|
+
if (project.warning) {
|
|
643
|
+
reporter.info(`Project registration: ${project.warning}`);
|
|
644
|
+
}
|
|
645
|
+
else {
|
|
646
|
+
reporter.info(`Project: ${project.projectId} → dashboard.`);
|
|
647
|
+
}
|
|
435
648
|
reporter.done('Linked');
|
|
436
649
|
}
|
|
437
650
|
return { exitCode: 0 };
|