run402 1.40.0 → 1.40.2

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 (121) hide show
  1. package/lib/sdk.mjs +1 -1
  2. package/package.json +4 -3
  3. package/sdk/core-dist/allowance-auth.js +129 -0
  4. package/sdk/core-dist/allowance.js +25 -0
  5. package/sdk/core-dist/client.js +42 -0
  6. package/sdk/core-dist/config.js +26 -0
  7. package/sdk/core-dist/keystore.js +97 -0
  8. package/sdk/core-dist/wallet-auth.js +62 -0
  9. package/sdk/core-dist/wallet.js +25 -0
  10. package/sdk/dist/credentials.d.ts +70 -0
  11. package/sdk/dist/credentials.d.ts.map +1 -0
  12. package/sdk/dist/credentials.js +19 -0
  13. package/sdk/dist/credentials.js.map +1 -0
  14. package/sdk/dist/errors.d.ts +34 -0
  15. package/sdk/dist/errors.d.ts.map +1 -0
  16. package/sdk/dist/errors.js +46 -0
  17. package/sdk/dist/errors.js.map +1 -0
  18. package/sdk/dist/index.d.ts +68 -0
  19. package/sdk/dist/index.d.ts.map +1 -0
  20. package/sdk/dist/index.js +81 -0
  21. package/sdk/dist/index.js.map +1 -0
  22. package/sdk/dist/kernel.d.ts +47 -0
  23. package/sdk/dist/kernel.d.ts.map +1 -0
  24. package/sdk/dist/kernel.js +76 -0
  25. package/sdk/dist/kernel.js.map +1 -0
  26. package/sdk/dist/namespaces/admin.d.ts +30 -0
  27. package/sdk/dist/namespaces/admin.d.ts.map +1 -0
  28. package/sdk/dist/namespaces/admin.js +36 -0
  29. package/sdk/dist/namespaces/admin.js.map +1 -0
  30. package/sdk/dist/namespaces/ai.d.ts +57 -0
  31. package/sdk/dist/namespaces/ai.d.ts.map +1 -0
  32. package/sdk/dist/namespaces/ai.js +62 -0
  33. package/sdk/dist/namespaces/ai.js.map +1 -0
  34. package/sdk/dist/namespaces/allowance.d.ts +51 -0
  35. package/sdk/dist/namespaces/allowance.d.ts.map +1 -0
  36. package/sdk/dist/namespaces/allowance.js +116 -0
  37. package/sdk/dist/namespaces/allowance.js.map +1 -0
  38. package/sdk/dist/namespaces/apps.d.ts +158 -0
  39. package/sdk/dist/namespaces/apps.d.ts.map +1 -0
  40. package/sdk/dist/namespaces/apps.js +150 -0
  41. package/sdk/dist/namespaces/apps.js.map +1 -0
  42. package/sdk/dist/namespaces/auth.d.ts +53 -0
  43. package/sdk/dist/namespaces/auth.d.ts.map +1 -0
  44. package/sdk/dist/namespaces/auth.js +106 -0
  45. package/sdk/dist/namespaces/auth.js.map +1 -0
  46. package/sdk/dist/namespaces/billing.d.ts +64 -0
  47. package/sdk/dist/namespaces/billing.d.ts.map +1 -0
  48. package/sdk/dist/namespaces/billing.js +105 -0
  49. package/sdk/dist/namespaces/billing.js.map +1 -0
  50. package/sdk/dist/namespaces/blobs.d.ts +41 -0
  51. package/sdk/dist/namespaces/blobs.d.ts.map +1 -0
  52. package/sdk/dist/namespaces/blobs.js +202 -0
  53. package/sdk/dist/namespaces/blobs.js.map +1 -0
  54. package/sdk/dist/namespaces/blobs.types.d.ts +58 -0
  55. package/sdk/dist/namespaces/blobs.types.d.ts.map +1 -0
  56. package/sdk/dist/namespaces/blobs.types.js +9 -0
  57. package/sdk/dist/namespaces/blobs.types.js.map +1 -0
  58. package/sdk/dist/namespaces/contracts.d.ts +65 -0
  59. package/sdk/dist/namespaces/contracts.d.ts.map +1 -0
  60. package/sdk/dist/namespaces/contracts.js +163 -0
  61. package/sdk/dist/namespaces/contracts.js.map +1 -0
  62. package/sdk/dist/namespaces/domains.d.ts +57 -0
  63. package/sdk/dist/namespaces/domains.d.ts.map +1 -0
  64. package/sdk/dist/namespaces/domains.js +60 -0
  65. package/sdk/dist/namespaces/domains.js.map +1 -0
  66. package/sdk/dist/namespaces/email.d.ts +131 -0
  67. package/sdk/dist/namespaces/email.d.ts.map +1 -0
  68. package/sdk/dist/namespaces/email.js +318 -0
  69. package/sdk/dist/namespaces/email.js.map +1 -0
  70. package/sdk/dist/namespaces/functions.d.ts +43 -0
  71. package/sdk/dist/namespaces/functions.d.ts.map +1 -0
  72. package/sdk/dist/namespaces/functions.js +146 -0
  73. package/sdk/dist/namespaces/functions.js.map +1 -0
  74. package/sdk/dist/namespaces/functions.types.d.ts +96 -0
  75. package/sdk/dist/namespaces/functions.types.d.ts.map +1 -0
  76. package/sdk/dist/namespaces/functions.types.js +6 -0
  77. package/sdk/dist/namespaces/functions.types.js.map +1 -0
  78. package/sdk/dist/namespaces/projects.d.ts +97 -0
  79. package/sdk/dist/namespaces/projects.d.ts.map +1 -0
  80. package/sdk/dist/namespaces/projects.js +214 -0
  81. package/sdk/dist/namespaces/projects.js.map +1 -0
  82. package/sdk/dist/namespaces/projects.types.d.ts +112 -0
  83. package/sdk/dist/namespaces/projects.types.d.ts.map +1 -0
  84. package/sdk/dist/namespaces/projects.types.js +9 -0
  85. package/sdk/dist/namespaces/projects.types.js.map +1 -0
  86. package/sdk/dist/namespaces/secrets.d.ts +23 -0
  87. package/sdk/dist/namespaces/secrets.d.ts.map +1 -0
  88. package/sdk/dist/namespaces/secrets.js +45 -0
  89. package/sdk/dist/namespaces/secrets.js.map +1 -0
  90. package/sdk/dist/namespaces/sender-domain.d.ts +40 -0
  91. package/sdk/dist/namespaces/sender-domain.d.ts.map +1 -0
  92. package/sdk/dist/namespaces/sender-domain.js +69 -0
  93. package/sdk/dist/namespaces/sender-domain.js.map +1 -0
  94. package/sdk/dist/namespaces/service.d.ts +51 -0
  95. package/sdk/dist/namespaces/service.d.ts.map +1 -0
  96. package/sdk/dist/namespaces/service.js +25 -0
  97. package/sdk/dist/namespaces/service.js.map +1 -0
  98. package/sdk/dist/namespaces/sites.d.ts +50 -0
  99. package/sdk/dist/namespaces/sites.d.ts.map +1 -0
  100. package/sdk/dist/namespaces/sites.js +38 -0
  101. package/sdk/dist/namespaces/sites.js.map +1 -0
  102. package/sdk/dist/namespaces/subdomains.d.ts +36 -0
  103. package/sdk/dist/namespaces/subdomains.d.ts.map +1 -0
  104. package/sdk/dist/namespaces/subdomains.js +54 -0
  105. package/sdk/dist/namespaces/subdomains.js.map +1 -0
  106. package/sdk/dist/namespaces/tier.d.ts +36 -0
  107. package/sdk/dist/namespaces/tier.d.ts.map +1 -0
  108. package/sdk/dist/namespaces/tier.js +31 -0
  109. package/sdk/dist/namespaces/tier.js.map +1 -0
  110. package/sdk/dist/node/credentials.d.ts +26 -0
  111. package/sdk/dist/node/credentials.d.ts.map +1 -0
  112. package/sdk/dist/node/credentials.js +69 -0
  113. package/sdk/dist/node/credentials.js.map +1 -0
  114. package/sdk/dist/node/index.d.ts +44 -0
  115. package/sdk/dist/node/index.d.ts.map +1 -0
  116. package/sdk/dist/node/index.js +43 -0
  117. package/sdk/dist/node/index.js.map +1 -0
  118. package/sdk/dist/node/paid-fetch.d.ts +22 -0
  119. package/sdk/dist/node/paid-fetch.d.ts.map +1 -0
  120. package/sdk/dist/node/paid-fetch.js +116 -0
  121. package/sdk/dist/node/paid-fetch.js.map +1 -0
@@ -0,0 +1,51 @@
1
+ /**
2
+ * `service` namespace — public `GET /status` and `GET /health` endpoints.
3
+ * No auth, no allowance, no project scope. Safe to call from anywhere.
4
+ */
5
+ import type { Client } from "../kernel.js";
6
+ export interface ServiceStatusPayload {
7
+ schema_version?: string;
8
+ service?: string;
9
+ current_status?: string;
10
+ operator?: {
11
+ legal_name?: string;
12
+ terms_url?: string;
13
+ contact?: string;
14
+ };
15
+ availability?: {
16
+ last_30d?: {
17
+ uptime_pct?: number;
18
+ total_probes?: number;
19
+ healthy_probes?: number;
20
+ };
21
+ last_7d?: {
22
+ uptime_pct?: number;
23
+ };
24
+ last_24h?: {
25
+ uptime_pct?: number;
26
+ };
27
+ };
28
+ capabilities?: Record<string, string>;
29
+ deployment?: {
30
+ cloud?: string;
31
+ region?: string;
32
+ topology?: string;
33
+ };
34
+ links?: {
35
+ health?: string;
36
+ };
37
+ }
38
+ export interface ServiceHealthPayload {
39
+ status?: string;
40
+ checks?: Record<string, string>;
41
+ version?: string;
42
+ }
43
+ export declare class Service {
44
+ private readonly client;
45
+ constructor(client: Client);
46
+ /** Reports availability, uptime, operator metadata, capability states. */
47
+ status(): Promise<ServiceStatusPayload>;
48
+ /** Liveness check with per-dependency results. */
49
+ health(): Promise<ServiceHealthPayload>;
50
+ }
51
+ //# sourceMappingURL=service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/namespaces/service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,WAAW,oBAAoB;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,YAAY,CAAC,EAAE;QACb,QAAQ,CAAC,EAAE;YAAE,UAAU,CAAC,EAAE,MAAM,CAAC;YAAC,YAAY,CAAC,EAAE,MAAM,CAAC;YAAC,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QACnF,OAAO,CAAC,EAAE;YAAE,UAAU,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;QAClC,QAAQ,CAAC,EAAE;YAAE,UAAU,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KACpC,CAAC;IACF,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,UAAU,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,KAAK,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,OAAO;IACN,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE3C,0EAA0E;IACpE,MAAM,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAO7C,kDAAkD;IAC5C,MAAM,IAAI,OAAO,CAAC,oBAAoB,CAAC;CAM9C"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * `service` namespace — public `GET /status` and `GET /health` endpoints.
3
+ * No auth, no allowance, no project scope. Safe to call from anywhere.
4
+ */
5
+ export class Service {
6
+ client;
7
+ constructor(client) {
8
+ this.client = client;
9
+ }
10
+ /** Reports availability, uptime, operator metadata, capability states. */
11
+ async status() {
12
+ return this.client.request("/status", {
13
+ context: "fetching service status",
14
+ withAuth: false,
15
+ });
16
+ }
17
+ /** Liveness check with per-dependency results. */
18
+ async health() {
19
+ return this.client.request("/health", {
20
+ context: "fetching service health",
21
+ withAuth: false,
22
+ });
23
+ }
24
+ }
25
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/namespaces/service.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAyBH,MAAM,OAAO,OAAO;IACW;IAA7B,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE/C,0EAA0E;IAC1E,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAuB,SAAS,EAAE;YAC1D,OAAO,EAAE,yBAAyB;YAClC,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;IACL,CAAC;IAED,kDAAkD;IAClD,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAuB,SAAS,EAAE;YAC1D,OAAO,EAAE,yBAAyB;YAClC,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * `sites` namespace — static site deployments via `/deployments/v1`.
3
+ *
4
+ * `deploy` uses allowance-based SIWX auth (no project service key — the
5
+ * project is referenced in the request body). Callers persisting
6
+ * `last_deployment_id` locally should do so after a successful response.
7
+ */
8
+ import type { Client } from "../kernel.js";
9
+ export interface SiteFile {
10
+ /** File path relative to the site root (e.g. `"index.html"`, `"assets/logo.png"`). */
11
+ file: string;
12
+ /** File contents, either UTF-8 text or base64-encoded bytes. */
13
+ data: string;
14
+ encoding?: "utf-8" | "base64";
15
+ }
16
+ export interface SiteDeployOptions {
17
+ /** Deployment target label, e.g. `"production"`. */
18
+ target?: string;
19
+ /**
20
+ * When true, unchanged files are copied from the previous deployment —
21
+ * only changed/new files need to appear in `files`.
22
+ */
23
+ inherit?: boolean;
24
+ }
25
+ export interface SiteDeployResult {
26
+ deployment_id: string;
27
+ url: string;
28
+ }
29
+ export interface DeploymentInfo {
30
+ id: string;
31
+ name: string;
32
+ url: string;
33
+ project_id?: string;
34
+ status: string;
35
+ files_count: number;
36
+ total_size: number;
37
+ }
38
+ export declare class Sites {
39
+ private readonly client;
40
+ constructor(client: Client);
41
+ /**
42
+ * Deploy a static site. Payment flows through the configured fetch wrapper
43
+ * (x402 in Node when a tier purchase is required; typically free with an
44
+ * active tier).
45
+ */
46
+ deploy(project: string, files: SiteFile[], opts?: SiteDeployOptions): Promise<SiteDeployResult>;
47
+ /** Get deployment metadata by id. Public — no project auth. */
48
+ getDeployment(deploymentId: string): Promise<DeploymentInfo>;
49
+ }
50
+ //# sourceMappingURL=sites.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sites.d.ts","sourceRoot":"","sources":["../../src/namespaces/sites.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,WAAW,QAAQ;IACvB,sFAAsF;IACtF,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAC/B;AAED,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,KAAK;IACJ,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE3C;;;;OAIG;IACG,MAAM,CACV,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,QAAQ,EAAE,EACjB,IAAI,GAAE,iBAAsB,GAC3B,OAAO,CAAC,gBAAgB,CAAC;IAY5B,+DAA+D;IACzD,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;CAMnE"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * `sites` namespace — static site deployments via `/deployments/v1`.
3
+ *
4
+ * `deploy` uses allowance-based SIWX auth (no project service key — the
5
+ * project is referenced in the request body). Callers persisting
6
+ * `last_deployment_id` locally should do so after a successful response.
7
+ */
8
+ export class Sites {
9
+ client;
10
+ constructor(client) {
11
+ this.client = client;
12
+ }
13
+ /**
14
+ * Deploy a static site. Payment flows through the configured fetch wrapper
15
+ * (x402 in Node when a tier purchase is required; typically free with an
16
+ * active tier).
17
+ */
18
+ async deploy(project, files, opts = {}) {
19
+ const body = { project, files };
20
+ if (opts.target !== undefined)
21
+ body.target = opts.target;
22
+ if (opts.inherit)
23
+ body.inherit = true;
24
+ return this.client.request("/deployments/v1", {
25
+ method: "POST",
26
+ body,
27
+ context: "deploying site",
28
+ });
29
+ }
30
+ /** Get deployment metadata by id. Public — no project auth. */
31
+ async getDeployment(deploymentId) {
32
+ return this.client.request(`/deployments/v1/${deploymentId}`, {
33
+ context: "fetching deployment",
34
+ withAuth: false,
35
+ });
36
+ }
37
+ }
38
+ //# sourceMappingURL=sites.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sites.js","sourceRoot":"","sources":["../../src/namespaces/sites.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAqCH,MAAM,OAAO,KAAK;IACa;IAA7B,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE/C;;;;OAIG;IACH,KAAK,CAAC,MAAM,CACV,OAAe,EACf,KAAiB,EACjB,OAA0B,EAAE;QAE5B,MAAM,IAAI,GAA4B,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QACzD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS;YAAE,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACzD,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QAEtC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAmB,iBAAiB,EAAE;YAC9D,MAAM,EAAE,MAAM;YACd,IAAI;YACJ,OAAO,EAAE,gBAAgB;SAC1B,CAAC,CAAC;IACL,CAAC;IAED,+DAA+D;IAC/D,KAAK,CAAC,aAAa,CAAC,YAAoB;QACtC,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAiB,mBAAmB,YAAY,EAAE,EAAE;YAC5E,OAAO,EAAE,qBAAqB;YAC9B,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * `subdomains` namespace — `*.run402.com` subdomain claims pointing at
3
+ * deployments. `claim` and `delete` accept an optional `projectId` for
4
+ * ownership tracking; `list` requires one.
5
+ */
6
+ import type { Client } from "../kernel.js";
7
+ export interface SubdomainClaimOptions {
8
+ /** Optional project ID. If provided, the SDK sends the project's service key as bearer auth. */
9
+ projectId?: string;
10
+ }
11
+ export interface SubdomainClaimResult {
12
+ name: string;
13
+ deployment_id: string;
14
+ url: string;
15
+ deployment_url: string;
16
+ project_id: string | null;
17
+ created_at: string;
18
+ updated_at: string;
19
+ }
20
+ export interface SubdomainSummary {
21
+ name: string;
22
+ url: string;
23
+ deployment_id: string;
24
+ deployment_url: string;
25
+ }
26
+ export declare class Subdomains {
27
+ private readonly client;
28
+ constructor(client: Client);
29
+ /** Claim a subdomain and point it at a deployment. */
30
+ claim(name: string, deploymentId: string, opts?: SubdomainClaimOptions): Promise<SubdomainClaimResult>;
31
+ /** Release a subdomain. */
32
+ delete(name: string, opts?: SubdomainClaimOptions): Promise<void>;
33
+ /** List all subdomains claimed by a project. */
34
+ list(projectId: string): Promise<SubdomainSummary[]>;
35
+ }
36
+ //# sourceMappingURL=subdomains.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subdomains.d.ts","sourceRoot":"","sources":["../../src/namespaces/subdomains.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C,MAAM,WAAW,qBAAqB;IACpC,gGAAgG;IAChG,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;IACtB,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,qBAAa,UAAU;IACT,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE3C,sDAAsD;IAChD,KAAK,CACT,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,MAAM,EACpB,IAAI,GAAE,qBAA0B,GAC/B,OAAO,CAAC,oBAAoB,CAAC;IAgBhC,2BAA2B;IACrB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,qBAA0B,GAAG,OAAO,CAAC,IAAI,CAAC;IAe3E,gDAAgD;IAC1C,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;CAS3D"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * `subdomains` namespace — `*.run402.com` subdomain claims pointing at
3
+ * deployments. `claim` and `delete` accept an optional `projectId` for
4
+ * ownership tracking; `list` requires one.
5
+ */
6
+ import { ProjectNotFound } from "../errors.js";
7
+ export class Subdomains {
8
+ client;
9
+ constructor(client) {
10
+ this.client = client;
11
+ }
12
+ /** Claim a subdomain and point it at a deployment. */
13
+ async claim(name, deploymentId, opts = {}) {
14
+ const headers = {};
15
+ if (opts.projectId) {
16
+ const project = await this.client.getProject(opts.projectId);
17
+ if (!project)
18
+ throw new ProjectNotFound(opts.projectId, "claiming subdomain");
19
+ headers.Authorization = `Bearer ${project.service_key}`;
20
+ }
21
+ return this.client.request("/subdomains/v1", {
22
+ method: "POST",
23
+ headers,
24
+ body: { name, deployment_id: deploymentId },
25
+ context: "claiming subdomain",
26
+ });
27
+ }
28
+ /** Release a subdomain. */
29
+ async delete(name, opts = {}) {
30
+ const headers = {};
31
+ if (opts.projectId) {
32
+ const project = await this.client.getProject(opts.projectId);
33
+ if (!project)
34
+ throw new ProjectNotFound(opts.projectId, "deleting subdomain");
35
+ headers.Authorization = `Bearer ${project.service_key}`;
36
+ }
37
+ await this.client.request(`/subdomains/v1/${encodeURIComponent(name)}`, {
38
+ method: "DELETE",
39
+ headers,
40
+ context: "deleting subdomain",
41
+ });
42
+ }
43
+ /** List all subdomains claimed by a project. */
44
+ async list(projectId) {
45
+ const project = await this.client.getProject(projectId);
46
+ if (!project)
47
+ throw new ProjectNotFound(projectId, "listing subdomains");
48
+ return this.client.request("/subdomains/v1", {
49
+ headers: { Authorization: `Bearer ${project.service_key}` },
50
+ context: "listing subdomains",
51
+ });
52
+ }
53
+ }
54
+ //# sourceMappingURL=subdomains.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subdomains.js","sourceRoot":"","sources":["../../src/namespaces/subdomains.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAwB/C,MAAM,OAAO,UAAU;IACQ;IAA7B,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE/C,sDAAsD;IACtD,KAAK,CAAC,KAAK,CACT,IAAY,EACZ,YAAoB,EACpB,OAA8B,EAAE;QAEhC,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7D,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;YAC9E,OAAO,CAAC,aAAa,GAAG,UAAU,OAAO,CAAC,WAAW,EAAE,CAAC;QAC1D,CAAC;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAuB,gBAAgB,EAAE;YACjE,MAAM,EAAE,MAAM;YACd,OAAO;YACP,IAAI,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,YAAY,EAAE;YAC3C,OAAO,EAAE,oBAAoB;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,2BAA2B;IAC3B,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,OAA8B,EAAE;QACzD,MAAM,OAAO,GAA2B,EAAE,CAAC;QAC3C,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC7D,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;YAC9E,OAAO,CAAC,aAAa,GAAG,UAAU,OAAO,CAAC,WAAW,EAAE,CAAC;QAC1D,CAAC;QAED,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAU,kBAAkB,kBAAkB,CAAC,IAAI,CAAC,EAAE,EAAE;YAC/E,MAAM,EAAE,QAAQ;YAChB,OAAO;YACP,OAAO,EAAE,oBAAoB;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,gDAAgD;IAChD,KAAK,CAAC,IAAI,CAAC,SAAiB;QAC1B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,eAAe,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QAEzE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAqB,gBAAgB,EAAE;YAC/D,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,OAAO,CAAC,WAAW,EAAE,EAAE;YAC3D,OAAO,EAAE,oBAAoB;SAC9B,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * `tier` namespace — tier subscription / renewal / upgrade against
3
+ * `/tiers/v1*`. Requires allowance SIWX auth; `set` flows through x402
4
+ * for the actual payment.
5
+ */
6
+ import type { Client } from "../kernel.js";
7
+ export type TierName = "prototype" | "hobby" | "team";
8
+ export interface TierStatusResult {
9
+ wallet: string;
10
+ tier: string | null;
11
+ lease_expires_at: string | null;
12
+ status: string;
13
+ }
14
+ export interface TierSetResult {
15
+ wallet: string;
16
+ action: string;
17
+ tier: string;
18
+ previous_tier: string | null;
19
+ lease_started_at: string;
20
+ lease_expires_at: string;
21
+ allowance_remaining_usd_micros: number;
22
+ }
23
+ export declare class Tier {
24
+ private readonly client;
25
+ constructor(client: Client);
26
+ /** Check current tier subscription — tier name, status, and expiry. */
27
+ status(): Promise<TierStatusResult>;
28
+ /**
29
+ * Subscribe, renew, or upgrade a tier. Auto-detects the action based on
30
+ * allowance state. Payment flows through the injected fetch (x402 in
31
+ * Node with an allowance). Throws {@link PaymentRequired} when the
32
+ * wrapper cannot fund the call.
33
+ */
34
+ set(tier: TierName): Promise<TierSetResult>;
35
+ }
36
+ //# sourceMappingURL=tier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tier.d.ts","sourceRoot":"","sources":["../../src/namespaces/tier.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG,OAAO,GAAG,MAAM,CAAC;AAEtD,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,8BAA8B,EAAE,MAAM,CAAC;CACxC;AAED,qBAAa,IAAI;IACH,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE3C,uEAAuE;IACjE,MAAM,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAMzC;;;;;OAKG;IACG,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,CAAC;CAOlD"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * `tier` namespace — tier subscription / renewal / upgrade against
3
+ * `/tiers/v1*`. Requires allowance SIWX auth; `set` flows through x402
4
+ * for the actual payment.
5
+ */
6
+ export class Tier {
7
+ client;
8
+ constructor(client) {
9
+ this.client = client;
10
+ }
11
+ /** Check current tier subscription — tier name, status, and expiry. */
12
+ async status() {
13
+ return this.client.request("/tiers/v1/status", {
14
+ context: "checking tier status",
15
+ });
16
+ }
17
+ /**
18
+ * Subscribe, renew, or upgrade a tier. Auto-detects the action based on
19
+ * allowance state. Payment flows through the injected fetch (x402 in
20
+ * Node with an allowance). Throws {@link PaymentRequired} when the
21
+ * wrapper cannot fund the call.
22
+ */
23
+ async set(tier) {
24
+ return this.client.request(`/tiers/v1/${tier}`, {
25
+ method: "POST",
26
+ body: {},
27
+ context: "setting tier",
28
+ });
29
+ }
30
+ }
31
+ //# sourceMappingURL=tier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tier.js","sourceRoot":"","sources":["../../src/namespaces/tier.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAuBH,MAAM,OAAO,IAAI;IACc;IAA7B,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE/C,uEAAuE;IACvE,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAmB,kBAAkB,EAAE;YAC/D,OAAO,EAAE,sBAAsB;SAChC,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,GAAG,CAAC,IAAc;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAgB,aAAa,IAAI,EAAE,EAAE;YAC7D,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE;YACR,OAAO,EAAE,cAAc;SACxB,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * Node credential provider — wraps the local keystore + allowance-auth.
3
+ * Reproduces today's CLI/MCP behavior: reads `~/.config/run402/keystore.json`
4
+ * (or `RUN402_CONFIG_DIR` override), signs SIWX headers from the allowance
5
+ * private key, and serves project anon/service keys from disk.
6
+ */
7
+ import type { AllowanceData, CredentialsProvider, ProjectKeys } from "../credentials.js";
8
+ export declare class NodeCredentialsProvider implements CredentialsProvider {
9
+ private readonly options;
10
+ constructor(options?: {
11
+ allowancePath?: string;
12
+ keystorePath?: string;
13
+ });
14
+ getAuth(path: string): Promise<Record<string, string> | null>;
15
+ getProject(id: string): Promise<ProjectKeys | null>;
16
+ saveProject(id: string, project: ProjectKeys): Promise<void>;
17
+ updateProject(id: string, patch: Partial<ProjectKeys>): Promise<void>;
18
+ removeProject(id: string): Promise<void>;
19
+ setActiveProject(id: string): Promise<void>;
20
+ getActiveProject(): Promise<string | null>;
21
+ readAllowance(): Promise<AllowanceData | null>;
22
+ saveAllowance(data: AllowanceData): Promise<void>;
23
+ createAllowance(): Promise<AllowanceData>;
24
+ getAllowancePath(): string;
25
+ }
26
+ //# sourceMappingURL=credentials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/node/credentials.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAeH,OAAO,KAAK,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEzF,qBAAa,uBAAwB,YAAW,mBAAmB;IACrD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,GAAE;QAAE,aAAa,CAAC,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,CAAA;KAAO;IAEtF,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;IAK7D,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAKnD,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5D,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrE,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3C,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAI1C,aAAa,IAAI,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAI9C,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAIjD,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC;IAqB/C,gBAAgB,IAAI,MAAM;CAG3B"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Node credential provider — wraps the local keystore + allowance-auth.
3
+ * Reproduces today's CLI/MCP behavior: reads `~/.config/run402/keystore.json`
4
+ * (or `RUN402_CONFIG_DIR` override), signs SIWX headers from the allowance
5
+ * private key, and serves project anon/service keys from disk.
6
+ */
7
+ import { randomBytes, createECDH } from "node:crypto";
8
+ import { keccak_256 } from "@noble/hashes/sha3.js";
9
+ import { getProject as coreGetProject, saveProject as coreSaveProject, updateProject as coreUpdateProject, removeProject as coreRemoveProject, setActiveProjectId, getActiveProjectId, } from "../../core-dist/keystore.js";
10
+ import { getAllowanceAuthHeaders } from "../../core-dist/allowance-auth.js";
11
+ import { readAllowance as coreReadAllowance, saveAllowance as coreSaveAllowance } from "../../core-dist/allowance.js";
12
+ import { getAllowancePath as coreGetAllowancePath } from "../../core-dist/config.js";
13
+ export class NodeCredentialsProvider {
14
+ options;
15
+ constructor(options = {}) {
16
+ this.options = options;
17
+ }
18
+ async getAuth(path) {
19
+ const headers = getAllowanceAuthHeaders(path, this.options.allowancePath);
20
+ return headers ? { ...headers } : null;
21
+ }
22
+ async getProject(id) {
23
+ const p = coreGetProject(id, this.options.keystorePath);
24
+ return p ?? null;
25
+ }
26
+ async saveProject(id, project) {
27
+ coreSaveProject(id, project, this.options.keystorePath);
28
+ }
29
+ async updateProject(id, patch) {
30
+ coreUpdateProject(id, patch, this.options.keystorePath);
31
+ }
32
+ async removeProject(id) {
33
+ coreRemoveProject(id, this.options.keystorePath);
34
+ }
35
+ async setActiveProject(id) {
36
+ setActiveProjectId(id, this.options.keystorePath);
37
+ }
38
+ async getActiveProject() {
39
+ return getActiveProjectId(this.options.keystorePath) ?? null;
40
+ }
41
+ async readAllowance() {
42
+ return coreReadAllowance(this.options.allowancePath) ?? null;
43
+ }
44
+ async saveAllowance(data) {
45
+ coreSaveAllowance(data, this.options.allowancePath);
46
+ }
47
+ async createAllowance() {
48
+ const privateKeyBytes = randomBytes(32);
49
+ const privateKey = `0x${privateKeyBytes.toString("hex")}`;
50
+ const ecdh = createECDH("secp256k1");
51
+ ecdh.setPrivateKey(privateKeyBytes);
52
+ const uncompressedPubKey = ecdh.getPublicKey();
53
+ // Strip the 04 uncompressed-point prefix before hashing.
54
+ const pubKeyBody = uncompressedPubKey.subarray(1);
55
+ const hash = keccak_256(pubKeyBody);
56
+ const addressBytes = hash.slice(-20);
57
+ const address = `0x${Buffer.from(addressBytes).toString("hex")}`;
58
+ return {
59
+ address,
60
+ privateKey,
61
+ created: new Date().toISOString(),
62
+ funded: false,
63
+ };
64
+ }
65
+ getAllowancePath() {
66
+ return this.options.allowancePath ?? coreGetAllowancePath();
67
+ }
68
+ }
69
+ //# sourceMappingURL=credentials.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/node/credentials.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * `@run402/sdk/node` — zero-config Node entry point.
3
+ *
4
+ * Wires the isomorphic SDK kernel with:
5
+ * - default API base from `RUN402_API_BASE` (via core/config)
6
+ * - {@link NodeCredentialsProvider} backed by the local keystore + allowance
7
+ * - an x402-wrapped fetch built lazily on first request
8
+ *
9
+ * Usage:
10
+ * ```ts
11
+ * import { run402 } from "@run402/sdk/node";
12
+ * const r = run402();
13
+ * const project = await r.projects.provision({ tier: "prototype" });
14
+ * ```
15
+ */
16
+ import { Run402 } from "../index.js";
17
+ export interface NodeRun402Options {
18
+ /** Override the API base URL. Defaults to `getApiBase()` (env var or production URL). */
19
+ apiBase?: string;
20
+ /** Override the keystore file path. Defaults to the standard location. */
21
+ keystorePath?: string;
22
+ /** Override the allowance file path. Defaults to the standard location. */
23
+ allowancePath?: string;
24
+ /**
25
+ * Skip x402 payment wrapping and use `globalThis.fetch` directly. Useful in
26
+ * tests or when the caller pre-wraps fetch with a custom scheme.
27
+ */
28
+ disablePaidFetch?: boolean;
29
+ /** Fully custom fetch implementation. Takes precedence over `disablePaidFetch`. */
30
+ fetch?: typeof globalThis.fetch;
31
+ }
32
+ /**
33
+ * Construct a Run402 client wired with Node defaults.
34
+ *
35
+ * Behavior matches today's `run402-mcp` / `run402` CLI: reads keystore and
36
+ * allowance from disk, signs SIWX headers, and retries 402 responses via
37
+ * `@x402/fetch` when the allowance wallet has USDC balance.
38
+ */
39
+ export declare function run402(opts?: NodeRun402Options): Run402;
40
+ export { NodeCredentialsProvider } from "./credentials.js";
41
+ export { setupPaidFetch, createLazyPaidFetch } from "./paid-fetch.js";
42
+ export { Run402, Run402Error, PaymentRequired, ProjectNotFound, Unauthorized, ApiError, NetworkError, } from "../index.js";
43
+ export type { Run402Options, CredentialsProvider, ProjectKeys, RequestOptions, Client, } from "../index.js";
44
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,EAAE,MAAM,EAAsB,MAAM,aAAa,CAAC;AAIzD,MAAM,WAAW,iBAAiB;IAChC,yFAAyF;IACzF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0EAA0E;IAC1E,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,mFAAmF;IACnF,KAAK,CAAC,EAAE,OAAO,UAAU,CAAC,KAAK,CAAC;CACjC;AAED;;;;;;GAMG;AACH,wBAAgB,MAAM,CAAC,IAAI,GAAE,iBAAsB,GAAG,MAAM,CAY3D;AAED,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EACL,MAAM,EACN,WAAW,EACX,eAAe,EACf,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,YAAY,GACb,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,cAAc,EACd,MAAM,GACP,MAAM,aAAa,CAAC"}
@@ -0,0 +1,43 @@
1
+ /**
2
+ * `@run402/sdk/node` — zero-config Node entry point.
3
+ *
4
+ * Wires the isomorphic SDK kernel with:
5
+ * - default API base from `RUN402_API_BASE` (via core/config)
6
+ * - {@link NodeCredentialsProvider} backed by the local keystore + allowance
7
+ * - an x402-wrapped fetch built lazily on first request
8
+ *
9
+ * Usage:
10
+ * ```ts
11
+ * import { run402 } from "@run402/sdk/node";
12
+ * const r = run402();
13
+ * const project = await r.projects.provision({ tier: "prototype" });
14
+ * ```
15
+ */
16
+ import { getApiBase } from "../../core-dist/config.js";
17
+ import { Run402 } from "../index.js";
18
+ import { NodeCredentialsProvider } from "./credentials.js";
19
+ import { createLazyPaidFetch } from "./paid-fetch.js";
20
+ /**
21
+ * Construct a Run402 client wired with Node defaults.
22
+ *
23
+ * Behavior matches today's `run402-mcp` / `run402` CLI: reads keystore and
24
+ * allowance from disk, signs SIWX headers, and retries 402 responses via
25
+ * `@x402/fetch` when the allowance wallet has USDC balance.
26
+ */
27
+ export function run402(opts = {}) {
28
+ const runOpts = {
29
+ apiBase: opts.apiBase ?? getApiBase(),
30
+ credentials: new NodeCredentialsProvider({
31
+ allowancePath: opts.allowancePath,
32
+ keystorePath: opts.keystorePath,
33
+ }),
34
+ fetch: opts.fetch ??
35
+ (opts.disablePaidFetch ? globalThis.fetch.bind(globalThis) : createLazyPaidFetch()),
36
+ };
37
+ return new Run402(runOpts);
38
+ }
39
+ export { NodeCredentialsProvider } from "./credentials.js";
40
+ export { setupPaidFetch, createLazyPaidFetch } from "./paid-fetch.js";
41
+ // Re-export the isomorphic surface so Node consumers don't need two imports.
42
+ export { Run402, Run402Error, PaymentRequired, ProjectNotFound, Unauthorized, ApiError, NetworkError, } from "../index.js";
43
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,MAAM,EAAsB,MAAM,aAAa,CAAC;AACzD,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAkBtD;;;;;;GAMG;AACH,MAAM,UAAU,MAAM,CAAC,OAA0B,EAAE;IACjD,MAAM,OAAO,GAAkB;QAC7B,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,UAAU,EAAE;QACrC,WAAW,EAAE,IAAI,uBAAuB,CAAC;YACvC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,YAAY,EAAE,IAAI,CAAC,YAAY;SAChC,CAAC;QACF,KAAK,EACH,IAAI,CAAC,KAAK;YACV,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,mBAAmB,EAAE,CAAC;KACtF,CAAC;IACF,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;AAC7B,CAAC;AAED,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtE,6EAA6E;AAC7E,OAAO,EACL,MAAM,EACN,WAAW,EACX,eAAe,EACf,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,YAAY,GACb,MAAM,aAAa,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Node-only x402-wrapped fetch. Reads the allowance file, checks on-chain
3
+ * USDC balances in parallel, and returns a fetch wrapper that auto-signs 402
4
+ * responses when the wallet has balance.
5
+ *
6
+ * Graceful degradation: returns null if no allowance is configured or the
7
+ * optional payment libraries fail to load. Callers can fall back to an
8
+ * unwrapped fetch and let 402s surface as `PaymentRequired` errors.
9
+ *
10
+ * Never calls `process.exit` — the SDK leaves exit-code decisions to the
11
+ * CLI edge.
12
+ */
13
+ type FetchFn = typeof globalThis.fetch;
14
+ export declare function setupPaidFetch(): Promise<FetchFn | null>;
15
+ /**
16
+ * Returns a fetch that lazily initializes the x402 wrapper on first call.
17
+ * This lets the Node `run402()` factory remain synchronous while deferring
18
+ * the (async) on-chain balance check until the first request.
19
+ */
20
+ export declare function createLazyPaidFetch(): FetchFn;
21
+ export {};
22
+ //# sourceMappingURL=paid-fetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"paid-fetch.d.ts","sourceRoot":"","sources":["../../src/node/paid-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,KAAK,OAAO,GAAG,OAAO,UAAU,CAAC,KAAK,CAAC;AAgCvC,wBAAsB,cAAc,IAAI,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAyE9D;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,OAAO,CAW7C"}