@viyv/agent-ui-schema 0.1.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 (75) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/.turbo/turbo-test.log +16 -0
  3. package/.turbo/turbo-typecheck.log +4 -0
  4. package/dist/__tests__/expression.test.d.ts +2 -0
  5. package/dist/__tests__/expression.test.d.ts.map +1 -0
  6. package/dist/__tests__/expression.test.js +77 -0
  7. package/dist/__tests__/expression.test.js.map +1 -0
  8. package/dist/__tests__/page-spec.test.d.ts +2 -0
  9. package/dist/__tests__/page-spec.test.d.ts.map +1 -0
  10. package/dist/__tests__/page-spec.test.js +223 -0
  11. package/dist/__tests__/page-spec.test.js.map +1 -0
  12. package/dist/__tests__/validator.test.d.ts +2 -0
  13. package/dist/__tests__/validator.test.d.ts.map +1 -0
  14. package/dist/__tests__/validator.test.js +177 -0
  15. package/dist/__tests__/validator.test.js.map +1 -0
  16. package/dist/action-def.d.ts +227 -0
  17. package/dist/action-def.d.ts.map +1 -0
  18. package/dist/action-def.js +54 -0
  19. package/dist/action-def.js.map +1 -0
  20. package/dist/catalog.d.ts +16 -0
  21. package/dist/catalog.d.ts.map +1 -0
  22. package/dist/catalog.js +8 -0
  23. package/dist/catalog.js.map +1 -0
  24. package/dist/data-source.d.ts +195 -0
  25. package/dist/data-source.d.ts.map +1 -0
  26. package/dist/data-source.js +28 -0
  27. package/dist/data-source.js.map +1 -0
  28. package/dist/element-def.d.ts +37 -0
  29. package/dist/element-def.d.ts.map +1 -0
  30. package/dist/element-def.js +13 -0
  31. package/dist/element-def.js.map +1 -0
  32. package/dist/expression.d.ts +28 -0
  33. package/dist/expression.d.ts.map +1 -0
  34. package/dist/expression.js +56 -0
  35. package/dist/expression.js.map +1 -0
  36. package/dist/hook-def.d.ts +456 -0
  37. package/dist/hook-def.d.ts.map +1 -0
  38. package/dist/hook-def.js +67 -0
  39. package/dist/hook-def.js.map +1 -0
  40. package/dist/index.d.ts +20 -0
  41. package/dist/index.d.ts.map +1 -0
  42. package/dist/index.js +19 -0
  43. package/dist/index.js.map +1 -0
  44. package/dist/page-spec.d.ts +684 -0
  45. package/dist/page-spec.d.ts.map +1 -0
  46. package/dist/page-spec.js +34 -0
  47. package/dist/page-spec.js.map +1 -0
  48. package/dist/page-store.d.ts +20 -0
  49. package/dist/page-store.d.ts.map +1 -0
  50. package/dist/page-store.js +2 -0
  51. package/dist/page-store.js.map +1 -0
  52. package/dist/patch.d.ts +144 -0
  53. package/dist/patch.d.ts.map +1 -0
  54. package/dist/patch.js +23 -0
  55. package/dist/patch.js.map +1 -0
  56. package/dist/validator.d.ts +13 -0
  57. package/dist/validator.d.ts.map +1 -0
  58. package/dist/validator.js +286 -0
  59. package/dist/validator.js.map +1 -0
  60. package/package.json +27 -0
  61. package/src/__tests__/expression.test.ts +93 -0
  62. package/src/__tests__/page-spec.test.ts +242 -0
  63. package/src/__tests__/validator.test.ts +189 -0
  64. package/src/action-def.ts +63 -0
  65. package/src/catalog.ts +24 -0
  66. package/src/data-source.ts +46 -0
  67. package/src/element-def.ts +17 -0
  68. package/src/expression.ts +77 -0
  69. package/src/hook-def.ts +79 -0
  70. package/src/index.ts +72 -0
  71. package/src/page-spec.ts +42 -0
  72. package/src/page-store.ts +18 -0
  73. package/src/patch.ts +28 -0
  74. package/src/validator.ts +347 -0
  75. package/tsconfig.json +8 -0
@@ -0,0 +1,56 @@
1
+ import { z } from 'zod';
2
+ // Pattern matchers — identifiers allow word chars plus hyphens (e.g. "my-hook")
3
+ const ID = '[\\w-]+';
4
+ const HOOK_PATTERN = new RegExp(`^\\$hook\\.(${ID})(\\.(.+))?$`);
5
+ const STATE_PATTERN = new RegExp(`^\\$state\\.(${ID})$`);
6
+ const BIND_STATE_PATTERN = new RegExp(`^\\$bindState\\.(${ID})$`);
7
+ const ACTION_PATTERN = new RegExp(`^\\$action\\.(${ID})$`);
8
+ const ITEM_PATTERN = /^\$item(\.(.+))?$/;
9
+ const PARAM_PATTERN = new RegExp(`^\\$param\\.(${ID})$`);
10
+ const EXPR_PATTERN = /^\$expr\((.+)\)$/s;
11
+ export function isExpression(value) {
12
+ return typeof value === 'string' && value.startsWith('$');
13
+ }
14
+ export function parseExpression(value) {
15
+ let match;
16
+ match = value.match(HOOK_PATTERN);
17
+ if (match) {
18
+ const hookId = match[1];
19
+ const rest = match[3];
20
+ const path = rest ? rest.split('.') : [];
21
+ return { type: 'hook', hookId, path };
22
+ }
23
+ match = value.match(STATE_PATTERN);
24
+ if (match) {
25
+ return { type: 'state', key: match[1] };
26
+ }
27
+ match = value.match(BIND_STATE_PATTERN);
28
+ if (match) {
29
+ return { type: 'bindState', key: match[1] };
30
+ }
31
+ match = value.match(ACTION_PATTERN);
32
+ if (match) {
33
+ return { type: 'action', actionId: match[1] };
34
+ }
35
+ match = value.match(ITEM_PATTERN);
36
+ if (match) {
37
+ const rest = match[2];
38
+ const path = rest ? rest.split('.') : [];
39
+ return { type: 'item', path };
40
+ }
41
+ match = value.match(PARAM_PATTERN);
42
+ if (match) {
43
+ return { type: 'param', name: match[1] };
44
+ }
45
+ match = value.match(EXPR_PATTERN);
46
+ if (match) {
47
+ return { type: 'expr', code: match[1] };
48
+ }
49
+ return null;
50
+ }
51
+ export const ExpressionStringSchema = z
52
+ .string()
53
+ .refine((val) => !val.startsWith('$') || parseExpression(val) !== null, {
54
+ message: 'Invalid expression syntax',
55
+ });
56
+ //# sourceMappingURL=expression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expression.js","sourceRoot":"","sources":["../src/expression.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,456 @@
1
+ import { z } from 'zod';
2
+ export declare const UseStateHookSchema: z.ZodObject<{
3
+ use: z.ZodLiteral<"useState">;
4
+ params: z.ZodObject<{
5
+ initial: z.ZodUnknown;
6
+ }, "strip", z.ZodTypeAny, {
7
+ initial?: unknown;
8
+ }, {
9
+ initial?: unknown;
10
+ }>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ params: {
13
+ initial?: unknown;
14
+ };
15
+ use: "useState";
16
+ }, {
17
+ params: {
18
+ initial?: unknown;
19
+ };
20
+ use: "useState";
21
+ }>;
22
+ export declare const UseDerivedHookSchema: z.ZodObject<{
23
+ use: z.ZodLiteral<"useDerived">;
24
+ from: z.ZodString;
25
+ params: z.ZodObject<{
26
+ sort: z.ZodOptional<z.ZodObject<{
27
+ key: z.ZodString;
28
+ order: z.ZodDefault<z.ZodEnum<["asc", "desc"]>>;
29
+ }, "strip", z.ZodTypeAny, {
30
+ key: string;
31
+ order: "asc" | "desc";
32
+ }, {
33
+ key: string;
34
+ order?: "asc" | "desc" | undefined;
35
+ }>>;
36
+ filter: z.ZodOptional<z.ZodObject<{
37
+ key: z.ZodString;
38
+ match: z.ZodUnknown;
39
+ }, "strip", z.ZodTypeAny, {
40
+ key: string;
41
+ match?: unknown;
42
+ }, {
43
+ key: string;
44
+ match?: unknown;
45
+ }>>;
46
+ limit: z.ZodOptional<z.ZodNumber>;
47
+ groupBy: z.ZodOptional<z.ZodString>;
48
+ aggregate: z.ZodOptional<z.ZodObject<{
49
+ fn: z.ZodEnum<["sum", "avg", "count", "min", "max"]>;
50
+ key: z.ZodString;
51
+ }, "strip", z.ZodTypeAny, {
52
+ key: string;
53
+ fn: "sum" | "avg" | "count" | "min" | "max";
54
+ }, {
55
+ key: string;
56
+ fn: "sum" | "avg" | "count" | "min" | "max";
57
+ }>>;
58
+ }, "strip", z.ZodTypeAny, {
59
+ sort?: {
60
+ key: string;
61
+ order: "asc" | "desc";
62
+ } | undefined;
63
+ filter?: {
64
+ key: string;
65
+ match?: unknown;
66
+ } | undefined;
67
+ limit?: number | undefined;
68
+ groupBy?: string | undefined;
69
+ aggregate?: {
70
+ key: string;
71
+ fn: "sum" | "avg" | "count" | "min" | "max";
72
+ } | undefined;
73
+ }, {
74
+ sort?: {
75
+ key: string;
76
+ order?: "asc" | "desc" | undefined;
77
+ } | undefined;
78
+ filter?: {
79
+ key: string;
80
+ match?: unknown;
81
+ } | undefined;
82
+ limit?: number | undefined;
83
+ groupBy?: string | undefined;
84
+ aggregate?: {
85
+ key: string;
86
+ fn: "sum" | "avg" | "count" | "min" | "max";
87
+ } | undefined;
88
+ }>;
89
+ }, "strip", z.ZodTypeAny, {
90
+ params: {
91
+ sort?: {
92
+ key: string;
93
+ order: "asc" | "desc";
94
+ } | undefined;
95
+ filter?: {
96
+ key: string;
97
+ match?: unknown;
98
+ } | undefined;
99
+ limit?: number | undefined;
100
+ groupBy?: string | undefined;
101
+ aggregate?: {
102
+ key: string;
103
+ fn: "sum" | "avg" | "count" | "min" | "max";
104
+ } | undefined;
105
+ };
106
+ use: "useDerived";
107
+ from: string;
108
+ }, {
109
+ params: {
110
+ sort?: {
111
+ key: string;
112
+ order?: "asc" | "desc" | undefined;
113
+ } | undefined;
114
+ filter?: {
115
+ key: string;
116
+ match?: unknown;
117
+ } | undefined;
118
+ limit?: number | undefined;
119
+ groupBy?: string | undefined;
120
+ aggregate?: {
121
+ key: string;
122
+ fn: "sum" | "avg" | "count" | "min" | "max";
123
+ } | undefined;
124
+ };
125
+ use: "useDerived";
126
+ from: string;
127
+ }>;
128
+ export declare const UseFetchHookSchema: z.ZodObject<{
129
+ use: z.ZodLiteral<"useFetch">;
130
+ params: z.ZodObject<{
131
+ url: z.ZodString;
132
+ method: z.ZodDefault<z.ZodEnum<["GET", "POST"]>>;
133
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
134
+ body: z.ZodOptional<z.ZodUnknown>;
135
+ refreshInterval: z.ZodOptional<z.ZodNumber>;
136
+ }, "strip", z.ZodTypeAny, {
137
+ url: string;
138
+ method: "POST" | "GET";
139
+ headers?: Record<string, string> | undefined;
140
+ body?: unknown;
141
+ refreshInterval?: number | undefined;
142
+ }, {
143
+ url: string;
144
+ method?: "POST" | "GET" | undefined;
145
+ headers?: Record<string, string> | undefined;
146
+ body?: unknown;
147
+ refreshInterval?: number | undefined;
148
+ }>;
149
+ }, "strip", z.ZodTypeAny, {
150
+ params: {
151
+ url: string;
152
+ method: "POST" | "GET";
153
+ headers?: Record<string, string> | undefined;
154
+ body?: unknown;
155
+ refreshInterval?: number | undefined;
156
+ };
157
+ use: "useFetch";
158
+ }, {
159
+ params: {
160
+ url: string;
161
+ method?: "POST" | "GET" | undefined;
162
+ headers?: Record<string, string> | undefined;
163
+ body?: unknown;
164
+ refreshInterval?: number | undefined;
165
+ };
166
+ use: "useFetch";
167
+ }>;
168
+ export declare const UseSqlQueryHookSchema: z.ZodObject<{
169
+ use: z.ZodLiteral<"useSqlQuery">;
170
+ params: z.ZodObject<{
171
+ connection: z.ZodString;
172
+ query: z.ZodString;
173
+ refreshInterval: z.ZodOptional<z.ZodNumber>;
174
+ }, "strip", z.ZodTypeAny, {
175
+ connection: string;
176
+ query: string;
177
+ refreshInterval?: number | undefined;
178
+ }, {
179
+ connection: string;
180
+ query: string;
181
+ refreshInterval?: number | undefined;
182
+ }>;
183
+ }, "strip", z.ZodTypeAny, {
184
+ params: {
185
+ connection: string;
186
+ query: string;
187
+ refreshInterval?: number | undefined;
188
+ };
189
+ use: "useSqlQuery";
190
+ }, {
191
+ params: {
192
+ connection: string;
193
+ query: string;
194
+ refreshInterval?: number | undefined;
195
+ };
196
+ use: "useSqlQuery";
197
+ }>;
198
+ export declare const UseAgentQueryHookSchema: z.ZodObject<{
199
+ use: z.ZodLiteral<"useAgentQuery">;
200
+ params: z.ZodObject<{
201
+ endpoint: z.ZodString;
202
+ query: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
203
+ refreshInterval: z.ZodOptional<z.ZodNumber>;
204
+ }, "strip", z.ZodTypeAny, {
205
+ endpoint: string;
206
+ refreshInterval?: number | undefined;
207
+ query?: Record<string, unknown> | undefined;
208
+ }, {
209
+ endpoint: string;
210
+ refreshInterval?: number | undefined;
211
+ query?: Record<string, unknown> | undefined;
212
+ }>;
213
+ }, "strip", z.ZodTypeAny, {
214
+ params: {
215
+ endpoint: string;
216
+ refreshInterval?: number | undefined;
217
+ query?: Record<string, unknown> | undefined;
218
+ };
219
+ use: "useAgentQuery";
220
+ }, {
221
+ params: {
222
+ endpoint: string;
223
+ refreshInterval?: number | undefined;
224
+ query?: Record<string, unknown> | undefined;
225
+ };
226
+ use: "useAgentQuery";
227
+ }>;
228
+ export declare const HookDefSchema: z.ZodDiscriminatedUnion<"use", [z.ZodObject<{
229
+ use: z.ZodLiteral<"useState">;
230
+ params: z.ZodObject<{
231
+ initial: z.ZodUnknown;
232
+ }, "strip", z.ZodTypeAny, {
233
+ initial?: unknown;
234
+ }, {
235
+ initial?: unknown;
236
+ }>;
237
+ }, "strip", z.ZodTypeAny, {
238
+ params: {
239
+ initial?: unknown;
240
+ };
241
+ use: "useState";
242
+ }, {
243
+ params: {
244
+ initial?: unknown;
245
+ };
246
+ use: "useState";
247
+ }>, z.ZodObject<{
248
+ use: z.ZodLiteral<"useDerived">;
249
+ from: z.ZodString;
250
+ params: z.ZodObject<{
251
+ sort: z.ZodOptional<z.ZodObject<{
252
+ key: z.ZodString;
253
+ order: z.ZodDefault<z.ZodEnum<["asc", "desc"]>>;
254
+ }, "strip", z.ZodTypeAny, {
255
+ key: string;
256
+ order: "asc" | "desc";
257
+ }, {
258
+ key: string;
259
+ order?: "asc" | "desc" | undefined;
260
+ }>>;
261
+ filter: z.ZodOptional<z.ZodObject<{
262
+ key: z.ZodString;
263
+ match: z.ZodUnknown;
264
+ }, "strip", z.ZodTypeAny, {
265
+ key: string;
266
+ match?: unknown;
267
+ }, {
268
+ key: string;
269
+ match?: unknown;
270
+ }>>;
271
+ limit: z.ZodOptional<z.ZodNumber>;
272
+ groupBy: z.ZodOptional<z.ZodString>;
273
+ aggregate: z.ZodOptional<z.ZodObject<{
274
+ fn: z.ZodEnum<["sum", "avg", "count", "min", "max"]>;
275
+ key: z.ZodString;
276
+ }, "strip", z.ZodTypeAny, {
277
+ key: string;
278
+ fn: "sum" | "avg" | "count" | "min" | "max";
279
+ }, {
280
+ key: string;
281
+ fn: "sum" | "avg" | "count" | "min" | "max";
282
+ }>>;
283
+ }, "strip", z.ZodTypeAny, {
284
+ sort?: {
285
+ key: string;
286
+ order: "asc" | "desc";
287
+ } | undefined;
288
+ filter?: {
289
+ key: string;
290
+ match?: unknown;
291
+ } | undefined;
292
+ limit?: number | undefined;
293
+ groupBy?: string | undefined;
294
+ aggregate?: {
295
+ key: string;
296
+ fn: "sum" | "avg" | "count" | "min" | "max";
297
+ } | undefined;
298
+ }, {
299
+ sort?: {
300
+ key: string;
301
+ order?: "asc" | "desc" | undefined;
302
+ } | undefined;
303
+ filter?: {
304
+ key: string;
305
+ match?: unknown;
306
+ } | undefined;
307
+ limit?: number | undefined;
308
+ groupBy?: string | undefined;
309
+ aggregate?: {
310
+ key: string;
311
+ fn: "sum" | "avg" | "count" | "min" | "max";
312
+ } | undefined;
313
+ }>;
314
+ }, "strip", z.ZodTypeAny, {
315
+ params: {
316
+ sort?: {
317
+ key: string;
318
+ order: "asc" | "desc";
319
+ } | undefined;
320
+ filter?: {
321
+ key: string;
322
+ match?: unknown;
323
+ } | undefined;
324
+ limit?: number | undefined;
325
+ groupBy?: string | undefined;
326
+ aggregate?: {
327
+ key: string;
328
+ fn: "sum" | "avg" | "count" | "min" | "max";
329
+ } | undefined;
330
+ };
331
+ use: "useDerived";
332
+ from: string;
333
+ }, {
334
+ params: {
335
+ sort?: {
336
+ key: string;
337
+ order?: "asc" | "desc" | undefined;
338
+ } | undefined;
339
+ filter?: {
340
+ key: string;
341
+ match?: unknown;
342
+ } | undefined;
343
+ limit?: number | undefined;
344
+ groupBy?: string | undefined;
345
+ aggregate?: {
346
+ key: string;
347
+ fn: "sum" | "avg" | "count" | "min" | "max";
348
+ } | undefined;
349
+ };
350
+ use: "useDerived";
351
+ from: string;
352
+ }>, z.ZodObject<{
353
+ use: z.ZodLiteral<"useFetch">;
354
+ params: z.ZodObject<{
355
+ url: z.ZodString;
356
+ method: z.ZodDefault<z.ZodEnum<["GET", "POST"]>>;
357
+ headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
358
+ body: z.ZodOptional<z.ZodUnknown>;
359
+ refreshInterval: z.ZodOptional<z.ZodNumber>;
360
+ }, "strip", z.ZodTypeAny, {
361
+ url: string;
362
+ method: "POST" | "GET";
363
+ headers?: Record<string, string> | undefined;
364
+ body?: unknown;
365
+ refreshInterval?: number | undefined;
366
+ }, {
367
+ url: string;
368
+ method?: "POST" | "GET" | undefined;
369
+ headers?: Record<string, string> | undefined;
370
+ body?: unknown;
371
+ refreshInterval?: number | undefined;
372
+ }>;
373
+ }, "strip", z.ZodTypeAny, {
374
+ params: {
375
+ url: string;
376
+ method: "POST" | "GET";
377
+ headers?: Record<string, string> | undefined;
378
+ body?: unknown;
379
+ refreshInterval?: number | undefined;
380
+ };
381
+ use: "useFetch";
382
+ }, {
383
+ params: {
384
+ url: string;
385
+ method?: "POST" | "GET" | undefined;
386
+ headers?: Record<string, string> | undefined;
387
+ body?: unknown;
388
+ refreshInterval?: number | undefined;
389
+ };
390
+ use: "useFetch";
391
+ }>, z.ZodObject<{
392
+ use: z.ZodLiteral<"useSqlQuery">;
393
+ params: z.ZodObject<{
394
+ connection: z.ZodString;
395
+ query: z.ZodString;
396
+ refreshInterval: z.ZodOptional<z.ZodNumber>;
397
+ }, "strip", z.ZodTypeAny, {
398
+ connection: string;
399
+ query: string;
400
+ refreshInterval?: number | undefined;
401
+ }, {
402
+ connection: string;
403
+ query: string;
404
+ refreshInterval?: number | undefined;
405
+ }>;
406
+ }, "strip", z.ZodTypeAny, {
407
+ params: {
408
+ connection: string;
409
+ query: string;
410
+ refreshInterval?: number | undefined;
411
+ };
412
+ use: "useSqlQuery";
413
+ }, {
414
+ params: {
415
+ connection: string;
416
+ query: string;
417
+ refreshInterval?: number | undefined;
418
+ };
419
+ use: "useSqlQuery";
420
+ }>, z.ZodObject<{
421
+ use: z.ZodLiteral<"useAgentQuery">;
422
+ params: z.ZodObject<{
423
+ endpoint: z.ZodString;
424
+ query: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
425
+ refreshInterval: z.ZodOptional<z.ZodNumber>;
426
+ }, "strip", z.ZodTypeAny, {
427
+ endpoint: string;
428
+ refreshInterval?: number | undefined;
429
+ query?: Record<string, unknown> | undefined;
430
+ }, {
431
+ endpoint: string;
432
+ refreshInterval?: number | undefined;
433
+ query?: Record<string, unknown> | undefined;
434
+ }>;
435
+ }, "strip", z.ZodTypeAny, {
436
+ params: {
437
+ endpoint: string;
438
+ refreshInterval?: number | undefined;
439
+ query?: Record<string, unknown> | undefined;
440
+ };
441
+ use: "useAgentQuery";
442
+ }, {
443
+ params: {
444
+ endpoint: string;
445
+ refreshInterval?: number | undefined;
446
+ query?: Record<string, unknown> | undefined;
447
+ };
448
+ use: "useAgentQuery";
449
+ }>]>;
450
+ export type HookDef = z.infer<typeof HookDefSchema>;
451
+ export type UseStateHook = z.infer<typeof UseStateHookSchema>;
452
+ export type UseDerivedHook = z.infer<typeof UseDerivedHookSchema>;
453
+ export type UseFetchHook = z.infer<typeof UseFetchHookSchema>;
454
+ export type UseSqlQueryHook = z.infer<typeof UseSqlQueryHookSchema>;
455
+ export type UseAgentQueryHook = z.infer<typeof UseAgentQueryHookSchema>;
456
+ //# sourceMappingURL=hook-def.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-def.d.ts","sourceRoot":"","sources":["../src/hook-def.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;EAK7B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAyB/B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAS7B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOhC,CAAC;AAEH,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAOlC,CAAC;AAEH,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAMxB,CAAC;AAEH,MAAM,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,aAAa,CAAC,CAAC;AACpD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAClE,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
@@ -0,0 +1,67 @@
1
+ import { z } from 'zod';
2
+ export const UseStateHookSchema = z.object({
3
+ use: z.literal('useState'),
4
+ params: z.object({
5
+ initial: z.unknown(),
6
+ }),
7
+ });
8
+ export const UseDerivedHookSchema = z.object({
9
+ use: z.literal('useDerived'),
10
+ from: z.string().min(1),
11
+ params: z.object({
12
+ sort: z
13
+ .object({
14
+ key: z.string(),
15
+ order: z.enum(['asc', 'desc']).default('asc'),
16
+ })
17
+ .optional(),
18
+ filter: z
19
+ .object({
20
+ key: z.string(),
21
+ match: z.unknown(),
22
+ })
23
+ .optional(),
24
+ limit: z.number().int().positive().optional(),
25
+ groupBy: z.string().optional(),
26
+ aggregate: z
27
+ .object({
28
+ fn: z.enum(['sum', 'avg', 'count', 'min', 'max']),
29
+ key: z.string(),
30
+ })
31
+ .optional(),
32
+ }),
33
+ });
34
+ export const UseFetchHookSchema = z.object({
35
+ use: z.literal('useFetch'),
36
+ params: z.object({
37
+ url: z.string().url(),
38
+ method: z.enum(['GET', 'POST']).default('GET'),
39
+ headers: z.record(z.string()).optional(),
40
+ body: z.unknown().optional(),
41
+ refreshInterval: z.number().int().positive().optional(),
42
+ }),
43
+ });
44
+ export const UseSqlQueryHookSchema = z.object({
45
+ use: z.literal('useSqlQuery'),
46
+ params: z.object({
47
+ connection: z.string().min(1),
48
+ query: z.string().min(1),
49
+ refreshInterval: z.number().int().positive().optional(),
50
+ }),
51
+ });
52
+ export const UseAgentQueryHookSchema = z.object({
53
+ use: z.literal('useAgentQuery'),
54
+ params: z.object({
55
+ endpoint: z.string().min(1),
56
+ query: z.record(z.unknown()).optional(),
57
+ refreshInterval: z.number().int().positive().optional(),
58
+ }),
59
+ });
60
+ export const HookDefSchema = z.discriminatedUnion('use', [
61
+ UseStateHookSchema,
62
+ UseDerivedHookSchema,
63
+ UseFetchHookSchema,
64
+ UseSqlQueryHookSchema,
65
+ UseAgentQueryHookSchema,
66
+ ]);
67
+ //# sourceMappingURL=hook-def.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hook-def.js","sourceRoot":"","sources":["../src/hook-def.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ export { parseExpression, isExpression, ExpressionStringSchema } from './expression.js';
2
+ export type { ExpressionRef } from './expression.js';
3
+ export { HookDefSchema, UseStateHookSchema, UseDerivedHookSchema, UseFetchHookSchema, UseSqlQueryHookSchema, UseAgentQueryHookSchema, } from './hook-def.js';
4
+ export type { HookDef, UseStateHook, UseDerivedHook, UseFetchHook, UseSqlQueryHook, UseAgentQueryHook, } from './hook-def.js';
5
+ export { ElementDefSchema, VisibilityConditionSchema } from './element-def.js';
6
+ export type { ElementDef, VisibilityCondition } from './element-def.js';
7
+ export { ActionDefSchema, SetStateActionSchema, RefreshHookActionSchema, NavigateActionSchema, SubmitFormActionSchema, AddItemActionSchema, RemoveItemActionSchema, UpdateItemActionSchema, } from './action-def.js';
8
+ export type { ActionDef } from './action-def.js';
9
+ export { PageSpecSchema, ParamDefSchema, ThemeSchema, PageMetaSchema } from './page-spec.js';
10
+ export type { PageSpec, ParamDef, Theme, PageMeta } from './page-spec.js';
11
+ export { defineCatalog } from './catalog.js';
12
+ export type { ComponentMeta, ComponentCatalog } from './catalog.js';
13
+ export type { PageStore, PageStorePage } from './page-store.js';
14
+ export { DataSourceMetaSchema, TableMetaSchema, ColumnMetaSchema, EndpointMetaSchema, } from './data-source.js';
15
+ export type { DataSourceMeta, TableMeta, ColumnMeta, EndpointMeta, DataConnector, } from './data-source.js';
16
+ export { JsonPatchSchema, JsonPatchOpSchema } from './patch.js';
17
+ export type { JsonPatch, JsonPatchOp } from './patch.js';
18
+ export { validatePageSpec } from './validator.js';
19
+ export type { ValidationResult, ValidationError } from './validator.js';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACxF,YAAY,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGrD,OAAO,EACN,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,GACvB,MAAM,eAAe,CAAC;AACvB,YAAY,EACX,OAAO,EACP,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,eAAe,EACf,iBAAiB,GACjB,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAC/E,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGxE,OAAO,EACN,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,GACtB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAC7F,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1E,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAGpE,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAGhE,OAAO,EACN,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GAClB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACX,cAAc,EACd,SAAS,EACT,UAAU,EACV,YAAY,EACZ,aAAa,GACb,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAChE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,19 @@
1
+ // Expression
2
+ export { parseExpression, isExpression, ExpressionStringSchema } from './expression.js';
3
+ // Hook definitions
4
+ export { HookDefSchema, UseStateHookSchema, UseDerivedHookSchema, UseFetchHookSchema, UseSqlQueryHookSchema, UseAgentQueryHookSchema, } from './hook-def.js';
5
+ // Element definitions
6
+ export { ElementDefSchema, VisibilityConditionSchema } from './element-def.js';
7
+ // Action definitions
8
+ export { ActionDefSchema, SetStateActionSchema, RefreshHookActionSchema, NavigateActionSchema, SubmitFormActionSchema, AddItemActionSchema, RemoveItemActionSchema, UpdateItemActionSchema, } from './action-def.js';
9
+ // Page spec
10
+ export { PageSpecSchema, ParamDefSchema, ThemeSchema, PageMetaSchema } from './page-spec.js';
11
+ // Catalog
12
+ export { defineCatalog } from './catalog.js';
13
+ // Data source
14
+ export { DataSourceMetaSchema, TableMetaSchema, ColumnMetaSchema, EndpointMetaSchema, } from './data-source.js';
15
+ // JSON Patch
16
+ export { JsonPatchSchema, JsonPatchOpSchema } from './patch.js';
17
+ // Validator
18
+ export { validatePageSpec } from './validator.js';
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAGxF,mBAAmB;AACnB,OAAO,EACN,aAAa,EACb,kBAAkB,EAClB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,uBAAuB,GACvB,MAAM,eAAe,CAAC;AAUvB,sBAAsB;AACtB,OAAO,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAG/E,qBAAqB;AACrB,OAAO,EACN,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,sBAAsB,EACtB,sBAAsB,GACtB,MAAM,iBAAiB,CAAC;AAGzB,YAAY;AACZ,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAG7F,UAAU;AACV,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAM7C,cAAc;AACd,OAAO,EACN,oBAAoB,EACpB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,GAClB,MAAM,kBAAkB,CAAC;AAS1B,aAAa;AACb,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGhE,YAAY;AACZ,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}