run402 4.6.0 → 4.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/notifications.mjs +431 -11
- package/lib/webhook-secret.mjs +6 -0
- package/package.json +1 -1
- package/sdk/dist/errors.d.ts +53 -2
- package/sdk/dist/errors.d.ts.map +1 -1
- package/sdk/dist/errors.js +91 -0
- package/sdk/dist/errors.js.map +1 -1
- package/sdk/dist/index.d.ts +2 -2
- package/sdk/dist/index.d.ts.map +1 -1
- package/sdk/dist/index.js +1 -1
- package/sdk/dist/index.js.map +1 -1
- package/sdk/dist/namespaces/admin.d.ts +254 -4
- package/sdk/dist/namespaces/admin.d.ts.map +1 -1
- package/sdk/dist/namespaces/admin.js +134 -4
- package/sdk/dist/namespaces/admin.js.map +1 -1
- package/sdk/dist/node/_paid-stack.d.ts +1 -1
- package/sdk/dist/node/_paid-stack.d.ts.map +1 -1
- package/sdk/dist/node/index.d.ts +15 -2
- package/sdk/dist/node/index.d.ts.map +1 -1
- package/sdk/dist/node/index.js +23 -4
- package/sdk/dist/node/index.js.map +1 -1
- package/sdk/dist/node/paid-fetch.d.ts +147 -9
- package/sdk/dist/node/paid-fetch.d.ts.map +1 -1
- package/sdk/dist/node/paid-fetch.js +785 -75
- package/sdk/dist/node/paid-fetch.js.map +1 -1
- package/sdk/dist/node/payment-attempts.d.ts +54 -0
- package/sdk/dist/node/payment-attempts.d.ts.map +1 -0
- package/sdk/dist/node/payment-attempts.js +220 -0
- package/sdk/dist/node/payment-attempts.js.map +1 -0
|
@@ -9,6 +9,114 @@ import { LocalError } from "../errors.js";
|
|
|
9
9
|
import { Transfers } from "./transfers.js";
|
|
10
10
|
import { deprecatePositional } from "../deprecate.js";
|
|
11
11
|
const FINANCE_WINDOWS = new Set(["24h", "7d", "30d", "90d"]);
|
|
12
|
+
/**
|
|
13
|
+
* `r.admin.channels` — the Telegram notification-channel binding lifecycle
|
|
14
|
+
* (connect / list / revoke). Mutations (`connectTelegram`, `revokeTelegram`)
|
|
15
|
+
* require `operator_passkey` assurance; `connectTelegram` additionally
|
|
16
|
+
* requires a VERIFIED operator email (bindings are addressed to it). See
|
|
17
|
+
* `r.admin.setAgentContact` / `r.admin.verifyAgentContactEmail` and
|
|
18
|
+
* `r.admin.startOperatorPasskeyEnrollment` to reach that assurance level —
|
|
19
|
+
* same ladder as {@link Admin.rotateWebhookSecret}.
|
|
20
|
+
*/
|
|
21
|
+
export class Channels {
|
|
22
|
+
client;
|
|
23
|
+
constructor(client) {
|
|
24
|
+
this.client = client;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Start binding a Telegram chat. Returns two single-use, 15-minute deep
|
|
28
|
+
* links — `connect_url` for a private chat, `connect_group_url` for a
|
|
29
|
+
* group — plus a `pending` binding id. A human taps ONE of the links and
|
|
30
|
+
* starts the bot; poll {@link Channels.list} until the binding's `status`
|
|
31
|
+
* flips to `"active"` (or `code_expires_at` passes and it's swept back to
|
|
32
|
+
* `"revoked"`).
|
|
33
|
+
*
|
|
34
|
+
* Throws (via the generic SDK error hierarchy — check `err.code`) HTTP 503
|
|
35
|
+
* `TELEGRAM_CHANNEL_NOT_CONFIGURED` until the platform's dedicated
|
|
36
|
+
* notification bot is provisioned, and HTTP 412
|
|
37
|
+
* `OPERATOR_EMAIL_NOT_VERIFIED` when the caller has no verified email yet.
|
|
38
|
+
*/
|
|
39
|
+
async connectTelegram(opts = {}) {
|
|
40
|
+
const body = {};
|
|
41
|
+
if (opts.label !== undefined)
|
|
42
|
+
body.label = opts.label;
|
|
43
|
+
return this.client.request("/agent/v1/notifications/channels/telegram", { method: "POST", body, context: "connecting a Telegram notification channel" });
|
|
44
|
+
}
|
|
45
|
+
/** List every notification channel — email, webhook, and every live
|
|
46
|
+
* (non-revoked) Telegram binding — for the authenticated wallet. */
|
|
47
|
+
async list() {
|
|
48
|
+
return this.client.request("/agent/v1/notifications/channels", { context: "listing notification channels" });
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Revoke a Telegram binding. Missing / already-revoked / another
|
|
52
|
+
* operator's binding id all return the SAME not-found error
|
|
53
|
+
* (authorize-before-reveal) — no existence oracle.
|
|
54
|
+
*/
|
|
55
|
+
async revokeTelegram(bindingId) {
|
|
56
|
+
return this.client.request(`/agent/v1/notifications/channels/telegram/${encodeURIComponent(bindingId)}`, { method: "DELETE", context: "revoking a Telegram notification channel" });
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* `r.admin.rules` — Telegram routing rules (design D4): one match (ANDed
|
|
61
|
+
* dimensions; an omitted dimension is a wildcard) → one Telegram binding.
|
|
62
|
+
* Rules govern the Telegram channel ONLY in v1 — email/webhook keep their
|
|
63
|
+
* existing preference-toggle semantics untouched. Mutations require
|
|
64
|
+
* `operator_passkey` assurance.
|
|
65
|
+
*/
|
|
66
|
+
export class Rules {
|
|
67
|
+
client;
|
|
68
|
+
constructor(client) {
|
|
69
|
+
this.client = client;
|
|
70
|
+
}
|
|
71
|
+
/** List the operator's routing rules, newest first. */
|
|
72
|
+
async list() {
|
|
73
|
+
return this.client.request("/agent/v1/notifications/rules", { context: "listing notification routing rules" });
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Create a routing rule. `telegramBindingId` must reference a binding this
|
|
77
|
+
* operator owns and that is currently usable (`status: "active"`); an
|
|
78
|
+
* unusable or foreign binding id returns the same 404 as a nonexistent one
|
|
79
|
+
* (authorize-before-reveal).
|
|
80
|
+
*/
|
|
81
|
+
async create(input) {
|
|
82
|
+
const body = { telegram_binding_id: input.telegramBindingId };
|
|
83
|
+
if (input.projectId !== undefined)
|
|
84
|
+
body.project_id = input.projectId;
|
|
85
|
+
if (input.source !== undefined)
|
|
86
|
+
body.source = input.source;
|
|
87
|
+
if (input.eventTypes !== undefined)
|
|
88
|
+
body.event_types = input.eventTypes;
|
|
89
|
+
if (input.classes !== undefined)
|
|
90
|
+
body.classes = input.classes;
|
|
91
|
+
return this.client.request("/agent/v1/notifications/rules", { method: "POST", body, context: "creating a notification routing rule" });
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Patch a routing rule. PATCH semantics: only fields PRESENT on `patch`
|
|
95
|
+
* are sent — `{ projectId: null }` clears that dimension back to
|
|
96
|
+
* wildcard; omitting a field leaves it unchanged (see
|
|
97
|
+
* {@link UpdateRoutingRulePatch}).
|
|
98
|
+
*/
|
|
99
|
+
async update(ruleId, patch) {
|
|
100
|
+
const body = {};
|
|
101
|
+
if ("projectId" in patch)
|
|
102
|
+
body.project_id = patch.projectId;
|
|
103
|
+
if ("source" in patch)
|
|
104
|
+
body.source = patch.source;
|
|
105
|
+
if ("eventTypes" in patch)
|
|
106
|
+
body.event_types = patch.eventTypes;
|
|
107
|
+
if ("classes" in patch)
|
|
108
|
+
body.classes = patch.classes;
|
|
109
|
+
if ("telegramBindingId" in patch)
|
|
110
|
+
body.telegram_binding_id = patch.telegramBindingId;
|
|
111
|
+
if ("enabled" in patch)
|
|
112
|
+
body.enabled = patch.enabled;
|
|
113
|
+
return this.client.request(`/agent/v1/notifications/rules/${encodeURIComponent(ruleId)}`, { method: "PATCH", body, context: "updating a notification routing rule" });
|
|
114
|
+
}
|
|
115
|
+
/** Delete a routing rule. */
|
|
116
|
+
async delete(ruleId) {
|
|
117
|
+
return this.client.request(`/agent/v1/notifications/rules/${encodeURIComponent(ruleId)}`, { method: "DELETE", context: "deleting a notification routing rule" });
|
|
118
|
+
}
|
|
119
|
+
}
|
|
12
120
|
export class Admin {
|
|
13
121
|
client;
|
|
14
122
|
/**
|
|
@@ -17,9 +125,21 @@ export class Admin {
|
|
|
17
125
|
* preview, accept, claim, cancel, listIncoming, listOutgoing}`.
|
|
18
126
|
*/
|
|
19
127
|
transfers;
|
|
128
|
+
/**
|
|
129
|
+
* Telegram notification-channel binding lifecycle. Access via
|
|
130
|
+
* `r.admin.channels.{connectTelegram, list, revokeTelegram}`.
|
|
131
|
+
*/
|
|
132
|
+
channels;
|
|
133
|
+
/**
|
|
134
|
+
* Telegram routing rules — one match (ANDed dimensions) to one binding.
|
|
135
|
+
* Access via `r.admin.rules.{list, create, update, delete}`.
|
|
136
|
+
*/
|
|
137
|
+
rules;
|
|
20
138
|
constructor(client) {
|
|
21
139
|
this.client = client;
|
|
22
140
|
this.transfers = new Transfers(client);
|
|
141
|
+
this.channels = new Channels(client);
|
|
142
|
+
this.rules = new Rules(client);
|
|
23
143
|
}
|
|
24
144
|
/**
|
|
25
145
|
* Operator-scoped sub-client for an org id — the operator analog of
|
|
@@ -120,11 +240,21 @@ export class Admin {
|
|
|
120
240
|
}
|
|
121
241
|
/**
|
|
122
242
|
* Trigger a real test notification. Sends a sample `project_past_due`
|
|
123
|
-
* event through the normal worker pipeline; the audit row
|
|
124
|
-
* `is_test: true`.
|
|
243
|
+
* event through the normal worker pipeline (email/webhook); the audit row
|
|
244
|
+
* is marked `is_test: true`. ALSO delivers a synthetic event through the
|
|
245
|
+
* operator's Telegram routing rules end-to-end (binding + rule + render +
|
|
246
|
+
* send) and reports a per-destination outcome in `telegram.destinations`
|
|
247
|
+
* — pass `opts.source` / `opts.eventType` to target a specific rule's
|
|
248
|
+
* filters instead of the default sample event. Rate-limited per wallet at
|
|
249
|
+
* 1/min.
|
|
125
250
|
*/
|
|
126
|
-
async testNotification() {
|
|
127
|
-
|
|
251
|
+
async testNotification(opts = {}) {
|
|
252
|
+
const body = {};
|
|
253
|
+
if (opts.source !== undefined)
|
|
254
|
+
body.source = opts.source;
|
|
255
|
+
if (opts.eventType !== undefined)
|
|
256
|
+
body.event_type = opts.eventType;
|
|
257
|
+
return this.client.request("/agent/v1/notifications/test", { method: "POST", body, context: "triggering test notification" });
|
|
128
258
|
}
|
|
129
259
|
/**
|
|
130
260
|
* Rotate the operator's webhook signing secret. The new plaintext secret
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/namespaces/admin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAsEtD,MAAM,eAAe,GAAG,IAAI,GAAG,CAAqB,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../src/namespaces/admin.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,7 +23,7 @@ export interface X402Stack {
|
|
|
23
23
|
createPublicClient: (opts: unknown) => {
|
|
24
24
|
readContract: (args: unknown) => Promise<bigint>;
|
|
25
25
|
};
|
|
26
|
-
http: () => unknown;
|
|
26
|
+
http: (url?: string) => unknown;
|
|
27
27
|
base: unknown;
|
|
28
28
|
baseSepolia: unknown;
|
|
29
29
|
x402Client: new () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_paid-stack.d.ts","sourceRoot":"","sources":["../../src/node/_paid-stack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,KAAK,OAAO,GAAG,OAAO,UAAU,CAAC,KAAK,CAAC;AAEvC,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;gBAChC,OAAO,EAAE,SAAS,MAAM,EAAE;CAQvC;AA+BD,MAAM,WAAW,SAAS;IACxB,mBAAmB,EAAE,CAAC,EAAE,EAAE,KAAK,MAAM,EAAE,KAAK,OAAO,CAAC;IACpD,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK;QAAE,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;IAC5F,IAAI,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"_paid-stack.d.ts","sourceRoot":"","sources":["../../src/node/_paid-stack.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,KAAK,OAAO,GAAG,OAAO,UAAU,CAAC,KAAK,CAAC;AAEvC,qBAAa,oBAAqB,SAAQ,KAAK;IAC7C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;gBAChC,OAAO,EAAE,SAAS,MAAM,EAAE;CAQvC;AA+BD,MAAM,WAAW,SAAS;IACxB,mBAAmB,EAAE,CAAC,EAAE,EAAE,KAAK,MAAM,EAAE,KAAK,OAAO,CAAC;IACpD,kBAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK;QAAE,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;KAAE,CAAC;IAC5F,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,OAAO,CAAC;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,OAAO,CAAC;IACrB,UAAU,EAAE,UAAU;QACpB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;QACrD,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,IAAI,CAAC;KAC/E,CAAC;IACF,oBAAoB,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IACnE,cAAc,EAAE,KAAK,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;IACjD,iBAAiB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,OAAO,CAAC;CACnE;AAED,MAAM,WAAW,QAAQ;IACvB,mBAAmB,EAAE,CAAC,EAAE,EAAE,KAAK,MAAM,EAAE,KAAK,OAAO,CAAC;IACpD,IAAI,EAAE;QAAE,MAAM,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK;YAAE,KAAK,EAAE,OAAO,CAAA;SAAE,CAAA;KAAE,CAAC;IACxD,KAAK,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;CACnC;AAED,wBAAsB,aAAa,IAAI,OAAO,CAAC,SAAS,CAAC,CAoBxD;AAED,wBAAsB,YAAY,IAAI,OAAO,CAAC,QAAQ,CAAC,CAgBtD"}
|
package/sdk/dist/node/index.d.ts
CHANGED
|
@@ -23,6 +23,7 @@ import { Run402 } from "../index.js";
|
|
|
23
23
|
import type { CredentialsProvider } from "../credentials.js";
|
|
24
24
|
import type { Run402ClientMetadata } from "../kernel.js";
|
|
25
25
|
import type { AuthMode, CredentialSurface } from "./credentials.js";
|
|
26
|
+
import { type EvmPaymentSignerProvider, type PaymentPayerProvenance } from "./paid-fetch.js";
|
|
26
27
|
import { NodeSites } from "./sites-node.js";
|
|
27
28
|
import { NodeAssets } from "./assets-node.js";
|
|
28
29
|
import { NodeArchives } from "./archives-node.js";
|
|
@@ -38,6 +39,13 @@ export interface NodeRun402Options {
|
|
|
38
39
|
allowancePath?: string;
|
|
39
40
|
/** Override the credentials provider. Defaults to the local Node keystore + allowance provider. */
|
|
40
41
|
credentials?: CredentialsProvider;
|
|
42
|
+
/**
|
|
43
|
+
* Explicit async x402 signer (for example KMS/HSM backed). The provider
|
|
44
|
+
* exposes only a public address plus signing operations, never a raw key.
|
|
45
|
+
* Mutually exclusive with `allowancePath`. Auth still comes from
|
|
46
|
+
* `credentials`, so the authenticated principal and payer may differ.
|
|
47
|
+
*/
|
|
48
|
+
paymentSigner?: EvmPaymentSignerProvider;
|
|
41
49
|
/**
|
|
42
50
|
* Which surface is constructing the client — selects the default credential
|
|
43
51
|
* mode. `"cli"` opts into `auto` (wallet, else operator-approval); `"mcp"` /
|
|
@@ -71,6 +79,8 @@ export type NodeRun402 = Omit<Run402, "sites" | "assets" | "archives"> & {
|
|
|
71
79
|
archives: NodeArchives;
|
|
72
80
|
actions: NodeActions;
|
|
73
81
|
up: NodeActions["up"];
|
|
82
|
+
/** Public address/source selected for automatic payment; never includes keys or signed proofs. */
|
|
83
|
+
paymentPayer(): Promise<PaymentPayerProvenance | null>;
|
|
74
84
|
};
|
|
75
85
|
/**
|
|
76
86
|
* Construct a Run402 client wired with Node defaults.
|
|
@@ -103,9 +113,12 @@ export { importArchiveToCore, inspectArchive, NodeArchives, readEnvFile, verifyA
|
|
|
103
113
|
export { NodeCredentialsProvider } from "./credentials.js";
|
|
104
114
|
export { NodeActions } from "./actions-node.js";
|
|
105
115
|
export type { NodeActionTargetKind, NodeActionsOptions } from "./actions-node.js";
|
|
106
|
-
export { setupPaidFetch, createLazyPaidFetch } from "./paid-fetch.js";
|
|
116
|
+
export { setupPaidFetch, createLazyPaidFetch, X402BalanceError } from "./paid-fetch.js";
|
|
117
|
+
export type { EvmPaymentSigner, EvmPaymentSignerProvider, ConfiguredPaidFetch, LazyPaidFetch, PaidFetchOptions, PaymentPayerProvenance, PaymentPayerSource, PaymentPublicClient, X402BalanceErrorCode, X402PaymentNetwork, } from "./paid-fetch.js";
|
|
118
|
+
export { listPaymentAttempts, readPaymentAttempt, PAYMENT_ATTEMPT_HEADER, } from "./payment-attempts.js";
|
|
119
|
+
export type { PaymentAttemptJournalState, PaymentAttemptRecord, } from "./payment-attempts.js";
|
|
107
120
|
export { Run402Action } from "../actions.js";
|
|
108
121
|
export * from "../app-up.js";
|
|
109
122
|
export type * from "../index.js";
|
|
110
|
-
export { Run402, Run402Error, PaymentRequired, ProjectCredentialNotFound, ProjectNotFound, Unauthorized, NotAuthorizedError, StepUpRequiredError, ApiError, NetworkError, LocalError, Run402DeployError, EMPTY_STATIC_MANIFEST_METADATA, ROUTE_HTTP_METHODS, Ci, Deploy, CI_SESSION_CREDENTIALS, Orgs, ScopedOrg, Grants, PROJECT_CREDENTIAL_ERROR_CODES, PROJECT_OPERATION_AUTH_CLASSIFICATIONS, files, CI_AUDIENCE, CI_GITHUB_ACTIONS_ISSUER, CI_GITHUB_ACTIONS_PROVIDER, DEFAULT_CI_DELEGATION_CHAIN_ID, V1_CI_ALLOWED_ACTIONS, V1_CI_ALLOWED_EVENTS_DEFAULT, assertCiDeployableSpec, buildCiDelegationResourceUri, buildCiDelegationStatement, buildDeployResolveSummary, createCiSessionCredentials, githubActionsCredentials, isRun402Error, isPaymentRequired, isProjectCredentialError, isProjectCredentialExpired, isProjectCredentialInvalid, isProjectCredentialNotFound, isProjectCredentialProjectMismatch, isProjectNotFound, isUnauthorized, isNotAuthorized, isStepUpRequired, isOperatorApprovalRequired, isApiError, isNetworkError, isLocalError, isDeployError, isRetryableRun402Error, isCiSessionCredentials, projectOperationAuthClassification, isDeployResolveRouteHit, isDeployResolveStaticHit, normalizeCiRouteScopes, normalizeCiDelegationValues, normalizeDeployResolveRequest, normalizeStaticManifestMetadata, summarizeDeployResult, validateCiNonce, validateCiRouteScope, validateCiSubjectMatch, withRetry, } from "../index.js";
|
|
123
|
+
export { Run402, Run402Error, PaymentRequired, ProjectCredentialNotFound, ProjectNotFound, Unauthorized, NotAuthorizedError, StepUpRequiredError, ApiError, NetworkError, PaymentAttemptError, LocalError, Run402DeployError, EMPTY_STATIC_MANIFEST_METADATA, ROUTE_HTTP_METHODS, Ci, Deploy, CI_SESSION_CREDENTIALS, Orgs, ScopedOrg, Grants, PROJECT_CREDENTIAL_ERROR_CODES, PROJECT_OPERATION_AUTH_CLASSIFICATIONS, files, CI_AUDIENCE, CI_GITHUB_ACTIONS_ISSUER, CI_GITHUB_ACTIONS_PROVIDER, DEFAULT_CI_DELEGATION_CHAIN_ID, V1_CI_ALLOWED_ACTIONS, V1_CI_ALLOWED_EVENTS_DEFAULT, assertCiDeployableSpec, buildCiDelegationResourceUri, buildCiDelegationStatement, buildDeployResolveSummary, createCiSessionCredentials, githubActionsCredentials, isRun402Error, isPaymentRequired, isProjectCredentialError, isProjectCredentialExpired, isProjectCredentialInvalid, isProjectCredentialNotFound, isProjectCredentialProjectMismatch, isProjectNotFound, isUnauthorized, isNotAuthorized, isStepUpRequired, isOperatorApprovalRequired, isApiError, isNetworkError, isPaymentAttemptError, isLocalError, isDeployError, isRetryableRun402Error, isCiSessionCredentials, projectOperationAuthClassification, isDeployResolveRouteHit, isDeployResolveStaticHit, normalizeCiRouteScopes, normalizeCiDelegationValues, normalizeDeployResolveRequest, normalizeStaticManifestMetadata, summarizeDeployResult, validateCiNonce, validateCiRouteScope, validateCiSubjectMatch, withRetry, } from "../index.js";
|
|
111
124
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AASH,OAAO,EAAE,MAAM,EAAsB,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"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"}
|
package/sdk/dist/node/index.js
CHANGED
|
@@ -22,8 +22,9 @@
|
|
|
22
22
|
import { readFileSync } from "node:fs";
|
|
23
23
|
import { DEFAULT_API_BASE, getApiBase, getApiBaseSource, getApiTargetKind, } from "../../core-dist/config.js";
|
|
24
24
|
import { Run402 } from "../index.js";
|
|
25
|
+
import { LocalError } from "../errors.js";
|
|
25
26
|
import { NodeCredentialsProvider } from "./credentials.js";
|
|
26
|
-
import { createLazyPaidFetch } from "./paid-fetch.js";
|
|
27
|
+
import { createLazyPaidFetch, } from "./paid-fetch.js";
|
|
27
28
|
import { NodeSites } from "./sites-node.js";
|
|
28
29
|
import { NodeAssets } from "./assets-node.js";
|
|
29
30
|
import { NodeArchives } from "./archives-node.js";
|
|
@@ -39,6 +40,12 @@ import { NodeActions } from "./actions-node.js";
|
|
|
39
40
|
* exposes the `deployDir({ dir })` helper.
|
|
40
41
|
*/
|
|
41
42
|
export function run402(opts = {}) {
|
|
43
|
+
if (opts.paymentSigner && opts.allowancePath) {
|
|
44
|
+
throw new LocalError("Configure exactly one explicit payment source: paymentSigner or allowancePath", "constructing client", {
|
|
45
|
+
code: "PAYMENT_SOURCE_CONFLICT",
|
|
46
|
+
details: { fields: ["paymentSigner", "allowancePath"] },
|
|
47
|
+
});
|
|
48
|
+
}
|
|
42
49
|
const apiBase = opts.apiBase ?? getApiBase();
|
|
43
50
|
const credentials = opts.credentials ?? new NodeCredentialsProvider({
|
|
44
51
|
allowancePath: opts.allowancePath,
|
|
@@ -47,11 +54,21 @@ export function run402(opts = {}) {
|
|
|
47
54
|
surface: opts.surface,
|
|
48
55
|
authMode: opts.authMode,
|
|
49
56
|
});
|
|
57
|
+
let lazyPaidFetch;
|
|
58
|
+
if (!opts.fetch && !opts.disablePaidFetch) {
|
|
59
|
+
lazyPaidFetch = createLazyPaidFetch({
|
|
60
|
+
allowancePath: opts.allowancePath,
|
|
61
|
+
credentials: opts.credentials ? credentials : undefined,
|
|
62
|
+
paymentSigner: opts.paymentSigner,
|
|
63
|
+
});
|
|
64
|
+
}
|
|
50
65
|
const runOpts = {
|
|
51
66
|
apiBase,
|
|
52
67
|
credentials,
|
|
53
68
|
fetch: opts.fetch ??
|
|
54
|
-
(opts.disablePaidFetch
|
|
69
|
+
(opts.disablePaidFetch
|
|
70
|
+
? globalThis.fetch.bind(globalThis)
|
|
71
|
+
: lazyPaidFetch),
|
|
55
72
|
clientMetadata: nodeClientMetadata(opts),
|
|
56
73
|
};
|
|
57
74
|
const base = new Run402(runOpts);
|
|
@@ -71,6 +88,7 @@ export function run402(opts = {}) {
|
|
|
71
88
|
});
|
|
72
89
|
base.actions = actions;
|
|
73
90
|
base.up = actions.up.bind(actions);
|
|
91
|
+
base.paymentPayer = async () => lazyPaidFetch?.getPayer() ?? null;
|
|
74
92
|
return base;
|
|
75
93
|
}
|
|
76
94
|
function inferTargetKind(apiBase, explicitApiBase) {
|
|
@@ -126,9 +144,10 @@ export { signWalletOrgClaim, claimWalletOrg } from "./operator-claim.js";
|
|
|
126
144
|
export { importArchiveToCore, inspectArchive, NodeArchives, readEnvFile, verifyArchive, } from "./archives-node.js";
|
|
127
145
|
export { NodeCredentialsProvider } from "./credentials.js";
|
|
128
146
|
export { NodeActions } from "./actions-node.js";
|
|
129
|
-
export { setupPaidFetch, createLazyPaidFetch } from "./paid-fetch.js";
|
|
147
|
+
export { setupPaidFetch, createLazyPaidFetch, X402BalanceError } from "./paid-fetch.js";
|
|
148
|
+
export { listPaymentAttempts, readPaymentAttempt, PAYMENT_ATTEMPT_HEADER, } from "./payment-attempts.js";
|
|
130
149
|
export { Run402Action } from "../actions.js";
|
|
131
150
|
export * from "../app-up.js";
|
|
132
151
|
// Re-export the isomorphic surface so Node consumers don't need two imports.
|
|
133
|
-
export { Run402, Run402Error, PaymentRequired, ProjectCredentialNotFound, ProjectNotFound, Unauthorized, NotAuthorizedError, StepUpRequiredError, ApiError, NetworkError, LocalError, Run402DeployError, EMPTY_STATIC_MANIFEST_METADATA, ROUTE_HTTP_METHODS, Ci, Deploy, CI_SESSION_CREDENTIALS, Orgs, ScopedOrg, Grants, PROJECT_CREDENTIAL_ERROR_CODES, PROJECT_OPERATION_AUTH_CLASSIFICATIONS, files, CI_AUDIENCE, CI_GITHUB_ACTIONS_ISSUER, CI_GITHUB_ACTIONS_PROVIDER, DEFAULT_CI_DELEGATION_CHAIN_ID, V1_CI_ALLOWED_ACTIONS, V1_CI_ALLOWED_EVENTS_DEFAULT, assertCiDeployableSpec, buildCiDelegationResourceUri, buildCiDelegationStatement, buildDeployResolveSummary, createCiSessionCredentials, githubActionsCredentials, isRun402Error, isPaymentRequired, isProjectCredentialError, isProjectCredentialExpired, isProjectCredentialInvalid, isProjectCredentialNotFound, isProjectCredentialProjectMismatch, isProjectNotFound, isUnauthorized, isNotAuthorized, isStepUpRequired, isOperatorApprovalRequired, isApiError, isNetworkError, isLocalError, isDeployError, isRetryableRun402Error, isCiSessionCredentials, projectOperationAuthClassification, isDeployResolveRouteHit, isDeployResolveStaticHit, normalizeCiRouteScopes, normalizeCiDelegationValues, normalizeDeployResolveRequest, normalizeStaticManifestMetadata, summarizeDeployResult, validateCiNonce, validateCiRouteScope, validateCiSubjectMatch, withRetry, } from "../index.js";
|
|
152
|
+
export { Run402, Run402Error, PaymentRequired, ProjectCredentialNotFound, ProjectNotFound, Unauthorized, NotAuthorizedError, StepUpRequiredError, ApiError, NetworkError, PaymentAttemptError, LocalError, Run402DeployError, EMPTY_STATIC_MANIFEST_METADATA, ROUTE_HTTP_METHODS, Ci, Deploy, CI_SESSION_CREDENTIALS, Orgs, ScopedOrg, Grants, PROJECT_CREDENTIAL_ERROR_CODES, PROJECT_OPERATION_AUTH_CLASSIFICATIONS, files, CI_AUDIENCE, CI_GITHUB_ACTIONS_ISSUER, CI_GITHUB_ACTIONS_PROVIDER, DEFAULT_CI_DELEGATION_CHAIN_ID, V1_CI_ALLOWED_ACTIONS, V1_CI_ALLOWED_EVENTS_DEFAULT, assertCiDeployableSpec, buildCiDelegationResourceUri, buildCiDelegationStatement, buildDeployResolveSummary, createCiSessionCredentials, githubActionsCredentials, isRun402Error, isPaymentRequired, isProjectCredentialError, isProjectCredentialExpired, isProjectCredentialInvalid, isProjectCredentialNotFound, isProjectCredentialProjectMismatch, isProjectNotFound, isUnauthorized, isNotAuthorized, isStepUpRequired, isOperatorApprovalRequired, isApiError, isNetworkError, isPaymentAttemptError, isLocalError, isDeployError, isRetryableRun402Error, isCiSessionCredentials, projectOperationAuthClassification, isDeployResolveRouteHit, isDeployResolveStaticHit, normalizeCiRouteScopes, normalizeCiDelegationValues, normalizeDeployResolveRequest, normalizeStaticManifestMetadata, summarizeDeployResult, validateCiNonce, validateCiRouteScope, validateCiSubjectMatch, withRetry, } from "../index.js";
|
|
134
153
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EACL,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,MAAM,EAAsB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Node-only x402-wrapped fetch. Reads the allowance file, checks on-chain
|
|
3
|
-
* USDC balances
|
|
4
|
-
* responses when the
|
|
3
|
+
* USDC balances through independent RPC providers, and returns a fetch wrapper
|
|
4
|
+
* that auto-signs 402 responses only when the requested chain has confirmed
|
|
5
|
+
* funds.
|
|
5
6
|
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
7
|
+
* Balance reads are pre-payment, read-only operations. They may be retried and
|
|
8
|
+
* failed over safely; a payment payload has not been created or submitted yet.
|
|
9
|
+
* An exhausted RPC check is never represented as a zero balance.
|
|
9
10
|
*
|
|
10
11
|
* The viem / @x402/* / mppx imports live behind `./_paid-stack.ts` so the
|
|
11
12
|
* SDK's direct surface to those packages is auditable from one file and the
|
|
@@ -14,13 +15,150 @@
|
|
|
14
15
|
* Never calls `process.exit` — the SDK leaves exit-code decisions to the
|
|
15
16
|
* CLI edge.
|
|
16
17
|
*/
|
|
18
|
+
import type { CredentialsProvider } from "../credentials.js";
|
|
19
|
+
import { Run402Error } from "../errors.js";
|
|
20
|
+
import type { MppStack, X402Stack } from "./_paid-stack.js";
|
|
21
|
+
import { type PaymentAttemptStore } from "./payment-attempts.js";
|
|
17
22
|
type FetchFn = typeof globalThis.fetch;
|
|
18
|
-
|
|
23
|
+
interface RpcClient {
|
|
24
|
+
readContract: (args: unknown) => Promise<bigint>;
|
|
25
|
+
}
|
|
26
|
+
interface BalanceRetryOptions {
|
|
27
|
+
attemptsPerProvider?: number;
|
|
28
|
+
baseDelayMs?: number;
|
|
29
|
+
sleep?: (milliseconds: number) => Promise<void>;
|
|
30
|
+
random?: () => number;
|
|
31
|
+
}
|
|
32
|
+
interface PaymentRequirementLike {
|
|
33
|
+
network?: string;
|
|
34
|
+
amount?: string;
|
|
35
|
+
[key: string]: unknown;
|
|
36
|
+
}
|
|
37
|
+
interface KnownBalance {
|
|
38
|
+
status: "known";
|
|
39
|
+
balance: bigint;
|
|
40
|
+
}
|
|
41
|
+
interface UnknownBalance {
|
|
42
|
+
status: "unknown";
|
|
43
|
+
error: X402BalanceError;
|
|
44
|
+
}
|
|
45
|
+
type BalanceState = KnownBalance | UnknownBalance;
|
|
46
|
+
type BalanceStates = Record<string, BalanceState>;
|
|
47
|
+
export type X402BalanceErrorCode = "X402_RPC_TIMEOUT" | "X402_RPC_RATE_LIMITED" | "X402_RPC_UNAVAILABLE" | "X402_INSUFFICIENT_FUNDS";
|
|
48
|
+
/**
|
|
49
|
+
* A machine-readable x402 balance-preflight failure.
|
|
50
|
+
*
|
|
51
|
+
* `safeToRetry` is true only for read-only RPC failures. A confirmed balance
|
|
52
|
+
* miss is not retryable without changing wallet funds or payment requirements.
|
|
53
|
+
* Both states are emitted before payment payload creation, so
|
|
54
|
+
* `mutationState` is always `not_started`.
|
|
55
|
+
*/
|
|
56
|
+
export declare class X402BalanceError extends Run402Error {
|
|
57
|
+
readonly kind: "local_error";
|
|
58
|
+
readonly code: X402BalanceErrorCode;
|
|
59
|
+
readonly cause?: unknown;
|
|
60
|
+
constructor(code: X402BalanceErrorCode, message: string, details: Record<string, unknown>, cause?: unknown);
|
|
61
|
+
}
|
|
62
|
+
export type X402PaymentNetwork = "eip155:8453" | "eip155:84532";
|
|
63
|
+
/** Public-chain operations exposed to an opaque signer provider. */
|
|
64
|
+
export interface PaymentPublicClient {
|
|
65
|
+
readContract(args: unknown): Promise<bigint>;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Minimum EVM signer shape needed by x402. Implementations may keep key
|
|
69
|
+
* material behind KMS/HSM boundaries; only the public payer address and
|
|
70
|
+
* signing operation cross into the SDK.
|
|
71
|
+
*/
|
|
72
|
+
export interface EvmPaymentSigner {
|
|
73
|
+
readonly address: `0x${string}`;
|
|
74
|
+
signTypedData(message: {
|
|
75
|
+
domain: Record<string, unknown>;
|
|
76
|
+
types: Record<string, unknown>;
|
|
77
|
+
primaryType: string;
|
|
78
|
+
message: Record<string, unknown>;
|
|
79
|
+
}): Promise<`0x${string}`>;
|
|
80
|
+
readContract?(args: unknown): Promise<unknown>;
|
|
81
|
+
signTransaction?(args: unknown): Promise<`0x${string}`>;
|
|
82
|
+
getTransactionCount?(args: {
|
|
83
|
+
address: `0x${string}`;
|
|
84
|
+
}): Promise<number>;
|
|
85
|
+
estimateFeesPerGas?(): Promise<{
|
|
86
|
+
maxFeePerGas: bigint;
|
|
87
|
+
maxPriorityFeePerGas: bigint;
|
|
88
|
+
}>;
|
|
89
|
+
}
|
|
90
|
+
/** Async, opaque x402 payer. Returning null means that network is unsupported. */
|
|
91
|
+
export interface EvmPaymentSignerProvider {
|
|
92
|
+
getSigner(context: {
|
|
93
|
+
network: X402PaymentNetwork;
|
|
94
|
+
publicClient: PaymentPublicClient;
|
|
95
|
+
}): Promise<EvmPaymentSigner | null>;
|
|
96
|
+
}
|
|
97
|
+
export type PaymentPayerSource = "payment_signer" | "allowance_path" | "credentials" | "default_allowance";
|
|
98
|
+
/** Safe, key-free provenance for the payer selected by paid fetch. */
|
|
99
|
+
export interface PaymentPayerProvenance {
|
|
100
|
+
readonly source: PaymentPayerSource;
|
|
101
|
+
readonly rail: "x402" | "mpp";
|
|
102
|
+
readonly payers: readonly {
|
|
103
|
+
readonly address: string;
|
|
104
|
+
readonly network?: X402PaymentNetwork;
|
|
105
|
+
}[];
|
|
106
|
+
}
|
|
107
|
+
export type ConfiguredPaidFetch = FetchFn & {
|
|
108
|
+
readonly payer: PaymentPayerProvenance;
|
|
109
|
+
/** Refreshes mutable balance state without re-resolving the selected payer. */
|
|
110
|
+
refreshBalances(): Promise<void>;
|
|
111
|
+
};
|
|
112
|
+
export type LazyPaidFetch = FetchFn & {
|
|
113
|
+
/** Initializes the selected source if needed and returns public payer provenance only. */
|
|
114
|
+
getPayer(): Promise<PaymentPayerProvenance | null>;
|
|
115
|
+
};
|
|
116
|
+
export interface PaidFetchOptions {
|
|
117
|
+
/** Explicit local allowance file. When set, no other allowance is consulted. */
|
|
118
|
+
allowancePath?: string;
|
|
119
|
+
/** Auth provider whose optional allowance capability may also fund payments. */
|
|
120
|
+
credentials?: Pick<CredentialsProvider, "readAllowance">;
|
|
121
|
+
/** Explicit opaque x402 signer. Mutually exclusive with allowancePath. */
|
|
122
|
+
paymentSigner?: EvmPaymentSignerProvider;
|
|
123
|
+
}
|
|
124
|
+
/** @internal Test seam; not re-exported from `@run402/sdk/node`. */
|
|
125
|
+
export declare function _setPaidStackLoadersForTest(loaders?: {
|
|
126
|
+
x402?: () => Promise<X402Stack>;
|
|
127
|
+
mpp?: () => Promise<MppStack>;
|
|
128
|
+
}): void;
|
|
129
|
+
interface TrackedPaidFetchOptions {
|
|
130
|
+
store?: PaymentAttemptStore;
|
|
131
|
+
createAttemptId?: () => string;
|
|
132
|
+
now?: () => string;
|
|
133
|
+
fetch?: FetchFn;
|
|
134
|
+
}
|
|
135
|
+
/** @internal Exported only for deterministic source-level tests; not re-exported by the package. */
|
|
136
|
+
export declare function checkBalanceAcrossProviders(clients: readonly RpcClient[], tokenAddress: string, walletAddress: string, network: string, options?: BalanceRetryOptions): Promise<bigint>;
|
|
137
|
+
/** @internal Exported only for deterministic source-level tests; not re-exported by the package. */
|
|
138
|
+
export declare function filterAffordableRequirements(requirements: PaymentRequirementLike[], balances: BalanceStates): PaymentRequirementLike[];
|
|
139
|
+
export declare function setupPaidFetch(options?: PaidFetchOptions): Promise<ConfiguredPaidFetch | null>;
|
|
140
|
+
declare function createLazyPaidFetchFrom(setup: () => Promise<FetchFn | null>): FetchFn;
|
|
19
141
|
/**
|
|
20
142
|
* Returns a fetch that lazily initializes the x402 wrapper on first call.
|
|
21
|
-
*
|
|
22
|
-
*
|
|
143
|
+
* Failed initialization is not cached; concurrent first calls share one
|
|
144
|
+
* attempt, and a later request can recover after transient RPC/setup failure.
|
|
145
|
+
*/
|
|
146
|
+
export declare function createLazyPaidFetch(options?: PaidFetchOptions): LazyPaidFetch;
|
|
147
|
+
/** @internal Source-level unit-test seam; not re-exported by the package. */
|
|
148
|
+
export declare const __paidFetchInternals: {
|
|
149
|
+
createLazyPaidFetchFrom: typeof createLazyPaidFetchFrom;
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* Request-scoped payment tracker around `@x402/fetch`.
|
|
153
|
+
*
|
|
154
|
+
* The wrapped package may call its base fetch twice: first without payment to
|
|
155
|
+
* obtain the 402 challenge, then with a signed payment authorization. The
|
|
156
|
+
* AsyncLocalStorage context lets the base-fetch boundary update the correct
|
|
157
|
+
* durable attempt even when multiple paid requests run concurrently.
|
|
158
|
+
*
|
|
159
|
+
* Exported from this module for deterministic boundary tests, but intentionally
|
|
160
|
+
* not re-exported from the package entry point.
|
|
23
161
|
*/
|
|
24
|
-
export declare function
|
|
162
|
+
export declare function createTrackedX402Fetch(wrapFetchWithPayment: (fetch: FetchFn, client: unknown) => FetchFn, client: unknown, opts?: TrackedPaidFetchOptions): FetchFn;
|
|
25
163
|
export {};
|
|
26
164
|
//# sourceMappingURL=paid-fetch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"paid-fetch.d.ts","sourceRoot":"","sources":["../../src/node/paid-fetch.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"paid-fetch.d.ts","sourceRoot":"","sources":["../../src/node/paid-fetch.ts"],"names":[],"mappings":"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"}
|