@ashlar-blue/x402-trust 0.3.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.
Files changed (63) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +198 -0
  3. package/dist/attested-directory.d.ts +78 -0
  4. package/dist/attested-directory.d.ts.map +1 -0
  5. package/dist/attested-directory.js +163 -0
  6. package/dist/attested-directory.js.map +1 -0
  7. package/dist/badges.d.ts +131 -0
  8. package/dist/badges.d.ts.map +1 -0
  9. package/dist/badges.js +213 -0
  10. package/dist/badges.js.map +1 -0
  11. package/dist/catalog-mcp.d.ts +145 -0
  12. package/dist/catalog-mcp.d.ts.map +1 -0
  13. package/dist/catalog-mcp.js +409 -0
  14. package/dist/catalog-mcp.js.map +1 -0
  15. package/dist/census-reconcile.d.ts +69 -0
  16. package/dist/census-reconcile.d.ts.map +1 -0
  17. package/dist/census-reconcile.js +162 -0
  18. package/dist/census-reconcile.js.map +1 -0
  19. package/dist/directory-classify.d.ts +47 -0
  20. package/dist/directory-classify.d.ts.map +1 -0
  21. package/dist/directory-classify.js +54 -0
  22. package/dist/directory-classify.js.map +1 -0
  23. package/dist/discovery.d.ts +304 -0
  24. package/dist/discovery.d.ts.map +1 -0
  25. package/dist/discovery.js +926 -0
  26. package/dist/discovery.js.map +1 -0
  27. package/dist/evidence-ref.d.ts +96 -0
  28. package/dist/evidence-ref.d.ts.map +1 -0
  29. package/dist/evidence-ref.js +179 -0
  30. package/dist/evidence-ref.js.map +1 -0
  31. package/dist/facilitator-config.d.ts +83 -0
  32. package/dist/facilitator-config.d.ts.map +1 -0
  33. package/dist/facilitator-config.js +94 -0
  34. package/dist/facilitator-config.js.map +1 -0
  35. package/dist/index.d.ts +15 -0
  36. package/dist/index.d.ts.map +1 -0
  37. package/dist/index.js +18 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/manifest-sig.d.ts +131 -0
  40. package/dist/manifest-sig.d.ts.map +1 -0
  41. package/dist/manifest-sig.js +262 -0
  42. package/dist/manifest-sig.js.map +1 -0
  43. package/dist/merkle-transcript.d.ts +34 -0
  44. package/dist/merkle-transcript.d.ts.map +1 -0
  45. package/dist/merkle-transcript.js +162 -0
  46. package/dist/merkle-transcript.js.map +1 -0
  47. package/dist/open-catalog.d.ts +111 -0
  48. package/dist/open-catalog.d.ts.map +1 -0
  49. package/dist/open-catalog.js +307 -0
  50. package/dist/open-catalog.js.map +1 -0
  51. package/dist/reconcile.d.ts +150 -0
  52. package/dist/reconcile.d.ts.map +1 -0
  53. package/dist/reconcile.js +136 -0
  54. package/dist/reconcile.js.map +1 -0
  55. package/dist/trust-sdk.d.ts +127 -0
  56. package/dist/trust-sdk.d.ts.map +1 -0
  57. package/dist/trust-sdk.js +147 -0
  58. package/dist/trust-sdk.js.map +1 -0
  59. package/dist/types.d.ts +213 -0
  60. package/dist/types.d.ts.map +1 -0
  61. package/dist/types.js +68 -0
  62. package/dist/types.js.map +1 -0
  63. package/package.json +52 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"discovery.js","sourceRoot":"","sources":["../src/discovery.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Canonical evidence reference — `x402ev/1`.
3
+ *
4
+ * WHY THIS EXISTS (giskard09, x402-foundation/x402#3000, 2026-08-01):
5
+ * our `attestations` spec amendment added `evidenceDigest` and
6
+ * `evidenceAnchor` alongside `evidenceRef` — but said nothing about how
7
+ * a REGISTRY CONTRACT carries them. Ours (`FCAttestationBadges`) has a
8
+ * single `string evidenceRef` field, and so will most others: adding
9
+ * typed columns means a redeploy and a new address, which breaks every
10
+ * manifest already pointing at the registry. So the triple has to
11
+ * survive inside one string, and it has to do so in a form two
12
+ * independent implementations can compare BYTE FOR BYTE.
13
+ *
14
+ * Grammar (canonical form):
15
+ *
16
+ * x402ev/1; digest=<alg>:<hex>[; anchor=<caip2>:<contract>:<record>][; ref=<uri>]
17
+ *
18
+ * - `x402ev/1` version tag; parsers reject unknown majors.
19
+ * - `digest=` REQUIRED. Algorithm-prefixed so the format survives a
20
+ * hash migration (crypto-agility, ledger §17a):
21
+ * `sha256:<64 lowercase hex>` today.
22
+ * - `anchor=` OPTIONAL. Where the digest is independently recorded:
23
+ * CAIP-2 chain + contract + record id, e.g.
24
+ * `eip155:114:0xb02f…29c5:6`. Omit when the registry
25
+ * record CARRYING this string is itself the anchor —
26
+ * a badge that contains the digest needs no second
27
+ * witness, and claiming one would be noise.
28
+ * - `ref=` OPTIONAL. Where a human or crawler can FETCH the
29
+ * artifact. Rot is expected; the digest is the truth.
30
+ *
31
+ * Canonicalization (what makes byte comparison meaningful):
32
+ * fixed field order (digest, anchor, ref) · separator exactly "; " ·
33
+ * algorithm and hex lowercased · addresses lowercased (comparison
34
+ * beats EIP-55 vanity here) · no trailing separator. Parsers MUST
35
+ * accept fields in any order and MUST re-emit canonical order.
36
+ *
37
+ * Non-goal: this does not replace free-text context. Human notes belong
38
+ * in the artifact the digest covers, not in the reference to it.
39
+ */
40
+ /**
41
+ * Canonical JSON for anything we digest (RFC 8785 / JCS subset).
42
+ *
43
+ * Lives here, next to the reference format, because the digest is only
44
+ * meaningful if two implementations serialize the SAME artifact to the
45
+ * SAME bytes. Every place we hash an evidence artifact MUST use this —
46
+ * a second, subtly different canonicalizer is how digests silently stop
47
+ * matching.
48
+ *
49
+ * Rules: object keys sorted, no insignificant whitespace, arrays keep
50
+ * their order (order is semantic in JSON), primitives via JSON.stringify.
51
+ *
52
+ * This is not "JCS-ish" — it is RFC 8785, and we test it as such.
53
+ * RFC 8785 is *defined* in ECMAScript terms, which is why so little code
54
+ * is needed here: JS sorts strings by UTF-16 code unit (what JCS
55
+ * mandates), and `JSON.stringify` already implements JCS number
56
+ * formatting (Number::toString) and minimal string escaping. Verified
57
+ * against the RFC author's own vectors — arrays, french, structures,
58
+ * unicode, values, weird — byte-for-byte, vendored in
59
+ * `tests/x402/vectors/jcs/` so it cannot silently regress.
60
+ *
61
+ * One honest boundary: RFC 8785 canonicalizes PARSED JSON data, so
62
+ * information lost at parse time (duplicate keys, the original text of
63
+ * a number like `1.0`) is out of scope by design, not by omission.
64
+ */
65
+ export declare function canonicalJson(value: unknown): string;
66
+ export interface EvidenceRef {
67
+ /** Hash algorithm, lowercase. `sha256` today. */
68
+ alg: string;
69
+ /** Digest of the evidence artifact, lowercase hex, no 0x. */
70
+ hex: string;
71
+ /** Optional independent record of the digest. */
72
+ anchor?: {
73
+ /** CAIP-2 chain id, e.g. `eip155:114`. */
74
+ chain: string;
75
+ /** Contract holding the anchor record, lowercase hex with 0x. */
76
+ contract: string;
77
+ /** Record identifier within that contract (token id, index, …). */
78
+ record: string;
79
+ };
80
+ /** Optional fetchable location of the artifact. */
81
+ ref?: string;
82
+ }
83
+ export declare const EVIDENCE_REF_VERSION = "x402ev/1";
84
+ /** Canonical string for on-chain storage and byte-level comparison. */
85
+ export declare function encodeEvidenceRef(e: EvidenceRef): string;
86
+ /** Parse a canonical (or field-reordered) reference. Returns null if it is not one. */
87
+ export declare function parseEvidenceRef(s: string): EvidenceRef | null;
88
+ /**
89
+ * True when two references describe the same evidence. Compares the
90
+ * canonical DIGEST, never the ref — a moved artifact is still the same
91
+ * evidence, and a rewritten artifact at the same URL is not.
92
+ */
93
+ export declare function sameEvidence(a: string, b: string): boolean;
94
+ /** Round-trip a reference into canonical byte form (idempotent). */
95
+ export declare function canonicalizeEvidenceRef(s: string): string | null;
96
+ //# sourceMappingURL=evidence-ref.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence-ref.d.ts","sourceRoot":"","sources":["../src/evidence-ref.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAMpD;AAED,MAAM,WAAW,WAAW;IACxB,iDAAiD;IACjD,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,GAAG,EAAE,MAAM,CAAC;IACZ,iDAAiD;IACjD,MAAM,CAAC,EAAE;QACL,0CAA0C;QAC1C,KAAK,EAAE,MAAM,CAAC;QACd,iEAAiE;QACjE,QAAQ,EAAE,MAAM,CAAC;QACjB,mEAAmE;QACnE,MAAM,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,mDAAmD;IACnD,GAAG,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,oBAAoB,aAAa,CAAC;AAK/C,uEAAuE;AACvE,wBAAgB,iBAAiB,CAAC,CAAC,EAAE,WAAW,GAAG,MAAM,CA2BxD;AAED,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAsC9D;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAK1D;AAED,oEAAoE;AACpE,wBAAgB,uBAAuB,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGhE"}
@@ -0,0 +1,179 @@
1
+ // GENERATED from src/x402/evidence-ref.ts by scripts/sdk/sync-sdk.ts — do not edit here.
2
+ // The canonical module is the one FlareClaw runs in production; this is a copy so
3
+ // that what we publish and what we run cannot diverge. Edit the canonical file.
4
+ /**
5
+ * Canonical evidence reference — `x402ev/1`.
6
+ *
7
+ * WHY THIS EXISTS (giskard09, x402-foundation/x402#3000, 2026-08-01):
8
+ * our `attestations` spec amendment added `evidenceDigest` and
9
+ * `evidenceAnchor` alongside `evidenceRef` — but said nothing about how
10
+ * a REGISTRY CONTRACT carries them. Ours (`FCAttestationBadges`) has a
11
+ * single `string evidenceRef` field, and so will most others: adding
12
+ * typed columns means a redeploy and a new address, which breaks every
13
+ * manifest already pointing at the registry. So the triple has to
14
+ * survive inside one string, and it has to do so in a form two
15
+ * independent implementations can compare BYTE FOR BYTE.
16
+ *
17
+ * Grammar (canonical form):
18
+ *
19
+ * x402ev/1; digest=<alg>:<hex>[; anchor=<caip2>:<contract>:<record>][; ref=<uri>]
20
+ *
21
+ * - `x402ev/1` version tag; parsers reject unknown majors.
22
+ * - `digest=` REQUIRED. Algorithm-prefixed so the format survives a
23
+ * hash migration (crypto-agility, ledger §17a):
24
+ * `sha256:<64 lowercase hex>` today.
25
+ * - `anchor=` OPTIONAL. Where the digest is independently recorded:
26
+ * CAIP-2 chain + contract + record id, e.g.
27
+ * `eip155:114:0xb02f…29c5:6`. Omit when the registry
28
+ * record CARRYING this string is itself the anchor —
29
+ * a badge that contains the digest needs no second
30
+ * witness, and claiming one would be noise.
31
+ * - `ref=` OPTIONAL. Where a human or crawler can FETCH the
32
+ * artifact. Rot is expected; the digest is the truth.
33
+ *
34
+ * Canonicalization (what makes byte comparison meaningful):
35
+ * fixed field order (digest, anchor, ref) · separator exactly "; " ·
36
+ * algorithm and hex lowercased · addresses lowercased (comparison
37
+ * beats EIP-55 vanity here) · no trailing separator. Parsers MUST
38
+ * accept fields in any order and MUST re-emit canonical order.
39
+ *
40
+ * Non-goal: this does not replace free-text context. Human notes belong
41
+ * in the artifact the digest covers, not in the reference to it.
42
+ */
43
+ /**
44
+ * Canonical JSON for anything we digest (RFC 8785 / JCS subset).
45
+ *
46
+ * Lives here, next to the reference format, because the digest is only
47
+ * meaningful if two implementations serialize the SAME artifact to the
48
+ * SAME bytes. Every place we hash an evidence artifact MUST use this —
49
+ * a second, subtly different canonicalizer is how digests silently stop
50
+ * matching.
51
+ *
52
+ * Rules: object keys sorted, no insignificant whitespace, arrays keep
53
+ * their order (order is semantic in JSON), primitives via JSON.stringify.
54
+ *
55
+ * This is not "JCS-ish" — it is RFC 8785, and we test it as such.
56
+ * RFC 8785 is *defined* in ECMAScript terms, which is why so little code
57
+ * is needed here: JS sorts strings by UTF-16 code unit (what JCS
58
+ * mandates), and `JSON.stringify` already implements JCS number
59
+ * formatting (Number::toString) and minimal string escaping. Verified
60
+ * against the RFC author's own vectors — arrays, french, structures,
61
+ * unicode, values, weird — byte-for-byte, vendored in
62
+ * `tests/x402/vectors/jcs/` so it cannot silently regress.
63
+ *
64
+ * One honest boundary: RFC 8785 canonicalizes PARSED JSON data, so
65
+ * information lost at parse time (duplicate keys, the original text of
66
+ * a number like `1.0`) is out of scope by design, not by omission.
67
+ */
68
+ export function canonicalJson(value) {
69
+ if (value === null || typeof value !== 'object')
70
+ return JSON.stringify(value);
71
+ if (Array.isArray(value))
72
+ return `[${value.map(canonicalJson).join(',')}]`;
73
+ const obj = value;
74
+ const keys = Object.keys(obj).sort();
75
+ return `{${keys.map(k => `${JSON.stringify(k)}:${canonicalJson(obj[k])}`).join(',')}}`;
76
+ }
77
+ export const EVIDENCE_REF_VERSION = 'x402ev/1';
78
+ const SEP = '; ';
79
+ const HEX_BY_ALG = { sha256: 64, sha384: 96, sha512: 128 };
80
+ /** Canonical string for on-chain storage and byte-level comparison. */
81
+ export function encodeEvidenceRef(e) {
82
+ const alg = e.alg.toLowerCase();
83
+ const hex = e.hex.toLowerCase().replace(/^0x/, '');
84
+ const expected = HEX_BY_ALG[alg];
85
+ if (!expected)
86
+ throw new Error(`unsupported digest algorithm: ${e.alg}`);
87
+ if (!new RegExp(`^[0-9a-f]{${expected}}$`).test(hex)) {
88
+ throw new Error(`${alg} digest must be ${expected} lowercase hex chars`);
89
+ }
90
+ const parts = [EVIDENCE_REF_VERSION, `digest=${alg}:${hex}`];
91
+ if (e.anchor) {
92
+ // Normalize FIRST, then validate — callers legitimately pass
93
+ // EIP-55 checksummed addresses and mixed-case CAIP namespaces.
94
+ const chain = e.anchor.chain.toLowerCase();
95
+ const contract = e.anchor.contract.toLowerCase();
96
+ const record = e.anchor.record;
97
+ if (!/^[-a-z0-9]+:[-_a-z0-9]+$/.test(chain))
98
+ throw new Error(`anchor chain must be CAIP-2, got: ${e.anchor.chain}`);
99
+ if (!/^0x[0-9a-f]{40}$/.test(contract))
100
+ throw new Error(`anchor contract must be a 20-byte hex address`);
101
+ if (!/^[0-9a-zA-Z._-]+$/.test(record))
102
+ throw new Error(`anchor record has illegal characters`);
103
+ parts.push(`anchor=${chain}:${contract}:${record}`);
104
+ }
105
+ if (e.ref) {
106
+ // URIs are case-sensitive and must survive verbatim; only the
107
+ // separator is forbidden inside them.
108
+ if (e.ref.includes(SEP))
109
+ throw new Error('ref must not contain "; "');
110
+ parts.push(`ref=${e.ref}`);
111
+ }
112
+ return parts.join(SEP);
113
+ }
114
+ /** Parse a canonical (or field-reordered) reference. Returns null if it is not one. */
115
+ export function parseEvidenceRef(s) {
116
+ const parts = s.split(SEP).map(p => p.trim()).filter(Boolean);
117
+ if (parts.length === 0)
118
+ return null;
119
+ const version = parts[0];
120
+ if (!version.startsWith('x402ev/'))
121
+ return null;
122
+ if (version.split('/')[1]?.split('.')[0] !== '1')
123
+ return null; // unknown major
124
+ let digest;
125
+ let anchor;
126
+ let ref;
127
+ for (const part of parts.slice(1)) {
128
+ const eq = part.indexOf('=');
129
+ if (eq < 0)
130
+ continue;
131
+ const key = part.slice(0, eq);
132
+ const value = part.slice(eq + 1);
133
+ if (key === 'digest') {
134
+ const colon = value.indexOf(':');
135
+ if (colon < 0)
136
+ return null;
137
+ const alg = value.slice(0, colon).toLowerCase();
138
+ const hex = value.slice(colon + 1).toLowerCase();
139
+ const expected = HEX_BY_ALG[alg];
140
+ if (!expected || !new RegExp(`^[0-9a-f]{${expected}}$`).test(hex))
141
+ return null;
142
+ digest = { alg, hex };
143
+ }
144
+ else if (key === 'anchor') {
145
+ // chain is CAIP-2 (`namespace:reference`), so split from the right.
146
+ const bits = value.split(':');
147
+ if (bits.length < 4)
148
+ return null;
149
+ const record = bits.pop();
150
+ const contract = bits.pop();
151
+ anchor = { chain: bits.join(':').toLowerCase(), contract: contract.toLowerCase(), record };
152
+ }
153
+ else if (key === 'ref') {
154
+ ref = value;
155
+ }
156
+ // Unknown keys are ignored — forward compatibility.
157
+ }
158
+ if (!digest)
159
+ return null;
160
+ return { alg: digest.alg, hex: digest.hex, ...(anchor ? { anchor } : {}), ...(ref ? { ref } : {}) };
161
+ }
162
+ /**
163
+ * True when two references describe the same evidence. Compares the
164
+ * canonical DIGEST, never the ref — a moved artifact is still the same
165
+ * evidence, and a rewritten artifact at the same URL is not.
166
+ */
167
+ export function sameEvidence(a, b) {
168
+ const pa = parseEvidenceRef(a);
169
+ const pb = parseEvidenceRef(b);
170
+ if (!pa || !pb)
171
+ return false;
172
+ return pa.alg === pb.alg && pa.hex === pb.hex;
173
+ }
174
+ /** Round-trip a reference into canonical byte form (idempotent). */
175
+ export function canonicalizeEvidenceRef(s) {
176
+ const parsed = parseEvidenceRef(s);
177
+ return parsed ? encodeEvidenceRef(parsed) : null;
178
+ }
179
+ //# sourceMappingURL=evidence-ref.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evidence-ref.js","sourceRoot":"","sources":["../src/evidence-ref.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Official-SDK adapter: turn x402 `discovery` resolution into the
3
+ * `FacilitatorConfig` that `@x402/core`'s `HTTPFacilitatorClient`
4
+ * accepts — so the one hardcoded line in every integration built from
5
+ * the Stripe Machine Payments sample,
6
+ *
7
+ * import { facilitator } from "@coinbase/x402";
8
+ * const client = new HTTPFacilitatorClient(facilitator);
9
+ *
10
+ * becomes a resolved choice:
11
+ *
12
+ * import { discoverFacilitator } from "@flareclaw/x402-trust";
13
+ * const { config } = await discoverFacilitator("facilitator.example.com");
14
+ * const client = new HTTPFacilitatorClient(config);
15
+ *
16
+ * The adapter deliberately does NOT depend on @x402/core: it returns a
17
+ * plain object matching core's `FacilitatorConfig` shape ({ url,
18
+ * timeoutMs? }), so this package stays zero-dependency and the caller's
19
+ * SDK version is the only SDK version involved.
20
+ *
21
+ * One constraint the SDK imposes that discovery does not:
22
+ * `HTTPFacilitatorClient` constructs endpoint URLs as `${url}/verify`,
23
+ * `${url}/settle`, `${url}/supported` — fixed paths. The discovery
24
+ * manifest may declare ANY relative endpoint paths, so a manifest that
25
+ * uses non-conventional paths cannot be expressed as a FacilitatorConfig
26
+ * at all. We refuse loudly (`reason: "endpoints"`) instead of returning
27
+ * a config whose /verify would 404 — a config that fails at pay time is
28
+ * strictly worse than an error at resolve time.
29
+ */
30
+ import { type ResolveResult, type SupportedKind } from './discovery.js';
31
+ /**
32
+ * Shape-compatible with `FacilitatorConfig` from `@x402/core`
33
+ * (`createAuthHeaders` omitted: discovered public facilitators are
34
+ * unauthenticated; callers needing auth can spread one in).
35
+ */
36
+ export interface DiscoveredFacilitatorConfig {
37
+ url: string;
38
+ timeoutMs?: number;
39
+ }
40
+ export type DiscoverFailureReason =
41
+ /** Domain resolved but its manifest has no facilitator block. */
42
+ 'not-a-facilitator'
43
+ /** Manifest endpoints are not the SDK's fixed /verify /settle /supported. */
44
+ | 'endpoints'
45
+ /** Facilitator exists but does not support the required scheme/network. */
46
+ | 'kind-unsupported';
47
+ export declare class FacilitatorDiscoveryError extends Error {
48
+ readonly reason: DiscoverFailureReason;
49
+ /** Full resolution result — callers can inspect what WAS found. */
50
+ readonly resolution: ResolveResult;
51
+ constructor(reason: DiscoverFailureReason, message: string,
52
+ /** Full resolution result — callers can inspect what WAS found. */
53
+ resolution: ResolveResult);
54
+ }
55
+ export interface DiscoverFacilitatorOptions {
56
+ /** Require support for this scheme (e.g. "exact"). Checked against the LIVE kinds when available. */
57
+ scheme?: string;
58
+ /** Require support for this network (e.g. "coston2", "eip155:114"). */
59
+ network?: string;
60
+ /** Copied into the returned config for the SDK's per-request timeout. */
61
+ timeoutMs?: number;
62
+ /** Pass-throughs to resolveX402 (tests, custom transports). */
63
+ fetchImpl?: typeof fetch;
64
+ resolveTxt?: (name: string) => Promise<string[][]>;
65
+ lookupImpl?: (hostname: string) => Promise<string[]>;
66
+ noCache?: boolean;
67
+ }
68
+ export interface DiscoverFacilitatorResult {
69
+ /** Drop-in constructor arg for `new HTTPFacilitatorClient(config)`. */
70
+ config: DiscoveredFacilitatorConfig;
71
+ /** The kinds the choice was validated against (live when available). */
72
+ kinds: SupportedKind[];
73
+ /** Full discovery output: attestationUsable, peers, txtRecord, … */
74
+ resolution: ResolveResult;
75
+ }
76
+ /**
77
+ * Resolve a domain per the x402 `discovery` extension and return an
78
+ * official-SDK-compatible facilitator config, verified against the
79
+ * facilitator's LIVE `/supported` endpoint (authoritative over the
80
+ * manifest, per the spec).
81
+ */
82
+ export declare function discoverFacilitator(domain: string, opts?: DiscoverFacilitatorOptions): Promise<DiscoverFacilitatorResult>;
83
+ //# sourceMappingURL=facilitator-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facilitator-config.d.ts","sourceRoot":"","sources":["../src/facilitator-config.ts"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,EAEH,KAAK,aAAa,EAClB,KAAK,aAAa,EACrB,MAAM,gBAAgB,CAAC;AAExB;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IACxC,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,qBAAqB;AAC7B,iEAAiE;AAC/D,mBAAmB;AACrB,6EAA6E;GAC3E,WAAW;AACb,2EAA2E;GACzE,kBAAkB,CAAC;AAEzB,qBAAa,yBAA0B,SAAQ,KAAK;aAE5B,MAAM,EAAE,qBAAqB;IAE7C,mEAAmE;aACnD,UAAU,EAAE,aAAa;gBAHzB,MAAM,EAAE,qBAAqB,EAC7C,OAAO,EAAE,MAAM;IACf,mEAAmE;IACnD,UAAU,EAAE,aAAa;CAKhD;AAED,MAAM,WAAW,0BAA0B;IACvC,qGAAqG;IACrG,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uEAAuE;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,+DAA+D;IAC/D,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;IACzB,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IACnD,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,EAAE,OAAO,CAAC;CACrB;AAKD,MAAM,WAAW,yBAAyB;IACtC,uEAAuE;IACvE,MAAM,EAAE,2BAA2B,CAAC;IACpC,wEAAwE;IACxE,KAAK,EAAE,aAAa,EAAE,CAAC;IACvB,oEAAoE;IACpE,UAAU,EAAE,aAAa,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CACrC,MAAM,EAAE,MAAM,EACd,IAAI,GAAE,0BAA+B,GACtC,OAAO,CAAC,yBAAyB,CAAC,CAwDpC"}
@@ -0,0 +1,94 @@
1
+ // GENERATED from src/x402/facilitator-config.ts by scripts/sdk/sync-sdk.ts — do not edit here.
2
+ // The canonical module is the one FlareClaw runs in production; this is a copy so
3
+ // that what we publish and what we run cannot diverge. Edit the canonical file.
4
+ /**
5
+ * Official-SDK adapter: turn x402 `discovery` resolution into the
6
+ * `FacilitatorConfig` that `@x402/core`'s `HTTPFacilitatorClient`
7
+ * accepts — so the one hardcoded line in every integration built from
8
+ * the Stripe Machine Payments sample,
9
+ *
10
+ * import { facilitator } from "@coinbase/x402";
11
+ * const client = new HTTPFacilitatorClient(facilitator);
12
+ *
13
+ * becomes a resolved choice:
14
+ *
15
+ * import { discoverFacilitator } from "@flareclaw/x402-trust";
16
+ * const { config } = await discoverFacilitator("facilitator.example.com");
17
+ * const client = new HTTPFacilitatorClient(config);
18
+ *
19
+ * The adapter deliberately does NOT depend on @x402/core: it returns a
20
+ * plain object matching core's `FacilitatorConfig` shape ({ url,
21
+ * timeoutMs? }), so this package stays zero-dependency and the caller's
22
+ * SDK version is the only SDK version involved.
23
+ *
24
+ * One constraint the SDK imposes that discovery does not:
25
+ * `HTTPFacilitatorClient` constructs endpoint URLs as `${url}/verify`,
26
+ * `${url}/settle`, `${url}/supported` — fixed paths. The discovery
27
+ * manifest may declare ANY relative endpoint paths, so a manifest that
28
+ * uses non-conventional paths cannot be expressed as a FacilitatorConfig
29
+ * at all. We refuse loudly (`reason: "endpoints"`) instead of returning
30
+ * a config whose /verify would 404 — a config that fails at pay time is
31
+ * strictly worse than an error at resolve time.
32
+ */
33
+ import { resolveX402, } from './discovery.js';
34
+ export class FacilitatorDiscoveryError extends Error {
35
+ reason;
36
+ resolution;
37
+ constructor(reason, message,
38
+ /** Full resolution result — callers can inspect what WAS found. */
39
+ resolution) {
40
+ super(message);
41
+ this.reason = reason;
42
+ this.resolution = resolution;
43
+ this.name = 'FacilitatorDiscoveryError';
44
+ }
45
+ }
46
+ /** The endpoint paths `@x402/core`'s HTTPFacilitatorClient hardcodes. */
47
+ const SDK_ENDPOINTS = { supported: '/supported', verify: '/verify', settle: '/settle' };
48
+ /**
49
+ * Resolve a domain per the x402 `discovery` extension and return an
50
+ * official-SDK-compatible facilitator config, verified against the
51
+ * facilitator's LIVE `/supported` endpoint (authoritative over the
52
+ * manifest, per the spec).
53
+ */
54
+ export async function discoverFacilitator(domain, opts = {}) {
55
+ const resolution = await resolveX402(domain, {
56
+ ...(opts.fetchImpl ? { fetchImpl: opts.fetchImpl } : {}),
57
+ ...(opts.resolveTxt ? { resolveTxt: opts.resolveTxt } : {}),
58
+ ...(opts.lookupImpl ? { lookupImpl: opts.lookupImpl } : {}),
59
+ ...(opts.noCache ? { noCache: true } : {}),
60
+ });
61
+ const fac = resolution.manifest.facilitator;
62
+ if (!fac) {
63
+ throw new FacilitatorDiscoveryError('not-a-facilitator', `${domain} publishes x402 discovery data but no facilitator block (kind: ${resolution.manifest.kind})`, resolution);
64
+ }
65
+ for (const [name, path] of Object.entries(SDK_ENDPOINTS)) {
66
+ const declared = fac.endpoints[name];
67
+ if (declared !== path) {
68
+ throw new FacilitatorDiscoveryError('endpoints', `${domain} declares ${name} at "${declared}", but @x402/core's HTTPFacilitatorClient `
69
+ + `only calls the fixed path "${path}" — this facilitator cannot be used through the `
70
+ + `official SDK's client. (It may still be usable through a client that honors `
71
+ + `manifest endpoint paths.)`, resolution);
72
+ }
73
+ }
74
+ // The spec makes the live endpoint authoritative over the manifest.
75
+ const kinds = resolution.liveKinds ?? fac.kinds;
76
+ if (opts.scheme || opts.network) {
77
+ const ok = kinds.some(k => (opts.scheme === undefined || k.scheme === opts.scheme)
78
+ && (opts.network === undefined || k.network === opts.network));
79
+ if (!ok) {
80
+ const want = [opts.scheme, opts.network].filter(Boolean).join(' on ');
81
+ const have = kinds.map(k => `${k.scheme} on ${k.network}`).join(', ') || 'none';
82
+ throw new FacilitatorDiscoveryError('kind-unsupported', `${domain} does not support ${want} (live supported: ${have})`, resolution);
83
+ }
84
+ }
85
+ return {
86
+ config: {
87
+ url: fac.baseUrl.replace(/\/+$/, ''),
88
+ ...(opts.timeoutMs !== undefined ? { timeoutMs: opts.timeoutMs } : {}),
89
+ },
90
+ kinds,
91
+ resolution,
92
+ };
93
+ }
94
+ //# sourceMappingURL=facilitator-config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facilitator-config.js","sourceRoot":"","sources":["../src/facilitator-config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ export * from './types.js';
2
+ export * from './discovery.js';
3
+ export * from './evidence-ref.js';
4
+ export * from './badges.js';
5
+ export * from './facilitator-config.js';
6
+ export * from './open-catalog.js';
7
+ export * from './catalog-mcp.js';
8
+ export * from './reconcile.js';
9
+ export * from './manifest-sig.js';
10
+ export * from './merkle-transcript.js';
11
+ export * from './attested-directory.js';
12
+ export * from './census-reconcile.js';
13
+ export * from './directory-classify.js';
14
+ export * from './trust-sdk.js';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,18 @@
1
+ // GENERATED from src/x402/(index) by scripts/sdk/sync-sdk.ts — do not edit here.
2
+ // The canonical module is the one FlareClaw runs in production; this is a copy so
3
+ // that what we publish and what we run cannot diverge. Edit the canonical file.
4
+ export * from './types.js';
5
+ export * from './discovery.js';
6
+ export * from './evidence-ref.js';
7
+ export * from './badges.js';
8
+ export * from './facilitator-config.js';
9
+ export * from './open-catalog.js';
10
+ export * from './catalog-mcp.js';
11
+ export * from './reconcile.js';
12
+ export * from './manifest-sig.js';
13
+ export * from './merkle-transcript.js';
14
+ export * from './attested-directory.js';
15
+ export * from './census-reconcile.js';
16
+ export * from './directory-classify.js';
17
+ export * from './trust-sdk.js';
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,iFAAiF;AACjF,kFAAkF;AAClF,gFAAgF;AAEhF,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,yBAAyB,CAAC;AACxC,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,gBAAgB,CAAC"}