run402-mcp 1.52.0 → 1.53.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/README.md CHANGED
@@ -153,13 +153,22 @@ export default async (req: Request) => {
153
153
  };
154
154
  ```
155
155
 
156
- `adminDb().sql(query, params?)` runs raw parameterized SQL and always bypasses RLS:
156
+ `adminDb().sql(query, params?)` runs raw parameterized SQL and always bypasses RLS. It returns a flat `Promise<Record<string, unknown>[]>` (just the rows — no envelope):
157
157
 
158
158
  ```ts
159
- const { rows, rowCount } = await adminDb().sql(
160
- "SELECT count(*)::int AS n FROM items WHERE user_id = $1",
161
- [user.id],
162
- );
159
+ import { adminDb, getUser } from "@run402/functions";
160
+
161
+ export default async (req: Request) => {
162
+ const user = await getUser(req);
163
+ if (!user) return new Response("unauthorized", { status: 401 });
164
+
165
+ const rows = await adminDb().sql(
166
+ "SELECT count(*)::int AS n FROM items WHERE user_id = $1",
167
+ [user.id],
168
+ );
169
+ const n = (rows[0]?.n as number | undefined) ?? 0;
170
+ return Response.json({ count: n });
171
+ };
163
172
  ```
164
173
 
165
174
  `@run402/functions` is auto-bundled into deployed code; install it in your editor for full TypeScript autocomplete (also works at build time for static-site generation with `RUN402_SERVICE_KEY` + `RUN402_PROJECT_ID` set).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "run402-mcp",
3
- "version": "1.52.0",
3
+ "version": "1.53.0",
4
4
  "description": "MCP server for Run402 — AI-native Postgres databases with REST API, auth, storage, and row-level security. Pay with x402 USDC micropayments.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -28,7 +28,8 @@
28
28
  "start": "node dist/index.js",
29
29
  "test:skill": "node --test --import tsx SKILL.test.ts",
30
30
  "test:sync": "node --test --import tsx sync.test.ts",
31
- "test": "node --experimental-test-module-mocks --test --import tsx SKILL.test.ts sync.test.ts core/src/**/*.test.ts sdk/src/**/*.test.ts src/**/*.test.ts && node --test cli-e2e.test.mjs cli-help.test.mjs",
31
+ "test:docs": "npm run check:docs --workspace=@run402/sdk -- --skip-build",
32
+ "test": "node --experimental-test-module-mocks --test --import tsx SKILL.test.ts sync.test.ts core/src/**/*.test.ts sdk/src/**/*.test.ts src/**/*.test.ts && node --test cli-e2e.test.mjs cli-help.test.mjs && npm run test:docs",
32
33
  "test:e2e": "node --test cli-e2e.test.mjs cli-help.test.mjs",
33
34
  "test:help": "node --test cli-help.test.mjs",
34
35
  "test:integration": "node --test --import tsx core/src/siwx-integration.integ.ts",
package/sdk/README.md CHANGED
@@ -25,6 +25,19 @@ await r.blobs.put(project.project_id, "hello.txt", { content: "hi" });
25
25
 
26
26
  That's it — credentials are read, x402 payments are signed, results are typed.
27
27
 
28
+ ### Project-scoped sub-client
29
+
30
+ If you're working on a single project for the duration of a script, bind it once and skip the id arg on every call:
31
+
32
+ ```ts
33
+ const p = await r.useProject(projectId); // persists active project + returns scoped handle
34
+ await p.blobs.put("hello.txt", { content: "hi" }); // no projectId arg
35
+ await p.functions.list();
36
+ await p.deploy.apply({ site: { replace: files({ "index.html": "<h1>hi</h1>" }) } });
37
+ ```
38
+
39
+ `r.useProject(id)` writes the active project to the keystore (shared with concurrent CLI runs). For transient in-script scoping that does NOT mutate that state, use `r.project(id)` (or `r.project()` with no arg to resolve from whatever the keystore currently considers active).
40
+
28
41
  ## Quick start (isomorphic)
29
42
 
30
43
  ```ts
@@ -45,38 +58,66 @@ The `CredentialsProvider` interface has two required methods (`getAuth`, `getPro
45
58
 
46
59
  | Namespace | Highlights |
47
60
  |---|---|
48
- | `projects` | `provision`, `delete`, `list`, `getUsage`, `getSchema`, `info`, `keys`, `use`, `pin` |
49
- | `deploy` | **The unified deploy primitive (v1.34+).** `apply` / `start` / `resume` / `status` / `getRelease` / `diff` / `plan` / `upload` / `commit` |
50
- | `sites` | `deployDir` (Node entry only) thin wrapper over `r.deploy.apply` |
51
- | `blobs` | `put` (returns `AssetRef` with `cdn_url`/`sri`/`etag`), `get`, `ls`, `rm`, `sign`, `diagnoseUrl`, `waitFresh` |
52
- | `functions` | `deploy`, `invoke`, `getLogs`, `update`, `list`, `delete` |
61
+ | `projects` | `provision`, `delete`, `list`, `getUsage`, `getSchema`, `info`, `keys`, `use`, `active`, `pin`, `getQuote` |
62
+ | `deploy` | **The unified deploy primitive (v1.34+).** `apply` / `start` / `resume` / `status` / `list` / `events` / `getRelease` / `diff` / `plan` / `upload` / `commit` |
63
+ | `sites` | `deployDir` Node entry only (`@run402/sdk/node`); thin wrapper over `r.deploy.apply` |
64
+ | `blobs` | `put` (returns `AssetRef` with `cdnUrl` / `sri` / `etag` / `cacheKind` and `scriptTag()`/`linkTag()`/`imgTag()` emitters), `get`, `ls`, `rm`, `sign`, `diagnoseUrl`, `waitFresh` |
65
+ | `functions` | `deploy`, `invoke`, `logs`, `update`, `list`, `delete` |
53
66
  | `secrets` | `set`, `list`, `delete` |
54
- | `subdomains` | `claim`, `list`, `delete` |
67
+ | `subdomains` | `claim`, `list`, `delete` (most agents declare subdomains in `r.deploy.apply({ subdomains: { set: [...] } })` instead) |
55
68
  | `domains` | `add`, `list`, `status`, `remove` |
56
- | `email` | `createMailbox`, `sendEmail`, `listEmails`, `getEmail`, `getEmailRaw`, `webhooks.*` |
69
+ | `email` | `createMailbox`, `getMailbox`, `deleteMailbox`, `send`, `list`, `get`, `getRaw`, `webhooks.*` |
57
70
  | `senderDomain` | `register`, `status`, `remove`, `enableInbound`, `disableInbound` |
58
- | `auth` | `magicLink`, `verifyMagicLink`, `setUserPassword`, `settings`, `providers` |
59
- | `apps` | `browse`, `get`, `fork`, `publish`, `versions.*`, `bundleDeploy` (legacy shim → routes through `deploy`) |
60
- | `tier` | `set`, `status`, `quote` |
71
+ | `auth` | `requestMagicLink`, `verifyMagicLink`, `setUserPassword`, `settings`, `promote`, `demote` |
72
+ | `apps` | `browse`, `getApp`, `fork`, `publish`, `listVersions`, `updateVersion`, `deleteVersion`, `bundleDeploy` (legacy shim → routes through `deploy`) |
73
+ | `tier` | `set`, `status` (tier pricing lives on `r.projects.getQuote()`) |
61
74
  | `billing` | `createEmailAccount`, `linkWallet`, `tierCheckout`, `buyEmailPack`, `setAutoRecharge`, `balance`, `history`, `createCheckout` |
62
- | `contracts` | `provisionWallet`, `getWallet`, `listWallets`, `setRecoveryAddress`, `setLowBalanceAlert`, `call`, `read`, `getCallStatus`, `drainWallet`, `deleteWallet` |
63
- | `ai` | `translate`, `moderate`, `usage` |
64
- | `allowance` | `status`, `create`, `export`, `requestFaucet`, `checkBalance` |
75
+ | `contracts` | `provisionWallet`, `getWallet`, `listWallets`, `setRecovery`, `setLowBalanceAlert`, `call`, `read`, `callStatus`, `drain`, `deleteWallet` |
76
+ | `ai` | `translate`, `moderate`, `usage`, `generateImage` |
77
+ | `allowance` | `status`, `create`, `export`, `faucet` |
65
78
  | `service` | `status`, `health` (no auth, no setup — works on a fresh install) |
66
79
  | `admin` | Admin-only endpoints (pinning, lifecycle reactivation, dispute resolution) |
67
80
 
81
+ ### Casing in returned shapes
82
+
83
+ Two casings coexist by design — agents reading the type surface should
84
+ classify a field by the SHAPE it belongs to:
85
+
86
+ - **Raw API result shapes preserve the gateway's snake_case fields.** Examples:
87
+ `ProvisionResult.project_id`, `ProvisionResult.anon_key`,
88
+ `ProvisionResult.service_key`, `ProvisionResult.schema_slot`,
89
+ `ProjectInfo.project_id`, `ProjectSummary.lease_expires_at`,
90
+ `UsageReport.api_calls`, `SchemaReport.schema`. These mirror the HTTP
91
+ response bodies one-to-one.
92
+ - **SDK-specific helper shapes use camelCase.** Examples:
93
+ `AssetRef.cdnUrl` / `AssetRef.cacheKind` / `AssetRef.contentSha256`,
94
+ `Run402DeployError.safeToRetry` / `operationId` / `mutationState`,
95
+ every `DeployEvent` variant's discriminator (`type`, plus per-variant
96
+ fields like `releaseId`, `urls`).
97
+
98
+ This split is intentional and stays through `1.x`. Doc examples in this
99
+ README and in `llms-sdk.txt` use the exact field names the types export —
100
+ copy them verbatim. CI fails any TypeScript-fenced example that accesses a
101
+ field that does not exist on the actual type.
102
+
103
+ > **Reference tables (in `llms-sdk.txt`) use plain code fences, not `ts`
104
+ > fences.** They document the type surface in compact form for visual
105
+ > scanning — they are not runnable programs and are exempt from CI
106
+ > type-checking. Runnable example snippets still use ```` ```ts ```` and are
107
+ > CI-gated against the published types.
108
+
68
109
  ## Patterns
69
110
 
70
111
  ### Paste-and-go assets — content-addressed URLs with SRI
71
112
 
72
- `r.blobs.put` returns an `AssetRef`. The `cdn_url` is content-addressed (`pr-<public_id>.run402.com/_blob/<key>-<8hex>.<ext>`), served through CloudFront, and never needs cache invalidation. The browser refuses execution on byte mismatch via SRI:
113
+ `r.blobs.put` returns an `AssetRef`. The `cdnUrl` is content-addressed (`pr-<public_id>.run402.com/_blob/<key>-<8hex>.<ext>`), served through CloudFront, and never needs cache invalidation. The browser refuses execution on byte mismatch via SRI:
73
114
 
74
115
  ```ts
75
116
  const logo = await r.blobs.put(projectId, "logo.png", { bytes });
76
- // logo.cdn_url → drop into <img src="…">
77
- // logo.sri → "sha256-…" for <script integrity="…">
78
- // logo.etag → strong "sha256-<hex>"
79
- // logo.cache_kind → "immutable" | "mutable" | "private"
117
+ // logo.cdnUrl → drop into <img src="…">
118
+ // logo.sri → "sha256-…" for <script integrity="…">
119
+ // logo.etag → strong "sha256-<hex>"
120
+ // logo.cacheKind → "immutable" | "mutable" | "private"
80
121
  ```
81
122
 
82
123
  `immutable: true` is the default since v1.45 — pass `false` only when you specifically want to skip the SHA-256 pass on a very large upload.
@@ -89,9 +130,9 @@ The canonical primitive for any deploy (database + migrations + manifest + secre
89
130
  // One-shot — most agents use this.
90
131
  const result = await r.deploy.apply(spec);
91
132
 
92
- // Long-running with progress events.
133
+ // Long-running with progress events. Events are a discriminated union on `type`.
93
134
  const op = await r.deploy.start(spec);
94
- for await (const e of op.events()) console.log(e.phase);
135
+ for await (const ev of op.events()) console.log(ev.type);
95
136
  const final = await op.result();
96
137
 
97
138
  // Resume a previously-started deploy by id.
@@ -99,7 +140,7 @@ const resumed = await r.deploy.resume(operationId);
99
140
  ```
100
141
 
101
142
  - **All bytes ride through CAS.** The plan request body never carries inline bytes — only `ContentRef` objects. When the spec exceeds 5 MB JSON, the SDK uploads the manifest itself as a CAS object (`manifest_ref` escape hatch).
102
- - **Replace vs patch semantics per resource.** `site.replace` = "this is the whole site" (files absent are removed); `site.patch.put` / `patch.delete` = surgical updates. Same shape for `functions`, `secrets`, `subdomains`. Top-level absence = leave untouched.
143
+ - **Per-resource semantics on the spec.** `site.replace` = "this is the whole site" (files absent are removed). `site.patch.put` / `patch.delete` are surgical updates. `functions.replace` / `functions.patch.set` / `functions.patch.delete` mirror that. `secrets.set` / `secrets.delete` / `secrets.replace_all` and `subdomains.set` / `subdomains.add` / `subdomains.remove` use their own shapes (see `ReleaseSpec` types). Top-level absence = leave untouched.
103
144
  - **Server-authoritative manifest digest** — no byte-for-byte canonicalize requirement on the client.
104
145
  - The Node entry adds `fileSetFromDir(path)` for filesystem byte sources:
105
146
 
@@ -107,9 +148,9 @@ const resumed = await r.deploy.resume(operationId);
107
148
  import { run402, fileSetFromDir } from "@run402/sdk/node";
108
149
  const r = run402();
109
150
  await r.deploy.apply({
110
- project_id,
111
- site: { replace: { files: await fileSetFromDir("./dist") } },
112
- subdomains: { replace: [{ name: "my-app" }] },
151
+ project: projectId,
152
+ site: { replace: await fileSetFromDir("./dist") },
153
+ subdomains: { set: ["my-app"] },
113
154
  });
114
155
  ```
115
156
 
@@ -125,19 +166,27 @@ All failures throw subclasses of `Run402Error`:
125
166
  | `ApiError` | Other non-2xx responses | `status`, `body` |
126
167
  | `NetworkError` | Fetch rejected with no HTTP response | — |
127
168
  | `LocalError` | Local-host issues (filesystem, signing) | — |
128
- | `Run402DeployError` | Structured envelope from the deploy state machine (v1.34+) | `code`, `phase`, `operation_id`, `safe_to_retry`, `mutation_state`, `next_actions` |
169
+ | `Run402DeployError` | Structured envelope from the deploy state machine (v1.34+) | `code`, `phase`, `operationId`, `safeToRetry`, `mutationState`, `nextActions` |
129
170
 
130
171
  Branch on the structured fields, not English `message` text:
131
172
 
132
173
  ```ts
133
- import { PaymentRequired, Run402DeployError } from "@run402/sdk";
174
+ import {
175
+ run402,
176
+ PaymentRequired,
177
+ Run402DeployError,
178
+ type ReleaseSpec,
179
+ } from "@run402/sdk/node";
180
+
181
+ declare const spec: ReleaseSpec;
182
+ const r = run402();
134
183
 
135
184
  try {
136
185
  await r.deploy.apply(spec);
137
186
  } catch (e) {
138
187
  if (e instanceof PaymentRequired) {
139
188
  // present payment requirements to the user
140
- } else if (e instanceof Run402DeployError && e.safe_to_retry) {
189
+ } else if (e instanceof Run402DeployError && e.safeToRetry) {
141
190
  // safe to retry — same idempotency key
142
191
  } else throw e;
143
192
  }
@@ -26,6 +26,7 @@ import { Contracts } from "./namespaces/contracts.js";
26
26
  import { Admin } from "./namespaces/admin.js";
27
27
  import { Deploy } from "./namespaces/deploy.js";
28
28
  import type { ContentSource, FileSet } from "./namespaces/deploy.types.js";
29
+ import { ScopedRun402 } from "./scoped.js";
29
30
  export interface Run402Options {
30
31
  /** API base URL, e.g. `https://api.run402.com`. */
31
32
  apiBase: string;
@@ -39,6 +40,7 @@ export interface Run402Options {
39
40
  fetch?: typeof globalThis.fetch;
40
41
  }
41
42
  export declare class Run402 {
43
+ #private;
42
44
  readonly projects: Projects;
43
45
  readonly blobs: Blobs;
44
46
  readonly functions: Functions;
@@ -59,6 +61,37 @@ export declare class Run402 {
59
61
  readonly admin: Admin;
60
62
  readonly deploy: Deploy;
61
63
  constructor(opts: Run402Options);
64
+ /**
65
+ * Return a project-scoped sub-client where every project-id-bearing namespace
66
+ * method has the id pre-bound. Methods on the scoped client drop their
67
+ * `id`/`project_id`/`project` argument; caller-supplied values still win
68
+ * (so you can address a different project ad-hoc through a scoped handle).
69
+ *
70
+ * Resolution rules:
71
+ * - Explicit `id`: scope is bound to that id immediately. The keystore is
72
+ * NOT consulted at construction; the first method call that needs keys
73
+ * will throw `ProjectNotFound` if the id is unknown.
74
+ * - No argument: the SDK calls `credentials.getActiveProject()`. Throws
75
+ * `LocalError` (context: "scoping client to project") when the provider
76
+ * does not implement `getActiveProject` or returns `null`.
77
+ *
78
+ * `project()` does NOT mutate keystore state — use {@link useProject} for
79
+ * the persist-then-scope shorthand.
80
+ */
81
+ project(id?: string): Promise<ScopedRun402>;
82
+ /**
83
+ * Persist `id` as the active project (via `r.projects.use(id)`) AND return a
84
+ * project-scoped sub-client in one call. Equivalent to:
85
+ *
86
+ * await r.projects.use(id);
87
+ * return r.project(id);
88
+ *
89
+ * Note: this mutates the credential provider's persistent active-project
90
+ * state (the keystore on Node). Concurrent CLI runs share that state. For
91
+ * transient in-script scoping that does not change the user's CLI default,
92
+ * use {@link project} instead.
93
+ */
94
+ useProject(id: string): Promise<ScopedRun402>;
62
95
  }
63
96
  /**
64
97
  * Build a `FileSet` from a path-keyed record of byte sources. A passthrough
@@ -87,5 +120,6 @@ export type { Run402DeployErrorCode, Run402DeployErrorFix, } from "./errors.js";
87
120
  export type { CredentialsProvider, ProjectKeys } from "./credentials.js";
88
121
  export type { RequestOptions, Client } from "./kernel.js";
89
122
  export { Deploy } from "./namespaces/deploy.js";
123
+ export { ScopedRun402 } from "./scoped.js";
90
124
  export type { ApplyOptions, CommitResponse, CommitStatus, ContentRef, ContentSource, DatabaseSpec, DeployDiff, DeployEvent, DeployOperation, DeployResult, ExposeManifest, FileSet, FsFileSource, FunctionSpec, FunctionsSpec, MigrationSpec, MissingContent, OperationSnapshot, OperationStatus, PaymentRequiredHint, PlanRequest, PlanResponse, ReleaseSpec, RouteSpec, SecretsSpec, SiteSpec, SmokeCheck, StartOptions, SubdomainsSpec, } from "./namespaces/deploy.types.js";
91
125
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/sdk/dist/index.js CHANGED
@@ -25,6 +25,8 @@ import { Email } from "./namespaces/email.js";
25
25
  import { Contracts } from "./namespaces/contracts.js";
26
26
  import { Admin } from "./namespaces/admin.js";
27
27
  import { Deploy } from "./namespaces/deploy.js";
28
+ import { ScopedRun402 } from "./scoped.js";
29
+ import { LocalError } from "./errors.js";
28
30
  export class Run402 {
29
31
  projects;
30
32
  blobs;
@@ -45,6 +47,7 @@ export class Run402 {
45
47
  contracts;
46
48
  admin;
47
49
  deploy;
50
+ #client;
48
51
  constructor(opts) {
49
52
  const kernel = {
50
53
  apiBase: opts.apiBase,
@@ -52,6 +55,7 @@ export class Run402 {
52
55
  credentials: opts.credentials,
53
56
  };
54
57
  const client = buildClient(kernel);
58
+ this.#client = client;
55
59
  this.projects = new Projects(client);
56
60
  this.blobs = new Blobs(client);
57
61
  this.functions = new Functions(client);
@@ -72,6 +76,54 @@ export class Run402 {
72
76
  this.admin = new Admin(client);
73
77
  this.deploy = new Deploy(client);
74
78
  }
79
+ /**
80
+ * Return a project-scoped sub-client where every project-id-bearing namespace
81
+ * method has the id pre-bound. Methods on the scoped client drop their
82
+ * `id`/`project_id`/`project` argument; caller-supplied values still win
83
+ * (so you can address a different project ad-hoc through a scoped handle).
84
+ *
85
+ * Resolution rules:
86
+ * - Explicit `id`: scope is bound to that id immediately. The keystore is
87
+ * NOT consulted at construction; the first method call that needs keys
88
+ * will throw `ProjectNotFound` if the id is unknown.
89
+ * - No argument: the SDK calls `credentials.getActiveProject()`. Throws
90
+ * `LocalError` (context: "scoping client to project") when the provider
91
+ * does not implement `getActiveProject` or returns `null`.
92
+ *
93
+ * `project()` does NOT mutate keystore state — use {@link useProject} for
94
+ * the persist-then-scope shorthand.
95
+ */
96
+ async project(id) {
97
+ let resolvedId = id;
98
+ if (resolvedId === undefined) {
99
+ const getter = this.#client.credentials.getActiveProject;
100
+ if (!getter) {
101
+ throw new LocalError("r.project() with no id requires a credential provider that implements getActiveProject(). Pass an explicit id, or use @run402/sdk/node.", "scoping client to project");
102
+ }
103
+ const active = await getter.call(this.#client.credentials);
104
+ if (!active) {
105
+ throw new LocalError("No active project set. Call `r.projects.use(id)` (or `run402 projects use <id>`) to set one, or pass an explicit id to `r.project(id)`.", "scoping client to project");
106
+ }
107
+ resolvedId = active;
108
+ }
109
+ return new ScopedRun402(this, this.#client, resolvedId);
110
+ }
111
+ /**
112
+ * Persist `id` as the active project (via `r.projects.use(id)`) AND return a
113
+ * project-scoped sub-client in one call. Equivalent to:
114
+ *
115
+ * await r.projects.use(id);
116
+ * return r.project(id);
117
+ *
118
+ * Note: this mutates the credential provider's persistent active-project
119
+ * state (the keystore on Node). Concurrent CLI runs share that state. For
120
+ * transient in-script scoping that does not change the user's CLI default,
121
+ * use {@link project} instead.
122
+ */
123
+ async useProject(id) {
124
+ await this.projects.use(id);
125
+ return this.project(id);
126
+ }
75
127
  }
76
128
  /**
77
129
  * Build a `FileSet` from a path-keyed record of byte sources. A passthrough
@@ -101,4 +153,5 @@ export function run402(opts) {
101
153
  }
102
154
  export { Run402Error, PaymentRequired, ProjectNotFound, Unauthorized, ApiError, NetworkError, LocalError, Run402DeployError, } from "./errors.js";
103
155
  export { Deploy } from "./namespaces/deploy.js";
156
+ export { ScopedRun402 } from "./scoped.js";
104
157
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,WAAW,EAAkC,MAAM,aAAa,CAAC;AAE1E,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAezC,MAAM,OAAO,MAAM;IACR,QAAQ,CAAW;IACnB,KAAK,CAAQ;IACb,SAAS,CAAY;IACrB,OAAO,CAAU;IACjB,UAAU,CAAa;IACvB,OAAO,CAAU;IACjB,KAAK,CAAQ;IACb,OAAO,CAAU;IACjB,IAAI,CAAO;IACX,SAAS,CAAY;IACrB,EAAE,CAAK;IACP,IAAI,CAAO;IACX,YAAY,CAAe;IAC3B,OAAO,CAAU;IACjB,IAAI,CAAO;IACX,KAAK,CAAQ;IACb,SAAS,CAAY;IACrB,KAAK,CAAQ;IACb,MAAM,CAAS;IAEf,OAAO,CAAS;IAEzB,YAAY,IAAmB;QAC7B,MAAM,MAAM,GAAiB;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;YACtD,WAAW,EAAE,IAAI,CAAC,WAAW;SAC9B,CAAC;QACF,MAAM,MAAM,GAAW,WAAW,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;QACrC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,MAAM,CAAC,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC;QACvC,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,OAAO,CAAC,EAAW;QACvB,IAAI,UAAU,GAAG,EAAE,CAAC;QACpB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;YAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,gBAAgB,CAAC;YACzD,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,UAAU,CAClB,yIAAyI,EACzI,2BAA2B,CAC5B,CAAC;YACJ,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,IAAI,UAAU,CAClB,yIAAyI,EACzI,2BAA2B,CAC5B,CAAC;YACJ,CAAC;YACD,UAAU,GAAG,MAAM,CAAC;QACtB,CAAC;QACD,OAAO,IAAI,YAAY,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,UAAU,CAAC,EAAU;QACzB,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC1B,CAAC;CACF;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,KAAK,CAAC,MAAqC;IACzD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,MAAM,CAAC,IAAmB;IACxC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,OAAO,EACL,WAAW,EACX,eAAe,EACf,eAAe,EACf,YAAY,EACZ,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAOrB,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC"}
@@ -87,6 +87,12 @@ export declare class Projects {
87
87
  * Set the active/default project in local state. Requires the credential
88
88
  * provider to support `setActiveProject`.
89
89
  *
90
+ * Returns `void`. To both persist the active project AND get a project-scoped
91
+ * client in one call, use {@link Run402.useProject} instead:
92
+ *
93
+ * const p = await r.useProject("prj_xxx");
94
+ * await p.deploy.apply({ site: { ... } });
95
+ *
90
96
  * @throws {ProjectNotFound} if the id is unknown to the provider.
91
97
  * @throws {Error} if the provider does not support active-project state.
92
98
  */
@@ -94,6 +100,12 @@ export declare class Projects {
94
100
  /**
95
101
  * Return the active/default project id in local state, or null when none
96
102
  * is set or the provider does not track active-project state.
103
+ *
104
+ * To resolve the active project AND build a scoped sub-client in one call,
105
+ * use {@link Run402.project} (no arg):
106
+ *
107
+ * const p = await r.project(); // throws if no active project is set
108
+ * await p.functions.list();
97
109
  */
98
110
  active(): Promise<string | null>;
99
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/namespaces/projects.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EACV,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,YAAY,EACZ,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,QAAQ;IACP,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE3C;;;;;;;;OAQG;IACG,SAAS,CAAC,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;IAyBtE;;;;;;;OAOG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcvC;;;;;;;;;;;;OAYG;IACG,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA8BxD;;;OAGG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAUhD;;;OAGG;IACG,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAUlD;;;;;;;;OAQG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAWzC;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;IAOtC;;;;;OAKG;IACG,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAM5C;;;;;OAKG;IACG,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAM5C;;;;;;OAMG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAapC;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAKvC"}
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/namespaces/projects.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,OAAO,KAAK,EACV,kBAAkB,EAClB,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,WAAW,EACX,YAAY,EACZ,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,QAAQ;IACP,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE3C;;;;;;;;OAQG;IACG,SAAS,CAAC,IAAI,GAAE,gBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC;IAyBtE;;;;;;;OAOG;IACG,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAcvC;;;;;;;;;;;;OAYG;IACG,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IA8BxD;;;OAGG;IACG,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAUhD;;;OAGG;IACG,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAUlD;;;;;;;;OAQG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAWzC;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC;IAOtC;;;;;OAKG;IACG,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAM5C;;;;;OAKG;IACG,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAM5C;;;;;;;;;;;;OAYG;IACG,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAapC;;;;;;;;;OASG;IACG,MAAM,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAKvC"}
@@ -182,6 +182,12 @@ export class Projects {
182
182
  * Set the active/default project in local state. Requires the credential
183
183
  * provider to support `setActiveProject`.
184
184
  *
185
+ * Returns `void`. To both persist the active project AND get a project-scoped
186
+ * client in one call, use {@link Run402.useProject} instead:
187
+ *
188
+ * const p = await r.useProject("prj_xxx");
189
+ * await p.deploy.apply({ site: { ... } });
190
+ *
185
191
  * @throws {ProjectNotFound} if the id is unknown to the provider.
186
192
  * @throws {Error} if the provider does not support active-project state.
187
193
  */
@@ -198,6 +204,12 @@ export class Projects {
198
204
  /**
199
205
  * Return the active/default project id in local state, or null when none
200
206
  * is set or the provider does not track active-project state.
207
+ *
208
+ * To resolve the active project AND build a scoped sub-client in one call,
209
+ * use {@link Run402.project} (no arg):
210
+ *
211
+ * const p = await r.project(); // throws if no active project is set
212
+ * await p.functions.list();
201
213
  */
202
214
  async active() {
203
215
  const getter = this.client.credentials.getActiveProject;
@@ -1 +1 @@
1
- {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/namespaces/projects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/namespaces/projects.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,248 @@
1
+ /**
2
+ * Project-scoped sub-client. `ScopedRun402` wraps the SDK's project-id-bearing
3
+ * namespaces with the id pre-bound, so callers don't have to thread the id
4
+ * through every call.
5
+ *
6
+ * Construct via `r.project(id?)` — see the JSDoc on
7
+ * {@link Run402.project} for the resolution rule (explicit arg vs. fallback to
8
+ * the credential provider's active-project state).
9
+ *
10
+ * Methods that take an options object containing `project_id`/`project`
11
+ * (deploy, subdomains, domains) honour a caller-supplied value over the scoped
12
+ * id, so a scoped client can still address a different project ad-hoc.
13
+ *
14
+ * Methods that don't take a project id (e.g. `projects.list(wallet)`,
15
+ * `projects.getQuote()`, `projects.active()`, `apps.browse(tags?)`,
16
+ * `ai.generateImage(opts)`, etc.) pass through unchanged.
17
+ */
18
+ import type { Client } from "./kernel.js";
19
+ import type { Run402 } from "./index.js";
20
+ import type { ProjectKeys } from "./credentials.js";
21
+ import type { ListProjectsResult, PinResult, ProjectInfo, QuoteResult, SchemaReport, UsageReport } from "./namespaces/projects.types.js";
22
+ import type { AppDetails, BrowseAppsResult, BundleDeployOptions, BundleDeployResult, ForkAppOptions, ForkAppResult, ListVersionsResult, PublishAppOptions, PublishedVersion, UpdateVersionOptions } from "./namespaces/apps.js";
23
+ import type { AiUsageResult, GenerateImageOptions, GenerateImageResult, ModerateResult, TranslateOptions, TranslateResult } from "./namespaces/ai.js";
24
+ import type { AuthSettings, MagicLinkOptions, MagicLinkVerifyResult, SetPasswordOptions } from "./namespaces/auth.js";
25
+ import type { BlobDiagnoseEnvelope, BlobLsOptions, BlobLsResult, BlobPutOptions, BlobPutResult, BlobPutSource, BlobSignOptions, BlobSignResult, BlobWaitFreshOptions, BlobWaitFreshResult } from "./namespaces/blobs.types.js";
26
+ import type { ContractCallOptions, ContractReadOptions, ProvisionWalletOptions } from "./namespaces/contracts.js";
27
+ import type { CustomDomainAddResult, CustomDomainListResult, CustomDomainStatusResult } from "./namespaces/domains.js";
28
+ import type { CreateMailboxResult, EmailDetail, EmailSummary, ListEmailsOptions, MailboxInfo, MailboxWebhookSummary, MailboxWebhooksResult, RawEmailResult, RegisterWebhookOptions, SendEmailOptions, SendEmailResult, UpdateWebhookOptions } from "./namespaces/email.js";
29
+ import type { FunctionDeployOptions, FunctionDeployResult, FunctionInvokeOptions, FunctionInvokeResult, FunctionListResult, FunctionLogsOptions, FunctionLogsResult, FunctionUpdateOptions, FunctionUpdateResult } from "./namespaces/functions.types.js";
30
+ import type { SecretListResult } from "./namespaces/secrets.js";
31
+ import type { InboundEnableResult, SenderDomainRegisterResult, SenderDomainStatusResult } from "./namespaces/sender-domain.js";
32
+ import type { SubdomainClaimOptions, SubdomainClaimResult, SubdomainSummary } from "./namespaces/subdomains.js";
33
+ import type { ApplyOptions, DeployEvent, DeployListResponse, DeployOperation, DeployResult, OperationSnapshot, PlanResponse, ReleaseSpec, StartOptions } from "./namespaces/deploy.types.js";
34
+ import type { ByteReader } from "./namespaces/deploy.js";
35
+ declare class ScopedProjects {
36
+ private readonly parent;
37
+ private readonly projectId;
38
+ constructor(parent: Run402, projectId: string);
39
+ delete(): Promise<void>;
40
+ getUsage(): Promise<UsageReport>;
41
+ getSchema(): Promise<SchemaReport>;
42
+ pin(): Promise<PinResult>;
43
+ info(): Promise<ProjectInfo>;
44
+ keys(): Promise<ProjectKeys>;
45
+ list(wallet?: string): Promise<ListProjectsResult>;
46
+ getQuote(): Promise<QuoteResult>;
47
+ active(): Promise<string | null>;
48
+ }
49
+ declare class ScopedApps {
50
+ private readonly parent;
51
+ private readonly projectId;
52
+ constructor(parent: Run402, projectId: string);
53
+ bundleDeploy(opts?: BundleDeployOptions): Promise<BundleDeployResult>;
54
+ publish(opts?: PublishAppOptions): Promise<PublishedVersion>;
55
+ listVersions(): Promise<ListVersionsResult>;
56
+ updateVersion(versionId: string, opts: UpdateVersionOptions): Promise<void>;
57
+ deleteVersion(versionId: string): Promise<void>;
58
+ browse(tags?: string[]): Promise<BrowseAppsResult>;
59
+ fork(opts: ForkAppOptions): Promise<ForkAppResult>;
60
+ getApp(versionId: string): Promise<AppDetails>;
61
+ }
62
+ declare class ScopedAi {
63
+ private readonly parent;
64
+ private readonly projectId;
65
+ constructor(parent: Run402, projectId: string);
66
+ translate(opts: TranslateOptions): Promise<TranslateResult>;
67
+ moderate(text: string): Promise<ModerateResult>;
68
+ usage(): Promise<AiUsageResult>;
69
+ generateImage(opts: GenerateImageOptions): Promise<GenerateImageResult>;
70
+ }
71
+ declare class ScopedAuth {
72
+ private readonly parent;
73
+ private readonly projectId;
74
+ constructor(parent: Run402, projectId: string);
75
+ requestMagicLink(opts: MagicLinkOptions): Promise<void>;
76
+ verifyMagicLink(token: string): Promise<MagicLinkVerifyResult>;
77
+ setUserPassword(opts: SetPasswordOptions): Promise<void>;
78
+ settings(settings: AuthSettings): Promise<void>;
79
+ promote(email: string): Promise<void>;
80
+ demote(email: string): Promise<void>;
81
+ }
82
+ declare class ScopedBlobs {
83
+ private readonly parent;
84
+ private readonly projectId;
85
+ constructor(parent: Run402, projectId: string);
86
+ put(key: string, source: BlobPutSource, opts?: BlobPutOptions): Promise<BlobPutResult>;
87
+ diagnoseUrl(url: string): Promise<BlobDiagnoseEnvelope>;
88
+ waitFresh(opts: BlobWaitFreshOptions): Promise<BlobWaitFreshResult>;
89
+ get(key: string): Promise<Response>;
90
+ ls(opts?: BlobLsOptions): Promise<BlobLsResult>;
91
+ rm(key: string): Promise<void>;
92
+ sign(key: string, opts?: BlobSignOptions): Promise<BlobSignResult>;
93
+ }
94
+ declare class ScopedContracts {
95
+ private readonly parent;
96
+ private readonly projectId;
97
+ constructor(parent: Run402, projectId: string);
98
+ provisionWallet(opts: ProvisionWalletOptions): Promise<unknown>;
99
+ getWallet(walletId: string): Promise<unknown>;
100
+ listWallets(): Promise<unknown>;
101
+ setRecovery(walletId: string, recoveryAddress: string | null): Promise<void>;
102
+ setLowBalanceAlert(walletId: string, thresholdWei: string): Promise<void>;
103
+ call(opts: ContractCallOptions): Promise<unknown>;
104
+ callStatus(callId: string): Promise<unknown>;
105
+ drain(walletId: string, destinationAddress: string): Promise<unknown>;
106
+ deleteWallet(walletId: string): Promise<unknown>;
107
+ read(opts: ContractReadOptions): Promise<unknown>;
108
+ }
109
+ declare class ScopedDeploy {
110
+ private readonly parent;
111
+ private readonly projectId;
112
+ constructor(parent: Run402, projectId: string);
113
+ apply(spec: Omit<ReleaseSpec, "project"> & {
114
+ project?: string;
115
+ }, opts?: ApplyOptions): Promise<DeployResult>;
116
+ start(spec: Omit<ReleaseSpec, "project"> & {
117
+ project?: string;
118
+ }, opts?: StartOptions): Promise<DeployOperation>;
119
+ plan(spec: Omit<ReleaseSpec, "project"> & {
120
+ project?: string;
121
+ }, opts?: {
122
+ idempotencyKey?: string;
123
+ }): Promise<{
124
+ plan: PlanResponse;
125
+ byteReaders: Map<string, ByteReader>;
126
+ }>;
127
+ upload(plan: PlanResponse, opts: {
128
+ project?: string;
129
+ byteReaders: Map<string, ByteReader>;
130
+ onEvent?: (event: DeployEvent) => void;
131
+ }): Promise<void>;
132
+ commit(planId: string, opts?: {
133
+ onEvent?: (event: DeployEvent) => void;
134
+ idempotencyKey?: string;
135
+ project?: string;
136
+ }): Promise<DeployResult>;
137
+ resume(operationId: string, opts?: {
138
+ onEvent?: (event: DeployEvent) => void;
139
+ project?: string;
140
+ }): Promise<DeployResult>;
141
+ status(operationId: string, opts?: {
142
+ project?: string;
143
+ }): Promise<OperationSnapshot>;
144
+ list(opts?: {
145
+ project?: string;
146
+ limit?: number;
147
+ }): Promise<DeployListResponse>;
148
+ events(operationId: string, opts?: {
149
+ project?: string;
150
+ }): Promise<import("./namespaces/deploy.types.js").DeployEventsResponse>;
151
+ getRelease(releaseId: string): Promise<unknown>;
152
+ diff(opts: {
153
+ from: string;
154
+ to: string;
155
+ }): Promise<unknown>;
156
+ private bindProject;
157
+ }
158
+ declare class ScopedDomains {
159
+ private readonly parent;
160
+ private readonly projectId;
161
+ constructor(parent: Run402, projectId: string);
162
+ add(domain: string, subdomainName: string): Promise<CustomDomainAddResult>;
163
+ list(): Promise<CustomDomainListResult>;
164
+ status(domain: string): Promise<CustomDomainStatusResult>;
165
+ remove(domain: string, opts?: {
166
+ projectId?: string;
167
+ }): Promise<void>;
168
+ }
169
+ declare class ScopedEmailWebhooks {
170
+ private readonly parent;
171
+ private readonly projectId;
172
+ constructor(parent: Run402, projectId: string);
173
+ register(opts: RegisterWebhookOptions): Promise<MailboxWebhookSummary>;
174
+ list(): Promise<MailboxWebhooksResult>;
175
+ get(webhookId: string): Promise<MailboxWebhookSummary>;
176
+ update(webhookId: string, opts: UpdateWebhookOptions): Promise<MailboxWebhookSummary>;
177
+ delete(webhookId: string): Promise<void>;
178
+ }
179
+ declare class ScopedEmail {
180
+ private readonly parent;
181
+ private readonly projectId;
182
+ readonly webhooks: ScopedEmailWebhooks;
183
+ constructor(parent: Run402, projectId: string);
184
+ createMailbox(slug: string): Promise<CreateMailboxResult | MailboxInfo>;
185
+ send(opts: SendEmailOptions): Promise<SendEmailResult>;
186
+ list(opts?: ListEmailsOptions): Promise<EmailSummary[]>;
187
+ get(messageId: string): Promise<EmailDetail>;
188
+ getRaw(messageId: string): Promise<RawEmailResult>;
189
+ getMailbox(): Promise<MailboxInfo>;
190
+ deleteMailbox(mailboxId?: string): Promise<void>;
191
+ }
192
+ declare class ScopedFunctions {
193
+ private readonly parent;
194
+ private readonly projectId;
195
+ constructor(parent: Run402, projectId: string);
196
+ deploy(opts: FunctionDeployOptions): Promise<FunctionDeployResult>;
197
+ invoke(name: string, opts?: FunctionInvokeOptions): Promise<FunctionInvokeResult>;
198
+ logs(name: string, opts?: FunctionLogsOptions): Promise<FunctionLogsResult>;
199
+ list(): Promise<FunctionListResult>;
200
+ delete(name: string): Promise<void>;
201
+ update(name: string, opts: FunctionUpdateOptions): Promise<FunctionUpdateResult>;
202
+ }
203
+ declare class ScopedSecrets {
204
+ private readonly parent;
205
+ private readonly projectId;
206
+ constructor(parent: Run402, projectId: string);
207
+ set(key: string, value: string): Promise<void>;
208
+ list(): Promise<SecretListResult>;
209
+ delete(key: string): Promise<void>;
210
+ }
211
+ declare class ScopedSenderDomain {
212
+ private readonly parent;
213
+ private readonly projectId;
214
+ constructor(parent: Run402, projectId: string);
215
+ register(domain: string): Promise<SenderDomainRegisterResult>;
216
+ status(): Promise<SenderDomainStatusResult>;
217
+ remove(): Promise<void>;
218
+ enableInbound(domain: string): Promise<InboundEnableResult>;
219
+ disableInbound(domain: string): Promise<void>;
220
+ }
221
+ declare class ScopedSubdomains {
222
+ private readonly parent;
223
+ private readonly projectId;
224
+ constructor(parent: Run402, projectId: string);
225
+ list(): Promise<SubdomainSummary[]>;
226
+ claim(name: string, deploymentId: string, opts?: SubdomainClaimOptions): Promise<SubdomainClaimResult>;
227
+ delete(name: string, opts?: SubdomainClaimOptions): Promise<void>;
228
+ }
229
+ export declare class ScopedRun402 {
230
+ /** Resolved project id this client is bound to. Read-only. */
231
+ readonly projectId: string;
232
+ readonly projects: ScopedProjects;
233
+ readonly apps: ScopedApps;
234
+ readonly ai: ScopedAi;
235
+ readonly auth: ScopedAuth;
236
+ readonly blobs: ScopedBlobs;
237
+ readonly contracts: ScopedContracts;
238
+ readonly deploy: ScopedDeploy;
239
+ readonly domains: ScopedDomains;
240
+ readonly email: ScopedEmail;
241
+ readonly functions: ScopedFunctions;
242
+ readonly secrets: ScopedSecrets;
243
+ readonly senderDomain: ScopedSenderDomain;
244
+ readonly subdomains: ScopedSubdomains;
245
+ constructor(parent: Run402, _client: Client, projectId: string);
246
+ }
247
+ export {};
248
+ //# sourceMappingURL=scoped.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoped.d.ts","sourceRoot":"","sources":["../src/scoped.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,443 @@
1
+ class ScopedProjects {
2
+ parent;
3
+ projectId;
4
+ constructor(parent, projectId) {
5
+ this.parent = parent;
6
+ this.projectId = projectId;
7
+ }
8
+ delete() {
9
+ return this.parent.projects.delete(this.projectId);
10
+ }
11
+ getUsage() {
12
+ return this.parent.projects.getUsage(this.projectId);
13
+ }
14
+ getSchema() {
15
+ return this.parent.projects.getSchema(this.projectId);
16
+ }
17
+ pin() {
18
+ return this.parent.projects.pin(this.projectId);
19
+ }
20
+ info() {
21
+ return this.parent.projects.info(this.projectId);
22
+ }
23
+ keys() {
24
+ return this.parent.projects.keys(this.projectId);
25
+ }
26
+ // Pass-through for non-id-bearing methods.
27
+ list(wallet) {
28
+ return this.parent.projects.list(wallet);
29
+ }
30
+ getQuote() {
31
+ return this.parent.projects.getQuote();
32
+ }
33
+ active() {
34
+ return this.parent.projects.active();
35
+ }
36
+ }
37
+ class ScopedApps {
38
+ parent;
39
+ projectId;
40
+ constructor(parent, projectId) {
41
+ this.parent = parent;
42
+ this.projectId = projectId;
43
+ }
44
+ bundleDeploy(opts) {
45
+ return this.parent.apps.bundleDeploy(this.projectId, opts);
46
+ }
47
+ publish(opts) {
48
+ return this.parent.apps.publish(this.projectId, opts);
49
+ }
50
+ listVersions() {
51
+ return this.parent.apps.listVersions(this.projectId);
52
+ }
53
+ updateVersion(versionId, opts) {
54
+ return this.parent.apps.updateVersion(this.projectId, versionId, opts);
55
+ }
56
+ deleteVersion(versionId) {
57
+ return this.parent.apps.deleteVersion(this.projectId, versionId);
58
+ }
59
+ // Pass-through.
60
+ browse(tags) {
61
+ return this.parent.apps.browse(tags);
62
+ }
63
+ fork(opts) {
64
+ return this.parent.apps.fork(opts);
65
+ }
66
+ getApp(versionId) {
67
+ return this.parent.apps.getApp(versionId);
68
+ }
69
+ }
70
+ class ScopedAi {
71
+ parent;
72
+ projectId;
73
+ constructor(parent, projectId) {
74
+ this.parent = parent;
75
+ this.projectId = projectId;
76
+ }
77
+ translate(opts) {
78
+ return this.parent.ai.translate(this.projectId, opts);
79
+ }
80
+ moderate(text) {
81
+ return this.parent.ai.moderate(this.projectId, text);
82
+ }
83
+ usage() {
84
+ return this.parent.ai.usage(this.projectId);
85
+ }
86
+ // Pass-through.
87
+ generateImage(opts) {
88
+ return this.parent.ai.generateImage(opts);
89
+ }
90
+ }
91
+ class ScopedAuth {
92
+ parent;
93
+ projectId;
94
+ constructor(parent, projectId) {
95
+ this.parent = parent;
96
+ this.projectId = projectId;
97
+ }
98
+ requestMagicLink(opts) {
99
+ return this.parent.auth.requestMagicLink(this.projectId, opts);
100
+ }
101
+ verifyMagicLink(token) {
102
+ return this.parent.auth.verifyMagicLink(this.projectId, token);
103
+ }
104
+ setUserPassword(opts) {
105
+ return this.parent.auth.setUserPassword(this.projectId, opts);
106
+ }
107
+ settings(settings) {
108
+ return this.parent.auth.settings(this.projectId, settings);
109
+ }
110
+ promote(email) {
111
+ return this.parent.auth.promote(this.projectId, email);
112
+ }
113
+ demote(email) {
114
+ return this.parent.auth.demote(this.projectId, email);
115
+ }
116
+ }
117
+ class ScopedBlobs {
118
+ parent;
119
+ projectId;
120
+ constructor(parent, projectId) {
121
+ this.parent = parent;
122
+ this.projectId = projectId;
123
+ }
124
+ put(key, source, opts) {
125
+ return this.parent.blobs.put(this.projectId, key, source, opts);
126
+ }
127
+ diagnoseUrl(url) {
128
+ return this.parent.blobs.diagnoseUrl(this.projectId, url);
129
+ }
130
+ waitFresh(opts) {
131
+ return this.parent.blobs.waitFresh(this.projectId, opts);
132
+ }
133
+ get(key) {
134
+ return this.parent.blobs.get(this.projectId, key);
135
+ }
136
+ ls(opts) {
137
+ return this.parent.blobs.ls(this.projectId, opts);
138
+ }
139
+ rm(key) {
140
+ return this.parent.blobs.rm(this.projectId, key);
141
+ }
142
+ sign(key, opts) {
143
+ return this.parent.blobs.sign(this.projectId, key, opts);
144
+ }
145
+ }
146
+ class ScopedContracts {
147
+ parent;
148
+ projectId;
149
+ constructor(parent, projectId) {
150
+ this.parent = parent;
151
+ this.projectId = projectId;
152
+ }
153
+ provisionWallet(opts) {
154
+ return this.parent.contracts.provisionWallet(this.projectId, opts);
155
+ }
156
+ getWallet(walletId) {
157
+ return this.parent.contracts.getWallet(this.projectId, walletId);
158
+ }
159
+ listWallets() {
160
+ return this.parent.contracts.listWallets(this.projectId);
161
+ }
162
+ setRecovery(walletId, recoveryAddress) {
163
+ return this.parent.contracts.setRecovery(this.projectId, walletId, recoveryAddress);
164
+ }
165
+ setLowBalanceAlert(walletId, thresholdWei) {
166
+ return this.parent.contracts.setLowBalanceAlert(this.projectId, walletId, thresholdWei);
167
+ }
168
+ call(opts) {
169
+ return this.parent.contracts.call(this.projectId, opts);
170
+ }
171
+ callStatus(callId) {
172
+ return this.parent.contracts.callStatus(this.projectId, callId);
173
+ }
174
+ drain(walletId, destinationAddress) {
175
+ return this.parent.contracts.drain(this.projectId, walletId, destinationAddress);
176
+ }
177
+ deleteWallet(walletId) {
178
+ return this.parent.contracts.deleteWallet(this.projectId, walletId);
179
+ }
180
+ // `read` is not project-scoped — pass through.
181
+ read(opts) {
182
+ return this.parent.contracts.read(opts);
183
+ }
184
+ }
185
+ class ScopedDeploy {
186
+ parent;
187
+ projectId;
188
+ constructor(parent, projectId) {
189
+ this.parent = parent;
190
+ this.projectId = projectId;
191
+ }
192
+ apply(spec, opts) {
193
+ return this.parent.deploy.apply(this.bindProject(spec), opts);
194
+ }
195
+ start(spec, opts) {
196
+ return this.parent.deploy.start(this.bindProject(spec), opts);
197
+ }
198
+ plan(spec, opts) {
199
+ return this.parent.deploy.plan(this.bindProject(spec), opts);
200
+ }
201
+ upload(plan, opts) {
202
+ return this.parent.deploy.upload(plan, {
203
+ ...opts,
204
+ project: opts.project ?? this.projectId,
205
+ });
206
+ }
207
+ commit(planId, opts = {}) {
208
+ return this.parent.deploy.commit(planId, {
209
+ ...opts,
210
+ project: opts.project ?? this.projectId,
211
+ });
212
+ }
213
+ resume(operationId, opts = {}) {
214
+ return this.parent.deploy.resume(operationId, {
215
+ ...opts,
216
+ project: opts.project ?? this.projectId,
217
+ });
218
+ }
219
+ status(operationId, opts = {}) {
220
+ return this.parent.deploy.status(operationId, {
221
+ ...opts,
222
+ project: opts.project ?? this.projectId,
223
+ });
224
+ }
225
+ list(opts = {}) {
226
+ return this.parent.deploy.list({
227
+ project: opts.project ?? this.projectId,
228
+ limit: opts.limit,
229
+ });
230
+ }
231
+ events(operationId, opts = {}) {
232
+ return this.parent.deploy.events(operationId, {
233
+ project: opts.project ?? this.projectId,
234
+ });
235
+ }
236
+ // Pass-through (not project-scoped).
237
+ getRelease(releaseId) {
238
+ return this.parent.deploy.getRelease(releaseId);
239
+ }
240
+ diff(opts) {
241
+ return this.parent.deploy.diff(opts);
242
+ }
243
+ bindProject(spec) {
244
+ return { ...spec, project: spec.project ?? this.projectId };
245
+ }
246
+ }
247
+ class ScopedDomains {
248
+ parent;
249
+ projectId;
250
+ constructor(parent, projectId) {
251
+ this.parent = parent;
252
+ this.projectId = projectId;
253
+ }
254
+ add(domain, subdomainName) {
255
+ return this.parent.domains.add(this.projectId, domain, subdomainName);
256
+ }
257
+ list() {
258
+ return this.parent.domains.list(this.projectId);
259
+ }
260
+ status(domain) {
261
+ return this.parent.domains.status(this.projectId, domain);
262
+ }
263
+ remove(domain, opts = {}) {
264
+ return this.parent.domains.remove(domain, { projectId: opts.projectId ?? this.projectId });
265
+ }
266
+ }
267
+ class ScopedEmailWebhooks {
268
+ parent;
269
+ projectId;
270
+ constructor(parent, projectId) {
271
+ this.parent = parent;
272
+ this.projectId = projectId;
273
+ }
274
+ register(opts) {
275
+ return this.parent.email.webhooks.register(this.projectId, opts);
276
+ }
277
+ list() {
278
+ return this.parent.email.webhooks.list(this.projectId);
279
+ }
280
+ get(webhookId) {
281
+ return this.parent.email.webhooks.get(this.projectId, webhookId);
282
+ }
283
+ update(webhookId, opts) {
284
+ return this.parent.email.webhooks.update(this.projectId, webhookId, opts);
285
+ }
286
+ delete(webhookId) {
287
+ return this.parent.email.webhooks.delete(this.projectId, webhookId);
288
+ }
289
+ }
290
+ class ScopedEmail {
291
+ parent;
292
+ projectId;
293
+ webhooks;
294
+ constructor(parent, projectId) {
295
+ this.parent = parent;
296
+ this.projectId = projectId;
297
+ this.webhooks = new ScopedEmailWebhooks(parent, projectId);
298
+ }
299
+ createMailbox(slug) {
300
+ return this.parent.email.createMailbox(this.projectId, slug);
301
+ }
302
+ send(opts) {
303
+ return this.parent.email.send(this.projectId, opts);
304
+ }
305
+ list(opts) {
306
+ return this.parent.email.list(this.projectId, opts);
307
+ }
308
+ get(messageId) {
309
+ return this.parent.email.get(this.projectId, messageId);
310
+ }
311
+ getRaw(messageId) {
312
+ return this.parent.email.getRaw(this.projectId, messageId);
313
+ }
314
+ getMailbox() {
315
+ return this.parent.email.getMailbox(this.projectId);
316
+ }
317
+ deleteMailbox(mailboxId) {
318
+ return this.parent.email.deleteMailbox(this.projectId, mailboxId);
319
+ }
320
+ }
321
+ class ScopedFunctions {
322
+ parent;
323
+ projectId;
324
+ constructor(parent, projectId) {
325
+ this.parent = parent;
326
+ this.projectId = projectId;
327
+ }
328
+ deploy(opts) {
329
+ return this.parent.functions.deploy(this.projectId, opts);
330
+ }
331
+ invoke(name, opts) {
332
+ return this.parent.functions.invoke(this.projectId, name, opts);
333
+ }
334
+ logs(name, opts) {
335
+ return this.parent.functions.logs(this.projectId, name, opts);
336
+ }
337
+ list() {
338
+ return this.parent.functions.list(this.projectId);
339
+ }
340
+ delete(name) {
341
+ return this.parent.functions.delete(this.projectId, name);
342
+ }
343
+ update(name, opts) {
344
+ return this.parent.functions.update(this.projectId, name, opts);
345
+ }
346
+ }
347
+ class ScopedSecrets {
348
+ parent;
349
+ projectId;
350
+ constructor(parent, projectId) {
351
+ this.parent = parent;
352
+ this.projectId = projectId;
353
+ }
354
+ set(key, value) {
355
+ return this.parent.secrets.set(this.projectId, key, value);
356
+ }
357
+ list() {
358
+ return this.parent.secrets.list(this.projectId);
359
+ }
360
+ delete(key) {
361
+ return this.parent.secrets.delete(this.projectId, key);
362
+ }
363
+ }
364
+ class ScopedSenderDomain {
365
+ parent;
366
+ projectId;
367
+ constructor(parent, projectId) {
368
+ this.parent = parent;
369
+ this.projectId = projectId;
370
+ }
371
+ register(domain) {
372
+ return this.parent.senderDomain.register(this.projectId, domain);
373
+ }
374
+ status() {
375
+ return this.parent.senderDomain.status(this.projectId);
376
+ }
377
+ remove() {
378
+ return this.parent.senderDomain.remove(this.projectId);
379
+ }
380
+ enableInbound(domain) {
381
+ return this.parent.senderDomain.enableInbound(this.projectId, domain);
382
+ }
383
+ disableInbound(domain) {
384
+ return this.parent.senderDomain.disableInbound(this.projectId, domain);
385
+ }
386
+ }
387
+ class ScopedSubdomains {
388
+ parent;
389
+ projectId;
390
+ constructor(parent, projectId) {
391
+ this.parent = parent;
392
+ this.projectId = projectId;
393
+ }
394
+ list() {
395
+ return this.parent.subdomains.list(this.projectId);
396
+ }
397
+ claim(name, deploymentId, opts = {}) {
398
+ return this.parent.subdomains.claim(name, deploymentId, {
399
+ ...opts,
400
+ projectId: opts.projectId ?? this.projectId,
401
+ });
402
+ }
403
+ delete(name, opts = {}) {
404
+ return this.parent.subdomains.delete(name, {
405
+ ...opts,
406
+ projectId: opts.projectId ?? this.projectId,
407
+ });
408
+ }
409
+ }
410
+ export class ScopedRun402 {
411
+ /** Resolved project id this client is bound to. Read-only. */
412
+ projectId;
413
+ projects;
414
+ apps;
415
+ ai;
416
+ auth;
417
+ blobs;
418
+ contracts;
419
+ deploy;
420
+ domains;
421
+ email;
422
+ functions;
423
+ secrets;
424
+ senderDomain;
425
+ subdomains;
426
+ constructor(parent, _client, projectId) {
427
+ this.projectId = projectId;
428
+ this.projects = new ScopedProjects(parent, projectId);
429
+ this.apps = new ScopedApps(parent, projectId);
430
+ this.ai = new ScopedAi(parent, projectId);
431
+ this.auth = new ScopedAuth(parent, projectId);
432
+ this.blobs = new ScopedBlobs(parent, projectId);
433
+ this.contracts = new ScopedContracts(parent, projectId);
434
+ this.deploy = new ScopedDeploy(parent, projectId);
435
+ this.domains = new ScopedDomains(parent, projectId);
436
+ this.email = new ScopedEmail(parent, projectId);
437
+ this.functions = new ScopedFunctions(parent, projectId);
438
+ this.secrets = new ScopedSecrets(parent, projectId);
439
+ this.senderDomain = new ScopedSenderDomain(parent, projectId);
440
+ this.subdomains = new ScopedSubdomains(parent, projectId);
441
+ }
442
+ }
443
+ //# sourceMappingURL=scoped.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scoped.js","sourceRoot":"","sources":["../src/scoped.ts"],"names":[],"mappings":"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"}