@dxos/observability 0.8.4-main.ae835ea → 0.8.4-main.bc674ce

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (95) hide show
  1. package/dist/lib/browser/{chunk-XNAF22QM.mjs → chunk-5LN7D6GM.mjs} +6 -6
  2. package/dist/lib/browser/chunk-5LN7D6GM.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-USIB5JOP.mjs → chunk-JJQT5TQH.mjs} +51 -398
  4. package/dist/lib/browser/chunk-JJQT5TQH.mjs.map +7 -0
  5. package/dist/lib/browser/{chunk-ZI3ZS3PA.mjs → chunk-O4BG5MRL.mjs} +1 -1
  6. package/dist/lib/browser/chunk-U6JWT3E2.mjs +1 -0
  7. package/dist/lib/browser/chunk-VL6LVQPU.mjs +69 -0
  8. package/dist/lib/browser/chunk-VL6LVQPU.mjs.map +7 -0
  9. package/dist/lib/browser/index.mjs +341 -15
  10. package/dist/lib/browser/index.mjs.map +4 -4
  11. package/dist/lib/browser/meta.json +1 -1
  12. package/dist/lib/browser/observability-XK652NZG.mjs +11 -0
  13. package/dist/lib/browser/otel/traces-browser.mjs +7 -0
  14. package/dist/lib/browser/otel/traces-browser.mjs.map +7 -0
  15. package/dist/lib/browser/otel/traces.mjs +7 -0
  16. package/dist/lib/browser/otel/traces.mjs.map +7 -0
  17. package/dist/lib/browser/{otel-UH7ZRWC2.mjs → otel-DI4ASU7Y.mjs} +5 -66
  18. package/dist/lib/{node-esm/otel-7PUCFSTY.mjs.map → browser/otel-DI4ASU7Y.mjs.map} +4 -4
  19. package/dist/lib/browser/segment/browser.mjs +9 -0
  20. package/dist/lib/browser/segment/browser.mjs.map +7 -0
  21. package/dist/lib/browser/segment/index.mjs +3 -2
  22. package/dist/lib/browser/segment/node.mjs +9 -0
  23. package/dist/lib/browser/segment/node.mjs.map +7 -0
  24. package/dist/lib/browser/sentry/browser.mjs +23 -0
  25. package/dist/lib/browser/sentry/browser.mjs.map +7 -0
  26. package/dist/lib/browser/sentry/index.mjs +1 -1
  27. package/dist/lib/browser/sentry/node.mjs +23 -0
  28. package/dist/lib/browser/sentry/node.mjs.map +7 -0
  29. package/dist/lib/browser/{sentry-log-processor-5LSQJMIO.mjs → sentry-log-processor-W7LI6WXA.mjs} +2 -2
  30. package/dist/lib/browser/sentry-log-processor-W7LI6WXA.mjs.map +7 -0
  31. package/dist/lib/node-esm/{chunk-JJS4CBLT.mjs → chunk-KKNY7TRV.mjs} +51 -398
  32. package/dist/lib/node-esm/chunk-KKNY7TRV.mjs.map +7 -0
  33. package/dist/lib/node-esm/chunk-KLJGCUYA.mjs +2 -0
  34. package/dist/lib/node-esm/chunk-KLJGCUYA.mjs.map +7 -0
  35. package/dist/lib/node-esm/{chunk-OJV247NY.mjs → chunk-KVJTNW3F.mjs} +27 -84
  36. package/dist/lib/node-esm/chunk-KVJTNW3F.mjs.map +7 -0
  37. package/dist/lib/node-esm/{chunk-QK5IUYVA.mjs → chunk-M4627SMT.mjs} +1 -1
  38. package/dist/lib/node-esm/chunk-UIVXGEGJ.mjs +62 -0
  39. package/dist/lib/node-esm/chunk-UIVXGEGJ.mjs.map +7 -0
  40. package/dist/lib/node-esm/chunk-WAGGA7IT.mjs +52 -0
  41. package/dist/lib/node-esm/chunk-WAGGA7IT.mjs.map +7 -0
  42. package/dist/lib/node-esm/index.mjs +342 -15
  43. package/dist/lib/node-esm/index.mjs.map +4 -4
  44. package/dist/lib/node-esm/meta.json +1 -1
  45. package/dist/lib/node-esm/observability-CXQ3CZGB.mjs +13 -0
  46. package/dist/lib/node-esm/observability-CXQ3CZGB.mjs.map +7 -0
  47. package/dist/lib/node-esm/otel/traces-browser.mjs +70 -0
  48. package/dist/lib/node-esm/otel/traces-browser.mjs.map +7 -0
  49. package/dist/lib/node-esm/otel/traces.mjs +8 -0
  50. package/dist/lib/node-esm/otel/traces.mjs.map +7 -0
  51. package/dist/lib/node-esm/{otel-7PUCFSTY.mjs → otel-JFXO22WD.mjs} +4 -47
  52. package/dist/lib/{browser/otel-UH7ZRWC2.mjs.map → node-esm/otel-JFXO22WD.mjs.map} +4 -4
  53. package/dist/lib/node-esm/segment/browser.mjs +92 -0
  54. package/dist/lib/node-esm/segment/browser.mjs.map +7 -0
  55. package/dist/lib/node-esm/segment/index.mjs +6 -3
  56. package/dist/lib/node-esm/segment/node.mjs +11 -0
  57. package/dist/lib/node-esm/segment/node.mjs.map +7 -0
  58. package/dist/lib/node-esm/sentry/browser.mjs +165 -0
  59. package/dist/lib/node-esm/sentry/browser.mjs.map +7 -0
  60. package/dist/lib/node-esm/sentry/index.mjs +1 -1
  61. package/dist/lib/node-esm/sentry/node.mjs +24 -0
  62. package/dist/lib/node-esm/sentry/node.mjs.map +7 -0
  63. package/dist/lib/node-esm/{sentry-log-processor-C4UGMAMV.mjs → sentry-log-processor-W3SG4RQL.mjs} +2 -2
  64. package/dist/lib/node-esm/sentry-log-processor-W3SG4RQL.mjs.map +7 -0
  65. package/dist/types/src/helpers/map-spaces.js +1 -1
  66. package/dist/types/src/helpers/map-spaces.js.map +1 -1
  67. package/dist/types/src/segment/base.d.ts +2 -2
  68. package/dist/types/src/segment/base.d.ts.map +1 -1
  69. package/dist/types/src/segment/base.js +2 -2
  70. package/dist/types/src/segment/base.js.map +1 -1
  71. package/dist/types/src/segment/browser.js +2 -2
  72. package/dist/types/src/segment/browser.js.map +1 -1
  73. package/dist/types/src/segment/node.js +2 -2
  74. package/dist/types/src/segment/node.js.map +1 -1
  75. package/dist/types/src/sentry/sentry-log-processor.d.ts.map +1 -1
  76. package/dist/types/src/sentry/sentry-log-processor.js.map +1 -1
  77. package/dist/types/tsconfig.tsbuildinfo +1 -1
  78. package/package.json +23 -22
  79. package/src/helpers/map-spaces.ts +1 -1
  80. package/src/segment/base.ts +2 -2
  81. package/src/segment/browser.ts +2 -2
  82. package/src/segment/node.ts +2 -2
  83. package/src/sentry/sentry-log-processor.ts +2 -0
  84. package/dist/lib/browser/chunk-USIB5JOP.mjs.map +0 -7
  85. package/dist/lib/browser/chunk-XNAF22QM.mjs.map +0 -7
  86. package/dist/lib/browser/observability-AOZNUWZS.mjs +0 -10
  87. package/dist/lib/browser/sentry-log-processor-5LSQJMIO.mjs.map +0 -7
  88. package/dist/lib/node-esm/chunk-JJS4CBLT.mjs.map +0 -7
  89. package/dist/lib/node-esm/chunk-OJV247NY.mjs.map +0 -7
  90. package/dist/lib/node-esm/observability-UWX2LAYX.mjs +0 -11
  91. package/dist/lib/node-esm/sentry-log-processor-C4UGMAMV.mjs.map +0 -7
  92. /package/dist/lib/browser/{chunk-ZI3ZS3PA.mjs.map → chunk-O4BG5MRL.mjs.map} +0 -0
  93. /package/dist/lib/browser/{observability-AOZNUWZS.mjs.map → chunk-U6JWT3E2.mjs.map} +0 -0
  94. /package/dist/lib/{node-esm/observability-UWX2LAYX.mjs.map → browser/observability-XK652NZG.mjs.map} +0 -0
  95. /package/dist/lib/node-esm/{chunk-QK5IUYVA.mjs.map → chunk-M4627SMT.mjs.map} +0 -0
@@ -1,24 +1,351 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
  import {
3
- OBSERVABILITY_DISABLED_KEY,
4
- OBSERVABILITY_GROUP_KEY,
5
3
  Observability,
6
- getObservabilityGroup,
7
- getObservabilityState,
8
4
  getTelemetryIdentifier,
9
5
  getTelemetryIdentity,
10
- initializeAppObservability,
11
- initializeNodeObservability,
12
- isObservabilityDisabled,
13
- mapSpaces,
14
- setupTelemetryListeners,
15
- showObservabilityBanner,
16
- storeObservabilityDisabled,
17
- storeObservabilityGroup
18
- } from "./chunk-JJS4CBLT.mjs";
19
- import "./chunk-OJV247NY.mjs";
6
+ mapSpaces
7
+ } from "./chunk-KKNY7TRV.mjs";
8
+ import "./chunk-KLJGCUYA.mjs";
9
+ import "./chunk-KVJTNW3F.mjs";
10
+ import "./chunk-UIVXGEGJ.mjs";
20
11
  import "./chunk-QUZL7LKE.mjs";
21
- import "./chunk-QK5IUYVA.mjs";
12
+ import "./chunk-M4627SMT.mjs";
13
+
14
+ // src/helpers/browser-observability.ts
15
+ import * as localForage from "localforage";
16
+ import { log } from "@dxos/log";
17
+ var __dxlog_file = "/__w/dxos/dxos/packages/sdk/observability/src/helpers/browser-observability.ts";
18
+ var OBSERVABILITY_DISABLED_KEY = "observability-disabled";
19
+ var OBSERVABILITY_GROUP_KEY = "observability-group";
20
+ var isObservabilityDisabled = async (namespace) => {
21
+ try {
22
+ return await localForage.getItem(`${namespace}:${OBSERVABILITY_DISABLED_KEY}`) === "true";
23
+ } catch (err) {
24
+ log.catch("Failed to check if observability is disabled, assuming it is", err, {
25
+ F: __dxlog_file,
26
+ L: 25,
27
+ S: void 0,
28
+ C: (f, a) => f(...a)
29
+ });
30
+ return true;
31
+ }
32
+ };
33
+ var storeObservabilityDisabled = async (namespace, value) => {
34
+ try {
35
+ await localForage.setItem(`${namespace}:${OBSERVABILITY_DISABLED_KEY}`, String(value));
36
+ } catch (err) {
37
+ log.catch("Failed to store observability disabled", err, {
38
+ F: __dxlog_file,
39
+ L: 34,
40
+ S: void 0,
41
+ C: (f, a) => f(...a)
42
+ });
43
+ }
44
+ };
45
+ var getObservabilityGroup = async (namespace) => {
46
+ try {
47
+ return await localForage.getItem(`${namespace}:${OBSERVABILITY_GROUP_KEY}`) ?? void 0;
48
+ } catch (err) {
49
+ log.catch("Failed to get observability group", err, {
50
+ F: __dxlog_file,
51
+ L: 42,
52
+ S: void 0,
53
+ C: (f, a) => f(...a)
54
+ });
55
+ }
56
+ };
57
+ var storeObservabilityGroup = async (namespace, value) => {
58
+ try {
59
+ await localForage.setItem(`${namespace}:${OBSERVABILITY_GROUP_KEY}`, value);
60
+ } catch (err) {
61
+ log.catch("Failed to store observability group", err, {
62
+ F: __dxlog_file,
63
+ L: 50,
64
+ S: void 0,
65
+ C: (f, a) => f(...a)
66
+ });
67
+ }
68
+ };
69
+ var initializeAppObservability = async ({
70
+ namespace,
71
+ config,
72
+ // TODO(nf): Configure mode.
73
+ mode = "basic",
74
+ tracingEnable = false,
75
+ replayEnable = false
76
+ }) => {
77
+ log("initializeAppObservability", {
78
+ config
79
+ }, {
80
+ F: __dxlog_file,
81
+ L: 74,
82
+ S: void 0,
83
+ C: (f, a) => f(...a)
84
+ });
85
+ const group = await getObservabilityGroup(namespace) ?? void 0;
86
+ const release = `${namespace}@${config.get("runtime.app.build.version")}`;
87
+ const environment = config.get("runtime.app.env.DX_ENVIRONMENT");
88
+ const { Observability: Observability2 } = await import("./observability-CXQ3CZGB.mjs");
89
+ const observability = new Observability2({
90
+ namespace,
91
+ release,
92
+ environment,
93
+ group,
94
+ mode,
95
+ config,
96
+ errorLog: {
97
+ sentryInitOptions: {
98
+ environment,
99
+ release,
100
+ tracing: tracingEnable,
101
+ replay: replayEnable,
102
+ // TODO(wittjosiah): Configure these.
103
+ // Consider using a sampling function to dynamically configure these values.
104
+ // https://docs.sentry.io/platforms/javascript/configuration/sampling/#setting-a-sampling-function
105
+ sampleRate: 1,
106
+ replaySampleRate: 1,
107
+ replaySampleRateOnError: 1
108
+ }
109
+ }
110
+ });
111
+ const observabilityDisabled = await isObservabilityDisabled(namespace);
112
+ if (observabilityDisabled) {
113
+ observability.setMode("disabled");
114
+ log.info("observability disabled", void 0, {
115
+ F: __dxlog_file,
116
+ L: 114,
117
+ S: void 0,
118
+ C: (f, a) => f(...a)
119
+ });
120
+ return observability;
121
+ }
122
+ try {
123
+ const getIPData = async (config2) => {
124
+ const IP_DATA_CACHE_TIMEOUT = 6 * 60 * 60 * 1e3;
125
+ const cachedData = await localForage.getItem("dxos:observability:ipdata");
126
+ if (cachedData && cachedData.timestamp > Date.now() - IP_DATA_CACHE_TIMEOUT) {
127
+ return cachedData.data;
128
+ }
129
+ const IPDATA_API_KEY = config2.get("runtime.app.env.DX_IPDATA_API_KEY");
130
+ if (IPDATA_API_KEY) {
131
+ return fetch(`https://api.ipdata.co?api-key=${IPDATA_API_KEY}`).then((res) => res.json()).then((data) => {
132
+ localForage.setItem("dxos:observability:ipdata", {
133
+ data,
134
+ timestamp: Date.now()
135
+ }).catch((err) => observability.captureException(err));
136
+ return data;
137
+ }).catch((err) => observability.captureException(err));
138
+ }
139
+ };
140
+ await observability.initialize();
141
+ observability.startErrorLogs();
142
+ const ipData = await getIPData(config);
143
+ ipData && observability.setIPDataTelemetryTags(ipData);
144
+ if (typeof navigator !== "undefined" && navigator.storage?.estimate) {
145
+ setInterval(async () => {
146
+ try {
147
+ const storageEstimate = await navigator.storage.estimate();
148
+ storageEstimate.usage && observability.setTag("storageUsage", storageEstimate.usage.toString(), "telemetry");
149
+ storageEstimate.quota && observability.setTag("storageQuota", storageEstimate.quota.toString(), "telemetry");
150
+ } catch (error) {
151
+ log.warn("Failed to run estimate()", error, {
152
+ F: __dxlog_file,
153
+ L: 169,
154
+ S: void 0,
155
+ C: (f, a) => f(...a)
156
+ });
157
+ }
158
+ }, 1e4);
159
+ }
160
+ } catch (err) {
161
+ log.error("Failed to initialize app observability", err, {
162
+ F: __dxlog_file,
163
+ L: 174,
164
+ S: void 0,
165
+ C: (f, a) => f(...a)
166
+ });
167
+ }
168
+ return observability;
169
+ };
170
+
171
+ // src/helpers/node-observability.ts
172
+ import { existsSync, statSync } from "node:fs";
173
+ import { mkdir, readFile, writeFile } from "node:fs/promises";
174
+ import { join } from "node:path";
175
+ import yaml from "js-yaml";
176
+ import { v4 as uuid, validate as validateUuid } from "uuid";
177
+ import { log as log2 } from "@dxos/log";
178
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/sdk/observability/src/helpers/node-observability.ts";
179
+ var showObservabilityBanner = async (configDir, bannercb) => {
180
+ const path = join(configDir, ".observability-banner-printed");
181
+ if (existsSync(path)) {
182
+ return;
183
+ }
184
+ bannercb(
185
+ // eslint-disable-next-line no-multi-str
186
+ "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."
187
+ );
188
+ await writeFile(path, "", "utf-8");
189
+ };
190
+ var getObservabilityState = async (configDir) => {
191
+ if (existsSync(configDir)) {
192
+ if (!statSync(configDir).isDirectory()) {
193
+ throw new Error(`Config directory ${configDir} exists but is not a directory`);
194
+ }
195
+ } else {
196
+ await mkdir(configDir, {
197
+ recursive: true
198
+ });
199
+ }
200
+ const idPath = join(configDir, "observability.yml");
201
+ if (existsSync(idPath)) {
202
+ const context = await readFile(idPath, "utf-8");
203
+ return validate(context) ?? initializeState(idPath);
204
+ }
205
+ return initializeState(idPath);
206
+ };
207
+ var initializeState = async (idPath) => {
208
+ const observabilityState = {
209
+ installationId: uuid(),
210
+ group: process.env.DX_OBSERVABILITY_GROUP ?? void 0,
211
+ mode: process.env.DX_DISABLE_OBSERVABILITY ? "disabled" : process.env.DX_OBSERVABILITY_MODE ?? "basic"
212
+ };
213
+ await writeFile(idPath, "# This file is automatically generated by the @dxos/cli.\n" + yaml.dump(observabilityState), "utf-8");
214
+ return observabilityState;
215
+ };
216
+ var validate = (contextString) => {
217
+ const context = yaml.load(contextString);
218
+ if (Boolean(context.installationId) && validateUuid(context.installationId)) {
219
+ return {
220
+ ...context,
221
+ mode: process.env.DX_DISABLE_OBSERVABILITY ? "disabled" : context.mode ?? "basic"
222
+ };
223
+ }
224
+ };
225
+ var initializeNodeObservability = async ({ namespace, version, config, installationId, group, mode = "basic", tracingEnable = true, replayEnable = true }) => {
226
+ log2("initializeCliObservability", {
227
+ config
228
+ }, {
229
+ F: __dxlog_file2,
230
+ L: 111,
231
+ S: void 0,
232
+ C: (f, a) => f(...a)
233
+ });
234
+ const release = `${namespace}@${version}`;
235
+ const environment = process.env.DX_ENVIRONMENT ?? "unknown";
236
+ const observability = new Observability({
237
+ mode,
238
+ namespace,
239
+ release,
240
+ environment,
241
+ group,
242
+ errorLog: {
243
+ sentryInitOptions: {
244
+ environment,
245
+ release,
246
+ // TODO(wittjosiah): Configure this.
247
+ sampleRate: 1
248
+ }
249
+ }
250
+ });
251
+ observability.setTag("installationId", installationId);
252
+ const IPDATA_API_KEY = config.get("runtime.app.env.DX_IPDATA_API_KEY");
253
+ try {
254
+ const res = await fetch(`https://api.ipdata.co/?api-key=${IPDATA_API_KEY}`);
255
+ const ipData = await res.json();
256
+ ipData && observability.setIPDataTelemetryTags(ipData);
257
+ } catch (err) {
258
+ observability?.captureException(err);
259
+ }
260
+ return observability;
261
+ };
262
+
263
+ // src/helpers/setup-telemetry-listeners.ts
264
+ var lastFocusEvent = /* @__PURE__ */ new Date();
265
+ var totalTime = 0;
266
+ var setupTelemetryListeners = (namespace, client, observability) => {
267
+ const clickCallback = (event) => {
268
+ const id = event.target?.id;
269
+ if (!id) {
270
+ return;
271
+ }
272
+ setTimeout(() => {
273
+ observability.track({
274
+ ...getTelemetryIdentity(client),
275
+ action: "window.click",
276
+ properties: {
277
+ id: event.target?.id,
278
+ path: event.composedPath().filter((el) => Boolean(el.tagName)).map((el) => `${el.tagName.toLowerCase()}${el.id ? `#${el.id}` : ""}`).reverse().join(">")
279
+ }
280
+ });
281
+ });
282
+ };
283
+ const focusCallback = () => {
284
+ const now = /* @__PURE__ */ new Date();
285
+ setTimeout(() => {
286
+ observability.track({
287
+ ...getTelemetryIdentity(client),
288
+ action: "window.focus",
289
+ properties: {
290
+ timeAway: now.getTime() - lastFocusEvent.getTime()
291
+ }
292
+ });
293
+ });
294
+ lastFocusEvent = now;
295
+ };
296
+ const blurCallback = () => {
297
+ const now = /* @__PURE__ */ new Date();
298
+ const duration = now.getTime() - lastFocusEvent.getTime();
299
+ setTimeout(() => {
300
+ observability.track({
301
+ ...getTelemetryIdentity(client),
302
+ action: "window.blur",
303
+ properties: {
304
+ duration
305
+ }
306
+ });
307
+ });
308
+ lastFocusEvent = now;
309
+ totalTime = totalTime + duration;
310
+ };
311
+ const unloadCallback = () => {
312
+ setTimeout(() => {
313
+ observability.track({
314
+ ...getTelemetryIdentity(client),
315
+ action: "page.unload",
316
+ properties: {
317
+ duration: totalTime
318
+ }
319
+ });
320
+ });
321
+ };
322
+ const errorCallback = (event) => {
323
+ setTimeout(() => {
324
+ observability.track({
325
+ ...getTelemetryIdentity(client),
326
+ action: "window.error",
327
+ properties: {
328
+ message: event.message,
329
+ filename: event.filename,
330
+ stack: event.error?.stack,
331
+ cause: event.error?.cause
332
+ }
333
+ });
334
+ });
335
+ };
336
+ window.addEventListener("click", clickCallback, true);
337
+ window.addEventListener("focus", focusCallback);
338
+ window.addEventListener("blur", blurCallback);
339
+ window.addEventListener("beforeunload", unloadCallback);
340
+ window.addEventListener("error", errorCallback);
341
+ return () => {
342
+ window.removeEventListener("click", clickCallback, true);
343
+ window.removeEventListener("focus", focusCallback);
344
+ window.removeEventListener("blur", blurCallback);
345
+ window.removeEventListener("beforeunload", unloadCallback);
346
+ window.removeEventListener("error", errorCallback);
347
+ };
348
+ };
22
349
  export {
23
350
  OBSERVABILITY_DISABLED_KEY,
24
351
  OBSERVABILITY_GROUP_KEY,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
3
+ "sources": ["../../../src/helpers/browser-observability.ts", "../../../src/helpers/node-observability.ts", "../../../src/helpers/setup-telemetry-listeners.ts"],
4
+ "sourcesContent": ["//\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 { Mode, Observability } from '../observability';\n\nimport type { IPData } from './common';\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 // TODO(nf): Configure mode.\n mode = 'basic',\n tracingEnable = false,\n replayEnable = false,\n}: AppObservabilityOptions): Promise<Observability> => {\n log('initializeAppObservability', { config });\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 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 { Observability } = await import('../observability');\n const observability = new Observability({\n namespace,\n release,\n environment,\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 // Consider using a sampling function to dynamically configure these values.\n // https://docs.sentry.io/platforms/javascript/configuration/sampling/#setting-a-sampling-function\n sampleRate: 1.0,\n replaySampleRate: 1.0,\n replaySampleRateOnError: 1.0,\n },\n },\n });\n\n // Global kill switch.\n const observabilityDisabled = await isObservabilityDisabled(namespace);\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 // TODO(nf): should provide capability to init Sentry earlier in booting process to capture errors during initialization.\n\n await observability.initialize();\n observability.startErrorLogs();\n\n const ipData = await getIPData(config);\n ipData && observability.setIPDataTelemetryTags(ipData);\n\n if (typeof navigator !== 'undefined' && navigator.storage?.estimate) {\n // TODO(burdon): Need to close.\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 }, 10_000);\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//\nimport { existsSync, statSync } from 'node:fs';\nimport { mkdir, readFile, writeFile } from 'node:fs/promises';\nimport { join } from 'node:path';\n\nimport yaml from 'js-yaml';\nimport { v4 as uuid, validate as validateUuid } from 'uuid';\n\nimport type { Config } from '@dxos/client';\nimport { log } from '@dxos/log';\n\nimport { type Mode, Observability } 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 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 version: 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 version,\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 // TODO(nf): make CLI build populate runtime.app.build config?\n const release = `${namespace}@${version}`;\n const environment = process.env.DX_ENVIRONMENT ?? 'unknown';\n\n const observability = new Observability({\n mode,\n namespace,\n release,\n environment,\n group,\n errorLog: {\n sentryInitOptions: {\n environment,\n release,\n // TODO(wittjosiah): Configure this.\n sampleRate: 1.0,\n },\n },\n });\n\n observability.setTag('installationId', installationId);\n\n // TODO(nf): cache ipdata to avoid repeated requests\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.setIPDataTelemetryTags(ipData);\n } catch (err) {\n observability?.captureException(err);\n }\n\n return observability;\n};\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport type { Client } from '@dxos/client';\n\nimport { type Observability } from '../observability';\n\nimport { getTelemetryIdentity } from './common';\n\nlet lastFocusEvent = new Date();\nlet totalTime = 0;\n\nexport const setupTelemetryListeners = (namespace: string, client: Client, observability: Observability) => {\n const clickCallback = (event: Event) => {\n const id = (event.target as HTMLElement)?.id;\n if (!id) {\n return;\n }\n\n setTimeout(() => {\n observability.track({\n ...getTelemetryIdentity(client),\n action: 'window.click',\n properties: {\n id: (event.target as HTMLElement)?.id,\n path: (event.composedPath() 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.track({\n ...getTelemetryIdentity(client),\n action: 'window.focus',\n properties: {\n timeAway: now.getTime() - lastFocusEvent.getTime(),\n },\n });\n });\n\n lastFocusEvent = now;\n };\n\n const blurCallback = () => {\n const now = new Date();\n const duration = now.getTime() - lastFocusEvent.getTime();\n setTimeout(() => {\n observability.track({\n ...getTelemetryIdentity(client),\n action: 'window.blur',\n properties: {\n duration,\n },\n });\n });\n\n lastFocusEvent = now;\n totalTime = totalTime + duration;\n };\n\n const unloadCallback = () => {\n setTimeout(() => {\n observability.track({\n ...getTelemetryIdentity(client),\n action: 'page.unload',\n properties: {\n duration: totalTime,\n },\n });\n });\n };\n\n const errorCallback = (event: ErrorEvent) => {\n setTimeout(() => {\n observability.track({\n ...getTelemetryIdentity(client),\n action: 'window.error',\n properties: {\n message: event.message,\n filename: event.filename,\n stack: (event.error as Error)?.stack,\n cause: (event.error as Error)?.cause,\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": "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",
6
+ "names": ["localForage", "log", "OBSERVABILITY_DISABLED_KEY", "OBSERVABILITY_GROUP_KEY", "isObservabilityDisabled", "namespace", "getItem", "err", "catch", "storeObservabilityDisabled", "value", "setItem", "String", "getObservabilityGroup", "undefined", "storeObservabilityGroup", "initializeAppObservability", "config", "mode", "tracingEnable", "replayEnable", "group", "release", "get", "environment", "Observability", "observability", "errorLog", "sentryInitOptions", "tracing", "replay", "sampleRate", "replaySampleRate", "replaySampleRateOnError", "observabilityDisabled", "setMode", "info", "getIPData", "IP_DATA_CACHE_TIMEOUT", "cachedData", "timestamp", "Date", "now", "data", "IPDATA_API_KEY", "fetch", "then", "res", "json", "captureException", "initialize", "startErrorLogs", "ipData", "setIPDataTelemetryTags", "navigator", "storage", "estimate", "setInterval", "storageEstimate", "usage", "setTag", "toString", "quota", "error", "warn", "existsSync", "statSync", "mkdir", "readFile", "writeFile", "join", "yaml", "v4", "uuid", "validate", "validateUuid", "log", "showObservabilityBanner", "configDir", "bannercb", "path", "join", "existsSync", "writeFile", "getObservabilityState", "statSync", "isDirectory", "Error", "mkdir", "recursive", "idPath", "context", "readFile", "validate", "initializeState", "observabilityState", "installationId", "uuid", "group", "process", "env", "DX_OBSERVABILITY_GROUP", "undefined", "mode", "DX_DISABLE_OBSERVABILITY", "DX_OBSERVABILITY_MODE", "yaml", "dump", "contextString", "load", "Boolean", "validateUuid", "initializeNodeObservability", "namespace", "version", "config", "tracingEnable", "replayEnable", "log", "release", "environment", "DX_ENVIRONMENT", "observability", "Observability", "errorLog", "sentryInitOptions", "sampleRate", "setTag", "IPDATA_API_KEY", "get", "res", "fetch", "ipData", "json", "setIPDataTelemetryTags", "err", "captureException", "lastFocusEvent", "Date", "totalTime", "setupTelemetryListeners", "namespace", "client", "observability", "clickCallback", "event", "id", "target", "setTimeout", "track", "getTelemetryIdentity", "action", "properties", "path", "composedPath", "filter", "el", "Boolean", "tagName", "map", "toLowerCase", "reverse", "join", "focusCallback", "now", "timeAway", "getTime", "blurCallback", "duration", "unloadCallback", "errorCallback", "message", "filename", "stack", "error", "cause", "window", "addEventListener", "removeEventListener"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"src/cli-observability-secrets.json":{"bytes":593,"imports":[]},"src/sentry/node.ts":{"bytes":13833,"imports":[{"path":"@sentry/node","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@sentry/node","kind":"import-statement","external":true}],"format":"esm"},"src/sentry/index.ts":{"bytes":492,"imports":[{"path":"src/sentry/node.ts","kind":"import-statement","original":"./node"}],"format":"esm"},"src/segment/types.ts":{"bytes":2514,"imports":[],"format":"esm"},"src/segment/base.ts":{"bytes":5273,"imports":[{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/segment/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/segment/node.ts":{"bytes":9519,"imports":[{"path":"@segment/analytics-node","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/sentry/index.ts","kind":"import-statement","original":"../sentry"},{"path":"src/segment/base.ts","kind":"import-statement","original":"./base"}],"format":"esm"},"src/segment/index.ts":{"bytes":534,"imports":[{"path":"src/segment/node.ts","kind":"import-statement","original":"./node"},{"path":"src/segment/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/otel/otel.ts":{"bytes":1907,"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true}],"format":"esm"},"src/otel/logs.ts":{"bytes":10897,"imports":[{"path":"@opentelemetry/api-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-logs-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/otel/otel.ts","kind":"import-statement","original":"./otel"}],"format":"esm"},"src/otel/metrics.ts":{"bytes":13918,"imports":[{"path":"@opentelemetry/exporter-metrics-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-metrics","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"src/otel/otel.ts","kind":"import-statement","original":"./otel"}],"format":"esm"},"src/otel/traces.ts":{"bytes":6961,"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-trace-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-base","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"debug","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true}],"format":"esm"},"src/otel/index.ts":{"bytes":699,"imports":[{"path":"src/otel/otel.ts","kind":"import-statement","original":"./otel"},{"path":"src/otel/logs.ts","kind":"import-statement","original":"./logs"},{"path":"src/otel/metrics.ts","kind":"import-statement","original":"./metrics"},{"path":"src/otel/traces.ts","kind":"import-statement","original":"./traces"}],"format":"esm"},"src/sentry/sentry-log-processor.ts":{"bytes":20520,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/sentry/node.ts","kind":"import-statement","original":"./node"}],"format":"esm"},"src/observability.ts":{"bytes":76912,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","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":"src/cli-observability-secrets.json","kind":"import-statement","original":"./cli-observability-secrets.json"},{"path":"src/helpers/index.ts","kind":"import-statement","original":"./helpers"},{"path":"src/segment/index.ts","kind":"import-statement","original":"./segment"},{"path":"src/otel/index.ts","kind":"dynamic-import","original":"./otel"},{"path":"src/otel/index.ts","kind":"dynamic-import","original":"./otel"},{"path":"src/segment/index.ts","kind":"dynamic-import","original":"./segment"},{"path":"src/sentry/index.ts","kind":"dynamic-import","original":"./sentry"},{"path":"src/sentry/sentry-log-processor.ts","kind":"dynamic-import","original":"./sentry/sentry-log-processor"},{"path":"src/otel/index.ts","kind":"dynamic-import","original":"./otel"}],"format":"esm"},"src/helpers/browser-observability.ts":{"bytes":20089,"imports":[{"path":"localforage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/observability.ts","kind":"dynamic-import","original":"../observability"}],"format":"esm"},"src/helpers/common.ts":{"bytes":3121,"imports":[],"format":"esm"},"src/helpers/node-observability.ts":{"bytes":14187,"imports":[{"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":"js-yaml","kind":"import-statement","external":true},{"path":"uuid","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/observability.ts","kind":"import-statement","original":"../observability"}],"format":"esm"},"src/helpers/map-spaces.ts":{"bytes":6364,"imports":[],"format":"esm"},"src/helpers/setup-telemetry-listeners.ts":{"bytes":10343,"imports":[{"path":"src/helpers/common.ts","kind":"import-statement","original":"./common"}],"format":"esm"},"src/helpers/index.ts":{"bytes":917,"imports":[{"path":"src/helpers/browser-observability.ts","kind":"import-statement","original":"./browser-observability"},{"path":"src/helpers/common.ts","kind":"import-statement","original":"./common"},{"path":"src/helpers/node-observability.ts","kind":"import-statement","original":"./node-observability"},{"path":"src/helpers/map-spaces.ts","kind":"import-statement","original":"./map-spaces"},{"path":"src/helpers/setup-telemetry-listeners.ts","kind":"import-statement","original":"./setup-telemetry-listeners"}],"format":"esm"},"src/index.ts":{"bytes":553,"imports":[{"path":"src/helpers/index.ts","kind":"import-statement","original":"./helpers"},{"path":"src/observability.ts","kind":"import-statement","original":"./observability"}],"format":"esm"}},"outputs":{"dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-JJS4CBLT.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-OJV247NY.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-QUZL7LKE.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-QK5IUYVA.mjs","kind":"import-statement"}],"exports":["OBSERVABILITY_DISABLED_KEY","OBSERVABILITY_GROUP_KEY","Observability","getObservabilityGroup","getObservabilityState","getTelemetryIdentifier","getTelemetryIdentity","initializeAppObservability","initializeNodeObservability","isObservabilityDisabled","mapSpaces","setupTelemetryListeners","showObservabilityBanner","storeObservabilityDisabled","storeObservabilityGroup"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0}},"bytes":1042},"dist/lib/node-esm/segment/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/segment/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-OJV247NY.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-QUZL7LKE.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-QK5IUYVA.mjs","kind":"import-statement"}],"exports":["SegmentTelemetry","TelemetryEvent"],"entryPoint":"src/segment/index.ts","inputs":{},"bytes":318},"dist/lib/node-esm/sentry/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/sentry/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-QUZL7LKE.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-QK5IUYVA.mjs","kind":"import-statement"}],"exports":["addBreadcrumb","captureException","captureMessage","captureUserFeedback","init","setTag","setTags","setUser","withScope"],"entryPoint":"src/sentry/index.ts","inputs":{},"bytes":472},"dist/lib/node-esm/otel-7PUCFSTY.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":17728},"dist/lib/node-esm/otel-7PUCFSTY.mjs":{"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true},{"path":"@opentelemetry/api-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-logs-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-metrics-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-metrics","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@opentelemetry/api","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-trace-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-base","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"debug","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true}],"exports":["OtelLogs","OtelMetrics","OtelTraces","setDiagLogger"],"entryPoint":"src/otel/index.ts","inputs":{"src/otel/otel.ts":{"bytesInOutput":229},"src/otel/index.ts":{"bytesInOutput":0},"src/otel/logs.ts":{"bytesInOutput":2459},"src/otel/metrics.ts":{"bytesInOutput":3582},"src/otel/traces.ts":{"bytesInOutput":1812}},"bytes":8375},"dist/lib/node-esm/sentry-log-processor-C4UGMAMV.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10604},"dist/lib/node-esm/sentry-log-processor-C4UGMAMV.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-QK5IUYVA.mjs","kind":"import-statement"},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["SentryLogProcessor"],"entryPoint":"src/sentry/sentry-log-processor.ts","inputs":{"src/sentry/sentry-log-processor.ts":{"bytesInOutput":4751}},"bytes":5064},"dist/lib/node-esm/observability-UWX2LAYX.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/observability-UWX2LAYX.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-JJS4CBLT.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-OJV247NY.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-QUZL7LKE.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-QK5IUYVA.mjs","kind":"import-statement"}],"exports":["Observability"],"entryPoint":"src/observability.ts","inputs":{},"bytes":321},"dist/lib/node-esm/chunk-JJS4CBLT.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":64662},"dist/lib/node-esm/chunk-JJS4CBLT.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-OJV247NY.mjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","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":"dist/lib/node-esm/observability-UWX2LAYX.mjs","kind":"dynamic-import"},{"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":"js-yaml","kind":"import-statement","external":true},{"path":"uuid","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"dist/lib/node-esm/otel-7PUCFSTY.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/otel-7PUCFSTY.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/segment/index.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/sentry/index.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/sentry-log-processor-C4UGMAMV.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/otel-7PUCFSTY.mjs","kind":"dynamic-import"}],"exports":["OBSERVABILITY_DISABLED_KEY","OBSERVABILITY_GROUP_KEY","Observability","getObservabilityGroup","getObservabilityState","getTelemetryIdentifier","getTelemetryIdentity","initializeAppObservability","initializeNodeObservability","isObservabilityDisabled","mapSpaces","setupTelemetryListeners","showObservabilityBanner","storeObservabilityDisabled","storeObservabilityGroup"],"inputs":{"src/observability.ts":{"bytesInOutput":19910},"src/cli-observability-secrets.json":{"bytesInOutput":625},"src/helpers/browser-observability.ts":{"bytesInOutput":5032},"src/helpers/index.ts":{"bytesInOutput":0},"src/helpers/common.ts":{"bytesInOutput":324},"src/helpers/node-observability.ts":{"bytesInOutput":3402},"src/helpers/map-spaces.ts":{"bytesInOutput":1192},"src/helpers/setup-telemetry-listeners.ts":{"bytesInOutput":2542}},"bytes":33887},"dist/lib/node-esm/chunk-OJV247NY.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":8217},"dist/lib/node-esm/chunk-OJV247NY.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-QK5IUYVA.mjs","kind":"import-statement"},{"path":"@segment/analytics-node","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["SegmentTelemetry","TelemetryEvent"],"inputs":{"src/segment/node.ts":{"bytesInOutput":2917},"src/segment/base.ts":{"bytesInOutput":1095},"src/segment/types.ts":{"bytesInOutput":182},"src/segment/index.ts":{"bytesInOutput":0}},"bytes":4560},"dist/lib/node-esm/chunk-QUZL7LKE.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/chunk-QUZL7LKE.mjs":{"imports":[],"exports":[],"inputs":{"src/sentry/index.ts":{"bytesInOutput":0}},"bytes":136},"dist/lib/node-esm/chunk-QK5IUYVA.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6673},"dist/lib/node-esm/chunk-QK5IUYVA.mjs":{"imports":[{"path":"@sentry/node","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@sentry/node","kind":"import-statement","external":true}],"exports":["addBreadcrumb","captureException","captureMessage","captureUserFeedback","init","setTag","setTags","setUser","withScope"],"inputs":{"src/sentry/node.ts":{"bytesInOutput":3387}},"bytes":3700}}}
1
+ {"inputs":{"src/cli-observability-secrets.json":{"bytes":593,"imports":[]},"src/sentry/node.ts":{"bytes":13833,"imports":[{"path":"@sentry/node","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@sentry/node","kind":"import-statement","external":true}],"format":"esm"},"src/sentry/index.ts":{"bytes":492,"imports":[{"path":"src/sentry/node.ts","kind":"import-statement","original":"./node"}],"format":"esm"},"src/segment/types.ts":{"bytes":2514,"imports":[],"format":"esm"},"src/segment/base.ts":{"bytes":5279,"imports":[{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/segment/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/segment/node.ts":{"bytes":9529,"imports":[{"path":"@segment/analytics-node","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/sentry/index.ts","kind":"import-statement","original":"../sentry"},{"path":"src/segment/base.ts","kind":"import-statement","original":"./base"}],"format":"esm"},"src/segment/index.ts":{"bytes":534,"imports":[{"path":"src/segment/node.ts","kind":"import-statement","original":"./node"},{"path":"src/segment/types.ts","kind":"import-statement","original":"./types"}],"format":"esm"},"src/otel/otel.ts":{"bytes":1907,"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true}],"format":"esm"},"src/otel/logs.ts":{"bytes":10897,"imports":[{"path":"@opentelemetry/api-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-logs-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/otel/otel.ts","kind":"import-statement","original":"./otel"}],"format":"esm"},"src/otel/metrics.ts":{"bytes":13918,"imports":[{"path":"@opentelemetry/exporter-metrics-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-metrics","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"src/otel/otel.ts","kind":"import-statement","original":"./otel"}],"format":"esm"},"src/otel/traces.ts":{"bytes":6961,"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-trace-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-base","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"debug","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true}],"format":"esm"},"src/otel/index.ts":{"bytes":699,"imports":[{"path":"src/otel/otel.ts","kind":"import-statement","original":"./otel"},{"path":"src/otel/logs.ts","kind":"import-statement","original":"./logs"},{"path":"src/otel/metrics.ts","kind":"import-statement","original":"./metrics"},{"path":"src/otel/traces.ts","kind":"import-statement","original":"./traces"}],"format":"esm"},"src/sentry/sentry-log-processor.ts":{"bytes":20528,"imports":[{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/sentry/node.ts","kind":"import-statement","original":"./node"}],"format":"esm"},"src/observability.ts":{"bytes":76912,"imports":[{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","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":"src/cli-observability-secrets.json","kind":"import-statement","original":"./cli-observability-secrets.json"},{"path":"src/helpers/index.ts","kind":"import-statement","original":"./helpers"},{"path":"src/segment/index.ts","kind":"import-statement","original":"./segment"},{"path":"src/otel/index.ts","kind":"dynamic-import","original":"./otel"},{"path":"src/otel/index.ts","kind":"dynamic-import","original":"./otel"},{"path":"src/segment/index.ts","kind":"dynamic-import","original":"./segment"},{"path":"src/sentry/index.ts","kind":"dynamic-import","original":"./sentry"},{"path":"src/sentry/sentry-log-processor.ts","kind":"dynamic-import","original":"./sentry/sentry-log-processor"},{"path":"src/otel/index.ts","kind":"dynamic-import","original":"./otel"}],"format":"esm"},"src/helpers/browser-observability.ts":{"bytes":20089,"imports":[{"path":"localforage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/observability.ts","kind":"dynamic-import","original":"../observability"}],"format":"esm"},"src/helpers/common.ts":{"bytes":3121,"imports":[],"format":"esm"},"src/helpers/node-observability.ts":{"bytes":14187,"imports":[{"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":"js-yaml","kind":"import-statement","external":true},{"path":"uuid","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/observability.ts","kind":"import-statement","original":"../observability"}],"format":"esm"},"src/helpers/map-spaces.ts":{"bytes":6397,"imports":[],"format":"esm"},"src/helpers/setup-telemetry-listeners.ts":{"bytes":10343,"imports":[{"path":"src/helpers/common.ts","kind":"import-statement","original":"./common"}],"format":"esm"},"src/helpers/index.ts":{"bytes":917,"imports":[{"path":"src/helpers/browser-observability.ts","kind":"import-statement","original":"./browser-observability"},{"path":"src/helpers/common.ts","kind":"import-statement","original":"./common"},{"path":"src/helpers/node-observability.ts","kind":"import-statement","original":"./node-observability"},{"path":"src/helpers/map-spaces.ts","kind":"import-statement","original":"./map-spaces"},{"path":"src/helpers/setup-telemetry-listeners.ts","kind":"import-statement","original":"./setup-telemetry-listeners"}],"format":"esm"},"src/index.ts":{"bytes":553,"imports":[{"path":"src/helpers/index.ts","kind":"import-statement","original":"./helpers"},{"path":"src/observability.ts","kind":"import-statement","original":"./observability"}],"format":"esm"},"src/segment/browser.ts":{"bytes":7595,"imports":[{"path":"@segment/snippet","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/sentry/index.ts","kind":"import-statement","original":"../sentry"},{"path":"src/segment/base.ts","kind":"import-statement","original":"./base"}],"format":"esm"},"src/sentry/browser.ts":{"bytes":15836,"imports":[{"path":"@sentry/browser","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@sentry/browser","kind":"import-statement","external":true}],"format":"esm"},"src/otel/traces-browser.ts":{"bytes":8399,"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true},{"path":"@opentelemetry/auto-instrumentations-web","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-trace-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/instrumentation","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-base","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-web","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/lib/node-esm/otel/traces-browser.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4103},"dist/lib/node-esm/otel/traces-browser.mjs":{"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true},{"path":"@opentelemetry/auto-instrumentations-web","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-trace-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/instrumentation","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-base","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-web","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true}],"exports":["OtelTraces"],"entryPoint":"src/otel/traces-browser.ts","inputs":{"src/otel/traces-browser.ts":{"bytesInOutput":2281}},"bytes":2473},"dist/lib/node-esm/otel-JFXO22WD.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":13955},"dist/lib/node-esm/otel-JFXO22WD.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-WAGGA7IT.mjs","kind":"import-statement"},{"path":"@opentelemetry/api","kind":"import-statement","external":true},{"path":"@opentelemetry/api-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-logs-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-logs","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-metrics-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-metrics","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true}],"exports":["OtelLogs","OtelMetrics","OtelTraces","setDiagLogger"],"entryPoint":"src/otel/index.ts","inputs":{"src/otel/otel.ts":{"bytesInOutput":229},"src/otel/index.ts":{"bytesInOutput":0},"src/otel/logs.ts":{"bytesInOutput":2459},"src/otel/metrics.ts":{"bytesInOutput":3582}},"bytes":6593},"dist/lib/node-esm/sentry-log-processor-W3SG4RQL.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":10608},"dist/lib/node-esm/sentry-log-processor-W3SG4RQL.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-M4627SMT.mjs","kind":"import-statement"},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["SentryLogProcessor"],"entryPoint":"src/sentry/sentry-log-processor.ts","inputs":{"src/sentry/sentry-log-processor.ts":{"bytesInOutput":4751}},"bytes":5064},"dist/lib/node-esm/observability-CXQ3CZGB.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/observability-CXQ3CZGB.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-KKNY7TRV.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-KLJGCUYA.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-KVJTNW3F.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-UIVXGEGJ.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-QUZL7LKE.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-M4627SMT.mjs","kind":"import-statement"}],"exports":["Observability"],"entryPoint":"src/observability.ts","inputs":{},"bytes":383},"dist/lib/node-esm/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":22465},"dist/lib/node-esm/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-KKNY7TRV.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-KLJGCUYA.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-KVJTNW3F.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-UIVXGEGJ.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-QUZL7LKE.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-M4627SMT.mjs","kind":"import-statement"},{"path":"localforage","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"dist/lib/node-esm/observability-CXQ3CZGB.mjs","kind":"dynamic-import"},{"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":"js-yaml","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","getTelemetryIdentity","initializeAppObservability","initializeNodeObservability","isObservabilityDisabled","mapSpaces","setupTelemetryListeners","showObservabilityBanner","storeObservabilityDisabled","storeObservabilityGroup"],"entryPoint":"src/index.ts","inputs":{"src/helpers/browser-observability.ts":{"bytesInOutput":5032},"src/helpers/node-observability.ts":{"bytesInOutput":3402},"src/helpers/setup-telemetry-listeners.ts":{"bytesInOutput":2542},"src/index.ts":{"bytesInOutput":0}},"bytes":11898},"dist/lib/node-esm/chunk-KKNY7TRV.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":42202},"dist/lib/node-esm/chunk-KKNY7TRV.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-UIVXGEGJ.mjs","kind":"import-statement"},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/client","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":"dist/lib/node-esm/otel-JFXO22WD.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/otel-JFXO22WD.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/segment/index.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/sentry/index.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/sentry-log-processor-W3SG4RQL.mjs","kind":"dynamic-import"},{"path":"dist/lib/node-esm/otel-JFXO22WD.mjs","kind":"dynamic-import"}],"exports":["Observability","getTelemetryIdentifier","getTelemetryIdentity","mapSpaces"],"inputs":{"src/observability.ts":{"bytesInOutput":19860},"src/cli-observability-secrets.json":{"bytesInOutput":625},"src/helpers/common.ts":{"bytesInOutput":324},"src/helpers/map-spaces.ts":{"bytesInOutput":1201}},"bytes":22440},"dist/lib/node-esm/segment/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/segment/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-KLJGCUYA.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-KVJTNW3F.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-UIVXGEGJ.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-QUZL7LKE.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-M4627SMT.mjs","kind":"import-statement"}],"exports":["SegmentTelemetry","TelemetryEvent"],"entryPoint":"src/segment/index.ts","inputs":{},"bytes":390},"dist/lib/node-esm/chunk-KLJGCUYA.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/chunk-KLJGCUYA.mjs":{"imports":[],"exports":[],"inputs":{"src/segment/index.ts":{"bytesInOutput":0}},"bytes":136},"dist/lib/node-esm/segment/browser.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3598},"dist/lib/node-esm/segment/browser.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-UIVXGEGJ.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-QUZL7LKE.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-M4627SMT.mjs","kind":"import-statement"},{"path":"@segment/snippet","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["SegmentTelemetry"],"entryPoint":"src/segment/browser.ts","inputs":{"src/segment/browser.ts":{"bytesInOutput":1929}},"bytes":2276},"dist/lib/node-esm/segment/node.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/segment/node.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-KVJTNW3F.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-UIVXGEGJ.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-QUZL7LKE.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-M4627SMT.mjs","kind":"import-statement"}],"exports":["SegmentTelemetry"],"entryPoint":"src/segment/node.ts","inputs":{},"bytes":313},"dist/lib/node-esm/chunk-KVJTNW3F.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4072},"dist/lib/node-esm/chunk-KVJTNW3F.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-UIVXGEGJ.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-M4627SMT.mjs","kind":"import-statement"},{"path":"@segment/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":{"src/segment/node.ts":{"bytesInOutput":2891}},"bytes":3209},"dist/lib/node-esm/chunk-UIVXGEGJ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4179},"dist/lib/node-esm/chunk-UIVXGEGJ.mjs":{"imports":[{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["AbstractSegmentTelemetry","TelemetryEvent"],"inputs":{"src/segment/types.ts":{"bytesInOutput":182},"src/segment/base.ts":{"bytesInOutput":1097}},"bytes":1522},"dist/lib/node-esm/sentry/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/sentry/index.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-QUZL7LKE.mjs","kind":"import-statement"},{"path":"dist/lib/node-esm/chunk-M4627SMT.mjs","kind":"import-statement"}],"exports":["addBreadcrumb","captureException","captureMessage","captureUserFeedback","init","setTag","setTags","setUser","withScope"],"entryPoint":"src/sentry/index.ts","inputs":{},"bytes":472},"dist/lib/node-esm/chunk-QUZL7LKE.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/chunk-QUZL7LKE.mjs":{"imports":[],"exports":[],"inputs":{"src/sentry/index.ts":{"bytesInOutput":0}},"bytes":136},"dist/lib/node-esm/sentry/browser.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":7354},"dist/lib/node-esm/sentry/browser.mjs":{"imports":[{"path":"@sentry/browser","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@sentry/browser","kind":"import-statement","external":true}],"exports":["addBreadcrumb","captureException","captureMessage","captureUserFeedback","init","setTag","setTags","setUser","withScope"],"entryPoint":"src/sentry/browser.ts","inputs":{"src/sentry/browser.ts":{"bytesInOutput":4063}},"bytes":4371},"dist/lib/node-esm/sentry/node.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/sentry/node.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-M4627SMT.mjs","kind":"import-statement"}],"exports":["addBreadcrumb","captureException","captureMessage","captureUserFeedback","init","setTag","setTags","setUser","withScope"],"entryPoint":"src/sentry/node.ts","inputs":{},"bytes":439},"dist/lib/node-esm/chunk-M4627SMT.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6673},"dist/lib/node-esm/chunk-M4627SMT.mjs":{"imports":[{"path":"@sentry/node","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true},{"path":"@sentry/node","kind":"import-statement","external":true}],"exports":["addBreadcrumb","captureException","captureMessage","captureUserFeedback","init","setTag","setTags","setUser","withScope"],"inputs":{"src/sentry/node.ts":{"bytesInOutput":3387}},"bytes":3700},"dist/lib/node-esm/otel/traces.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/node-esm/otel/traces.mjs":{"imports":[{"path":"dist/lib/node-esm/chunk-WAGGA7IT.mjs","kind":"import-statement"}],"exports":["OtelTraces"],"entryPoint":"src/otel/traces.ts","inputs":{},"bytes":207},"dist/lib/node-esm/chunk-WAGGA7IT.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3804},"dist/lib/node-esm/chunk-WAGGA7IT.mjs":{"imports":[{"path":"@opentelemetry/api","kind":"import-statement","external":true},{"path":"@opentelemetry/exporter-trace-otlp-http","kind":"import-statement","external":true},{"path":"@opentelemetry/resources","kind":"import-statement","external":true},{"path":"@opentelemetry/sdk-trace-base","kind":"import-statement","external":true},{"path":"@opentelemetry/semantic-conventions","kind":"import-statement","external":true},{"path":"debug","kind":"import-statement","external":true},{"path":"@dxos/tracing","kind":"import-statement","external":true}],"exports":["OtelTraces"],"inputs":{"src/otel/traces.ts":{"bytesInOutput":1669}},"bytes":1854}}}
@@ -0,0 +1,13 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ Observability
4
+ } from "./chunk-KKNY7TRV.mjs";
5
+ import "./chunk-KLJGCUYA.mjs";
6
+ import "./chunk-KVJTNW3F.mjs";
7
+ import "./chunk-UIVXGEGJ.mjs";
8
+ import "./chunk-QUZL7LKE.mjs";
9
+ import "./chunk-M4627SMT.mjs";
10
+ export {
11
+ Observability
12
+ };
13
+ //# sourceMappingURL=observability-CXQ3CZGB.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }