@telorun/analyzer 0.69.0 → 0.71.0

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 (98) hide show
  1. package/dist/analysis-registry.d.ts.map +1 -1
  2. package/dist/analysis-registry.js +4 -5
  3. package/dist/analyzer.d.ts.map +1 -1
  4. package/dist/analyzer.js +50 -8
  5. package/dist/call-graph.d.ts.map +1 -1
  6. package/dist/call-graph.js +10 -4
  7. package/dist/canonical-json.d.ts +18 -0
  8. package/dist/canonical-json.d.ts.map +1 -0
  9. package/dist/canonical-json.js +26 -0
  10. package/dist/cel-access-chains.d.ts +14 -0
  11. package/dist/cel-access-chains.d.ts.map +1 -0
  12. package/dist/cel-access-chains.js +45 -0
  13. package/dist/cel-scope-query.d.ts +14 -0
  14. package/dist/cel-scope-query.d.ts.map +1 -1
  15. package/dist/cel-scope-query.js +36 -6
  16. package/dist/definition-registry.d.ts.map +1 -1
  17. package/dist/definition-registry.js +3 -4
  18. package/dist/flatten-for-analyzer.d.ts +2 -2
  19. package/dist/flatten-for-analyzer.d.ts.map +1 -1
  20. package/dist/flatten-for-analyzer.js +1 -1
  21. package/dist/index.d.ts +5 -2
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +3 -1
  24. package/dist/manifest-diff.d.ts +111 -0
  25. package/dist/manifest-diff.d.ts.map +1 -0
  26. package/dist/manifest-diff.js +130 -0
  27. package/dist/manifest-visitor.d.ts.map +1 -1
  28. package/dist/manifest-visitor.js +11 -3
  29. package/dist/module-alias-scope.d.ts +65 -0
  30. package/dist/module-alias-scope.d.ts.map +1 -0
  31. package/dist/module-alias-scope.js +25 -0
  32. package/dist/{zone-module-documents.d.ts → module-documents.d.ts} +11 -7
  33. package/dist/module-documents.d.ts.map +1 -0
  34. package/dist/module-graph.d.ts.map +1 -1
  35. package/dist/module-graph.js +3 -25
  36. package/dist/ref-sentinel-target.d.ts +38 -0
  37. package/dist/ref-sentinel-target.d.ts.map +1 -0
  38. package/dist/ref-sentinel-target.js +13 -0
  39. package/dist/resolve-schema-type-refs.d.ts.map +1 -1
  40. package/dist/resolve-schema-type-refs.js +2 -1
  41. package/dist/resolve-throws-union.d.ts +18 -1
  42. package/dist/resolve-throws-union.d.ts.map +1 -1
  43. package/dist/resolve-throws-union.js +93 -9
  44. package/dist/resolve-zone-requirements.d.ts +3 -3
  45. package/dist/resolve-zone-requirements.d.ts.map +1 -1
  46. package/dist/resolve-zone-requirements.js +12 -12
  47. package/dist/telo-version.d.ts +1 -1
  48. package/dist/telo-version.js +1 -1
  49. package/dist/template-body.d.ts.map +1 -1
  50. package/dist/template-body.js +2 -4
  51. package/dist/types.d.ts +3 -3
  52. package/dist/types.d.ts.map +1 -1
  53. package/dist/validate-invocation-contract.d.ts +5 -0
  54. package/dist/validate-invocation-contract.d.ts.map +1 -1
  55. package/dist/validate-invocation-contract.js +114 -3
  56. package/dist/validate-logging.d.ts.map +1 -1
  57. package/dist/validate-logging.js +2 -2
  58. package/dist/validate-references.d.ts +16 -5
  59. package/dist/validate-references.d.ts.map +1 -1
  60. package/dist/validate-references.js +30 -12
  61. package/dist/validate-resource-inputs.d.ts +1 -26
  62. package/dist/validate-resource-inputs.d.ts.map +1 -1
  63. package/dist/validate-resource-inputs.js +12 -2
  64. package/dist/validate-schema-type-refs.d.ts.map +1 -1
  65. package/dist/validate-schema-type-refs.js +2 -1
  66. package/dist/validate-throws-coverage.d.ts +5 -1
  67. package/dist/validate-throws-coverage.d.ts.map +1 -1
  68. package/dist/validate-throws-coverage.js +6 -2
  69. package/package.json +2 -2
  70. package/src/analysis-registry.ts +4 -5
  71. package/src/analyzer.ts +61 -10
  72. package/src/call-graph.ts +9 -3
  73. package/src/canonical-json.ts +24 -0
  74. package/src/cel-access-chains.ts +47 -0
  75. package/src/cel-scope-query.ts +45 -8
  76. package/src/definition-registry.ts +3 -6
  77. package/src/flatten-for-analyzer.ts +3 -3
  78. package/src/index.ts +10 -2
  79. package/src/manifest-diff.ts +219 -0
  80. package/src/manifest-visitor.ts +11 -3
  81. package/src/module-alias-scope.ts +94 -0
  82. package/src/{zone-module-documents.ts → module-documents.ts} +10 -6
  83. package/src/module-graph.ts +2 -24
  84. package/src/ref-sentinel-target.ts +46 -0
  85. package/src/resolve-schema-type-refs.ts +2 -1
  86. package/src/resolve-throws-union.ts +123 -8
  87. package/src/resolve-zone-requirements.ts +14 -14
  88. package/src/telo-version.ts +1 -1
  89. package/src/template-body.ts +2 -5
  90. package/src/types.ts +3 -3
  91. package/src/validate-invocation-contract.ts +128 -2
  92. package/src/validate-logging.ts +2 -3
  93. package/src/validate-references.ts +41 -11
  94. package/src/validate-resource-inputs.ts +26 -3
  95. package/src/validate-schema-type-refs.ts +2 -1
  96. package/src/validate-throws-coverage.ts +12 -1
  97. package/dist/zone-module-documents.d.ts.map +0 -1
  98. /package/dist/{zone-module-documents.js → module-documents.js} +0 -0
@@ -3,6 +3,7 @@ import { canonicalTypeSchemaId, parseTeloTypeRef } from "@telorun/sdk";
3
3
  import type { AliasResolver } from "./alias-resolver.js";
4
4
  import type { DefinitionRegistry } from "./definition-registry.js";
5
5
  import { DiagnosticSeverity, type AnalysisDiagnostic } from "./types.js";
6
+ import { moduleAliasScope } from "./module-alias-scope.js";
6
7
 
7
8
  const SOURCE = "telo-analyzer";
8
9
  const SCHEMA_FIELDS = ["schema", "inputType", "outputType"] as const;
@@ -38,7 +39,7 @@ export function validateSchemaTypeRefs(
38
39
  // Only validate refs authored in a root module's scope; imported defs are
39
40
  // validated against their own library when it's analyzed as a root.
40
41
  if (ownModule && !rootModules.has(ownModule)) continue;
41
- const resolver = (ownModule ? aliasesByModule.get(ownModule) : undefined) ?? aliases;
42
+ const resolver = moduleAliasScope(m.metadata, aliases, aliasesByModule);
42
43
  const filePath = (m.metadata as { source?: string } | undefined)?.source;
43
44
  const label = `${m.kind}/${name}`;
44
45
 
@@ -523,11 +523,22 @@ export function validateThrowsCoverage(
523
523
  env: Environment,
524
524
  aliasesByModule: Map<string, AliasResolver> = new Map(),
525
525
  rootModules: Set<string> = new Set(),
526
+ /** Each imported library's full document set, so the walk can follow an
527
+ * exported entry point into the siblings it invokes — which a consumer's
528
+ * flat set does not carry. */
529
+ moduleManifests: Map<string, ResourceManifest[]> = new Map(),
526
530
  ): AnalysisDiagnostic[] {
527
531
  const diagnostics: AnalysisDiagnostic[] = [];
528
532
  diagnostics.push(...validateThrowsDeclarations(manifests));
529
533
 
530
- const resolveCtx = createResolveCtx(manifests, defs, aliases, aliasesByModule, rootModules);
534
+ const resolveCtx = createResolveCtx(
535
+ manifests,
536
+ defs,
537
+ aliases,
538
+ aliasesByModule,
539
+ rootModules,
540
+ moduleManifests,
541
+ );
531
542
 
532
543
  // The alias resolver for a manifest's own lexical scope — an imported library's
533
544
  // resolver when it owns the manifest, else undefined (fall back to root aliases).
@@ -1 +0,0 @@
1
- {"version":3,"file":"zone-module-documents.d.ts","sourceRoot":"","sources":["../src/zone-module-documents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAErD;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,mBAAmB;IAClC,4EAA4E;IAC5E,MAAM,EAAE,MAAM,CAAC;IACf,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;CAClC"}