@vxil/cli 0.26.1 → 0.26.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -23,7 +23,8 @@ export default defineConfig({
23
23
  features: {
24
24
  auth: { enabled: true },
25
25
  cms: { enabled: true, draftPublish: true },
26
- notifications: { enabled: true, provider: 'resend', fromEmail: 'noreply@example.com' },
26
+ // provider 'resend' needs its key: `vxil secrets set RESEND_API_KEY` (or use provider: 'mock' to try it)
27
+ notifications: { enabled: true, provider: 'resend', resendApiKeyRef: 'secret:RESEND_API_KEY', fromEmail: 'noreply@example.com' },
27
28
  },
28
29
  // (b) CMS schema-as-code — collections + fields, reconciled by `vxil push`
29
30
  cms: {
@@ -334,6 +334,7 @@ export declare const AuthConfigSchema: import("@sinclair/typebox").TObject<{
334
334
  breachedPasswords: import("@sinclair/typebox").TBoolean;
335
335
  captchaSecretRef: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
336
336
  captchaOnReset: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
337
+ emailChangeStepUp: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
337
338
  allowedRedirectOrigins: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
338
339
  inviteOnly: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
339
340
  verifyLinkEvicts: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
package/dist/vxil-main.js CHANGED
@@ -4079,6 +4079,12 @@ var AuthConfigSchema = Type.Object({
4079
4079
  // Optional, NO default (absent = false): every existing manifest folds
4080
4080
  // byte-identically and reset stays ungated. Inert without captchaSecretRef.
4081
4081
  captchaOnReset: Type.Optional(Type.Boolean()),
4082
+ // AUTH-EMAIL-CHANGE-GUARD (2026-10-13): when true, POST /email/change/request
4083
+ // answers 403 step_up_required unless THIS session passed a step-up in the
4084
+ // last 300 s (the password-change mechanism: auth.sessions.elevated_at).
4085
+ // Optional, NO default (absent = false) — existing manifests fold unchanged.
4086
+ // Requires otp.enabled (cross-field rule in validateFeatureConfig).
4087
+ emailChangeStepUp: Type.Optional(Type.Boolean()),
4082
4088
  allowedRedirectOrigins: Type.Optional(Type.Array(
4083
4089
  Type.String({ minLength: 8, maxLength: 253, pattern: REDIRECT_ORIGIN_PATTERN }),
4084
4090
  { maxItems: 32 }
@@ -5536,9 +5542,9 @@ function lowerAllTriggerBindings(def, name) {
5536
5542
  return bindings;
5537
5543
  }
5538
5544
  var CONFIG_FILENAMES = ["vxil.config.ts", "vxil.config.mjs", "vxil.config.js"];
5539
- var VXIL_CONFIG_PKG_VERSION = "0.19.0";
5540
- var VXIL_SDK_PKG_VERSION = "0.26.0";
5541
- var VXIL_CLI_PKG_VERSION = "0.26.1";
5545
+ var VXIL_CONFIG_PKG_VERSION = "0.19.1";
5546
+ var VXIL_SDK_PKG_VERSION = "0.26.2";
5547
+ var VXIL_CLI_PKG_VERSION = "0.26.3";
5542
5548
  function ensureScaffoldPackageJson(cwd, opts = {}) {
5543
5549
  const file = resolve(cwd, "package.json");
5544
5550
  const wanted = {
@@ -14949,7 +14955,7 @@ var TOOLS = [
14949
14955
  {
14950
14956
  name: "payments_list_webhook_events",
14951
14957
  feature: "payments",
14952
- description: "List provider webhook deliveries from the event log, newest-first: outcome (received|processed|error|sig_failed|parse_failed|reprocessed|ignored|unowned|rejected_environment), the provider-reported environment (production|sandbox), signature status, error, and timestamps per delivery. Use it to diagnose billing sync issues (e.g. an unmapped price or product \u2192 outcome error, a misconfigured webhook secret producing sig_failed rows, sandbox deliveries landing as rejected_environment). An unmapped one-off product lands `error` unless you set ledger.unmappedProduct:'ignore', which lands it `ignored` instead. Read-only \u2014 needs payments:read. Server-side key only (403 server_only on a thin-client/end-user key) \u2014 the log is tenant-wide and carries provider payloads. Payloads are detail-only (console surface).",
14958
+ description: "List provider webhook deliveries from the event log, newest-first: outcome (received|processed|error|sig_failed|parse_failed|reprocessed|ignored|unowned|rejected_environment), the provider-reported environment (production|sandbox), signature status, error, and timestamps per delivery. Use it to diagnose billing sync issues (e.g. an unmapped price or product, or a RevenueCat entitlement id that is not a ledger.tierMap key (with no ledger.priceMap hit) \u2192 outcome error, a misconfigured webhook secret producing sig_failed rows, sandbox deliveries landing as rejected_environment). An unmapped one-off product lands `error` unless you set ledger.unmappedProduct:'ignore', which lands it `ignored` instead. Read-only \u2014 needs payments:read. Server-side key only (403 server_only on a thin-client/end-user key) \u2014 the log is tenant-wide and carries provider payloads. Payloads are detail-only (console surface).",
14953
14959
  inputSchema: {
14954
14960
  type: "object",
14955
14961
  properties: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vxil/cli",
3
- "version": "0.26.1",
3
+ "version": "0.26.3",
4
4
  "private": false,
5
5
  "description": "The vxil CLI — init, quickstart, push, gen, secrets, keys, migrate, doctor, diff, functions, payments; installs the `vxil` command (npm i -g @vxil/cli).",
6
6
  "license": "MIT",
@@ -45,8 +45,8 @@
45
45
  }
46
46
  },
47
47
  "devDependencies": {
48
- "@vxil/config": "0.19.0",
49
- "@vxil/feature-configs": "0.17.0",
48
+ "@vxil/config": "0.19.1",
49
+ "@vxil/feature-configs": "0.17.1",
50
50
  "@vxil/runtime": "0.0.1",
51
51
  "@vxil/types": "0.0.1",
52
52
  "miniflare": "^4.20260730.0"