@vibesdotdev/logging 0.0.1 → 1.0.0-rc.4

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 (700) hide show
  1. package/LICENSE +18 -0
  2. package/README.md +89 -54
  3. package/dist/audit/audit-retention.job.descriptor.d.ts +60 -0
  4. package/dist/audit/audit-retention.job.descriptor.d.ts.map +1 -0
  5. package/dist/audit/audit-retention.job.descriptor.js +42 -0
  6. package/dist/audit/audit-retention.job.descriptor.js.map +1 -0
  7. package/dist/audit/audit-retention.job.impl.d.ts +23 -0
  8. package/dist/audit/audit-retention.job.impl.d.ts.map +1 -0
  9. package/dist/audit/audit-retention.job.impl.js +24 -0
  10. package/dist/audit/audit-retention.job.impl.js.map +1 -0
  11. package/dist/audit/audit.descriptor.d.ts +6 -0
  12. package/dist/audit/audit.descriptor.d.ts.map +1 -1
  13. package/dist/audit/audit.descriptor.js +72 -5
  14. package/dist/audit/audit.descriptor.js.map +1 -1
  15. package/dist/audit/audit.storage.schema.d.ts +3 -3
  16. package/dist/audit/index.d.ts +3 -1
  17. package/dist/audit/index.d.ts.map +1 -1
  18. package/dist/audit/index.js +4 -1
  19. package/dist/audit/index.js.map +1 -1
  20. package/dist/audit/scheduled-audit-retention.d.ts +39 -0
  21. package/dist/audit/scheduled-audit-retention.d.ts.map +1 -0
  22. package/dist/audit/scheduled-audit-retention.js +38 -0
  23. package/dist/audit/scheduled-audit-retention.js.map +1 -0
  24. package/dist/browser/capture-error.d.ts +66 -0
  25. package/dist/browser/capture-error.d.ts.map +1 -0
  26. package/dist/browser/capture-error.js +82 -0
  27. package/dist/browser/capture-error.js.map +1 -0
  28. package/dist/browser/index.d.ts +11 -0
  29. package/dist/browser/index.d.ts.map +1 -0
  30. package/dist/browser/index.js +16 -0
  31. package/dist/browser/index.js.map +1 -0
  32. package/dist/browser/logging-browser.plugin.d.ts +9 -0
  33. package/dist/browser/logging-browser.plugin.d.ts.map +1 -0
  34. package/dist/browser/logging-browser.plugin.js +26 -0
  35. package/dist/browser/logging-browser.plugin.js.map +1 -0
  36. package/dist/browser/plugin.d.ts +2 -0
  37. package/dist/browser/plugin.d.ts.map +1 -0
  38. package/dist/browser/plugin.js +2 -0
  39. package/dist/browser/plugin.js.map +1 -0
  40. package/dist/browser/read-errors.d.ts +26 -0
  41. package/dist/browser/read-errors.d.ts.map +1 -0
  42. package/dist/browser/read-errors.js +38 -0
  43. package/dist/browser/read-errors.js.map +1 -0
  44. package/dist/browser/sinks/browser/browser.browser.descriptor.d.ts +10 -0
  45. package/dist/browser/sinks/browser/browser.browser.descriptor.d.ts.map +1 -0
  46. package/dist/browser/sinks/browser/browser.browser.descriptor.js +23 -0
  47. package/dist/browser/sinks/browser/browser.browser.descriptor.js.map +1 -0
  48. package/dist/browser/sinks/browser/browser.impl.browser.d.ts +83 -0
  49. package/dist/browser/sinks/browser/browser.impl.browser.d.ts.map +1 -0
  50. package/dist/browser/sinks/browser/browser.impl.browser.js +247 -0
  51. package/dist/browser/sinks/browser/browser.impl.browser.js.map +1 -0
  52. package/dist/cli/failures.d.ts +29 -0
  53. package/dist/cli/failures.d.ts.map +1 -0
  54. package/dist/cli/failures.js +44 -0
  55. package/dist/cli/failures.js.map +1 -0
  56. package/dist/cli/flags.d.ts +24 -0
  57. package/dist/cli/flags.d.ts.map +1 -0
  58. package/dist/cli/flags.js +56 -0
  59. package/dist/cli/flags.js.map +1 -0
  60. package/dist/cli/log-line.d.ts +23 -0
  61. package/dist/cli/log-line.d.ts.map +1 -0
  62. package/dist/cli/log-line.js +39 -0
  63. package/dist/cli/log-line.js.map +1 -0
  64. package/dist/cli/logging.logs.descriptor.d.ts +9 -0
  65. package/dist/cli/logging.logs.descriptor.d.ts.map +1 -0
  66. package/dist/cli/logging.logs.descriptor.js +16 -0
  67. package/dist/cli/logging.logs.descriptor.js.map +1 -0
  68. package/dist/cli/logs.audit.cleanup.descriptor.d.ts +7 -0
  69. package/dist/cli/logs.audit.cleanup.descriptor.d.ts.map +1 -0
  70. package/dist/cli/logs.audit.cleanup.descriptor.js +21 -0
  71. package/dist/cli/logs.audit.cleanup.descriptor.js.map +1 -0
  72. package/dist/cli/logs.audit.cleanup.impl.d.ts +14 -0
  73. package/dist/cli/logs.audit.cleanup.impl.d.ts.map +1 -0
  74. package/dist/cli/logs.audit.cleanup.impl.js +60 -0
  75. package/dist/cli/logs.audit.cleanup.impl.js.map +1 -0
  76. package/dist/cli/logs.audit.descriptor.d.ts +9 -0
  77. package/dist/cli/logs.audit.descriptor.d.ts.map +1 -0
  78. package/dist/cli/logs.audit.descriptor.js +41 -0
  79. package/dist/cli/logs.audit.descriptor.js.map +1 -0
  80. package/dist/cli/logs.audit.group.descriptor.d.ts +7 -0
  81. package/dist/cli/logs.audit.group.descriptor.d.ts.map +1 -0
  82. package/dist/cli/logs.audit.group.descriptor.js +15 -0
  83. package/dist/cli/logs.audit.group.descriptor.js.map +1 -0
  84. package/dist/cli/logs.audit.impl.d.ts +19 -0
  85. package/dist/cli/logs.audit.impl.d.ts.map +1 -0
  86. package/dist/cli/logs.audit.impl.js +83 -0
  87. package/dist/cli/logs.audit.impl.js.map +1 -0
  88. package/dist/cli/logs.descriptor.d.ts +1 -8
  89. package/dist/cli/logs.descriptor.d.ts.map +1 -1
  90. package/dist/cli/logs.descriptor.js +1 -15
  91. package/dist/cli/logs.descriptor.js.map +1 -1
  92. package/dist/cli/logs.list.impl.d.ts +4 -1
  93. package/dist/cli/logs.list.impl.d.ts.map +1 -1
  94. package/dist/cli/logs.list.impl.js +60 -63
  95. package/dist/cli/logs.list.impl.js.map +1 -1
  96. package/dist/cli/logs.rotate.descriptor.d.ts.map +1 -1
  97. package/dist/cli/logs.rotate.descriptor.js +7 -3
  98. package/dist/cli/logs.rotate.descriptor.js.map +1 -1
  99. package/dist/cli/logs.rotate.impl.d.ts +3 -1
  100. package/dist/cli/logs.rotate.impl.d.ts.map +1 -1
  101. package/dist/cli/logs.rotate.impl.js +72 -33
  102. package/dist/cli/logs.rotate.impl.js.map +1 -1
  103. package/dist/cli/logs.search.descriptor.d.ts.map +1 -1
  104. package/dist/cli/logs.search.descriptor.js +4 -0
  105. package/dist/cli/logs.search.descriptor.js.map +1 -1
  106. package/dist/cli/logs.search.impl.d.ts +3 -1
  107. package/dist/cli/logs.search.impl.d.ts.map +1 -1
  108. package/dist/cli/logs.search.impl.js +114 -108
  109. package/dist/cli/logs.search.impl.js.map +1 -1
  110. package/dist/cli/logs.tail.descriptor.d.ts.map +1 -1
  111. package/dist/cli/logs.tail.descriptor.js +2 -1
  112. package/dist/cli/logs.tail.descriptor.js.map +1 -1
  113. package/dist/cli/logs.tail.impl.d.ts +4 -2
  114. package/dist/cli/logs.tail.impl.d.ts.map +1 -1
  115. package/dist/cli/logs.tail.impl.js +84 -57
  116. package/dist/cli/logs.tail.impl.js.map +1 -1
  117. package/dist/cli/logs.view.impl.d.ts +2 -6
  118. package/dist/cli/logs.view.impl.d.ts.map +1 -1
  119. package/dist/cli/logs.view.impl.js +32 -50
  120. package/dist/cli/logs.view.impl.js.map +1 -1
  121. package/dist/cli/output.d.ts +29 -0
  122. package/dist/cli/output.d.ts.map +1 -0
  123. package/dist/cli/output.js +29 -0
  124. package/dist/cli/output.js.map +1 -0
  125. package/dist/{logging.cli.plugin.d.ts → cli/plugin.d.ts} +3 -3
  126. package/dist/cli/plugin.d.ts.map +1 -0
  127. package/dist/cli/plugin.js +45 -0
  128. package/dist/cli/plugin.js.map +1 -0
  129. package/dist/cli/resolve-output.d.ts +25 -0
  130. package/dist/cli/resolve-output.d.ts.map +1 -0
  131. package/dist/cli/resolve-output.js +75 -0
  132. package/dist/cli/resolve-output.js.map +1 -0
  133. package/dist/cli/types.d.ts +13 -5
  134. package/dist/cli/types.d.ts.map +1 -1
  135. package/dist/cli/types.js +3 -3
  136. package/dist/client/logging-client.d.ts +31 -0
  137. package/dist/client/logging-client.d.ts.map +1 -0
  138. package/dist/client/logging-client.js +44 -0
  139. package/dist/client/logging-client.js.map +1 -0
  140. package/dist/config/file-rotation.d.ts +11 -0
  141. package/dist/config/file-rotation.d.ts.map +1 -0
  142. package/dist/config/file-rotation.js +18 -0
  143. package/dist/config/file-rotation.js.map +1 -0
  144. package/dist/config/load-config.d.ts +7 -0
  145. package/dist/config/load-config.d.ts.map +1 -0
  146. package/dist/config/load-config.js +68 -0
  147. package/dist/config/load-config.js.map +1 -0
  148. package/dist/config/logging.config.descriptor.d.ts +350 -0
  149. package/dist/config/logging.config.descriptor.d.ts.map +1 -0
  150. package/dist/config/logging.config.descriptor.js +208 -0
  151. package/dist/config/logging.config.descriptor.js.map +1 -0
  152. package/dist/config/otel-service.d.ts +9 -0
  153. package/dist/config/otel-service.d.ts.map +1 -0
  154. package/dist/config/otel-service.js +18 -0
  155. package/dist/config/otel-service.js.map +1 -0
  156. package/dist/contexts/bootstrap.plugin.d.ts +3 -0
  157. package/dist/contexts/bootstrap.plugin.d.ts.map +1 -0
  158. package/dist/contexts/bootstrap.plugin.js +13 -0
  159. package/dist/contexts/bootstrap.plugin.js.map +1 -0
  160. package/dist/contexts/fallback-logger.d.ts +7 -2
  161. package/dist/contexts/fallback-logger.d.ts.map +1 -1
  162. package/dist/contexts/fallback-logger.js +73 -46
  163. package/dist/contexts/fallback-logger.js.map +1 -1
  164. package/dist/contexts/index.d.ts +2 -2
  165. package/dist/contexts/index.d.ts.map +1 -1
  166. package/dist/contexts/index.js +2 -3
  167. package/dist/contexts/index.js.map +1 -1
  168. package/dist/contexts/logger.d.ts +38 -14
  169. package/dist/contexts/logger.d.ts.map +1 -1
  170. package/dist/contexts/logger.js +241 -62
  171. package/dist/contexts/logger.js.map +1 -1
  172. package/dist/core/attempt.d.ts +30 -0
  173. package/dist/core/attempt.d.ts.map +1 -0
  174. package/dist/core/attempt.js +44 -0
  175. package/dist/core/attempt.js.map +1 -0
  176. package/dist/core/emission-window.d.ts +34 -0
  177. package/dist/core/emission-window.d.ts.map +1 -0
  178. package/dist/core/emission-window.js +25 -0
  179. package/dist/core/emission-window.js.map +1 -0
  180. package/dist/core/endpoint.d.ts +54 -0
  181. package/dist/core/endpoint.d.ts.map +1 -0
  182. package/dist/core/endpoint.js +256 -0
  183. package/dist/core/endpoint.js.map +1 -0
  184. package/dist/core/entry-context.d.ts +106 -0
  185. package/dist/core/entry-context.d.ts.map +1 -0
  186. package/dist/core/entry-context.js +150 -0
  187. package/dist/core/entry-context.js.map +1 -0
  188. package/dist/core/index.d.ts +4 -0
  189. package/dist/core/index.d.ts.map +1 -1
  190. package/dist/core/index.js +5 -0
  191. package/dist/core/index.js.map +1 -1
  192. package/dist/core/logger.d.ts +6 -1
  193. package/dist/core/logger.d.ts.map +1 -1
  194. package/dist/core/logger.js +133 -67
  195. package/dist/core/logger.js.map +1 -1
  196. package/dist/core/namespace.d.ts +5 -2
  197. package/dist/core/namespace.d.ts.map +1 -1
  198. package/dist/core/namespace.js +15 -7
  199. package/dist/core/namespace.js.map +1 -1
  200. package/dist/core/normalize.d.ts +31 -0
  201. package/dist/core/normalize.d.ts.map +1 -0
  202. package/dist/core/normalize.js +67 -0
  203. package/dist/core/normalize.js.map +1 -0
  204. package/dist/core/otlp-headers.d.ts +53 -0
  205. package/dist/core/otlp-headers.d.ts.map +1 -0
  206. package/dist/core/otlp-headers.js +64 -0
  207. package/dist/core/otlp-headers.js.map +1 -0
  208. package/dist/core/otlp-partial-success.d.ts +48 -0
  209. package/dist/core/otlp-partial-success.d.ts.map +1 -0
  210. package/dist/core/otlp-partial-success.js +55 -0
  211. package/dist/core/otlp-partial-success.js.map +1 -0
  212. package/dist/core/outcome.d.ts +21 -0
  213. package/dist/core/outcome.d.ts.map +1 -0
  214. package/dist/core/outcome.js +24 -0
  215. package/dist/core/outcome.js.map +1 -0
  216. package/dist/core/output-resources.d.ts +15 -0
  217. package/dist/core/output-resources.d.ts.map +1 -0
  218. package/dist/core/output-resources.js +51 -0
  219. package/dist/core/output-resources.js.map +1 -0
  220. package/dist/core/parsing.d.ts.map +1 -1
  221. package/dist/core/parsing.js +13 -10
  222. package/dist/core/parsing.js.map +1 -1
  223. package/dist/core/redact.d.ts +161 -0
  224. package/dist/core/redact.d.ts.map +1 -0
  225. package/dist/core/redact.js +581 -0
  226. package/dist/core/redact.js.map +1 -0
  227. package/dist/core/root-identity.d.ts +13 -0
  228. package/dist/core/root-identity.d.ts.map +1 -0
  229. package/dist/core/root-identity.js +23 -0
  230. package/dist/core/root-identity.js.map +1 -0
  231. package/dist/core/types.d.ts +5 -4
  232. package/dist/core/types.d.ts.map +1 -1
  233. package/dist/docs/cli.docs.descriptor.d.ts +4 -0
  234. package/dist/docs/cli.docs.descriptor.d.ts.map +1 -0
  235. package/dist/docs/cli.docs.descriptor.js +97 -0
  236. package/dist/docs/cli.docs.descriptor.js.map +1 -0
  237. package/dist/docs/index.d.ts +7 -0
  238. package/dist/docs/index.d.ts.map +1 -0
  239. package/dist/docs/index.js +7 -0
  240. package/dist/docs/index.js.map +1 -0
  241. package/dist/docs/levels.docs.descriptor.d.ts +1 -1
  242. package/dist/docs/levels.docs.descriptor.d.ts.map +1 -1
  243. package/dist/docs/levels.docs.descriptor.js +112 -246
  244. package/dist/docs/levels.docs.descriptor.js.map +1 -1
  245. package/dist/docs/logging.docs.descriptor.d.ts +4 -0
  246. package/dist/docs/logging.docs.descriptor.d.ts.map +1 -0
  247. package/dist/docs/logging.docs.descriptor.js +105 -0
  248. package/dist/docs/logging.docs.descriptor.js.map +1 -0
  249. package/dist/docs/observability.docs.descriptor.d.ts +4 -0
  250. package/dist/docs/observability.docs.descriptor.d.ts.map +1 -0
  251. package/dist/docs/observability.docs.descriptor.js +152 -0
  252. package/dist/docs/observability.docs.descriptor.js.map +1 -0
  253. package/dist/docs/structured.docs.descriptor.d.ts +1 -1
  254. package/dist/docs/structured.docs.descriptor.d.ts.map +1 -1
  255. package/dist/docs/structured.docs.descriptor.js +111 -267
  256. package/dist/docs/structured.docs.descriptor.js.map +1 -1
  257. package/dist/docs/transports.docs.descriptor.d.ts +1 -1
  258. package/dist/docs/transports.docs.descriptor.d.ts.map +1 -1
  259. package/dist/docs/transports.docs.descriptor.js +129 -344
  260. package/dist/docs/transports.docs.descriptor.js.map +1 -1
  261. package/dist/formatters/json/json.impl.d.ts +1 -1
  262. package/dist/formatters/json/json.impl.d.ts.map +1 -1
  263. package/dist/formatters/json/json.impl.js +3 -2
  264. package/dist/formatters/json/json.impl.js.map +1 -1
  265. package/dist/formatters/json5/json5.impl.d.ts +1 -1
  266. package/dist/formatters/json5/json5.impl.d.ts.map +1 -1
  267. package/dist/formatters/json5/json5.impl.js +3 -2
  268. package/dist/formatters/json5/json5.impl.js.map +1 -1
  269. package/dist/formatters/jsonl/jsonl.impl.d.ts +1 -1
  270. package/dist/formatters/jsonl/jsonl.impl.d.ts.map +1 -1
  271. package/dist/formatters/jsonl/jsonl.impl.js +3 -2
  272. package/dist/formatters/jsonl/jsonl.impl.js.map +1 -1
  273. package/dist/formatters/pretty/{pretty.impl.cli.d.ts → pretty.impl.consumer.d.ts} +1 -1
  274. package/dist/formatters/pretty/pretty.impl.consumer.d.ts.map +1 -0
  275. package/dist/formatters/pretty/{pretty.impl.cli.js → pretty.impl.consumer.js} +1 -1
  276. package/dist/formatters/pretty/pretty.impl.consumer.js.map +1 -0
  277. package/dist/host-files/file-audit.base.d.ts +39 -0
  278. package/dist/host-files/file-audit.base.d.ts.map +1 -0
  279. package/dist/host-files/file-audit.base.js +255 -0
  280. package/dist/host-files/file-audit.base.js.map +1 -0
  281. package/dist/host-files/file-output.base.d.ts +84 -0
  282. package/dist/host-files/file-output.base.d.ts.map +1 -0
  283. package/dist/host-files/file-output.base.js +401 -0
  284. package/dist/host-files/file-output.base.js.map +1 -0
  285. package/dist/host-files/file-output.factory.base.d.ts +31 -0
  286. package/dist/host-files/file-output.factory.base.d.ts.map +1 -0
  287. package/dist/host-files/file-output.factory.base.js +82 -0
  288. package/dist/host-files/file-output.factory.base.js.map +1 -0
  289. package/dist/host-files/file-output.read.base.d.ts +7 -0
  290. package/dist/host-files/file-output.read.base.d.ts.map +1 -0
  291. package/dist/host-files/file-output.read.base.js +229 -0
  292. package/dist/host-files/file-output.read.base.js.map +1 -0
  293. package/dist/host-files/file-sink.base.d.ts +22 -0
  294. package/dist/host-files/file-sink.base.d.ts.map +1 -0
  295. package/dist/host-files/file-sink.base.js +56 -0
  296. package/dist/host-files/file-sink.base.js.map +1 -0
  297. package/dist/host-files/host-file-logging.plugin.d.ts +11 -0
  298. package/dist/host-files/host-file-logging.plugin.d.ts.map +1 -0
  299. package/dist/host-files/host-file-logging.plugin.js +63 -0
  300. package/dist/host-files/host-file-logging.plugin.js.map +1 -0
  301. package/dist/host-files/index.d.ts +19 -0
  302. package/dist/host-files/index.d.ts.map +1 -0
  303. package/dist/host-files/index.js +18 -0
  304. package/dist/host-files/index.js.map +1 -0
  305. package/dist/host-files/rotate-appended-file.base.d.ts +35 -0
  306. package/dist/host-files/rotate-appended-file.base.d.ts.map +1 -0
  307. package/dist/host-files/rotate-appended-file.base.js +104 -0
  308. package/dist/host-files/rotate-appended-file.base.js.map +1 -0
  309. package/dist/host.d.ts +38 -0
  310. package/dist/host.d.ts.map +1 -0
  311. package/dist/host.js +39 -0
  312. package/dist/host.js.map +1 -0
  313. package/dist/index.d.ts +24 -13
  314. package/dist/index.d.ts.map +1 -1
  315. package/dist/index.js +27 -23
  316. package/dist/index.js.map +1 -1
  317. package/dist/kinds/audit.d.ts +40 -8
  318. package/dist/kinds/audit.d.ts.map +1 -1
  319. package/dist/kinds/audit.js +82 -20
  320. package/dist/kinds/audit.js.map +1 -1
  321. package/dist/kinds/contexts.d.ts +4 -3
  322. package/dist/kinds/contexts.d.ts.map +1 -1
  323. package/dist/kinds/file-output.d.ts +56 -0
  324. package/dist/kinds/file-output.d.ts.map +1 -0
  325. package/dist/kinds/file-output.js +11 -0
  326. package/dist/kinds/file-output.js.map +1 -0
  327. package/dist/kinds/formatter.d.ts +4 -6
  328. package/dist/kinds/formatter.d.ts.map +1 -1
  329. package/dist/kinds/formatter.js +4 -3
  330. package/dist/kinds/formatter.js.map +1 -1
  331. package/dist/kinds/index.d.ts +3 -3
  332. package/dist/kinds/index.d.ts.map +1 -1
  333. package/dist/kinds/index.js +3 -3
  334. package/dist/kinds/index.js.map +1 -1
  335. package/dist/kinds/logger.d.ts +4 -4
  336. package/dist/kinds/logger.d.ts.map +1 -1
  337. package/dist/kinds/logger.impl.d.ts +40 -13
  338. package/dist/kinds/logger.impl.d.ts.map +1 -1
  339. package/dist/kinds/logger.impl.js +179 -87
  340. package/dist/kinds/logger.impl.js.map +1 -1
  341. package/dist/kinds/logger.js +21 -11
  342. package/dist/kinds/logger.js.map +1 -1
  343. package/dist/kinds/logger.utils.d.ts +31 -4
  344. package/dist/kinds/logger.utils.d.ts.map +1 -1
  345. package/dist/kinds/logger.utils.js +58 -18
  346. package/dist/kinds/logger.utils.js.map +1 -1
  347. package/dist/kinds/output.d.ts +5 -11
  348. package/dist/kinds/output.d.ts.map +1 -1
  349. package/dist/kinds/output.impl.d.ts +9 -7
  350. package/dist/kinds/output.impl.d.ts.map +1 -1
  351. package/dist/kinds/output.impl.js +51 -29
  352. package/dist/kinds/output.impl.js.map +1 -1
  353. package/dist/kinds/output.js +10 -5
  354. package/dist/kinds/output.js.map +1 -1
  355. package/dist/kinds/output.types.d.ts +26 -7
  356. package/dist/kinds/output.types.d.ts.map +1 -1
  357. package/dist/kinds/sink.d.ts +6 -5
  358. package/dist/kinds/sink.d.ts.map +1 -1
  359. package/dist/kinds/sink.js +14 -7
  360. package/dist/kinds/sink.js.map +1 -1
  361. package/dist/logger.context.descriptor.d.ts +15 -1
  362. package/dist/logger.context.descriptor.d.ts.map +1 -1
  363. package/dist/logger.context.descriptor.js +1 -1
  364. package/dist/logger.context.descriptor.js.map +1 -1
  365. package/dist/logging.consumer.plugin.d.ts +4 -0
  366. package/dist/logging.consumer.plugin.d.ts.map +1 -0
  367. package/dist/logging.consumer.plugin.js +17 -0
  368. package/dist/logging.consumer.plugin.js.map +1 -0
  369. package/dist/logging.plugin.d.ts +3 -3
  370. package/dist/logging.plugin.d.ts.map +1 -1
  371. package/dist/logging.plugin.js +81 -42
  372. package/dist/logging.plugin.js.map +1 -1
  373. package/dist/observability/building-host.d.ts +11 -0
  374. package/dist/observability/building-host.d.ts.map +1 -0
  375. package/dist/observability/building-host.js +11 -0
  376. package/dist/observability/building-host.js.map +1 -0
  377. package/dist/observability/config.d.ts +36 -0
  378. package/dist/observability/config.d.ts.map +1 -0
  379. package/dist/observability/config.js +46 -0
  380. package/dist/observability/config.js.map +1 -0
  381. package/dist/observability/http/instrumented-fetch.d.ts +19 -0
  382. package/dist/observability/http/instrumented-fetch.d.ts.map +1 -0
  383. package/dist/observability/http/instrumented-fetch.js +175 -0
  384. package/dist/observability/http/instrumented-fetch.js.map +1 -0
  385. package/dist/observability/index.d.ts +8 -0
  386. package/dist/observability/index.d.ts.map +1 -0
  387. package/dist/observability/index.js +10 -0
  388. package/dist/observability/index.js.map +1 -0
  389. package/dist/observability/lifecycle.d.ts +18 -0
  390. package/dist/observability/lifecycle.d.ts.map +1 -0
  391. package/dist/observability/lifecycle.js +44 -0
  392. package/dist/observability/lifecycle.js.map +1 -0
  393. package/dist/observability/observability/error-tracker.d.ts +43 -0
  394. package/dist/observability/observability/error-tracker.d.ts.map +1 -0
  395. package/dist/observability/observability/error-tracker.js +130 -0
  396. package/dist/observability/observability/error-tracker.js.map +1 -0
  397. package/dist/observability/should-keep-log.d.ts +8 -0
  398. package/dist/observability/should-keep-log.d.ts.map +1 -0
  399. package/dist/observability/should-keep-log.js +10 -0
  400. package/dist/observability/should-keep-log.js.map +1 -0
  401. package/dist/observability/telemetry/otel.d.ts +47 -0
  402. package/dist/observability/telemetry/otel.d.ts.map +1 -0
  403. package/dist/observability/telemetry/otel.js +542 -0
  404. package/dist/observability/telemetry/otel.js.map +1 -0
  405. package/dist/observability/telemetry/partial-success.d.ts +35 -0
  406. package/dist/observability/telemetry/partial-success.d.ts.map +1 -0
  407. package/dist/observability/telemetry/partial-success.js +94 -0
  408. package/dist/observability/telemetry/partial-success.js.map +1 -0
  409. package/dist/observability/telemetry/sdk-lifecycle.d.ts +37 -0
  410. package/dist/observability/telemetry/sdk-lifecycle.d.ts.map +1 -0
  411. package/dist/observability/telemetry/sdk-lifecycle.js +132 -0
  412. package/dist/observability/telemetry/sdk-lifecycle.js.map +1 -0
  413. package/dist/observability/telemetry/telemetry-root.d.ts +78 -0
  414. package/dist/observability/telemetry/telemetry-root.d.ts.map +1 -0
  415. package/dist/observability/telemetry/telemetry-root.js +79 -0
  416. package/dist/observability/telemetry/telemetry-root.js.map +1 -0
  417. package/dist/observability/telemetry-instrumentation.d.ts +76 -0
  418. package/dist/observability/telemetry-instrumentation.d.ts.map +1 -0
  419. package/dist/observability/telemetry-instrumentation.js +69 -0
  420. package/dist/observability/telemetry-instrumentation.js.map +1 -0
  421. package/dist/otel/index.d.ts +9 -0
  422. package/dist/otel/index.d.ts.map +1 -0
  423. package/dist/otel/index.js +12 -0
  424. package/dist/otel/index.js.map +1 -0
  425. package/dist/otel/logging-otel.plugin.d.ts +11 -0
  426. package/dist/otel/logging-otel.plugin.d.ts.map +1 -0
  427. package/dist/otel/logging-otel.plugin.js +27 -0
  428. package/dist/otel/logging-otel.plugin.js.map +1 -0
  429. package/dist/otel/sinks/otel/otel.descriptor.d.ts +10 -0
  430. package/dist/otel/sinks/otel/otel.descriptor.d.ts.map +1 -0
  431. package/dist/otel/sinks/otel/otel.descriptor.js +23 -0
  432. package/dist/otel/sinks/otel/otel.descriptor.js.map +1 -0
  433. package/dist/otel/sinks/otel/otel.impl.d.ts +47 -0
  434. package/dist/otel/sinks/otel/otel.impl.d.ts.map +1 -0
  435. package/dist/otel/sinks/otel/otel.impl.js +202 -0
  436. package/dist/otel/sinks/otel/otel.impl.js.map +1 -0
  437. package/dist/otel/sinks/otel/otlp-log-exporter.d.ts +76 -0
  438. package/dist/otel/sinks/otel/otlp-log-exporter.d.ts.map +1 -0
  439. package/dist/otel/sinks/otel/otlp-log-exporter.js +178 -0
  440. package/dist/otel/sinks/otel/otlp-log-exporter.js.map +1 -0
  441. package/dist/outputs/file/file.outputs.descriptor.d.ts +10 -0
  442. package/dist/outputs/file/file.outputs.descriptor.d.ts.map +1 -0
  443. package/dist/outputs/file/file.outputs.descriptor.js +32 -0
  444. package/dist/outputs/file/file.outputs.descriptor.js.map +1 -0
  445. package/dist/outputs/remote/remote.descriptor.d.ts +1 -1
  446. package/dist/outputs/remote/remote.descriptor.d.ts.map +1 -1
  447. package/dist/outputs/remote/remote.descriptor.js +1 -2
  448. package/dist/outputs/remote/remote.descriptor.js.map +1 -1
  449. package/dist/outputs/remote/remote.factory.d.ts +9 -0
  450. package/dist/outputs/remote/remote.factory.d.ts.map +1 -0
  451. package/dist/outputs/remote/remote.factory.js +16 -0
  452. package/dist/outputs/remote/remote.factory.js.map +1 -0
  453. package/dist/outputs/remote/remote.impl.d.ts +40 -4
  454. package/dist/outputs/remote/remote.impl.d.ts.map +1 -1
  455. package/dist/outputs/remote/remote.impl.js +224 -99
  456. package/dist/outputs/remote/remote.impl.js.map +1 -1
  457. package/dist/outputs.context.descriptor.d.ts +15 -1
  458. package/dist/outputs.context.descriptor.d.ts.map +1 -1
  459. package/dist/outputs.context.descriptor.js +1 -1
  460. package/dist/outputs.context.descriptor.js.map +1 -1
  461. package/dist/outputs.context.impl.d.ts +2 -1
  462. package/dist/outputs.context.impl.d.ts.map +1 -1
  463. package/dist/outputs.context.impl.js +17 -9
  464. package/dist/outputs.context.impl.js.map +1 -1
  465. package/dist/paths.d.ts +24 -3
  466. package/dist/paths.d.ts.map +1 -1
  467. package/dist/paths.js +63 -3
  468. package/dist/paths.js.map +1 -1
  469. package/dist/rotation/rotate-appended-file.d.ts +15 -0
  470. package/dist/rotation/rotate-appended-file.d.ts.map +1 -0
  471. package/dist/rotation/rotate-appended-file.js +20 -0
  472. package/dist/rotation/rotate-appended-file.js.map +1 -0
  473. package/dist/rotation/rotation-policy.d.ts +19 -0
  474. package/dist/rotation/rotation-policy.d.ts.map +1 -0
  475. package/dist/rotation/rotation-policy.js +37 -0
  476. package/dist/rotation/rotation-policy.js.map +1 -0
  477. package/dist/schemas/audit.d.ts +25 -7
  478. package/dist/schemas/audit.d.ts.map +1 -1
  479. package/dist/schemas/audit.js +10 -4
  480. package/dist/schemas/audit.js.map +1 -1
  481. package/dist/schemas/entry.d.ts +11 -5
  482. package/dist/schemas/entry.d.ts.map +1 -1
  483. package/dist/schemas/entry.js +3 -2
  484. package/dist/schemas/entry.js.map +1 -1
  485. package/dist/schemas/file-host.d.ts +86 -0
  486. package/dist/schemas/file-host.d.ts.map +1 -0
  487. package/dist/schemas/file-host.js +10 -0
  488. package/dist/schemas/file-host.js.map +1 -0
  489. package/dist/schemas/formatter.d.ts +11 -1
  490. package/dist/schemas/formatter.d.ts.map +1 -1
  491. package/dist/schemas/formatter.js +1 -1
  492. package/dist/schemas/formatter.js.map +1 -1
  493. package/dist/schemas/index.d.ts +3 -2
  494. package/dist/schemas/index.d.ts.map +1 -1
  495. package/dist/schemas/index.js +3 -2
  496. package/dist/schemas/index.js.map +1 -1
  497. package/dist/schemas/logger.d.ts +16 -1
  498. package/dist/schemas/logger.d.ts.map +1 -1
  499. package/dist/schemas/logger.js +6 -1
  500. package/dist/schemas/logger.js.map +1 -1
  501. package/dist/schemas/output-defaults.d.ts +44 -0
  502. package/dist/schemas/output-defaults.d.ts.map +1 -0
  503. package/dist/schemas/output-defaults.js +53 -0
  504. package/dist/schemas/output-defaults.js.map +1 -0
  505. package/dist/schemas/output.d.ts +25 -1
  506. package/dist/schemas/output.d.ts.map +1 -1
  507. package/dist/schemas/output.js +29 -2
  508. package/dist/schemas/output.js.map +1 -1
  509. package/dist/schemas/sink.d.ts +32 -1
  510. package/dist/schemas/sink.d.ts.map +1 -1
  511. package/dist/schemas/sink.js +17 -1
  512. package/dist/schemas/sink.js.map +1 -1
  513. package/dist/sinks/buffer/buffer.descriptor.js +1 -1
  514. package/dist/sinks/buffer/buffer.descriptor.js.map +1 -1
  515. package/dist/sinks/buffer/{buffer.impl.cli.d.ts → buffer.impl.d.ts} +3 -3
  516. package/dist/sinks/buffer/buffer.impl.d.ts.map +1 -0
  517. package/dist/sinks/buffer/buffer.impl.js +42 -0
  518. package/dist/sinks/buffer/buffer.impl.js.map +1 -0
  519. package/dist/sinks/console/console.descriptor.js +1 -1
  520. package/dist/sinks/console/console.descriptor.js.map +1 -1
  521. package/dist/sinks/console/console.impl.browser.d.ts +4 -3
  522. package/dist/sinks/console/console.impl.browser.d.ts.map +1 -1
  523. package/dist/sinks/console/console.impl.browser.js +11 -14
  524. package/dist/sinks/console/console.impl.browser.js.map +1 -1
  525. package/dist/sinks/console/{console.impl.cli.d.ts → console.impl.consumer.d.ts} +5 -4
  526. package/dist/sinks/console/console.impl.consumer.d.ts.map +1 -0
  527. package/dist/sinks/console/{console.impl.cli.js → console.impl.consumer.js} +16 -8
  528. package/dist/sinks/console/console.impl.consumer.js.map +1 -0
  529. package/dist/sinks/file/file.sinks.descriptor.d.ts +10 -0
  530. package/dist/sinks/file/file.sinks.descriptor.d.ts.map +1 -0
  531. package/dist/sinks/file/file.sinks.descriptor.js +23 -0
  532. package/dist/sinks/file/file.sinks.descriptor.js.map +1 -0
  533. package/dist/sinks/index.d.ts +1 -1
  534. package/dist/sinks/index.d.ts.map +1 -1
  535. package/dist/sinks/memory/memory.descriptor.d.ts +1 -1
  536. package/dist/sinks/memory/memory.descriptor.js +2 -2
  537. package/dist/sinks/memory/memory.descriptor.js.map +1 -1
  538. package/dist/sinks/memory/memory.impl.d.ts +5 -11
  539. package/dist/sinks/memory/memory.impl.d.ts.map +1 -1
  540. package/dist/sinks/memory/memory.impl.js +46 -21
  541. package/dist/sinks/memory/memory.impl.js.map +1 -1
  542. package/dist/sinks/stdout/stdout.descriptor.js +1 -1
  543. package/dist/sinks/stdout/stdout.descriptor.js.map +1 -1
  544. package/dist/sinks/stdout/{stdout.impl.cli.d.ts → stdout.impl.d.ts} +5 -4
  545. package/dist/sinks/stdout/stdout.impl.d.ts.map +1 -0
  546. package/dist/sinks/stdout/stdout.impl.js +29 -0
  547. package/dist/sinks/stdout/stdout.impl.js.map +1 -0
  548. package/dist/sinks.context.descriptor.d.ts +15 -1
  549. package/dist/sinks.context.descriptor.d.ts.map +1 -1
  550. package/dist/sinks.context.descriptor.js +1 -1
  551. package/dist/sinks.context.descriptor.js.map +1 -1
  552. package/dist/sinks.context.impl.d.ts +2 -1
  553. package/dist/sinks.context.impl.d.ts.map +1 -1
  554. package/dist/sinks.context.impl.js +17 -9
  555. package/dist/sinks.context.impl.js.map +1 -1
  556. package/dist/stdout-capture/mcp-frame.d.ts +23 -0
  557. package/dist/stdout-capture/mcp-frame.d.ts.map +1 -0
  558. package/dist/stdout-capture/mcp-frame.js +80 -0
  559. package/dist/stdout-capture/mcp-frame.js.map +1 -0
  560. package/dist/stdout-capture/stdout-capture.descriptor.d.ts +10 -0
  561. package/dist/stdout-capture/stdout-capture.descriptor.d.ts.map +1 -0
  562. package/dist/stdout-capture/stdout-capture.descriptor.js +17 -0
  563. package/dist/stdout-capture/stdout-capture.descriptor.js.map +1 -0
  564. package/dist/stdout-capture/stdout-capture.impl.d.ts +19 -0
  565. package/dist/stdout-capture/stdout-capture.impl.d.ts.map +1 -0
  566. package/dist/stdout-capture/stdout-capture.impl.js +49 -0
  567. package/dist/stdout-capture/stdout-capture.impl.js.map +1 -0
  568. package/dist/stdout-capture/stdout-capture.lease.d.ts +45 -0
  569. package/dist/stdout-capture/stdout-capture.lease.d.ts.map +1 -0
  570. package/dist/stdout-capture/stdout-capture.lease.js +338 -0
  571. package/dist/stdout-capture/stdout-capture.lease.js.map +1 -0
  572. package/dist/stdout-capture/stdout-capture.output.descriptor.d.ts +4 -0
  573. package/dist/stdout-capture/stdout-capture.output.descriptor.d.ts.map +1 -0
  574. package/dist/stdout-capture/stdout-capture.output.descriptor.js +18 -0
  575. package/dist/stdout-capture/stdout-capture.output.descriptor.js.map +1 -0
  576. package/dist/stdout-capture/stdout-capture.state.d.ts +29 -0
  577. package/dist/stdout-capture/stdout-capture.state.d.ts.map +1 -0
  578. package/dist/stdout-capture/stdout-capture.state.js +80 -0
  579. package/dist/stdout-capture/stdout-capture.state.js.map +1 -0
  580. package/dist/stdout-capture.d.ts +24 -0
  581. package/dist/stdout-capture.d.ts.map +1 -0
  582. package/dist/stdout-capture.js +28 -0
  583. package/dist/stdout-capture.js.map +1 -0
  584. package/dist/stdout-capture.plugin.d.ts +7 -0
  585. package/dist/stdout-capture.plugin.d.ts.map +1 -0
  586. package/dist/stdout-capture.plugin.js +28 -0
  587. package/dist/stdout-capture.plugin.js.map +1 -0
  588. package/package.json +311 -228
  589. package/SPEC.md +0 -65
  590. package/dist/contexts/audit.d.ts +0 -34
  591. package/dist/contexts/audit.d.ts.map +0 -1
  592. package/dist/contexts/audit.js +0 -13
  593. package/dist/contexts/audit.js.map +0 -1
  594. package/dist/formatters/index.d.ts +0 -7
  595. package/dist/formatters/index.d.ts.map +0 -1
  596. package/dist/formatters/index.js +0 -8
  597. package/dist/formatters/index.js.map +0 -1
  598. package/dist/formatters/pretty/pretty.impl.cli.d.ts.map +0 -1
  599. package/dist/formatters/pretty/pretty.impl.cli.js.map +0 -1
  600. package/dist/kinds/logger.contracts.d.ts +0 -16
  601. package/dist/kinds/logger.contracts.d.ts.map +0 -1
  602. package/dist/kinds/logger.contracts.js +0 -9
  603. package/dist/kinds/logger.contracts.js.map +0 -1
  604. package/dist/kinds/output.contracts.d.ts +0 -50
  605. package/dist/kinds/output.contracts.d.ts.map +0 -1
  606. package/dist/kinds/output.contracts.js +0 -10
  607. package/dist/kinds/output.contracts.js.map +0 -1
  608. package/dist/logging.cli.plugin.d.ts.map +0 -1
  609. package/dist/logging.cli.plugin.js +0 -39
  610. package/dist/logging.cli.plugin.js.map +0 -1
  611. package/dist/outputs/index.d.ts +0 -7
  612. package/dist/outputs/index.d.ts.map +0 -1
  613. package/dist/outputs/index.js +0 -8
  614. package/dist/outputs/index.js.map +0 -1
  615. package/dist/sinks/buffer/buffer.impl.cli.d.ts.map +0 -1
  616. package/dist/sinks/buffer/buffer.impl.cli.js +0 -34
  617. package/dist/sinks/buffer/buffer.impl.cli.js.map +0 -1
  618. package/dist/sinks/console/console.impl.cli.d.ts.map +0 -1
  619. package/dist/sinks/console/console.impl.cli.js.map +0 -1
  620. package/dist/sinks/stdout/stdout.impl.cli.d.ts.map +0 -1
  621. package/dist/sinks/stdout/stdout.impl.cli.js +0 -21
  622. package/dist/sinks/stdout/stdout.impl.cli.js.map +0 -1
  623. package/src/audit/audit.descriptor.ts +0 -45
  624. package/src/audit/audit.storage.schema.ts +0 -57
  625. package/src/audit/index.ts +0 -8
  626. package/src/cli/logs.descriptor.ts +0 -19
  627. package/src/cli/logs.list.descriptor.ts +0 -28
  628. package/src/cli/logs.list.impl.ts +0 -93
  629. package/src/cli/logs.rotate.descriptor.ts +0 -40
  630. package/src/cli/logs.rotate.impl.ts +0 -61
  631. package/src/cli/logs.search.descriptor.ts +0 -61
  632. package/src/cli/logs.search.impl.ts +0 -173
  633. package/src/cli/logs.tail.descriptor.ts +0 -49
  634. package/src/cli/logs.tail.impl.ts +0 -105
  635. package/src/cli/logs.view.descriptor.ts +0 -57
  636. package/src/cli/logs.view.impl.ts +0 -108
  637. package/src/cli/types.ts +0 -59
  638. package/src/contexts/audit.ts +0 -36
  639. package/src/contexts/fallback-logger.ts +0 -80
  640. package/src/contexts/index.ts +0 -23
  641. package/src/contexts/logger.ts +0 -119
  642. package/src/core/index.ts +0 -32
  643. package/src/core/logger.ts +0 -150
  644. package/src/core/namespace.ts +0 -195
  645. package/src/core/parsing.ts +0 -21
  646. package/src/core/types.ts +0 -82
  647. package/src/docs/levels.docs.descriptor.ts +0 -344
  648. package/src/docs/structured.docs.descriptor.ts +0 -444
  649. package/src/docs/transports.docs.descriptor.ts +0 -428
  650. package/src/formatters/index.ts +0 -6
  651. package/src/formatters/json/json.formatters.descriptor.ts +0 -25
  652. package/src/formatters/json/json.impl.ts +0 -41
  653. package/src/formatters/json5/json5.descriptor.ts +0 -25
  654. package/src/formatters/json5/json5.impl.ts +0 -43
  655. package/src/formatters/jsonl/jsonl.descriptor.ts +0 -26
  656. package/src/formatters/jsonl/jsonl.impl.ts +0 -39
  657. package/src/formatters/pretty/pretty.descriptor.ts +0 -26
  658. package/src/formatters/pretty/pretty.impl.cli.ts +0 -101
  659. package/src/index.ts +0 -190
  660. package/src/kinds/audit.ts +0 -169
  661. package/src/kinds/contexts.ts +0 -22
  662. package/src/kinds/formatter.ts +0 -117
  663. package/src/kinds/index.ts +0 -25
  664. package/src/kinds/logger.contracts.ts +0 -17
  665. package/src/kinds/logger.impl.ts +0 -206
  666. package/src/kinds/logger.ts +0 -46
  667. package/src/kinds/logger.utils.ts +0 -91
  668. package/src/kinds/output.contracts.ts +0 -54
  669. package/src/kinds/output.impl.ts +0 -118
  670. package/src/kinds/output.ts +0 -59
  671. package/src/kinds/output.types.ts +0 -105
  672. package/src/kinds/sink.ts +0 -100
  673. package/src/logger.context.descriptor.ts +0 -13
  674. package/src/logging.cli.plugin.ts +0 -43
  675. package/src/logging.plugin.ts +0 -93
  676. package/src/outputs/index.ts +0 -6
  677. package/src/outputs/remote/remote.descriptor.ts +0 -27
  678. package/src/outputs/remote/remote.impl.ts +0 -218
  679. package/src/outputs.context.descriptor.ts +0 -10
  680. package/src/outputs.context.impl.ts +0 -30
  681. package/src/paths.ts +0 -10
  682. package/src/schemas/audit.ts +0 -98
  683. package/src/schemas/entry.ts +0 -88
  684. package/src/schemas/formatter.ts +0 -37
  685. package/src/schemas/index.ts +0 -80
  686. package/src/schemas/logger.ts +0 -38
  687. package/src/schemas/output.ts +0 -62
  688. package/src/schemas/sink.ts +0 -39
  689. package/src/sinks/buffer/buffer.descriptor.ts +0 -13
  690. package/src/sinks/buffer/buffer.impl.cli.ts +0 -49
  691. package/src/sinks/console/console.descriptor.ts +0 -20
  692. package/src/sinks/console/console.impl.browser.ts +0 -69
  693. package/src/sinks/console/console.impl.cli.ts +0 -71
  694. package/src/sinks/index.ts +0 -8
  695. package/src/sinks/memory/memory.descriptor.ts +0 -20
  696. package/src/sinks/memory/memory.impl.ts +0 -119
  697. package/src/sinks/stdout/stdout.descriptor.ts +0 -13
  698. package/src/sinks/stdout/stdout.impl.cli.ts +0 -27
  699. package/src/sinks.context.descriptor.ts +0 -10
  700. package/src/sinks.context.impl.ts +0 -30
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Logging OpenTelemetry Plugin
3
+ *
4
+ * Registers the OpenTelemetry log sink with the runtime.
5
+ * Server/cloud environments only. OTEL configuration (OTEL_SERVICE_NAME,
6
+ * OTEL_EXPORTER_OTLP_LOGS_ENDPOINT, OTEL_EXPORTER_OTLP_ENDPOINT) is read through
7
+ * the runtime env gateway.
8
+ */
9
+ export declare const loggingOtelPlugin: import("@vibesdotdev/kernel").RuntimePlugin;
10
+ export default loggingOtelPlugin;
11
+ //# sourceMappingURL=logging-otel.plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging-otel.plugin.d.ts","sourceRoot":"","sources":["../../src/otel/logging-otel.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,eAAO,MAAM,iBAAiB,6CAqB5B,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Logging OpenTelemetry Plugin
3
+ *
4
+ * Registers the OpenTelemetry log sink with the runtime.
5
+ * Server/cloud environments only. OTEL configuration (OTEL_SERVICE_NAME,
6
+ * OTEL_EXPORTER_OTLP_LOGS_ENDPOINT, OTEL_EXPORTER_OTLP_ENDPOINT) is read through
7
+ * the runtime env gateway.
8
+ */
9
+ import { createRuntimePlugin } from '@vibesdotdev/kernel';
10
+ // Descriptors
11
+ import otelSinkDescriptor from "./sinks/otel/otel.descriptor.js";
12
+ export const loggingOtelPlugin = createRuntimePlugin({
13
+ id: '@vibesdotdev/logging/otel',
14
+ name: 'Logging OpenTelemetry',
15
+ description: 'OpenTelemetry log sink that exports structured logs via OTLP to a compatible collector.',
16
+ dependencies: ['logging'],
17
+ descriptors: [otelSinkDescriptor],
18
+ onRegister: async (runtime) => {
19
+ // Register loader for OTEL sink implementation. The sink exports to a
20
+ // collector from cloud hosts only, matching the descriptor's hardware.
21
+ runtime.registerLoader('logging/sink', otelSinkDescriptor.id, async () => {
22
+ return { impl: (await import("./sinks/otel/otel.impl.js")).default };
23
+ }, { constraint: { hardware: ['cloud'] } });
24
+ }
25
+ });
26
+ export default loggingOtelPlugin;
27
+ //# sourceMappingURL=logging-otel.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logging-otel.plugin.js","sourceRoot":"","sources":["../../src/otel/logging-otel.plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,cAAc;AACd,OAAO,kBAAkB,MAAM,iCAAiC,CAAC;AAEjE,MAAM,CAAC,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;IACpD,EAAE,EAAE,2BAA2B;IAC/B,IAAI,EAAE,uBAAuB;IAC7B,WAAW,EACV,yFAAyF;IAC1F,YAAY,EAAE,CAAC,SAAS,CAAC;IAEzB,WAAW,EAAE,CAAC,kBAAkB,CAAC;IAEjC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;QAC7B,sEAAsE;QACtE,uEAAuE;QACvE,OAAO,CAAC,cAAc,CACrB,cAAc,EACd,kBAAkB,CAAC,EAAE,EACrB,KAAK,IAAI,EAAE;YACV,OAAO,EAAE,IAAI,EAAE,CAAC,MAAM,MAAM,CAAC,2BAA2B,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QACtE,CAAC,EACD,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,EAAE,CACvC,CAAC;IACH,CAAC;CACD,CAAC,CAAC;AAEH,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * OpenTelemetry Sink Descriptor
3
+ *
4
+ * Exports logs to OpenTelemetry collector.
5
+ * Server/cloud only.
6
+ */
7
+ import type { SinkDescriptor } from '@vibesdotdev/logging/schemas/sink';
8
+ export declare const otelSinkDescriptor: SinkDescriptor;
9
+ export default otelSinkDescriptor;
10
+ //# sourceMappingURL=otel.descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otel.descriptor.d.ts","sourceRoot":"","sources":["../../../../src/otel/sinks/otel/otel.descriptor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAExE,eAAO,MAAM,kBAAkB,EAAE,cAchC,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * OpenTelemetry Sink Descriptor
3
+ *
4
+ * Exports logs to OpenTelemetry collector.
5
+ * Server/cloud only.
6
+ */
7
+ export const otelSinkDescriptor = {
8
+ kind: 'logging/sink',
9
+ id: 'otel',
10
+ name: 'OpenTelemetry Sink',
11
+ description: 'Exports logs to OpenTelemetry collector via OTLP',
12
+ tags: ['production', 'observability', 'cloud'],
13
+ hardware: ['cloud'],
14
+ async: true,
15
+ batching: {
16
+ enabled: true,
17
+ maxSize: 100,
18
+ maxWait: 5000
19
+ },
20
+ formats: ['jsonl']
21
+ };
22
+ export default otelSinkDescriptor;
23
+ //# sourceMappingURL=otel.descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otel.descriptor.js","sourceRoot":"","sources":["../../../../src/otel/sinks/otel/otel.descriptor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,CAAC,MAAM,kBAAkB,GAAmB;IACjD,IAAI,EAAE,cAAc;IACpB,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,oBAAoB;IAC1B,WAAW,EAAE,kDAAkD;IAC/D,IAAI,EAAE,CAAC,YAAY,EAAE,eAAe,EAAE,OAAO,CAAC;IAC9C,QAAQ,EAAE,CAAC,OAAO,CAAC;IACnB,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE;QACT,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,GAAG;QACZ,OAAO,EAAE,IAAI;KACb;IACD,OAAO,EAAE,CAAC,OAAO,CAAC;CAClB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * OpenTelemetry Sink Implementation (cloud hosts; the plugin constrains the loader)
3
+ *
4
+ * Direct OTLP SDK integration for log export.
5
+ * NOTE: @opentelemetry packages are hard dependencies, loaded lazily by
6
+ * dynamic import. This module throws if they're missing when the sink is
7
+ * instantiated.
8
+ */
9
+ import { type RuntimeRef } from '@vibesdotdev/kernel';
10
+ import type { CredentialReference } from '@vibesdotdev/kernel/credentials';
11
+ import type { SinkImplementation, SinkContext } from '@vibesdotdev/logging/kinds/sink';
12
+ import { type SinkDescriptor } from '@vibesdotdev/logging/schemas/sink';
13
+ import type { RuntimeLogEntry } from '@vibesdotdev/logging/schemas/entry';
14
+ /**
15
+ * Sink configuration, read from the logging config manifest when the sink is
16
+ * constructed (after the host registered its runtime environment).
17
+ */
18
+ export declare function resolveOtelSinkConfig(runtime: RuntimeRef): Promise<{
19
+ serviceName: string;
20
+ serviceVersion: string;
21
+ endpoint: string;
22
+ /** The declared credential reference, when the composition declares one. */
23
+ headersCredential: CredentialReference | undefined;
24
+ }>;
25
+ /**
26
+ * OpenTelemetry sink - exports logs via OTLP.
27
+ */
28
+ export default class OtelSink implements SinkImplementation {
29
+ readonly id: string;
30
+ readonly descriptor: SinkDescriptor;
31
+ private readonly runtime;
32
+ private closing;
33
+ private closePromise;
34
+ private readonly ready;
35
+ constructor(descriptor: SinkDescriptor, context: SinkContext);
36
+ private boot;
37
+ emit(entry: RuntimeLogEntry): void | Promise<void>;
38
+ flush(): Promise<void>;
39
+ close(): Promise<void>;
40
+ /**
41
+ * Flatten context for OTEL attributes.
42
+ * OTEL attributes must be primitive values.
43
+ */
44
+ private flattenContext;
45
+ private flattenEntries;
46
+ }
47
+ //# sourceMappingURL=otel.impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otel.impl.d.ts","sourceRoot":"","sources":["../../../../src/otel/sinks/otel/otel.impl.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAS3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AACvF,OAAO,EAAwB,KAAK,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAC9F,OAAO,KAAK,EAAE,eAAe,EAAwB,MAAM,oCAAoC,CAAC;AAkEhG;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC;IACzE,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,4EAA4E;IAC5E,iBAAiB,EAAE,mBAAmB,GAAG,SAAS,CAAC;CACnD,CAAC,CAWD;AAmBD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,YAAW,kBAAkB;IAC1D,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,UAAU,EAAE,cAAc,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAGnB;gBACS,UAAU,EAAE,cAAc,EAAE,OAAO,EAAE,WAAW;YAW9C,IAAI;IAyBlB,IAAI,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAUtB;;;OAGG;IACH,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;CAqCtB"}
@@ -0,0 +1,202 @@
1
+ /**
2
+ * OpenTelemetry Sink Implementation (cloud hosts; the plugin constrains the loader)
3
+ *
4
+ * Direct OTLP SDK integration for log export.
5
+ * NOTE: @opentelemetry packages are hard dependencies, loaded lazily by
6
+ * dynamic import. This module throws if they're missing when the sink is
7
+ * instantiated.
8
+ */
9
+ import { CapabilityError } from '@vibesdotdev/kernel';
10
+ import * as z from 'zod/v4';
11
+ import { settle } from "../../../core/outcome.js";
12
+ import { trackLoggingResource, untrackLoggingResource } from "../../../core/output-resources.js";
13
+ import { PlainLogRecordSchema } from "../../../core/redact.js";
14
+ import { loadLoggingConfig } from "../../../config/load-config.js";
15
+ import { resolveOtelServiceName } from "../../../config/otel-service.js";
16
+ import { resolveOtelHeaders } from "../../../core/otlp-headers.js";
17
+ import { createRuntimeOtlpLogExporter } from "./otlp-log-exporter.js";
18
+ import { SinkDescriptorSchema } from '@vibesdotdev/logging/schemas/sink';
19
+ /** The resolver failure code Node and Bun attach to an unresolvable specifier. */
20
+ const ModuleResolutionFailureSchema = z.object({ code: z.string() });
21
+ async function loadOtelModules() {
22
+ try {
23
+ const [logs, sdkLogs, resources, semanticConventions, exporterBase, transformer] = await Promise.all([
24
+ import('@opentelemetry/api-logs'),
25
+ import('@opentelemetry/sdk-logs'),
26
+ import('@opentelemetry/resources'),
27
+ import('@opentelemetry/semantic-conventions'),
28
+ import('@opentelemetry/otlp-exporter-base'),
29
+ import('@opentelemetry/otlp-transformer')
30
+ ]);
31
+ return { modules: { logs, sdkLogs, resources, semanticConventions, exporterBase, transformer } };
32
+ }
33
+ catch (error) {
34
+ const resolution = ModuleResolutionFailureSchema.safeParse(error);
35
+ const code = resolution.success ? resolution.data.code : undefined;
36
+ const message = error instanceof Error ? error.message : String(error);
37
+ if (code === 'ERR_MODULE_NOT_FOUND' ||
38
+ code === 'MODULE_NOT_FOUND' ||
39
+ message.includes('Cannot find module') ||
40
+ message.includes('Cannot find package')) {
41
+ // Missing install: OpenTelemetry packages are hard dependencies, so
42
+ // absence is a broken install; the sink constructor throws with it.
43
+ return { modules: null, missing: error };
44
+ }
45
+ throw error;
46
+ }
47
+ }
48
+ const otelLoad = await loadOtelModules();
49
+ function requireOtelModules() {
50
+ if (!otelLoad.modules) {
51
+ throw new Error('OpenTelemetry dependencies not installed. Install: @opentelemetry/api-logs, @opentelemetry/sdk-logs, @opentelemetry/otlp-exporter-base, @opentelemetry/otlp-transformer, @opentelemetry/resources, @opentelemetry/semantic-conventions', { cause: otelLoad.missing });
52
+ }
53
+ return otelLoad.modules;
54
+ }
55
+ /**
56
+ * Sink configuration, read from the logging config manifest when the sink is
57
+ * constructed (after the host registered its runtime environment).
58
+ */
59
+ export async function resolveOtelSinkConfig(runtime) {
60
+ const settings = await loadLoggingConfig(runtime);
61
+ const envVersion = runtime.getEnv('npm_package_version')?.trim();
62
+ const envLogsEndpoint = runtime.getEnv('OTEL_EXPORTER_OTLP_LOGS_ENDPOINT')?.trim();
63
+ const envEndpoint = runtime.getEnv('OTEL_EXPORTER_OTLP_ENDPOINT')?.trim();
64
+ return {
65
+ serviceName: resolveOtelServiceName(runtime, settings.otelServiceName),
66
+ serviceVersion: envVersion ? envVersion : settings.otelServiceVersion,
67
+ endpoint: envLogsEndpoint ? envLogsEndpoint : envEndpoint ? envEndpoint : settings.otelLogsEndpoint,
68
+ headersCredential: settings.otelHeadersCredential
69
+ };
70
+ }
71
+ /** OTEL attribute scalars, including the non-finite numbers `z.number()` refuses. */
72
+ const AttributeScalarSchema = z.union([
73
+ z.string(),
74
+ z.boolean(),
75
+ z.number(),
76
+ z.nan(),
77
+ z.literal([Infinity, -Infinity])
78
+ ]);
79
+ /** Map log levels to OTEL severity */
80
+ const SEVERITY_MAP = {
81
+ debug: 1, // SeverityNumber.DEBUG
82
+ info: 9, // SeverityNumber.INFO
83
+ warn: 13, // SeverityNumber.WARN
84
+ error: 17 // SeverityNumber.ERROR
85
+ };
86
+ /**
87
+ * OpenTelemetry sink - exports logs via OTLP.
88
+ */
89
+ export default class OtelSink {
90
+ id;
91
+ descriptor;
92
+ runtime;
93
+ closing = false;
94
+ closePromise = null;
95
+ ready;
96
+ constructor(descriptor, context) {
97
+ const modules = requireOtelModules();
98
+ this.descriptor = SinkDescriptorSchema.parse(descriptor);
99
+ this.id = this.descriptor.id;
100
+ this.runtime = context.runtime;
101
+ this.ready = this.boot(modules, this.descriptor, this.runtime);
102
+ // A boot failure is retained for the first emit, flush or close to throw; observing it here keeps it from surfacing as an unhandled rejection.
103
+ void settle(this.ready);
104
+ trackLoggingResource(this.runtime, this);
105
+ }
106
+ async boot(modules, descriptor, runtime) {
107
+ const { sdkLogs, resources, semanticConventions } = modules;
108
+ const config = await resolveOtelSinkConfig(runtime);
109
+ const resource = resources.resourceFromAttributes({
110
+ [semanticConventions.ATTR_SERVICE_NAME]: config.serviceName,
111
+ [semanticConventions.ATTR_SERVICE_VERSION]: config.serviceVersion
112
+ });
113
+ // Headers are the declared credential's, resolved through the runtime; nothing ambient reaches the exporter.
114
+ const headers = config.headersCredential ? (await resolveOtelHeaders(runtime, config.headersCredential)).headers : undefined;
115
+ const exporter = createRuntimeOtlpLogExporter(modules, { runtime, url: config.endpoint, headers });
116
+ const batching = descriptor.batching;
117
+ const processor = batching?.enabled
118
+ ? new sdkLogs.BatchLogRecordProcessor(exporter, {
119
+ maxQueueSize: batching.maxSize * 10,
120
+ maxExportBatchSize: batching.maxSize,
121
+ scheduledDelayMillis: batching.maxWait
122
+ })
123
+ : new sdkLogs.SimpleLogRecordProcessor(exporter);
124
+ const provider = new sdkLogs.LoggerProvider({ resource, processors: [processor] });
125
+ return { provider, logger: provider.getLogger('vibes') };
126
+ }
127
+ emit(entry) {
128
+ if (this.closing || this.runtime.lifecycle.signal.aborted) {
129
+ return Promise.reject(new CapabilityError('The OpenTelemetry sink no longer accepts entries.', 'UNAVAILABLE', {
130
+ reason: this.closing ? 'sink-closed' : 'sink-runtime-disposed', details: { id: this.id },
131
+ cause: this.runtime.lifecycle.signal.reason
132
+ }));
133
+ }
134
+ return this.ready.then(({ logger }) => {
135
+ const { level, namespace, message, timestamp, context } = entry;
136
+ logger.emit({
137
+ severityNumber: SEVERITY_MAP[level],
138
+ severityText: level.toUpperCase(),
139
+ body: message,
140
+ timestamp: new Date(timestamp), // a Date is exact epoch time; the SDK reads a bare number below the process origin as an offset from it
141
+ attributes: {
142
+ 'log.namespace': namespace,
143
+ ...this.flattenContext(context)
144
+ }
145
+ });
146
+ });
147
+ }
148
+ async flush() {
149
+ const { provider } = await this.ready;
150
+ await provider.forceFlush();
151
+ }
152
+ close() {
153
+ if (this.closePromise)
154
+ return this.closePromise;
155
+ this.closing = true;
156
+ this.closePromise = this.ready.then(async ({ provider }) => {
157
+ await provider.shutdown();
158
+ untrackLoggingResource(this.runtime, this);
159
+ });
160
+ return this.closePromise;
161
+ }
162
+ /**
163
+ * Flatten context for OTEL attributes.
164
+ * OTEL attributes must be primitive values.
165
+ */
166
+ flattenContext(context, prefix = '') {
167
+ return this.flattenEntries(Object.entries(context), prefix);
168
+ }
169
+ flattenEntries(entries, prefix) {
170
+ const result = {};
171
+ for (const [key, value] of entries) {
172
+ // Skip standard fields already handled
173
+ if (['timestamp', 'level', 'namespace'].includes(key))
174
+ continue;
175
+ const attrKey = prefix ? `${prefix}.${key}` : key;
176
+ if (value === null || value === undefined)
177
+ continue;
178
+ const scalar = AttributeScalarSchema.safeParse(value);
179
+ if (scalar.success) {
180
+ result[attrKey] = scalar.data;
181
+ continue;
182
+ }
183
+ if (Array.isArray(value)) {
184
+ result[attrKey] = JSON.stringify(value);
185
+ continue;
186
+ }
187
+ // Nested records flatten under their key, including null-prototype records.
188
+ const nested = PlainLogRecordSchema.safeParse(value);
189
+ if (nested.success) {
190
+ Object.assign(result, this.flattenEntries(Object.entries(nested.data), attrKey));
191
+ continue;
192
+ }
193
+ if (value instanceof Object && !(value instanceof Function)) {
194
+ Object.assign(result, this.flattenEntries(Object.entries(value), attrKey));
195
+ continue;
196
+ }
197
+ result[attrKey] = String(value);
198
+ }
199
+ return result;
200
+ }
201
+ }
202
+ //# sourceMappingURL=otel.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otel.impl.js","sourceRoot":"","sources":["../../../../src/otel/sinks/otel/otel.impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * OTLP/HTTP log exporter with runtime-owned credentials.
3
+ *
4
+ * The SDK's convenience exporter merges ambient `OTEL_EXPORTER_OTLP_*` process
5
+ * variables (headers, certificates, endpoint) beneath whatever it is given, and
6
+ * no option turns that off. That merge lives only in its legacy-config
7
+ * converters, so this exporter composes the SDK's own lower-level pieces from
8
+ * explicit configuration: the JSON log serializer, the export delegate (bounded
9
+ * queue, flush, shutdown) and a transport of Logging's own. The transport
10
+ * sends exactly the headers the runtime's credential capability resolved, with
11
+ * the platform `fetch` under the runtime lifecycle's deadline. There is no
12
+ * retry: a collector failure is reported and the SDK's processor owns the batch.
13
+ * A success that rejected part of the batch (`partialSuccess`) is reported too,
14
+ * and every report removes the request's header values from what it carries.
15
+ */
16
+ import { type RuntimeRef } from '@vibesdotdev/kernel';
17
+ import type { OTLPExporterBase, ExportResponse, IExporterTransport } from '@opentelemetry/otlp-exporter-base';
18
+ import type { ReadableLogRecord } from '@opentelemetry/sdk-logs';
19
+ import type { OtlpExporterHeaders } from '../../../core/otlp-headers.ts';
20
+ /** The default deadline for one export request. */
21
+ export declare const OTLP_EXPORT_TIMEOUT_MS = 10000;
22
+ /** The SDK packages this exporter composes, loaded lazily by the sink. */
23
+ export interface OtlpExporterModules {
24
+ readonly exporterBase: typeof import('@opentelemetry/otlp-exporter-base');
25
+ readonly transformer: typeof import('@opentelemetry/otlp-transformer');
26
+ }
27
+ export interface OtlpLogExporterOptions {
28
+ /** The runtime whose lifecycle bounds each request and which receives failure diagnostics. */
29
+ readonly runtime: RuntimeRef;
30
+ /** The collector's OTLP/HTTP logs URL. */
31
+ readonly url: string;
32
+ /** Explicit headers, resolved through `runtime.resolveCredential`; none when undeclared. */
33
+ readonly headers?: OtlpExporterHeaders;
34
+ }
35
+ /** Sends serialized OTLP requests with `fetch` and exactly the headers it was given. */
36
+ export declare class RuntimeOtlpTransport implements IExporterTransport {
37
+ private readonly runtime;
38
+ private readonly url;
39
+ private readonly headers;
40
+ /** The header values this transport sends: every report removes them from what it carries. */
41
+ private readonly secrets;
42
+ /**
43
+ * The failure the SDK is handed for a request that did not complete: typed, its
44
+ * description scrubbed of the endpoint credentials and of every header value
45
+ * (a transport can echo a header it refused, value included). The raw failure
46
+ * is never handed on: the SDK's global error handler would print it.
47
+ */
48
+ private readonly requestFailure;
49
+ private closed;
50
+ constructor(options: OtlpLogExporterOptions);
51
+ send(data: Uint8Array, timeoutMillis: number): Promise<ExportResponse>;
52
+ shutdown(): void;
53
+ /**
54
+ * One request, its success body included, under one lifecycle deadline: a
55
+ * collector that answers its headers and then stalls the body fails at the
56
+ * deadline like one that never answers, and the request is aborted.
57
+ */
58
+ private post;
59
+ private readSuccessBody;
60
+ /**
61
+ * A partial rejection is a collector failure and is reported once, by count
62
+ * (the collector's message scrubbed and bounded). A body that cannot be read
63
+ * as an OTLP/JSON export response cannot confirm the batch was accepted, so
64
+ * that is reported too, by why, never by its text.
65
+ */
66
+ private reportSuccessBody;
67
+ /**
68
+ * The SDK's own callback is silent by default: the failure is reported through the runtime, endpoint credentials
69
+ * removed. A failed request's error is already {@link requestFailure}'s, scrubbed of the header values; a
70
+ * rejecting status and a closed transport carry none.
71
+ */
72
+ private report;
73
+ }
74
+ /** The log exporter: the SDK's export delegate over this module's transport, reading no ambient environment. */
75
+ export declare function createRuntimeOtlpLogExporter(modules: OtlpExporterModules, options: OtlpLogExporterOptions): OTLPExporterBase<ReadableLogRecord[]>;
76
+ //# sourceMappingURL=otlp-log-exporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otlp-log-exporter.d.ts","sourceRoot":"","sources":["../../../../src/otel/sinks/otel/otlp-log-exporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAC9G,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAIjE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAIzE,mDAAmD;AACnD,eAAO,MAAM,sBAAsB,QAAS,CAAC;AAK7C,0EAA0E;AAC1E,MAAM,WAAW,mBAAmB;IACnC,QAAQ,CAAC,YAAY,EAAE,cAAc,mCAAmC,CAAC,CAAC;IAC1E,QAAQ,CAAC,WAAW,EAAE,cAAc,iCAAiC,CAAC,CAAC;CACvE;AAED,MAAM,WAAW,sBAAsB;IACtC,8FAA8F;IAC9F,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;IAC7B,0CAA0C;IAC1C,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,4FAA4F;IAC5F,QAAQ,CAAC,OAAO,CAAC,EAAE,mBAAmB,CAAC;CACvC;AA4CD,wFAAwF;AACxF,qBAAa,oBAAqB,YAAW,kBAAkB;IAC9D,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAsB;IAC9C,8FAA8F;IAC9F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C;;;;;OAKG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6B;IAC5D,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,EAAE,sBAAsB;IAYrC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAQ5E,QAAQ,IAAI,IAAI;IAIhB;;;;OAIG;YACW,IAAI;IA8BlB,OAAO,CAAC,eAAe;IAWvB;;;;;OAKG;YACW,iBAAiB;IAa/B;;;;OAIG;YACW,MAAM;CAMpB;AAED,gHAAgH;AAChH,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,mBAAmB,EAAE,OAAO,EAAE,sBAAsB,GAAG,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAMjJ"}
@@ -0,0 +1,178 @@
1
+ /**
2
+ * OTLP/HTTP log exporter with runtime-owned credentials.
3
+ *
4
+ * The SDK's convenience exporter merges ambient `OTEL_EXPORTER_OTLP_*` process
5
+ * variables (headers, certificates, endpoint) beneath whatever it is given, and
6
+ * no option turns that off. That merge lives only in its legacy-config
7
+ * converters, so this exporter composes the SDK's own lower-level pieces from
8
+ * explicit configuration: the JSON log serializer, the export delegate (bounded
9
+ * queue, flush, shutdown) and a transport of Logging's own. The transport
10
+ * sends exactly the headers the runtime's credential capability resolved, with
11
+ * the platform `fetch` under the runtime lifecycle's deadline. There is no
12
+ * retry: a collector failure is reported and the SDK's processor owns the batch.
13
+ * A success that rejected part of the batch (`partialSuccess`) is reported too,
14
+ * and every report removes the request's header values from what it carries.
15
+ */
16
+ import { CapabilityError } from '@vibesdotdev/kernel';
17
+ import * as z from 'zod/v4';
18
+ import { createFallbackLogger } from "../../../contexts/fallback-logger.js";
19
+ import { RedactedEndpointSchema, createEndpointFailureSchema } from "../../../core/endpoint.js";
20
+ import { attempt, settle } from "../../../core/outcome.js";
21
+ import { OTLP_RESPONSE_BODY_LIMIT_BYTES, OtlpExportResponseSchema, readOtlpPartialRejection } from "../../../core/otlp-partial-success.js";
22
+ /** The default deadline for one export request. */
23
+ export const OTLP_EXPORT_TIMEOUT_MS = 10_000;
24
+ /** The collector statuses OTLP defines as retryable; the processor, not this transport, decides about a retry. */
25
+ const RETRYABLE_STATUSES = new Set([429, 502, 503, 504]);
26
+ /** Reads at most `limit` bytes of `response`'s body; past it the stream is cancelled and the body is not kept. */
27
+ async function readBoundedBody(response, limit) {
28
+ if (response.body === null)
29
+ return { exceeded: false, bytes: new Uint8Array() };
30
+ const reader = response.body.getReader();
31
+ const chunks = [];
32
+ let size = 0;
33
+ for (let chunk = await reader.read(); !chunk.done; chunk = await reader.read()) {
34
+ size += chunk.value.byteLength;
35
+ if (size > limit) {
36
+ await reader.cancel();
37
+ return { exceeded: true };
38
+ }
39
+ chunks.push(chunk.value);
40
+ }
41
+ const bytes = new Uint8Array(size);
42
+ let offset = 0;
43
+ for (const chunk of chunks) {
44
+ bytes.set(chunk, offset);
45
+ offset += chunk.byteLength;
46
+ }
47
+ return { exceeded: false, bytes };
48
+ }
49
+ const JsonTextSchema = z.string().transform((text, context) => {
50
+ const parsed = attempt(() => JSON.parse(text));
51
+ if (!parsed.failed)
52
+ return z.unknown().parse(parsed.value);
53
+ context.issues.push({ code: 'custom', message: 'not JSON', input: undefined });
54
+ return z.NEVER;
55
+ });
56
+ /** Sends serialized OTLP requests with `fetch` and exactly the headers it was given. */
57
+ export class RuntimeOtlpTransport {
58
+ runtime;
59
+ url;
60
+ headers;
61
+ /** The header values this transport sends: every report removes them from what it carries. */
62
+ secrets;
63
+ /**
64
+ * The failure the SDK is handed for a request that did not complete: typed, its
65
+ * description scrubbed of the endpoint credentials and of every header value
66
+ * (a transport can echo a header it refused, value included). The raw failure
67
+ * is never handed on: the SDK's global error handler would print it.
68
+ */
69
+ requestFailure;
70
+ closed = false;
71
+ constructor(options) {
72
+ this.runtime = options.runtime;
73
+ this.url = options.url;
74
+ this.headers = options.headers ?? {};
75
+ this.secrets = Object.values(this.headers);
76
+ const describe = createEndpointFailureSchema(this.url, this.secrets);
77
+ const endpoint = RedactedEndpointSchema.parse(this.url);
78
+ this.requestFailure = describe.transform((failure) => new CapabilityError(`The OTLP log export request failed: ${failure.name}: ${failure.message}`, 'UNAVAILABLE', {
79
+ reason: 'otlp-export-failed', retryable: false, details: { endpoint }
80
+ }));
81
+ }
82
+ async send(data, timeoutMillis) {
83
+ const response = this.closed
84
+ ? { status: 'failure', error: new CapabilityError('The OTLP log exporter is shut down.', 'UNAVAILABLE', { reason: 'otlp-exporter-closed' }) }
85
+ : await this.post(data, timeoutMillis);
86
+ if (response.status !== 'success')
87
+ await this.report(response);
88
+ return response;
89
+ }
90
+ shutdown() {
91
+ this.closed = true;
92
+ }
93
+ /**
94
+ * One request, its success body included, under one lifecycle deadline: a
95
+ * collector that answers its headers and then stalls the body fails at the
96
+ * deadline like one that never answers, and the request is aborted.
97
+ */
98
+ async post(data, timeoutMillis) {
99
+ const controller = new AbortController();
100
+ const exchange = settle((async () => {
101
+ const response = await fetch(this.url, {
102
+ method: 'POST', headers: { ...this.headers, 'Content-Type': 'application/json' }, body: data.slice(), signal: controller.signal
103
+ });
104
+ // The body is read here, bounded, and its partial success reported; the SDK is handed none, so its own
105
+ // diag-only handler never sees it and the rejection is reported exactly once.
106
+ return response.ok
107
+ ? { ok: true, body: await readBoundedBody(response, OTLP_RESPONSE_BODY_LIMIT_BYTES) }
108
+ : { ok: false, status: response.status };
109
+ })());
110
+ const waited = await settle(this.runtime.lifecycle.wait(() => exchange, { timeoutMs: timeoutMillis, reason: 'logging-otlp-export' }));
111
+ const answered = waited.failed ? waited : waited.value;
112
+ if (answered.failed) {
113
+ controller.abort(answered.cause);
114
+ return { status: 'failure', error: this.requestFailure.parse(answered.cause) };
115
+ }
116
+ const answer = answered.value;
117
+ if (answer.ok) {
118
+ await this.reportSuccessBody(this.readSuccessBody(answer.body));
119
+ return { status: 'success' };
120
+ }
121
+ const error = new CapabilityError('The OTLP collector rejected the log export.', 'UNAVAILABLE', {
122
+ reason: 'otlp-export-rejected', details: { status: answer.status, endpoint: RedactedEndpointSchema.parse(this.url) }
123
+ });
124
+ return RETRYABLE_STATUSES.has(answer.status) ? { status: 'retryable', error } : { status: 'failure', error };
125
+ }
126
+ readSuccessBody(body) {
127
+ if (body.exceeded)
128
+ return { kind: 'unreadable', why: 'too-large' };
129
+ if (body.bytes.byteLength === 0)
130
+ return { kind: 'accepted' };
131
+ const json = JsonTextSchema.safeParse(new TextDecoder().decode(body.bytes));
132
+ if (!json.success)
133
+ return { kind: 'unreadable', why: 'not-json' };
134
+ const response = OtlpExportResponseSchema.safeParse(json.data);
135
+ if (!response.success)
136
+ return { kind: 'unreadable', why: 'not-an-export-response' };
137
+ const rejection = readOtlpPartialRejection('logs', response.data, this.url, this.secrets);
138
+ return rejection ? { kind: 'rejected', rejection } : { kind: 'accepted' };
139
+ }
140
+ /**
141
+ * A partial rejection is a collector failure and is reported once, by count
142
+ * (the collector's message scrubbed and bounded). A body that cannot be read
143
+ * as an OTLP/JSON export response cannot confirm the batch was accepted, so
144
+ * that is reported too, by why, never by its text.
145
+ */
146
+ async reportSuccessBody(body) {
147
+ if (body.kind === 'accepted')
148
+ return;
149
+ const logger = await createFallbackLogger('logging:otel-sink', this.runtime);
150
+ const endpoint = RedactedEndpointSchema.parse(this.url);
151
+ if (body.kind === 'unreadable') {
152
+ logger.error('OTLP collector response could not be read', { endpoint, reason: 'otlp-response-unreadable', why: body.why });
153
+ return;
154
+ }
155
+ const report = { endpoint, reason: 'otlp-partial-rejection', signal: body.rejection.signal, rejected: body.rejection.rejected };
156
+ if (body.rejection.errorMessage !== undefined)
157
+ report.errorMessage = body.rejection.errorMessage;
158
+ logger.error('OTLP collector rejected log records', report);
159
+ }
160
+ /**
161
+ * The SDK's own callback is silent by default: the failure is reported through the runtime, endpoint credentials
162
+ * removed. A failed request's error is already {@link requestFailure}'s, scrubbed of the header values; a
163
+ * rejecting status and a closed transport carry none.
164
+ */
165
+ async report(response) {
166
+ const logger = await createFallbackLogger('logging:otel-sink', this.runtime);
167
+ logger.error('OTLP log export failed', {
168
+ endpoint: RedactedEndpointSchema.parse(this.url), error: createEndpointFailureSchema(this.url).parse(response.error)
169
+ });
170
+ }
171
+ }
172
+ /** The log exporter: the SDK's export delegate over this module's transport, reading no ambient environment. */
173
+ export function createRuntimeOtlpLogExporter(modules, options) {
174
+ const { exporterBase, transformer } = modules;
175
+ const shared = exporterBase.mergeOtlpSharedConfigurationWithDefaults({ timeoutMillis: OTLP_EXPORT_TIMEOUT_MS }, {}, exporterBase.getSharedConfigurationDefaults());
176
+ return new exporterBase.OTLPExporterBase(exporterBase.createOtlpNetworkExportDelegate(shared, transformer.JsonLogsSerializer, new RuntimeOtlpTransport(options)));
177
+ }
178
+ //# sourceMappingURL=otlp-log-exporter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otlp-log-exporter.js","sourceRoot":"","sources":["../../../../src/otel/sinks/otel/otlp-log-exporter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AACH,OAAO,EAAE,eAAe,EAAmB,MAAM,qBAAqB,CAAC;AACvE,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAG5B,OAAO,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AAC5E,OAAO,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AAChG,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,8BAA8B,EAAE,wBAAwB,EAAE,wBAAwB,EAA6B,MAAM,uCAAuC,CAAC;AAGtK,mDAAmD;AACnD,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAE7C,kHAAkH;AAClH,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;AAoB9E,kHAAkH;AAClH,KAAK,UAAU,eAAe,CAAC,QAAkB,EAAE,KAAa;IAC/D,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,UAAU,EAAE,EAAE,CAAC;IAChF,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;IACzC,MAAM,MAAM,GAAiB,EAAE,CAAC;IAChC,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC;QAChF,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC;QAC/B,IAAI,IAAI,GAAG,KAAK,EAAE,CAAC;YAClB,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;YACtB,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC3B,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;IACD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC;IACnC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC5B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC;IAC5B,CAAC;IACD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;AACnC,CAAC;AAWD,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE;IAC7D,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/C,IAAI,CAAC,MAAM,CAAC,MAAM;QAAE,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC3D,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAC/E,OAAO,CAAC,CAAC,KAAK,CAAC;AAChB,CAAC,CAAC,CAAC;AAEH,wFAAwF;AACxF,MAAM,OAAO,oBAAoB;IACf,OAAO,CAAa;IACpB,GAAG,CAAS;IACZ,OAAO,CAAsB;IAC9C,8FAA8F;IAC7E,OAAO,CAAoB;IAC5C;;;;;OAKG;IACc,cAAc,CAA6B;IACpD,MAAM,GAAG,KAAK,CAAC;IAEvB,YAAY,OAA+B;QAC1C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;QACrC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,2BAA2B,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,CAAC,cAAc,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,eAAe,CAAC,uCAAuC,OAAO,CAAC,IAAI,KAAK,OAAO,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE;YACnK,MAAM,EAAE,oBAAoB,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE;SACrE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAgB,EAAE,aAAqB;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM;YAC3B,CAAC,CAAC,EAAE,MAAM,EAAE,SAAkB,EAAE,KAAK,EAAE,IAAI,eAAe,CAAC,qCAAqC,EAAE,aAAa,EAAE,EAAE,MAAM,EAAE,sBAAsB,EAAE,CAAC,EAAE;YACtJ,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;QACxC,IAAI,QAAQ,CAAC,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC/D,OAAO,QAAQ,CAAC;IACjB,CAAC;IAED,QAAQ;QACP,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,IAAI,CAAC,IAAgB,EAAE,aAAqB;QACzD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAG,MAAM,CAAC,CAAC,KAAK,IAA8B,EAAE;YAC7D,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE;gBACtC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,UAAU,CAAC,MAAM;aAC/H,CAAC,CAAC;YACH,uGAAuG;YACvG,8EAA8E;YAC9E,OAAO,QAAQ,CAAC,EAAE;gBACjB,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,eAAe,CAAC,QAAQ,EAAE,8BAA8B,CAAC,EAAE;gBACrF,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC3C,CAAC,CAAC,EAAE,CAAC,CAAC;QACN,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC;QACtI,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QACvD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACrB,UAAU,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YACjC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAChF,CAAC;QACD,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC;QAC9B,IAAI,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;YAChE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;QAC9B,CAAC;QACD,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,6CAA6C,EAAE,aAAa,EAAE;YAC/F,MAAM,EAAE,sBAAsB,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;SACpH,CAAC,CAAC;QACH,OAAO,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC9G,CAAC;IAGO,eAAe,CAAC,IAAiB;QACxC,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC;QACnE,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,KAAK,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;QAC7D,MAAM,IAAI,GAAG,cAAc,CAAC,SAAS,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QAC5E,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,UAAU,EAAE,CAAC;QAClE,MAAM,QAAQ,GAAG,wBAAwB,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/D,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,EAAE,wBAAwB,EAAE,CAAC;QACpF,MAAM,SAAS,GAAG,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1F,OAAO,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;IAC3E,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,iBAAiB,CAAC,IAAiB;QAChD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU;YAAE,OAAO;QACrC,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7E,MAAM,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAChC,MAAM,CAAC,KAAK,CAAC,2CAA2C,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,0BAA0B,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3H,OAAO;QACR,CAAC;QACD,MAAM,MAAM,GAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,wBAAwB,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;QAC5I,IAAI,IAAI,CAAC,SAAS,CAAC,YAAY,KAAK,SAAS;YAAE,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;QACjG,MAAM,CAAC,KAAK,CAAC,qCAAqC,EAAE,MAAM,CAAC,CAAC;IAC7D,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,MAAM,CAAC,QAAwD;QAC5E,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,mBAAmB,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7E,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE;YACtC,QAAQ,EAAE,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;SACpH,CAAC,CAAC;IACJ,CAAC;CACD;AAED,gHAAgH;AAChH,MAAM,UAAU,4BAA4B,CAAC,OAA4B,EAAE,OAA+B;IACzG,MAAM,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC;IAC9C,MAAM,MAAM,GAAG,YAAY,CAAC,wCAAwC,CAAC,EAAE,aAAa,EAAE,sBAAsB,EAAE,EAAE,EAAE,EAAE,YAAY,CAAC,8BAA8B,EAAE,CAAC,CAAC;IACnK,OAAO,IAAI,YAAY,CAAC,gBAAgB,CACvC,YAAY,CAAC,+BAA+B,CAAC,MAAM,EAAE,WAAW,CAAC,kBAAkB,EAAE,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC,CACvH,CAAC;AACH,CAAC"}