@inf-monkeys-tech/monkeys 1.0.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 (188) hide show
  1. package/README.md +38 -0
  2. package/lib/contracts/artifact.d.ts +112 -0
  3. package/lib/contracts/artifact.d.ts.map +1 -0
  4. package/lib/contracts/artifact.js +60 -0
  5. package/lib/contracts/artifact.js.map +1 -0
  6. package/lib/contracts/capability.d.ts +347 -0
  7. package/lib/contracts/capability.d.ts.map +1 -0
  8. package/lib/contracts/capability.js +135 -0
  9. package/lib/contracts/capability.js.map +1 -0
  10. package/lib/contracts/common.d.ts +32 -0
  11. package/lib/contracts/common.d.ts.map +1 -0
  12. package/lib/contracts/common.js +46 -0
  13. package/lib/contracts/common.js.map +1 -0
  14. package/lib/contracts/context.d.ts +213 -0
  15. package/lib/contracts/context.d.ts.map +1 -0
  16. package/lib/contracts/context.js +96 -0
  17. package/lib/contracts/context.js.map +1 -0
  18. package/lib/contracts/continuity.d.ts +142 -0
  19. package/lib/contracts/continuity.d.ts.map +1 -0
  20. package/lib/contracts/continuity.js +66 -0
  21. package/lib/contracts/continuity.js.map +1 -0
  22. package/lib/contracts/data.d.ts +135 -0
  23. package/lib/contracts/data.d.ts.map +1 -0
  24. package/lib/contracts/data.js +85 -0
  25. package/lib/contracts/data.js.map +1 -0
  26. package/lib/contracts/dtcg-format.schema.json +1759 -0
  27. package/lib/contracts/index.d.ts +14 -0
  28. package/lib/contracts/index.d.ts.map +1 -0
  29. package/lib/contracts/index.js +30 -0
  30. package/lib/contracts/index.js.map +1 -0
  31. package/lib/contracts/page.d.ts +482 -0
  32. package/lib/contracts/page.d.ts.map +1 -0
  33. package/lib/contracts/page.js +307 -0
  34. package/lib/contracts/page.js.map +1 -0
  35. package/lib/contracts/render.d.ts +1032 -0
  36. package/lib/contracts/render.d.ts.map +1 -0
  37. package/lib/contracts/render.js +386 -0
  38. package/lib/contracts/render.js.map +1 -0
  39. package/lib/contracts/semantic.d.ts +477 -0
  40. package/lib/contracts/semantic.d.ts.map +1 -0
  41. package/lib/contracts/semantic.js +111 -0
  42. package/lib/contracts/semantic.js.map +1 -0
  43. package/lib/contracts/tenant.d.ts +2495 -0
  44. package/lib/contracts/tenant.d.ts.map +1 -0
  45. package/lib/contracts/tenant.js +573 -0
  46. package/lib/contracts/tenant.js.map +1 -0
  47. package/lib/contracts/theme.d.ts +30 -0
  48. package/lib/contracts/theme.d.ts.map +1 -0
  49. package/lib/contracts/theme.js +55 -0
  50. package/lib/contracts/theme.js.map +1 -0
  51. package/lib/contracts/trend.d.ts +577 -0
  52. package/lib/contracts/trend.d.ts.map +1 -0
  53. package/lib/contracts/trend.js +276 -0
  54. package/lib/contracts/trend.js.map +1 -0
  55. package/lib/contracts/workflow-definition.d.ts +661 -0
  56. package/lib/contracts/workflow-definition.d.ts.map +1 -0
  57. package/lib/contracts/workflow-definition.js +337 -0
  58. package/lib/contracts/workflow-definition.js.map +1 -0
  59. package/lib/index.d.ts +7 -0
  60. package/lib/index.d.ts.map +1 -0
  61. package/lib/index.js +34 -0
  62. package/lib/index.js.map +1 -0
  63. package/lib/json-schema/agent-runtime-event.schema.json +104 -0
  64. package/lib/json-schema/application-handoff.schema.json +377 -0
  65. package/lib/json-schema/application-run.schema.json +302 -0
  66. package/lib/json-schema/artifact-manifest.schema.json +375 -0
  67. package/lib/json-schema/body-relation-record.schema.json +177 -0
  68. package/lib/json-schema/brand-body.schema.json +140 -0
  69. package/lib/json-schema/brand-genetics-profile.schema.json +169 -0
  70. package/lib/json-schema/capability-manifest.schema.json +412 -0
  71. package/lib/json-schema/capability-registry.schema.json +474 -0
  72. package/lib/json-schema/change-impact-graph.schema.json +274 -0
  73. package/lib/json-schema/completion-event.schema.json +321 -0
  74. package/lib/json-schema/completion-header.schema.json +276 -0
  75. package/lib/json-schema/concept-definition.schema.json +101 -0
  76. package/lib/json-schema/conductor-workflow-definition.schema.json +404 -0
  77. package/lib/json-schema/data-continuity-envelope.schema.json +269 -0
  78. package/lib/json-schema/domain-command-definition.schema.json +121 -0
  79. package/lib/json-schema/domain-command.schema.json +204 -0
  80. package/lib/json-schema/domain-event.schema.json +161 -0
  81. package/lib/json-schema/execution-link.schema.json +190 -0
  82. package/lib/json-schema/expiring-access-grant.schema.json +127 -0
  83. package/lib/json-schema/hotword-body.schema.json +186 -0
  84. package/lib/json-schema/index.json +56 -0
  85. package/lib/json-schema/lineage-record.schema.json +370 -0
  86. package/lib/json-schema/ontology-definition.schema.json +91 -0
  87. package/lib/json-schema/output-record.schema.json +157 -0
  88. package/lib/json-schema/overlay-node.schema.json +892 -0
  89. package/lib/json-schema/page-definition.schema.json +527 -0
  90. package/lib/json-schema/page-runtime-descriptor.schema.json +720 -0
  91. package/lib/json-schema/page-runtime-projection.schema.json +464 -0
  92. package/lib/json-schema/product-body.schema.json +178 -0
  93. package/lib/json-schema/product-declaration.schema.json +1410 -0
  94. package/lib/json-schema/projection-spec.schema.json +151 -0
  95. package/lib/json-schema/radar-action-record.schema.json +144 -0
  96. package/lib/json-schema/radar-analysis-run.schema.json +424 -0
  97. package/lib/json-schema/radar-opportunity-matrix.schema.json +155 -0
  98. package/lib/json-schema/radar-panorama.schema.json +235 -0
  99. package/lib/json-schema/radar-query-body.schema.json +101 -0
  100. package/lib/json-schema/radar-score-model-body.schema.json +88 -0
  101. package/lib/json-schema/radar-score-projection.schema.json +184 -0
  102. package/lib/json-schema/radar-selection.schema.json +134 -0
  103. package/lib/json-schema/radar-writeback-record.schema.json +124 -0
  104. package/lib/json-schema/render-node.schema.json +776 -0
  105. package/lib/json-schema/render-tree.schema.json +815 -0
  106. package/lib/json-schema/request-scope.schema.json +193 -0
  107. package/lib/json-schema/saved-radar-query.schema.json +123 -0
  108. package/lib/json-schema/tenant-product-config.schema.json +2720 -0
  109. package/lib/json-schema/tenant-runtime-config.schema.json +2654 -0
  110. package/lib/json-schema/theme-tokens.schema.json +1836 -0
  111. package/lib/json-schema/trend-ingest-run.schema.json +73 -0
  112. package/lib/json-schema/trend-metric-snapshot.schema.json +126 -0
  113. package/lib/json-schema/trend-source-record.schema.json +206 -0
  114. package/lib/json-schema/view-provider-descriptor.schema.json +317 -0
  115. package/lib/json-schema/workflow-definition.schema.json +2174 -0
  116. package/lib/runtime/capability-registry.d.ts +28 -0
  117. package/lib/runtime/capability-registry.d.ts.map +1 -0
  118. package/lib/runtime/capability-registry.js +147 -0
  119. package/lib/runtime/capability-registry.js.map +1 -0
  120. package/lib/runtime/declaration-compiler.d.ts +44 -0
  121. package/lib/runtime/declaration-compiler.d.ts.map +1 -0
  122. package/lib/runtime/declaration-compiler.js +323 -0
  123. package/lib/runtime/declaration-compiler.js.map +1 -0
  124. package/lib/runtime/index.d.ts +12 -0
  125. package/lib/runtime/index.d.ts.map +1 -0
  126. package/lib/runtime/index.js +28 -0
  127. package/lib/runtime/index.js.map +1 -0
  128. package/lib/runtime/page-compiler.d.ts +36 -0
  129. package/lib/runtime/page-compiler.d.ts.map +1 -0
  130. package/lib/runtime/page-compiler.js +220 -0
  131. package/lib/runtime/page-compiler.js.map +1 -0
  132. package/lib/runtime/product-runtime.d.ts +37 -0
  133. package/lib/runtime/product-runtime.d.ts.map +1 -0
  134. package/lib/runtime/product-runtime.js +80 -0
  135. package/lib/runtime/product-runtime.js.map +1 -0
  136. package/lib/runtime/render-tree-compiler.d.ts +11 -0
  137. package/lib/runtime/render-tree-compiler.d.ts.map +1 -0
  138. package/lib/runtime/render-tree-compiler.js +85 -0
  139. package/lib/runtime/render-tree-compiler.js.map +1 -0
  140. package/lib/runtime/tenant-config.d.ts +13 -0
  141. package/lib/runtime/tenant-config.d.ts.map +1 -0
  142. package/lib/runtime/tenant-config.js +31 -0
  143. package/lib/runtime/tenant-config.js.map +1 -0
  144. package/lib/runtime/tenant-runtime-bindings.d.ts +21 -0
  145. package/lib/runtime/tenant-runtime-bindings.d.ts.map +1 -0
  146. package/lib/runtime/tenant-runtime-bindings.js +50 -0
  147. package/lib/runtime/tenant-runtime-bindings.js.map +1 -0
  148. package/lib/runtime/theme-tokens.d.ts +2 -0
  149. package/lib/runtime/theme-tokens.d.ts.map +1 -0
  150. package/lib/runtime/theme-tokens.js +13 -0
  151. package/lib/runtime/theme-tokens.js.map +1 -0
  152. package/lib/runtime/view-provider-registry.d.ts +23 -0
  153. package/lib/runtime/view-provider-registry.d.ts.map +1 -0
  154. package/lib/runtime/view-provider-registry.js +150 -0
  155. package/lib/runtime/view-provider-registry.js.map +1 -0
  156. package/lib/runtime/view-render-model.d.ts +28 -0
  157. package/lib/runtime/view-render-model.d.ts.map +1 -0
  158. package/lib/runtime/view-render-model.js +125 -0
  159. package/lib/runtime/view-render-model.js.map +1 -0
  160. package/lib/runtime/workflow-compiler.d.ts +29 -0
  161. package/lib/runtime/workflow-compiler.d.ts.map +1 -0
  162. package/lib/runtime/workflow-compiler.js +100 -0
  163. package/lib/runtime/workflow-compiler.js.map +1 -0
  164. package/lib/schemas/index.d.ts +4461 -0
  165. package/lib/schemas/index.d.ts.map +1 -0
  166. package/lib/schemas/index.js +187 -0
  167. package/lib/schemas/index.js.map +1 -0
  168. package/lib/theme-tokens/core.d.ts +65 -0
  169. package/lib/theme-tokens/core.d.ts.map +1 -0
  170. package/lib/theme-tokens/core.js +490 -0
  171. package/lib/theme-tokens/core.js.map +1 -0
  172. package/lib/types/i18n.d.ts +19 -0
  173. package/lib/types/i18n.d.ts.map +1 -0
  174. package/lib/types/i18n.js +3 -0
  175. package/lib/types/i18n.js.map +1 -0
  176. package/lib/types/index.d.ts +4 -0
  177. package/lib/types/index.d.ts.map +1 -0
  178. package/lib/types/index.js +20 -0
  179. package/lib/types/index.js.map +1 -0
  180. package/lib/types/tool.d.ts +123 -0
  181. package/lib/types/tool.d.ts.map +1 -0
  182. package/lib/types/tool.js +20 -0
  183. package/lib/types/tool.js.map +1 -0
  184. package/lib/types/workflow.d.ts +80 -0
  185. package/lib/types/workflow.d.ts.map +1 -0
  186. package/lib/types/workflow.js +23 -0
  187. package/lib/types/workflow.js.map +1 -0
  188. package/package.json +58 -0
@@ -0,0 +1,307 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PageRuntimeProjectionSchema = exports.PageRendererProjectionSchema = exports.PageGuardProjectionSchema = exports.PageNavigationProjectionSchema = exports.PageRouteProjectionSchema = exports.PageRuntimeDescriptorSchema = exports.PageDefinitionSchema = exports.PageRoutePathSchema = exports.PageVisibilitySchema = exports.PageTypeSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const common_1 = require("./common");
6
+ exports.PageTypeSchema = zod_1.z.enum([
7
+ 'page',
8
+ 'workspace',
9
+ 'view',
10
+ 'record',
11
+ 'action',
12
+ 'overlay',
13
+ 'agent',
14
+ 'process',
15
+ 'log',
16
+ 'chat',
17
+ 'preview',
18
+ 'api',
19
+ 'enhanced',
20
+ 'agent-chat',
21
+ 'agent-config',
22
+ 'agent-log',
23
+ 'design-board',
24
+ 'global-design-board',
25
+ 'iframe',
26
+ ]);
27
+ exports.PageVisibilitySchema = zod_1.z
28
+ .object({
29
+ authenticated: zod_1.z.boolean().default(true),
30
+ permissionAllOf: zod_1.z.array(common_1.ContractIdentifierSchema).default([]),
31
+ permissionAnyOf: zod_1.z.array(common_1.ContractIdentifierSchema).default([]),
32
+ featureFlags: zod_1.z.array(common_1.ContractIdentifierSchema).default([]),
33
+ productContexts: zod_1.z.array(zod_1.z.enum(['studio', 'kernel', 'compute'])).min(1),
34
+ })
35
+ .strict();
36
+ exports.PageRoutePathSchema = zod_1.z
37
+ .string()
38
+ .trim()
39
+ .regex(/^\/(?!\/)/, 'Expected an application-relative route path.');
40
+ const requireCapabilityReference = (reference, path, context) => {
41
+ if (reference.kind !== 'capability') {
42
+ context.addIssue({
43
+ code: 'custom',
44
+ path: [...path, 'kind'],
45
+ message: 'Page capability references must use kind capability.',
46
+ });
47
+ }
48
+ if (reference.version === undefined) {
49
+ context.addIssue({
50
+ code: 'custom',
51
+ path: [...path, 'version'],
52
+ message: 'Page capability references must pin an active capability version.',
53
+ });
54
+ }
55
+ if (reference.ownerRepo === undefined) {
56
+ context.addIssue({
57
+ code: 'custom',
58
+ path: [...path, 'ownerRepo'],
59
+ message: 'Page capability references must declare their owner repository.',
60
+ });
61
+ }
62
+ };
63
+ exports.PageDefinitionSchema = zod_1.z
64
+ .object({
65
+ contract: zod_1.z.literal('PageDefinition'),
66
+ pageId: common_1.ContractIdentifierSchema,
67
+ ownerRepo: common_1.ContractIdentifierSchema,
68
+ title: common_1.LocalizedTextSchema,
69
+ pageType: exports.PageTypeSchema,
70
+ ownership: zod_1.z.object({
71
+ teamId: common_1.ContractIdentifierSchema.optional(),
72
+ creatorRef: common_1.EntityRefSchema.optional(),
73
+ studioId: common_1.ContractIdentifierSchema.optional(),
74
+ builtIn: zod_1.z.boolean(),
75
+ }).strict(),
76
+ record: zod_1.z.object({
77
+ createdTimestamp: zod_1.z.number().int().nonnegative().optional(),
78
+ updatedTimestamp: zod_1.z.number().int().nonnegative().optional(),
79
+ deleted: zod_1.z.boolean().default(false),
80
+ }).strict(),
81
+ surface: zod_1.z.enum(['page', 'workspace', 'view', 'record', 'action', 'overlay', 'agent']),
82
+ routeId: common_1.ContractIdentifierSchema,
83
+ routePath: exports.PageRoutePathSchema,
84
+ rendererKey: common_1.ContractIdentifierSchema,
85
+ capabilityRef: common_1.EntityRefSchema,
86
+ capabilityRefs: zod_1.z.array(common_1.EntityRefSchema).default([]),
87
+ workflowRef: common_1.EntityRefSchema.optional(),
88
+ binding: zod_1.z
89
+ .object({
90
+ sourceRef: common_1.ContractIdentifierSchema.optional(),
91
+ ontologyId: common_1.ContractIdentifierSchema.optional(),
92
+ projectionRef: common_1.ContractIdentifierSchema.optional(),
93
+ stateRef: common_1.ContractIdentifierSchema.optional(),
94
+ })
95
+ .strict(),
96
+ access: zod_1.z.object({
97
+ actions: zod_1.z.array(zod_1.z.enum(['read', 'write', 'execute', 'manage-permissions'])).default([]),
98
+ }).strict(),
99
+ rendererConfig: zod_1.z.object({
100
+ schemaRef: common_1.ContractIdentifierSchema,
101
+ value: common_1.JsonObjectSchema,
102
+ }).strict(),
103
+ navigation: zod_1.z
104
+ .object({
105
+ label: common_1.LocalizedTextSchema,
106
+ iconRef: common_1.ContractIdentifierSchema.optional(),
107
+ parentPageId: common_1.ContractIdentifierSchema.optional(),
108
+ order: zod_1.z.number().int().optional(),
109
+ hidden: zod_1.z.boolean().default(false),
110
+ pinned: zod_1.z.boolean().default(false),
111
+ })
112
+ .strict(),
113
+ visibility: exports.PageVisibilitySchema,
114
+ })
115
+ .strict()
116
+ .superRefine((page, context) => {
117
+ const capabilities = [page.capabilityRef, ...page.capabilityRefs];
118
+ const capabilityIdentities = new Set();
119
+ capabilities.forEach((reference, index) => {
120
+ const path = index === 0 ? ['capabilityRef'] : ['capabilityRefs', index - 1];
121
+ requireCapabilityReference(reference, path, context);
122
+ const identity = `${reference.id}@${String(reference.version)}:${reference.ownerRepo ?? ''}`;
123
+ if (capabilityIdentities.has(identity)) {
124
+ context.addIssue({
125
+ code: 'custom',
126
+ path,
127
+ message: `Duplicate page capability reference: ${identity}`,
128
+ });
129
+ }
130
+ capabilityIdentities.add(identity);
131
+ });
132
+ if (page.workflowRef && page.workflowRef.kind !== 'workflow')
133
+ context.addIssue({ code: 'custom', path: ['workflowRef', 'kind'], message: 'workflowRef must reference a workflow.' });
134
+ });
135
+ exports.PageRuntimeDescriptorSchema = zod_1.z
136
+ .object({
137
+ contract: zod_1.z.literal('PageRuntimeDescriptor'),
138
+ page: exports.PageDefinitionSchema,
139
+ nodeId: common_1.ContractIdentifierSchema,
140
+ parentNodeId: common_1.ContractIdentifierSchema.optional(),
141
+ slot: common_1.ContractIdentifierSchema.optional(),
142
+ semanticRef: common_1.ContractIdentifierSchema.optional(),
143
+ dataContextRef: common_1.ContractIdentifierSchema.optional(),
144
+ providerRef: common_1.EntityRefSchema.optional(),
145
+ surface: zod_1.z
146
+ .object({
147
+ frameOwner: common_1.ContractIdentifierSchema,
148
+ tone: common_1.ContractIdentifierSchema.optional(),
149
+ density: zod_1.z.enum(['compact', 'default', 'comfortable']).default('default'),
150
+ })
151
+ .strict(),
152
+ scroll: zod_1.z
153
+ .object({
154
+ owner: zod_1.z.enum(['page', 'surface', 'provider']),
155
+ axis: zod_1.z.enum(['x', 'y', 'both', 'none']),
156
+ restoreKey: common_1.ContractIdentifierSchema.optional(),
157
+ virtualized: zod_1.z.boolean().default(false),
158
+ })
159
+ .strict(),
160
+ activation: zod_1.z.enum(['navigate', 'select', 'drawer', 'modal', 'fullscreen']),
161
+ lifecycle: zod_1.z
162
+ .object({
163
+ mountPolicy: zod_1.z.enum(['always', 'when-visible', 'when-active']),
164
+ queryPolicy: zod_1.z.enum(['always', 'when-visible', 'when-active', 'manual']),
165
+ deepLink: zod_1.z.boolean(),
166
+ focusReturn: zod_1.z.boolean(),
167
+ })
168
+ .strict(),
169
+ })
170
+ .strict();
171
+ exports.PageRouteProjectionSchema = zod_1.z.object({
172
+ pageId: common_1.ContractIdentifierSchema,
173
+ routeId: common_1.ContractIdentifierSchema,
174
+ path: exports.PageRoutePathSchema,
175
+ }).strict();
176
+ exports.PageNavigationProjectionSchema = zod_1.z.object({
177
+ pageId: common_1.ContractIdentifierSchema,
178
+ routeId: common_1.ContractIdentifierSchema,
179
+ path: exports.PageRoutePathSchema,
180
+ label: common_1.LocalizedTextSchema,
181
+ iconRef: common_1.ContractIdentifierSchema.optional(),
182
+ parentPageId: common_1.ContractIdentifierSchema.optional(),
183
+ order: zod_1.z.number().int().optional(),
184
+ pinned: zod_1.z.boolean(),
185
+ }).strict();
186
+ exports.PageGuardProjectionSchema = zod_1.z.object({
187
+ pageId: common_1.ContractIdentifierSchema,
188
+ authenticated: zod_1.z.boolean(),
189
+ permissionAllOf: zod_1.z.array(common_1.ContractIdentifierSchema),
190
+ permissionAnyOf: zod_1.z.array(common_1.ContractIdentifierSchema),
191
+ featureFlags: zod_1.z.array(common_1.ContractIdentifierSchema),
192
+ actions: zod_1.z.array(zod_1.z.enum(['read', 'write', 'execute', 'manage-permissions'])),
193
+ }).strict();
194
+ exports.PageRendererProjectionSchema = zod_1.z
195
+ .object({
196
+ pageId: common_1.ContractIdentifierSchema,
197
+ surface: zod_1.z.enum(['page', 'workspace', 'view', 'record', 'action', 'overlay', 'agent']),
198
+ rendererKey: common_1.ContractIdentifierSchema,
199
+ capabilityRef: common_1.EntityRefSchema,
200
+ capabilityRefs: zod_1.z.array(common_1.EntityRefSchema),
201
+ providerRef: common_1.EntityRefSchema,
202
+ binding: exports.PageDefinitionSchema.shape.binding,
203
+ rendererConfig: exports.PageDefinitionSchema.shape.rendererConfig,
204
+ workflowRef: common_1.EntityRefSchema.optional(),
205
+ })
206
+ .strict()
207
+ .superRefine((renderer, context) => {
208
+ requireCapabilityReference(renderer.capabilityRef, ['capabilityRef'], context);
209
+ renderer.capabilityRefs.forEach((reference, index) => {
210
+ requireCapabilityReference(reference, ['capabilityRefs', index], context);
211
+ });
212
+ if (renderer.providerRef.kind !== 'view-provider') {
213
+ context.addIssue({
214
+ code: 'custom',
215
+ path: ['providerRef', 'kind'],
216
+ message: 'Renderer providerRef must use kind view-provider.',
217
+ });
218
+ }
219
+ if (renderer.providerRef.version === undefined) {
220
+ context.addIssue({
221
+ code: 'custom',
222
+ path: ['providerRef', 'version'],
223
+ message: 'Renderer providerRef must pin a provider version.',
224
+ });
225
+ }
226
+ if (renderer.providerRef.ownerRepo === undefined) {
227
+ context.addIssue({
228
+ code: 'custom',
229
+ path: ['providerRef', 'ownerRepo'],
230
+ message: 'Renderer providerRef must declare its owner repository.',
231
+ });
232
+ }
233
+ });
234
+ const duplicateProjectionIdentity = (values, identity) => {
235
+ const seen = new Set();
236
+ for (const value of values) {
237
+ const key = identity(value);
238
+ if (seen.has(key))
239
+ return key;
240
+ seen.add(key);
241
+ }
242
+ return undefined;
243
+ };
244
+ exports.PageRuntimeProjectionSchema = zod_1.z
245
+ .object({
246
+ contract: zod_1.z.literal('PageRuntimeProjection'),
247
+ product: zod_1.z.enum(['studio', 'kernel', 'compute']),
248
+ routes: zod_1.z.array(exports.PageRouteProjectionSchema),
249
+ navigation: zod_1.z.array(exports.PageNavigationProjectionSchema),
250
+ guards: zod_1.z.array(exports.PageGuardProjectionSchema),
251
+ renderers: zod_1.z.array(exports.PageRendererProjectionSchema),
252
+ })
253
+ .strict()
254
+ .superRefine((projection, context) => {
255
+ const tables = [
256
+ ['routes', projection.routes.map((value) => value.pageId)],
257
+ ['navigation', projection.navigation.map((value) => value.pageId)],
258
+ ['guards', projection.guards.map((value) => value.pageId)],
259
+ ['renderers', projection.renderers.map((value) => value.pageId)],
260
+ ];
261
+ for (const [table, values] of tables) {
262
+ const duplicate = duplicateProjectionIdentity(values, (value) => value);
263
+ if (duplicate) {
264
+ context.addIssue({ code: 'custom', path: [table], message: `Duplicate ${table} pageId: ${duplicate}` });
265
+ }
266
+ }
267
+ for (const identity of [
268
+ ['routeId', duplicateProjectionIdentity(projection.routes, (route) => route.routeId)],
269
+ ['path', duplicateProjectionIdentity(projection.routes, (route) => route.path)],
270
+ ]) {
271
+ if (identity[1]) {
272
+ context.addIssue({ code: 'custom', path: ['routes'], message: `Duplicate route ${identity[0]}: ${identity[1]}` });
273
+ }
274
+ }
275
+ const routesByPageId = new Map(projection.routes.map((route) => [route.pageId, route]));
276
+ const guardPageIds = new Set(projection.guards.map((guard) => guard.pageId));
277
+ const rendererPageIds = new Set(projection.renderers.map((renderer) => renderer.pageId));
278
+ for (const route of projection.routes) {
279
+ if (!guardPageIds.has(route.pageId)) {
280
+ context.addIssue({ code: 'custom', path: ['guards'], message: `Missing guard projection for ${route.pageId}.` });
281
+ }
282
+ if (!rendererPageIds.has(route.pageId)) {
283
+ context.addIssue({ code: 'custom', path: ['renderers'], message: `Missing renderer projection for ${route.pageId}.` });
284
+ }
285
+ }
286
+ for (const guard of projection.guards) {
287
+ if (!routesByPageId.has(guard.pageId)) {
288
+ context.addIssue({ code: 'custom', path: ['guards'], message: `Guard references unknown page ${guard.pageId}.` });
289
+ }
290
+ }
291
+ for (const renderer of projection.renderers) {
292
+ if (!routesByPageId.has(renderer.pageId)) {
293
+ context.addIssue({ code: 'custom', path: ['renderers'], message: `Renderer references unknown page ${renderer.pageId}.` });
294
+ }
295
+ }
296
+ for (const navigation of projection.navigation) {
297
+ const route = routesByPageId.get(navigation.pageId);
298
+ if (!route || route.routeId !== navigation.routeId || route.path !== navigation.path) {
299
+ context.addIssue({
300
+ code: 'custom',
301
+ path: ['navigation'],
302
+ message: `Navigation route projection for ${navigation.pageId} does not match its route table entry.`,
303
+ });
304
+ }
305
+ }
306
+ });
307
+ //# sourceMappingURL=page.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"page.js","sourceRoot":"","sources":["../../src/contracts/page.ts"],"names":[],"mappings":"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"}