@fieldia/core 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 (130) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +31 -0
  3. package/package.json +40 -0
  4. package/schema/page.schema.json +2142 -0
  5. package/src/index.d.mts +15 -0
  6. package/src/index.d.ts +15 -0
  7. package/src/index.js +46 -0
  8. package/src/index.js.map +1 -0
  9. package/src/index.mjs +14 -0
  10. package/src/index.mjs.map +1 -0
  11. package/src/lib/expression/evaluateModifier.d.mts +55 -0
  12. package/src/lib/expression/evaluateModifier.d.ts +55 -0
  13. package/src/lib/expression/evaluateModifier.js +121 -0
  14. package/src/lib/expression/evaluateModifier.js.map +1 -0
  15. package/src/lib/expression/evaluateModifier.mjs +117 -0
  16. package/src/lib/expression/evaluateModifier.mjs.map +1 -0
  17. package/src/lib/expression/evaluator.d.mts +23 -0
  18. package/src/lib/expression/evaluator.d.ts +23 -0
  19. package/src/lib/expression/evaluator.js +122 -0
  20. package/src/lib/expression/evaluator.js.map +1 -0
  21. package/src/lib/expression/evaluator.mjs +118 -0
  22. package/src/lib/expression/evaluator.mjs.map +1 -0
  23. package/src/lib/expression/extractFieldNames.d.mts +41 -0
  24. package/src/lib/expression/extractFieldNames.d.ts +41 -0
  25. package/src/lib/expression/extractFieldNames.js +97 -0
  26. package/src/lib/expression/extractFieldNames.js.map +1 -0
  27. package/src/lib/expression/extractFieldNames.mjs +93 -0
  28. package/src/lib/expression/extractFieldNames.mjs.map +1 -0
  29. package/src/lib/expression/modifier.d.mts +14 -0
  30. package/src/lib/expression/modifier.d.ts +14 -0
  31. package/src/lib/expression/modifier.js +55 -0
  32. package/src/lib/expression/modifier.js.map +1 -0
  33. package/src/lib/expression/modifier.mjs +52 -0
  34. package/src/lib/expression/modifier.mjs.map +1 -0
  35. package/src/lib/expression/parser.d.mts +109 -0
  36. package/src/lib/expression/parser.d.ts +109 -0
  37. package/src/lib/expression/parser.js +317 -0
  38. package/src/lib/expression/parser.js.map +1 -0
  39. package/src/lib/expression/parser.mjs +313 -0
  40. package/src/lib/expression/parser.mjs.map +1 -0
  41. package/src/lib/expression/tokenizer.d.mts +31 -0
  42. package/src/lib/expression/tokenizer.d.ts +31 -0
  43. package/src/lib/expression/tokenizer.js +100 -0
  44. package/src/lib/expression/tokenizer.js.map +1 -0
  45. package/src/lib/expression/tokenizer.mjs +96 -0
  46. package/src/lib/expression/tokenizer.mjs.map +1 -0
  47. package/src/lib/format/field.d.mts +967 -0
  48. package/src/lib/format/field.d.ts +967 -0
  49. package/src/lib/format/field.js +147 -0
  50. package/src/lib/format/field.js.map +1 -0
  51. package/src/lib/format/field.mjs +144 -0
  52. package/src/lib/format/field.mjs.map +1 -0
  53. package/src/lib/format/json-schema.d.mts +6 -0
  54. package/src/lib/format/json-schema.d.ts +6 -0
  55. package/src/lib/format/json-schema.js +14 -0
  56. package/src/lib/format/json-schema.js.map +1 -0
  57. package/src/lib/format/json-schema.mjs +11 -0
  58. package/src/lib/format/json-schema.mjs.map +1 -0
  59. package/src/lib/format/json.d.mts +7 -0
  60. package/src/lib/format/json.d.ts +7 -0
  61. package/src/lib/format/json.js +7 -0
  62. package/src/lib/format/json.js.map +1 -0
  63. package/src/lib/format/json.mjs +4 -0
  64. package/src/lib/format/json.mjs.map +1 -0
  65. package/src/lib/format/layout.d.mts +521 -0
  66. package/src/lib/format/layout.d.ts +521 -0
  67. package/src/lib/format/layout.js +150 -0
  68. package/src/lib/format/layout.js.map +1 -0
  69. package/src/lib/format/layout.mjs +147 -0
  70. package/src/lib/format/layout.mjs.map +1 -0
  71. package/src/lib/format/layout.types.d.mts +22 -0
  72. package/src/lib/format/layout.types.d.ts +22 -0
  73. package/src/lib/format/layout.types.js +3 -0
  74. package/src/lib/format/layout.types.js.map +1 -0
  75. package/src/lib/format/layout.types.mjs +2 -0
  76. package/src/lib/format/layout.types.mjs.map +1 -0
  77. package/src/lib/format/page.d.mts +511 -0
  78. package/src/lib/format/page.d.ts +511 -0
  79. package/src/lib/format/page.js +27 -0
  80. package/src/lib/format/page.js.map +1 -0
  81. package/src/lib/format/page.mjs +24 -0
  82. package/src/lib/format/page.mjs.map +1 -0
  83. package/src/lib/format/validate.d.mts +23 -0
  84. package/src/lib/format/validate.d.ts +23 -0
  85. package/src/lib/format/validate.js +210 -0
  86. package/src/lib/format/validate.js.map +1 -0
  87. package/src/lib/format/validate.mjs +207 -0
  88. package/src/lib/format/validate.mjs.map +1 -0
  89. package/src/lib/record/check.d.mts +14 -0
  90. package/src/lib/record/check.d.ts +14 -0
  91. package/src/lib/record/check.js +167 -0
  92. package/src/lib/record/check.js.map +1 -0
  93. package/src/lib/record/check.mjs +163 -0
  94. package/src/lib/record/check.mjs.map +1 -0
  95. package/src/lib/record/data-source.d.mts +109 -0
  96. package/src/lib/record/data-source.d.ts +109 -0
  97. package/src/lib/record/data-source.js +3 -0
  98. package/src/lib/record/data-source.js.map +1 -0
  99. package/src/lib/record/data-source.mjs +2 -0
  100. package/src/lib/record/data-source.mjs.map +1 -0
  101. package/src/lib/record/form.d.mts +106 -0
  102. package/src/lib/record/form.d.ts +106 -0
  103. package/src/lib/record/form.js +545 -0
  104. package/src/lib/record/form.js.map +1 -0
  105. package/src/lib/record/form.mjs +542 -0
  106. package/src/lib/record/form.mjs.map +1 -0
  107. package/src/lib/record/memory-data-source.d.mts +28 -0
  108. package/src/lib/record/memory-data-source.d.ts +28 -0
  109. package/src/lib/record/memory-data-source.js +132 -0
  110. package/src/lib/record/memory-data-source.js.map +1 -0
  111. package/src/lib/record/memory-data-source.mjs +129 -0
  112. package/src/lib/record/memory-data-source.mjs.map +1 -0
  113. package/src/lib/record/messages.d.mts +35 -0
  114. package/src/lib/record/messages.d.ts +35 -0
  115. package/src/lib/record/messages.js +111 -0
  116. package/src/lib/record/messages.js.map +1 -0
  117. package/src/lib/record/messages.mjs +107 -0
  118. package/src/lib/record/messages.mjs.map +1 -0
  119. package/src/lib/record/scheduler.d.mts +12 -0
  120. package/src/lib/record/scheduler.d.ts +12 -0
  121. package/src/lib/record/scheduler.js +16 -0
  122. package/src/lib/record/scheduler.js.map +1 -0
  123. package/src/lib/record/scheduler.mjs +12 -0
  124. package/src/lib/record/scheduler.mjs.map +1 -0
  125. package/src/lib/record/values.d.mts +54 -0
  126. package/src/lib/record/values.d.ts +54 -0
  127. package/src/lib/record/values.js +78 -0
  128. package/src/lib/record/values.js.map +1 -0
  129. package/src/lib/record/values.mjs +71 -0
  130. package/src/lib/record/values.mjs.map +1 -0
@@ -0,0 +1,147 @@
1
+ import * as z from 'zod';
2
+ import { FIELD_NAME } from './field.mjs';
3
+ import { JsonValueSchema } from './json.mjs';
4
+ // ---------------------------------------------------------------------------
5
+ // Schemas. Recursion goes through getters on z.strictObject (zod 4's own
6
+ // pattern); `.strict()` would clone the shape and run the getters too early.
7
+ // layout.types.ts proves these schemas and the interfaces above agree.
8
+ // ---------------------------------------------------------------------------
9
+ export const ModifierSchema = z.union([z.boolean(), z.string().min(1)]).meta({ id: 'Modifier' });
10
+ const id = z.string().regex(/^[A-Za-z0-9][A-Za-z0-9._-]*$/);
11
+ const fieldName = z.string().regex(FIELD_NAME);
12
+ const tone = z.enum(['info', 'success', 'warning', 'danger', 'muted']);
13
+ const invisible = ModifierSchema.optional();
14
+ export const FieldNodeSchema = z.strictObject({
15
+ type: z.literal('field'),
16
+ id,
17
+ field: fieldName,
18
+ label: z.string().optional(),
19
+ widget: z.string().min(1).optional(),
20
+ placeholder: z.string().optional(),
21
+ help: z.string().optional(),
22
+ colspan: z.int().min(1).max(4).optional(),
23
+ columns: z.array(fieldName).min(1).optional(),
24
+ invisible,
25
+ readonly: ModifierSchema.optional(),
26
+ required: ModifierSchema.optional(),
27
+ });
28
+ export const ButtonNodeSchema = z.strictObject({
29
+ type: z.literal('button'),
30
+ id,
31
+ label: z.string(),
32
+ action: z.string().min(1),
33
+ params: z.record(z.string(), JsonValueSchema).optional(),
34
+ style: z.enum(['primary', 'secondary', 'danger', 'link']).optional(),
35
+ confirm: z.string().optional(),
36
+ icon: z.string().optional(),
37
+ invisible,
38
+ });
39
+ export const TextNodeSchema = z.strictObject({
40
+ type: z.literal('text'),
41
+ id,
42
+ text: z.string(),
43
+ style: z.enum(['heading', 'paragraph', 'note']).optional(),
44
+ invisible,
45
+ });
46
+ export const SlotNodeSchema = z.strictObject({ type: z.literal('slot'), id, name: z.string().min(1), invisible });
47
+ export const SectionNodeSchema = z.strictObject({
48
+ type: z.literal('section'),
49
+ id,
50
+ title: z.string().optional(),
51
+ description: z.string().optional(),
52
+ columns: z.union([z.literal(1), z.literal(2), z.literal(3), z.literal(4)]).optional(),
53
+ collapsible: z.boolean().optional(),
54
+ invisible,
55
+ get children() {
56
+ return z.array(LayoutNodeSchema);
57
+ },
58
+ }).meta({ id: 'SectionNode' });
59
+ export const TabNodeSchema = z.strictObject({
60
+ type: z.literal('tab'),
61
+ id,
62
+ label: z.string(),
63
+ icon: z.string().optional(),
64
+ invisible,
65
+ get children() {
66
+ return z.array(LayoutNodeSchema);
67
+ },
68
+ }).meta({ id: 'TabNode' });
69
+ export const TabsNodeSchema = z.strictObject({
70
+ type: z.literal('tabs'),
71
+ id,
72
+ invisible,
73
+ children: z.array(TabNodeSchema).min(1),
74
+ }).meta({ id: 'TabsNode' });
75
+ export const LayoutNodeSchema = z
76
+ .discriminatedUnion('type', [
77
+ FieldNodeSchema,
78
+ ButtonNodeSchema,
79
+ TextNodeSchema,
80
+ SlotNodeSchema,
81
+ SectionNodeSchema,
82
+ TabsNodeSchema,
83
+ ])
84
+ .meta({ id: 'LayoutNode' });
85
+ export const StepNodeSchema = z.strictObject({
86
+ type: z.literal('step'),
87
+ id,
88
+ label: z.string(),
89
+ description: z.string().optional(),
90
+ invisible,
91
+ get children() {
92
+ return z.array(LayoutNodeSchema);
93
+ },
94
+ }).meta({ id: 'StepNode' });
95
+ export const WizardNodeSchema = z.strictObject({
96
+ type: z.literal('wizard'),
97
+ id,
98
+ children: z.array(StepNodeSchema).min(1),
99
+ }).meta({ id: 'WizardNode' });
100
+ export const SectionsNodeSchema = z.strictObject({
101
+ type: z.literal('sections'),
102
+ id,
103
+ get children() {
104
+ return z.array(LayoutNodeSchema);
105
+ },
106
+ }).meta({ id: 'SectionsNode' });
107
+ export const StatButtonSchema = z.strictObject({
108
+ id,
109
+ label: z.string(),
110
+ action: z.string().min(1),
111
+ field: fieldName.optional(),
112
+ icon: z.string().optional(),
113
+ invisible,
114
+ });
115
+ export const RibbonSchema = z.strictObject({ id, label: z.string(), tone: tone.optional(), invisible });
116
+ export const AlertSchema = z.strictObject({ id, message: z.string(), tone: tone.optional(), invisible });
117
+ export const SheetNodeSchema = z.strictObject({
118
+ type: z.literal('sheet'),
119
+ id,
120
+ title: z
121
+ .strictObject({
122
+ field: fieldName,
123
+ subtitleField: fieldName.optional(),
124
+ avatarField: fieldName.optional(),
125
+ placeholder: z.string().optional(),
126
+ })
127
+ .optional(),
128
+ statusbar: z
129
+ .strictObject({
130
+ field: fieldName,
131
+ visibleStates: z.array(z.union([z.string(), z.number()])).optional(),
132
+ clickable: z.boolean().optional(),
133
+ })
134
+ .optional(),
135
+ buttons: z.array(ButtonNodeSchema).optional(),
136
+ statButtons: z.array(StatButtonSchema).optional(),
137
+ ribbon: RibbonSchema.optional(),
138
+ alerts: z.array(AlertSchema).optional(),
139
+ get children() {
140
+ return z.array(LayoutNodeSchema);
141
+ },
142
+ sidePanel: SlotNodeSchema.optional(),
143
+ }).meta({ id: 'SheetNode' });
144
+ export const RootLayoutSchema = z
145
+ .discriminatedUnion('type', [SheetNodeSchema, SectionsNodeSchema, TabsNodeSchema, WizardNodeSchema])
146
+ .meta({ id: 'RootLayout' });
147
+ //# sourceMappingURL=layout.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/layout.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type * as z from 'zod';
2
+ import type { Page } from './page.mjs';
3
+ import type { PageSchema } from './page.mjs';
4
+ import type { FieldNode, FieldNodeSchema, ButtonNode, ButtonNodeSchema, SheetNode, SheetNodeSchema, StepNode, StepNodeSchema, TabNode, TabNodeSchema, LayoutNode, LayoutNodeSchema, RootLayout, RootLayoutSchema } from './layout.mjs';
5
+ /**
6
+ * Compile-time proof that the hand-written interfaces (the public types, with
7
+ * their docs) and the schemas (what validation actually checks) describe the
8
+ * same thing. If either side changes alone, `typecheck` fails here.
9
+ */
10
+ type Same<A, B> = [A] extends [B] ? ([B] extends [A] ? true : false) : false;
11
+ type Assert<T extends true> = T;
12
+ export type Checks = [
13
+ Assert<Same<z.infer<typeof FieldNodeSchema>, FieldNode>>,
14
+ Assert<Same<z.infer<typeof ButtonNodeSchema>, ButtonNode>>,
15
+ Assert<Same<z.infer<typeof TabNodeSchema>, TabNode>>,
16
+ Assert<Same<z.infer<typeof StepNodeSchema>, StepNode>>,
17
+ Assert<Same<z.infer<typeof SheetNodeSchema>, SheetNode>>,
18
+ Assert<Same<z.infer<typeof LayoutNodeSchema>, LayoutNode>>,
19
+ Assert<Same<z.infer<typeof RootLayoutSchema>, RootLayout>>,
20
+ Assert<Same<z.infer<typeof PageSchema>, Page>>
21
+ ];
22
+ export {};
@@ -0,0 +1,22 @@
1
+ import type * as z from 'zod';
2
+ import type { Page } from './page';
3
+ import type { PageSchema } from './page';
4
+ import type { FieldNode, FieldNodeSchema, ButtonNode, ButtonNodeSchema, SheetNode, SheetNodeSchema, StepNode, StepNodeSchema, TabNode, TabNodeSchema, LayoutNode, LayoutNodeSchema, RootLayout, RootLayoutSchema } from './layout';
5
+ /**
6
+ * Compile-time proof that the hand-written interfaces (the public types, with
7
+ * their docs) and the schemas (what validation actually checks) describe the
8
+ * same thing. If either side changes alone, `typecheck` fails here.
9
+ */
10
+ type Same<A, B> = [A] extends [B] ? ([B] extends [A] ? true : false) : false;
11
+ type Assert<T extends true> = T;
12
+ export type Checks = [
13
+ Assert<Same<z.infer<typeof FieldNodeSchema>, FieldNode>>,
14
+ Assert<Same<z.infer<typeof ButtonNodeSchema>, ButtonNode>>,
15
+ Assert<Same<z.infer<typeof TabNodeSchema>, TabNode>>,
16
+ Assert<Same<z.infer<typeof StepNodeSchema>, StepNode>>,
17
+ Assert<Same<z.infer<typeof SheetNodeSchema>, SheetNode>>,
18
+ Assert<Same<z.infer<typeof LayoutNodeSchema>, LayoutNode>>,
19
+ Assert<Same<z.infer<typeof RootLayoutSchema>, RootLayout>>,
20
+ Assert<Same<z.infer<typeof PageSchema>, Page>>
21
+ ];
22
+ export {};
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=layout.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.types.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/layout.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=layout.types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"layout.types.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/layout.types.ts"],"names":[],"mappings":""}