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 +14 -5
- package/package.json +3 -2
- package/sdk/README.md +76 -27
- package/sdk/dist/index.d.ts +34 -0
- package/sdk/dist/index.d.ts.map +1 -1
- package/sdk/dist/index.js +53 -0
- package/sdk/dist/index.js.map +1 -1
- package/sdk/dist/namespaces/projects.d.ts +12 -0
- package/sdk/dist/namespaces/projects.d.ts.map +1 -1
- package/sdk/dist/namespaces/projects.js +12 -0
- package/sdk/dist/namespaces/projects.js.map +1 -1
- package/sdk/dist/scoped.d.ts +248 -0
- package/sdk/dist/scoped.d.ts.map +1 -0
- package/sdk/dist/scoped.js +443 -0
- package/sdk/dist/scoped.js.map +1 -0
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
|
-
|
|
160
|
-
|
|
161
|
-
|
|
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.
|
|
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": "
|
|
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`
|
|
51
|
-
| `blobs` | `put` (returns `AssetRef` with `
|
|
52
|
-
| `functions` | `deploy`, `invoke`, `
|
|
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`, `
|
|
69
|
+
| `email` | `createMailbox`, `getMailbox`, `deleteMailbox`, `send`, `list`, `get`, `getRaw`, `webhooks.*` |
|
|
57
70
|
| `senderDomain` | `register`, `status`, `remove`, `enableInbound`, `disableInbound` |
|
|
58
|
-
| `auth` | `
|
|
59
|
-
| `apps` | `browse`, `
|
|
60
|
-
| `tier` | `set`, `status
|
|
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`, `
|
|
63
|
-
| `ai` | `translate`, `moderate`, `usage` |
|
|
64
|
-
| `allowance` | `status`, `create`, `export`, `
|
|
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 `
|
|
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.
|
|
77
|
-
// logo.sri
|
|
78
|
-
// logo.etag
|
|
79
|
-
// logo.
|
|
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
|
|
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
|
-
- **
|
|
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
|
-
|
|
111
|
-
site: { replace:
|
|
112
|
-
subdomains: {
|
|
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`, `
|
|
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 {
|
|
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.
|
|
189
|
+
} else if (e instanceof Run402DeployError && e.safeToRetry) {
|
|
141
190
|
// safe to retry — same idempotency key
|
|
142
191
|
} else throw e;
|
|
143
192
|
}
|
package/sdk/dist/index.d.ts
CHANGED
|
@@ -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
|
package/sdk/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,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;AAChD,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;
|
|
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
|
package/sdk/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -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
|
|
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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"}
|