@vxil/config 0.6.0 → 0.7.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/dist/index.d.ts CHANGED
@@ -132,9 +132,15 @@ export interface FunctionTriggerRetry {
132
132
  export type FunctionTrigger = {
133
133
  kind: 'http';
134
134
  path?: string;
135
- } | {
135
+ }
136
+ /** `overlap: 'skip'` (2026-10-01): a due tick fires nothing while the
137
+ * previous tick's run is still open (queued / running / retrying / waiting /
138
+ * delayed) — the slot is counted, never caught up. Default `'allow'`. Every
139
+ * cron envelope carries `scheduled_for`, the slot it was due for. */
140
+ | {
136
141
  kind: 'cron';
137
142
  schedule: string;
143
+ overlap?: 'allow' | 'skip';
138
144
  } | {
139
145
  kind: 'queue';
140
146
  source: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vxil/config",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "Typed vxil.config.ts authoring for the vxil backend platform — defineConfig, feature and cms field definitions (published for @vxil/cli).",
5
5
  "license": "MIT",
6
6
  "homepage": "https://vxil.com",
@@ -22,7 +22,7 @@
22
22
  "src"
23
23
  ],
24
24
  "dependencies": {
25
- "@vxil/feature-configs": "0.6.0"
25
+ "@vxil/feature-configs": "0.7.0"
26
26
  },
27
27
  "publishConfig": {
28
28
  "access": "public"
package/src/index.ts CHANGED
@@ -6,7 +6,7 @@
6
6
  // types); the control plane never executes this file. This keeps config-as-code
7
7
  // §7.3-consistent — config is DATA; the only tenant CODE that crosses into vxil
8
8
  // is (a) the Lane-A hook expressions (a closed sandbox) and (b) the functions/
9
- // sources (the paid, opt-in, egress-guarded crossing). Everything here is
9
+ // sources (the opt-in, plan-limited, egress-guarded crossing). Everything here is
10
10
  // declarative. See https://vxil.com/docs/guide/05-typed-sdk-and-cli.
11
11
  import type {
12
12
  NotificationsConfig, JobsConfig, AuthConfig, RateLimitsConfig, FilesConfig,
@@ -156,7 +156,11 @@ export interface FunctionTriggerRetry {
156
156
  * post-signup hook; at-least-once, ~1min fanout latency). */
157
157
  export type FunctionTrigger =
158
158
  | { kind: 'http'; path?: string }
159
- | { kind: 'cron'; schedule: string }
159
+ /** `overlap: 'skip'` (2026-10-01): a due tick fires nothing while the
160
+ * previous tick's run is still open (queued / running / retrying / waiting /
161
+ * delayed) — the slot is counted, never caught up. Default `'allow'`. Every
162
+ * cron envelope carries `scheduled_for`, the slot it was due for. */
163
+ | { kind: 'cron'; schedule: string; overlap?: 'allow' | 'skip' }
160
164
  | { kind: 'queue'; source: string; retry?: FunctionTriggerRetry }
161
165
  /** `webhook`: the function is woken by a webhook_subscription fan-out whose
162
166
  * target_url is `<edge>/v1/internal/fn/trigger/<name>?tenant=<id>`. That