@artblocks/abx-sdk 0.1.0-alpha.10 → 0.1.0-alpha.11

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/deps.d.ts CHANGED
@@ -12,9 +12,14 @@
12
12
  *
13
13
  * Also speaks the AB-compatible registry READ interface (`IDependencyRegistryV0`,
14
14
  * specs/protocol/dependency-registry.md): `getDependencyDetails(bytes32)` is the
15
- * load-bearing read behind the CLI's best-effort selection-time check.
15
+ * load-bearing read behind the CLI's best-effort selection-time check, and
16
+ * `getDependencyScript(bytes32, index)` is the resolver's own read for on-chain bytes (see the
17
+ * "resolver's registry-aware serving lane" section below — hoisted from
18
+ * `@artblocks/abx-token-api` in the abx-services integrator ask, because it shares this exact
19
+ * vocabulary end to end).
16
20
  */
17
- import { type Address, type Hex } from 'viem';
21
+ import { type Address, type Hex, type PublicClient } from 'viem';
22
+ import type { DependencyInfo, ProjectState } from './types.js';
18
23
  /** `IAbxDependencies.Resolution` — index-aligned with the Solidity enum. */
19
24
  export declare const DEP_RESOLUTION: {
20
25
  readonly registry: 0;
@@ -40,9 +45,16 @@ export declare function parseDependencyRef(input: string): ParsedDependencyRef;
40
45
  /** The reverse read: an evented `(resolution, bytes32)` back to its human form (the twin of
41
46
  * the reconstruction fold's decode — registry ⇒ the tag, onchain ⇒ the address). */
42
47
  export declare function decodeDependencyRef(resolution: DepResolution, ref: Hex): string;
43
- /** The load-bearing read of AB's `IDependencyRegistryV0` — the exact upstream signature
44
- * (any registry ABX consumers read from speaks this shape; see the dependency-registry spec). */
45
- export declare const dependencyRegistryReadAbi: readonly [{
48
+ /**
49
+ * The load-bearing reads of AB's `IDependencyRegistryV0` — the exact upstream signatures (any
50
+ * registry ABX consumers read from speaks this shape; see the dependency-registry spec).
51
+ * `getDependencyDetails` backs both the CLI's best-effort selection-time check and the
52
+ * resolver's own resolution; `getDependencyScript` is the resolver-only per-chunk read for a
53
+ * dep whose bytes live on chain. (Merging this hoist: token-api's `DEPENDENCY_REGISTRY_ABI` and
54
+ * this module's prior `dependencyRegistryReadAbi` declared the identical `getDependencyDetails`
55
+ * entry twice — one array now backs both callers.)
56
+ */
57
+ export declare const DEPENDENCY_REGISTRY_ABI: readonly [{
46
58
  readonly type: "function";
47
59
  readonly name: "getDependencyDetails";
48
60
  readonly stateMutability: "view";
@@ -78,6 +90,20 @@ export declare const dependencyRegistryReadAbi: readonly [{
78
90
  readonly name: "scriptCount";
79
91
  readonly type: "uint24";
80
92
  }];
93
+ }, {
94
+ readonly type: "function";
95
+ readonly name: "getDependencyScript";
96
+ readonly stateMutability: "view";
97
+ readonly inputs: readonly [{
98
+ readonly name: "dependencyNameAndVersion";
99
+ readonly type: "bytes32";
100
+ }, {
101
+ readonly name: "index";
102
+ readonly type: "uint256";
103
+ }];
104
+ readonly outputs: readonly [{
105
+ readonly type: "string";
106
+ }];
81
107
  }];
82
108
  /** What the selection-time check cares about from a registry record. */
83
109
  export interface RegistryDependencyDetails {
@@ -144,4 +170,57 @@ export declare function checkRegistryDeps(client: DependencyReadClient, registry
144
170
  checks: DepCheck[];
145
171
  rpcOk: boolean;
146
172
  }>;
173
+ /** What a registry ref resolved to: on-chain bytes (decompressed, inline-ready JS) or a CDN URL. */
174
+ export type RegistryResolution = {
175
+ kind: 'onchain';
176
+ script: string;
177
+ } | {
178
+ kind: 'cdn';
179
+ url: string;
180
+ };
181
+ export interface RegistryResolveOptions {
182
+ /** Decompress gzip bytes — required only when the resolved dependency is on-chain bytes
183
+ * (`availableOnChain` with `scriptCount > 0`); a CDN-resolved or unresolved dep never needs
184
+ * it. Omitting it in that case throws {@link InflateRequiredError} naming the fix. */
185
+ inflate?: (bytes: Uint8Array) => Uint8Array;
186
+ }
187
+ /** Reset the in-process registry-resolution cache — for tests. */
188
+ export declare function resetRegistryDependencyCache(): void;
189
+ /** The collection's registry pointer, if set to a real address (zero/undefined ⇒ none). */
190
+ export declare function activeRegistry(state: ProjectState): Address | null;
191
+ /**
192
+ * Resolve one `name@version` ref through the collection's registry. Returns the resolution
193
+ * (or null when the registry couldn't answer — caller falls back to the built-in map) plus
194
+ * whether it was served from cache. Never throws for a resolution failure; a fresh one logs ONE
195
+ * warn (the negative cache rate-limits it) naming the dep and why. DOES throw
196
+ * {@link InflateRequiredError} when the resolution needs decompression and `opts.inflate` is
197
+ * absent — that is a caller-configuration bug, not a resolution outcome.
198
+ */
199
+ export declare function resolveRegistryDep(client: PublicClient, registry: Address, dep: DependencyInfo, opts?: RegistryResolveOptions): Promise<{
200
+ resolution: RegistryResolution | null;
201
+ cached: boolean;
202
+ error?: string;
203
+ }>;
204
+ /**
205
+ * Resolve a `name@version` registry ref to a CDN URL — the built-in reference convention,
206
+ * the LAST-resort rung of the resolution order (the soft registry pointer stays
207
+ * non-validating). Known runtimes get their real dist paths; anything else is best-effort npm.
208
+ */
209
+ export declare function registryDepUrl(ref: string): string | null;
210
+ /**
211
+ * The ordered dependency `<script>` tags for the generator document, each dep resolved per
212
+ * the Consumers table: registry on-chain bytes → registry preferredCDN → built-in map;
213
+ * `onchain`-resolution refs read their SSTORE2 data contract directly (never a registry).
214
+ * Never throws for a resolution failure — an unresolvable dep is skipped (after the warn) and
215
+ * the document assembles. DOES propagate {@link InflateRequiredError} (see
216
+ * {@link resolveRegistryDep}) — a missing `inflate` is a host wiring bug, not a bad dep.
217
+ */
218
+ export declare function dependencyScriptTags(client: PublicClient, state: ProjectState, opts?: RegistryResolveOptions): Promise<string[]>;
219
+ /** The spec's URL-carried tokenData size budget: gateway front-ends commonly cap request lines
220
+ * near 8KB. Applies to URL-carried `?abx=` payloads (a resolver's directory-mode 302 fallback);
221
+ * inline document serving is unaffected. Hoisted alongside the rest of this lane — the
222
+ * budget-tracking/observability surface built on it (`checkUrlBudget`, `urlBudgetStatus`) stays
223
+ * resolver-local (token-api/src/deps.ts), since it's a serving-observability concern rather than
224
+ * a resolution rule. */
225
+ export declare const URL_BUDGET_BYTES = 8192;
147
226
  //# sourceMappingURL=deps.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,EAAoC,KAAK,OAAO,EAAE,KAAK,GAAG,EAAC,MAAM,MAAM,CAAC;AAK/E,4EAA4E;AAC5E,eAAO,MAAM,cAAc;;;CAAqC,CAAC;AACjE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,cAAc,CAAC,CAAC,MAAM,OAAO,cAAc,CAAC,CAAC;AAEjF,oGAAoG;AACpG,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,aAAa,CAAC;IAC1B,GAAG,EAAE,GAAG,CAAC;IACT,OAAO,EAAE,MAAM,CAAC;CACjB;AAMD;;sFAEsF;AACtF,wBAAgB,oBAAoB,CAAC,cAAc,EAAE,MAAM,GAAG,GAAG,CAahE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,mBAAmB,CAOrE;AAED;qFACqF;AACrF,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,EAAE,GAAG,GAAG,MAAM,CAE/E;AAID;kGACkG;AAClG,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkB5B,CAAC;AAEX,wEAAwE;AACxE,MAAM,WAAW,yBAAyB;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,uGAAuG;AACvG,MAAM,WAAW,oBAAoB;IACnC,YAAY,CAAC,IAAI,EAAE;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,SAAS,OAAO,EAAE,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,SAAS,OAAO,EAAE,CAAA;KAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACnI;AAED;;;;;;;;GAQG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,oBAAoB,EAC5B,QAAQ,EAAE,OAAO,EACjB,GAAG,EAAE,GAAG,GACP,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAW3C;AAQD;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,EAAE,MAAM,GACd;IAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAA;CAAC,CASjE;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,mBAAmB,EAAE,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,GAAG,GAAG,EAAE,CAQjG;AAED,8GAA8G;AAC9G,MAAM,MAAM,QAAQ,GAChB;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,yBAAyB,CAAA;CAAC,GAClE;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAC,GAClC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAC,CAAC;AAErC;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,oBAAoB,EAC5B,QAAQ,EAAE,OAAO,EACjB,IAAI,EAAE,mBAAmB,EAAE,GAC1B,OAAO,CAAC;IAAC,MAAM,EAAE,QAAQ,EAAE,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAC,CAAC,CAyB/C"}
1
+ {"version":3,"file":"deps.d.ts","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"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"}
package/dist/deps.js CHANGED
@@ -12,12 +12,19 @@
12
12
  *
13
13
  * Also speaks the AB-compatible registry READ interface (`IDependencyRegistryV0`,
14
14
  * specs/protocol/dependency-registry.md): `getDependencyDetails(bytes32)` is the
15
- * load-bearing read behind the CLI's best-effort selection-time check.
15
+ * load-bearing read behind the CLI's best-effort selection-time check, and
16
+ * `getDependencyScript(bytes32, index)` is the resolver's own read for on-chain bytes (see the
17
+ * "resolver's registry-aware serving lane" section below — hoisted from
18
+ * `@artblocks/abx-token-api` in the abx-services integrator ask, because it shares this exact
19
+ * vocabulary end to end).
16
20
  */
17
- import { encodeFunctionData, padHex, toHex } from 'viem';
21
+ import { encodeFunctionData, hexToString, padHex, toHex } from 'viem';
18
22
  import { decodeTag } from './spine.js';
19
23
  import { seriesCodeAbi } from './abi/index.js';
20
24
  import { resolveDependencyRegistry } from './deployments.js';
25
+ import { escapeInlineScript } from './generator-document.js';
26
+ import { base64ToBytes } from './util.js';
27
+ import { InflateRequiredError } from './errors.js';
21
28
  /** `IAbxDependencies.Resolution` — index-aligned with the Solidity enum. */
22
29
  export const DEP_RESOLUTION = { registry: 0, onchain: 1 };
23
30
  // Printable non-space ASCII — what a readable bytes32 tag can carry unambiguously
@@ -59,9 +66,16 @@ export function decodeDependencyRef(resolution, ref) {
59
66
  return resolution === DEP_RESOLUTION.onchain ? '0x' + ref.slice(2, 42) : decodeTag(ref);
60
67
  }
61
68
  // ── the AB-compatible registry read (IDependencyRegistryV0) ───────────────────
62
- /** The load-bearing read of AB's `IDependencyRegistryV0` — the exact upstream signature
63
- * (any registry ABX consumers read from speaks this shape; see the dependency-registry spec). */
64
- export const dependencyRegistryReadAbi = [
69
+ /**
70
+ * The load-bearing reads of AB's `IDependencyRegistryV0` — the exact upstream signatures (any
71
+ * registry ABX consumers read from speaks this shape; see the dependency-registry spec).
72
+ * `getDependencyDetails` backs both the CLI's best-effort selection-time check and the
73
+ * resolver's own resolution; `getDependencyScript` is the resolver-only per-chunk read for a
74
+ * dep whose bytes live on chain. (Merging this hoist: token-api's `DEPENDENCY_REGISTRY_ABI` and
75
+ * this module's prior `dependencyRegistryReadAbi` declared the identical `getDependencyDetails`
76
+ * entry twice — one array now backs both callers.)
77
+ */
78
+ export const DEPENDENCY_REGISTRY_ABI = [
65
79
  {
66
80
  type: 'function',
67
81
  name: 'getDependencyDetails',
@@ -79,6 +93,16 @@ export const dependencyRegistryReadAbi = [
79
93
  { name: 'scriptCount', type: 'uint24' },
80
94
  ],
81
95
  },
96
+ {
97
+ type: 'function',
98
+ name: 'getDependencyScript',
99
+ stateMutability: 'view',
100
+ inputs: [
101
+ { name: 'dependencyNameAndVersion', type: 'bytes32' },
102
+ { name: 'index', type: 'uint256' },
103
+ ],
104
+ outputs: [{ type: 'string' }],
105
+ },
82
106
  ];
83
107
  /**
84
108
  * Read one dependency's registry record. Returns `null` when the registry doesn't know the
@@ -92,7 +116,7 @@ export const dependencyRegistryReadAbi = [
92
116
  export async function readRegistryDependency(client, registry, ref) {
93
117
  const out = (await client.readContract({
94
118
  address: registry,
95
- abi: dependencyRegistryReadAbi,
119
+ abi: DEPENDENCY_REGISTRY_ABI,
96
120
  functionName: 'getDependencyDetails',
97
121
  args: [ref],
98
122
  }));
@@ -169,4 +193,153 @@ export async function checkRegistryDeps(client, registry, deps) {
169
193
  }
170
194
  return { checks, rpcOk };
171
195
  }
196
+ // Resolved registry entries are effectively immutable (admin-gated writes), so an in-process
197
+ // cache is safe; the TTL only guards admin updates. Failures negative-cache briefly so a dead
198
+ // registry doesn't cost an eth_call (and a warn) per request.
199
+ const REGISTRY_CACHE_TTL_MS = 60 * 60 * 1000; // 1h
200
+ const REGISTRY_NEGATIVE_TTL_MS = 60 * 1000; // 1min
201
+ const registryCache = new Map();
202
+ /** Reset the in-process registry-resolution cache — for tests. */
203
+ export function resetRegistryDependencyCache() {
204
+ registryCache.clear();
205
+ }
206
+ /** The collection's registry pointer, if set to a real address (zero/undefined ⇒ none). */
207
+ export function activeRegistry(state) {
208
+ const registry = state.dependencies?.registry ?? null;
209
+ if (!registry || /^0x0{40}$/i.test(registry))
210
+ return null;
211
+ return registry;
212
+ }
213
+ /**
214
+ * Resolve one `name@version` ref through the collection's registry. Returns the resolution
215
+ * (or null when the registry couldn't answer — caller falls back to the built-in map) plus
216
+ * whether it was served from cache. Never throws for a resolution failure; a fresh one logs ONE
217
+ * warn (the negative cache rate-limits it) naming the dep and why. DOES throw
218
+ * {@link InflateRequiredError} when the resolution needs decompression and `opts.inflate` is
219
+ * absent — that is a caller-configuration bug, not a resolution outcome.
220
+ */
221
+ export async function resolveRegistryDep(client, registry, dep, opts = {}) {
222
+ const key = `${registry.toLowerCase()}|${dep.refDecoded}`;
223
+ const hit = registryCache.get(key);
224
+ if (hit && hit.expiresAt > Date.now()) {
225
+ return { resolution: hit.value, cached: true, error: hit.error };
226
+ }
227
+ try {
228
+ // nameAndVersion rides as readable-ASCII bytes32 — the raw evented ref, right-padded.
229
+ const ref = padHex(dep.ref, { size: 32, dir: 'right' });
230
+ const details = (await client.readContract({
231
+ address: registry,
232
+ abi: DEPENDENCY_REGISTRY_ABI,
233
+ functionName: 'getDependencyDetails',
234
+ args: [ref],
235
+ }));
236
+ const [nameAndVersion, , preferredCDN, , , , , availableOnChain, scriptCount] = details;
237
+ if (availableOnChain && scriptCount > 0) {
238
+ // Per-chunk reads; the concatenated chunk strings form one base64(gzip(script)) stream.
239
+ const chunks = (await Promise.all(Array.from({ length: Number(scriptCount) }, (_, i) => client.readContract({
240
+ address: registry,
241
+ abi: DEPENDENCY_REGISTRY_ABI,
242
+ functionName: 'getDependencyScript',
243
+ args: [ref, BigInt(i)],
244
+ }))));
245
+ if (!opts.inflate)
246
+ throw new InflateRequiredError();
247
+ const gz = base64ToBytes(chunks.join(''));
248
+ const script = new TextDecoder().decode(opts.inflate(gz));
249
+ const value = { kind: 'onchain', script };
250
+ registryCache.set(key, { value, expiresAt: Date.now() + REGISTRY_CACHE_TTL_MS });
251
+ return { resolution: value, cached: false };
252
+ }
253
+ if (preferredCDN) {
254
+ const value = { kind: 'cdn', url: preferredCDN };
255
+ registryCache.set(key, { value, expiresAt: Date.now() + REGISTRY_CACHE_TTL_MS });
256
+ return { resolution: value, cached: false };
257
+ }
258
+ // An empty struct back means the entry simply isn't registered.
259
+ const why = nameAndVersion
260
+ ? 'registered but has neither on-chain bytes nor a preferredCDN'
261
+ : 'not registered in the registry';
262
+ return failRegistryResolution(key, dep, registry, why);
263
+ }
264
+ catch (err) {
265
+ // A missing inflate is a host-configuration bug, not a resolution outcome — surface it
266
+ // rather than mis-reporting it as "registry read failed" and quietly falling back.
267
+ if (err instanceof InflateRequiredError)
268
+ throw err;
269
+ return failRegistryResolution(key, dep, registry, `registry read failed: ${err.message}`);
270
+ }
271
+ }
272
+ /** Negative-cache a failed resolution + one warn (per negative-TTL window). Never throws. */
273
+ function failRegistryResolution(key, dep, registry, why) {
274
+ registryCache.set(key, { value: null, error: why, expiresAt: Date.now() + REGISTRY_NEGATIVE_TTL_MS });
275
+ console.warn(`[deps] registry resolution failed for ${dep.refDecoded} via ${registry}: ${why} — falling back to the built-in CDN map`);
276
+ return { resolution: null, cached: false, error: why };
277
+ }
278
+ /**
279
+ * Resolve a `name@version` registry ref to a CDN URL — the built-in reference convention,
280
+ * the LAST-resort rung of the resolution order (the soft registry pointer stays
281
+ * non-validating). Known runtimes get their real dist paths; anything else is best-effort npm.
282
+ */
283
+ export function registryDepUrl(ref) {
284
+ const at = ref.lastIndexOf('@');
285
+ if (at <= 0)
286
+ return null;
287
+ const name = ref.slice(0, at);
288
+ const version = ref.slice(at + 1);
289
+ const known = {
290
+ p5js: `https://cdn.jsdelivr.net/npm/p5@${version}/lib/p5.min.js`,
291
+ p5: `https://cdn.jsdelivr.net/npm/p5@${version}/lib/p5.min.js`,
292
+ threejs: `https://cdn.jsdelivr.net/npm/three@${version}/build/three.min.js`,
293
+ three: `https://cdn.jsdelivr.net/npm/three@${version}/build/three.min.js`,
294
+ tonejs: `https://cdn.jsdelivr.net/npm/tone@${version}/build/Tone.js`,
295
+ };
296
+ return known[name] ?? `https://cdn.jsdelivr.net/npm/${name}@${version}`;
297
+ }
298
+ /**
299
+ * The ordered dependency `<script>` tags for the generator document, each dep resolved per
300
+ * the Consumers table: registry on-chain bytes → registry preferredCDN → built-in map;
301
+ * `onchain`-resolution refs read their SSTORE2 data contract directly (never a registry).
302
+ * Never throws for a resolution failure — an unresolvable dep is skipped (after the warn) and
303
+ * the document assembles. DOES propagate {@link InflateRequiredError} (see
304
+ * {@link resolveRegistryDep}) — a missing `inflate` is a host wiring bug, not a bad dep.
305
+ */
306
+ export async function dependencyScriptTags(client, state, opts = {}) {
307
+ const registry = activeRegistry(state);
308
+ const tags = [];
309
+ for (const dep of state.dependencies?.list ?? []) {
310
+ if (dep.resolution === 'registry') {
311
+ if (registry) {
312
+ const { resolution } = await resolveRegistryDep(client, registry, dep, opts);
313
+ if (resolution?.kind === 'onchain') {
314
+ tags.push(`<script>${escapeInlineScript(resolution.script)}</script>`);
315
+ continue;
316
+ }
317
+ if (resolution?.kind === 'cdn') {
318
+ tags.push(`<script src="${resolution.url}"></script>`);
319
+ continue;
320
+ }
321
+ // fell through — resolveRegistryDep already warned; last resort below
322
+ }
323
+ const url = registryDepUrl(dep.refDecoded);
324
+ if (url)
325
+ tags.push(`<script src="${url}"></script>`);
326
+ }
327
+ else {
328
+ // on-chain dep: an SSTORE2 data contract holding the JS (code = 0x00 ‖ content). No
329
+ // inflate needed here — raw bytecode, never gzip'd — so this branch never touches `opts`.
330
+ const bytecode = await client.getCode({ address: dep.refDecoded });
331
+ if (bytecode && bytecode.length > 4) {
332
+ tags.push(`<script>${escapeInlineScript(hexToString(('0x' + bytecode.slice(4))))}</script>`);
333
+ }
334
+ }
335
+ }
336
+ return tags;
337
+ }
338
+ /** The spec's URL-carried tokenData size budget: gateway front-ends commonly cap request lines
339
+ * near 8KB. Applies to URL-carried `?abx=` payloads (a resolver's directory-mode 302 fallback);
340
+ * inline document serving is unaffected. Hoisted alongside the rest of this lane — the
341
+ * budget-tracking/observability surface built on it (`checkUrlBudget`, `urlBudgetStatus`) stays
342
+ * resolver-local (token-api/src/deps.ts), since it's a serving-observability concern rather than
343
+ * a resolution rule. */
344
+ export const URL_BUDGET_BYTES = 8192;
172
345
  //# sourceMappingURL=deps.js.map
package/dist/deps.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"deps.js","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deps.js","sourceRoot":"","sources":["../src/deps.ts"],"names":[],"mappings":"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"}
package/dist/errors.d.ts CHANGED
@@ -42,6 +42,17 @@ export declare class GasEstimateBelowFloorError extends AbxSdkError {
42
42
  export declare class MissingSigningKeyError extends AbxSdkError {
43
43
  constructor();
44
44
  }
45
+ /**
46
+ * A registry-resolved dependency's on-chain bytes are gzip'd, and no `inflate` was supplied to
47
+ * decompress them (`resolveRegistryDep`/`dependencyScriptTags`, deps.ts). SDK core carries no
48
+ * `node:zlib` — it has to stay reachable from a browser bundle (see `test/browser-bundle.test.ts`)
49
+ * — so decompression is an injected function rather than a direct call. Thrown instead of letting
50
+ * the caller either crash on `opts.inflate(...)` being undefined or silently serve a broken
51
+ * document; names the exact fix instead of a generic "cannot read properties of undefined".
52
+ */
53
+ export declare class InflateRequiredError extends AbxSdkError {
54
+ constructor();
55
+ }
45
56
  /** The five bootstrap-or-refuse trust anchors / singletons `ensureFactory` & co. (anchors.ts)
46
57
  * resolve. */
47
58
  export type AnchorKind = 'factory' | 'series-factory' | 'series-code-factory' | 'renderer' | 'seed-source';
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAE,GAAG,EAAC,MAAM,MAAM,CAAC;AAEvC;;;;;;;GAOG;AACH,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI5B;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;gBACT,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG;CAMpC;AAED;;;;;;GAMG;AACH,qBAAa,0BAA2B,SAAQ,WAAW;IACzD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBACX,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAW5C;AAED;;;;;;GAMG;AACH,qBAAa,sBAAuB,SAAQ,WAAW;;CAQtD;AAED;eACe;AACf,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,UAAU,GAAG,aAAa,CAAC;AAE3G;;;;;;;;GAQG;AACH,qBAAa,sBAAuB,SAAQ,WAAW;IACrD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,eAAe,GAAG,gBAAgB,CAAC;IAChE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;gBACf,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,GAAG,eAAe,GAAG,gBAAgB,EAAE,OAAO,CAAC,EAAE,OAAO;CAO1G"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,OAAO,EAAE,GAAG,EAAC,MAAM,MAAM,CAAC;AAEvC;;;;;;;GAOG;AACH,qBAAa,WAAY,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM;CAI5B;AAED;;;;GAIG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC;gBACT,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG;CAMpC;AAED;;;;;;GAMG;AACH,qBAAa,0BAA2B,SAAQ,WAAW;IACzD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBACX,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;CAW5C;AAED;;;;;;GAMG;AACH,qBAAa,sBAAuB,SAAQ,WAAW;;CAQtD;AAED;;;;;;;GAOG;AACH,qBAAa,oBAAqB,SAAQ,WAAW;;CAUpD;AAED;eACe;AACf,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,gBAAgB,GAAG,qBAAqB,GAAG,UAAU,GAAG,aAAa,CAAC;AAE3G;;;;;;;;GAQG;AACH,qBAAa,sBAAuB,SAAQ,WAAW;IACrD,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,eAAe,GAAG,gBAAgB,CAAC;IAChE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;gBACf,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,GAAG,eAAe,GAAG,gBAAgB,EAAE,OAAO,CAAC,EAAE,OAAO;CAO1G"}
package/dist/errors.js CHANGED
@@ -61,6 +61,23 @@ export class MissingSigningKeyError extends AbxSdkError {
61
61
  this.name = 'MissingSigningKeyError';
62
62
  }
63
63
  }
64
+ /**
65
+ * A registry-resolved dependency's on-chain bytes are gzip'd, and no `inflate` was supplied to
66
+ * decompress them (`resolveRegistryDep`/`dependencyScriptTags`, deps.ts). SDK core carries no
67
+ * `node:zlib` — it has to stay reachable from a browser bundle (see `test/browser-bundle.test.ts`)
68
+ * — so decompression is an injected function rather than a direct call. Thrown instead of letting
69
+ * the caller either crash on `opts.inflate(...)` being undefined or silently serve a broken
70
+ * document; names the exact fix instead of a generic "cannot read properties of undefined".
71
+ */
72
+ export class InflateRequiredError extends AbxSdkError {
73
+ constructor() {
74
+ super("A registry-resolved dependency's on-chain bytes are gzip-compressed, but no `inflate` was " +
75
+ 'provided to decompress them. On a Node host, pass `nodeInflate` from `@artblocks/abx-sdk/node` ' +
76
+ "(e.g. `dependencyScriptTags(client, state, {inflate: nodeInflate})`). In a browser, pass a " +
77
+ 'DecompressionStream-based implementation — SDK core carries no `node:zlib` so it never assumes one.');
78
+ this.name = 'InflateRequiredError';
79
+ }
80
+ }
64
81
  /**
65
82
  * A trust anchor {@link AnchorKind} that `ensureFactory`/`ensureSeriesFactory`/
66
83
  * `ensureSeriesCodeFactory` (anchors.ts) could not resolve to a usable address, with
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,eAAgB,SAAQ,WAAW;IACrC,EAAE,CAAS;IACX,MAAM,CAAM;IACrB,YAAY,EAAU,EAAE,MAAW;QACjC,KAAK,CAAC,GAAG,EAAE,cAAc,MAAM,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,0BAA2B,SAAQ,WAAW;IAChD,QAAQ,CAAS;IACjB,KAAK,CAAS;IACvB,YAAY,QAAgB,EAAE,KAAa;QACzC,KAAK,CACH,uCAAuC,QAAQ,uDAAuD,KAAK,GAAG;YAC5G,YAAY,KAAK,GAAG,IAAI,wGAAwG;YAChI,iIAAiI;YACjI,kIAAkI,CACrI,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,sBAAuB,SAAQ,WAAW;IACrD;QACE,KAAK,CACH,0DAA0D;YACxD,mGAAmG,CACtG,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAMD;;;;;;;;GAQG;AACH,MAAM,OAAO,sBAAuB,SAAQ,WAAW;IAC5C,MAAM,CAAa;IACnB,MAAM,CAAiD;IACvD,OAAO,CAAW;IAC3B,YAAY,MAAkB,EAAE,MAAsD,EAAE,OAAiB;QACvG,KAAK,CAAC,GAAG,MAAM,8BAA8B,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACxF,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA;;;;;;;GAOG;AACH,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,eAAgB,SAAQ,WAAW;IACrC,EAAE,CAAS;IACX,MAAM,CAAM;IACrB,YAAY,EAAU,EAAE,MAAW;QACjC,KAAK,CAAC,GAAG,EAAE,cAAc,MAAM,GAAG,CAAC,CAAC;QACpC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;QAC9B,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,0BAA2B,SAAQ,WAAW;IAChD,QAAQ,CAAS;IACjB,KAAK,CAAS;IACvB,YAAY,QAAgB,EAAE,KAAa;QACzC,KAAK,CACH,uCAAuC,QAAQ,uDAAuD,KAAK,GAAG;YAC5G,YAAY,KAAK,GAAG,IAAI,wGAAwG;YAChI,iIAAiI;YACjI,kIAAkI,CACrI,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;QACzC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,OAAO,sBAAuB,SAAQ,WAAW;IACrD;QACE,KAAK,CACH,0DAA0D;YACxD,mGAAmG,CACtG,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IACnD;QACE,KAAK,CACH,4FAA4F;YAC1F,iGAAiG;YACjG,6FAA6F;YAC7F,qGAAqG,CACxG,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;CACF;AAMD;;;;;;;;GAQG;AACH,MAAM,OAAO,sBAAuB,SAAQ,WAAW;IAC5C,MAAM,CAAa;IACnB,MAAM,CAAiD;IACvD,OAAO,CAAW;IAC3B,YAAY,MAAkB,EAAE,MAAsD,EAAE,OAAiB;QACvG,KAAK,CAAC,GAAG,MAAM,8BAA8B,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;QACxF,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;QACrC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1,32 @@
1
+ /** The locator's network, which decides which gateways can be asked about it. `http` locators
2
+ * carry their own base (they are already an absolute URL) and resolve to `''` here — a caller
3
+ * returns them verbatim before consulting a gateway. */
4
+ export type LocatorNetwork = 'arweave' | 'ipfs' | 'http';
5
+ /** Resolved gateway overrides for the two content-addressed networks — the shape both
6
+ * {@link resolveGatewayBase} and {@link gatewayConfigFromEnv} speak. */
7
+ export interface GatewayOverrides {
8
+ ipfs?: string;
9
+ arweave?: string;
10
+ }
11
+ /**
12
+ * The gateway BASE for a locator network, given already-resolved `overrides` — PURE, no env
13
+ * read. Defaults to the generic public gateways (`ipfs.io` / `arweave.net`) when `overrides`
14
+ * doesn't name one; any other `network` (e.g. `http`, which carries its own base) resolves to
15
+ * `''`. Callers that want override → env → default precedence compose this with
16
+ * {@link gatewayConfigFromEnv} themselves (see `@artblocks/abx-storage`'s `resolveGatewayBase`
17
+ * for the reference compose) — kept separate so a host with its own config source never has this
18
+ * function reach into `process.env` on its behalf.
19
+ */
20
+ export declare function resolveGatewayBase(network: 'ipfs' | 'arweave' | string, overrides?: GatewayOverrides): string;
21
+ /**
22
+ * The ONLY env-reading piece of this module: `ABX_IPFS_GATEWAY` / `ABX_ARWEAVE_GATEWAY`, read via
23
+ * {@link readEnv} (safe where `process` doesn't exist). Exported separately from
24
+ * {@link resolveGatewayBase} so a host with its own gateway configuration (a database row, a
25
+ * remote config service) never has to touch `process.env` through this package at all — it just
26
+ * never calls this function and passes its own overrides straight to the pure resolver instead.
27
+ */
28
+ export declare function gatewayConfigFromEnv(): GatewayOverrides;
29
+ /** Build the URL that asks `gateway` for `id`. A locator that is already an absolute URL is asked
30
+ * verbatim — rewriting someone's URL would answer a question they didn't ask. */
31
+ export declare function gatewayUrlFor(network: LocatorNetwork, id: string, gateway: string): string;
32
+ //# sourceMappingURL=gateways.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateways.d.ts","sourceRoot":"","sources":["../src/gateways.ts"],"names":[],"mappings":"AAWA;;yDAEyD;AACzD,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAEzD;yEACyE;AACzE,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,gBAAgB,GAAG,MAAM,CAI7G;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,IAAI,gBAAgB,CAOvD;AAED;kFACkF;AAClF,wBAAgB,aAAa,CAAC,OAAO,EAAE,cAAc,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAK1F"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Gateway resolution for content-addressed locators (`ipfs://…`, `ar://…`) — hoisted from
3
+ * `@artblocks/abx-storage` (the abx-services integrator ask), split into a PURE resolver and a
4
+ * separate env-reading piece so a host with its own gateway config never has to touch
5
+ * `process.env` through this module at all, and so this stays reachable from a browser bundle
6
+ * (see `test/browser-bundle.test.ts` — no `process.env` read outside {@link gatewayConfigFromEnv},
7
+ * which itself goes through {@link readEnv} and degrades to "no override" rather than throwing
8
+ * where `process` doesn't exist).
9
+ */
10
+ import { readEnv } from './util.js';
11
+ /**
12
+ * The gateway BASE for a locator network, given already-resolved `overrides` — PURE, no env
13
+ * read. Defaults to the generic public gateways (`ipfs.io` / `arweave.net`) when `overrides`
14
+ * doesn't name one; any other `network` (e.g. `http`, which carries its own base) resolves to
15
+ * `''`. Callers that want override → env → default precedence compose this with
16
+ * {@link gatewayConfigFromEnv} themselves (see `@artblocks/abx-storage`'s `resolveGatewayBase`
17
+ * for the reference compose) — kept separate so a host with its own config source never has this
18
+ * function reach into `process.env` on its behalf.
19
+ */
20
+ export function resolveGatewayBase(network, overrides) {
21
+ if (network === 'ipfs')
22
+ return overrides?.ipfs || 'https://ipfs.io';
23
+ if (network === 'arweave')
24
+ return overrides?.arweave || 'https://arweave.net';
25
+ return '';
26
+ }
27
+ /**
28
+ * The ONLY env-reading piece of this module: `ABX_IPFS_GATEWAY` / `ABX_ARWEAVE_GATEWAY`, read via
29
+ * {@link readEnv} (safe where `process` doesn't exist). Exported separately from
30
+ * {@link resolveGatewayBase} so a host with its own gateway configuration (a database row, a
31
+ * remote config service) never has to touch `process.env` through this package at all — it just
32
+ * never calls this function and passes its own overrides straight to the pure resolver instead.
33
+ */
34
+ export function gatewayConfigFromEnv() {
35
+ const ipfs = readEnv('ABX_IPFS_GATEWAY');
36
+ const arweave = readEnv('ABX_ARWEAVE_GATEWAY');
37
+ const out = {};
38
+ if (ipfs)
39
+ out.ipfs = ipfs;
40
+ if (arweave)
41
+ out.arweave = arweave;
42
+ return out;
43
+ }
44
+ /** Build the URL that asks `gateway` for `id`. A locator that is already an absolute URL is asked
45
+ * verbatim — rewriting someone's URL would answer a question they didn't ask. */
46
+ export function gatewayUrlFor(network, id, gateway) {
47
+ if (/^https?:\/\//i.test(id))
48
+ return id;
49
+ const base = gateway.replace(/\/+$/, '');
50
+ // A path suffix (a directory manifest entry, e.g. `<txid>/index.html`) rides along untouched.
51
+ return network === 'ipfs' ? `${base}/ipfs/${id}` : `${base}/${id}`;
52
+ }
53
+ //# sourceMappingURL=gateways.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gateways.js","sourceRoot":"","sources":["../src/gateways.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAclC;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAAoC,EAAE,SAA4B;IACnG,IAAI,OAAO,KAAK,MAAM;QAAE,OAAO,SAAS,EAAE,IAAI,IAAI,iBAAiB,CAAC;IACpE,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,SAAS,EAAE,OAAO,IAAI,qBAAqB,CAAC;IAC9E,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB;IAClC,MAAM,IAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACzC,MAAM,OAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;IAC/C,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,IAAI,IAAI;QAAE,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;IAC1B,IAAI,OAAO;QAAE,GAAG,CAAC,OAAO,GAAG,OAAO,CAAC;IACnC,OAAO,GAAG,CAAC;AACb,CAAC;AAED;kFACkF;AAClF,MAAM,UAAU,aAAa,CAAC,OAAuB,EAAE,EAAU,EAAE,OAAe;IAChF,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAAE,OAAO,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACzC,8FAA8F;IAC9F,OAAO,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,EAAE,EAAE,CAAC;AACrE,CAAC"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * The generator-document family — the template-mode runtime companion, the inline-safety
3
+ * escapes, and the pure document-shape builders. Hoisted from `@artblocks/abx-token-api`
4
+ * (the abx-services integrator ask): every piece here is a pure string operation with no chain
5
+ * access and no Node dependency, so it belongs in the neutral layer a resolver, a CLI preview,
6
+ * and any third-party provider all consume identically — one definition of the runtime surface
7
+ * and the document shape, so none of them can quietly drift from what the others emit.
8
+ */
9
+ /**
10
+ * `abx.js` — the runtime companion (the hl-gen.js analog), served at `/abx.js` and
11
+ * inlined into template-mode documents. Convention, not protocol: a directory build
12
+ * includes it; the generator injects the same surface.
13
+ *
14
+ * tokenData resolution order (the durability chain): the injected `window.abxTokenData`
15
+ * global (template mode) → the `?abx=` query param (base64url canonical JSON — the
16
+ * live-view route) → the `?chainId&contract&tokenId` coordinate floor (a build opened
17
+ * bare from a gateway still knows which token it is; full param reads from RPC are the
18
+ * render-node's job, not this shim's).
19
+ */
20
+ export declare const ABX_JS = "(function () {\n var abx = (window.abx = window.abx || {});\n function fromQuery() {\n try {\n var q = new URLSearchParams(location.search);\n var packed = q.get('abx');\n if (packed) {\n var b64 = packed.replace(/-/g, '+').replace(/_/g, '/');\n return JSON.parse(new TextDecoder().decode(Uint8Array.from(atob(b64), function (c) { return c.charCodeAt(0); })));\n }\n // coordinate floor: enough for a deterministic piece opened bare from a gateway\n if (q.get('contract') && q.get('tokenId')) {\n return {\n chainId: Number(q.get('chainId') || 1),\n contractAddress: String(q.get('contract')).toLowerCase(),\n tokenId: String(q.get('tokenId')),\n };\n }\n } catch (e) {}\n return null;\n }\n abx.tokenData = window.abxTokenData || fromQuery();\n abx.__traits = null;\n abx.__done = false;\n /** The script reports its computed traits (script-defined features; captured at render). */\n abx.traits = function (t) {\n abx.__traits = t;\n try { document.dispatchEvent(new CustomEvent('abx:traits', {detail: t})); } catch (e) {}\n return t;\n };\n /** Output-complete \u2014 the capture point for the render effect. Optional (timeout fallback). */\n abx.done = function () {\n abx.__done = true;\n try { document.dispatchEvent(new CustomEvent('abx:done')); } catch (e) {}\n };\n})();\n";
21
+ /**
22
+ * Inline-document safety — the one HTML parsing rule that matters when embedding
23
+ * content inside <script> elements: the parser ends the element at the first
24
+ * `</script`, regardless of JS string/comment context. Two content shapes, two
25
+ * semantics-preserving escapes:
26
+ *
27
+ * - JS source (libraries, artist scripts): `</script` → `<\/script`. In valid JS the
28
+ * sequence can only occur inside a string, template, regex, or comment — contexts
29
+ * where `\/` is identical to `/` — so the transform never changes behavior.
30
+ * - JSON (the injected `window.abxTokenData`): every `<` → `\u003c`. `<` only occurs
31
+ * inside JSON strings (never in the syntax), and `\u003c` parses to the same
32
+ * character — the canonical (hashed) serialization is untouched; only the delivery
33
+ * form differs.
34
+ */
35
+ /** JS source safe to inline inside a <script> element. */
36
+ export declare function escapeInlineScript(src: string): string;
37
+ /** A JSON payload safe to inline inside a <script> element (parse-identical). */
38
+ export declare function escapeInlineJson(json: string): string;
39
+ /**
40
+ * Inject `window.abxTokenData` (and, when the document doesn't already carry one, a
41
+ * `<base href="{code root}/">` so relative asset paths keep riding the gateway) at the
42
+ * very top of `<head>` — before any build script can execute; abx.js resolves the global
43
+ * first. String-level and deliberately robust rather than a full HTML parse: no `<head>`
44
+ * → inject right after `<html …>`; neither → prepend. First `<base>` wins in HTML, so an
45
+ * existing one is never doubled.
46
+ */
47
+ export declare function injectTokenDataIntoHtml(html: string, tokenDataJson: string, codeRoot: string): string;
48
+ /**
49
+ * The template-mode document shape, pure — no chain access, so a caller that already has a
50
+ * script + dep tags in hand (the resolver's own chain-fetched assembly; `abx preview`'s offline
51
+ * studio, local-file + CDN-resolved) can build the byte-identical document. Exported for exactly
52
+ * that reason: **one** definition of the shape, so a caller can never quietly drift from what the
53
+ * generator actually serves — the failure mode a hand-maintained duplicate (with a "keep these in
54
+ * sync" comment and nothing enforcing it) invites.
55
+ */
56
+ export declare function buildGeneratorDocument(script: string, tokenDataJson: string, depTags: string[]): string;
57
+ //# sourceMappingURL=generator-document.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generator-document.d.ts","sourceRoot":"","sources":["../src/generator-document.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH;;;;;;;;;;GAUG;AACH,eAAO,MAAM,MAAM,o4CAoClB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AAEH,0DAA0D;AAC1D,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,iFAAiF;AACjF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAcrG;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CAYvG"}