@dxos/observability 0.3.11-next.ee2b64c → 0.4.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.
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_CBMRJXSL_exports = {};
30
- __export(chunk_CBMRJXSL_exports, {
29
+ var chunk_ED364ZBZ_exports = {};
30
+ __export(chunk_ED364ZBZ_exports, {
31
31
  OBSERVABILITY_DISABLED_KEY: () => OBSERVABILITY_DISABLED_KEY,
32
32
  OBSERVABILITY_GROUP_KEY: () => OBSERVABILITY_GROUP_KEY,
33
33
  Observability: () => Observability,
@@ -43,7 +43,7 @@ __export(chunk_CBMRJXSL_exports, {
43
43
  storeObservabilityDisabled: () => storeObservabilityDisabled,
44
44
  storeObservabilityGroup: () => storeObservabilityGroup
45
45
  });
46
- module.exports = __toCommonJS(chunk_CBMRJXSL_exports);
46
+ module.exports = __toCommonJS(chunk_ED364ZBZ_exports);
47
47
  var import_chunk_ZJRKFREX = require("./chunk-ZJRKFREX.cjs");
48
48
  var import_chunk_BHF4PKAP = require("./chunk-BHF4PKAP.cjs");
49
49
  var import_chunk_FSAOBKO2 = require("./chunk-FSAOBKO2.cjs");
@@ -134,7 +134,7 @@ var initializeAppObservability = async ({ namespace, config, mode = "basic", tra
134
134
  const release = `${namespace}@${config.get("runtime.app.build.version")}`;
135
135
  const environment = config.get("runtime.app.env.DX_ENVIRONMENT");
136
136
  const observabilityDisabled = await isObservabilityDisabled(namespace);
137
- const { Observability: Observability2 } = await import("./observability-JMKBRR4L.cjs");
137
+ const { Observability: Observability2 } = await import("./observability-MN7SJ7NA.cjs");
138
138
  const observability = new Observability2({
139
139
  namespace,
140
140
  group,
@@ -228,7 +228,7 @@ var showObservabilityBanner = async (configDir, bannercb) => {
228
228
  }
229
229
  bannercb(
230
230
  // eslint-disable-next-line no-multi-str
231
- "Basic observability data will be sent to the DXOS team in order to improve the product. This includes performance metrics, error logs, and usage data. No personally identifiable information, other than your public key, is included with this data and no private data ever leaves your devices. To disable sending observability data, set the environment variable DX_DISABLE_TELEMETRY=true."
231
+ "Basic observability data will be sent to the DXOS team in order to improve the product. This includes performance metrics, error logs, and usage data. No personally identifiable information, other than your public key, is included with this data and no private data ever leaves your devices. To disable sending observability data, set the environment variable DX_DISABLE_OBSERVABILITY=true."
232
232
  );
233
233
  await (0, import_promises.writeFile)(path, "", "utf-8");
234
234
  };
@@ -252,8 +252,8 @@ var getObservabilityState = async (configDir) => {
252
252
  var initializeState = async (idPath) => {
253
253
  const observabilityState = {
254
254
  installationId: (0, import_uuid.v4)(),
255
- group: process.env.DX_TELEMETRY_GROUP ?? void 0,
256
- mode: process.env.DX_DISABLE_TELEMETRY ? "disabled" : process.env.DX_TELEMETRY_MODE ?? "basic"
255
+ group: process.env.DX_OBSERVABILITY_GROUP ?? void 0,
256
+ mode: process.env.DX_DISABLE_OBSERVABILITY ? "disabled" : process.env.DX_OBSERVABILITY_MODE ?? "basic"
257
257
  };
258
258
  await (0, import_promises.writeFile)(idPath, "# This file is automatically generated by the @dxos/cli.\n" + import_js_yaml.default.dump(observabilityState), "utf-8");
259
259
  return observabilityState;
@@ -263,7 +263,7 @@ var validate = (contextString) => {
263
263
  if (Boolean(context.installationId) && (0, import_uuid.validate)(context.installationId)) {
264
264
  return {
265
265
  ...context,
266
- mode: process.env.DX_DISABLE_TELEMETRY ? "disabled" : context.mode ?? "basic"
266
+ mode: process.env.DX_DISABLE_OBSERVABILITY ? "disabled" : context.mode ?? "basic"
267
267
  };
268
268
  }
269
269
  };
@@ -443,11 +443,22 @@ var Observability = class {
443
443
  }
444
444
  _loadSecrets(config, secrets) {
445
445
  if ((0, import_util.isNode)()) {
446
- return cli_observability_secrets_default;
446
+ const mergedSecrets = {
447
+ ...cli_observability_secrets_default,
448
+ ...secrets
449
+ };
450
+ process.env.DX_ENVIRONMENT && (mergedSecrets.DX_ENVIRONMENT = process.env.DX_ENVIRONMENT);
451
+ process.env.DX_RELEASE && (mergedSecrets.DX_RELEASE = process.env.DX_RELEASE);
452
+ process.env.SENTRY_DESTINATION && (mergedSecrets.SENTRY_DESTINATION = process.env.SENTRY_DESTINATION);
453
+ process.env.TELEMETRY_API_KEY && (mergedSecrets.TELEMETRY_API_KEY = process.env.TELEMETRY_API_KEY);
454
+ process.env.IPDATA_API_KEY && (mergedSecrets.IPDATA_API_KEY = process.env.IPDATA_API_KEY);
455
+ process.env.DATADOG_API_KEY && (mergedSecrets.DATADOG_API_KEY = process.env.DATADOG_API_KEY);
456
+ process.env.DATADOG_APP_KEY && (mergedSecrets.DATADOG_APP_KEY = process.env.DATADOG_APP_KEY);
457
+ return mergedSecrets;
447
458
  } else {
448
459
  (0, import_invariant.invariant)(config, "runtime config is required", {
449
460
  F: __dxlog_file3,
450
- L: 115,
461
+ L: 128,
451
462
  S: this,
452
463
  A: [
453
464
  "config",
@@ -459,7 +470,7 @@ var Observability = class {
459
470
  config
460
471
  }, {
461
472
  F: __dxlog_file3,
462
- L: 116,
473
+ L: 129,
463
474
  S: this,
464
475
  C: (f, a) => f(...a)
465
476
  });
@@ -510,6 +521,9 @@ var Observability = class {
510
521
  scope
511
522
  });
512
523
  }
524
+ getTag(key) {
525
+ return this._tags.get(key);
526
+ }
513
527
  // TODO(wittjosiah): Improve privacy of telemetry identifiers. See `getTelemetryIdentifier`.
514
528
  async setIdentityTags(client) {
515
529
  client.services.services.IdentityService.queryIdentity().subscribe((idqr) => {
@@ -518,7 +532,7 @@ var Observability = class {
518
532
  idqr
519
533
  }, {
520
534
  F: __dxlog_file3,
521
- L: 184,
535
+ L: 201,
522
536
  S: this,
523
537
  C: (f, a) => f(...a)
524
538
  });
@@ -532,7 +546,7 @@ var Observability = class {
532
546
  device: dqr
533
547
  }, {
534
548
  F: __dxlog_file3,
535
- L: 193,
549
+ L: 210,
536
550
  S: this,
537
551
  C: (f, a) => f(...a)
538
552
  });
@@ -540,7 +554,7 @@ var Observability = class {
540
554
  }
541
555
  (0, import_invariant.invariant)(dqr, "empty response from device service", {
542
556
  F: __dxlog_file3,
543
- L: 196,
557
+ L: 213,
544
558
  S: this,
545
559
  A: [
546
560
  "dqr",
@@ -553,7 +567,7 @@ var Observability = class {
553
567
  device: dqr
554
568
  }, {
555
569
  F: __dxlog_file3,
556
- L: 200,
570
+ L: 217,
557
571
  S: this,
558
572
  C: (f, a) => f(...a)
559
573
  });
@@ -584,7 +598,7 @@ var Observability = class {
584
598
  } else {
585
599
  (0, import_log.log)("datadog disabled", void 0, {
586
600
  F: __dxlog_file3,
587
- L: 230,
601
+ L: 247,
588
602
  S: this,
589
603
  C: (f, a) => f(...a)
590
604
  });
@@ -604,7 +618,7 @@ var Observability = class {
604
618
  updateSignalMetrics.on(this._ctx, async (networkStatus) => {
605
619
  (0, import_log.log)("send signal metrics", void 0, {
606
620
  F: __dxlog_file3,
607
- L: 250,
621
+ L: 267,
608
622
  S: this,
609
623
  C: (f, a) => f(...a)
610
624
  });
@@ -654,7 +668,7 @@ var Observability = class {
654
668
  updateSpaceMetrics.on(this._ctx, async () => {
655
669
  (0, import_log.log)("send space update", void 0, {
656
670
  F: __dxlog_file3,
657
- L: 302,
671
+ L: 319,
658
672
  S: this,
659
673
  C: (f, a) => f(...a)
660
674
  });
@@ -701,7 +715,7 @@ var Observability = class {
701
715
  const platform = await client.services.services.SystemService?.getPlatform();
702
716
  (0, import_invariant.invariant)(platform, "platform is required", {
703
717
  F: __dxlog_file3,
704
- L: 345,
718
+ L: 362,
705
719
  S: this,
706
720
  A: [
707
721
  "platform",
@@ -723,7 +737,7 @@ var Observability = class {
723
737
  (0, import_async.scheduleTaskInterval)(this._ctx, async () => {
724
738
  (0, import_log.log)("platform", void 0, {
725
739
  F: __dxlog_file3,
726
- L: 363,
740
+ L: 380,
727
741
  S: this,
728
742
  C: (f, a) => f(...a)
729
743
  });
@@ -732,7 +746,7 @@ var Observability = class {
732
746
  platform: platform2
733
747
  }, {
734
748
  F: __dxlog_file3,
735
- L: 366,
749
+ L: 383,
736
750
  S: this,
737
751
  C: (f, a) => f(...a)
738
752
  });
@@ -745,7 +759,7 @@ var Observability = class {
745
759
  error
746
760
  }, {
747
761
  F: __dxlog_file3,
748
- L: 373,
762
+ L: 390,
749
763
  S: this,
750
764
  C: (f, a) => f(...a)
751
765
  }));
@@ -769,7 +783,7 @@ var Observability = class {
769
783
  } else {
770
784
  (0, import_log.log)("segment disabled", void 0, {
771
785
  F: __dxlog_file3,
772
- L: 398,
786
+ L: 415,
773
787
  S: this,
774
788
  C: (f, a) => f(...a)
775
789
  });
@@ -801,7 +815,7 @@ var Observability = class {
801
815
  options: this._errorReportingOptions
802
816
  }, {
803
817
  F: __dxlog_file3,
804
- L: 427,
818
+ L: 444,
805
819
  S: this,
806
820
  C: (f, a) => f(...a)
807
821
  });
@@ -824,7 +838,7 @@ var Observability = class {
824
838
  } else {
825
839
  (0, import_log.log)("sentry disabled", void 0, {
826
840
  F: __dxlog_file3,
827
- L: 450,
841
+ L: 467,
828
842
  S: this,
829
843
  C: (f, a) => f(...a)
830
844
  });
@@ -858,4 +872,4 @@ var Observability = class {
858
872
  storeObservabilityDisabled,
859
873
  storeObservabilityGroup
860
874
  });
861
- //# sourceMappingURL=chunk-CBMRJXSL.cjs.map
875
+ //# sourceMappingURL=chunk-ED364ZBZ.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/observability.ts", "../../../src/cli-observability-secrets.json", "../../../src/helpers/browser-observability.ts", "../../../src/helpers/common.ts", "../../../src/helpers/node-observability.ts", "../../../src/helpers/map-spaces.ts", "../../../src/helpers/setup-telemetry-listeners.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Event, scheduleTaskInterval } from '@dxos/async';\nimport { type Client, type Config } from '@dxos/client';\nimport { type Space } from '@dxos/client-protocol';\nimport { Context } from '@dxos/context';\nimport { invariant } from '@dxos/invariant';\nimport { log } from '@dxos/log';\nimport { ConnectionState } from '@dxos/network-manager';\nimport { DeviceKind, type NetworkStatus, Platform } from '@dxos/protocols/proto/dxos/client/services';\nimport { isNode } from '@dxos/util';\n\nimport buildSecrets from './cli-observability-secrets.json';\nimport { DatadogMetrics } from './datadog';\nimport { type IPData, getTelemetryIdentifier, mapSpaces } from './helpers';\nimport { SegmentTelemetry, type EventOptions, type PageOptions } from './segment';\nimport {\n captureException as sentryCaptureException,\n enableSentryLogProcessor,\n configureTracing as sentryConfigureTracing,\n init as sentryInit,\n type InitOptions,\n setTag as sentrySetTag,\n} from './sentry';\n\nconst SPACE_METRICS_MIN_INTERVAL = 1000 * 60;\n// const DATADOG_IDLE_INTERVAL = 1000 * 60 * 5;\nconst DATADOG_IDLE_INTERVAL = 1000 * 60 * 1;\n\n// Secrets? EnvironmentConfig?\n\nexport type ObservabilitySecrets = {\n DX_ENVIRONMENT: string | null;\n DX_RELEASE: string | null;\n SENTRY_DESTINATION: string | null;\n TELEMETRY_API_KEY: string | null;\n IPDATA_API_KEY: string | null;\n DATADOG_API_KEY: string | null;\n DATADOG_APP_KEY: string | null;\n};\n\nexport type Mode = 'basic' | 'full' | 'disabled';\nexport type TagScope = 'errors' | 'telemetry' | 'metrics' | 'all';\n\nexport type ObservabilityOptions = {\n /// The webapp (e.g. 'composer.dxos.org'), 'cli', or 'agent'.\n namespace: string;\n // TODO(nf): make platform a required extension?\n // platform: Platform;\n config?: Config;\n secrets?: Record<string, string>;\n group?: string;\n mode?: Mode;\n\n telemetry?: {\n batchSize?: number;\n };\n\n errorLog?: {\n sentryInitOptions?: InitOptions;\n logProcessor?: boolean;\n };\n};\n\n/*\n * Observability provides a common interface for error logging, metrics, and telemetry.\n * It currently provides these capabilities using Sentry, Datadog, and Segment.\n */\nexport class Observability {\n // TODO(wittjosiah): Generic metrics interface.\n private _metrics?: DatadogMetrics;\n // TODO(wittjosiah): Generic telemetry interface.\n private _telemetryBatchSize: number;\n private _telemetry?: SegmentTelemetry;\n // TODO(wittjosiah): Generic error logging interface.\n private _errorReportingOptions?: InitOptions;\n private _errorLogProcessor: boolean;\n\n private _secrets: ObservabilitySecrets;\n private _namespace: string;\n private _config?: Config;\n private _mode: Mode = 'disabled';\n private _group?: string;\n // TODO(nf): accept upstream context?\n private _ctx = new Context();\n private _tags = new Map<string, { value: string; scope: TagScope }>();\n\n // TODO(nf): make platform a required extension?\n constructor({ namespace, config, secrets, group, mode, telemetry, errorLog }: ObservabilityOptions) {\n this._namespace = namespace;\n this._config = config;\n this._mode = mode ?? 'disabled';\n this._group = group;\n this._secrets = this._loadSecrets(config, secrets);\n this._telemetryBatchSize = telemetry?.batchSize ?? 30;\n this._errorReportingOptions = errorLog?.sentryInitOptions;\n this._errorLogProcessor = errorLog?.logProcessor ?? false;\n\n if (this._group) {\n this.setTag('group', this._group);\n }\n this.setTag('namespace', this._namespace);\n\n if (this._mode === 'full') {\n // TODO(nf): set group and hostname?\n }\n }\n\n private _loadSecrets(config: Config | undefined, secrets?: Record<string, string>) {\n if (isNode()) {\n const mergedSecrets = {\n ...(buildSecrets as ObservabilitySecrets),\n ...secrets,\n };\n\n process.env.DX_ENVIRONMENT && (mergedSecrets.DX_ENVIRONMENT = process.env.DX_ENVIRONMENT);\n process.env.DX_RELEASE && (mergedSecrets.DX_RELEASE = process.env.DX_RELEASE);\n process.env.SENTRY_DESTINATION && (mergedSecrets.SENTRY_DESTINATION = process.env.SENTRY_DESTINATION);\n process.env.TELEMETRY_API_KEY && (mergedSecrets.TELEMETRY_API_KEY = process.env.TELEMETRY_API_KEY);\n process.env.IPDATA_API_KEY && (mergedSecrets.IPDATA_API_KEY = process.env.IPDATA_API_KEY);\n process.env.DATADOG_API_KEY && (mergedSecrets.DATADOG_API_KEY = process.env.DATADOG_API_KEY);\n process.env.DATADOG_APP_KEY && (mergedSecrets.DATADOG_APP_KEY = process.env.DATADOG_APP_KEY);\n\n return mergedSecrets;\n } else {\n invariant(config, 'runtime config is required');\n log('config', { rtc: this._secrets, config });\n return {\n DX_ENVIRONMENT: config.get('runtime.app.env.DX_ENVIRONMENT'),\n DX_RELEASE: config.get('runtime.app.env.DX_RELEASE'),\n SENTRY_DESTINATION: config.get('runtime.app.env.DX_SENTRY_DESTINATION'),\n TELEMETRY_API_KEY: config.get('runtime.app.env.DX_TELEMETRY_API_KEY'),\n IPDATA_API_KEY: config.get('runtime.app.env.DX_IPDATA_API_KEY'),\n DATADOG_API_KEY: config.get('runtime.app.env.DX_DATADOG_API_KEY'),\n DATADOG_APP_KEY: config.get('runtime.app.env.DX_DATADOG_APP_KEY'),\n ...secrets,\n };\n }\n }\n\n initialize() {\n this._initMetrics();\n this._initTelemetry();\n this._initErrorLogs();\n }\n\n async close() {\n await this._ctx.dispose();\n\n // TODO(wittjosiah): Remove telemetry, etc. scripts.\n }\n\n setMode(mode: Mode) {\n this._mode = mode;\n }\n\n get mode() {\n return this._mode;\n }\n\n get group() {\n return this._group;\n }\n\n get enabled() {\n return this._mode !== 'disabled';\n }\n\n //\n // Tags\n //\n\n setTag(key: string, value: string, scope?: TagScope) {\n if (this.enabled && (scope === undefined || scope === 'all' || scope === 'errors')) {\n sentrySetTag(key, value);\n }\n if (!scope) {\n scope = 'all';\n }\n this._tags.set(key, { value, scope });\n }\n\n getTag(key: string) {\n return this._tags.get(key);\n }\n\n addIPDataTelemetryTags = (ipData: IPData) => {\n this.setTag('city', ipData.city, 'telemetry');\n this.setTag('region', ipData.region, 'telemetry');\n this.setTag('country', ipData.country, 'telemetry');\n ipData.latitude && this.setTag('latitude', ipData.latitude.toString(), 'telemetry');\n ipData.longitude && this.setTag('longitude', ipData.longitude.toString(), 'telemetry');\n };\n\n // TODO(wittjosiah): Improve privacy of telemetry identifiers. See `getTelemetryIdentifier`.\n async setIdentityTags(client: Client) {\n client.services.services.IdentityService!.queryIdentity().subscribe((idqr) => {\n if (!idqr?.identity?.identityKey) {\n log('empty response from identity service', { idqr });\n return;\n }\n\n this.setTag('identityKey', idqr.identity.identityKey.truncate());\n });\n\n client.services.services.DevicesService!.queryDevices().subscribe((dqr) => {\n if (!dqr || !dqr.devices || dqr.devices.length === 0) {\n log('empty response from device service', { device: dqr });\n return;\n }\n invariant(dqr, 'empty response from device service');\n\n const thisDevice = dqr.devices.find((device) => device.kind === DeviceKind.CURRENT);\n if (!thisDevice) {\n log('no current device', { device: dqr });\n return;\n }\n this.setTag('deviceKey', thisDevice.deviceKey.truncate());\n if (thisDevice.profile?.label) {\n this.setTag('deviceProfile', thisDevice.profile.label);\n }\n });\n }\n\n //\n // Metrics\n //\n\n private _initMetrics() {\n if (this.enabled && this._secrets.DATADOG_API_KEY) {\n this._metrics = new DatadogMetrics({\n apiKey: this._secrets.DATADOG_API_KEY,\n getTags: () =>\n Object.fromEntries(\n Array.from(this._tags)\n .filter(([key, value]) => {\n return value.scope === 'all' || value.scope === 'metrics';\n })\n .map(([key, value]) => [key, value.value]),\n ),\n // TODO(nf): move/refactor from telementryContext, needed to read CORS proxy\n config: this._config!,\n });\n } else {\n log('datadog disabled');\n }\n }\n\n /**\n * Gauge metric.\n *\n * The default implementation uses Datadog.\n */\n gauge(name: string, value: number | any, extraTags?: any) {\n this._metrics?.gauge(name, value, extraTags);\n }\n\n // TODO(nf): Refactor into ObservabilityExtensions.\n\n startNetworkMetrics(client: Client) {\n const updateSignalMetrics = new Event<NetworkStatus>();\n\n // const lcsh = (csp as LocalClientServices).host;\n updateSignalMetrics.on(this._ctx, async (networkStatus) => {\n log('send signal metrics');\n (networkStatus.signaling as NetworkStatus.Signal[]).forEach(({ server, state }) => {\n this.gauge('dxos.client.network.signal.connectionState', state, { server });\n });\n\n let swarmCount = 0;\n const connectionStates = new Map<string, number>();\n for (const state in ConnectionState) {\n connectionStates.set(state, 0);\n }\n\n let totalReadBufferSize = 0;\n let totalWriteBufferSize = 0;\n let totalChannelBufferSize = 0;\n\n networkStatus.connectionInfo?.forEach((connectionInfo) => {\n swarmCount++;\n\n for (const conn of connectionInfo.connections ?? []) {\n connectionStates.set(conn.state, (connectionStates.get(conn.state) ?? 0) + 1);\n totalReadBufferSize += conn.readBufferSize ?? 0;\n totalWriteBufferSize += conn.writeBufferSize ?? 0;\n\n for (const stream of conn.streams ?? []) {\n totalChannelBufferSize += stream.writeBufferSize ?? 0;\n }\n }\n\n this.gauge('dxos.client.network.swarm.count', swarmCount);\n for (const state in ConnectionState) {\n this.gauge('dxos.client.network.connection.count', connectionStates.get(state) ?? 0, { state });\n }\n this.gauge('dxox.client.network.totalReadBufferSize', totalReadBufferSize);\n this.gauge('dxos.client.network.totalWriteBufferSize', totalWriteBufferSize);\n this.gauge('dxos.client.network.totalChannelBufferSize', totalChannelBufferSize);\n });\n });\n\n client.services.services.NetworkService?.queryStatus().subscribe((networkStatus) => {\n updateSignalMetrics.emit(networkStatus);\n });\n\n // scheduleTaskInterval(ctx, async () => updateSignalMetrics.emit(), DATADOG_IDLE_INTERVAL);\n }\n\n startSpacesMetrics(client: Client, namespace: string) {\n const spaces = client.spaces.get();\n const subscriptions = new Map<string, { unsubscribe: () => void }>();\n this._ctx.onDispose(() => subscriptions.forEach((subscription) => subscription.unsubscribe()));\n\n const updateSpaceMetrics = new Event<Space>().debounce(SPACE_METRICS_MIN_INTERVAL);\n updateSpaceMetrics.on(this._ctx, async () => {\n log('send space update');\n for (const data of mapSpaces(spaces, { truncateKeys: true })) {\n // Metrics\n this.gauge('dxos.client.space.members', data.members, { key: data.key });\n this.gauge('dxos.client.space.objects', data.objects, { key: data.key });\n this.gauge('dxos.client.space.epoch', data.epoch, { key: data.key });\n this.gauge('dxos.client.space.currentDataMutations', data.currentDataMutations, { key: data.key });\n\n // Telemetry\n this.event({\n identityId: getTelemetryIdentifier(client),\n name: `${namespace}.space.update`,\n properties: data,\n });\n }\n });\n\n const subscribeToSpaceUpdate = (space: Space) =>\n space.pipeline.subscribe({\n next: () => {\n updateSpaceMetrics.emit();\n },\n });\n\n spaces.forEach((space) => {\n subscriptions.set(space.key.toHex(), subscribeToSpaceUpdate(space));\n });\n\n client.spaces.subscribe({\n next: async (spaces) => {\n spaces\n .filter((space) => !subscriptions.has(space.key.toHex()))\n .forEach((space) => {\n subscriptions.set(space.key.toHex(), subscribeToSpaceUpdate(space));\n });\n },\n });\n\n scheduleTaskInterval(this._ctx, async () => updateSpaceMetrics.emit(), DATADOG_IDLE_INTERVAL);\n }\n\n async startRuntimeMetrics(client: Client, frequency: number = DATADOG_IDLE_INTERVAL) {\n const platform = await client.services.services.SystemService?.getPlatform();\n invariant(platform, 'platform is required');\n\n this.setTag('platform_type', Platform.PLATFORM_TYPE[platform.type as number].toLowerCase());\n if (this._mode === 'full') {\n // platform[foo] does not work?\n if (platform.platform) {\n this.setTag('platform', platform.platform);\n }\n if (platform.arch) {\n this.setTag('arch', platform.arch);\n }\n if (platform.runtime) {\n this.setTag('runtime', platform.runtime);\n }\n }\n scheduleTaskInterval(\n this._ctx,\n async () => {\n log('platform');\n client.services.services.SystemService?.getPlatform()\n .then((platform) => {\n log('platform', { platform });\n if (platform.memory) {\n this.gauge('dxos.client.runtime.rss', platform.memory.rss);\n this.gauge('dxos.client.runtime.heapTotal', platform.memory.heapTotal);\n this.gauge('dxos.client.runtime.heapUsed', platform.memory.heapUsed);\n }\n })\n .catch((error) => log('platform error', { error }));\n },\n frequency,\n );\n }\n\n //\n // Telemetry\n //\n\n private _initTelemetry() {\n if (this._secrets.TELEMETRY_API_KEY && this._mode !== 'disabled') {\n this._telemetry = new SegmentTelemetry({\n apiKey: this._secrets.TELEMETRY_API_KEY,\n batchSize: this._telemetryBatchSize,\n getTags: () =>\n Object.fromEntries(\n Array.from(this._tags)\n .filter(([key, value]) => {\n return value.scope === 'all' || value.scope === 'telemetry';\n })\n .map(([key, value]) => [key, value.value]),\n ),\n });\n } else {\n log('segment disabled');\n }\n }\n\n /**\n * A telemetry event.\n *\n * The default implementation uses Segment.\n */\n event(options: EventOptions) {\n this._telemetry?.event(options);\n }\n\n /**\n * A telemetry page view.\n *\n * The default implementation uses Segment.\n */\n page(options: PageOptions) {\n this._telemetry?.page(options);\n }\n\n //\n // Error Logs\n //\n\n private _initErrorLogs() {\n if (this._secrets.SENTRY_DESTINATION && this._mode !== 'disabled') {\n // TODO(nf): refactor package into this one?\n log.info('Initializing Sentry', {\n dest: this._secrets.SENTRY_DESTINATION,\n options: this._errorReportingOptions,\n });\n sentryInit({\n ...this._errorReportingOptions,\n destination: this._secrets.SENTRY_DESTINATION,\n scrubFilenames: this._mode !== 'full',\n });\n if (this._errorReportingOptions?.tracing) {\n sentryConfigureTracing();\n }\n // TODO(nf): set platform at instantiation? needed for node.\n if (this._errorLogProcessor) {\n enableSentryLogProcessor();\n }\n // TODO(nf): is this different than passing as properties in options?\n this._tags.forEach((v, k) => {\n if (v.scope === 'all' || v.scope === 'errors') {\n sentrySetTag(k, v.value);\n }\n });\n } else {\n log('sentry disabled');\n }\n }\n\n /**\n * Manually capture an exception.\n *\n * The default implementation uses Sentry.\n */\n captureException(err: any) {\n if (this.enabled) {\n sentryCaptureException(err);\n }\n }\n}\n", "{\n \"SENTRY_DESTINATION\": \"https://2647916221e643869965e78469479aa4@o4504012000067584.ingest.sentry.io/4504012027265029\",\n \"TELEMETRY_API_KEY\": \"B00QG6PtJJrJ0VVFe0H5a6bcUUShKyZM\",\n \"IPDATA_API_KEY\": \"73dfdecdf979c18f07d50cf841bbdd9e589f237256326ac8cca23786\",\n \"DATADOG_API_KEY\": null,\n \"DATADOG_APP_KEY\": null\n}", "//\n// Copyright 2022 DXOS.org\n//\n\n// NOTE: localStorage is not available in web workers.\nimport * as localForage from 'localforage';\n\n// import { type Platform } from '@dxos/client-services';\n// import { type InitOptions as TelemetryInitOptions } from '@dxos/telemetry';\n\nimport type { Config } from '@dxos/client';\nimport { log } from '@dxos/log';\n\nimport type { IPData } from './common';\nimport type { Mode, Observability } from '../observability';\n\nexport const OBSERVABILITY_DISABLED_KEY = 'observability-disabled';\nexport const OBSERVABILITY_GROUP_KEY = 'observability-group';\n\nexport const isObservabilityDisabled = async (namespace: string): Promise<boolean> => {\n try {\n return (await localForage.getItem(`${namespace}:${OBSERVABILITY_DISABLED_KEY}`)) === 'true';\n } catch (err) {\n log.catch('Failed to check if observability is disabled, assuming it is', err);\n return true;\n }\n};\n\nexport const storeObservabilityDisabled = async (namespace: string, value: boolean) => {\n try {\n await localForage.setItem(`${namespace}:${OBSERVABILITY_DISABLED_KEY}`, String(value));\n } catch (err) {\n log.catch('Failed to store observability disabled', err);\n }\n};\n\nexport const getObservabilityGroup = async (namespace: string): Promise<string | undefined> => {\n try {\n return (await localForage.getItem(`${namespace}:${OBSERVABILITY_GROUP_KEY}`)) ?? undefined;\n } catch (err) {\n log.catch('Failed to get observability group', err);\n }\n};\n\nexport const storeObservabilityGroup = async (namespace: string, value: string) => {\n try {\n await localForage.setItem(`${namespace}:${OBSERVABILITY_GROUP_KEY}`, value);\n } catch (err) {\n log.catch('Failed to store observability group', err);\n }\n};\n\nexport type AppObservabilityOptions = {\n namespace: string;\n config: Config;\n mode?: Mode;\n tracingEnable?: boolean;\n replayEnable?: boolean;\n // TODO(nf): options for providers?\n};\n\n// TODO(wittjosiah): Store preference for disabling observability.\n// At minimum should be stored locally (i.e., localstorage), possibly in halo preference.\n// Needs to be hooked up to settings page for user visibility.\nexport const initializeAppObservability = async ({\n namespace,\n config,\n mode = 'basic',\n tracingEnable = true,\n replayEnable = true,\n}: AppObservabilityOptions): Promise<Observability> => {\n log('initializeAppObservability', { config });\n\n /*\n const platform = (await client.services.services.SystemService?.getPlatform()) as Platform;\n if (!platform) {\n log.error('failed to get platform, could not initialize observability');\n return undefined;\n }\n */\n\n const group = (await getObservabilityGroup(namespace)) ?? undefined;\n const release = `${namespace}@${config.get('runtime.app.build.version')}`;\n const environment = config.get('runtime.app.env.DX_ENVIRONMENT');\n\n const observabilityDisabled = await isObservabilityDisabled(namespace);\n\n const { Observability } = await import('../observability');\n\n // TODO(nf): configure mode\n const observability = new Observability({\n namespace,\n group,\n mode,\n config,\n errorLog: {\n sentryInitOptions: {\n environment,\n release,\n tracing: tracingEnable,\n replay: replayEnable,\n // TODO(wittjosiah): Configure these.\n sampleRate: 1.0,\n replaySampleRate: 0.1,\n replaySampleRateOnError: 1.0,\n },\n },\n });\n\n // global kill switch\n if (observabilityDisabled) {\n observability.setMode('disabled');\n log.info('observability disabled');\n return observability;\n }\n\n try {\n const getIPData = async (config: Config): Promise<IPData | void> => {\n const IP_DATA_CACHE_TIMEOUT = 6 * 60 * 60 * 1000; // 6 hours\n type CachedIPData = {\n data: IPData;\n timestamp: number;\n };\n\n // Check cache first.\n const cachedData: null | CachedIPData = await localForage.getItem('dxos:observability:ipdata');\n if (cachedData && cachedData.timestamp > Date.now() - IP_DATA_CACHE_TIMEOUT) {\n return cachedData.data;\n }\n\n // Fetch data if not cached.\n const IPDATA_API_KEY = config.get('runtime.app.env.DX_IPDATA_API_KEY');\n if (IPDATA_API_KEY) {\n return fetch(`https://api.ipdata.co?api-key=${IPDATA_API_KEY}`)\n .then((res) => res.json())\n .then((data) => {\n // Cache data.\n localForage\n .setItem('dxos:observability:ipdata', {\n data,\n timestamp: Date.now(),\n })\n .catch((err) => observability.captureException(err));\n\n return data;\n })\n .catch((err) => observability.captureException(err));\n }\n };\n\n // TODO(nf): plugin state?\n\n // TODO(nf): should provide capability to init Sentry earlier in booting process to capture errors during initialization.\n\n observability.initialize();\n\n const ipData = await getIPData(config);\n\n ipData && observability.addIPDataTelemetryTags(ipData);\n\n if (typeof navigator !== 'undefined' && navigator.storage?.estimate) {\n setInterval(async () => {\n try {\n const storageEstimate = await navigator.storage.estimate();\n storageEstimate.usage && observability.setTag('storageUsage', storageEstimate.usage.toString(), 'telemetry');\n storageEstimate.quota && observability.setTag('storageQuota', storageEstimate.quota.toString(), 'telemetry');\n } catch (error) {\n log.warn('Failed to run estimate()', error);\n }\n }, 10e3);\n }\n } catch (err: any) {\n log.error('Failed to initialize app observability', err);\n }\n\n return observability;\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport type { Client } from '@dxos/client';\n\n// TODO(wittjosiah): Improve privacy of telemetry identifiers.\n// - Identifier should be generated client-side with no attachment to identity.\n// - Identifier can then be reset by user.\n// - Identifier can be synced via HALO to allow for correlation of events bewteen devices.\n// - Identifier should also be stored outside of HALO such that it is available immediately on startup.\nexport const getTelemetryIdentifier = (client: Client) => {\n if (!client?.initialized) {\n return undefined;\n }\n\n const identity = client.halo.identity.get();\n if (identity) {\n return identity.identityKey.truncate();\n }\n\n return undefined;\n};\n\nexport type IPData = { city: string; region: string; country: string; latitude: number; longitude: number };\n", "//\n// Copyright 2022 DXOS.org\n//\nimport yaml from 'js-yaml';\nimport { existsSync, statSync } from 'node:fs';\nimport { mkdir, readFile, writeFile } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { v4 as uuid, validate as validateUuid } from 'uuid';\n\nimport type { Config } from '@dxos/client';\nimport { log } from '@dxos/log';\n\nimport { Observability, type Mode } from '../observability';\n\n/**\n * Print observability banner once per installation.\n */\nexport const showObservabilityBanner = async (configDir: string, bannercb: (input: string) => void) => {\n const path = join(configDir, '.observability-banner-printed');\n if (existsSync(path)) {\n return;\n }\n bannercb(\n // eslint-disable-next-line no-multi-str\n 'Basic observability data will be sent to the DXOS team in order to improve the product. This includes \\\n performance metrics, error logs, and usage data. No personally identifiable information, other than your \\\n public key, is included with this data and no private data ever leaves your devices. To disable sending \\\n observability data, set the environment variable DX_DISABLE_OBSERVABILITY=true.',\n );\n\n await writeFile(path, '', 'utf-8');\n};\n\nexport const getObservabilityState = async (configDir: string): Promise<PersistentObservabilityState> => {\n // check whether configDir exists and if it's a directory\n\n if (existsSync(configDir)) {\n if (!statSync(configDir).isDirectory()) {\n throw new Error(`Config directory ${configDir} exists but is not a directory`);\n }\n } else {\n await mkdir(configDir, { recursive: true });\n }\n\n const idPath = join(configDir, 'observability.yml');\n if (existsSync(idPath)) {\n const context = await readFile(idPath, 'utf-8');\n return validate(context) ?? initializeState(idPath);\n }\n\n return initializeState(idPath);\n};\n\nexport type TelemetryContext = {\n mode: Mode;\n installationId?: string;\n group?: string;\n timezone: string;\n runtime: string;\n os: string;\n arch: string;\n ci: boolean;\n [key: string]: any;\n};\n\nexport type PersistentObservabilityState = {\n installationId: string;\n group?: string;\n mode: Mode;\n};\n\n// create initial state and write to file, using environment variables to override defaults.\nconst initializeState = async (idPath: string): Promise<PersistentObservabilityState> => {\n // TODO(nf): read initial values from config or seed file\n const observabilityState = {\n installationId: uuid(),\n group: process.env.DX_OBSERVABILITY_GROUP ?? undefined,\n mode: (process.env.DX_DISABLE_OBSERVABILITY ? 'disabled' : process.env.DX_OBSERVABILITY_MODE ?? 'basic') as Mode,\n };\n\n await writeFile(\n idPath,\n '# This file is automatically generated by the @dxos/cli.\\n' + yaml.dump(observabilityState),\n 'utf-8',\n );\n\n return observabilityState;\n};\n\nconst validate = (contextString: string) => {\n const context = yaml.load(contextString) as PersistentObservabilityState;\n if (Boolean(context.installationId) && validateUuid(context.installationId!)) {\n return {\n ...context,\n mode: process.env.DX_DISABLE_OBSERVABILITY ? 'disabled' : context.mode ?? 'basic',\n };\n }\n};\n\nexport type NodeObservabilityOptions = {\n installationId: string;\n group?: string;\n namespace: string;\n config: Config;\n mode?: Mode;\n tracingEnable?: boolean;\n replayEnable?: boolean;\n // TODO(nf): options for providers?\n};\n\nexport const initializeNodeObservability = async ({\n namespace,\n config,\n installationId,\n group,\n mode = 'basic',\n tracingEnable = true,\n replayEnable = true,\n}: NodeObservabilityOptions): Promise<Observability> => {\n log('initializeCliObservability', { config });\n\n const release = `${namespace}@${config.get('runtime.app.build.version')}`;\n const environment = config.get('runtime.app.env.DX_ENVIRONMENT');\n\n const observability = new Observability({\n namespace,\n group,\n mode,\n errorLog: {\n sentryInitOptions: {\n environment,\n release,\n // TODO(wittjosiah): Configure this.\n sampleRate: 1.0,\n },\n logProcessor: true,\n },\n });\n\n observability.setTag('installationId', installationId);\n\n const IPDATA_API_KEY = config.get('runtime.app.env.DX_IPDATA_API_KEY');\n try {\n const res = await fetch(`https://api.ipdata.co/?api-key=${IPDATA_API_KEY}`);\n const ipData = await res.json();\n ipData && observability.addIPDataTelemetryTags(ipData);\n } catch (err) {\n observability?.captureException(err);\n }\n return observability;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport type { Space } from '@dxos/client-protocol';\n\nexport type MapSpacesOptions = {\n verbose?: boolean;\n truncateKeys?: boolean;\n};\n\nexport const mapSpaces = (spaces: Space[], options: MapSpacesOptions = { verbose: false, truncateKeys: false }) => {\n return spaces.map((space) => {\n // TODO(burdon): Factor out.\n // TODO(burdon): Agent needs to restart before `ready` is available.\n const { open, ready } = space.internal.data.metrics ?? {};\n const startup = open && ready && ready.getTime() - open.getTime();\n\n // TODO(burdon): Get feeds from client-services if verbose (factor out from devtools/diagnostics).\n // const host = client.services.services.DevtoolsHost!;\n const pipeline = space.internal.data.pipeline;\n const startDataMutations = pipeline?.currentEpoch?.subject.assertion.timeframe.totalMessages() ?? 0;\n const epoch = pipeline?.currentEpoch?.subject.assertion.number;\n // const appliedEpoch = pipeline?.appliedEpoch?.subject.assertion.number;\n const currentDataMutations = pipeline?.currentDataTimeframe?.totalMessages() ?? 0;\n const totalDataMutations = pipeline?.targetDataTimeframe?.totalMessages() ?? 0;\n\n return {\n // TODO(nf): truncate keys for DD?\n key: space.key.truncate(),\n open: space.isOpen,\n members: space.members.get().length,\n objects: space.db.query().objects.length,\n startup,\n epoch,\n // appliedEpoch,\n startDataMutations,\n currentDataMutations,\n totalDataMutations,\n\n // TODO(burdon): Negative?\n progress: (\n Math.min(Math.abs((currentDataMutations - startDataMutations) / (totalDataMutations - startDataMutations)), 1) *\n 100\n ).toFixed(0),\n };\n });\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport type { Client } from '@dxos/client';\n\nimport { getTelemetryIdentifier } from './common';\nimport type { Observability } from '../observability';\n\nlet lastFocusEvent = new Date();\nlet totalTime = 0;\n\nexport const setupTelemetryListeners = (namespace: string, client: Client, observability: Observability) => {\n const clickCallback = (event: any) => {\n if (observability.group === 'dxos' && event.target && !event.target.id) {\n // TODO(wittjosiah): Use @dxos/log so these can be filtered.\n console.warn('Click event on element without id:', event.target);\n }\n\n setTimeout(() =>\n observability.event({\n identityId: getTelemetryIdentifier(client),\n name: `${namespace}.window.click`,\n properties: {\n href: window.location.href,\n id: (event.target as HTMLElement)?.id,\n path: (event.path as HTMLElement[])\n ?.filter((el) => Boolean(el.tagName))\n .map((el) => `${el.tagName.toLowerCase()}${el.id ? `#${el.id}` : ''}`)\n .reverse()\n .join('>'),\n },\n }),\n );\n };\n\n const focusCallback = () => {\n const now = new Date();\n setTimeout(() =>\n observability.event({\n identityId: getTelemetryIdentifier(client),\n name: `${namespace}.window.focus`,\n properties: {\n href: window.location.href,\n timeAway: now.getTime() - lastFocusEvent.getTime(),\n },\n }),\n );\n lastFocusEvent = now;\n };\n\n const blurCallback = () => {\n const now = new Date();\n const timeSpent = now.getTime() - lastFocusEvent.getTime();\n setTimeout(() =>\n observability.event({\n identityId: getTelemetryIdentifier(client),\n name: `${namespace}.window.blur`,\n properties: {\n href: window.location.href,\n timeSpent,\n },\n }),\n );\n lastFocusEvent = now;\n totalTime = totalTime + timeSpent;\n };\n\n const unloadCallback = () => {\n setTimeout(() =>\n observability.event({\n identityId: getTelemetryIdentifier(client),\n name: `${namespace}.page.unload`,\n properties: {\n href: window.location.href,\n timeSpent: totalTime,\n },\n }),\n );\n };\n\n const errorCallback = (event: ErrorEvent) => {\n setTimeout(() =>\n observability.event({\n identityId: getTelemetryIdentifier(client),\n name: `${namespace}.window.error`,\n properties: {\n href: window.location.href,\n message: event.message,\n filename: event.filename,\n stack: (event.error as Error).stack,\n },\n }),\n );\n };\n\n window.addEventListener('click', clickCallback, true);\n window.addEventListener('focus', focusCallback);\n window.addEventListener('blur', blurCallback);\n window.addEventListener('beforeunload', unloadCallback);\n window.addEventListener('error', errorCallback);\n\n return () => {\n window.removeEventListener('click', clickCallback, true);\n window.removeEventListener('focus', focusCallback);\n window.removeEventListener('blur', blurCallback);\n window.removeEventListener('beforeunload', unloadCallback);\n window.removeEventListener('error', errorCallback);\n };\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAA4C;AAG5C,qBAAwB;AACxB,uBAA0B;AAC1B,iBAAoB;AACpB,6BAAgC;AAChC,sBAAyD;AACzD,kBAAuB;AEPvB,kBAA6B;AAM7B,IAAAA,cAAoB;AERpB,qBAAiB;AACjB,qBAAqC;AACrC,sBAA2C;AAC3C,uBAAqB;AACrB,kBAAqD;AAGrD,IAAAA,cAAoB;AHVpB,IAAA,oCAAA;EACE,oBAAsB;EACtB,mBAAqB;EACrB,gBAAkB;EAClB,iBAAmB;EACnB,iBAAmB;AACrB;;ACUO,IAAMC,6BAA6B;AACnC,IAAMC,0BAA0B;AAEhC,IAAMC,0BAA0B,OAAOC,cAAAA;AAC5C,MAAI;AACF,WAAQ,MAAkBC,YAAAA,QAAQ,GAAGD,SAAAA,IAAaH,0BAAAA,EAA4B,MAAO;EACvF,SAASK,KAAK;AACZC,oBAAIC,MAAM,gEAAgEF,KAAAA;;;;;;AAC1E,WAAO;EACT;AACF;AAEO,IAAMG,6BAA6B,OAAOL,WAAmBM,UAAAA;AAClE,MAAI;AACF,UAAkBC,YAAAA,QAAQ,GAAGP,SAAAA,IAAaH,0BAAAA,IAA8BW,OAAOF,KAAAA,CAAAA;EACjF,SAASJ,KAAK;AACZC,oBAAIC,MAAM,0CAA0CF,KAAAA;;;;;;EACtD;AACF;AAEO,IAAMO,wBAAwB,OAAOT,cAAAA;AAC1C,MAAI;AACF,WAAQ,MAAkBC,YAAAA,QAAQ,GAAGD,SAAAA,IAAaF,uBAAAA,EAAyB,KAAMY;EACnF,SAASR,KAAK;AACZC,oBAAIC,MAAM,qCAAqCF,KAAAA;;;;;;EACjD;AACF;AAEO,IAAMS,0BAA0B,OAAOX,WAAmBM,UAAAA;AAC/D,MAAI;AACF,UAAkBC,YAAAA,QAAQ,GAAGP,SAAAA,IAAaF,uBAAAA,IAA2BQ,KAAAA;EACvE,SAASJ,KAAK;AACZC,oBAAIC,MAAM,uCAAuCF,KAAAA;;;;;;EACnD;AACF;AAcO,IAAMU,6BAA6B,OAAO,EAC/CZ,WACAa,QACAC,OAAO,SACPC,gBAAgB,MAChBC,eAAe,KAAI,MACK;AACxBb,uBAAI,8BAA8B;IAAEU;EAAO,GAAA;;;;;;AAU3C,QAAMI,QAAS,MAAMR,sBAAsBT,SAAAA,KAAeU;AAC1D,QAAMQ,UAAU,GAAGlB,SAAAA,IAAaa,OAAOM,IAAI,2BAAA,CAAA;AAC3C,QAAMC,cAAcP,OAAOM,IAAI,gCAAA;AAE/B,QAAME,wBAAwB,MAAMtB,wBAAwBC,SAAAA;AAE5D,QAAM,EAAEsB,eAAAA,eAAa,IAAK,MAAM,OAAO,8BAAA;AAGvC,QAAMC,gBAAgB,IAAID,eAAc;IACtCtB;IACAiB;IACAH;IACAD;IACAW,UAAU;MACRC,mBAAmB;QACjBL;QACAF;QACAQ,SAASX;QACTY,QAAQX;;QAERY,YAAY;QACZC,kBAAkB;QAClBC,yBAAyB;MAC3B;IACF;EACF,CAAA;AAGA,MAAIT,uBAAuB;AACzBE,kBAAcQ,QAAQ,UAAA;AACtB5B,oBAAI6B,KAAK,0BAAA,QAAA;;;;;;AACT,WAAOT;EACT;AAEA,MAAI;AACF,UAAMU,YAAY,OAAOpB,YAAAA;AACvB,YAAMqB,wBAAwB,IAAI,KAAK,KAAK;AAO5C,YAAMC,aAAkC,MAAkBlC,YAAAA,QAAQ,2BAAA;AAClE,UAAIkC,cAAcA,WAAWC,YAAYC,KAAKC,IAAG,IAAKJ,uBAAuB;AAC3E,eAAOC,WAAWI;MACpB;AAGA,YAAMC,iBAAiB3B,QAAOM,IAAI,mCAAA;AAClC,UAAIqB,gBAAgB;AAClB,eAAOC,MAAM,iCAAiCD,cAAAA,EAAgB,EAC3DE,KAAK,CAACC,QAAQA,IAAIC,KAAI,CAAA,EACtBF,KAAK,CAACH,SAAAA;AAGFhC,sBAAAA,QAAQ,6BAA6B;YACpCgC;YACAH,WAAWC,KAAKC,IAAG;UACrB,CAAA,EACClC,MAAM,CAACF,QAAQqB,cAAcsB,iBAAiB3C,GAAAA,CAAAA;AAEjD,iBAAOqC;QACT,CAAA,EACCnC,MAAM,CAACF,QAAQqB,cAAcsB,iBAAiB3C,GAAAA,CAAAA;MACnD;IACF;AAMAqB,kBAAcuB,WAAU;AAExB,UAAMC,SAAS,MAAMd,UAAUpB,MAAAA;AAE/BkC,cAAUxB,cAAcyB,uBAAuBD,MAAAA;AAE/C,QAAI,OAAOE,cAAc,eAAeA,UAAUC,SAASC,UAAU;AACnEC,kBAAY,YAAA;AACV,YAAI;AACF,gBAAMC,kBAAkB,MAAMJ,UAAUC,QAAQC,SAAQ;AACxDE,0BAAgBC,SAAS/B,cAAcgC,OAAO,gBAAgBF,gBAAgBC,MAAME,SAAQ,GAAI,WAAA;AAChGH,0BAAgBI,SAASlC,cAAcgC,OAAO,gBAAgBF,gBAAgBI,MAAMD,SAAQ,GAAI,WAAA;QAClG,SAASE,OAAO;AACdvD,0BAAIwD,KAAK,4BAA4BD,OAAAA;;;;;;QACvC;MACF,GAAG,GAAA;IACL;EACF,SAASxD,KAAU;AACjBC,oBAAIuD,MAAM,0CAA0CxD,KAAAA;;;;;;EACtD;AAEA,SAAOqB;AACT;ACrKO,IAAMqC,yBAAyB,CAACC,WAAAA;AACrC,MAAI,CAACA,QAAQC,aAAa;AACxB,WAAOpD;EACT;AAEA,QAAMqD,WAAWF,OAAOG,KAAKD,SAAS5C,IAAG;AACzC,MAAI4C,UAAU;AACZ,WAAOA,SAASE,YAAYC,SAAQ;EACtC;AAEA,SAAOxD;AACT;;ACLO,IAAMyD,0BAA0B,OAAOC,WAAmBC,aAAAA;AAC/D,QAAMC,WAAOC,uBAAKH,WAAW,+BAAA;AAC7B,UAAII,2BAAWF,IAAAA,GAAO;AACpB;EACF;AACAD;;IAEE;;AAMF,YAAMI,2BAAUH,MAAM,IAAI,OAAA;AAC5B;AAEO,IAAMI,wBAAwB,OAAON,cAAAA;AAG1C,UAAII,2BAAWJ,SAAAA,GAAY;AACzB,QAAI,KAACO,yBAASP,SAAAA,EAAWQ,YAAW,GAAI;AACtC,YAAM,IAAIC,MAAM,oBAAoBT,SAAAA,gCAAyC;IAC/E;EACF,OAAO;AACL,cAAMU,uBAAMV,WAAW;MAAEW,WAAW;IAAK,CAAA;EAC3C;AAEA,QAAMC,aAAST,uBAAKH,WAAW,mBAAA;AAC/B,UAAII,2BAAWQ,MAAAA,GAAS;AACtB,UAAMC,UAAU,UAAMC,0BAASF,QAAQ,OAAA;AACvC,WAAOG,SAASF,OAAAA,KAAYG,gBAAgBJ,MAAAA;EAC9C;AAEA,SAAOI,gBAAgBJ,MAAAA;AACzB;AAqBA,IAAMI,kBAAkB,OAAOJ,WAAAA;AAE7B,QAAMK,qBAAqB;IACzBC,oBAAgBC,YAAAA,IAAAA;IAChBtE,OAAOuE,QAAQC,IAAIC,0BAA0BhF;IAC7CI,MAAO0E,QAAQC,IAAIE,2BAA2B,aAAaH,QAAQC,IAAIG,yBAAyB;EAClG;AAEA,YAAMnB,2BACJO,QACA,+DAA+Da,eAAAA,QAAKC,KAAKT,kBAAAA,GACzE,OAAA;AAGF,SAAOA;AACT;AAEA,IAAMF,WAAW,CAACY,kBAAAA;AAChB,QAAMd,UAAUY,eAAAA,QAAKG,KAAKD,aAAAA;AAC1B,MAAIE,QAAQhB,QAAQK,cAAc,SAAKY,YAAAA,UAAajB,QAAQK,cAAc,GAAI;AAC5E,WAAO;MACL,GAAGL;MACHnE,MAAM0E,QAAQC,IAAIE,2BAA2B,aAAaV,QAAQnE,QAAQ;IAC5E;EACF;AACF;AAaO,IAAMqF,8BAA8B,OAAO,EAChDnG,WACAa,QACAyE,gBACArE,OACAH,OAAO,SACPC,gBAAgB,MAChBC,eAAe,KAAI,MACM;AACzBb,kBAAAA,KAAI,8BAA8B;IAAEU;EAAO,GAAA;;;;;;AAE3C,QAAMK,UAAU,GAAGlB,SAAAA,IAAaa,OAAOM,IAAI,2BAAA,CAAA;AAC3C,QAAMC,cAAcP,OAAOM,IAAI,gCAAA;AAE/B,QAAMI,gBAAgB,IAAID,cAAc;IACtCtB;IACAiB;IACAH;IACAU,UAAU;MACRC,mBAAmB;QACjBL;QACAF;;QAEAU,YAAY;MACd;MACAwE,cAAc;IAChB;EACF,CAAA;AAEA7E,gBAAcgC,OAAO,kBAAkB+B,cAAAA;AAEvC,QAAM9C,iBAAiB3B,OAAOM,IAAI,mCAAA;AAClC,MAAI;AACF,UAAMwB,MAAM,MAAMF,MAAM,kCAAkCD,cAAAA,EAAgB;AAC1E,UAAMO,SAAS,MAAMJ,IAAIC,KAAI;AAC7BG,cAAUxB,cAAcyB,uBAAuBD,MAAAA;EACjD,SAAS7C,KAAK;AACZqB,mBAAesB,iBAAiB3C,GAAAA;EAClC;AACA,SAAOqB;AACT;AC3IO,IAAM8E,YAAY,CAACC,QAAiBC,UAA4B;EAAEC,SAAS;EAAOC,cAAc;AAAM,MAAC;AAC5G,SAAOH,OAAOI,IAAI,CAACC,UAAAA;AAGjB,UAAM,EAAEC,MAAMC,MAAK,IAAKF,MAAMG,SAASvE,KAAKwE,WAAW,CAAC;AACxD,UAAMC,UAAUJ,QAAQC,SAASA,MAAMI,QAAO,IAAKL,KAAKK,QAAO;AAI/D,UAAMC,WAAWP,MAAMG,SAASvE,KAAK2E;AACrC,UAAMC,qBAAqBD,UAAUE,cAAcC,QAAQC,UAAUC,UAAUC,cAAAA,KAAmB;AAClG,UAAMC,QAAQP,UAAUE,cAAcC,QAAQC,UAAUI;AAExD,UAAMC,uBAAuBT,UAAUU,sBAAsBJ,cAAAA,KAAmB;AAChF,UAAMK,qBAAqBX,UAAUY,qBAAqBN,cAAAA,KAAmB;AAE7E,WAAO;;MAELO,KAAKpB,MAAMoB,IAAI7D,SAAQ;MACvB0C,MAAMD,MAAMqB;MACZC,SAAStB,MAAMsB,QAAQ9G,IAAG,EAAG+G;MAC7BC,SAASxB,MAAMyB,GAAGC,MAAK,EAAGF,QAAQD;MAClClB;MACAS;;MAEAN;MACAQ;MACAE;;MAGAS,WACEC,KAAKC,IAAID,KAAKE,KAAKd,uBAAuBR,uBAAuBU,qBAAqBV,mBAAiB,GAAK,CAAA,IAC5G,KACAuB,QAAQ,CAAA;IACZ;EACF,CAAA;AACF;ACtCA,IAAIC,iBAAiB,oBAAItG,KAAAA;AACzB,IAAIuG,YAAY;AAET,IAAMC,0BAA0B,CAAC7I,WAAmB6D,QAAgBtC,kBAAAA;AACzE,QAAMuH,gBAAgB,CAACC,UAAAA;AACrB,QAAIxH,cAAcN,UAAU,UAAU8H,MAAMC,UAAU,CAACD,MAAMC,OAAOC,IAAI;AAEtEC,cAAQvF,KAAK,sCAAsCoF,MAAMC,MAAM;IACjE;AAEAG,eAAW,MACT5H,cAAcwH,MAAM;MAClBK,YAAYxF,uBAAuBC,MAAAA;MACnCwF,MAAM,GAAGrJ,SAAAA;MACTsJ,YAAY;QACVC,MAAMC,OAAOC,SAASF;QACtBN,IAAKF,MAAMC,QAAwBC;QACnC3E,MAAOyE,MAAMzE,MACToF,OAAO,CAACC,OAAO1D,QAAQ0D,GAAGC,OAAO,CAAA,EAClClD,IAAI,CAACiD,OAAO,GAAGA,GAAGC,QAAQC,YAAW,CAAA,GAAKF,GAAGV,KAAK,IAAIU,GAAGV,EAAE,KAAK,EAAA,EAAI,EACpEa,QAAAA,EACAvF,KAAK,GAAA;MACV;IACF,CAAA,CAAA;EAEJ;AAEA,QAAMwF,gBAAgB,MAAA;AACpB,UAAMzH,MAAM,oBAAID,KAAAA;AAChB8G,eAAW,MACT5H,cAAcwH,MAAM;MAClBK,YAAYxF,uBAAuBC,MAAAA;MACnCwF,MAAM,GAAGrJ,SAAAA;MACTsJ,YAAY;QACVC,MAAMC,OAAOC,SAASF;QACtBS,UAAU1H,IAAI2E,QAAO,IAAK0B,eAAe1B,QAAO;MAClD;IACF,CAAA,CAAA;AAEF0B,qBAAiBrG;EACnB;AAEA,QAAM2H,eAAe,MAAA;AACnB,UAAM3H,MAAM,oBAAID,KAAAA;AAChB,UAAM6H,YAAY5H,IAAI2E,QAAO,IAAK0B,eAAe1B,QAAO;AACxDkC,eAAW,MACT5H,cAAcwH,MAAM;MAClBK,YAAYxF,uBAAuBC,MAAAA;MACnCwF,MAAM,GAAGrJ,SAAAA;MACTsJ,YAAY;QACVC,MAAMC,OAAOC,SAASF;QACtBW;MACF;IACF,CAAA,CAAA;AAEFvB,qBAAiBrG;AACjBsG,gBAAYA,YAAYsB;EAC1B;AAEA,QAAMC,iBAAiB,MAAA;AACrBhB,eAAW,MACT5H,cAAcwH,MAAM;MAClBK,YAAYxF,uBAAuBC,MAAAA;MACnCwF,MAAM,GAAGrJ,SAAAA;MACTsJ,YAAY;QACVC,MAAMC,OAAOC,SAASF;QACtBW,WAAWtB;MACb;IACF,CAAA,CAAA;EAEJ;AAEA,QAAMwB,gBAAgB,CAACrB,UAAAA;AACrBI,eAAW,MACT5H,cAAcwH,MAAM;MAClBK,YAAYxF,uBAAuBC,MAAAA;MACnCwF,MAAM,GAAGrJ,SAAAA;MACTsJ,YAAY;QACVC,MAAMC,OAAOC,SAASF;QACtBc,SAAStB,MAAMsB;QACfC,UAAUvB,MAAMuB;QAChBC,OAAQxB,MAAMrF,MAAgB6G;MAChC;IACF,CAAA,CAAA;EAEJ;AAEAf,SAAOgB,iBAAiB,SAAS1B,eAAe,IAAA;AAChDU,SAAOgB,iBAAiB,SAAST,aAAAA;AACjCP,SAAOgB,iBAAiB,QAAQP,YAAAA;AAChCT,SAAOgB,iBAAiB,gBAAgBL,cAAAA;AACxCX,SAAOgB,iBAAiB,SAASJ,aAAAA;AAEjC,SAAO,MAAA;AACLZ,WAAOiB,oBAAoB,SAAS3B,eAAe,IAAA;AACnDU,WAAOiB,oBAAoB,SAASV,aAAAA;AACpCP,WAAOiB,oBAAoB,QAAQR,YAAAA;AACnCT,WAAOiB,oBAAoB,gBAAgBN,cAAAA;AAC3CX,WAAOiB,oBAAoB,SAASL,aAAAA;EACtC;AACF;;ANlFA,IAAMM,6BAA6B,MAAO;AAE1C,IAAMC,wBAAwB,MAAO,KAAK;AAyCnC,IAAMrJ,gBAAN,MAAMA;;EAoBXsJ,YAAY,EAAE5K,WAAWa,QAAQgK,SAAS5J,OAAOH,MAAMgK,WAAWtJ,SAAQ,GAA0B;AAP5FuJ,SAAAA,QAAc;gBAGP,IAAIC,uBAAAA;AACXC,SAAAA,QAAQ,oBAAIC,IAAAA;AAqGpBlI,SAAAA,yBAAyB,CAACD,WAAAA;AACxB,WAAKQ,OAAO,QAAQR,OAAOoI,MAAM,WAAA;AACjC,WAAK5H,OAAO,UAAUR,OAAOqI,QAAQ,WAAA;AACrC,WAAK7H,OAAO,WAAWR,OAAOsI,SAAS,WAAA;AACvCtI,aAAOuI,YAAY,KAAK/H,OAAO,YAAYR,OAAOuI,SAAS9H,SAAQ,GAAI,WAAA;AACvET,aAAOwI,aAAa,KAAKhI,OAAO,aAAaR,OAAOwI,UAAU/H,SAAQ,GAAI,WAAA;IAC5E;AAvGE,SAAKgI,aAAaxL;AAClB,SAAKyL,UAAU5K;AACf,SAAKkK,QAAQjK,QAAQ;AACrB,SAAK4K,SAASzK;AACd,SAAK0K,WAAW,KAAKC,aAAa/K,QAAQgK,OAAAA;AAC1C,SAAKgB,sBAAsBf,WAAWgB,aAAa;AACnD,SAAKC,yBAAyBvK,UAAUC;AACxC,SAAKuK,qBAAqBxK,UAAU4E,gBAAgB;AAEpD,QAAI,KAAKsF,QAAQ;AACf,WAAKnI,OAAO,SAAS,KAAKmI,MAAM;IAClC;AACA,SAAKnI,OAAO,aAAa,KAAKiI,UAAU;AAExC,QAAI,KAAKT,UAAU,QAAQ;IAE3B;EACF;EAEQa,aAAa/K,QAA4BgK,SAAkC;AACjF,YAAIoB,oBAAAA,GAAU;AACZ,YAAMC,gBAAgB;QACpB,GAAIC;QACJ,GAAGtB;MACL;AAEArF,cAAQC,IAAI2G,mBAAmBF,cAAcE,iBAAiB5G,QAAQC,IAAI2G;AAC1E5G,cAAQC,IAAI4G,eAAeH,cAAcG,aAAa7G,QAAQC,IAAI4G;AAClE7G,cAAQC,IAAI6G,uBAAuBJ,cAAcI,qBAAqB9G,QAAQC,IAAI6G;AAClF9G,cAAQC,IAAI8G,sBAAsBL,cAAcK,oBAAoB/G,QAAQC,IAAI8G;AAChF/G,cAAQC,IAAIjD,mBAAmB0J,cAAc1J,iBAAiBgD,QAAQC,IAAIjD;AAC1EgD,cAAQC,IAAI+G,oBAAoBN,cAAcM,kBAAkBhH,QAAQC,IAAI+G;AAC5EhH,cAAQC,IAAIgH,oBAAoBP,cAAcO,kBAAkBjH,QAAQC,IAAIgH;AAE5E,aAAOP;IACT,OAAO;AACLQ,sCAAU7L,QAAQ,8BAAA;;;;;;;;;AAClBV,qBAAAA,KAAI,UAAU;QAAEwM,KAAK,KAAKhB;QAAU9K;MAAO,GAAA;;;;;;AAC3C,aAAO;QACLuL,gBAAgBvL,OAAOM,IAAI,gCAAA;QAC3BkL,YAAYxL,OAAOM,IAAI,4BAAA;QACvBmL,oBAAoBzL,OAAOM,IAAI,uCAAA;QAC/BoL,mBAAmB1L,OAAOM,IAAI,sCAAA;QAC9BqB,gBAAgB3B,OAAOM,IAAI,mCAAA;QAC3BqL,iBAAiB3L,OAAOM,IAAI,oCAAA;QAC5BsL,iBAAiB5L,OAAOM,IAAI,oCAAA;QAC5B,GAAG0J;MACL;IACF;EACF;EAEA/H,aAAa;AACX,SAAK8J,aAAY;AACjB,SAAKC,eAAc;AACnB,SAAKC,eAAc;EACrB;EAEA,MAAMC,QAAQ;AACZ,UAAM,KAAKC,KAAKC,QAAO;EAGzB;EAEAlL,QAAQjB,MAAY;AAClB,SAAKiK,QAAQjK;EACf;EAEA,IAAIA,OAAO;AACT,WAAO,KAAKiK;EACd;EAEA,IAAI9J,QAAQ;AACV,WAAO,KAAKyK;EACd;EAEA,IAAIwB,UAAU;AACZ,WAAO,KAAKnC,UAAU;EACxB;;;;EAMAxH,OAAOwE,KAAazH,OAAe6M,OAAkB;AACnD,QAAI,KAAKD,YAAYC,UAAUzM,UAAayM,UAAU,SAASA,UAAU,WAAW;AAClFC,wCAAarF,KAAKzH,KAAAA;IACpB;AACA,QAAI,CAAC6M,OAAO;AACVA,cAAQ;IACV;AACA,SAAKlC,MAAMoC,IAAItF,KAAK;MAAEzH;MAAO6M;IAAM,CAAA;EACrC;EAEAG,OAAOvF,KAAa;AAClB,WAAO,KAAKkD,MAAM9J,IAAI4G,GAAAA;EACxB;;EAWA,MAAMwF,gBAAgB1J,QAAgB;AACpCA,WAAO2J,SAASA,SAASC,gBAAiBC,cAAa,EAAGC,UAAU,CAACC,SAAAA;AACnE,UAAI,CAACA,MAAM7J,UAAUE,aAAa;AAChC9D,uBAAAA,KAAI,wCAAwC;UAAEyN;QAAK,GAAA;;;;;;AACnD;MACF;AAEA,WAAKrK,OAAO,eAAeqK,KAAK7J,SAASE,YAAYC,SAAQ,CAAA;IAC/D,CAAA;AAEAL,WAAO2J,SAASA,SAASK,eAAgBC,aAAY,EAAGH,UAAU,CAACI,QAAAA;AACjE,UAAI,CAACA,OAAO,CAACA,IAAIC,WAAWD,IAAIC,QAAQ9F,WAAW,GAAG;AACpD/H,uBAAAA,KAAI,sCAAsC;UAAE8N,QAAQF;QAAI,GAAA;;;;;;AACxD;MACF;AACArB,sCAAUqB,KAAK,sCAAA;;;;;;;;;AAEf,YAAMG,aAAaH,IAAIC,QAAQG,KAAK,CAACF,WAAWA,OAAOG,SAASC,2BAAWC,OAAO;AAClF,UAAI,CAACJ,YAAY;AACf/N,uBAAAA,KAAI,qBAAqB;UAAE8N,QAAQF;QAAI,GAAA;;;;;;AACvC;MACF;AACA,WAAKxK,OAAO,aAAa2K,WAAWK,UAAUrK,SAAQ,CAAA;AACtD,UAAIgK,WAAWM,SAASC,OAAO;AAC7B,aAAKlL,OAAO,iBAAiB2K,WAAWM,QAAQC,KAAK;MACvD;IACF,CAAA;EACF;;;;EAMQ7B,eAAe;AACrB,QAAI,KAAKM,WAAW,KAAKvB,SAASa,iBAAiB;AACjD,WAAKkC,WAAW,IAAIC,qCAAe;QACjCC,QAAQ,KAAKjD,SAASa;QACtBqC,SAAS,MACPC,OAAOC,YACLC,MAAMC,KAAK,KAAKhE,KAAK,EAClBvB,OAAO,CAAC,CAAC3B,KAAKzH,KAAAA,MAAM;AACnB,iBAAOA,MAAM6M,UAAU,SAAS7M,MAAM6M,UAAU;QAClD,CAAA,EACCzG,IAAI,CAAC,CAACqB,KAAKzH,KAAAA,MAAW;UAACyH;UAAKzH,MAAMA;SAAM,CAAA;;QAG/CO,QAAQ,KAAK4K;MACf,CAAA;IACF,OAAO;AACLtL,qBAAAA,KAAI,oBAAA,QAAA;;;;;;IACN;EACF;;;;;;EAOA+O,MAAM7F,MAAc/I,OAAqB6O,WAAiB;AACxD,SAAKT,UAAUQ,MAAM7F,MAAM/I,OAAO6O,SAAAA;EACpC;;EAIAC,oBAAoBvL,QAAgB;AAClC,UAAMwL,sBAAsB,IAAIC,mBAAAA;AAGhCD,wBAAoBE,GAAG,KAAKvC,MAAM,OAAOwC,kBAAAA;AACvCrP,qBAAAA,KAAI,uBAAA,QAAA;;;;;;AACHqP,oBAAcC,UAAqCC,QAAQ,CAAC,EAAEC,QAAQC,MAAK,MAAE;AAC5E,aAAKV,MAAM,8CAA8CU,OAAO;UAAED;QAAO,CAAA;MAC3E,CAAA;AAEA,UAAIE,aAAa;AACjB,YAAMC,mBAAmB,oBAAI5E,IAAAA;AAC7B,iBAAW0E,SAASG,wCAAiB;AACnCD,yBAAiBzC,IAAIuC,OAAO,CAAA;MAC9B;AAEA,UAAII,sBAAsB;AAC1B,UAAIC,uBAAuB;AAC3B,UAAIC,yBAAyB;AAE7BV,oBAAcW,gBAAgBT,QAAQ,CAACS,mBAAAA;AACrCN;AAEA,mBAAWO,QAAQD,eAAeE,eAAe,CAAA,GAAI;AACnDP,2BAAiBzC,IAAI+C,KAAKR,QAAQE,iBAAiB3O,IAAIiP,KAAKR,KAAK,KAAK,KAAK,CAAA;AAC3EI,iCAAuBI,KAAKE,kBAAkB;AAC9CL,kCAAwBG,KAAKG,mBAAmB;AAEhD,qBAAWC,UAAUJ,KAAKK,WAAW,CAAA,GAAI;AACvCP,sCAA0BM,OAAOD,mBAAmB;UACtD;QACF;AAEA,aAAKrB,MAAM,mCAAmCW,UAAAA;AAC9C,mBAAWD,SAASG,wCAAiB;AACnC,eAAKb,MAAM,wCAAwCY,iBAAiB3O,IAAIyO,KAAAA,KAAU,GAAG;YAAEA;UAAM,CAAA;QAC/F;AACA,aAAKV,MAAM,2CAA2Cc,mBAAAA;AACtD,aAAKd,MAAM,4CAA4Ce,oBAAAA;AACvD,aAAKf,MAAM,8CAA8CgB,sBAAAA;MAC3D,CAAA;IACF,CAAA;AAEArM,WAAO2J,SAASA,SAASkD,gBAAgBC,YAAAA,EAAchD,UAAU,CAAC6B,kBAAAA;AAChEH,0BAAoBuB,KAAKpB,aAAAA;IAC3B,CAAA;EAGF;EAEAqB,mBAAmBhN,QAAgB7D,WAAmB;AACpD,UAAMsG,SAASzC,OAAOyC,OAAOnF,IAAG;AAChC,UAAM2P,gBAAgB,oBAAI5F,IAAAA;AAC1B,SAAK8B,KAAK+D,UAAU,MAAMD,cAAcpB,QAAQ,CAACsB,iBAAiBA,aAAaC,YAAW,CAAA,CAAA;AAE1F,UAAMC,qBAAqB,IAAI5B,mBAAAA,EAAe6B,SAASzG,0BAAAA;AACvDwG,uBAAmB3B,GAAG,KAAKvC,MAAM,YAAA;AAC/B7M,qBAAAA,KAAI,qBAAA,QAAA;;;;;;AACJ,iBAAWoC,QAAQ8D,UAAUC,QAAQ;QAAEG,cAAc;MAAK,CAAA,GAAI;AAE5D,aAAKyI,MAAM,6BAA6B3M,KAAK0F,SAAS;UAAEF,KAAKxF,KAAKwF;QAAI,CAAA;AACtE,aAAKmH,MAAM,6BAA6B3M,KAAK4F,SAAS;UAAEJ,KAAKxF,KAAKwF;QAAI,CAAA;AACtE,aAAKmH,MAAM,2BAA2B3M,KAAKkF,OAAO;UAAEM,KAAKxF,KAAKwF;QAAI,CAAA;AAClE,aAAKmH,MAAM,0CAA0C3M,KAAKoF,sBAAsB;UAAEI,KAAKxF,KAAKwF;QAAI,CAAA;AAGhG,aAAKgB,MAAM;UACTK,YAAYxF,uBAAuBC,MAAAA;UACnCwF,MAAM,GAAGrJ,SAAAA;UACTsJ,YAAY/G;QACd,CAAA;MACF;IACF,CAAA;AAEA,UAAM6O,yBAAyB,CAACzK,UAC9BA,MAAMO,SAASyG,UAAU;MACvB0D,MAAM,MAAA;AACJH,2BAAmBN,KAAI;MACzB;IACF,CAAA;AAEFtK,WAAOoJ,QAAQ,CAAC/I,UAAAA;AACdmK,oBAAczD,IAAI1G,MAAMoB,IAAIuJ,MAAK,GAAIF,uBAAuBzK,KAAAA,CAAAA;IAC9D,CAAA;AAEA9C,WAAOyC,OAAOqH,UAAU;MACtB0D,MAAM,OAAO/K,YAAAA;AACXA,gBACGoD,OAAO,CAAC/C,UAAU,CAACmK,cAAcS,IAAI5K,MAAMoB,IAAIuJ,MAAK,CAAA,CAAA,EACpD5B,QAAQ,CAAC/I,UAAAA;AACRmK,wBAAczD,IAAI1G,MAAMoB,IAAIuJ,MAAK,GAAIF,uBAAuBzK,KAAAA,CAAAA;QAC9D,CAAA;MACJ;IACF,CAAA;AAEA6K,2CAAqB,KAAKxE,MAAM,YAAYkE,mBAAmBN,KAAI,GAAIjG,qBAAAA;EACzE;EAEA,MAAM8G,oBAAoB5N,QAAgB6N,YAAoB/G,uBAAuB;AACnF,UAAMgH,WAAW,MAAM9N,OAAO2J,SAASA,SAASoE,eAAeC,YAAAA;AAC/DnF,oCAAUiF,UAAU,wBAAA;;;;;;;;;AAEpB,SAAKpO,OAAO,iBAAiBuO,yBAASC,cAAcJ,SAASK,IAAI,EAAYnI,YAAW,CAAA;AACxF,QAAI,KAAKkB,UAAU,QAAQ;AAEzB,UAAI4G,SAASA,UAAU;AACrB,aAAKpO,OAAO,YAAYoO,SAASA,QAAQ;MAC3C;AACA,UAAIA,SAASM,MAAM;AACjB,aAAK1O,OAAO,QAAQoO,SAASM,IAAI;MACnC;AACA,UAAIN,SAASO,SAAS;AACpB,aAAK3O,OAAO,WAAWoO,SAASO,OAAO;MACzC;IACF;AACAV,2CACE,KAAKxE,MACL,YAAA;AACE7M,qBAAAA,KAAI,YAAA,QAAA;;;;;;AACJ0D,aAAO2J,SAASA,SAASoE,eAAeC,YAAAA,EACrCnP,KAAK,CAACiP,cAAAA;AACLxR,uBAAAA,KAAI,YAAY;UAAEwR,UAAAA;QAAS,GAAA;;;;;;AAC3B,YAAIA,UAASQ,QAAQ;AACnB,eAAKjD,MAAM,2BAA2ByC,UAASQ,OAAOC,GAAG;AACzD,eAAKlD,MAAM,iCAAiCyC,UAASQ,OAAOE,SAAS;AACrE,eAAKnD,MAAM,gCAAgCyC,UAASQ,OAAOG,QAAQ;QACrE;MACF,CAAA,EACClS,MAAM,CAACsD,cAAUvD,WAAAA,KAAI,kBAAkB;QAAEuD;MAAM,GAAA;;;;;;IACpD,GACAgO,SAAAA;EAEJ;;;;EAMQ7E,iBAAiB;AACvB,QAAI,KAAKlB,SAASY,qBAAqB,KAAKxB,UAAU,YAAY;AAChE,WAAKwH,aAAa,IAAIC,uCAAiB;QACrC5D,QAAQ,KAAKjD,SAASY;QACtBT,WAAW,KAAKD;QAChBgD,SAAS,MACPC,OAAOC,YACLC,MAAMC,KAAK,KAAKhE,KAAK,EAClBvB,OAAO,CAAC,CAAC3B,KAAKzH,KAAAA,MAAM;AACnB,iBAAOA,MAAM6M,UAAU,SAAS7M,MAAM6M,UAAU;QAClD,CAAA,EACCzG,IAAI,CAAC,CAACqB,KAAKzH,KAAAA,MAAW;UAACyH;UAAKzH,MAAMA;SAAM,CAAA;MAEjD,CAAA;IACF,OAAO;AACLH,qBAAAA,KAAI,oBAAA,QAAA;;;;;;IACN;EACF;;;;;;EAOA4I,MAAMxC,SAAuB;AAC3B,SAAKgM,YAAYxJ,MAAMxC,OAAAA;EACzB;;;;;;EAOAkM,KAAKlM,SAAsB;AACzB,SAAKgM,YAAYE,KAAKlM,OAAAA;EACxB;;;;EAMQuG,iBAAiB;AACvB,QAAI,KAAKnB,SAASW,sBAAsB,KAAKvB,UAAU,YAAY;AAEjE5K,iBAAAA,IAAI6B,KAAK,uBAAuB;QAC9B0Q,MAAM,KAAK/G,SAASW;QACpB/F,SAAS,KAAKwF;MAChB,GAAA;;;;;;AACA4G,sCAAW;QACT,GAAG,KAAK5G;QACR6G,aAAa,KAAKjH,SAASW;QAC3BuG,gBAAgB,KAAK9H,UAAU;MACjC,CAAA;AACA,UAAI,KAAKgB,wBAAwBrK,SAAS;AACxCoR,oDAAAA;MACF;AAEA,UAAI,KAAK9G,oBAAoB;AAC3B+G,4DAAAA;MACF;AAEA,WAAK9H,MAAMyE,QAAQ,CAACsD,GAAGC,MAAAA;AACrB,YAAID,EAAE7F,UAAU,SAAS6F,EAAE7F,UAAU,UAAU;AAC7CC,4CAAa6F,GAAGD,EAAE1S,KAAK;QACzB;MACF,CAAA;IACF,OAAO;AACLH,qBAAAA,KAAI,mBAAA,QAAA;;;;;;IACN;EACF;;;;;;EAOA0C,iBAAiB3C,KAAU;AACzB,QAAI,KAAKgN,SAAS;AAChBgG,kDAAuBhT,GAAAA;IACzB;EACF;AACF;",
6
+ "names": ["import_log", "OBSERVABILITY_DISABLED_KEY", "OBSERVABILITY_GROUP_KEY", "isObservabilityDisabled", "namespace", "getItem", "err", "log", "catch", "storeObservabilityDisabled", "value", "setItem", "String", "getObservabilityGroup", "undefined", "storeObservabilityGroup", "initializeAppObservability", "config", "mode", "tracingEnable", "replayEnable", "group", "release", "get", "environment", "observabilityDisabled", "Observability", "observability", "errorLog", "sentryInitOptions", "tracing", "replay", "sampleRate", "replaySampleRate", "replaySampleRateOnError", "setMode", "info", "getIPData", "IP_DATA_CACHE_TIMEOUT", "cachedData", "timestamp", "Date", "now", "data", "IPDATA_API_KEY", "fetch", "then", "res", "json", "captureException", "initialize", "ipData", "addIPDataTelemetryTags", "navigator", "storage", "estimate", "setInterval", "storageEstimate", "usage", "setTag", "toString", "quota", "error", "warn", "getTelemetryIdentifier", "client", "initialized", "identity", "halo", "identityKey", "truncate", "showObservabilityBanner", "configDir", "bannercb", "path", "join", "existsSync", "writeFile", "getObservabilityState", "statSync", "isDirectory", "Error", "mkdir", "recursive", "idPath", "context", "readFile", "validate", "initializeState", "observabilityState", "installationId", "uuid", "process", "env", "DX_OBSERVABILITY_GROUP", "DX_DISABLE_OBSERVABILITY", "DX_OBSERVABILITY_MODE", "yaml", "dump", "contextString", "load", "Boolean", "validateUuid", "initializeNodeObservability", "logProcessor", "mapSpaces", "spaces", "options", "verbose", "truncateKeys", "map", "space", "open", "ready", "internal", "metrics", "startup", "getTime", "pipeline", "startDataMutations", "currentEpoch", "subject", "assertion", "timeframe", "totalMessages", "epoch", "number", "currentDataMutations", "currentDataTimeframe", "totalDataMutations", "targetDataTimeframe", "key", "isOpen", "members", "length", "objects", "db", "query", "progress", "Math", "min", "abs", "toFixed", "lastFocusEvent", "totalTime", "setupTelemetryListeners", "clickCallback", "event", "target", "id", "console", "setTimeout", "identityId", "name", "properties", "href", "window", "location", "filter", "el", "tagName", "toLowerCase", "reverse", "focusCallback", "timeAway", "blurCallback", "timeSpent", "unloadCallback", "errorCallback", "message", "filename", "stack", "addEventListener", "removeEventListener", "SPACE_METRICS_MIN_INTERVAL", "DATADOG_IDLE_INTERVAL", "constructor", "secrets", "telemetry", "_mode", "Context", "_tags", "Map", "city", "region", "country", "latitude", "longitude", "_namespace", "_config", "_group", "_secrets", "_loadSecrets", "_telemetryBatchSize", "batchSize", "_errorReportingOptions", "_errorLogProcessor", "isNode", "mergedSecrets", "buildSecrets", "DX_ENVIRONMENT", "DX_RELEASE", "SENTRY_DESTINATION", "TELEMETRY_API_KEY", "DATADOG_API_KEY", "DATADOG_APP_KEY", "invariant", "rtc", "_initMetrics", "_initTelemetry", "_initErrorLogs", "close", "_ctx", "dispose", "enabled", "scope", "sentrySetTag", "set", "getTag", "setIdentityTags", "services", "IdentityService", "queryIdentity", "subscribe", "idqr", "DevicesService", "queryDevices", "dqr", "devices", "device", "thisDevice", "find", "kind", "DeviceKind", "CURRENT", "deviceKey", "profile", "label", "_metrics", "DatadogMetrics", "apiKey", "getTags", "Object", "fromEntries", "Array", "from", "gauge", "extraTags", "startNetworkMetrics", "updateSignalMetrics", "Event", "on", "networkStatus", "signaling", "forEach", "server", "state", "swarmCount", "connectionStates", "ConnectionState", "totalReadBufferSize", "totalWriteBufferSize", "totalChannelBufferSize", "connectionInfo", "conn", "connections", "readBufferSize", "writeBufferSize", "stream", "streams", "NetworkService", "queryStatus", "emit", "startSpacesMetrics", "subscriptions", "onDispose", "subscription", "unsubscribe", "updateSpaceMetrics", "debounce", "subscribeToSpaceUpdate", "next", "toHex", "has", "scheduleTaskInterval", "startRuntimeMetrics", "frequency", "platform", "SystemService", "getPlatform", "Platform", "PLATFORM_TYPE", "type", "arch", "runtime", "memory", "rss", "heapTotal", "heapUsed", "_telemetry", "SegmentTelemetry", "page", "dest", "sentryInit", "destination", "scrubFilenames", "sentryConfigureTracing", "enableSentryLogProcessor", "v", "k", "sentryCaptureException"]
7
+ }
@@ -18,23 +18,23 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var node_exports = {};
20
20
  __export(node_exports, {
21
- OBSERVABILITY_DISABLED_KEY: () => import_chunk_CBMRJXSL.OBSERVABILITY_DISABLED_KEY,
22
- OBSERVABILITY_GROUP_KEY: () => import_chunk_CBMRJXSL.OBSERVABILITY_GROUP_KEY,
23
- Observability: () => import_chunk_CBMRJXSL.Observability,
24
- getObservabilityGroup: () => import_chunk_CBMRJXSL.getObservabilityGroup,
25
- getObservabilityState: () => import_chunk_CBMRJXSL.getObservabilityState,
26
- getTelemetryIdentifier: () => import_chunk_CBMRJXSL.getTelemetryIdentifier,
27
- initializeAppObservability: () => import_chunk_CBMRJXSL.initializeAppObservability,
28
- initializeNodeObservability: () => import_chunk_CBMRJXSL.initializeNodeObservability,
29
- isObservabilityDisabled: () => import_chunk_CBMRJXSL.isObservabilityDisabled,
30
- mapSpaces: () => import_chunk_CBMRJXSL.mapSpaces,
31
- setupTelemetryListeners: () => import_chunk_CBMRJXSL.setupTelemetryListeners,
32
- showObservabilityBanner: () => import_chunk_CBMRJXSL.showObservabilityBanner,
33
- storeObservabilityDisabled: () => import_chunk_CBMRJXSL.storeObservabilityDisabled,
34
- storeObservabilityGroup: () => import_chunk_CBMRJXSL.storeObservabilityGroup
21
+ OBSERVABILITY_DISABLED_KEY: () => import_chunk_ED364ZBZ.OBSERVABILITY_DISABLED_KEY,
22
+ OBSERVABILITY_GROUP_KEY: () => import_chunk_ED364ZBZ.OBSERVABILITY_GROUP_KEY,
23
+ Observability: () => import_chunk_ED364ZBZ.Observability,
24
+ getObservabilityGroup: () => import_chunk_ED364ZBZ.getObservabilityGroup,
25
+ getObservabilityState: () => import_chunk_ED364ZBZ.getObservabilityState,
26
+ getTelemetryIdentifier: () => import_chunk_ED364ZBZ.getTelemetryIdentifier,
27
+ initializeAppObservability: () => import_chunk_ED364ZBZ.initializeAppObservability,
28
+ initializeNodeObservability: () => import_chunk_ED364ZBZ.initializeNodeObservability,
29
+ isObservabilityDisabled: () => import_chunk_ED364ZBZ.isObservabilityDisabled,
30
+ mapSpaces: () => import_chunk_ED364ZBZ.mapSpaces,
31
+ setupTelemetryListeners: () => import_chunk_ED364ZBZ.setupTelemetryListeners,
32
+ showObservabilityBanner: () => import_chunk_ED364ZBZ.showObservabilityBanner,
33
+ storeObservabilityDisabled: () => import_chunk_ED364ZBZ.storeObservabilityDisabled,
34
+ storeObservabilityGroup: () => import_chunk_ED364ZBZ.storeObservabilityGroup
35
35
  });
36
36
  module.exports = __toCommonJS(node_exports);
37
- var import_chunk_CBMRJXSL = require("./chunk-CBMRJXSL.cjs");
37
+ var import_chunk_ED364ZBZ = require("./chunk-ED364ZBZ.cjs");
38
38
  var import_chunk_ZJRKFREX = require("./chunk-ZJRKFREX.cjs");
39
39
  var import_chunk_BHF4PKAP = require("./chunk-BHF4PKAP.cjs");
40
40
  var import_chunk_FSAOBKO2 = require("./chunk-FSAOBKO2.cjs");
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["index.cjs"],
4
- "sourcesContent": ["import {\n OBSERVABILITY_DISABLED_KEY,\n OBSERVABILITY_GROUP_KEY,\n Observability,\n getObservabilityGroup,\n getObservabilityState,\n getTelemetryIdentifier,\n initializeAppObservability,\n initializeNodeObservability,\n isObservabilityDisabled,\n mapSpaces,\n setupTelemetryListeners,\n showObservabilityBanner,\n storeObservabilityDisabled,\n storeObservabilityGroup\n} from \"./chunk-CBMRJXSL.cjs\";\nimport \"./chunk-ZJRKFREX.cjs\";\nimport \"./chunk-BHF4PKAP.cjs\";\nimport \"./chunk-FSAOBKO2.cjs\";\nexport {\n OBSERVABILITY_DISABLED_KEY,\n OBSERVABILITY_GROUP_KEY,\n Observability,\n getObservabilityGroup,\n getObservabilityState,\n getTelemetryIdentifier,\n initializeAppObservability,\n initializeNodeObservability,\n isObservabilityDisabled,\n mapSpaces,\n setupTelemetryListeners,\n showObservabilityBanner,\n storeObservabilityDisabled,\n storeObservabilityGroup\n};\n//# sourceMappingURL=index.cjs.map\n"],
4
+ "sourcesContent": ["import {\n OBSERVABILITY_DISABLED_KEY,\n OBSERVABILITY_GROUP_KEY,\n Observability,\n getObservabilityGroup,\n getObservabilityState,\n getTelemetryIdentifier,\n initializeAppObservability,\n initializeNodeObservability,\n isObservabilityDisabled,\n mapSpaces,\n setupTelemetryListeners,\n showObservabilityBanner,\n storeObservabilityDisabled,\n storeObservabilityGroup\n} from \"./chunk-ED364ZBZ.cjs\";\nimport \"./chunk-ZJRKFREX.cjs\";\nimport \"./chunk-BHF4PKAP.cjs\";\nimport \"./chunk-FSAOBKO2.cjs\";\nexport {\n OBSERVABILITY_DISABLED_KEY,\n OBSERVABILITY_GROUP_KEY,\n Observability,\n getObservabilityGroup,\n getObservabilityState,\n getTelemetryIdentifier,\n initializeAppObservability,\n initializeNodeObservability,\n isObservabilityDisabled,\n mapSpaces,\n setupTelemetryListeners,\n showObservabilityBanner,\n storeObservabilityDisabled,\n storeObservabilityGroup\n};\n//# sourceMappingURL=index.cjs.map\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAeO;AACP,4BAAO;AACP,4BAAO;AACP,4BAAO;",
6
6
  "names": []
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"packages/sdk/observability/src/datadog/node.ts":{"bytes":1685,"imports":[{"path":"node:os","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/observability/src/datadog/metrics.ts":{"bytes":4585,"imports":[{"path":"datadog-metrics","kind":"import-statement","external":true},{"path":"debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/observability/src/datadog/node.ts","kind":"import-statement","original":"./node"}],"format":"esm"},"packages/sdk/observability/src/datadog/index.ts":{"bytes":553,"imports":[{"path":"packages/sdk/observability/src/datadog/node.ts","kind":"import-statement","original":"./node"},{"path":"packages/sdk/observability/src/datadog/metrics.ts","kind":"import-statement","original":"./metrics"}],"format":"esm"},"packages/sdk/observability/src/cli-observability-secrets.json":{"bytes":315,"imports":[]},"packages/sdk/observability/src/sentry/node.ts":{"bytes":16627,"imports":[{"path":"@sentry/integrations","kind":"import-statement","external":true},{"path":"@sentry/node","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@sentry/node","kind":"import-statement","external":true},{"path":"@sentry/tracing","kind":"dynamic-import","external":true}],"format":"esm"},"packages/sdk/observability/src/sentry/types.ts":{"bytes":1037,"imports":[],"format":"esm"},"packages/sdk/observability/src/sentry/tracing.ts":{"bytes":17365,"imports":[{"path":"@sentry/browser","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/observability/src/sentry/index.ts":{"bytes":908,"imports":[{"path":"packages/sdk/observability/src/sentry/node.ts","kind":"import-statement","original":"./node"},{"path":"packages/sdk/observability/src/sentry/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/sdk/observability/src/sentry/tracing.ts","kind":"import-statement","original":"./tracing"}],"format":"esm"},"packages/sdk/observability/src/segment/node.ts":{"bytes":9207,"imports":[{"path":"analytics-node","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/observability/src/sentry/index.ts","kind":"import-statement","original":"../sentry"}],"format":"esm"},"packages/sdk/observability/src/segment/types.ts":{"bytes":1042,"imports":[],"format":"esm"},"packages/sdk/observability/src/segment/index.ts":{"bytes":547,"imports":[{"path":"packages/sdk/observability/src/segment/node.ts","kind":"import-statement","original":"./node"},{"path":"packages/sdk/observability/src/segment/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/sdk/observability/src/observability.ts":{"bytes":53691,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/network-manager","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/sdk/observability/src/cli-observability-secrets.json","kind":"import-statement","original":"./cli-observability-secrets.json"},{"path":"packages/sdk/observability/src/datadog/index.ts","kind":"import-statement","original":"./datadog"},{"path":"packages/sdk/observability/src/helpers/index.ts","kind":"import-statement","original":"./helpers"},{"path":"packages/sdk/observability/src/segment/index.ts","kind":"import-statement","original":"./segment"},{"path":"packages/sdk/observability/src/sentry/index.ts","kind":"import-statement","original":"./sentry"}],"format":"esm"},"packages/sdk/observability/src/helpers/browser-observability.ts":{"bytes":19235,"imports":[{"path":"localforage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/observability/src/observability.ts","kind":"dynamic-import","original":"../observability"}],"format":"esm"},"packages/sdk/observability/src/helpers/common.ts":{"bytes":2622,"imports":[],"format":"esm"},"packages/sdk/observability/src/helpers/node-observability.ts":{"bytes":14102,"imports":[{"path":"js-yaml","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"uuid","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/observability/src/observability.ts","kind":"import-statement","original":"../observability"}],"format":"esm"},"packages/sdk/observability/src/helpers/map-spaces.ts":{"bytes":6306,"imports":[],"format":"esm"},"packages/sdk/observability/src/helpers/setup-telemetry-listeners.ts":{"bytes":11655,"imports":[{"path":"packages/sdk/observability/src/helpers/common.ts","kind":"import-statement","original":"./common"}],"format":"esm"},"packages/sdk/observability/src/helpers/index.ts":{"bytes":930,"imports":[{"path":"packages/sdk/observability/src/helpers/browser-observability.ts","kind":"import-statement","original":"./browser-observability"},{"path":"packages/sdk/observability/src/helpers/common.ts","kind":"import-statement","original":"./common"},{"path":"packages/sdk/observability/src/helpers/node-observability.ts","kind":"import-statement","original":"./node-observability"},{"path":"packages/sdk/observability/src/helpers/map-spaces.ts","kind":"import-statement","original":"./map-spaces"},{"path":"packages/sdk/observability/src/helpers/setup-telemetry-listeners.ts","kind":"import-statement","original":"./setup-telemetry-listeners"}],"format":"esm"},"packages/sdk/observability/src/index.ts":{"bytes":566,"imports":[{"path":"packages/sdk/observability/src/helpers/index.ts","kind":"import-statement","original":"./helpers"},{"path":"packages/sdk/observability/src/observability.ts","kind":"import-statement","original":"./observability"}],"format":"esm"}},"outputs":{"packages/sdk/observability/dist/lib/node/datadog/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/observability/dist/lib/node/datadog/index.cjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node/chunk-ZJRKFREX.cjs","kind":"import-statement"}],"exports":["DatadogMetrics","defaultOptions"],"entryPoint":"packages/sdk/observability/src/datadog/index.ts","inputs":{},"bytes":158},"packages/sdk/observability/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/observability/dist/lib/node/index.cjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node/chunk-CBMRJXSL.cjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node/chunk-ZJRKFREX.cjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node/chunk-BHF4PKAP.cjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node/chunk-FSAOBKO2.cjs","kind":"import-statement"}],"exports":["OBSERVABILITY_DISABLED_KEY","OBSERVABILITY_GROUP_KEY","Observability","getObservabilityGroup","getObservabilityState","getTelemetryIdentifier","initializeAppObservability","initializeNodeObservability","isObservabilityDisabled","mapSpaces","setupTelemetryListeners","showObservabilityBanner","storeObservabilityDisabled","storeObservabilityGroup"],"entryPoint":"packages/sdk/observability/src/index.ts","inputs":{"packages/sdk/observability/src/index.ts":{"bytesInOutput":0}},"bytes":902},"packages/sdk/observability/dist/lib/node/segment/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/observability/dist/lib/node/segment/index.cjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node/chunk-BHF4PKAP.cjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node/chunk-FSAOBKO2.cjs","kind":"import-statement"}],"exports":["SegmentTelemetry"],"entryPoint":"packages/sdk/observability/src/segment/index.ts","inputs":{},"bytes":158},"packages/sdk/observability/dist/lib/node/sentry/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/observability/dist/lib/node/sentry/index.cjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node/chunk-FSAOBKO2.cjs","kind":"import-statement"}],"exports":["SENTRY_LOG_PROCESSOR","addBreadcrumb","captureException","configureTracing","enableSentryLogProcessor","init","setTag","setTags","setUser"],"entryPoint":"packages/sdk/observability/src/sentry/index.ts","inputs":{},"bytes":384},"packages/sdk/observability/dist/lib/node/observability-JMKBRR4L.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/observability/dist/lib/node/observability-JMKBRR4L.cjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node/chunk-CBMRJXSL.cjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node/chunk-ZJRKFREX.cjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node/chunk-BHF4PKAP.cjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node/chunk-FSAOBKO2.cjs","kind":"import-statement"}],"exports":["Observability"],"entryPoint":"packages/sdk/observability/src/observability.ts","inputs":{},"bytes":229},"packages/sdk/observability/dist/lib/node/chunk-CBMRJXSL.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":52990},"packages/sdk/observability/dist/lib/node/chunk-CBMRJXSL.cjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node/chunk-ZJRKFREX.cjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node/chunk-BHF4PKAP.cjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node/chunk-FSAOBKO2.cjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/network-manager","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"localforage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/observability/dist/lib/node/observability-JMKBRR4L.cjs","kind":"dynamic-import"},{"path":"js-yaml","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"uuid","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["OBSERVABILITY_DISABLED_KEY","OBSERVABILITY_GROUP_KEY","Observability","getObservabilityGroup","getObservabilityState","getTelemetryIdentifier","initializeAppObservability","initializeNodeObservability","isObservabilityDisabled","mapSpaces","setupTelemetryListeners","showObservabilityBanner","storeObservabilityDisabled","storeObservabilityGroup"],"inputs":{"packages/sdk/observability/src/observability.ts":{"bytesInOutput":13583},"packages/sdk/observability/src/cli-observability-secrets.json":{"bytesInOutput":347},"packages/sdk/observability/src/helpers/browser-observability.ts":{"bytesInOutput":4736},"packages/sdk/observability/src/helpers/index.ts":{"bytesInOutput":0},"packages/sdk/observability/src/helpers/common.ts":{"bytesInOutput":229},"packages/sdk/observability/src/helpers/node-observability.ts":{"bytesInOutput":3419},"packages/sdk/observability/src/helpers/map-spaces.ts":{"bytesInOutput":1177},"packages/sdk/observability/src/helpers/setup-telemetry-listeners.ts":{"bytesInOutput":2736}},"bytes":27371},"packages/sdk/observability/dist/lib/node/chunk-ZJRKFREX.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3002},"packages/sdk/observability/dist/lib/node/chunk-ZJRKFREX.cjs":{"imports":[{"path":"node:os","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"datadog-metrics","kind":"import-statement","external":true},{"path":"debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["DatadogMetrics","defaultOptions"],"inputs":{"packages/sdk/observability/src/datadog/node.ts":{"bytesInOutput":450},"packages/sdk/observability/src/datadog/index.ts":{"bytesInOutput":0},"packages/sdk/observability/src/datadog/metrics.ts":{"bytesInOutput":1128}},"bytes":1774},"packages/sdk/observability/dist/lib/node/chunk-BHF4PKAP.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3928},"packages/sdk/observability/dist/lib/node/chunk-BHF4PKAP.cjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node/chunk-FSAOBKO2.cjs","kind":"import-statement"},{"path":"analytics-node","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["SegmentTelemetry"],"inputs":{"packages/sdk/observability/src/segment/node.ts":{"bytesInOutput":2850},"packages/sdk/observability/src/segment/index.ts":{"bytesInOutput":0}},"bytes":3036},"packages/sdk/observability/dist/lib/node/chunk-FSAOBKO2.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":16118},"packages/sdk/observability/dist/lib/node/chunk-FSAOBKO2.cjs":{"imports":[{"path":"@sentry/integrations","kind":"import-statement","external":true},{"path":"@sentry/node","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@sentry/node","kind":"import-statement","external":true},{"path":"@sentry/tracing","kind":"dynamic-import","external":true},{"path":"@sentry/browser","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["SENTRY_LOG_PROCESSOR","addBreadcrumb","captureException","configureTracing","enableSentryLogProcessor","init","setTag","setTags","setUser"],"inputs":{"packages/sdk/observability/src/sentry/node.ts":{"bytesInOutput":3654},"packages/sdk/observability/src/sentry/index.ts":{"bytesInOutput":0},"packages/sdk/observability/src/sentry/tracing.ts":{"bytesInOutput":4629}},"bytes":8601}}}
1
+ {"inputs":{"packages/sdk/observability/src/datadog/node.ts":{"bytes":1685,"imports":[{"path":"node:os","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/observability/src/datadog/metrics.ts":{"bytes":4585,"imports":[{"path":"datadog-metrics","kind":"import-statement","external":true},{"path":"debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/observability/src/datadog/node.ts","kind":"import-statement","original":"./node"}],"format":"esm"},"packages/sdk/observability/src/datadog/index.ts":{"bytes":553,"imports":[{"path":"packages/sdk/observability/src/datadog/node.ts","kind":"import-statement","original":"./node"},{"path":"packages/sdk/observability/src/datadog/metrics.ts","kind":"import-statement","original":"./metrics"}],"format":"esm"},"packages/sdk/observability/src/cli-observability-secrets.json":{"bytes":315,"imports":[]},"packages/sdk/observability/src/sentry/node.ts":{"bytes":16627,"imports":[{"path":"@sentry/integrations","kind":"import-statement","external":true},{"path":"@sentry/node","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@sentry/node","kind":"import-statement","external":true},{"path":"@sentry/tracing","kind":"dynamic-import","external":true}],"format":"esm"},"packages/sdk/observability/src/sentry/types.ts":{"bytes":1037,"imports":[],"format":"esm"},"packages/sdk/observability/src/sentry/tracing.ts":{"bytes":17365,"imports":[{"path":"@sentry/browser","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/observability/src/sentry/index.ts":{"bytes":908,"imports":[{"path":"packages/sdk/observability/src/sentry/node.ts","kind":"import-statement","original":"./node"},{"path":"packages/sdk/observability/src/sentry/types.ts","kind":"import-statement","original":"./types"},{"path":"packages/sdk/observability/src/sentry/tracing.ts","kind":"import-statement","original":"./tracing"}],"format":"esm"},"packages/sdk/observability/src/segment/node.ts":{"bytes":9207,"imports":[{"path":"analytics-node","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/observability/src/sentry/index.ts","kind":"import-statement","original":"../sentry"}],"format":"esm"},"packages/sdk/observability/src/segment/types.ts":{"bytes":1042,"imports":[],"format":"esm"},"packages/sdk/observability/src/segment/index.ts":{"bytes":547,"imports":[{"path":"packages/sdk/observability/src/segment/node.ts","kind":"import-statement","original":"./node"},{"path":"packages/sdk/observability/src/segment/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"packages/sdk/observability/src/observability.ts":{"bytes":56803,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/network-manager","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/sdk/observability/src/cli-observability-secrets.json","kind":"import-statement","original":"./cli-observability-secrets.json"},{"path":"packages/sdk/observability/src/datadog/index.ts","kind":"import-statement","original":"./datadog"},{"path":"packages/sdk/observability/src/helpers/index.ts","kind":"import-statement","original":"./helpers"},{"path":"packages/sdk/observability/src/segment/index.ts","kind":"import-statement","original":"./segment"},{"path":"packages/sdk/observability/src/sentry/index.ts","kind":"import-statement","original":"./sentry"}],"format":"esm"},"packages/sdk/observability/src/helpers/browser-observability.ts":{"bytes":19235,"imports":[{"path":"localforage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/observability/src/observability.ts","kind":"dynamic-import","original":"../observability"}],"format":"esm"},"packages/sdk/observability/src/helpers/common.ts":{"bytes":2622,"imports":[],"format":"esm"},"packages/sdk/observability/src/helpers/node-observability.ts":{"bytes":14166,"imports":[{"path":"js-yaml","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"uuid","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/observability/src/observability.ts","kind":"import-statement","original":"../observability"}],"format":"esm"},"packages/sdk/observability/src/helpers/map-spaces.ts":{"bytes":6306,"imports":[],"format":"esm"},"packages/sdk/observability/src/helpers/setup-telemetry-listeners.ts":{"bytes":11655,"imports":[{"path":"packages/sdk/observability/src/helpers/common.ts","kind":"import-statement","original":"./common"}],"format":"esm"},"packages/sdk/observability/src/helpers/index.ts":{"bytes":930,"imports":[{"path":"packages/sdk/observability/src/helpers/browser-observability.ts","kind":"import-statement","original":"./browser-observability"},{"path":"packages/sdk/observability/src/helpers/common.ts","kind":"import-statement","original":"./common"},{"path":"packages/sdk/observability/src/helpers/node-observability.ts","kind":"import-statement","original":"./node-observability"},{"path":"packages/sdk/observability/src/helpers/map-spaces.ts","kind":"import-statement","original":"./map-spaces"},{"path":"packages/sdk/observability/src/helpers/setup-telemetry-listeners.ts","kind":"import-statement","original":"./setup-telemetry-listeners"}],"format":"esm"},"packages/sdk/observability/src/index.ts":{"bytes":566,"imports":[{"path":"packages/sdk/observability/src/helpers/index.ts","kind":"import-statement","original":"./helpers"},{"path":"packages/sdk/observability/src/observability.ts","kind":"import-statement","original":"./observability"}],"format":"esm"}},"outputs":{"packages/sdk/observability/dist/lib/node/datadog/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/observability/dist/lib/node/datadog/index.cjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node/chunk-ZJRKFREX.cjs","kind":"import-statement"}],"exports":["DatadogMetrics","defaultOptions"],"entryPoint":"packages/sdk/observability/src/datadog/index.ts","inputs":{},"bytes":158},"packages/sdk/observability/dist/lib/node/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/observability/dist/lib/node/index.cjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node/chunk-ED364ZBZ.cjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node/chunk-ZJRKFREX.cjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node/chunk-BHF4PKAP.cjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node/chunk-FSAOBKO2.cjs","kind":"import-statement"}],"exports":["OBSERVABILITY_DISABLED_KEY","OBSERVABILITY_GROUP_KEY","Observability","getObservabilityGroup","getObservabilityState","getTelemetryIdentifier","initializeAppObservability","initializeNodeObservability","isObservabilityDisabled","mapSpaces","setupTelemetryListeners","showObservabilityBanner","storeObservabilityDisabled","storeObservabilityGroup"],"entryPoint":"packages/sdk/observability/src/index.ts","inputs":{"packages/sdk/observability/src/index.ts":{"bytesInOutput":0}},"bytes":902},"packages/sdk/observability/dist/lib/node/segment/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/observability/dist/lib/node/segment/index.cjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node/chunk-BHF4PKAP.cjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node/chunk-FSAOBKO2.cjs","kind":"import-statement"}],"exports":["SegmentTelemetry"],"entryPoint":"packages/sdk/observability/src/segment/index.ts","inputs":{},"bytes":158},"packages/sdk/observability/dist/lib/node/sentry/index.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/observability/dist/lib/node/sentry/index.cjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node/chunk-FSAOBKO2.cjs","kind":"import-statement"}],"exports":["SENTRY_LOG_PROCESSOR","addBreadcrumb","captureException","configureTracing","enableSentryLogProcessor","init","setTag","setTags","setUser"],"entryPoint":"packages/sdk/observability/src/sentry/index.ts","inputs":{},"bytes":384},"packages/sdk/observability/dist/lib/node/observability-MN7SJ7NA.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/observability/dist/lib/node/observability-MN7SJ7NA.cjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node/chunk-ED364ZBZ.cjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node/chunk-ZJRKFREX.cjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node/chunk-BHF4PKAP.cjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node/chunk-FSAOBKO2.cjs","kind":"import-statement"}],"exports":["Observability"],"entryPoint":"packages/sdk/observability/src/observability.ts","inputs":{},"bytes":229},"packages/sdk/observability/dist/lib/node/chunk-ED364ZBZ.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":54400},"packages/sdk/observability/dist/lib/node/chunk-ED364ZBZ.cjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node/chunk-ZJRKFREX.cjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node/chunk-BHF4PKAP.cjs","kind":"import-statement"},{"path":"packages/sdk/observability/dist/lib/node/chunk-FSAOBKO2.cjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/network-manager","kind":"import-statement","external":true},{"path":"@dxos/protocols/proto/dxos/client/services","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"localforage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/observability/dist/lib/node/observability-MN7SJ7NA.cjs","kind":"dynamic-import"},{"path":"js-yaml","kind":"import-statement","external":true},{"path":"node:fs","kind":"import-statement","external":true},{"path":"node:fs/promises","kind":"import-statement","external":true},{"path":"node:path","kind":"import-statement","external":true},{"path":"uuid","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["OBSERVABILITY_DISABLED_KEY","OBSERVABILITY_GROUP_KEY","Observability","getObservabilityGroup","getObservabilityState","getTelemetryIdentifier","initializeAppObservability","initializeNodeObservability","isObservabilityDisabled","mapSpaces","setupTelemetryListeners","showObservabilityBanner","storeObservabilityDisabled","storeObservabilityGroup"],"inputs":{"packages/sdk/observability/src/observability.ts":{"bytesInOutput":14413},"packages/sdk/observability/src/cli-observability-secrets.json":{"bytesInOutput":347},"packages/sdk/observability/src/helpers/browser-observability.ts":{"bytesInOutput":4736},"packages/sdk/observability/src/helpers/index.ts":{"bytesInOutput":0},"packages/sdk/observability/src/helpers/common.ts":{"bytesInOutput":229},"packages/sdk/observability/src/helpers/node-observability.ts":{"bytesInOutput":3439},"packages/sdk/observability/src/helpers/map-spaces.ts":{"bytesInOutput":1177},"packages/sdk/observability/src/helpers/setup-telemetry-listeners.ts":{"bytesInOutput":2736}},"bytes":28221},"packages/sdk/observability/dist/lib/node/chunk-ZJRKFREX.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3002},"packages/sdk/observability/dist/lib/node/chunk-ZJRKFREX.cjs":{"imports":[{"path":"node:os","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"datadog-metrics","kind":"import-statement","external":true},{"path":"debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["DatadogMetrics","defaultOptions"],"inputs":{"packages/sdk/observability/src/datadog/node.ts":{"bytesInOutput":450},"packages/sdk/observability/src/datadog/index.ts":{"bytesInOutput":0},"packages/sdk/observability/src/datadog/metrics.ts":{"bytesInOutput":1128}},"bytes":1774},"packages/sdk/observability/dist/lib/node/chunk-BHF4PKAP.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3928},"packages/sdk/observability/dist/lib/node/chunk-BHF4PKAP.cjs":{"imports":[{"path":"packages/sdk/observability/dist/lib/node/chunk-FSAOBKO2.cjs","kind":"import-statement"},{"path":"analytics-node","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["SegmentTelemetry"],"inputs":{"packages/sdk/observability/src/segment/node.ts":{"bytesInOutput":2850},"packages/sdk/observability/src/segment/index.ts":{"bytesInOutput":0}},"bytes":3036},"packages/sdk/observability/dist/lib/node/chunk-FSAOBKO2.cjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":16118},"packages/sdk/observability/dist/lib/node/chunk-FSAOBKO2.cjs":{"imports":[{"path":"@sentry/integrations","kind":"import-statement","external":true},{"path":"@sentry/node","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@sentry/node","kind":"import-statement","external":true},{"path":"@sentry/tracing","kind":"dynamic-import","external":true},{"path":"@sentry/browser","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["SENTRY_LOG_PROCESSOR","addBreadcrumb","captureException","configureTracing","enableSentryLogProcessor","init","setTag","setTags","setUser"],"inputs":{"packages/sdk/observability/src/sentry/node.ts":{"bytesInOutput":3654},"packages/sdk/observability/src/sentry/index.ts":{"bytesInOutput":0},"packages/sdk/observability/src/sentry/tracing.ts":{"bytesInOutput":4629}},"bytes":8601}}}
@@ -16,12 +16,12 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var observability_JMKBRR4L_exports = {};
20
- __export(observability_JMKBRR4L_exports, {
21
- Observability: () => import_chunk_CBMRJXSL.Observability
19
+ var observability_MN7SJ7NA_exports = {};
20
+ __export(observability_MN7SJ7NA_exports, {
21
+ Observability: () => import_chunk_ED364ZBZ.Observability
22
22
  });
23
- module.exports = __toCommonJS(observability_JMKBRR4L_exports);
24
- var import_chunk_CBMRJXSL = require("./chunk-CBMRJXSL.cjs");
23
+ module.exports = __toCommonJS(observability_MN7SJ7NA_exports);
24
+ var import_chunk_ED364ZBZ = require("./chunk-ED364ZBZ.cjs");
25
25
  var import_chunk_ZJRKFREX = require("./chunk-ZJRKFREX.cjs");
26
26
  var import_chunk_BHF4PKAP = require("./chunk-BHF4PKAP.cjs");
27
27
  var import_chunk_FSAOBKO2 = require("./chunk-FSAOBKO2.cjs");
@@ -29,4 +29,4 @@ var import_chunk_FSAOBKO2 = require("./chunk-FSAOBKO2.cjs");
29
29
  0 && (module.exports = {
30
30
  Observability
31
31
  });
32
- //# sourceMappingURL=observability-JMKBRR4L.cjs.map
32
+ //# sourceMappingURL=observability-MN7SJ7NA.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["observability-JMKBRR4L.cjs"],
4
- "sourcesContent": ["import {\n Observability\n} from \"./chunk-CBMRJXSL.cjs\";\nimport \"./chunk-ZJRKFREX.cjs\";\nimport \"./chunk-BHF4PKAP.cjs\";\nimport \"./chunk-FSAOBKO2.cjs\";\nexport {\n Observability\n};\n//# sourceMappingURL=observability-JMKBRR4L.cjs.map\n"],
3
+ "sources": ["observability-MN7SJ7NA.cjs"],
4
+ "sourcesContent": ["import {\n Observability\n} from \"./chunk-ED364ZBZ.cjs\";\nimport \"./chunk-ZJRKFREX.cjs\";\nimport \"./chunk-BHF4PKAP.cjs\";\nimport \"./chunk-FSAOBKO2.cjs\";\nexport {\n Observability\n};\n//# sourceMappingURL=observability-MN7SJ7NA.cjs.map\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAEO;AACP,4BAAO;AACP,4BAAO;AACP,4BAAO;",
6
6
  "names": []
7
7
  }
@@ -27,7 +27,7 @@ const showObservabilityBanner = async (configDir, bannercb) => {
27
27
  'Basic observability data will be sent to the DXOS team in order to improve the product. This includes \
28
28
  performance metrics, error logs, and usage data. No personally identifiable information, other than your \
29
29
  public key, is included with this data and no private data ever leaves your devices. To disable sending \
30
- observability data, set the environment variable DX_DISABLE_TELEMETRY=true.');
30
+ observability data, set the environment variable DX_DISABLE_OBSERVABILITY=true.');
31
31
  await (0, promises_1.writeFile)(path, '', 'utf-8');
32
32
  };
33
33
  exports.showObservabilityBanner = showObservabilityBanner;
@@ -56,8 +56,8 @@ const initializeState = async (idPath) => {
56
56
  // TODO(nf): read initial values from config or seed file
57
57
  const observabilityState = {
58
58
  installationId: (0, uuid_1.v4)(),
59
- group: (_a = process.env.DX_TELEMETRY_GROUP) !== null && _a !== void 0 ? _a : undefined,
60
- mode: (process.env.DX_DISABLE_TELEMETRY ? 'disabled' : (_b = process.env.DX_TELEMETRY_MODE) !== null && _b !== void 0 ? _b : 'basic'),
59
+ group: (_a = process.env.DX_OBSERVABILITY_GROUP) !== null && _a !== void 0 ? _a : undefined,
60
+ mode: (process.env.DX_DISABLE_OBSERVABILITY ? 'disabled' : (_b = process.env.DX_OBSERVABILITY_MODE) !== null && _b !== void 0 ? _b : 'basic'),
61
61
  };
62
62
  await (0, promises_1.writeFile)(idPath, '# This file is automatically generated by the @dxos/cli.\n' + js_yaml_1.default.dump(observabilityState), 'utf-8');
63
63
  return observabilityState;
@@ -68,7 +68,7 @@ const validate = (contextString) => {
68
68
  if (Boolean(context.installationId) && (0, uuid_1.validate)(context.installationId)) {
69
69
  return {
70
70
  ...context,
71
- mode: process.env.DX_DISABLE_TELEMETRY ? 'disabled' : (_a = context.mode) !== null && _a !== void 0 ? _a : 'basic',
71
+ mode: process.env.DX_DISABLE_OBSERVABILITY ? 'disabled' : (_a = context.mode) !== null && _a !== void 0 ? _a : 'basic',
72
72
  };
73
73
  }
74
74
  };