@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.
- package/esm/context/GenerateContext.d.ts +3 -3
- package/esm/context/GenerateContext.d.ts.map +1 -1
- package/esm/context/GenerateContext.js +45 -32
- package/esm/context/ParseContext.d.ts +16 -0
- package/esm/context/ParseContext.d.ts.map +1 -1
- package/esm/context/ParseContext.js +16 -0
- package/esm/dsl/model/ModelDriver.d.ts.map +1 -1
- package/esm/dsl/model/ModelDriver.js +29 -0
- package/esm/dsl/model/toModelEntry.d.ts +9 -3
- package/esm/dsl/model/toModelEntry.d.ts.map +1 -1
- package/esm/dsl/model/toModelEntry.js +29 -1
- package/esm/dsl/model/toModelProjectionBase.d.ts +16 -3
- package/esm/dsl/model/toModelProjectionBase.d.ts.map +1 -1
- package/esm/dsl/model/toModelProjectionBase.js +3 -3
- package/esm/dsl/model/types.d.ts +46 -0
- package/esm/dsl/model/types.d.ts.map +1 -1
- package/esm/dsl/operation/gql/types.d.ts +6 -1
- package/esm/dsl/operation/gql/types.d.ts.map +1 -1
- package/esm/dsl/operation/oas/types.d.ts +6 -1
- package/esm/dsl/operation/oas/types.d.ts.map +1 -1
- package/esm/enrichments/validateConfig.d.ts +60 -0
- package/esm/enrichments/validateConfig.d.ts.map +1 -0
- package/esm/enrichments/validateConfig.js +176 -0
- package/esm/mod.d.ts +1 -0
- package/esm/mod.d.ts.map +1 -1
- package/esm/mod.js +1 -0
- package/esm/parse/v3-0/_merge-all-of/decompose-union.d.ts.map +1 -1
- package/esm/parse/v3-0/_merge-all-of/decompose-union.js +8 -12
- package/esm/parse/v3-0/_merge-all-of/merge-union.d.ts.map +1 -1
- package/esm/parse/v3-0/_merge-all-of/merge-union.js +0 -8
- package/esm/parse/v3-0/schema/toSchemasV3.d.ts.map +1 -1
- package/esm/parse/v3-0/schema/toSchemasV3.js +8 -0
- package/esm/parse/v3-1/_merge-all-of/decompose-union.d.ts.map +1 -1
- package/esm/parse/v3-1/_merge-all-of/decompose-union.js +8 -12
- package/esm/parse/v3-1/_merge-all-of/merge-union.d.ts.map +1 -1
- package/esm/parse/v3-1/_merge-all-of/merge-union.js +0 -8
- package/esm/parse/v3-1/schema/toSchemasV3.d.ts.map +1 -1
- package/esm/parse/v3-1/schema/toSchemasV3.js +8 -0
- package/esm/types/Settings.d.ts +16 -3
- package/esm/types/Settings.d.ts.map +1 -1
- package/esm/types/Settings.js +19 -13
- package/package.json +1 -1
- package/script/context/GenerateContext.d.ts +3 -3
- package/script/context/GenerateContext.d.ts.map +1 -1
- package/script/context/GenerateContext.js +45 -32
- package/script/context/ParseContext.d.ts +16 -0
- package/script/context/ParseContext.d.ts.map +1 -1
- package/script/context/ParseContext.js +16 -0
- package/script/dsl/model/ModelDriver.d.ts.map +1 -1
- package/script/dsl/model/ModelDriver.js +29 -0
- package/script/dsl/model/toModelEntry.d.ts +9 -3
- package/script/dsl/model/toModelEntry.d.ts.map +1 -1
- package/script/dsl/model/toModelEntry.js +65 -1
- package/script/dsl/model/toModelProjectionBase.d.ts +16 -3
- package/script/dsl/model/toModelProjectionBase.d.ts.map +1 -1
- package/script/dsl/model/toModelProjectionBase.js +3 -3
- package/script/dsl/model/types.d.ts +46 -0
- package/script/dsl/model/types.d.ts.map +1 -1
- package/script/dsl/operation/gql/types.d.ts +6 -1
- package/script/dsl/operation/gql/types.d.ts.map +1 -1
- package/script/dsl/operation/oas/types.d.ts +6 -1
- package/script/dsl/operation/oas/types.d.ts.map +1 -1
- package/script/enrichments/validateConfig.d.ts +60 -0
- package/script/enrichments/validateConfig.d.ts.map +1 -0
- package/script/enrichments/validateConfig.js +213 -0
- package/script/mod.d.ts +1 -0
- package/script/mod.d.ts.map +1 -1
- package/script/mod.js +1 -0
- package/script/parse/v3-0/_merge-all-of/decompose-union.d.ts.map +1 -1
- package/script/parse/v3-0/_merge-all-of/decompose-union.js +8 -12
- package/script/parse/v3-0/_merge-all-of/merge-union.d.ts.map +1 -1
- package/script/parse/v3-0/_merge-all-of/merge-union.js +0 -8
- package/script/parse/v3-0/schema/toSchemasV3.d.ts.map +1 -1
- package/script/parse/v3-0/schema/toSchemasV3.js +8 -0
- package/script/parse/v3-1/_merge-all-of/decompose-union.d.ts.map +1 -1
- package/script/parse/v3-1/_merge-all-of/decompose-union.js +8 -12
- package/script/parse/v3-1/_merge-all-of/merge-union.d.ts.map +1 -1
- package/script/parse/v3-1/_merge-all-of/merge-union.js +0 -8
- package/script/parse/v3-1/schema/toSchemasV3.d.ts.map +1 -1
- package/script/parse/v3-1/schema/toSchemasV3.js +8 -0
- package/script/types/Settings.d.ts +16 -3
- package/script/types/Settings.d.ts.map +1 -1
- package/script/types/Settings.js +16 -10
package/esm/types/Settings.js
CHANGED
|
@@ -49,15 +49,15 @@
|
|
|
49
49
|
* @module Settings
|
|
50
50
|
*/
|
|
51
51
|
import "../_dnt.polyfills.js";
|
|
52
|
-
import { generatorEnrichments } from
|
|
53
|
-
import * as v from
|
|
54
|
-
import { method } from
|
|
52
|
+
import { generatorEnrichments, } from "./Enrichments.js";
|
|
53
|
+
import * as v from "valibot";
|
|
54
|
+
import { method } from "./Method.js";
|
|
55
55
|
/**
|
|
56
56
|
* Whether a relative path contains a `..` parent-reference segment.
|
|
57
57
|
* `..` is a parent reference only as a whole path segment — a
|
|
58
58
|
* directory name that merely contains dots is not flagged.
|
|
59
59
|
*/
|
|
60
|
-
const hasParentSegment = (path) => path.split(/[/\\]/).some(segment => segment ===
|
|
60
|
+
const hasParentSegment = (path) => path.split(/[/\\]/).some((segment) => segment === "..");
|
|
61
61
|
/**
|
|
62
62
|
* Valibot schema for {@link ModulePackage}.
|
|
63
63
|
*
|
|
@@ -67,10 +67,10 @@ const hasParentSegment = (path) => path.split(/[/\\]/).some(segment => segment =
|
|
|
67
67
|
* that otherwise misplaces every artifact silently.
|
|
68
68
|
*/
|
|
69
69
|
export const modulePackage = v.object({
|
|
70
|
-
rootPath: v.pipe(v.string(), v.check(rootPath => !hasParentSegment(rootPath), 'package rootPath must be a forward path with no ".." segments — ' +
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
moduleName: v.optional(v.string())
|
|
70
|
+
rootPath: v.pipe(v.string(), v.check((rootPath) => !hasParentSegment(rootPath), 'package rootPath must be a forward path with no ".." segments — ' +
|
|
71
|
+
"set client.json basePath to a common ancestor of every package " +
|
|
72
|
+
"so each rootPath is written forward from it")),
|
|
73
|
+
moduleName: v.optional(v.string()),
|
|
74
74
|
});
|
|
75
75
|
/**
|
|
76
76
|
* Valibot schema for validating skip paths configuration.
|
|
@@ -100,7 +100,11 @@ export const skipModelRefs = v.record(v.string(), v.array(v.string()));
|
|
|
100
100
|
* models and variants by generator.
|
|
101
101
|
*/
|
|
102
102
|
export const skipModels = v.record(v.string(), skipModelRefs);
|
|
103
|
-
const skip = v.union([
|
|
103
|
+
const skip = v.union([
|
|
104
|
+
skipOperations,
|
|
105
|
+
skipModels,
|
|
106
|
+
v.string(),
|
|
107
|
+
]);
|
|
104
108
|
/**
|
|
105
109
|
* Valibot schema for {@link IncludePaths}. Structurally identical to
|
|
106
110
|
* {@link skipPaths} — both map a path to a `method → variant[]` record
|
|
@@ -128,7 +132,7 @@ export const includeModels = v.record(v.string(), includeModelRefs);
|
|
|
128
132
|
const include = v.union([
|
|
129
133
|
includeOperations,
|
|
130
134
|
includeModels,
|
|
131
|
-
v.string()
|
|
135
|
+
v.string(),
|
|
132
136
|
]);
|
|
133
137
|
/**
|
|
134
138
|
* Valibot schema for validating client settings configuration.
|
|
@@ -143,7 +147,7 @@ const include = v.union([
|
|
|
143
147
|
*/
|
|
144
148
|
export const anchorsSettings = v.object({
|
|
145
149
|
enabled: v.boolean(),
|
|
146
|
-
out: v.optional(v.string())
|
|
150
|
+
out: v.optional(v.string()),
|
|
147
151
|
});
|
|
148
152
|
export const clientSettings = v.object({
|
|
149
153
|
basePath: v.optional(v.string()),
|
|
@@ -152,7 +156,8 @@ export const clientSettings = v.object({
|
|
|
152
156
|
enrichments: v.optional(generatorEnrichments),
|
|
153
157
|
include: v.optional(v.array(include)),
|
|
154
158
|
skip: v.optional(v.array(skip)),
|
|
155
|
-
anchors: v.optional(anchorsSettings)
|
|
159
|
+
anchors: v.optional(anchorsSettings),
|
|
160
|
+
inputDirs: v.optional(v.array(v.string())),
|
|
156
161
|
});
|
|
157
162
|
/**
|
|
158
163
|
* Valibot schema for validating SKMTC client configuration.
|
|
@@ -163,6 +168,7 @@ export const clientSettings = v.object({
|
|
|
163
168
|
export const skmtcClientConfig = v.object({
|
|
164
169
|
serverUrl: v.optional(v.string()),
|
|
165
170
|
projectKey: v.optional(v.string()),
|
|
171
|
+
project: v.optional(v.string()),
|
|
166
172
|
source: v.optional(v.string()),
|
|
167
|
-
settings: clientSettings
|
|
173
|
+
settings: clientSettings,
|
|
168
174
|
});
|
package/package.json
CHANGED
|
@@ -165,9 +165,9 @@ export declare class GenerateContext implements GenerateContextType {
|
|
|
165
165
|
* Evaluate each generator's `isSupported` over the parsed document's subjects
|
|
166
166
|
* and report the subjects each generator supports — capability only, no
|
|
167
167
|
* transform and no render. Operation generators report the operations their
|
|
168
|
-
* `isSupported` accepts; model generators report
|
|
169
|
-
*
|
|
170
|
-
* other protocol reports nothing.
|
|
168
|
+
* `isSupported` accepts; model generators report the models theirs accepts
|
|
169
|
+
* (a generator that declares no `isSupported` defaults to every subject). A
|
|
170
|
+
* generator targeting the other protocol reports nothing.
|
|
171
171
|
*/
|
|
172
172
|
toSupportedSubjects(): SupportedSubjects;
|
|
173
173
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GenerateContext.d.ts","sourceRoot":"","sources":["../../src/context/GenerateContext.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"GenerateContext.d.ts","sourceRoot":"","sources":["../../src/context/GenerateContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAE1D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE/C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACtE,OAAO,KAAK,EACV,kBAAkB,EAKnB,MAAM,gCAAgC,CAAA;AACvC,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EAEd,kBAAkB,EAClB,yBAAyB,EACzB,4BAA4B,EAC5B,2BAA2B,EAC3B,mBAAmB,EACnB,iBAAiB,EACjB,QAAQ,EACR,mBAAmB,EACnB,gBAAgB,EAEhB,uBAAuB,EACvB,qBAAqB,EACtB,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EACV,cAAc,EASf,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAIhD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AAC3D,OAAO,KAAK,EAAe,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAKzE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAA;AAK3D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,KAAK,KAAK,GAAG,MAAM,yCAAyC,CAAA;AACnE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAA;AAC9D,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAA;AACzE,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAE5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAGlD,OAAO,KAAK,EAAmB,sBAAsB,EAAE,MAAM,2BAA2B,CAAA;AACxF,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,kBAAkB,EAClB,WAAW,EAKZ,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,KAAK,eAAe,GAAG;IACrB;;;;;OAKG;IACH,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,QAAQ,EAAE,cAAc,GAAG,SAAS,CAAA;IACpC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAA;IAClB,oBAAoB,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,KAAK,IAAI,CAAA;IAC1E,oBAAoB,EAAE,CAAC,cAAc,GAAG,SAAS,OAAO,sBAAsB,CAAC,cAAc,CAAC,CAAA;IAC9F;;;;;OAKG;IACH,cAAc,CAAC,EAAE,cAAc,CAAA;CAChC,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAA;IACvB,oDAAoD;IACpD,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,2BAA2B,CAAC,MAAM,SAAS,UAAU,IAAI;IACnE,wDAAwD;IACxD,MAAM,EAAE,MAAM,CAAA;IACd,kDAAkD;IAClD,UAAU,EAAE,cAAc,CAAA;IAC1B,0EAA0E;IAC1E,eAAe,EAAE,MAAM,CAAA;IACvB,8DAA8D;IAC9D,eAAe,EAAE,eAAe,CAAA;IAChC,kDAAkD;IAClD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,sDAAsD;IACtD,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAA;IACnB,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAA;IACZ,wCAAwC;IACxC,MAAM,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,kDAAkD;IAClD,WAAW,EAAE,MAAM,CAAA;IACnB,mDAAmD;IACnD,SAAS,EAAE,YAAY,CAAA;IACvB,oDAAoD;IACpD,YAAY,EAAE,MAAM,EAAE,CAAA;CACvB,CAAA;AAED;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC,wDAAwD;IACxD,WAAW,EAAE,MAAM,CAAA;IACnB,sCAAsC;IACtC,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED;;;;;;;;;GASG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,cAAc,EAAE,cAAc,IAAI,QAAQ,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;AA4DhG,qBAAa,eAAgB,YAAW,mBAAmB;;IAIzD;;;;OAIG;IACH,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,mDAAmD;IACnD,QAAQ,EAAE,cAAc,GAAG,SAAS,CAAA;IACpC,uDAAuD;IACvD,MAAM,EAAE,MAAM,CAAA;IACd,uEAAuE;IACvE,oBAAoB,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,KAAK,IAAI,CAAA;IAC1E,4DAA4D;IAC5D,oBAAoB,EAAE,CAAC,cAAc,GAAG,SAAS,OAAO,sBAAsB,CAAC,cAAc,CAAC,CAAA;IAE9F,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;gBAStB,EACV,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACf,EAAE,eAAe;IAalB;;;;;OAKG;IACH,IAAI,WAAW,IAAI,WAAW,GAAG,SAAS,CAEzC;IAED;;OAEG;IACH,WAAW,CAAC,UAAU,EAAE,UAAU,GAAG,cAAc;IAyGnD;;;;;;;OAOG;IACH,mBAAmB,IAAI,iBAAiB;IAwFxC;;;;;;;;;;;;;OAaG;IACH,oBAAoB,IAAI,kBAAkB;IAwf1C;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAI/C;;;;;OAKG;IACH,OAAO,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI;IAU7B;;;;;OAKG;IACH,YAAY,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,gBAAgB;IAkBxD;;;;;;;;;;OAUG;IACH,QAAQ,CAAC,EAAE,OAAY,EAAE,SAAc,EAAE,WAAW,EAAE,eAAe,EAAE,EAAE,mBAAmB;IAqC5F;;;;;;;;;;;OAWG;IACH,eAAe,CAAC,CAAC,SAAS,cAAc,EAAE,cAAc,GAAG,SAAS,EAClE,IAAI,EAAE,mBAAmB,CAAC,CAAC,EAAE,cAAc,CAAC,GAC3C,QAAQ,CAAC,CAAC,EAAE,cAAc,CAAC;IA+B9B;;;;OAIG;IACH,aAAa,CAAC,CAAC,SAAS,cAAc,EAAE,cAAc,GAAG,SAAS,EAChE,IAAI,EAAE,iBAAiB,CAAC,CAAC,EAAE,cAAc,CAAC,GACzC,QAAQ,CAAC,CAAC,EAAE,cAAc,CAAC;IAe9B;;;OAGG;IACH,qBAAqB,CACnB,CAAC,SAAS,cAAc,EACxB,MAAM,SAAS,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,GAAG,OAAO,EACrD,cAAc,EAEd,UAAU,EAAE,eAAe,CAAC,CAAC,EAAE,cAAc,CAAC,EAC9C,EAAE,MAAM,EAAE,YAAY,EAAE,eAAe,EAAE,EAAE,yBAAyB,CAAC,MAAM,CAAC,EAC5E,EAAE,QAAgB,EAAE,OAAO,EAAE,GAAE,4BAAiC,GAC/D,2BAA2B,CAAC,CAAC,EAAE,MAAM,CAAC;IAsDzC;;;;;;;;OAQG;IACH,WAAW,CAAC,CAAC,SAAS,cAAc,EAAE,cAAc,EAClD,UAAU,EAAE,eAAe,CAAC,CAAC,EAAE,cAAc,CAAC,EAC9C,OAAO,EAAE,OAAO,EAChB,EAAE,eAAe,EAAE,QAAgB,EAAE,OAAO,EAAE,GAAE,kBAAuB,GACtE,QAAQ,CAAC,CAAC,EAAE,cAAc,CAAC;IAmB9B;;;;;OAKG;IACH,0BAA0B,CAAC,CAAC,SAAS,cAAc,EAAE,cAAc,EACjE,IAAI,EAAE,uBAAuB,CAAC,CAAC,EAAE,cAAc,CAAC,GAC/C,eAAe,CAAC,cAAc,CAAC;IAoDlC;;;;OAIG;IACH,wBAAwB,CAAC,CAAC,SAAS,cAAc,EAAE,cAAc,EAC/D,IAAI,EAAE,qBAAqB,CAAC,CAAC,EAAE,cAAc,CAAC,GAC7C,eAAe,CAAC,cAAc,CAAC;IA2BlC;;;;;;;OAOG;IACH,sBAAsB,CAAC,CAAC,SAAS,cAAc,EAAE,cAAc,EAAE,EAC/D,OAAO,EACP,UAAU,EACV,OAAO,EACR,EAAE,sBAAsB,CAAC,CAAC,EAAE,cAAc,CAAC,GAAG,eAAe,CAAC,cAAc,CAAC;IAa9E;;;;;OAKG;IACH,oBAAoB,CAAC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;IAqBzF;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,QAAQ,GAAG,cAAc,GAAG,SAAS;CAK3E;AA6FD,KAAK,wBAAwB,GAAG;IAC9B,SAAS,EAAE,YAAY,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,oBAAoB,GAAI,qCAIlC,wBAAwB,KAAG,kBAM5B,CAAA;AAEF,KAAK,mBAAmB,GAAG;IACzB,OAAO,EAAE,UAAU,CAAA;IACnB,WAAW,EAAE,MAAM,CAAA;IACnB,yEAAyE;IACzE,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,mCAI7B,mBAAmB,KAAG,aAMvB,CAAA;AAEF,KAAK,wBAAwB,GAAG;IAC9B,SAAS,EAAE,YAAY,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,2EAA2E;IAC3E,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,GAAI,qCAIlC,wBAAwB,KAAG,kBAM5B,CAAA;AAEF,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,WAAW,EAAE,MAAM,CAAA;IACnB,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,aAAa,GAAI,mCAI3B,iBAAiB,KAAG,WAKrB,CAAA"}
|
|
@@ -13,7 +13,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
13
13
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
15
|
};
|
|
16
|
-
var _GenerateContext_instances, _GenerateContext_files, _GenerateContext_previews, _GenerateContext_mappings, _GenerateContext_captureChannel,
|
|
16
|
+
var _GenerateContext_instances, _GenerateContext_files, _GenerateContext_previews, _GenerateContext_mappings, _GenerateContext_captureChannel, _GenerateContext_schemaRefNames, _GenerateContext_subjectDefaults, _GenerateContext_runOasOperationGenerator, _GenerateContext_runWebhookGenerator, _GenerateContext_runGqlOperationGenerator, _GenerateContext_runModelGenerator, _GenerateContext_addPreview, _GenerateContext_addMapping;
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.toModelSource = exports.toGqlOperationSource = exports.toWebhookSource = exports.toOasOperationSource = exports.GenerateContext = void 0;
|
|
19
19
|
const normalize_js_1 = require("../deps/jsr.io/@std/path/1.1.4/normalize.js");
|
|
@@ -238,9 +238,9 @@ class GenerateContext {
|
|
|
238
238
|
* Evaluate each generator's `isSupported` over the parsed document's subjects
|
|
239
239
|
* and report the subjects each generator supports — capability only, no
|
|
240
240
|
* transform and no render. Operation generators report the operations their
|
|
241
|
-
* `isSupported` accepts; model generators report
|
|
242
|
-
*
|
|
243
|
-
* other protocol reports nothing.
|
|
241
|
+
* `isSupported` accepts; model generators report the models theirs accepts
|
|
242
|
+
* (a generator that declares no `isSupported` defaults to every subject). A
|
|
243
|
+
* generator targeting the other protocol reports nothing.
|
|
244
244
|
*/
|
|
245
245
|
toSupportedSubjects() {
|
|
246
246
|
const generators = Object.values(this.toGeneratorConfigMap());
|
|
@@ -250,7 +250,8 @@ class GenerateContext {
|
|
|
250
250
|
case 'oasOperation': {
|
|
251
251
|
const operations = this.document.type === 'oas'
|
|
252
252
|
? this.document.value.operations
|
|
253
|
-
.filter(operation =>
|
|
253
|
+
.filter(operation => typeof generatorConfig.isSupported !== 'function' ||
|
|
254
|
+
generatorConfig.isSupported({ operation, context: this, variant: Variant_js_1.DEFAULT_VARIANT }))
|
|
254
255
|
.map(operation => ({ path: operation.path, method: operation.method }))
|
|
255
256
|
: [];
|
|
256
257
|
out[generatorConfig.id] = { type: 'oasOperation', operations };
|
|
@@ -259,7 +260,8 @@ class GenerateContext {
|
|
|
259
260
|
case 'webhook': {
|
|
260
261
|
const webhooks = this.document.type === 'oas'
|
|
261
262
|
? this.document.value.webhooks
|
|
262
|
-
.filter(webhook =>
|
|
263
|
+
.filter(webhook => typeof generatorConfig.isSupported !== 'function' ||
|
|
264
|
+
generatorConfig.isSupported({ webhook, context: this, variant: Variant_js_1.DEFAULT_VARIANT }))
|
|
263
265
|
.map(webhook => ({ name: webhook.name, method: webhook.method }))
|
|
264
266
|
: [];
|
|
265
267
|
out[generatorConfig.id] = { type: 'webhook', webhooks };
|
|
@@ -268,7 +270,8 @@ class GenerateContext {
|
|
|
268
270
|
case 'gqlOperation': {
|
|
269
271
|
const operations = this.document.type === 'gql'
|
|
270
272
|
? this.document.value.operations
|
|
271
|
-
.filter(operation =>
|
|
273
|
+
.filter(operation => typeof generatorConfig.isSupported !== 'function' ||
|
|
274
|
+
generatorConfig.isSupported({ operation, context: this, variant: Variant_js_1.DEFAULT_VARIANT }))
|
|
272
275
|
.map(operation => ({
|
|
273
276
|
rootKind: operation.rootKind,
|
|
274
277
|
fieldName: operation.fieldName
|
|
@@ -278,10 +281,9 @@ class GenerateContext {
|
|
|
278
281
|
break;
|
|
279
282
|
}
|
|
280
283
|
case 'model': {
|
|
281
|
-
const
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
out[generatorConfig.id] = { type: 'model', models: [...refNames] };
|
|
284
|
+
const models = __classPrivateFieldGet(this, _GenerateContext_instances, "m", _GenerateContext_schemaRefNames).call(this).filter(refName => typeof generatorConfig.isSupported !== 'function' ||
|
|
285
|
+
generatorConfig.isSupported({ refName, context: this, variant: Variant_js_1.DEFAULT_VARIANT }));
|
|
286
|
+
out[generatorConfig.id] = { type: 'model', models };
|
|
285
287
|
break;
|
|
286
288
|
}
|
|
287
289
|
default: {
|
|
@@ -317,7 +319,8 @@ class GenerateContext {
|
|
|
317
319
|
break;
|
|
318
320
|
const operations = {};
|
|
319
321
|
this.document.value.operations.forEach(operation => {
|
|
320
|
-
if (
|
|
322
|
+
if (typeof generatorConfig.isSupported === 'function' &&
|
|
323
|
+
!generatorConfig.isSupported({ operation, context: this, variant: Variant_js_1.DEFAULT_VARIANT })) {
|
|
321
324
|
return;
|
|
322
325
|
}
|
|
323
326
|
const leaf = __classPrivateFieldGet(this, _GenerateContext_instances, "m", _GenerateContext_subjectDefaults).call(this, () => toDefaults({ operation, context: this, variant: Variant_js_1.DEFAULT_VARIANT }));
|
|
@@ -337,7 +340,8 @@ class GenerateContext {
|
|
|
337
340
|
break;
|
|
338
341
|
const webhooks = {};
|
|
339
342
|
this.document.value.webhooks.forEach(webhook => {
|
|
340
|
-
if (
|
|
343
|
+
if (typeof generatorConfig.isSupported === 'function' &&
|
|
344
|
+
!generatorConfig.isSupported({ webhook, context: this, variant: Variant_js_1.DEFAULT_VARIANT })) {
|
|
341
345
|
return;
|
|
342
346
|
}
|
|
343
347
|
const leaf = __classPrivateFieldGet(this, _GenerateContext_instances, "m", _GenerateContext_subjectDefaults).call(this, () => toDefaults({ webhook, context: this, variant: Variant_js_1.DEFAULT_VARIANT }));
|
|
@@ -355,14 +359,16 @@ class GenerateContext {
|
|
|
355
359
|
const toDefaults = generatorConfig.toEnrichmentDefaults;
|
|
356
360
|
if (!toDefaults)
|
|
357
361
|
break;
|
|
358
|
-
//
|
|
359
|
-
//
|
|
360
|
-
//
|
|
361
|
-
|
|
362
|
-
? (this.document.value.components?.toSchemasRefNames() ?? [])
|
|
363
|
-
: this.document.value.registry.toSchemasRefNames();
|
|
362
|
+
// Seed only the models the generator supports — mirrors the
|
|
363
|
+
// operation arm. A generator that declares no `isSupported`
|
|
364
|
+
// defaults to every model; the hook itself still returns
|
|
365
|
+
// `undefined` for schemas it doesn't seed.
|
|
364
366
|
const models = {};
|
|
365
|
-
for (const refName of
|
|
367
|
+
for (const refName of __classPrivateFieldGet(this, _GenerateContext_instances, "m", _GenerateContext_schemaRefNames).call(this)) {
|
|
368
|
+
if (typeof generatorConfig.isSupported === 'function' &&
|
|
369
|
+
!generatorConfig.isSupported({ refName, context: this, variant: Variant_js_1.DEFAULT_VARIANT })) {
|
|
370
|
+
continue;
|
|
371
|
+
}
|
|
366
372
|
const leaf = __classPrivateFieldGet(this, _GenerateContext_instances, "m", _GenerateContext_subjectDefaults).call(this, () => toDefaults({ refName, context: this, variant: Variant_js_1.DEFAULT_VARIANT }));
|
|
367
373
|
if (leaf === undefined)
|
|
368
374
|
continue;
|
|
@@ -734,13 +740,16 @@ class GenerateContext {
|
|
|
734
740
|
}
|
|
735
741
|
}
|
|
736
742
|
exports.GenerateContext = GenerateContext;
|
|
737
|
-
_GenerateContext_files = new WeakMap(), _GenerateContext_previews = new WeakMap(), _GenerateContext_mappings = new WeakMap(), _GenerateContext_captureChannel = new WeakMap(), _GenerateContext_instances = new WeakSet(),
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
|
|
743
|
+
_GenerateContext_files = new WeakMap(), _GenerateContext_previews = new WeakMap(), _GenerateContext_mappings = new WeakMap(), _GenerateContext_captureChannel = new WeakMap(), _GenerateContext_instances = new WeakSet(), _GenerateContext_schemaRefNames = function _GenerateContext_schemaRefNames() {
|
|
744
|
+
switch (this.document.type) {
|
|
745
|
+
case 'oas':
|
|
746
|
+
return [...(this.document.value.components?.toSchemasRefNames() ?? [])];
|
|
747
|
+
case 'gql':
|
|
748
|
+
return [...this.document.value.registry.toSchemasRefNames()];
|
|
749
|
+
default: {
|
|
750
|
+
const _exhaustive = this.document;
|
|
751
|
+
throw new Error(`Unhandled document type: ${JSON.stringify(_exhaustive)}`);
|
|
752
|
+
}
|
|
744
753
|
}
|
|
745
754
|
}, _GenerateContext_subjectDefaults = function _GenerateContext_subjectDefaults(produce) {
|
|
746
755
|
try {
|
|
@@ -942,11 +951,15 @@ _GenerateContext_files = new WeakMap(), _GenerateContext_previews = new WeakMap(
|
|
|
942
951
|
variants.forEach(variant => {
|
|
943
952
|
refTrail.trace(`variant: ${variant}`, st => {
|
|
944
953
|
try {
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
954
|
+
if (typeof generatorConfig.isSupported === 'function' &&
|
|
955
|
+
!generatorConfig.isSupported({ refName, context: this, variant })) {
|
|
956
|
+
this.captureCurrentResult('notSupported', st);
|
|
957
|
+
return;
|
|
958
|
+
}
|
|
959
|
+
// Order: isSupported (capability) → include (allow) → skip
|
|
960
|
+
// (deny). Match is on `(refName, variant)`. An empty variant
|
|
961
|
+
// array on a refName means "every variant of this refName"; a
|
|
962
|
+
// populated array names the variants the entry applies to.
|
|
950
963
|
if (include !== undefined &&
|
|
951
964
|
!matchesRefFilter({ refs: include, refName, variant })) {
|
|
952
965
|
this.captureCurrentResult('skipped', st);
|
|
@@ -118,6 +118,22 @@ export declare class ParseContext {
|
|
|
118
118
|
* the parsed document. Symmetric across protocols: OAS prunes via
|
|
119
119
|
* `OasDocument.removeItem`, GQL via `GqlDocument.removeItem`. Each
|
|
120
120
|
* pruned consumer yields an `INVALID_DEPENDENCY_REF` issue.
|
|
121
|
+
*
|
|
122
|
+
* Pruning is deliberately **single-level** — only the direct
|
|
123
|
+
* consumers of a parse-errored schema are removed. Anything those
|
|
124
|
+
* removals leave with a dangling reference is left in place: if a
|
|
125
|
+
* generator never resolves it, it is harmless; if one does, that
|
|
126
|
+
* single artifact fails at generate time and is isolated there. We
|
|
127
|
+
* do not cascade transitively.
|
|
128
|
+
*
|
|
129
|
+
* Known coarseness, intentionally left as-is for now: a `paths:P:M:…`
|
|
130
|
+
* consumer trail resolves to the *whole operation*, so an operation
|
|
131
|
+
* that references a broken schema is pruned even when the reference
|
|
132
|
+
* is only through a response it does not generate from. A finer
|
|
133
|
+
* design — don't prune operations for response-position refs and let
|
|
134
|
+
* generate-time isolation handle the dangling ref — is deferred; the
|
|
135
|
+
* single-level + generate-time-isolation contract above keeps the
|
|
136
|
+
* dangling ref safe in the meantime.
|
|
121
137
|
*/
|
|
122
138
|
removeErroredItems(): void;
|
|
123
139
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParseContext.d.ts","sourceRoot":"","sources":["../../src/context/ParseContext.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,OAAO,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAe,KAAK,aAAa,EAAE,MAAM,SAAS,CAAA;AAIzD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAA;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAA;AAE5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAA;AAChD,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAC5C,OAAO,KAAK,EACV,kBAAkB,EAClB,mBAAmB,EACpB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EACV,eAAe,EACf,SAAS,EACT,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,iBAAiB,CAAA;AACxB,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAMjD,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC/D,YAAY,EACV,eAAe,EACf,SAAS,EACT,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,iBAAiB,EAClB,MAAM,iBAAiB,CAAA;AAExB,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,KAAK,CAAA;IACX,cAAc,EAAE,SAAS,CAAC,QAAQ,CAAA;IAClC,WAAW,EAAE,WAAW,CAAA;CACzB,CAAA;AAED,KAAK,gBAAgB,GAAG;IACtB,IAAI,EAAE,KAAK,CAAA;IACX,MAAM,EAAE,aAAa,CAAA;IACrB,QAAQ,EAAE,WAAW,CAAA;IACrB;;;;;;OAMG;IACH,WAAW,EAAE,WAAW,CAAA;IACxB,OAAO,EAAE,eAAe,CAAA;CACzB,CAAA;AAED,KAAK,aAAa,GAAG,gBAAgB,GAAG,gBAAgB,CAAA;AAGxD,KAAK,eAAe,GAAG;IACrB,KAAK,EAAE,kBAAkB,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;;OAIG;IACH,OAAO,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,eAAe,CAAA;KAAE,CAAA;CACpC,CAAA;AAED,qBAAa,YAAY;;IACvB,MAAM,EAAE,UAAU,EAAE,CAAK;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,OAAO,CAAA;IACf,QAAQ,EAAE,aAAa,CAAA;IACvB;;;;;OAKG;IACH,iBAAiB,EAAE,UAAU,GAAG,SAAS,CAAA;gBAQ7B,EAAE,KAAK,EAAE,MAAM,EAAE,MAAa,EAAE,OAAO,EAAE,EAAE,eAAe;IAoCtE;;;;OAIG;IACH,IAAI,WAAW,IAAI,WAAW,CAK7B;IAED,kEAAkE;IAClE,IAAI,cAAc,IAAI,SAAS,CAAC,QAAQ,CAKvC;IAED,6DAA6D;IAC7D,IAAI,MAAM,IAAI,aAAa,CAK1B;IAED,6DAA6D;IAC7D,IAAI,QAAQ,IAAI,WAAW,CAK1B;IAED;;;;;OAKG;IACH,IAAI,WAAW,IAAI,WAAW,CAK7B;IAED;;;;;OAKG;IACH,IAAI,cAAc,IAAI,mBAAmB,CAWxC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,mBAAmB;IAoDlD
|
|
1
|
+
{"version":3,"file":"ParseContext.d.ts","sourceRoot":"","sources":["../../src/context/ParseContext.ts"],"names":[],"mappings":"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"}
|
|
@@ -237,6 +237,22 @@ class ParseContext {
|
|
|
237
237
|
* the parsed document. Symmetric across protocols: OAS prunes via
|
|
238
238
|
* `OasDocument.removeItem`, GQL via `GqlDocument.removeItem`. Each
|
|
239
239
|
* pruned consumer yields an `INVALID_DEPENDENCY_REF` issue.
|
|
240
|
+
*
|
|
241
|
+
* Pruning is deliberately **single-level** — only the direct
|
|
242
|
+
* consumers of a parse-errored schema are removed. Anything those
|
|
243
|
+
* removals leave with a dangling reference is left in place: if a
|
|
244
|
+
* generator never resolves it, it is harmless; if one does, that
|
|
245
|
+
* single artifact fails at generate time and is isolated there. We
|
|
246
|
+
* do not cascade transitively.
|
|
247
|
+
*
|
|
248
|
+
* Known coarseness, intentionally left as-is for now: a `paths:P:M:…`
|
|
249
|
+
* consumer trail resolves to the *whole operation*, so an operation
|
|
250
|
+
* that references a broken schema is pruned even when the reference
|
|
251
|
+
* is only through a response it does not generate from. A finer
|
|
252
|
+
* design — don't prune operations for response-position refs and let
|
|
253
|
+
* generate-time isolation handle the dangling ref — is deferred; the
|
|
254
|
+
* single-level + generate-time-isolation contract above keeps the
|
|
255
|
+
* dangling ref safe in the meantime.
|
|
240
256
|
*/
|
|
241
257
|
removeErroredItems() {
|
|
242
258
|
switch (this.protocol.type) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelDriver.d.ts","sourceRoot":"","sources":["../../../src/dsl/model/ModelDriver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAI5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAMrD,KAAK,eAAe,CAAC,CAAC,SAAS,cAAc,EAAE,cAAc,IAAI;IAC/D,OAAO,EAAE,mBAAmB,CAAA;IAC5B,UAAU,EAAE,eAAe,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;IAC9C,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAWD;;;;;;;;GAQG;AACH,qBAAa,WAAW,CAAC,CAAC,SAAS,cAAc,EAAE,cAAc;IAC/D,OAAO,EAAE,mBAAmB,CAAA;IAC5B,UAAU,EAAE,eAAe,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;IAC9C,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,eAAe,CAAC,cAAc,CAAC,CAAA;IACzC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAA;IAClC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;gBAEH,EACV,OAAO,EACP,UAAU,EACV,OAAO,EACP,eAAe,EACf,OAAO,EACP,QAAQ,EACR,OAAO,EACR,EAAE,eAAe,CAAC,CAAC,EAAE,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ModelDriver.d.ts","sourceRoot":"","sources":["../../../src/dsl/model/ModelDriver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAI5D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAA;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAMrD,KAAK,eAAe,CAAC,CAAC,SAAS,cAAc,EAAE,cAAc,IAAI;IAC/D,OAAO,EAAE,mBAAmB,CAAA;IAC5B,UAAU,EAAE,eAAe,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;IAC9C,OAAO,EAAE,OAAO,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;;;;OAKG;IACH,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAWD;;;;;;;;GAQG;AACH,qBAAa,WAAW,CAAC,CAAC,SAAS,cAAc,EAAE,cAAc;IAC/D,OAAO,EAAE,mBAAmB,CAAA;IAC5B,UAAU,EAAE,eAAe,CAAC,CAAC,EAAE,cAAc,CAAC,CAAA;IAC9C,OAAO,EAAE,OAAO,CAAA;IAChB,QAAQ,EAAE,eAAe,CAAC,cAAc,CAAC,CAAA;IACzC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,UAAU,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAA;IAClC,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,OAAO,EAAE,MAAM,CAAA;gBAEH,EACV,OAAO,EACP,UAAU,EACV,OAAO,EACP,eAAe,EACf,OAAO,EACP,QAAQ,EACR,OAAO,EACR,EAAE,eAAe,CAAC,CAAC,EAAE,cAAc,CAAC;IA0BrC,OAAO,CAAC,KAAK;IAoBb;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,gBAAgB;CAsBzB"}
|
|
@@ -87,6 +87,7 @@ class ModelDriver {
|
|
|
87
87
|
refName,
|
|
88
88
|
variant
|
|
89
89
|
});
|
|
90
|
+
assertPeerSupported({ context, projection, refName });
|
|
90
91
|
this.settings = this.context.toModelContentSettings({ refName, projection, variant });
|
|
91
92
|
this.definition = this.apply({ destinationPath });
|
|
92
93
|
this.context.modelDepth[`${projection.id}:${refName}`] = 0;
|
|
@@ -197,3 +198,31 @@ const assertPeerVariantExists = ({ context, generatorId, refName, variant }) =>
|
|
|
197
198
|
`Available variants: ${available}.`);
|
|
198
199
|
}
|
|
199
200
|
};
|
|
201
|
+
/**
|
|
202
|
+
* Guard the peer-capability invariant for model insertions.
|
|
203
|
+
*
|
|
204
|
+
* `insertModel` materialises a peer's Definition regardless of the peer's
|
|
205
|
+
* `skip` / `include` configuration — dependency edges are intentionally
|
|
206
|
+
* filter-blind. Capability is different: a peer's `isSupported` declares
|
|
207
|
+
* which models it can serve *at all*. Handing a peer a model it has declared
|
|
208
|
+
* unsupported would build a broken Definition or crash inside the peer's
|
|
209
|
+
* constructor.
|
|
210
|
+
*
|
|
211
|
+
* The Driver throws here instead. The throw unwinds into `GenerateContext`'s
|
|
212
|
+
* per-item `try/catch`, so the *calling* generator's item is recorded as
|
|
213
|
+
* `error` and the run continues — loud, isolated failure rather than silent
|
|
214
|
+
* broken output.
|
|
215
|
+
*
|
|
216
|
+
* A peer that exposes no static `isSupported` is treated as supporting every
|
|
217
|
+
* model: `toModelProjectionBase` defaults it to `() => true`, and a
|
|
218
|
+
* hand-rolled projection may omit it.
|
|
219
|
+
*/
|
|
220
|
+
const assertPeerSupported = ({ context, projection, refName }) => {
|
|
221
|
+
if (typeof projection.isSupported !== 'function') {
|
|
222
|
+
return;
|
|
223
|
+
}
|
|
224
|
+
if (!projection.isSupported({ refName, context })) {
|
|
225
|
+
throw new Error(`[${projection.id}] Cannot insert '${refName}' — peer generator ` +
|
|
226
|
+
`does not support this model (isSupported returned false).`);
|
|
227
|
+
}
|
|
228
|
+
};
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import type { RefName } from '../../types/RefName.js';
|
|
2
2
|
import type { EnrichmentRequest } from '../../types/EnrichmentRequest.js';
|
|
3
|
-
import type { TransformModelArgs, ToModelPreviewModuleArgs, ToModelMappingArgs, ToModelEnrichmentsArgs } from './types.js';
|
|
4
|
-
import
|
|
3
|
+
import type { TransformModelArgs, ToModelPreviewModuleArgs, ToModelMappingArgs, ToModelEnrichmentsArgs, IsSupportedModelArgs, IsSupportedModelConfigArgs } from './types.js';
|
|
4
|
+
import * as v from 'valibot';
|
|
5
5
|
import type { MappingModule, PreviewModule } from '../../types/Preview.js';
|
|
6
6
|
type ToModelEntryArgs<EnrichmentType = undefined> = {
|
|
7
7
|
id: string;
|
|
8
8
|
transform: ({ context, refName, variant }: TransformModelArgs) => void;
|
|
9
9
|
toEnrichmentSchema: () => v.GenericSchema<EnrichmentType>;
|
|
10
|
+
isSupported?: ({ context, refName }: IsSupportedModelConfigArgs<EnrichmentType>) => boolean;
|
|
10
11
|
toPreviewModule?: ({ context, refName, variant }: ToModelPreviewModuleArgs) => PreviewModule;
|
|
11
12
|
toMappingModule?: ({ context, refName, variant }: ToModelMappingArgs) => MappingModule;
|
|
12
13
|
toEnrichmentRequest?: <RequestedEnrichment extends EnrichmentType>(refName: RefName) => EnrichmentRequest<RequestedEnrichment> | undefined;
|
|
@@ -26,6 +27,10 @@ type ToModelEntryArgs<EnrichmentType = undefined> = {
|
|
|
26
27
|
* @param args - Configuration for the model entry
|
|
27
28
|
* @param args.id - Unique identifier for this model entry
|
|
28
29
|
* @param args.transform - Function to transform schemas into artifacts
|
|
30
|
+
* @param args.isSupported - Optional capability gate; a model whose predicate
|
|
31
|
+
* returns `false` is recorded `notSupported` and its `transform` is skipped.
|
|
32
|
+
* Resolve the schema inside the predicate when needed
|
|
33
|
+
* (`context.resolveSchemaRefOnce(refName, id)`). Defaults to supporting every model.
|
|
29
34
|
* @param args.toPreviewModule - Optional function to generate preview modules
|
|
30
35
|
* @param args.toMappingModule - Optional function to generate mapping modules
|
|
31
36
|
* @param args.toEnrichmentSchema - Optional function to provide enrichment validation
|
|
@@ -67,10 +72,11 @@ type ToModelEntryArgs<EnrichmentType = undefined> = {
|
|
|
67
72
|
* });
|
|
68
73
|
* ```
|
|
69
74
|
*/
|
|
70
|
-
export declare const toModelEntry: <EnrichmentType = undefined>({ id, transform, toPreviewModule, toMappingModule, toEnrichmentSchema, toEnrichmentRequest, toEnrichmentDefaults }: ToModelEntryArgs<EnrichmentType>) => {
|
|
75
|
+
export declare const toModelEntry: <EnrichmentType = undefined>({ id, transform, isSupported, toPreviewModule, toMappingModule, toEnrichmentSchema, toEnrichmentRequest, toEnrichmentDefaults }: ToModelEntryArgs<EnrichmentType>) => {
|
|
71
76
|
id: string;
|
|
72
77
|
type: "model";
|
|
73
78
|
transform: ({ context, refName, variant }: TransformModelArgs) => void;
|
|
79
|
+
isSupported: ({ context, refName }: IsSupportedModelArgs) => boolean;
|
|
74
80
|
toPreviewModule?: ({ context, refName, variant }: ToModelPreviewModuleArgs) => PreviewModule;
|
|
75
81
|
toMappingModule?: ({ context, refName, variant }: ToModelMappingArgs) => MappingModule;
|
|
76
82
|
toEnrichmentSchema: () => v.GenericSchema<EnrichmentType>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toModelEntry.d.ts","sourceRoot":"","sources":["../../../src/dsl/model/toModelEntry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,
|
|
1
|
+
{"version":3,"file":"toModelEntry.d.ts","sourceRoot":"","sources":["../../../src/dsl/model/toModelEntry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAA;AACzE,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,oBAAoB,EACpB,0BAA0B,EAC3B,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAC5B,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAK1E,KAAK,gBAAgB,CAAC,cAAc,GAAG,SAAS,IAAI;IAClD,EAAE,EAAE,MAAM,CAAA;IACV,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,kBAAkB,KAAK,IAAI,CAAA;IACtE,kBAAkB,EAAE,MAAM,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;IACzD,WAAW,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,0BAA0B,CAAC,cAAc,CAAC,KAAK,OAAO,CAAA;IAC3F,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,mBAAmB,CAAC,EAAE,CAAC,mBAAmB,SAAS,cAAc,EAC/D,OAAO,EAAE,OAAO,KACb,iBAAiB,CAAC,mBAAmB,CAAC,GAAG,SAAS,CAAA;IACvD,oBAAoB,CAAC,EAAE,CAAC,EACtB,OAAO,EACP,OAAO,EACP,OAAO,EACR,EAAE,sBAAsB,KAAK,cAAc,GAAG,SAAS,CAAA;CACzD,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,eAAO,MAAM,YAAY,GAAI,cAAc,GAAG,SAAS,EAAE,iIAStD,gBAAgB,CAAC,cAAc,CAAC,KAAG;IACpC,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,WAAW,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,oBAAoB,KAAK,OAAO,CAAA;IACpE,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,oBAAoB,CAAC,EAAE,CAAC,EACtB,OAAO,EACP,OAAO,EACP,OAAO,EACR,EAAE,sBAAsB,KAAK,cAAc,GAAG,SAAS,CAAA;CAmCzD,CAAA"}
|
|
@@ -1,6 +1,45 @@
|
|
|
1
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
2
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
39
|
exports.toModelEntry = void 0;
|
|
40
|
+
const v = __importStar(require("valibot"));
|
|
41
|
+
const Enrichments_js_1 = require("../../types/Enrichments.js");
|
|
42
|
+
const get_js_1 = __importDefault(require("lodash-es/get.js"));
|
|
4
43
|
/**
|
|
5
44
|
* Creates a model transformation entry for the SKMTC pipeline.
|
|
6
45
|
*
|
|
@@ -15,6 +54,10 @@ exports.toModelEntry = void 0;
|
|
|
15
54
|
* @param args - Configuration for the model entry
|
|
16
55
|
* @param args.id - Unique identifier for this model entry
|
|
17
56
|
* @param args.transform - Function to transform schemas into artifacts
|
|
57
|
+
* @param args.isSupported - Optional capability gate; a model whose predicate
|
|
58
|
+
* returns `false` is recorded `notSupported` and its `transform` is skipped.
|
|
59
|
+
* Resolve the schema inside the predicate when needed
|
|
60
|
+
* (`context.resolveSchemaRefOnce(refName, id)`). Defaults to supporting every model.
|
|
18
61
|
* @param args.toPreviewModule - Optional function to generate preview modules
|
|
19
62
|
* @param args.toMappingModule - Optional function to generate mapping modules
|
|
20
63
|
* @param args.toEnrichmentSchema - Optional function to provide enrichment validation
|
|
@@ -56,11 +99,32 @@ exports.toModelEntry = void 0;
|
|
|
56
99
|
* });
|
|
57
100
|
* ```
|
|
58
101
|
*/
|
|
59
|
-
const toModelEntry = ({ id, transform, toPreviewModule, toMappingModule, toEnrichmentSchema, toEnrichmentRequest, toEnrichmentDefaults }) => {
|
|
102
|
+
const toModelEntry = ({ id, transform, isSupported, toPreviewModule, toMappingModule, toEnrichmentSchema, toEnrichmentRequest, toEnrichmentDefaults }) => {
|
|
60
103
|
return {
|
|
61
104
|
id,
|
|
62
105
|
type: 'model',
|
|
63
106
|
transform,
|
|
107
|
+
isSupported: ({ context, refName, variant }) => {
|
|
108
|
+
if (!isSupported) {
|
|
109
|
+
return true;
|
|
110
|
+
}
|
|
111
|
+
// Assemble the three-scope umbrella — mirrors
|
|
112
|
+
// `ModelProjectionBase.toEnrichments` so the shim and the
|
|
113
|
+
// projection-base resolve to the same value. Subject is per-item
|
|
114
|
+
// (`[id][refName][variant]`); generator and stack are run-constants.
|
|
115
|
+
// The required composite schema parses cast-free.
|
|
116
|
+
const raw = {
|
|
117
|
+
subject: (0, get_js_1.default)(context.settings, ['enrichments', id, refName, variant]),
|
|
118
|
+
generator: (0, get_js_1.default)(context.settings, ['enrichments', id, Enrichments_js_1.GENERATOR_ENRICHMENT_KEY]),
|
|
119
|
+
stack: (0, get_js_1.default)(context.settings, ['enrichments', Enrichments_js_1.STACK_ENRICHMENT_KEY])
|
|
120
|
+
};
|
|
121
|
+
return isSupported({
|
|
122
|
+
context,
|
|
123
|
+
refName,
|
|
124
|
+
enrichments: v.parse(toEnrichmentSchema(), raw),
|
|
125
|
+
variant
|
|
126
|
+
});
|
|
127
|
+
},
|
|
64
128
|
toPreviewModule,
|
|
65
129
|
toMappingModule,
|
|
66
130
|
toEnrichmentSchema,
|
|
@@ -66,6 +66,16 @@ export type ModelProjectionBaseConfig<EnrichmentType = undefined, L extends Lang
|
|
|
66
66
|
* static returns `undefined`.
|
|
67
67
|
*/
|
|
68
68
|
toEnrichmentDefaults?: (args: ToEnrichmentsArgs) => EnrichmentType | undefined;
|
|
69
|
+
/**
|
|
70
|
+
* Family-level applicability predicate. Becomes a static `isSupported`
|
|
71
|
+
* on the returned base class so other projections can probe it before
|
|
72
|
+
* `insertModel` (the model counterpart of the operation-reference
|
|
73
|
+
* protocol). When omitted, advertises support for every model.
|
|
74
|
+
*/
|
|
75
|
+
isSupported?: (args: {
|
|
76
|
+
refName: RefName;
|
|
77
|
+
context: GenerateContextType;
|
|
78
|
+
}) => boolean;
|
|
69
79
|
};
|
|
70
80
|
/**
|
|
71
81
|
* Build a model projection base class from a per-generator config.
|
|
@@ -75,8 +85,8 @@ export type ModelProjectionBaseConfig<EnrichmentType = undefined, L extends Lang
|
|
|
75
85
|
* while core stays language-blind (the base arrives as an opaque
|
|
76
86
|
* constructor; core never names a concrete language class). The class
|
|
77
87
|
* exposes the generator's `id`, `toIdentifierName`, `toIdentifierType`,
|
|
78
|
-
* `toExportPath`, and `
|
|
79
|
-
* from the base, and
|
|
88
|
+
* `toExportPath`, `toEnrichments`, and `isSupported` statics, inherits the
|
|
89
|
+
* static `lang` from the base, and
|
|
80
90
|
* injects `generatorKey` so subclasses don't have to.
|
|
81
91
|
*
|
|
82
92
|
* Defines NO `register` / `registerInto` — register ergonomics are typed by
|
|
@@ -118,7 +128,10 @@ export declare const toModelProjectionBase: <EnrichmentType = undefined, L exten
|
|
|
118
128
|
* generator declares no `toEnrichmentDefaults` — the common case.
|
|
119
129
|
*/
|
|
120
130
|
toEnrichmentDefaults: (args: ToEnrichmentsArgs) => EnrichmentType | undefined;
|
|
121
|
-
isSupported: (
|
|
131
|
+
isSupported: (args: {
|
|
132
|
+
refName: RefName;
|
|
133
|
+
context: GenerateContextType;
|
|
134
|
+
}) => boolean;
|
|
122
135
|
lang: L;
|
|
123
136
|
};
|
|
124
137
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toModelProjectionBase.d.ts","sourceRoot":"","sources":["../../../src/dsl/model/toModelProjectionBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAA;AACzE,OAAO,KAAK,EACV,kBAAkB,EAClB,yBAAyB,EACzB,2BAA2B,EAC5B,MAAM,gCAAgC,CAAA;AAEvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAA;AAC9D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAA;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAC9C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AACrD,OAAO,KAAK,EACV,eAAe,EACf,yBAAyB,EACzB,qBAAqB,EACtB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,CAAC,MAAM,SAAS,CAAA;AAM5B;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,CAAC,cAAc,GAAG,SAAS,IAAI;IAC5D,OAAO,EAAE,mBAAmB,CAAA;IAC5B,QAAQ,EAAE,eAAe,CAAC,cAAc,CAAC,CAAA;IACzC,OAAO,EAAE,OAAO,CAAA;CACjB,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,mBAAmB,CAAA;IAC5B,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED;;;;;;;GAOG;AACH,MAAM,MAAM,yBAAyB,CAAC,cAAc,GAAG,SAAS,EAAE,CAAC,SAAS,IAAI,GAAG,IAAI,IAAI;IACzF,EAAE,EAAE,MAAM,CAAA;IACV,iEAAiE;IACjE,gBAAgB,EAAE,CAAC,IAAI,EAAE,yBAAyB,CAAC,cAAc,CAAC,KAAK,MAAM,CAAA;IAC7E;;;;;;;OAOG;IACH,gBAAgB,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,mBAAmB,KAAK,cAAc,CAAC,CAAC,CAAC,CAAA;IACvF,YAAY,EAAE,CAAC,IAAI,EAAE,qBAAqB,CAAC,cAAc,CAAC,KAAK,MAAM,CAAA;IACrE;;;;;OAKG;IACH,kBAAkB,EAAE,MAAM,CAAC,CAAC,aAAa,CAAC,cAAc,CAAC,CAAA;IACzD;;;;;;;OAOG;IACH,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,cAAc,GAAG,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"toModelProjectionBase.d.ts","sourceRoot":"","sources":["../../../src/dsl/model/toModelProjectionBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -50,8 +50,8 @@ const get_js_1 = __importDefault(require("lodash-es/get.js"));
|
|
|
50
50
|
* while core stays language-blind (the base arrives as an opaque
|
|
51
51
|
* constructor; core never names a concrete language class). The class
|
|
52
52
|
* exposes the generator's `id`, `toIdentifierName`, `toIdentifierType`,
|
|
53
|
-
* `toExportPath`, and `
|
|
54
|
-
* from the base, and
|
|
53
|
+
* `toExportPath`, `toEnrichments`, and `isSupported` statics, inherits the
|
|
54
|
+
* static `lang` from the base, and
|
|
55
55
|
* injects `generatorKey` so subclasses don't have to.
|
|
56
56
|
*
|
|
57
57
|
* Defines NO `register` / `registerInto` — register ergonomics are typed by
|
|
@@ -179,7 +179,7 @@ const toModelProjectionBase = (base, config) => {
|
|
|
179
179
|
enumerable: true,
|
|
180
180
|
configurable: true,
|
|
181
181
|
writable: true,
|
|
182
|
-
value: () => true
|
|
182
|
+
value: config.isSupported ?? (() => true)
|
|
183
183
|
}),
|
|
184
184
|
_a;
|
|
185
185
|
};
|