@blockml/framework 0.9.0 → 0.9.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/blocks/org/blockml/bml/framework/Library.bml +8 -1
  2. package/blocks/org/blockml/bml/framework/capability/EvaluateExpression.bml +50 -0
  3. package/blocks/org/blockml/bml/framework/capability/EvaluateInterpolatedText.bml +50 -0
  4. package/blocks/org/blockml/bml/framework/capability/EvaluateParseValue.bml +68 -0
  5. package/blocks/org/blockml/bml/framework/capability/FindLocalMember.bml +58 -0
  6. package/blocks/org/blockml/bml/framework/capability/ForkBom.bml +1 -1
  7. package/blocks/org/blockml/bml/framework/capability/ParseInterpolatedText.bml +54 -0
  8. package/blocks/org/blockml/bml/framework/capability/TypeRegistry.bml +10 -1
  9. package/blocks/org/blockml/bml/framework/capability/ValidateGenerics.bml +66 -0
  10. package/blocks/org/blockml/bml/framework/capability/ValidateTypes.bml +19 -1
  11. package/blocks/org/blockml/bml/framework/config/FrameworkDiagnosticCodes.bml +1 -1
  12. package/blocks/org/blockml/bml/framework/documentation/Diagnostics.bml +22 -3
  13. package/blocks/org/blockml/bml/framework/documentation/EffectiveMembers.bml +2 -0
  14. package/blocks/org/blockml/bml/framework/documentation/ExpressionParsing.bml +6 -3
  15. package/blocks/org/blockml/bml/framework/documentation/PublicApi.bml +7 -1
  16. package/blocks/org/blockml/bml/framework/documentation/TypeRegistryBootstrap.bml +8 -7
  17. package/blocks/org/blockml/bml/framework/expression/ExpressionNode.bml +1 -1
  18. package/blocks/org/blockml/bml/framework/expression/InterpolatedStringNode.bml +51 -0
  19. package/dist/expression/evaluate-expression.d.ts +9 -0
  20. package/dist/expression/evaluate-expression.d.ts.map +1 -0
  21. package/dist/expression/evaluate-expression.js +124 -0
  22. package/dist/expression/evaluate-expression.js.map +1 -0
  23. package/dist/expression/parse-interpolated-text.d.ts +3 -0
  24. package/dist/expression/parse-interpolated-text.d.ts.map +1 -0
  25. package/dist/expression/parse-interpolated-text.js +80 -0
  26. package/dist/expression/parse-interpolated-text.js.map +1 -0
  27. package/dist/expression/restricted.d.ts +5 -0
  28. package/dist/expression/restricted.d.ts.map +1 -0
  29. package/dist/expression/restricted.js +65 -0
  30. package/dist/expression/restricted.js.map +1 -0
  31. package/dist/expression/types.d.ts +5 -1
  32. package/dist/expression/types.d.ts.map +1 -1
  33. package/dist/index.d.ts +8 -2
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +5 -1
  36. package/dist/index.js.map +1 -1
  37. package/dist/registry/bootstrap.d.ts.map +1 -1
  38. package/dist/registry/bootstrap.js +12 -2
  39. package/dist/registry/bootstrap.js.map +1 -1
  40. package/dist/registry/library-bootstrap.d.ts.map +1 -1
  41. package/dist/registry/library-bootstrap.js +14 -3
  42. package/dist/registry/library-bootstrap.js.map +1 -1
  43. package/dist/registry/package-paths.d.ts +2 -0
  44. package/dist/registry/package-paths.d.ts.map +1 -1
  45. package/dist/registry/package-paths.js +7 -0
  46. package/dist/registry/package-paths.js.map +1 -1
  47. package/dist/registry/type-registry.d.ts +5 -0
  48. package/dist/registry/type-registry.d.ts.map +1 -1
  49. package/dist/registry/type-registry.js +25 -1
  50. package/dist/registry/type-registry.js.map +1 -1
  51. package/dist/resolve/resolve-generic-application.d.ts +18 -0
  52. package/dist/resolve/resolve-generic-application.d.ts.map +1 -0
  53. package/dist/resolve/resolve-generic-application.js +129 -0
  54. package/dist/resolve/resolve-generic-application.js.map +1 -0
  55. package/dist/resolve/satisfies-type-bound.d.ts +4 -0
  56. package/dist/resolve/satisfies-type-bound.d.ts.map +1 -0
  57. package/dist/resolve/satisfies-type-bound.js +20 -0
  58. package/dist/resolve/satisfies-type-bound.js.map +1 -0
  59. package/dist/validate/evaluate-parse-value.d.ts +13 -0
  60. package/dist/validate/evaluate-parse-value.d.ts.map +1 -0
  61. package/dist/validate/evaluate-parse-value.js +138 -0
  62. package/dist/validate/evaluate-parse-value.js.map +1 -0
  63. package/dist/validate/instance-ids.d.ts +10 -0
  64. package/dist/validate/instance-ids.d.ts.map +1 -0
  65. package/dist/validate/instance-ids.js +57 -0
  66. package/dist/validate/instance-ids.js.map +1 -0
  67. package/dist/validate/reference-kinds.d.ts +50 -0
  68. package/dist/validate/reference-kinds.d.ts.map +1 -0
  69. package/dist/validate/reference-kinds.js +111 -0
  70. package/dist/validate/reference-kinds.js.map +1 -0
  71. package/dist/validate/validate-generics.d.ts +4 -0
  72. package/dist/validate/validate-generics.d.ts.map +1 -0
  73. package/dist/validate/validate-generics.js +141 -0
  74. package/dist/validate/validate-generics.js.map +1 -0
  75. package/dist/validate/validate-instances.d.ts.map +1 -1
  76. package/dist/validate/validate-instances.js +1 -61
  77. package/dist/validate/validate-instances.js.map +1 -1
  78. package/dist/validate/validate-parse-values.d.ts +4 -0
  79. package/dist/validate/validate-parse-values.d.ts.map +1 -0
  80. package/dist/validate/validate-parse-values.js +181 -0
  81. package/dist/validate/validate-parse-values.js.map +1 -0
  82. package/dist/validate/validate-references.d.ts +5 -0
  83. package/dist/validate/validate-references.d.ts.map +1 -0
  84. package/dist/validate/validate-references.js +392 -0
  85. package/dist/validate/validate-references.js.map +1 -0
  86. package/dist/validate/validate-types.d.ts.map +1 -1
  87. package/dist/validate/validate-types.js +117 -129
  88. package/dist/validate/validate-types.js.map +1 -1
  89. package/package.json +4 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-parse-values.js","sourceRoot":"","sources":["../../src/validate/validate-parse-values.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { BomDocument, Diagnostic, TypeExpression } from "@blockml/bom";
2
+ import type { TypeRegistry } from "../registry/type-registry.js";
3
+ export declare function walkNamedTypes(expr: TypeExpression | undefined, visit: (fqn: string) => void): void;
4
+ export declare function validateReferences(document: BomDocument, registry: TypeRegistry): Diagnostic[];
5
+ //# sourceMappingURL=validate-references.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-references.d.ts","sourceRoot":"","sources":["../../src/validate/validate-references.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,WAAW,EAEX,UAAU,EAMV,cAAc,EAEf,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AA4DjE,wBAAgB,cAAc,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,EAAE,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CA2BnG;AA8bD,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,GAAG,UAAU,EAAE,CAM9F"}
@@ -0,0 +1,392 @@
1
+ import { isWellKnownTypeFqn, parseTypeExpression } from "@blockml/parser";
2
+ import { resolveEffectiveMembers } from "../resolve/resolve-effective-members.js";
3
+ import { satisfiesTypeBound } from "../resolve/satisfies-type-bound.js";
4
+ import { collectDocumentInstanceIds, resolveInstanceRef, } from "./instance-ids.js";
5
+ import { classifyDeclaredType, namedTypeFqn, TYPE_REFERENCE_ENTITY, } from "./reference-kinds.js";
6
+ const CORE_EXCEPTION = "org.blockml.bml.core.Exception";
7
+ const CORE_BLOCK = "org.blockml.bml.core.Block";
8
+ const MEMBER_KIND_BY_REFERENCE = {
9
+ property: "property",
10
+ aggregation: "aggregation",
11
+ association: "association",
12
+ capability: "capability",
13
+ };
14
+ function diag(code, message, file, loc) {
15
+ const source = {
16
+ file: loc?.file ?? file,
17
+ line: loc?.line ?? 1,
18
+ column: loc?.column ?? 1,
19
+ };
20
+ if (loc?.endLine !== undefined) {
21
+ source.endLine = loc.endLine;
22
+ }
23
+ if (loc?.endColumn !== undefined) {
24
+ source.endColumn = loc.endColumn;
25
+ }
26
+ return { severity: "error", code, message, source };
27
+ }
28
+ function typeIsKnown(fqn, registry) {
29
+ return registry.has(fqn) || isWellKnownTypeFqn(fqn);
30
+ }
31
+ export function walkNamedTypes(expr, visit) {
32
+ if (!expr) {
33
+ return;
34
+ }
35
+ switch (expr.kind) {
36
+ case "named":
37
+ visit(expr.fqn);
38
+ for (const arg of expr.typeArguments ?? []) {
39
+ walkNamedTypes(arg, visit);
40
+ }
41
+ break;
42
+ case "union":
43
+ for (const alt of expr.alternatives) {
44
+ walkNamedTypes(alt, visit);
45
+ }
46
+ break;
47
+ case "grouped":
48
+ walkNamedTypes(expr.expression, visit);
49
+ break;
50
+ case "anonymousStruct":
51
+ for (const field of expr.fields) {
52
+ walkNamedTypes(field.type, visit);
53
+ }
54
+ break;
55
+ default:
56
+ break;
57
+ }
58
+ }
59
+ function typeExpressionFromRaw(raw) {
60
+ const trimmed = raw.trim();
61
+ if (!trimmed) {
62
+ return undefined;
63
+ }
64
+ if (/^[a-z][a-z0-9]*(\.[A-Za-z0-9]+)+$/.test(trimmed)) {
65
+ return { kind: "named", fqn: trimmed };
66
+ }
67
+ try {
68
+ return parseTypeExpression(trimmed, {});
69
+ }
70
+ catch {
71
+ return { kind: "named", fqn: trimmed };
72
+ }
73
+ }
74
+ function literalText(val) {
75
+ if (!val || val.kind !== "literal") {
76
+ return undefined;
77
+ }
78
+ if (typeof val.value === "string") {
79
+ return val.value;
80
+ }
81
+ return undefined;
82
+ }
83
+ function memberValueSource(val) {
84
+ if (!val) {
85
+ return undefined;
86
+ }
87
+ if (val.kind === "expression" || val.kind === "interpolated") {
88
+ return val.source;
89
+ }
90
+ return undefined;
91
+ }
92
+ function packageIsKnown(pkg, registry) {
93
+ const prefix = `${pkg}.`;
94
+ return registry.keys().some((fqn) => fqn.startsWith(prefix));
95
+ }
96
+ function reportUnknownType(fqn, ctx, loc, code, message) {
97
+ if (typeIsKnown(fqn, ctx.registry)) {
98
+ return true;
99
+ }
100
+ ctx.diagnostics.push(diag(code, message, ctx.file, loc));
101
+ return false;
102
+ }
103
+ function checkTypeExpression(expr, ctx, loc, code = "BML_UNKNOWN_TYPE", messagePrefix = "Unknown type") {
104
+ walkNamedTypes(expr, (fqn) => {
105
+ reportUnknownType(fqn, ctx, loc, code, `${messagePrefix}: ${fqn}`);
106
+ });
107
+ }
108
+ function checkTypeFqn(raw, ctx, loc, code = "BML_UNKNOWN_TYPE", messagePrefix = "Unknown type", boundFqn) {
109
+ const expr = typeExpressionFromRaw(raw);
110
+ if (!expr) {
111
+ return;
112
+ }
113
+ checkTypeExpression(expr, ctx, loc, code, messagePrefix);
114
+ if (!boundFqn) {
115
+ return;
116
+ }
117
+ const named = expr.kind === "named" ? expr.fqn : namedTypeFqn(expr);
118
+ if (!named || !ctx.registry.has(named) || !ctx.registry.has(boundFqn)) {
119
+ return;
120
+ }
121
+ if (!satisfiesTypeBound(named, boundFqn, ctx.registry)) {
122
+ ctx.diagnostics.push(diag("BML_TYPE_BOUND_NOT_SATISFIED", `Type ${named} does not satisfy bound ${boundFqn}`, ctx.file, loc));
123
+ }
124
+ }
125
+ function parseMemberPath(raw) {
126
+ const sectioned = /^(.*)\.(properties|aggregations|associations|capabilities)\.([A-Za-z_][A-Za-z0-9_]*)$/.exec(raw.trim());
127
+ if (sectioned) {
128
+ const ownerFqn = sectioned[1];
129
+ const name = sectioned[3];
130
+ return ownerFqn ? { ownerFqn, name } : { name };
131
+ }
132
+ const trimmed = raw.trim();
133
+ const lastDot = trimmed.lastIndexOf(".");
134
+ if (lastDot > 0) {
135
+ return { ownerFqn: trimmed.slice(0, lastDot), name: trimmed.slice(lastDot + 1) };
136
+ }
137
+ return { name: trimmed };
138
+ }
139
+ function checkMemberPath(raw, kind, ctx, loc, ownerFqn) {
140
+ const parsed = parseMemberPath(raw);
141
+ const owner = parsed.ownerFqn ?? ownerFqn;
142
+ if (!owner) {
143
+ ctx.diagnostics.push(diag("BML_UNKNOWN_PROPERTY", `Unknown ${kind}: ${raw}`, ctx.file, loc));
144
+ return;
145
+ }
146
+ const typeDoc = ctx.registry.get(owner);
147
+ if (!typeDoc) {
148
+ if (!typeIsKnown(owner, ctx.registry)) {
149
+ ctx.diagnostics.push(diag("BML_UNKNOWN_TYPE", `Unknown type: ${owner}`, ctx.file, loc));
150
+ }
151
+ else {
152
+ ctx.diagnostics.push(diag("BML_UNKNOWN_PROPERTY", `Unknown ${kind}: ${parsed.name} on ${owner}`, ctx.file, loc));
153
+ }
154
+ return;
155
+ }
156
+ const expected = MEMBER_KIND_BY_REFERENCE[kind];
157
+ const found = resolveEffectiveMembers(typeDoc.block, ctx.registry).some((member) => member.name === parsed.name && member.kind === expected);
158
+ if (!found) {
159
+ ctx.diagnostics.push(diag("BML_UNKNOWN_PROPERTY", `Unknown ${kind}: ${parsed.name} on ${owner}`, ctx.file, loc));
160
+ }
161
+ }
162
+ function checkReferenceValue(classified, raw, ctx, loc, options) {
163
+ if (classified.role === "identifier") {
164
+ return;
165
+ }
166
+ const bound = options?.boundFqn ?? classified.boundFqn;
167
+ switch (classified.kind) {
168
+ case "type":
169
+ checkTypeFqn(raw, ctx, loc, options?.typeCode ?? "BML_UNKNOWN_TYPE", options?.typeMessage ?? "Unknown type", bound);
170
+ break;
171
+ case "package":
172
+ if (!packageIsKnown(raw.trim(), ctx.registry)) {
173
+ ctx.diagnostics.push(diag("BML_UNKNOWN_TYPE", `Unknown package: ${raw.trim()}`, ctx.file, loc));
174
+ }
175
+ break;
176
+ case "instance":
177
+ if (!resolveInstanceRef(raw.trim(), ctx.ids)) {
178
+ ctx.diagnostics.push(diag("BML_UNRESOLVABLE_INSTANCE_REF", `Unresolved instance reference: ${raw.trim()}`, ctx.file, loc));
179
+ }
180
+ break;
181
+ case "property":
182
+ case "aggregation":
183
+ case "association":
184
+ case "capability":
185
+ checkMemberPath(raw, classified.kind, ctx, loc, options?.ownerFqn ?? bound);
186
+ break;
187
+ }
188
+ }
189
+ function checkTypeReferenceEntity(inst, ctx, loc, options) {
190
+ checkTypeFqn(inst.value, ctx, loc, options?.typeCode ?? "BML_UNKNOWN_TYPE", options?.typeMessage ?? "Unknown type", options?.boundFqn ?? inst.boundB);
191
+ }
192
+ function checkDocumentationReference(ref, ctx) {
193
+ const loc = ref.source;
194
+ if (ref.type) {
195
+ checkTypeFqn(ref.type, ctx, loc);
196
+ }
197
+ const pkg = ref.package;
198
+ if (pkg && !packageIsKnown(pkg, ctx.registry)) {
199
+ ctx.diagnostics.push(diag("BML_UNKNOWN_TYPE", `Unknown package: ${pkg}`, ctx.file, loc));
200
+ }
201
+ if (ref.instance) {
202
+ checkReferenceValue({ role: "reference", kind: "instance", isEntity: false }, ref.instance, ctx, loc);
203
+ }
204
+ if (ref.property) {
205
+ checkMemberPath(ref.property, "property", ctx, loc, ref.type);
206
+ }
207
+ if (ref.aggregation) {
208
+ checkMemberPath(ref.aggregation, "aggregation", ctx, loc, ref.type);
209
+ }
210
+ if (ref.association) {
211
+ checkMemberPath(ref.association, "association", ctx, loc, ref.type);
212
+ }
213
+ if (ref.capability) {
214
+ checkMemberPath(ref.capability, "capability", ctx, loc, ref.type);
215
+ }
216
+ if (ref.relationFqn) {
217
+ checkTypeFqn(ref.relationFqn, ctx, loc);
218
+ }
219
+ if (ref.languageFqn) {
220
+ checkTypeFqn(ref.languageFqn, ctx, loc);
221
+ }
222
+ }
223
+ function checkMemberValue(val, classified, ctx, loc) {
224
+ if (!classified || classified.role !== "reference") {
225
+ return;
226
+ }
227
+ const text = literalText(val);
228
+ if (text === undefined) {
229
+ return;
230
+ }
231
+ checkReferenceValue(classified, text, ctx, loc ?? memberValueSource(val));
232
+ }
233
+ function checkMemberTypes(member, ctx) {
234
+ const loc = member.typeSource ?? member.source;
235
+ if (member.kind === "property") {
236
+ if (member.type) {
237
+ checkTypeExpression(member.type, ctx, loc);
238
+ }
239
+ else if (member.typeFqn) {
240
+ checkTypeFqn(member.typeFqn, ctx, loc);
241
+ }
242
+ for (const group of member.groups ?? []) {
243
+ checkTypeReferenceEntity(group, ctx, loc);
244
+ }
245
+ const classified = classifyDeclaredType(member.type, ctx.registry, member.typeFqn);
246
+ checkMemberValue(member.value, classified, ctx, memberValueSource(member.value) ?? loc);
247
+ for (const entry of member.values ?? []) {
248
+ checkMemberValue(entry.value, classified, ctx, memberValueSource(entry.value) ?? loc);
249
+ }
250
+ for (const suggestion of member.suggestions ?? []) {
251
+ walkInstance(suggestion, ctx);
252
+ }
253
+ }
254
+ else if (member.kind === "aggregation") {
255
+ checkTypeExpression(member.type, ctx, loc);
256
+ for (const group of member.groups ?? []) {
257
+ checkTypeReferenceEntity(group, ctx, loc);
258
+ }
259
+ }
260
+ else if (member.kind === "association") {
261
+ checkTypeExpression(member.type, ctx, loc);
262
+ }
263
+ else if (member.kind === "capability") {
264
+ if (member.typeFqn) {
265
+ checkTypeFqn(member.typeFqn, ctx, loc);
266
+ }
267
+ checkTypeExpression(member.inputType, ctx, member.inputTypeSource ?? loc);
268
+ checkTypeExpression(member.outputType, ctx, member.outputTypeSource ?? loc);
269
+ if (member.implementation?.languageFqn) {
270
+ checkTypeFqn(member.implementation.languageFqn, ctx, loc);
271
+ }
272
+ for (const thrown of member.throws ?? []) {
273
+ checkTypeReferenceEntity(thrown, ctx, loc, { boundFqn: thrown.boundB ?? CORE_EXCEPTION });
274
+ }
275
+ }
276
+ for (const ref of member.references ?? []) {
277
+ checkDocumentationReference(ref, ctx);
278
+ }
279
+ for (const instance of member.constraints ?? []) {
280
+ walkInstance(instance, ctx);
281
+ }
282
+ }
283
+ function walkInstance(instance, ctx) {
284
+ const typeBlock = ctx.registry.get(instance.typeFqn)?.block;
285
+ const members = typeBlock ? resolveEffectiveMembers(typeBlock, ctx.registry) : [];
286
+ if (instance.typeFqn === TYPE_REFERENCE_ENTITY) {
287
+ const value = literalText(instance.memberValues.value);
288
+ if (value) {
289
+ checkTypeFqn(value, ctx, instance.source);
290
+ }
291
+ }
292
+ for (const [name, val] of Object.entries(instance.memberValues)) {
293
+ const member = members.find((m) => m.name === name);
294
+ if (!member) {
295
+ continue;
296
+ }
297
+ const type = member.kind === "property" || member.kind === "aggregation" || member.kind === "association"
298
+ ? member.type
299
+ : undefined;
300
+ const typeFqn = member.kind === "property" || member.kind === "capability" ? member.typeFqn : undefined;
301
+ const classified = classifyDeclaredType(type, ctx.registry, typeFqn);
302
+ checkMemberValue(val, classified, ctx, memberValueSource(val) ?? instance.source);
303
+ }
304
+ for (const agg of instance.aggregationCompositions ?? []) {
305
+ const member = members.find((m) => m.kind === "aggregation" && m.name === agg.aggregationName);
306
+ const classified = member && member.kind === "aggregation"
307
+ ? classifyDeclaredType(member.type, ctx.registry)
308
+ : undefined;
309
+ walkCompositionNodes(agg.composition.children, ctx, classified);
310
+ }
311
+ }
312
+ function walkCompositionNodes(nodes, ctx, aggregationDeclared) {
313
+ for (const child of nodes) {
314
+ if (child.kind === "blockInstance") {
315
+ if (aggregationDeclared?.role === "reference" && aggregationDeclared.isEntity) {
316
+ if (aggregationDeclared.kind === "type") {
317
+ checkTypeFqn(child.instance.typeFqn, ctx, child.instance.source ?? child.source, "BML_UNKNOWN_TYPE", "Unknown type", aggregationDeclared.boundFqn);
318
+ }
319
+ else {
320
+ const value = literalText(child.instance.memberValues.value) ?? child.instance.typeFqn;
321
+ checkReferenceValue(aggregationDeclared, value, ctx, child.instance.source ?? child.source);
322
+ }
323
+ }
324
+ walkInstance(child.instance, ctx);
325
+ }
326
+ else {
327
+ walkCompositionNodes(child.children, ctx, aggregationDeclared);
328
+ }
329
+ }
330
+ }
331
+ function isGenericParamName(name, block) {
332
+ return (block.genericTypes ?? []).some((g) => g.name === name);
333
+ }
334
+ function walkBlockDefinition(block, ctx) {
335
+ if (block.baseType) {
336
+ reportUnknownType(block.baseType, ctx, block.baseTypeSource ?? block.source, "BML_UNKNOWN_BASE_TYPE", `Unknown baseType: ${block.baseType}`);
337
+ }
338
+ if (block.baseTypeExpression) {
339
+ const root = namedTypeFqn(block.baseTypeExpression);
340
+ walkNamedTypes(block.baseTypeExpression, (fqn) => {
341
+ if (fqn === root || fqn === block.baseType) {
342
+ return;
343
+ }
344
+ reportUnknownType(fqn, ctx, block.baseTypeSource ?? block.source, "BML_UNKNOWN_TYPE", `Unknown type: ${fqn}`);
345
+ });
346
+ }
347
+ for (const ref of block.contracts ?? []) {
348
+ checkTypeReferenceEntity(ref, ctx, block.source, {
349
+ typeCode: "BML_UNKNOWN_CONTRACT",
350
+ typeMessage: "Unknown contract",
351
+ boundFqn: ref.boundB ?? CORE_BLOCK,
352
+ });
353
+ }
354
+ if (block.language) {
355
+ checkTypeReferenceEntity(block.language, ctx, block.source);
356
+ }
357
+ else if (block.languageFqn) {
358
+ checkTypeFqn(block.languageFqn, ctx, block.source);
359
+ }
360
+ for (const generic of block.genericTypes ?? []) {
361
+ checkTypeFqn(generic.baseType, ctx, block.source);
362
+ if (generic.defaultType && !isGenericParamName(generic.defaultType, block)) {
363
+ checkTypeFqn(generic.defaultType, ctx, block.source);
364
+ }
365
+ }
366
+ for (const ref of block.references ?? []) {
367
+ checkDocumentationReference(ref, ctx);
368
+ }
369
+ for (const instance of block.constraints ?? []) {
370
+ walkInstance(instance, ctx);
371
+ }
372
+ for (const member of block.members) {
373
+ checkMemberTypes(member, ctx);
374
+ }
375
+ for (const template of block.compositions) {
376
+ walkCompositionNodes(template.children, ctx);
377
+ }
378
+ for (const sub of block.subBlocks) {
379
+ walkBlockDefinition(sub, ctx);
380
+ }
381
+ for (const embedded of block.embeddedBlocks) {
382
+ walkBlockDefinition(embedded, ctx);
383
+ }
384
+ }
385
+ export function validateReferences(document, registry) {
386
+ const diagnostics = [];
387
+ const file = document.source.filePath ?? "<memory>";
388
+ const ids = collectDocumentInstanceIds(document.block, file);
389
+ walkBlockDefinition(document.block, { registry, file, diagnostics, ids });
390
+ return diagnostics;
391
+ }
392
+ //# sourceMappingURL=validate-references.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validate-references.js","sourceRoot":"","sources":["../../src/validate/validate-references.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validate-types.d.ts","sourceRoot":"","sources":["../../src/validate/validate-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,WAAW,EACX,UAAU,EAEV,YAAY,EAEZ,WAAW,EACX,kBAAkB,EAGnB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAgUjE,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,YAAY,GACrB,UAAU,EAAE,CAYd;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAEvF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAYpF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,GAAG,GAAG,IAAI,YAAY,CAEhF"}
1
+ {"version":3,"file":"validate-types.d.ts","sourceRoot":"","sources":["../../src/validate/validate-types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,WAAW,EAEX,UAAU,EAGV,YAAY,EACZ,WAAW,EACX,kBAAkB,EAGnB,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAwTjE,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,WAAW,EACrB,QAAQ,EAAE,YAAY,GACrB,UAAU,EAAE,CAcd;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAEvF;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,kBAAkB,GAAG,MAAM,GAAG,SAAS,CAYpF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,GAAG,GAAG,IAAI,YAAY,CAEhF"}