@dxos/observability 0.8.3 → 0.8.4-main.05e74ebcff

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 (351) hide show
  1. package/LICENSE +102 -5
  2. package/README.md +14 -11
  3. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  4. package/dist/lib/browser/chunk-PSFTIG54.mjs +20 -0
  5. package/dist/lib/browser/chunk-PSFTIG54.mjs.map +7 -0
  6. package/dist/lib/browser/index.mjs +964 -34
  7. package/dist/lib/browser/index.mjs.map +4 -4
  8. package/dist/lib/browser/log-processor-HPHWNBOK.mjs +38 -0
  9. package/dist/lib/browser/log-processor-HPHWNBOK.mjs.map +7 -0
  10. package/dist/lib/browser/logs-UTNIFYHF.mjs +116 -0
  11. package/dist/lib/browser/logs-UTNIFYHF.mjs.map +7 -0
  12. package/dist/lib/browser/meta.json +1 -1
  13. package/dist/lib/browser/metrics-PRGSYAZJ.mjs +116 -0
  14. package/dist/lib/browser/metrics-PRGSYAZJ.mjs.map +7 -0
  15. package/dist/lib/browser/traces-browser-XRINKQUA.mjs +154 -0
  16. package/dist/lib/browser/traces-browser-XRINKQUA.mjs.map +7 -0
  17. package/dist/lib/node-esm/chunk-EDDZWPYV.mjs +22 -0
  18. package/dist/lib/node-esm/chunk-EDDZWPYV.mjs.map +7 -0
  19. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  20. package/dist/lib/node-esm/index.mjs +986 -34
  21. package/dist/lib/node-esm/index.mjs.map +4 -4
  22. package/dist/lib/node-esm/log-processor-ZODHERST.mjs +39 -0
  23. package/dist/lib/node-esm/log-processor-ZODHERST.mjs.map +7 -0
  24. package/dist/lib/node-esm/logs-ARJUVN3T.mjs +117 -0
  25. package/dist/lib/node-esm/logs-ARJUVN3T.mjs.map +7 -0
  26. package/dist/lib/node-esm/meta.json +1 -1
  27. package/dist/lib/node-esm/metrics-DREJOOAC.mjs +117 -0
  28. package/dist/lib/node-esm/metrics-DREJOOAC.mjs.map +7 -0
  29. package/dist/lib/node-esm/traces-74F7JUKF.mjs +125 -0
  30. package/dist/lib/node-esm/traces-74F7JUKF.mjs.map +7 -0
  31. package/dist/types/src/cli-observability-secrets.json +3 -4
  32. package/dist/types/src/extensions/index.d.ts +3 -0
  33. package/dist/types/src/extensions/index.d.ts.map +1 -0
  34. package/dist/types/src/extensions/index.js +6 -0
  35. package/dist/types/src/extensions/index.js.map +1 -0
  36. package/dist/types/src/extensions/otel/extension.d.ts +23 -0
  37. package/dist/types/src/extensions/otel/extension.d.ts.map +1 -0
  38. package/dist/types/src/extensions/otel/extension.js +220 -0
  39. package/dist/types/src/extensions/otel/extension.js.map +1 -0
  40. package/dist/types/src/extensions/otel/index.d.ts +2 -0
  41. package/dist/types/src/extensions/otel/index.d.ts.map +1 -0
  42. package/dist/types/src/extensions/otel/index.js +5 -0
  43. package/dist/types/src/extensions/otel/index.js.map +1 -0
  44. package/dist/types/src/{otel → extensions/otel}/logs.d.ts +4 -3
  45. package/dist/types/src/extensions/otel/logs.d.ts.map +1 -0
  46. package/dist/types/src/extensions/otel/logs.js +107 -0
  47. package/dist/types/src/extensions/otel/logs.js.map +1 -0
  48. package/dist/types/src/{otel → extensions/otel}/metrics.d.ts +0 -1
  49. package/dist/types/src/extensions/otel/metrics.d.ts.map +1 -0
  50. package/dist/types/src/{otel → extensions/otel}/metrics.js +8 -14
  51. package/dist/types/src/extensions/otel/metrics.js.map +1 -0
  52. package/dist/types/src/extensions/otel/otel.d.ts +19 -0
  53. package/dist/types/src/extensions/otel/otel.d.ts.map +1 -0
  54. package/dist/types/src/extensions/otel/otel.js +23 -0
  55. package/dist/types/src/extensions/otel/otel.js.map +1 -0
  56. package/dist/types/src/extensions/otel/span-processors.d.ts +25 -0
  57. package/dist/types/src/extensions/otel/span-processors.d.ts.map +1 -0
  58. package/dist/types/src/extensions/otel/span-processors.js +41 -0
  59. package/dist/types/src/extensions/otel/span-processors.js.map +1 -0
  60. package/dist/types/src/extensions/otel/traces-browser.d.ts +25 -0
  61. package/dist/types/src/extensions/otel/traces-browser.d.ts.map +1 -0
  62. package/dist/types/src/extensions/otel/traces-browser.js +105 -0
  63. package/dist/types/src/extensions/otel/traces-browser.js.map +1 -0
  64. package/dist/types/src/extensions/otel/traces.d.ts +25 -0
  65. package/dist/types/src/extensions/otel/traces.d.ts.map +1 -0
  66. package/dist/types/src/extensions/otel/traces.js +88 -0
  67. package/dist/types/src/extensions/otel/traces.js.map +1 -0
  68. package/dist/types/src/extensions/posthog/extension.d.ts +28 -0
  69. package/dist/types/src/extensions/posthog/extension.d.ts.map +1 -0
  70. package/dist/types/src/extensions/posthog/extension.js +156 -0
  71. package/dist/types/src/extensions/posthog/extension.js.map +1 -0
  72. package/dist/types/src/extensions/posthog/index.d.ts +2 -0
  73. package/dist/types/src/extensions/posthog/index.d.ts.map +1 -0
  74. package/dist/types/src/extensions/posthog/index.js +5 -0
  75. package/dist/types/src/extensions/posthog/index.js.map +1 -0
  76. package/dist/types/src/extensions/posthog/log-processor.d.ts +3 -0
  77. package/dist/types/src/extensions/posthog/log-processor.d.ts.map +1 -0
  78. package/dist/types/src/extensions/posthog/log-processor.js +36 -0
  79. package/dist/types/src/extensions/posthog/log-processor.js.map +1 -0
  80. package/dist/types/src/extensions/posthog/log-processor.test.d.ts +2 -0
  81. package/dist/types/src/extensions/posthog/log-processor.test.d.ts.map +1 -0
  82. package/dist/types/src/extensions/posthog/log-processor.test.js +146 -0
  83. package/dist/types/src/extensions/posthog/log-processor.test.js.map +1 -0
  84. package/dist/types/src/extensions/stub.d.ts +3 -0
  85. package/dist/types/src/extensions/stub.d.ts.map +1 -0
  86. package/dist/types/src/extensions/stub.js +16 -0
  87. package/dist/types/src/extensions/stub.js.map +1 -0
  88. package/dist/types/src/index.d.ts +3 -2
  89. package/dist/types/src/index.d.ts.map +1 -1
  90. package/dist/types/src/index.js +4 -3
  91. package/dist/types/src/index.js.map +1 -1
  92. package/dist/types/src/observability-extension.d.ts +74 -0
  93. package/dist/types/src/observability-extension.d.ts.map +1 -0
  94. package/dist/types/src/observability-extension.js +5 -0
  95. package/dist/types/src/observability-extension.js.map +1 -0
  96. package/dist/types/src/observability.d.ts +32 -110
  97. package/dist/types/src/observability.d.ts.map +1 -1
  98. package/dist/types/src/observability.js +178 -455
  99. package/dist/types/src/observability.js.map +1 -1
  100. package/dist/types/src/observability.test.d.ts +2 -0
  101. package/dist/types/src/observability.test.d.ts.map +1 -0
  102. package/dist/types/src/observability.test.js +312 -0
  103. package/dist/types/src/observability.test.js.map +1 -0
  104. package/dist/types/src/providers/client-observability.d.ts +11 -0
  105. package/dist/types/src/providers/client-observability.d.ts.map +1 -0
  106. package/dist/types/src/providers/client-observability.js +202 -0
  107. package/dist/types/src/providers/client-observability.js.map +1 -0
  108. package/dist/types/src/providers/index.d.ts +4 -0
  109. package/dist/types/src/providers/index.d.ts.map +1 -0
  110. package/dist/types/src/providers/index.js +7 -0
  111. package/dist/types/src/providers/index.js.map +1 -0
  112. package/dist/types/src/providers/ip-data.d.ts +5 -0
  113. package/dist/types/src/providers/ip-data.d.ts.map +1 -0
  114. package/dist/types/src/providers/ip-data.js +57 -0
  115. package/dist/types/src/providers/ip-data.js.map +1 -0
  116. package/dist/types/src/providers/storage.d.ts +3 -0
  117. package/dist/types/src/providers/storage.d.ts.map +1 -0
  118. package/dist/types/src/providers/storage.js +19 -0
  119. package/dist/types/src/providers/storage.js.map +1 -0
  120. package/dist/types/src/storage/browser.d.ts +19 -0
  121. package/dist/types/src/storage/browser.d.ts.map +1 -0
  122. package/dist/types/src/storage/browser.js +69 -0
  123. package/dist/types/src/storage/browser.js.map +1 -0
  124. package/dist/types/src/storage/index.d.ts +2 -0
  125. package/dist/types/src/storage/index.d.ts.map +1 -0
  126. package/{src/segment/index.ts → dist/types/src/storage/index.js} +1 -2
  127. package/dist/types/src/storage/index.js.map +1 -0
  128. package/dist/types/src/storage/node.d.ts +26 -0
  129. package/dist/types/src/storage/node.d.ts.map +1 -0
  130. package/dist/types/src/storage/node.js +92 -0
  131. package/dist/types/src/storage/node.js.map +1 -0
  132. package/dist/types/src/storage/node.test.d.ts +2 -0
  133. package/dist/types/src/storage/node.test.d.ts.map +1 -0
  134. package/dist/types/src/storage/node.test.js +103 -0
  135. package/dist/types/src/storage/node.test.js.map +1 -0
  136. package/dist/types/tsconfig.tsbuildinfo +1 -1
  137. package/package.json +48 -65
  138. package/src/cli-observability-secrets.json +3 -4
  139. package/src/extensions/index.ts +6 -0
  140. package/src/extensions/otel/extension.ts +279 -0
  141. package/src/extensions/otel/index.ts +5 -0
  142. package/src/extensions/otel/logs.ts +137 -0
  143. package/src/{otel → extensions/otel}/metrics.ts +6 -23
  144. package/src/extensions/otel/otel.ts +34 -0
  145. package/src/extensions/otel/span-processors.ts +45 -0
  146. package/src/extensions/otel/traces-browser.ts +139 -0
  147. package/src/extensions/otel/traces.ts +113 -0
  148. package/src/extensions/posthog/extension.ts +199 -0
  149. package/src/extensions/posthog/index.ts +5 -0
  150. package/src/extensions/posthog/log-processor.test.ts +186 -0
  151. package/src/extensions/posthog/log-processor.ts +43 -0
  152. package/src/extensions/stub.ts +19 -0
  153. package/src/index.ts +4 -3
  154. package/src/observability-extension.ts +94 -0
  155. package/src/observability.test.ts +531 -0
  156. package/src/observability.ts +238 -577
  157. package/src/providers/client-observability.ts +255 -0
  158. package/src/providers/index.ts +7 -0
  159. package/src/providers/ip-data.ts +91 -0
  160. package/src/providers/storage.ts +23 -0
  161. package/src/storage/browser.ts +71 -0
  162. package/src/{sentry → storage}/index.ts +0 -1
  163. package/src/storage/node.test.ts +129 -0
  164. package/src/{helpers/node-observability.ts → storage/node.ts} +41 -70
  165. package/src/vite-import-meta.d.ts +14 -0
  166. package/dist/lib/browser/chunk-G6EE7HFV.mjs +0 -147
  167. package/dist/lib/browser/chunk-G6EE7HFV.mjs.map +0 -7
  168. package/dist/lib/browser/chunk-JA5VJRKF.mjs +0 -164
  169. package/dist/lib/browser/chunk-JA5VJRKF.mjs.map +0 -7
  170. package/dist/lib/browser/chunk-KDP3SESE.mjs +0 -1
  171. package/dist/lib/browser/chunk-YQJELTRP.mjs +0 -996
  172. package/dist/lib/browser/chunk-YQJELTRP.mjs.map +0 -7
  173. package/dist/lib/browser/observability-HDE3I7TA.mjs +0 -10
  174. package/dist/lib/browser/otel-LHAFLNBQ.mjs +0 -277
  175. package/dist/lib/browser/otel-LHAFLNBQ.mjs.map +0 -7
  176. package/dist/lib/browser/segment/index.mjs +0 -11
  177. package/dist/lib/browser/segment/index.mjs.map +0 -7
  178. package/dist/lib/browser/sentry/index.mjs +0 -24
  179. package/dist/lib/browser/sentry/index.mjs.map +0 -7
  180. package/dist/lib/browser/sentry-log-processor-625AISXI.mjs +0 -146
  181. package/dist/lib/browser/sentry-log-processor-625AISXI.mjs.map +0 -7
  182. package/dist/lib/node/chunk-325GAGFA.cjs +0 -213
  183. package/dist/lib/node/chunk-325GAGFA.cjs.map +0 -7
  184. package/dist/lib/node/chunk-BZHVFSLF.cjs +0 -1025
  185. package/dist/lib/node/chunk-BZHVFSLF.cjs.map +0 -7
  186. package/dist/lib/node/chunk-GIYJMZEQ.cjs +0 -2
  187. package/dist/lib/node/chunk-GIYJMZEQ.cjs.map +0 -7
  188. package/dist/lib/node/chunk-MZ3PMDTP.cjs +0 -163
  189. package/dist/lib/node/chunk-MZ3PMDTP.cjs.map +0 -7
  190. package/dist/lib/node/index.cjs +0 -60
  191. package/dist/lib/node/index.cjs.map +0 -7
  192. package/dist/lib/node/meta.json +0 -1
  193. package/dist/lib/node/observability-E2NGRIEN.cjs +0 -32
  194. package/dist/lib/node/observability-E2NGRIEN.cjs.map +0 -7
  195. package/dist/lib/node/otel-VF5YNCR3.cjs +0 -278
  196. package/dist/lib/node/otel-VF5YNCR3.cjs.map +0 -7
  197. package/dist/lib/node/segment/index.cjs +0 -33
  198. package/dist/lib/node/segment/index.cjs.map +0 -7
  199. package/dist/lib/node/sentry/index.cjs +0 -46
  200. package/dist/lib/node/sentry/index.cjs.map +0 -7
  201. package/dist/lib/node/sentry-log-processor-CCV4RL7N.cjs +0 -164
  202. package/dist/lib/node/sentry-log-processor-CCV4RL7N.cjs.map +0 -7
  203. package/dist/lib/node-esm/chunk-AZMSBUWR.mjs +0 -202
  204. package/dist/lib/node-esm/chunk-AZMSBUWR.mjs.map +0 -7
  205. package/dist/lib/node-esm/chunk-H7Y2DDUN.mjs +0 -135
  206. package/dist/lib/node-esm/chunk-H7Y2DDUN.mjs.map +0 -7
  207. package/dist/lib/node-esm/chunk-M7QJLFGR.mjs +0 -997
  208. package/dist/lib/node-esm/chunk-M7QJLFGR.mjs.map +0 -7
  209. package/dist/lib/node-esm/chunk-YJ4KVBWC.mjs +0 -2
  210. package/dist/lib/node-esm/chunk-YJ4KVBWC.mjs.map +0 -7
  211. package/dist/lib/node-esm/observability-7BTI46NM.mjs +0 -11
  212. package/dist/lib/node-esm/observability-7BTI46NM.mjs.map +0 -7
  213. package/dist/lib/node-esm/otel-AF5TSABC.mjs +0 -260
  214. package/dist/lib/node-esm/otel-AF5TSABC.mjs.map +0 -7
  215. package/dist/lib/node-esm/segment/index.mjs +0 -12
  216. package/dist/lib/node-esm/segment/index.mjs.map +0 -7
  217. package/dist/lib/node-esm/sentry/index.mjs +0 -25
  218. package/dist/lib/node-esm/sentry/index.mjs.map +0 -7
  219. package/dist/lib/node-esm/sentry-log-processor-HPUPCMRG.mjs +0 -147
  220. package/dist/lib/node-esm/sentry-log-processor-HPUPCMRG.mjs.map +0 -7
  221. package/dist/types/src/helpers/browser-observability.d.ts +0 -17
  222. package/dist/types/src/helpers/browser-observability.d.ts.map +0 -1
  223. package/dist/types/src/helpers/browser-observability.js +0 -140
  224. package/dist/types/src/helpers/browser-observability.js.map +0 -1
  225. package/dist/types/src/helpers/common.d.ts +0 -12
  226. package/dist/types/src/helpers/common.d.ts.map +0 -1
  227. package/dist/types/src/helpers/common.js +0 -23
  228. package/dist/types/src/helpers/common.js.map +0 -1
  229. package/dist/types/src/helpers/index.d.ts +0 -6
  230. package/dist/types/src/helpers/index.d.ts.map +0 -1
  231. package/dist/types/src/helpers/index.js +0 -9
  232. package/dist/types/src/helpers/index.js.map +0 -1
  233. package/dist/types/src/helpers/map-spaces.d.ts +0 -18
  234. package/dist/types/src/helpers/map-spaces.d.ts.map +0 -1
  235. package/dist/types/src/helpers/map-spaces.js +0 -37
  236. package/dist/types/src/helpers/map-spaces.js.map +0 -1
  237. package/dist/types/src/helpers/node-observability.d.ts +0 -24
  238. package/dist/types/src/helpers/node-observability.d.ts.map +0 -1
  239. package/dist/types/src/helpers/node-observability.js +0 -101
  240. package/dist/types/src/helpers/node-observability.js.map +0 -1
  241. package/dist/types/src/helpers/setup-telemetry-listeners.d.ts +0 -4
  242. package/dist/types/src/helpers/setup-telemetry-listeners.d.ts.map +0 -1
  243. package/dist/types/src/helpers/setup-telemetry-listeners.js +0 -97
  244. package/dist/types/src/helpers/setup-telemetry-listeners.js.map +0 -1
  245. package/dist/types/src/otel/index.d.ts +0 -5
  246. package/dist/types/src/otel/index.d.ts.map +0 -1
  247. package/dist/types/src/otel/index.js +0 -8
  248. package/dist/types/src/otel/index.js.map +0 -1
  249. package/dist/types/src/otel/logs.d.ts.map +0 -1
  250. package/dist/types/src/otel/logs.js +0 -71
  251. package/dist/types/src/otel/logs.js.map +0 -1
  252. package/dist/types/src/otel/metrics.d.ts.map +0 -1
  253. package/dist/types/src/otel/metrics.js.map +0 -1
  254. package/dist/types/src/otel/otel.d.ts +0 -12
  255. package/dist/types/src/otel/otel.d.ts.map +0 -1
  256. package/dist/types/src/otel/otel.js +0 -11
  257. package/dist/types/src/otel/otel.js.map +0 -1
  258. package/dist/types/src/otel/traces-browser.d.ts +0 -8
  259. package/dist/types/src/otel/traces-browser.d.ts.map +0 -1
  260. package/dist/types/src/otel/traces-browser.js +0 -47
  261. package/dist/types/src/otel/traces-browser.js.map +0 -1
  262. package/dist/types/src/otel/traces.d.ts +0 -8
  263. package/dist/types/src/otel/traces.d.ts.map +0 -1
  264. package/dist/types/src/otel/traces.js +0 -40
  265. package/dist/types/src/otel/traces.js.map +0 -1
  266. package/dist/types/src/segment/base.d.ts +0 -15
  267. package/dist/types/src/segment/base.d.ts.map +0 -1
  268. package/dist/types/src/segment/base.js +0 -50
  269. package/dist/types/src/segment/base.js.map +0 -1
  270. package/dist/types/src/segment/browser.d.ts +0 -15
  271. package/dist/types/src/segment/browser.d.ts.map +0 -1
  272. package/dist/types/src/segment/browser.js +0 -67
  273. package/dist/types/src/segment/browser.js.map +0 -1
  274. package/dist/types/src/segment/index.d.ts +0 -3
  275. package/dist/types/src/segment/index.d.ts.map +0 -1
  276. package/dist/types/src/segment/index.js +0 -6
  277. package/dist/types/src/segment/index.js.map +0 -1
  278. package/dist/types/src/segment/node.d.ts +0 -16
  279. package/dist/types/src/segment/node.d.ts.map +0 -1
  280. package/dist/types/src/segment/node.js +0 -83
  281. package/dist/types/src/segment/node.js.map +0 -1
  282. package/dist/types/src/segment/types.d.ts +0 -52
  283. package/dist/types/src/segment/types.d.ts.map +0 -1
  284. package/dist/types/src/segment/types.js +0 -18
  285. package/dist/types/src/segment/types.js.map +0 -1
  286. package/dist/types/src/sentry/browser.d.ts +0 -32
  287. package/dist/types/src/sentry/browser.d.ts.map +0 -1
  288. package/dist/types/src/sentry/browser.js +0 -112
  289. package/dist/types/src/sentry/browser.js.map +0 -1
  290. package/dist/types/src/sentry/index.d.ts +0 -3
  291. package/dist/types/src/sentry/index.d.ts.map +0 -1
  292. package/dist/types/src/sentry/index.js +0 -6
  293. package/dist/types/src/sentry/index.js.map +0 -1
  294. package/dist/types/src/sentry/node.d.ts +0 -32
  295. package/dist/types/src/sentry/node.d.ts.map +0 -1
  296. package/dist/types/src/sentry/node.js +0 -111
  297. package/dist/types/src/sentry/node.js.map +0 -1
  298. package/dist/types/src/sentry/node.node.test.d.ts +0 -2
  299. package/dist/types/src/sentry/node.node.test.d.ts.map +0 -1
  300. package/dist/types/src/sentry/node.node.test.js +0 -34
  301. package/dist/types/src/sentry/node.node.test.js.map +0 -1
  302. package/dist/types/src/sentry/sentry-log-processor.d.ts +0 -9
  303. package/dist/types/src/sentry/sentry-log-processor.d.ts.map +0 -1
  304. package/dist/types/src/sentry/sentry-log-processor.js +0 -149
  305. package/dist/types/src/sentry/sentry-log-processor.js.map +0 -1
  306. package/dist/types/src/sentry/sentry.node.test.d.ts +0 -2
  307. package/dist/types/src/sentry/sentry.node.test.d.ts.map +0 -1
  308. package/dist/types/src/sentry/sentry.node.test.js +0 -28
  309. package/dist/types/src/sentry/sentry.node.test.js.map +0 -1
  310. package/dist/types/src/sentry/types.d.ts +0 -18
  311. package/dist/types/src/sentry/types.d.ts.map +0 -1
  312. package/dist/types/src/sentry/types.js +0 -4
  313. package/dist/types/src/sentry/types.js.map +0 -1
  314. package/dist/types/src/testing/index.d.ts +0 -2
  315. package/dist/types/src/testing/index.d.ts.map +0 -1
  316. package/dist/types/src/testing/index.js +0 -5
  317. package/dist/types/src/testing/index.js.map +0 -1
  318. package/dist/types/src/testing/testkit/browser.d.ts +0 -2
  319. package/dist/types/src/testing/testkit/browser.d.ts.map +0 -1
  320. package/dist/types/src/testing/testkit/browser.js +0 -7
  321. package/dist/types/src/testing/testkit/browser.js.map +0 -1
  322. package/dist/types/src/testing/testkit/index.d.ts +0 -2
  323. package/dist/types/src/testing/testkit/index.d.ts.map +0 -1
  324. package/dist/types/src/testing/testkit/index.js +0 -6
  325. package/dist/types/src/testing/testkit/index.js.map +0 -1
  326. package/src/helpers/browser-observability.ts +0 -177
  327. package/src/helpers/common.ts +0 -38
  328. package/src/helpers/index.ts +0 -9
  329. package/src/helpers/map-spaces.ts +0 -48
  330. package/src/helpers/setup-telemetry-listeners.ts +0 -108
  331. package/src/otel/index.ts +0 -8
  332. package/src/otel/logs.ts +0 -100
  333. package/src/otel/otel.ts +0 -21
  334. package/src/otel/traces-browser.ts +0 -59
  335. package/src/otel/traces.ts +0 -57
  336. package/src/segment/base.ts +0 -69
  337. package/src/segment/browser.ts +0 -68
  338. package/src/segment/node.ts +0 -94
  339. package/src/segment/types.ts +0 -57
  340. package/src/sentry/browser.ts +0 -133
  341. package/src/sentry/node.node.test.ts +0 -39
  342. package/src/sentry/node.ts +0 -126
  343. package/src/sentry/sentry-log-processor.ts +0 -166
  344. package/src/sentry/sentry.node.test.ts +0 -34
  345. package/src/sentry/types.ts +0 -22
  346. package/src/testing/index.ts +0 -5
  347. package/src/testing/testkit/browser.ts +0 -8
  348. package/src/testing/testkit/index.ts +0 -7
  349. package/src/testing/testkit/shims.d.ts +0 -5
  350. /package/dist/lib/browser/{chunk-KDP3SESE.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
  351. /package/dist/lib/{browser/observability-HDE3I7TA.mjs.map → node-esm/chunk-HSLMI22Q.mjs.map} +0 -0
@@ -0,0 +1,186 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import { beforeEach, describe, expect, test, vi } from 'vitest';
6
+
7
+ import { InvariantViolation } from '@dxos/invariant';
8
+ import { type LogConfig, LogEntry, type LogEntryInit, LogLevel } from '@dxos/log';
9
+
10
+ // Replace the posthog-js module with a stub so log-processor's top-level import resolves to our mock.
11
+ // Dynamic imports are used so that both the mock and log-processor are loaded after vi.mock is hoisted.
12
+ vi.mock('posthog-js', () => ({
13
+ default: {
14
+ captureException: vi.fn(),
15
+ },
16
+ }));
17
+ const { default: posthog } = await import('posthog-js');
18
+ const { logProcessor } = await import('./log-processor');
19
+
20
+ const baseConfig: LogConfig = {
21
+ options: {},
22
+ captureFilters: [{ level: LogLevel.WARN }],
23
+ processors: [],
24
+ };
25
+
26
+ const createEntry = (overrides: Partial<LogEntryInit> = {}): LogEntry =>
27
+ new LogEntry({
28
+ level: LogLevel.ERROR,
29
+ message: 'test error',
30
+ ...overrides,
31
+ });
32
+
33
+ describe('logProcessor', () => {
34
+ beforeEach(() => {
35
+ vi.clearAllMocks();
36
+ });
37
+
38
+ test('skips entries that do not pass capture filters', () => {
39
+ const entry = createEntry({ level: LogLevel.DEBUG });
40
+ logProcessor(baseConfig, entry);
41
+ expect(posthog.captureException).not.toHaveBeenCalled();
42
+ });
43
+
44
+ test('skips entries from remote sessions', () => {
45
+ const entry = createEntry({
46
+ error: new Error('test'),
47
+ meta: { F: 'test.ts', L: 1, S: { remoteSessionId: 'remote-123' } },
48
+ });
49
+ logProcessor(baseConfig, entry);
50
+ expect(posthog.captureException).not.toHaveBeenCalled();
51
+ });
52
+
53
+ test('skips entries without errors', () => {
54
+ const entry = createEntry({ error: undefined, context: {} });
55
+ logProcessor(baseConfig, entry);
56
+ expect(posthog.captureException).not.toHaveBeenCalled();
57
+ });
58
+
59
+ test('captures error from entry.error', () => {
60
+ const error = new Error('direct error');
61
+ const entry = createEntry({
62
+ error,
63
+ meta: { F: 'packages/sdk/observability/src/test.ts', L: 42, S: undefined },
64
+ });
65
+ logProcessor(baseConfig, entry);
66
+ expect(posthog.captureException).toHaveBeenCalledWith(
67
+ error,
68
+ expect.objectContaining({
69
+ transaction: 'packages/sdk/observability/src/test.ts:42',
70
+ }),
71
+ );
72
+ });
73
+
74
+ test('captures error from context when level is ERROR but no entry.error', () => {
75
+ const contextError = new Error('context error');
76
+ const entry = createEntry({
77
+ level: LogLevel.ERROR,
78
+ error: undefined,
79
+ context: { someKey: contextError },
80
+ meta: { F: 'test.ts', L: 10, S: undefined },
81
+ });
82
+ logProcessor(baseConfig, entry);
83
+ expect(posthog.captureException).toHaveBeenCalledWith(contextError, expect.any(Object));
84
+ });
85
+
86
+ test('sets transaction from file:line metadata', () => {
87
+ const entry = createEntry({
88
+ error: new Error('err'),
89
+ meta: { F: '/home/user/project/packages/sdk/observability/src/index.ts', L: 99, S: undefined },
90
+ });
91
+ logProcessor(baseConfig, entry);
92
+ expect(posthog.captureException).toHaveBeenCalledWith(
93
+ expect.any(Error),
94
+ expect.objectContaining({
95
+ transaction: 'packages/sdk/observability/src/index.ts:99',
96
+ }),
97
+ );
98
+ });
99
+
100
+ test('sets service_host_issue/session for worker entries', () => {
101
+ const entry = createEntry({
102
+ error: new Error('worker err'),
103
+ meta: { F: 'test.ts', L: 1, S: { hostSessionId: 'host-abc' } },
104
+ });
105
+ logProcessor(baseConfig, entry);
106
+ expect(posthog.captureException).toHaveBeenCalledWith(
107
+ expect.any(Error),
108
+ expect.objectContaining({
109
+ service_host_issue: true,
110
+ service_host_session: 'host-abc',
111
+ }),
112
+ );
113
+ });
114
+
115
+ test('sets uptime_seconds from metadata', () => {
116
+ const entry = createEntry({
117
+ error: new Error('err'),
118
+ meta: { F: 'test.ts', L: 1, S: { uptimeSeconds: 123 } },
119
+ });
120
+ logProcessor(baseConfig, entry);
121
+ expect(posthog.captureException).toHaveBeenCalledWith(
122
+ expect.any(Error),
123
+ expect.objectContaining({
124
+ uptime_seconds: 123,
125
+ }),
126
+ );
127
+ });
128
+
129
+ test('sets invariant_violation flag for InvariantViolation errors', () => {
130
+ const error = new InvariantViolation('broken invariant');
131
+ const entry = createEntry({
132
+ error,
133
+ meta: { F: 'test.ts', L: 1, S: undefined },
134
+ });
135
+ logProcessor(baseConfig, entry);
136
+ expect(posthog.captureException).toHaveBeenCalledWith(
137
+ error,
138
+ expect.objectContaining({
139
+ invariant_violation: true,
140
+ }),
141
+ );
142
+ });
143
+
144
+ test('does not set invariant_violation for normal errors', () => {
145
+ const error = new Error('normal error');
146
+ const entry = createEntry({
147
+ error,
148
+ meta: { F: 'test.ts', L: 1, S: undefined },
149
+ });
150
+ logProcessor(baseConfig, entry);
151
+ const callArgs = vi.mocked(posthog.captureException).mock.calls[0];
152
+ expect(callArgs[1]).not.toHaveProperty('invariant_violation');
153
+ });
154
+ });
155
+
156
+ describe('getRelativeFilename', () => {
157
+ // We test this indirectly through the transaction property set by logProcessor.
158
+
159
+ test('extracts relative path from absolute path containing packages/', () => {
160
+ const entry = createEntry({
161
+ error: new Error('err'),
162
+ meta: { F: '/home/user/code/packages/sdk/observability/src/file.ts', L: 5, S: undefined },
163
+ });
164
+ logProcessor(baseConfig, entry);
165
+ expect(posthog.captureException).toHaveBeenCalledWith(
166
+ expect.any(Error),
167
+ expect.objectContaining({
168
+ transaction: 'packages/sdk/observability/src/file.ts:5',
169
+ }),
170
+ );
171
+ });
172
+
173
+ test('returns original filename if no match', () => {
174
+ const entry = createEntry({
175
+ error: new Error('err'),
176
+ meta: { F: 'no-packages-here.ts', L: 1, S: undefined },
177
+ });
178
+ logProcessor(baseConfig, entry);
179
+ expect(posthog.captureException).toHaveBeenCalledWith(
180
+ expect.any(Error),
181
+ expect.objectContaining({
182
+ transaction: 'no-packages-here.ts:1',
183
+ }),
184
+ );
185
+ });
186
+ });
@@ -0,0 +1,43 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import posthog from 'posthog-js';
6
+
7
+ import { InvariantViolation } from '@dxos/invariant';
8
+ import { type LogConfig, type LogEntry, LogLevel, type LogProcessor, shouldLog } from '@dxos/log';
9
+
10
+ export const logProcessor: LogProcessor = (config: LogConfig, entry: LogEntry) => {
11
+ // Don't forward logs from remote sessions.
12
+ if (!shouldLog(entry, config.captureFilters) || entry.meta?.S?.remoteSessionId) {
13
+ return;
14
+ }
15
+
16
+ let capturedError = entry.error;
17
+ if (capturedError == null && entry.level === LogLevel.ERROR) {
18
+ capturedError = Object.values(entry.context ?? {}).find((v): v is Error => v instanceof Error);
19
+ }
20
+
21
+ if (!capturedError) {
22
+ return;
23
+ }
24
+
25
+ const additionalProperties: Record<string, string | boolean | number> = {};
26
+ const { filename, line } = entry.computedMeta;
27
+ if (filename !== undefined && line !== undefined) {
28
+ additionalProperties.transaction = `${filename}:${line}`;
29
+ }
30
+ if (entry.meta?.S?.hostSessionId) {
31
+ additionalProperties.service_host_issue = true;
32
+ additionalProperties.service_host_session = entry.meta.S.hostSessionId;
33
+ }
34
+ if (entry.meta?.S?.uptimeSeconds != null) {
35
+ additionalProperties.uptime_seconds = entry.meta.S.uptimeSeconds;
36
+ }
37
+
38
+ if (capturedError instanceof InvariantViolation) {
39
+ additionalProperties.invariant_violation = true;
40
+ }
41
+
42
+ posthog.captureException(capturedError, additionalProperties);
43
+ };
@@ -0,0 +1,19 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { type Extension } from '../observability-extension';
8
+
9
+ export const stubExtension: Extension = {
10
+ initialize: () => Effect.succeed(undefined),
11
+ enable: () => Effect.succeed(undefined),
12
+ disable: () => Effect.succeed(undefined),
13
+ flush: () => Effect.succeed(undefined),
14
+ setTags: () => undefined,
15
+ get enabled() {
16
+ return true;
17
+ },
18
+ apis: [],
19
+ };
package/src/index.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  //
2
- // Copyright 2023 DXOS.org
2
+ // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- export * from './helpers';
6
- export * from './observability';
5
+ export * as Observability from './observability';
6
+ export * as ObservabilityExtension from './observability-extension';
7
+ export * as ObservabilityProvider from './providers';
@@ -0,0 +1,94 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import type * as Effect from 'effect/Effect';
6
+
7
+ export * from './extensions';
8
+
9
+ /**
10
+ * Kind of observability extension.
11
+ *
12
+ * - errors: Error tracking (e.g., PostHog)
13
+ * - events: Product usage event tracking (e.g., PostHog)
14
+ * - feedback: User feedback submission (e.g., PostHog)
15
+ * - logs: Structured logging (e.g., OTEL)
16
+ * - metrics: Metric data (e.g., OTEL)
17
+ * - traces: Distributed tracing (e.g., OTEL)
18
+ */
19
+ export type Kind = 'errors' | 'events' | 'feedback' | 'logs' | 'metrics' | 'traces';
20
+
21
+ /**
22
+ * Base for every extension API variant. All kinds implement availability the same way.
23
+ */
24
+ export type ExtensionApiBase<K extends Kind = Kind> = {
25
+ kind: K;
26
+ isAvailable(): Effect.Effect<boolean>;
27
+ };
28
+
29
+ /**
30
+ * Metrics extension API (kind-specific methods only).
31
+ */
32
+ export type Metrics = {
33
+ gauge(name: string, value: number, tags?: Attributes): void;
34
+ increment(name: string, value?: number, tags?: Attributes): void;
35
+ distribution(name: string, value: number, tags?: Attributes): void;
36
+ };
37
+
38
+ /**
39
+ * Errors extension API (kind-specific methods only).
40
+ */
41
+ export type Errors = {
42
+ captureException(error: Error, attributes?: Attributes): void;
43
+ };
44
+
45
+ /**
46
+ * Events extension API (kind-specific methods only).
47
+ */
48
+ export type Events = {
49
+ captureEvent(event: string, attributes?: Attributes): void;
50
+ };
51
+
52
+ /**
53
+ * Feedback extension API (kind-specific methods only).
54
+ */
55
+ export type Feedback = {
56
+ captureUserFeedback(form: FeedbackForm): Promise<string | undefined>;
57
+ };
58
+
59
+ export type ExtensionApi =
60
+ | (ExtensionApiBase<'errors'> & Errors)
61
+ | (ExtensionApiBase<'events'> & Events)
62
+ | (ExtensionApiBase<'feedback'> & Feedback)
63
+ // TODO(wittjosiah): Direct logs api?
64
+ | ExtensionApiBase<'logs'>
65
+ | (ExtensionApiBase<'metrics'> & Metrics)
66
+ // TODO(wittjosiah): Direct traces api?
67
+ | ExtensionApiBase<'traces'>;
68
+
69
+ /**
70
+ * Feedback form to be captured by the feedback extension.
71
+ */
72
+ // TODO(wittjosiah): Support more form fields (e.g., PostHog custom surveys).
73
+ export type FeedbackForm = { message: string; includeLogs?: boolean };
74
+
75
+ /**
76
+ * Attributes to be attached to observability events.
77
+ */
78
+ export type Attributes = Record<string, string | number | boolean | undefined>;
79
+
80
+ /**
81
+ * Implementation of an observability extension API.
82
+ */
83
+ export type Extension = {
84
+ initialize?(): Effect.Effect<void, Error>;
85
+ close?(): Effect.Effect<void>;
86
+ enable?(): Effect.Effect<void>;
87
+ disable?(): Effect.Effect<void>;
88
+ flush?(): Effect.Effect<void>;
89
+ identify?(distinctId: string, attributes?: Attributes, setOnceAttributes?: Attributes): void;
90
+ alias?(distinctId: string, previousId?: string): void;
91
+ setTags?(tags: Record<string, string>): void;
92
+ enabled: boolean;
93
+ apis: ExtensionApi[];
94
+ };