@formspec/build 0.1.0-alpha.10 → 0.1.0-alpha.12

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 (210) hide show
  1. package/README.md +51 -15
  2. package/dist/__tests__/chain-dsl-canonicalizer.test.d.ts +2 -0
  3. package/dist/__tests__/chain-dsl-canonicalizer.test.d.ts.map +1 -0
  4. package/dist/__tests__/constraint-validator.test.d.ts +2 -0
  5. package/dist/__tests__/constraint-validator.test.d.ts.map +1 -0
  6. package/dist/__tests__/extension-api.test.d.ts +2 -0
  7. package/dist/__tests__/extension-api.test.d.ts.map +1 -0
  8. package/dist/__tests__/fixtures/example-a-builtins.d.ts +18 -0
  9. package/dist/__tests__/fixtures/example-a-builtins.d.ts.map +1 -1
  10. package/dist/__tests__/ir-analyzer.test.d.ts +11 -0
  11. package/dist/__tests__/ir-analyzer.test.d.ts.map +1 -0
  12. package/dist/__tests__/ir-jsdoc-constraints.test.d.ts +12 -0
  13. package/dist/__tests__/ir-jsdoc-constraints.test.d.ts.map +1 -0
  14. package/dist/__tests__/ir-json-schema-generator.test.d.ts +11 -0
  15. package/dist/__tests__/ir-json-schema-generator.test.d.ts.map +1 -0
  16. package/dist/__tests__/ir-ui-schema-generator.test.d.ts +2 -0
  17. package/dist/__tests__/ir-ui-schema-generator.test.d.ts.map +1 -0
  18. package/dist/__tests__/jsdoc-constraints.test.d.ts +4 -4
  19. package/dist/__tests__/parity/fixtures/address/chain-dsl.d.ts +9 -0
  20. package/dist/__tests__/parity/fixtures/address/chain-dsl.d.ts.map +1 -0
  21. package/dist/__tests__/parity/fixtures/address/expected-ir.d.ts +9 -0
  22. package/dist/__tests__/parity/fixtures/address/expected-ir.d.ts.map +1 -0
  23. package/dist/__tests__/parity/fixtures/address/tsdoc.d.ts +19 -0
  24. package/dist/__tests__/parity/fixtures/address/tsdoc.d.ts.map +1 -0
  25. package/dist/__tests__/parity/fixtures/product-config/chain-dsl.d.ts +13 -0
  26. package/dist/__tests__/parity/fixtures/product-config/chain-dsl.d.ts.map +1 -0
  27. package/dist/__tests__/parity/fixtures/product-config/expected-ir.d.ts +9 -0
  28. package/dist/__tests__/parity/fixtures/product-config/expected-ir.d.ts.map +1 -0
  29. package/dist/__tests__/parity/fixtures/product-config/tsdoc.d.ts +28 -0
  30. package/dist/__tests__/parity/fixtures/product-config/tsdoc.d.ts.map +1 -0
  31. package/dist/__tests__/parity/fixtures/user-registration/chain-dsl.d.ts +12 -0
  32. package/dist/__tests__/parity/fixtures/user-registration/chain-dsl.d.ts.map +1 -0
  33. package/dist/__tests__/parity/fixtures/user-registration/expected-ir.d.ts +9 -0
  34. package/dist/__tests__/parity/fixtures/user-registration/expected-ir.d.ts.map +1 -0
  35. package/dist/__tests__/parity/fixtures/user-registration/tsdoc.d.ts +19 -0
  36. package/dist/__tests__/parity/fixtures/user-registration/tsdoc.d.ts.map +1 -0
  37. package/dist/__tests__/parity/parity.test.d.ts +14 -0
  38. package/dist/__tests__/parity/parity.test.d.ts.map +1 -0
  39. package/dist/__tests__/parity/utils.d.ts +139 -0
  40. package/dist/__tests__/parity/utils.d.ts.map +1 -0
  41. package/dist/analyzer/class-analyzer.d.ts +54 -99
  42. package/dist/analyzer/class-analyzer.d.ts.map +1 -1
  43. package/dist/analyzer/jsdoc-constraints.d.ts +78 -30
  44. package/dist/analyzer/jsdoc-constraints.d.ts.map +1 -1
  45. package/dist/analyzer/tsdoc-parser.d.ts +61 -0
  46. package/dist/analyzer/tsdoc-parser.d.ts.map +1 -0
  47. package/dist/browser.cjs +1200 -0
  48. package/dist/browser.cjs.map +1 -0
  49. package/dist/browser.d.ts +12 -6
  50. package/dist/browser.d.ts.map +1 -1
  51. package/dist/browser.js +1147 -44
  52. package/dist/browser.js.map +1 -1
  53. package/dist/build.d.ts +385 -160
  54. package/dist/canonicalize/chain-dsl-canonicalizer.d.ts +18 -0
  55. package/dist/canonicalize/chain-dsl-canonicalizer.d.ts.map +1 -0
  56. package/dist/canonicalize/index.d.ts +8 -0
  57. package/dist/canonicalize/index.d.ts.map +1 -0
  58. package/dist/canonicalize/tsdoc-canonicalizer.d.ts +34 -0
  59. package/dist/canonicalize/tsdoc-canonicalizer.d.ts.map +1 -0
  60. package/dist/cli.cjs +2028 -0
  61. package/dist/cli.cjs.map +1 -0
  62. package/dist/cli.js +1978 -101
  63. package/dist/cli.js.map +1 -1
  64. package/dist/extensions/index.d.ts +8 -0
  65. package/dist/extensions/index.d.ts.map +1 -0
  66. package/dist/extensions/registry.d.ts +55 -0
  67. package/dist/extensions/registry.d.ts.map +1 -0
  68. package/dist/generators/class-schema.d.ts +28 -47
  69. package/dist/generators/class-schema.d.ts.map +1 -1
  70. package/dist/generators/method-schema.d.ts +6 -8
  71. package/dist/generators/method-schema.d.ts.map +1 -1
  72. package/dist/index.cjs +1832 -0
  73. package/dist/index.cjs.map +1 -0
  74. package/dist/index.d.ts +8 -8
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +1779 -114
  77. package/dist/index.js.map +1 -1
  78. package/dist/internals.cjs +2125 -0
  79. package/dist/internals.cjs.map +1 -0
  80. package/dist/internals.d.ts +12 -2
  81. package/dist/internals.d.ts.map +1 -1
  82. package/dist/internals.js +2084 -21
  83. package/dist/internals.js.map +1 -1
  84. package/dist/json-schema/generator.d.ts +10 -5
  85. package/dist/json-schema/generator.d.ts.map +1 -1
  86. package/dist/json-schema/ir-generator.d.ts +84 -0
  87. package/dist/json-schema/ir-generator.d.ts.map +1 -0
  88. package/dist/json-schema/schema.d.ts +16 -0
  89. package/dist/json-schema/schema.d.ts.map +1 -0
  90. package/dist/json-schema/types.d.ts +5 -6
  91. package/dist/json-schema/types.d.ts.map +1 -1
  92. package/dist/ui-schema/generator.d.ts +5 -0
  93. package/dist/ui-schema/generator.d.ts.map +1 -1
  94. package/dist/ui-schema/ir-generator.d.ts +53 -0
  95. package/dist/ui-schema/ir-generator.d.ts.map +1 -0
  96. package/dist/ui-schema/schema.d.ts +357 -0
  97. package/dist/ui-schema/schema.d.ts.map +1 -0
  98. package/dist/ui-schema/types.d.ts +8 -73
  99. package/dist/ui-schema/types.d.ts.map +1 -1
  100. package/dist/validate/constraint-validator.d.ts +66 -0
  101. package/dist/validate/constraint-validator.d.ts.map +1 -0
  102. package/dist/validate/index.d.ts +9 -0
  103. package/dist/validate/index.d.ts.map +1 -0
  104. package/package.json +15 -9
  105. package/dist/__tests__/analyzer-edge-cases.test.d.ts +0 -13
  106. package/dist/__tests__/analyzer-edge-cases.test.d.ts.map +0 -1
  107. package/dist/__tests__/analyzer-edge-cases.test.js +0 -376
  108. package/dist/__tests__/analyzer-edge-cases.test.js.map +0 -1
  109. package/dist/__tests__/analyzer.test.d.ts +0 -5
  110. package/dist/__tests__/analyzer.test.d.ts.map +0 -1
  111. package/dist/__tests__/analyzer.test.js +0 -190
  112. package/dist/__tests__/analyzer.test.js.map +0 -1
  113. package/dist/__tests__/cli.test.js +0 -178
  114. package/dist/__tests__/cli.test.js.map +0 -1
  115. package/dist/__tests__/codegen.test.d.ts +0 -5
  116. package/dist/__tests__/codegen.test.d.ts.map +0 -1
  117. package/dist/__tests__/codegen.test.js +0 -506
  118. package/dist/__tests__/codegen.test.js.map +0 -1
  119. package/dist/__tests__/decorator-pipeline.test.d.ts +0 -11
  120. package/dist/__tests__/decorator-pipeline.test.d.ts.map +0 -1
  121. package/dist/__tests__/decorator-pipeline.test.js +0 -460
  122. package/dist/__tests__/decorator-pipeline.test.js.map +0 -1
  123. package/dist/__tests__/edge-cases.test.js +0 -215
  124. package/dist/__tests__/edge-cases.test.js.map +0 -1
  125. package/dist/__tests__/fixtures/edge-cases.js +0 -137
  126. package/dist/__tests__/fixtures/edge-cases.js.map +0 -1
  127. package/dist/__tests__/fixtures/example-a-builtins.js +0 -100
  128. package/dist/__tests__/fixtures/example-a-builtins.js.map +0 -1
  129. package/dist/__tests__/fixtures/example-b-decorators.d.ts +0 -5
  130. package/dist/__tests__/fixtures/example-b-decorators.d.ts.map +0 -1
  131. package/dist/__tests__/fixtures/example-b-decorators.js +0 -5
  132. package/dist/__tests__/fixtures/example-b-decorators.js.map +0 -1
  133. package/dist/__tests__/fixtures/example-b-extended.d.ts +0 -5
  134. package/dist/__tests__/fixtures/example-b-extended.d.ts.map +0 -1
  135. package/dist/__tests__/fixtures/example-b-extended.js +0 -60
  136. package/dist/__tests__/fixtures/example-b-extended.js.map +0 -1
  137. package/dist/__tests__/fixtures/example-c-custom.d.ts +0 -5
  138. package/dist/__tests__/fixtures/example-c-custom.d.ts.map +0 -1
  139. package/dist/__tests__/fixtures/example-c-custom.js +0 -61
  140. package/dist/__tests__/fixtures/example-c-custom.js.map +0 -1
  141. package/dist/__tests__/fixtures/example-c-decorators.d.ts +0 -5
  142. package/dist/__tests__/fixtures/example-c-decorators.d.ts.map +0 -1
  143. package/dist/__tests__/fixtures/example-c-decorators.js +0 -4
  144. package/dist/__tests__/fixtures/example-c-decorators.js.map +0 -1
  145. package/dist/__tests__/fixtures/example-d-mixed-decorators.d.ts +0 -6
  146. package/dist/__tests__/fixtures/example-d-mixed-decorators.d.ts.map +0 -1
  147. package/dist/__tests__/fixtures/example-d-mixed-decorators.js +0 -75
  148. package/dist/__tests__/fixtures/example-d-mixed-decorators.js.map +0 -1
  149. package/dist/__tests__/fixtures/example-e-decorators.d.ts +0 -11
  150. package/dist/__tests__/fixtures/example-e-decorators.d.ts.map +0 -1
  151. package/dist/__tests__/fixtures/example-e-decorators.js +0 -10
  152. package/dist/__tests__/fixtures/example-e-decorators.js.map +0 -1
  153. package/dist/__tests__/fixtures/example-e-no-namespace.d.ts +0 -5
  154. package/dist/__tests__/fixtures/example-e-no-namespace.d.ts.map +0 -1
  155. package/dist/__tests__/fixtures/example-e-no-namespace.js +0 -61
  156. package/dist/__tests__/fixtures/example-e-no-namespace.js.map +0 -1
  157. package/dist/__tests__/fixtures/example-interface-types.js +0 -8
  158. package/dist/__tests__/fixtures/example-interface-types.js.map +0 -1
  159. package/dist/__tests__/fixtures/example-jsdoc-constraints.d.ts +0 -16
  160. package/dist/__tests__/fixtures/example-jsdoc-constraints.d.ts.map +0 -1
  161. package/dist/__tests__/fixtures/example-jsdoc-constraints.js +0 -98
  162. package/dist/__tests__/fixtures/example-jsdoc-constraints.js.map +0 -1
  163. package/dist/__tests__/fixtures/example-nested-class.d.ts +0 -45
  164. package/dist/__tests__/fixtures/example-nested-class.d.ts.map +0 -1
  165. package/dist/__tests__/fixtures/example-nested-class.js +0 -248
  166. package/dist/__tests__/fixtures/example-nested-class.js.map +0 -1
  167. package/dist/__tests__/fixtures/sample-forms.js +0 -78
  168. package/dist/__tests__/fixtures/sample-forms.js.map +0 -1
  169. package/dist/__tests__/generator.test.js +0 -234
  170. package/dist/__tests__/generator.test.js.map +0 -1
  171. package/dist/__tests__/integration.test.js +0 -161
  172. package/dist/__tests__/integration.test.js.map +0 -1
  173. package/dist/__tests__/interface-types.test.d.ts +0 -11
  174. package/dist/__tests__/interface-types.test.d.ts.map +0 -1
  175. package/dist/__tests__/interface-types.test.js +0 -404
  176. package/dist/__tests__/interface-types.test.js.map +0 -1
  177. package/dist/__tests__/jsdoc-constraints.test.js +0 -465
  178. package/dist/__tests__/jsdoc-constraints.test.js.map +0 -1
  179. package/dist/__tests__/write-schemas.test.js +0 -198
  180. package/dist/__tests__/write-schemas.test.js.map +0 -1
  181. package/dist/analyzer/class-analyzer.js +0 -377
  182. package/dist/analyzer/class-analyzer.js.map +0 -1
  183. package/dist/analyzer/decorator-extractor.d.ts +0 -78
  184. package/dist/analyzer/decorator-extractor.d.ts.map +0 -1
  185. package/dist/analyzer/decorator-extractor.js +0 -336
  186. package/dist/analyzer/decorator-extractor.js.map +0 -1
  187. package/dist/analyzer/jsdoc-constraints.js +0 -153
  188. package/dist/analyzer/jsdoc-constraints.js.map +0 -1
  189. package/dist/analyzer/program.js +0 -114
  190. package/dist/analyzer/program.js.map +0 -1
  191. package/dist/analyzer/type-converter.d.ts +0 -75
  192. package/dist/analyzer/type-converter.d.ts.map +0 -1
  193. package/dist/analyzer/type-converter.js +0 -474
  194. package/dist/analyzer/type-converter.js.map +0 -1
  195. package/dist/codegen/index.d.ts +0 -75
  196. package/dist/codegen/index.d.ts.map +0 -1
  197. package/dist/codegen/index.js +0 -597
  198. package/dist/codegen/index.js.map +0 -1
  199. package/dist/generators/class-schema.js +0 -140
  200. package/dist/generators/class-schema.js.map +0 -1
  201. package/dist/generators/method-schema.js +0 -108
  202. package/dist/generators/method-schema.js.map +0 -1
  203. package/dist/json-schema/generator.js +0 -166
  204. package/dist/json-schema/generator.js.map +0 -1
  205. package/dist/json-schema/types.js +0 -33
  206. package/dist/json-schema/types.js.map +0 -1
  207. package/dist/ui-schema/generator.js +0 -148
  208. package/dist/ui-schema/generator.js.map +0 -1
  209. package/dist/ui-schema/types.js +0 -8
  210. package/dist/ui-schema/types.js.map +0 -1
@@ -1,215 +0,0 @@
1
- /**
2
- * Edge case and error handling tests.
3
- *
4
- * These tests verify correct behavior in unusual or boundary situations.
5
- */
6
- import { describe, it, expect } from "vitest";
7
- import { buildFormSchemas } from "../index.js";
8
- import { formspec, field, group, when, is } from "@formspec/dsl";
9
- describe("Edge cases: Empty and minimal forms", () => {
10
- it("should handle form with no fields", () => {
11
- const emptyForm = formspec();
12
- const { jsonSchema, uiSchema } = buildFormSchemas(emptyForm);
13
- expect(jsonSchema.type).toBe("object");
14
- expect(jsonSchema.properties).toEqual({});
15
- expect(jsonSchema.required).toBeUndefined();
16
- expect(uiSchema.type).toBe("VerticalLayout");
17
- expect(uiSchema.elements).toEqual([]);
18
- });
19
- it("should handle empty group", () => {
20
- const form = formspec(group("Empty Group"));
21
- const { jsonSchema, uiSchema } = buildFormSchemas(form);
22
- expect(jsonSchema.properties).toEqual({});
23
- expect(uiSchema.elements).toHaveLength(1);
24
- expect(uiSchema.elements[0]).toMatchObject({
25
- type: "Group",
26
- label: "Empty Group",
27
- elements: [],
28
- });
29
- });
30
- it("should handle empty conditional", () => {
31
- const form = formspec(field.enum("type", ["a", "b"]), when(is("type", "a")));
32
- const { jsonSchema, uiSchema } = buildFormSchemas(form);
33
- // Only the enum field should exist
34
- expect(Object.keys(jsonSchema.properties ?? {})).toEqual(["type"]);
35
- expect(uiSchema.elements).toHaveLength(1);
36
- });
37
- it("should handle empty array field", () => {
38
- const form = formspec(field.array("items"));
39
- const { jsonSchema } = buildFormSchemas(form);
40
- expect(jsonSchema.properties?.["items"]).toMatchObject({
41
- type: "array",
42
- items: {
43
- type: "object",
44
- properties: {},
45
- },
46
- });
47
- });
48
- it("should handle empty object field", () => {
49
- const form = formspec(field.object("data"));
50
- const { jsonSchema } = buildFormSchemas(form);
51
- expect(jsonSchema.properties?.["data"]).toMatchObject({
52
- type: "object",
53
- properties: {},
54
- });
55
- });
56
- });
57
- describe("Edge cases: Field names", () => {
58
- it("should handle field names with special characters", () => {
59
- const form = formspec(field.text("field_with_underscore"), field.text("field-with-dash"), field.text("field123"));
60
- const { jsonSchema, uiSchema } = buildFormSchemas(form);
61
- expect(jsonSchema.properties?.["field_with_underscore"]).toBeDefined();
62
- expect(jsonSchema.properties?.["field-with-dash"]).toBeDefined();
63
- expect(jsonSchema.properties?.["field123"]).toBeDefined();
64
- // All scopes should be properly formed
65
- expect(uiSchema.elements[0]).toMatchObject({
66
- scope: "#/properties/field_with_underscore",
67
- });
68
- expect(uiSchema.elements[1]).toMatchObject({
69
- scope: "#/properties/field-with-dash",
70
- });
71
- });
72
- it("should handle single character field names", () => {
73
- const form = formspec(field.text("a"), field.number("b"), field.boolean("c"));
74
- const { jsonSchema } = buildFormSchemas(form);
75
- expect(Object.keys(jsonSchema.properties ?? {})).toEqual(["a", "b", "c"]);
76
- });
77
- });
78
- describe("Edge cases: Number constraints", () => {
79
- it("should handle zero as min/max", () => {
80
- const form = formspec(field.number("zeroMin", { min: 0 }), field.number("zeroMax", { max: 0 }), field.number("zeroRange", { min: 0, max: 0 }));
81
- const { jsonSchema } = buildFormSchemas(form);
82
- expect(jsonSchema.properties?.["zeroMin"]).toMatchObject({
83
- type: "number",
84
- minimum: 0,
85
- });
86
- expect(jsonSchema.properties?.["zeroMax"]).toMatchObject({
87
- type: "number",
88
- maximum: 0,
89
- });
90
- expect(jsonSchema.properties?.["zeroRange"]).toMatchObject({
91
- type: "number",
92
- minimum: 0,
93
- maximum: 0,
94
- });
95
- });
96
- it("should handle negative min/max", () => {
97
- const form = formspec(field.number("temperature", { min: -273, max: 1000000 }));
98
- const { jsonSchema } = buildFormSchemas(form);
99
- expect(jsonSchema.properties?.["temperature"]).toMatchObject({
100
- type: "number",
101
- minimum: -273,
102
- maximum: 1000000,
103
- });
104
- });
105
- });
106
- describe("Edge cases: Enum options", () => {
107
- it("should handle single option enum", () => {
108
- const form = formspec(field.enum("singleOption", ["only"]));
109
- const { jsonSchema } = buildFormSchemas(form);
110
- expect(jsonSchema.properties?.["singleOption"]).toMatchObject({
111
- type: "string",
112
- enum: ["only"],
113
- });
114
- });
115
- it("should handle single object option enum", () => {
116
- const form = formspec(field.enum("singleObj", [{ id: "only", label: "Only Option" }]));
117
- const { jsonSchema } = buildFormSchemas(form);
118
- expect(jsonSchema.properties?.["singleObj"]).toMatchObject({
119
- type: "string",
120
- oneOf: [{ const: "only", title: "Only Option" }],
121
- });
122
- });
123
- it("should handle enum with empty string option", () => {
124
- const form = formspec(field.enum("withEmpty", ["", "value"]));
125
- const { jsonSchema } = buildFormSchemas(form);
126
- expect(jsonSchema.properties?.["withEmpty"]).toMatchObject({
127
- type: "string",
128
- enum: ["", "value"],
129
- });
130
- });
131
- });
132
- describe("Edge cases: Conditional values", () => {
133
- it("should handle boolean conditional value", () => {
134
- const form = formspec(field.boolean("enabled"), when(is("enabled", true), field.text("config")));
135
- const { uiSchema } = buildFormSchemas(form);
136
- const conditionalField = uiSchema.elements.find((el) => el.type === "Control" && "scope" in el && el.scope === "#/properties/config");
137
- expect(conditionalField?.rule?.condition.schema).toMatchObject({
138
- const: true,
139
- });
140
- });
141
- it("should handle null conditional value", () => {
142
- const form = formspec(field.text("optional"), when(is("optional", null), field.text("fallback")));
143
- const { uiSchema } = buildFormSchemas(form);
144
- const conditionalField = uiSchema.elements.find((el) => el.type === "Control" && "scope" in el && el.scope === "#/properties/fallback");
145
- expect(conditionalField?.rule?.condition.schema).toMatchObject({
146
- const: null,
147
- });
148
- });
149
- it("should handle number conditional value", () => {
150
- const form = formspec(field.number("quantity"), when(is("quantity", 0), field.text("zeroReason", { label: "Why zero?" })));
151
- const { uiSchema } = buildFormSchemas(form);
152
- const conditionalField = uiSchema.elements.find((el) => el.type === "Control" && "scope" in el && el.scope === "#/properties/zeroReason");
153
- expect(conditionalField?.rule?.condition.schema).toMatchObject({
154
- const: 0,
155
- });
156
- });
157
- });
158
- describe("Edge cases: Array min/max items", () => {
159
- it("should handle minItems of 0", () => {
160
- const form = formspec(field.arrayWithConfig("items", { minItems: 0 }, field.text("name")));
161
- const { jsonSchema } = buildFormSchemas(form);
162
- expect(jsonSchema.properties?.["items"]).toMatchObject({
163
- type: "array",
164
- minItems: 0,
165
- });
166
- });
167
- it("should handle minItems equal to maxItems", () => {
168
- const form = formspec(field.arrayWithConfig("exactFive", { minItems: 5, maxItems: 5 }, field.text("item")));
169
- const { jsonSchema } = buildFormSchemas(form);
170
- expect(jsonSchema.properties?.["exactFive"]).toMatchObject({
171
- type: "array",
172
- minItems: 5,
173
- maxItems: 5,
174
- });
175
- });
176
- });
177
- describe("Edge cases: Deeply nested structures", () => {
178
- it("should handle 3+ levels of nesting", () => {
179
- const form = formspec(field.object("level1", field.object("level2", field.object("level3", field.text("deepValue")))));
180
- const { jsonSchema } = buildFormSchemas(form);
181
- expect(jsonSchema.properties?.["level1"]).toMatchObject({
182
- type: "object",
183
- properties: {
184
- level2: {
185
- type: "object",
186
- properties: {
187
- level3: {
188
- type: "object",
189
- properties: {
190
- deepValue: { type: "string" },
191
- },
192
- },
193
- },
194
- },
195
- },
196
- });
197
- });
198
- it("should handle conditionals inside groups inside conditionals", () => {
199
- const form = formspec(field.enum("outer", ["a", "b"]), when(is("outer", "a"), group("Inner Group", field.enum("inner", ["x", "y"]), when(is("inner", "x"), field.text("deepest")))));
200
- const { jsonSchema, uiSchema } = buildFormSchemas(form);
201
- // All fields should be in schema
202
- expect(Object.keys(jsonSchema.properties ?? {})).toContain("outer");
203
- expect(Object.keys(jsonSchema.properties ?? {})).toContain("inner");
204
- expect(Object.keys(jsonSchema.properties ?? {})).toContain("deepest");
205
- // Find the deepest field and verify it has combined rules
206
- const deepestControl = uiSchema.elements.find((el) => {
207
- if (el.type === "Group") {
208
- return el.elements.some((inner) => inner.type === "Control" && "scope" in inner && inner.scope === "#/properties/deepest");
209
- }
210
- return false;
211
- });
212
- expect(deepestControl).toBeDefined();
213
- });
214
- });
215
- //# sourceMappingURL=edge-cases.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"edge-cases.test.js","sourceRoot":"","sources":["../../src/__tests__/edge-cases.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,eAAe,CAAC;AAEjE,QAAQ,CAAC,qCAAqC,EAAE,GAAG,EAAE;IACnD,EAAE,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC3C,MAAM,SAAS,GAAG,QAAQ,EAAE,CAAC;QAE7B,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAE7D,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACvC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,aAAa,EAAE,CAAC;QAE5C,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;QAC7C,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2BAA2B,EAAE,GAAG,EAAE;QACnC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC;QAE5C,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAExD,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YACzC,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,aAAa;YACpB,QAAQ,EAAE,EAAE;SACb,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,CAAU,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC;QAEtF,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAExD,mCAAmC;QACnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACnE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iCAAiC,EAAE,GAAG,EAAE;QACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QAE5C,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE9C,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;YACrD,IAAI,EAAE,OAAO;YACb,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE,EAAE;aACf;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;QAE5C,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE9C,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC;YACpD,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,EAAE;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACvC,EAAE,CAAC,mDAAmD,EAAE,GAAG,EAAE;QAC3D,MAAM,IAAI,GAAG,QAAQ,CACnB,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,EACnC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,EAC7B,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CACvB,CAAC;QAEF,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAExD,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACvE,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QACjE,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAE1D,uCAAuC;QACvC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YACzC,KAAK,EAAE,oCAAoC;SAC5C,CAAC,CAAC;QACH,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC;YACzC,KAAK,EAAE,8BAA8B;SACtC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;QAE9E,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE9C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,+BAA+B,EAAE,GAAG,EAAE;QACvC,MAAM,IAAI,GAAG,QAAQ,CACnB,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EACnC,KAAK,CAAC,MAAM,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,EACnC,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAC9C,CAAC;QAEF,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE9C,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;YACvD,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,CAAC;SACX,CAAC,CAAC;QACH,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC;YACvD,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,CAAC;SACX,CAAC,CAAC;QACH,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;YACzD,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,CAAC;YACV,OAAO,EAAE,CAAC;SACX,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gCAAgC,EAAE,GAAG,EAAE;QACxC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;QAEhF,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE9C,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC;YAC3D,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,CAAC,GAAG;YACb,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACxC,EAAE,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC1C,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,MAAM,CAAU,CAAC,CAAC,CAAC;QAErE,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE9C,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,aAAa,CAAC;YAC5D,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,MAAM,CAAC;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAU,CAAC,CAAC,CAAC;QAEhG,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE9C,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;YACzD,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC;SACjD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6CAA6C,EAAE,GAAG,EAAE;QACrD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,OAAO,CAAU,CAAC,CAAC,CAAC;QAEvE,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE9C,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;YACzD,IAAI,EAAE,QAAQ;YACd,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC;SACpB,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,yCAAyC,EAAE,GAAG,EAAE;QACjD,MAAM,IAAI,GAAG,QAAQ,CACnB,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EACxB,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAChD,CAAC;QAEF,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE5C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAC7C,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,KAAK,qBAAqB,CACrF,CAAC;QACF,MAAM,CAAC,gBAAgB,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YAC7D,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC9C,MAAM,IAAI,GAAG,QAAQ,CACnB,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,EACtB,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CACnD,CAAC;QAEF,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE5C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAC7C,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,KAAK,uBAAuB,CACvF,CAAC;QACF,MAAM,CAAC,gBAAgB,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YAC7D,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAChD,MAAM,IAAI,GAAG,QAAQ,CACnB,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,EACxB,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,CAAC,CAC1E,CAAC;QAEF,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE5C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAC7C,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,EAAE,IAAI,EAAE,CAAC,KAAK,KAAK,yBAAyB,CACzF,CAAC;QACF,MAAM,CAAC,gBAAgB,EAAE,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC;YAC7D,KAAK,EAAE,CAAC;SACT,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iCAAiC,EAAE,GAAG,EAAE;IAC/C,EAAE,CAAC,6BAA6B,EAAE,GAAG,EAAE;QACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,eAAe,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAE3F,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE9C,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;YACrD,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,GAAG,EAAE;QAClD,MAAM,IAAI,GAAG,QAAQ,CACnB,KAAK,CAAC,eAAe,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CACrF,CAAC;QAEF,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE9C,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC;YACzD,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,CAAC;SACZ,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;IACpD,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,IAAI,GAAG,QAAQ,CACnB,KAAK,CAAC,MAAM,CACV,QAAQ,EACR,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CACxE,CACF,CAAC;QAEF,MAAM,EAAE,UAAU,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAE9C,MAAM,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC;YACtD,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE;gBACV,MAAM,EAAE;oBACN,IAAI,EAAE,QAAQ;oBACd,UAAU,EAAE;wBACV,MAAM,EAAE;4BACN,IAAI,EAAE,QAAQ;4BACd,UAAU,EAAE;gCACV,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;6BAC9B;yBACF;qBACF;iBACF;aACF;SACF,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACtE,MAAM,IAAI,GAAG,QAAQ,CACnB,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,CAAU,CAAC,EACxC,IAAI,CACF,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAChB,KAAK,CACH,aAAa,EACb,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,CAAU,CAAC,EACxC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAC9C,CACF,CACF,CAAC;QAEF,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAExD,iCAAiC;QACjC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACpE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACpE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAEtE,0DAA0D;QAC1D,MAAM,cAAc,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE;YACnD,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACxB,OAAO,EAAE,CAAC,QAAQ,CAAC,IAAI,CACrB,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,IAAI,KAAK,CAAC,KAAK,KAAK,sBAAsB,CACzF,CAAC;YACJ,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,137 +0,0 @@
1
- /**
2
- * Edge case fixtures for testing type converter and analyzer.
3
- *
4
- * These test various TypeScript type patterns that might cause issues.
5
- */
6
- // ============================================================================
7
- // Complex Union Types
8
- // ============================================================================
9
- /**
10
- * Mixed type union (not just literals) - should produce oneOf.
11
- */
12
- export class MixedUnionTypes {
13
- // string | number - incompatible union
14
- mixedPrimitive;
15
- // Complex union with object and primitive
16
- complexUnion;
17
- // Union of different object shapes
18
- objectUnion;
19
- }
20
- // ============================================================================
21
- // Nullable and Optional Patterns
22
- // ============================================================================
23
- /**
24
- * Various nullable patterns.
25
- */
26
- export class NullablePatterns {
27
- // Nullable string (T | null)
28
- nullableString;
29
- // Undefined union (T | undefined) - different from optional
30
- undefinedString;
31
- // Both nullable and optional
32
- optionalNullable;
33
- // Triple union (T | null | undefined)
34
- tripleUnion;
35
- // Nullable enum
36
- nullableStatus;
37
- }
38
- // ============================================================================
39
- // Array Edge Cases
40
- // ============================================================================
41
- /**
42
- * Various array patterns.
43
- */
44
- export class ArrayEdgeCases {
45
- // Array of primitives
46
- strings;
47
- // Array of unions
48
- mixedArray;
49
- // Nullable array
50
- nullableArray;
51
- // Array of objects
52
- objectArray;
53
- // Empty array type (any[])
54
- anyArray;
55
- // Nested arrays
56
- nestedArray;
57
- }
58
- // ============================================================================
59
- // Object Edge Cases
60
- // ============================================================================
61
- /**
62
- * Various object type patterns.
63
- */
64
- export class ObjectEdgeCases {
65
- // Empty object - Allow this as a test case for empty object type handling
66
- // eslint-disable-next-line @typescript-eslint/no-empty-object-type
67
- emptyObject;
68
- // Record type
69
- stringRecord;
70
- // Deeply nested object
71
- deepNested;
72
- // Object with optional properties
73
- optionalProps;
74
- }
75
- // ============================================================================
76
- // Special Types
77
- // ============================================================================
78
- /**
79
- * Special TypeScript types.
80
- */
81
- export class SpecialTypes {
82
- // any type (should handle gracefully)
83
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
84
- anyField;
85
- // unknown type
86
- unknownField;
87
- // never type (edge case)
88
- // Note: never is not typically used as a property type
89
- // void type - Test case for void type handling, used in FormSpec codegen tests
90
- // eslint-disable-next-line @typescript-eslint/no-invalid-void-type
91
- voidField;
92
- // Date (built-in object)
93
- dateField;
94
- }
95
- // ============================================================================
96
- // Enum Variations
97
- // ============================================================================
98
- /**
99
- * Various enum patterns.
100
- */
101
- export class EnumVariations {
102
- // Single literal (degenerates to const)
103
- singleLiteral;
104
- // Number literal enum
105
- numberEnum;
106
- // Mixed literal types (should NOT be valid enum)
107
- // Note: This is a union, not an enum
108
- mixedLiterals;
109
- // Large enum (many options)
110
- largeEnum;
111
- }
112
- // ============================================================================
113
- // Class without decorators (for testing analyzer handles undecorated classes)
114
- // ============================================================================
115
- /**
116
- * Simple class with no decorators for testing analyzer edge cases.
117
- */
118
- export class NoDecoratorsClass {
119
- // Regular string field
120
- name;
121
- // Optional number field
122
- count;
123
- // Boolean field
124
- active;
125
- }
126
- // ============================================================================
127
- // Invalid FormSpec-like Objects (for testing isFormSpec)
128
- // ============================================================================
129
- export const notFormSpec1 = null;
130
- export const notFormSpec2 = undefined;
131
- export const notFormSpec3 = "string";
132
- export const notFormSpec4 = 123;
133
- export const notFormSpec5 = { notElements: [] };
134
- export const notFormSpec6 = { elements: "not-array" };
135
- export const notFormSpec7 = { elements: [{ missingType: true }] };
136
- export const notFormSpec8 = { elements: [null] };
137
- //# sourceMappingURL=edge-cases.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"edge-cases.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/edge-cases.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,eAAe;IAC1B,uCAAuC;IACvC,cAAc,CAAmB;IAEjC,0CAA0C;IAC1C,YAAY,CAAgC;IAE5C,mCAAmC;IACnC,WAAW,CAAiE;CAC7E;AAED,+EAA+E;AAC/E,iCAAiC;AACjC,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,gBAAgB;IAC3B,6BAA6B;IAC7B,cAAc,CAAiB;IAE/B,4DAA4D;IAC5D,eAAe,CAAsB;IAErC,6BAA6B;IAC7B,gBAAgB,CAAiB;IAEjC,sCAAsC;IACtC,WAAW,CAA6B;IAExC,gBAAgB;IAChB,cAAc,CAAgC;CAC/C;AAED,+EAA+E;AAC/E,mBAAmB;AACnB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,cAAc;IACzB,sBAAsB;IACtB,OAAO,CAAY;IAEnB,kBAAkB;IAClB,UAAU,CAAuB;IAEjC,iBAAiB;IACjB,aAAa,CAAmB;IAEhC,mBAAmB;IACnB,WAAW,CAAkC;IAE7C,2BAA2B;IAC3B,QAAQ,CAAa;IAErB,gBAAgB;IAChB,WAAW,CAAc;CAC1B;AAED,+EAA+E;AAC/E,oBAAoB;AACpB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,eAAe;IAC1B,0EAA0E;IAC1E,mEAAmE;IACnE,WAAW,CAAM;IAEjB,cAAc;IACd,YAAY,CAA0B;IAEtC,uBAAuB;IACvB,UAAU,CAQR;IAEF,kCAAkC;IAClC,aAAa,CAGX;CACH;AAED,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,YAAY;IACvB,sCAAsC;IACtC,8DAA8D;IAC9D,QAAQ,CAAO;IAEf,eAAe;IACf,YAAY,CAAW;IAEvB,yBAAyB;IACzB,uDAAuD;IAEvD,+EAA+E;IAC/E,mEAAmE;IACnE,SAAS,CAAQ;IAEjB,yBAAyB;IACzB,SAAS,CAAQ;CAClB;AAED,+EAA+E;AAC/E,kBAAkB;AAClB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,cAAc;IACzB,wCAAwC;IACxC,aAAa,CAAU;IAEvB,sBAAsB;IACtB,UAAU,CAAa;IAEvB,iDAAiD;IACjD,qCAAqC;IACrC,aAAa,CAAiB;IAE9B,4BAA4B;IAC5B,SAAS,CAA6D;CACvE;AAED,+EAA+E;AAC/E,8EAA8E;AAC9E,+EAA+E;AAE/E;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAC5B,uBAAuB;IACvB,IAAI,CAAU;IAEd,wBAAwB;IACxB,KAAK,CAAU;IAEf,gBAAgB;IAChB,MAAM,CAAW;CAClB;AAED,+EAA+E;AAC/E,yDAAyD;AACzD,+EAA+E;AAE/E,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAC;AACjC,MAAM,CAAC,MAAM,YAAY,GAAG,SAAS,CAAC;AACtC,MAAM,CAAC,MAAM,YAAY,GAAG,QAAQ,CAAC;AACrC,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAChC,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;AAChD,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AACtD,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,QAAQ,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;AAClE,MAAM,CAAC,MAAM,YAAY,GAAG,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC"}
@@ -1,100 +0,0 @@
1
- var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
- function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
- var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
- var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
- var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
- var _, done = false;
7
- for (var i = decorators.length - 1; i >= 0; i--) {
8
- var context = {};
9
- for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
- for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
- context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
- var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
- if (kind === "accessor") {
14
- if (result === void 0) continue;
15
- if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
- if (_ = accept(result.get)) descriptor.get = _;
17
- if (_ = accept(result.set)) descriptor.set = _;
18
- if (_ = accept(result.init)) initializers.unshift(_);
19
- }
20
- else if (_ = accept(result)) {
21
- if (kind === "field") initializers.unshift(_);
22
- else descriptor[key] = _;
23
- }
24
- }
25
- if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
- done = true;
27
- };
28
- var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
- var useValue = arguments.length > 2;
30
- for (var i = 0; i < initializers.length; i++) {
31
- value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
- }
33
- return useValue ? value : void 0;
34
- };
35
- import { Field, Minimum, Maximum, ExclusiveMinimum, MinLength, MaxLength, Pattern, Group, ShowWhen, EnumOptions, } from "@formspec/decorators";
36
- let ExampleAForm = (() => {
37
- let _name_decorators;
38
- let _name_initializers = [];
39
- let _name_extraInitializers = [];
40
- let _age_decorators;
41
- let _age_initializers = [];
42
- let _age_extraInitializers = [];
43
- let _score_decorators;
44
- let _score_initializers = [];
45
- let _score_extraInitializers = [];
46
- let _email_decorators;
47
- let _email_initializers = [];
48
- let _email_extraInitializers = [];
49
- let _country_decorators;
50
- let _country_initializers = [];
51
- let _country_extraInitializers = [];
52
- let _state_decorators;
53
- let _state_initializers = [];
54
- let _state_extraInitializers = [];
55
- let _fax_decorators;
56
- let _fax_initializers = [];
57
- let _fax_extraInitializers = [];
58
- let _role_decorators;
59
- let _role_initializers = [];
60
- let _role_extraInitializers = [];
61
- return class ExampleAForm {
62
- static {
63
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
64
- _name_decorators = [Field({ displayName: "Full Name", description: "Your legal name" }), MinLength(2), MaxLength(100)];
65
- _age_decorators = [Field({ displayName: "Age" }), Minimum(0), Maximum(150)];
66
- _score_decorators = [Field({ displayName: "Score" }), ExclusiveMinimum(0)];
67
- _email_decorators = [Field({ displayName: "Email" }), Pattern("^[^@]+@[^@]+$")];
68
- _country_decorators = [Group("Preferences"), Field({ displayName: "Country" }), EnumOptions([
69
- { id: "us", label: "United States" },
70
- { id: "ca", label: "Canada" },
71
- ])];
72
- _state_decorators = [ShowWhen({ field: "country", value: "us" }), Field({ displayName: "State" })];
73
- _fax_decorators = [Field({ displayName: "Fax Number" })];
74
- _role_decorators = [Field({ displayName: "Role" })];
75
- __esDecorate(null, null, _name_decorators, { kind: "field", name: "name", static: false, private: false, access: { has: obj => "name" in obj, get: obj => obj.name, set: (obj, value) => { obj.name = value; } }, metadata: _metadata }, _name_initializers, _name_extraInitializers);
76
- __esDecorate(null, null, _age_decorators, { kind: "field", name: "age", static: false, private: false, access: { has: obj => "age" in obj, get: obj => obj.age, set: (obj, value) => { obj.age = value; } }, metadata: _metadata }, _age_initializers, _age_extraInitializers);
77
- __esDecorate(null, null, _score_decorators, { kind: "field", name: "score", static: false, private: false, access: { has: obj => "score" in obj, get: obj => obj.score, set: (obj, value) => { obj.score = value; } }, metadata: _metadata }, _score_initializers, _score_extraInitializers);
78
- __esDecorate(null, null, _email_decorators, { kind: "field", name: "email", static: false, private: false, access: { has: obj => "email" in obj, get: obj => obj.email, set: (obj, value) => { obj.email = value; } }, metadata: _metadata }, _email_initializers, _email_extraInitializers);
79
- __esDecorate(null, null, _country_decorators, { kind: "field", name: "country", static: false, private: false, access: { has: obj => "country" in obj, get: obj => obj.country, set: (obj, value) => { obj.country = value; } }, metadata: _metadata }, _country_initializers, _country_extraInitializers);
80
- __esDecorate(null, null, _state_decorators, { kind: "field", name: "state", static: false, private: false, access: { has: obj => "state" in obj, get: obj => obj.state, set: (obj, value) => { obj.state = value; } }, metadata: _metadata }, _state_initializers, _state_extraInitializers);
81
- __esDecorate(null, null, _fax_decorators, { kind: "field", name: "fax", static: false, private: false, access: { has: obj => "fax" in obj, get: obj => obj.fax, set: (obj, value) => { obj.fax = value; } }, metadata: _metadata }, _fax_initializers, _fax_extraInitializers);
82
- __esDecorate(null, null, _role_decorators, { kind: "field", name: "role", static: false, private: false, access: { has: obj => "role" in obj, get: obj => obj.role, set: (obj, value) => { obj.role = value; } }, metadata: _metadata }, _role_initializers, _role_extraInitializers);
83
- if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
84
- }
85
- name = __runInitializers(this, _name_initializers, void 0);
86
- age = (__runInitializers(this, _name_extraInitializers), __runInitializers(this, _age_initializers, void 0));
87
- score = (__runInitializers(this, _age_extraInitializers), __runInitializers(this, _score_initializers, void 0));
88
- email = (__runInitializers(this, _score_extraInitializers), __runInitializers(this, _email_initializers, void 0));
89
- country = (__runInitializers(this, _email_extraInitializers), __runInitializers(this, _country_initializers, void 0));
90
- state = (__runInitializers(this, _country_extraInitializers), __runInitializers(this, _state_initializers, void 0));
91
- /** @deprecated Use email instead */
92
- fax = (__runInitializers(this, _state_extraInitializers), __runInitializers(this, _fax_initializers, void 0));
93
- role = (__runInitializers(this, _fax_extraInitializers), __runInitializers(this, _role_initializers, "user"));
94
- constructor() {
95
- __runInitializers(this, _role_extraInitializers);
96
- }
97
- };
98
- })();
99
- export { ExampleAForm };
100
- //# sourceMappingURL=example-a-builtins.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"example-a-builtins.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/example-a-builtins.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EACL,KAAK,EACL,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,OAAO,EACP,KAAK,EACL,QAAQ,EACR,WAAW,GACZ,MAAM,sBAAsB,CAAC;IAEjB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;iBAAZ,YAAY;;;gCACtB,KAAK,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC,EACnE,SAAS,CAAC,CAAC,CAAC,EACZ,SAAS,CAAC,GAAG,CAAC;+BAGd,KAAK,CAAC,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAC7B,OAAO,CAAC,CAAC,CAAC,EACV,OAAO,CAAC,GAAG,CAAC;iCAGZ,KAAK,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAC/B,gBAAgB,CAAC,CAAC,CAAC;iCAGnB,KAAK,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC,EAC/B,OAAO,CAAC,eAAe,CAAC;mCAGxB,KAAK,CAAC,aAAa,CAAC,EACpB,KAAK,CAAC,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,EACjC,WAAW,CAAC;oBACX,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE;oBACpC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;iBAC9B,CAAC;iCAGD,QAAQ,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EAC3C,KAAK,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;+BAI/B,KAAK,CAAC,EAAE,WAAW,EAAE,YAAY,EAAE,CAAC;gCAGpC,KAAK,CAAC,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC;YA/B/B,8JAAA,IAAI,6BAAJ,IAAI,mFAAU;YAKd,2JAAA,GAAG,6BAAH,GAAG,iFAAU;YAIb,iKAAA,KAAK,6BAAL,KAAK,qFAAU;YAIf,iKAAA,KAAK,6BAAL,KAAK,qFAAU;YAQf,uKAAA,OAAO,6BAAP,OAAO,yFAAe;YAItB,iKAAA,KAAK,6BAAL,KAAK,qFAAU;YAIf,2JAAA,GAAG,6BAAH,GAAG,iFAAU;YAGb,8JAAA,IAAI,6BAAJ,IAAI,mFAA4B;;;QAhChC,IAAI,uDAAU;QAKd,GAAG,0GAAU;QAIb,KAAK,2GAAU;QAIf,KAAK,6GAAU;QAQf,OAAO,+GAAe;QAItB,KAAK,+GAAU;QAEf,oCAAoC;QAEpC,GAAG,2GAAU;QAGb,IAAI,iGAAqB,MAAM,GAAC;;;;;;SApCrB,YAAY"}
@@ -1,5 +0,0 @@
1
- import type { FieldOptions } from "@formspec/decorators";
2
- export declare const CustomField: ((_args: FieldOptions) => (value: undefined, context: ClassFieldDecoratorContext) => void) & import("@formspec/decorators").FormSpecExtendsBrand<"Field">;
3
- export declare const Floor: ((_args: number) => (value: undefined, context: ClassFieldDecoratorContext) => void) & import("@formspec/decorators").FormSpecExtendsBrand<"Minimum">;
4
- export declare const Ceiling: ((_args: number) => (value: undefined, context: ClassFieldDecoratorContext) => void) & import("@formspec/decorators").FormSpecExtendsBrand<"Maximum">;
5
- //# sourceMappingURL=example-b-decorators.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"example-b-decorators.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/example-b-decorators.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD,eAAO,MAAM,WAAW,2JAA2D,CAAC;AACpF,eAAO,MAAM,KAAK,uJAAiD,CAAC;AACpE,eAAO,MAAM,OAAO,uJAAmD,CAAC"}
@@ -1,5 +0,0 @@
1
- import { extendDecorator } from "@formspec/decorators";
2
- export const CustomField = extendDecorator("Field").as("CustomField");
3
- export const Floor = extendDecorator("Minimum").as("Floor");
4
- export const Ceiling = extendDecorator("Maximum").as("Ceiling");
5
- //# sourceMappingURL=example-b-decorators.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"example-b-decorators.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/example-b-decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,MAAM,CAAC,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,CAAe,aAAa,CAAC,CAAC;AACpF,MAAM,CAAC,MAAM,KAAK,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,CAAS,OAAO,CAAC,CAAC;AACpE,MAAM,CAAC,MAAM,OAAO,GAAG,eAAe,CAAC,SAAS,CAAC,CAAC,EAAE,CAAS,SAAS,CAAC,CAAC"}
@@ -1,5 +0,0 @@
1
- export declare class ExampleBForm {
2
- amount: number;
3
- label: string;
4
- }
5
- //# sourceMappingURL=example-b-extended.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"example-b-extended.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/example-b-extended.ts"],"names":[],"mappings":"AAEA,qBAAa,YAAY;IAIvB,MAAM,EAAG,MAAM,CAAC;IAGhB,KAAK,EAAG,MAAM,CAAC;CAChB"}
@@ -1,60 +0,0 @@
1
- var __esDecorate = (this && this.__esDecorate) || function (ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {
2
- function accept(f) { if (f !== void 0 && typeof f !== "function") throw new TypeError("Function expected"); return f; }
3
- var kind = contextIn.kind, key = kind === "getter" ? "get" : kind === "setter" ? "set" : "value";
4
- var target = !descriptorIn && ctor ? contextIn["static"] ? ctor : ctor.prototype : null;
5
- var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});
6
- var _, done = false;
7
- for (var i = decorators.length - 1; i >= 0; i--) {
8
- var context = {};
9
- for (var p in contextIn) context[p] = p === "access" ? {} : contextIn[p];
10
- for (var p in contextIn.access) context.access[p] = contextIn.access[p];
11
- context.addInitializer = function (f) { if (done) throw new TypeError("Cannot add initializers after decoration has completed"); extraInitializers.push(accept(f || null)); };
12
- var result = (0, decorators[i])(kind === "accessor" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);
13
- if (kind === "accessor") {
14
- if (result === void 0) continue;
15
- if (result === null || typeof result !== "object") throw new TypeError("Object expected");
16
- if (_ = accept(result.get)) descriptor.get = _;
17
- if (_ = accept(result.set)) descriptor.set = _;
18
- if (_ = accept(result.init)) initializers.unshift(_);
19
- }
20
- else if (_ = accept(result)) {
21
- if (kind === "field") initializers.unshift(_);
22
- else descriptor[key] = _;
23
- }
24
- }
25
- if (target) Object.defineProperty(target, contextIn.name, descriptor);
26
- done = true;
27
- };
28
- var __runInitializers = (this && this.__runInitializers) || function (thisArg, initializers, value) {
29
- var useValue = arguments.length > 2;
30
- for (var i = 0; i < initializers.length; i++) {
31
- value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);
32
- }
33
- return useValue ? value : void 0;
34
- };
35
- import { CustomField, Floor, Ceiling } from "./example-b-decorators.js";
36
- let ExampleBForm = (() => {
37
- let _amount_decorators;
38
- let _amount_initializers = [];
39
- let _amount_extraInitializers = [];
40
- let _label_decorators;
41
- let _label_initializers = [];
42
- let _label_extraInitializers = [];
43
- return class ExampleBForm {
44
- static {
45
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(null) : void 0;
46
- _amount_decorators = [CustomField({ displayName: "Amount", description: "Total amount in cents" }), Floor(0), Ceiling(1000000)];
47
- _label_decorators = [CustomField({ displayName: "Label" })];
48
- __esDecorate(null, null, _amount_decorators, { kind: "field", name: "amount", static: false, private: false, access: { has: obj => "amount" in obj, get: obj => obj.amount, set: (obj, value) => { obj.amount = value; } }, metadata: _metadata }, _amount_initializers, _amount_extraInitializers);
49
- __esDecorate(null, null, _label_decorators, { kind: "field", name: "label", static: false, private: false, access: { has: obj => "label" in obj, get: obj => obj.label, set: (obj, value) => { obj.label = value; } }, metadata: _metadata }, _label_initializers, _label_extraInitializers);
50
- if (_metadata) Object.defineProperty(this, Symbol.metadata, { enumerable: true, configurable: true, writable: true, value: _metadata });
51
- }
52
- amount = __runInitializers(this, _amount_initializers, void 0);
53
- label = (__runInitializers(this, _amount_extraInitializers), __runInitializers(this, _label_initializers, void 0));
54
- constructor() {
55
- __runInitializers(this, _label_extraInitializers);
56
- }
57
- };
58
- })();
59
- export { ExampleBForm };
60
- //# sourceMappingURL=example-b-extended.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"example-b-extended.js","sourceRoot":"","sources":["../../../src/__tests__/fixtures/example-b-extended.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;IAE3D,YAAY;;;;;;;iBAAZ,YAAY;;;kCACtB,WAAW,CAAC,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,uBAAuB,EAAE,CAAC,EAC5E,KAAK,CAAC,CAAC,CAAC,EACR,OAAO,CAAC,OAAO,CAAC;iCAGhB,WAAW,CAAC,EAAE,WAAW,EAAE,OAAO,EAAE,CAAC;YAFtC,oKAAA,MAAM,6BAAN,MAAM,uFAAU;YAGhB,iKAAA,KAAK,6BAAL,KAAK,qFAAU;;;QAHf,MAAM,yDAAU;QAGhB,KAAK,8GAAU;;;;;;SAPJ,YAAY"}
@@ -1,5 +0,0 @@
1
- export declare class ExampleCForm {
2
- heading: string;
3
- urgency: number;
4
- }
5
- //# sourceMappingURL=example-c-custom.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"example-c-custom.d.ts","sourceRoot":"","sources":["../../../src/__tests__/fixtures/example-c-custom.ts"],"names":[],"mappings":"AAGA,qBAAa,YAAY;IAGvB,OAAO,EAAG,MAAM,CAAC;IAKjB,OAAO,EAAG,MAAM,CAAC;CAClB"}