@artblocks/abx-storage 0.1.0-alpha.0 → 0.1.0-alpha.10
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/arweave.d.ts +14 -0
- package/dist/arweave.d.ts.map +1 -1
- package/dist/arweave.js +40 -1
- package/dist/arweave.js.map +1 -1
- package/dist/content-plan.d.ts +78 -0
- package/dist/content-plan.d.ts.map +1 -0
- package/dist/content-plan.js +68 -0
- package/dist/content-plan.js.map +1 -0
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/migrate.d.ts +37 -0
- package/dist/migrate.d.ts.map +1 -0
- package/dist/migrate.js +55 -0
- package/dist/migrate.js.map +1 -0
- package/dist/probe.d.ts +66 -0
- package/dist/probe.d.ts.map +1 -0
- package/dist/probe.js +155 -0
- package/dist/probe.js.map +1 -0
- package/dist/readiness.d.ts +157 -0
- package/dist/readiness.d.ts.map +1 -0
- package/dist/readiness.js +189 -0
- package/dist/readiness.js.map +1 -0
- package/dist/upload-readiness.d.ts +89 -0
- package/dist/upload-readiness.d.ts.map +1 -0
- package/dist/upload-readiness.js +85 -0
- package/dist/upload-readiness.js.map +1 -0
- package/dist/upload.d.ts +28 -0
- package/dist/upload.d.ts.map +1 -0
- package/dist/upload.js +41 -0
- package/dist/upload.js.map +1 -0
- package/package.json +2 -2
package/dist/arweave.d.ts
CHANGED
|
@@ -256,4 +256,18 @@ export declare class ArweaveBackend implements StorageBackend {
|
|
|
256
256
|
* secrets). `ABX_ARWEAVE_ETH_SIGNER_KEY` selects an EVM Turbo identity (the CLI usually sets this
|
|
257
257
|
* from the resolved signing key instead). */
|
|
258
258
|
export declare function arweaveConfigFromEnv(): ArweaveConfig;
|
|
259
|
+
/** Where the CLI keeps the Turbo identity it creates and manages on first upload. */
|
|
260
|
+
export declare function arweaveKeyFilePath(): string;
|
|
261
|
+
/**
|
|
262
|
+
* The ONE place either layer resolves an Arweave identity: `ARWEAVE_JWK` (an explicit, inline
|
|
263
|
+
* secret) if set, else the CLI-managed key file.
|
|
264
|
+
*
|
|
265
|
+
* That fallback is the whole point. The CLI mints and manages `.abx-self-host/arweave-key.json` on
|
|
266
|
+
* first upload, but this function used to read `ARWEAVE_JWK` and nothing else — so an integrator
|
|
267
|
+
* porting a working CLI flow to the SDK, on the same machine, minutes later, had every upload fail
|
|
268
|
+
* with "Arweave via Turbo needs an identity". The message said storage was never configured; the
|
|
269
|
+
* truth was that two layers disagreed about where the identity lives, and it named neither the file
|
|
270
|
+
* nor the mismatch. They reimplemented this lookup themselves to get moving.
|
|
271
|
+
*/
|
|
272
|
+
export declare function resolveArweaveJwk(): ArweaveJwk | undefined;
|
|
259
273
|
//# sourceMappingURL=arweave.d.ts.map
|
package/dist/arweave.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arweave.d.ts","sourceRoot":"","sources":["../src/arweave.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"arweave.d.ts","sourceRoot":"","sources":["../src/arweave.ts"],"names":[],"mappings":"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"}
|
package/dist/arweave.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { existsSync, readFileSync } from 'node:fs';
|
|
2
|
+
import { resolve as resolvePath } from 'node:path';
|
|
1
3
|
import { privateKeyToAccount } from 'viem/accounts';
|
|
2
4
|
import { ContentIndex } from './content-index.js';
|
|
3
5
|
import { arweaveAddress } from './arweave-identity.js';
|
|
@@ -440,10 +442,47 @@ export function arweaveConfigFromEnv() {
|
|
|
440
442
|
provider: process.env.ABX_ARWEAVE_PROVIDER,
|
|
441
443
|
uploadUrl: process.env.ABX_ARWEAVE_UPLOAD_URL,
|
|
442
444
|
token: process.env.ARWEAVE_UPLOAD_TOKEN,
|
|
443
|
-
jwk:
|
|
445
|
+
jwk: resolveArweaveJwk(),
|
|
444
446
|
ethSignerKey: process.env.ABX_ARWEAVE_ETH_SIGNER_KEY,
|
|
445
447
|
};
|
|
446
448
|
}
|
|
449
|
+
/** Where the CLI keeps the Turbo identity it creates and manages on first upload. */
|
|
450
|
+
export function arweaveKeyFilePath() {
|
|
451
|
+
const dataDir = process.env.ABX_DATA_DIR ?? resolvePath(process.cwd(), '.abx-self-host');
|
|
452
|
+
return process.env.ABX_ARWEAVE_KEY_FILE ?? resolvePath(dataDir, 'arweave-key.json');
|
|
453
|
+
}
|
|
454
|
+
/**
|
|
455
|
+
* The ONE place either layer resolves an Arweave identity: `ARWEAVE_JWK` (an explicit, inline
|
|
456
|
+
* secret) if set, else the CLI-managed key file.
|
|
457
|
+
*
|
|
458
|
+
* That fallback is the whole point. The CLI mints and manages `.abx-self-host/arweave-key.json` on
|
|
459
|
+
* first upload, but this function used to read `ARWEAVE_JWK` and nothing else — so an integrator
|
|
460
|
+
* porting a working CLI flow to the SDK, on the same machine, minutes later, had every upload fail
|
|
461
|
+
* with "Arweave via Turbo needs an identity". The message said storage was never configured; the
|
|
462
|
+
* truth was that two layers disagreed about where the identity lives, and it named neither the file
|
|
463
|
+
* nor the mismatch. They reimplemented this lookup themselves to get moving.
|
|
464
|
+
*/
|
|
465
|
+
export function resolveArweaveJwk() {
|
|
466
|
+
const fromEnv = parseJwkEnv(process.env.ARWEAVE_JWK);
|
|
467
|
+
if (fromEnv)
|
|
468
|
+
return fromEnv;
|
|
469
|
+
const file = arweaveKeyFilePath();
|
|
470
|
+
if (!existsSync(file))
|
|
471
|
+
return undefined;
|
|
472
|
+
const raw = readFileSync(file, 'utf8');
|
|
473
|
+
if (raw.trim() === '') {
|
|
474
|
+
// An empty key file is a real state (an interrupted first upload), and the bare parser error it
|
|
475
|
+
// used to produce — "Unexpected end of JSON input" from `abx doctor` — pointed at a parser
|
|
476
|
+
// rather than the file or the remedy.
|
|
477
|
+
throw new Error(`Arweave key file ${file} is empty — delete it and re-run; the CLI mints a fresh managed identity on the next upload.`);
|
|
478
|
+
}
|
|
479
|
+
try {
|
|
480
|
+
return JSON.parse(raw);
|
|
481
|
+
}
|
|
482
|
+
catch {
|
|
483
|
+
throw new Error(`Arweave key file ${file} is not valid JSON — delete it to regenerate, or point ABX_ARWEAVE_KEY_FILE at a valid JWK.`);
|
|
484
|
+
}
|
|
485
|
+
}
|
|
447
486
|
function parseJwkEnv(raw) {
|
|
448
487
|
if (!raw)
|
|
449
488
|
return undefined;
|
package/dist/arweave.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arweave.js","sourceRoot":"","sources":["../src/arweave.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"arweave.js","sourceRoot":"","sources":["../src/arweave.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deploy-time image content planning — the pure "which representation" decision behind
|
|
3
|
+
* `--onchain-uri`'s image handling (see reference/hosting.md): the bytes inline directly (SVG),
|
|
4
|
+
* a direct-URL backend hosts them and its URL rides on-chain, or they fall back to off-chain
|
|
5
|
+
* custody anchored by a keccak256 commitment. No I/O, no network — every input is a fact the
|
|
6
|
+
* caller already has in hand (the file's sniffed bytes, the resolved backend id).
|
|
7
|
+
*/
|
|
8
|
+
/** Backends that can hand back a PUBLIC direct URL for uploaded bytes — content-addressed and
|
|
9
|
+
* permanent (ipfs, arweave) or a mutable host with a configured public base (cloud/S3) — the set
|
|
10
|
+
* that makes "image off-chain, on-chain JSON pointing at it, no server" possible. `fs` custody
|
|
11
|
+
* (this machine only) is deliberately excluded: its bytes are never reachable off the machine
|
|
12
|
+
* that stored them. */
|
|
13
|
+
export declare const DIRECT_URL_BACKENDS: ReadonlySet<string>;
|
|
14
|
+
export type ImageContentLane = 'inline-svg' | 'onchain-url' | 'keccak-custody';
|
|
15
|
+
export interface ImageContentDecision {
|
|
16
|
+
lane: ImageContentLane;
|
|
17
|
+
/** True when `onChain` was requested but neither inline-SVG nor a direct-URL backend could
|
|
18
|
+
* honor it, so the on-chain image ends up a placeholder — the caller's cue to warn. */
|
|
19
|
+
onchainFallback: boolean;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Which representation an image's on-chain field takes — purely from local facts already in the
|
|
23
|
+
* caller's hand, in priority order: inline SVG > a direct-URL backend's hosted image > keccak
|
|
24
|
+
* custody. `isSvg` must come from sniffing the file's actual bytes (never inferred from the
|
|
25
|
+
* extension alone — a mislabeled raster must not be inlined as SVG, which is why every call site
|
|
26
|
+
* reads the file's head before deciding); `backendId` is the already-resolved storage backend.
|
|
27
|
+
*/
|
|
28
|
+
export declare function decideImageContentLane(input: {
|
|
29
|
+
onChain: boolean;
|
|
30
|
+
isSvg: boolean;
|
|
31
|
+
backendId: string;
|
|
32
|
+
}): ImageContentDecision;
|
|
33
|
+
export type RenderStorageResult = {
|
|
34
|
+
ok: true;
|
|
35
|
+
} | {
|
|
36
|
+
ok: false;
|
|
37
|
+
reason: string;
|
|
38
|
+
};
|
|
39
|
+
/**
|
|
40
|
+
* Facts about a deploy/render configuration `validateRenderStorageCombo` decides from — every value
|
|
41
|
+
* a caller already has in hand (the raw `--image-base` URL, the resolved storage backend id,
|
|
42
|
+
* whether this operation publishes to a resolver it doesn't share a disk with). No I/O.
|
|
43
|
+
*/
|
|
44
|
+
export interface RenderStorageCombo {
|
|
45
|
+
/** The raw `--image-base <url>` value, if one was given — checked against ITS OWN shape (an
|
|
46
|
+
* ipfs/arweave gateway vs. anything else). This is deliberately unrelated to `backendId` below:
|
|
47
|
+
* `--image-base` names where the EFFECT RUNNER later overwrites a still (its own `ABX_S3_*`
|
|
48
|
+
* config), not where this deploy's own uploads go. */
|
|
49
|
+
imageBaseUrl?: string;
|
|
50
|
+
/** The resolved storage backend id (`fs` · `cloud`/`s3` · `ipfs` · `arweave` · …) — this deploy's
|
|
51
|
+
* OWN upload target, relevant only to {@link RenderStorageCombo.publishesToRemoteResolver} below.
|
|
52
|
+
* Omit when only checking the `imageBaseUrl` combo. */
|
|
53
|
+
backendId?: string;
|
|
54
|
+
/** Only meaningful when `backendId` is `cloud`/`s3`: whether a public read base is configured
|
|
55
|
+
* (`ABX_S3_PUBLIC_BASE` / `--public-base`). Without one, `cloud` can hold bytes but can't hand
|
|
56
|
+
* back a URL for them — same failure mode as a content-addressed backend, for a different reason. */
|
|
57
|
+
cloudHasPublicBase?: boolean;
|
|
58
|
+
/** This operation publishes rendered output to a resolver that may not share this machine's disk
|
|
59
|
+
* (`abx deploy-effects`, `abx render --remote`, `abx effects` against a remote token) — the ONLY
|
|
60
|
+
* case a backend needs to hand back a public URL at all. A co-located runner (`abx effects` on
|
|
61
|
+
* the same host as `abx serve`) never needs one, so omit/false there. */
|
|
62
|
+
publishesToRemoteResolver?: boolean;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* The one source of truth for "does this render × storage combination actually work" — encodes the
|
|
66
|
+
* known-bad combos so a deploy's real run can refuse them and its `--dry-run` can flag the same
|
|
67
|
+
* reason, from the SAME check (see `deploy-code`'s `--image-base` guard and the render/storage
|
|
68
|
+
* dry-run row, and `requirePublishableBackend`'s render/effects refusal, which all call this).
|
|
69
|
+
*
|
|
70
|
+
* Checked in order (a config can only be wrong for one reason at a time — the first match wins):
|
|
71
|
+
* 1. `--image-base` needs a MUTABLE, path-addressed URL (it names a key the effect runner
|
|
72
|
+
* overwrites in place) — a content-addressed gateway URL (ipfs/arweave) can't back a *fixed*
|
|
73
|
+
* per-token address, no matter what this deploy's OWN `--backend` happens to be.
|
|
74
|
+
* 2. Publishing to a resolver that doesn't share this disk needs a backend that can hand back a
|
|
75
|
+
* public URL for what it stores at all — `fs` (and `cloud` with no public base) can't.
|
|
76
|
+
*/
|
|
77
|
+
export declare function validateRenderStorageCombo(combo: RenderStorageCombo): RenderStorageResult;
|
|
78
|
+
//# sourceMappingURL=content-plan.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-plan.d.ts","sourceRoot":"","sources":["../src/content-plan.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;wBAIwB;AACxB,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,CAAyC,CAAC;AAE9F,MAAM,MAAM,gBAAgB,GACxB,YAAY,GACZ,aAAa,GACb,gBAAgB,CAAC;AAErB,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,gBAAgB,CAAC;IACvB;4FACwF;IACxF,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE;IAAC,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAC,GAAG,oBAAoB,CAKzH;AAED,MAAM,MAAM,mBAAmB,GAAG;IAAC,EAAE,EAAE,IAAI,CAAA;CAAC,GAAG;IAAC,EAAE,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAC,CAAC;AAO3E;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;2DAGuD;IACvD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;4DAEwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;0GAEsG;IACtG,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;8EAG0E;IAC1E,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACrC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,kBAAkB,GAAG,mBAAmB,CAuBzF"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deploy-time image content planning — the pure "which representation" decision behind
|
|
3
|
+
* `--onchain-uri`'s image handling (see reference/hosting.md): the bytes inline directly (SVG),
|
|
4
|
+
* a direct-URL backend hosts them and its URL rides on-chain, or they fall back to off-chain
|
|
5
|
+
* custody anchored by a keccak256 commitment. No I/O, no network — every input is a fact the
|
|
6
|
+
* caller already has in hand (the file's sniffed bytes, the resolved backend id).
|
|
7
|
+
*/
|
|
8
|
+
/** Backends that can hand back a PUBLIC direct URL for uploaded bytes — content-addressed and
|
|
9
|
+
* permanent (ipfs, arweave) or a mutable host with a configured public base (cloud/S3) — the set
|
|
10
|
+
* that makes "image off-chain, on-chain JSON pointing at it, no server" possible. `fs` custody
|
|
11
|
+
* (this machine only) is deliberately excluded: its bytes are never reachable off the machine
|
|
12
|
+
* that stored them. */
|
|
13
|
+
export const DIRECT_URL_BACKENDS = new Set(['ipfs', 'arweave', 'cloud']);
|
|
14
|
+
/**
|
|
15
|
+
* Which representation an image's on-chain field takes — purely from local facts already in the
|
|
16
|
+
* caller's hand, in priority order: inline SVG > a direct-URL backend's hosted image > keccak
|
|
17
|
+
* custody. `isSvg` must come from sniffing the file's actual bytes (never inferred from the
|
|
18
|
+
* extension alone — a mislabeled raster must not be inlined as SVG, which is why every call site
|
|
19
|
+
* reads the file's head before deciding); `backendId` is the already-resolved storage backend.
|
|
20
|
+
*/
|
|
21
|
+
export function decideImageContentLane(input) {
|
|
22
|
+
if (!input.onChain)
|
|
23
|
+
return { lane: 'keccak-custody', onchainFallback: false };
|
|
24
|
+
if (input.isSvg)
|
|
25
|
+
return { lane: 'inline-svg', onchainFallback: false };
|
|
26
|
+
if (DIRECT_URL_BACKENDS.has(input.backendId))
|
|
27
|
+
return { lane: 'onchain-url', onchainFallback: false };
|
|
28
|
+
return { lane: 'keccak-custody', onchainFallback: true };
|
|
29
|
+
}
|
|
30
|
+
/** Recognizable ipfs/arweave gateway shapes — the same hosts {@link parseLocator}
|
|
31
|
+
* (readiness.ts) treats as content-addressed networks, kept in sync deliberately: a locator this
|
|
32
|
+
* toolkit itself would classify as ipfs/arweave is exactly what `--image-base` can't use either. */
|
|
33
|
+
const CONTENT_ADDRESSED_URL_PATTERN = /ipfs:\/\/|ar:\/\/|\/ipfs\/|\.ipfs\.|ipfs\.io|dweb\.link|w3s\.link|arweave\.net|permagate\.io|vilenarios\.com|ar-io\.dev/i;
|
|
34
|
+
/**
|
|
35
|
+
* The one source of truth for "does this render × storage combination actually work" — encodes the
|
|
36
|
+
* known-bad combos so a deploy's real run can refuse them and its `--dry-run` can flag the same
|
|
37
|
+
* reason, from the SAME check (see `deploy-code`'s `--image-base` guard and the render/storage
|
|
38
|
+
* dry-run row, and `requirePublishableBackend`'s render/effects refusal, which all call this).
|
|
39
|
+
*
|
|
40
|
+
* Checked in order (a config can only be wrong for one reason at a time — the first match wins):
|
|
41
|
+
* 1. `--image-base` needs a MUTABLE, path-addressed URL (it names a key the effect runner
|
|
42
|
+
* overwrites in place) — a content-addressed gateway URL (ipfs/arweave) can't back a *fixed*
|
|
43
|
+
* per-token address, no matter what this deploy's OWN `--backend` happens to be.
|
|
44
|
+
* 2. Publishing to a resolver that doesn't share this disk needs a backend that can hand back a
|
|
45
|
+
* public URL for what it stores at all — `fs` (and `cloud` with no public base) can't.
|
|
46
|
+
*/
|
|
47
|
+
export function validateRenderStorageCombo(combo) {
|
|
48
|
+
if (combo.imageBaseUrl && CONTENT_ADDRESSED_URL_PATTERN.test(combo.imageBaseUrl)) {
|
|
49
|
+
return {
|
|
50
|
+
ok: false,
|
|
51
|
+
reason: `--image-base '${combo.imageBaseUrl}' looks like a content-addressed (ipfs/arweave) gateway URL — a new upload there gets a NEW ` +
|
|
52
|
+
`address, so it can't back the SAME per-token URL the effect runner overwrites in place. Use a mutable bucket/CDN URL instead (S3/R2 — a --backend cloud upload target with ABX_S3_PUBLIC_BASE).`,
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
if (combo.publishesToRemoteResolver) {
|
|
56
|
+
const hasLocator = !!combo.backendId && DIRECT_URL_BACKENDS.has(combo.backendId) && (combo.backendId !== 'cloud' || combo.cloudHasPublicBase);
|
|
57
|
+
if (!hasLocator) {
|
|
58
|
+
return {
|
|
59
|
+
ok: false,
|
|
60
|
+
reason: combo.backendId === 'cloud'
|
|
61
|
+
? `'cloud' has no public read base configured (ABX_S3_PUBLIC_BASE) — a resolver on another machine would have nothing to fetch.`
|
|
62
|
+
: `'${combo.backendId}' can't produce a URL for what it stores — a resolver on another machine would have nothing to serve. Use --backend cloud/ipfs/arweave, or render co-located with the resolver.`,
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return { ok: true };
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=content-plan.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"content-plan.js","sourceRoot":"","sources":["../src/content-plan.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;wBAIwB;AACxB,MAAM,CAAC,MAAM,mBAAmB,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;AAc9F;;;;;;GAMG;AACH,MAAM,UAAU,sBAAsB,CAAC,KAA4D;IACjG,IAAI,CAAC,KAAK,CAAC,OAAO;QAAE,OAAO,EAAC,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,KAAK,EAAC,CAAC;IAC5E,IAAI,KAAK,CAAC,KAAK;QAAE,OAAO,EAAC,IAAI,EAAE,YAAY,EAAE,eAAe,EAAE,KAAK,EAAC,CAAC;IACrE,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC;QAAE,OAAO,EAAC,IAAI,EAAE,aAAa,EAAE,eAAe,EAAE,KAAK,EAAC,CAAC;IACnG,OAAO,EAAC,IAAI,EAAE,gBAAgB,EAAE,eAAe,EAAE,IAAI,EAAC,CAAC;AACzD,CAAC;AAID;;qGAEqG;AACrG,MAAM,6BAA6B,GAAG,0HAA0H,CAAC;AA4BjK;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,0BAA0B,CAAC,KAAyB;IAClE,IAAI,KAAK,CAAC,YAAY,IAAI,6BAA6B,CAAC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;QACjF,OAAO;YACL,EAAE,EAAE,KAAK;YACT,MAAM,EACJ,iBAAiB,KAAK,CAAC,YAAY,8FAA8F;gBACjI,iMAAiM;SACpM,CAAC;IACJ,CAAC;IACD,IAAI,KAAK,CAAC,yBAAyB,EAAE,CAAC;QACpC,MAAM,UAAU,GACd,CAAC,CAAC,KAAK,CAAC,SAAS,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,KAAK,OAAO,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC7H,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;gBACL,EAAE,EAAE,KAAK;gBACT,MAAM,EACJ,KAAK,CAAC,SAAS,KAAK,OAAO;oBACzB,CAAC,CAAC,8HAA8H;oBAChI,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,iLAAiL;aAC3M,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,EAAC,EAAE,EAAE,IAAI,EAAC,CAAC;AACpB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,7 +12,13 @@ export { LocalFsBackend } from './fs.js';
|
|
|
12
12
|
export { CloudStorageBackend, cloudConfigFromEnv, deriveSigningKey, sigv4Signature, type CloudStorageConfig, type SigV4Input, } from './cloud.js';
|
|
13
13
|
export { ContentIndex, type IndexEntry } from './content-index.js';
|
|
14
14
|
export { IpfsBackend, ipfsConfigFromEnv, type IpfsConfig } from './ipfs.js';
|
|
15
|
-
export { ArweaveBackend, HttpBundlerUploader, TurboUploader, arweaveConfigFromEnv, arweaveFunding, arweaveProvider, turboIdentity, resolveTurboIdentity, turboIdentityAddress, isEthIdentity, ARWEAVE_FREE_UPLOAD_LIMIT, turboUploadCostUsd, turboUploadWinc, turboUploadId, turboBalanceForAddress, type ArweaveConfig, type ArweaveProvider, type ArweaveUploader, type ArweaveFunding, type TurboIdentity, } from './arweave.js';
|
|
15
|
+
export { ArweaveBackend, HttpBundlerUploader, TurboUploader, arweaveConfigFromEnv, resolveArweaveJwk, arweaveKeyFilePath, arweaveFunding, arweaveProvider, turboIdentity, resolveTurboIdentity, turboIdentityAddress, isEthIdentity, ARWEAVE_FREE_UPLOAD_LIMIT, turboUploadCostUsd, turboUploadWinc, turboUploadId, turboBalanceForAddress, type ArweaveConfig, type ArweaveProvider, type ArweaveUploader, type ArweaveFunding, type TurboIdentity, } from './arweave.js';
|
|
16
16
|
export { generateArweaveJwk, arweaveAddress, type ArweaveJwk } from './arweave-identity.js';
|
|
17
17
|
export { resolveBackend, type ResolveStorageOptions } from './resolve.js';
|
|
18
|
+
export { repinNodeCustody, type RepinResult } from './migrate.js';
|
|
19
|
+
export { uploadAndLocate, type UploadResult } from './upload.js';
|
|
20
|
+
export { DIRECT_URL_BACKENDS, decideImageContentLane, validateRenderStorageCombo, type ImageContentLane, type ImageContentDecision, type RenderStorageCombo, type RenderStorageResult, } from './content-plan.js';
|
|
21
|
+
export { isTurboArweave, planTurboUpload, assessStorageReadiness, assessTurboFunds, type TurboUploadPlan, type StorageReadinessReport, type TurboFundsCheck, } from './upload-readiness.js';
|
|
22
|
+
export { locatorStatus, awaitLocatorReady, parseLocator, probeGateway, gatewayUrlFor, resolveGatewayBase, type LocatorStatus, type LocatorStatusOptions, type LocatorNetwork, type GatewayProbe, type Readiness, type AwaitLocatorReadyOptions, type AwaitLocatorReadyEvent, type AwaitLocatorReadyResult, } from './readiness.js';
|
|
23
|
+
export { probeStorageBackend, checkCloudBackend, checkArweaveBackend, checkViaHealth, type StorageCheckResult, type StorageCheckOptions, } from './probe.js';
|
|
18
24
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,YAAY,EAAC,cAAc,EAAE,aAAa,EAAC,MAAM,cAAc,CAAC;AAChE,OAAO,EAAC,WAAW,EAAE,mBAAmB,EAAC,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC;AACvC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAC,YAAY,EAAE,KAAK,UAAU,EAAC,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAC,MAAM,WAAW,CAAC;AAC1E,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,kBAAkB,EAAE,cAAc,EAAE,KAAK,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAC,cAAc,EAAE,KAAK,qBAAqB,EAAC,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,YAAY,EAAC,cAAc,EAAE,aAAa,EAAC,MAAM,cAAc,CAAC;AAChE,OAAO,EAAC,WAAW,EAAE,mBAAmB,EAAC,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC;AACvC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,UAAU,GAChB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAC,YAAY,EAAE,KAAK,UAAU,EAAC,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAE,KAAK,UAAU,EAAC,MAAM,WAAW,CAAC;AAC1E,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,aAAa,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,kBAAkB,EAAE,cAAc,EAAE,KAAK,UAAU,EAAC,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAC,cAAc,EAAE,KAAK,qBAAqB,EAAC,MAAM,cAAc,CAAC;AACxE,OAAO,EAAC,gBAAgB,EAAE,KAAK,WAAW,EAAC,MAAM,cAAc,CAAC;AAChE,OAAO,EAAC,eAAe,EAAE,KAAK,YAAY,EAAC,MAAM,aAAa,CAAC;AAC/D,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,0BAA0B,EAC1B,KAAK,gBAAgB,EACrB,KAAK,oBAAoB,EACzB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,eAAe,GACrB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,kBAAkB,EAClB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,uBAAuB,GAC7B,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,YAAY,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -3,7 +3,13 @@ export { LocalFsBackend } from './fs.js';
|
|
|
3
3
|
export { CloudStorageBackend, cloudConfigFromEnv, deriveSigningKey, sigv4Signature, } from './cloud.js';
|
|
4
4
|
export { ContentIndex } from './content-index.js';
|
|
5
5
|
export { IpfsBackend, ipfsConfigFromEnv } from './ipfs.js';
|
|
6
|
-
export { ArweaveBackend, HttpBundlerUploader, TurboUploader, arweaveConfigFromEnv, arweaveFunding, arweaveProvider, turboIdentity, resolveTurboIdentity, turboIdentityAddress, isEthIdentity, ARWEAVE_FREE_UPLOAD_LIMIT, turboUploadCostUsd, turboUploadWinc, turboUploadId, turboBalanceForAddress, } from './arweave.js';
|
|
6
|
+
export { ArweaveBackend, HttpBundlerUploader, TurboUploader, arweaveConfigFromEnv, resolveArweaveJwk, arweaveKeyFilePath, arweaveFunding, arweaveProvider, turboIdentity, resolveTurboIdentity, turboIdentityAddress, isEthIdentity, ARWEAVE_FREE_UPLOAD_LIMIT, turboUploadCostUsd, turboUploadWinc, turboUploadId, turboBalanceForAddress, } from './arweave.js';
|
|
7
7
|
export { generateArweaveJwk, arweaveAddress } from './arweave-identity.js';
|
|
8
8
|
export { resolveBackend } from './resolve.js';
|
|
9
|
+
export { repinNodeCustody } from './migrate.js';
|
|
10
|
+
export { uploadAndLocate } from './upload.js';
|
|
11
|
+
export { DIRECT_URL_BACKENDS, decideImageContentLane, validateRenderStorageCombo, } from './content-plan.js';
|
|
12
|
+
export { isTurboArweave, planTurboUpload, assessStorageReadiness, assessTurboFunds, } from './upload-readiness.js';
|
|
13
|
+
export { locatorStatus, awaitLocatorReady, parseLocator, probeGateway, gatewayUrlFor, resolveGatewayBase, } from './readiness.js';
|
|
14
|
+
export { probeStorageBackend, checkCloudBackend, checkArweaveBackend, checkViaHealth, } from './probe.js';
|
|
9
15
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAC,WAAW,EAAE,mBAAmB,EAAC,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC;AACvC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,GAGf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAC,YAAY,EAAkB,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAkB,MAAM,WAAW,CAAC;AAC1E,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,sBAAsB,GAMvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,kBAAkB,EAAE,cAAc,EAAkB,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAC,cAAc,EAA6B,MAAM,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AASA,OAAO,EAAC,WAAW,EAAE,mBAAmB,EAAC,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAC,cAAc,EAAC,MAAM,SAAS,CAAC;AACvC,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gBAAgB,EAChB,cAAc,GAGf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAC,YAAY,EAAkB,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAC,WAAW,EAAE,iBAAiB,EAAkB,MAAM,WAAW,CAAC;AAC1E,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,yBAAyB,EACzB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,sBAAsB,GAMvB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAC,kBAAkB,EAAE,cAAc,EAAkB,MAAM,uBAAuB,CAAC;AAC1F,OAAO,EAAC,cAAc,EAA6B,MAAM,cAAc,CAAC;AACxE,OAAO,EAAC,gBAAgB,EAAmB,MAAM,cAAc,CAAC;AAChE,OAAO,EAAC,eAAe,EAAoB,MAAM,aAAa,CAAC;AAC/D,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,0BAA0B,GAK3B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,gBAAgB,GAIjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,kBAAkB,GASnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,GAGf,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The storage half of a resolver migration: re-pinning node-custody images to a durable backend.
|
|
3
|
+
*
|
|
4
|
+
* The rest of the migration — reconciling a destination resolver's off-chain state against a
|
|
5
|
+
* source resolver's served JSON (`buildMigrationPlan`/`verifyParity`) — is pure fetch-based
|
|
6
|
+
* reconciliation with no storage dependency, so it lives in `@artblocks/abx-sdk`'s `migrate.ts`.
|
|
7
|
+
* This module is the one piece that needs an actual byte-custody backend: turning a
|
|
8
|
+
* {@link NodeCustodyImage} (bytes that live only on the soon-to-be-decommissioned source host)
|
|
9
|
+
* into a portable, durable locator.
|
|
10
|
+
*/
|
|
11
|
+
import { type StorageBackend } from './backend.js';
|
|
12
|
+
import type { NodeCustodyImage } from '@artblocks/abx-sdk';
|
|
13
|
+
/**
|
|
14
|
+
* Re-pin node-custody images to a DURABLE backend so the destination never depends on the
|
|
15
|
+
* (soon-to-be-decommissioned) source host. For each image: fetch the bytes from the source,
|
|
16
|
+
* **verify** them against the on-chain hash (trustless — we trust the chain, not the old node),
|
|
17
|
+
* then `put` them to the destination operator's own backend and read back a portable locator.
|
|
18
|
+
*
|
|
19
|
+
* If the configured backend isn't durable (no `locator` — fs/cloud serve only through their own
|
|
20
|
+
* node, so re-pinning there just moves the single-host dependency), we re-pin NOTHING and report
|
|
21
|
+
* every image as `needsDurableBackend`: the right move is to configure IPFS/Arweave and re-run,
|
|
22
|
+
* never to bridge a URL that points back at the dying host.
|
|
23
|
+
*/
|
|
24
|
+
export interface RepinResult {
|
|
25
|
+
/** hash → new durable locator, ready to bridge to the destination. */
|
|
26
|
+
repinned: Record<string, string>;
|
|
27
|
+
/** Re-pinned token ids (for reporting). */
|
|
28
|
+
repinnedTokens: string[];
|
|
29
|
+
/** Bytes fetched but their hash didn't match the on-chain commitment — NOT trusted, NOT pinned. */
|
|
30
|
+
mismatched: NodeCustodyImage[];
|
|
31
|
+
/** Couldn't fetch the bytes from the source (host down, 404). */
|
|
32
|
+
unreachable: NodeCustodyImage[];
|
|
33
|
+
/** Skipped because no durable backend is configured — these need IPFS/Arweave + a re-run. */
|
|
34
|
+
needsDurableBackend: NodeCustodyImage[];
|
|
35
|
+
}
|
|
36
|
+
export declare function repinNodeCustody(images: NodeCustodyImage[], backend: StorageBackend): Promise<RepinResult>;
|
|
37
|
+
//# sourceMappingURL=migrate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAc,KAAK,cAAc,EAAC,MAAM,cAAc,CAAC;AAC9D,OAAO,KAAK,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AAGzD;;;;;;;;;;GAUG;AACH,MAAM,WAAW,WAAW;IAC1B,sEAAsE;IACtE,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,2CAA2C;IAC3C,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,mGAAmG;IACnG,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,iEAAiE;IACjE,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,6FAA6F;IAC7F,mBAAmB,EAAE,gBAAgB,EAAE,CAAC;CACzC;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,CAyChH"}
|
package/dist/migrate.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The storage half of a resolver migration: re-pinning node-custody images to a durable backend.
|
|
3
|
+
*
|
|
4
|
+
* The rest of the migration — reconciling a destination resolver's off-chain state against a
|
|
5
|
+
* source resolver's served JSON (`buildMigrationPlan`/`verifyParity`) — is pure fetch-based
|
|
6
|
+
* reconciliation with no storage dependency, so it lives in `@artblocks/abx-sdk`'s `migrate.ts`.
|
|
7
|
+
* This module is the one piece that needs an actual byte-custody backend: turning a
|
|
8
|
+
* {@link NodeCustodyImage} (bytes that live only on the soon-to-be-decommissioned source host)
|
|
9
|
+
* into a portable, durable locator.
|
|
10
|
+
*/
|
|
11
|
+
import { hashContent } from './backend.js';
|
|
12
|
+
export async function repinNodeCustody(images, backend) {
|
|
13
|
+
const result = { repinned: {}, repinnedTokens: [], mismatched: [], unreachable: [], needsDurableBackend: [] };
|
|
14
|
+
if (!images.length)
|
|
15
|
+
return result;
|
|
16
|
+
// A backend is "durable" for migration iff it can hand back a node-independent locator.
|
|
17
|
+
if (!backend.locator) {
|
|
18
|
+
result.needsDurableBackend = [...images];
|
|
19
|
+
return result;
|
|
20
|
+
}
|
|
21
|
+
for (const img of images) {
|
|
22
|
+
let bytes;
|
|
23
|
+
let contentType;
|
|
24
|
+
try {
|
|
25
|
+
const resp = await fetch(img.imageUrl);
|
|
26
|
+
if (!resp.ok) {
|
|
27
|
+
result.unreachable.push(img);
|
|
28
|
+
continue;
|
|
29
|
+
}
|
|
30
|
+
bytes = new Uint8Array(await resp.arrayBuffer());
|
|
31
|
+
contentType = resp.headers.get('content-type') ?? 'application/octet-stream';
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
result.unreachable.push(img);
|
|
35
|
+
continue;
|
|
36
|
+
}
|
|
37
|
+
// Trustless: re-hash the fetched bytes and compare to the ON-CHAIN commitment.
|
|
38
|
+
if (hashContent(bytes).toLowerCase() !== img.hash.toLowerCase()) {
|
|
39
|
+
result.mismatched.push(img);
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
await backend.put(img.hash, { bytes, contentType });
|
|
43
|
+
const loc = await backend.locator(img.hash);
|
|
44
|
+
if (loc) {
|
|
45
|
+
result.repinned[img.hash.toLowerCase()] = loc;
|
|
46
|
+
result.repinnedTokens.push(img.tokenId);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
// Stored, but the backend still can't produce a portable locator — treat as not durable.
|
|
50
|
+
result.needsDurableBackend.push(img);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return result;
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=migrate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate.js","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,EAAC,WAAW,EAAsB,MAAM,cAAc,CAAC;AA4B9D,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,MAA0B,EAAE,OAAuB;IACxF,MAAM,MAAM,GAAgB,EAAC,QAAQ,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAC,CAAC;IACzH,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,MAAM,CAAC;IAElC,wFAAwF;IACxF,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,CAAC,mBAAmB,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC;QACzC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,KAAiB,CAAC;QACtB,IAAI,WAAmB,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;gBACb,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC7B,SAAS;YACX,CAAC;YACD,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;YACjD,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,0BAA0B,CAAC;QAC/E,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC7B,SAAS;QACX,CAAC;QACD,+EAA+E;QAC/E,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YAChE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5B,SAAS;QACX,CAAC;QACD,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAW,EAAE,EAAC,KAAK,EAAE,WAAW,EAAC,CAAC,CAAC;QACzD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,IAAW,CAAC,CAAC;QACnD,IAAI,GAAG,EAAE,CAAC;YACR,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,GAAG,CAAC;YAC9C,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;aAAM,CAAC;YACN,yFAAyF;YACzF,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/probe.d.ts
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import type { StorageBackend } from './backend.js';
|
|
2
|
+
import type { CloudStorageConfig } from './cloud.js';
|
|
3
|
+
import { type ArweaveConfig } from './arweave.js';
|
|
4
|
+
import { type ResolveStorageOptions } from './resolve.js';
|
|
5
|
+
/**
|
|
6
|
+
* `abx storage show --check` / `abx doctor`'s storage section — go beyond "is this backend
|
|
7
|
+
* CONFIGURED" (what {@link resolveBackend} plus each backend's own `health()` already answer) to
|
|
8
|
+
* "does a write actually reach the URL a token would bake on-chain."
|
|
9
|
+
*
|
|
10
|
+
* The gap this closes is the R2/S3 endpoint-vs-public-base confusion: a backend's `health()` signs
|
|
11
|
+
* a request against the API `endpoint` — proving credentials work — but never touches the SEPARATE
|
|
12
|
+
* `publicBase` a marketplace would actually fetch from. Those can point at different buckets (or one
|
|
13
|
+
* can simply be wrong) with `health()` reporting green the whole time. A PUT through the API,
|
|
14
|
+
* fetched back over the PUBLIC base with a plain unsigned GET, is the only check that proves the two
|
|
15
|
+
* agree.
|
|
16
|
+
*
|
|
17
|
+
* `fs` and `ipfs` are NOT reimplemented here — their existing `health()` already does exactly what's
|
|
18
|
+
* asked (fs: writability; ipfs: gateway/API reachability, no upload) and duplicating that logic is
|
|
19
|
+
* how the two copies drift. `arweave` layers a balance READ (never a paid upload) on top of its
|
|
20
|
+
* existing identity check. `cloud` gets the new round trip.
|
|
21
|
+
*/
|
|
22
|
+
export interface StorageCheckResult {
|
|
23
|
+
backend: string;
|
|
24
|
+
ok: boolean;
|
|
25
|
+
detail: string;
|
|
26
|
+
/** Set on a `cloud` check — the API write target and the public read URL, so a mismatch between
|
|
27
|
+
* them (the R2/S3 endpoint-vs-public-base trap) is visible on failure rather than a bare
|
|
28
|
+
* "fetch failed". Equal in shape, not necessarily in host — that's exactly what's being checked. */
|
|
29
|
+
putUrl?: string;
|
|
30
|
+
publicUrl?: string;
|
|
31
|
+
}
|
|
32
|
+
export interface StorageCheckOptions {
|
|
33
|
+
/** Bound on each network step. A backend method with no abort hook (cloud's `putObject`/
|
|
34
|
+
* `getObject`, arweave's balance read) is raced against this rather than truly cancelled — good
|
|
35
|
+
* enough to keep a caller (doctor) from hanging, not a guarantee the underlying request stopped. */
|
|
36
|
+
timeoutMs?: number;
|
|
37
|
+
/** Injectable for tests — used for the public-base GET only (the PUT/API side goes through the
|
|
38
|
+
* resolved backend, which owns its own signing). */
|
|
39
|
+
fetchFn?: typeof fetch;
|
|
40
|
+
}
|
|
41
|
+
/** fs + ipfs (and any future backend with nothing more to add): delegate straight to the existing
|
|
42
|
+
* `health()` — see the module doc for why this is reuse, not a stand-in pending real logic. */
|
|
43
|
+
export declare function checkViaHealth(backend: StorageBackend, opts?: StorageCheckOptions): Promise<StorageCheckResult>;
|
|
44
|
+
/**
|
|
45
|
+
* `cloud`: PUT a tiny probe object through the signed API, then GET it back with a plain,
|
|
46
|
+
* UNSIGNED fetch against `publicBase` — the same request a marketplace/browser would make. Reuses
|
|
47
|
+
* one well-known key (`abx-probe/check.txt`) rather than minting a new one per run, so repeated
|
|
48
|
+
* checks don't litter the bucket. `cfg` (when given) names the API write target too — the R2/S3
|
|
49
|
+
* endpoint-vs-public-base trap is only diagnosable if BOTH URLs are on screen, not just the one
|
|
50
|
+
* that failed.
|
|
51
|
+
*/
|
|
52
|
+
export declare function checkCloudBackend(backend: StorageBackend, cfg?: CloudStorageConfig, opts?: StorageCheckOptions): Promise<StorageCheckResult>;
|
|
53
|
+
/**
|
|
54
|
+
* `arweave`: the existing `health()` (gateway reachability + identity presence) plus a Turbo
|
|
55
|
+
* BALANCE read when an identity already exists — never a paid upload (no identity yet is reported
|
|
56
|
+
* as-is: it's created free on first real upload, so there's nothing to check).
|
|
57
|
+
*/
|
|
58
|
+
export declare function checkArweaveBackend(backend: StorageBackend, cfg: ArweaveConfig | undefined, opts?: StorageCheckOptions): Promise<StorageCheckResult>;
|
|
59
|
+
/**
|
|
60
|
+
* The one storage-config probe both `abx storage show --check` and `abx doctor` call — dispatches to
|
|
61
|
+
* the right per-backend check above. Resolving the backend can throw (missing required config, e.g.
|
|
62
|
+
* cloud with no endpoint/bucket) — same as every other `resolveBackend` call site, and the caller's
|
|
63
|
+
* existing try/catch around it is the right place to handle that, not this function.
|
|
64
|
+
*/
|
|
65
|
+
export declare function probeStorageBackend(opts: ResolveStorageOptions, checkOpts?: StorageCheckOptions): Promise<StorageCheckResult>;
|
|
66
|
+
//# sourceMappingURL=probe.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../src/probe.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,cAAc,CAAC;AACjD,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,YAAY,CAAC;AACnD,OAAO,EAAqE,KAAK,aAAa,EAAC,MAAM,cAAc,CAAC;AACpH,OAAO,EAAiB,KAAK,qBAAqB,EAAC,MAAM,cAAc,CAAC;AAExE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf;;yGAEqG;IACrG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,mBAAmB;IAClC;;yGAEqG;IACrG,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;yDACqD;IACrD,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CACxB;AAqBD;gGACgG;AAChG,wBAAsB,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAYzH;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,kBAAkB,EAAE,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA+DtJ;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,EAAE,aAAa,GAAG,SAAS,EAAE,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CA0B9J;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,qBAAqB,EAAE,SAAS,GAAE,mBAAwB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAKvI"}
|