run402 4.51.0 → 4.53.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/git-remote-run402.mjs +28 -5
- package/gitvault-surface.json +1 -1
- package/package.json +1 -1
- package/sdk/dist/namespaces/gitvault.d.ts +21 -0
- package/sdk/dist/namespaces/gitvault.d.ts.map +1 -1
- package/sdk/dist/namespaces/gitvault.js +56 -5
- package/sdk/dist/namespaces/gitvault.js.map +1 -1
- package/sdk/dist/node/gitvault-address.d.ts +47 -0
- package/sdk/dist/node/gitvault-address.d.ts.map +1 -1
- package/sdk/dist/node/gitvault-address.js +80 -14
- package/sdk/dist/node/gitvault-address.js.map +1 -1
- package/sdk/dist/node/gitvault-edge-fetch.d.ts +68 -0
- package/sdk/dist/node/gitvault-edge-fetch.d.ts.map +1 -0
- package/sdk/dist/node/gitvault-edge-fetch.js +70 -0
- package/sdk/dist/node/gitvault-edge-fetch.js.map +1 -0
- package/sdk/dist/node/gitvault-mirror.d.ts.map +1 -1
- package/sdk/dist/node/gitvault-mirror.js +6 -1
- package/sdk/dist/node/gitvault-mirror.js.map +1 -1
- package/sdk/dist/node/gitvault-publication.d.ts.map +1 -1
- package/sdk/dist/node/gitvault-publication.js +21 -5
- package/sdk/dist/node/gitvault-publication.js.map +1 -1
|
@@ -38,6 +38,10 @@ export interface GitvaultPinnedRepo {
|
|
|
38
38
|
org_slug: string;
|
|
39
39
|
repo_name: string;
|
|
40
40
|
} | null;
|
|
41
|
+
/** `null` on a legacy pin that predates the id-carrying schema (or one written by hand) — resolution then self-upgrades it through one validation read. */
|
|
42
|
+
project_id: string | null;
|
|
43
|
+
/** `null` on a legacy pin — see `project_id`. */
|
|
44
|
+
org_id: string | null;
|
|
41
45
|
}
|
|
42
46
|
/** Read this checkout's pinned `repo_id`, or `null` when nothing is pinned. */
|
|
43
47
|
export declare function readPinnedGitvaultRepo(repoDir: string): Promise<GitvaultPinnedRepo | null>;
|
|
@@ -54,6 +58,9 @@ export declare function readPinnedGitvaultRepo(repoDir: string): Promise<Gitvaul
|
|
|
54
58
|
export declare function pinGitvaultRepo(repoDir: string, repoId: string, resolvedFrom?: {
|
|
55
59
|
org_slug: string;
|
|
56
60
|
repo_name: string;
|
|
61
|
+
}, ids?: {
|
|
62
|
+
project_id: string;
|
|
63
|
+
org_id: string;
|
|
57
64
|
}): Promise<void>;
|
|
58
65
|
export interface GitvaultAddressResolution {
|
|
59
66
|
repo_id: string;
|
|
@@ -73,6 +80,12 @@ export interface GitvaultAddressResolution {
|
|
|
73
80
|
recovery_receipt: GitvaultCreationResult["recovery_receipt"];
|
|
74
81
|
genesis_sha256: string;
|
|
75
82
|
} | null;
|
|
83
|
+
/**
|
|
84
|
+
* `true` iff this resolution performed ZERO transport operations (an
|
|
85
|
+
* id-carrying pin). Stale-pin recovery is then the caller's to arm on the
|
|
86
|
+
* verb's first repo-scoped read — see {@link recoverStaleGitvaultPin}.
|
|
87
|
+
*/
|
|
88
|
+
offline: boolean;
|
|
76
89
|
}
|
|
77
90
|
export interface ResolveGitvaultAddressOptions {
|
|
78
91
|
keystore: GitvaultKeystore;
|
|
@@ -99,4 +112,38 @@ export interface ResolveGitvaultAddressOptions {
|
|
|
99
112
|
* rather than failing on a stale local pointer.
|
|
100
113
|
*/
|
|
101
114
|
export declare function resolveGitvaultAddress(options: ResolveGitvaultAddressOptions): Promise<GitvaultAddressResolution>;
|
|
115
|
+
/**
|
|
116
|
+
* Stale-pin recovery for OFFLINE resolutions (client-surface spec,
|
|
117
|
+
* "Id-form remotes pin repo_id like slug-form remotes"): an id-carrying pin
|
|
118
|
+
* resolves with no network read, so the once-in-a-lifetime stale-pin case (a
|
|
119
|
+
* vault deleted and re-allocated out from under this checkout) surfaces as
|
|
120
|
+
* the VERB's first repo-scoped read failing instead of a resolution failure.
|
|
121
|
+
*
|
|
122
|
+
* Given that failure, answer the fresh resolution to retry the verb against —
|
|
123
|
+
* or `null` when there is nothing to recover:
|
|
124
|
+
*
|
|
125
|
+
* - a non-vault-absent error (anything outside the not-found family and the
|
|
126
|
+
* gateway's authorize-before-reveal `GITVAULT_ACCESS_DENIED` fold, which
|
|
127
|
+
* deliberately makes "gone" and "not yours" one envelope) → `null`,
|
|
128
|
+
* rethrow yours;
|
|
129
|
+
* - re-resolution yielding the SAME `repo_id` → the pin was fine and the
|
|
130
|
+
* refusal is real: the pin is restored (re-resolution re-pins it) and the
|
|
131
|
+
* answer is `null` — recovery never widens what an unauthorized caller
|
|
132
|
+
* learns (both probes return the same refusal family it already saw);
|
|
133
|
+
* - a DIFFERENT `repo_id` → the fresh resolution, pin already rewritten;
|
|
134
|
+
* the caller retries the verb exactly once.
|
|
135
|
+
*
|
|
136
|
+
* Re-resolution failures are swallowed in favor of `null` (the caller's
|
|
137
|
+
* original error is the truthful one to surface).
|
|
138
|
+
*/
|
|
139
|
+
export declare function recoverStaleGitvaultPin(options: {
|
|
140
|
+
keystore: GitvaultKeystore;
|
|
141
|
+
transport: GitvaultTransport;
|
|
142
|
+
address: GitvaultRemoteAddress;
|
|
143
|
+
repo_dir: string;
|
|
144
|
+
/** The offline resolution the failing verb ran under. */
|
|
145
|
+
resolution: GitvaultAddressResolution;
|
|
146
|
+
/** The verb's failure. */
|
|
147
|
+
error: unknown;
|
|
148
|
+
}): Promise<GitvaultAddressResolution | null>;
|
|
102
149
|
//# sourceMappingURL=gitvault-address.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitvault-address.d.ts","sourceRoot":"","sources":["../../src/node/gitvault-address.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,EAA6B,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClG,OAAO,KAAK,EAAuB,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAExF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"gitvault-address.d.ts","sourceRoot":"","sources":["../../src/node/gitvault-address.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAGH,OAAO,EAA6B,KAAK,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClG,OAAO,KAAK,EAAuB,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAExF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAc/D,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,aAAa,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC9D,2JAA2J;IAC3J,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,iDAAiD;IACjD,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;CACvB;AAcD,+EAA+E;AAC/E,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAShG;AAED;;;;;;;;;GASG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,CAAC,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAO1L;AAmBD,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,IAAI,GAAG,MAAM,CAAC;IACpB,uGAAuG;IACvG,GAAG,EAAE,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;IACpC,iFAAiF;IACjF,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACxD,iGAAiG;IACjG,OAAO,EAAE;QAAE,YAAY,EAAE,OAAO,CAAC;QAAC,gBAAgB,EAAE,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAChI;;;;OAIG;IACH,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,6GAA6G;IAC7G,OAAO,EAAE,qBAAqB,CAAC;IAC/B,8JAA8J;IAC9J,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0KAA0K;IAC1K,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IACzC,wGAAwG;IACxG,cAAc,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACvG;AAED;;;;;;;;;GASG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,6BAA6B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAuEvH;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IACrD,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,OAAO,EAAE,qBAAqB,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,yDAAyD;IACzD,UAAU,EAAE,yBAAyB,CAAC;IACtC,0BAA0B;IAC1B,KAAK,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAY5C"}
|
|
@@ -33,6 +33,14 @@ import { pushToCreateGitvault } from "./gitvault-push-to-create.js";
|
|
|
33
33
|
const CONFIG_KEY_REPO_ID = "r402.repoId";
|
|
34
34
|
/** The `org-slug/name` text the pin was resolved from — diagnostic only; resolution never reads it back. */
|
|
35
35
|
const CONFIG_KEY_ADDRESS = "r402.repoAddress";
|
|
36
|
+
/**
|
|
37
|
+
* The resolved ids beside the pin (gitvault-force-spelling-and-pin-fold).
|
|
38
|
+
* A pin carrying BOTH resolves fully OFFLINE — zero transport operations —
|
|
39
|
+
* which is what removes the standing per-invocation validation read; a
|
|
40
|
+
* legacy pin without them self-upgrades through one validation read.
|
|
41
|
+
*/
|
|
42
|
+
const CONFIG_KEY_PROJECT_ID = "r402.projectId";
|
|
43
|
+
const CONFIG_KEY_ORG_ID = "r402.orgId";
|
|
36
44
|
async function readLocalGitConfig(repoDir, key) {
|
|
37
45
|
try {
|
|
38
46
|
const out = (await hardenedGit(repoDir, ["config", "--local", "--get", key])).text().trim();
|
|
@@ -53,7 +61,9 @@ export async function readPinnedGitvaultRepo(repoDir) {
|
|
|
53
61
|
const address = await readLocalGitConfig(repoDir, CONFIG_KEY_ADDRESS);
|
|
54
62
|
const parts = address ? address.split("/") : [];
|
|
55
63
|
const resolvedFrom = parts.length === 2 && parts[0] && parts[1] ? { org_slug: parts[0], repo_name: parts.slice(1).join("/") } : null;
|
|
56
|
-
|
|
64
|
+
const projectId = await readLocalGitConfig(repoDir, CONFIG_KEY_PROJECT_ID);
|
|
65
|
+
const orgId = await readLocalGitConfig(repoDir, CONFIG_KEY_ORG_ID);
|
|
66
|
+
return { repo_id: repoId, resolved_from: resolvedFrom, project_id: projectId, org_id: orgId };
|
|
57
67
|
}
|
|
58
68
|
/**
|
|
59
69
|
* Pin `repo_id` into this checkout's LOCAL git config — and, when resolved
|
|
@@ -65,14 +75,18 @@ export async function readPinnedGitvaultRepo(repoDir) {
|
|
|
65
75
|
* already rename-proof, so this pin exists purely to skip the resolution
|
|
66
76
|
* ROUND TRIP, not to survive a rename.
|
|
67
77
|
*/
|
|
68
|
-
export async function pinGitvaultRepo(repoDir, repoId, resolvedFrom) {
|
|
78
|
+
export async function pinGitvaultRepo(repoDir, repoId, resolvedFrom, ids) {
|
|
69
79
|
await hardenedGit(repoDir, ["config", "--local", CONFIG_KEY_REPO_ID, repoId]);
|
|
70
80
|
if (resolvedFrom)
|
|
71
81
|
await hardenedGit(repoDir, ["config", "--local", CONFIG_KEY_ADDRESS, `${resolvedFrom.org_slug}/${resolvedFrom.repo_name}`]);
|
|
82
|
+
if (ids) {
|
|
83
|
+
await hardenedGit(repoDir, ["config", "--local", CONFIG_KEY_PROJECT_ID, ids.project_id]);
|
|
84
|
+
await hardenedGit(repoDir, ["config", "--local", CONFIG_KEY_ORG_ID, ids.org_id]);
|
|
85
|
+
}
|
|
72
86
|
}
|
|
73
87
|
/** Clear a pin this checkout no longer trusts (design D4: a pinned id that 404s). Tolerates an absent key — `git config --unset` on a key that was never set is not a failure here. */
|
|
74
88
|
async function clearPinnedGitvaultRepo(repoDir) {
|
|
75
|
-
for (const key of [CONFIG_KEY_REPO_ID, CONFIG_KEY_ADDRESS]) {
|
|
89
|
+
for (const key of [CONFIG_KEY_REPO_ID, CONFIG_KEY_ADDRESS, CONFIG_KEY_PROJECT_ID, CONFIG_KEY_ORG_ID]) {
|
|
76
90
|
try {
|
|
77
91
|
await hardenedGit(repoDir, ["config", "--local", "--unset", key]);
|
|
78
92
|
}
|
|
@@ -100,13 +114,25 @@ export async function resolveGitvaultAddress(options) {
|
|
|
100
114
|
if (options.repo_dir) {
|
|
101
115
|
const pinned = await readPinnedGitvaultRepo(options.repo_dir);
|
|
102
116
|
if (pinned) {
|
|
117
|
+
// `form` below describes what THIS call was asked to resolve, not how
|
|
118
|
+
// the pin originally came to exist (`resolved_from` alone can't tell —
|
|
119
|
+
// it is `null` for both an id-form pin and a pin that predates the
|
|
120
|
+
// field/was written by hand).
|
|
121
|
+
if (pinned.project_id && pinned.org_id) {
|
|
122
|
+
// Id-carrying pin: fully OFFLINE — zero transport operations. The
|
|
123
|
+
// stale-pin case (the vault deleted out from under this checkout)
|
|
124
|
+
// surfaces on the verb's first repo-scoped read instead; the caller
|
|
125
|
+
// arms {@link recoverStaleGitvaultPin} for that (client-surface
|
|
126
|
+
// spec, "Id-form remotes pin repo_id like slug-form remotes").
|
|
127
|
+
return { repo_id: pinned.repo_id, project_id: pinned.project_id, org_id: pinned.org_id, form: gitvaultRemoteAddressForm(options.address), via: "pin", address: pinned.resolved_from, created: null, offline: true };
|
|
128
|
+
}
|
|
103
129
|
try {
|
|
130
|
+
// Legacy id-less pin: one validation read, then REWRITE the pin with
|
|
131
|
+
// the ids so every later invocation on this checkout is offline —
|
|
132
|
+
// self-upgrading, no migration step.
|
|
104
133
|
const record = await options.transport.getVaultRecord({ repo_id: pinned.repo_id });
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
// it is `null` for both an id-form pin and a pin that predates the
|
|
108
|
-
// field/was written by hand).
|
|
109
|
-
return { repo_id: record.repo_id, project_id: record.project_id, org_id: record.org_id, form: gitvaultRemoteAddressForm(options.address), via: "pin", address: pinned.resolved_from, created: null };
|
|
134
|
+
await pinGitvaultRepo(options.repo_dir, record.repo_id, pinned.resolved_from ?? undefined, { project_id: record.project_id, org_id: record.org_id });
|
|
135
|
+
return { repo_id: record.repo_id, project_id: record.project_id, org_id: record.org_id, form: gitvaultRemoteAddressForm(options.address), via: "pin", address: pinned.resolved_from, created: null, offline: false };
|
|
110
136
|
}
|
|
111
137
|
catch (e) {
|
|
112
138
|
if (!isPinStale(e))
|
|
@@ -126,8 +152,8 @@ export async function resolveGitvaultAddress(options) {
|
|
|
126
152
|
// needed at all; id-form gets one anyway because the round trip itself
|
|
127
153
|
// is the cost this change removes.
|
|
128
154
|
if (options.repo_dir)
|
|
129
|
-
await pinGitvaultRepo(options.repo_dir, record.repo_id);
|
|
130
|
-
return { repo_id: record.repo_id, project_id: record.project_id, org_id: record.org_id, form: "id", via: "resolved", address: null, created: null };
|
|
155
|
+
await pinGitvaultRepo(options.repo_dir, record.repo_id, undefined, { project_id: record.project_id, org_id: record.org_id });
|
|
156
|
+
return { repo_id: record.repo_id, project_id: record.project_id, org_id: record.org_id, form: "id", via: "resolved", address: null, created: null, offline: false };
|
|
131
157
|
}
|
|
132
158
|
const orgSlug = options.address.org_id;
|
|
133
159
|
const repoName = options.address.project_id;
|
|
@@ -145,17 +171,57 @@ export async function resolveGitvaultAddress(options) {
|
|
|
145
171
|
...(options.service_public_key !== undefined ? { service_public_key: options.service_public_key } : {}),
|
|
146
172
|
});
|
|
147
173
|
if (options.repo_dir)
|
|
148
|
-
await pinGitvaultRepo(options.repo_dir, result.repo_id, { org_slug: orgSlug, repo_name: repoName });
|
|
174
|
+
await pinGitvaultRepo(options.repo_dir, result.repo_id, { org_slug: orgSlug, repo_name: repoName }, { project_id: result.project_id, org_id: result.org_id });
|
|
149
175
|
if (!result.found && result.created)
|
|
150
176
|
await options.onVaultCreated?.(result.created);
|
|
151
|
-
return { repo_id: result.repo_id, project_id: result.project_id, org_id: result.org_id, form: "slug", via: result.found ? "resolved" : "created", address: { org_slug: orgSlug, repo_name: repoName }, created: result.created };
|
|
177
|
+
return { repo_id: result.repo_id, project_id: result.project_id, org_id: result.org_id, form: "slug", via: result.found ? "resolved" : "created", address: { org_slug: orgSlug, repo_name: repoName }, created: result.created, offline: false };
|
|
152
178
|
}
|
|
153
179
|
// Read-only path (`list`/`fetch`, plain `status`): a miss is an ordinary
|
|
154
180
|
// not-found refusal — including `SLUG_RELEASED`, which is NEVER
|
|
155
181
|
// auto-followed and rethrows unchanged either way.
|
|
156
182
|
const record = await options.transport.findVaultByRepo({ org_slug: orgSlug, repo_name: repoName });
|
|
157
183
|
if (options.repo_dir)
|
|
158
|
-
await pinGitvaultRepo(options.repo_dir, record.repo_id, { org_slug: orgSlug, repo_name: repoName });
|
|
159
|
-
return { repo_id: record.repo_id, project_id: record.project_id, org_id: record.org_id, form: "slug", via: "resolved", address: { org_slug: orgSlug, repo_name: repoName }, created: null };
|
|
184
|
+
await pinGitvaultRepo(options.repo_dir, record.repo_id, { org_slug: orgSlug, repo_name: repoName }, { project_id: record.project_id, org_id: record.org_id });
|
|
185
|
+
return { repo_id: record.repo_id, project_id: record.project_id, org_id: record.org_id, form: "slug", via: "resolved", address: { org_slug: orgSlug, repo_name: repoName }, created: null, offline: false };
|
|
186
|
+
}
|
|
187
|
+
/**
|
|
188
|
+
* Stale-pin recovery for OFFLINE resolutions (client-surface spec,
|
|
189
|
+
* "Id-form remotes pin repo_id like slug-form remotes"): an id-carrying pin
|
|
190
|
+
* resolves with no network read, so the once-in-a-lifetime stale-pin case (a
|
|
191
|
+
* vault deleted and re-allocated out from under this checkout) surfaces as
|
|
192
|
+
* the VERB's first repo-scoped read failing instead of a resolution failure.
|
|
193
|
+
*
|
|
194
|
+
* Given that failure, answer the fresh resolution to retry the verb against —
|
|
195
|
+
* or `null` when there is nothing to recover:
|
|
196
|
+
*
|
|
197
|
+
* - a non-vault-absent error (anything outside the not-found family and the
|
|
198
|
+
* gateway's authorize-before-reveal `GITVAULT_ACCESS_DENIED` fold, which
|
|
199
|
+
* deliberately makes "gone" and "not yours" one envelope) → `null`,
|
|
200
|
+
* rethrow yours;
|
|
201
|
+
* - re-resolution yielding the SAME `repo_id` → the pin was fine and the
|
|
202
|
+
* refusal is real: the pin is restored (re-resolution re-pins it) and the
|
|
203
|
+
* answer is `null` — recovery never widens what an unauthorized caller
|
|
204
|
+
* learns (both probes return the same refusal family it already saw);
|
|
205
|
+
* - a DIFFERENT `repo_id` → the fresh resolution, pin already rewritten;
|
|
206
|
+
* the caller retries the verb exactly once.
|
|
207
|
+
*
|
|
208
|
+
* Re-resolution failures are swallowed in favor of `null` (the caller's
|
|
209
|
+
* original error is the truthful one to surface).
|
|
210
|
+
*/
|
|
211
|
+
export async function recoverStaleGitvaultPin(options) {
|
|
212
|
+
if (!options.resolution.offline)
|
|
213
|
+
return null;
|
|
214
|
+
const err = options.error;
|
|
215
|
+
const vaultAbsentSignal = Boolean(err && (isPinStale(err) || err.code === "GITVAULT_ACCESS_DENIED" || err.status === 403));
|
|
216
|
+
if (!vaultAbsentSignal)
|
|
217
|
+
return null;
|
|
218
|
+
try {
|
|
219
|
+
await clearPinnedGitvaultRepo(options.repo_dir);
|
|
220
|
+
const fresh = await resolveGitvaultAddress({ keystore: options.keystore, transport: options.transport, address: options.address, repo_dir: options.repo_dir });
|
|
221
|
+
return fresh.repo_id === options.resolution.repo_id ? null : fresh;
|
|
222
|
+
}
|
|
223
|
+
catch {
|
|
224
|
+
return null;
|
|
225
|
+
}
|
|
160
226
|
}
|
|
161
227
|
//# sourceMappingURL=gitvault-address.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitvault-address.js","sourceRoot":"","sources":["../../src/node/gitvault-address.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAA8B,MAAM,2BAA2B,CAAC;AAElG,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAIpE,MAAM,kBAAkB,GAAG,aAAa,CAAC;AACzC,4GAA4G;AAC5G,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"gitvault-address.js","sourceRoot":"","sources":["../../src/node/gitvault-address.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAA8B,MAAM,2BAA2B,CAAC;AAElG,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AAIpE,MAAM,kBAAkB,GAAG,aAAa,CAAC;AACzC,4GAA4G;AAC5G,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAC9C;;;;;GAKG;AACH,MAAM,qBAAqB,GAAG,gBAAgB,CAAC;AAC/C,MAAM,iBAAiB,GAAG,YAAY,CAAC;AAYvC,KAAK,UAAU,kBAAkB,CAAC,OAAe,EAAE,GAAW;IAC5D,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,CAAC,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAAC;QAC5F,OAAO,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACrC,CAAC;IAAC,MAAM,CAAC;QACP,yEAAyE;QACzE,wEAAwE;QACxE,4DAA4D;QAC5D,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,+EAA+E;AAC/E,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAAe;IAC1D,MAAM,MAAM,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACrE,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,MAAM,OAAO,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAChD,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;IACrI,MAAM,SAAS,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,qBAAqB,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IACnE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAChG,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAe,EAAE,MAAc,EAAE,YAAsD,EAAE,GAA4C;IACzK,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9E,IAAI,YAAY;QAAE,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,kBAAkB,EAAE,GAAG,YAAY,CAAC,QAAQ,IAAI,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC9I,IAAI,GAAG,EAAE,CAAC;QACR,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,qBAAqB,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACzF,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACnF,CAAC;AACH,CAAC;AAED,uLAAuL;AACvL,KAAK,UAAU,uBAAuB,CAAC,OAAe;IACpD,KAAK,MAAM,GAAG,IAAI,CAAC,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,iBAAiB,CAAC,EAAE,CAAC;QACrG,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;QACpE,CAAC;QAAC,MAAM,CAAC;YACP,oCAAoC;QACtC,CAAC;IACH,CAAC;AACH,CAAC;AAED,gHAAgH;AAChH,SAAS,UAAU,CAAC,CAAU;IAC5B,MAAM,GAAG,GAAG,CAA8C,CAAC;IAC3D,OAAO,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,oBAAoB,IAAI,GAAG,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC;AACrH,CAAC;AAoCD;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAAsC;IACjF,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,MAAM,sBAAsB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,MAAM,EAAE,CAAC;YACX,sEAAsE;YACtE,uEAAuE;YACvE,mEAAmE;YACnE,8BAA8B;YAC9B,IAAI,MAAM,CAAC,UAAU,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;gBACvC,kEAAkE;gBAClE,kEAAkE;gBAClE,oEAAoE;gBACpE,gEAAgE;gBAChE,+DAA+D;gBAC/D,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACtN,CAAC;YACD,IAAI,CAAC;gBACH,qEAAqE;gBACrE,kEAAkE;gBAClE,qCAAqC;gBACrC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;gBACnF,MAAM,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,aAAa,IAAI,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;gBACrJ,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;YACvN,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;oBAAE,MAAM,CAAC,CAAC;gBAC5B,MAAM,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAChD,6DAA6D;YAC/D,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAG,yBAAyB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACxD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAClB,MAAM,MAAM,GAAwB,MAAM,OAAO,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3H,sEAAsE;QACtE,mEAAmE;QACnE,wEAAwE;QACxE,sEAAsE;QACtE,uEAAuE;QACvE,mCAAmC;QACnC,IAAI,OAAO,CAAC,QAAQ;YAAE,MAAM,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACnJ,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACtK,CAAC;IAED,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC;IAE5C,qEAAqE;IACrE,yEAAyE;IACzE,sEAAsE;IACtE,sDAAsD;IACtD,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC;YACxC,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,QAAQ,EAAE,OAAO;YACjB,SAAS,EAAE,QAAQ;YACnB,GAAG,CAAC,OAAO,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvG,GAAG,CAAC,OAAO,CAAC,kBAAkB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,kBAAkB,EAAE,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACxG,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,QAAQ;YAAE,MAAM,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;QACpL,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,OAAO;YAAE,MAAM,OAAO,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACpF,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IACnP,CAAC;IAED,yEAAyE;IACzE,gEAAgE;IAChE,mDAAmD;IACnD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IACnG,IAAI,OAAO,CAAC,QAAQ;QAAE,MAAM,eAAe,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;IACpL,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;AAC9M,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAAC,OAS7C;IACC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC7C,MAAM,GAAG,GAAG,OAAO,CAAC,KAAkD,CAAC;IACvE,MAAM,iBAAiB,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,wBAAwB,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC;IAC3H,IAAI,CAAC,iBAAiB;QAAE,OAAO,IAAI,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChD,MAAM,KAAK,GAAG,MAAM,sBAAsB,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/J,OAAO,KAAK,CAAC,OAAO,KAAK,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACrE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* gitvault — CDN-edge read preference + silent fallback (gitvault-read-edge-
|
|
3
|
+
* cache, task 2.4, design D5).
|
|
4
|
+
*
|
|
5
|
+
* The gateway's `POST …/object-reads` (and the composite `GET …/state`
|
|
6
|
+
* read's carrier arm) optionally accompanies its presigned `url` with an
|
|
7
|
+
* `edge_url` naming the SAME bytes, for the five immutable ciphertext kinds
|
|
8
|
+
* eligible for edge caching (`wal_pack`, `ref_state`, `retention_roots`,
|
|
9
|
+
* `checkpoint_manifest`, `checkpoint_pack`) — ABSENT (never `null`) when the
|
|
10
|
+
* platform's edge is unconfigured or the object's kind is ineligible.
|
|
11
|
+
* `edge_url` is a pure transport optimization: every caller verifies the
|
|
12
|
+
* bytes it gets back against pins/receipts identically regardless of which
|
|
13
|
+
* URL served them, so this module carries NO verification logic of its own
|
|
14
|
+
* and is invisible to a caller except as latency.
|
|
15
|
+
*
|
|
16
|
+
* Policy (D5, pinned by the change proposal — do not relitigate here):
|
|
17
|
+
* prefer `edge_url` when present; on ANY edge failure — a thrown fetch
|
|
18
|
+
* error, or a response that is not `ok` (INCLUDING a 404, so an object's
|
|
19
|
+
* actual "absent" signal still comes from `url`, the unchanged source of
|
|
20
|
+
* truth) — silently fall back to `url` for that read AND stop attempting
|
|
21
|
+
* `edge_url` for the remainder of THIS PROCESS. No retry loop, no warning,
|
|
22
|
+
* no new log line; a caller's result and errors flow exactly as they would
|
|
23
|
+
* reading `url` directly, both on the happy path and on fallback.
|
|
24
|
+
*
|
|
25
|
+
* Deliberately a standalone module with no imports of its own, rather than
|
|
26
|
+
* folded into `gitvault-publication.ts` and exported from there:
|
|
27
|
+
* `gitvault-mirror.ts` reimplements its own presigned-read call site
|
|
28
|
+
* specifically so it has NO dependency on the live-push module (see that
|
|
29
|
+
* file's own header comment). Routing both call sites through this one tiny
|
|
30
|
+
* sibling instead keeps that independence intact while STILL sharing the
|
|
31
|
+
* same per-process fallback state — one edge failure anywhere in the
|
|
32
|
+
* process disables edge for the rest of it, not just for whichever module's
|
|
33
|
+
* call site happened to see the failure first.
|
|
34
|
+
*/
|
|
35
|
+
/**
|
|
36
|
+
* Anything with a `.fetch` shaped like the global one. A `Client`
|
|
37
|
+
* (`sdk/src/kernel.ts`) satisfies this structurally with no cast needed —
|
|
38
|
+
* this module just never imports the `Client` type itself, so it stays
|
|
39
|
+
* usable from any call site without pulling in the kernel.
|
|
40
|
+
*/
|
|
41
|
+
export interface GitvaultEdgeFetchClient {
|
|
42
|
+
fetch: typeof globalThis.fetch;
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* One `object-reads` entry, or the composite state read's carrier arm
|
|
46
|
+
* (`presigned_url` renamed to `url` at the call site) — normalized to the
|
|
47
|
+
* shape this module needs: the always-present authoritative URL, plus the
|
|
48
|
+
* optional same-bytes edge URL.
|
|
49
|
+
*/
|
|
50
|
+
export interface GitvaultEdgeReadTarget {
|
|
51
|
+
url: string;
|
|
52
|
+
edge_url?: string;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* @internal Test seam; not re-exported from `@run402/sdk/node`. Resets the
|
|
56
|
+
* process-lifetime "edge already failed once" flag between test cases.
|
|
57
|
+
*/
|
|
58
|
+
export declare function _resetGitvaultEdgeFetchStateForTest(): void;
|
|
59
|
+
/**
|
|
60
|
+
* Fetch one gitvault object's bytes, preferring `target.edge_url` over
|
|
61
|
+
* `target.url` per the policy above. Returns the same kind of `Response` a
|
|
62
|
+
* plain `client.fetch(target.url, init)` would — this function never
|
|
63
|
+
* inspects or decodes the body and never throws on a non-ok response; only
|
|
64
|
+
* a thrown fetch error against `url` itself propagates, exactly as it does
|
|
65
|
+
* today for every existing caller.
|
|
66
|
+
*/
|
|
67
|
+
export declare function fetchGitvaultObjectBytes(client: GitvaultEdgeFetchClient, target: GitvaultEdgeReadTarget, init?: RequestInit): Promise<Response>;
|
|
68
|
+
//# sourceMappingURL=gitvault-edge-fetch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitvault-edge-fetch.d.ts","sourceRoot":"","sources":["../../src/node/gitvault-edge-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,KAAK,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CAChC;AAED;;;;;GAKG;AACH,MAAM,WAAW,sBAAsB;IACrC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AASD;;;GAGG;AACH,wBAAgB,mCAAmC,IAAI,IAAI,CAE1D;AAED;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,uBAAuB,EAC/B,MAAM,EAAE,sBAAsB,EAC9B,IAAI,GAAE,WAA+B,GACpC,OAAO,CAAC,QAAQ,CAAC,CAWnB"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* gitvault — CDN-edge read preference + silent fallback (gitvault-read-edge-
|
|
3
|
+
* cache, task 2.4, design D5).
|
|
4
|
+
*
|
|
5
|
+
* The gateway's `POST …/object-reads` (and the composite `GET …/state`
|
|
6
|
+
* read's carrier arm) optionally accompanies its presigned `url` with an
|
|
7
|
+
* `edge_url` naming the SAME bytes, for the five immutable ciphertext kinds
|
|
8
|
+
* eligible for edge caching (`wal_pack`, `ref_state`, `retention_roots`,
|
|
9
|
+
* `checkpoint_manifest`, `checkpoint_pack`) — ABSENT (never `null`) when the
|
|
10
|
+
* platform's edge is unconfigured or the object's kind is ineligible.
|
|
11
|
+
* `edge_url` is a pure transport optimization: every caller verifies the
|
|
12
|
+
* bytes it gets back against pins/receipts identically regardless of which
|
|
13
|
+
* URL served them, so this module carries NO verification logic of its own
|
|
14
|
+
* and is invisible to a caller except as latency.
|
|
15
|
+
*
|
|
16
|
+
* Policy (D5, pinned by the change proposal — do not relitigate here):
|
|
17
|
+
* prefer `edge_url` when present; on ANY edge failure — a thrown fetch
|
|
18
|
+
* error, or a response that is not `ok` (INCLUDING a 404, so an object's
|
|
19
|
+
* actual "absent" signal still comes from `url`, the unchanged source of
|
|
20
|
+
* truth) — silently fall back to `url` for that read AND stop attempting
|
|
21
|
+
* `edge_url` for the remainder of THIS PROCESS. No retry loop, no warning,
|
|
22
|
+
* no new log line; a caller's result and errors flow exactly as they would
|
|
23
|
+
* reading `url` directly, both on the happy path and on fallback.
|
|
24
|
+
*
|
|
25
|
+
* Deliberately a standalone module with no imports of its own, rather than
|
|
26
|
+
* folded into `gitvault-publication.ts` and exported from there:
|
|
27
|
+
* `gitvault-mirror.ts` reimplements its own presigned-read call site
|
|
28
|
+
* specifically so it has NO dependency on the live-push module (see that
|
|
29
|
+
* file's own header comment). Routing both call sites through this one tiny
|
|
30
|
+
* sibling instead keeps that independence intact while STILL sharing the
|
|
31
|
+
* same per-process fallback state — one edge failure anywhere in the
|
|
32
|
+
* process disables edge for the rest of it, not just for whichever module's
|
|
33
|
+
* call site happened to see the failure first.
|
|
34
|
+
*/
|
|
35
|
+
/**
|
|
36
|
+
* Process-lifetime, deliberately NOT per-repo/per-vault/per-object: one
|
|
37
|
+
* edge failure anywhere stops every subsequent attempt at `edge_url` for
|
|
38
|
+
* the rest of this process, across every call site that shares this module.
|
|
39
|
+
*/
|
|
40
|
+
let gitvaultEdgeDisabledForProcess = false;
|
|
41
|
+
/**
|
|
42
|
+
* @internal Test seam; not re-exported from `@run402/sdk/node`. Resets the
|
|
43
|
+
* process-lifetime "edge already failed once" flag between test cases.
|
|
44
|
+
*/
|
|
45
|
+
export function _resetGitvaultEdgeFetchStateForTest() {
|
|
46
|
+
gitvaultEdgeDisabledForProcess = false;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Fetch one gitvault object's bytes, preferring `target.edge_url` over
|
|
50
|
+
* `target.url` per the policy above. Returns the same kind of `Response` a
|
|
51
|
+
* plain `client.fetch(target.url, init)` would — this function never
|
|
52
|
+
* inspects or decodes the body and never throws on a non-ok response; only
|
|
53
|
+
* a thrown fetch error against `url` itself propagates, exactly as it does
|
|
54
|
+
* today for every existing caller.
|
|
55
|
+
*/
|
|
56
|
+
export async function fetchGitvaultObjectBytes(client, target, init = { method: "GET" }) {
|
|
57
|
+
if (target.edge_url && !gitvaultEdgeDisabledForProcess) {
|
|
58
|
+
try {
|
|
59
|
+
const r = await client.fetch(target.edge_url, init);
|
|
60
|
+
if (r.ok)
|
|
61
|
+
return r;
|
|
62
|
+
}
|
|
63
|
+
catch {
|
|
64
|
+
// a thrown (network) fetch error against the edge — fall through to `url` below
|
|
65
|
+
}
|
|
66
|
+
gitvaultEdgeDisabledForProcess = true;
|
|
67
|
+
}
|
|
68
|
+
return client.fetch(target.url, init);
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=gitvault-edge-fetch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gitvault-edge-fetch.js","sourceRoot":"","sources":["../../src/node/gitvault-edge-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AAuBH;;;;GAIG;AACH,IAAI,8BAA8B,GAAG,KAAK,CAAC;AAE3C;;;GAGG;AACH,MAAM,UAAU,mCAAmC;IACjD,8BAA8B,GAAG,KAAK,CAAC;AACzC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAA+B,EAC/B,MAA8B,EAC9B,OAAoB,EAAE,MAAM,EAAE,KAAK,EAAE;IAErC,IAAI,MAAM,CAAC,QAAQ,IAAI,CAAC,8BAA8B,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,CAAC,EAAE;gBAAE,OAAO,CAAC,CAAC;QACrB,CAAC;QAAC,MAAM,CAAC;YACP,gFAAgF;QAClF,CAAC;QACD,8BAA8B,GAAG,IAAI,CAAC;IACxC,CAAC;IACD,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AACxC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitvault-mirror.d.ts","sourceRoot":"","sources":["../../src/node/gitvault-mirror.ts"],"names":[],"mappings":"AAuFA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAEL,iDAAiD,EACjD,gDAAgD,EACjD,MAAM,kCAAkC,CAAC;
|
|
1
|
+
{"version":3,"file":"gitvault-mirror.d.ts","sourceRoot":"","sources":["../../src/node/gitvault-mirror.ts"],"names":[],"mappings":"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"}
|
|
@@ -87,6 +87,7 @@
|
|
|
87
87
|
import { createHash } from "node:crypto";
|
|
88
88
|
import { LocalError, isRun402Error } from "../errors.js";
|
|
89
89
|
import { GITVAULT_GENESIS_GENERATION, GITVAULT_MIRROR_KEYSTORE_STILL_REQUIRED_STATEMENT, GITVAULT_MIRROR_VALIDITY_NOT_FRESHNESS_STATEMENT, } from "../namespaces/gitvault.crypto.js";
|
|
90
|
+
import { fetchGitvaultObjectBytes } from "./gitvault-edge-fetch.js";
|
|
90
91
|
import { GitvaultKeystore } from "./gitvault-keystore.js";
|
|
91
92
|
import { formatMirrorDestination, readMirrorConfig } from "./gitvault-mirror-config.js";
|
|
92
93
|
import { openGitvaultMirrorBackend, resolveMirrorCredentials } from "./gitvault-mirror-backend.js";
|
|
@@ -162,6 +163,10 @@ export async function readGitvaultObjectBytes(client, repoId, entry) {
|
|
|
162
163
|
return new Uint8Array(await r.arrayBuffer());
|
|
163
164
|
}
|
|
164
165
|
const read = objectReadRequestForEntry(entry);
|
|
166
|
+
// `edge_url` (gitvault-read-edge-cache design D5) is the same optional,
|
|
167
|
+
// same-bytes CDN companion `gitvault-publication.ts`'s object-reads
|
|
168
|
+
// consumers get — see `fetchGitvaultObjectBytes` (`gitvault-edge-fetch.ts`)
|
|
169
|
+
// for the prefer-edge/silent-fallback policy shared across both.
|
|
165
170
|
let presigned;
|
|
166
171
|
try {
|
|
167
172
|
presigned = await client.request(`${base}/object-reads`, { method: "POST", body: { objects: [read] }, context: "resolving gitvault mirror source object" });
|
|
@@ -174,7 +179,7 @@ export async function readGitvaultObjectBytes(client, repoId, entry) {
|
|
|
174
179
|
const target = presigned.reads[0];
|
|
175
180
|
if (!target)
|
|
176
181
|
return null;
|
|
177
|
-
const r = await client
|
|
182
|
+
const r = await fetchGitvaultObjectBytes(client, target);
|
|
178
183
|
if (r.status === 404)
|
|
179
184
|
return null;
|
|
180
185
|
if (!r.ok)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gitvault-mirror.js","sourceRoot":"","sources":["../../src/node/gitvault-mirror.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"gitvault-mirror.js","sourceRoot":"","sources":["../../src/node/gitvault-mirror.ts"],"names":[],"mappings":"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"}
|