@loom-framework/core 0.1.0-alpha.100 → 0.1.0-alpha.101

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 (54) hide show
  1. package/dist/backend/routes/data.d.ts.map +1 -1
  2. package/dist/backend/routes/data.js +19 -3
  3. package/dist/backend/routes/data.js.map +1 -1
  4. package/dist/cli/commands/generate-dashboard.d.ts.map +1 -1
  5. package/dist/cli/commands/generate-dashboard.js +41 -16
  6. package/dist/cli/commands/generate-dashboard.js.map +1 -1
  7. package/dist/cli/commands/generate-page.d.ts.map +1 -1
  8. package/dist/cli/commands/generate-page.js +56 -5
  9. package/dist/cli/commands/generate-page.js.map +1 -1
  10. package/dist/cli/helpers/app-tsx-wiring.d.ts +2 -0
  11. package/dist/cli/helpers/app-tsx-wiring.d.ts.map +1 -1
  12. package/dist/cli/helpers/app-tsx-wiring.js +22 -3
  13. package/dist/cli/helpers/app-tsx-wiring.js.map +1 -1
  14. package/dist/cli/helpers/column-template.d.ts +3 -3
  15. package/dist/cli/helpers/column-template.d.ts.map +1 -1
  16. package/dist/cli/helpers/column-template.js +8 -6
  17. package/dist/cli/helpers/column-template.js.map +1 -1
  18. package/dist/cli/helpers/field-template.d.ts.map +1 -1
  19. package/dist/cli/helpers/field-template.js +19 -17
  20. package/dist/cli/helpers/field-template.js.map +1 -1
  21. package/dist/cli/templates/frontend-entry.d.ts.map +1 -1
  22. package/dist/cli/templates/frontend-entry.js +22 -12
  23. package/dist/cli/templates/frontend-entry.js.map +1 -1
  24. package/dist/cli/templates/loom-config.js +6 -6
  25. package/dist/cli/templates/loom-config.js.map +1 -1
  26. package/dist/config.d.ts +54 -45
  27. package/dist/config.d.ts.map +1 -1
  28. package/dist/config.js +8 -5
  29. package/dist/config.js.map +1 -1
  30. package/dist/dashboard-config.d.ts +10 -10
  31. package/dist/dashboard-config.d.ts.map +1 -1
  32. package/dist/dashboard-config.js +3 -2
  33. package/dist/dashboard-config.js.map +1 -1
  34. package/dist/index.d.ts +2 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +2 -0
  37. package/dist/index.js.map +1 -1
  38. package/dist/types/ai.d.ts +2 -1
  39. package/dist/types/ai.d.ts.map +1 -1
  40. package/dist/types/config.d.ts +3 -2
  41. package/dist/types/config.d.ts.map +1 -1
  42. package/dist/types/dashboard.d.ts +5 -4
  43. package/dist/types/dashboard.d.ts.map +1 -1
  44. package/dist/types/index.d.ts +2 -0
  45. package/dist/types/index.d.ts.map +1 -1
  46. package/dist/types/index.js +1 -1
  47. package/dist/types/index.js.map +1 -1
  48. package/dist/types/locale.d.ts +21 -0
  49. package/dist/types/locale.d.ts.map +1 -0
  50. package/dist/types/locale.js +36 -0
  51. package/dist/types/locale.js.map +1 -0
  52. package/dist/types/model.d.ts +5 -2
  53. package/dist/types/model.d.ts.map +1 -1
  54. package/package.json +1 -1
package/dist/config.d.ts CHANGED
@@ -9,13 +9,13 @@ import type { LoomConfig, ModelSchema } from './types.js';
9
9
  declare const LoomConfigSchema: z.ZodObject<{
10
10
  project: z.ZodObject<{
11
11
  name: z.ZodString;
12
- description: z.ZodOptional<z.ZodString>;
12
+ description: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
13
13
  }, "strip", z.ZodTypeAny, {
14
14
  name: string;
15
- description?: string | undefined;
15
+ description?: string | Record<string, string> | undefined;
16
16
  }, {
17
17
  name: string;
18
- description?: string | undefined;
18
+ description?: string | Record<string, string> | undefined;
19
19
  }>;
20
20
  data: z.ZodObject<{
21
21
  defaultAdapter: z.ZodEnum<["filesystem", "sqlite"]>;
@@ -25,23 +25,26 @@ declare const LoomConfigSchema: z.ZodObject<{
25
25
  name: z.ZodString;
26
26
  type: z.ZodEnum<["string", "number", "boolean", "date", "string[]", "number[]", "json"]>;
27
27
  required: z.ZodOptional<z.ZodBoolean>;
28
- description: z.ZodOptional<z.ZodString>;
28
+ description: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
29
29
  default: z.ZodOptional<z.ZodUnknown>;
30
30
  enum: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
31
+ enumLabels: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>>>;
31
32
  }, "strip", z.ZodTypeAny, {
32
33
  type: "string" | "number" | "boolean" | "date" | "string[]" | "number[]" | "json";
33
34
  name: string;
34
- description?: string | undefined;
35
+ description?: string | Record<string, string> | undefined;
35
36
  required?: boolean | undefined;
36
37
  default?: unknown;
37
38
  enum?: string[] | undefined;
39
+ enumLabels?: Record<string, Record<string, string>> | undefined;
38
40
  }, {
39
41
  type: "string" | "number" | "boolean" | "date" | "string[]" | "number[]" | "json";
40
42
  name: string;
41
- description?: string | undefined;
43
+ description?: string | Record<string, string> | undefined;
42
44
  required?: boolean | undefined;
43
45
  default?: unknown;
44
46
  enum?: string[] | undefined;
47
+ enumLabels?: Record<string, Record<string, string>> | undefined;
45
48
  }>, "many">;
46
49
  indexes: z.ZodOptional<z.ZodArray<z.ZodObject<{
47
50
  fields: z.ZodArray<z.ZodString, "many">;
@@ -109,18 +112,19 @@ declare const LoomConfigSchema: z.ZodObject<{
109
112
  import?: boolean | undefined;
110
113
  deleteWithUndo?: boolean | undefined;
111
114
  }>>;
112
- description: z.ZodOptional<z.ZodString>;
115
+ description: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
113
116
  }, "strip", z.ZodTypeAny, {
114
117
  name: string;
115
118
  fields: {
116
119
  type: "string" | "number" | "boolean" | "date" | "string[]" | "number[]" | "json";
117
120
  name: string;
118
- description?: string | undefined;
121
+ description?: string | Record<string, string> | undefined;
119
122
  required?: boolean | undefined;
120
123
  default?: unknown;
121
124
  enum?: string[] | undefined;
125
+ enumLabels?: Record<string, Record<string, string>> | undefined;
122
126
  }[];
123
- description?: string | undefined;
127
+ description?: string | Record<string, string> | undefined;
124
128
  indexes?: {
125
129
  fields: string[];
126
130
  unique?: boolean | undefined;
@@ -146,12 +150,13 @@ declare const LoomConfigSchema: z.ZodObject<{
146
150
  fields: {
147
151
  type: "string" | "number" | "boolean" | "date" | "string[]" | "number[]" | "json";
148
152
  name: string;
149
- description?: string | undefined;
153
+ description?: string | Record<string, string> | undefined;
150
154
  required?: boolean | undefined;
151
155
  default?: unknown;
152
156
  enum?: string[] | undefined;
157
+ enumLabels?: Record<string, Record<string, string>> | undefined;
153
158
  }[];
154
- description?: string | undefined;
159
+ description?: string | Record<string, string> | undefined;
155
160
  indexes?: {
156
161
  fields: string[];
157
162
  unique?: boolean | undefined;
@@ -186,12 +191,13 @@ declare const LoomConfigSchema: z.ZodObject<{
186
191
  fields: {
187
192
  type: "string" | "number" | "boolean" | "date" | "string[]" | "number[]" | "json";
188
193
  name: string;
189
- description?: string | undefined;
194
+ description?: string | Record<string, string> | undefined;
190
195
  required?: boolean | undefined;
191
196
  default?: unknown;
192
197
  enum?: string[] | undefined;
198
+ enumLabels?: Record<string, Record<string, string>> | undefined;
193
199
  }[];
194
- description?: string | undefined;
200
+ description?: string | Record<string, string> | undefined;
195
201
  indexes?: {
196
202
  fields: string[];
197
203
  unique?: boolean | undefined;
@@ -223,12 +229,13 @@ declare const LoomConfigSchema: z.ZodObject<{
223
229
  fields: {
224
230
  type: "string" | "number" | "boolean" | "date" | "string[]" | "number[]" | "json";
225
231
  name: string;
226
- description?: string | undefined;
232
+ description?: string | Record<string, string> | undefined;
227
233
  required?: boolean | undefined;
228
234
  default?: unknown;
229
235
  enum?: string[] | undefined;
236
+ enumLabels?: Record<string, Record<string, string>> | undefined;
230
237
  }[];
231
- description?: string | undefined;
238
+ description?: string | Record<string, string> | undefined;
232
239
  indexes?: {
233
240
  fields: string[];
234
241
  unique?: boolean | undefined;
@@ -308,31 +315,31 @@ declare const LoomConfigSchema: z.ZodObject<{
308
315
  }>>;
309
316
  aiButtons: z.ZodOptional<z.ZodArray<z.ZodObject<{
310
317
  id: z.ZodString;
311
- label: z.ZodString;
318
+ label: z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
312
319
  icon: z.ZodOptional<z.ZodString>;
313
320
  prompt: z.ZodString;
314
321
  placement: z.ZodOptional<z.ZodString>;
315
322
  }, "strip", z.ZodTypeAny, {
316
323
  id: string;
317
- label: string;
324
+ label: string | Record<string, string>;
318
325
  prompt: string;
319
326
  icon?: string | undefined;
320
327
  placement?: string | undefined;
321
328
  }, {
322
329
  id: string;
323
- label: string;
330
+ label: string | Record<string, string>;
324
331
  prompt: string;
325
332
  icon?: string | undefined;
326
333
  placement?: string | undefined;
327
334
  }>, "many">>;
328
335
  dashboards: z.ZodOptional<z.ZodArray<z.ZodObject<{
329
336
  name: z.ZodString;
330
- description: z.ZodOptional<z.ZodString>;
337
+ description: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
331
338
  models: z.ZodArray<z.ZodString, "many">;
332
339
  layout: z.ZodArray<z.ZodObject<{
333
340
  row: z.ZodArray<z.ZodObject<{
334
341
  type: z.ZodEnum<["stat", "pie", "ring", "bar", "line", "area", "scatter", "radar", "funnel", "treemap", "gauge", "liquid", "heatmap", "stacked_bar", "grouped_bar"]>;
335
- title: z.ZodString;
342
+ title: z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
336
343
  model: z.ZodString;
337
344
  span: z.ZodOptional<z.ZodNumber>;
338
345
  groupBy: z.ZodOptional<z.ZodString>;
@@ -343,7 +350,7 @@ declare const LoomConfigSchema: z.ZodObject<{
343
350
  interval: z.ZodOptional<z.ZodEnum<["day", "week", "month"]>>;
344
351
  }, "strip", z.ZodTypeAny, {
345
352
  type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
346
- title: string;
353
+ title: string | Record<string, string>;
347
354
  model: string;
348
355
  filter?: Record<string, unknown> | undefined;
349
356
  field?: string | undefined;
@@ -354,7 +361,7 @@ declare const LoomConfigSchema: z.ZodObject<{
354
361
  interval?: "day" | "week" | "month" | undefined;
355
362
  }, {
356
363
  type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
357
- title: string;
364
+ title: string | Record<string, string>;
358
365
  model: string;
359
366
  filter?: Record<string, unknown> | undefined;
360
367
  field?: string | undefined;
@@ -367,7 +374,7 @@ declare const LoomConfigSchema: z.ZodObject<{
367
374
  }, "strip", z.ZodTypeAny, {
368
375
  row: {
369
376
  type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
370
- title: string;
377
+ title: string | Record<string, string>;
371
378
  model: string;
372
379
  filter?: Record<string, unknown> | undefined;
373
380
  field?: string | undefined;
@@ -380,7 +387,7 @@ declare const LoomConfigSchema: z.ZodObject<{
380
387
  }, {
381
388
  row: {
382
389
  type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
383
- title: string;
390
+ title: string | Record<string, string>;
384
391
  model: string;
385
392
  filter?: Record<string, unknown> | undefined;
386
393
  field?: string | undefined;
@@ -397,7 +404,7 @@ declare const LoomConfigSchema: z.ZodObject<{
397
404
  layout: {
398
405
  row: {
399
406
  type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
400
- title: string;
407
+ title: string | Record<string, string>;
401
408
  model: string;
402
409
  filter?: Record<string, unknown> | undefined;
403
410
  field?: string | undefined;
@@ -408,14 +415,14 @@ declare const LoomConfigSchema: z.ZodObject<{
408
415
  interval?: "day" | "week" | "month" | undefined;
409
416
  }[];
410
417
  }[];
411
- description?: string | undefined;
418
+ description?: string | Record<string, string> | undefined;
412
419
  }, {
413
420
  name: string;
414
421
  models: string[];
415
422
  layout: {
416
423
  row: {
417
424
  type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
418
- title: string;
425
+ title: string | Record<string, string>;
419
426
  model: string;
420
427
  filter?: Record<string, unknown> | undefined;
421
428
  field?: string | undefined;
@@ -426,7 +433,7 @@ declare const LoomConfigSchema: z.ZodObject<{
426
433
  interval?: "day" | "week" | "month" | undefined;
427
434
  }[];
428
435
  }[];
429
- description?: string | undefined;
436
+ description?: string | Record<string, string> | undefined;
430
437
  }>, "many">>;
431
438
  ui: z.ZodOptional<z.ZodObject<{
432
439
  theme: z.ZodOptional<z.ZodObject<{
@@ -461,7 +468,7 @@ declare const LoomConfigSchema: z.ZodObject<{
461
468
  }>>;
462
469
  relations: z.ZodOptional<z.ZodArray<z.ZodObject<{
463
470
  name: z.ZodString;
464
- label: z.ZodOptional<z.ZodString>;
471
+ label: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
465
472
  from: z.ZodString;
466
473
  to: z.ZodString;
467
474
  foreignKey: z.ZodString;
@@ -473,7 +480,7 @@ declare const LoomConfigSchema: z.ZodObject<{
473
480
  from: string;
474
481
  to: string;
475
482
  foreignKey: string;
476
- label?: string | undefined;
483
+ label?: string | Record<string, string> | undefined;
477
484
  through?: string | undefined;
478
485
  }, {
479
486
  type: "hasOne" | "hasMany" | "manyToMany";
@@ -481,7 +488,7 @@ declare const LoomConfigSchema: z.ZodObject<{
481
488
  from: string;
482
489
  to: string;
483
490
  foreignKey: string;
484
- label?: string | undefined;
491
+ label?: string | Record<string, string> | undefined;
485
492
  through?: string | undefined;
486
493
  }>, "many">>;
487
494
  }, "strip", z.ZodTypeAny, {
@@ -491,12 +498,13 @@ declare const LoomConfigSchema: z.ZodObject<{
491
498
  fields: {
492
499
  type: "string" | "number" | "boolean" | "date" | "string[]" | "number[]" | "json";
493
500
  name: string;
494
- description?: string | undefined;
501
+ description?: string | Record<string, string> | undefined;
495
502
  required?: boolean | undefined;
496
503
  default?: unknown;
497
504
  enum?: string[] | undefined;
505
+ enumLabels?: Record<string, Record<string, string>> | undefined;
498
506
  }[];
499
- description?: string | undefined;
507
+ description?: string | Record<string, string> | undefined;
500
508
  indexes?: {
501
509
  fields: string[];
502
510
  unique?: boolean | undefined;
@@ -525,7 +533,7 @@ declare const LoomConfigSchema: z.ZodObject<{
525
533
  };
526
534
  project: {
527
535
  name: string;
528
- description?: string | undefined;
536
+ description?: string | Record<string, string> | undefined;
529
537
  };
530
538
  ai?: {
531
539
  engine?: string | undefined;
@@ -544,7 +552,7 @@ declare const LoomConfigSchema: z.ZodObject<{
544
552
  } | undefined;
545
553
  aiButtons?: {
546
554
  id: string;
547
- label: string;
555
+ label: string | Record<string, string>;
548
556
  prompt: string;
549
557
  icon?: string | undefined;
550
558
  placement?: string | undefined;
@@ -555,7 +563,7 @@ declare const LoomConfigSchema: z.ZodObject<{
555
563
  layout: {
556
564
  row: {
557
565
  type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
558
- title: string;
566
+ title: string | Record<string, string>;
559
567
  model: string;
560
568
  filter?: Record<string, unknown> | undefined;
561
569
  field?: string | undefined;
@@ -566,7 +574,7 @@ declare const LoomConfigSchema: z.ZodObject<{
566
574
  interval?: "day" | "week" | "month" | undefined;
567
575
  }[];
568
576
  }[];
569
- description?: string | undefined;
577
+ description?: string | Record<string, string> | undefined;
570
578
  }[] | undefined;
571
579
  ui?: {
572
580
  theme?: {
@@ -583,7 +591,7 @@ declare const LoomConfigSchema: z.ZodObject<{
583
591
  from: string;
584
592
  to: string;
585
593
  foreignKey: string;
586
- label?: string | undefined;
594
+ label?: string | Record<string, string> | undefined;
587
595
  through?: string | undefined;
588
596
  }[] | undefined;
589
597
  }, {
@@ -593,12 +601,13 @@ declare const LoomConfigSchema: z.ZodObject<{
593
601
  fields: {
594
602
  type: "string" | "number" | "boolean" | "date" | "string[]" | "number[]" | "json";
595
603
  name: string;
596
- description?: string | undefined;
604
+ description?: string | Record<string, string> | undefined;
597
605
  required?: boolean | undefined;
598
606
  default?: unknown;
599
607
  enum?: string[] | undefined;
608
+ enumLabels?: Record<string, Record<string, string>> | undefined;
600
609
  }[];
601
- description?: string | undefined;
610
+ description?: string | Record<string, string> | undefined;
602
611
  indexes?: {
603
612
  fields: string[];
604
613
  unique?: boolean | undefined;
@@ -627,7 +636,7 @@ declare const LoomConfigSchema: z.ZodObject<{
627
636
  };
628
637
  project: {
629
638
  name: string;
630
- description?: string | undefined;
639
+ description?: string | Record<string, string> | undefined;
631
640
  };
632
641
  ai?: {
633
642
  engine?: string | undefined;
@@ -646,7 +655,7 @@ declare const LoomConfigSchema: z.ZodObject<{
646
655
  } | undefined;
647
656
  aiButtons?: {
648
657
  id: string;
649
- label: string;
658
+ label: string | Record<string, string>;
650
659
  prompt: string;
651
660
  icon?: string | undefined;
652
661
  placement?: string | undefined;
@@ -657,7 +666,7 @@ declare const LoomConfigSchema: z.ZodObject<{
657
666
  layout: {
658
667
  row: {
659
668
  type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
660
- title: string;
669
+ title: string | Record<string, string>;
661
670
  model: string;
662
671
  filter?: Record<string, unknown> | undefined;
663
672
  field?: string | undefined;
@@ -668,7 +677,7 @@ declare const LoomConfigSchema: z.ZodObject<{
668
677
  interval?: "day" | "week" | "month" | undefined;
669
678
  }[];
670
679
  }[];
671
- description?: string | undefined;
680
+ description?: string | Record<string, string> | undefined;
672
681
  }[] | undefined;
673
682
  ui?: {
674
683
  theme?: {
@@ -685,7 +694,7 @@ declare const LoomConfigSchema: z.ZodObject<{
685
694
  from: string;
686
695
  to: string;
687
696
  foreignKey: string;
688
- label?: string | undefined;
697
+ label?: string | Record<string, string> | undefined;
689
698
  through?: string | undefined;
690
699
  }[] | undefined;
691
700
  }>;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAA2F,MAAM,YAAY,CAAC;AAgEnJ,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuCpB,CAAC;AAIH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAU3D;AAID;;;GAGG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAqBzE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoBnF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAE7F;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,CAUpE;AAGD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,UAAU,EAAE,WAAW,EAA2F,MAAM,YAAY,CAAC;AAoEnJ,QAAA,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuCpB,CAAC;AAIH;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU,CAU3D;AAID;;;GAGG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAqBzE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAoBnF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAE7F;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,EAAE,CAUpE;AAGD,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAC5B,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
package/dist/config.js CHANGED
@@ -7,6 +7,8 @@
7
7
  import { z } from 'zod';
8
8
  import { createJiti } from 'jiti';
9
9
  // ── Zod Schemas for Validation ──
10
+ const LocaleStringSchema = z.union([z.string(), z.record(z.string(), z.string())]);
11
+ const EnumLabelsSchema = z.record(z.string(), z.record(z.string(), z.string()));
10
12
  const FieldTypeSchema = z.enum([
11
13
  'string', 'number', 'boolean', 'date',
12
14
  'string[]', 'number[]', 'json',
@@ -15,9 +17,10 @@ const FieldDefinitionSchema = z.object({
15
17
  name: z.string().regex(/^[a-zA-Z_][a-zA-Z0-9_]*$/, 'Field name must start with a letter or underscore, and contain only alphanumeric characters and underscores'),
16
18
  type: FieldTypeSchema,
17
19
  required: z.boolean().optional(),
18
- description: z.string().optional(),
20
+ description: LocaleStringSchema.optional(),
19
21
  default: z.unknown().optional(),
20
22
  enum: z.array(z.string()).optional(),
23
+ enumLabels: EnumLabelsSchema.optional(),
21
24
  });
22
25
  const ModelSchemaSchema = z.object({
23
26
  name: z.string().regex(/^[a-zA-Z][a-zA-Z0-9_]*$/, 'Model name must start with a letter and contain only letters, digits, or underscores (no hyphens)'),
@@ -42,11 +45,11 @@ const ModelSchemaSchema = z.object({
42
45
  import: z.boolean().optional(),
43
46
  deleteWithUndo: z.boolean().optional(),
44
47
  }).optional(),
45
- description: z.string().optional(),
48
+ description: LocaleStringSchema.optional(),
46
49
  });
47
50
  const AIButtonConfigSchema = z.object({
48
51
  id: z.string(),
49
- label: z.string(),
52
+ label: LocaleStringSchema,
50
53
  icon: z.string().optional(),
51
54
  prompt: z.string(),
52
55
  placement: z.string().optional(),
@@ -64,7 +67,7 @@ const UIConfigSchema = z.object({
64
67
  const LoomConfigSchema = z.object({
65
68
  project: z.object({
66
69
  name: z.string(),
67
- description: z.string().optional(),
70
+ description: LocaleStringSchema.optional(),
68
71
  }),
69
72
  data: z.object({
70
73
  defaultAdapter: z.enum(['filesystem', 'sqlite']),
@@ -93,7 +96,7 @@ const LoomConfigSchema = z.object({
93
96
  ui: UIConfigSchema.optional(),
94
97
  relations: z.array(z.object({
95
98
  name: z.string(),
96
- label: z.string().optional(),
99
+ label: LocaleStringSchema.optional(),
97
100
  from: z.string(),
98
101
  to: z.string(),
99
102
  foreignKey: z.string(),
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -6,12 +6,12 @@
6
6
  import { z } from 'zod';
7
7
  declare const DashboardConfigSchema: z.ZodObject<{
8
8
  name: z.ZodString;
9
- description: z.ZodOptional<z.ZodString>;
9
+ description: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>>;
10
10
  models: z.ZodArray<z.ZodString, "many">;
11
11
  layout: z.ZodArray<z.ZodObject<{
12
12
  row: z.ZodArray<z.ZodObject<{
13
13
  type: z.ZodEnum<["stat", "pie", "ring", "bar", "line", "area", "scatter", "radar", "funnel", "treemap", "gauge", "liquid", "heatmap", "stacked_bar", "grouped_bar"]>;
14
- title: z.ZodString;
14
+ title: z.ZodUnion<[z.ZodString, z.ZodRecord<z.ZodString, z.ZodString>]>;
15
15
  model: z.ZodString;
16
16
  span: z.ZodOptional<z.ZodNumber>;
17
17
  groupBy: z.ZodOptional<z.ZodString>;
@@ -22,7 +22,7 @@ declare const DashboardConfigSchema: z.ZodObject<{
22
22
  interval: z.ZodOptional<z.ZodEnum<["day", "week", "month"]>>;
23
23
  }, "strip", z.ZodTypeAny, {
24
24
  type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
25
- title: string;
25
+ title: string | Record<string, string>;
26
26
  model: string;
27
27
  filter?: Record<string, unknown> | undefined;
28
28
  field?: string | undefined;
@@ -33,7 +33,7 @@ declare const DashboardConfigSchema: z.ZodObject<{
33
33
  interval?: "day" | "week" | "month" | undefined;
34
34
  }, {
35
35
  type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
36
- title: string;
36
+ title: string | Record<string, string>;
37
37
  model: string;
38
38
  filter?: Record<string, unknown> | undefined;
39
39
  field?: string | undefined;
@@ -46,7 +46,7 @@ declare const DashboardConfigSchema: z.ZodObject<{
46
46
  }, "strip", z.ZodTypeAny, {
47
47
  row: {
48
48
  type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
49
- title: string;
49
+ title: string | Record<string, string>;
50
50
  model: string;
51
51
  filter?: Record<string, unknown> | undefined;
52
52
  field?: string | undefined;
@@ -59,7 +59,7 @@ declare const DashboardConfigSchema: z.ZodObject<{
59
59
  }, {
60
60
  row: {
61
61
  type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
62
- title: string;
62
+ title: string | Record<string, string>;
63
63
  model: string;
64
64
  filter?: Record<string, unknown> | undefined;
65
65
  field?: string | undefined;
@@ -76,7 +76,7 @@ declare const DashboardConfigSchema: z.ZodObject<{
76
76
  layout: {
77
77
  row: {
78
78
  type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
79
- title: string;
79
+ title: string | Record<string, string>;
80
80
  model: string;
81
81
  filter?: Record<string, unknown> | undefined;
82
82
  field?: string | undefined;
@@ -87,14 +87,14 @@ declare const DashboardConfigSchema: z.ZodObject<{
87
87
  interval?: "day" | "week" | "month" | undefined;
88
88
  }[];
89
89
  }[];
90
- description?: string | undefined;
90
+ description?: string | Record<string, string> | undefined;
91
91
  }, {
92
92
  name: string;
93
93
  models: string[];
94
94
  layout: {
95
95
  row: {
96
96
  type: "stat" | "pie" | "ring" | "bar" | "line" | "area" | "scatter" | "radar" | "funnel" | "treemap" | "gauge" | "liquid" | "heatmap" | "stacked_bar" | "grouped_bar";
97
- title: string;
97
+ title: string | Record<string, string>;
98
98
  model: string;
99
99
  filter?: Record<string, unknown> | undefined;
100
100
  field?: string | undefined;
@@ -105,7 +105,7 @@ declare const DashboardConfigSchema: z.ZodObject<{
105
105
  interval?: "day" | "week" | "month" | undefined;
106
106
  }[];
107
107
  }[];
108
- description?: string | undefined;
108
+ description?: string | Record<string, string> | undefined;
109
109
  }>;
110
110
  export { DashboardConfigSchema };
111
111
  //# sourceMappingURL=dashboard-config.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-config.d.ts","sourceRoot":"","sources":["../src/dashboard-config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsBxB,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKY,CAAC;AAExC,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"dashboard-config.d.ts","sourceRoot":"","sources":["../src/dashboard-config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAwBxB,QAAA,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKY,CAAC;AAExC,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
@@ -5,9 +5,10 @@
5
5
  */
6
6
  import { z } from 'zod';
7
7
  // ── Dashboard Config Schema ──
8
+ const LocaleStringSchema = z.union([z.string(), z.record(z.string(), z.string())]);
8
9
  const DashboardWidgetSchema = z.object({
9
10
  type: z.enum(['stat', 'pie', 'ring', 'bar', 'line', 'area', 'scatter', 'radar', 'funnel', 'treemap', 'gauge', 'liquid', 'heatmap', 'stacked_bar', 'grouped_bar']),
10
- title: z.string(),
11
+ title: LocaleStringSchema,
11
12
  model: z.string(),
12
13
  span: z.number().int().min(1).max(24).optional(),
13
14
  groupBy: z.string().optional(),
@@ -22,7 +23,7 @@ const DashboardLayoutRowSchema = z.object({
22
23
  });
23
24
  const DashboardConfigSchema = z.object({
24
25
  name: z.string().regex(/^[a-zA-Z][a-zA-Z0-9_]*$/, 'Dashboard name must start with a letter and contain only letters, digits, or underscores'),
25
- description: z.string().optional(),
26
+ description: LocaleStringSchema.optional(),
26
27
  models: z.array(z.string()).min(1),
27
28
  layout: z.array(DashboardLayoutRowSchema).min(1),
28
29
  });
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard-config.js","sourceRoot":"","sources":["../src/dashboard-config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,gCAAgC;AAEhC,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;IACjK,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC5E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CAC3C,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,yBAAyB,EAAE,0FAA0F,CAAC;IAC7I,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACjD,CAAsC,CAAC;AAExC,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
1
+ {"version":3,"file":"dashboard-config.js","sourceRoot":"","sources":["../src/dashboard-config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,gCAAgC;AAEhC,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;AAEnF,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;IACjK,KAAK,EAAE,kBAAkB;IACzB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE;IACjB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAChD,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;IAC5E,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,EAAE;IACxC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE;CACtD,CAAC,CAAC;AAEH,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC;IACxC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CAC3C,CAAC,CAAC;AAEH,MAAM,qBAAqB,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,yBAAyB,EAAE,0FAA0F,CAAC;IAC7I,WAAW,EAAE,kBAAkB,CAAC,QAAQ,EAAE;IAC1C,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAClC,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;CACjD,CAAsC,CAAC;AAExC,OAAO,EAAE,qBAAqB,EAAE,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  /**
2
2
  * Loom Core - Main Entry Point
3
3
  */
4
- export type { FieldType, FieldDefinition, IndexDefinition, FilesystemAdapterConfig, SQLiteAdapterConfig, ModelAdapterConfig, ModelSchema, AIButtonConfig, ClaudeCodeConfig, AIConfig, ServerConfig, DataConfig, LoomConfig, DataAdapter, DataRecord, ReadOptions, CommandOption, CommandDefinition, CommandContext, AIEngine, AICallOptions, AIUsage, AIChunk, UserMessageEvent, AssistantChunkEvent, AssistantCompleteEvent, ToolCallEvent, ChatEvent, DashboardWidgetType, DashboardAggregate, DashboardDateInterval, DashboardWidget, DashboardLayoutRow, DashboardConfig, RelationConfig, CRUDConfig, ThemeConfig, UIConfig, } from './types.js';
4
+ export type { FieldType, FieldDefinition, IndexDefinition, FilesystemAdapterConfig, SQLiteAdapterConfig, ModelAdapterConfig, ModelSchema, AIButtonConfig, ClaudeCodeConfig, AIConfig, ServerConfig, DataConfig, LoomConfig, DataAdapter, DataRecord, ReadOptions, CommandOption, CommandDefinition, CommandContext, AIEngine, AICallOptions, AIUsage, AIChunk, UserMessageEvent, AssistantChunkEvent, AssistantCompleteEvent, ToolCallEvent, ChatEvent, DashboardWidgetType, DashboardAggregate, DashboardDateInterval, DashboardWidget, DashboardLayoutRow, DashboardConfig, RelationConfig, CRUDConfig, ThemeConfig, UIConfig, LocaleString, EnumLabels, } from './types.js';
5
+ export { resolveLocale, resolveEnumLabel, resolveEnumLabels } from './types.js';
5
6
  export { defineConfig, loadConfig, resolveConfigPath, getModelSchema, validateModelUniqueness, LoomConfigSchema, DashboardConfigSchema } from './config.js';
6
7
  export { BaseAdapter } from './adapter-base.js';
7
8
  export { createAdapter } from './adapter-factory.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,SAAS,EACT,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,aAAa,EACb,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACX,SAAS,EACX,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,UAAU,EACV,WAAW,EACX,QAAQ,GACT,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAG5J,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,YAAY,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAG/E,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG9C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,SAAS,EACT,eAAe,EACf,eAAe,EACf,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,UAAU,EACV,UAAU,EACV,WAAW,EACX,UAAU,EACV,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,QAAQ,EACR,aAAa,EACb,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,aAAa,EACX,SAAS,EACX,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,UAAU,EACV,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAGhF,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAG5J,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAChF,YAAY,EAAE,cAAc,EAAE,MAAM,0CAA0C,CAAC;AAG/E,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAG9C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC7D,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -1,6 +1,8 @@
1
1
  /**
2
2
  * Loom Core - Main Entry Point
3
3
  */
4
+ // Locale utilities
5
+ export { resolveLocale, resolveEnumLabel, resolveEnumLabels } from './types.js';
4
6
  // Config
5
7
  export { defineConfig, loadConfig, resolveConfigPath, getModelSchema, validateModelUniqueness, LoomConfigSchema, DashboardConfigSchema } from './config.js';
6
8
  // DataAdapter
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AA4CH,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE5J,cAAc;AACd,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,uBAAuB;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAGhF,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,UAAU;AACV,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAG7D,MAAM;AACN,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AA8CH,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEhF,SAAS;AACT,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAE5J,cAAc;AACd,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,uBAAuB;AACvB,OAAO,EAAE,oBAAoB,EAAE,MAAM,0CAA0C,CAAC;AAGhF,oBAAoB;AACpB,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAE9C,UAAU;AACV,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAG7D,MAAM;AACN,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,9 +1,10 @@
1
1
  /**
2
2
  * AI Engine Types
3
3
  */
4
+ import type { LocaleString } from './locale.js';
4
5
  export interface AIButtonConfig {
5
6
  id: string;
6
- label: string;
7
+ label: LocaleString;
7
8
  icon?: string;
8
9
  /** Prompt text, supports {{var}} placeholders that are replaced with current row field values */
9
10
  prompt: string;