@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
@@ -49,15 +49,15 @@
49
49
  * @module Settings
50
50
  */
51
51
  import "../_dnt.polyfills.js";
52
- import { generatorEnrichments } from './Enrichments.js';
53
- import * as v from 'valibot';
54
- import { method } from './Method.js';
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
- '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())
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([skipOperations, skipModels, v.string()]);
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skmtc/core",
3
- "version": "0.16.3",
3
+ "version": "0.18.1",
4
4
  "description": "Skmtc is a declarative code generation framework",
5
5
  "keywords": [
6
6
  "openapi",
@@ -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 every model (the generate
169
- * pipeline applies no model-level `isSupported`). A generator targeting the
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":"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"}
@@ -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, _GenerateContext_supports, _GenerateContext_subjectDefaults, _GenerateContext_runOasOperationGenerator, _GenerateContext_runWebhookGenerator, _GenerateContext_runGqlOperationGenerator, _GenerateContext_runModelGenerator, _GenerateContext_addPreview, _GenerateContext_addMapping;
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 every model (the generate
242
- * pipeline applies no model-level `isSupported`). A generator targeting the
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 => __classPrivateFieldGet(this, _GenerateContext_instances, "m", _GenerateContext_supports).call(this, () => generatorConfig.isSupported({ operation, context: this, variant: Variant_js_1.DEFAULT_VARIANT })))
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 => __classPrivateFieldGet(this, _GenerateContext_instances, "m", _GenerateContext_supports).call(this, () => generatorConfig.isSupported({ webhook, context: this, variant: Variant_js_1.DEFAULT_VARIANT })))
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 => __classPrivateFieldGet(this, _GenerateContext_instances, "m", _GenerateContext_supports).call(this, () => generatorConfig.isSupported({ operation, context: this, variant: Variant_js_1.DEFAULT_VARIANT })))
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 refNames = this.document.type === 'oas'
282
- ? (this.document.value.components?.toSchemasRefNames() ?? [])
283
- : this.document.value.registry.toSchemasRefNames();
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 (!__classPrivateFieldGet(this, _GenerateContext_instances, "m", _GenerateContext_supports).call(this, () => generatorConfig.isSupported({ operation, context: this, variant: Variant_js_1.DEFAULT_VARIANT }))) {
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 (!__classPrivateFieldGet(this, _GenerateContext_instances, "m", _GenerateContext_supports).call(this, () => generatorConfig.isSupported({ webhook, context: this, variant: Variant_js_1.DEFAULT_VARIANT }))) {
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
- // Model entries carry no `isSupported` — the generate pipeline visits
359
- // every refName and filters inside the callback. Mirror that here: the
360
- // hook itself returns `undefined` for schemas it doesn't seed.
361
- const refNames = this.document.type === 'oas'
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 refNames) {
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(), _GenerateContext_supports = function _GenerateContext_supports(probe) {
738
- try {
739
- return probe();
740
- }
741
- catch (error) {
742
- this.logger.error(error);
743
- return false;
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
- // Order: include (allow) → skip (deny). Match is now on
946
- // `(refName, variant)`. An empty variant array on a
947
- // refName means "every variant of this refName"; a
948
- // populated array names the variants the entry applies
949
- // to.
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":"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"}
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;IAwBrC,OAAO,CAAC,KAAK;IAoBb;;;;;OAKG;IACH,OAAO,CAAC,UAAU;IAYlB,OAAO,CAAC,aAAa;IAkCrB,OAAO,CAAC,gBAAgB;CAsBzB"}
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 type * as v from 'valibot';
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,EACvB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,KAAK,CAAC,MAAM,SAAS,CAAA;AACjC,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAE1E,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,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,eAAO,MAAM,YAAY,GAAI,cAAc,GAAG,SAAS,EAAE,oHAQtD,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,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;CAYzD,CAAA"}
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 `toEnrichments` statics, inherits the static `lang`
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: () => boolean;
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":"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"}
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 `toEnrichments` statics, inherits the static `lang`
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
  };