@milehimikey/em 1.22.0 → 1.22.2
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/.claude/skills/event-modeling/SKILL.md +1 -1
- package/.claude/skills/event-modeling-conform/SKILL.md +1 -1
- package/.claude/skills/event-modeling-design/SKILL.md +5 -2
- package/.claude/skills/event-modeling-discover/SKILL.md +1 -1
- package/.claude/skills/event-modeling-engagement/SKILL.md +1 -1
- package/.claude/skills/event-modeling-implement/SKILL.md +1 -1
- package/.claude/skills/event-modeling-review/SKILL.md +1 -1
- package/.claude/skills/event-modeling-shared/reference/em-dsl.md +41 -0
- package/.claude-plugin/marketplace.json +2 -2
- package/dist/cli/api.d.ts +60 -17
- package/dist/cli/api.js +154 -34
- package/dist/cli/api.js.map +1 -1
- package/dist/cli/scopeInputs.js +2 -2
- package/dist/cli/scopeInputs.js.map +1 -1
- package/dist/emit/api.d.ts +18 -0
- package/dist/emit/api.js +117 -3
- package/dist/emit/api.js.map +1 -1
- package/dist/emit/apiSurfaceJson.d.ts +1 -1
- package/dist/emit/apiSurfaceJson.js +18 -1
- package/dist/emit/apiSurfaceJson.js.map +1 -1
- package/dist/emit/diffJson.d.ts +1 -1
- package/dist/emit/diffJson.js +20 -1
- package/dist/emit/diffJson.js.map +1 -1
- package/dist/emit/json.d.ts +42 -1
- package/dist/emit/json.js +65 -6
- package/dist/emit/json.js.map +1 -1
- package/dist/mcp/server.js +7 -6
- package/dist/mcp/server.js.map +1 -1
- package/dist/model/diff.d.ts +19 -1
- package/dist/model/diff.js +99 -0
- package/dist/model/diff.js.map +1 -1
- package/dist/model/model.d.ts +88 -4
- package/dist/model/model.js +98 -3
- package/dist/model/model.js.map +1 -1
- package/dist/model/refs.d.ts +4 -0
- package/dist/model/refs.js +35 -1
- package/dist/model/refs.js.map +1 -1
- package/dist/model/rules.d.ts +61 -0
- package/dist/model/rules.js +72 -0
- package/dist/model/rules.js.map +1 -1
- package/dist/model/validate.js +137 -4
- package/dist/model/validate.js.map +1 -1
- package/dist/parser/ast.d.ts +30 -0
- package/dist/parser/parser.js +67 -1
- package/dist/parser/parser.js.map +1 -1
- package/dist/render/sliceDiagram.js +6 -0
- package/dist/render/sliceDiagram.js.map +1 -1
- package/dist/render/storylineDiagram.js +6 -0
- package/dist/render/storylineDiagram.js.map +1 -1
- package/dist/system/adaptation.d.ts +5 -2
- package/dist/system/adaptation.js +5 -3
- package/dist/system/adaptation.js.map +1 -1
- package/package.json +2 -1
- package/plugin/.claude-plugin/plugin.json +2 -2
- package/plugin/shared/reference/em-dsl.md +41 -0
- package/plugin/skills/conform/SKILL.md +1 -1
- package/plugin/skills/design/SKILL.md +5 -2
- package/plugin/skills/discover/SKILL.md +1 -1
- package/plugin/skills/engagement/SKILL.md +1 -1
- package/plugin/skills/event-modeling/SKILL.md +1 -1
- package/plugin/skills/implement/SKILL.md +1 -1
- package/plugin/skills/review/SKILL.md +1 -1
package/dist/model/model.d.ts
CHANGED
|
@@ -13,6 +13,41 @@ export interface TypeRef {
|
|
|
13
13
|
/** True when the field's type is `Name[]` (an array of the referenced type) rather than bare. */
|
|
14
14
|
array: boolean;
|
|
15
15
|
}
|
|
16
|
+
/** A declared identity scalar (`scalar Name: base`, GH #477) — its own top-level namespace,
|
|
17
|
+
* same tier as `type` (a scalar and a declared `type` may NOT share a name — see
|
|
18
|
+
* `scalar-type-name-collision` — but a scalar and an ELEMENT may, same as `type` today).
|
|
19
|
+
* `base` is kept exactly as written; it is matched against `PUBLIC_SCALAR_TYPES` case-
|
|
20
|
+
* insensitively wherever it's resolved (`scalar-unknown-base` is the validate error for a
|
|
21
|
+
* base that doesn't match any entry). */
|
|
22
|
+
export interface ScalarDecl {
|
|
23
|
+
id: string;
|
|
24
|
+
name: string;
|
|
25
|
+
base: string;
|
|
26
|
+
line: number;
|
|
27
|
+
}
|
|
28
|
+
/** A field's type string resolved to a declared scalar, when it names one — bare or `[]`-
|
|
29
|
+
* suffixed, the same shape `TypeRef` gives declared types. */
|
|
30
|
+
export interface ScalarRef {
|
|
31
|
+
scalarDecl: ScalarDecl;
|
|
32
|
+
array: boolean;
|
|
33
|
+
}
|
|
34
|
+
/** A declared `enum Name { member, … }` (GH #478) — its own top-level namespace, same tier as
|
|
35
|
+
* `type`/`scalar` (a declared enum may NOT share a name with either — see
|
|
36
|
+
* `enum-name-collision` — but an enum and an ELEMENT may, same as `type`/`scalar` today).
|
|
37
|
+
* `members` are kept exactly as written (unquoted, case preserved), in declaration order;
|
|
38
|
+
* duplicate-member/empty-enum checks live in `em validate`. */
|
|
39
|
+
export interface EnumDecl {
|
|
40
|
+
id: string;
|
|
41
|
+
name: string;
|
|
42
|
+
members: string[];
|
|
43
|
+
line: number;
|
|
44
|
+
}
|
|
45
|
+
/** A field's type string resolved to a declared enum, when it names one — bare or `[]`-
|
|
46
|
+
* suffixed, the same shape `TypeRef`/`ScalarRef` give declared types/scalars. */
|
|
47
|
+
export interface EnumRef {
|
|
48
|
+
enumDecl: EnumDecl;
|
|
49
|
+
array: boolean;
|
|
50
|
+
}
|
|
16
51
|
export declare const DEFAULT_PERSONA = "User";
|
|
17
52
|
export declare const DEFAULT_CONTEXT = "Domain";
|
|
18
53
|
export interface Element {
|
|
@@ -158,6 +193,14 @@ export interface NormalizedModel {
|
|
|
158
193
|
/** Normalized name -> first-declared TypeDecl (references resolve to the first occurrence,
|
|
159
194
|
* same convention as `byName`). */
|
|
160
195
|
typesByName: Map<string, TypeDecl>;
|
|
196
|
+
/** Declared identity scalars (`scalar Name: base`, GH #477), in document order. */
|
|
197
|
+
scalars: ScalarDecl[];
|
|
198
|
+
/** Normalized name -> first-declared ScalarDecl (same first-wins convention as `typesByName`). */
|
|
199
|
+
scalarsByName: Map<string, ScalarDecl>;
|
|
200
|
+
/** Declared enums (`enum Name { member, … }`, GH #478), in document order. */
|
|
201
|
+
enums: EnumDecl[];
|
|
202
|
+
/** Normalized name -> first-declared EnumDecl (same first-wins convention as `typesByName`). */
|
|
203
|
+
enumsByName: Map<string, EnumDecl>;
|
|
161
204
|
}
|
|
162
205
|
/** One model-declared invariant with the element that declares it (MIL-265). */
|
|
163
206
|
export interface ModelInvariant {
|
|
@@ -184,6 +227,26 @@ export declare function normalize(ast: ModelNode): NormalizedModel;
|
|
|
184
227
|
* Shared by `validate.ts` (cycle detection) and `emit/json.ts` (`typeRef` export).
|
|
185
228
|
*/
|
|
186
229
|
export declare function resolveTypeRef(typeStr: string | undefined, typesByName: Map<string, TypeDecl>): TypeRef | null;
|
|
230
|
+
/**
|
|
231
|
+
* Resolve a field's raw type string to a declared scalar (GH #477's `scalar Name: base`), when
|
|
232
|
+
* it names one — bare or `[]`-suffixed, same matching rule as `resolveTypeRef`. A scalar name
|
|
233
|
+
* and a declared `type` name can never both match (that collision is a validate error,
|
|
234
|
+
* `scalar-type-name-collision`), so this and `resolveTypeRef` are mutually exclusive on any
|
|
235
|
+
* model without that error; callers that need to try both (`resolvePublicType`,
|
|
236
|
+
* `emit/json.ts`'s `fieldExport`) check the declared type first; either order, on a model the
|
|
237
|
+
* error is already red on, is equally well-founded. Shared by `fieldExport` (the `scalarRef`
|
|
238
|
+
* export) and `resolvePublicType` below.
|
|
239
|
+
*/
|
|
240
|
+
export declare function resolveScalarRef(typeStr: string | undefined, scalarsByName: Map<string, ScalarDecl>): ScalarRef | null;
|
|
241
|
+
/**
|
|
242
|
+
* Resolve a field's raw type string to a declared enum (GH #478's `enum Name { … }`), when it
|
|
243
|
+
* names one — bare or `[]`-suffixed, same matching rule as `resolveTypeRef`/`resolveScalarRef`.
|
|
244
|
+
* An enum name, a declared `type` name and a declared `scalar` name can never all match the
|
|
245
|
+
* same name (that's a validate error, `enum-name-collision`), so this and the other two are
|
|
246
|
+
* mutually exclusive on any model without that error. Shared by `fieldExport` (the `enumRef`
|
|
247
|
+
* export) and `resolvePublicType` below.
|
|
248
|
+
*/
|
|
249
|
+
export declare function resolveEnumRef(typeStr: string | undefined, enumsByName: Map<string, EnumDecl>): EnumRef | null;
|
|
187
250
|
/** One `PUBLIC_SCALAR_TYPES` entry: the TypeSpec type a field of this em type emits as, plus —
|
|
188
251
|
* when the entry narrows a TypeSpec core type with `@format` (GH #444, #443 ask 1) — the one
|
|
189
252
|
* scalar declaration `em api generate` must prepend to the namespace, verbatim, before any
|
|
@@ -207,7 +270,13 @@ export interface PublicScalarEntry {
|
|
|
207
270
|
export declare const PUBLIC_SCALAR_TYPES: Readonly<Record<string, PublicScalarEntry>>;
|
|
208
271
|
/** The table's names in declaration order, as printed in diagnostics and docs. */
|
|
209
272
|
export declare const PUBLIC_SCALAR_TYPE_NAMES: readonly string[];
|
|
210
|
-
/** A public field's type resolved against the fixed table
|
|
273
|
+
/** A public field's type resolved against the fixed table, a declared identity scalar, a
|
|
274
|
+
* declared enum, or a declared type. `"identity"` (GH #477) carries the matched `ScalarDecl`
|
|
275
|
+
* plus `base` (the table key it extends, always a `PUBLIC_SCALAR_TYPES` key) and `tsType`
|
|
276
|
+
* (that table entry's own TypeSpec type, e.g. `"Uuid"` for a `uuid`-based scalar) — the same
|
|
277
|
+
* pair `em api generate`'s emitter needs to decide what the identity scalar's own
|
|
278
|
+
* `scalar X extends …;` declaration extends. `"enum"` (GH #478) carries the matched
|
|
279
|
+
* `EnumDecl` — an enum emits its own `enum X { … }` declaration, nothing to extend. */
|
|
211
280
|
export type PublicTypeResolution = {
|
|
212
281
|
kind: "scalar";
|
|
213
282
|
scalar: string;
|
|
@@ -217,13 +286,28 @@ export type PublicTypeResolution = {
|
|
|
217
286
|
kind: "declared";
|
|
218
287
|
typeDecl: TypeDecl;
|
|
219
288
|
array: boolean;
|
|
289
|
+
} | {
|
|
290
|
+
kind: "identity";
|
|
291
|
+
scalarDecl: ScalarDecl;
|
|
292
|
+
base: string;
|
|
293
|
+
tsType: string;
|
|
294
|
+
array: boolean;
|
|
295
|
+
} | {
|
|
296
|
+
kind: "enum";
|
|
297
|
+
enumDecl: EnumDecl;
|
|
298
|
+
array: boolean;
|
|
220
299
|
};
|
|
221
300
|
/**
|
|
222
301
|
* Resolve a field type string under the strict public-surface rule (R7). Declared types win
|
|
223
|
-
* (same precedence `resolveTypeRef` already gives `em export`'s `typeRef`), then
|
|
224
|
-
* scalar
|
|
302
|
+
* (same precedence `resolveTypeRef` already gives `em export`'s `typeRef`), then a declared
|
|
303
|
+
* identity scalar (GH #477), then a declared enum (GH #478), then the fixed scalar table, bare
|
|
304
|
+
* or `[]`-suffixed. A declared type, a declared scalar and a declared enum can never all match
|
|
305
|
+
* the same name (`scalar-type-name-collision`/`enum-name-collision` are validate errors
|
|
306
|
+
* precisely so this precedence never has to break a real tie). Anything else — including an
|
|
307
|
+
* absent type, or an identity scalar whose own `base` doesn't resolve in the table
|
|
308
|
+
* (`scalar-unknown-base`, itself a validate error) — is `null`.
|
|
225
309
|
*/
|
|
226
|
-
export declare function resolvePublicType(typeStr: string | undefined, typesByName: Map<string, TypeDecl>): PublicTypeResolution | null;
|
|
310
|
+
export declare function resolvePublicType(typeStr: string | undefined, typesByName: Map<string, TypeDecl>, scalarsByName: Map<string, ScalarDecl>, enumsByName: Map<string, EnumDecl>): PublicTypeResolution | null;
|
|
227
311
|
/** Resolve an arrow endpoint (given by display name) to an element id. */
|
|
228
312
|
export declare function resolveByName(byName: Map<string, Element[]>, name: string): string | undefined;
|
|
229
313
|
/** GH #344: the commands that record a logical event - every command in every slice where an
|
package/dist/model/model.js
CHANGED
|
@@ -88,6 +88,41 @@ export function normalize(ast) {
|
|
|
88
88
|
if (!typesByName.has(key))
|
|
89
89
|
typesByName.set(key, t); // first declaration wins
|
|
90
90
|
}
|
|
91
|
+
// Scalars (GH #477) are their own namespace too, same id-dedup machinery as types — a scalar
|
|
92
|
+
// and a type may legitimately share neither id-registry nor name (that's the
|
|
93
|
+
// scalar-type-name-collision check, validate.ts), but the id itself never collides with a
|
|
94
|
+
// type's just because the slugs match, same isolation types already get from elements.
|
|
95
|
+
const usedScalarIds = new Set();
|
|
96
|
+
const makeScalarId = (name) => dedupe(slug(name), usedScalarIds, "_");
|
|
97
|
+
const scalars = ast.scalars.map((s) => ({
|
|
98
|
+
id: makeScalarId(s.name),
|
|
99
|
+
name: s.name,
|
|
100
|
+
base: s.base,
|
|
101
|
+
line: s.line,
|
|
102
|
+
}));
|
|
103
|
+
const scalarsByName = new Map();
|
|
104
|
+
for (const s of scalars) {
|
|
105
|
+
const key = normalizeName(s.name);
|
|
106
|
+
if (!scalarsByName.has(key))
|
|
107
|
+
scalarsByName.set(key, s); // first declaration wins
|
|
108
|
+
}
|
|
109
|
+
// Enums (GH #478) are their own namespace too, same id-dedup machinery as types/scalars — an
|
|
110
|
+
// enum shares neither id-registry nor name with a type or a scalar (that's the
|
|
111
|
+
// enum-name-collision check, validate.ts).
|
|
112
|
+
const usedEnumIds = new Set();
|
|
113
|
+
const makeEnumId = (name) => dedupe(slug(name), usedEnumIds, "_");
|
|
114
|
+
const enums = ast.enums.map((e) => ({
|
|
115
|
+
id: makeEnumId(e.name),
|
|
116
|
+
name: e.name,
|
|
117
|
+
members: e.members,
|
|
118
|
+
line: e.line,
|
|
119
|
+
}));
|
|
120
|
+
const enumsByName = new Map();
|
|
121
|
+
for (const e of enums) {
|
|
122
|
+
const key = normalizeName(e.name);
|
|
123
|
+
if (!enumsByName.has(key))
|
|
124
|
+
enumsByName.set(key, e); // first declaration wins
|
|
125
|
+
}
|
|
91
126
|
expandAgainSugar(ast.slices).forEach((sliceNode, sliceIndex) => {
|
|
92
127
|
const slice = {
|
|
93
128
|
name: sliceNode.name,
|
|
@@ -227,6 +262,10 @@ export function normalize(ast) {
|
|
|
227
262
|
arrows,
|
|
228
263
|
types,
|
|
229
264
|
typesByName,
|
|
265
|
+
scalars,
|
|
266
|
+
scalarsByName,
|
|
267
|
+
enums,
|
|
268
|
+
enumsByName,
|
|
230
269
|
};
|
|
231
270
|
// `view X again` continues the instance that is first on the COMPOSED timeline (GH #277): when a
|
|
232
271
|
// storyline declared `after` another sits above it in the file, the referenced storyline's
|
|
@@ -274,6 +313,46 @@ export function resolveTypeRef(typeStr, typesByName) {
|
|
|
274
313
|
const typeDecl = typesByName.get(normalizeName(base));
|
|
275
314
|
return typeDecl ? { typeDecl, array } : null;
|
|
276
315
|
}
|
|
316
|
+
/**
|
|
317
|
+
* Resolve a field's raw type string to a declared scalar (GH #477's `scalar Name: base`), when
|
|
318
|
+
* it names one — bare or `[]`-suffixed, same matching rule as `resolveTypeRef`. A scalar name
|
|
319
|
+
* and a declared `type` name can never both match (that collision is a validate error,
|
|
320
|
+
* `scalar-type-name-collision`), so this and `resolveTypeRef` are mutually exclusive on any
|
|
321
|
+
* model without that error; callers that need to try both (`resolvePublicType`,
|
|
322
|
+
* `emit/json.ts`'s `fieldExport`) check the declared type first; either order, on a model the
|
|
323
|
+
* error is already red on, is equally well-founded. Shared by `fieldExport` (the `scalarRef`
|
|
324
|
+
* export) and `resolvePublicType` below.
|
|
325
|
+
*/
|
|
326
|
+
export function resolveScalarRef(typeStr, scalarsByName) {
|
|
327
|
+
if (!typeStr)
|
|
328
|
+
return null;
|
|
329
|
+
const trimmed = typeStr.trim();
|
|
330
|
+
const array = trimmed.endsWith("[]");
|
|
331
|
+
const base = (array ? trimmed.slice(0, -2) : trimmed).trim();
|
|
332
|
+
if (!base)
|
|
333
|
+
return null;
|
|
334
|
+
const scalarDecl = scalarsByName.get(normalizeName(base));
|
|
335
|
+
return scalarDecl ? { scalarDecl, array } : null;
|
|
336
|
+
}
|
|
337
|
+
/**
|
|
338
|
+
* Resolve a field's raw type string to a declared enum (GH #478's `enum Name { … }`), when it
|
|
339
|
+
* names one — bare or `[]`-suffixed, same matching rule as `resolveTypeRef`/`resolveScalarRef`.
|
|
340
|
+
* An enum name, a declared `type` name and a declared `scalar` name can never all match the
|
|
341
|
+
* same name (that's a validate error, `enum-name-collision`), so this and the other two are
|
|
342
|
+
* mutually exclusive on any model without that error. Shared by `fieldExport` (the `enumRef`
|
|
343
|
+
* export) and `resolvePublicType` below.
|
|
344
|
+
*/
|
|
345
|
+
export function resolveEnumRef(typeStr, enumsByName) {
|
|
346
|
+
if (!typeStr)
|
|
347
|
+
return null;
|
|
348
|
+
const trimmed = typeStr.trim();
|
|
349
|
+
const array = trimmed.endsWith("[]");
|
|
350
|
+
const base = (array ? trimmed.slice(0, -2) : trimmed).trim();
|
|
351
|
+
if (!base)
|
|
352
|
+
return null;
|
|
353
|
+
const enumDecl = enumsByName.get(normalizeName(base));
|
|
354
|
+
return enumDecl ? { enumDecl, array } : null;
|
|
355
|
+
}
|
|
277
356
|
/**
|
|
278
357
|
* The fixed public-surface scalar table (MIL-237, briefing R7) — exactly these eleven names,
|
|
279
358
|
* matched case-insensitively, each with the one TypeSpec type `em api generate` emits for it
|
|
@@ -300,15 +379,31 @@ export const PUBLIC_SCALAR_TYPES = Object.freeze({
|
|
|
300
379
|
export const PUBLIC_SCALAR_TYPE_NAMES = Object.freeze(Object.keys(PUBLIC_SCALAR_TYPES));
|
|
301
380
|
/**
|
|
302
381
|
* Resolve a field type string under the strict public-surface rule (R7). Declared types win
|
|
303
|
-
* (same precedence `resolveTypeRef` already gives `em export`'s `typeRef`), then
|
|
304
|
-
* scalar
|
|
382
|
+
* (same precedence `resolveTypeRef` already gives `em export`'s `typeRef`), then a declared
|
|
383
|
+
* identity scalar (GH #477), then a declared enum (GH #478), then the fixed scalar table, bare
|
|
384
|
+
* or `[]`-suffixed. A declared type, a declared scalar and a declared enum can never all match
|
|
385
|
+
* the same name (`scalar-type-name-collision`/`enum-name-collision` are validate errors
|
|
386
|
+
* precisely so this precedence never has to break a real tie). Anything else — including an
|
|
387
|
+
* absent type, or an identity scalar whose own `base` doesn't resolve in the table
|
|
388
|
+
* (`scalar-unknown-base`, itself a validate error) — is `null`.
|
|
305
389
|
*/
|
|
306
|
-
export function resolvePublicType(typeStr, typesByName) {
|
|
390
|
+
export function resolvePublicType(typeStr, typesByName, scalarsByName, enumsByName) {
|
|
307
391
|
if (!typeStr)
|
|
308
392
|
return null;
|
|
309
393
|
const declared = resolveTypeRef(typeStr, typesByName);
|
|
310
394
|
if (declared)
|
|
311
395
|
return { kind: "declared", typeDecl: declared.typeDecl, array: declared.array };
|
|
396
|
+
const scalarRef = resolveScalarRef(typeStr, scalarsByName);
|
|
397
|
+
if (scalarRef) {
|
|
398
|
+
const base = normalizeName(scalarRef.scalarDecl.base);
|
|
399
|
+
const baseEntry = Object.prototype.hasOwnProperty.call(PUBLIC_SCALAR_TYPES, base) ? PUBLIC_SCALAR_TYPES[base] : undefined;
|
|
400
|
+
if (!baseEntry)
|
|
401
|
+
return null; // scalar-unknown-base: already a validate error elsewhere
|
|
402
|
+
return { kind: "identity", scalarDecl: scalarRef.scalarDecl, base, tsType: baseEntry.tsType, array: scalarRef.array };
|
|
403
|
+
}
|
|
404
|
+
const enumRef = resolveEnumRef(typeStr, enumsByName);
|
|
405
|
+
if (enumRef)
|
|
406
|
+
return { kind: "enum", enumDecl: enumRef.enumDecl, array: enumRef.array };
|
|
312
407
|
const trimmed = typeStr.trim();
|
|
313
408
|
const array = trimmed.endsWith("[]");
|
|
314
409
|
const base = (array ? trimmed.slice(0, -2) : trimmed).trim().toLowerCase();
|
package/dist/model/model.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/model/model.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,sEAAsE;AACtE,2EAA2E;AAE3E,OAAO,EAAE,gBAAgB,EAA2D,MAAM,kBAAkB,CAAC;AAC7G,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAyD3D,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AACtC,MAAM,CAAC,MAAM,eAAe,GAAG,QAAQ,CAAC;AAwExC;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAC,OAAgB;IAC1C,MAAM,OAAO,GAAe,EAAE,CAAC;IAC/B,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3G,CAAC;IACD,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;QACnC,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW;YAAE,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,IAAI,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;;YAClH,OAAO,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,WAAW,IAAI,IAAI,EAAE,CAAC,CAAC;IACxG,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAsFD;;;uDAGuD;AACvD,MAAM,CAAC,MAAM,qBAAqB,GAAG,4BAA4B,CAAC;AAElE,gFAAgF;AAChF,MAAM,UAAU,sBAAsB,CAAC,KAAsB;IAC3D,MAAM,GAAG,GAAqB,EAAE,CAAC;IACjC,gGAAgG;IAChG,wFAAwF;IACxF,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,KAAK,MAAM,OAAO,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrC,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,UAAU,IAAI,EAAE,EAAE,CAAC;YAC3C,IAAI,OAAO,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBAC3C,MAAM,CAAC,GAAG,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,gBAAgB,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC;gBACxE,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;oBAAE,SAAS;gBACjC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC;YACD,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAc;IACtC,MAAM,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,QAAQ,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnC,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,MAAM,QAAQ,GAAc,EAAE,CAAC;IAC/B,MAAM,IAAI,GAAG,IAAI,GAAG,EAAmB,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC5C,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACpD,MAAM,uBAAuB,GAAG,IAAI,GAAG,EAAmB,CAAC;IAC3D,IAAI,aAAa,GAAG,KAAK,CAAC;IAC1B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE1C,MAAM,MAAM,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IAE1E,gFAAgF;IAChF,iFAAiF;IACjF,wEAAwE;IACxE,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;IAClF,MAAM,KAAK,GAAe,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9C,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;QACtB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,MAAM,EAAE,CAAC,CAAC,MAAM;QAChB,IAAI,EAAE,CAAC,CAAC,IAAI;KACb,CAAC,CAAC,CAAC;IACJ,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,yBAAyB;IAC/E,CAAC;IAED,6FAA6F;IAC7F,6EAA6E;IAC7E,0FAA0F;IAC1F,uFAAuF;IACvF,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,GAAG,CAAC,CAAC;IACtF,MAAM,OAAO,GAAiB,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACpD,EAAE,EAAE,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QACxB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,IAAI,EAAE,CAAC,CAAC,IAAI;KACb,CAAC,CAAC,CAAC;IACJ,MAAM,aAAa,GAAG,IAAI,GAAG,EAAsB,CAAC;IACpD,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,yBAAyB;IACnF,CAAC;IAED,6FAA6F;IAC7F,+EAA+E;IAC/E,2CAA2C;IAC3C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,GAAG,CAAC,CAAC;IAClF,MAAM,KAAK,GAAe,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC9C,EAAE,EAAE,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;QACtB,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,OAAO,EAAE,CAAC,CAAC,OAAO;QAClB,IAAI,EAAE,CAAC,CAAC,IAAI;KACb,CAAC,CAAC,CAAC;IACJ,MAAM,WAAW,GAAG,IAAI,GAAG,EAAoB,CAAC;IAChD,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACtB,MAAM,GAAG,GAAG,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,yBAAyB;IAC/E,CAAC;IAED,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,UAAU,EAAE,EAAE;QAC7D,MAAM,KAAK,GAAU;YACnB,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,KAAK,EAAE,UAAU;YACjB,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,IAAI,EAAE,SAAS,CAAC,IAAI;YACpB,WAAW,EAAE,SAAS,CAAC,eAAe,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,SAAS;YACtG,QAAQ,EAAE,EAAE;YACZ,IAAI,EAAE,SAAS,CAAC,IAAI;SACrB,CAAC;QAEF,KAAK,MAAM,EAAE,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;YACpC,MAAM,OAAO,GAAY;gBACvB,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC;gBACnB,SAAS,EAAE,EAAE;gBACb,KAAK,EAAE,EAAE,CAAC,KAAK;gBACf,MAAM,EAAE,EAAE,CAAC,MAAM;gBACjB,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,UAAU;gBACV,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI;gBAC/B,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,WAAW,EAAE,EAAE,CAAC,WAAW;gBAC3B,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,KAAK,EAAE,EAAE,CAAC,KAAK;gBACf,UAAU,EAAE,EAAE,CAAC,UAAU;gBACzB,MAAM,EAAE,EAAE,CAAC,MAAM;gBACjB,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,WAAW,EAAE,EAAE,CAAC,WAAW;gBAC3B,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,QAAQ,EAAE,EAAE,CAAC,QAAQ;gBACrB,UAAU,EAAE,EAAE,CAAC,UAAU;aAC1B,CAAC;YACF,IAAI,EAAE,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;gBACtC,MAAM,EAAE,GAAG,GAAG,UAAU,IAAI,EAAE,CAAC,gBAAgB,EAAE,CAAC;gBAClD,OAAO,CAAC,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,OAAO,CAAC,EAAE,CAAC;gBACzD,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAC5C,CAAC;YAED,IAAI,EAAE,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;gBACrB,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC;gBAC7D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACxD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;YAC5B,CAAC;iBAAM,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC/B,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,IAAI,eAAe,CAAC;gBAC7D,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC;oBAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACxD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;YAC5B,CAAC;iBAAM,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzC,aAAa,GAAG,IAAI,CAAC;YACvB,CAAC;YAED,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC5B,MAAM,IAAI,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;gBACzC,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC1C,OAAO,CAAC,SAAS,GAAG,KAAK,IAAI,OAAO,CAAC,EAAE,CAAC;gBACxC,IAAI,CAAC,KAAK;oBAAE,iBAAiB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YACtD,CAAC;iBAAM,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACpC,sFAAsF;gBACtF,qFAAqF;gBACrF,sFAAsF;gBACtF,wCAAwC;gBACxC,MAAM,IAAI,GAAG,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,SAAS,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC5E,MAAM,KAAK,GAAG,uBAAuB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAChD,IAAI,KAAK,EAAE,CAAC;oBACV,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC;oBAC7B,oFAAoF;oBACpF,uDAAuD;oBACvD,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;wBAAE,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;oBAClF,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC;wBAAE,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;oBAC1E,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS;wBAAE,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;gBAClE,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;oBAC/B,uBAAuB,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC;YACjC,CAAC;YACD,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC7B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACvB,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;YAC9B,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC/B,IAAI,MAAM;gBAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;;gBAC5B,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;QAClC,CAAC;QAED,0FAA0F;QAC1F,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,QAAQ,EAAE,CAAC;YAChC,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC;YAC/F,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,SAAS;gBAC1C,EAAE,CAAC,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC;QACvF,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC,CAAC,CAAC;IAEH,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAC1D,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IAE1D,MAAM,MAAM,GAAoB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACrD,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,EAAE,EAAE,CAAC,CAAC,EAAE;QACR,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC;QACrC,IAAI,EAAE,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC;QACjC,IAAI,EAAE,CAAC,CAAC,IAAI;KACb,CAAC,CAAC,CAAC;IAEJ,MAAM,UAAU,GAAgB,CAAC,GAAG,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC;QAClE,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,MAAM,EAAE,EAAE,CAAC,MAAM;QACjB,KAAK,EAAE,EAAE,CAAC,KAAK;QACf,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACnF,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QACvC,IAAI,EAAE,EAAE,CAAC,IAAI;KACd,CAAC,CAAC,CAAC;IAEJ,MAAM,MAAM,GAAoB;QAC9B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,YAAY,EAAE,GAAG,CAAC,YAAY;QAC9B,KAAK,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;QACrB,QAAQ;QACR,QAAQ;QACR,aAAa;QACb,MAAM;QACN,UAAU;QACV,QAAQ;QACR,IAAI;QACJ,MAAM;QACN,MAAM;QACN,KAAK;QACL,WAAW;QACX,OAAO;QACP,aAAa;QACb,KAAK;QACL,WAAW;KACZ,CAAC;IAEF,iGAAiG;IACjG,2FAA2F;IAC3F,6FAA6F;IAC7F,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,KAAK,KAAK,SAAS,CAAC,EAAE,CAAC;QACpD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAqB,CAAC;QAC5C,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;YAC1B,IAAI,EAAE,CAAC,IAAI,KAAK,MAAM;gBAAE,SAAS;YACjC,MAAM,GAAG,GAAG,aAAa,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;YACnC,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1B,IAAI,CAAC;gBAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;;gBACb,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACpC,IAAI,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;gBACtB,IAAI,kBAAkB,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,QAAQ;oBAAE,KAAK,GAAG,CAAC,CAAC;YACzF,CAAC;YACD,KAAK,MAAM,EAAE,IAAI,KAAK;gBAAE,EAAE,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE,CAAC;QAClD,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,OAA2B,EAC3B,WAAkC;IAElC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAA2B,EAC3B,aAAsC;IAEtC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,UAAU,GAAG,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1D,OAAO,UAAU,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACnD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAC5B,OAA2B,EAC3B,WAAkC;IAElC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC7D,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,OAAO,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/C,CAAC;AAcD;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAgD,MAAM,CAAC,MAAM,CAAC;IAC5F,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE;IAC9C,IAAI,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,IAAI,EAAE;IAC5C,GAAG,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE;IAC1C,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE;IAC3C,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE;IAChD,OAAO,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE;IAChD,IAAI,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,6CAA6C,EAAE;IACnF,IAAI,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE;IAC/C,QAAQ,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,IAAI,EAAE;IACrD,QAAQ,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE;IAClD,KAAK,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE;CAC7C,CAAC,CAAC;AAEH,kFAAkF;AAClF,MAAM,CAAC,MAAM,wBAAwB,GAAsB,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;AAe3G;;;;;;;;;GASG;AACH,MAAM,UAAU,iBAAiB,CAC/B,OAA2B,EAC3B,WAAkC,EAClC,aAAsC,EACtC,WAAkC;IAElC,IAAI,CAAC,OAAO;QAAE,OAAO,IAAI,CAAC;IAC1B,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACtD,IAAI,QAAQ;QAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC;IAC9F,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAC3D,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,IAAI,GAAG,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACtD,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1H,IAAI,CAAC,SAAS;YAAE,OAAO,IAAI,CAAC,CAAC,0DAA0D;QACvF,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC;IACxH,CAAC;IACD,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,EAAE,WAAW,CAAC,CAAC;IACrD,IAAI,OAAO;QAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC;IACvF,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC3E,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAmB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACtH,OAAO,KAAK,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACtF,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,aAAa,CAC3B,MAA8B,EAC9B,IAAY;IAEZ,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,OAAO,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAChE,CAAC;AACD;;;iFAGiF;AACjF,MAAM,UAAU,mBAAmB,CAAC,KAAsB,EAAE,SAAiB;IAC3E,MAAM,GAAG,GAAc,EAAE,CAAC;IAC1B,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC;YAAE,SAAS;QAC3F,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,QAAQ;YAAE,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;gBAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5F,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/dist/model/refs.d.ts
CHANGED
|
@@ -7,6 +7,10 @@ export interface RefsResult {
|
|
|
7
7
|
refById: Map<string, string>;
|
|
8
8
|
/** Internal `TypeDecl.id` -> stable export `ref` (`types/<slug(name)>`). */
|
|
9
9
|
refByTypeId: Map<string, string>;
|
|
10
|
+
/** Internal `ScalarDecl.id` -> stable export `ref` (`scalars/<slug(name)>`, GH #477). */
|
|
11
|
+
refByScalarId: Map<string, string>;
|
|
12
|
+
/** Internal `EnumDecl.id` -> stable export `ref` (`enums/<slug(name)>`, GH #478). */
|
|
13
|
+
refByEnumId: Map<string, string>;
|
|
10
14
|
/** Ref-collision warnings raised while assigning keys/refs (duplicate names). */
|
|
11
15
|
diagnostics: Diagnostic[];
|
|
12
16
|
}
|
package/dist/model/refs.js
CHANGED
|
@@ -73,6 +73,40 @@ export function computeRefs(model) {
|
|
|
73
73
|
}
|
|
74
74
|
refByTypeId.set(t.id, ref);
|
|
75
75
|
}
|
|
76
|
-
|
|
76
|
+
// Scalars (GH #477) get the same ref scheme as types, in their own `scalars/` prefix — never
|
|
77
|
+
// `types/`, so a scalar and a type can never collide on ref even if `scalar-type-name-
|
|
78
|
+
// collision` somehow didn't fire first.
|
|
79
|
+
const usedScalarRefs = new Set();
|
|
80
|
+
const refByScalarId = new Map();
|
|
81
|
+
for (const s of model.scalars) {
|
|
82
|
+
const base = `scalars/${kebabSlug(s.name)}`;
|
|
83
|
+
const ref = dedupe(base, usedScalarRefs, "~");
|
|
84
|
+
if (ref !== base) {
|
|
85
|
+
pushDiag(diagnostics, "duplicate-scalar-ref", {
|
|
86
|
+
message: `duplicate scalar "${s.name}" (export ref "${base}" already used); rename for a stable export ref`,
|
|
87
|
+
line: s.line,
|
|
88
|
+
refs: [ref, base],
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
refByScalarId.set(s.id, ref);
|
|
92
|
+
}
|
|
93
|
+
// Enums (GH #478) get the same ref scheme too, in their own `enums/` prefix — never
|
|
94
|
+
// `types/`/`scalars/`, so an enum can never collide on ref with either even if
|
|
95
|
+
// `enum-name-collision` somehow didn't fire first.
|
|
96
|
+
const usedEnumRefs = new Set();
|
|
97
|
+
const refByEnumId = new Map();
|
|
98
|
+
for (const e of model.enums) {
|
|
99
|
+
const base = `enums/${kebabSlug(e.name)}`;
|
|
100
|
+
const ref = dedupe(base, usedEnumRefs, "~");
|
|
101
|
+
if (ref !== base) {
|
|
102
|
+
pushDiag(diagnostics, "duplicate-enum-ref", {
|
|
103
|
+
message: `duplicate enum "${e.name}" (export ref "${base}" already used); rename for a stable export ref`,
|
|
104
|
+
line: e.line,
|
|
105
|
+
refs: [ref, base],
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
refByEnumId.set(e.id, ref);
|
|
109
|
+
}
|
|
110
|
+
return { sliceKeys, refById, refByTypeId, refByScalarId, refByEnumId, diagnostics };
|
|
77
111
|
}
|
|
78
112
|
//# sourceMappingURL=refs.js.map
|
package/dist/model/refs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"refs.js","sourceRoot":"","sources":["../../src/model/refs.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,oFAAoF;AACpF,uFAAuF;AACvF,2FAA2F;AAC3F,EAAE;AACF,yFAAyF;AACzF,4FAA4F;AAC5F,4FAA4F;AAC5F,wFAAwF;AACxF,oDAAoD;AAIpD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"refs.js","sourceRoot":"","sources":["../../src/model/refs.ts"],"names":[],"mappings":"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"}
|
package/dist/model/rules.d.ts
CHANGED
|
@@ -323,6 +323,55 @@ export declare const RULES: {
|
|
|
323
323
|
readonly usageCategory: "public field type unresolved";
|
|
324
324
|
readonly docAnchor: "strict-public-types";
|
|
325
325
|
};
|
|
326
|
+
readonly "scalar-unknown-base": {
|
|
327
|
+
readonly severity: "error";
|
|
328
|
+
readonly title: "Scalar unknown base";
|
|
329
|
+
readonly fix: "Point `base` at one of the public scalar table's names (string, text, int, long, decimal, boolean, uuid, date, datetime, duration, bytes), case-insensitive.";
|
|
330
|
+
readonly usageCategory: "scalar unknown base";
|
|
331
|
+
readonly docAnchor: "strict-public-types";
|
|
332
|
+
};
|
|
333
|
+
readonly "scalar-duplicate-name": {
|
|
334
|
+
readonly severity: "error";
|
|
335
|
+
readonly title: "Scalar duplicate name";
|
|
336
|
+
readonly fix: "Declare the scalar once; rename or remove the duplicate `scalar` line.";
|
|
337
|
+
readonly usageCategory: "scalar duplicate name";
|
|
338
|
+
readonly docAnchor: "strict-public-types";
|
|
339
|
+
};
|
|
340
|
+
readonly "scalar-type-name-collision": {
|
|
341
|
+
readonly severity: "error";
|
|
342
|
+
readonly title: "Scalar/type name collision";
|
|
343
|
+
readonly fix: "Rename the `scalar` or the `type` so the two names no longer collide — a name can't mean both at once.";
|
|
344
|
+
readonly usageCategory: "scalar type name collision";
|
|
345
|
+
readonly docAnchor: "strict-public-types";
|
|
346
|
+
};
|
|
347
|
+
readonly "enum-empty": {
|
|
348
|
+
readonly severity: "error";
|
|
349
|
+
readonly title: "Empty enum";
|
|
350
|
+
readonly fix: "Give the enum at least one member, or remove the declaration.";
|
|
351
|
+
readonly usageCategory: "enum empty";
|
|
352
|
+
readonly docAnchor: "strict-public-types";
|
|
353
|
+
};
|
|
354
|
+
readonly "enum-duplicate-member": {
|
|
355
|
+
readonly severity: "error";
|
|
356
|
+
readonly title: "Enum duplicate member";
|
|
357
|
+
readonly fix: "Remove or rename the duplicate member — members are compared case-insensitively.";
|
|
358
|
+
readonly usageCategory: "enum duplicate member";
|
|
359
|
+
readonly docAnchor: "strict-public-types";
|
|
360
|
+
};
|
|
361
|
+
readonly "enum-duplicate-name": {
|
|
362
|
+
readonly severity: "error";
|
|
363
|
+
readonly title: "Enum duplicate name";
|
|
364
|
+
readonly fix: "Declare the enum once; rename or remove the duplicate `enum` block.";
|
|
365
|
+
readonly usageCategory: "enum duplicate name";
|
|
366
|
+
readonly docAnchor: "strict-public-types";
|
|
367
|
+
};
|
|
368
|
+
readonly "enum-name-collision": {
|
|
369
|
+
readonly severity: "error";
|
|
370
|
+
readonly title: "Enum/type/scalar name collision";
|
|
371
|
+
readonly fix: "Rename the `enum` or the colliding `type`/`scalar` so the names no longer collide — a name can't mean both at once.";
|
|
372
|
+
readonly usageCategory: "enum name collision";
|
|
373
|
+
readonly docAnchor: "strict-public-types";
|
|
374
|
+
};
|
|
326
375
|
readonly "lineage-ref-malformed": {
|
|
327
376
|
readonly severity: "error";
|
|
328
377
|
readonly title: "Malformed lineage ref";
|
|
@@ -525,6 +574,18 @@ export declare const RULES: {
|
|
|
525
574
|
readonly fix: "Rename the type so its export ref is unique.";
|
|
526
575
|
readonly usageCategory: "duplicate type ref";
|
|
527
576
|
};
|
|
577
|
+
readonly "duplicate-scalar-ref": {
|
|
578
|
+
readonly severity: "warning";
|
|
579
|
+
readonly title: "Duplicate scalar ref";
|
|
580
|
+
readonly fix: "Rename the scalar so its export ref is unique.";
|
|
581
|
+
readonly usageCategory: "duplicate scalar ref";
|
|
582
|
+
};
|
|
583
|
+
readonly "duplicate-enum-ref": {
|
|
584
|
+
readonly severity: "warning";
|
|
585
|
+
readonly title: "Duplicate enum ref";
|
|
586
|
+
readonly fix: "Rename the enum so its export ref is unique.";
|
|
587
|
+
readonly usageCategory: "duplicate enum ref";
|
|
588
|
+
};
|
|
528
589
|
readonly "duplicate-model-key": {
|
|
529
590
|
readonly severity: "warning";
|
|
530
591
|
readonly title: "Duplicate model key";
|
package/dist/model/rules.js
CHANGED
|
@@ -316,6 +316,66 @@ export const RULES = {
|
|
|
316
316
|
usageCategory: "public field type unresolved",
|
|
317
317
|
docAnchor: "strict-public-types",
|
|
318
318
|
},
|
|
319
|
+
// GH #477: `scalar Name: base` declarations. Unlike `duplicate-type-name` (a warning — a
|
|
320
|
+
// declared type's references always resolve unambiguously to the first occurrence), these
|
|
321
|
+
// three are errors in the house style: a scalar is a wire-identity declaration, so a
|
|
322
|
+
// redeclaration, an unresolvable base, or a name that silently means two different things
|
|
323
|
+
// (a scalar here, a type there) is a contract defect, not a cosmetic duplicate.
|
|
324
|
+
"scalar-unknown-base": {
|
|
325
|
+
severity: "error",
|
|
326
|
+
title: "Scalar unknown base",
|
|
327
|
+
fix: "Point `base` at one of the public scalar table's names (string, text, int, long, decimal, boolean, uuid, date, datetime, duration, bytes), case-insensitive.",
|
|
328
|
+
usageCategory: "scalar unknown base",
|
|
329
|
+
docAnchor: "strict-public-types",
|
|
330
|
+
},
|
|
331
|
+
"scalar-duplicate-name": {
|
|
332
|
+
severity: "error",
|
|
333
|
+
title: "Scalar duplicate name",
|
|
334
|
+
fix: "Declare the scalar once; rename or remove the duplicate `scalar` line.",
|
|
335
|
+
usageCategory: "scalar duplicate name",
|
|
336
|
+
docAnchor: "strict-public-types",
|
|
337
|
+
},
|
|
338
|
+
"scalar-type-name-collision": {
|
|
339
|
+
severity: "error",
|
|
340
|
+
title: "Scalar/type name collision",
|
|
341
|
+
fix: "Rename the `scalar` or the `type` so the two names no longer collide — a name can't mean both at once.",
|
|
342
|
+
usageCategory: "scalar type name collision",
|
|
343
|
+
docAnchor: "strict-public-types",
|
|
344
|
+
},
|
|
345
|
+
// GH #478: `enum Name { member, … }` declarations. Same house-style posture as #477's
|
|
346
|
+
// scalar errors (above) — an enum is a wire-identity value set, so getting it wrong is a
|
|
347
|
+
// contract defect, not a cosmetic duplicate. `enum-duplicate-name` extends the scalar
|
|
348
|
+
// precedent (two declarations under one name silently picking first-wins is a worse defect
|
|
349
|
+
// for a value-set identity than it is for a `type`'s shape) even though the issue's own list
|
|
350
|
+
// named only three checks — see REPORT.md.
|
|
351
|
+
"enum-empty": {
|
|
352
|
+
severity: "error",
|
|
353
|
+
title: "Empty enum",
|
|
354
|
+
fix: "Give the enum at least one member, or remove the declaration.",
|
|
355
|
+
usageCategory: "enum empty",
|
|
356
|
+
docAnchor: "strict-public-types",
|
|
357
|
+
},
|
|
358
|
+
"enum-duplicate-member": {
|
|
359
|
+
severity: "error",
|
|
360
|
+
title: "Enum duplicate member",
|
|
361
|
+
fix: "Remove or rename the duplicate member — members are compared case-insensitively.",
|
|
362
|
+
usageCategory: "enum duplicate member",
|
|
363
|
+
docAnchor: "strict-public-types",
|
|
364
|
+
},
|
|
365
|
+
"enum-duplicate-name": {
|
|
366
|
+
severity: "error",
|
|
367
|
+
title: "Enum duplicate name",
|
|
368
|
+
fix: "Declare the enum once; rename or remove the duplicate `enum` block.",
|
|
369
|
+
usageCategory: "enum duplicate name",
|
|
370
|
+
docAnchor: "strict-public-types",
|
|
371
|
+
},
|
|
372
|
+
"enum-name-collision": {
|
|
373
|
+
severity: "error",
|
|
374
|
+
title: "Enum/type/scalar name collision",
|
|
375
|
+
fix: "Rename the `enum` or the colliding `type`/`scalar` so the names no longer collide — a name can't mean both at once.",
|
|
376
|
+
usageCategory: "enum name collision",
|
|
377
|
+
docAnchor: "strict-public-types",
|
|
378
|
+
},
|
|
319
379
|
"lineage-ref-malformed": {
|
|
320
380
|
severity: "error",
|
|
321
381
|
title: "Malformed lineage ref",
|
|
@@ -518,6 +578,18 @@ export const RULES = {
|
|
|
518
578
|
fix: "Rename the type so its export ref is unique.",
|
|
519
579
|
usageCategory: "duplicate type ref",
|
|
520
580
|
},
|
|
581
|
+
"duplicate-scalar-ref": {
|
|
582
|
+
severity: "warning",
|
|
583
|
+
title: "Duplicate scalar ref",
|
|
584
|
+
fix: "Rename the scalar so its export ref is unique.",
|
|
585
|
+
usageCategory: "duplicate scalar ref",
|
|
586
|
+
},
|
|
587
|
+
"duplicate-enum-ref": {
|
|
588
|
+
severity: "warning",
|
|
589
|
+
title: "Duplicate enum ref",
|
|
590
|
+
fix: "Rename the enum so its export ref is unique.",
|
|
591
|
+
usageCategory: "duplicate enum ref",
|
|
592
|
+
},
|
|
521
593
|
// MIL-193: two models in one multi-model invocation whose model keys (kebab-slugged declared
|
|
522
594
|
// names, model/qualifiedRef.ts) collide — the later one takes a `~n` suffix, exactly as
|
|
523
595
|
// `duplicate-slice-name` handles a slice-key collision. Raised by computeModelKeys(), which
|