datadog-frontend-toolkit 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +486 -0
  3. package/dist/cjs/context/ContextManager.js +197 -0
  4. package/dist/cjs/context/ContextManager.js.map +1 -0
  5. package/dist/cjs/core/BootstrapGuard.js +81 -0
  6. package/dist/cjs/core/BootstrapGuard.js.map +1 -0
  7. package/dist/cjs/core/ConfigManager.js +133 -0
  8. package/dist/cjs/core/ConfigManager.js.map +1 -0
  9. package/dist/cjs/core/ObservabilitySDK.js +355 -0
  10. package/dist/cjs/core/ObservabilitySDK.js.map +1 -0
  11. package/dist/cjs/errors/ErrorBoundary.js +187 -0
  12. package/dist/cjs/errors/ErrorBoundary.js.map +1 -0
  13. package/dist/cjs/index.js +110 -0
  14. package/dist/cjs/index.js.map +1 -0
  15. package/dist/cjs/logger/LoggerService.js +256 -0
  16. package/dist/cjs/logger/LoggerService.js.map +1 -0
  17. package/dist/cjs/logs/LogsManager.js +112 -0
  18. package/dist/cjs/logs/LogsManager.js.map +1 -0
  19. package/dist/cjs/network/NetworkInterceptor.js +185 -0
  20. package/dist/cjs/network/NetworkInterceptor.js.map +1 -0
  21. package/dist/cjs/performance/PerformanceMonitor.js +290 -0
  22. package/dist/cjs/performance/PerformanceMonitor.js.map +1 -0
  23. package/dist/cjs/resources/ResourceProvisioner.js +210 -0
  24. package/dist/cjs/resources/ResourceProvisioner.js.map +1 -0
  25. package/dist/cjs/resources/templates/dashboard.js +333 -0
  26. package/dist/cjs/resources/templates/dashboard.js.map +1 -0
  27. package/dist/cjs/resources/templates/monitors.js +120 -0
  28. package/dist/cjs/resources/templates/monitors.js.map +1 -0
  29. package/dist/cjs/resources/templates/slos.js +79 -0
  30. package/dist/cjs/resources/templates/slos.js.map +1 -0
  31. package/dist/cjs/rum/RumManager.js +164 -0
  32. package/dist/cjs/rum/RumManager.js.map +1 -0
  33. package/dist/cjs/types/config.js +13 -0
  34. package/dist/cjs/types/config.js.map +1 -0
  35. package/dist/cjs/types/events.js +26 -0
  36. package/dist/cjs/types/events.js.map +1 -0
  37. package/dist/cjs/types/index.js +20 -0
  38. package/dist/cjs/types/index.js.map +1 -0
  39. package/dist/cjs/types/logger.js +13 -0
  40. package/dist/cjs/types/logger.js.map +1 -0
  41. package/dist/cjs/utils/EventEmitter.js +49 -0
  42. package/dist/cjs/utils/EventEmitter.js.map +1 -0
  43. package/dist/cjs/utils/fingerprint.js +48 -0
  44. package/dist/cjs/utils/fingerprint.js.map +1 -0
  45. package/dist/cjs/utils/retry.js +35 -0
  46. package/dist/cjs/utils/retry.js.map +1 -0
  47. package/dist/cjs/utils/sanitizer.js +106 -0
  48. package/dist/cjs/utils/sanitizer.js.map +1 -0
  49. package/dist/cjs/utils/storage.js +99 -0
  50. package/dist/cjs/utils/storage.js.map +1 -0
  51. package/dist/cli/commands/setup.js +178 -0
  52. package/dist/cli/commands/setup.js.map +1 -0
  53. package/dist/cli/commands/status.js +103 -0
  54. package/dist/cli/commands/status.js.map +1 -0
  55. package/dist/cli/index.js +111 -0
  56. package/dist/cli/index.js.map +1 -0
  57. package/dist/cli/prompt.js +140 -0
  58. package/dist/cli/prompt.js.map +1 -0
  59. package/dist/esm/context/ContextManager.js +193 -0
  60. package/dist/esm/context/ContextManager.js.map +1 -0
  61. package/dist/esm/core/BootstrapGuard.js +77 -0
  62. package/dist/esm/core/BootstrapGuard.js.map +1 -0
  63. package/dist/esm/core/ConfigManager.js +129 -0
  64. package/dist/esm/core/ConfigManager.js.map +1 -0
  65. package/dist/esm/core/ObservabilitySDK.js +351 -0
  66. package/dist/esm/core/ObservabilitySDK.js.map +1 -0
  67. package/dist/esm/errors/ErrorBoundary.js +183 -0
  68. package/dist/esm/errors/ErrorBoundary.js.map +1 -0
  69. package/dist/esm/index.js +87 -0
  70. package/dist/esm/index.js.map +1 -0
  71. package/dist/esm/logger/LoggerService.js +251 -0
  72. package/dist/esm/logger/LoggerService.js.map +1 -0
  73. package/dist/esm/logs/LogsManager.js +108 -0
  74. package/dist/esm/logs/LogsManager.js.map +1 -0
  75. package/dist/esm/network/NetworkInterceptor.js +181 -0
  76. package/dist/esm/network/NetworkInterceptor.js.map +1 -0
  77. package/dist/esm/performance/PerformanceMonitor.js +286 -0
  78. package/dist/esm/performance/PerformanceMonitor.js.map +1 -0
  79. package/dist/esm/resources/ResourceProvisioner.js +206 -0
  80. package/dist/esm/resources/ResourceProvisioner.js.map +1 -0
  81. package/dist/esm/resources/templates/dashboard.js +330 -0
  82. package/dist/esm/resources/templates/dashboard.js.map +1 -0
  83. package/dist/esm/resources/templates/monitors.js +117 -0
  84. package/dist/esm/resources/templates/monitors.js.map +1 -0
  85. package/dist/esm/resources/templates/slos.js +76 -0
  86. package/dist/esm/resources/templates/slos.js.map +1 -0
  87. package/dist/esm/rum/RumManager.js +160 -0
  88. package/dist/esm/rum/RumManager.js.map +1 -0
  89. package/dist/esm/types/config.js +10 -0
  90. package/dist/esm/types/config.js.map +1 -0
  91. package/dist/esm/types/events.js +23 -0
  92. package/dist/esm/types/events.js.map +1 -0
  93. package/dist/esm/types/index.js +4 -0
  94. package/dist/esm/types/index.js.map +1 -0
  95. package/dist/esm/types/logger.js +10 -0
  96. package/dist/esm/types/logger.js.map +1 -0
  97. package/dist/esm/utils/EventEmitter.js +45 -0
  98. package/dist/esm/utils/EventEmitter.js.map +1 -0
  99. package/dist/esm/utils/fingerprint.js +44 -0
  100. package/dist/esm/utils/fingerprint.js.map +1 -0
  101. package/dist/esm/utils/retry.js +32 -0
  102. package/dist/esm/utils/retry.js.map +1 -0
  103. package/dist/esm/utils/sanitizer.js +102 -0
  104. package/dist/esm/utils/sanitizer.js.map +1 -0
  105. package/dist/esm/utils/storage.js +95 -0
  106. package/dist/esm/utils/storage.js.map +1 -0
  107. package/dist/resources/ResourceProvisioner.js +207 -0
  108. package/dist/resources/ResourceProvisioner.js.map +1 -0
  109. package/dist/resources/templates/dashboard.js +333 -0
  110. package/dist/resources/templates/dashboard.js.map +1 -0
  111. package/dist/resources/templates/monitors.js +120 -0
  112. package/dist/resources/templates/monitors.js.map +1 -0
  113. package/dist/resources/templates/slos.js +79 -0
  114. package/dist/resources/templates/slos.js.map +1 -0
  115. package/dist/types/config.js +13 -0
  116. package/dist/types/config.js.map +1 -0
  117. package/dist/types/context/ContextManager.d.ts +63 -0
  118. package/dist/types/context/ContextManager.d.ts.map +1 -0
  119. package/dist/types/core/BootstrapGuard.d.ts +46 -0
  120. package/dist/types/core/BootstrapGuard.d.ts.map +1 -0
  121. package/dist/types/core/ConfigManager.d.ts +13 -0
  122. package/dist/types/core/ConfigManager.d.ts.map +1 -0
  123. package/dist/types/core/ObservabilitySDK.d.ts +141 -0
  124. package/dist/types/core/ObservabilitySDK.d.ts.map +1 -0
  125. package/dist/types/errors/ErrorBoundary.d.ts +55 -0
  126. package/dist/types/errors/ErrorBoundary.d.ts.map +1 -0
  127. package/dist/types/events.js +26 -0
  128. package/dist/types/events.js.map +1 -0
  129. package/dist/types/index.d.ts +75 -0
  130. package/dist/types/index.d.ts.map +1 -0
  131. package/dist/types/index.js +20 -0
  132. package/dist/types/index.js.map +1 -0
  133. package/dist/types/logger/LoggerService.d.ts +104 -0
  134. package/dist/types/logger/LoggerService.d.ts.map +1 -0
  135. package/dist/types/logger.js +13 -0
  136. package/dist/types/logger.js.map +1 -0
  137. package/dist/types/logs/LogsManager.d.ts +41 -0
  138. package/dist/types/logs/LogsManager.d.ts.map +1 -0
  139. package/dist/types/network/NetworkInterceptor.d.ts +35 -0
  140. package/dist/types/network/NetworkInterceptor.d.ts.map +1 -0
  141. package/dist/types/performance/PerformanceMonitor.d.ts +44 -0
  142. package/dist/types/performance/PerformanceMonitor.d.ts.map +1 -0
  143. package/dist/types/resources/ResourceProvisioner.d.ts +46 -0
  144. package/dist/types/resources/ResourceProvisioner.d.ts.map +1 -0
  145. package/dist/types/resources/templates/dashboard.d.ts +6 -0
  146. package/dist/types/resources/templates/dashboard.d.ts.map +1 -0
  147. package/dist/types/resources/templates/monitors.d.ts +11 -0
  148. package/dist/types/resources/templates/monitors.d.ts.map +1 -0
  149. package/dist/types/resources/templates/slos.d.ts +18 -0
  150. package/dist/types/resources/templates/slos.d.ts.map +1 -0
  151. package/dist/types/rum/RumManager.d.ts +70 -0
  152. package/dist/types/rum/RumManager.d.ts.map +1 -0
  153. package/dist/types/types/config.d.ts +271 -0
  154. package/dist/types/types/config.d.ts.map +1 -0
  155. package/dist/types/types/events.d.ts +71 -0
  156. package/dist/types/types/events.d.ts.map +1 -0
  157. package/dist/types/types/index.d.ts +4 -0
  158. package/dist/types/types/index.d.ts.map +1 -0
  159. package/dist/types/types/logger.d.ts +102 -0
  160. package/dist/types/types/logger.d.ts.map +1 -0
  161. package/dist/types/utils/EventEmitter.d.ts +14 -0
  162. package/dist/types/utils/EventEmitter.d.ts.map +1 -0
  163. package/dist/types/utils/fingerprint.d.ts +10 -0
  164. package/dist/types/utils/fingerprint.d.ts.map +1 -0
  165. package/dist/types/utils/retry.d.ts +9 -0
  166. package/dist/types/utils/retry.d.ts.map +1 -0
  167. package/dist/types/utils/sanitizer.d.ts +14 -0
  168. package/dist/types/utils/sanitizer.d.ts.map +1 -0
  169. package/dist/types/utils/storage.d.ts +17 -0
  170. package/dist/types/utils/storage.d.ts.map +1 -0
  171. package/dist/utils/retry.js +35 -0
  172. package/dist/utils/retry.js.map +1 -0
  173. package/package.json +84 -0
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ErrorBoundary = void 0;
4
+ const events_1 = require("../types/events");
5
+ /**
6
+ * Global error boundary that intercepts unhandled errors and promise rejections.
7
+ * Automatically forwards them to Datadog with full context.
8
+ *
9
+ * Features:
10
+ * - Global window.onerror handler
11
+ * - Unhandled promise rejection handler
12
+ * - Error throttling to prevent log flooding
13
+ * - Error pattern filtering
14
+ * - Stack trace enrichment
15
+ *
16
+ * Follows the Chain of Responsibility pattern for error processing.
17
+ */
18
+ class ErrorBoundary {
19
+ config;
20
+ logger;
21
+ rumManager;
22
+ contextManager;
23
+ emitter;
24
+ errorCount = 0;
25
+ errorWindowStart = Date.now();
26
+ installed = false;
27
+ originalOnError = null;
28
+ originalOnUnhandledRejection = null;
29
+ boundErrorHandler;
30
+ boundRejectionHandler;
31
+ constructor(config, logger, rumManager, contextManager, emitter) {
32
+ this.config = config;
33
+ this.logger = logger;
34
+ this.rumManager = rumManager;
35
+ this.contextManager = contextManager;
36
+ this.emitter = emitter;
37
+ this.boundErrorHandler = this.handleError.bind(this);
38
+ this.boundRejectionHandler = this.handleRejection.bind(this);
39
+ }
40
+ /**
41
+ * Installs global error handlers.
42
+ */
43
+ install() {
44
+ if (this.installed || typeof window === 'undefined') {
45
+ return;
46
+ }
47
+ // Preserve existing handlers
48
+ this.originalOnError = window.onerror;
49
+ this.originalOnUnhandledRejection = window.onunhandledrejection;
50
+ // Install our handlers
51
+ window.addEventListener('error', this.boundErrorHandler);
52
+ if (this.config.errorTracking.unhandledRejections) {
53
+ window.addEventListener('unhandledrejection', this.boundRejectionHandler);
54
+ }
55
+ this.installed = true;
56
+ }
57
+ /**
58
+ * Uninstalls global error handlers and restores originals.
59
+ */
60
+ uninstall() {
61
+ if (!this.installed || typeof window === 'undefined') {
62
+ return;
63
+ }
64
+ window.removeEventListener('error', this.boundErrorHandler);
65
+ window.removeEventListener('unhandledrejection', this.boundRejectionHandler);
66
+ // Restore original handlers
67
+ if (this.originalOnError !== undefined) {
68
+ window.onerror = this.originalOnError;
69
+ }
70
+ if (this.originalOnUnhandledRejection !== undefined) {
71
+ window.onunhandledrejection = this.originalOnUnhandledRejection;
72
+ }
73
+ this.installed = false;
74
+ }
75
+ /**
76
+ * Manually capture an error (for framework integrations).
77
+ */
78
+ captureError(error, context) {
79
+ this.processError(error, 'custom', true, context);
80
+ }
81
+ /**
82
+ * Manually capture a message as an error.
83
+ */
84
+ captureMessage(message, context) {
85
+ const error = new Error(message);
86
+ error.name = 'CapturedMessage';
87
+ this.processError(error, 'custom', true, context);
88
+ }
89
+ handleError(event) {
90
+ const error = event.error instanceof Error
91
+ ? event.error
92
+ : new Error(event.message || 'Unknown error');
93
+ if (!(event.error instanceof Error)) {
94
+ error.name = 'UncaughtError';
95
+ }
96
+ const context = {
97
+ filename: event.filename,
98
+ lineno: event.lineno,
99
+ colno: event.colno,
100
+ };
101
+ this.processError(error, 'global', false, context);
102
+ }
103
+ handleRejection(event) {
104
+ const error = event.reason instanceof Error
105
+ ? event.reason
106
+ : new Error(typeof event.reason === 'string'
107
+ ? event.reason
108
+ : 'Unhandled promise rejection');
109
+ if (!(event.reason instanceof Error)) {
110
+ error.name = 'UnhandledRejection';
111
+ }
112
+ this.processError(error, 'promise', false, {
113
+ type: 'unhandled_rejection',
114
+ });
115
+ }
116
+ processError(error, source, handled, context) {
117
+ // Check if error should be ignored
118
+ if (this.shouldIgnore(error)) {
119
+ return;
120
+ }
121
+ // Throttle check
122
+ if (this.isThrottled()) {
123
+ return;
124
+ }
125
+ // Enrich context
126
+ const enrichedContext = {
127
+ ...context,
128
+ error_source: source,
129
+ handled,
130
+ url: typeof window !== 'undefined' ? window.location.href : undefined,
131
+ view: this.contextManager.getView(),
132
+ user_id: this.contextManager.getUser()?.id,
133
+ };
134
+ // Log the error
135
+ this.logger.error(`[${source}] ${error.message}`, error, enrichedContext);
136
+ // Report to RUM
137
+ this.rumManager.addError(error, enrichedContext);
138
+ // Emit event
139
+ const payload = {
140
+ type: events_1.SDKEvent.ERROR_CAPTURED,
141
+ timestamp: Date.now(),
142
+ data: {
143
+ error,
144
+ source,
145
+ context: enrichedContext,
146
+ handled,
147
+ },
148
+ };
149
+ this.emitter.emit(events_1.SDKEvent.ERROR_CAPTURED, payload);
150
+ }
151
+ shouldIgnore(error) {
152
+ const message = error.message || '';
153
+ return this.config.errorTracking.ignorePatterns.some((pattern) => {
154
+ if (typeof pattern === 'string') {
155
+ return message.includes(pattern);
156
+ }
157
+ return pattern.test(message);
158
+ });
159
+ }
160
+ isThrottled() {
161
+ const now = Date.now();
162
+ const windowMs = 60000; // 1 minute window
163
+ // Reset window if expired
164
+ if (now - this.errorWindowStart > windowMs) {
165
+ this.errorCount = 0;
166
+ this.errorWindowStart = now;
167
+ }
168
+ this.errorCount++;
169
+ if (this.errorCount > this.config.errorTracking.maxErrorsPerMinute) {
170
+ if (this.errorCount === this.config.errorTracking.maxErrorsPerMinute + 1) {
171
+ // Log throttle activation once
172
+ this.emitter.emit(events_1.SDKEvent.THROTTLE_ACTIVATED, {
173
+ type: events_1.SDKEvent.THROTTLE_ACTIVATED,
174
+ timestamp: now,
175
+ data: {
176
+ errorsPerMinute: this.errorCount,
177
+ threshold: this.config.errorTracking.maxErrorsPerMinute,
178
+ },
179
+ });
180
+ }
181
+ return true;
182
+ }
183
+ return false;
184
+ }
185
+ }
186
+ exports.ErrorBoundary = ErrorBoundary;
187
+ //# sourceMappingURL=ErrorBoundary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ErrorBoundary.js","sourceRoot":"","sources":["../../../src/errors/ErrorBoundary.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ "use strict";
2
+ /**
3
+ * datadog-frontend-toolkit
4
+ *
5
+ * Enterprise-grade, framework-agnostic frontend observability toolkit for Datadog.
6
+ * Auto-instruments RUM, Logs, Error Tracking, Performance Monitoring,
7
+ * and provisions Dashboards, Monitors & SLOs.
8
+ *
9
+ * @example
10
+ * ```ts
11
+ * import { init } from 'datadog-frontend-toolkit';
12
+ *
13
+ * const observatory = init({
14
+ * clientToken: 'pub-xxx',
15
+ * applicationId: 'xxx-xxx-xxx',
16
+ * service: 'my-frontend-app',
17
+ * env: 'production',
18
+ * version: '1.2.3',
19
+ * });
20
+ *
21
+ * // Use the logger
22
+ * observatory.logger.info('Application started');
23
+ * observatory.logger.error('Something failed', new Error('oops'), { orderId: '123' });
24
+ *
25
+ * // Set user context
26
+ * observatory.setUser({ id: 'user-1', name: 'John', email: 'john@example.com' });
27
+ *
28
+ * // Track custom actions
29
+ * observatory.trackAction('checkout_completed', { total: 99.99 });
30
+ *
31
+ * // SPA view tracking
32
+ * observatory.setView('/dashboard');
33
+ * ```
34
+ *
35
+ * @packageDocumentation
36
+ */
37
+ Object.defineProperty(exports, "__esModule", { value: true });
38
+ exports.SDKEvent = exports.LOG_LEVEL_PRIORITY = exports.LogLevel = exports.EventEmitter = exports.Sanitizer = exports.ResourceProvisioner = exports.ContextManager = exports.NetworkInterceptor = exports.PerformanceMonitor = exports.ErrorBoundary = exports.LogsManager = exports.RumManager = exports.ChildLogger = exports.LoggerService = exports.BootstrapGuard = exports.ConfigManager = exports.ObservabilitySDK = void 0;
39
+ exports.init = init;
40
+ exports.getInstance = getInstance;
41
+ exports.getLogger = getLogger;
42
+ const ObservabilitySDK_1 = require("./core/ObservabilitySDK");
43
+ // ── Main init function ──────────────────────────────────────
44
+ /**
45
+ * Initializes the Observability SDK with the given configuration.
46
+ * Call this once at application bootstrap.
47
+ *
48
+ * @param config - SDK configuration. Only `clientToken`, `applicationId`, `service`, and `env` are required.
49
+ * @returns The SDK instance with logger and all observability features.
50
+ */
51
+ function init(config) {
52
+ return ObservabilitySDK_1.ObservabilitySDK.init(config);
53
+ }
54
+ /**
55
+ * Returns the current SDK instance, or null if not initialized.
56
+ * Useful for accessing the SDK from anywhere without passing references.
57
+ */
58
+ function getInstance() {
59
+ return ObservabilitySDK_1.ObservabilitySDK.getInstance();
60
+ }
61
+ /**
62
+ * Shorthand to get the logger from the current SDK instance.
63
+ * Throws if the SDK has not been initialized.
64
+ */
65
+ function getLogger() {
66
+ const instance = ObservabilitySDK_1.ObservabilitySDK.getInstance();
67
+ if (!instance) {
68
+ throw new Error('[dd-frontend-toolkit] SDK not initialized. Call init() first.');
69
+ }
70
+ return instance.logger;
71
+ }
72
+ // ── Re-exports ──────────────────────────────────────────────
73
+ // Core
74
+ var ObservabilitySDK_2 = require("./core/ObservabilitySDK");
75
+ Object.defineProperty(exports, "ObservabilitySDK", { enumerable: true, get: function () { return ObservabilitySDK_2.ObservabilitySDK; } });
76
+ var ConfigManager_1 = require("./core/ConfigManager");
77
+ Object.defineProperty(exports, "ConfigManager", { enumerable: true, get: function () { return ConfigManager_1.ConfigManager; } });
78
+ var BootstrapGuard_1 = require("./core/BootstrapGuard");
79
+ Object.defineProperty(exports, "BootstrapGuard", { enumerable: true, get: function () { return BootstrapGuard_1.BootstrapGuard; } });
80
+ // Modules
81
+ var LoggerService_1 = require("./logger/LoggerService");
82
+ Object.defineProperty(exports, "LoggerService", { enumerable: true, get: function () { return LoggerService_1.LoggerService; } });
83
+ Object.defineProperty(exports, "ChildLogger", { enumerable: true, get: function () { return LoggerService_1.ChildLogger; } });
84
+ var RumManager_1 = require("./rum/RumManager");
85
+ Object.defineProperty(exports, "RumManager", { enumerable: true, get: function () { return RumManager_1.RumManager; } });
86
+ var LogsManager_1 = require("./logs/LogsManager");
87
+ Object.defineProperty(exports, "LogsManager", { enumerable: true, get: function () { return LogsManager_1.LogsManager; } });
88
+ var ErrorBoundary_1 = require("./errors/ErrorBoundary");
89
+ Object.defineProperty(exports, "ErrorBoundary", { enumerable: true, get: function () { return ErrorBoundary_1.ErrorBoundary; } });
90
+ var PerformanceMonitor_1 = require("./performance/PerformanceMonitor");
91
+ Object.defineProperty(exports, "PerformanceMonitor", { enumerable: true, get: function () { return PerformanceMonitor_1.PerformanceMonitor; } });
92
+ var NetworkInterceptor_1 = require("./network/NetworkInterceptor");
93
+ Object.defineProperty(exports, "NetworkInterceptor", { enumerable: true, get: function () { return NetworkInterceptor_1.NetworkInterceptor; } });
94
+ var ContextManager_1 = require("./context/ContextManager");
95
+ Object.defineProperty(exports, "ContextManager", { enumerable: true, get: function () { return ContextManager_1.ContextManager; } });
96
+ // Resource provisioning (CLI/server-side only)
97
+ var ResourceProvisioner_1 = require("./resources/ResourceProvisioner");
98
+ Object.defineProperty(exports, "ResourceProvisioner", { enumerable: true, get: function () { return ResourceProvisioner_1.ResourceProvisioner; } });
99
+ // Utilities
100
+ var sanitizer_1 = require("./utils/sanitizer");
101
+ Object.defineProperty(exports, "Sanitizer", { enumerable: true, get: function () { return sanitizer_1.Sanitizer; } });
102
+ var EventEmitter_1 = require("./utils/EventEmitter");
103
+ Object.defineProperty(exports, "EventEmitter", { enumerable: true, get: function () { return EventEmitter_1.EventEmitter; } });
104
+ var config_1 = require("./types/config");
105
+ Object.defineProperty(exports, "LogLevel", { enumerable: true, get: function () { return config_1.LogLevel; } });
106
+ var logger_1 = require("./types/logger");
107
+ Object.defineProperty(exports, "LOG_LEVEL_PRIORITY", { enumerable: true, get: function () { return logger_1.LOG_LEVEL_PRIORITY; } });
108
+ var events_1 = require("./types/events");
109
+ Object.defineProperty(exports, "SDKEvent", { enumerable: true, get: function () { return events_1.SDKEvent; } });
110
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;;;AAcH,oBAEC;AAMD,kCAEC;AAMD,8BAQC;AApCD,8DAA2D;AAG3D,+DAA+D;AAE/D;;;;;;GAMG;AACH,SAAgB,IAAI,CAAC,MAA2B;IAC9C,OAAO,mCAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvC,CAAC;AAED;;;GAGG;AACH,SAAgB,WAAW;IACzB,OAAO,mCAAgB,CAAC,WAAW,EAAE,CAAC;AACxC,CAAC;AAED;;;GAGG;AACH,SAAgB,SAAS;IACvB,MAAM,QAAQ,GAAG,mCAAgB,CAAC,WAAW,EAAE,CAAC;IAChD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;IACJ,CAAC;IACD,OAAO,QAAQ,CAAC,MAAM,CAAC;AACzB,CAAC;AAED,+DAA+D;AAE/D,OAAO;AACP,4DAA2D;AAAlD,oHAAA,gBAAgB,OAAA;AACzB,sDAAqD;AAA5C,8GAAA,aAAa,OAAA;AACtB,wDAAuD;AAA9C,gHAAA,cAAc,OAAA;AAEvB,UAAU;AACV,wDAAoE;AAA3D,8GAAA,aAAa,OAAA;AAAE,4GAAA,WAAW,OAAA;AACnC,+CAA8C;AAArC,wGAAA,UAAU,OAAA;AACnB,kDAAiD;AAAxC,0GAAA,WAAW,OAAA;AACpB,wDAAuD;AAA9C,8GAAA,aAAa,OAAA;AACtB,uEAAsE;AAA7D,wHAAA,kBAAkB,OAAA;AAC3B,mEAAkE;AAAzD,wHAAA,kBAAkB,OAAA;AAC3B,2DAA0D;AAAjD,gHAAA,cAAc,OAAA;AAEvB,+CAA+C;AAC/C,uEAAsE;AAA7D,0HAAA,mBAAmB,OAAA;AAE5B,YAAY;AACZ,+CAA8C;AAArC,sGAAA,SAAS,OAAA;AAClB,qDAAoD;AAA3C,4GAAA,YAAY,OAAA;AAuBrB,yCAA0C;AAAjC,kGAAA,QAAQ,OAAA;AAajB,yCAAoD;AAA3C,4GAAA,kBAAkB,OAAA;AAW3B,yCAA0C;AAAjC,kGAAA,QAAQ,OAAA"}
@@ -0,0 +1,256 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ChildLogger = exports.LoggerService = void 0;
4
+ const config_1 = require("../types/config");
5
+ const logger_1 = require("../types/logger");
6
+ const events_1 = require("../types/events");
7
+ const sanitizer_1 = require("../utils/sanitizer");
8
+ const fingerprint_1 = require("../utils/fingerprint");
9
+ /**
10
+ * Enterprise-grade logger service with structured logging, context enrichment,
11
+ * automatic Datadog forwarding, and PII sanitization.
12
+ *
13
+ * Supports all standard log levels: debug, info, warn, error, critical.
14
+ * Warns and errors are automatically forwarded to Datadog.
15
+ *
16
+ * Usage:
17
+ * const logger = observatory.getLogger();
18
+ * logger.info('User signed in', { userId: '123' });
19
+ * logger.error('Payment failed', new Error('timeout'), { orderId: 'abc' });
20
+ */
21
+ class LoggerService {
22
+ logsManager;
23
+ contextManager;
24
+ emitter;
25
+ sanitizer;
26
+ minLevel;
27
+ consoleOutput;
28
+ service;
29
+ env;
30
+ version;
31
+ scopeContext = {};
32
+ constructor(logsManager, contextManager, emitter, options) {
33
+ this.logsManager = logsManager;
34
+ this.contextManager = contextManager;
35
+ this.emitter = emitter;
36
+ this.sanitizer = new sanitizer_1.Sanitizer(options.piiFields);
37
+ this.minLevel = options.minLevel;
38
+ this.consoleOutput = options.consoleOutput;
39
+ this.service = options.service;
40
+ this.env = options.env;
41
+ this.version = options.version;
42
+ }
43
+ /**
44
+ * Creates a child logger with additional scoped context.
45
+ * Useful for module-specific logging without polluting global context.
46
+ */
47
+ child(context) {
48
+ return new ChildLogger(this, context);
49
+ }
50
+ /**
51
+ * Logs a debug message. Not sent to Datadog by default.
52
+ */
53
+ debug(message, context) {
54
+ this.log(config_1.LogLevel.DEBUG, message, undefined, context);
55
+ }
56
+ /**
57
+ * Logs an informational message.
58
+ */
59
+ info(message, context) {
60
+ this.log(config_1.LogLevel.INFO, message, undefined, context);
61
+ }
62
+ warn(message, errorOrContext, context) {
63
+ const { error, ctx } = this.parseErrorArgs(errorOrContext, context);
64
+ this.log(config_1.LogLevel.WARN, message, error, ctx);
65
+ }
66
+ error(message, errorOrContext, context) {
67
+ const { error, ctx } = this.parseErrorArgs(errorOrContext, context);
68
+ this.log(config_1.LogLevel.ERROR, message, error, ctx);
69
+ }
70
+ critical(message, errorOrContext, context) {
71
+ const { error, ctx } = this.parseErrorArgs(errorOrContext, context);
72
+ this.log(config_1.LogLevel.CRITICAL, message, error, ctx);
73
+ }
74
+ /**
75
+ * Measures execution time of an async operation.
76
+ */
77
+ async time(label, fn, context) {
78
+ const start = performance.now();
79
+ try {
80
+ const result = await fn();
81
+ const duration = performance.now() - start;
82
+ this.info(`${label} completed`, { ...context, duration_ms: Math.round(duration) });
83
+ return result;
84
+ }
85
+ catch (err) {
86
+ const duration = performance.now() - start;
87
+ this.error(`${label} failed`, err instanceof Error ? err : new Error(String(err)), {
88
+ ...context,
89
+ duration_ms: Math.round(duration),
90
+ });
91
+ throw err;
92
+ }
93
+ }
94
+ /**
95
+ * Adds persistent context to this logger instance.
96
+ */
97
+ setContext(context) {
98
+ this.scopeContext = { ...this.scopeContext, ...context };
99
+ }
100
+ /**
101
+ * Clears scoped context.
102
+ */
103
+ clearContext() {
104
+ this.scopeContext = {};
105
+ }
106
+ /** @internal Core log method */
107
+ log(level, message, error, context) {
108
+ if (!this.shouldLog(level)) {
109
+ return;
110
+ }
111
+ const serializedError = error ? this.serializeError(error) : undefined;
112
+ const mergedContext = this.sanitizer.sanitize({
113
+ ...this.scopeContext,
114
+ ...context,
115
+ });
116
+ const entry = {
117
+ level,
118
+ message: this.sanitizer.sanitizeString(message),
119
+ timestamp: new Date().toISOString(),
120
+ service: this.service,
121
+ env: this.env,
122
+ version: this.version,
123
+ context: mergedContext,
124
+ error: serializedError,
125
+ url: typeof window !== 'undefined' ? window.location.href : undefined,
126
+ view: this.contextManager.getView(),
127
+ user: this.contextManager.getUser(),
128
+ fingerprint: serializedError?.fingerprint,
129
+ tags: [],
130
+ };
131
+ // Console output
132
+ if (this.consoleOutput) {
133
+ this.writeToConsole(entry);
134
+ }
135
+ // Forward to Datadog (warn, error, critical always; others based on config)
136
+ if (this.shouldForwardToDatadog(level)) {
137
+ this.logsManager.log(level, entry.message, mergedContext, serializedError);
138
+ }
139
+ // Emit event
140
+ this.emitter.emit(events_1.SDKEvent.LOG_SENT, {
141
+ type: events_1.SDKEvent.LOG_SENT,
142
+ timestamp: Date.now(),
143
+ data: { level, message: entry.message },
144
+ });
145
+ }
146
+ shouldLog(level) {
147
+ return logger_1.LOG_LEVEL_PRIORITY[level] >= logger_1.LOG_LEVEL_PRIORITY[this.minLevel];
148
+ }
149
+ shouldForwardToDatadog(level) {
150
+ return logger_1.LOG_LEVEL_PRIORITY[level] >= logger_1.LOG_LEVEL_PRIORITY[config_1.LogLevel.WARN];
151
+ }
152
+ serializeError(error) {
153
+ return {
154
+ name: error.name,
155
+ message: this.sanitizer.sanitizeString(error.message),
156
+ stack: error.stack ? this.sanitizer.sanitizeString(error.stack) : undefined,
157
+ cause: error.cause instanceof Error ? this.serializeError(error.cause) : undefined,
158
+ type: error.constructor.name,
159
+ fingerprint: (0, fingerprint_1.generateErrorFingerprint)(error),
160
+ metadata: this.extractErrorMetadata(error),
161
+ };
162
+ }
163
+ extractErrorMetadata(error) {
164
+ const metadata = {};
165
+ const knownKeys = new Set(['name', 'message', 'stack', 'cause']);
166
+ for (const key of Object.getOwnPropertyNames(error)) {
167
+ if (!knownKeys.has(key)) {
168
+ metadata[key] = error[key];
169
+ }
170
+ }
171
+ return Object.keys(metadata).length > 0 ? metadata : {};
172
+ }
173
+ parseErrorArgs(errorOrContext, context) {
174
+ if (errorOrContext instanceof Error) {
175
+ return { error: errorOrContext, ctx: context };
176
+ }
177
+ return { error: undefined, ctx: errorOrContext };
178
+ }
179
+ writeToConsole(entry) {
180
+ const prefix = `[${entry.service}] [${entry.level.toUpperCase()}]`;
181
+ const args = [prefix, entry.message];
182
+ if (entry.context && Object.keys(entry.context).length > 0) {
183
+ args.push(entry.context);
184
+ }
185
+ if (entry.error) {
186
+ args.push(entry.error);
187
+ }
188
+ switch (entry.level) {
189
+ case config_1.LogLevel.DEBUG:
190
+ // eslint-disable-next-line no-console
191
+ console.debug(...args);
192
+ break;
193
+ case config_1.LogLevel.INFO:
194
+ // eslint-disable-next-line no-console
195
+ console.info(...args);
196
+ break;
197
+ case config_1.LogLevel.WARN:
198
+ // eslint-disable-next-line no-console
199
+ console.warn(...args);
200
+ break;
201
+ case config_1.LogLevel.ERROR:
202
+ case config_1.LogLevel.CRITICAL:
203
+ // eslint-disable-next-line no-console
204
+ console.error(...args);
205
+ break;
206
+ }
207
+ }
208
+ }
209
+ exports.LoggerService = LoggerService;
210
+ /**
211
+ * Child logger with scoped context.
212
+ * Delegates all logging to the parent LoggerService.
213
+ */
214
+ class ChildLogger {
215
+ parent;
216
+ childContext;
217
+ constructor(parent, context) {
218
+ this.parent = parent;
219
+ this.childContext = context;
220
+ }
221
+ debug(message, context) {
222
+ this.parent.log(config_1.LogLevel.DEBUG, message, undefined, { ...this.childContext, ...context });
223
+ }
224
+ info(message, context) {
225
+ this.parent.log(config_1.LogLevel.INFO, message, undefined, { ...this.childContext, ...context });
226
+ }
227
+ warn(message, errorOrContext, context) {
228
+ if (errorOrContext instanceof Error) {
229
+ this.parent.log(config_1.LogLevel.WARN, message, errorOrContext, { ...this.childContext, ...context });
230
+ }
231
+ else {
232
+ this.parent.log(config_1.LogLevel.WARN, message, undefined, { ...this.childContext, ...errorOrContext });
233
+ }
234
+ }
235
+ error(message, errorOrContext, context) {
236
+ if (errorOrContext instanceof Error) {
237
+ this.parent.log(config_1.LogLevel.ERROR, message, errorOrContext, { ...this.childContext, ...context });
238
+ }
239
+ else {
240
+ this.parent.log(config_1.LogLevel.ERROR, message, undefined, { ...this.childContext, ...errorOrContext });
241
+ }
242
+ }
243
+ critical(message, errorOrContext, context) {
244
+ if (errorOrContext instanceof Error) {
245
+ this.parent.log(config_1.LogLevel.CRITICAL, message, errorOrContext, { ...this.childContext, ...context });
246
+ }
247
+ else {
248
+ this.parent.log(config_1.LogLevel.CRITICAL, message, undefined, { ...this.childContext, ...errorOrContext });
249
+ }
250
+ }
251
+ child(context) {
252
+ return new ChildLogger(this.parent, { ...this.childContext, ...context });
253
+ }
254
+ }
255
+ exports.ChildLogger = ChildLogger;
256
+ //# sourceMappingURL=LoggerService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoggerService.js","sourceRoot":"","sources":["../../../src/logger/LoggerService.ts"],"names":[],"mappings":";;;AAAA,4CAA2C;AAE3C,4CAAqD;AAIrD,4CAA2C;AAC3C,kDAA+C;AAC/C,sDAAgE;AAEhE;;;;;;;;;;;GAWG;AACH,MAAa,aAAa;IACP,WAAW,CAAc;IACzB,cAAc,CAAiB;IAC/B,OAAO,CAAe;IACtB,SAAS,CAAY;IACrB,QAAQ,CAAW;IACnB,aAAa,CAAU;IACvB,OAAO,CAAS;IAChB,GAAG,CAAS;IACZ,OAAO,CAAS;IACzB,YAAY,GAA4B,EAAE,CAAC;IAEnD,YACE,WAAwB,EACxB,cAA8B,EAC9B,OAAqB,EACrB,OAOC;QAED,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,qBAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;QAC3C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;IACjC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAgC;QACpC,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAe,EAAE,OAAiC;QACtD,IAAI,CAAC,GAAG,CAAC,iBAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,IAAI,CAAC,OAAe,EAAE,OAAiC;QACrD,IAAI,CAAC,GAAG,CAAC,iBAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;IAOD,IAAI,CACF,OAAe,EACf,cAAgD,EAChD,OAAiC;QAEjC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,GAAG,CAAC,iBAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC/C,CAAC;IAOD,KAAK,CACH,OAAe,EACf,cAAgD,EAChD,OAAiC;QAEjC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,GAAG,CAAC,iBAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAChD,CAAC;IAQD,QAAQ,CACN,OAAe,EACf,cAAgD,EAChD,OAAiC;QAEjC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACpE,IAAI,CAAC,GAAG,CAAC,iBAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,IAAI,CAAI,KAAa,EAAE,EAAoB,EAAE,OAAiC;QAClF,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAChC,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,EAAE,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,YAAY,EAAE,EAAE,GAAG,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACnF,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC;YAC3C,IAAI,CAAC,KAAK,CAAC,GAAG,KAAK,SAAS,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE;gBACjF,GAAG,OAAO;gBACV,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;aAClC,CAAC,CAAC;YACH,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAgC;QACzC,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,OAAO,EAAE,CAAC;IAC3D,CAAC;IAED;;OAEG;IACH,YAAY;QACV,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;IAED,gCAAgC;IAChC,GAAG,CACD,KAAe,EACf,OAAe,EACf,KAAa,EACb,OAAiC;QAEjC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEvE,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;YAC5C,GAAG,IAAI,CAAC,YAAY;YACpB,GAAG,OAAO;SACX,CAA4B,CAAC;QAE9B,MAAM,KAAK,GAAa;YACtB,KAAK;YACL,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC;YAC/C,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,aAAa;YACtB,KAAK,EAAE,eAAe;YACtB,GAAG,EAAE,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;YACrE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;YACnC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,OAAO,EAAyC;YAC1E,WAAW,EAAE,eAAe,EAAE,WAAW;YACzC,IAAI,EAAE,EAAE;SACT,CAAC;QAEF,iBAAiB;QACjB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,4EAA4E;QAC5E,IAAI,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,CAAC;YACvC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;QAC7E,CAAC;QAED,aAAa;QACb,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAQ,CAAC,QAAQ,EAAE;YACnC,IAAI,EAAE,iBAAQ,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE;SACxC,CAAC,CAAC;IACL,CAAC;IAEO,SAAS,CAAC,KAAe;QAC/B,OAAO,2BAAkB,CAAC,KAAK,CAAC,IAAI,2BAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxE,CAAC;IAEO,sBAAsB,CAAC,KAAe;QAC5C,OAAO,2BAAkB,CAAC,KAAK,CAAC,IAAI,2BAAkB,CAAC,iBAAQ,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;IAEO,cAAc,CAAC,KAAY;QACjC,OAAO;YACL,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,OAAO,CAAC;YACrD,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;YAC3E,KAAK,EAAE,KAAK,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS;YAClF,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI;YAC5B,WAAW,EAAE,IAAA,sCAAwB,EAAC,KAAK,CAAC;YAC5C,QAAQ,EAAE,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC;SAC3C,CAAC;IACJ,CAAC;IAEO,oBAAoB,CAAC,KAAY;QACvC,MAAM,QAAQ,GAA4B,EAAE,CAAC;QAC7C,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QAEjE,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;gBACxB,QAAQ,CAAC,GAAG,CAAC,GAAI,KAA4C,CAAC,GAAG,CAAC,CAAC;YACrE,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IAC1D,CAAC;IAEO,cAAc,CACpB,cAAgD,EAChD,OAAiC;QAEjC,IAAI,cAAc,YAAY,KAAK,EAAE,CAAC;YACpC,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC;QACjD,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC;IACnD,CAAC;IAEO,cAAc,CAAC,KAAe;QACpC,MAAM,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,MAAM,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE,GAAG,CAAC;QACnE,MAAM,IAAI,GAAc,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QAEhD,IAAI,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;QAED,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;QAED,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;YACpB,KAAK,iBAAQ,CAAC,KAAK;gBACjB,sCAAsC;gBACtC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;gBACvB,MAAM;YACR,KAAK,iBAAQ,CAAC,IAAI;gBAChB,sCAAsC;gBACtC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;gBACtB,MAAM;YACR,KAAK,iBAAQ,CAAC,IAAI;gBAChB,sCAAsC;gBACtC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;gBACtB,MAAM;YACR,KAAK,iBAAQ,CAAC,KAAK,CAAC;YACpB,KAAK,iBAAQ,CAAC,QAAQ;gBACpB,sCAAsC;gBACtC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC;gBACvB,MAAM;QACV,CAAC;IACH,CAAC;CACF;AAtQD,sCAsQC;AAED;;;GAGG;AACH,MAAa,WAAW;IACL,MAAM,CAAgB;IACtB,YAAY,CAA0B;IAEvD,YAAY,MAAqB,EAAE,OAAgC;QACjE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,OAAiC;QACtD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,OAAiC;QACrD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC3F,CAAC;IAID,IAAI,CACF,OAAe,EACf,cAAgD,EAChD,OAAiC;QAEjC,IAAI,cAAc,YAAY,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QAChG,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;QAClG,CAAC;IACH,CAAC;IAID,KAAK,CACH,OAAe,EACf,cAAgD,EAChD,OAAiC;QAEjC,IAAI,cAAc,YAAY,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QACjG,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;QACnG,CAAC;IACH,CAAC;IAID,QAAQ,CACN,OAAe,EACf,cAAgD,EAChD,OAAiC;QAEjC,IAAI,cAAc,YAAY,KAAK,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,cAAc,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;QACpG,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,iBAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,cAAc,EAAE,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAgC;QACpC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;IAC5E,CAAC;CACF;AA9DD,kCA8DC"}