@principal-ai/principal-view-core 0.21.2 → 0.21.3

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/dist/index.d.ts CHANGED
@@ -31,8 +31,8 @@ export { CanvasDiscovery } from './discovery/CanvasDiscovery';
31
31
  export type { DiscoveredCanvas, DiscoveredTestTrace, DiscoveredWorkflow, DiscoveredStoryboard, CanvasDiscoveryResult, DiscoveryOptions, CanvasType, TestTraceType, DiscoveredCanvasWithContent, DiscoveredTestTraceWithContent, DiscoveredWorkflowWithContent, DiscoveredStoryboardWithContent, CanvasDiscoveryResultWithContent, } from './discovery/types';
32
32
  export { ExecutionValidator, createExecutionValidator } from './execution/ExecutionValidator';
33
33
  export type { ExecutionData, ValidationError, ExecutionValidationResult, } from './execution/ExecutionValidator';
34
- export { analyzeCoverage } from './telemetry/coverage';
35
- export type { CoverageMetrics, NodeCoverage } from './telemetry/coverage';
34
+ export { analyzeCoverage, DEFAULT_IMPLEMENTATION_CONFIG } from './telemetry/coverage';
35
+ export type { CoverageMetrics, FileInstrumentation, ImplementationFileConfig, } from './telemetry/coverage';
36
36
  export { PathBasedEventProcessor } from './PathBasedEventProcessor';
37
37
  export type { LogEntry } from './PathBasedEventProcessor';
38
38
  export { SessionManager } from './SessionManager';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,YAAY,EACV,kBAAkB,EAClB,SAAS,EACT,SAAS,EACT,kBAAkB,EAClB,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,SAAS,EACT,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,QAAQ,EACR,YAAY,EACZ,OAAO,EACP,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,oBAAoB,EACpB,sBAAsB,EACtB,oBAAoB,EACpB,kBAAkB,EAClB,cAAc,EACd,SAAS,EACT,UAAU,GACX,MAAM,SAAS,CAAC;AAGjB,YAAY,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAG7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAGxF,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAG5E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AACtF,YAAY,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAI1D,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC3E,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACV,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,SAAS,EACT,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,eAAe,EACf,cAAc,EACd,mBAAmB,EACnB,YAAY,GACb,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EAEV,6BAA6B,EAC7B,qBAAqB,EACrB,cAAc,EACd,YAAY,EACZ,gBAAgB,EAChB,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,QAAQ,EACR,cAAc,EACd,wBAAwB,EAExB,SAAS,EACT,iBAAiB,EAEjB,cAAc,EACd,kBAAkB,EAClB,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,GACf,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAG9D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,gBAAgB,EAChB,UAAU,EACV,aAAa,EACb,2BAA2B,EAC3B,8BAA8B,EAC9B,6BAA6B,EAC7B,+BAA+B,EAC/B,gCAAgC,GACjC,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAC9F,YAAY,EACV,aAAa,EACb,eAAe,EACf,yBAAyB,GAC1B,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAG1E,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,YAAY,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAG1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EACV,aAAa,EACb,aAAa,EACb,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,iBAAiB,EACjB,qBAAqB,EACrB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,YAAY,EACV,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,UAAU,EACV,eAAe,EACf,WAAW,EACX,WAAW,EACX,YAAY,EACZ,UAAU,EACV,eAAe,EACf,eAAe,EACf,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,0BAA0B,GAC3B,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC5D,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AACrF,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAG1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,YAAY,EACV,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AAGtC,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,0BAA0B,EAC1B,YAAY,EACZ,6BAA6B,GAC9B,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,aAAa,GACd,MAAM,cAAc,CAAC;AAGtB,YAAY,EAAE,iBAAiB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -31,7 +31,7 @@ export { CanvasDiscovery } from './discovery/CanvasDiscovery';
31
31
  // Export execution validation (browser-safe - no Node.js dependencies)
32
32
  export { ExecutionValidator, createExecutionValidator } from './execution/ExecutionValidator';
33
33
  // Export telemetry coverage analysis (browser-safe - uses FileTree abstraction)
34
- export { analyzeCoverage } from './telemetry/coverage';
34
+ export { analyzeCoverage, DEFAULT_IMPLEMENTATION_CONFIG } from './telemetry/coverage';
35
35
  // Export path-based processing (browser-safe - Milestone 1 & 2)
36
36
  export { PathBasedEventProcessor } from './PathBasedEventProcessor';
37
37
  // Export session management (browser-safe - Event Recording System)
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAkCH,mFAAmF;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,oCAAoC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,2CAA2C;AAC3C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAGtF,iDAAiD;AACjD,mEAAmE;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE3E,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,6BAA6B,CAAC;AA+CrC,+BAA+B;AAC/B,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,qCAAqC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,sBAAsB;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,mEAAmE;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAiB9D,uEAAuE;AACvE,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAO9F,gFAAgF;AAChF,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,gEAAgE;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,oEAAoE;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAYlD,+CAA+C;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAqB9D,uFAAuF;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,+EAA+E;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAehE,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,aAAa,GACd,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,4FAA4F;AAC5F,mFAAmF;AACnF,EAAE;AACF,kFAAkF;AAClF,mDAAmD;AACnD,oDAAoD;AACpD,+DAA+D;AAC/D,0FAA0F;AAC1F,uDAAuD;AACvD,8CAA8C;AAC9C,qEAAqE;AACrE,gEAAgE;AAChE,EAAE;AACF,wGAAwG;AACxG,sGAAsG;AACtG,sEAAsE;AACtE,uEAAuE"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAkCH,mFAAmF;AACnF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,oCAAoC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,2CAA2C;AAC3C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAGtF,iDAAiD;AACjD,mEAAmE;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAE3E,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,GACf,MAAM,6BAA6B,CAAC;AA+CrC,+BAA+B;AAC/B,OAAO,EACL,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,eAAe,EACf,eAAe,EACf,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,qCAAqC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,sBAAsB;AACtB,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAGrD,mEAAmE;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAiB9D,uEAAuE;AACvE,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAO9F,gFAAgF;AAChF,OAAO,EAAE,eAAe,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAOtF,gEAAgE;AAChE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,oEAAoE;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAYlD,+CAA+C;AAC/C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAqB9D,uFAAuF;AACvF,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAI5D,+EAA+E;AAC/E,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAehE,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,sBAAsB,EACtB,sBAAsB,EACtB,6BAA6B,EAC7B,aAAa,GACd,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,4FAA4F;AAC5F,mFAAmF;AACnF,EAAE;AACF,kFAAkF;AAClF,mDAAmD;AACnD,oDAAoD;AACpD,+DAA+D;AAC/D,0FAA0F;AAC1F,uDAAuD;AACvD,8CAA8C;AAC9C,qEAAqE;AACrE,gEAAgE;AAChE,EAAE;AACF,wGAAwG;AACxG,sGAAsG;AACtG,sEAAsE;AACtE,uEAAuE"}
package/dist/node.d.ts CHANGED
@@ -25,8 +25,8 @@ export { CanvasConverter } from './utils/CanvasConverter';
25
25
  export type { ReactFlowNode, ReactFlowEdge } from './utils/CanvasConverter';
26
26
  export { EventValidator, createValidatedEmitter, EventValidationError } from './telemetry/event-validator';
27
27
  export type { ValidationResult } from './telemetry/event-validator';
28
- export { analyzeCoverage } from './telemetry/coverage';
29
- export type { CoverageMetrics, NodeCoverage } from './telemetry/coverage';
28
+ export { analyzeCoverage, DEFAULT_IMPLEMENTATION_CONFIG } from './telemetry/coverage';
29
+ export type { CoverageMetrics, FileInstrumentation, ImplementationFileConfig, } from './telemetry/coverage';
30
30
  export { generateTypes, TypeScriptGenerator, generatorRegistry } from './codegen/type-generator';
31
31
  export type { CodegenOptions, CodegenResult, CodeGenerator } from './codegen/type-generator';
32
32
  export { traceToCanvas, traceToCanvasJson } from './utils/TraceToCanvas';
@@ -1 +1 @@
1
- {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
package/dist/node.js CHANGED
@@ -28,7 +28,7 @@ export { CanvasConverter } from './utils/CanvasConverter';
28
28
  // Export telemetry event validation
29
29
  export { EventValidator, createValidatedEmitter, EventValidationError } from './telemetry/event-validator';
30
30
  // Export telemetry coverage analysis (re-exported from main for convenience)
31
- export { analyzeCoverage } from './telemetry/coverage';
31
+ export { analyzeCoverage, DEFAULT_IMPLEMENTATION_CONFIG } from './telemetry/coverage';
32
32
  // Export code generation (Node.js only - file system operations)
33
33
  export { generateTypes, TypeScriptGenerator, generatorRegistry } from './codegen/type-generator';
34
34
  // Export trace-to-canvas conversion
package/dist/node.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,8CAA8C;AAC9C,cAAc,SAAS,CAAC;AAExB,2CAA2C;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAMlE,iBAAiB;AACjB,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAElF,iDAAiD;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,wBAAwB;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,oCAAoC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,oCAAoC;AACpC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAG3G,6EAA6E;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAGvD,iEAAiE;AACjE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGjG,oCAAoC;AACpC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAQzE,qDAAqD;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAYlD,gCAAgC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAqB9D,4DAA4D;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAGtF,gEAAgE;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,wDAAwD;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAKzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,kEAAkE;AAClE,cAAc,SAAS,CAAC;AAExB,4EAA4E;AAC5E,OAAO,EACL,cAAc,EACd,aAAa,EACb,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAuBpB,oDAAoD;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAa9D,8BAA8B;AAC9B,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAO9F,wDAAwD;AACxD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC"}
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,8CAA8C;AAC9C,cAAc,SAAS,CAAC;AAExB,2CAA2C;AAC3C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAMlE,iBAAiB;AACjB,OAAO,EAAE,0BAA0B,EAAE,MAAM,sCAAsC,CAAC;AAElF,iDAAiD;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,wBAAwB;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAExD,oCAAoC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,oCAAoC;AACpC,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAG3G,6EAA6E;AAC7E,OAAO,EAAE,eAAe,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAOtF,iEAAiE;AACjE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAGjG,oCAAoC;AACpC,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAQzE,qDAAqD;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAYlD,gCAAgC;AAChC,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAqB9D,4DAA4D;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAGtF,gEAAgE;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,wDAAwD;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAKzD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sCAAsC,CAAC;AAEjF,kEAAkE;AAClE,cAAc,SAAS,CAAC;AAExB,4EAA4E;AAC5E,OAAO,EACL,cAAc,EACd,aAAa,EACb,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAuBpB,oDAAoD;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAa9D,8BAA8B;AAC9B,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAO9F,wDAAwD;AACxD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC"}
@@ -1,33 +1,54 @@
1
1
  /**
2
2
  * Telemetry Coverage Analysis
3
3
  *
4
- * Measures observability coverage by analyzing which canvas nodes have
5
- * OpenTelemetry instrumentation in their source files.
4
+ * Measures observability coverage by analyzing which implementation files
5
+ * contain the OpenTelemetry events documented in canvas nodes.
6
6
  *
7
7
  * Uses FileTree abstraction for environment-agnostic file operations.
8
8
  */
9
9
  import type { FileTree } from '@principal-ai/repository-abstraction';
10
- export interface NodeCoverage {
11
- nodeId: string;
12
- filePaths: string[];
10
+ /**
11
+ * Configuration for what counts as an implementation file
12
+ */
13
+ export interface ImplementationFileConfig {
14
+ include: string[];
15
+ exclude: string[];
16
+ }
17
+ /**
18
+ * Default configuration for implementation files
19
+ */
20
+ export declare const DEFAULT_IMPLEMENTATION_CONFIG: ImplementationFileConfig;
21
+ /**
22
+ * Per-file instrumentation details
23
+ */
24
+ export interface FileInstrumentation {
25
+ filePath: string;
26
+ expectedEvents: string[];
27
+ foundEvents: string[];
28
+ instrumentationCount: number;
13
29
  hasInstrumentation: boolean;
14
- instrumentedFiles: string[];
15
- missingFiles: string[];
30
+ missingEvents: string[];
31
+ isImplementationFile: boolean;
16
32
  }
33
+ /**
34
+ * Overall coverage metrics (file-based)
35
+ */
17
36
  export interface CoverageMetrics {
18
- totalNodes: number;
19
- nodesWithFiles: number;
20
- nodesWithInstrumentation: number;
37
+ totalImplementationFiles: number;
38
+ filesWithInstrumentation: number;
21
39
  coveragePercentage: number;
22
- nodeCoverage: NodeCoverage[];
40
+ fileCoverage: FileInstrumentation[];
23
41
  canvasFiles: string[];
42
+ totalExpectedEvents: number;
43
+ totalFoundEvents: number;
24
44
  }
25
45
  /**
26
46
  * Generate telemetry coverage report from canvas files
27
47
  *
28
48
  * @param fileTree - FileTree representation of the codebase
29
49
  * @param fileReader - Function to read file contents
30
- * @returns Coverage metrics for all canvas nodes
50
+ * @param config - Configuration for implementation file detection (optional)
51
+ * @returns Coverage metrics based on file instrumentation
31
52
  *
32
53
  * @example
33
54
  * ```typescript
@@ -41,5 +62,5 @@ export interface CoverageMetrics {
41
62
  * const metrics = await analyzeCoverage(fileTree, fileReader);
42
63
  * ```
43
64
  */
44
- export declare function analyzeCoverage(fileTree: FileTree, fileReader: (path: string) => Promise<string>): Promise<CoverageMetrics>;
65
+ export declare function analyzeCoverage(fileTree: FileTree, fileReader: (path: string) => Promise<string>, config?: ImplementationFileConfig): Promise<CoverageMetrics>;
45
66
  //# sourceMappingURL=coverage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"coverage.d.ts","sourceRoot":"","sources":["../../src/telemetry/coverage.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAKrE,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,wBAAwB,EAAE,MAAM,CAAC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,YAAY,EAAE,CAAC;IAC7B,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AA2ED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GAC5C,OAAO,CAAC,eAAe,CAAC,CAwC1B"}
1
+ {"version":3,"file":"coverage.d.ts","sourceRoot":"","sources":["../../src/telemetry/coverage.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAY,MAAM,sCAAsC,CAAC;AAK/E;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,6BAA6B,EAAE,wBAmC3C,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,oBAAoB,EAAE,OAAO,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAE9B,wBAAwB,EAAE,MAAM,CAAC;IACjC,wBAAwB,EAAE,MAAM,CAAC;IACjC,kBAAkB,EAAE,MAAM,CAAC;IAG3B,YAAY,EAAE,mBAAmB,EAAE,CAAC;IAGpC,WAAW,EAAE,MAAM,EAAE,CAAC;IAGtB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAuJD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,EAC7C,MAAM,GAAE,wBAAwD,GAC/D,OAAO,CAAC,eAAe,CAAC,CA0D1B"}
@@ -1,70 +1,164 @@
1
1
  /**
2
2
  * Telemetry Coverage Analysis
3
3
  *
4
- * Measures observability coverage by analyzing which canvas nodes have
5
- * OpenTelemetry instrumentation in their source files.
4
+ * Measures observability coverage by analyzing which implementation files
5
+ * contain the OpenTelemetry events documented in canvas nodes.
6
6
  *
7
7
  * Uses FileTree abstraction for environment-agnostic file operations.
8
8
  */
9
9
  import { CanvasDiscovery } from '../discovery/CanvasDiscovery';
10
10
  /**
11
- * Extract file paths from a canvas node's pv.sources (REQUIRED)
11
+ * Default configuration for implementation files
12
12
  */
13
- function extractFilePaths(node) {
14
- const paths = [];
15
- if (node.pv?.sources) {
16
- paths.push(...node.pv.sources);
13
+ export const DEFAULT_IMPLEMENTATION_CONFIG = {
14
+ include: [
15
+ 'src/**/*.ts',
16
+ 'src/**/*.tsx',
17
+ 'src/**/*.js',
18
+ 'src/**/*.jsx',
19
+ 'src/**/*.py',
20
+ 'src/**/*.go',
21
+ 'lib/**/*.ts',
22
+ 'lib/**/*.js',
23
+ 'app/**/*.ts',
24
+ 'app/**/*.tsx',
25
+ 'app/**/*.js',
26
+ 'app/**/*.jsx',
27
+ ],
28
+ exclude: [
29
+ '**/*.test.ts',
30
+ '**/*.test.tsx',
31
+ '**/*.test.js',
32
+ '**/*.test.jsx',
33
+ '**/*.spec.ts',
34
+ '**/*.spec.tsx',
35
+ '**/*.spec.js',
36
+ '**/*.spec.jsx',
37
+ '**/*.config.ts',
38
+ '**/*.config.js',
39
+ '**/*.d.ts',
40
+ '**/dist/**',
41
+ '**/build/**',
42
+ '**/node_modules/**',
43
+ '**/__tests__/**',
44
+ '**/__mocks__/**',
45
+ '**/.next/**',
46
+ '**/coverage/**',
47
+ ],
48
+ };
49
+ /**
50
+ * Simple glob pattern matcher
51
+ * Supports ** for any depth, * for any chars in segment, and negation with !
52
+ */
53
+ function matchesPattern(filePath, pattern) {
54
+ const isNegation = pattern.startsWith('!');
55
+ const actualPattern = isNegation ? pattern.slice(1) : pattern;
56
+ // Convert glob to regex
57
+ const regexPattern = actualPattern
58
+ .replace(/\*\*/g, '<<GLOBSTAR>>')
59
+ .replace(/\*/g, '[^/]*')
60
+ .replace(/<<GLOBSTAR>>/g, '.*')
61
+ .replace(/\?/g, '[^/]')
62
+ .replace(/\./g, '\\.');
63
+ const regex = new RegExp(`^${regexPattern}$`);
64
+ return regex.test(filePath);
65
+ }
66
+ /**
67
+ * Check if a file is an implementation file based on patterns
68
+ */
69
+ function isImplementationFile(filePath, config) {
70
+ // Check if excluded
71
+ for (const pattern of config.exclude) {
72
+ if (matchesPattern(filePath, pattern)) {
73
+ return false;
74
+ }
75
+ }
76
+ // Check if included
77
+ for (const pattern of config.include) {
78
+ if (matchesPattern(filePath, pattern)) {
79
+ return true;
80
+ }
17
81
  }
18
- return paths;
82
+ return false;
19
83
  }
20
84
  /**
21
- * Check if a file has OpenTelemetry instrumentation
22
- *
23
- * @param filePath - Path to the file to check
24
- * @param fileReader - Function to read file contents
25
- * @returns True if file has OTEL instrumentation
85
+ * Get all implementation files from the file tree
86
+ */
87
+ function getImplementationFiles(fileTree, config) {
88
+ // Simply use allFiles from the FileTree and filter by implementation patterns
89
+ return fileTree.allFiles
90
+ .map(file => file.relativePath)
91
+ .filter(filePath => isImplementationFile(filePath, config));
92
+ }
93
+ /**
94
+ * Extract event name from a canvas node
95
+ */
96
+ function getEventName(node) {
97
+ return node.pv?.event?.name || null;
98
+ }
99
+ /**
100
+ * Extract instrumentation file paths from a canvas node (pv.otel.files only)
26
101
  */
27
- async function hasInstrumentation(filePath, fileReader) {
102
+ function getInstrumentationFiles(node) {
103
+ // Only check pv.otel.files - explicit instrumentation locations
104
+ return node.pv?.otel?.files || [];
105
+ }
106
+ /**
107
+ * Check if a file contains a specific event name (simple string match)
108
+ */
109
+ async function fileContainsEvent(filePath, eventName, fileReader) {
28
110
  try {
29
111
  const content = await fileReader(filePath);
30
- const hasOtelImport = content.includes('@opentelemetry/api');
31
- const hasTracer = /getTracer|startSpan|addEvent/.test(content);
32
- const hasTestOtel = /['"]\.\.?\/.*test\/otel-setup['"]/.test(content);
33
- return hasOtelImport || hasTracer || hasTestOtel;
112
+ return content.includes(eventName);
34
113
  }
35
114
  catch {
36
115
  return false;
37
116
  }
38
117
  }
39
118
  /**
40
- * Analyze coverage for a single canvas node
41
- *
42
- * @param node - Canvas node to analyze
43
- * @param fileReader - Function to read file contents
44
- * @returns Coverage information for the node
119
+ * Build a map of file -> expected events from canvas nodes
45
120
  */
46
- async function analyzeNodeCoverage(node, fileReader) {
47
- const filePaths = extractFilePaths(node);
48
- const instrumentedFiles = [];
49
- const missingFiles = [];
50
- for (const path of filePaths) {
51
- try {
52
- const instrumented = await hasInstrumentation(path, fileReader);
53
- if (instrumented) {
54
- instrumentedFiles.push(path);
121
+ async function buildFileEventMap(otelCanvases) {
122
+ const fileEventMap = new Map();
123
+ for (const canvas of otelCanvases) {
124
+ if (!canvas.content?.nodes || canvas.content.nodes.length === 0) {
125
+ continue;
126
+ }
127
+ for (const node of canvas.content.nodes) {
128
+ const eventName = getEventName(node);
129
+ if (!eventName)
130
+ continue;
131
+ const files = getInstrumentationFiles(node);
132
+ for (const file of files) {
133
+ if (!fileEventMap.has(file)) {
134
+ fileEventMap.set(file, new Set());
135
+ }
136
+ fileEventMap.get(file).add(eventName);
55
137
  }
56
138
  }
57
- catch {
58
- // File doesn't exist or can't be read
59
- missingFiles.push(path);
139
+ }
140
+ return fileEventMap;
141
+ }
142
+ /**
143
+ * Analyze instrumentation for a single file
144
+ */
145
+ async function analyzeFileInstrumentation(filePath, expectedEvents, fileReader, isImplFile) {
146
+ const foundEvents = [];
147
+ for (const eventName of expectedEvents) {
148
+ const found = await fileContainsEvent(filePath, eventName, fileReader);
149
+ if (found) {
150
+ foundEvents.push(eventName);
60
151
  }
61
152
  }
153
+ const missingEvents = expectedEvents.filter(e => !foundEvents.includes(e));
62
154
  return {
63
- nodeId: node.id,
64
- filePaths,
65
- hasInstrumentation: instrumentedFiles.length > 0,
66
- instrumentedFiles,
67
- missingFiles
155
+ filePath,
156
+ expectedEvents,
157
+ foundEvents,
158
+ instrumentationCount: foundEvents.length,
159
+ hasInstrumentation: foundEvents.length > 0,
160
+ missingEvents,
161
+ isImplementationFile: isImplFile,
68
162
  };
69
163
  }
70
164
  /**
@@ -72,7 +166,8 @@ async function analyzeNodeCoverage(node, fileReader) {
72
166
  *
73
167
  * @param fileTree - FileTree representation of the codebase
74
168
  * @param fileReader - Function to read file contents
75
- * @returns Coverage metrics for all canvas nodes
169
+ * @param config - Configuration for implementation file detection (optional)
170
+ * @returns Coverage metrics based on file instrumentation
76
171
  *
77
172
  * @example
78
173
  * ```typescript
@@ -86,7 +181,7 @@ async function analyzeNodeCoverage(node, fileReader) {
86
181
  * const metrics = await analyzeCoverage(fileTree, fileReader);
87
182
  * ```
88
183
  */
89
- export async function analyzeCoverage(fileTree, fileReader) {
184
+ export async function analyzeCoverage(fileTree, fileReader, config = DEFAULT_IMPLEMENTATION_CONFIG) {
90
185
  // Use CanvasDiscovery to find all canvas files
91
186
  const discovery = new CanvasDiscovery();
92
187
  const result = await discovery.discover(fileTree, {
@@ -95,29 +190,37 @@ export async function analyzeCoverage(fileTree, fileReader) {
95
190
  });
96
191
  // Filter for .otel.canvas files only
97
192
  const otelCanvases = result.canvases.filter(c => c.type === 'otel');
98
- const allNodeCoverage = [];
99
- for (const canvas of otelCanvases) {
100
- // Cast to DiscoveredCanvasWithContent since we used includeContent: true
101
- const canvasWithContent = canvas;
102
- if (!canvasWithContent.content?.nodes || canvasWithContent.content.nodes.length === 0) {
103
- continue;
104
- }
105
- for (const node of canvasWithContent.content.nodes) {
106
- const coverage = await analyzeNodeCoverage(node, fileReader);
107
- allNodeCoverage.push(coverage);
108
- }
193
+ // Build map of file -> expected events from canvas
194
+ const fileEventMap = await buildFileEventMap(otelCanvases);
195
+ // Get all implementation files from the codebase
196
+ const implementationFiles = new Set(getImplementationFiles(fileTree, config));
197
+ // Get all files referenced in canvas (for coverage denominator)
198
+ const referencedFiles = new Set(fileEventMap.keys());
199
+ // Combine: we want to check all files referenced in canvas that are also implementation files
200
+ const filesToCheck = new Set([...referencedFiles].filter(f => implementationFiles.has(f)));
201
+ // Analyze each file
202
+ const fileCoverage = [];
203
+ for (const filePath of filesToCheck) {
204
+ const expectedEvents = Array.from(fileEventMap.get(filePath) || []);
205
+ const coverage = await analyzeFileInstrumentation(filePath, expectedEvents, fileReader, implementationFiles.has(filePath));
206
+ fileCoverage.push(coverage);
109
207
  }
110
- const nodesWithFiles = allNodeCoverage.filter(n => n.filePaths.length > 0);
111
- const nodesWithInstrumentation = allNodeCoverage.filter(n => n.hasInstrumentation);
208
+ // Calculate metrics
209
+ const filesWithInstrumentation = fileCoverage.filter(f => f.hasInstrumentation).length;
210
+ const totalImplementationFiles = filesToCheck.size;
211
+ const coveragePercentage = totalImplementationFiles > 0
212
+ ? (filesWithInstrumentation / totalImplementationFiles) * 100
213
+ : 0;
214
+ const totalExpectedEvents = fileCoverage.reduce((sum, f) => sum + f.expectedEvents.length, 0);
215
+ const totalFoundEvents = fileCoverage.reduce((sum, f) => sum + f.foundEvents.length, 0);
112
216
  return {
113
- totalNodes: allNodeCoverage.length,
114
- nodesWithFiles: nodesWithFiles.length,
115
- nodesWithInstrumentation: nodesWithInstrumentation.length,
116
- coveragePercentage: nodesWithFiles.length > 0
117
- ? (nodesWithInstrumentation.length / nodesWithFiles.length) * 100
118
- : 0,
119
- nodeCoverage: allNodeCoverage,
217
+ totalImplementationFiles,
218
+ filesWithInstrumentation,
219
+ coveragePercentage,
220
+ fileCoverage,
120
221
  canvasFiles: otelCanvases.map(c => c.path),
222
+ totalExpectedEvents,
223
+ totalFoundEvents,
121
224
  };
122
225
  }
123
226
  //# sourceMappingURL=coverage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../src/telemetry/coverage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"coverage.js","sourceRoot":"","sources":["../../src/telemetry/coverage.ts"],"names":[],"mappings":"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"}
@@ -289,8 +289,17 @@ export interface PVOtelExtension {
289
289
  * these criteria are received.
290
290
  */
291
291
  spanMatch?: PVOtelSpanMatch;
292
+ /**
293
+ * Files where this event is instrumented
294
+ *
295
+ * Specifies the exact file paths where this OTEL event should be emitted.
296
+ * Used by coverage tools to validate that events are properly instrumented.
297
+ *
298
+ * @example ["src/app/api/auth/callback/route.ts"]
299
+ */
300
+ files?: string[];
292
301
  /** Allow additional properties */
293
- [key: string]: JsonValue | PVOtelResourceMatch | PVOtelSpanMatch | undefined;
302
+ [key: string]: JsonValue | PVOtelResourceMatch | PVOtelSpanMatch | string[] | undefined;
294
303
  }
295
304
  /**
296
305
  * Event field schema definition
@@ -1 +1 @@
1
- {"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../src/types/canvas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAOzC;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE7D;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,OAAO,CAAC;AAE9C;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,2BAA2B;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,2BAA2B;IAC3B,CAAC,EAAE,MAAM,CAAC;IACV,sBAAsB;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,qBAAqB;IACrB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,cAAc;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,qBAAqB;IACrB,GAAG,EAAE,MAAM,CAAC;CACb;AAED;;GAEG;AACH,MAAM,WAAW,eAAgB,SAAQ,cAAc;IACrD,IAAI,EAAE,OAAO,CAAC;IACd,mCAAmC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6BAA6B;IAC7B,eAAe,CAAC,EAAE,qBAAqB,CAAC;CACzC;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,GAAG,eAAe,CAAC;AAE5F;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,qBAAqB;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,qBAAqB;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,0BAA0B;IAC1B,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,iDAAiD;IACjD,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,kDAAkD;IAClD,KAAK,CAAC,EAAE,cAAc,CAAC;IACvB,iBAAiB;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,MAAM;IACrB,oDAAoD;IACpD,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;IACrB,qBAAqB;IACrB,KAAK,CAAC,EAAE,UAAU,EAAE,CAAC;CACtB;AAMD;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,MAAM,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,UAAU,GAAG,eAAe,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEpF;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC;AAErE;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;AAK7D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAKD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,UAAU,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,KAAK,GACL,UAAU,GACV,MAAM,GACN,OAAO,GACP,OAAO,GACP,OAAO,GACP,QAAQ,GACR,QAAQ,GACR,WAAW,CAAC;AAEhB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAE3C;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAEzB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,YAAY,GAAG,YAAY,EAAE,CAAC;IAErC;;;;;;;;;;;;;;;;;OAiBG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAE/C;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;QACzB,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;KAChD,CAAC;CACH;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;;;;;;;;;OAaG;IACH,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,EAAE,CAAC;CAC3C;AAED;;;;;GAKG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;OAKG;IACH,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB;;OAEG;IACH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;;OAKG;IACH,aAAa,CAAC,EAAE,mBAAmB,CAAC;IAEpC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,eAAe,CAAC;IAE5B,kCAAkC;IAClC,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,GAAG,mBAAmB,GAAG,eAAe,GAAG,SAAS,CAAC;CAC9E;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,sBAAsB;IACtB,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC3D,qCAAqC;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,4DAA4D;IAC5D,IAAI,EAAE,MAAM,CAAC;IACb,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IAEjB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,IAAI,CAAC,EAAE,eAAe,CAAC;IAEvB,mBAAmB;IACnB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+DAA+D;IAC/D,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACrC;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAEnB;;;;;;;;;;;;;OAaG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC;IAK9B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,KAAK,CAAC,EAAE,aAAa,CAAC;IAEtB;;;;;;;;;;;;;OAaG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,mCAAmC;IACnC,UAAU,CAAC,EAAE,MAAM,CACjB,MAAM,EACN;QACE,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;QAC3D,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,cAAc,CAAC,EAAE,OAAO,CAAC;KAC1B,CACF,CAAC;IACF,mBAAmB;IACnB,MAAM,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,eAAe,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CAEH;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,8CAA8C;IAC9C,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,qCAAqC;IACrC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,mCAAmC;IACnC,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,sCAAsC;IACtC,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,sDAAsD;IACtD,MAAM,CAAC,EAAE,cAAc,GAAG,gBAAgB,GAAG,UAAU,GAAG,QAAQ,CAAC;IACnE,kBAAkB;IAClB,KAAK,CAAC,EAAE;QACN,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,yBAAyB;IACzB,UAAU,CAAC,EAAE;QACX,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+CAA+C;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,KAAK,CAAC,EAAE,WAAW,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB;IACjB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wBAAwB;IACxB,SAAS,CAAC,EAAE;QACV,IAAI,EAAE,eAAe,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,+CAA+C;IAC/C,WAAW,CAAC,EAAE;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,QAAQ,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAC;KACvC,CAAC;CAEH;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,qBAAqB;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;;OAQG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACjD,kDAAkD;IAClD,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;IACjD,+BAA+B;IAC/B,UAAU,CAAC,EAAE,YAAY,CAAC;IAC1B,4BAA4B;IAC5B,OAAO,CAAC,EAAE,eAAe,CAAC;IAE1B;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB;;;;;OAKG;IACH,KAAK,CAAC,EAAE,iBAAiB,CAAC;CAC3B;AAMD;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,EAAE,CAAC,EAAE,eAAe,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,EAAE,CAAC,EAAE,eAAe,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,cAAc;IAC5D,EAAE,CAAC,EAAE,eAAe,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,EAAE,CAAC,EAAE,eAAe,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAC1B,sBAAsB,GACtB,sBAAsB,GACtB,sBAAsB,GACtB,uBAAuB,CAAC;AAE5B;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD,EAAE,CAAC,EAAE,eAAe,CAAC;CACtB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,cAAe,SAAQ,MAAM;IAC5C,wCAAwC;IACxC,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC7B,wCAAwC;IACxC,KAAK,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC7B,oCAAoC;IACpC,EAAE,CAAC,EAAE,iBAAiB,CAAC;CACxB;AAMD;;GAEG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,UAAU,GAAG,kBAAkB,GACpC,IAAI,IAAI,cAAc,GAAG,sBAAsB,CAEjD;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,UAAU,GAAG,kBAAkB,GACpC,IAAI,IAAI,cAAc,GAAG,sBAAsB,CAEjD;AAED;;GAEG;AACH,wBAAgB,UAAU,CACxB,IAAI,EAAE,UAAU,GAAG,kBAAkB,GACpC,IAAI,IAAI,cAAc,GAAG,sBAAsB,CAEjD;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,UAAU,GAAG,kBAAkB,GACpC,IAAI,IAAI,eAAe,GAAG,uBAAuB,CAEnD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,kBAAkB,GAAG,IAAI,IAAI,kBAAkB,CAEhG;AAED;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAOvD,CAAC;AAEF;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAgBrF"}
1
+ {"version":3,"file":"canvas.d.ts","sourceRoot":"","sources":["../../src/types/canvas.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../src/types/canvas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AA+rBH,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,IAAqC;IAErC,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,IAAqC;IAErC,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,IAAqC;IAErC,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,IAAqC;IAErC,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAqC;IAClE,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,SAAS,EAAE,SAAS;CACxB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAA8B;IAC/D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE1C,yBAAyB;IACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;KACpC;IAED,uDAAuD;IACvD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,YAAY,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,EAAE;QAClE,OAAO,oBAAoB,CAAC,YAAY,CAAC,CAAC;KAC3C;IAED,2BAA2B;IAC3B,OAAO,KAAK,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../src/types/canvas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAysBH,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,IAAqC;IAErC,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,IAAqC;IAErC,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU,CACxB,IAAqC;IAErC,OAAO,IAAI,CAAC,IAAI,KAAK,MAAM,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CACzB,IAAqC;IAErC,OAAO,IAAI,CAAC,IAAI,KAAK,OAAO,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,IAAqC;IAClE,OAAO,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,CAAC;AAC/C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAA2B;IAC1D,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,SAAS,EAAE,SAAS;CACxB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAA8B;IAC/D,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IAE1C,yBAAyB;IACzB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;KACpC;IAED,uDAAuD;IACvD,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IACzC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,YAAY,IAAI,CAAC,IAAI,YAAY,IAAI,CAAC,EAAE;QAClE,OAAO,oBAAoB,CAAC,YAAY,CAAC,CAAC;KAC3C;IAED,2BAA2B;IAC3B,OAAO,KAAK,CAAC;AACf,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@principal-ai/principal-view-core",
3
- "version": "0.21.2",
3
+ "version": "0.21.3",
4
4
  "description": "Core logic and types for graph-based principal view framework",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
package/src/index.ts CHANGED
@@ -160,8 +160,12 @@ export type {
160
160
  } from './execution/ExecutionValidator';
161
161
 
162
162
  // Export telemetry coverage analysis (browser-safe - uses FileTree abstraction)
163
- export { analyzeCoverage } from './telemetry/coverage';
164
- export type { CoverageMetrics, NodeCoverage } from './telemetry/coverage';
163
+ export { analyzeCoverage, DEFAULT_IMPLEMENTATION_CONFIG } from './telemetry/coverage';
164
+ export type {
165
+ CoverageMetrics,
166
+ FileInstrumentation,
167
+ ImplementationFileConfig,
168
+ } from './telemetry/coverage';
165
169
 
166
170
  // Export path-based processing (browser-safe - Milestone 1 & 2)
167
171
  export { PathBasedEventProcessor } from './PathBasedEventProcessor';
package/src/node.ts CHANGED
@@ -46,8 +46,12 @@ export { EventValidator, createValidatedEmitter, EventValidationError } from './
46
46
  export type { ValidationResult } from './telemetry/event-validator';
47
47
 
48
48
  // Export telemetry coverage analysis (re-exported from main for convenience)
49
- export { analyzeCoverage } from './telemetry/coverage';
50
- export type { CoverageMetrics, NodeCoverage } from './telemetry/coverage';
49
+ export { analyzeCoverage, DEFAULT_IMPLEMENTATION_CONFIG } from './telemetry/coverage';
50
+ export type {
51
+ CoverageMetrics,
52
+ FileInstrumentation,
53
+ ImplementationFileConfig,
54
+ } from './telemetry/coverage';
51
55
 
52
56
  // Export code generation (Node.js only - file system operations)
53
57
  export { generateTypes, TypeScriptGenerator, generatorRegistry } from './codegen/type-generator';
@@ -1,104 +1,244 @@
1
1
  /**
2
2
  * Telemetry Coverage Analysis
3
3
  *
4
- * Measures observability coverage by analyzing which canvas nodes have
5
- * OpenTelemetry instrumentation in their source files.
4
+ * Measures observability coverage by analyzing which implementation files
5
+ * contain the OpenTelemetry events documented in canvas nodes.
6
6
  *
7
7
  * Uses FileTree abstraction for environment-agnostic file operations.
8
8
  */
9
9
 
10
- import type { FileTree } from '@principal-ai/repository-abstraction';
10
+ import type { FileTree, FileInfo } from '@principal-ai/repository-abstraction';
11
11
  import { CanvasDiscovery } from '../discovery/CanvasDiscovery';
12
12
  import type { DiscoveredCanvasWithContent } from '../discovery/types';
13
13
  import type { ExtendedCanvasNode } from '../types/canvas';
14
14
 
15
- export interface NodeCoverage {
16
- nodeId: string;
17
- filePaths: string[];
18
- hasInstrumentation: boolean;
19
- instrumentedFiles: string[];
20
- missingFiles: string[];
15
+ /**
16
+ * Configuration for what counts as an implementation file
17
+ */
18
+ export interface ImplementationFileConfig {
19
+ include: string[]; // glob patterns to include
20
+ exclude: string[]; // glob patterns to exclude
21
+ }
22
+
23
+ /**
24
+ * Default configuration for implementation files
25
+ */
26
+ export const DEFAULT_IMPLEMENTATION_CONFIG: ImplementationFileConfig = {
27
+ include: [
28
+ 'src/**/*.ts',
29
+ 'src/**/*.tsx',
30
+ 'src/**/*.js',
31
+ 'src/**/*.jsx',
32
+ 'src/**/*.py',
33
+ 'src/**/*.go',
34
+ 'lib/**/*.ts',
35
+ 'lib/**/*.js',
36
+ 'app/**/*.ts',
37
+ 'app/**/*.tsx',
38
+ 'app/**/*.js',
39
+ 'app/**/*.jsx',
40
+ ],
41
+ exclude: [
42
+ '**/*.test.ts',
43
+ '**/*.test.tsx',
44
+ '**/*.test.js',
45
+ '**/*.test.jsx',
46
+ '**/*.spec.ts',
47
+ '**/*.spec.tsx',
48
+ '**/*.spec.js',
49
+ '**/*.spec.jsx',
50
+ '**/*.config.ts',
51
+ '**/*.config.js',
52
+ '**/*.d.ts',
53
+ '**/dist/**',
54
+ '**/build/**',
55
+ '**/node_modules/**',
56
+ '**/__tests__/**',
57
+ '**/__mocks__/**',
58
+ '**/.next/**',
59
+ '**/coverage/**',
60
+ ],
61
+ };
62
+
63
+ /**
64
+ * Per-file instrumentation details
65
+ */
66
+ export interface FileInstrumentation {
67
+ filePath: string;
68
+ expectedEvents: string[]; // Events that should be in this file (from canvas)
69
+ foundEvents: string[]; // Events actually found in the file
70
+ instrumentationCount: number; // foundEvents.length (for heat map)
71
+ hasInstrumentation: boolean; // instrumentationCount > 0
72
+ missingEvents: string[]; // expectedEvents - foundEvents
73
+ isImplementationFile: boolean; // Whether this file matches implementation patterns
21
74
  }
22
75
 
76
+ /**
77
+ * Overall coverage metrics (file-based)
78
+ */
23
79
  export interface CoverageMetrics {
24
- totalNodes: number;
25
- nodesWithFiles: number;
26
- nodesWithInstrumentation: number;
80
+ // File-based coverage
81
+ totalImplementationFiles: number;
82
+ filesWithInstrumentation: number;
27
83
  coveragePercentage: number;
28
- nodeCoverage: NodeCoverage[];
84
+
85
+ // Per-file details (for heat map and debugging)
86
+ fileCoverage: FileInstrumentation[];
87
+
88
+ // Canvas metadata
29
89
  canvasFiles: string[];
90
+
91
+ // Summary stats
92
+ totalExpectedEvents: number;
93
+ totalFoundEvents: number;
94
+ }
95
+
96
+ /**
97
+ * Simple glob pattern matcher
98
+ * Supports ** for any depth, * for any chars in segment, and negation with !
99
+ */
100
+ function matchesPattern(filePath: string, pattern: string): boolean {
101
+ const isNegation = pattern.startsWith('!');
102
+ const actualPattern = isNegation ? pattern.slice(1) : pattern;
103
+
104
+ // Convert glob to regex
105
+ const regexPattern = actualPattern
106
+ .replace(/\*\*/g, '<<GLOBSTAR>>')
107
+ .replace(/\*/g, '[^/]*')
108
+ .replace(/<<GLOBSTAR>>/g, '.*')
109
+ .replace(/\?/g, '[^/]')
110
+ .replace(/\./g, '\\.');
111
+
112
+ const regex = new RegExp(`^${regexPattern}$`);
113
+ return regex.test(filePath);
30
114
  }
31
115
 
32
116
  /**
33
- * Extract file paths from a canvas node's pv.sources (REQUIRED)
117
+ * Check if a file is an implementation file based on patterns
34
118
  */
35
- function extractFilePaths(node: ExtendedCanvasNode): string[] {
36
- const paths: string[] = [];
119
+ function isImplementationFile(
120
+ filePath: string,
121
+ config: ImplementationFileConfig
122
+ ): boolean {
123
+ // Check if excluded
124
+ for (const pattern of config.exclude) {
125
+ if (matchesPattern(filePath, pattern)) {
126
+ return false;
127
+ }
128
+ }
37
129
 
38
- if (node.pv?.sources) {
39
- paths.push(...node.pv.sources);
130
+ // Check if included
131
+ for (const pattern of config.include) {
132
+ if (matchesPattern(filePath, pattern)) {
133
+ return true;
134
+ }
40
135
  }
41
136
 
42
- return paths;
137
+ return false;
43
138
  }
44
139
 
45
140
  /**
46
- * Check if a file has OpenTelemetry instrumentation
47
- *
48
- * @param filePath - Path to the file to check
49
- * @param fileReader - Function to read file contents
50
- * @returns True if file has OTEL instrumentation
141
+ * Get all implementation files from the file tree
142
+ */
143
+ function getImplementationFiles(
144
+ fileTree: FileTree,
145
+ config: ImplementationFileConfig
146
+ ): string[] {
147
+ // Simply use allFiles from the FileTree and filter by implementation patterns
148
+ return fileTree.allFiles
149
+ .map(file => file.relativePath)
150
+ .filter(filePath => isImplementationFile(filePath, config));
151
+ }
152
+
153
+ /**
154
+ * Extract event name from a canvas node
155
+ */
156
+ function getEventName(node: ExtendedCanvasNode): string | null {
157
+ return node.pv?.event?.name || null;
158
+ }
159
+
160
+ /**
161
+ * Extract instrumentation file paths from a canvas node (pv.otel.files only)
162
+ */
163
+ function getInstrumentationFiles(node: ExtendedCanvasNode): string[] {
164
+ // Only check pv.otel.files - explicit instrumentation locations
165
+ return node.pv?.otel?.files || [];
166
+ }
167
+
168
+ /**
169
+ * Check if a file contains a specific event name (simple string match)
51
170
  */
52
- async function hasInstrumentation(
171
+ async function fileContainsEvent(
53
172
  filePath: string,
173
+ eventName: string,
54
174
  fileReader: (path: string) => Promise<string>
55
175
  ): Promise<boolean> {
56
176
  try {
57
177
  const content = await fileReader(filePath);
58
-
59
- const hasOtelImport = content.includes('@opentelemetry/api');
60
- const hasTracer = /getTracer|startSpan|addEvent/.test(content);
61
- const hasTestOtel = /['"]\.\.?\/.*test\/otel-setup['"]/.test(content);
62
-
63
- return hasOtelImport || hasTracer || hasTestOtel;
178
+ return content.includes(eventName);
64
179
  } catch {
65
180
  return false;
66
181
  }
67
182
  }
68
183
 
69
184
  /**
70
- * Analyze coverage for a single canvas node
71
- *
72
- * @param node - Canvas node to analyze
73
- * @param fileReader - Function to read file contents
74
- * @returns Coverage information for the node
185
+ * Build a map of file -> expected events from canvas nodes
75
186
  */
76
- async function analyzeNodeCoverage(
77
- node: ExtendedCanvasNode,
78
- fileReader: (path: string) => Promise<string>
79
- ): Promise<NodeCoverage> {
80
- const filePaths = extractFilePaths(node);
81
- const instrumentedFiles: string[] = [];
82
- const missingFiles: string[] = [];
83
-
84
- for (const path of filePaths) {
85
- try {
86
- const instrumented = await hasInstrumentation(path, fileReader);
87
- if (instrumented) {
88
- instrumentedFiles.push(path);
187
+ async function buildFileEventMap(
188
+ otelCanvases: DiscoveredCanvasWithContent[]
189
+ ): Promise<Map<string, Set<string>>> {
190
+ const fileEventMap = new Map<string, Set<string>>();
191
+
192
+ for (const canvas of otelCanvases) {
193
+ if (!canvas.content?.nodes || canvas.content.nodes.length === 0) {
194
+ continue;
195
+ }
196
+
197
+ for (const node of canvas.content.nodes) {
198
+ const eventName = getEventName(node);
199
+ if (!eventName) continue;
200
+
201
+ const files = getInstrumentationFiles(node);
202
+ for (const file of files) {
203
+ if (!fileEventMap.has(file)) {
204
+ fileEventMap.set(file, new Set());
205
+ }
206
+ fileEventMap.get(file)!.add(eventName);
89
207
  }
90
- } catch {
91
- // File doesn't exist or can't be read
92
- missingFiles.push(path);
93
208
  }
94
209
  }
95
210
 
211
+ return fileEventMap;
212
+ }
213
+
214
+ /**
215
+ * Analyze instrumentation for a single file
216
+ */
217
+ async function analyzeFileInstrumentation(
218
+ filePath: string,
219
+ expectedEvents: string[],
220
+ fileReader: (path: string) => Promise<string>,
221
+ isImplFile: boolean
222
+ ): Promise<FileInstrumentation> {
223
+ const foundEvents: string[] = [];
224
+
225
+ for (const eventName of expectedEvents) {
226
+ const found = await fileContainsEvent(filePath, eventName, fileReader);
227
+ if (found) {
228
+ foundEvents.push(eventName);
229
+ }
230
+ }
231
+
232
+ const missingEvents = expectedEvents.filter(e => !foundEvents.includes(e));
233
+
96
234
  return {
97
- nodeId: node.id,
98
- filePaths,
99
- hasInstrumentation: instrumentedFiles.length > 0,
100
- instrumentedFiles,
101
- missingFiles
235
+ filePath,
236
+ expectedEvents,
237
+ foundEvents,
238
+ instrumentationCount: foundEvents.length,
239
+ hasInstrumentation: foundEvents.length > 0,
240
+ missingEvents,
241
+ isImplementationFile: isImplFile,
102
242
  };
103
243
  }
104
244
 
@@ -107,7 +247,8 @@ async function analyzeNodeCoverage(
107
247
  *
108
248
  * @param fileTree - FileTree representation of the codebase
109
249
  * @param fileReader - Function to read file contents
110
- * @returns Coverage metrics for all canvas nodes
250
+ * @param config - Configuration for implementation file detection (optional)
251
+ * @returns Coverage metrics based on file instrumentation
111
252
  *
112
253
  * @example
113
254
  * ```typescript
@@ -123,7 +264,8 @@ async function analyzeNodeCoverage(
123
264
  */
124
265
  export async function analyzeCoverage(
125
266
  fileTree: FileTree,
126
- fileReader: (path: string) => Promise<string>
267
+ fileReader: (path: string) => Promise<string>,
268
+ config: ImplementationFileConfig = DEFAULT_IMPLEMENTATION_CONFIG
127
269
  ): Promise<CoverageMetrics> {
128
270
  // Use CanvasDiscovery to find all canvas files
129
271
  const discovery = new CanvasDiscovery();
@@ -133,35 +275,53 @@ export async function analyzeCoverage(
133
275
  });
134
276
 
135
277
  // Filter for .otel.canvas files only
136
- const otelCanvases = result.canvases.filter(c => c.type === 'otel');
278
+ const otelCanvases = result.canvases.filter(c => c.type === 'otel') as DiscoveredCanvasWithContent[];
137
279
 
138
- const allNodeCoverage: NodeCoverage[] = [];
280
+ // Build map of file -> expected events from canvas
281
+ const fileEventMap = await buildFileEventMap(otelCanvases);
139
282
 
140
- for (const canvas of otelCanvases) {
141
- // Cast to DiscoveredCanvasWithContent since we used includeContent: true
142
- const canvasWithContent = canvas as DiscoveredCanvasWithContent;
283
+ // Get all implementation files from the codebase
284
+ const implementationFiles = new Set(getImplementationFiles(fileTree, config));
143
285
 
144
- if (!canvasWithContent.content?.nodes || canvasWithContent.content.nodes.length === 0) {
145
- continue;
146
- }
286
+ // Get all files referenced in canvas (for coverage denominator)
287
+ const referencedFiles = new Set(fileEventMap.keys());
147
288
 
148
- for (const node of canvasWithContent.content.nodes) {
149
- const coverage = await analyzeNodeCoverage(node, fileReader);
150
- allNodeCoverage.push(coverage);
151
- }
289
+ // Combine: we want to check all files referenced in canvas that are also implementation files
290
+ const filesToCheck = new Set(
291
+ [...referencedFiles].filter(f => implementationFiles.has(f))
292
+ );
293
+
294
+ // Analyze each file
295
+ const fileCoverage: FileInstrumentation[] = [];
296
+
297
+ for (const filePath of filesToCheck) {
298
+ const expectedEvents = Array.from(fileEventMap.get(filePath) || []);
299
+ const coverage = await analyzeFileInstrumentation(
300
+ filePath,
301
+ expectedEvents,
302
+ fileReader,
303
+ implementationFiles.has(filePath)
304
+ );
305
+ fileCoverage.push(coverage);
152
306
  }
153
307
 
154
- const nodesWithFiles = allNodeCoverage.filter(n => n.filePaths.length > 0);
155
- const nodesWithInstrumentation = allNodeCoverage.filter(n => n.hasInstrumentation);
308
+ // Calculate metrics
309
+ const filesWithInstrumentation = fileCoverage.filter(f => f.hasInstrumentation).length;
310
+ const totalImplementationFiles = filesToCheck.size;
311
+ const coveragePercentage = totalImplementationFiles > 0
312
+ ? (filesWithInstrumentation / totalImplementationFiles) * 100
313
+ : 0;
314
+
315
+ const totalExpectedEvents = fileCoverage.reduce((sum, f) => sum + f.expectedEvents.length, 0);
316
+ const totalFoundEvents = fileCoverage.reduce((sum, f) => sum + f.foundEvents.length, 0);
156
317
 
157
318
  return {
158
- totalNodes: allNodeCoverage.length,
159
- nodesWithFiles: nodesWithFiles.length,
160
- nodesWithInstrumentation: nodesWithInstrumentation.length,
161
- coveragePercentage: nodesWithFiles.length > 0
162
- ? (nodesWithInstrumentation.length / nodesWithFiles.length) * 100
163
- : 0,
164
- nodeCoverage: allNodeCoverage,
319
+ totalImplementationFiles,
320
+ filesWithInstrumentation,
321
+ coveragePercentage,
322
+ fileCoverage,
165
323
  canvasFiles: otelCanvases.map(c => c.path),
324
+ totalExpectedEvents,
325
+ totalFoundEvents,
166
326
  };
167
327
  }
@@ -346,8 +346,18 @@ export interface PVOtelExtension {
346
346
  */
347
347
  spanMatch?: PVOtelSpanMatch;
348
348
 
349
+ /**
350
+ * Files where this event is instrumented
351
+ *
352
+ * Specifies the exact file paths where this OTEL event should be emitted.
353
+ * Used by coverage tools to validate that events are properly instrumented.
354
+ *
355
+ * @example ["src/app/api/auth/callback/route.ts"]
356
+ */
357
+ files?: string[];
358
+
349
359
  /** Allow additional properties */
350
- [key: string]: JsonValue | PVOtelResourceMatch | PVOtelSpanMatch | undefined;
360
+ [key: string]: JsonValue | PVOtelResourceMatch | PVOtelSpanMatch | string[] | undefined;
351
361
  }
352
362
 
353
363
  /**