langium-zod 0.10.0 → 0.11.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.
- package/dist/array-min-occurrence.d.ts +23 -0
- package/dist/array-min-occurrence.d.ts.map +1 -1
- package/dist/array-min-occurrence.js +24 -7
- package/dist/array-min-occurrence.js.map +1 -1
- package/dist/extractor.d.ts.map +1 -1
- package/dist/extractor.js +6 -2
- package/dist/extractor.js.map +1 -1
- package/dist/generator.d.ts.map +1 -1
- package/dist/generator.js +40 -4
- package/dist/generator.js.map +1 -1
- package/dist/non-empty-body.d.ts +42 -0
- package/dist/non-empty-body.d.ts.map +1 -0
- package/dist/non-empty-body.js +204 -0
- package/dist/non-empty-body.js.map +1 -0
- package/dist/types.d.ts +9 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -5
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
import type { AstNode } from 'langium';
|
|
2
|
+
/**
|
|
3
|
+
* True when `node` (any grammar `AbstractElement` — an `Assignment`/`Action`,
|
|
4
|
+
* or an `Alternatives` group itself) sits on an UNCONDITIONAL path: neither it
|
|
5
|
+
* nor any `AbstractElement` ancestor up to the `ParserRule` carries an optional
|
|
6
|
+
* cardinality (`?` or `*`), and no ancestor is a branch of a multi-branch
|
|
7
|
+
* `Alternatives`. A single branch of an N-way choice is conditional even
|
|
8
|
+
* without a `?`/`*` cardinality — a valid document may take a different branch,
|
|
9
|
+
* so anything that only occurs on ONE branch of a choice cannot be guaranteed.
|
|
10
|
+
*
|
|
11
|
+
* Also handles the fragment-boundary case (PR #96): a fragment-defined
|
|
12
|
+
* element's `$container` chain ends at the fragment `ParserRule`, not the call
|
|
13
|
+
* site, so use-site cardinality (e.g. `(Frag)*`) is invisible to this walk. We
|
|
14
|
+
* cannot prove the fragment is unconditionally called from every caller —
|
|
15
|
+
* conservatively treat fragment-defined content as optional.
|
|
16
|
+
*
|
|
17
|
+
* `UnorderedGroup` (`A & B`) is intentionally NOT treated as optional: every
|
|
18
|
+
* element in an unordered group must occur, so both contribute mandatorily.
|
|
19
|
+
*
|
|
20
|
+
* Shared by `array-min-occurrence.ts` (per-assignment `+=` mandatory-occurrence
|
|
21
|
+
* check) and `non-empty-body.ts` (whole-`Alternatives`-group mandatory-execution
|
|
22
|
+
* check, called with the `Alternatives` node itself as `node`).
|
|
23
|
+
*/
|
|
24
|
+
export declare function isMandatoryOccurrence(node: AstNode): boolean;
|
|
2
25
|
/**
|
|
3
26
|
* Array minimum length derived from the grammar Assignment nodes that produce an
|
|
4
27
|
* array property (`Property.astNodes`). Returns `1` when ANY `+=` assignment for
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-min-occurrence.d.ts","sourceRoot":"","sources":["../src/array-min-occurrence.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"array-min-occurrence.d.ts","sourceRoot":"","sources":["../src/array-min-occurrence.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAqB5D;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAWnG"}
|
|
@@ -1,16 +1,27 @@
|
|
|
1
1
|
import { GrammarAST, GrammarUtils } from 'langium';
|
|
2
2
|
/**
|
|
3
|
-
* True when `node` (
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
3
|
+
* True when `node` (any grammar `AbstractElement` — an `Assignment`/`Action`,
|
|
4
|
+
* or an `Alternatives` group itself) sits on an UNCONDITIONAL path: neither it
|
|
5
|
+
* nor any `AbstractElement` ancestor up to the `ParserRule` carries an optional
|
|
6
|
+
* cardinality (`?` or `*`), and no ancestor is a branch of a multi-branch
|
|
7
|
+
* `Alternatives`. A single branch of an N-way choice is conditional even
|
|
8
|
+
* without a `?`/`*` cardinality — a valid document may take a different branch,
|
|
9
|
+
* so anything that only occurs on ONE branch of a choice cannot be guaranteed.
|
|
10
|
+
*
|
|
11
|
+
* Also handles the fragment-boundary case (PR #96): a fragment-defined
|
|
12
|
+
* element's `$container` chain ends at the fragment `ParserRule`, not the call
|
|
13
|
+
* site, so use-site cardinality (e.g. `(Frag)*`) is invisible to this walk. We
|
|
14
|
+
* cannot prove the fragment is unconditionally called from every caller —
|
|
15
|
+
* conservatively treat fragment-defined content as optional.
|
|
9
16
|
*
|
|
10
17
|
* `UnorderedGroup` (`A & B`) is intentionally NOT treated as optional: every
|
|
11
18
|
* element in an unordered group must occur, so both contribute mandatorily.
|
|
19
|
+
*
|
|
20
|
+
* Shared by `array-min-occurrence.ts` (per-assignment `+=` mandatory-occurrence
|
|
21
|
+
* check) and `non-empty-body.ts` (whole-`Alternatives`-group mandatory-execution
|
|
22
|
+
* check, called with the `Alternatives` node itself as `node`).
|
|
12
23
|
*/
|
|
13
|
-
function isMandatoryOccurrence(node) {
|
|
24
|
+
export function isMandatoryOccurrence(node) {
|
|
14
25
|
let el = node;
|
|
15
26
|
while (el && GrammarAST.isAbstractElement(el)) {
|
|
16
27
|
const element = el;
|
|
@@ -24,6 +35,12 @@ function isMandatoryOccurrence(node) {
|
|
|
24
35
|
}
|
|
25
36
|
el = parent;
|
|
26
37
|
}
|
|
38
|
+
// Fragment-defined assignment: the $container chain ends at the fragment rule,
|
|
39
|
+
// not the use site, so use-site cardinality (e.g. `(Frag)*`) is invisible here.
|
|
40
|
+
// We cannot prove ≥1 at every caller — conservatively treat as optional.
|
|
41
|
+
if (el && GrammarAST.isParserRule(el) && el.fragment) {
|
|
42
|
+
return false;
|
|
43
|
+
}
|
|
27
44
|
return true;
|
|
28
45
|
}
|
|
29
46
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"array-min-occurrence.js","sourceRoot":"","sources":["../src/array-min-occurrence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGnD
|
|
1
|
+
{"version":3,"file":"array-min-occurrence.js","sourceRoot":"","sources":["../src/array-min-occurrence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAGnD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,qBAAqB,CAAC,IAAa;IACjD,IAAI,EAAE,GAAwB,IAAI,CAAC;IACnC,OAAO,EAAE,IAAI,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,EAAgC,CAAC;QACjD,IAAI,YAAY,CAAC,qBAAqB,CAAC,OAAO,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC;YACrE,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,MAAM,GAAwB,EAAE,CAAC,UAAU,CAAC;QAClD,uEAAuE;QACvE,IAAI,MAAM,IAAI,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9E,OAAO,KAAK,CAAC;QACf,CAAC;QACD,EAAE,GAAG,MAAM,CAAC;IACd,CAAC;IACD,+EAA+E;IAC/E,gFAAgF;IAChF,yEAAyE;IACzE,IAAI,EAAE,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,oBAAoB,CAAC,QAA0C;IAC7E,IAAI,CAAC,QAAQ;QAAE,OAAO,SAAS,CAAC;IAChC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,MAAM,aAAa,GACjB,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;YACzD,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;QACxD,IAAI,aAAa,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/dist/extractor.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../src/extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAKZ,iBAAiB,EAElB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"extractor.d.ts","sourceRoot":"","sources":["../src/extractor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EAKZ,iBAAiB,EAElB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAkUhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkFG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,YAAY,EACtB,MAAM,CAAC,EAAE,YAAY,GACpB,iBAAiB,EAAE,CA4KrB"}
|
package/dist/extractor.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ZodGeneratorError } from './errors.js';
|
|
2
2
|
import { mapPropertyType } from './type-mapper.js';
|
|
3
|
+
import { resolveAtLeastOneOf } from './non-empty-body.js';
|
|
3
4
|
import { arrayMinFromAstNodes } from './array-min-occurrence.js';
|
|
4
5
|
function toStringSet(value) {
|
|
5
6
|
if (!value) {
|
|
@@ -366,7 +367,8 @@ export function extractTypeDescriptors(astTypes, config) {
|
|
|
366
367
|
optional: false
|
|
367
368
|
}
|
|
368
369
|
];
|
|
369
|
-
|
|
370
|
+
const resolvedProperties = resolveProperties(typeMap, entry.name);
|
|
371
|
+
for (const property of resolvedProperties) {
|
|
370
372
|
if (property.name.startsWith('$') && property.name !== '$type') {
|
|
371
373
|
continue;
|
|
372
374
|
}
|
|
@@ -386,11 +388,13 @@ export function extractTypeDescriptors(astTypes, config) {
|
|
|
386
388
|
...(property.comment ? { comment: property.comment } : {})
|
|
387
389
|
});
|
|
388
390
|
}
|
|
391
|
+
const atLeastOneOf = resolveAtLeastOneOf(entry.name, resolvedProperties);
|
|
389
392
|
objectDescriptors.push({
|
|
390
393
|
name: entry.name,
|
|
391
394
|
kind: 'object',
|
|
392
395
|
properties,
|
|
393
|
-
...(entry.comment ? { comment: entry.comment } : {})
|
|
396
|
+
...(entry.comment ? { comment: entry.comment } : {}),
|
|
397
|
+
...(atLeastOneOf ? { atLeastOneOf } : {})
|
|
394
398
|
});
|
|
395
399
|
}
|
|
396
400
|
// ── Phase 2: union and primitive-alias descriptors ────────────────────────
|
package/dist/extractor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../src/extractor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"extractor.js","sourceRoot":"","sources":["../src/extractor.ts"],"names":[],"mappings":"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"}
|
package/dist/generator.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,iBAAiB,EAElB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAgC,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEtF,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAClC;
|
|
1
|
+
{"version":3,"file":"generator.d.ts","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAGV,iBAAiB,EAElB,MAAM,YAAY,CAAC;AAEpB,OAAO,EAAgC,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEtF,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;CAClC;AAmSD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AACH,wBAAgB,eAAe,CAC7B,WAAW,EAAE,iBAAiB,EAAE,EAChC,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,EAC3B,OAAO,GAAE,iBAAsB,GAC9B,MAAM,CA6NR"}
|
package/dist/generator.js
CHANGED
|
@@ -84,12 +84,41 @@ function renderMetaSuffix(name, comment) {
|
|
|
84
84
|
}
|
|
85
85
|
return `.meta({ ${entries.join(', ')} })`;
|
|
86
86
|
}
|
|
87
|
+
/**
|
|
88
|
+
* Renders a `.superRefine` suffix that fails validation when NONE of
|
|
89
|
+
* `atLeastOneOf`'s properties are populated on the parsed value. Array-typed
|
|
90
|
+
* properties are checked for non-empty length; all other kinds are checked for
|
|
91
|
+
* `!== undefined`. The issue message names the missing-alternative set so
|
|
92
|
+
* z2f-driven forms can surface it directly.
|
|
93
|
+
*/
|
|
94
|
+
function renderAtLeastOneOfSuffix(atLeastOneOf, properties) {
|
|
95
|
+
const propertyKinds = new Map(properties.map((property) => [property.name, property.zodType.kind]));
|
|
96
|
+
const checks = atLeastOneOf
|
|
97
|
+
.map((name) => {
|
|
98
|
+
const isArray = propertyKinds.get(name) === 'array';
|
|
99
|
+
const accessor = `val[${JSON.stringify(name)}]`;
|
|
100
|
+
return isArray ? `${accessor}?.length` : `${accessor} !== undefined`;
|
|
101
|
+
})
|
|
102
|
+
.join(' || ');
|
|
103
|
+
const message = JSON.stringify(`At least one of ${atLeastOneOf.join(', ')} must be present`);
|
|
104
|
+
return `.superRefine((val, ctx) => {
|
|
105
|
+
if (!(${checks})) {
|
|
106
|
+
ctx.addIssue({ code: 'custom', message: ${message} });
|
|
107
|
+
}
|
|
108
|
+
})`;
|
|
109
|
+
}
|
|
87
110
|
function renderPropertyExpression(property, lazyNames, formMetadata) {
|
|
88
111
|
const baseExpression = expressionToBuilder(property.zodType, lazyNames).text();
|
|
89
112
|
const withArrayMin = property.zodType.kind === 'array' && typeof property.minItems === 'number'
|
|
90
113
|
? `${baseExpression}.min(${property.minItems})`
|
|
91
114
|
: baseExpression;
|
|
92
|
-
|
|
115
|
+
// Langium's assignMandatoryProperties always materialises `[]` for array-typed
|
|
116
|
+
// properties — an array is never `undefined` in real parse output, regardless
|
|
117
|
+
// of the grammar's `optional` flag. `.optional()` here would admit a shape the
|
|
118
|
+
// parser never produces, so array properties skip it unconditionally.
|
|
119
|
+
const withOptional = property.optional && property.zodType.kind !== 'array'
|
|
120
|
+
? `${withArrayMin}.optional()`
|
|
121
|
+
: withArrayMin;
|
|
93
122
|
if (formMetadata && property.name !== '$type') {
|
|
94
123
|
return `${withOptional}${renderMetaSuffix(property.name, property.comment)}`;
|
|
95
124
|
}
|
|
@@ -128,7 +157,11 @@ function renderCrossRefPropertyExpression(property, formMetadata) {
|
|
|
128
157
|
const withArrayMin = property.zodType.kind === 'array' && typeof property.minItems === 'number'
|
|
129
158
|
? `${baseExpression}.min(${property.minItems})`
|
|
130
159
|
: baseExpression;
|
|
131
|
-
|
|
160
|
+
// See renderPropertyExpression: array properties never carry .optional() —
|
|
161
|
+
// Langium always materialises `[]`, never `undefined`, for array-typed props.
|
|
162
|
+
const withOptional = property.optional && property.zodType.kind !== 'array'
|
|
163
|
+
? `${withArrayMin}.optional()`
|
|
164
|
+
: withArrayMin;
|
|
132
165
|
if (formMetadata && property.name !== '$type') {
|
|
133
166
|
return `${withOptional}${renderMetaSuffix(property.name, property.comment)}`;
|
|
134
167
|
}
|
|
@@ -358,12 +391,15 @@ export function generateZodCode(descriptors, recursiveTypes, options = {}) {
|
|
|
358
391
|
const objectMetaSuffix = options.formMetadata
|
|
359
392
|
? renderMetaSuffix(descriptor.name, descriptor.comment)
|
|
360
393
|
: '';
|
|
394
|
+
const atLeastOneOfSuffix = descriptor.atLeastOneOf
|
|
395
|
+
? renderAtLeastOneOfSuffix(descriptor.atLeastOneOf, descriptor.properties)
|
|
396
|
+
: '';
|
|
361
397
|
if (hasRecursiveGetter) {
|
|
362
398
|
lines.push(`export const ${descriptor.name}Schema = z.${objectMethodName}({`);
|
|
363
399
|
for (const property of descriptor.properties) {
|
|
364
400
|
lines.push(`${propertyLine(property, descriptor.name, recursiveTypes, unionNames, options.formMetadata)},`);
|
|
365
401
|
}
|
|
366
|
-
lines.push(`})${objectMetaSuffix};`);
|
|
402
|
+
lines.push(`})${objectMetaSuffix}${atLeastOneOfSuffix};`);
|
|
367
403
|
lines.push('');
|
|
368
404
|
continue;
|
|
369
405
|
}
|
|
@@ -374,7 +410,7 @@ export function generateZodCode(descriptors, recursiveTypes, options = {}) {
|
|
|
374
410
|
const objectBuilder = useLoose
|
|
375
411
|
? build.object(objectProperties).loose()
|
|
376
412
|
: build.object(objectProperties);
|
|
377
|
-
lines.push(`export const ${descriptor.name}Schema = ${objectBuilder.text()}${objectMetaSuffix};`);
|
|
413
|
+
lines.push(`export const ${descriptor.name}Schema = ${objectBuilder.text()}${objectMetaSuffix}${atLeastOneOfSuffix};`);
|
|
378
414
|
lines.push('');
|
|
379
415
|
}
|
|
380
416
|
// 3. Discriminated union schemas last — all member object schemas are
|
package/dist/generator.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"generator.js","sourceRoot":"","sources":["../src/generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { PropertyLike } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Analyses an object type's properties to determine whether the grammar rule
|
|
4
|
+
* that produces it has a top-level `Alternatives` group whose branches are
|
|
5
|
+
* mutually exclusive property producers — meaning the parser can never produce
|
|
6
|
+
* an instance where NONE of the branch-introduced properties are populated.
|
|
7
|
+
*
|
|
8
|
+
* Returns the flat union of branch-introduced property names (the "at least one
|
|
9
|
+
* of" set) when:
|
|
10
|
+
* - the rule has an `Alternatives` ancestor common to its properties' `astNodes`,
|
|
11
|
+
* - that `Alternatives` is GUARANTEED TO EXECUTE — no `?`/`*` cardinality on the
|
|
12
|
+
* group itself or any ancestor element, no enclosing branch of an OUTER
|
|
13
|
+
* multi-way `Alternatives`, and no fragment-rule call-site boundary (an
|
|
14
|
+
* optional/starred/nested/optionally-called alternation may execute zero
|
|
15
|
+
* times, producing an object where every branch-introduced property is
|
|
16
|
+
* absent — the refinement would wrongly reject that legitimately-parsed
|
|
17
|
+
* shape),
|
|
18
|
+
* - every branch of that `Alternatives` contains at least one CHECKABLE
|
|
19
|
+
* (non-flag) `Assignment`/`Action` (a bare keyword-only branch, or a branch
|
|
20
|
+
* containing only a boolean flag, means the object can legally have zero of
|
|
21
|
+
* the candidate properties populated, so the refinement is dropped entirely), and
|
|
22
|
+
* - no single property is assigned on EVERY branch (such a property is already
|
|
23
|
+
* effectively mandatory; no refinement is needed).
|
|
24
|
+
*
|
|
25
|
+
* Boolean flag assignments (`?=`) are excluded from the returned set — Langium
|
|
26
|
+
* always serialises them as `false` when absent, so their "presence" can never
|
|
27
|
+
* distinguish an empty body from a populated one.
|
|
28
|
+
*
|
|
29
|
+
* Guards against a distinct false-positive shape: a rule like
|
|
30
|
+
* `A (op1 {infer Foo.x=current} ... | op2 {infer Bar.y=current} ...)*`, where
|
|
31
|
+
* an `Alternatives` selects between producing DIFFERENT inferred types (a
|
|
32
|
+
* type-union rule, not an intra-type alternation). Each branch's inferred type
|
|
33
|
+
* name (via the nearest `Action`) is compared against `typeName`; if any
|
|
34
|
+
* branch's subtree infers a DIFFERENT type, the whole `Alternatives` is
|
|
35
|
+
* irrelevant to this type's structure and is skipped.
|
|
36
|
+
*
|
|
37
|
+
* Returns `undefined` when the rule has no top-level `Alternatives` describing
|
|
38
|
+
* its OWN type, when that `Alternatives` is not guaranteed to execute, when any
|
|
39
|
+
* branch is keyword-only, or when a property spans every branch.
|
|
40
|
+
*/
|
|
41
|
+
export declare function resolveAtLeastOneOf(typeName: string, properties: readonly PropertyLike[]): string[] | undefined;
|
|
42
|
+
//# sourceMappingURL=non-empty-body.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"non-empty-body.d.ts","sourceRoot":"","sources":["../src/non-empty-body.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA4F/C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,SAAS,YAAY,EAAE,GAClC,MAAM,EAAE,GAAG,SAAS,CAuFtB"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { GrammarAST, GrammarUtils } from 'langium';
|
|
2
|
+
import { isMandatoryOccurrence } from './array-min-occurrence.js';
|
|
3
|
+
/**
|
|
4
|
+
* Walks up from a grammar Assignment/Action node to find the nearest enclosing
|
|
5
|
+
* `Alternatives` element and the index of the branch (direct child of that
|
|
6
|
+
* `Alternatives`) that contains it. Returns `undefined` when no `Alternatives`
|
|
7
|
+
* ancestor exists before the owning `ParserRule`.
|
|
8
|
+
*/
|
|
9
|
+
// Real grammar container chains are shallow (bounded by nesting depth in the
|
|
10
|
+
// source file); this cap only guards against a malformed/cyclic `$container`
|
|
11
|
+
// chain (e.g. a bad duck-typed test fixture) turning into an infinite loop.
|
|
12
|
+
const MAX_CONTAINER_WALK = 1000;
|
|
13
|
+
function findEnclosingBranch(node) {
|
|
14
|
+
let child = node;
|
|
15
|
+
let el = node;
|
|
16
|
+
for (let steps = 0; el && steps < MAX_CONTAINER_WALK; steps++) {
|
|
17
|
+
if (GrammarAST.isAlternatives(el)) {
|
|
18
|
+
const branchIndex = el.elements.indexOf(child);
|
|
19
|
+
if (branchIndex >= 0) {
|
|
20
|
+
return { alternatives: el, branchIndex };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
if (GrammarAST.isParserRule(el)) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
child = el;
|
|
27
|
+
el = el.$container;
|
|
28
|
+
}
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Determines whether a grammar `AbstractElement` subtree contains at least one
|
|
33
|
+
* CHECKABLE `Assignment`/`Action` that is MANDATORY WITHIN THE BRANCH — i.e.
|
|
34
|
+
* one guaranteed to occur whenever the branch is taken at all, whose presence
|
|
35
|
+
* in the parsed value can therefore distinguish "this branch was taken" from
|
|
36
|
+
* "nothing populated".
|
|
37
|
+
*
|
|
38
|
+
* Descends the subtree tracking cardinality along the way: any `?`/`*` on an
|
|
39
|
+
* element ANYWHERE between the branch root and a candidate assignment means
|
|
40
|
+
* that assignment is NOT guaranteed — the branch can be taken (e.g. via a
|
|
41
|
+
* leading keyword) while the optional/starred sub-element matches zero times,
|
|
42
|
+
* producing a parser-valid object where that assignment never fires. Such an
|
|
43
|
+
* assignment does not count, exactly like a bare keyword-only branch.
|
|
44
|
+
*
|
|
45
|
+
* Boolean flag assignments (`?=`) are EXCLUDED regardless of cardinality:
|
|
46
|
+
* Langium always serialises them as `false` when absent, so their presence
|
|
47
|
+
* can never distinguish an empty body from a populated one.
|
|
48
|
+
*/
|
|
49
|
+
function branchHasCheckableAssignment(element) {
|
|
50
|
+
if (GrammarUtils.isOptionalCardinality(element.cardinality, element)) {
|
|
51
|
+
return false;
|
|
52
|
+
}
|
|
53
|
+
if (GrammarAST.isAssignment(element)) {
|
|
54
|
+
return element.operator !== '?=';
|
|
55
|
+
}
|
|
56
|
+
if (GrammarAST.isAction(element)) {
|
|
57
|
+
return true;
|
|
58
|
+
}
|
|
59
|
+
const withElements = element;
|
|
60
|
+
if (Array.isArray(withElements.elements)) {
|
|
61
|
+
return withElements.elements.some((child) => branchHasCheckableAssignment(child));
|
|
62
|
+
}
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Finds the first `Action` (`{infer Type.feature=current}` or `{infer Type}`)
|
|
67
|
+
* anywhere in a branch's subtree and returns the type name it infers, if any.
|
|
68
|
+
* A branch with no `Action` infers no type of its own (it's a plain sub-group
|
|
69
|
+
* of the enclosing rule's own type).
|
|
70
|
+
*/
|
|
71
|
+
function branchInferredTypeName(element) {
|
|
72
|
+
if (GrammarAST.isAction(element)) {
|
|
73
|
+
return element.inferredType?.name;
|
|
74
|
+
}
|
|
75
|
+
const withElements = element;
|
|
76
|
+
if (Array.isArray(withElements.elements)) {
|
|
77
|
+
for (const child of withElements.elements) {
|
|
78
|
+
const found = branchInferredTypeName(child);
|
|
79
|
+
if (found) {
|
|
80
|
+
return found;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return undefined;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Analyses an object type's properties to determine whether the grammar rule
|
|
88
|
+
* that produces it has a top-level `Alternatives` group whose branches are
|
|
89
|
+
* mutually exclusive property producers — meaning the parser can never produce
|
|
90
|
+
* an instance where NONE of the branch-introduced properties are populated.
|
|
91
|
+
*
|
|
92
|
+
* Returns the flat union of branch-introduced property names (the "at least one
|
|
93
|
+
* of" set) when:
|
|
94
|
+
* - the rule has an `Alternatives` ancestor common to its properties' `astNodes`,
|
|
95
|
+
* - that `Alternatives` is GUARANTEED TO EXECUTE — no `?`/`*` cardinality on the
|
|
96
|
+
* group itself or any ancestor element, no enclosing branch of an OUTER
|
|
97
|
+
* multi-way `Alternatives`, and no fragment-rule call-site boundary (an
|
|
98
|
+
* optional/starred/nested/optionally-called alternation may execute zero
|
|
99
|
+
* times, producing an object where every branch-introduced property is
|
|
100
|
+
* absent — the refinement would wrongly reject that legitimately-parsed
|
|
101
|
+
* shape),
|
|
102
|
+
* - every branch of that `Alternatives` contains at least one CHECKABLE
|
|
103
|
+
* (non-flag) `Assignment`/`Action` (a bare keyword-only branch, or a branch
|
|
104
|
+
* containing only a boolean flag, means the object can legally have zero of
|
|
105
|
+
* the candidate properties populated, so the refinement is dropped entirely), and
|
|
106
|
+
* - no single property is assigned on EVERY branch (such a property is already
|
|
107
|
+
* effectively mandatory; no refinement is needed).
|
|
108
|
+
*
|
|
109
|
+
* Boolean flag assignments (`?=`) are excluded from the returned set — Langium
|
|
110
|
+
* always serialises them as `false` when absent, so their "presence" can never
|
|
111
|
+
* distinguish an empty body from a populated one.
|
|
112
|
+
*
|
|
113
|
+
* Guards against a distinct false-positive shape: a rule like
|
|
114
|
+
* `A (op1 {infer Foo.x=current} ... | op2 {infer Bar.y=current} ...)*`, where
|
|
115
|
+
* an `Alternatives` selects between producing DIFFERENT inferred types (a
|
|
116
|
+
* type-union rule, not an intra-type alternation). Each branch's inferred type
|
|
117
|
+
* name (via the nearest `Action`) is compared against `typeName`; if any
|
|
118
|
+
* branch's subtree infers a DIFFERENT type, the whole `Alternatives` is
|
|
119
|
+
* irrelevant to this type's structure and is skipped.
|
|
120
|
+
*
|
|
121
|
+
* Returns `undefined` when the rule has no top-level `Alternatives` describing
|
|
122
|
+
* its OWN type, when that `Alternatives` is not guaranteed to execute, when any
|
|
123
|
+
* branch is keyword-only, or when a property spans every branch.
|
|
124
|
+
*/
|
|
125
|
+
export function resolveAtLeastOneOf(typeName, properties) {
|
|
126
|
+
// Map each candidate property to the set of branch indices it appears under
|
|
127
|
+
// (within a single shared Alternatives ancestor). Properties with astNodes
|
|
128
|
+
// outside any Alternatives (or under a different Alternatives) are ignored.
|
|
129
|
+
let sharedAlternatives;
|
|
130
|
+
const propertyBranches = new Map();
|
|
131
|
+
for (const property of properties) {
|
|
132
|
+
if (!property.astNodes) {
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
for (const node of property.astNodes) {
|
|
136
|
+
const isFlagAssignment = GrammarAST.isAssignment(node) && node.operator === '?=';
|
|
137
|
+
const found = findEnclosingBranch(node);
|
|
138
|
+
if (!found) {
|
|
139
|
+
continue;
|
|
140
|
+
}
|
|
141
|
+
if (!sharedAlternatives) {
|
|
142
|
+
sharedAlternatives = found.alternatives;
|
|
143
|
+
}
|
|
144
|
+
else if (sharedAlternatives !== found.alternatives) {
|
|
145
|
+
// Properties span more than one distinct Alternatives group — too
|
|
146
|
+
// complex to reliably reason about; bail out.
|
|
147
|
+
return undefined;
|
|
148
|
+
}
|
|
149
|
+
if (!isFlagAssignment) {
|
|
150
|
+
let branches = propertyBranches.get(property.name);
|
|
151
|
+
if (!branches) {
|
|
152
|
+
branches = new Set();
|
|
153
|
+
propertyBranches.set(property.name, branches);
|
|
154
|
+
}
|
|
155
|
+
branches.add(found.branchIndex);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
if (!sharedAlternatives || sharedAlternatives.elements.length < 2) {
|
|
160
|
+
return undefined;
|
|
161
|
+
}
|
|
162
|
+
// The Alternatives group itself must be GUARANTEED TO EXECUTE — reject any
|
|
163
|
+
// `?`/`*` cardinality on the group or any ancestor element up to the
|
|
164
|
+
// ParserRule (an optional/starred alternation may execute zero times,
|
|
165
|
+
// producing an object where every branch-introduced property is absent —
|
|
166
|
+
// exactly the shape the refinement would wrongly reject), one branch of an
|
|
167
|
+
// OUTER multi-way Alternatives (nested alternation, same reasoning), and any
|
|
168
|
+
// fragment-rule boundary (the call site's cardinality is invisible from
|
|
169
|
+
// here — conservatively treat as optional, mirroring array-min-occurrence's
|
|
170
|
+
// fragment handling).
|
|
171
|
+
if (!isMandatoryOccurrence(sharedAlternatives)) {
|
|
172
|
+
return undefined;
|
|
173
|
+
}
|
|
174
|
+
// Every branch must belong to `typeName` — a branch whose subtree infers a
|
|
175
|
+
// DIFFERENT type means this Alternatives selects between producing distinct
|
|
176
|
+
// types (a type-union rule), not alternative property-sets of `typeName`.
|
|
177
|
+
const everyBranchOwnsType = sharedAlternatives.elements.every((branchElement) => {
|
|
178
|
+
const inferred = branchInferredTypeName(branchElement);
|
|
179
|
+
return inferred === undefined || inferred === typeName;
|
|
180
|
+
});
|
|
181
|
+
if (!everyBranchOwnsType) {
|
|
182
|
+
return undefined;
|
|
183
|
+
}
|
|
184
|
+
// Every branch of the Alternatives must guarantee at least one CHECKABLE
|
|
185
|
+
// (non-flag) assignment — a keyword-only branch, or a branch containing only
|
|
186
|
+
// a boolean flag, means the object can legally have none of the candidate
|
|
187
|
+
// properties populated.
|
|
188
|
+
const everyBranchAssigns = sharedAlternatives.elements.every((branchElement) => branchHasCheckableAssignment(branchElement));
|
|
189
|
+
if (!everyBranchAssigns) {
|
|
190
|
+
return undefined;
|
|
191
|
+
}
|
|
192
|
+
const branchCount = sharedAlternatives.elements.length;
|
|
193
|
+
const atLeastOneOf = new Set();
|
|
194
|
+
for (const [propertyName, branches] of propertyBranches) {
|
|
195
|
+
// A property assigned on every branch is already effectively mandatory —
|
|
196
|
+
// no refinement is needed (and including it would make the check vacuous).
|
|
197
|
+
if (branches.size >= branchCount) {
|
|
198
|
+
return undefined;
|
|
199
|
+
}
|
|
200
|
+
atLeastOneOf.add(propertyName);
|
|
201
|
+
}
|
|
202
|
+
return atLeastOneOf.size > 0 ? [...atLeastOneOf] : undefined;
|
|
203
|
+
}
|
|
204
|
+
//# sourceMappingURL=non-empty-body.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"non-empty-body.js","sourceRoot":"","sources":["../src/non-empty-body.ts"],"names":[],"mappings":"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"}
|
package/dist/types.d.ts
CHANGED
|
@@ -80,6 +80,15 @@ export interface ZodObjectTypeDescriptor {
|
|
|
80
80
|
kind: 'object';
|
|
81
81
|
properties: ZodPropertyDescriptor[];
|
|
82
82
|
comment?: string;
|
|
83
|
+
/**
|
|
84
|
+
* Property names forming an "at least one of" constraint: the grammar rule
|
|
85
|
+
* that produces this type has a top-level `Alternatives` group whose branches
|
|
86
|
+
* are mutually-exclusive property producers, so the parser can never yield an
|
|
87
|
+
* instance where NONE of these properties are populated. When present, the
|
|
88
|
+
* generator emits a `.superRefine` requiring at least one listed property to
|
|
89
|
+
* be non-empty/defined. See {@link resolveAtLeastOneOf}.
|
|
90
|
+
*/
|
|
91
|
+
atLeastOneOf?: string[];
|
|
83
92
|
}
|
|
84
93
|
export interface ZodUnionTypeDescriptor {
|
|
85
94
|
name: string;
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAEvC,2EAA2E;AAC3E,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEtE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,MAAM,iBAAiB,GACzB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,YAAY,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAClC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,iBAAiB,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,iBAAiB,EAAE,CAAA;CAAE,GAC/C;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAE/C;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,qBAAqB;IACpC,8EAA8E;IAC9E,IAAI,EAAE,MAAM,CAAC;IACb,sDAAsD;IACtD,OAAO,EAAE,iBAAiB,CAAC;IAC3B,mFAAmF;IACnF,QAAQ,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,QAAQ,CAAC;IACf,UAAU,EAAE,qBAAqB,EAAE,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "langium-zod",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Langium generator plugin that derives Zod schemas from grammar definitions",
|
|
6
6
|
"keywords": [
|
|
@@ -43,15 +43,15 @@
|
|
|
43
43
|
],
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"humanize-string": "^3.1.0",
|
|
46
|
-
"langium": "^4.
|
|
46
|
+
"langium": "^4.3.1",
|
|
47
47
|
"x-to-zod": "^0.10.3",
|
|
48
48
|
"zod": "^4.4.3"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@types/node": "^
|
|
52
|
-
"langium-cli": "^4.
|
|
51
|
+
"@types/node": "^26.1.0",
|
|
52
|
+
"langium-cli": "^4.3.0",
|
|
53
53
|
"typescript": "^6.0.3",
|
|
54
|
-
"vitest": "^4.1.
|
|
54
|
+
"vitest": "^4.1.9"
|
|
55
55
|
},
|
|
56
56
|
"author": "Pradeep Mouli <pmouli@mac.com> (https://github.com/pradeepmouli)",
|
|
57
57
|
"scripts": {
|