@almadar/core 10.97.0 → 10.100.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.
Files changed (101) hide show
  1. package/README.md +25 -0
  2. package/dist/builders.d.ts +5 -4
  3. package/dist/builders.js +62 -34
  4. package/dist/builders.js.map +1 -1
  5. package/dist/bus-D69s_77B.d.ts +588 -0
  6. package/dist/domain-Ds_7wZIL.d.ts +16213 -0
  7. package/dist/{effect-Bw8T4qh5.d.ts → effect-Hm_QDaSI.d.ts} +65 -4
  8. package/dist/{entityAccess-DfoXs9mc.d.ts → entityAccess-DdcKps16.d.ts} +3 -3
  9. package/dist/{expression-WfTp2arD.d.ts → expression-DRwzVnMu.d.ts} +5 -1
  10. package/dist/factory/index.d.ts +5 -5
  11. package/dist/factory/index.js +36 -1
  12. package/dist/factory/index.js.map +1 -1
  13. package/dist/factory-runtime/index.d.ts +5 -4
  14. package/dist/factory-runtime/index.js +189 -34
  15. package/dist/factory-runtime/index.js.map +1 -1
  16. package/dist/fixtures.d.ts +45 -0
  17. package/dist/fixtures.js +704 -0
  18. package/dist/fixtures.js.map +1 -0
  19. package/dist/{index-H0bOi9oP.d.ts → index-DPdJPQZe.d.ts} +8 -375
  20. package/dist/index.d.ts +19 -15
  21. package/dist/index.js +9112 -45
  22. package/dist/index.js.map +1 -1
  23. package/dist/mock/index.d.ts +6 -5
  24. package/dist/mock/index.js +14 -0
  25. package/dist/mock/index.js.map +1 -1
  26. package/dist/patterns/component-mapping.json +1 -1
  27. package/dist/patterns/event-contracts.json +1 -1
  28. package/dist/patterns/index.d.ts +44 -9
  29. package/dist/patterns/index.js +29 -5
  30. package/dist/patterns/index.js.map +1 -1
  31. package/dist/patterns/patterns-registry.json +15 -2
  32. package/dist/patterns/registry.json +15 -2
  33. package/dist/{schema-DPpES4qj.d.ts → schema-TqLV2wlK.d.ts} +411 -21713
  34. package/dist/state-machine/index.d.ts +1 -1
  35. package/dist/themes/index.d.ts +19 -0
  36. package/dist/themes/index.js +9251 -0
  37. package/dist/themes/index.js.map +1 -0
  38. package/dist/{trait-DXXRrRMP.d.ts → trait-YlNXc4H3.d.ts} +62 -26
  39. package/dist/types/index.d.ts +8 -6
  40. package/dist/types/index.js +236 -41
  41. package/dist/types/index.js.map +1 -1
  42. package/dist/{types-BMaTUGyk.d.ts → types-Ug92oza4.d.ts} +2 -2
  43. package/fixtures/events-wire/cascade-emitted-events/request.json +9 -0
  44. package/fixtures/events-wire/cascade-emitted-events/response.json +30 -0
  45. package/fixtures/events-wire/client-effects-by-trait/request.json +4 -0
  46. package/fixtures/events-wire/client-effects-by-trait/response.json +52 -0
  47. package/fixtures/events-wire/effect-results/request.json +9 -0
  48. package/fixtures/events-wire/effect-results/response.json +42 -0
  49. package/fixtures/events-wire/effect-results-every-kind/request.json +9 -0
  50. package/fixtures/events-wire/effect-results-every-kind/response.json +70 -0
  51. package/fixtures/events-wire/guard-rejected/request.json +6 -0
  52. package/fixtures/events-wire/guard-rejected/response.json +11 -0
  53. package/fixtures/events-wire/live-push/live-push.json +12 -0
  54. package/fixtures/events-wire/live-push/request.json +9 -0
  55. package/fixtures/events-wire/live-push/response.json +33 -0
  56. package/fixtures/events-wire/navigate-1/request.json +5 -0
  57. package/fixtures/events-wire/navigate-1/response.json +16 -0
  58. package/fixtures/events-wire/navigate-2/request.json +8 -0
  59. package/fixtures/events-wire/navigate-2/response.json +19 -0
  60. package/fixtures/events-wire/navigate-3/request.json +8 -0
  61. package/fixtures/events-wire/navigate-3/response.json +22 -0
  62. package/fixtures/events-wire/navigate-back/request.json +5 -0
  63. package/fixtures/events-wire/navigate-back/response.json +15 -0
  64. package/fixtures/events-wire/render-ui-3/request.json +5 -0
  65. package/fixtures/events-wire/render-ui-3/response.json +20 -0
  66. package/fixtures/events-wire/render-ui-4/request.json +5 -0
  67. package/fixtures/events-wire/render-ui-4/response.json +41 -0
  68. package/fixtures/events-wire/render-ui-5/request.json +9 -0
  69. package/fixtures/events-wire/render-ui-5/response.json +52 -0
  70. package/fixtures/events-wire/render-ui-clear/request.json +5 -0
  71. package/fixtures/events-wire/render-ui-clear/response.json +27 -0
  72. package/fixtures/events-wire/sse-stream/request.json +9 -0
  73. package/fixtures/events-wire/sse-stream/response.json +79 -0
  74. package/fixtures/events-wire/sse-stream/stream.json +131 -0
  75. package/fixtures/events-wire/stateless-traits/request.json +27 -0
  76. package/fixtures/events-wire/stateless-traits/response.json +15 -0
  77. package/fixtures/theme-tokens/every-key.json +43 -0
  78. package/package.json +18 -3
  79. package/themes/almadar-website.json +207 -0
  80. package/themes/almadar.json +203 -0
  81. package/themes/atelier.json +459 -0
  82. package/themes/bloomberg-dense.json +459 -0
  83. package/themes/clay.json +445 -0
  84. package/themes/comic.json +457 -0
  85. package/themes/corporate.json +445 -0
  86. package/themes/game-adventure.json +229 -0
  87. package/themes/game-rpg.json +230 -0
  88. package/themes/game-sci-fi.json +229 -0
  89. package/themes/game-ui-pack.json +230 -0
  90. package/themes/gazette.json +445 -0
  91. package/themes/glass.json +445 -0
  92. package/themes/kiosk.json +441 -0
  93. package/themes/linear-clean.json +459 -0
  94. package/themes/minimalist.json +445 -0
  95. package/themes/neon.json +445 -0
  96. package/themes/notion-editorial.json +459 -0
  97. package/themes/prism.json +203 -0
  98. package/themes/retro.json +445 -0
  99. package/themes/terminal.json +457 -0
  100. package/themes/trait-wars.json +493 -0
  101. package/themes/wireframe.json +445 -0
@@ -1,10 +1,11 @@
1
- import { O as OrbitalSchema, a as OrbitalDefinition } from '../schema-DPpES4qj.js';
2
- import { g as TraitConfigValue, i as CallSiteConfig, j as CallSiteConfigEntry, h as Trait } from '../trait-DXXRrRMP.js';
3
- import { E as EntityField, a as EntityPersistence } from '../effect-Bw8T4qh5.js';
1
+ import { O as OrbitalSchema, a as OrbitalDefinition } from '../schema-TqLV2wlK.js';
2
+ import { g as TraitConfigValue, i as CallSiteConfig, j as CallSiteConfigEntry, h as Trait } from '../trait-YlNXc4H3.js';
3
+ import { E as EntityField, a as EntityPersistence } from '../effect-Hm_QDaSI.js';
4
4
  import { MakeTraitRefOpts } from '../builders.js';
5
5
  import '../json-D8gmyK3l.js';
6
- import '../expression-WfTp2arD.js';
6
+ import '../expression-DRwzVnMu.js';
7
7
  import 'zod';
8
+ import '../domain-Ds_7wZIL.js';
8
9
 
9
10
  /**
10
11
  * Orbital factory manifest types — shared across all packages.
@@ -425,6 +425,19 @@ var SExprSchema = z.lazy(
425
425
  ])
426
426
  );
427
427
  var ExpressionSchema = SExprSchema;
428
+ var EventPayloadValueSchema = z.lazy(
429
+ () => z.union([
430
+ z.string(),
431
+ z.number(),
432
+ z.boolean(),
433
+ z.date(),
434
+ z.null(),
435
+ z.undefined(),
436
+ EventPayloadSchema,
437
+ z.array(EventPayloadValueSchema)
438
+ ])
439
+ );
440
+ var EventPayloadSchema = z.lazy(() => z.record(EventPayloadValueSchema));
428
441
 
429
442
  // src/types/entity.ts
430
443
  var EntityPersistenceSchema = z.enum([
@@ -476,6 +489,7 @@ function persistenceModeAllowsOverrides(persistence) {
476
489
  var FieldValueSchema = z.lazy(
477
490
  () => z.union([z.string(), z.number(), z.boolean(), z.date(), z.null(), z.array(FieldValueSchema), z.record(FieldValueSchema.optional())])
478
491
  );
492
+ var EntityRowSchema = z.object({ id: z.string().optional() }).catchall(FieldValueSchema.optional());
479
493
  var UI_SLOTS = [
480
494
  // App slots
481
495
  "main",
@@ -505,10 +519,30 @@ var UI_SLOTS = [
505
519
  "overlay.pause"
506
520
  ];
507
521
  z.enum(UI_SLOTS);
522
+ var SERVER_REPORTED_EFFECTS = [
523
+ "set",
524
+ "persist",
525
+ "call-service",
526
+ "fetch",
527
+ "fetch-stream",
528
+ "ref",
529
+ "deref",
530
+ "swap!",
531
+ "atomic",
532
+ "emit"
533
+ ];
508
534
  var EffectSchema = z.array(SExprDataSchema).min(1).refine(
509
535
  (arr) => typeof arr[0] === "string",
510
536
  { message: "Effect must be an S-expression with a string operator as first element" }
511
537
  );
538
+ var PatternConfigSchema = z.custom(
539
+ (value) => value === null || typeof value === "object" && value !== null && !Array.isArray(value),
540
+ { message: "Expected a pattern config object or null" }
541
+ );
542
+ var ResolvedPatternPropsSchema = z.custom(
543
+ (value) => typeof value === "object" && value !== null && !Array.isArray(value),
544
+ { message: "Expected a resolved pattern props object" }
545
+ );
512
546
 
513
547
  // src/types/state-machine.ts
514
548
  var StateSchema = z.object({
@@ -902,6 +936,8 @@ var TraitSchema = z.object({
902
936
  ticks: z.array(TraitTickSchema).optional(),
903
937
  emits: z.array(TraitEventContractSchema).optional(),
904
938
  listens: z.array(TraitEventListenerSchema).optional(),
939
+ /** Call-site rename map (`events { ACTION: CONFIRM_VOID }`) — mirrors `Trait.events`. */
940
+ events: z.record(z.string().min(1), z.string().min(1)).optional(),
905
941
  ui: TraitUIBindingSchema.optional(),
906
942
  config: DeclaredTraitConfigSchema.optional(),
907
943
  sourceBehavior: SourceBehaviorMetadataSchema.optional(),
@@ -1220,40 +1256,44 @@ var GeometryTokensSchema = z.object({
1220
1256
  borderStandard: z.string().optional(),
1221
1257
  borderHeavy: z.string().optional()
1222
1258
  });
1223
- var ColorTokensSchema = z.object({
1224
- primary: z.string().optional(),
1225
- primaryHover: z.string().optional(),
1226
- primaryForeground: z.string().optional(),
1227
- secondary: z.string().optional(),
1228
- secondaryHover: z.string().optional(),
1229
- secondaryForeground: z.string().optional(),
1230
- accent: z.string().optional(),
1231
- accentForeground: z.string().optional(),
1232
- muted: z.string().optional(),
1233
- mutedForeground: z.string().optional(),
1234
- background: z.string().optional(),
1235
- foreground: z.string().optional(),
1236
- card: z.string().optional(),
1237
- cardForeground: z.string().optional(),
1238
- surface: z.string().optional(),
1239
- border: z.string().optional(),
1240
- input: z.string().optional(),
1241
- ring: z.string().optional(),
1242
- error: z.string().optional(),
1243
- errorForeground: z.string().optional(),
1244
- success: z.string().optional(),
1245
- successForeground: z.string().optional(),
1246
- warning: z.string().optional(),
1247
- warningForeground: z.string().optional(),
1248
- info: z.string().optional(),
1249
- infoForeground: z.string().optional(),
1250
- tableHeader: z.string().optional(),
1251
- tableBorder: z.string().optional(),
1252
- tableRowHover: z.string().optional(),
1253
- surfaceHover: z.string().optional(),
1254
- borderHover: z.string().optional(),
1255
- placeholder: z.string().optional()
1256
- });
1259
+ var COLOR_TOKEN_KEY_LIST = [
1260
+ "primary",
1261
+ "primaryHover",
1262
+ "primaryForeground",
1263
+ "secondary",
1264
+ "secondaryHover",
1265
+ "secondaryForeground",
1266
+ "accent",
1267
+ "accentForeground",
1268
+ "muted",
1269
+ "mutedForeground",
1270
+ "background",
1271
+ "foreground",
1272
+ "card",
1273
+ "cardForeground",
1274
+ "surface",
1275
+ "border",
1276
+ "input",
1277
+ "ring",
1278
+ "error",
1279
+ "errorForeground",
1280
+ "success",
1281
+ "successForeground",
1282
+ "warning",
1283
+ "warningForeground",
1284
+ "info",
1285
+ "infoForeground",
1286
+ "tableHeader",
1287
+ "tableBorder",
1288
+ "tableRowHover",
1289
+ "surfaceHover",
1290
+ "borderHover",
1291
+ "placeholder"
1292
+ ];
1293
+ var COLOR_TOKEN_KEYS = COLOR_TOKEN_KEY_LIST;
1294
+ var ColorTokensSchema = z.object(
1295
+ Object.fromEntries(COLOR_TOKEN_KEYS.map((key) => [key, z.string().optional()]))
1296
+ );
1257
1297
  var IllustrationStyleSchema = z.enum([
1258
1298
  "minimal",
1259
1299
  "illustrated",
@@ -1641,6 +1681,15 @@ var BINDING_ROOTS = [
1641
1681
  new Set(BINDING_ROOTS.filter((r) => r !== "other"));
1642
1682
  var TRAIT_REF_PATTERN = /^@trait\.[A-Z][a-zA-Z0-9]*$/;
1643
1683
  z.string().regex(TRAIT_REF_PATTERN, "expected `@trait.<TraitName>` reference");
1684
+ var RawUserClaimsSchema = z.object({
1685
+ id: z.string().optional(),
1686
+ uid: z.string().optional(),
1687
+ email: z.string().nullable().optional(),
1688
+ name: z.string().optional(),
1689
+ displayName: z.string().nullable().optional(),
1690
+ role: z.string().optional(),
1691
+ permissions: z.array(z.string()).optional()
1692
+ }).catchall(FieldValueSchema.optional());
1644
1693
  z.object({
1645
1694
  createFlow: z.enum(["modal", "page", "inline", "none"]),
1646
1695
  editFlow: z.enum(["modal", "page", "inline", "none"]),
@@ -1651,6 +1700,112 @@ z.object({
1651
1700
  realtime: z.boolean().optional()
1652
1701
  });
1653
1702
  z.string();
1703
+ var ServerBatchSummarySchema = z.object({
1704
+ operations: z.array(EntityRowSchema),
1705
+ completedCount: z.number(),
1706
+ totalCount: z.number()
1707
+ });
1708
+ var ServerEffectResultSchema = z.object({
1709
+ effect: z.union([z.enum(SERVER_REPORTED_EFFECTS), z.literal("substrate")]),
1710
+ action: z.string().optional(),
1711
+ entityType: z.string().optional(),
1712
+ name: z.custom((v) => typeof v === "string" && /^[^/]+\/.+$/.test(v)).optional(),
1713
+ data: z.union([EntityRowSchema, ServerBatchSummarySchema, EventPayloadValueSchema]).optional(),
1714
+ success: z.boolean(),
1715
+ denied: z.literal(true).optional(),
1716
+ error: z.string().optional(),
1717
+ code: z.enum(["not-found", "no-row-key"]).optional()
1718
+ });
1719
+
1720
+ // src/types/bus.ts
1721
+ var BusEventSourceSchema = z.object({
1722
+ orbital: z.string().optional(),
1723
+ orbitalId: OrbitalIdSchema.optional(),
1724
+ trait: z.string().optional(),
1725
+ traitId: TraitIdSchema.optional(),
1726
+ eventId: EventIdSchema.optional(),
1727
+ transition: z.string().optional(),
1728
+ tick: z.string().optional(),
1729
+ fromBridge: z.boolean().optional(),
1730
+ dispatched: z.boolean().optional(),
1731
+ originClientId: z.string().optional()
1732
+ });
1733
+ var EmittedEventSchema = z.object({
1734
+ event: z.string(),
1735
+ payload: EventPayloadSchema.optional(),
1736
+ source: BusEventSourceSchema.optional()
1737
+ });
1738
+ var ClientRenderUITupleSchema = z.union([
1739
+ z.tuple([z.literal("render-ui"), z.string(), PatternConfigSchema]),
1740
+ z.tuple([z.literal("render-ui"), z.string(), PatternConfigSchema, ResolvedPatternPropsSchema]),
1741
+ z.tuple([
1742
+ z.literal("render-ui"),
1743
+ z.string(),
1744
+ PatternConfigSchema,
1745
+ ResolvedPatternPropsSchema.optional(),
1746
+ z.number().optional()
1747
+ ])
1748
+ ]);
1749
+ var ClientNavigateTupleSchema = z.union([
1750
+ z.tuple([z.literal("navigate"), z.string()]),
1751
+ z.tuple([z.literal("navigate"), z.string(), z.record(z.string()).optional()]),
1752
+ z.tuple([
1753
+ z.literal("navigate"),
1754
+ z.string(),
1755
+ z.record(z.string()).optional(),
1756
+ z.object({ crumb: z.string().optional() })
1757
+ ])
1758
+ ]);
1759
+ var ClientNavigateBackTupleSchema = z.tuple([z.literal("navigate-back")]);
1760
+ var ClientEffectTupleSchema = z.union([
1761
+ ClientRenderUITupleSchema,
1762
+ ClientNavigateTupleSchema,
1763
+ ClientNavigateBackTupleSchema
1764
+ ]);
1765
+ z.object({
1766
+ event: z.string(),
1767
+ eventId: EventIdSchema.optional(),
1768
+ payload: EventPayloadSchema.optional(),
1769
+ entityId: z.string().optional(),
1770
+ targetTrait: z.string().optional(),
1771
+ user: RawUserClaimsSchema.optional(),
1772
+ clientId: z.string().optional(),
1773
+ tick: z.string().optional(),
1774
+ sourceTrait: z.string().optional(),
1775
+ traits: z.array(z.object({ trait: z.string(), from: z.string() })).optional(),
1776
+ entityByTrait: z.record(EntityRowSchema).optional(),
1777
+ behavior: z.string().optional()
1778
+ });
1779
+ z.object({
1780
+ success: z.boolean(),
1781
+ transitioned: z.boolean(),
1782
+ states: z.record(z.string()),
1783
+ emittedEvents: z.array(EmittedEventSchema),
1784
+ data: z.record(z.array(EntityRowSchema)).optional(),
1785
+ entityByTrait: z.record(EntityRowSchema).optional(),
1786
+ clientEffects: z.array(ClientEffectTupleSchema).optional(),
1787
+ clientEffectsByTrait: z.array(z.object({ traitName: z.string(), effect: ClientEffectTupleSchema })).optional(),
1788
+ effectResults: z.array(ServerEffectResultSchema).optional(),
1789
+ guardFailed: z.string().optional(),
1790
+ rejections: z.array(
1791
+ z.object({
1792
+ code: z.enum(["no-matching-transition", "guard-rejected", "no-dispatchable-traits"]),
1793
+ trait: z.string().optional(),
1794
+ from: z.string().optional(),
1795
+ event: z.string().optional(),
1796
+ statesDeclaringEvent: z.array(z.string()).optional(),
1797
+ transition: z.string().optional(),
1798
+ guard: z.unknown().optional()
1799
+ })
1800
+ ).optional(),
1801
+ error: z.string().optional()
1802
+ });
1803
+ z.object({
1804
+ event: z.string(),
1805
+ payload: EventPayloadSchema.optional(),
1806
+ source: BusEventSourceSchema,
1807
+ originClientId: z.string().optional()
1808
+ });
1654
1809
 
1655
1810
  // src/factory-runtime/extract-manifest.ts
1656
1811
  var STATIC_PARAM_FIELDS = [