@skmtc/core 0.16.3 → 0.18.1

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 (83) hide show
  1. package/esm/context/GenerateContext.d.ts +3 -3
  2. package/esm/context/GenerateContext.d.ts.map +1 -1
  3. package/esm/context/GenerateContext.js +45 -32
  4. package/esm/context/ParseContext.d.ts +16 -0
  5. package/esm/context/ParseContext.d.ts.map +1 -1
  6. package/esm/context/ParseContext.js +16 -0
  7. package/esm/dsl/model/ModelDriver.d.ts.map +1 -1
  8. package/esm/dsl/model/ModelDriver.js +29 -0
  9. package/esm/dsl/model/toModelEntry.d.ts +9 -3
  10. package/esm/dsl/model/toModelEntry.d.ts.map +1 -1
  11. package/esm/dsl/model/toModelEntry.js +29 -1
  12. package/esm/dsl/model/toModelProjectionBase.d.ts +16 -3
  13. package/esm/dsl/model/toModelProjectionBase.d.ts.map +1 -1
  14. package/esm/dsl/model/toModelProjectionBase.js +3 -3
  15. package/esm/dsl/model/types.d.ts +46 -0
  16. package/esm/dsl/model/types.d.ts.map +1 -1
  17. package/esm/dsl/operation/gql/types.d.ts +6 -1
  18. package/esm/dsl/operation/gql/types.d.ts.map +1 -1
  19. package/esm/dsl/operation/oas/types.d.ts +6 -1
  20. package/esm/dsl/operation/oas/types.d.ts.map +1 -1
  21. package/esm/enrichments/validateConfig.d.ts +60 -0
  22. package/esm/enrichments/validateConfig.d.ts.map +1 -0
  23. package/esm/enrichments/validateConfig.js +176 -0
  24. package/esm/mod.d.ts +1 -0
  25. package/esm/mod.d.ts.map +1 -1
  26. package/esm/mod.js +1 -0
  27. package/esm/parse/v3-0/_merge-all-of/decompose-union.d.ts.map +1 -1
  28. package/esm/parse/v3-0/_merge-all-of/decompose-union.js +8 -12
  29. package/esm/parse/v3-0/_merge-all-of/merge-union.d.ts.map +1 -1
  30. package/esm/parse/v3-0/_merge-all-of/merge-union.js +0 -8
  31. package/esm/parse/v3-0/schema/toSchemasV3.d.ts.map +1 -1
  32. package/esm/parse/v3-0/schema/toSchemasV3.js +8 -0
  33. package/esm/parse/v3-1/_merge-all-of/decompose-union.d.ts.map +1 -1
  34. package/esm/parse/v3-1/_merge-all-of/decompose-union.js +8 -12
  35. package/esm/parse/v3-1/_merge-all-of/merge-union.d.ts.map +1 -1
  36. package/esm/parse/v3-1/_merge-all-of/merge-union.js +0 -8
  37. package/esm/parse/v3-1/schema/toSchemasV3.d.ts.map +1 -1
  38. package/esm/parse/v3-1/schema/toSchemasV3.js +8 -0
  39. package/esm/types/Settings.d.ts +16 -3
  40. package/esm/types/Settings.d.ts.map +1 -1
  41. package/esm/types/Settings.js +19 -13
  42. package/package.json +1 -1
  43. package/script/context/GenerateContext.d.ts +3 -3
  44. package/script/context/GenerateContext.d.ts.map +1 -1
  45. package/script/context/GenerateContext.js +45 -32
  46. package/script/context/ParseContext.d.ts +16 -0
  47. package/script/context/ParseContext.d.ts.map +1 -1
  48. package/script/context/ParseContext.js +16 -0
  49. package/script/dsl/model/ModelDriver.d.ts.map +1 -1
  50. package/script/dsl/model/ModelDriver.js +29 -0
  51. package/script/dsl/model/toModelEntry.d.ts +9 -3
  52. package/script/dsl/model/toModelEntry.d.ts.map +1 -1
  53. package/script/dsl/model/toModelEntry.js +65 -1
  54. package/script/dsl/model/toModelProjectionBase.d.ts +16 -3
  55. package/script/dsl/model/toModelProjectionBase.d.ts.map +1 -1
  56. package/script/dsl/model/toModelProjectionBase.js +3 -3
  57. package/script/dsl/model/types.d.ts +46 -0
  58. package/script/dsl/model/types.d.ts.map +1 -1
  59. package/script/dsl/operation/gql/types.d.ts +6 -1
  60. package/script/dsl/operation/gql/types.d.ts.map +1 -1
  61. package/script/dsl/operation/oas/types.d.ts +6 -1
  62. package/script/dsl/operation/oas/types.d.ts.map +1 -1
  63. package/script/enrichments/validateConfig.d.ts +60 -0
  64. package/script/enrichments/validateConfig.d.ts.map +1 -0
  65. package/script/enrichments/validateConfig.js +213 -0
  66. package/script/mod.d.ts +1 -0
  67. package/script/mod.d.ts.map +1 -1
  68. package/script/mod.js +1 -0
  69. package/script/parse/v3-0/_merge-all-of/decompose-union.d.ts.map +1 -1
  70. package/script/parse/v3-0/_merge-all-of/decompose-union.js +8 -12
  71. package/script/parse/v3-0/_merge-all-of/merge-union.d.ts.map +1 -1
  72. package/script/parse/v3-0/_merge-all-of/merge-union.js +0 -8
  73. package/script/parse/v3-0/schema/toSchemasV3.d.ts.map +1 -1
  74. package/script/parse/v3-0/schema/toSchemasV3.js +8 -0
  75. package/script/parse/v3-1/_merge-all-of/decompose-union.d.ts.map +1 -1
  76. package/script/parse/v3-1/_merge-all-of/decompose-union.js +8 -12
  77. package/script/parse/v3-1/_merge-all-of/merge-union.d.ts.map +1 -1
  78. package/script/parse/v3-1/_merge-all-of/merge-union.js +0 -8
  79. package/script/parse/v3-1/schema/toSchemasV3.d.ts.map +1 -1
  80. package/script/parse/v3-1/schema/toSchemasV3.js +8 -0
  81. package/script/types/Settings.d.ts +16 -3
  82. package/script/types/Settings.d.ts.map +1 -1
  83. package/script/types/Settings.js +16 -10
@@ -43,6 +43,33 @@ export type TransformModelArgs = {
43
43
  */
44
44
  variant: string;
45
45
  };
46
+ /**
47
+ * Arguments a model generator's `isSupported` predicate receives at the
48
+ * entry/dispatch boundary. The capability counterpart of
49
+ * {@link TransformModelArgs}: it carries the resolved enrichment umbrella so
50
+ * the predicate can gate on user config, but no schema — the predicate
51
+ * resolves the schema itself (`context.resolveSchemaRefOnce(refName, id)`)
52
+ * when it needs it, mirroring how `transform` works.
53
+ */
54
+ export type IsSupportedModelConfigArgs<EnrichmentType = undefined> = {
55
+ context: GenerateContextType;
56
+ refName: RefName;
57
+ enrichments: EnrichmentType;
58
+ /** Model variant being probed (see {@link Variant}) */
59
+ variant: string;
60
+ };
61
+ /**
62
+ * Arguments the engine passes to the wrapped `isSupported` on a built
63
+ * {@link ModelConfig} — the enrichment-free outer shape (the
64
+ * {@link toModelEntry} wrapper assembles the umbrella before calling the
65
+ * user's predicate).
66
+ */
67
+ export type IsSupportedModelArgs = {
68
+ context: GenerateContextType;
69
+ refName: RefName;
70
+ /** Model variant being probed (see {@link Variant}) */
71
+ variant: string;
72
+ };
46
73
  export type ToModelPreviewModuleArgs = {
47
74
  context: GenerateContextType;
48
75
  refName: RefName;
@@ -103,6 +130,17 @@ export type ModelProjection<V extends GeneratedValue, EnrichmentType = undefined
103
130
  toIdentifierType: (refName: RefName, context: GenerateContextType) => IdentifierType;
104
131
  toExportPath: (args: ToModelExportPathArgs<EnrichmentType>) => string;
105
132
  toEnrichments: ({ refName, context, variant }: ToModelEnrichmentsArgs) => EnrichmentType;
133
+ /**
134
+ * Family-level capability predicate, surfaced as a static by
135
+ * `toModelProjectionBase` (default `() => true`). The Driver probes it on
136
+ * every `insertModel` so a peer is never handed a model it has declared
137
+ * unsupported. Optional: a hand-rolled projection may omit it, in which
138
+ * case it is treated as supporting every model.
139
+ */
140
+ isSupported?: (args: {
141
+ refName: RefName;
142
+ context: GenerateContextType;
143
+ }) => boolean;
106
144
  schemaToValueFn: SchemaToValueFn;
107
145
  /**
108
146
  * The inline-schema fallback seam used by `insertNormalizedModel` when a
@@ -121,6 +159,14 @@ export type ModelConfig<EnrichmentType = undefined> = {
121
159
  id: string;
122
160
  type: 'model';
123
161
  transform: ({ context, refName, variant }: TransformModelArgs) => void;
162
+ /**
163
+ * Optional capability gate, evaluated by the engine before `include` /
164
+ * `skip`. A model whose predicate returns `false` is recorded `notSupported`
165
+ * and its `transform` is skipped. Absent → treated as `() => true` (every
166
+ * model supported). {@link toModelEntry} still defaults it for built configs,
167
+ * but a hand-constructed config may omit it.
168
+ */
169
+ isSupported?: ({ context, refName }: IsSupportedModelArgs) => boolean;
124
170
  toPreviewModule?: ({ context, refName, variant }: ToModelPreviewModuleArgs) => PreviewModule;
125
171
  toMappingModule?: ({ context, refName, variant }: ToModelMappingArgs) => MappingModule;
126
172
  toEnrichmentSchema: () => v.GenericSchema<EnrichmentType>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/dsl/model/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACzE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AACtC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,KAAK,KAAK,CAAC,MAAM,SAAS,CAAA;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAC1E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAEhE;;;;;;GAMG;AACH,MAAM,MAAM,8BAA8B,CAAC,cAAc,GAAG,SAAS,IAAI;IACvE,OAAO,EAAE,mBAAmB,CAAA;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,eAAe,CAAC,cAAc,CAAC,CAAA;IACzC,eAAe,EAAE,MAAM,CAAA;IACvB,OAAO,CAAC,EAAE,OAAO,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAA;CAC3C,CAAA;AAED,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,mBAAmB,CAAA;IAC5B,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,mBAAmB,CAAA;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,OAAO,EAAE,mBAAmB,CAAA;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,mBAAmB,CAAA;IAC5B,OAAO,EAAE,OAAO,CAAA;IAChB,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,yBAAyB,CAAC,cAAc,GAAG,SAAS,IAAI;IAClE,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,cAAc,CAAA;IAC3B,6EAA6E;IAC7E,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,qBAAqB,CAAC,cAAc,GAAG,SAAS,IAAI;IAC9D,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,cAAc,CAAA;IAC3B,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,cAAc,EAAE,cAAc,GAAG,SAAS,IAAI;IAClF,SAAS,EAAE,CAAC,CAAA;CACb,GAAG;IACF,KAAK,EACH,OAAO,EACP,OAAO,EACP,QAAQ,EACR,eAAe,EACf,OAAO,EACR,EAAE,8BAA8B,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;IACrD,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,OAAO,CAAA;IACb;;;;;OAKG;IACH,IAAI,EAAE,IAAI,CAAA;IACV,gCAAgC;IAChC,gBAAgB,EAAE,CAAC,IAAI,EAAE,yBAAyB,CAAC,cAAc,CAAC,KAAK,MAAM,CAAA;IAC7E;;;;;OAKG;IACH,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,KAAK,cAAc,CAAA;IACpF,YAAY,EAAE,CAAC,IAAI,EAAE,qBAAqB,CAAC,cAAc,CAAC,KAAK,MAAM,CAAA;IACrE,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,sBAAsB,KAAK,cAAc,CAAA;IACxF,eAAe,EAAE,eAAe,CAAA;IAChC;;;;;OAKG;IACH,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,cAAc,CAAA;CAEnD,GAAG,QAAQ,CAAA;AAEZ;;;;GAIG;AACH,MAAM,MAAM,WAAW,CAAC,cAAc,GAAG,SAAS,IAAI;IACpD,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,OAAO,CAAA;IACb,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,kBAAkB,KAAK,IAAI,CAAA;IACtE,eAAe,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,wBAAwB,KAAK,aAAa,CAAA;IAC5F,eAAe,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,kBAAkB,KAAK,aAAa,CAAA;IACtF,kBAAkB,EAAE,MAAM,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;IACzD,mBAAmB,CAAC,EAAE,CAAC,mBAAmB,SAAS,cAAc,EAC/D,OAAO,EAAE,OAAO,KACb,iBAAiB,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAA;IACvD;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,CAAC,EACtB,OAAO,EACP,OAAO,EACP,OAAO,EACR,EAAE,sBAAsB,KAAK,cAAc,GAAG,SAAS,CAAA;CACzD,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/dsl/model/types.ts"],"names":[],"mappings":"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"}
@@ -133,7 +133,12 @@ export type GqlOperationConfig<EnrichmentType = undefined> = {
133
133
  type: 'gqlOperation';
134
134
  transform: ({ context, operation, variant }: TransformGqlOperationArgs) => void;
135
135
  toEnrichmentSchema: () => v.GenericSchema<EnrichmentType>;
136
- isSupported: ({ context, operation }: IsSupportedGqlOperationArgs) => boolean;
136
+ /**
137
+ * Optional capability gate, evaluated before `include` / `skip`. Absent →
138
+ * treated as `() => true` (every operation supported). `toGqlOperationEntry`
139
+ * defaults it for built configs; a hand-constructed config may omit it.
140
+ */
141
+ isSupported?: ({ context, operation }: IsSupportedGqlOperationArgs) => boolean;
137
142
  toPreviewModule?: ({ context, operation }: ToGqlOperationPreviewModuleArgs) => PreviewModule;
138
143
  toMappingModule?: ({ context, operation }: ToGqlOperationMappingArgs) => MappingModule;
139
144
  toEnrichmentRequest?: <RequestedEnrichment extends EnrichmentType>(operation: GqlOperation) => EnrichmentRequest<RequestedEnrichment> | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/dsl/operation/gql/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAA;AAC1E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC/D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAA;AAC5E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AAC7D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAA;AAC5E,OAAO,KAAK,KAAK,CAAC,MAAM,SAAS,CAAA;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AAE7E;;;;;GAKG;AACH,MAAM,MAAM,qCAAqC,CAAC,cAAc,GAAG,SAAS,IAAI;IAC9E,OAAO,EAAE,mBAAmB,CAAA;IAC5B,QAAQ,EAAE,eAAe,CAAC,cAAc,CAAC,CAAA;IACzC,SAAS,EAAE,YAAY,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,mBAAmB,CAAA;IAC5B,SAAS,EAAE,YAAY,CAAA;IACvB;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,kBAAkB,EAAE,CAAC,SAAS,EAAE,YAAY,KAAK,IAAI,CAAA;CACtD,CAAA;AAED,MAAM,MAAM,iCAAiC,CAAC,cAAc,GAAG,SAAS,IAAI;IAC1E,OAAO,EAAE,mBAAmB,CAAA;IAC5B,SAAS,EAAE,YAAY,CAAA;IACvB,WAAW,EAAE,cAAc,CAAA;IAC3B,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,2BAA2B,GAAG;IACxC,OAAO,EAAE,mBAAmB,CAAA;IAC5B,SAAS,EAAE,YAAY,CAAA;IACvB,2DAA2D;IAC3D,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,6BAA6B,GAAG;IAC1C,SAAS,EAAE,YAAY,CAAA;IACvB,OAAO,EAAE,mBAAmB,CAAA;IAC5B,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,+BAA+B,GAAG;IAC5C,OAAO,EAAE,mBAAmB,CAAA;IAC5B,SAAS,EAAE,YAAY,CAAA;IACvB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,mBAAmB,CAAA;IAC5B,SAAS,EAAE,YAAY,CAAA;IACvB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,gCAAgC,CAAC,cAAc,GAAG,SAAS,IAAI;IACzE,SAAS,EAAE,YAAY,CAAA;IACvB,WAAW,EAAE,cAAc,CAAA;IAC3B,iFAAiF;IACjF,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,MAAM,MAAM,4BAA4B,CAAC,cAAc,GAAG,SAAS,IAAI;IACrE,SAAS,EAAE,YAAY,CAAA;IACvB,WAAW,EAAE,cAAc,CAAA;IAC3B,kFAAkF;IAClF,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,sBAAsB,CAAC,CAAC,SAAS,cAAc,EAAE,cAAc,GAAG,SAAS,IAAI;IACzF,SAAS,EAAE,CAAC,CAAA;CACb,GAAG;IACF,KAAK,EACH,OAAO,EACP,QAAQ,EACR,SAAS,EACV,EAAE,qCAAqC,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;IAC5D,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,cAAc,CAAA;IACpB;;;;;OAKG;IACH,IAAI,EAAE,IAAI,CAAA;IACV,gCAAgC;IAChC,gBAAgB,EAAE,CAAC,IAAI,EAAE,gCAAgC,CAAC,cAAc,CAAC,KAAK,MAAM,CAAA;IACpF;;;;;OAKG;IACH,gBAAgB,EAAE,CAAC,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,mBAAmB,KAAK,cAAc,CAAA;IAC3F,YAAY,EAAE,CAAC,IAAI,EAAE,4BAA4B,CAAC,cAAc,CAAC,KAAK,MAAM,CAAA;IAC5E,aAAa,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,6BAA6B,KAAK,cAAc,CAAA;IACxF;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE;QAAE,SAAS,EAAE,YAAY,CAAC;QAAC,OAAO,EAAE,mBAAmB,CAAA;KAAE,KAAK,OAAO,CAAA;CAE3F,GAAG,QAAQ,CAAA;AAEZ;;;GAGG;AACH,MAAM,MAAM,kBAAkB,CAAC,cAAc,GAAG,SAAS,IAAI;IAC3D,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,cAAc,CAAA;IACpB,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,yBAAyB,KAAK,IAAI,CAAA;IAC/E,kBAAkB,EAAE,MAAM,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;IACzD,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,2BAA2B,KAAK,OAAO,CAAA;IAC7E,eAAe,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,+BAA+B,KAAK,aAAa,CAAA;IAC5F,eAAe,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,yBAAyB,KAAK,aAAa,CAAA;IACtF,mBAAmB,CAAC,EAAE,CAAC,mBAAmB,SAAS,cAAc,EAC/D,SAAS,EAAE,YAAY,KACpB,iBAAiB,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAA;CACxD,CAAA"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/dsl/operation/gql/types.ts"],"names":[],"mappings":"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"}
@@ -133,7 +133,12 @@ export type OasOperationConfig<EnrichmentType = undefined> = {
133
133
  type: 'oasOperation';
134
134
  transform: ({ context, operation, variant }: TransformOasOperationArgs) => void;
135
135
  toEnrichmentSchema: () => v.GenericSchema<EnrichmentType>;
136
- isSupported: ({ context, operation }: IsSupportedOasOperationArgs) => boolean;
136
+ /**
137
+ * Optional capability gate, evaluated before `include` / `skip`. Absent →
138
+ * treated as `() => true` (every operation supported). `toOasOperationEntry`
139
+ * defaults it for built configs; a hand-constructed config may omit it.
140
+ */
141
+ isSupported?: ({ context, operation }: IsSupportedOasOperationArgs) => boolean;
137
142
  /**
138
143
  * Optional: compute the DEFAULT enrichment values for an operation from its
139
144
  * schema — the seed the CMS persists and the user then edits. The pipeline
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/dsl/operation/oas/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/dsl/operation/oas/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,60 @@
1
+ import { type GeneratorEnrichments } from '../types/Enrichments.js';
2
+ import type { EnrichmentSource } from './toEnrichmentDescriptor.js';
3
+ /**
4
+ * Which of the three enrichment scopes a validation issue belongs to.
5
+ * Mirrors the `{ subject, generator, stack }` umbrella members.
6
+ */
7
+ export type EnrichmentValidationScope = 'subject' | 'generator' | 'stack';
8
+ /**
9
+ * One enrichment value that fails its generator's Valibot enrichment
10
+ * schema — the authoritative validation verdict. Produced by
11
+ * {@link validateConfig}; the routing fields locate the offending leaf in
12
+ * `client.json#settings.enrichments`:
13
+ *
14
+ * - **operation subject** — `subject` = path, `method` = HTTP method
15
+ * - **model subject** — `subject` = refName (no `method`)
16
+ * - **gql operation subject** — `subject` = field name, `method` = root kind
17
+ * - **generator** run-constant — `scope: 'generator'` (no subject routing)
18
+ * - **stack** run-constant — `scope: 'stack'` (no subject routing)
19
+ *
20
+ * `field` is the dotted path to the offending key *within* the leaf
21
+ * (absent when the whole leaf is the wrong shape).
22
+ */
23
+ export type EnrichmentValidationIssue = {
24
+ generator: string;
25
+ scope: EnrichmentValidationScope;
26
+ subject?: string;
27
+ method?: string;
28
+ variant?: string;
29
+ field?: string;
30
+ message: string;
31
+ };
32
+ /**
33
+ * The single enrichment-validation authority. Validates every enrichment
34
+ * value in `enrichments` against its owning generator's Valibot enrichment
35
+ * schema (`toEnrichmentSchema`) — composed across the supplied generator
36
+ * `sources` — and returns the flat list of value errors. This is the same
37
+ * Valibot that the engine parses at generate time; `validateConfig` exposes
38
+ * it as a standalone, **documentless** check (no OpenAPI/SDL needed — only
39
+ * the values and the schemas), usable wherever a verdict is needed:
40
+ * pre-persist, CLI push, schema-drift migration, and the Publish gate.
41
+ *
42
+ * Scope of this check (value validity only):
43
+ * - **catches** wrong-typed / missing-required / failed-refinement values
44
+ * against the current schema, and a generator configured but absent from
45
+ * the stack (`scope: 'generator'`, "not present in the stack").
46
+ * - **does not** flag unknown *fields* — Valibot's `v.object` strips
47
+ * unknown keys rather than erroring. Field-level referential drift ("this
48
+ * key is no longer in the schema") is the descriptor referential check's
49
+ * job, not this one.
50
+ * - **does not** resolve subjects against a document — subject *existence*
51
+ * (does this path/refName exist) needs the schema document and is the
52
+ * caller's concern.
53
+ *
54
+ * `sources` mirrors {@link toEnrichmentDescriptor}'s input: pass
55
+ * `Object.values(toGeneratorConfigMap())`. The walk is decoupled from
56
+ * `GeneratorConfig` via {@link EnrichmentSource} so tests can pass plain
57
+ * entry-like objects.
58
+ */
59
+ export declare const validateConfig: (enrichments: GeneratorEnrichments | undefined, sources: readonly EnrichmentSource[]) => EnrichmentValidationIssue[];
60
+ //# sourceMappingURL=validateConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validateConfig.d.ts","sourceRoot":"","sources":["../../src/enrichments/validateConfig.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,KAAK,oBAAoB,EAC1B,MAAM,yBAAyB,CAAA;AAChC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAA;AAEnE;;;GAGG;AACH,MAAM,MAAM,yBAAyB,GAAG,SAAS,GAAG,WAAW,GAAG,OAAO,CAAA;AAEzE;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,yBAAyB,GAAG;IACtC,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,EAAE,yBAAyB,CAAA;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAkID;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,cAAc,GACzB,aAAa,oBAAoB,GAAG,SAAS,EAC7C,SAAS,SAAS,gBAAgB,EAAE,KACnC,yBAAyB,EA6C3B,CAAA"}
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.validateConfig = void 0;
37
+ const v = __importStar(require("valibot"));
38
+ const Enrichments_js_1 = require("../types/Enrichments.js");
39
+ const isRecord = (input) => typeof input === 'object' && input !== null && !Array.isArray(input);
40
+ const firstKey = (path) => path && path.length > 0 && path[0].key !== undefined ? String(path[0].key) : undefined;
41
+ const fieldPath = (path) => path && path.length > 1
42
+ ? path
43
+ .slice(1)
44
+ .map(segment => String(segment.key))
45
+ .join('.')
46
+ : undefined;
47
+ /**
48
+ * Collect every `{ subject, method?, variant, values }` leaf from a
49
+ * generator's enrichment slot, walking the routing depth its **kind**
50
+ * dictates — model (`refName → variant`), oas operation
51
+ * (`path → method → variant`), gql operation
52
+ * (`rootKind → fieldName → variant`). Because the kind is read from the
53
+ * generator entry, operation-vs-model is known authoritatively — there is
54
+ * no `'main' in value` shape-guessing. Reserved keys (`_generator`) are
55
+ * skipped; malformed nodes are skipped (they surface elsewhere, never here
56
+ * as a value error).
57
+ */
58
+ const collectSubjectLeaves = (type, slot) => {
59
+ const leaves = [];
60
+ for (const [subjectKey, subjectValue] of Object.entries(slot)) {
61
+ if ((0, Enrichments_js_1.isReservedEnrichmentKey)(subjectKey))
62
+ continue;
63
+ if (!isRecord(subjectValue))
64
+ continue;
65
+ switch (type) {
66
+ case 'model': {
67
+ // refName → { variant: values }
68
+ for (const [variant, values] of Object.entries(subjectValue)) {
69
+ leaves.push({ subject: subjectKey, variant, values });
70
+ }
71
+ break;
72
+ }
73
+ case 'oasOperation': {
74
+ // path → { method: { variant: values } }
75
+ for (const [method, variants] of Object.entries(subjectValue)) {
76
+ if (!isRecord(variants))
77
+ continue;
78
+ for (const [variant, values] of Object.entries(variants)) {
79
+ leaves.push({ subject: subjectKey, method, variant, values });
80
+ }
81
+ }
82
+ break;
83
+ }
84
+ case 'webhook': {
85
+ // name → { method: { variant: values } }
86
+ for (const [method, variants] of Object.entries(subjectValue)) {
87
+ if (!isRecord(variants))
88
+ continue;
89
+ for (const [variant, values] of Object.entries(variants)) {
90
+ leaves.push({ subject: subjectKey, method, variant, values });
91
+ }
92
+ }
93
+ break;
94
+ }
95
+ case 'gqlOperation': {
96
+ // rootKind → { fieldName: { variant: values } }
97
+ for (const [fieldName, variants] of Object.entries(subjectValue)) {
98
+ if (!isRecord(variants))
99
+ continue;
100
+ for (const [variant, values] of Object.entries(variants)) {
101
+ leaves.push({ subject: fieldName, method: subjectKey, variant, values });
102
+ }
103
+ }
104
+ break;
105
+ }
106
+ default: {
107
+ const _exhaustive = type;
108
+ throw new Error(`Unhandled generator type: ${String(_exhaustive)}`);
109
+ }
110
+ }
111
+ }
112
+ return leaves;
113
+ };
114
+ /**
115
+ * Validate one scope's value against the generator's composite umbrella
116
+ * schema, reporting only issues that belong to that scope. The other two
117
+ * scopes are passed `undefined` and any issues they raise are filtered out,
118
+ * so each scope is validated in isolation without duplicating run-constant
119
+ * errors across every subject. Mirrors generate-time
120
+ * `v.parse(toEnrichmentSchema(), { subject, generator, stack })`, swapping
121
+ * `parse` for `safeParse` to collect rather than throw.
122
+ */
123
+ const parseScope = (schema, scope, value, tag) => {
124
+ const raw = {
125
+ subject: undefined,
126
+ generator: undefined,
127
+ stack: undefined
128
+ };
129
+ raw[scope] = value;
130
+ const result = v.safeParse(schema, raw);
131
+ if (result.success)
132
+ return [];
133
+ return result.issues
134
+ .filter(issue => firstKey(issue.path) === scope)
135
+ .map(issue => {
136
+ const field = fieldPath(issue.path);
137
+ return {
138
+ ...tag,
139
+ scope,
140
+ ...(field !== undefined ? { field } : {}),
141
+ message: issue.message
142
+ };
143
+ });
144
+ };
145
+ /**
146
+ * The single enrichment-validation authority. Validates every enrichment
147
+ * value in `enrichments` against its owning generator's Valibot enrichment
148
+ * schema (`toEnrichmentSchema`) — composed across the supplied generator
149
+ * `sources` — and returns the flat list of value errors. This is the same
150
+ * Valibot that the engine parses at generate time; `validateConfig` exposes
151
+ * it as a standalone, **documentless** check (no OpenAPI/SDL needed — only
152
+ * the values and the schemas), usable wherever a verdict is needed:
153
+ * pre-persist, CLI push, schema-drift migration, and the Publish gate.
154
+ *
155
+ * Scope of this check (value validity only):
156
+ * - **catches** wrong-typed / missing-required / failed-refinement values
157
+ * against the current schema, and a generator configured but absent from
158
+ * the stack (`scope: 'generator'`, "not present in the stack").
159
+ * - **does not** flag unknown *fields* — Valibot's `v.object` strips
160
+ * unknown keys rather than erroring. Field-level referential drift ("this
161
+ * key is no longer in the schema") is the descriptor referential check's
162
+ * job, not this one.
163
+ * - **does not** resolve subjects against a document — subject *existence*
164
+ * (does this path/refName exist) needs the schema document and is the
165
+ * caller's concern.
166
+ *
167
+ * `sources` mirrors {@link toEnrichmentDescriptor}'s input: pass
168
+ * `Object.values(toGeneratorConfigMap())`. The walk is decoupled from
169
+ * `GeneratorConfig` via {@link EnrichmentSource} so tests can pass plain
170
+ * entry-like objects.
171
+ */
172
+ const validateConfig = (enrichments, sources) => {
173
+ if (!isRecord(enrichments))
174
+ return [];
175
+ const sourceById = new Map(sources.map(source => [source.id, source]));
176
+ const stack = enrichments[Enrichments_js_1.STACK_ENRICHMENT_KEY];
177
+ const issues = [];
178
+ for (const [generatorId, slot] of Object.entries(enrichments)) {
179
+ if (generatorId === Enrichments_js_1.STACK_ENRICHMENT_KEY)
180
+ continue;
181
+ // Other `_`-prefixed top-level keys are reserved/unknown — the
182
+ // `generatorEnrichments` schema flags those structurally, not here.
183
+ if ((0, Enrichments_js_1.isReservedEnrichmentKey)(generatorId))
184
+ continue;
185
+ const source = sourceById.get(generatorId);
186
+ if (!source) {
187
+ issues.push({
188
+ generator: generatorId,
189
+ scope: 'generator',
190
+ message: `Generator '${generatorId}' has enrichments configured but is not present in the stack.`
191
+ });
192
+ continue;
193
+ }
194
+ const schema = source.toEnrichmentSchema?.();
195
+ if (!schema || !isRecord(slot))
196
+ continue;
197
+ // Run-constant scopes — validated once per generator (each generator's
198
+ // umbrella declares its own `generator` / `stack` member shape).
199
+ issues.push(...parseScope(schema, 'generator', slot[Enrichments_js_1.GENERATOR_ENRICHMENT_KEY], { generator: generatorId }));
200
+ issues.push(...parseScope(schema, 'stack', stack, { generator: generatorId }));
201
+ // Subject scope — one parse per (subject, variant) leaf.
202
+ for (const leaf of collectSubjectLeaves(source.type, slot)) {
203
+ issues.push(...parseScope(schema, 'subject', leaf.values, {
204
+ generator: generatorId,
205
+ subject: leaf.subject,
206
+ ...(leaf.method !== undefined ? { method: leaf.method } : {}),
207
+ variant: leaf.variant
208
+ }));
209
+ }
210
+ }
211
+ return issues;
212
+ };
213
+ exports.validateConfig = validateConfig;
package/script/mod.d.ts CHANGED
@@ -192,6 +192,7 @@ export * from './types/Modifiers.js';
192
192
  export * from './types/ModuleExport.js';
193
193
  export * from './types/AccessorPath.js';
194
194
  export * from './enrichments/toEnrichmentDescriptor.js';
195
+ export * from './enrichments/validateConfig.js';
195
196
  export * from './enrichments/readEnrichments.js';
196
197
  export * from './types/Preview.js';
197
198
  export * from './types/RefName.js';
@@ -1 +1 @@
1
- {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"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"}
package/script/mod.js CHANGED
@@ -206,6 +206,7 @@ __exportStar(require("./types/Modifiers.js"), exports);
206
206
  __exportStar(require("./types/ModuleExport.js"), exports);
207
207
  __exportStar(require("./types/AccessorPath.js"), exports);
208
208
  __exportStar(require("./enrichments/toEnrichmentDescriptor.js"), exports);
209
+ __exportStar(require("./enrichments/validateConfig.js"), exports);
209
210
  __exportStar(require("./enrichments/readEnrichments.js"), exports);
210
211
  __exportStar(require("./types/Preview.js"), exports);
211
212
  __exportStar(require("./types/RefName.js"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"decompose-union.d.ts","sourceRoot":"","sources":["../../../../src/parse/v3-0/_merge-all-of/decompose-union.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAQ/D,KAAK,kBAAkB,GAAG;IACxB,MAAM,EAAE,YAAY,CAAA;IACpB,SAAS,EAAE,OAAO,GAAG,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,cAAc,EAAE,YAAY,CAAA;IAC5B,UAAU,EAAE,CAAC,YAAY,GAAG,eAAe,CAAC,EAAE,CAAA;IAC9C,aAAa,EAAE,YAAY,CAAA;CAC5B,CAAA;AAGD,eAAO,MAAM,cAAc,GAAI,uBAAuB,kBAAkB,KAAG,oBA6C1E,CAAA"}
1
+ {"version":3,"file":"decompose-union.d.ts","sourceRoot":"","sources":["../../../../src/parse/v3-0/_merge-all-of/decompose-union.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAQ/D,KAAK,kBAAkB,GAAG;IACxB,MAAM,EAAE,YAAY,CAAA;IACpB,SAAS,EAAE,OAAO,GAAG,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,cAAc,EAAE,YAAY,CAAA;IAC5B,UAAU,EAAE,CAAC,YAAY,GAAG,eAAe,CAAC,EAAE,CAAA;IAC9C,aAAa,EAAE,YAAY,CAAA;CAC5B,CAAA;AAGD,eAAO,MAAM,cAAc,GAAI,uBAAuB,kBAAkB,KAAG,oBA2C1E,CAAA"}
@@ -4,7 +4,6 @@ exports.decomposeUnion = void 0;
4
4
  // Convert a schema object into an array of schemas that can be merged iteratively into a new schema
5
5
  const decomposeUnion = ({ schema, groupType }) => {
6
6
  if (!schema[groupType]) {
7
- console.log('NO GROUP TYPE', JSON.stringify(schema, null, 2));
8
7
  return {
9
8
  beforeExcluded: {},
10
9
  decomposed: [schema],
@@ -42,15 +41,13 @@ const decomposeUnion = ({ schema, groupType }) => {
42
41
  return result;
43
42
  };
44
43
  exports.decomposeUnion = decomposeUnion;
45
- // Kept on the union (via beforeExcluded/afterExcluded) rather than
46
- // cross-product-merged into each member. Two reasons a key lands here:
47
- // - Union-level metadata: merging it *into* a member resolves `$ref`
48
- // members (to merge the metadata in), losing their names — `toUnion`
49
- // already captures this metadata on the union itself.
50
- // - Non-distributable constraints (`not`): they have no per-member meaning
51
- // and `mergeSchemasOrRefs` cannot merge them, so distributing them throws
52
- // for every member and collapses the union to an empty array. TypeScript
53
- // can't model `not` anyway, so it rides the union wrapper, ignored.
44
+ // Union-level keys: kept on the union (via beforeExcluded/afterExcluded)
45
+ // rather than cross-product-merged into each member. Merging a metadata key
46
+ // *into* a member would resolve `$ref` members (to merge it in), losing their
47
+ // names — `toUnion` already captures these on the union itself.
48
+ // (`not` is deliberately NOT excluded here — it has no faithful TypeScript
49
+ // representation, so a schema using it is refused upstream in `toSchemaV3`
50
+ // rather than silently dropped from the union.)
54
51
  const excludedProperties = [
55
52
  'discriminator',
56
53
  'default',
@@ -61,8 +58,7 @@ const excludedProperties = [
61
58
  'examples',
62
59
  'readOnly',
63
60
  'writeOnly',
64
- 'deprecated',
65
- 'not'
61
+ 'deprecated'
66
62
  ];
67
63
  const exclude = (entries) => {
68
64
  return entries.reduce((acc, [key, value]) => {
@@ -1 +1 @@
1
- {"version":3,"file":"merge-union.d.ts","sourceRoot":"","sources":["../../../../src/parse/v3-0/_merge-all-of/merge-union.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAI3E,KAAK,cAAc,GAAG;IACpB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,QAAQ,CAAA;IAChB,SAAS,EAAE,OAAO,GAAG,OAAO,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,+BAA+B,cAAc,KAAG,iBAiC1E,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,QAAQ,CAAA;IAChB,SAAS,EAAE,OAAO,GAAG,OAAO,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,sCAK/B,qBAAqB,KAAG,YAkC1B,CAAA"}
1
+ {"version":3,"file":"merge-union.d.ts","sourceRoot":"","sources":["../../../../src/parse/v3-0/_merge-all-of/merge-union.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAI3E,KAAK,cAAc,GAAG;IACpB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,QAAQ,CAAA;IAChB,SAAS,EAAE,OAAO,GAAG,OAAO,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,+BAA+B,cAAc,KAAG,iBAiC1E,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,QAAQ,CAAA;IAChB,SAAS,EAAE,OAAO,GAAG,OAAO,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,sCAK/B,qBAAqB,KAAG,YAyB1B,CAAA"}
@@ -46,14 +46,6 @@ const mergeCrossProduct = ({ first, second, getRef, groupType }) => {
46
46
  }
47
47
  })
48
48
  .filter(item => item !== undefined);
49
- // Defensive floor: when both groups are non-empty the cross product is
50
- // non-empty, so an empty `mergedGroup` means every merge *failed* (an
51
- // unmergeable constraint in `secondGroup`). Keep the un-merged `firstGroup`
52
- // rather than collapsing to an empty union. A genuinely empty input union
53
- // (`anyOf: []` → empty group) is left empty so `toSchemasV3` still throws.
54
- if (mergedGroup.length === 0 && firstGroup.length > 0 && secondGroup.length > 0) {
55
- return { [groupType]: firstGroup };
56
- }
57
49
  return {
58
50
  [groupType]: mergedGroup.flatMap(item => {
59
51
  if (!(0, refFns_js_1.isRef)(item) && Array.isArray(item[groupType])) {
@@ -1 +1 @@
1
- {"version":3,"file":"toSchemasV3.d.ts","sourceRoot":"","sources":["../../../../src/parse/v3-0/schema/toSchemasV3.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAarD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAChE,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,eAAe,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;IAC3E,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,gBAAgB,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,kCAIzB,eAAe,KAAG,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAmB/D,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,eAAe,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAA;IACvF,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,gBAAgB,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,kCAIjC,uBAAuB,KAAG,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,SAM3E,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,SAAS,CAAC,eAAe,GAAG,SAAS,CAAC,YAAY,CAAA;IAC1D,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,gBAAgB,CAAA;CAC1B,CAAA;AA0CD,eAAO,MAAM,UAAU,GAAI,iCAIxB,cAAc,KAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAoP9C,CAAA;AA+CD,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,SAAS,CAAC,eAAe,GAAG,SAAS,CAAC,YAAY,GAAG,SAAS,CAAA;IACtE,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,gBAAgB,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,iCAIhC,sBAAsB,KAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,SAM1D,CAAA"}
1
+ {"version":3,"file":"toSchemasV3.d.ts","sourceRoot":"","sources":["../../../../src/parse/v3-0/schema/toSchemasV3.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAA;AAEtE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAA;AAC9D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAarD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAA;AAChE,MAAM,MAAM,eAAe,GAAG;IAC5B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,eAAe,GAAG,SAAS,CAAC,YAAY,CAAC,CAAA;IAC3E,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,gBAAgB,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,WAAW,GAAI,kCAIzB,eAAe,KAAG,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAmB/D,CAAA;AAED,MAAM,MAAM,uBAAuB,GAAG;IACpC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,eAAe,GAAG,SAAS,CAAC,YAAY,CAAC,GAAG,SAAS,CAAA;IACvF,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,gBAAgB,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,kCAIjC,uBAAuB,KAAG,MAAM,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,SAM3E,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,SAAS,CAAC,eAAe,GAAG,SAAS,CAAC,YAAY,CAAA;IAC1D,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,gBAAgB,CAAA;CAC1B,CAAA;AA0CD,eAAO,MAAM,UAAU,GAAI,iCAIxB,cAAc,KAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CA6P9C,CAAA;AA+CD,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,SAAS,CAAC,eAAe,GAAG,SAAS,CAAC,YAAY,GAAG,SAAS,CAAA;IACtE,UAAU,EAAE,UAAU,CAAA;IACtB,OAAO,EAAE,gBAAgB,CAAA;CAC1B,CAAA;AAED,eAAO,MAAM,kBAAkB,GAAI,iCAIhC,sBAAsB,KAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,SAM1D,CAAA"}
@@ -78,6 +78,14 @@ const toSchemaV3 = ({ schema, stackTrail, context }) => {
78
78
  if ((0, refFns_js_1.isRef)(schema)) {
79
79
  return (0, toRefV31_js_1.toRefV31)({ ref: schema, refType: 'schema', stackTrail, context });
80
80
  }
81
+ // OpenAPI `not` has no faithful TypeScript representation: a generated type
82
+ // that ignored it would *widen* the contract (accepting shapes the schema
83
+ // forbids). Refuse the schema rather than emit a type that lies. The throw
84
+ // is isolated by `tryParseAt` into an `INVALID_SCHEMA` issue, and consumers
85
+ // of this schema are pruned via `removeErroredItems` (INVALID_DEPENDENCY_REF).
86
+ if ('not' in schema) {
87
+ throw new Error('Schema uses unsupported "not" keyword');
88
+ }
81
89
  if ('allOf' in schema && Array.isArray(schema.allOf)) {
82
90
  return stackTrail.trace('allOf', st => {
83
91
  // A single-member allOf collapses to its sole member — the value must
@@ -1 +1 @@
1
- {"version":3,"file":"decompose-union.d.ts","sourceRoot":"","sources":["../../../../src/parse/v3-1/_merge-all-of/decompose-union.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAQ/D,KAAK,kBAAkB,GAAG;IACxB,MAAM,EAAE,YAAY,CAAA;IACpB,SAAS,EAAE,OAAO,GAAG,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,cAAc,EAAE,YAAY,CAAA;IAC5B,UAAU,EAAE,CAAC,YAAY,GAAG,eAAe,CAAC,EAAE,CAAA;IAC9C,aAAa,EAAE,YAAY,CAAA;CAC5B,CAAA;AAGD,eAAO,MAAM,cAAc,GAAI,uBAAuB,kBAAkB,KAAG,oBA6C1E,CAAA"}
1
+ {"version":3,"file":"decompose-union.d.ts","sourceRoot":"","sources":["../../../../src/parse/v3-1/_merge-all-of/decompose-union.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAQ/D,KAAK,kBAAkB,GAAG;IACxB,MAAM,EAAE,YAAY,CAAA;IACpB,SAAS,EAAE,OAAO,GAAG,OAAO,CAAA;CAC7B,CAAA;AAED,KAAK,oBAAoB,GAAG;IAC1B,cAAc,EAAE,YAAY,CAAA;IAC5B,UAAU,EAAE,CAAC,YAAY,GAAG,eAAe,CAAC,EAAE,CAAA;IAC9C,aAAa,EAAE,YAAY,CAAA;CAC5B,CAAA;AAGD,eAAO,MAAM,cAAc,GAAI,uBAAuB,kBAAkB,KAAG,oBA2C1E,CAAA"}
@@ -4,7 +4,6 @@ exports.decomposeUnion = void 0;
4
4
  // Convert a schema object into an array of schemas that can be merged iteratively into a new schema
5
5
  const decomposeUnion = ({ schema, groupType }) => {
6
6
  if (!schema[groupType]) {
7
- console.log('NO GROUP TYPE', JSON.stringify(schema, null, 2));
8
7
  return {
9
8
  beforeExcluded: {},
10
9
  decomposed: [schema],
@@ -42,15 +41,13 @@ const decomposeUnion = ({ schema, groupType }) => {
42
41
  return result;
43
42
  };
44
43
  exports.decomposeUnion = decomposeUnion;
45
- // Kept on the union (via beforeExcluded/afterExcluded) rather than
46
- // cross-product-merged into each member. Two reasons a key lands here:
47
- // - Union-level metadata: merging it *into* a member resolves `$ref`
48
- // members (to merge the metadata in), losing their names — `toUnion`
49
- // already captures this metadata on the union itself.
50
- // - Non-distributable constraints (`not`): they have no per-member meaning
51
- // and `mergeSchemasOrRefs` cannot merge them, so distributing them throws
52
- // for every member and collapses the union to an empty array. TypeScript
53
- // can't model `not` anyway, so it rides the union wrapper, ignored.
44
+ // Union-level keys: kept on the union (via beforeExcluded/afterExcluded)
45
+ // rather than cross-product-merged into each member. Merging a metadata key
46
+ // *into* a member would resolve `$ref` members (to merge it in), losing their
47
+ // names — `toUnion` already captures these on the union itself.
48
+ // (`not` is deliberately NOT excluded here — it has no faithful TypeScript
49
+ // representation, so a schema using it is refused upstream in `toSchemaV3`
50
+ // rather than silently dropped from the union.)
54
51
  const excludedProperties = [
55
52
  'discriminator',
56
53
  'default',
@@ -61,8 +58,7 @@ const excludedProperties = [
61
58
  'examples',
62
59
  'readOnly',
63
60
  'writeOnly',
64
- 'deprecated',
65
- 'not'
61
+ 'deprecated'
66
62
  ];
67
63
  const exclude = (entries) => {
68
64
  return entries.reduce((acc, [key, value]) => {
@@ -1 +1 @@
1
- {"version":3,"file":"merge-union.d.ts","sourceRoot":"","sources":["../../../../src/parse/v3-1/_merge-all-of/merge-union.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAI3E,KAAK,cAAc,GAAG;IACpB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,QAAQ,CAAA;IAChB,SAAS,EAAE,OAAO,GAAG,OAAO,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,+BAA+B,cAAc,KAAG,iBAiC1E,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,QAAQ,CAAA;IAChB,SAAS,EAAE,OAAO,GAAG,OAAO,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,sCAK/B,qBAAqB,KAAG,YAkC1B,CAAA"}
1
+ {"version":3,"file":"merge-union.d.ts","sourceRoot":"","sources":["../../../../src/parse/v3-1/_merge-all-of/merge-union.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAI3E,KAAK,cAAc,GAAG;IACpB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,QAAQ,CAAA;IAChB,SAAS,EAAE,OAAO,GAAG,OAAO,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,+BAA+B,cAAc,KAAG,iBAiC1E,CAAA;AAED,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,YAAY,CAAA;IACnB,MAAM,EAAE,YAAY,CAAA;IACpB,MAAM,EAAE,QAAQ,CAAA;IAChB,SAAS,EAAE,OAAO,GAAG,OAAO,CAAA;CAC7B,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAI,sCAK/B,qBAAqB,KAAG,YAyB1B,CAAA"}