run402 1.69.5 → 1.69.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/sites.mjs CHANGED
@@ -6,6 +6,7 @@ import { allowanceAuthHeaders, resolveProjectId, updateProject } from "./config.
6
6
  import { resolveFilePathsInManifest } from "./manifest.mjs";
7
7
  import { getSdk } from "./sdk.mjs";
8
8
  import { reportSdkError, fail } from "./sdk-errors.mjs";
9
+ import { assertKnownFlags, flagValue, normalizeArgv, positionalArgs } from "./argparse.mjs";
9
10
 
10
11
  const SMALL_DIR_THRESHOLD = 5;
11
12
 
@@ -187,14 +188,25 @@ function failUnsupportedTarget() {
187
188
  }
188
189
 
189
190
  async function deploy(args) {
191
+ const parsedArgs = normalizeArgv(args);
192
+ const valueFlags = ["--manifest", "--project", "--target"];
193
+ assertKnownFlags(parsedArgs, [...valueFlags, "--quiet", "--inherit", "--help", "-h"], valueFlags);
194
+ const extra = positionalArgs(parsedArgs, valueFlags);
195
+ if (extra.length > 0) {
196
+ fail({
197
+ code: "BAD_USAGE",
198
+ message: `Unexpected argument for sites deploy: ${extra[0]}`,
199
+ hint: "Use `run402 sites deploy --manifest <file> [--project <id>]`.",
200
+ });
201
+ }
190
202
  const opts = { manifest: null, project: undefined, target: undefined, quiet: false };
191
- for (let i = 0; i < args.length; i++) {
192
- if (args[i] === "--help" || args[i] === "-h") { console.log(HELP); process.exit(0); }
193
- if (args[i] === "--manifest" && args[i + 1]) opts.manifest = args[++i];
194
- if (args[i] === "--project" && args[i + 1]) opts.project = args[++i];
195
- if (args[i] === "--target" && args[i + 1]) opts.target = args[++i];
196
- if (args[i] === "--quiet") opts.quiet = true;
197
- if (args[i] === "--inherit") {
203
+ opts.manifest = flagValue(parsedArgs, "--manifest");
204
+ opts.project = flagValue(parsedArgs, "--project") ?? undefined;
205
+ opts.target = flagValue(parsedArgs, "--target") ?? undefined;
206
+ opts.quiet = parsedArgs.includes("--quiet");
207
+ for (let i = 0; i < parsedArgs.length; i++) {
208
+ if (parsedArgs[i] === "--help" || parsedArgs[i] === "-h") { console.log(HELP); process.exit(0); }
209
+ if (parsedArgs[i] === "--inherit") {
198
210
  console.error(JSON.stringify({
199
211
  status: "error",
200
212
  message: "--inherit is removed; the SDK now uploads only changed files automatically.",
@@ -231,6 +243,17 @@ async function deploy(args) {
231
243
  }
232
244
 
233
245
  async function deployDir(args) {
246
+ const parsedArgs = normalizeArgv(args);
247
+ const valueFlags = ["--project", "--target"];
248
+ assertKnownFlags(parsedArgs, [...valueFlags, "--quiet", "--dry-run", "--confirm-prune", "--inherit", "--help", "-h"], valueFlags);
249
+ const positionals = positionalArgs(parsedArgs, valueFlags);
250
+ if (positionals.length > 1) {
251
+ fail({
252
+ code: "BAD_USAGE",
253
+ message: `Unexpected argument for sites deploy-dir: ${positionals[1]}`,
254
+ hint: "Use `run402 sites deploy-dir <path> --project <id>`.",
255
+ });
256
+ }
234
257
  const opts = {
235
258
  dir: null,
236
259
  project: undefined,
@@ -239,20 +262,20 @@ async function deployDir(args) {
239
262
  dryRun: false,
240
263
  confirmPrune: false,
241
264
  };
242
- for (let i = 0; i < args.length; i++) {
243
- if (args[i] === "--help" || args[i] === "-h") { console.log(SUB_HELP["deploy-dir"]); process.exit(0); }
244
- if (args[i] === "--project" && args[i + 1]) { opts.project = args[++i]; continue; }
245
- if (args[i] === "--target" && args[i + 1]) { opts.target = args[++i]; continue; }
246
- if (args[i] === "--quiet") { opts.quiet = true; continue; }
247
- if (args[i] === "--dry-run") { opts.dryRun = true; continue; }
248
- if (args[i] === "--confirm-prune") { opts.confirmPrune = true; continue; }
249
- if (args[i] === "--inherit") {
265
+ opts.dir = positionals[0] ?? null;
266
+ opts.project = flagValue(parsedArgs, "--project") ?? undefined;
267
+ opts.target = flagValue(parsedArgs, "--target") ?? undefined;
268
+ opts.quiet = parsedArgs.includes("--quiet");
269
+ opts.dryRun = parsedArgs.includes("--dry-run");
270
+ opts.confirmPrune = parsedArgs.includes("--confirm-prune");
271
+ for (let i = 0; i < parsedArgs.length; i++) {
272
+ if (parsedArgs[i] === "--help" || parsedArgs[i] === "-h") { console.log(SUB_HELP["deploy-dir"]); process.exit(0); }
273
+ if (parsedArgs[i] === "--inherit") {
250
274
  fail({
251
275
  code: "BAD_USAGE",
252
276
  message: "--inherit is removed; the SDK now uploads only changed files automatically.",
253
277
  });
254
278
  }
255
- if (!args[i].startsWith("-") && opts.dir === null) { opts.dir = args[i]; continue; }
256
279
  }
257
280
  if (!opts.dir) {
258
281
  fail({
@@ -1,6 +1,7 @@
1
1
  import { resolveProject, resolveProjectId } from "./config.mjs";
2
2
  import { getSdk } from "./sdk.mjs";
3
3
  import { reportSdkError, fail } from "./sdk-errors.mjs";
4
+ import { assertKnownFlags, flagValue, normalizeArgv, positionalArgs } from "./argparse.mjs";
4
5
 
5
6
  const HELP = `run402 subdomains — Manage custom subdomains
6
7
 
@@ -78,22 +79,25 @@ Examples:
78
79
  `,
79
80
  };
80
81
 
81
- async function claim(positionalArgs, flagArgs) {
82
- const opts = { project: null, deployment: null };
83
- for (let i = 0; i < flagArgs.length; i++) {
84
- if (flagArgs[i] === "--project" && flagArgs[i + 1]) opts.project = flagArgs[++i];
85
- if (flagArgs[i] === "--deployment" && flagArgs[i + 1]) opts.deployment = flagArgs[++i];
86
- }
82
+ async function claim(args) {
83
+ const parsedArgs = normalizeArgv(args);
84
+ const valueFlags = ["--project", "--deployment"];
85
+ assertKnownFlags(parsedArgs, [...valueFlags, "--help", "-h"], valueFlags);
86
+ const opts = {
87
+ project: flagValue(parsedArgs, "--project"),
88
+ deployment: flagValue(parsedArgs, "--deployment"),
89
+ };
87
90
  let name, deploymentId;
88
- if (positionalArgs.length > 1) {
91
+ const positionals = positionalArgs(parsedArgs, valueFlags);
92
+ if (positionals.length > 1) {
89
93
  fail({
90
94
  code: "BAD_USAGE",
91
- message: `Unexpected argument for subdomains claim: ${positionalArgs[1]}`,
95
+ message: `Unexpected argument for subdomains claim: ${positionals[1]}`,
92
96
  hint: "Use `run402 subdomains claim <name> --deployment <deployment_id>`.",
93
97
  });
94
98
  }
95
- if (positionalArgs.length === 1) {
96
- name = positionalArgs[0];
99
+ if (positionals.length === 1) {
100
+ name = positionals[0];
97
101
  }
98
102
  if (!name) {
99
103
  fail({
@@ -123,13 +127,12 @@ async function claim(positionalArgs, flagArgs) {
123
127
  }
124
128
 
125
129
  async function deleteSubdomain(allArgs) {
126
- const argList = Array.isArray(allArgs) ? allArgs : [];
127
- let opts = { project: null };
128
- let name = null;
129
- for (let i = 0; i < argList.length; i++) {
130
- if (argList[i] === "--project" && argList[i + 1]) { opts.project = argList[++i]; }
131
- else if (!argList[i].startsWith("--") && !name) { name = argList[i]; }
132
- }
130
+ const argList = normalizeArgv(Array.isArray(allArgs) ? allArgs : []);
131
+ const valueFlags = ["--project"];
132
+ assertKnownFlags(argList, [...valueFlags, "--confirm", "--help", "-h"], valueFlags);
133
+ const opts = { project: flagValue(argList, "--project") };
134
+ const positionals = positionalArgs(argList, valueFlags);
135
+ let name = positionals[0] ?? null;
133
136
  if (!name) {
134
137
  fail({
135
138
  code: "BAD_USAGE",
@@ -137,6 +140,9 @@ async function deleteSubdomain(allArgs) {
137
140
  hint: "run402 subdomains delete <name> --confirm [--project <id>]",
138
141
  });
139
142
  }
143
+ if (positionals.length > 1) {
144
+ fail({ code: "BAD_USAGE", message: `Unexpected argument for subdomains delete: ${positionals[1]}` });
145
+ }
140
146
  if (!argList.includes("--confirm")) {
141
147
  fail({
142
148
  code: "CONFIRMATION_REQUIRED",
@@ -154,13 +160,13 @@ async function deleteSubdomain(allArgs) {
154
160
  }
155
161
 
156
162
  function parseProjectFlag(args) {
157
- let project = null;
158
- const rest = [];
159
- for (let i = 0; i < args.length; i++) {
160
- if (args[i] === "--project" && args[i + 1]) { project = args[++i]; }
161
- else { rest.push(args[i]); }
162
- }
163
- return { project, rest };
163
+ const parsedArgs = normalizeArgv(args);
164
+ const valueFlags = ["--project"];
165
+ assertKnownFlags(parsedArgs, [...valueFlags, "--help", "-h"], valueFlags);
166
+ return {
167
+ project: flagValue(parsedArgs, "--project"),
168
+ rest: positionalArgs(parsedArgs, valueFlags),
169
+ };
164
170
  }
165
171
 
166
172
  async function list(args) {
@@ -186,17 +192,7 @@ export async function run(sub, args) {
186
192
  if (!sub || sub === '--help' || sub === '-h') { console.log(HELP); process.exit(0); }
187
193
  if (Array.isArray(args) && (args.includes("--help") || args.includes("-h"))) { console.log(SUB_HELP[sub] || HELP); process.exit(0); }
188
194
  switch (sub) {
189
- case "claim": {
190
- const positional = [];
191
- const flags = [];
192
- let i = 0;
193
- while (i < args.length) {
194
- if (args[i].startsWith("--")) { flags.push(args[i], args[i + 1]); i += 2; }
195
- else { positional.push(args[i]); i++; }
196
- }
197
- await claim(positional, flags);
198
- break;
199
- }
195
+ case "claim": await claim(args); break;
200
196
  case "delete": await deleteSubdomain(args); break;
201
197
  case "list": await list(args); break;
202
198
  default:
package/lib/tier.mjs CHANGED
@@ -1,5 +1,6 @@
1
1
  import { getSdk } from "./sdk.mjs";
2
2
  import { reportSdkError, fail } from "./sdk-errors.mjs";
3
+ import { assertKnownFlags, normalizeArgv, positionalArgs } from "./argparse.mjs";
3
4
 
4
5
  const HELP = `run402 tier — Manage your Run402 tier subscription
5
6
 
@@ -64,7 +65,17 @@ Examples:
64
65
  `,
65
66
  };
66
67
 
67
- async function status() {
68
+ async function status(args = []) {
69
+ const parsedArgs = normalizeArgv(args);
70
+ assertKnownFlags(parsedArgs, ["--help", "-h"]);
71
+ const extra = positionalArgs(parsedArgs);
72
+ if (extra.length > 0) {
73
+ fail({
74
+ code: "BAD_USAGE",
75
+ message: `Unexpected argument for tier status: ${extra[0]}`,
76
+ hint: "Use `run402 tier status`.",
77
+ });
78
+ }
68
79
  try {
69
80
  const data = await getSdk().tier.status();
70
81
  console.log(JSON.stringify(data, null, 2));
@@ -73,7 +84,18 @@ async function status() {
73
84
  }
74
85
  }
75
86
 
76
- async function set(tierName) {
87
+ async function set(args = []) {
88
+ const parsedArgs = normalizeArgv(args);
89
+ assertKnownFlags(parsedArgs, ["--help", "-h"]);
90
+ const positionals = positionalArgs(parsedArgs);
91
+ if (positionals.length > 1) {
92
+ fail({
93
+ code: "BAD_USAGE",
94
+ message: `Unexpected argument for tier set: ${positionals[1]}`,
95
+ hint: "Use `run402 tier set <prototype|hobby|team>`.",
96
+ });
97
+ }
98
+ const tierName = positionals[0];
77
99
  if (!tierName) {
78
100
  fail({
79
101
  code: "BAD_USAGE",
@@ -99,8 +121,8 @@ export async function run(sub, args) {
99
121
  process.exit(0);
100
122
  }
101
123
  switch (sub) {
102
- case "status": await status(); break;
103
- case "set": await set(args[0]); break;
124
+ case "status": await status(args); break;
125
+ case "set": await set(args); break;
104
126
  default:
105
127
  console.error(`Unknown subcommand: ${sub}\n`);
106
128
  console.log(HELP);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "run402",
3
- "version": "1.69.5",
3
+ "version": "1.69.6",
4
4
  "description": "CLI for Run402 — provision Postgres databases, deploy static sites, generate images, and manage wallets via x402 and MPP micropayments.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -1 +1 @@
1
- {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/namespaces/ai.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE;QACX,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;CACH;AAED,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAE9D,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,EAAE;IACD,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE3C,yEAAyE;IACnE,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAgBpF,mFAAmF;IAC7E,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAYxE,8DAA8D;IACxD,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAUtD;;;OAGG;IACG,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAO9E"}
1
+ {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../src/namespaces/ai.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAG3C,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACpC,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACzC;AAED,MAAM,WAAW,aAAa;IAC5B,WAAW,EAAE;QACX,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;QACxB,mBAAmB,EAAE,MAAM,CAAC;KAC7B,CAAC;CACH;AAED,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAG9D,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAClC,4BAA4B;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,EAAE;IACD,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAE3C,yEAAyE;IACnE,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAgBpF,mFAAmF;IAC7E,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAYxE,8DAA8D;IACxD,KAAK,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC;IAUtD;;;OAGG;IACG,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAc9E"}
@@ -2,7 +2,8 @@
2
2
  * `ai` namespace — project-scoped AI add-ons (translation, moderation) and
3
3
  * wallet-scoped image generation.
4
4
  */
5
- import { ProjectNotFound } from "../errors.js";
5
+ import { LocalError, ProjectNotFound } from "../errors.js";
6
+ const IMAGE_ASPECTS = ["square", "landscape", "portrait"];
6
7
  export class Ai {
7
8
  client;
8
9
  constructor(client) {
@@ -52,9 +53,13 @@ export class Ai {
52
53
  * No project scope — payment flows through the allowance-based fetch.
53
54
  */
54
55
  async generateImage(opts) {
56
+ const aspect = opts.aspect ?? "square";
57
+ if (!IMAGE_ASPECTS.includes(aspect)) {
58
+ throw new LocalError(`aspect must be one of: ${IMAGE_ASPECTS.join(", ")}`, "generating image");
59
+ }
55
60
  return this.client.request("/generate-image/v1", {
56
61
  method: "POST",
57
- body: { prompt: opts.prompt, aspect: opts.aspect ?? "square" },
62
+ body: { prompt: opts.prompt, aspect },
58
63
  context: "generating image",
59
64
  });
60
65
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/namespaces/ai.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AA6C/C,MAAM,OAAO,EAAE;IACgB;IAA7B,YAA6B,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAE/C,yEAAyE;IACzE,KAAK,CAAC,SAAS,CAAC,SAAiB,EAAE,IAAsB;QACvD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,eAAe,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;QAEvE,MAAM,IAAI,GAA2B,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;QACtE,IAAI,IAAI,CAAC,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACrC,IAAI,IAAI,CAAC,OAAO;YAAE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAE9C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAkB,kBAAkB,EAAE;YAC9D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,OAAO,CAAC,WAAW,EAAE,EAAE;YAC3D,IAAI;YACJ,OAAO,EAAE,kBAAkB;SAC5B,CAAC,CAAC;IACL,CAAC;IAED,mFAAmF;IACnF,KAAK,CAAC,QAAQ,CAAC,SAAiB,EAAE,IAAY;QAC5C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,eAAe,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QAEzE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAiB,iBAAiB,EAAE;YAC5D,MAAM,EAAE,MAAM;YACd,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,OAAO,CAAC,WAAW,EAAE,EAAE;YAC3D,IAAI,EAAE,EAAE,IAAI,EAAE;YACd,OAAO,EAAE,oBAAoB;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,8DAA8D;IAC9D,KAAK,CAAC,KAAK,CAAC,SAAiB;QAC3B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,eAAe,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QAExE,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAgB,cAAc,EAAE;YACxD,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,OAAO,CAAC,WAAW,EAAE,EAAE;YAC3D,OAAO,EAAE,mBAAmB;SAC7B,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,IAA0B;QAC5C,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAsB,oBAAoB,EAAE;YACpE,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,QAAQ,EAAE;YAC9D,OAAO,EAAE,kBAAkB;SAC5B,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../src/namespaces/ai.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/namespaces/contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../src/namespaces/contracts.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,8 @@
9
9
  * existing request/response shapes verbatim.
10
10
  */
11
11
  import { LocalError, ProjectNotFound } from "../errors.js";
12
- import { assertWeiString } from "../validation.js";
12
+ import { assertEvmAddress, assertStringInSet, assertWeiString } from "../validation.js";
13
+ const EVM_CHAINS = ["base-mainnet", "base-sepolia"];
13
14
  export class Contracts {
14
15
  client;
15
16
  setAlert;
@@ -23,6 +24,10 @@ export class Contracts {
23
24
  }
24
25
  /** Provision a new KMS-backed contract wallet. */
25
26
  async provisionWallet(projectId, opts) {
27
+ assertStringInSet(opts.chain, EVM_CHAINS, "chain", "provisioning KMS contract wallet");
28
+ if (opts.recoveryAddress) {
29
+ assertEvmAddress(opts.recoveryAddress, "recoveryAddress", "provisioning KMS contract wallet");
30
+ }
26
31
  const project = await this.client.getProject(projectId);
27
32
  if (!project)
28
33
  throw new ProjectNotFound(projectId, "provisioning KMS contract wallet");
@@ -58,6 +63,9 @@ export class Contracts {
58
63
  }
59
64
  /** Set or clear the recovery address used for auto-drain on day-90 deletion. */
60
65
  async setRecovery(projectId, walletId, recoveryAddress) {
66
+ if (recoveryAddress !== null) {
67
+ assertEvmAddress(recoveryAddress, "recoveryAddress", "setting recovery address");
68
+ }
61
69
  const project = await this.client.getProject(projectId);
62
70
  if (!project)
63
71
  throw new ProjectNotFound(projectId, "setting recovery address");
@@ -83,9 +91,6 @@ export class Contracts {
83
91
  }
84
92
  /** Submit a smart-contract write call. Idempotent on `idempotencyKey`. */
85
93
  async call(projectId, opts) {
86
- const project = await this.client.getProject(projectId);
87
- if (!project)
88
- throw new ProjectNotFound(projectId, "submitting contract call");
89
94
  const contractAddress = opts.contractAddress ?? opts.to;
90
95
  const abiFragment = opts.abiFragment ?? opts.abi;
91
96
  const functionName = opts.functionName ?? opts.fn;
@@ -98,6 +103,11 @@ export class Contracts {
98
103
  if (!functionName) {
99
104
  throw new LocalError("contracts.call requires functionName (or 'fn')", "submitting contract call");
100
105
  }
106
+ assertStringInSet(opts.chain, EVM_CHAINS, "chain", "submitting contract call");
107
+ assertEvmAddress(contractAddress, "contractAddress", "submitting contract call");
108
+ const project = await this.client.getProject(projectId);
109
+ if (!project)
110
+ throw new ProjectNotFound(projectId, "submitting contract call");
101
111
  const headers = { Authorization: `Bearer ${project.service_key}` };
102
112
  if (opts.idempotencyKey)
103
113
  headers["Idempotency-Key"] = opts.idempotencyKey;
@@ -134,6 +144,8 @@ export class Contracts {
134
144
  if (!functionName) {
135
145
  throw new LocalError("contracts.read requires functionName (or 'fn')", "reading contract");
136
146
  }
147
+ assertStringInSet(opts.chain, EVM_CHAINS, "chain", "reading contract");
148
+ assertEvmAddress(contractAddress, "contractAddress", "reading contract");
137
149
  return this.client.request("/contracts/v1/read", {
138
150
  method: "POST",
139
151
  body: {
@@ -163,6 +175,7 @@ export class Contracts {
163
175
  * confirmation header (sent automatically by the SDK).
164
176
  */
165
177
  async drain(projectId, walletId, destinationAddress) {
178
+ assertEvmAddress(destinationAddress, "destinationAddress", "draining wallet");
166
179
  const project = await this.client.getProject(projectId);
167
180
  if (!project)
168
181
  throw new ProjectNotFound(projectId, "draining wallet");
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/namespaces/contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../src/namespaces/contracts.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
1
  export declare function assertPositiveSafeInteger(value: number, name: string, context: string): void;
2
2
  export declare function assertWeiString(value: string, name: string, context: string): void;
3
+ export declare function assertEvmAddress(value: string, name: string, context: string): void;
4
+ export declare function assertStringInSet<T extends string>(value: string, allowed: readonly T[], name: string, context: string): asserts value is T;
3
5
  //# sourceMappingURL=validation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAEA,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,IAAI,CAIN;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,IAAI,CAIN"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAEA,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,IAAI,CAIN;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,IAAI,CAIN;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,IAAI,CAIN;AAED,wBAAgB,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAChD,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,SAAS,CAAC,EAAE,EACrB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,KAAK,IAAI,CAAC,CAIpB"}
@@ -9,4 +9,14 @@ export function assertWeiString(value, name, context) {
9
9
  throw new LocalError(`${name} must be a decimal non-negative integer string in wei.`, context);
10
10
  }
11
11
  }
12
+ export function assertEvmAddress(value, name, context) {
13
+ if (typeof value !== "string" || !/^0x[a-fA-F0-9]{40}$/.test(value)) {
14
+ throw new LocalError(`${name} must be a 0x-prefixed 20-byte EVM address.`, context);
15
+ }
16
+ }
17
+ export function assertStringInSet(value, allowed, name, context) {
18
+ if (!allowed.includes(value)) {
19
+ throw new LocalError(`${name} must be one of: ${allowed.join(", ")}.`, context);
20
+ }
21
+ }
12
22
  //# sourceMappingURL=validation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,UAAU,yBAAyB,CACvC,KAAa,EACb,IAAY,EACZ,OAAe;IAEf,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,UAAU,CAAC,GAAG,IAAI,mCAAmC,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAa,EACb,IAAY,EACZ,OAAe;IAEf,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,UAAU,CAAC,GAAG,IAAI,wDAAwD,EAAE,OAAO,CAAC,CAAC;IACjG,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"validation.js","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,UAAU,yBAAyB,CACvC,KAAa,EACb,IAAY,EACZ,OAAe;IAEf,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QAC/C,MAAM,IAAI,UAAU,CAAC,GAAG,IAAI,mCAAmC,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAa,EACb,IAAY,EACZ,OAAe;IAEf,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACtD,MAAM,IAAI,UAAU,CAAC,GAAG,IAAI,wDAAwD,EAAE,OAAO,CAAC,CAAC;IACjG,CAAC;AACH,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,KAAa,EACb,IAAY,EACZ,OAAe;IAEf,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QACpE,MAAM,IAAI,UAAU,CAAC,GAAG,IAAI,6CAA6C,EAAE,OAAO,CAAC,CAAC;IACtF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,KAAa,EACb,OAAqB,EACrB,IAAY,EACZ,OAAe;IAEf,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAU,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,UAAU,CAAC,GAAG,IAAI,oBAAoB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC;AACH,CAAC"}