@pie-players/pie-players-shared 0.2.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.
- package/dist/config/profile.d.ts +15 -0
- package/dist/config/profile.d.ts.map +1 -0
- package/dist/config/profile.js +27 -0
- package/dist/config/profile.js.map +1 -0
- package/dist/i18n/index.d.ts +13 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +12 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/loader.d.ts +36 -0
- package/dist/i18n/loader.d.ts.map +1 -0
- package/dist/i18n/loader.js +133 -0
- package/dist/i18n/loader.js.map +1 -0
- package/dist/i18n/scripts/check-coverage.d.ts +16 -0
- package/dist/i18n/scripts/check-coverage.d.ts.map +1 -0
- package/dist/i18n/scripts/check-coverage.js +262 -0
- package/dist/i18n/scripts/check-coverage.js.map +1 -0
- package/dist/i18n/scripts/scan-hardcoded.d.ts +16 -0
- package/dist/i18n/scripts/scan-hardcoded.d.ts.map +1 -0
- package/dist/i18n/scripts/scan-hardcoded.js +266 -0
- package/dist/i18n/scripts/scan-hardcoded.js.map +1 -0
- package/dist/i18n/simple-i18n.d.ts +69 -0
- package/dist/i18n/simple-i18n.d.ts.map +1 -0
- package/dist/i18n/simple-i18n.js +199 -0
- package/dist/i18n/simple-i18n.js.map +1 -0
- package/dist/i18n/translations/ar/common.json +36 -0
- package/dist/i18n/translations/ar/toolkit.json +48 -0
- package/dist/i18n/translations/ar/tools.json +109 -0
- package/dist/i18n/translations/en/common.json +36 -0
- package/dist/i18n/translations/en/toolkit.json +48 -0
- package/dist/i18n/translations/en/tools.json +109 -0
- package/dist/i18n/translations/es/common.json +36 -0
- package/dist/i18n/translations/es/toolkit.json +48 -0
- package/dist/i18n/translations/es/tools.json +109 -0
- package/dist/i18n/translations/zh/common.json +36 -0
- package/dist/i18n/translations/zh/toolkit.json +48 -0
- package/dist/i18n/translations/zh/tools.json +109 -0
- package/dist/i18n/types.d.ts +58 -0
- package/dist/i18n/types.d.ts.map +1 -0
- package/dist/i18n/types.js +8 -0
- package/dist/i18n/types.js.map +1 -0
- package/dist/i18n/use-i18n-standalone.svelte.d.ts +87 -0
- package/dist/i18n/use-i18n-standalone.svelte.d.ts.map +1 -0
- package/dist/i18n/use-i18n-standalone.svelte.js +151 -0
- package/dist/i18n/use-i18n-standalone.svelte.js.map +1 -0
- package/dist/i18n/use-i18n.svelte.d.ts +67 -0
- package/dist/i18n/use-i18n.svelte.d.ts.map +1 -0
- package/dist/i18n/use-i18n.svelte.js +144 -0
- package/dist/i18n/use-i18n.svelte.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/instrumentation/index.d.ts +53 -0
- package/dist/instrumentation/index.d.ts.map +1 -0
- package/dist/instrumentation/index.js +53 -0
- package/dist/instrumentation/index.js.map +1 -0
- package/dist/instrumentation/providers/BaseInstrumentationProvider.d.ts +197 -0
- package/dist/instrumentation/providers/BaseInstrumentationProvider.d.ts.map +1 -0
- package/dist/instrumentation/providers/BaseInstrumentationProvider.js +267 -0
- package/dist/instrumentation/providers/BaseInstrumentationProvider.js.map +1 -0
- package/dist/instrumentation/providers/ConsoleInstrumentationProvider.d.ts +106 -0
- package/dist/instrumentation/providers/ConsoleInstrumentationProvider.d.ts.map +1 -0
- package/dist/instrumentation/providers/ConsoleInstrumentationProvider.js +182 -0
- package/dist/instrumentation/providers/ConsoleInstrumentationProvider.js.map +1 -0
- package/dist/instrumentation/providers/DataDogInstrumentationProvider.d.ts +170 -0
- package/dist/instrumentation/providers/DataDogInstrumentationProvider.d.ts.map +1 -0
- package/dist/instrumentation/providers/DataDogInstrumentationProvider.js +183 -0
- package/dist/instrumentation/providers/DataDogInstrumentationProvider.js.map +1 -0
- package/dist/instrumentation/providers/NewRelicInstrumentationProvider.d.ts +86 -0
- package/dist/instrumentation/providers/NewRelicInstrumentationProvider.d.ts.map +1 -0
- package/dist/instrumentation/providers/NewRelicInstrumentationProvider.js +135 -0
- package/dist/instrumentation/providers/NewRelicInstrumentationProvider.js.map +1 -0
- package/dist/instrumentation/providers/index.d.ts +12 -0
- package/dist/instrumentation/providers/index.d.ts.map +1 -0
- package/dist/instrumentation/providers/index.js +12 -0
- package/dist/instrumentation/providers/index.js.map +1 -0
- package/dist/instrumentation/types.d.ts +348 -0
- package/dist/instrumentation/types.d.ts.map +1 -0
- package/dist/instrumentation/types.js +9 -0
- package/dist/instrumentation/types.js.map +1 -0
- package/dist/loader-config.d.ts +76 -0
- package/dist/loader-config.d.ts.map +1 -0
- package/dist/loader-config.js +12 -0
- package/dist/loader-config.js.map +1 -0
- package/dist/loaders/ElementLoader.d.ts +72 -0
- package/dist/loaders/ElementLoader.d.ts.map +1 -0
- package/dist/loaders/ElementLoader.js +52 -0
- package/dist/loaders/ElementLoader.js.map +1 -0
- package/dist/loaders/EsmElementLoader.d.ts +67 -0
- package/dist/loaders/EsmElementLoader.d.ts.map +1 -0
- package/dist/loaders/EsmElementLoader.js +71 -0
- package/dist/loaders/EsmElementLoader.js.map +1 -0
- package/dist/loaders/IifeElementLoader.d.ts +61 -0
- package/dist/loaders/IifeElementLoader.d.ts.map +1 -0
- package/dist/loaders/IifeElementLoader.js +63 -0
- package/dist/loaders/IifeElementLoader.js.map +1 -0
- package/dist/loaders/index.d.ts +28 -0
- package/dist/loaders/index.d.ts.map +1 -0
- package/dist/loaders/index.js +25 -0
- package/dist/loaders/index.js.map +1 -0
- package/dist/object/index.d.ts +12 -0
- package/dist/object/index.d.ts.map +1 -0
- package/dist/object/index.js +40 -0
- package/dist/object/index.js.map +1 -0
- package/dist/pie/asset-handler.d.ts +64 -0
- package/dist/pie/asset-handler.d.ts.map +1 -0
- package/dist/pie/asset-handler.js +238 -0
- package/dist/pie/asset-handler.js.map +1 -0
- package/dist/pie/component-context.d.ts +22 -0
- package/dist/pie/component-context.d.ts.map +1 -0
- package/dist/pie/component-context.js +30 -0
- package/dist/pie/component-context.js.map +1 -0
- package/dist/pie/config.d.ts +39 -0
- package/dist/pie/config.d.ts.map +1 -0
- package/dist/pie/config.js +174 -0
- package/dist/pie/config.js.map +1 -0
- package/dist/pie/configure-initialization.d.ts +35 -0
- package/dist/pie/configure-initialization.d.ts.map +1 -0
- package/dist/pie/configure-initialization.js +141 -0
- package/dist/pie/configure-initialization.js.map +1 -0
- package/dist/pie/esm-loader.d.ts +93 -0
- package/dist/pie/esm-loader.d.ts.map +1 -0
- package/dist/pie/esm-loader.js +308 -0
- package/dist/pie/esm-loader.js.map +1 -0
- package/dist/pie/iife-loader.d.ts +76 -0
- package/dist/pie/iife-loader.d.ts.map +1 -0
- package/dist/pie/iife-loader.js +303 -0
- package/dist/pie/iife-loader.js.map +1 -0
- package/dist/pie/index.d.ts +31 -0
- package/dist/pie/index.d.ts.map +1 -0
- package/dist/pie/index.js +34 -0
- package/dist/pie/index.js.map +1 -0
- package/dist/pie/initialization.d.ts +40 -0
- package/dist/pie/initialization.d.ts.map +1 -0
- package/dist/pie/initialization.js +349 -0
- package/dist/pie/initialization.js.map +1 -0
- package/dist/pie/logger.d.ts +64 -0
- package/dist/pie/logger.d.ts.map +1 -0
- package/dist/pie/logger.js +45 -0
- package/dist/pie/logger.js.map +1 -0
- package/dist/pie/math-rendering.d.ts +69 -0
- package/dist/pie/math-rendering.d.ts.map +1 -0
- package/dist/pie/math-rendering.js +98 -0
- package/dist/pie/math-rendering.js.map +1 -0
- package/dist/pie/overrides.d.ts +43 -0
- package/dist/pie/overrides.d.ts.map +1 -0
- package/dist/pie/overrides.js +146 -0
- package/dist/pie/overrides.js.map +1 -0
- package/dist/pie/player-initializer.d.ts +55 -0
- package/dist/pie/player-initializer.d.ts.map +1 -0
- package/dist/pie/player-initializer.js +123 -0
- package/dist/pie/player-initializer.js.map +1 -0
- package/dist/pie/registry.d.ts +11 -0
- package/dist/pie/registry.d.ts.map +1 -0
- package/dist/pie/registry.js +21 -0
- package/dist/pie/registry.js.map +1 -0
- package/dist/pie/resource-monitor.d.ts +208 -0
- package/dist/pie/resource-monitor.d.ts.map +1 -0
- package/dist/pie/resource-monitor.js +969 -0
- package/dist/pie/resource-monitor.js.map +1 -0
- package/dist/pie/scoring.d.ts +17 -0
- package/dist/pie/scoring.d.ts.map +1 -0
- package/dist/pie/scoring.js +84 -0
- package/dist/pie/scoring.js.map +1 -0
- package/dist/pie/types.d.ts +136 -0
- package/dist/pie/types.d.ts.map +1 -0
- package/dist/pie/types.js +52 -0
- package/dist/pie/types.js.map +1 -0
- package/dist/pie/updates.d.ts +20 -0
- package/dist/pie/updates.d.ts.map +1 -0
- package/dist/pie/updates.js +175 -0
- package/dist/pie/updates.js.map +1 -0
- package/dist/pie/use-resource-monitor.svelte.d.ts +56 -0
- package/dist/pie/use-resource-monitor.svelte.d.ts.map +1 -0
- package/dist/pie/use-resource-monitor.svelte.js +117 -0
- package/dist/pie/use-resource-monitor.svelte.js.map +1 -0
- package/dist/pie/utils.d.ts +44 -0
- package/dist/pie/utils.d.ts.map +1 -0
- package/dist/pie/utils.js +74 -0
- package/dist/pie/utils.js.map +1 -0
- package/dist/types/custom-elements.d.ts +183 -0
- package/dist/types/custom-elements.d.ts.map +1 -0
- package/dist/types/custom-elements.js +8 -0
- package/dist/types/custom-elements.js.map +1 -0
- package/dist/types/index.d.ts +761 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +120 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/search.d.ts +105 -0
- package/dist/types/search.d.ts.map +1 -0
- package/dist/types/search.js +12 -0
- package/dist/types/search.js.map +1 -0
- package/dist/types/transform.d.ts +48 -0
- package/dist/types/transform.d.ts.map +1 -0
- package/dist/types/transform.js +21 -0
- package/dist/types/transform.js.map +1 -0
- package/dist/ui/focus-trap.d.ts +10 -0
- package/dist/ui/focus-trap.d.ts.map +1 -0
- package/dist/ui/focus-trap.js +30 -0
- package/dist/ui/focus-trap.js.map +1 -0
- package/dist/ui/safe-storage.d.ts +3 -0
- package/dist/ui/safe-storage.d.ts.map +1 -0
- package/dist/ui/safe-storage.js +21 -0
- package/dist/ui/safe-storage.js.map +1 -0
- package/package.json +118 -0
- package/src/components/PieItemPlayer.svelte +604 -0
- package/src/components/PiePreviewLayout.svelte +144 -0
- package/src/components/PiePreviewToggle.svelte +110 -0
- package/src/components/PieSpinner.svelte +85 -0
- package/src/components/ToolSettingsButton.svelte +31 -0
- package/src/components/ToolSettingsPanel.svelte +90 -0
- package/src/components/index.ts +6 -0
- package/src/i18n/README.md +223 -0
- package/src/i18n/index.ts +26 -0
- package/src/i18n/loader.ts +156 -0
- package/src/i18n/scripts/check-coverage.ts +345 -0
- package/src/i18n/scripts/scan-hardcoded.ts +342 -0
- package/src/i18n/simple-i18n.ts +236 -0
- package/src/i18n/translations/ar/common.json +36 -0
- package/src/i18n/translations/ar/toolkit.json +48 -0
- package/src/i18n/translations/ar/tools.json +109 -0
- package/src/i18n/translations/en/common.json +36 -0
- package/src/i18n/translations/en/toolkit.json +48 -0
- package/src/i18n/translations/en/tools.json +109 -0
- package/src/i18n/translations/es/common.json +36 -0
- package/src/i18n/translations/es/toolkit.json +48 -0
- package/src/i18n/translations/es/tools.json +109 -0
- package/src/i18n/translations/zh/common.json +36 -0
- package/src/i18n/translations/zh/toolkit.json +48 -0
- package/src/i18n/translations/zh/tools.json +109 -0
- package/src/i18n/types.ts +66 -0
- package/src/i18n/use-i18n-standalone.svelte.ts +184 -0
- package/src/i18n/use-i18n.svelte.ts +163 -0
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Console Instrumentation Provider
|
|
3
|
+
*
|
|
4
|
+
* Development provider that logs instrumentation events to the console.
|
|
5
|
+
* Useful for debugging and testing without requiring external instrumentation services.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const provider = new ConsoleInstrumentationProvider();
|
|
10
|
+
* await provider.initialize({ debug: true });
|
|
11
|
+
*
|
|
12
|
+
* provider.trackError(new Error('Test error'), {
|
|
13
|
+
* component: 'test-component',
|
|
14
|
+
* errorType: 'TestError'
|
|
15
|
+
* });
|
|
16
|
+
* // Outputs: [Instrumentation Error] test-component: TestError
|
|
17
|
+
* // Error: Test error
|
|
18
|
+
* // { component: 'test-component', errorType: 'TestError' }
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
import type { InstrumentationConfig, MetricAttributes } from "../types";
|
|
22
|
+
import { BaseInstrumentationProvider } from "./BaseInstrumentationProvider";
|
|
23
|
+
export interface ConsoleProviderConfig {
|
|
24
|
+
/**
|
|
25
|
+
* Use colored output in console
|
|
26
|
+
*
|
|
27
|
+
* @default true
|
|
28
|
+
*/
|
|
29
|
+
useColors?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Include stack traces with errors
|
|
32
|
+
*
|
|
33
|
+
* @default true
|
|
34
|
+
*/
|
|
35
|
+
includeStackTrace?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Group related logs together
|
|
38
|
+
*
|
|
39
|
+
* @default false
|
|
40
|
+
*/
|
|
41
|
+
useGroups?: boolean;
|
|
42
|
+
}
|
|
43
|
+
export declare class ConsoleInstrumentationProvider extends BaseInstrumentationProvider {
|
|
44
|
+
readonly providerId = "console";
|
|
45
|
+
readonly providerName = "Console Logger";
|
|
46
|
+
private providerConfig;
|
|
47
|
+
constructor(providerConfig?: ConsoleProviderConfig);
|
|
48
|
+
/**
|
|
49
|
+
* Initialize the console provider
|
|
50
|
+
*
|
|
51
|
+
* @param config Optional configuration
|
|
52
|
+
*/
|
|
53
|
+
initialize(config?: InstrumentationConfig): Promise<void>;
|
|
54
|
+
/**
|
|
55
|
+
* Check if provider is ready
|
|
56
|
+
*
|
|
57
|
+
* @returns true if initialized
|
|
58
|
+
*/
|
|
59
|
+
isReady(): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Cleanup provider resources
|
|
62
|
+
*/
|
|
63
|
+
destroy(): void;
|
|
64
|
+
/**
|
|
65
|
+
* Track an error to console
|
|
66
|
+
*
|
|
67
|
+
* @param error The error to track
|
|
68
|
+
* @param attributes Transformed attributes (already filtered and transformed by base class)
|
|
69
|
+
*/
|
|
70
|
+
protected doTrackError(error: Error, attributes: Record<string, any>): void;
|
|
71
|
+
/**
|
|
72
|
+
* Track an event to console
|
|
73
|
+
*
|
|
74
|
+
* @param eventName Name of the event
|
|
75
|
+
* @param attributes Transformed attributes (already filtered and transformed by base class)
|
|
76
|
+
*/
|
|
77
|
+
protected doTrackEvent(eventName: string, attributes: Record<string, any>): void;
|
|
78
|
+
/**
|
|
79
|
+
* Track a metric to console
|
|
80
|
+
*
|
|
81
|
+
* Overrides base class to provide custom formatting.
|
|
82
|
+
*
|
|
83
|
+
* @param metricName Name of the metric
|
|
84
|
+
* @param value Numeric value
|
|
85
|
+
* @param attributes Optional metric attributes
|
|
86
|
+
*/
|
|
87
|
+
trackMetric(metricName: string, value: number, attributes?: MetricAttributes): void;
|
|
88
|
+
/**
|
|
89
|
+
* Set user context
|
|
90
|
+
*
|
|
91
|
+
* Logs user context to console.
|
|
92
|
+
*
|
|
93
|
+
* @param userId User identifier
|
|
94
|
+
* @param attributes Optional user attributes
|
|
95
|
+
*/
|
|
96
|
+
protected doSetUserContext(userId: string, attributes?: Record<string, any>): void;
|
|
97
|
+
/**
|
|
98
|
+
* Set global attributes
|
|
99
|
+
*
|
|
100
|
+
* Logs global attributes to console.
|
|
101
|
+
*
|
|
102
|
+
* @param attributes Attributes to set globally
|
|
103
|
+
*/
|
|
104
|
+
protected doSetGlobalAttributes(attributes: Record<string, any>): void;
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=ConsoleInstrumentationProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConsoleInstrumentationProvider.d.ts","sourceRoot":"","sources":["../../../src/instrumentation/providers/ConsoleInstrumentationProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACxE,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E,MAAM,WAAW,qBAAqB;IACrC;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,qBAAa,8BAA+B,SAAQ,2BAA2B;IAC9E,QAAQ,CAAC,UAAU,aAAa;IAChC,QAAQ,CAAC,YAAY,oBAAoB;IAEzC,OAAO,CAAC,cAAc,CAAwB;gBAElC,cAAc,GAAE,qBAA0B;IAStD;;;;OAIG;IACG,UAAU,CAAC,MAAM,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB/D;;;;OAIG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,OAAO,IAAI,IAAI;IAQf;;;;;OAKG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAgC3E;;;;;OAKG;IACH,SAAS,CAAC,YAAY,CACrB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,IAAI;IAgBP;;;;;;;;OAQG;IACH,WAAW,CACV,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,gBAAgB,GAC3B,IAAI;IA+BP;;;;;;;OAOG;IACH,SAAS,CAAC,gBAAgB,CACzB,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC9B,IAAI;IAUP;;;;;;OAMG;IACH,SAAS,CAAC,qBAAqB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;CAOtE"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Console Instrumentation Provider
|
|
3
|
+
*
|
|
4
|
+
* Development provider that logs instrumentation events to the console.
|
|
5
|
+
* Useful for debugging and testing without requiring external instrumentation services.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const provider = new ConsoleInstrumentationProvider();
|
|
10
|
+
* await provider.initialize({ debug: true });
|
|
11
|
+
*
|
|
12
|
+
* provider.trackError(new Error('Test error'), {
|
|
13
|
+
* component: 'test-component',
|
|
14
|
+
* errorType: 'TestError'
|
|
15
|
+
* });
|
|
16
|
+
* // Outputs: [Instrumentation Error] test-component: TestError
|
|
17
|
+
* // Error: Test error
|
|
18
|
+
* // { component: 'test-component', errorType: 'TestError' }
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
import { BaseInstrumentationProvider } from "./BaseInstrumentationProvider";
|
|
22
|
+
export class ConsoleInstrumentationProvider extends BaseInstrumentationProvider {
|
|
23
|
+
providerId = "console";
|
|
24
|
+
providerName = "Console Logger";
|
|
25
|
+
providerConfig;
|
|
26
|
+
constructor(providerConfig = {}) {
|
|
27
|
+
super();
|
|
28
|
+
this.providerConfig = {
|
|
29
|
+
useColors: providerConfig.useColors !== false,
|
|
30
|
+
includeStackTrace: providerConfig.includeStackTrace !== false,
|
|
31
|
+
useGroups: providerConfig.useGroups === true,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Initialize the console provider
|
|
36
|
+
*
|
|
37
|
+
* @param config Optional configuration
|
|
38
|
+
*/
|
|
39
|
+
async initialize(config) {
|
|
40
|
+
this.config = config;
|
|
41
|
+
this.initialized = true;
|
|
42
|
+
// Merge provider-specific config if provided
|
|
43
|
+
if (config?.providerSettings) {
|
|
44
|
+
this.providerConfig = {
|
|
45
|
+
...this.providerConfig,
|
|
46
|
+
...config.providerSettings,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
console.log("%c[ConsoleProvider] Initialized", this.providerConfig.useColors ? "color: green; font-weight: bold" : "");
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Check if provider is ready
|
|
53
|
+
*
|
|
54
|
+
* @returns true if initialized
|
|
55
|
+
*/
|
|
56
|
+
isReady() {
|
|
57
|
+
return this.initialized;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Cleanup provider resources
|
|
61
|
+
*/
|
|
62
|
+
destroy() {
|
|
63
|
+
this.initialized = false;
|
|
64
|
+
console.log("%c[ConsoleProvider] Destroyed", this.providerConfig.useColors ? "color: gray" : "");
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Track an error to console
|
|
68
|
+
*
|
|
69
|
+
* @param error The error to track
|
|
70
|
+
* @param attributes Transformed attributes (already filtered and transformed by base class)
|
|
71
|
+
*/
|
|
72
|
+
doTrackError(error, attributes) {
|
|
73
|
+
const style = this.providerConfig.useColors
|
|
74
|
+
? "color: red; font-weight: bold"
|
|
75
|
+
: "";
|
|
76
|
+
const timestamp = new Date().toISOString();
|
|
77
|
+
if (this.providerConfig.useGroups) {
|
|
78
|
+
console.groupCollapsed(`%c[Instrumentation Error] ${attributes.component}: ${attributes.errorType}`, style);
|
|
79
|
+
console.error("Error:", error.message);
|
|
80
|
+
if (this.providerConfig.includeStackTrace && error.stack) {
|
|
81
|
+
console.error("Stack:", error.stack);
|
|
82
|
+
}
|
|
83
|
+
console.log("Attributes:", attributes);
|
|
84
|
+
console.log("Timestamp:", timestamp);
|
|
85
|
+
console.groupEnd();
|
|
86
|
+
}
|
|
87
|
+
else {
|
|
88
|
+
console.error(`%c[Instrumentation Error] ${attributes.component}: ${attributes.errorType}`, style);
|
|
89
|
+
console.error("Error:", error.message);
|
|
90
|
+
if (this.providerConfig.includeStackTrace && error.stack) {
|
|
91
|
+
console.error("Stack:", error.stack);
|
|
92
|
+
}
|
|
93
|
+
console.error("Attributes:", attributes);
|
|
94
|
+
console.error("Timestamp:", timestamp);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/**
|
|
98
|
+
* Track an event to console
|
|
99
|
+
*
|
|
100
|
+
* @param eventName Name of the event
|
|
101
|
+
* @param attributes Transformed attributes (already filtered and transformed by base class)
|
|
102
|
+
*/
|
|
103
|
+
doTrackEvent(eventName, attributes) {
|
|
104
|
+
const style = this.providerConfig.useColors ? "color: blue" : "";
|
|
105
|
+
const timestamp = new Date().toISOString();
|
|
106
|
+
if (this.providerConfig.useGroups) {
|
|
107
|
+
console.groupCollapsed(`%c[Instrumentation Event] ${eventName}`, style);
|
|
108
|
+
console.log("Attributes:", attributes);
|
|
109
|
+
console.log("Timestamp:", timestamp);
|
|
110
|
+
console.groupEnd();
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
console.log(`%c[Instrumentation Event] ${eventName}`, style);
|
|
114
|
+
console.log("Attributes:", attributes);
|
|
115
|
+
console.log("Timestamp:", timestamp);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Track a metric to console
|
|
120
|
+
*
|
|
121
|
+
* Overrides base class to provide custom formatting.
|
|
122
|
+
*
|
|
123
|
+
* @param metricName Name of the metric
|
|
124
|
+
* @param value Numeric value
|
|
125
|
+
* @param attributes Optional metric attributes
|
|
126
|
+
*/
|
|
127
|
+
trackMetric(metricName, value, attributes) {
|
|
128
|
+
if (!this.isReady())
|
|
129
|
+
return;
|
|
130
|
+
const style = this.providerConfig.useColors ? "color: green" : "";
|
|
131
|
+
const timestamp = new Date().toISOString();
|
|
132
|
+
const unit = attributes?.unit || "";
|
|
133
|
+
const displayValue = unit ? `${value} ${unit}` : value;
|
|
134
|
+
if (this.providerConfig.useGroups) {
|
|
135
|
+
console.groupCollapsed(`%c[Instrumentation Metric] ${metricName}: ${displayValue}`, style);
|
|
136
|
+
if (attributes) {
|
|
137
|
+
console.log("Attributes:", attributes);
|
|
138
|
+
}
|
|
139
|
+
console.log("Timestamp:", timestamp);
|
|
140
|
+
console.groupEnd();
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
console.log(`%c[Instrumentation Metric] ${metricName}:`, style, displayValue);
|
|
144
|
+
if (attributes) {
|
|
145
|
+
console.log("Attributes:", attributes);
|
|
146
|
+
}
|
|
147
|
+
console.log("Timestamp:", timestamp);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* Set user context
|
|
152
|
+
*
|
|
153
|
+
* Logs user context to console.
|
|
154
|
+
*
|
|
155
|
+
* @param userId User identifier
|
|
156
|
+
* @param attributes Optional user attributes
|
|
157
|
+
*/
|
|
158
|
+
doSetUserContext(userId, attributes) {
|
|
159
|
+
const style = this.providerConfig.useColors
|
|
160
|
+
? "color: purple; font-weight: bold"
|
|
161
|
+
: "";
|
|
162
|
+
console.log(`%c[Instrumentation] Set User Context: ${userId}`, style);
|
|
163
|
+
if (attributes) {
|
|
164
|
+
console.log("User Attributes:", attributes);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Set global attributes
|
|
169
|
+
*
|
|
170
|
+
* Logs global attributes to console.
|
|
171
|
+
*
|
|
172
|
+
* @param attributes Attributes to set globally
|
|
173
|
+
*/
|
|
174
|
+
doSetGlobalAttributes(attributes) {
|
|
175
|
+
const style = this.providerConfig.useColors
|
|
176
|
+
? "color: orange; font-weight: bold"
|
|
177
|
+
: "";
|
|
178
|
+
console.log("%c[Instrumentation] Set Global Attributes", style);
|
|
179
|
+
console.log("Attributes:", attributes);
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
//# sourceMappingURL=ConsoleInstrumentationProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConsoleInstrumentationProvider.js","sourceRoot":"","sources":["../../../src/instrumentation/providers/ConsoleInstrumentationProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DataDog RUM Instrumentation Provider
|
|
3
|
+
*
|
|
4
|
+
* Example alternative provider for DataDog Real User Monitoring.
|
|
5
|
+
* Demonstrates how to integrate with a third-party instrumentation service.
|
|
6
|
+
*
|
|
7
|
+
* NOTE: This provider requires `@datadog/browser-rum` to be installed:
|
|
8
|
+
* ```bash
|
|
9
|
+
* npm install @datadog/browser-rum
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const provider = new DataDogInstrumentationProvider();
|
|
15
|
+
* await provider.initialize({
|
|
16
|
+
* enabled: true,
|
|
17
|
+
* sampleRate: 1.0,
|
|
18
|
+
* providerSettings: {
|
|
19
|
+
* applicationId: 'abc123',
|
|
20
|
+
* clientToken: 'pub_xyz',
|
|
21
|
+
* site: 'datadoghq.com',
|
|
22
|
+
* service: 'pie-players',
|
|
23
|
+
* env: 'production'
|
|
24
|
+
* }
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* provider.trackError(new Error('Something went wrong'), {
|
|
28
|
+
* component: 'my-component',
|
|
29
|
+
* errorType: 'ValidationError'
|
|
30
|
+
* });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
import type { InstrumentationConfig } from "../types";
|
|
34
|
+
import { BaseInstrumentationProvider } from "./BaseInstrumentationProvider";
|
|
35
|
+
/**
|
|
36
|
+
* DataDog-specific configuration
|
|
37
|
+
*/
|
|
38
|
+
export interface DataDogConfig {
|
|
39
|
+
/**
|
|
40
|
+
* DataDog application ID
|
|
41
|
+
*
|
|
42
|
+
* Required. Get this from DataDog RUM application settings.
|
|
43
|
+
*/
|
|
44
|
+
applicationId: string;
|
|
45
|
+
/**
|
|
46
|
+
* DataDog client token
|
|
47
|
+
*
|
|
48
|
+
* Required. Get this from DataDog RUM application settings.
|
|
49
|
+
*/
|
|
50
|
+
clientToken: string;
|
|
51
|
+
/**
|
|
52
|
+
* DataDog site
|
|
53
|
+
*
|
|
54
|
+
* @default 'datadoghq.com'
|
|
55
|
+
* @example 'datadoghq.eu' for EU
|
|
56
|
+
*/
|
|
57
|
+
site?: string;
|
|
58
|
+
/**
|
|
59
|
+
* Service name
|
|
60
|
+
*
|
|
61
|
+
* @default 'pie-players'
|
|
62
|
+
*/
|
|
63
|
+
service?: string;
|
|
64
|
+
/**
|
|
65
|
+
* Environment name
|
|
66
|
+
*
|
|
67
|
+
* @default 'production'
|
|
68
|
+
* @example 'development', 'staging', 'production'
|
|
69
|
+
*/
|
|
70
|
+
env?: string;
|
|
71
|
+
/**
|
|
72
|
+
* Application version
|
|
73
|
+
*
|
|
74
|
+
* @default '1.0.0'
|
|
75
|
+
*/
|
|
76
|
+
version?: string;
|
|
77
|
+
/**
|
|
78
|
+
* Session replay sample rate (0-100)
|
|
79
|
+
*
|
|
80
|
+
* @default 0 (disabled)
|
|
81
|
+
* @example 20 to record 20% of sessions
|
|
82
|
+
*/
|
|
83
|
+
sessionReplaySampleRate?: number;
|
|
84
|
+
/**
|
|
85
|
+
* Track user interactions
|
|
86
|
+
*
|
|
87
|
+
* @default true
|
|
88
|
+
*/
|
|
89
|
+
trackUserInteractions?: boolean;
|
|
90
|
+
/**
|
|
91
|
+
* Track long tasks
|
|
92
|
+
*
|
|
93
|
+
* @default true
|
|
94
|
+
*/
|
|
95
|
+
trackLongTasks?: boolean;
|
|
96
|
+
/**
|
|
97
|
+
* Default privacy level for session replay
|
|
98
|
+
*
|
|
99
|
+
* @default 'mask-user-input'
|
|
100
|
+
*/
|
|
101
|
+
defaultPrivacyLevel?: "allow" | "mask" | "mask-user-input";
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* DataDog RUM Instrumentation Provider
|
|
105
|
+
*
|
|
106
|
+
* Integrates PIE players instrumentation with DataDog Real User Monitoring.
|
|
107
|
+
*/
|
|
108
|
+
export declare class DataDogInstrumentationProvider extends BaseInstrumentationProvider {
|
|
109
|
+
readonly providerId = "datadog";
|
|
110
|
+
readonly providerName = "DataDog RUM";
|
|
111
|
+
private datadogConfig?;
|
|
112
|
+
/**
|
|
113
|
+
* Initialize the DataDog provider
|
|
114
|
+
*
|
|
115
|
+
* Loads the DataDog RUM SDK and initializes it with the provided configuration.
|
|
116
|
+
*
|
|
117
|
+
* @param config Instrumentation configuration with DataDog-specific settings
|
|
118
|
+
* @throws {Error} If DataDog configuration is invalid or SDK fails to load
|
|
119
|
+
*/
|
|
120
|
+
initialize(config?: InstrumentationConfig): Promise<void>;
|
|
121
|
+
/**
|
|
122
|
+
* Check if provider is ready
|
|
123
|
+
*
|
|
124
|
+
* @returns true if DataDog is initialized
|
|
125
|
+
*/
|
|
126
|
+
isReady(): boolean;
|
|
127
|
+
/**
|
|
128
|
+
* Cleanup provider resources
|
|
129
|
+
*
|
|
130
|
+
* Marks provider as uninitialized. DataDog RUM SDK is not explicitly
|
|
131
|
+
* destroyed (no cleanup API available).
|
|
132
|
+
*/
|
|
133
|
+
destroy(): void;
|
|
134
|
+
/**
|
|
135
|
+
* Track an error with DataDog
|
|
136
|
+
*
|
|
137
|
+
* Calls `datadogRum.addError()`
|
|
138
|
+
*
|
|
139
|
+
* @param error The error to track
|
|
140
|
+
* @param attributes Transformed attributes (already filtered and transformed by base class)
|
|
141
|
+
*/
|
|
142
|
+
protected doTrackError(error: Error, attributes: Record<string, any>): void;
|
|
143
|
+
/**
|
|
144
|
+
* Track a custom event/action with DataDog
|
|
145
|
+
*
|
|
146
|
+
* Calls `datadogRum.addAction()`
|
|
147
|
+
*
|
|
148
|
+
* @param eventName Name of the event
|
|
149
|
+
* @param attributes Transformed attributes (already filtered and transformed by base class)
|
|
150
|
+
*/
|
|
151
|
+
protected doTrackEvent(eventName: string, attributes: Record<string, any>): void;
|
|
152
|
+
/**
|
|
153
|
+
* Set user context for session tracking
|
|
154
|
+
*
|
|
155
|
+
* Calls `datadogRum.setUser()`
|
|
156
|
+
*
|
|
157
|
+
* @param userId User identifier
|
|
158
|
+
* @param attributes Optional user attributes
|
|
159
|
+
*/
|
|
160
|
+
protected doSetUserContext(userId: string, attributes?: Record<string, any>): void;
|
|
161
|
+
/**
|
|
162
|
+
* Set global custom attributes
|
|
163
|
+
*
|
|
164
|
+
* Calls `datadogRum.setGlobalContextProperty()` for each attribute.
|
|
165
|
+
*
|
|
166
|
+
* @param attributes Attributes to set globally
|
|
167
|
+
*/
|
|
168
|
+
protected doSetGlobalAttributes(attributes: Record<string, any>): void;
|
|
169
|
+
}
|
|
170
|
+
//# sourceMappingURL=DataDogInstrumentationProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataDogInstrumentationProvider.d.ts","sourceRoot":"","sources":["../../../src/instrumentation/providers/DataDogInstrumentationProvider.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAE5E;;GAEG;AACH,MAAM,WAAW,aAAa;IAC7B;;;;OAIG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;;;OAIG;IACH,WAAW,EAAE,MAAM,CAAC;IAEpB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;;;OAKG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,iBAAiB,CAAC;CAC3D;AAED;;;;GAIG;AACH,qBAAa,8BAA+B,SAAQ,2BAA2B;IAC9E,QAAQ,CAAC,UAAU,aAAa;IAChC,QAAQ,CAAC,YAAY,iBAAiB;IAEtC,OAAO,CAAC,aAAa,CAAC,CAAgB;IAEtC;;;;;;;OAOG;IACG,UAAU,CAAC,MAAM,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC;IAkE/D;;;;OAIG;IACH,OAAO,IAAI,OAAO;IAIlB;;;;;OAKG;IACH,OAAO,IAAI,IAAI;IAOf;;;;;;;OAOG;IACH,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAW3E;;;;;;;OAOG;IACH,SAAS,CAAC,YAAY,CACrB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC7B,IAAI;IAQP;;;;;;;OAOG;IACH,SAAS,CAAC,gBAAgB,CACzB,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAC9B,IAAI;IAWP;;;;;;OAMG;IACH,SAAS,CAAC,qBAAqB,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;CAStE"}
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DataDog RUM Instrumentation Provider
|
|
3
|
+
*
|
|
4
|
+
* Example alternative provider for DataDog Real User Monitoring.
|
|
5
|
+
* Demonstrates how to integrate with a third-party instrumentation service.
|
|
6
|
+
*
|
|
7
|
+
* NOTE: This provider requires `@datadog/browser-rum` to be installed:
|
|
8
|
+
* ```bash
|
|
9
|
+
* npm install @datadog/browser-rum
|
|
10
|
+
* ```
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* const provider = new DataDogInstrumentationProvider();
|
|
15
|
+
* await provider.initialize({
|
|
16
|
+
* enabled: true,
|
|
17
|
+
* sampleRate: 1.0,
|
|
18
|
+
* providerSettings: {
|
|
19
|
+
* applicationId: 'abc123',
|
|
20
|
+
* clientToken: 'pub_xyz',
|
|
21
|
+
* site: 'datadoghq.com',
|
|
22
|
+
* service: 'pie-players',
|
|
23
|
+
* env: 'production'
|
|
24
|
+
* }
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* provider.trackError(new Error('Something went wrong'), {
|
|
28
|
+
* component: 'my-component',
|
|
29
|
+
* errorType: 'ValidationError'
|
|
30
|
+
* });
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
import { BaseInstrumentationProvider } from "./BaseInstrumentationProvider";
|
|
34
|
+
/**
|
|
35
|
+
* DataDog RUM Instrumentation Provider
|
|
36
|
+
*
|
|
37
|
+
* Integrates PIE players instrumentation with DataDog Real User Monitoring.
|
|
38
|
+
*/
|
|
39
|
+
export class DataDogInstrumentationProvider extends BaseInstrumentationProvider {
|
|
40
|
+
providerId = "datadog";
|
|
41
|
+
providerName = "DataDog RUM";
|
|
42
|
+
datadogConfig;
|
|
43
|
+
/**
|
|
44
|
+
* Initialize the DataDog provider
|
|
45
|
+
*
|
|
46
|
+
* Loads the DataDog RUM SDK and initializes it with the provided configuration.
|
|
47
|
+
*
|
|
48
|
+
* @param config Instrumentation configuration with DataDog-specific settings
|
|
49
|
+
* @throws {Error} If DataDog configuration is invalid or SDK fails to load
|
|
50
|
+
*/
|
|
51
|
+
async initialize(config) {
|
|
52
|
+
if (typeof window === "undefined") {
|
|
53
|
+
throw new Error("[DataDogProvider] DataDog RUM requires browser environment");
|
|
54
|
+
}
|
|
55
|
+
this.config = config;
|
|
56
|
+
this.datadogConfig = config?.providerSettings;
|
|
57
|
+
if (!this.datadogConfig?.applicationId ||
|
|
58
|
+
!this.datadogConfig?.clientToken) {
|
|
59
|
+
throw new Error("[DataDogProvider] applicationId and clientToken are required in providerSettings");
|
|
60
|
+
}
|
|
61
|
+
try {
|
|
62
|
+
// Dynamically import DataDog RUM SDK
|
|
63
|
+
// @ts-expect-error - Optional peer dependency
|
|
64
|
+
const { datadogRum } = await import("@datadog/browser-rum");
|
|
65
|
+
// Initialize DataDog RUM
|
|
66
|
+
datadogRum.init({
|
|
67
|
+
applicationId: this.datadogConfig.applicationId,
|
|
68
|
+
clientToken: this.datadogConfig.clientToken,
|
|
69
|
+
site: this.datadogConfig.site || "datadoghq.com",
|
|
70
|
+
service: this.datadogConfig.service || "pie-players",
|
|
71
|
+
env: this.datadogConfig.env || "production",
|
|
72
|
+
version: this.datadogConfig.version || "1.0.0",
|
|
73
|
+
sessionSampleRate: config?.sampleRate !== undefined ? config.sampleRate * 100 : 100,
|
|
74
|
+
sessionReplaySampleRate: this.datadogConfig.sessionReplaySampleRate || 0,
|
|
75
|
+
trackUserInteractions: this.datadogConfig.trackUserInteractions !== false,
|
|
76
|
+
trackResources: true,
|
|
77
|
+
trackLongTasks: this.datadogConfig.trackLongTasks !== false,
|
|
78
|
+
defaultPrivacyLevel: this.datadogConfig.defaultPrivacyLevel || "mask-user-input",
|
|
79
|
+
});
|
|
80
|
+
// Start session replay if configured
|
|
81
|
+
if (this.datadogConfig.sessionReplaySampleRate &&
|
|
82
|
+
this.datadogConfig.sessionReplaySampleRate > 0) {
|
|
83
|
+
datadogRum.startSessionReplayRecording();
|
|
84
|
+
}
|
|
85
|
+
this.initialized = true;
|
|
86
|
+
if (this.config?.debug) {
|
|
87
|
+
console.log("[DataDogProvider] Initialized successfully", this.datadogConfig);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
console.error("[DataDogProvider] Failed to initialize:", error);
|
|
92
|
+
throw error;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Check if provider is ready
|
|
97
|
+
*
|
|
98
|
+
* @returns true if DataDog is initialized
|
|
99
|
+
*/
|
|
100
|
+
isReady() {
|
|
101
|
+
return this.initialized;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Cleanup provider resources
|
|
105
|
+
*
|
|
106
|
+
* Marks provider as uninitialized. DataDog RUM SDK is not explicitly
|
|
107
|
+
* destroyed (no cleanup API available).
|
|
108
|
+
*/
|
|
109
|
+
destroy() {
|
|
110
|
+
this.initialized = false;
|
|
111
|
+
if (this.config?.debug) {
|
|
112
|
+
console.log("[DataDogProvider] Destroyed");
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Track an error with DataDog
|
|
117
|
+
*
|
|
118
|
+
* Calls `datadogRum.addError()`
|
|
119
|
+
*
|
|
120
|
+
* @param error The error to track
|
|
121
|
+
* @param attributes Transformed attributes (already filtered and transformed by base class)
|
|
122
|
+
*/
|
|
123
|
+
doTrackError(error, attributes) {
|
|
124
|
+
// DataDog requires dynamic import
|
|
125
|
+
// @ts-expect-error - Optional peer dependency
|
|
126
|
+
import("@datadog/browser-rum").then(({ datadogRum }) => {
|
|
127
|
+
datadogRum.addError(error, {
|
|
128
|
+
...attributes,
|
|
129
|
+
source: "custom",
|
|
130
|
+
});
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Track a custom event/action with DataDog
|
|
135
|
+
*
|
|
136
|
+
* Calls `datadogRum.addAction()`
|
|
137
|
+
*
|
|
138
|
+
* @param eventName Name of the event
|
|
139
|
+
* @param attributes Transformed attributes (already filtered and transformed by base class)
|
|
140
|
+
*/
|
|
141
|
+
doTrackEvent(eventName, attributes) {
|
|
142
|
+
// DataDog requires dynamic import
|
|
143
|
+
// @ts-expect-error - Optional peer dependency
|
|
144
|
+
import("@datadog/browser-rum").then(({ datadogRum }) => {
|
|
145
|
+
datadogRum.addAction(eventName, attributes);
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Set user context for session tracking
|
|
150
|
+
*
|
|
151
|
+
* Calls `datadogRum.setUser()`
|
|
152
|
+
*
|
|
153
|
+
* @param userId User identifier
|
|
154
|
+
* @param attributes Optional user attributes
|
|
155
|
+
*/
|
|
156
|
+
doSetUserContext(userId, attributes) {
|
|
157
|
+
// DataDog requires dynamic import
|
|
158
|
+
// @ts-expect-error - Optional peer dependency
|
|
159
|
+
import("@datadog/browser-rum").then(({ datadogRum }) => {
|
|
160
|
+
datadogRum.setUser({
|
|
161
|
+
id: userId,
|
|
162
|
+
...attributes,
|
|
163
|
+
});
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Set global custom attributes
|
|
168
|
+
*
|
|
169
|
+
* Calls `datadogRum.setGlobalContextProperty()` for each attribute.
|
|
170
|
+
*
|
|
171
|
+
* @param attributes Attributes to set globally
|
|
172
|
+
*/
|
|
173
|
+
doSetGlobalAttributes(attributes) {
|
|
174
|
+
// DataDog requires dynamic import
|
|
175
|
+
// @ts-expect-error - Optional peer dependency
|
|
176
|
+
import("@datadog/browser-rum").then(({ datadogRum }) => {
|
|
177
|
+
for (const [key, value] of Object.entries(attributes)) {
|
|
178
|
+
datadogRum.setGlobalContextProperty(key, value);
|
|
179
|
+
}
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=DataDogInstrumentationProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataDogInstrumentationProvider.js","sourceRoot":"","sources":["../../../src/instrumentation/providers/DataDogInstrumentationProvider.ts"],"names":[],"mappings":"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"}
|