run402 1.69.7 → 1.70.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 +1 -0
- package/lib/deploy-v2.mjs +35 -12
- package/lib/secrets.mjs +75 -12
- package/lib/tier.mjs +5 -2
- package/package.json +1 -1
- package/sdk/dist/namespaces/auth.d.ts.map +1 -1
- package/sdk/dist/namespaces/auth.js +60 -6
- package/sdk/dist/namespaces/auth.js.map +1 -1
- package/sdk/dist/namespaces/billing.d.ts.map +1 -1
- package/sdk/dist/namespaces/billing.js +42 -14
- package/sdk/dist/namespaces/billing.js.map +1 -1
- package/sdk/dist/namespaces/deploy.d.ts.map +1 -1
- package/sdk/dist/namespaces/deploy.js +452 -12
- package/sdk/dist/namespaces/deploy.js.map +1 -1
- package/sdk/dist/namespaces/deploy.types.d.ts +11 -0
- package/sdk/dist/namespaces/deploy.types.d.ts.map +1 -1
- package/sdk/dist/namespaces/deploy.types.js.map +1 -1
- package/sdk/dist/namespaces/email.d.ts.map +1 -1
- package/sdk/dist/namespaces/email.js +55 -12
- package/sdk/dist/namespaces/email.js.map +1 -1
- package/sdk/dist/namespaces/projects.d.ts.map +1 -1
- package/sdk/dist/namespaces/projects.js +7 -2
- package/sdk/dist/namespaces/projects.js.map +1 -1
- package/sdk/dist/namespaces/tier.d.ts +16 -0
- package/sdk/dist/namespaces/tier.d.ts.map +1 -1
- package/sdk/dist/namespaces/tier.js.map +1 -1
- package/sdk/dist/node/deploy-manifest.d.ts +2 -0
- package/sdk/dist/node/deploy-manifest.d.ts.map +1 -1
- package/sdk/dist/node/deploy-manifest.js +24 -1
- package/sdk/dist/node/deploy-manifest.js.map +1 -1
- package/sdk/dist/validation.d.ts +6 -3
- package/sdk/dist/validation.d.ts.map +1 -1
- package/sdk/dist/validation.js +30 -0
- package/sdk/dist/validation.js.map +1 -1
package/README.md
CHANGED
|
@@ -136,6 +136,7 @@ import { db, adminDb, getUser, email, ai } from "@run402/functions";
|
|
|
136
136
|
|
|
137
137
|
```bash
|
|
138
138
|
run402 secrets set <id> OPENAI_API_KEY --file ./.secrets/openai-key
|
|
139
|
+
printf %s "$OPENAI_API_KEY" | run402 secrets set <id> OPENAI_API_KEY --stdin
|
|
139
140
|
run402 secrets list <id>
|
|
140
141
|
run402 deploy apply --manifest run402.deploy.json # manifest uses secrets.require, not values
|
|
141
142
|
```
|
package/lib/deploy-v2.mjs
CHANGED
|
@@ -37,8 +37,8 @@ import { normalizeArgv } from "./argparse.mjs";
|
|
|
37
37
|
const APPLY_HELP = `run402 deploy apply — Unified deploy primitive (v1.34+)
|
|
38
38
|
|
|
39
39
|
Usage:
|
|
40
|
-
run402 deploy apply --manifest <path> [--project <id>] [--quiet] [--allow-warnings]
|
|
41
|
-
run402 deploy apply --spec '<json>' [--project <id>] [--quiet] [--allow-warnings]
|
|
40
|
+
run402 deploy apply --manifest <path> [--project <id>] [--quiet|--final-only] [--allow-warning <code>] [--allow-warnings]
|
|
41
|
+
run402 deploy apply --spec '<json>' [--project <id>] [--quiet|--final-only] [--allow-warning <code>] [--allow-warnings]
|
|
42
42
|
cat spec.json | run402 deploy apply [--project <id>]
|
|
43
43
|
|
|
44
44
|
Manifest format mirrors the MCP \`deploy\` tool's ReleaseSpec:
|
|
@@ -80,14 +80,17 @@ Options:
|
|
|
80
80
|
--spec '<json>' Inline JSON spec (single-quote in shell)
|
|
81
81
|
--project <id> Override project_id from the manifest
|
|
82
82
|
--quiet Suppress per-event JSON-line stderr (final result still on stdout)
|
|
83
|
+
--final-only Alias for --quiet; final success/error envelope is still preserved
|
|
84
|
+
--allow-warning <code> Continue past this reviewed warning code (repeatable)
|
|
83
85
|
--allow-warnings Continue past plan warnings that require confirmation
|
|
84
86
|
|
|
85
87
|
Output:
|
|
86
88
|
stdout: { "status": "ok", "release_id": "rel_...", "operation_id": "op_...", "urls": {...}, "warnings": [...] }
|
|
87
|
-
stderr: one JSON event per line (suppressed with --quiet)
|
|
89
|
+
stderr: one JSON event per line (suppressed with --quiet or --final-only)
|
|
88
90
|
|
|
89
91
|
Secrets:
|
|
90
92
|
Secret values do not belong in deploy manifests. Set them first:
|
|
93
|
+
printf %s "$OPENAI_API_KEY" | run402 secrets set prj_... OPENAI_API_KEY --stdin
|
|
91
94
|
run402 secrets set prj_... OPENAI_API_KEY --file ./.secrets/openai-key
|
|
92
95
|
Then deploy a value-free declaration:
|
|
93
96
|
{ "project_id": "prj_...", "secrets": { "require": ["OPENAI_API_KEY"] } }
|
|
@@ -284,8 +287,8 @@ function makeStderrEventWriter(quiet) {
|
|
|
284
287
|
}
|
|
285
288
|
|
|
286
289
|
function parseApplyArgs(args) {
|
|
287
|
-
const opts = { manifest: null, spec: null, project: null, quiet: false, allowWarnings: false };
|
|
288
|
-
const allowedFlags = ["--manifest", "--spec", "--project", "--quiet", "--allow-warnings", "--help", "-h"];
|
|
290
|
+
const opts = { manifest: null, spec: null, project: null, quiet: false, allowWarnings: false, allowWarningCodes: [] };
|
|
291
|
+
const allowedFlags = ["--manifest", "--spec", "--project", "--quiet", "--final-only", "--allow-warning", "--allow-warnings", "--help", "-h"];
|
|
289
292
|
|
|
290
293
|
for (let i = 0; i < args.length; i++) {
|
|
291
294
|
const arg = args[i];
|
|
@@ -293,7 +296,7 @@ function parseApplyArgs(args) {
|
|
|
293
296
|
console.log(APPLY_HELP);
|
|
294
297
|
process.exit(0);
|
|
295
298
|
}
|
|
296
|
-
if (arg === "--manifest" || arg === "--spec" || arg === "--project") {
|
|
299
|
+
if (arg === "--manifest" || arg === "--spec" || arg === "--project" || arg === "--allow-warning") {
|
|
297
300
|
const value = args[i + 1];
|
|
298
301
|
if (value === undefined || (typeof value === "string" && value.startsWith("--"))) {
|
|
299
302
|
fail({
|
|
@@ -320,13 +323,15 @@ function parseApplyArgs(args) {
|
|
|
320
323
|
});
|
|
321
324
|
}
|
|
322
325
|
opts.spec = value;
|
|
323
|
-
} else {
|
|
326
|
+
} else if (arg === "--project") {
|
|
324
327
|
opts.project = value;
|
|
328
|
+
} else {
|
|
329
|
+
opts.allowWarningCodes.push(value);
|
|
325
330
|
}
|
|
326
331
|
i += 1;
|
|
327
332
|
continue;
|
|
328
333
|
}
|
|
329
|
-
if (arg === "--quiet") { opts.quiet = true; continue; }
|
|
334
|
+
if (arg === "--quiet" || arg === "--final-only") { opts.quiet = true; continue; }
|
|
330
335
|
if (arg === "--allow-warnings") { opts.allowWarnings = true; continue; }
|
|
331
336
|
if (typeof arg === "string" && arg.startsWith("-")) {
|
|
332
337
|
fail({
|
|
@@ -491,6 +496,7 @@ async function applyCmd(args) {
|
|
|
491
496
|
onEvent: makeStderrEventWriter(opts.quiet),
|
|
492
497
|
idempotencyKey,
|
|
493
498
|
allowWarnings: opts.allowWarnings,
|
|
499
|
+
allowWarningCodes: opts.allowWarningCodes,
|
|
494
500
|
});
|
|
495
501
|
console.log(JSON.stringify({ status: "ok", ...result }, null, 2));
|
|
496
502
|
} catch (err) {
|
|
@@ -596,12 +602,28 @@ function enhanceDeployWarningError(err) {
|
|
|
596
602
|
const affected = warnings
|
|
597
603
|
? warnings.flatMap((w) => Array.isArray(w?.affected) ? w.affected : [])
|
|
598
604
|
: [];
|
|
605
|
+
const unacknowledgedCodes = Array.isArray(existingBody.unacknowledged_warning_codes)
|
|
606
|
+
? existingBody.unacknowledged_warning_codes
|
|
607
|
+
: warnings
|
|
608
|
+
? Array.from(new Set(warnings
|
|
609
|
+
.filter((w) => w?.requires_confirmation || w?.code === "MISSING_REQUIRED_SECRET")
|
|
610
|
+
.map((w) => w?.code)
|
|
611
|
+
.filter(Boolean)))
|
|
612
|
+
: code
|
|
613
|
+
? [code]
|
|
614
|
+
: [];
|
|
615
|
+
const allowWarningAction = unacknowledgedCodes.length === 1
|
|
616
|
+
? `Retry with \`--allow-warning ${unacknowledgedCodes[0]}\` only after reviewing that warning.`
|
|
617
|
+
: unacknowledgedCodes.length > 1
|
|
618
|
+
? `Retry with one \`--allow-warning <code>\` per reviewed warning code: ${unacknowledgedCodes.join(", ")}.`
|
|
619
|
+
: "Retry with `--allow-warning <code>` only after reviewing the warning.";
|
|
599
620
|
const defaultNextActions = [
|
|
600
621
|
...(affected.length > 0
|
|
601
622
|
? [`Set or inspect affected secrets: ${Array.from(new Set(affected)).join(", ")}`]
|
|
602
623
|
: []),
|
|
603
624
|
"Retry `run402 deploy apply` after resolving warnings.",
|
|
604
|
-
|
|
625
|
+
allowWarningAction,
|
|
626
|
+
"Use `--allow-warnings` only when every warning was explicitly reviewed.",
|
|
605
627
|
];
|
|
606
628
|
enhanced.body = {
|
|
607
629
|
...existingBody,
|
|
@@ -610,8 +632,8 @@ function enhanceDeployWarningError(err) {
|
|
|
610
632
|
hint: existingBody.hint ||
|
|
611
633
|
routeGuidance?.hint ||
|
|
612
634
|
(code === "MISSING_REQUIRED_SECRET"
|
|
613
|
-
? "Set the missing secret values with `run402 secrets set
|
|
614
|
-
: "Review the plan warnings, then retry with --allow-warnings if you intentionally accept them."),
|
|
635
|
+
? "Set the missing secret values with `run402 secrets set <project> <KEY> --stdin` or `--file <path>`, then retry deploy apply."
|
|
636
|
+
: "Review the plan warnings, then retry with --allow-warning <code> for reviewed warnings if you intentionally accept them."),
|
|
615
637
|
next_actions: Array.isArray(existingBody.next_actions) && existingBody.next_actions.length > 0
|
|
616
638
|
? existingBody.next_actions
|
|
617
639
|
: (routeGuidance?.next_actions ?? defaultNextActions),
|
|
@@ -665,7 +687,8 @@ const ROUTE_WARNING_GUIDANCE = {
|
|
|
665
687
|
next_actions: [
|
|
666
688
|
"Add the mutation methods the routed function supports, such as POST.",
|
|
667
689
|
"Omit methods to allow every supported method when the route is an API surface.",
|
|
668
|
-
"
|
|
690
|
+
"Set acknowledge_readonly: true on an intentionally read-only GET/HEAD wildcard function route.",
|
|
691
|
+
"Use --allow-warning WILDCARD_ROUTE_EXCLUDES_MUTATION_METHODS only as a reviewed CLI escape hatch.",
|
|
669
692
|
],
|
|
670
693
|
},
|
|
671
694
|
ROUTE_TABLE_NEAR_LIMIT: {
|
package/lib/secrets.mjs
CHANGED
|
@@ -9,11 +9,12 @@ Usage:
|
|
|
9
9
|
run402 secrets <subcommand> [args...]
|
|
10
10
|
|
|
11
11
|
Subcommands:
|
|
12
|
-
set <id> <key> <value> [--file <path
|
|
12
|
+
set <id> <key> <value> [--file <path>|--stdin] Set a secret on a project
|
|
13
13
|
list <id> List all secrets for a project
|
|
14
14
|
delete <id> <key> Delete a secret from a project
|
|
15
15
|
|
|
16
16
|
Examples:
|
|
17
|
+
printf %s "$STRIPE_KEY" | run402 secrets set prj_abc123 STRIPE_KEY --stdin
|
|
17
18
|
run402 secrets set prj_abc123 STRIPE_KEY --file ./.secrets/stripe-key
|
|
18
19
|
run402 secrets set prj_abc123 TLS_CERT --file cert.pem
|
|
19
20
|
run402 secrets list prj_abc123
|
|
@@ -29,23 +30,28 @@ const SUB_HELP = {
|
|
|
29
30
|
set: `run402 secrets set — Set a secret on a project
|
|
30
31
|
|
|
31
32
|
Usage:
|
|
32
|
-
run402 secrets set <id> <key> <value>
|
|
33
|
+
run402 secrets set <id> <key> <value>
|
|
33
34
|
run402 secrets set <id> <key> --file <path>
|
|
35
|
+
run402 secrets set <id> <key> --stdin
|
|
34
36
|
|
|
35
37
|
Arguments:
|
|
36
38
|
<id> Project ID (from 'run402 projects list')
|
|
37
39
|
<key> Secret key name (exposed as process.env.<key>)
|
|
38
|
-
<value> Inline secret value (omit if using --file)
|
|
40
|
+
<value> Inline secret value (omit if using --file or --stdin)
|
|
39
41
|
|
|
40
42
|
Options:
|
|
41
43
|
--file <path> Read the secret value from a file instead of inline
|
|
44
|
+
Use --file - or --file /dev/stdin to read from stdin
|
|
45
|
+
--stdin Read the secret value from stdin until EOF
|
|
42
46
|
|
|
43
47
|
Notes:
|
|
44
48
|
- Secrets are injected as process.env in serverless functions
|
|
45
49
|
- Values are write-only; 'list' cannot verify values by hash
|
|
46
|
-
- Prefer --file for real secrets so values do not land in shell history
|
|
50
|
+
- Prefer --stdin or --file for real secrets so values do not land in shell history
|
|
47
51
|
|
|
48
52
|
Examples:
|
|
53
|
+
printf %s "$STRIPE_KEY" | run402 secrets set prj_abc123 STRIPE_KEY --stdin
|
|
54
|
+
cat ./.secrets/stripe-key | run402 secrets set prj_abc123 STRIPE_KEY --file -
|
|
49
55
|
run402 secrets set prj_abc123 STRIPE_KEY --file ./.secrets/stripe-key
|
|
50
56
|
run402 secrets set prj_abc123 TLS_CERT --file cert.pem
|
|
51
57
|
`,
|
|
@@ -77,25 +83,48 @@ Examples:
|
|
|
77
83
|
`,
|
|
78
84
|
};
|
|
79
85
|
|
|
86
|
+
export function readSecretValueForSet(parsedArgs, values, readers = {}) {
|
|
87
|
+
const readStdin = readers.readStdin ?? (() => readFileSync(0, "utf-8"));
|
|
88
|
+
const readFile = readers.readFile ?? ((path) => readFileSync(path, "utf-8"));
|
|
89
|
+
const validateFile = readers.validateFile ?? validateRegularFile;
|
|
90
|
+
const file = flagValue(parsedArgs, "--file");
|
|
91
|
+
const stdinRequested = parsedArgs.includes("--stdin");
|
|
92
|
+
const stdinFile = isStdinAlias(file);
|
|
93
|
+
const sources = [];
|
|
94
|
+
if (values.length === 1) sources.push("inline");
|
|
95
|
+
if (file) sources.push(stdinFile ? "--file stdin" : "--file");
|
|
96
|
+
if (stdinRequested) sources.push("--stdin");
|
|
97
|
+
|
|
98
|
+
if (sources.length > 1) {
|
|
99
|
+
fail({
|
|
100
|
+
code: "BAD_USAGE",
|
|
101
|
+
message: "Provide exactly one secret value source.",
|
|
102
|
+
details: { sources },
|
|
103
|
+
hint: "Use one of: inline value, --file <path>, or --stdin.",
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
if (file && !stdinFile) validateFile(file, "--file");
|
|
107
|
+
|
|
108
|
+
if (stdinRequested || stdinFile) return readStdin();
|
|
109
|
+
if (file) return readFile(file);
|
|
110
|
+
if (values.length === 1) return values[0];
|
|
111
|
+
return undefined;
|
|
112
|
+
}
|
|
113
|
+
|
|
80
114
|
async function set(projectId, key, args = []) {
|
|
81
115
|
const parsedArgs = normalizeArgv(args);
|
|
82
116
|
const valueFlags = ["--file"];
|
|
83
|
-
assertKnownFlags(parsedArgs, [...valueFlags, "--help", "-h"], valueFlags);
|
|
117
|
+
assertKnownFlags(parsedArgs, [...valueFlags, "--stdin", "--help", "-h"], valueFlags);
|
|
84
118
|
const values = positionalArgs(parsedArgs, valueFlags);
|
|
85
119
|
if (values.length > 1) {
|
|
86
120
|
fail({ code: "BAD_USAGE", message: `Unexpected argument for secrets set: ${values[1]}` });
|
|
87
121
|
}
|
|
88
|
-
const
|
|
89
|
-
if (file && values.length > 0) {
|
|
90
|
-
fail({ code: "BAD_USAGE", message: "Provide either an inline value or --file, not both." });
|
|
91
|
-
}
|
|
92
|
-
if (file) validateRegularFile(file, "--file");
|
|
93
|
-
const val = file ? readFileSync(file, "utf-8") : values.length === 1 ? values[0] : undefined;
|
|
122
|
+
const val = await readSecretValueForSet(parsedArgs, values, { readStdin: readStdinSecret });
|
|
94
123
|
if (val === undefined) {
|
|
95
124
|
fail({
|
|
96
125
|
code: "BAD_USAGE",
|
|
97
126
|
message: "Missing secret value.",
|
|
98
|
-
hint: "
|
|
127
|
+
hint: "Pipe a value to --stdin, use --file <path>, or provide an inline value only when shell history exposure is acceptable.",
|
|
99
128
|
});
|
|
100
129
|
}
|
|
101
130
|
try {
|
|
@@ -106,6 +135,40 @@ async function set(projectId, key, args = []) {
|
|
|
106
135
|
}
|
|
107
136
|
}
|
|
108
137
|
|
|
138
|
+
function isStdinAlias(file) {
|
|
139
|
+
return file === "-" || file === "/dev/stdin";
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
async function readStdinSecret() {
|
|
143
|
+
if (process.stdin?.isTTY) {
|
|
144
|
+
failMissingStdin();
|
|
145
|
+
}
|
|
146
|
+
const chunks = [];
|
|
147
|
+
for await (const chunk of process.stdin) {
|
|
148
|
+
chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(String(chunk)));
|
|
149
|
+
}
|
|
150
|
+
if (chunks.length === 0) {
|
|
151
|
+
failMissingStdin();
|
|
152
|
+
}
|
|
153
|
+
const value = Buffer.concat(chunks).toString("utf-8");
|
|
154
|
+
if (value.length === 0) {
|
|
155
|
+
failMissingStdin();
|
|
156
|
+
}
|
|
157
|
+
return value;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
function failMissingStdin() {
|
|
161
|
+
fail({
|
|
162
|
+
code: "BAD_USAGE",
|
|
163
|
+
message: "Missing secret value on stdin.",
|
|
164
|
+
hint: "Pipe a value, use --file <path>, or provide an inline value only when shell history exposure is acceptable.",
|
|
165
|
+
next_actions: [
|
|
166
|
+
"printf %s \"$VALUE\" | run402 secrets set <project> <KEY> --stdin",
|
|
167
|
+
"run402 secrets set <project> <KEY> --file <path>",
|
|
168
|
+
],
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
|
|
109
172
|
async function list(projectId, args = []) {
|
|
110
173
|
const parsedArgs = normalizeArgv(args);
|
|
111
174
|
assertKnownFlags(parsedArgs, ["--help", "-h"]);
|
package/lib/tier.mjs
CHANGED
|
@@ -8,7 +8,7 @@ Usage:
|
|
|
8
8
|
run402 tier <subcommand> [args...]
|
|
9
9
|
|
|
10
10
|
Subcommands:
|
|
11
|
-
status Show current tier
|
|
11
|
+
status Show current tier, expiry, usage, and function caps when returned
|
|
12
12
|
set <tier> Subscribe, renew, or upgrade (pays via x402)
|
|
13
13
|
|
|
14
14
|
Tiers: prototype ($0.10/7d, free with testnet faucet), hobby ($5/30d), team ($20/30d)
|
|
@@ -32,7 +32,10 @@ Usage:
|
|
|
32
32
|
run402 tier status
|
|
33
33
|
|
|
34
34
|
Notes:
|
|
35
|
-
- Returns the current tier name, status, and
|
|
35
|
+
- Returns the current tier name, status, expiry, and usage
|
|
36
|
+
- Newer gateways include function authoring caps such as max timeout,
|
|
37
|
+
max memory, max scheduled functions, minimum cron interval, and current
|
|
38
|
+
scheduled-function usage
|
|
36
39
|
- Use 'run402 tier set <tier>' to subscribe, renew, or upgrade
|
|
37
40
|
|
|
38
41
|
Examples:
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/namespaces/auth.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/namespaces/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,38 @@
|
|
|
6
6
|
* end-user flows). Settings + promote/demote use the service key.
|
|
7
7
|
*/
|
|
8
8
|
import { LocalError, ProjectNotFound } from "../errors.js";
|
|
9
|
+
import { assertEmailAddress, assertHttpUrl, assertNonEmptyString, assertStringInSet, } from "../validation.js";
|
|
10
|
+
const MAGIC_LINK_INTENTS = ["signin", "invite", "claim", "recovery"];
|
|
11
|
+
const AUTH_SETTINGS_FIELDS = [
|
|
12
|
+
"allow_password_set",
|
|
13
|
+
"preferred_sign_in_method",
|
|
14
|
+
"public_signup",
|
|
15
|
+
"require_passkey_for_project_admin",
|
|
16
|
+
];
|
|
17
|
+
const SIGN_IN_METHODS = ["password", "magic_link", "oauth_google", "passkey"];
|
|
18
|
+
const PUBLIC_SIGNUP_POLICIES = ["open", "known_email", "invite_only"];
|
|
19
|
+
function validateAuthSettings(settings) {
|
|
20
|
+
const raw = settings;
|
|
21
|
+
for (const key of Object.keys(raw)) {
|
|
22
|
+
if (!AUTH_SETTINGS_FIELDS.includes(key)) {
|
|
23
|
+
throw new LocalError(`Unknown auth settings field: ${key}`, "updating auth settings");
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
if (raw.allow_password_set !== undefined &&
|
|
27
|
+
typeof raw.allow_password_set !== "boolean") {
|
|
28
|
+
throw new LocalError("allow_password_set must be a boolean.", "updating auth settings");
|
|
29
|
+
}
|
|
30
|
+
if (raw.require_passkey_for_project_admin !== undefined &&
|
|
31
|
+
typeof raw.require_passkey_for_project_admin !== "boolean") {
|
|
32
|
+
throw new LocalError("require_passkey_for_project_admin must be a boolean.", "updating auth settings");
|
|
33
|
+
}
|
|
34
|
+
if (raw.preferred_sign_in_method !== undefined && raw.preferred_sign_in_method !== null) {
|
|
35
|
+
assertStringInSet(raw.preferred_sign_in_method, SIGN_IN_METHODS, "preferred_sign_in_method", "updating auth settings");
|
|
36
|
+
}
|
|
37
|
+
if (raw.public_signup !== undefined) {
|
|
38
|
+
assertStringInSet(raw.public_signup, PUBLIC_SIGNUP_POLICIES, "public_signup", "updating auth settings");
|
|
39
|
+
}
|
|
40
|
+
}
|
|
9
41
|
export class Auth {
|
|
10
42
|
client;
|
|
11
43
|
magicLink;
|
|
@@ -23,9 +55,14 @@ export class Auth {
|
|
|
23
55
|
}
|
|
24
56
|
/** Send a passwordless login email (magic link). 15-minute token. */
|
|
25
57
|
async requestMagicLink(projectId, opts) {
|
|
26
|
-
if (!opts || typeof opts !== "object") {
|
|
58
|
+
if (!opts || typeof opts !== "object" || Array.isArray(opts)) {
|
|
27
59
|
throw new LocalError("r.auth.requestMagicLink(projectId, opts) requires an opts object as the 2nd argument (e.g., { email, redirectUrl })", "requesting magic link");
|
|
28
60
|
}
|
|
61
|
+
assertEmailAddress(opts.email, "email", "requesting magic link");
|
|
62
|
+
assertHttpUrl(opts.redirectUrl, "redirectUrl", "requesting magic link");
|
|
63
|
+
if (opts.intent !== undefined) {
|
|
64
|
+
assertStringInSet(opts.intent, MAGIC_LINK_INTENTS, "intent", "requesting magic link");
|
|
65
|
+
}
|
|
29
66
|
const project = await this.client.getProject(projectId);
|
|
30
67
|
if (!project)
|
|
31
68
|
throw new ProjectNotFound(projectId, "requesting magic link");
|
|
@@ -49,6 +86,7 @@ export class Auth {
|
|
|
49
86
|
}
|
|
50
87
|
/** Exchange a magic-link token for access + refresh tokens. */
|
|
51
88
|
async verifyMagicLink(projectId, token) {
|
|
89
|
+
assertNonEmptyString(token, "token", "verifying magic link");
|
|
52
90
|
const project = await this.client.getProject(projectId);
|
|
53
91
|
if (!project)
|
|
54
92
|
throw new ProjectNotFound(projectId, "verifying magic link");
|
|
@@ -68,14 +106,19 @@ export class Auth {
|
|
|
68
106
|
* Bearer credential.
|
|
69
107
|
*/
|
|
70
108
|
async setUserPassword(projectId, opts) {
|
|
71
|
-
if (!opts || typeof opts !== "object") {
|
|
109
|
+
if (!opts || typeof opts !== "object" || Array.isArray(opts)) {
|
|
72
110
|
throw new LocalError("r.auth.setUserPassword(projectId, opts) requires an opts object as the 2nd argument (e.g., { accessToken, newPassword })", "setting user password");
|
|
73
111
|
}
|
|
112
|
+
assertNonEmptyString(opts.accessToken, "accessToken", "setting user password");
|
|
113
|
+
assertNonEmptyString(opts.newPassword, "newPassword", "setting user password");
|
|
114
|
+
if (opts.currentPassword !== undefined) {
|
|
115
|
+
assertNonEmptyString(opts.currentPassword, "currentPassword", "setting user password");
|
|
116
|
+
}
|
|
74
117
|
const project = await this.client.getProject(projectId);
|
|
75
118
|
if (!project)
|
|
76
119
|
throw new ProjectNotFound(projectId, "setting user password");
|
|
77
120
|
const body = { new_password: opts.newPassword };
|
|
78
|
-
if (opts.currentPassword)
|
|
121
|
+
if (opts.currentPassword !== undefined)
|
|
79
122
|
body.current_password = opts.currentPassword;
|
|
80
123
|
await this.client.request("/auth/v1/user/password", {
|
|
81
124
|
method: "PUT",
|
|
@@ -89,9 +132,10 @@ export class Auth {
|
|
|
89
132
|
}
|
|
90
133
|
/** Update project-level auth settings. Requires service key. */
|
|
91
134
|
async settings(projectId, settings) {
|
|
92
|
-
if (!settings || typeof settings !== "object") {
|
|
135
|
+
if (!settings || typeof settings !== "object" || Array.isArray(settings)) {
|
|
93
136
|
throw new LocalError("r.auth.settings(projectId, settings) requires a settings object as the 2nd argument (e.g., { allow_password_set: true })", "updating auth settings");
|
|
94
137
|
}
|
|
138
|
+
validateAuthSettings(settings);
|
|
95
139
|
const project = await this.client.getProject(projectId);
|
|
96
140
|
if (!project)
|
|
97
141
|
throw new ProjectNotFound(projectId, "updating auth settings");
|
|
@@ -107,9 +151,19 @@ export class Auth {
|
|
|
107
151
|
}
|
|
108
152
|
/** Create or update an auth user. Requires service key. */
|
|
109
153
|
async createUser(projectId, opts) {
|
|
110
|
-
if (!opts || typeof opts !== "object") {
|
|
154
|
+
if (!opts || typeof opts !== "object" || Array.isArray(opts)) {
|
|
111
155
|
throw new LocalError("r.auth.createUser(projectId, opts) requires an opts object as the 2nd argument (e.g., { email, isAdmin })", "creating auth user");
|
|
112
156
|
}
|
|
157
|
+
assertEmailAddress(opts.email, "email", "creating auth user");
|
|
158
|
+
if (opts.redirectUrl !== undefined) {
|
|
159
|
+
assertHttpUrl(opts.redirectUrl, "redirectUrl", "creating auth user");
|
|
160
|
+
}
|
|
161
|
+
if (opts.isAdmin !== undefined && typeof opts.isAdmin !== "boolean") {
|
|
162
|
+
throw new LocalError("isAdmin must be a boolean when provided.", "creating auth user");
|
|
163
|
+
}
|
|
164
|
+
if (opts.sendInvite !== undefined && typeof opts.sendInvite !== "boolean") {
|
|
165
|
+
throw new LocalError("sendInvite must be a boolean when provided.", "creating auth user");
|
|
166
|
+
}
|
|
113
167
|
const project = await this.client.getProject(projectId);
|
|
114
168
|
if (!project)
|
|
115
169
|
throw new ProjectNotFound(projectId, "creating auth user");
|
|
@@ -118,7 +172,7 @@ export class Auth {
|
|
|
118
172
|
body.is_admin = opts.isAdmin;
|
|
119
173
|
if (typeof opts.sendInvite === "boolean")
|
|
120
174
|
body.send_invite = opts.sendInvite;
|
|
121
|
-
if (opts.redirectUrl)
|
|
175
|
+
if (opts.redirectUrl !== undefined)
|
|
122
176
|
body.redirect_url = opts.redirectUrl;
|
|
123
177
|
if (opts.clientState !== undefined)
|
|
124
178
|
body.client_state = opts.clientState;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/namespaces/auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/namespaces/auth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/namespaces/billing.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../src/namespaces/billing.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,26 +4,48 @@
|
|
|
4
4
|
* account by wallet address or email.
|
|
5
5
|
*/
|
|
6
6
|
import { LocalError } from "../errors.js";
|
|
7
|
-
import { assertPositiveSafeInteger } from "../validation.js";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
: identifier;
|
|
7
|
+
import { assertEmailAddress, assertEvmAddress, assertNonEmptyString, assertPositiveSafeInteger, assertStringInSet, } from "../validation.js";
|
|
8
|
+
const BILLING_TIERS = ["prototype", "hobby", "team"];
|
|
9
|
+
function encodeBillingIdentifier(identifier, context) {
|
|
10
|
+
const normalized = normalizeBillingIdentifier(identifier, context);
|
|
12
11
|
return encodeURIComponent(normalized);
|
|
13
12
|
}
|
|
13
|
+
function normalizeBillingIdentifier(identifier, context) {
|
|
14
|
+
assertNonEmptyString(identifier, "identifier", context);
|
|
15
|
+
if (/^0x/i.test(identifier)) {
|
|
16
|
+
assertEvmAddress(identifier, "identifier", context);
|
|
17
|
+
return identifier.toLowerCase();
|
|
18
|
+
}
|
|
19
|
+
assertEmailAddress(identifier, "identifier", context);
|
|
20
|
+
return identifier;
|
|
21
|
+
}
|
|
14
22
|
function assertNonNegativeSafeInteger(value, name, context) {
|
|
15
23
|
if (!Number.isSafeInteger(value) || value < 0) {
|
|
16
24
|
throw new LocalError(`${name} must be a non-negative safe integer.`, context);
|
|
17
25
|
}
|
|
18
26
|
}
|
|
27
|
+
function assertUsdMicrosAmount(value, name, context) {
|
|
28
|
+
if (!Number.isSafeInteger(value) || value < 500_000 || value % 10_000 !== 0) {
|
|
29
|
+
throw new LocalError(`${name} must be a safe integer USD-micros amount of at least 500000 and whole-cent aligned.`, context);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
19
32
|
function checkoutIdentifierBody(identifier, context) {
|
|
20
|
-
if (identifier
|
|
33
|
+
if (!identifier || typeof identifier !== "object" || Array.isArray(identifier)) {
|
|
34
|
+
throw new LocalError("identifier must be an object with either `email` or `wallet`.", context);
|
|
35
|
+
}
|
|
36
|
+
const hasEmail = identifier.email !== undefined;
|
|
37
|
+
const hasWallet = identifier.wallet !== undefined;
|
|
38
|
+
if (hasEmail && hasWallet) {
|
|
21
39
|
throw new LocalError("Provide either `email` or `wallet` in identifier, not both.", context);
|
|
22
40
|
}
|
|
23
|
-
if (
|
|
24
|
-
|
|
25
|
-
|
|
41
|
+
if (hasWallet) {
|
|
42
|
+
assertEvmAddress(identifier.wallet, "identifier.wallet", context);
|
|
43
|
+
return { wallet: identifier.wallet.toLowerCase() };
|
|
44
|
+
}
|
|
45
|
+
if (hasEmail) {
|
|
46
|
+
assertEmailAddress(identifier.email, "identifier.email", context);
|
|
26
47
|
return { email: identifier.email };
|
|
48
|
+
}
|
|
27
49
|
throw new LocalError("Provide either `email` or `wallet` in identifier.", context);
|
|
28
50
|
}
|
|
29
51
|
export class Billing {
|
|
@@ -43,7 +65,7 @@ export class Billing {
|
|
|
43
65
|
}
|
|
44
66
|
/** Check a billing account by wallet or email identifier. Public, no auth. */
|
|
45
67
|
async getAccount(identifier) {
|
|
46
|
-
const encoded = encodeBillingIdentifier(identifier);
|
|
68
|
+
const encoded = encodeBillingIdentifier(identifier, "checking balance");
|
|
47
69
|
return this.client.request(`/billing/v1/accounts/${encoded}`, {
|
|
48
70
|
context: "checking balance",
|
|
49
71
|
withAuth: false,
|
|
@@ -55,7 +77,7 @@ export class Billing {
|
|
|
55
77
|
}
|
|
56
78
|
/** Fetch billing history by wallet or email identifier. */
|
|
57
79
|
async getHistory(identifier, limit) {
|
|
58
|
-
const encoded = encodeBillingIdentifier(identifier);
|
|
80
|
+
const encoded = encodeBillingIdentifier(identifier, "fetching billing history");
|
|
59
81
|
if (limit !== undefined) {
|
|
60
82
|
assertPositiveSafeInteger(limit, "limit", "fetching billing history");
|
|
61
83
|
}
|
|
@@ -69,6 +91,8 @@ export class Billing {
|
|
|
69
91
|
}
|
|
70
92
|
/** Create a Stripe checkout URL to fund a wallet's billing balance. */
|
|
71
93
|
async createCheckout(wallet, amountUsdMicros) {
|
|
94
|
+
assertEvmAddress(wallet, "wallet", "creating checkout");
|
|
95
|
+
assertUsdMicrosAmount(amountUsdMicros, "amountUsdMicros", "creating checkout");
|
|
72
96
|
return this.client.request("/billing/v1/checkouts", {
|
|
73
97
|
method: "POST",
|
|
74
98
|
body: { wallet: wallet.toLowerCase(), amount_usd_micros: amountUsdMicros },
|
|
@@ -78,6 +102,7 @@ export class Billing {
|
|
|
78
102
|
}
|
|
79
103
|
/** Create an email-only (no-wallet) billing account. Sends a verification email. */
|
|
80
104
|
async createEmailAccount(email) {
|
|
105
|
+
assertEmailAddress(email, "email", "creating email billing account");
|
|
81
106
|
return this.client.request("/billing/v1/accounts", {
|
|
82
107
|
method: "POST",
|
|
83
108
|
body: { email },
|
|
@@ -87,17 +112,20 @@ export class Billing {
|
|
|
87
112
|
}
|
|
88
113
|
/** Link a wallet to an existing email billing account to enable hybrid Stripe + x402. */
|
|
89
114
|
async linkWallet(billingAccountId, wallet) {
|
|
90
|
-
|
|
115
|
+
assertNonEmptyString(billingAccountId, "billingAccountId", "linking wallet");
|
|
116
|
+
assertEvmAddress(wallet, "wallet", "linking wallet");
|
|
117
|
+
await this.client.request(`/billing/v1/accounts/${encodeURIComponent(billingAccountId)}/link-wallet`, {
|
|
91
118
|
method: "POST",
|
|
92
|
-
body: { wallet },
|
|
119
|
+
body: { wallet: wallet.toLowerCase() },
|
|
93
120
|
context: "linking wallet",
|
|
94
121
|
withAuth: false,
|
|
95
122
|
});
|
|
96
123
|
}
|
|
97
124
|
/** Create a Stripe checkout for a tier subscription/renewal/upgrade. */
|
|
98
125
|
async tierCheckout(tier, identifier) {
|
|
126
|
+
assertStringInSet(tier, BILLING_TIERS, "tier", "creating tier checkout");
|
|
99
127
|
const body = checkoutIdentifierBody(identifier, "creating tier checkout");
|
|
100
|
-
return this.client.request(`/billing/v1/tiers/${tier}/checkout`, {
|
|
128
|
+
return this.client.request(`/billing/v1/tiers/${encodeURIComponent(tier)}/checkout`, {
|
|
101
129
|
method: "POST",
|
|
102
130
|
body,
|
|
103
131
|
context: "creating tier checkout",
|