@equinor/fusion-framework-module-analytics 3.0.0 → 3.0.2

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 (75) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/dist/esm/AnalyticsConfigurator.js +11 -2
  3. package/dist/esm/AnalyticsConfigurator.js.map +1 -1
  4. package/dist/esm/AnalyticsProvider.js +12 -2
  5. package/dist/esm/AnalyticsProvider.js.map +1 -1
  6. package/dist/esm/adapters/ConsoleAnalyticsAdapter.js +7 -1
  7. package/dist/esm/adapters/ConsoleAnalyticsAdapter.js.map +1 -1
  8. package/dist/esm/adapters/FusionAnalyticsAdapter.js +7 -2
  9. package/dist/esm/adapters/FusionAnalyticsAdapter.js.map +1 -1
  10. package/dist/esm/collectors/AppLoadedCollector.js +11 -3
  11. package/dist/esm/collectors/AppLoadedCollector.js.map +1 -1
  12. package/dist/esm/collectors/AppSelectedCollector.js +11 -2
  13. package/dist/esm/collectors/AppSelectedCollector.js.map +1 -1
  14. package/dist/esm/collectors/ContextSelectedCollector.js +11 -2
  15. package/dist/esm/collectors/ContextSelectedCollector.js.map +1 -1
  16. package/dist/esm/collectors/{BaseCollector.js → create-schema.js} +4 -1
  17. package/dist/esm/collectors/create-schema.js.map +1 -0
  18. package/dist/esm/collectors/utils/app-key-schema.js +14 -0
  19. package/dist/esm/collectors/utils/app-key-schema.js.map +1 -0
  20. package/dist/esm/collectors/utils/app-schema.js +19 -0
  21. package/dist/esm/collectors/utils/app-schema.js.map +1 -0
  22. package/dist/esm/collectors/utils/context-schema.js +19 -0
  23. package/dist/esm/collectors/utils/context-schema.js.map +1 -0
  24. package/dist/esm/collectors/utils/extract-app-key-metadata.js +12 -0
  25. package/dist/esm/collectors/utils/extract-app-key-metadata.js.map +1 -0
  26. package/dist/esm/collectors/utils/extract-app-metadata.js +17 -0
  27. package/dist/esm/collectors/utils/extract-app-metadata.js.map +1 -0
  28. package/dist/esm/collectors/utils/extract-context-metadata.js +16 -0
  29. package/dist/esm/collectors/utils/extract-context-metadata.js.map +1 -0
  30. package/dist/esm/enable-analytics.js +1 -0
  31. package/dist/esm/enable-analytics.js.map +1 -1
  32. package/dist/esm/logExporters/fusionOTLPLogExporter/HttpClientExporterTransport.js +5 -0
  33. package/dist/esm/logExporters/fusionOTLPLogExporter/HttpClientExporterTransport.js.map +1 -1
  34. package/dist/esm/version.js +1 -1
  35. package/dist/tsconfig.tsbuildinfo +1 -1
  36. package/dist/types/AnalyticsConfigurator.d.ts +3 -0
  37. package/dist/types/AnalyticsProvider.d.ts +3 -0
  38. package/dist/types/adapters/ConsoleAnalyticsAdapter.d.ts +7 -1
  39. package/dist/types/adapters/FusionAnalyticsAdapter.d.ts +6 -1
  40. package/dist/types/collectors/AppLoadedCollector.d.ts +9 -3
  41. package/dist/types/collectors/AppSelectedCollector.d.ts +8 -2
  42. package/dist/types/collectors/ContextSelectedCollector.d.ts +8 -2
  43. package/dist/types/collectors/{BaseCollector.d.ts → create-schema.d.ts} +2 -0
  44. package/dist/types/collectors/utils/app-key-schema.d.ts +12 -0
  45. package/dist/types/collectors/utils/app-schema.d.ts +18 -0
  46. package/dist/types/collectors/utils/{extractContextMetadata.d.ts → context-schema.d.ts} +0 -8
  47. package/dist/types/collectors/utils/extract-app-key-metadata.d.ts +10 -0
  48. package/dist/types/collectors/utils/extract-app-metadata.d.ts +10 -0
  49. package/dist/types/collectors/utils/extract-context-metadata.d.ts +10 -0
  50. package/dist/types/version.d.ts +1 -1
  51. package/package.json +14 -14
  52. package/src/AnalyticsConfigurator.ts +7 -0
  53. package/src/AnalyticsProvider.ts +12 -2
  54. package/src/adapters/ConsoleAnalyticsAdapter.ts +7 -1
  55. package/src/adapters/FusionAnalyticsAdapter.ts +7 -2
  56. package/src/collectors/AppLoadedCollector.ts +11 -7
  57. package/src/collectors/AppSelectedCollector.ts +11 -6
  58. package/src/collectors/ContextSelectedCollector.ts +11 -6
  59. package/src/collectors/{BaseCollector.ts → create-schema.ts} +3 -0
  60. package/src/collectors/utils/app-key-schema.ts +17 -0
  61. package/src/collectors/utils/app-schema.ts +22 -0
  62. package/src/collectors/utils/{extractContextMetadata.ts → context-schema.ts} +0 -17
  63. package/src/collectors/utils/extract-app-key-metadata.ts +15 -0
  64. package/src/collectors/utils/extract-app-metadata.ts +20 -0
  65. package/src/collectors/utils/extract-context-metadata.ts +19 -0
  66. package/src/enable-analytics.ts +1 -0
  67. package/src/logExporters/fusionOTLPLogExporter/HttpClientExporterTransport.ts +5 -0
  68. package/src/version.ts +1 -1
  69. package/dist/esm/collectors/BaseCollector.js.map +0 -1
  70. package/dist/esm/collectors/utils/extractAppMetadata.js +0 -58
  71. package/dist/esm/collectors/utils/extractAppMetadata.js.map +0 -1
  72. package/dist/esm/collectors/utils/extractContextMetadata.js +0 -34
  73. package/dist/esm/collectors/utils/extractContextMetadata.js.map +0 -1
  74. package/dist/types/collectors/utils/extractAppMetadata.d.ts +0 -44
  75. package/src/collectors/utils/extractAppMetadata.ts +0 -68
package/CHANGELOG.md CHANGED
@@ -1,5 +1,53 @@
1
1
  # @equinor/fusion-framework-module-analytics
2
2
 
3
+ ## 3.0.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 80c3e4a: Internal: resolve fusion-lint warnings across the analytics module.
8
+ - Added intent comments above control-flow and RxJS `.pipe()` chains that were missing them.
9
+ - Added missing constructor and method TSDoc (including `@param`/`@returns` tags).
10
+ - Split `extractAppMetadata.ts` and `extractContextMetadata.ts` so each export lives in its own file, satisfying the `single-export-per-file` rule while preserving existing TSDoc.
11
+ - Replaced ad-hoc `@TODO` comments in `AnalyticsProvider` with references to [#5098](https://github.com/equinor/fusion-framework/issues/5098).
12
+
13
+ No public API changes.
14
+
15
+ - 80c3e4a: Internal: renamed 45 source files across these packages to comply with the `filename-convention` lint rule (e.g. `AIConfigurator.ts` → `AiConfigurator.ts`, `BookmarkProvider.actions.ts` → `bookmark-actions.ts`, `errors/app-build-error.ts` → `errors/AppBuildError.ts`, `plugins/api/plugin.ts` → `plugins/api/ApiPlugin.ts`, `errors.ts` → `UnsupportedApiVersion.ts`, etc.). Also added `enable-signalr.ts` to the `filename-convention` exclude list since the suggested rename would incorrectly split the "SignalR" brand name. No public API changes.
16
+ - Updated dependencies [80c3e4a]
17
+ - Updated dependencies [80c3e4a]
18
+ - Updated dependencies [80c3e4a]
19
+ - Updated dependencies [80c3e4a]
20
+ - Updated dependencies [80c3e4a]
21
+ - Updated dependencies [80c3e4a]
22
+ - Updated dependencies [80c3e4a]
23
+ - Updated dependencies [80c3e4a]
24
+ - Updated dependencies [80c3e4a]
25
+ - Updated dependencies [80c3e4a]
26
+ - Updated dependencies [80c3e4a]
27
+ - Updated dependencies [80c3e4a]
28
+ - Updated dependencies [80c3e4a]
29
+ - Updated dependencies [80c3e4a]
30
+ - Updated dependencies [80c3e4a]
31
+ - Updated dependencies [80c3e4a]
32
+ - Updated dependencies [80c3e4a]
33
+ - Updated dependencies [80c3e4a]
34
+ - Updated dependencies [80c3e4a]
35
+ - Updated dependencies [80c3e4a]
36
+ - Updated dependencies [80c3e4a]
37
+ - Updated dependencies [80c3e4a]
38
+ - @equinor/fusion-framework-module-app@8.0.3
39
+ - @equinor/fusion-framework-module-context@8.0.1
40
+ - @equinor/fusion-framework-module-event@6.0.1
41
+ - @equinor/fusion-framework-module-http@8.0.4
42
+ - @equinor/fusion-framework-module@6.1.1
43
+ - @equinor/fusion-observable@9.1.1
44
+
45
+ ## 3.0.1
46
+
47
+ ### Patch Changes
48
+
49
+ - c424e43: Updated OpenTelemetry dependencies (`api-logs`, `exporter-logs-otlp-http`, `otlp-exporter-base`, `otlp-transformer`, `resources`, `sdk-logs`) from `^0.218.0` to `^0.220.0`.
50
+
3
51
  ## 3.0.0
4
52
 
5
53
  ### Patch Changes
@@ -21,18 +21,27 @@ import { map, scan, filter, defaultIfEmpty, shareReplay, mergeMap } from 'rxjs/o
21
21
  export class AnalyticsConfigurator extends BaseConfigBuilder {
22
22
  #collectorCallbacks = {};
23
23
  #adapterCallbacks = {};
24
+ /**
25
+ * Registers the async resolvers for `collectors` and `adapters` config keys.
26
+ */
24
27
  constructor() {
25
28
  super();
26
29
  // Configure async collectors resolution using mergeMap to handle Promise/Observable collector factories
27
30
  this._set('collectors', (args) => {
28
- return from(Object.entries(this.#collectorCallbacks)).pipe(mergeMap(([identifier, collectorFn]) => from(collectorFn(args)).pipe(filter((collector) => !!collector), map((collector) => [identifier, collector]))), scan((acc, [identifier, collector]) => {
31
+ // Resolve each collector factory and drop any that resolve to a falsy value
32
+ return from(Object.entries(this.#collectorCallbacks)).pipe(mergeMap(([identifier, collectorFn]) =>
33
+ // Resolve the collector's own Promise/Observable factory result
34
+ from(collectorFn(args)).pipe(filter((collector) => !!collector), map((collector) => [identifier, collector]))), scan((acc, [identifier, collector]) => {
29
35
  acc[identifier] = collector;
30
36
  return acc;
31
37
  }, {}), defaultIfEmpty({}), shareReplay({ bufferSize: 1, refCount: true }));
32
38
  });
33
39
  // Configure async adapters resolution using mergeMap to handle Promise/Observable adapter factories
34
40
  this._set('adapters', (args) => {
35
- return from(Object.entries(this.#adapterCallbacks)).pipe(mergeMap(([identifier, adapterFn]) => from(adapterFn(args)).pipe(filter((adapter) => !!adapter), map((adapter) => [identifier, adapter]))), scan((acc, [identifier, adapter]) => {
41
+ // Resolve each adapter factory and drop any that resolve to a falsy value
42
+ return from(Object.entries(this.#adapterCallbacks)).pipe(mergeMap(([identifier, adapterFn]) =>
43
+ // Resolve the adapter's own Promise/Observable factory result
44
+ from(adapterFn(args)).pipe(filter((adapter) => !!adapter), map((adapter) => [identifier, adapter]))), scan((acc, [identifier, adapter]) => {
36
45
  acc[identifier] = adapter;
37
46
  return acc;
38
47
  }, {}), defaultIfEmpty({}), shareReplay({ bufferSize: 1, refCount: true }));
@@ -1 +1 @@
1
- {"version":3,"file":"AnalyticsConfigurator.js","sourceRoot":"","sources":["../../src/AnalyticsConfigurator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iBAAiB,GAGlB,MAAM,kCAAkC,CAAC;AAK1C,OAAO,EAAE,IAAI,EAAwB,MAAM,MAAM,CAAC;AAElD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1F;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,qBACX,SAAQ,iBAAkC;IAG1C,mBAAmB,GAA+D,EAAE,CAAC;IACrF,iBAAiB,GAA6D,EAAE,CAAC;IAEjF;QACE,KAAK,EAAE,CAAC;QAER,wGAAwG;QACxG,IAAI,CAAC,IAAI,CACP,YAAY,EACZ,CAAC,IAA+B,EAAwD,EAAE;YACxF,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,CACxD,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,EAAE,EAAE,CACrC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAC1B,MAAM,CAAC,CAAC,SAAS,EAAoC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,EACpE,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,SAAS,CAAU,CAAC,CACrD,CACF,EACD,IAAI,CACF,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE;gBAC/B,GAAG,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;gBAC5B,OAAO,GAAG,CAAC;YACb,CAAC,EACD,EAAyC,CAC1C,EACD,cAAc,CAAC,EAAE,CAAC,EAClB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC/C,CAAC;QACJ,CAAC,CACF,CAAC;QAEF,oGAAoG;QACpG,IAAI,CAAC,IAAI,CACP,UAAU,EACV,CAAC,IAA+B,EAAsD,EAAE;YACtF,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,IAAI,CACtD,QAAQ,CAAC,CAAC,CAAC,UAAU,EAAE,SAAS,CAAC,EAAE,EAAE,CACnC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CACxB,MAAM,CAAC,CAAC,OAAO,EAAgC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,EAC5D,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,UAAU,EAAE,OAAO,CAAU,CAAC,CACjD,CACF,EACD,IAAI,CACF,CAAC,GAAG,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,EAAE,EAAE;gBAC7B,GAAG,CAAC,UAAU,CAAC,GAAG,OAAO,CAAC;gBAC1B,OAAO,GAAG,CAAC;YACb,CAAC,EACD,EAAuC,CACxC,EACD,cAAc,CAAC,EAAE,CAAC,EAClB,WAAW,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAC/C,CAAC;QACJ,CAAC,CACF,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,YAAY,CACV,UAAkB,EAClB,QAAuD;QAEvD,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;QAChD,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;OAOG;IACH,UAAU,CACR,UAAkB,EAClB,QAAqD;QAErD,IAAI,CAAC,iBAAiB,CAAC,UAAU,CAAC,GAAG,QAAQ,CAAC;QAC9C,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
1
+ {"version":3,"file":"AnalyticsConfigurator.js","sourceRoot":"","sources":["../../src/AnalyticsConfigurator.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,9 @@ import { from, Subject, Subscription } from 'rxjs';
9
9
  * with either `subscription.unsubscribe()` or `using` / `Symbol.dispose`.
10
10
  */
11
11
  class DisposableSubscription extends Subscription {
12
+ /**
13
+ * @param subscription - The underlying subscription to wrap with `Symbol.dispose` support.
14
+ */
12
15
  constructor(subscription) {
13
16
  super(subscription.unsubscribe);
14
17
  }
@@ -38,6 +41,9 @@ export class AnalyticsProvider extends BaseModuleProvider {
38
41
  #analytics;
39
42
  #collectors;
40
43
  #adapters;
44
+ /**
45
+ * @param config - Resolved analytics module configuration, including collectors and adapters.
46
+ */
41
47
  constructor(config) {
42
48
  super({ version, config });
43
49
  this.#analytics = new Subject();
@@ -62,10 +68,13 @@ export class AnalyticsProvider extends BaseModuleProvider {
62
68
  * @returns A promise that resolves when all adapters and collectors are initialised.
63
69
  */
64
70
  async initialize() {
71
+ // Kick off initialization for every collector, tolerating individual failures
65
72
  const initializedCollectors = Object.values(this.#collectors).map((collector) => Promise.resolve(collector.initialize?.()));
73
+ // Kick off initialization for every adapter, tolerating individual failures
66
74
  const initializedAdapters = Object.values(this.#adapters).map((adapters) => Promise.resolve(adapters.initialize?.()));
67
75
  await Promise.allSettled(initializedCollectors);
68
76
  await Promise.allSettled(initializedAdapters);
77
+ // Forward every collector's emissions into the shared analytics subject
69
78
  for (const collector of Object.values(this.#collectors)) {
70
79
  const subscription = collector.subscribe({
71
80
  next: (event) => {
@@ -76,6 +85,7 @@ export class AnalyticsProvider extends BaseModuleProvider {
76
85
  }
77
86
  const adapterSubscription = this.#analytics.subscribe({
78
87
  next: (event) => {
88
+ // Dispatch every emitted event to all registered adapters
79
89
  for (const adapter of Object.values(this.#adapters)) {
80
90
  adapter.registerAnalytic(event);
81
91
  }
@@ -89,7 +99,7 @@ export class AnalyticsProvider extends BaseModuleProvider {
89
99
  * @param event - The analytics event to track.
90
100
  */
91
101
  trackAnalytic(event) {
92
- // @TODO: Validate AnalyticsEvent includes name, value and attributes
102
+ // TODO(#5098): Validate AnalyticsEvent includes name, value and attributes
93
103
  this.#analytics.next(event);
94
104
  }
95
105
  /**
@@ -101,7 +111,7 @@ export class AnalyticsProvider extends BaseModuleProvider {
101
111
  */
102
112
  trackAnalytic$(analytic$) {
103
113
  const subscription = from(analytic$)
104
- // @TODO: Validate AnalyticsEvent includes name, value and attributes
114
+ // TODO(#5098): Validate AnalyticsEvent includes name, value and attributes
105
115
  .subscribe({
106
116
  next: (event) => {
107
117
  this.#analytics.next(event);
@@ -1 +1 @@
1
- {"version":3,"file":"AnalyticsProvider.js","sourceRoot":"","sources":["../../src/AnalyticsProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,2CAA2C,CAAC;AAE/E,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAKvC,OAAO,EAAE,IAAI,EAAwB,OAAO,EAAE,YAAY,EAAE,MAAM,MAAM,CAAC;AAIzE;;;;;;GAMG;AACH,MAAM,sBAAuB,SAAQ,YAAY;IAC/C,YAAY,YAA0B;QACpC,KAAK,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,EAAE;QACtB,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,iBACX,SAAQ,kBAAmC;IAG3C,UAAU,CAA0B;IACpC,WAAW,CAAsC;IACjD,SAAS,CAAoC;IAE7C,YAAY,MAAuB;QACjC,KAAK,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;QAE3B,IAAI,CAAC,UAAU,GAAG,IAAI,OAAO,EAAE,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;QACrC,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;IACnC,CAAC;IAED;;;;;;;;;;;;;;;;OAgBG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,qBAAqB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAC9E,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,CAAC,CAC1C,CAAC;QACF,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACzE,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CACzC,CAAC;QAEF,MAAM,OAAO,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;QAChD,MAAM,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;QAE9C,KAAK,MAAM,SAAS,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YACxD,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC;gBACvC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;oBACd,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC9B,CAAC;aACF,CAAC,CAAC;YAEH,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,mBAAmB,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YACpD,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACd,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;oBACpD,OAAO,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC;gBAClC,CAAC;YACH,CAAC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,KAAqB;QACjC,qEAAqE;QACrE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,cAAc,CAAC,SAA0C;QACvD,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;YAClC,qEAAqE;aACpE,SAAS,CAAC;YACT,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE;gBACd,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC9B,CAAC;SACF,CAAC,CAAC;QAEL,OAAO,IAAI,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;CACF"}
1
+ {"version":3,"file":"AnalyticsProvider.js","sourceRoot":"","sources":["../../src/AnalyticsProvider.ts"],"names":[],"mappings":"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"}
@@ -15,10 +15,16 @@
15
15
  * ```
16
16
  */
17
17
  export class ConsoleAnalyticsAdapter {
18
- /** Logs the event to the console. */
18
+ /**
19
+ * Logs the event to the console.
20
+ *
21
+ * @param event - The analytics event to log.
22
+ * @returns Resolves once the event has been logged.
23
+ */
19
24
  registerAnalytic(event) {
20
25
  console.log('Analytics::Adapter::Console', event);
21
26
  }
27
+ /** No teardown is required for this adapter. */
22
28
  [Symbol.dispose]() {
23
29
  // no-op
24
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ConsoleAnalyticsAdapter.js","sourceRoot":"","sources":["../../../src/adapters/ConsoleAnalyticsAdapter.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,uBAAuB;IAGlC,qCAAqC;IACrC,gBAAgB,CAAC,KAAQ;QACvB,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,CAAC,MAAM,CAAC,OAAO,CAAC;QACd,QAAQ;IACV,CAAC;CACF"}
1
+ {"version":3,"file":"ConsoleAnalyticsAdapter.js","sourceRoot":"","sources":["../../../src/adapters/ConsoleAnalyticsAdapter.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,uBAAuB;IAGlC;;;;;OAKG;IACH,gBAAgB,CAAC,KAAQ;QACvB,OAAO,CAAC,GAAG,CAAC,6BAA6B,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,gDAAgD;IAChD,CAAC,MAAM,CAAC,OAAO,CAAC;QACd,QAAQ;IACV,CAAC;CACF"}
@@ -43,7 +43,7 @@ export class FusionAnalyticsAdapter {
43
43
  constructor(args) {
44
44
  this.#logExporter = args.logExporter;
45
45
  this.#loggerProvider = new LoggerProvider({
46
- processors: [new BatchLogRecordProcessor(this.#logExporter)],
46
+ processors: [new BatchLogRecordProcessor({ exporter: this.#logExporter })],
47
47
  resource: resourceFromAttributes({
48
48
  'module.version': version,
49
49
  'session.id': uuid(),
@@ -52,7 +52,12 @@ export class FusionAnalyticsAdapter {
52
52
  });
53
53
  this.#logger = this.#loggerProvider.getLogger('fusion');
54
54
  }
55
- /** Maps an analytics event to an OTLP `LogRecord` and emits it via the logger. */
55
+ /**
56
+ * Maps an analytics event to an OTLP `LogRecord` and emits it via the logger.
57
+ *
58
+ * @param event - The analytics event to map and emit.
59
+ * @returns Resolves once the event has been emitted to the logger.
60
+ */
56
61
  registerAnalytic(event) {
57
62
  const logRecord = {
58
63
  eventName: event.name,
@@ -1 +1 @@
1
- {"version":3,"file":"FusionAnalyticsAdapter.js","sourceRoot":"","sources":["../../../src/adapters/FusionAnalyticsAdapter.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,cAAc,EACd,uBAAuB,GAExB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,cAAc,GAIf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,sBAAsB;IAGjC,YAAY,CAAwC;IACpD,eAAe,CAAiB;IAChC,OAAO,CAAS;IAEhB;;;;;;OAMG;IACH,YAAY,IAA8E;QACxF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC;YACxC,UAAU,EAAE,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC5D,QAAQ,EAAE,sBAAsB,CAAC;gBAC/B,gBAAgB,EAAE,OAAO;gBACzB,YAAY,EAAE,IAAI,EAAE;gBACpB,WAAW,EAAE,IAAI,CAAC,QAAQ;aAC3B,CAAC;SACH,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED,kFAAkF;IAClF,gBAAgB,CAAC,KAAQ;QACvB,MAAM,SAAS,GAAuB;YACpC,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,UAAU,EAAE,KAAK,CAAC,UAA2B;YAC7C,IAAI,EAAE,KAAK,CAAC,KAAK;YACjB,cAAc,EAAE,cAAc,CAAC,IAAI;SACpC,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,mFAAmF;IACnF,CAAC,MAAM,CAAC,OAAO,CAAC;QACd,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;IAClC,CAAC;CACF"}
1
+ {"version":3,"file":"FusionAnalyticsAdapter.js","sourceRoot":"","sources":["../../../src/adapters/FusionAnalyticsAdapter.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,cAAc,EACd,uBAAuB,GAExB,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EACL,cAAc,GAIf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,OAAO,sBAAsB;IAGjC,YAAY,CAAwC;IACpD,eAAe,CAAiB;IAChC,OAAO,CAAS;IAEhB;;;;;;OAMG;IACH,YAAY,IAA8E;QACxF,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC;QAErC,IAAI,CAAC,eAAe,GAAG,IAAI,cAAc,CAAC;YACxC,UAAU,EAAE,CAAC,IAAI,uBAAuB,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;YAC1E,QAAQ,EAAE,sBAAsB,CAAC;gBAC/B,gBAAgB,EAAE,OAAO;gBACzB,YAAY,EAAE,IAAI,EAAE;gBACpB,WAAW,EAAE,IAAI,CAAC,QAAQ;aAC3B,CAAC;SACH,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,KAAQ;QACvB,MAAM,SAAS,GAAuB;YACpC,SAAS,EAAE,KAAK,CAAC,IAAI;YACrB,UAAU,EAAE,KAAK,CAAC,UAA2B;YAC7C,IAAI,EAAE,KAAK,CAAC,KAAK;YACjB,cAAc,EAAE,cAAc,CAAC,IAAI;SACpC,CAAC;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC/B,CAAC;IAED,mFAAmF;IACnF,CAAC,MAAM,CAAC,OAAO,CAAC;QACd,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;QAC7B,IAAI,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;IAClC,CAAC;CACF"}
@@ -1,6 +1,8 @@
1
- import { BaseCollector, createSchema } from './BaseCollector.js';
2
- import { appSchema, extractAppMetadata } from './utils/extractAppMetadata.js';
3
- import { contextSchema, extractContextMetadata, } from './utils/extractContextMetadata.js';
1
+ import { BaseCollector, createSchema } from './create-schema.js';
2
+ import { appSchema } from './utils/app-schema.js';
3
+ import { extractAppMetadata } from './utils/extract-app-metadata.js';
4
+ import { contextSchema } from './utils/context-schema.js';
5
+ import { extractContextMetadata } from './utils/extract-context-metadata.js';
4
6
  import { Subject } from 'rxjs';
5
7
  import { z } from 'zod';
6
8
  const EVENT_NAME = 'onAppModulesLoaded';
@@ -36,6 +38,12 @@ export class AppLoadedCollector extends BaseCollector {
36
38
  this.#eventProvider = eventProvider;
37
39
  this.#appProvider = appProvider;
38
40
  }
41
+ /**
42
+ * Builds an observable that emits an analytics event whenever the app-loaded
43
+ * event fires, falling back to `appProvider` for manifest data when needed.
44
+ *
45
+ * @returns An observable input emitting the app-loaded event's value and attributes.
46
+ */
39
47
  _initialize() {
40
48
  const subject = new Subject();
41
49
  this.#eventProvider.addEventListener(EVENT_NAME, (event) => {
@@ -1 +1 @@
1
- {"version":3,"file":"AppLoadedCollector.js","sourceRoot":"","sources":["../../../src/collectors/AppLoadedCollector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAoB,SAAS,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAChG,OAAO,EAEL,aAAa,EACb,sBAAsB,GACvB,MAAM,mCAAmC,CAAC;AAU3C,OAAO,EAAwB,OAAO,EAAE,MAAM,MAAM,CAAC;AACrD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAExC,kEAAkE;AAClE,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;AAElF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,kBACX,SAAQ,aAAyD;IAGjE,cAAc,CAAuB;IACrC,YAAY,CAAoB;IAEhC;;;OAGG;IACH,YAAY,aAAmC,EAAE,WAA8B;QAC7E,KAAK,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IAED,WAAW;QAIT,MAAM,OAAO,GAAG,IAAI,OAAO,EAGvB,CAAC;QACL,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;YACzD,yEAAyE;YACzE,qDAAqD;YACrD,MAAM,QAAQ,GACX,KAAK,CAAC,MAAM,CAAC,QAAwB,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC;YAChF,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,OAA8C,CAAC;YAE5E,MAAM,IAAI,GAAG;gBACX,KAAK,EAAE,QAAQ,IAAI,kBAAkB,CAAC,QAAQ,CAAC;gBAC/C,UAAU,EAAE;oBACV,OAAO,EACL,OAAO,CAAC,OAAO,EAAE,cAAc;wBAC/B,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;iBACzD;aACF,CAAC;YAEF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"AppLoadedCollector.js","sourceRoot":"","sources":["../../../src/collectors/AppLoadedCollector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAoB,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AACrE,OAAO,EAAwB,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAU7E,OAAO,EAAwB,OAAO,EAAE,MAAM,MAAM,CAAC;AACrD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAGxB,MAAM,UAAU,GAAG,oBAAoB,CAAC;AAExC,kEAAkE;AAClE,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;AAElF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,OAAO,kBACX,SAAQ,aAAyD;IAGjE,cAAc,CAAuB;IACrC,YAAY,CAAoB;IAEhC;;;OAGG;IACH,YAAY,aAAmC,EAAE,WAA8B;QAC7E,KAAK,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;QACjC,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACH,WAAW;QAIT,MAAM,OAAO,GAAG,IAAI,OAAO,EAGvB,CAAC;QACL,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;YACzD,yEAAyE;YACzE,qDAAqD;YACrD,MAAM,QAAQ,GACX,KAAK,CAAC,MAAM,CAAC,QAAwB,IAAI,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,QAAQ,CAAC;YAChF,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,OAA8C,CAAC;YAE5E,MAAM,IAAI,GAAG;gBACX,KAAK,EAAE,QAAQ,IAAI,kBAAkB,CAAC,QAAQ,CAAC;gBAC/C,UAAU,EAAE;oBACV,OAAO,EACL,OAAO,CAAC,OAAO,EAAE,cAAc;wBAC/B,sBAAsB,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;iBACzD;aACF,CAAC;YAEF,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -1,6 +1,7 @@
1
1
  import { map, pairwise } from 'rxjs';
2
- import { BaseCollector, createSchema } from './BaseCollector.js';
3
- import { appKeySchema, extractAppKeyMetadata, } from './utils/extractAppMetadata.js';
2
+ import { BaseCollector, createSchema } from './create-schema.js';
3
+ import { appKeySchema } from './utils/app-key-schema.js';
4
+ import { extractAppKeyMetadata } from './utils/extract-app-key-metadata.js';
4
5
  import { z } from 'zod';
5
6
  /** Zod schema for the `app-selected` event (value + attributes). */
6
7
  const eventSchema = createSchema(appKeySchema, z.object({ previous: appKeySchema }));
@@ -28,8 +29,16 @@ export class AppSelectedCollector extends BaseCollector {
28
29
  super('app-selected', eventSchema);
29
30
  this.#appProvider = appProvider;
30
31
  }
32
+ /**
33
+ * Builds an observable that emits an analytics event each time the selected
34
+ * app changes, including the previous app's key metadata.
35
+ *
36
+ * @returns An observable input emitting the newly selected app's value and attributes.
37
+ */
31
38
  _initialize() {
39
+ // Pair each app-selection emission with the previously selected app
32
40
  const appSelected$ = this.#appProvider.current$.pipe(pairwise());
41
+ // Map the [previous, next] pair into the analytics event shape
33
42
  const data$ = appSelected$.pipe(map(([prev, next]) => {
34
43
  return {
35
44
  value: extractAppKeyMetadata(next),
@@ -1 +1 @@
1
- {"version":3,"file":"AppSelectedCollector.js","sourceRoot":"","sources":["../../../src/collectors/AppSelectedCollector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAwB,QAAQ,EAAE,MAAM,MAAM,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAEL,YAAY,EACZ,qBAAqB,GACtB,MAAM,+BAA+B,CAAC;AAIvC,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oEAAoE;AACpE,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AAErF;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,oBACX,SAAQ,aAAoD;IAG5D,YAAY,CAAoB;IAEhC;;OAEG;IACH,YAAY,WAA8B;QACxC,KAAK,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IAED,WAAW;QAIT,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEjE,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAC7B,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;YACnB,OAAO;gBACL,KAAK,EAAE,qBAAqB,CAAC,IAAI,CAAC;gBAClC,UAAU,EAAE;oBACV,QAAQ,EAAE,IAAI,IAAI,qBAAqB,CAAC,IAAI,CAAC;iBAC9C;aACF,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QAEF,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"AppSelectedCollector.js","sourceRoot":"","sources":["../../../src/collectors/AppSelectedCollector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAwB,QAAQ,EAAE,MAAM,MAAM,CAAC;AAE3D,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAmB,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAI5E,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,oEAAoE;AACpE,MAAM,WAAW,GAAG,YAAY,CAAC,YAAY,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;AAErF;;;;;;;;;;;;;;GAcG;AACH,MAAM,OAAO,oBACX,SAAQ,aAAoD;IAG5D,YAAY,CAAoB;IAEhC;;OAEG;IACH,YAAY,WAA8B;QACxC,KAAK,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QACnC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACH,WAAW;QAIT,oEAAoE;QACpE,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEjE,+DAA+D;QAC/D,MAAM,KAAK,GAAG,YAAY,CAAC,IAAI,CAC7B,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;YACnB,OAAO;gBACL,KAAK,EAAE,qBAAqB,CAAC,IAAI,CAAC;gBAClC,UAAU,EAAE;oBACV,QAAQ,EAAE,IAAI,IAAI,qBAAqB,CAAC,IAAI,CAAC;iBAC9C;aACF,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QAEF,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -1,7 +1,8 @@
1
1
  import { distinctUntilChanged, map, pairwise } from 'rxjs';
2
2
  import { z } from 'zod';
3
- import { BaseCollector, createSchema } from './BaseCollector.js';
4
- import { contextSchema, extractContextMetadata, } from './utils/extractContextMetadata.js';
3
+ import { BaseCollector, createSchema } from './create-schema.js';
4
+ import { contextSchema } from './utils/context-schema.js';
5
+ import { extractContextMetadata } from './utils/extract-context-metadata.js';
5
6
  /** Zod schema for the `context-selected` event (value + attributes). */
6
7
  const eventSchema = createSchema(contextSchema, z.object({ previous: contextSchema, appKey: z.string().optional() }));
7
8
  /**
@@ -33,12 +34,20 @@ export class ContextSelectedCollector extends BaseCollector {
33
34
  this.#contextProvider = contextProvider;
34
35
  this.#appProvider = appProvider;
35
36
  }
37
+ /**
38
+ * Builds an observable that emits an analytics event each time the selected
39
+ * context changes, including the previous context and current app key.
40
+ *
41
+ * @returns An observable input emitting the newly selected context's value and attributes.
42
+ */
36
43
  _initialize() {
44
+ // Track context changes, pairing each new context with the previously selected one
37
45
  const contextSelected$ = this.#contextProvider.currentContext$.pipe(
38
46
  // Only emit when an actual change has happened.
39
47
  distinctUntilChanged((prev, curr) => prev?.id === curr?.id),
40
48
  // Provide both the old and the new value.
41
49
  pairwise());
50
+ // Map the [previous, next] pair into the analytics event shape
42
51
  const data$ = contextSelected$.pipe(map(([prev, next]) => {
43
52
  return {
44
53
  value: next && extractContextMetadata(next),
@@ -1 +1 @@
1
- {"version":3,"file":"ContextSelectedCollector.js","sourceRoot":"","sources":["../../../src/collectors/ContextSelectedCollector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,GAAG,EAAwB,QAAQ,EAAE,MAAM,MAAM,CAAC;AAIjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAEL,aAAa,EACb,sBAAsB,GACvB,MAAM,mCAAmC,CAAC;AAE3C,wEAAwE;AACxE,MAAM,WAAW,GAAG,YAAY,CAC9B,aAAa,EACb,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CACrE,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,wBACX,SAAQ,aAA+E;IAGvF,gBAAgB,CAAmB;IACnC,YAAY,CAAoB;IAEhC;;;OAGG;IACH,YAAY,eAAiC,EAAE,WAA8B;QAC3E,KAAK,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IAED,WAAW;QAIT,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI;QACjE,gDAAgD;QAChD,oBAAoB,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;QAC3D,0CAA0C;QAC1C,QAAQ,EAAE,CACX,CAAC;QAEF,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CACjC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;YACnB,OAAO;gBACL,KAAK,EAAE,IAAI,IAAI,sBAAsB,CAAC,IAAI,CAAC;gBAC3C,UAAU,EAAE;oBACV,QAAQ,EAAE,IAAI,IAAI,sBAAsB,CAAC,IAAI,CAAC;oBAC9C,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM;iBAC1C;aACF,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QAEF,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
1
+ {"version":3,"file":"ContextSelectedCollector.js","sourceRoot":"","sources":["../../../src/collectors/ContextSelectedCollector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,GAAG,EAAwB,QAAQ,EAAE,MAAM,MAAM,CAAC;AAIjF,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACjE,OAAO,EAAwB,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,qCAAqC,CAAC;AAE7E,wEAAwE;AACxE,MAAM,WAAW,GAAG,YAAY,CAC9B,aAAa,EACb,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CACrE,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,OAAO,wBACX,SAAQ,aAA+E;IAGvF,gBAAgB,CAAmB;IACnC,YAAY,CAAoB;IAEhC;;;OAGG;IACH,YAAY,eAAiC,EAAE,WAA8B;QAC3E,KAAK,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;QACvC,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;IAClC,CAAC;IAED;;;;;OAKG;IACH,WAAW;QAIT,mFAAmF;QACnF,MAAM,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI;QACjE,gDAAgD;QAChD,oBAAoB,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,CAAC;QAC3D,0CAA0C;QAC1C,QAAQ,EAAE,CACX,CAAC;QAEF,+DAA+D;QAC/D,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CACjC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;YACnB,OAAO;gBACL,KAAK,EAAE,IAAI,IAAI,sBAAsB,CAAC,IAAI,CAAC;gBAC3C,UAAU,EAAE;oBACV,QAAQ,EAAE,IAAI,IAAI,sBAAsB,CAAC,IAAI,CAAC;oBAC9C,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM;iBAC1C;aACF,CAAC;QACJ,CAAC,CAAC,CACH,CAAC;QAEF,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
@@ -60,8 +60,11 @@ export class BaseCollector {
60
60
  * Subscribes to the source returned by {@link BaseCollector._initialize},
61
61
  * validates each emission with the Zod schema, and publishes through the
62
62
  * internal subject.
63
+ *
64
+ * @returns Resolves once the source has been subscribed to.
63
65
  */
64
66
  initialize() {
67
+ // Shape each emission into the named/validated event before publishing
65
68
  from(this._initialize())
66
69
  .pipe(map(({ value, attributes }) => {
67
70
  return {
@@ -82,4 +85,4 @@ export class BaseCollector {
82
85
  return this.#subject.subscribe(observer);
83
86
  }
84
87
  }
85
- //# sourceMappingURL=BaseCollector.js.map
88
+ //# sourceMappingURL=create-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-schema.js","sourceRoot":"","sources":["../../../src/collectors/create-schema.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAwB,OAAO,EAAsC,MAAM,MAAM,CAAC;AACpG,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,KAA0B,EAC1B,UAA8B,EAC9B,EAAE;IACF,OAAO,CAAC,CAAC,MAAM,CAAC;QACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;QAChB,KAAK,EAAE,KAAK;QACZ,UAAU,EAAE,UAAU,CAAC,QAAQ,EAAE;KAClC,CAAC,CAAC;AACL,CAAC,CAAC;AAOF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,OAAgB,aAAa;IAKjC,OAAO,CAAiC;IACxC,KAAK,CAAS;IACd,QAAQ,GAAqD,IAAI,OAAO,EAErE,CAAC;IAEJ;;;;;OAKG;IACH,YAAY,IAAY,EAAE,MAAsC;QAC9D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAaD;;;;;;OAMG;IACH,UAAU;QACR,uEAAuE;QACvE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;aACrB,IAAI,CACH,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,EAAE;YAC5B,OAAO;gBACL,IAAI,EAAE,IAAI,CAAC,KAAK;gBAChB,KAAK,EAAE,KAAK;gBACZ,UAAU,EAAE,UAAU;aACvB,CAAC;QACJ,CAAC,CAAC,EACF,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAClC;aACA,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED;;;;;OAKG;IACH,SAAS,CAAC,QAAoE;QAC5E,OAAO,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;CACF"}
@@ -0,0 +1,14 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Zod schema for an object containing an optional `appKey` string.
4
+ *
5
+ * @remarks
6
+ * Used by {@link AppSelectedCollector} to validate the event body.
7
+ */
8
+ export const appKeySchema = z
9
+ .object({
10
+ appKey: z.string().optional(),
11
+ })
12
+ .optional()
13
+ .nullable();
14
+ //# sourceMappingURL=app-key-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-key-schema.js","sourceRoot":"","sources":["../../../../src/collectors/utils/app-key-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;GAKG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC;KAC1B,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC;KACD,QAAQ,EAAE;KACV,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Zod schema for a Fusion application metadata object.
4
+ *
5
+ * @remarks
6
+ * Validates core app fields (appKey, displayName, type) and optional build
7
+ * and category information. Used by {@link AppLoadedCollector}.
8
+ */
9
+ export const appSchema = z
10
+ .object({
11
+ appKey: z.string(),
12
+ displayName: z.string(),
13
+ type: z.string(),
14
+ categoryName: z.string().optional(),
15
+ buildVersion: z.string().optional(),
16
+ buildTag: z.string().optional().nullable(),
17
+ })
18
+ .optional();
19
+ //# sourceMappingURL=app-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-schema.js","sourceRoot":"","sources":["../../../../src/collectors/utils/app-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC;KACvB,MAAM,CAAC;IACN,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;IAClB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE;IACvB,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;CAC3C,CAAC;KACD,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,19 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Zod schema for a Fusion context metadata object.
4
+ *
5
+ * @remarks
6
+ * Validates core context fields (id, type) and optional title, externalId,
7
+ * and source. Used by {@link ContextSelectedCollector} and {@link AppLoadedCollector}.
8
+ */
9
+ export const contextSchema = z
10
+ .object({
11
+ id: z.string(),
12
+ type: z.string(),
13
+ title: z.string().optional(),
14
+ externalId: z.string().optional(),
15
+ source: z.string().optional(),
16
+ })
17
+ .optional()
18
+ .nullable();
19
+ //# sourceMappingURL=context-schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context-schema.js","sourceRoot":"","sources":["../../../../src/collectors/utils/context-schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC;KAC3B,MAAM,CAAC;IACN,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC5B,UAAU,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACjC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC;KACD,QAAQ,EAAE;KACV,QAAQ,EAAE,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Extracts app-key metadata from a `CurrentApp` instance.
3
+ *
4
+ * @param app - The current app object.
5
+ * @returns An object containing the optional `appKey`.
6
+ */
7
+ export const extractAppKeyMetadata = (app) => {
8
+ return {
9
+ appKey: app?.appKey,
10
+ };
11
+ };
12
+ //# sourceMappingURL=extract-app-key-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-app-key-metadata.js","sourceRoot":"","sources":["../../../../src/collectors/utils/extract-app-key-metadata.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,GAAe,EAAgC,EAAE;IACrF,OAAO;QACL,MAAM,EAAE,GAAG,EAAE,MAAM;KACpB,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Extracts detailed app metadata from an `AppManifest` for analytics events.
3
+ *
4
+ * @param app - The application manifest.
5
+ * @returns An object with appKey, displayName, type, and optional build/category info.
6
+ */
7
+ export const extractAppMetadata = (app) => {
8
+ return {
9
+ appKey: app.appKey,
10
+ displayName: app.displayName,
11
+ type: app.type,
12
+ categoryName: app.category?.name,
13
+ buildVersion: app.build?.version,
14
+ buildTag: app.build?.tag,
15
+ };
16
+ };
17
+ //# sourceMappingURL=extract-app-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-app-metadata.js","sourceRoot":"","sources":["../../../../src/collectors/utils/extract-app-metadata.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,GAAgB,EAA6B,EAAE;IAChF,OAAO;QACL,MAAM,EAAE,GAAG,CAAC,MAAM;QAClB,WAAW,EAAE,GAAG,CAAC,WAAW;QAC5B,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,YAAY,EAAE,GAAG,CAAC,QAAQ,EAAE,IAAI;QAChC,YAAY,EAAE,GAAG,CAAC,KAAK,EAAE,OAAO;QAChC,QAAQ,EAAE,GAAG,CAAC,KAAK,EAAE,GAAG;KACzB,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Extracts context metadata from a `ContextItem` for analytics events.
3
+ *
4
+ * @param context - The Fusion context item.
5
+ * @returns An object with id, type, and optional title, externalId, and source.
6
+ */
7
+ export const extractContextMetadata = (context) => {
8
+ return {
9
+ id: context.id,
10
+ externalId: context.externalId ?? undefined,
11
+ title: context.title ?? undefined,
12
+ type: context.type.id,
13
+ source: context.source ?? undefined,
14
+ };
15
+ };
16
+ //# sourceMappingURL=extract-context-metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-context-metadata.js","sourceRoot":"","sources":["../../../../src/collectors/utils/extract-context-metadata.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,OAAoB,EAAiC,EAAE;IAC5F,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,SAAS;QAC3C,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,SAAS;QACjC,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE;QACrB,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,SAAS;KACpC,CAAC;AACJ,CAAC,CAAC"}
@@ -26,6 +26,7 @@ configurator, callback) => {
26
26
  configurator.addConfig({
27
27
  module,
28
28
  configure: async (builder) => {
29
+ // Only invoke the callback when one was supplied by the caller
29
30
  if (callback) {
30
31
  await Promise.resolve(callback(builder));
31
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"enable-analytics.js","sourceRoot":"","sources":["../../src/enable-analytics.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAMrC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;AAC7B,sFAAsF;AACtF,YAA4C,EAC5C,QAAmC,EAC7B,EAAE;IACR,YAAY,CAAC,SAAS,CAAC;QACrB,MAAM;QACN,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC3B,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"enable-analytics.js","sourceRoot":"","sources":["../../src/enable-analytics.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAMrC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;AAC7B,sFAAsF;AACtF,YAA4C,EAC5C,QAAmC,EAC7B,EAAE;IACR,YAAY,CAAC,SAAS,CAAC;QACrB,MAAM;QACN,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;YAC3B,+DAA+D;YAC/D,IAAI,QAAQ,EAAE,CAAC;gBACb,MAAM,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -20,15 +20,18 @@ function isExportRetryable(statusCode) {
20
20
  * @returns Delay in milliseconds, `-1` for non-positive integers, or `undefined` if absent.
21
21
  */
22
22
  function parseRetryAfterToMills(retryAfter) {
23
+ // No header present — nothing to compute
23
24
  if (retryAfter == null) {
24
25
  return undefined;
25
26
  }
26
27
  const seconds = Number.parseInt(retryAfter, 10);
28
+ // Retry-After given as a plain integer number of seconds
27
29
  if (Number.isInteger(seconds)) {
28
30
  return seconds > 0 ? seconds * 1000 : -1;
29
31
  }
30
32
  // https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Retry-After#directives
31
33
  const delay = new Date(retryAfter).getTime() - Date.now();
34
+ // Only report a positive delay; a past date means retry is already due
32
35
  if (delay >= 0) {
33
36
  return delay;
34
37
  }
@@ -75,6 +78,7 @@ export class HttpClientExporterTransport {
75
78
  body: new Blob([data.slice().buffer], { type: 'application/json' }),
76
79
  signal: abortController.signal,
77
80
  });
81
+ // A 2xx response means the export succeeded outright
78
82
  if (response.ok) {
79
83
  return { status: 'success' };
80
84
  }
@@ -90,6 +94,7 @@ export class HttpClientExporterTransport {
90
94
  }
91
95
  catch (error) {
92
96
  const err = error;
97
+ // Distinguish a timeout (AbortController fired) from other fetch failures
93
98
  if (err?.name === 'AbortError') {
94
99
  return {
95
100
  status: 'failure',
@@ -1 +1 @@
1
- {"version":3,"file":"HttpClientExporterTransport.js","sourceRoot":"","sources":["../../../../src/logExporters/fusionOTLPLogExporter/HttpClientExporterTransport.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,SAAS,iBAAiB,CAAC,UAAkB;IAC3C,oDAAoD;IACpD,wBAAwB;IACxB,kBAAkB;IAClB,0BAA0B;IAC1B,sBAAsB;IACtB,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IACxC,OAAO,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AACzC,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAAC,UAAsC;IACpE,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAChD,IAAI,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;QAC9B,OAAO,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,mFAAmF;IACnF,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE1D,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,2BAA2B;IAM5B;IACA;IANV;;;OAGG;IACH,YACU,UAAuB,EACvB,OAAe,UAAU;QADzB,eAAU,GAAV,UAAU,CAAa;QACvB,SAAI,GAAJ,IAAI,CAAqB;IAChC,CAAC;IAEJ;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,CAAC,IAAgB,EAAE,aAAqB;QAChD,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,KAAK,EAAE,EAAE,aAAa,CAAC,CAAC;QAEzE,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;gBACtD,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC;gBACnE,MAAM,EAAE,eAAe,CAAC,MAAM;aAC/B,CAAC,CAAC;YAEH,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC;gBAChB,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;YAC/B,CAAC;iBAAM,IAAI,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9C,MAAM,UAAU,GAAG,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;gBACvD,MAAM,aAAa,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;gBACzD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,aAAa,EAAE,CAAC;YAChD,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,IAAI,KAAK,CAAC,gDAAgD,CAAC;aACnE,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAc,CAAC;YAC3B,IAAI,GAAG,EAAE,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC/B,OAAO;oBACL,MAAM,EAAE,SAAS;oBACjB,KAAK,EAAE,IAAI,KAAK,CAAC,yBAAyB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;iBAC5D,CAAC;YACJ,CAAC;YACD,OAAO;gBACL,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,IAAI,KAAK,CAAC,uBAAuB,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;aAC1D,CAAC;QACJ,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,mEAAmE;IACnE,QAAQ;QACN,2CAA2C;IAC7C,CAAC;CACF"}
1
+ {"version":3,"file":"HttpClientExporterTransport.js","sourceRoot":"","sources":["../../../../src/logExporters/fusionOTLPLogExporter/HttpClientExporterTransport.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,3 @@
1
1
  // Generated by genversion.
2
- export const version = '3.0.0';
2
+ export const version = '3.0.2';
3
3
  //# sourceMappingURL=version.js.map