@forgecart/cli 2.202610101403.0 → 2.202610110611.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.
- package/dist/src/authorization/cli-unauthorized-refusal.d.ts +10 -4
- package/dist/src/authorization/cli-unauthorized-refusal.js +11 -3
- package/dist/src/authorization/cli-unauthorized-refusal.js.map +1 -1
- package/dist/src/cli.js +4 -0
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/init.js +5 -47
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/sync.d.ts +14 -0
- package/dist/src/commands/sync.js +49 -0
- package/dist/src/commands/sync.js.map +1 -0
- package/dist/src/exit-ladder.d.ts +8 -1
- package/dist/src/exit-ladder.js +7 -0
- package/dist/src/exit-ladder.js.map +1 -1
- package/dist/src/sync/sync-api.error.d.ts +15 -0
- package/dist/src/sync/sync-api.error.js +26 -0
- package/dist/src/sync/sync-api.error.js.map +1 -0
- package/dist/src/sync/sync-divergence.d.ts +43 -0
- package/dist/src/sync/sync-divergence.js +104 -0
- package/dist/src/sync/sync-divergence.js.map +1 -0
- package/dist/src/sync/sync-dotenv.file.d.ts +36 -0
- package/dist/src/sync/sync-dotenv.file.js +95 -0
- package/dist/src/sync/sync-dotenv.file.js.map +1 -0
- package/dist/src/sync/sync-env.runner.d.ts +29 -0
- package/dist/src/sync/sync-env.runner.js +95 -0
- package/dist/src/sync/sync-env.runner.js.map +1 -0
- package/dist/src/sync/sync-record.file.d.ts +28 -0
- package/dist/src/sync/sync-record.file.js +86 -0
- package/dist/src/sync/sync-record.file.js.map +1 -0
- package/dist/src/sync/sync-repository.d.ts +110 -0
- package/dist/src/sync/sync-repository.js +396 -0
- package/dist/src/sync/sync-repository.js.map +1 -0
- package/dist/src/sync/sync-round.d.ts +95 -0
- package/dist/src/sync/sync-round.js +355 -0
- package/dist/src/sync/sync-round.js.map +1 -0
- package/dist/src/sync/sync-watch.d.ts +48 -0
- package/dist/src/sync/sync-watch.js +144 -0
- package/dist/src/sync/sync-watch.js.map +1 -0
- package/dist/src/sync/sync.runner.d.ts +37 -0
- package/dist/src/sync/sync.runner.js +121 -0
- package/dist/src/sync/sync.runner.js.map +1 -0
- package/dist/src/sync/type/sync.types.d.ts +159 -0
- package/dist/src/sync/type/sync.types.js +30 -0
- package/dist/src/sync/type/sync.types.js.map +1 -0
- package/dist/src/sync/workspace-sync.client.d.ts +85 -0
- package/dist/src/sync/workspace-sync.client.js +317 -0
- package/dist/src/sync/workspace-sync.client.js.map +1 -0
- package/dist/src/util/dotenv.util.d.ts +28 -0
- package/dist/src/util/dotenv.util.js +81 -0
- package/dist/src/util/dotenv.util.js.map +1 -0
- package/package.json +1 -1
|
@@ -8,12 +8,18 @@ export declare enum CliUnauthorizedReason {
|
|
|
8
8
|
/** The authorization's window closed — or the server no longer knows its code. */
|
|
9
9
|
EXPIRED = "expired",
|
|
10
10
|
/** `--timeout` elapsed before an approval. */
|
|
11
|
-
TIMED_OUT = "timed-out"
|
|
11
|
+
TIMED_OUT = "timed-out",
|
|
12
|
+
/** A command that never authorizes (`forgecart sync`, #2781) found a credential in no source. */
|
|
13
|
+
MISSING = "missing",
|
|
14
|
+
/** The admin API refused the credentials the run settled — UNAUTHORIZED or FORBIDDEN. */
|
|
15
|
+
REFUSED = "refused"
|
|
12
16
|
}
|
|
13
17
|
/**
|
|
14
|
-
*
|
|
15
|
-
* {@link
|
|
16
|
-
*
|
|
18
|
+
* Credentials a run cannot use — exit {@link CliExitLadder.unauthorized} with
|
|
19
|
+
* {@link CLI_UNAUTHORIZED_CODE}, never a hang: an authorization that did not
|
|
20
|
+
* end approved (#2772, record `refs/design/cli-improvements`,
|
|
21
|
+
* `init?case=headless`), or, for a command that never authorizes, a credential
|
|
22
|
+
* absent from every source or credentials the admin API refused (#2781).
|
|
17
23
|
*/
|
|
18
24
|
export declare class CliUnauthorizedRefusal extends CliRefusal {
|
|
19
25
|
readonly reason: CliUnauthorizedReason;
|
|
@@ -10,17 +10,25 @@ export var CliUnauthorizedReason;
|
|
|
10
10
|
CliUnauthorizedReason["EXPIRED"] = "expired";
|
|
11
11
|
/** `--timeout` elapsed before an approval. */
|
|
12
12
|
CliUnauthorizedReason["TIMED_OUT"] = "timed-out";
|
|
13
|
+
/** A command that never authorizes (`forgecart sync`, #2781) found a credential in no source. */
|
|
14
|
+
CliUnauthorizedReason["MISSING"] = "missing";
|
|
15
|
+
/** The admin API refused the credentials the run settled — UNAUTHORIZED or FORBIDDEN. */
|
|
16
|
+
CliUnauthorizedReason["REFUSED"] = "refused";
|
|
13
17
|
})(CliUnauthorizedReason || (CliUnauthorizedReason = {}));
|
|
14
18
|
/** What each reason tells the merchant: what happened, that nothing was written, and the two ways on. */
|
|
15
19
|
const REASON_LINES = {
|
|
16
20
|
[CliUnauthorizedReason.DENIED]: 'the authorization was denied at /authorize; nothing was written.',
|
|
17
21
|
[CliUnauthorizedReason.EXPIRED]: 'the authorization window closed before an approval; nothing was written. Re-run to open a new one, or export the four FORGECART_* keys.',
|
|
18
22
|
[CliUnauthorizedReason.TIMED_OUT]: 'no credentials in the environment, in .env or in .forgecart/config.json, and no approval within --timeout; nothing was written. Export the four FORGECART_* keys, or authorize at the URL above.',
|
|
23
|
+
[CliUnauthorizedReason.MISSING]: 'a credential is in none of the environment, .env and .forgecart/config.json, so nothing was sent. Export the four FORGECART_* keys, or run `forgecart init` to authorize this machine.',
|
|
24
|
+
[CliUnauthorizedReason.REFUSED]: 'the admin API refused the credentials; nothing was written. Export the four FORGECART_* keys of a channel admin, or run `forgecart init` to authorize this machine.',
|
|
19
25
|
};
|
|
20
26
|
/**
|
|
21
|
-
*
|
|
22
|
-
* {@link
|
|
23
|
-
*
|
|
27
|
+
* Credentials a run cannot use — exit {@link CliExitLadder.unauthorized} with
|
|
28
|
+
* {@link CLI_UNAUTHORIZED_CODE}, never a hang: an authorization that did not
|
|
29
|
+
* end approved (#2772, record `refs/design/cli-improvements`,
|
|
30
|
+
* `init?case=headless`), or, for a command that never authorizes, a credential
|
|
31
|
+
* absent from every source or credentials the admin API refused (#2781).
|
|
24
32
|
*/
|
|
25
33
|
export class CliUnauthorizedRefusal extends CliRefusal {
|
|
26
34
|
reason;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli-unauthorized-refusal.js","sourceRoot":"","sources":["../../../src/authorization/cli-unauthorized-refusal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE9D,qFAAqF;AACrF,MAAM,CAAC,MAAM,qBAAqB,GAAG,4BAA4B,CAAC;AAElE,iDAAiD;AACjD,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"cli-unauthorized-refusal.js","sourceRoot":"","sources":["../../../src/authorization/cli-unauthorized-refusal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE9D,qFAAqF;AACrF,MAAM,CAAC,MAAM,qBAAqB,GAAG,4BAA4B,CAAC;AAElE,iDAAiD;AACjD,MAAM,CAAN,IAAY,qBAWX;AAXD,WAAY,qBAAqB;IAC/B,8DAA8D;IAC9D,0CAAiB,CAAA;IACjB,kFAAkF;IAClF,4CAAmB,CAAA;IACnB,8CAA8C;IAC9C,gDAAuB,CAAA;IACvB,iGAAiG;IACjG,4CAAmB,CAAA;IACnB,yFAAyF;IACzF,4CAAmB,CAAA;AACrB,CAAC,EAXW,qBAAqB,KAArB,qBAAqB,QAWhC;AAED,yGAAyG;AACzG,MAAM,YAAY,GAAoD;IACpE,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAC5B,kEAAkE;IACpE,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAC7B,yIAAyI;IAC3I,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAC/B,kMAAkM;IACpM,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAC7B,wLAAwL;IAC1L,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAC7B,qKAAqK;CACxK,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,OAAO,sBAAuB,SAAQ,UAAU;IAC/B;IAArB,YAAqB,MAA6B;QAChD,KAAK,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC,GAAG,qBAAqB,MAAM,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QADvE,WAAM,GAAN,MAAM,CAAuB;QAEhD,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF"}
|
package/dist/src/cli.js
CHANGED
|
@@ -3,6 +3,7 @@ import { createDesignSystemCommand } from './commands/design-system.js';
|
|
|
3
3
|
import { createInitCommand } from './commands/init.js';
|
|
4
4
|
import { createDeleteCommand, createDeployCommand, createEnvCommand, createInitApplicationCommand, createListCommand, createLogsCommand, createScaleCommand, createStatusCommand, createWhoamiCommand, } from './commands/placeholders.js';
|
|
5
5
|
import { createRefreshCommand } from './commands/refresh.js';
|
|
6
|
+
import { createSyncCommand, createSyncEnvCommand } from './commands/sync.js';
|
|
6
7
|
import { CliExitLadder, CliRefusal } from './exit-ladder.js';
|
|
7
8
|
import { printError } from './output.js';
|
|
8
9
|
import { readPackageVersion } from './version.js';
|
|
@@ -28,6 +29,9 @@ export function createProgram() {
|
|
|
28
29
|
.version(CLI_VERSION);
|
|
29
30
|
program.addCommand(createInitCommand());
|
|
30
31
|
program.addCommand(createRefreshCommand());
|
|
32
|
+
program.addCommand(createSyncCommand());
|
|
33
|
+
// The workspace's side of `sync`, run in the pod by the admin API — never a merchant's.
|
|
34
|
+
program.addCommand(createSyncEnvCommand(), { hidden: true });
|
|
31
35
|
program.addCommand(createDesignSystemCommand());
|
|
32
36
|
program.addCommand(createInitApplicationCommand());
|
|
33
37
|
program.addCommand(createDeployCommand());
|
package/dist/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,yBAAyB,EAAE,MAAM,6BAA6B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,4BAA4B,EAC5B,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,uCAAuC,CAAC;AAY9E;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,WAAW,CAAC;SACjB,WAAW,CAAC,iEAAiE,CAAC;SAC9E,OAAO,CAAC,WAAW,CAAC,CAAC;IAExB,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAC3C,OAAO,CAAC,UAAU,CAAC,yBAAyB,EAAE,CAAC,CAAC;IAChD,OAAO,CAAC,UAAU,CAAC,4BAA4B,EAAE,CAAC,CAAC;IACnD,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAC1C,OAAO,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;IACzC,OAAO,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACvC,OAAO,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,CAAC;IAE1C,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,GAAG,CACvB,OAAiB,OAAO,CAAC,IAAI,EAC7B,UAAmB,aAAa,EAAE;IAElC,IAAI,aAAa,GAAG,OAAO,CAAC;IAC5B,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,EAAE;QAC9C,aAAa,GAAG,OAAO,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,aAAa,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,KAAc,EAAE,OAAgB;IACrD,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,MAAM,IAAI,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK;YAAE,UAAU,CAAC,GAAG,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC;QAC/D,OAAO,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAClC,OAAO;IACT,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvE,UAAU,CAAC,UAAU,OAAO,EAAE,CAAC,CAAC;IAChC,OAAO,CAAC,QAAQ,GAAG,aAAa,CAAC,KAAK,CAAC;AACzC,CAAC;AAED,0EAA0E;AAC1E,SAAS,WAAW,CAAC,OAAgB;IACnC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,IAAI,OAAO,GAAmB,OAAO,EAAE,OAAO,KAAK,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QACvF,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,7 @@ import { print } from '../output.js';
|
|
|
9
9
|
import { QuestionPromptAdapter } from '../question/question-prompt.adapter.js';
|
|
10
10
|
import { TemplateSet } from '../template/template-set.js';
|
|
11
11
|
import { describeTemplateIdentity, isBlankTemplate, parseTemplateIdentity, PRE_IDENTITY_TEMPLATE, sameTemplateIdentity, } from '../template/util/template-identity.util.js';
|
|
12
|
+
import { mergeDotenv } from '../util/dotenv.util.js';
|
|
12
13
|
import { readPackageVersion } from '../version.js';
|
|
13
14
|
import { stampDesignSystem, templateDesignSystem, } from './design-system-seat.js';
|
|
14
15
|
import { InitQuestions } from './init-questions.js';
|
|
@@ -273,51 +274,6 @@ function buildPlatformEnv(channelToken, options) {
|
|
|
273
274
|
}
|
|
274
275
|
return entries;
|
|
275
276
|
}
|
|
276
|
-
/**
|
|
277
|
-
* Merge the platform-owned keys into an existing `.env`, preserving every
|
|
278
|
-
* other line — merchant keys, comments, ordering — verbatim (#1123: a
|
|
279
|
-
* wholesale rewrite wiped the demo store's DEMO_* config on three
|
|
280
|
-
* provisioning drives). Platform keys are refreshed in place at their
|
|
281
|
-
* existing position; duplicates collapse onto the first occurrence; managed
|
|
282
|
-
* keys with no existing line append in canonical order. Trailing blank lines
|
|
283
|
-
* normalize to the single final newline. An empty `existing` renders the
|
|
284
|
-
* canonical fresh `.env`, byte-identical to the pre-merge scaffold output.
|
|
285
|
-
*/
|
|
286
|
-
function mergeEnv(existing, channelToken, options) {
|
|
287
|
-
const platform = buildPlatformEnv(channelToken, options);
|
|
288
|
-
const refreshed = new Set();
|
|
289
|
-
const merged = [];
|
|
290
|
-
for (const line of existing.split('\n')) {
|
|
291
|
-
const out = refreshPlatformLine(line, platform, refreshed);
|
|
292
|
-
if (out !== null) {
|
|
293
|
-
merged.push(out);
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
while (merged.length > 0 && merged[merged.length - 1] === '') {
|
|
297
|
-
merged.pop();
|
|
298
|
-
}
|
|
299
|
-
for (const [key, value] of platform) {
|
|
300
|
-
if (!refreshed.has(key)) {
|
|
301
|
-
merged.push(`${key}=${value}`);
|
|
302
|
-
}
|
|
303
|
-
}
|
|
304
|
-
merged.push('');
|
|
305
|
-
return merged.join('\n');
|
|
306
|
-
}
|
|
307
|
-
/**
|
|
308
|
-
* Map one existing `.env` line through the merge: workspace-owned lines pass
|
|
309
|
-
* through verbatim, a managed platform key refreshes in place on first sight,
|
|
310
|
-
* and its later duplicates drop (null).
|
|
311
|
-
*/
|
|
312
|
-
function refreshPlatformLine(line, platform, refreshed) {
|
|
313
|
-
const key = /^([A-Z][A-Z0-9_]*)=/.exec(line)?.[1];
|
|
314
|
-
if (!key || !platform.has(key))
|
|
315
|
-
return line;
|
|
316
|
-
if (refreshed.has(key))
|
|
317
|
-
return null;
|
|
318
|
-
refreshed.add(key);
|
|
319
|
-
return `${key}=${platform.get(key) ?? ''}`;
|
|
320
|
-
}
|
|
321
277
|
/** Read a file that may legitimately not exist yet; any other failure propagates. */
|
|
322
278
|
async function readFileIfPresent(path) {
|
|
323
279
|
try {
|
|
@@ -339,14 +295,16 @@ async function readFileIfPresent(path) {
|
|
|
339
295
|
* `config.json` is pure platform state and is rewritten wholesale, mirroring the
|
|
340
296
|
* design-system seat the workspace's template manifest records (#2773) — every
|
|
341
297
|
* provisioning drive re-runs init, and a rewrite without it would drop the
|
|
342
|
-
* mirror; `.env` is merge-preserved
|
|
298
|
+
* mirror; `.env` is merge-preserved: the platform keys this run manages are
|
|
299
|
+
* refreshed in place and every other line kept verbatim (#1123 — see
|
|
300
|
+
* mergeDotenv). An empty `.env` renders the canonical fresh one.
|
|
343
301
|
*/
|
|
344
302
|
async function writeChannelConfig(targetDir, channelToken, options, scaffold, designSystem) {
|
|
345
303
|
await mkdir(join(targetDir, '.forgecart'), { recursive: true });
|
|
346
304
|
await writeFile(join(targetDir, CONFIG_RELPATH), `${JSON.stringify(buildConfig(channelToken, options, scaffold, designSystem), null, 2)}\n`, 'utf8');
|
|
347
305
|
const envPath = join(targetDir, '.env');
|
|
348
306
|
const existingEnv = await readFileIfPresent(envPath);
|
|
349
|
-
await writeFile(envPath,
|
|
307
|
+
await writeFile(envPath, mergeDotenv(existingEnv, buildPlatformEnv(channelToken, options)), 'utf8');
|
|
350
308
|
}
|
|
351
309
|
/**
|
|
352
310
|
* The design-system seat a full scaffold records (#2773), settled from the
|
|
@@ -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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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
/**
|
|
3
|
+
* Build the `sync [name]` command (#2781): its own flags and the question
|
|
4
|
+
* adapter's three, which answer the divergence selection. No flag carries a
|
|
5
|
+
* token, a secret or a URL — the run settles the four `FORGECART_*` keys from
|
|
6
|
+
* the environment, `.env` and `.forgecart/config.json`.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createSyncCommand(): Command;
|
|
9
|
+
/**
|
|
10
|
+
* Build the `sync-env [name]` command — the workspace's side of `forgecart
|
|
11
|
+
* sync`, which the admin API runs in the pod. It stays out of the help: a
|
|
12
|
+
* merchant never runs it.
|
|
13
|
+
*/
|
|
14
|
+
export declare function createSyncEnvCommand(): Command;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { Command, InvalidArgumentError, Option } from 'commander';
|
|
2
|
+
import { QuestionPromptAdapter } from '../question/question-prompt.adapter.js';
|
|
3
|
+
import { SyncEnvRunner } from '../sync/sync-env.runner.js';
|
|
4
|
+
import { SyncRunner } from '../sync/sync.runner.js';
|
|
5
|
+
/** `--timeout`'s default: five minutes for one exchange — a push's landing runs the workspace's gates. */
|
|
6
|
+
const DEFAULT_TIMEOUT_SECONDS = 300;
|
|
7
|
+
/** `--timeout`: a positive whole number of seconds. */
|
|
8
|
+
function parseTimeoutSeconds(value) {
|
|
9
|
+
if (!/^\d+$/.test(value) || Number(value) === 0) {
|
|
10
|
+
throw new InvalidArgumentError('Pass a positive whole number of seconds.');
|
|
11
|
+
}
|
|
12
|
+
return Number(value);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Build the `sync [name]` command (#2781): its own flags and the question
|
|
16
|
+
* adapter's three, which answer the divergence selection. No flag carries a
|
|
17
|
+
* token, a secret or a URL — the run settles the four `FORGECART_*` keys from
|
|
18
|
+
* the environment, `.env` and `.forgecart/config.json`.
|
|
19
|
+
*/
|
|
20
|
+
export function createSyncCommand() {
|
|
21
|
+
const command = new Command('sync')
|
|
22
|
+
.description("Keep this storefront's tree and the workspace's serving tree the same tree: push local changes, pull the workspace's, and settle a divergence with one selection")
|
|
23
|
+
.argument('[name]', 'Storefront directory (defaults to the current directory)')
|
|
24
|
+
.option('--pull', "Take the workspace's tree onto this storefront; never push")
|
|
25
|
+
.option('--watch', 'Keep syncing until Ctrl-C: local edits push, workspace landings pull')
|
|
26
|
+
.option('--dry-run', 'Print the plan and every path a push would send; move nothing')
|
|
27
|
+
.addOption(new Option('--timeout <seconds>', 'Seconds one exchange with the admin API may take, a push landing included, before sync exits 1')
|
|
28
|
+
.argParser(parseTimeoutSeconds)
|
|
29
|
+
.default(DEFAULT_TIMEOUT_SECONDS))
|
|
30
|
+
.action(async (name, options) => {
|
|
31
|
+
await new SyncRunner(name, options).run();
|
|
32
|
+
});
|
|
33
|
+
return QuestionPromptAdapter.registerOptions(command);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Build the `sync-env [name]` command — the workspace's side of `forgecart
|
|
37
|
+
* sync`, which the admin API runs in the pod. It stays out of the help: a
|
|
38
|
+
* merchant never runs it.
|
|
39
|
+
*/
|
|
40
|
+
export function createSyncEnvCommand() {
|
|
41
|
+
return new Command('sync-env')
|
|
42
|
+
.description("Read or merge the merchant lines of the storefront's .env, as one JSON report")
|
|
43
|
+
.argument('[name]', 'Storefront directory (defaults to the current directory)')
|
|
44
|
+
.option('--merge', 'Merge the merchant lines FORGECART_SYNC_ENV_LINES carries')
|
|
45
|
+
.action(async (name, options) => {
|
|
46
|
+
await new SyncEnvRunner(name, options).run();
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=sync.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAElE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wCAAwC,CAAC;AAC/E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAGpD,0GAA0G;AAC1G,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAEpC,uDAAuD;AACvD,SAAS,mBAAmB,CAAC,KAAa;IACxC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,IAAI,oBAAoB,CAAC,0CAA0C,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;AACvB,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB;IAC/B,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;SAChC,WAAW,CACV,kKAAkK,CACnK;SACA,QAAQ,CAAC,QAAQ,EAAE,0DAA0D,CAAC;SAC9E,MAAM,CAAC,QAAQ,EAAE,4DAA4D,CAAC;SAC9E,MAAM,CAAC,SAAS,EAAE,sEAAsE,CAAC;SACzF,MAAM,CAAC,WAAW,EAAE,+DAA+D,CAAC;SACpF,SAAS,CACR,IAAI,MAAM,CACR,qBAAqB,EACrB,gGAAgG,CACjG;SACE,SAAS,CAAC,mBAAmB,CAAC;SAC9B,OAAO,CAAC,uBAAuB,CAAC,CACpC;SACA,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,OAAoB,EAAE,EAAE;QAC/D,MAAM,IAAI,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;IAC5C,CAAC,CAAC,CAAC;IACL,OAAO,qBAAqB,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACxD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAClC,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;SAC3B,WAAW,CAAC,+EAA+E,CAAC;SAC5F,QAAQ,CAAC,QAAQ,EAAE,0DAA0D,CAAC;SAC9E,MAAM,CAAC,SAAS,EAAE,2DAA2D,CAAC;SAC9E,MAAM,CAAC,KAAK,EAAE,IAAwB,EAAE,OAAuB,EAAE,EAAE;QAClE,MAAM,IAAI,aAAa,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,EAAE,CAAC;IAC/C,CAAC,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -18,7 +18,14 @@ export declare enum CliExitLadder {
|
|
|
18
18
|
* and nobody has said yes yet; a caller supplies the four `FORGECART_*` keys
|
|
19
19
|
* in the environment or approves the authorization.
|
|
20
20
|
*/
|
|
21
|
-
unauthorized = 3
|
|
21
|
+
unauthorized = 3,
|
|
22
|
+
/**
|
|
23
|
+
* The laptop and the workspace both changed since their last sync (#2781):
|
|
24
|
+
* nothing moved on either side, and a caller settles which tree overrides the
|
|
25
|
+
* other — `--answer sync-divergence=local|workspace` — or leaves both as they
|
|
26
|
+
* are.
|
|
27
|
+
*/
|
|
28
|
+
diverged = 4
|
|
22
29
|
}
|
|
23
30
|
/**
|
|
24
31
|
* The CLI stopping for a reason that is not an error, on its own rung of
|
package/dist/src/exit-ladder.js
CHANGED
|
@@ -20,6 +20,13 @@ export var CliExitLadder;
|
|
|
20
20
|
* in the environment or approves the authorization.
|
|
21
21
|
*/
|
|
22
22
|
CliExitLadder[CliExitLadder["unauthorized"] = 3] = "unauthorized";
|
|
23
|
+
/**
|
|
24
|
+
* The laptop and the workspace both changed since their last sync (#2781):
|
|
25
|
+
* nothing moved on either side, and a caller settles which tree overrides the
|
|
26
|
+
* other — `--answer sync-divergence=local|workspace` — or leaves both as they
|
|
27
|
+
* are.
|
|
28
|
+
*/
|
|
29
|
+
CliExitLadder[CliExitLadder["diverged"] = 4] = "diverged";
|
|
23
30
|
})(CliExitLadder || (CliExitLadder = {}));
|
|
24
31
|
/**
|
|
25
32
|
* The CLI stopping for a reason that is not an error, on its own rung of
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exit-ladder.js","sourceRoot":"","sources":["../../src/exit-ladder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"exit-ladder.js","sourceRoot":"","sources":["../../src/exit-ladder.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,CAAN,IAAY,aAuBX;AAvBD,WAAY,aAAa;IACvB,4EAA4E;IAC5E,mDAAS,CAAA;IACT;;;;OAIG;IACH,6EAAsB,CAAA;IACtB;;;;;OAKG;IACH,iEAAgB,CAAA;IAChB;;;;;OAKG;IACH,yDAAY,CAAA;AACd,CAAC,EAvBW,aAAa,KAAb,aAAa,QAuBxB;AAED;;;;GAIG;AACH,MAAM,OAAO,UAAW,SAAQ,KAAK;IAExB;IACA;IAFX,YACW,QAAuB,EACvB,KAAwB;QAEjC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAHf,aAAQ,GAAR,QAAQ,CAAe;QACvB,UAAK,GAAL,KAAK,CAAmB;QAGjC,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A typed refusal the admin API answered a sync operation with (#2781): the
|
|
3
|
+
* `ErrorCode` its GraphQL error carries and the variables beside it — what a
|
|
4
|
+
* caller routes on. Credentials the API refuses are no such error: they end the
|
|
5
|
+
* run as `CliUnauthorizedRefusal`.
|
|
6
|
+
*/
|
|
7
|
+
export declare class SyncApiError extends Error {
|
|
8
|
+
readonly endpoint: string;
|
|
9
|
+
readonly field: string;
|
|
10
|
+
readonly code: string;
|
|
11
|
+
readonly variables: Readonly<Record<string, string>>;
|
|
12
|
+
constructor(endpoint: string, field: string, code: string, variables: Readonly<Record<string, string>>);
|
|
13
|
+
/** The variables as ` (key=value, …)` — nothing when there are none. */
|
|
14
|
+
private static describe;
|
|
15
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A typed refusal the admin API answered a sync operation with (#2781): the
|
|
3
|
+
* `ErrorCode` its GraphQL error carries and the variables beside it — what a
|
|
4
|
+
* caller routes on. Credentials the API refuses are no such error: they end the
|
|
5
|
+
* run as `CliUnauthorizedRefusal`.
|
|
6
|
+
*/
|
|
7
|
+
export class SyncApiError extends Error {
|
|
8
|
+
endpoint;
|
|
9
|
+
field;
|
|
10
|
+
code;
|
|
11
|
+
variables;
|
|
12
|
+
constructor(endpoint, field, code, variables) {
|
|
13
|
+
super(`The admin API at ${endpoint} refused ${field}: ${code}${SyncApiError.describe(variables)}.`);
|
|
14
|
+
this.endpoint = endpoint;
|
|
15
|
+
this.field = field;
|
|
16
|
+
this.code = code;
|
|
17
|
+
this.variables = variables;
|
|
18
|
+
this.name = 'SyncApiError';
|
|
19
|
+
}
|
|
20
|
+
/** The variables as ` (key=value, …)` — nothing when there are none. */
|
|
21
|
+
static describe(variables) {
|
|
22
|
+
const pairs = Object.entries(variables).map(([key, value]) => `${key}=${value}`);
|
|
23
|
+
return pairs.length === 0 ? '' : ` (${pairs.join(', ')})`;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=sync-api.error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-api.error.js","sourceRoot":"","sources":["../../../src/sync/sync-api.error.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,OAAO,YAAa,SAAQ,KAAK;IAE1B;IACA;IACA;IACA;IAJX,YACW,QAAgB,EAChB,KAAa,EACb,IAAY,EACZ,SAA2C;QAEpD,KAAK,CACH,oBAAoB,QAAQ,YAAY,KAAK,KAAK,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,CAC7F,CAAC;QAPO,aAAQ,GAAR,QAAQ,CAAQ;QAChB,UAAK,GAAL,KAAK,CAAQ;QACb,SAAI,GAAJ,IAAI,CAAQ;QACZ,cAAS,GAAT,SAAS,CAAkC;QAKpD,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;IAED,wEAAwE;IAChE,MAAM,CAAC,QAAQ,CAAC,SAA2C;QACjE,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC,CAAC;QACjF,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IAC5D,CAAC;CACF"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { CliRefusal } from '../exit-ladder.js';
|
|
2
|
+
import type { QuestionPrompt } from '../question/type/question-prompt.types.js';
|
|
3
|
+
import { SyncDivergenceChoice, type SyncDivergencePoint } from './type/sync.types.js';
|
|
4
|
+
/** The code a divergence is named by — the admin API's own for a push the board moved past. */
|
|
5
|
+
export declare const SYNC_DIVERGED_CODE = "WORKSPACE_SYNC_DIVERGED";
|
|
6
|
+
/** The selection's stable key: `--answer sync-divergence=local` answers it on every run. */
|
|
7
|
+
export declare const SYNC_DIVERGENCE_KEY = "sync-divergence";
|
|
8
|
+
/**
|
|
9
|
+
* A divergence left unsettled — aborted, or a selection no flag answered and
|
|
10
|
+
* no terminal could ask: exit {@link CliExitLadder.diverged}, nothing moved on
|
|
11
|
+
* either side. It carries where both sides stood, so a watching run waits for
|
|
12
|
+
* either to move before it asks again.
|
|
13
|
+
*/
|
|
14
|
+
export declare class SyncDivergedRefusal extends CliRefusal {
|
|
15
|
+
readonly point: SyncDivergencePoint;
|
|
16
|
+
constructor(lines: readonly string[], point: SyncDivergencePoint);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The ONE selection a divergence asks (#2781) — never a merge: which tree
|
|
20
|
+
* overrides the other, or Abort, the default `--yes` takes. A `--pull` run
|
|
21
|
+
* never pushes, so it is not offered the laptop's side.
|
|
22
|
+
*/
|
|
23
|
+
export declare class SyncDivergenceSelection {
|
|
24
|
+
private readonly prompt;
|
|
25
|
+
private readonly pullOnly;
|
|
26
|
+
/**
|
|
27
|
+
* @param prompt the question adapter of the run.
|
|
28
|
+
* @param pullOnly whether the run was told never to push (`--pull`).
|
|
29
|
+
*/
|
|
30
|
+
constructor(prompt: QuestionPrompt, pullOnly: boolean);
|
|
31
|
+
/**
|
|
32
|
+
* Which tree overrides the other. Abort, and a selection the run cannot ask,
|
|
33
|
+
* end the run on exit 4 with `description` — the divergence in words.
|
|
34
|
+
*/
|
|
35
|
+
settle(description: readonly string[], point: SyncDivergencePoint): Promise<SyncDivergenceChoice>;
|
|
36
|
+
/** The option the run's flags or its terminal chose; a selection neither can answer is the divergence's refusal. */
|
|
37
|
+
private ask;
|
|
38
|
+
private question;
|
|
39
|
+
/** Every option, in order — but the laptop's side, for a run that never pushes. */
|
|
40
|
+
private offered;
|
|
41
|
+
/** The option an answer chose — Abort for an answer that chose none. */
|
|
42
|
+
private choiceOf;
|
|
43
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { CliExitLadder, CliRefusal } from '../exit-ladder.js';
|
|
2
|
+
import { QuestionUnansweredRefusal } from '../question/question-unanswered-refusal.js';
|
|
3
|
+
import { mintQuestionId } from '../question/util/question-id.util.js';
|
|
4
|
+
import { SyncDivergenceChoice } from './type/sync.types.js';
|
|
5
|
+
/** The code a divergence is named by — the admin API's own for a push the board moved past. */
|
|
6
|
+
export const SYNC_DIVERGED_CODE = 'WORKSPACE_SYNC_DIVERGED';
|
|
7
|
+
/** The selection's stable key: `--answer sync-divergence=local` answers it on every run. */
|
|
8
|
+
export const SYNC_DIVERGENCE_KEY = 'sync-divergence';
|
|
9
|
+
/** The choices an answer's option id names. */
|
|
10
|
+
const CHOICES = new Map(Object.values(SyncDivergenceChoice).map((choice) => [choice, choice]));
|
|
11
|
+
/** The selection's three options. */
|
|
12
|
+
const LOCAL_OPTION = {
|
|
13
|
+
id: SyncDivergenceChoice.LOCAL,
|
|
14
|
+
label: 'Local overrides workspace',
|
|
15
|
+
hint: "push this laptop's tree onto the serving tip; the workspace's changes are replaced",
|
|
16
|
+
};
|
|
17
|
+
const WORKSPACE_OPTION = {
|
|
18
|
+
id: SyncDivergenceChoice.WORKSPACE,
|
|
19
|
+
label: 'Workspace overrides local',
|
|
20
|
+
hint: "write the serving tree onto this laptop; this laptop's changes are replaced",
|
|
21
|
+
};
|
|
22
|
+
const ABORT_OPTION = {
|
|
23
|
+
id: SyncDivergenceChoice.ABORT,
|
|
24
|
+
label: 'Abort',
|
|
25
|
+
hint: 'move nothing on either side',
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* A divergence left unsettled — aborted, or a selection no flag answered and
|
|
29
|
+
* no terminal could ask: exit {@link CliExitLadder.diverged}, nothing moved on
|
|
30
|
+
* either side. It carries where both sides stood, so a watching run waits for
|
|
31
|
+
* either to move before it asks again.
|
|
32
|
+
*/
|
|
33
|
+
export class SyncDivergedRefusal extends CliRefusal {
|
|
34
|
+
point;
|
|
35
|
+
constructor(lines, point) {
|
|
36
|
+
super(CliExitLadder.diverged, lines);
|
|
37
|
+
this.point = point;
|
|
38
|
+
this.name = 'SyncDivergedRefusal';
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* The ONE selection a divergence asks (#2781) — never a merge: which tree
|
|
43
|
+
* overrides the other, or Abort, the default `--yes` takes. A `--pull` run
|
|
44
|
+
* never pushes, so it is not offered the laptop's side.
|
|
45
|
+
*/
|
|
46
|
+
export class SyncDivergenceSelection {
|
|
47
|
+
prompt;
|
|
48
|
+
pullOnly;
|
|
49
|
+
/**
|
|
50
|
+
* @param prompt the question adapter of the run.
|
|
51
|
+
* @param pullOnly whether the run was told never to push (`--pull`).
|
|
52
|
+
*/
|
|
53
|
+
constructor(prompt, pullOnly) {
|
|
54
|
+
this.prompt = prompt;
|
|
55
|
+
this.pullOnly = pullOnly;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Which tree overrides the other. Abort, and a selection the run cannot ask,
|
|
59
|
+
* end the run on exit 4 with `description` — the divergence in words.
|
|
60
|
+
*/
|
|
61
|
+
async settle(description, point) {
|
|
62
|
+
const choice = await this.ask(description, point);
|
|
63
|
+
if (choice === SyncDivergenceChoice.ABORT) {
|
|
64
|
+
throw new SyncDivergedRefusal([...description, 'aborted: nothing moved on either side.'], point);
|
|
65
|
+
}
|
|
66
|
+
return choice;
|
|
67
|
+
}
|
|
68
|
+
/** The option the run's flags or its terminal chose; a selection neither can answer is the divergence's refusal. */
|
|
69
|
+
async ask(description, point) {
|
|
70
|
+
try {
|
|
71
|
+
const answers = await this.prompt.ask([this.question()]);
|
|
72
|
+
return this.choiceOf(answers.at(0)?.optionIds?.[0]);
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
if (!(error instanceof QuestionUnansweredRefusal))
|
|
76
|
+
throw error;
|
|
77
|
+
throw new SyncDivergedRefusal([...description, ...error.lines], point);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
question() {
|
|
81
|
+
return {
|
|
82
|
+
id: mintQuestionId(),
|
|
83
|
+
key: SYNC_DIVERGENCE_KEY,
|
|
84
|
+
question: 'This laptop and the workspace both changed since the last sync. Which tree wins?',
|
|
85
|
+
kind: 'choice',
|
|
86
|
+
options: this.offered(),
|
|
87
|
+
allowMultiple: false,
|
|
88
|
+
defaultOptionId: SyncDivergenceChoice.ABORT,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/** Every option, in order — but the laptop's side, for a run that never pushes. */
|
|
92
|
+
offered() {
|
|
93
|
+
if (this.pullOnly)
|
|
94
|
+
return [WORKSPACE_OPTION, ABORT_OPTION];
|
|
95
|
+
return [LOCAL_OPTION, WORKSPACE_OPTION, ABORT_OPTION];
|
|
96
|
+
}
|
|
97
|
+
/** The option an answer chose — Abort for an answer that chose none. */
|
|
98
|
+
choiceOf(optionId) {
|
|
99
|
+
if (optionId === undefined)
|
|
100
|
+
return SyncDivergenceChoice.ABORT;
|
|
101
|
+
return CHOICES.get(optionId) ?? SyncDivergenceChoice.ABORT;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
//# sourceMappingURL=sync-divergence.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sync-divergence.js","sourceRoot":"","sources":["../../../src/sync/sync-divergence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { type CliCredentials } from '../authorization/type/cli-authorization.types.js';
|
|
2
|
+
import type { SyncOutgoingEnv, SyncTakenEnv } from './type/sync.types.js';
|
|
3
|
+
/**
|
|
4
|
+
* The laptop's `.env`, as `forgecart sync` carries it (#2781). Only merchant
|
|
5
|
+
* lines travel — the platform's `FORGECART_*` keys never cross — and they
|
|
6
|
+
* travel under init's merge rule: a key is refreshed in place, every other line
|
|
7
|
+
* is kept verbatim, nothing is deleted.
|
|
8
|
+
*
|
|
9
|
+
* A push carries the merchant lines changed since they last travelled, so a
|
|
10
|
+
* key the workspace changed meanwhile is not overwritten by a stale copy; a
|
|
11
|
+
* pull takes the workspace's lines for every key the laptop has not changed
|
|
12
|
+
* since, beside the run's four credentials — the `.env` a fresh pull writes.
|
|
13
|
+
* What travelled is recorded as a digest per key, never the value.
|
|
14
|
+
*/
|
|
15
|
+
export declare class SyncDotenvFile {
|
|
16
|
+
private readonly path;
|
|
17
|
+
constructor(storefront: string);
|
|
18
|
+
/** The merchant lines a push carries — every one changed since `recorded` — and the digests to record once they land. */
|
|
19
|
+
outgoing(recorded: Readonly<Record<string, string>> | null): Promise<SyncOutgoingEnv>;
|
|
20
|
+
/** How many of the workspace's merchant lines a pull would take — every key the laptop has not changed since `recorded`. */
|
|
21
|
+
takeable(workspaceLines: readonly string[], recorded: Readonly<Record<string, string>> | null): Promise<number>;
|
|
22
|
+
/**
|
|
23
|
+
* Take the workspace's merchant lines — for every key the laptop has not
|
|
24
|
+
* changed since `recorded` — and the run's four credentials into `.env`,
|
|
25
|
+
* under init's merge rule. A key the laptop changed keeps the laptop's value
|
|
26
|
+
* and the digest it last travelled with, so the next push still carries it.
|
|
27
|
+
*/
|
|
28
|
+
take(workspaceLines: readonly string[], credentials: CliCredentials, recorded: Readonly<Record<string, string>> | null): Promise<SyncTakenEnv>;
|
|
29
|
+
/** The keys whose line differs from the one that last travelled — none before a first sync. */
|
|
30
|
+
private changedSince;
|
|
31
|
+
/** The four credentials as `.env` assignments, in the order init writes them. */
|
|
32
|
+
private credentialEntries;
|
|
33
|
+
private digestsOf;
|
|
34
|
+
/** The `.env` text — empty when the storefront has none; any other failure propagates. */
|
|
35
|
+
private read;
|
|
36
|
+
}
|