@supacloud/compiler 0.47.3 → 0.49.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.
@@ -1 +1 @@
1
- export declare const MIGRATION_APP_VERSION = "0.28.3";
1
+ export declare const MIGRATION_APP_VERSION = "0.30.0";
@@ -44,8 +44,10 @@ export interface MigrationAssessmentResult {
44
44
  sha256?: string;
45
45
  version?: number;
46
46
  commands?: number;
47
+ jobs?: number;
47
48
  routes?: number;
48
49
  permissions?: number;
50
+ features?: number;
49
51
  };
50
52
  openApi?: {
51
53
  baselinePath: string;
@@ -1 +1 @@
1
- export declare const MIGRATION_ELYSIA_VERSION = "0.33.5";
1
+ export declare const MIGRATION_ELYSIA_VERSION = "0.35.0";
package/dist/types.d.ts CHANGED
@@ -201,6 +201,10 @@ export interface EffectRouteNode {
201
201
  timeoutMs?: number;
202
202
  }
203
203
  export interface RouteNode {
204
+ /** Transport-level idempotency contract, independent of route command binding. */
205
+ idempotency?: "required" | "none";
206
+ /** Explicit query cache tags exposed to generated clients. */
207
+ tags?: string[];
204
208
  parse?: "none";
205
209
  allowDeleteBody?: true;
206
210
  contract?: {
@@ -288,12 +292,14 @@ export interface ControllerNode {
288
292
  }
289
293
  export interface CommandNode {
290
294
  rpc?: string;
295
+ branches?: CommandBranchNode[];
291
296
  className: string;
292
297
  name: string;
293
298
  permission?: string;
294
299
  transaction: "required" | "none";
295
300
  audit?: string;
296
301
  idempotency: "required" | "none";
302
+ tenantScope?: "required" | "none";
297
303
  /** Automatically registered without manual module declaration. */
298
304
  standalone?: boolean;
299
305
  /** Infrastructure resources this command uses, with the declared operations. */
@@ -301,6 +307,14 @@ export interface CommandNode {
301
307
  /** Explicit aspects applied around this command. */
302
308
  aspects?: AspectRefNode[];
303
309
  }
310
+ export interface CommandBranchNode {
311
+ when: string;
312
+ rpc: string;
313
+ transaction: "required" | "none";
314
+ audit?: string;
315
+ idempotency: "required" | "none";
316
+ boundary?: "database" | "external";
317
+ }
304
318
  export interface JobNode {
305
319
  className: string;
306
320
  name: string;
@@ -322,6 +336,7 @@ export interface JobNode {
322
336
  maxAttempts?: number;
323
337
  /** Adapter-owned idempotency requirement. */
324
338
  idempotency?: JobIdempotency;
339
+ tenantScope?: "required" | "none";
325
340
  /** Infrastructure resources this job uses, with the declared operations. */
326
341
  uses?: InfraResourceUseRef[];
327
342
  aspects?: AspectRefNode[];
@@ -329,6 +344,7 @@ export interface JobNode {
329
344
  export interface QueryNode {
330
345
  className: string;
331
346
  name: string;
347
+ tenantScope?: "required" | "none";
332
348
  }
333
349
  export interface FeatureTransitionNode {
334
350
  name: string;
@@ -337,13 +353,29 @@ export interface FeatureTransitionNode {
337
353
  permission?: string;
338
354
  command?: string;
339
355
  route?: string;
356
+ routeBinding?: "command" | "controller";
340
357
  transaction?: "required" | "none";
341
358
  idempotency?: "required" | "none";
342
359
  audit?: string;
360
+ /** Job that continues the transition after the durable write is committed. */
361
+ job?: string;
362
+ /** Explicit query tags invalidated after the transition succeeds. */
363
+ invalidateTags?: string[];
364
+ persistence?: FeaturePersistenceNode;
365
+ }
366
+ export interface FeaturePersistenceNode {
367
+ boundary: "database" | "external";
368
+ optimisticLock: "required" | "none";
369
+ versionField?: string;
370
+ tenantField?: string;
371
+ stateField?: string;
372
+ receipt: "required" | "none";
373
+ reconciliation: "required" | "none";
343
374
  }
344
375
  export interface FeatureSpecNode {
345
376
  name: string;
346
377
  states: string[];
378
+ tenantField?: string;
347
379
  transitions: FeatureTransitionNode[];
348
380
  file?: string;
349
381
  line?: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@supacloud/compiler",
3
- "version": "0.47.3",
3
+ "version": "0.49.0",
4
4
  "description": "Static compiler for @supacloud/app metadata: builds the application graph from AST, validates it, and generates reflection-free factory code",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -57,8 +57,8 @@
57
57
  "directory": "packages/compiler"
58
58
  },
59
59
  "dependencies": {
60
- "@supacloud/db": "0.18.4",
61
- "@supacloud/delivery": "0.19.4",
60
+ "@supacloud/db": "0.20.0",
61
+ "@supacloud/delivery": "0.21.0",
62
62
  "typebox": "1.3.37",
63
63
  "@graphql-codegen/core": "^6.2.2",
64
64
  "@graphql-codegen/typed-document-node": "^7.2.0",
@@ -68,7 +68,7 @@
68
68
  "graphql": "^16"
69
69
  },
70
70
  "overrides": {
71
- "@supacloud/contracts": "0.11.5",
71
+ "@supacloud/contracts": "0.13.0",
72
72
  "@graphql-tools/utils": "^12.0.4",
73
73
  "@whatwg-node/promise-helpers": "2.0.0"
74
74
  },