qnce-engine 1.3.2 → 1.4.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 (166) hide show
  1. package/README.md +134 -2
  2. package/dist/adapters/contracts.d.ts +1 -1
  3. package/dist/adapters/contracts.d.ts.map +1 -1
  4. package/dist/adapters/storage/MockAdapters.d.ts +89 -0
  5. package/dist/adapters/storage/MockAdapters.d.ts.map +1 -0
  6. package/dist/adapters/storage/MockAdapters.js +109 -0
  7. package/dist/adapters/storage/MockAdapters.js.map +1 -0
  8. package/dist/adapters/story/CustomJSONAdapter.d.ts +1 -1
  9. package/dist/adapters/story/CustomJSONAdapter.d.ts.map +1 -1
  10. package/dist/adapters/story/CustomJSONAdapter.js +20 -14
  11. package/dist/adapters/story/CustomJSONAdapter.js.map +1 -1
  12. package/dist/adapters/story/InkAdapter.d.ts +1 -1
  13. package/dist/adapters/story/InkAdapter.d.ts.map +1 -1
  14. package/dist/adapters/story/InkAdapter.js +7 -10
  15. package/dist/adapters/story/InkAdapter.js.map +1 -1
  16. package/dist/adapters/story/TwisonAdapter.d.ts +1 -1
  17. package/dist/adapters/story/TwisonAdapter.d.ts.map +1 -1
  18. package/dist/adapters/story/TwisonAdapter.js +2 -2
  19. package/dist/adapters/story/TwisonAdapter.js.map +1 -1
  20. package/dist/cli/audit.js +1 -0
  21. package/dist/cli/audit.js.map +1 -1
  22. package/dist/cli/import.d.ts.map +1 -1
  23. package/dist/cli/import.js +31 -20
  24. package/dist/cli/import.js.map +1 -1
  25. package/dist/cli/init.js +1 -0
  26. package/dist/cli/init.js.map +1 -1
  27. package/dist/cli/perf.d.ts.map +1 -1
  28. package/dist/cli/perf.js +30 -0
  29. package/dist/cli/perf.js.map +1 -1
  30. package/dist/cli/play.d.ts.map +1 -1
  31. package/dist/cli/play.js +90 -77
  32. package/dist/cli/play.js.map +1 -1
  33. package/dist/engine/condition.d.ts +25 -3
  34. package/dist/engine/condition.d.ts.map +1 -1
  35. package/dist/engine/condition.js +358 -64
  36. package/dist/engine/condition.js.map +1 -1
  37. package/dist/engine/core.d.ts +93 -1
  38. package/dist/engine/core.d.ts.map +1 -1
  39. package/dist/engine/core.js +405 -33
  40. package/dist/engine/core.js.map +1 -1
  41. package/dist/engine/demo-story.d.ts +1 -0
  42. package/dist/engine/demo-story.d.ts.map +1 -1
  43. package/dist/engine/demo-story.js +1 -0
  44. package/dist/engine/demo-story.js.map +1 -1
  45. package/dist/engine/error-factory.d.ts +86 -0
  46. package/dist/engine/error-factory.d.ts.map +1 -0
  47. package/dist/engine/error-factory.js +87 -0
  48. package/dist/engine/error-factory.js.map +1 -0
  49. package/dist/engine/errors.d.ts +3 -0
  50. package/dist/engine/errors.d.ts.map +1 -1
  51. package/dist/engine/errors.js +3 -0
  52. package/dist/engine/errors.js.map +1 -1
  53. package/dist/engine/validation.js +1 -1
  54. package/dist/engine/validation.js.map +1 -1
  55. package/dist/index.d.ts +20 -0
  56. package/dist/index.d.ts.map +1 -1
  57. package/dist/index.js +29 -1
  58. package/dist/index.js.map +1 -1
  59. package/dist/integrations/react.d.ts +20 -3
  60. package/dist/integrations/react.d.ts.map +1 -1
  61. package/dist/integrations/react.js +15 -2
  62. package/dist/integrations/react.js.map +1 -1
  63. package/dist/narrative/branching/models.d.ts +1 -0
  64. package/dist/narrative/branching/models.d.ts.map +1 -1
  65. package/dist/narrative/branching/models.js.map +1 -1
  66. package/dist/performance/AdaptiveControllers.d.ts +51 -0
  67. package/dist/performance/AdaptiveControllers.d.ts.map +1 -0
  68. package/dist/performance/AdaptiveControllers.js +87 -0
  69. package/dist/performance/AdaptiveControllers.js.map +1 -0
  70. package/dist/performance/ContextPool.d.ts +1 -0
  71. package/dist/performance/ContextPool.d.ts.map +1 -0
  72. package/dist/performance/ContextPool.js +2 -0
  73. package/dist/performance/ContextPool.js.map +1 -0
  74. package/dist/performance/HotReloadDelta.d.ts +5 -0
  75. package/dist/performance/HotReloadDelta.d.ts.map +1 -1
  76. package/dist/performance/HotReloadDelta.js +18 -4
  77. package/dist/performance/HotReloadDelta.js.map +1 -1
  78. package/dist/performance/ObjectPool.d.ts.map +1 -1
  79. package/dist/performance/ObjectPool.js +4 -1
  80. package/dist/performance/ObjectPool.js.map +1 -1
  81. package/dist/performance/PerfReporter.d.ts +69 -0
  82. package/dist/performance/PerfReporter.d.ts.map +1 -1
  83. package/dist/performance/PerfReporter.js +314 -28
  84. package/dist/performance/PerfReporter.js.map +1 -1
  85. package/dist/performance/ThreadPool.d.ts +5 -0
  86. package/dist/performance/ThreadPool.d.ts.map +1 -1
  87. package/dist/performance/ThreadPool.js +33 -5
  88. package/dist/performance/ThreadPool.js.map +1 -1
  89. package/dist/persistence/StorageAdapters.d.ts.map +1 -1
  90. package/dist/persistence/StorageAdapters.js +13 -19
  91. package/dist/persistence/StorageAdapters.js.map +1 -1
  92. package/dist/qnce-engine.d.ts +2258 -0
  93. package/dist/quantum/entangler.d.ts +13 -0
  94. package/dist/quantum/entangler.d.ts.map +1 -0
  95. package/dist/quantum/entangler.js +24 -0
  96. package/dist/quantum/entangler.js.map +1 -0
  97. package/dist/quantum/flags.d.ts +24 -0
  98. package/dist/quantum/flags.d.ts.map +1 -0
  99. package/dist/quantum/flags.js +29 -0
  100. package/dist/quantum/flags.js.map +1 -0
  101. package/dist/quantum/integration.d.ts +26 -0
  102. package/dist/quantum/integration.d.ts.map +1 -0
  103. package/dist/quantum/integration.js +38 -0
  104. package/dist/quantum/integration.js.map +1 -0
  105. package/dist/quantum/measurement.d.ts +22 -0
  106. package/dist/quantum/measurement.d.ts.map +1 -0
  107. package/dist/quantum/measurement.js +44 -0
  108. package/dist/quantum/measurement.js.map +1 -0
  109. package/dist/quantum/phase.d.ts +20 -0
  110. package/dist/quantum/phase.d.ts.map +1 -0
  111. package/dist/quantum/phase.js +22 -0
  112. package/dist/quantum/phase.js.map +1 -0
  113. package/dist/quantum/types.d.ts +12 -0
  114. package/dist/quantum/types.d.ts.map +1 -0
  115. package/dist/quantum/types.js +5 -0
  116. package/dist/quantum/types.js.map +1 -0
  117. package/dist/schemas/validateStoryData.d.ts.map +1 -1
  118. package/dist/schemas/validateStoryData.js +8 -2
  119. package/dist/schemas/validateStoryData.js.map +1 -1
  120. package/dist/telemetry/core.d.ts +27 -1
  121. package/dist/telemetry/core.d.ts.map +1 -1
  122. package/dist/telemetry/core.js +63 -8
  123. package/dist/telemetry/core.js.map +1 -1
  124. package/dist/telemetry/types.d.ts +27 -0
  125. package/dist/telemetry/types.d.ts.map +1 -1
  126. package/dist/tsdoc-metadata.json +11 -0
  127. package/dist/ui/__tests__/AutosaveIndicator.test.js +10 -13
  128. package/dist/ui/__tests__/AutosaveIndicator.test.js.map +1 -1
  129. package/dist/ui/__tests__/UndoRedoControls.test.js +7 -9
  130. package/dist/ui/__tests__/UndoRedoControls.test.js.map +1 -1
  131. package/dist/ui/components/AutosaveIndicator.d.ts +1 -0
  132. package/dist/ui/components/AutosaveIndicator.d.ts.map +1 -1
  133. package/dist/ui/components/AutosaveIndicator.js +2 -1
  134. package/dist/ui/components/AutosaveIndicator.js.map +1 -1
  135. package/dist/ui/components/UndoRedoControls.d.ts +1 -0
  136. package/dist/ui/components/UndoRedoControls.d.ts.map +1 -1
  137. package/dist/ui/components/UndoRedoControls.js +1 -0
  138. package/dist/ui/components/UndoRedoControls.js.map +1 -1
  139. package/dist/ui/hooks/useKeyboardShortcuts.d.ts +1 -0
  140. package/dist/ui/hooks/useKeyboardShortcuts.d.ts.map +1 -1
  141. package/dist/ui/hooks/useKeyboardShortcuts.js +17 -5
  142. package/dist/ui/hooks/useKeyboardShortcuts.js.map +1 -1
  143. package/dist/ui/types.d.ts +6 -0
  144. package/dist/ui/types.d.ts.map +1 -1
  145. package/dist/ui/types.js +1 -0
  146. package/dist/ui/types.js.map +1 -1
  147. package/dist/utils/debug-logger.d.ts +20 -0
  148. package/dist/utils/debug-logger.d.ts.map +1 -0
  149. package/dist/utils/debug-logger.js +24 -0
  150. package/dist/utils/debug-logger.js.map +1 -0
  151. package/dist/utils/hot-profiler.d.ts +21 -0
  152. package/dist/utils/hot-profiler.d.ts.map +1 -0
  153. package/dist/utils/hot-profiler.js +36 -0
  154. package/dist/utils/hot-profiler.js.map +1 -0
  155. package/dist/utils/intern.d.ts +11 -0
  156. package/dist/utils/intern.d.ts.map +1 -0
  157. package/dist/utils/intern.js +45 -0
  158. package/dist/utils/intern.js.map +1 -0
  159. package/dist/utils/logger.d.ts +34 -0
  160. package/dist/utils/logger.d.ts.map +1 -0
  161. package/dist/utils/logger.js +115 -0
  162. package/dist/utils/logger.js.map +1 -0
  163. package/docs/PERFORMANCE.md +330 -0
  164. package/examples/fluent-builder-prototype.ts +71 -0
  165. package/examples/quantum-integration-demo.ts +51 -0
  166. package/package.json +25 -9
@@ -1 +1 @@
1
- {"version":3,"file":"ObjectPool.js","sourceRoot":"","sources":["../../src/performance/ObjectPool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ObjectPool.js","sourceRoot":"","sources":["../../src/performance/ObjectPool.ts"],"names":[],"mappings":"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"}
@@ -30,6 +30,39 @@ export interface PerfReporterConfig {
30
30
  enableBackgroundFlush: boolean;
31
31
  maxEventHistory: number;
32
32
  enableConsoleOutput: boolean;
33
+ disableAdaptiveBatch?: boolean;
34
+ smoothingAlpha?: number;
35
+ }
36
+ /**
37
+ * Flush metrics snapshot returned by getPerfFlushMetrics().
38
+ * Designed to be immutable from consumer perspective (frozen object returned).
39
+ */
40
+ /**
41
+ * @beta
42
+ */
43
+ export interface PerfFlushMetrics {
44
+ totalFlushAttempts: number;
45
+ successfulFlushes: number;
46
+ rejectedFlushes: number;
47
+ rejectedFlushesSinceLastSuccess?: number;
48
+ totalBatchesDispatched: number;
49
+ totalEventsDispatched: number;
50
+ lastFlushDurationMs: number;
51
+ avgEventsPerBatch: number;
52
+ p50DispatchLatencyMs: number;
53
+ p95DispatchLatencyMs: number;
54
+ smoothedP95DispatchLatencyMs?: number;
55
+ histogramBuckets: ReadonlyArray<{
56
+ upperBoundMs: number;
57
+ count: number;
58
+ }>;
59
+ rejectionRate: number;
60
+ lastEffectiveBatchSize?: number;
61
+ lastUpdated: number;
62
+ adaptiveEnabled: boolean;
63
+ backoffActive?: boolean;
64
+ consecutiveRejects?: number;
65
+ backoffDelayMs?: number;
33
66
  }
34
67
  /**
35
68
  * PerfReporter - Batched performance event collection and analysis
@@ -39,9 +72,23 @@ export declare class PerfReporter {
39
72
  private events;
40
73
  private config;
41
74
  private flushTimer;
75
+ private nextAllowedFlushTime;
76
+ private consecutiveRejects;
77
+ private backoffDelayMs;
42
78
  private startTime;
43
79
  private activeSpans;
80
+ private sampler;
81
+ private metrics;
82
+ private static readonly MAX_LATENCY_SAMPLES;
44
83
  constructor(config?: Partial<PerfReporterConfig>);
84
+ /**
85
+ * Internal override hook for tests to inject a deterministic thread pool implementation.
86
+ * Not part of public API surface; subject to change without notice.
87
+ */
88
+ private static __threadPoolOverride;
89
+ static __setThreadPoolOverride(override: {
90
+ writeTelemetry: (payload: unknown) => Promise<unknown>;
91
+ } | null): void;
45
92
  /**
46
93
  * Record a performance event
47
94
  */
@@ -102,11 +149,33 @@ export declare class PerfReporter {
102
149
  * Stop automatic flush timer
103
150
  */
104
151
  stopFlushTimer(): void;
152
+ /** Dispose reporter (stop timers) */
153
+ dispose(): void;
105
154
  /**
106
155
  * Generate unique event ID
107
156
  */
108
157
  private generateEventId;
158
+ /** Internal: record dispatch latency after counters were eagerly incremented */
159
+ private recordDispatchSuccessPostLatency;
160
+ /** Internal: record dispatch failure */
161
+ private recordDispatchFailure;
162
+ /** Compute derived metrics (avg, percentiles) */
163
+ private recomputeDerivedMetrics;
164
+ /** Public snapshot accessor (frozen copy) */
165
+ getFlushMetrics(): PerfFlushMetrics;
166
+ /** @internal Debug accessor for tests (not part of public API surface) */
167
+ __getInternalPerfDebug(): {
168
+ consecutiveRejects: number;
169
+ backoffDelayMs: number;
170
+ nextAllowedFlushTime: number;
171
+ lastEffectiveBatchSize: number;
172
+ };
173
+ /** @internal Inject a synthetic dispatch latency sample (test helper) */
174
+ __injectLatencySample(latencyMs: number): void;
109
175
  }
176
+ /**
177
+ * @beta
178
+ */
110
179
  export declare function getPerfReporter(config?: Partial<PerfReporterConfig>): PerfReporter;
111
180
  export declare function shutdownPerfReporter(): void;
112
181
  export declare const perf: {
@@ -1 +1 @@
1
- {"version":3,"file":"PerfReporter.d.ts","sourceRoot":"","sources":["../../src/performance/PerfReporter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PerfReporter.d.ts","sourceRoot":"","sources":["../../src/performance/PerfReporter.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  "use strict";
2
- // S2-T4: Profiler Event Instrumentation
3
- // PerfReporter for batched performance event collection and reporting
4
2
  Object.defineProperty(exports, "__esModule", { value: true });
5
3
  exports.perf = exports.PerfReporter = void 0;
6
4
  exports.getPerfReporter = getPerfReporter;
7
5
  exports.shutdownPerfReporter = shutdownPerfReporter;
6
+ // S2-T4: Profiler Event Instrumentation
7
+ // PerfReporter for batched performance event collection and reporting
8
+ const ThreadPool_1 = require("./ThreadPool");
9
+ const AdaptiveControllers_1 = require("./AdaptiveControllers");
8
10
  /**
9
11
  * PerfReporter - Batched performance event collection and analysis
10
12
  * Designed to work off main thread for minimal performance impact
@@ -13,41 +15,86 @@ class PerfReporter {
13
15
  events = [];
14
16
  config;
15
17
  flushTimer = null;
18
+ // R2: Adaptive backoff state
19
+ nextAllowedFlushTime = 0; // performance.now() timestamp gate for next flush
20
+ consecutiveRejects = 0; // sequential rejected dispatch streak
21
+ backoffDelayMs = 0; // current backoff window applied after last rejection
16
22
  startTime;
17
23
  activeSpans = new Map();
24
+ // Adaptive sampling (@beta) – off by default; env QNCE_ADAPTIVE_SAMPLING enables
25
+ sampler = (0, AdaptiveControllers_1.createDefaultAdaptiveSampler)();
26
+ // Flush metrics state (mutable internal, exposed via snapshot)
27
+ metrics = {
28
+ totalFlushAttempts: 0,
29
+ successfulFlushes: 0,
30
+ rejectedFlushes: 0,
31
+ rejectedFlushesSinceLastSuccess: 0,
32
+ totalBatchesDispatched: 0,
33
+ totalEventsDispatched: 0,
34
+ lastFlushDurationMs: 0,
35
+ avgEventsPerBatch: 0,
36
+ dispatchLatencies: [], // raw latencies for simple percentile computation (bounded)
37
+ histogram: [5, 10, 25, 50, 100, 250, 500, 1000].map(upper => ({ upperBoundMs: upper, count: 0 })),
38
+ p50DispatchLatencyMs: 0,
39
+ p95DispatchLatencyMs: 0,
40
+ smoothedP95DispatchLatencyMs: 0,
41
+ rejectionRate: 0,
42
+ lastEffectiveBatchSize: 0,
43
+ lastUpdated: performance.now()
44
+ };
45
+ // Cap raw latency samples to prevent memory leak (sliding window)
46
+ static MAX_LATENCY_SAMPLES = 128;
47
+ // Placeholder smoother integration (@beta)
48
+ // Future: inject EMA smoother via config; keep optional to avoid affecting existing tests.
18
49
  constructor(config = {}) {
19
50
  this.config = {
20
51
  batchSize: config.batchSize || 100,
21
52
  flushInterval: config.flushInterval || 5000, // 5 seconds
22
53
  enableBackgroundFlush: config.enableBackgroundFlush !== false,
23
54
  maxEventHistory: config.maxEventHistory || 1000,
24
- enableConsoleOutput: config.enableConsoleOutput || false
55
+ enableConsoleOutput: config.enableConsoleOutput || false,
56
+ disableAdaptiveBatch: config.disableAdaptiveBatch ?? (typeof process !== 'undefined' && !!process.env.QNCE_DISABLE_ADAPTIVE_BATCH),
57
+ smoothingAlpha: config.smoothingAlpha ?? 0.2
25
58
  };
26
59
  this.startTime = performance.now();
27
60
  if (this.config.enableBackgroundFlush) {
28
61
  this.startFlushTimer();
29
62
  }
30
63
  }
64
+ /**
65
+ * Internal override hook for tests to inject a deterministic thread pool implementation.
66
+ * Not part of public API surface; subject to change without notice.
67
+ */
68
+ static __threadPoolOverride = null;
69
+ // eslint-disable-next-line @typescript-eslint/naming-convention
70
+ static __setThreadPoolOverride(override) {
71
+ PerfReporter.__threadPoolOverride = override;
72
+ }
31
73
  /**
32
74
  * Record a performance event
33
75
  */
34
76
  record(type, metadata = {}, category = 'engine') {
35
- const event = {
36
- id: this.generateEventId(),
37
- type,
38
- timestamp: performance.now(),
39
- metadata,
40
- category
41
- };
42
- this.events.push(event);
43
- if (this.config.enableConsoleOutput) {
44
- console.log(`[PERF] ${type}:`, metadata);
45
- }
46
- // Auto-flush if batch size reached
47
- if (this.events.length >= this.config.batchSize) {
48
- this.flush();
77
+ // Sampling: always retain error-like categories (none currently explicit; placeholder for future)
78
+ if (!this.sampler.isEnabled() || this.sampler.shouldSample()) {
79
+ const event = {
80
+ id: this.generateEventId(),
81
+ type,
82
+ timestamp: performance.now(),
83
+ metadata,
84
+ category
85
+ };
86
+ this.events.push(event);
87
+ if (this.config.enableConsoleOutput && process.env.NODE_ENV !== 'test') {
88
+ // eslint-disable-next-line no-console
89
+ console.log(`[PERF] ${type}:`, metadata);
90
+ }
91
+ // Auto-flush if batch size reached
92
+ if (this.events.length >= this.config.batchSize) {
93
+ this.flush();
94
+ }
95
+ return event.id;
49
96
  }
50
- return event.id;
97
+ return 'perf-sampled';
51
98
  }
52
99
  /**
53
100
  * Start a performance span (for measuring duration)
@@ -70,7 +117,10 @@ class PerfReporter {
70
117
  endSpan(spanId, additionalMetadata = {}) {
71
118
  const startEvent = this.activeSpans.get(spanId);
72
119
  if (!startEvent) {
73
- console.warn(`[PERF] Span ${spanId} not found`);
120
+ if (process.env.NODE_ENV !== 'production') {
121
+ // eslint-disable-next-line no-console
122
+ console.warn(`[PERF] Span ${spanId} not found`);
123
+ }
74
124
  return;
75
125
  }
76
126
  const endTime = performance.now();
@@ -84,9 +134,12 @@ class PerfReporter {
84
134
  spanEnd: true
85
135
  }
86
136
  };
87
- this.events.push(completeEvent);
137
+ if (!this.sampler.isEnabled() || this.sampler.shouldSample()) {
138
+ this.events.push(completeEvent);
139
+ }
88
140
  this.activeSpans.delete(spanId);
89
- if (this.config.enableConsoleOutput) {
141
+ if (this.config.enableConsoleOutput && process.env.NODE_ENV !== 'test') {
142
+ // eslint-disable-next-line no-console
90
143
  console.log(`[PERF] ${startEvent.type} completed in ${duration.toFixed(2)}ms`);
91
144
  }
92
145
  // Auto-flush if batch size reached
@@ -139,7 +192,7 @@ class PerfReporter {
139
192
  const durationsByType = {};
140
193
  let cacheHits = 0;
141
194
  let cacheMisses = 0;
142
- let hotReloads = [];
195
+ const hotReloads = [];
143
196
  // Analyze events
144
197
  for (const event of this.events) {
145
198
  // Count events by type
@@ -214,17 +267,129 @@ class PerfReporter {
214
267
  * Flush events to background processing
215
268
  */
216
269
  flush() {
270
+ // R2: Honor adaptive backoff; skip flush attempts while in backoff window
271
+ const nowCheck = performance.now();
272
+ if (nowCheck < this.nextAllowedFlushTime) {
273
+ return; // silently skip (no attempt counter increment)
274
+ }
275
+ const flushStart = performance.now();
276
+ this.metrics.totalFlushAttempts++;
217
277
  if (this.events.length === 0)
218
278
  return;
219
- // TODO: Body - integrate with ThreadPool for background processing
220
- // For now, just maintain event history with size limit
279
+ // Offload current batch to background thread pool
280
+ try {
281
+ const pool = PerfReporter.__threadPoolOverride || (0, ThreadPool_1.getThreadPool)();
282
+ const baseBatch = Math.max(1, this.config.batchSize);
283
+ const total = this.events.length;
284
+ // Dynamic batch sizing (R6): scale up when many events & low latency, scale down on high latency or rejection streak
285
+ let effectiveBatchSize = baseBatch;
286
+ if (!this.config.disableAdaptiveBatch) {
287
+ const latP95 = this.metrics.p95DispatchLatencyMs;
288
+ const streak = this.consecutiveRejects;
289
+ if (streak >= 2) {
290
+ effectiveBatchSize = Math.max(10, Math.floor(baseBatch / Math.min(streak, 4))); // shrink under pressure
291
+ }
292
+ else if (total > baseBatch * 4 && latP95 < 50) {
293
+ effectiveBatchSize = Math.min(baseBatch * 4, baseBatch + Math.floor((total / baseBatch) * 0.5) * baseBatch);
294
+ }
295
+ else if (total > baseBatch * 2 && latP95 < 25) {
296
+ effectiveBatchSize = Math.min(baseBatch * 3, baseBatch * 2);
297
+ }
298
+ }
299
+ // Ensure not exceeding total events
300
+ effectiveBatchSize = Math.max(1, Math.min(effectiveBatchSize, total));
301
+ this.metrics.lastEffectiveBatchSize = effectiveBatchSize;
302
+ const shouldCoalesce = total <= effectiveBatchSize * 2;
303
+ if (shouldCoalesce) {
304
+ const batch = this.events.slice();
305
+ const dispatchStart = performance.now();
306
+ // Eagerly count batch dispatch attempt
307
+ this.metrics.totalBatchesDispatched++;
308
+ this.metrics.totalEventsDispatched += batch.length;
309
+ // Mark flush as having at least one dispatched batch (optimistic)
310
+ this.metrics.successfulFlushes = Math.max(this.metrics.successfulFlushes, 1);
311
+ void pool.writeTelemetry({ type: 'perf-events', events: batch })
312
+ .then(() => {
313
+ this.recordDispatchSuccessPostLatency(performance.now() - dispatchStart);
314
+ // Reset backoff streak on first success
315
+ this.consecutiveRejects = 0;
316
+ this.backoffDelayMs = 0;
317
+ })
318
+ .catch(err => {
319
+ const firstFailureLatency = performance.now() - dispatchStart;
320
+ this.recordDispatchFailure(err);
321
+ // Retry-once: only when first consecutive rejection and latency still moderate
322
+ if (this.consecutiveRejects === 1 && this.metrics.p95DispatchLatencyMs < 200) {
323
+ const retryStart = performance.now();
324
+ void pool.writeTelemetry({ type: 'perf-events', events: batch })
325
+ .then(() => {
326
+ this.recordDispatchSuccessPostLatency(performance.now() - retryStart + firstFailureLatency);
327
+ this.consecutiveRejects = 0;
328
+ this.backoffDelayMs = 0;
329
+ })
330
+ .catch(err2 => {
331
+ this.recordDispatchFailure(err2);
332
+ });
333
+ }
334
+ });
335
+ }
336
+ else {
337
+ let start = 0;
338
+ while (start < total) {
339
+ const end = Math.min(start + effectiveBatchSize, total);
340
+ const batch = this.events.slice(start, end);
341
+ // Fire-and-forget background write; errors are swallowed in non-prod
342
+ const dispatchStart = performance.now();
343
+ this.metrics.totalBatchesDispatched++;
344
+ this.metrics.totalEventsDispatched += batch.length;
345
+ this.metrics.successfulFlushes = Math.max(this.metrics.successfulFlushes, 1);
346
+ void pool.writeTelemetry({ type: 'perf-events', events: batch })
347
+ .then(() => {
348
+ this.recordDispatchSuccessPostLatency(performance.now() - dispatchStart);
349
+ this.consecutiveRejects = 0;
350
+ this.backoffDelayMs = 0;
351
+ })
352
+ .catch(err => {
353
+ const firstFailureLatency = performance.now() - dispatchStart;
354
+ this.recordDispatchFailure(err);
355
+ if (this.consecutiveRejects === 1 && this.metrics.p95DispatchLatencyMs < 200) {
356
+ const retryStart = performance.now();
357
+ void pool.writeTelemetry({ type: 'perf-events', events: batch })
358
+ .then(() => {
359
+ this.recordDispatchSuccessPostLatency(performance.now() - retryStart + firstFailureLatency);
360
+ this.consecutiveRejects = 0;
361
+ this.backoffDelayMs = 0;
362
+ })
363
+ .catch(err2 => {
364
+ this.recordDispatchFailure(err2);
365
+ });
366
+ }
367
+ });
368
+ start = end;
369
+ }
370
+ }
371
+ // successfulFlushes is incremented only after at least one dispatch promise resolves
372
+ }
373
+ catch (err) {
374
+ if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV !== 'production') {
375
+ // eslint-disable-next-line no-console
376
+ console.warn('[PERF] flush integration unavailable:', err);
377
+ }
378
+ }
379
+ // Maintain bounded history to cap memory usage
221
380
  if (this.events.length > this.config.maxEventHistory) {
222
- const excess = this.events.length - this.config.maxEventHistory;
223
- this.events.splice(0, excess);
381
+ const startIndex = this.events.length - this.config.maxEventHistory;
382
+ // mutate in place to avoid new large arrays when possible
383
+ this.events.splice(0, startIndex);
224
384
  }
225
- if (this.config.enableConsoleOutput) {
226
- console.log(`[PERF] Flushed ${this.events.length} events`);
385
+ if (this.config.enableConsoleOutput && process.env.NODE_ENV !== 'test') {
386
+ // eslint-disable-next-line no-console
387
+ console.log(`[PERF] Flushed up to ${this.config.batchSize} per batch; retained ${this.events.length} events`);
227
388
  }
389
+ // finalize flush timing
390
+ this.metrics.lastFlushDurationMs = performance.now() - flushStart;
391
+ this.metrics.lastUpdated = performance.now();
392
+ this.recomputeDerivedMetrics();
228
393
  }
229
394
  /**
230
395
  * Start automatic flush timer
@@ -233,6 +398,10 @@ class PerfReporter {
233
398
  this.flushTimer = setInterval(() => {
234
399
  this.flush();
235
400
  }, this.config.flushInterval);
401
+ // Prevent keeping Node process alive
402
+ if (this.flushTimer && typeof this.flushTimer.unref === 'function') {
403
+ this.flushTimer.unref();
404
+ }
236
405
  }
237
406
  /**
238
407
  * Stop automatic flush timer
@@ -243,16 +412,133 @@ class PerfReporter {
243
412
  this.flushTimer = null;
244
413
  }
245
414
  }
415
+ /** Dispose reporter (stop timers) */
416
+ dispose() { this.stopFlushTimer(); }
246
417
  /**
247
418
  * Generate unique event ID
248
419
  */
249
420
  generateEventId() {
250
421
  return `perf-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`;
251
422
  }
423
+ /** Internal: record dispatch latency after counters were eagerly incremented */
424
+ recordDispatchSuccessPostLatency(latencyMs) {
425
+ const samples = this.metrics.dispatchLatencies;
426
+ samples.push(latencyMs);
427
+ if (samples.length > PerfReporter.MAX_LATENCY_SAMPLES) {
428
+ samples.splice(0, samples.length - PerfReporter.MAX_LATENCY_SAMPLES);
429
+ }
430
+ for (const bucket of this.metrics.histogram) {
431
+ if (latencyMs <= bucket.upperBoundMs) {
432
+ bucket.count++;
433
+ break;
434
+ }
435
+ }
436
+ this.metrics.successfulFlushes = Math.max(this.metrics.successfulFlushes, 1);
437
+ // reset rolling rejection counter
438
+ this.metrics.rejectedFlushesSinceLastSuccess = 0;
439
+ }
440
+ /** Internal: record dispatch failure */
441
+ recordDispatchFailure(err) {
442
+ this.metrics.rejectedFlushes++;
443
+ this.metrics.rejectedFlushesSinceLastSuccess++;
444
+ // R2: update adaptive backoff streak + compute new delay (exponential, capped)
445
+ this.consecutiveRejects++;
446
+ const exponent = Math.min(this.consecutiveRejects - 1, 5); // cap growth
447
+ const base = 20; // ms
448
+ this.backoffDelayMs = Math.min(base * Math.pow(2, exponent), 500);
449
+ this.nextAllowedFlushTime = performance.now() + this.backoffDelayMs;
450
+ if (typeof process !== 'undefined' && process.env && process.env.NODE_ENV !== 'production') {
451
+ const suppress = !!process.env.QNCE_SUPPRESS_PERF_WARN; // R1: explicit env flag
452
+ if (!suppress) {
453
+ const message = (err && typeof err === 'object' && 'message' in err) ? err.message : undefined;
454
+ // eslint-disable-next-line no-console
455
+ console.warn('[PERF] background flush failed:', message || err);
456
+ }
457
+ }
458
+ }
459
+ /** Compute derived metrics (avg, percentiles) */
460
+ recomputeDerivedMetrics() {
461
+ const { totalBatchesDispatched, totalEventsDispatched, dispatchLatencies } = this.metrics;
462
+ this.metrics.avgEventsPerBatch = totalBatchesDispatched > 0 ? totalEventsDispatched / totalBatchesDispatched : 0;
463
+ this.metrics.rejectionRate = totalBatchesDispatched > 0 ? this.metrics.rejectedFlushes / totalBatchesDispatched : 0;
464
+ if (dispatchLatencies.length > 0) {
465
+ const sorted = [...dispatchLatencies].sort((a, b) => a - b);
466
+ const p50Index = Math.floor(0.5 * (sorted.length - 1));
467
+ const p95Index = Math.floor(0.95 * (sorted.length - 1));
468
+ this.metrics.p50DispatchLatencyMs = sorted[p50Index];
469
+ this.metrics.p95DispatchLatencyMs = sorted[p95Index];
470
+ // For now simple incremental smoothing (light EMA) until full controller integration
471
+ const prev = this.metrics.smoothedP95DispatchLatencyMs || sorted[p95Index];
472
+ const alpha = Math.min(1, Math.max(0.01, this.config.smoothingAlpha ?? 0.2)); // clamp
473
+ this.metrics.smoothedP95DispatchLatencyMs = prev + alpha * (this.metrics.p95DispatchLatencyMs - prev);
474
+ }
475
+ else {
476
+ this.metrics.p50DispatchLatencyMs = 0;
477
+ this.metrics.p95DispatchLatencyMs = 0;
478
+ this.metrics.smoothedP95DispatchLatencyMs = 0;
479
+ }
480
+ }
481
+ /** Public snapshot accessor (frozen copy) */
482
+ getFlushMetrics() {
483
+ const m = this.metrics;
484
+ const snapshot = Object.freeze({
485
+ totalFlushAttempts: m.totalFlushAttempts,
486
+ successfulFlushes: m.successfulFlushes,
487
+ rejectedFlushes: m.rejectedFlushes,
488
+ rejectedFlushesSinceLastSuccess: m.rejectedFlushesSinceLastSuccess,
489
+ totalBatchesDispatched: m.totalBatchesDispatched,
490
+ totalEventsDispatched: m.totalEventsDispatched,
491
+ lastFlushDurationMs: m.lastFlushDurationMs,
492
+ avgEventsPerBatch: m.avgEventsPerBatch,
493
+ p50DispatchLatencyMs: m.p50DispatchLatencyMs,
494
+ p95DispatchLatencyMs: m.p95DispatchLatencyMs,
495
+ smoothedP95DispatchLatencyMs: m.smoothedP95DispatchLatencyMs,
496
+ histogramBuckets: m.histogram.map(b => ({ upperBoundMs: b.upperBoundMs, count: b.count })),
497
+ rejectionRate: m.rejectionRate,
498
+ lastEffectiveBatchSize: m.lastEffectiveBatchSize,
499
+ lastUpdated: m.lastUpdated,
500
+ adaptiveEnabled: !this.config.disableAdaptiveBatch,
501
+ backoffActive: performance.now() < this.nextAllowedFlushTime,
502
+ consecutiveRejects: this.consecutiveRejects,
503
+ backoffDelayMs: this.backoffDelayMs
504
+ });
505
+ return snapshot;
506
+ }
507
+ /** @internal Debug accessor for tests (not part of public API surface) */
508
+ // eslint-disable-next-line @typescript-eslint/naming-convention
509
+ __getInternalPerfDebug() {
510
+ return {
511
+ consecutiveRejects: this.consecutiveRejects,
512
+ backoffDelayMs: this.backoffDelayMs,
513
+ nextAllowedFlushTime: this.nextAllowedFlushTime,
514
+ lastEffectiveBatchSize: this.metrics.lastEffectiveBatchSize
515
+ };
516
+ }
517
+ /** @internal Inject a synthetic dispatch latency sample (test helper) */
518
+ // eslint-disable-next-line @typescript-eslint/naming-convention
519
+ __injectLatencySample(latencyMs) {
520
+ if (latencyMs < 0)
521
+ return;
522
+ const samples = this.metrics.dispatchLatencies;
523
+ samples.push(latencyMs);
524
+ if (samples.length > PerfReporter.MAX_LATENCY_SAMPLES) {
525
+ samples.splice(0, samples.length - PerfReporter.MAX_LATENCY_SAMPLES);
526
+ }
527
+ for (const bucket of this.metrics.histogram) {
528
+ if (latencyMs <= bucket.upperBoundMs) {
529
+ bucket.count++;
530
+ break;
531
+ }
532
+ }
533
+ this.recomputeDerivedMetrics();
534
+ }
252
535
  }
253
536
  exports.PerfReporter = PerfReporter;
254
537
  // Singleton instance for global access
255
538
  let globalPerfReporter = null;
539
+ /**
540
+ * @beta
541
+ */
256
542
  function getPerfReporter(config) {
257
543
  if (!globalPerfReporter) {
258
544
  globalPerfReporter = new PerfReporter(config);
@@ -1 +1 @@
1
- {"version":3,"file":"PerfReporter.js","sourceRoot":"","sources":["../../src/performance/PerfReporter.ts"],"names":[],"mappings":";AAAA,wCAAwC;AACxC,sEAAsE;;;AA6UtE,0CAKC;AAED,oDAMC;AApTD;;;GAGG;AACH,MAAa,YAAY;IACf,MAAM,GAAgB,EAAE,CAAC;IACzB,MAAM,CAAqB;IAC3B,UAAU,GAAQ,IAAI,CAAC;IACvB,SAAS,CAAS;IAClB,WAAW,GAA2B,IAAI,GAAG,EAAE,CAAC;IAExD,YAAY,SAAsC,EAAE;QAClD,IAAI,CAAC,MAAM,GAAG;YACZ,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,GAAG;YAClC,aAAa,EAAE,MAAM,CAAC,aAAa,IAAI,IAAI,EAAE,YAAY;YACzD,qBAAqB,EAAE,MAAM,CAAC,qBAAqB,KAAK,KAAK;YAC7D,eAAe,EAAE,MAAM,CAAC,eAAe,IAAI,IAAI;YAC/C,mBAAmB,EAAE,MAAM,CAAC,mBAAmB,IAAI,KAAK;SACzD,CAAC;QAEF,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEnC,IAAI,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YACtC,IAAI,CAAC,eAAe,EAAE,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACH,MAAM,CACJ,IAAuB,EACvB,WAAoC,EAAE,EACtC,WAAkC,QAAQ;QAE1C,MAAM,KAAK,GAAc;YACvB,EAAE,EAAE,IAAI,CAAC,eAAe,EAAE;YAC1B,IAAI;YACJ,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE;YAC5B,QAAQ;YACR,QAAQ;SACT,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAExB,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC3C,CAAC;QAED,mCAAmC;QACnC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAChD,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;QAED,OAAO,KAAK,CAAC,EAAE,CAAC;IAClB,CAAC;IAED;;OAEG;IACH,SAAS,CACP,IAAuB,EACvB,WAAoC,EAAE,EACtC,WAAkC,QAAQ;QAE1C,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;QACtC,MAAM,KAAK,GAAc;YACvB,EAAE,EAAE,MAAM;YACV,IAAI;YACJ,SAAS,EAAE,WAAW,CAAC,GAAG,EAAE;YAC5B,QAAQ,EAAE,EAAE,GAAG,QAAQ,EAAE,SAAS,EAAE,IAAI,EAAE;YAC1C,QAAQ;SACT,CAAC;QAEF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACpC,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,MAAc,EAAE,qBAA8C,EAAE;QACtE,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,CAAC,IAAI,CAAC,eAAe,MAAM,YAAY,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,OAAO,GAAG,UAAU,CAAC,SAAS,CAAC;QAEhD,MAAM,aAAa,GAAc;YAC/B,GAAG,UAAU;YACb,QAAQ;YACR,QAAQ,EAAE;gBACR,GAAG,UAAU,CAAC,QAAQ;gBACtB,GAAG,kBAAkB;gBACrB,OAAO,EAAE,IAAI;aACd;SACF,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAChC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEhC,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,UAAU,UAAU,CAAC,IAAI,iBAAiB,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjF,CAAC;QAED,mCAAmC;QACnC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;YAChD,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,MAAc,EAAE,WAAoC,EAAE;QACpE,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,EAAE,QAAQ,CAAC,CAAC;IACzE,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,MAAc,EAAE,UAAkB,EAAE,WAAoC,EAAE;QAC3F,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;IACpD,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,QAAgB,EAAE,WAAoC,EAAE;QACrE,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;IACtE,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,QAAgB,EAAE,WAAoC,EAAE;QACtE,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,QAAQ,EAAE,GAAG,QAAQ,EAAE,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACH,oBAAoB,CAAC,SAAiB,EAAE,WAAoC,EAAE;QAC5E,OAAO,IAAI,CAAC,SAAS,CAAC,kBAAkB,EAAE,EAAE,SAAS,EAAE,GAAG,QAAQ,EAAE,EAAE,YAAY,CAAC,CAAC;IACtF,CAAC;IAED;;OAEG;IACH,kBAAkB,CAAC,MAAc,EAAE,OAAgB,EAAE,WAAoC,EAAE;QACzF,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,GAAG,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;IAED;;OAEG;IACH,OAAO;QACL,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAC9B,MAAM,YAAY,GAA2B,EAAE,CAAC;QAChD,MAAM,eAAe,GAA6B,EAAE,CAAC;QAErD,IAAI,SAAS,GAAG,CAAC,CAAC;QAClB,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,IAAI,UAAU,GAAa,EAAE,CAAC;QAE9B,iBAAiB;QACjB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChC,uBAAuB;YACvB,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YAE/D,oBAAoB;YACpB,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACjC,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;oBACjC,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;gBACnC,CAAC;gBACD,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YACnD,CAAC;YAED,gBAAgB;YAChB,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW;gBAAE,SAAS,EAAE,CAAC;YAC5C,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY;gBAAE,WAAW,EAAE,CAAC;YAE/C,qBAAqB;YACrB,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,IAAI,KAAK,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;gBACtE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,iCAAiC;QACjC,MAAM,YAAY,GAA2B,EAAE,CAAC;QAChD,MAAM,YAAY,GAA2B,EAAE,CAAC;QAChD,MAAM,YAAY,GAA2B,EAAE,CAAC;QAEhD,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;YAChE,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,YAAY,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC;gBACjF,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;gBAC5C,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;YAC9C,CAAC;QACH,CAAC;QAED,iBAAiB;QACjB,MAAM,gBAAgB,GAAG,SAAS,GAAG,WAAW,CAAC;QACjD,MAAM,YAAY,GAAG,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,gBAAgB,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAErF,yBAAyB;QACzB,MAAM,oBAAoB,GAAG;YAC3B,OAAO,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAClG,OAAO,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,YAAY,EAAE,UAAU,CAAC,MAAM;SAChC,CAAC;QAEF,OAAO;YACL,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;YAC/B,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,YAAY;YACZ,oBAAoB;YACpB,SAAS,EAAE;gBACT,KAAK,EAAE,IAAI,CAAC,SAAS;gBACrB,GAAG,EAAE,GAAG;gBACR,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC,SAAS;aAC/B;SACF,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,SAAS;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAErC,mEAAmE;QACnE,uDAAuD;QACvD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC;YAChE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC;YACpC,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,CAAC,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,IAAI,CAAC,UAAU,GAAG,WAAW,CAAC,GAAG,EAAE;YACjC,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,cAAc;QACZ,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;OAEG;IACK,eAAe;QACrB,OAAO,QAAQ,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;IACzE,CAAC;CACF;AA9RD,oCA8RC;AAED,uCAAuC;AACvC,IAAI,kBAAkB,GAAwB,IAAI,CAAC;AAEnD,SAAgB,eAAe,CAAC,MAAoC;IAClE,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,kBAAkB,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAED,SAAgB,oBAAoB;IAClC,IAAI,kBAAkB,EAAE,CAAC;QACvB,kBAAkB,CAAC,cAAc,EAAE,CAAC;QACpC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAC3B,kBAAkB,GAAG,IAAI,CAAC;IAC5B,CAAC;AACH,CAAC;AAED,8CAA8C;AACjC,QAAA,IAAI,GAAG;IAClB,SAAS,EAAE,CAAC,MAAc,EAAE,QAAkC,EAAE,EAAE,CAChE,eAAe,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,QAAQ,CAAC;IAErD,YAAY,EAAE,CAAC,MAAc,EAAE,UAAkB,EAAE,QAAkC,EAAE,EAAE,CACvF,eAAe,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,CAAC;IAEpE,QAAQ,EAAE,CAAC,QAAgB,EAAE,QAAkC,EAAE,EAAE,CACjE,eAAe,EAAE,CAAC,cAAc,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAEtD,SAAS,EAAE,CAAC,QAAgB,EAAE,QAAkC,EAAE,EAAE,CAClE,eAAe,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAEvD,cAAc,EAAE,CAAC,SAAiB,EAAE,QAAkC,EAAE,EAAE,CACxE,eAAe,EAAE,CAAC,oBAAoB,CAAC,SAAS,EAAE,QAAQ,CAAC;IAE7D,YAAY,EAAE,CAAC,MAAc,EAAE,OAAgB,EAAE,QAAkC,EAAE,EAAE,CACrF,eAAe,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC;IAEjE,MAAM,EAAE,CAAC,IAAuB,EAAE,QAAkC,EAAE,QAAgC,EAAE,EAAE,CACxG,eAAe,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC;IAEpD,OAAO,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE;IAE1C,KAAK,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,KAAK,EAAE;CACvC,CAAC"}
1
+ {"version":3,"file":"PerfReporter.js","sourceRoot":"","sources":["../../src/performance/PerfReporter.ts"],"names":[],"mappings":"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"}