@buenojs/bueno 0.8.8 → 0.8.10

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 (400) hide show
  1. package/README.md +1 -1
  2. package/dist/index.js +15 -12
  3. package/dist/modules/index.js +2 -2
  4. package/dist/template/index.js +13 -10
  5. package/dist/templates/index.js +13 -10
  6. package/llms.txt +1 -1
  7. package/package.json +2 -2
  8. package/src/cli/commands/new.ts +1 -1
  9. package/src/cli/templates/frontend/react.ts +1 -1
  10. package/src/cli/templates/frontend/solid.ts +1 -1
  11. package/src/cli/templates/frontend/svelte.ts +1 -1
  12. package/src/cli/templates/frontend/vue.ts +1 -1
  13. package/src/cli/templates/project/default.ts +1 -1
  14. package/src/cli/templates/project/website.ts +3 -3
  15. package/src/templates/loader.ts +1 -1
  16. package/src/templates/renderers/simple.ts +13 -10
  17. package/src/validation/index.ts +20 -21
  18. package/tsconfig.json +1 -1
  19. package/dist/cache/index.d.ts +0 -187
  20. package/dist/cache/index.d.ts.map +0 -1
  21. package/dist/cli/bin.d.ts +0 -8
  22. package/dist/cli/bin.d.ts.map +0 -1
  23. package/dist/cli/commands/add-frontend.d.ts +0 -7
  24. package/dist/cli/commands/add-frontend.d.ts.map +0 -1
  25. package/dist/cli/commands/build.d.ts +0 -7
  26. package/dist/cli/commands/build.d.ts.map +0 -1
  27. package/dist/cli/commands/dev.d.ts +0 -7
  28. package/dist/cli/commands/dev.d.ts.map +0 -1
  29. package/dist/cli/commands/generate.d.ts +0 -7
  30. package/dist/cli/commands/generate.d.ts.map +0 -1
  31. package/dist/cli/commands/help.d.ts +0 -7
  32. package/dist/cli/commands/help.d.ts.map +0 -1
  33. package/dist/cli/commands/index.d.ts +0 -59
  34. package/dist/cli/commands/index.d.ts.map +0 -1
  35. package/dist/cli/commands/migration.d.ts +0 -7
  36. package/dist/cli/commands/migration.d.ts.map +0 -1
  37. package/dist/cli/commands/new.d.ts +0 -7
  38. package/dist/cli/commands/new.d.ts.map +0 -1
  39. package/dist/cli/commands/start.d.ts +0 -7
  40. package/dist/cli/commands/start.d.ts.map +0 -1
  41. package/dist/cli/core/args.d.ts +0 -61
  42. package/dist/cli/core/args.d.ts.map +0 -1
  43. package/dist/cli/core/console.d.ts +0 -135
  44. package/dist/cli/core/console.d.ts.map +0 -1
  45. package/dist/cli/core/index.d.ts +0 -10
  46. package/dist/cli/core/index.d.ts.map +0 -1
  47. package/dist/cli/core/prompt.d.ts +0 -63
  48. package/dist/cli/core/prompt.d.ts.map +0 -1
  49. package/dist/cli/core/spinner.d.ts +0 -111
  50. package/dist/cli/core/spinner.d.ts.map +0 -1
  51. package/dist/cli/index.d.ts +0 -47
  52. package/dist/cli/index.d.ts.map +0 -1
  53. package/dist/cli/templates/database/index.d.ts +0 -24
  54. package/dist/cli/templates/database/index.d.ts.map +0 -1
  55. package/dist/cli/templates/database/mysql.d.ts +0 -6
  56. package/dist/cli/templates/database/mysql.d.ts.map +0 -1
  57. package/dist/cli/templates/database/none.d.ts +0 -8
  58. package/dist/cli/templates/database/none.d.ts.map +0 -1
  59. package/dist/cli/templates/database/postgresql.d.ts +0 -6
  60. package/dist/cli/templates/database/postgresql.d.ts.map +0 -1
  61. package/dist/cli/templates/database/sqlite.d.ts +0 -6
  62. package/dist/cli/templates/database/sqlite.d.ts.map +0 -1
  63. package/dist/cli/templates/deploy.d.ts +0 -41
  64. package/dist/cli/templates/deploy.d.ts.map +0 -1
  65. package/dist/cli/templates/docker.d.ts +0 -30
  66. package/dist/cli/templates/docker.d.ts.map +0 -1
  67. package/dist/cli/templates/frontend/index.d.ts +0 -25
  68. package/dist/cli/templates/frontend/index.d.ts.map +0 -1
  69. package/dist/cli/templates/frontend/none.d.ts +0 -8
  70. package/dist/cli/templates/frontend/none.d.ts.map +0 -1
  71. package/dist/cli/templates/frontend/react.d.ts +0 -6
  72. package/dist/cli/templates/frontend/react.d.ts.map +0 -1
  73. package/dist/cli/templates/frontend/solid.d.ts +0 -6
  74. package/dist/cli/templates/frontend/solid.d.ts.map +0 -1
  75. package/dist/cli/templates/frontend/svelte.d.ts +0 -6
  76. package/dist/cli/templates/frontend/svelte.d.ts.map +0 -1
  77. package/dist/cli/templates/frontend/vue.d.ts +0 -6
  78. package/dist/cli/templates/frontend/vue.d.ts.map +0 -1
  79. package/dist/cli/templates/generators/index.d.ts +0 -29
  80. package/dist/cli/templates/generators/index.d.ts.map +0 -1
  81. package/dist/cli/templates/generators/types.d.ts +0 -32
  82. package/dist/cli/templates/generators/types.d.ts.map +0 -1
  83. package/dist/cli/templates/index.d.ts +0 -12
  84. package/dist/cli/templates/index.d.ts.map +0 -1
  85. package/dist/cli/templates/project/api.d.ts +0 -6
  86. package/dist/cli/templates/project/api.d.ts.map +0 -1
  87. package/dist/cli/templates/project/default.d.ts +0 -6
  88. package/dist/cli/templates/project/default.d.ts.map +0 -1
  89. package/dist/cli/templates/project/fullstack.d.ts +0 -14
  90. package/dist/cli/templates/project/fullstack.d.ts.map +0 -1
  91. package/dist/cli/templates/project/index.d.ts +0 -26
  92. package/dist/cli/templates/project/index.d.ts.map +0 -1
  93. package/dist/cli/templates/project/minimal.d.ts +0 -6
  94. package/dist/cli/templates/project/minimal.d.ts.map +0 -1
  95. package/dist/cli/templates/project/types.d.ts +0 -80
  96. package/dist/cli/templates/project/types.d.ts.map +0 -1
  97. package/dist/cli/templates/project/website.d.ts +0 -8
  98. package/dist/cli/templates/project/website.d.ts.map +0 -1
  99. package/dist/cli/utils/fs.d.ts +0 -137
  100. package/dist/cli/utils/fs.d.ts.map +0 -1
  101. package/dist/cli/utils/index.d.ts +0 -9
  102. package/dist/cli/utils/index.d.ts.map +0 -1
  103. package/dist/cli/utils/strings.d.ts +0 -86
  104. package/dist/cli/utils/strings.d.ts.map +0 -1
  105. package/dist/cli/utils/version.d.ts +0 -15
  106. package/dist/cli/utils/version.d.ts.map +0 -1
  107. package/dist/config/env-validation.d.ts +0 -49
  108. package/dist/config/env-validation.d.ts.map +0 -1
  109. package/dist/config/env.d.ts +0 -167
  110. package/dist/config/env.d.ts.map +0 -1
  111. package/dist/config/index.d.ts +0 -168
  112. package/dist/config/index.d.ts.map +0 -1
  113. package/dist/config/loader.d.ts +0 -81
  114. package/dist/config/loader.d.ts.map +0 -1
  115. package/dist/config/merge.d.ts +0 -66
  116. package/dist/config/merge.d.ts.map +0 -1
  117. package/dist/config/types.d.ts +0 -322
  118. package/dist/config/types.d.ts.map +0 -1
  119. package/dist/config/validation.d.ts +0 -100
  120. package/dist/config/validation.d.ts.map +0 -1
  121. package/dist/container/forward-ref.d.ts +0 -116
  122. package/dist/container/forward-ref.d.ts.map +0 -1
  123. package/dist/container/index.d.ts +0 -95
  124. package/dist/container/index.d.ts.map +0 -1
  125. package/dist/context/index.d.ts +0 -143
  126. package/dist/context/index.d.ts.map +0 -1
  127. package/dist/database/index.d.ts +0 -219
  128. package/dist/database/index.d.ts.map +0 -1
  129. package/dist/database/migrations/index.d.ts +0 -146
  130. package/dist/database/migrations/index.d.ts.map +0 -1
  131. package/dist/database/orm/builder.d.ts +0 -122
  132. package/dist/database/orm/builder.d.ts.map +0 -1
  133. package/dist/database/orm/casts/index.d.ts +0 -16
  134. package/dist/database/orm/casts/index.d.ts.map +0 -1
  135. package/dist/database/orm/casts/types.d.ts +0 -16
  136. package/dist/database/orm/casts/types.d.ts.map +0 -1
  137. package/dist/database/orm/compiler.d.ts +0 -90
  138. package/dist/database/orm/compiler.d.ts.map +0 -1
  139. package/dist/database/orm/hooks/index.d.ts +0 -53
  140. package/dist/database/orm/hooks/index.d.ts.map +0 -1
  141. package/dist/database/orm/index.d.ts +0 -21
  142. package/dist/database/orm/index.d.ts.map +0 -1
  143. package/dist/database/orm/model-registry.d.ts +0 -33
  144. package/dist/database/orm/model-registry.d.ts.map +0 -1
  145. package/dist/database/orm/model.d.ts +0 -245
  146. package/dist/database/orm/model.d.ts.map +0 -1
  147. package/dist/database/orm/relationships/base.d.ts +0 -69
  148. package/dist/database/orm/relationships/base.d.ts.map +0 -1
  149. package/dist/database/orm/relationships/belongs-to-many.d.ts +0 -47
  150. package/dist/database/orm/relationships/belongs-to-many.d.ts.map +0 -1
  151. package/dist/database/orm/relationships/belongs-to.d.ts +0 -17
  152. package/dist/database/orm/relationships/belongs-to.d.ts.map +0 -1
  153. package/dist/database/orm/relationships/has-many.d.ts +0 -14
  154. package/dist/database/orm/relationships/has-many.d.ts.map +0 -1
  155. package/dist/database/orm/relationships/has-one.d.ts +0 -14
  156. package/dist/database/orm/relationships/has-one.d.ts.map +0 -1
  157. package/dist/database/orm/relationships/index.d.ts +0 -10
  158. package/dist/database/orm/relationships/index.d.ts.map +0 -1
  159. package/dist/database/orm/scopes/index.d.ts +0 -36
  160. package/dist/database/orm/scopes/index.d.ts.map +0 -1
  161. package/dist/database/schema/index.d.ts +0 -155
  162. package/dist/database/schema/index.d.ts.map +0 -1
  163. package/dist/events/__tests__/event-system.test.d.ts +0 -2
  164. package/dist/events/__tests__/event-system.test.d.ts.map +0 -1
  165. package/dist/events/config.d.ts +0 -16
  166. package/dist/events/config.d.ts.map +0 -1
  167. package/dist/events/example-usage.d.ts +0 -12
  168. package/dist/events/example-usage.d.ts.map +0 -1
  169. package/dist/events/index.d.ts +0 -27
  170. package/dist/events/index.d.ts.map +0 -1
  171. package/dist/events/manager.d.ts +0 -33
  172. package/dist/events/manager.d.ts.map +0 -1
  173. package/dist/events/registry.d.ts +0 -31
  174. package/dist/events/registry.d.ts.map +0 -1
  175. package/dist/events/types.d.ts +0 -105
  176. package/dist/events/types.d.ts.map +0 -1
  177. package/dist/frontend/api-routes.d.ts +0 -189
  178. package/dist/frontend/api-routes.d.ts.map +0 -1
  179. package/dist/frontend/bundler.d.ts +0 -99
  180. package/dist/frontend/bundler.d.ts.map +0 -1
  181. package/dist/frontend/console-client.d.ts +0 -11
  182. package/dist/frontend/console-client.d.ts.map +0 -1
  183. package/dist/frontend/console-stream.d.ts +0 -138
  184. package/dist/frontend/console-stream.d.ts.map +0 -1
  185. package/dist/frontend/dev-server.d.ts +0 -174
  186. package/dist/frontend/dev-server.d.ts.map +0 -1
  187. package/dist/frontend/file-router.d.ts +0 -170
  188. package/dist/frontend/file-router.d.ts.map +0 -1
  189. package/dist/frontend/frameworks/index.d.ts +0 -41
  190. package/dist/frontend/frameworks/index.d.ts.map +0 -1
  191. package/dist/frontend/frameworks/react.d.ts +0 -32
  192. package/dist/frontend/frameworks/react.d.ts.map +0 -1
  193. package/dist/frontend/frameworks/solid.d.ts +0 -42
  194. package/dist/frontend/frameworks/solid.d.ts.map +0 -1
  195. package/dist/frontend/frameworks/svelte.d.ts +0 -57
  196. package/dist/frontend/frameworks/svelte.d.ts.map +0 -1
  197. package/dist/frontend/frameworks/vue.d.ts +0 -36
  198. package/dist/frontend/frameworks/vue.d.ts.map +0 -1
  199. package/dist/frontend/hmr-client.d.ts +0 -22
  200. package/dist/frontend/hmr-client.d.ts.map +0 -1
  201. package/dist/frontend/hmr.d.ts +0 -185
  202. package/dist/frontend/hmr.d.ts.map +0 -1
  203. package/dist/frontend/index.d.ts +0 -34
  204. package/dist/frontend/index.d.ts.map +0 -1
  205. package/dist/frontend/islands.d.ts +0 -135
  206. package/dist/frontend/islands.d.ts.map +0 -1
  207. package/dist/frontend/isr.d.ts +0 -143
  208. package/dist/frontend/isr.d.ts.map +0 -1
  209. package/dist/frontend/layout.d.ts +0 -140
  210. package/dist/frontend/layout.d.ts.map +0 -1
  211. package/dist/frontend/ssr/react.d.ts +0 -118
  212. package/dist/frontend/ssr/react.d.ts.map +0 -1
  213. package/dist/frontend/ssr/solid.d.ts +0 -141
  214. package/dist/frontend/ssr/solid.d.ts.map +0 -1
  215. package/dist/frontend/ssr/svelte.d.ts +0 -158
  216. package/dist/frontend/ssr/svelte.d.ts.map +0 -1
  217. package/dist/frontend/ssr/vue.d.ts +0 -161
  218. package/dist/frontend/ssr/vue.d.ts.map +0 -1
  219. package/dist/frontend/ssr.d.ts +0 -147
  220. package/dist/frontend/ssr.d.ts.map +0 -1
  221. package/dist/frontend/types.d.ts +0 -1902
  222. package/dist/frontend/types.d.ts.map +0 -1
  223. package/dist/graphql/built-in-engine.d.ts +0 -36
  224. package/dist/graphql/built-in-engine.d.ts.map +0 -1
  225. package/dist/graphql/context-builder.d.ts +0 -44
  226. package/dist/graphql/context-builder.d.ts.map +0 -1
  227. package/dist/graphql/decorators.d.ts +0 -162
  228. package/dist/graphql/decorators.d.ts.map +0 -1
  229. package/dist/graphql/execution-pipeline.d.ts +0 -67
  230. package/dist/graphql/execution-pipeline.d.ts.map +0 -1
  231. package/dist/graphql/graphql-module.d.ts +0 -70
  232. package/dist/graphql/graphql-module.d.ts.map +0 -1
  233. package/dist/graphql/index.d.ts +0 -48
  234. package/dist/graphql/index.d.ts.map +0 -1
  235. package/dist/graphql/metadata.d.ts +0 -37
  236. package/dist/graphql/metadata.d.ts.map +0 -1
  237. package/dist/graphql/schema-builder.d.ts +0 -34
  238. package/dist/graphql/schema-builder.d.ts.map +0 -1
  239. package/dist/graphql/subscription-handler.d.ts +0 -47
  240. package/dist/graphql/subscription-handler.d.ts.map +0 -1
  241. package/dist/graphql/types.d.ts +0 -252
  242. package/dist/graphql/types.d.ts.map +0 -1
  243. package/dist/health/index.d.ts +0 -176
  244. package/dist/health/index.d.ts.map +0 -1
  245. package/dist/i18n/engine.d.ts +0 -105
  246. package/dist/i18n/engine.d.ts.map +0 -1
  247. package/dist/i18n/index.d.ts +0 -13
  248. package/dist/i18n/index.d.ts.map +0 -1
  249. package/dist/i18n/loader.d.ts +0 -79
  250. package/dist/i18n/loader.d.ts.map +0 -1
  251. package/dist/i18n/middleware.d.ts +0 -96
  252. package/dist/i18n/middleware.d.ts.map +0 -1
  253. package/dist/i18n/negotiator.d.ts +0 -84
  254. package/dist/i18n/negotiator.d.ts.map +0 -1
  255. package/dist/i18n/types.d.ts +0 -129
  256. package/dist/i18n/types.d.ts.map +0 -1
  257. package/dist/index.d.ts +0 -48
  258. package/dist/index.d.ts.map +0 -1
  259. package/dist/jobs/drivers/memory.d.ts +0 -38
  260. package/dist/jobs/drivers/memory.d.ts.map +0 -1
  261. package/dist/jobs/drivers/redis.d.ts +0 -34
  262. package/dist/jobs/drivers/redis.d.ts.map +0 -1
  263. package/dist/jobs/index.d.ts +0 -12
  264. package/dist/jobs/index.d.ts.map +0 -1
  265. package/dist/jobs/queue.d.ts +0 -93
  266. package/dist/jobs/queue.d.ts.map +0 -1
  267. package/dist/jobs/types.d.ts +0 -193
  268. package/dist/jobs/types.d.ts.map +0 -1
  269. package/dist/jobs/worker.d.ts +0 -91
  270. package/dist/jobs/worker.d.ts.map +0 -1
  271. package/dist/lock/index.d.ts +0 -141
  272. package/dist/lock/index.d.ts.map +0 -1
  273. package/dist/logger/index.d.ts +0 -156
  274. package/dist/logger/index.d.ts.map +0 -1
  275. package/dist/logger/transports/index.d.ts +0 -371
  276. package/dist/logger/transports/index.d.ts.map +0 -1
  277. package/dist/metrics/index.d.ts +0 -163
  278. package/dist/metrics/index.d.ts.map +0 -1
  279. package/dist/middleware/built-in.d.ts +0 -50
  280. package/dist/middleware/built-in.d.ts.map +0 -1
  281. package/dist/middleware/index.d.ts +0 -40
  282. package/dist/middleware/index.d.ts.map +0 -1
  283. package/dist/migrations/index.d.ts +0 -10
  284. package/dist/migrations/index.d.ts.map +0 -1
  285. package/dist/modules/filters.d.ts +0 -150
  286. package/dist/modules/filters.d.ts.map +0 -1
  287. package/dist/modules/guards.d.ts +0 -188
  288. package/dist/modules/guards.d.ts.map +0 -1
  289. package/dist/modules/index.d.ts +0 -266
  290. package/dist/modules/index.d.ts.map +0 -1
  291. package/dist/modules/interceptors.d.ts +0 -242
  292. package/dist/modules/interceptors.d.ts.map +0 -1
  293. package/dist/modules/lazy.d.ts +0 -187
  294. package/dist/modules/lazy.d.ts.map +0 -1
  295. package/dist/modules/lifecycle.d.ts +0 -221
  296. package/dist/modules/lifecycle.d.ts.map +0 -1
  297. package/dist/modules/metadata.d.ts +0 -32
  298. package/dist/modules/metadata.d.ts.map +0 -1
  299. package/dist/modules/pipes.d.ts +0 -287
  300. package/dist/modules/pipes.d.ts.map +0 -1
  301. package/dist/notification/channels/base.d.ts +0 -32
  302. package/dist/notification/channels/base.d.ts.map +0 -1
  303. package/dist/notification/channels/email.d.ts +0 -37
  304. package/dist/notification/channels/email.d.ts.map +0 -1
  305. package/dist/notification/channels/push.d.ts +0 -37
  306. package/dist/notification/channels/push.d.ts.map +0 -1
  307. package/dist/notification/channels/sms.d.ts +0 -37
  308. package/dist/notification/channels/sms.d.ts.map +0 -1
  309. package/dist/notification/channels/whatsapp.d.ts +0 -37
  310. package/dist/notification/channels/whatsapp.d.ts.map +0 -1
  311. package/dist/notification/index.d.ts +0 -15
  312. package/dist/notification/index.d.ts.map +0 -1
  313. package/dist/notification/service.d.ts +0 -100
  314. package/dist/notification/service.d.ts.map +0 -1
  315. package/dist/notification/types.d.ts +0 -253
  316. package/dist/notification/types.d.ts.map +0 -1
  317. package/dist/observability/__tests__/observability.test.d.ts +0 -2
  318. package/dist/observability/__tests__/observability.test.d.ts.map +0 -1
  319. package/dist/observability/breadcrumbs.d.ts +0 -48
  320. package/dist/observability/breadcrumbs.d.ts.map +0 -1
  321. package/dist/observability/index.d.ts +0 -95
  322. package/dist/observability/index.d.ts.map +0 -1
  323. package/dist/observability/interceptor.d.ts +0 -19
  324. package/dist/observability/interceptor.d.ts.map +0 -1
  325. package/dist/observability/service.d.ts +0 -101
  326. package/dist/observability/service.d.ts.map +0 -1
  327. package/dist/observability/trace.d.ts +0 -21
  328. package/dist/observability/trace.d.ts.map +0 -1
  329. package/dist/observability/types.d.ts +0 -172
  330. package/dist/observability/types.d.ts.map +0 -1
  331. package/dist/openapi/__tests__/decorators.test.d.ts +0 -2
  332. package/dist/openapi/__tests__/decorators.test.d.ts.map +0 -1
  333. package/dist/openapi/__tests__/document-builder.test.d.ts +0 -2
  334. package/dist/openapi/__tests__/document-builder.test.d.ts.map +0 -1
  335. package/dist/openapi/__tests__/route-scanner.test.d.ts +0 -2
  336. package/dist/openapi/__tests__/route-scanner.test.d.ts.map +0 -1
  337. package/dist/openapi/__tests__/schema-generator.test.d.ts +0 -2
  338. package/dist/openapi/__tests__/schema-generator.test.d.ts.map +0 -1
  339. package/dist/openapi/decorators.d.ts +0 -173
  340. package/dist/openapi/decorators.d.ts.map +0 -1
  341. package/dist/openapi/document-builder.d.ts +0 -82
  342. package/dist/openapi/document-builder.d.ts.map +0 -1
  343. package/dist/openapi/index.d.ts +0 -48
  344. package/dist/openapi/index.d.ts.map +0 -1
  345. package/dist/openapi/metadata.d.ts +0 -36
  346. package/dist/openapi/metadata.d.ts.map +0 -1
  347. package/dist/openapi/route-scanner.d.ts +0 -34
  348. package/dist/openapi/route-scanner.d.ts.map +0 -1
  349. package/dist/openapi/schema-generator.d.ts +0 -53
  350. package/dist/openapi/schema-generator.d.ts.map +0 -1
  351. package/dist/openapi/swagger-module.d.ts +0 -57
  352. package/dist/openapi/swagger-module.d.ts.map +0 -1
  353. package/dist/openapi/types.d.ts +0 -344
  354. package/dist/openapi/types.d.ts.map +0 -1
  355. package/dist/orm/index.d.ts +0 -10
  356. package/dist/orm/index.d.ts.map +0 -1
  357. package/dist/router/index.d.ts +0 -73
  358. package/dist/router/index.d.ts.map +0 -1
  359. package/dist/router/linear.d.ts +0 -54
  360. package/dist/router/linear.d.ts.map +0 -1
  361. package/dist/router/regex.d.ts +0 -49
  362. package/dist/router/regex.d.ts.map +0 -1
  363. package/dist/router/tree.d.ts +0 -112
  364. package/dist/router/tree.d.ts.map +0 -1
  365. package/dist/rpc/index.d.ts +0 -321
  366. package/dist/rpc/index.d.ts.map +0 -1
  367. package/dist/schema/index.d.ts +0 -10
  368. package/dist/schema/index.d.ts.map +0 -1
  369. package/dist/security/index.d.ts +0 -126
  370. package/dist/security/index.d.ts.map +0 -1
  371. package/dist/ssg/index.d.ts +0 -73
  372. package/dist/ssg/index.d.ts.map +0 -1
  373. package/dist/storage/index.d.ts +0 -99
  374. package/dist/storage/index.d.ts.map +0 -1
  375. package/dist/telemetry/index.d.ts +0 -376
  376. package/dist/telemetry/index.d.ts.map +0 -1
  377. package/dist/template/index.d.ts +0 -7
  378. package/dist/template/index.d.ts.map +0 -1
  379. package/dist/templates/engine.d.ts +0 -60
  380. package/dist/templates/engine.d.ts.map +0 -1
  381. package/dist/templates/index.d.ts +0 -9
  382. package/dist/templates/index.d.ts.map +0 -1
  383. package/dist/templates/loader.d.ts +0 -45
  384. package/dist/templates/loader.d.ts.map +0 -1
  385. package/dist/templates/renderers/markdown.d.ts +0 -46
  386. package/dist/templates/renderers/markdown.d.ts.map +0 -1
  387. package/dist/templates/renderers/simple.d.ts +0 -35
  388. package/dist/templates/renderers/simple.d.ts.map +0 -1
  389. package/dist/templates/types.d.ts +0 -138
  390. package/dist/templates/types.d.ts.map +0 -1
  391. package/dist/testing/index.d.ts +0 -539
  392. package/dist/testing/index.d.ts.map +0 -1
  393. package/dist/types/index.d.ts +0 -116
  394. package/dist/types/index.d.ts.map +0 -1
  395. package/dist/validation/index.d.ts +0 -89
  396. package/dist/validation/index.d.ts.map +0 -1
  397. package/dist/validation/schemas.d.ts +0 -243
  398. package/dist/validation/schemas.d.ts.map +0 -1
  399. package/dist/websocket/index.d.ts +0 -252
  400. package/dist/websocket/index.d.ts.map +0 -1
@@ -1,253 +0,0 @@
1
- /**
2
- * Notification System Type Definitions
3
- *
4
- * Flexible multi-channel notification system with support for email, SMS,
5
- * WhatsApp, push notifications, and custom channels. Uses registry pattern
6
- * for dynamic channel registration.
7
- */
8
- /**
9
- * Supported notification channels
10
- */
11
- export type NotificationChannel = "email" | "sms" | "whatsapp" | "push" | string;
12
- /**
13
- * Base notification message interface
14
- * All notification types must extend this
15
- */
16
- export interface NotificationMessage {
17
- /** Channel identifier */
18
- channel: NotificationChannel;
19
- /** Recipient identifier (email, phone, device ID, etc) */
20
- recipient: string;
21
- /** Optional metadata */
22
- metadata?: Record<string, unknown>;
23
- }
24
- /**
25
- * Reference to a template file with rendering data.
26
- * Used in message fields that support template rendering.
27
- * The NotificationService will resolve this to a rendered string before sending.
28
- */
29
- export interface TemplateRef {
30
- /** Template identifier (path without extension, e.g. "emails/welcome") */
31
- templateId: string;
32
- /** Data to pass to the template renderer */
33
- data: Record<string, unknown>;
34
- /** Optional variant override (e.g. "email", "sms"). Auto-detected from channel if omitted. */
35
- variant?: string;
36
- /** Output format: "html" or "text". Defaults based on field context. */
37
- outputFormat?: "html" | "text";
38
- }
39
- /**
40
- * Type guard for TemplateRef
41
- */
42
- export declare function isTemplateRef(value: unknown): value is TemplateRef;
43
- export interface EmailRecipient {
44
- name?: string;
45
- email: string;
46
- }
47
- export type EmailRecipients = string | EmailRecipient | (string | EmailRecipient)[];
48
- export interface EmailAttachment {
49
- filename: string;
50
- content: string | Buffer;
51
- contentType?: string;
52
- encoding?: string;
53
- contentDisposition?: "attachment" | "inline";
54
- cid?: string;
55
- }
56
- export interface EmailMessage extends NotificationMessage {
57
- channel: "email";
58
- recipient: string;
59
- subject: string;
60
- html?: string | TemplateRef;
61
- text?: string | TemplateRef;
62
- cc?: EmailRecipients;
63
- bcc?: EmailRecipients;
64
- replyTo?: string;
65
- from?: string;
66
- attachments?: EmailAttachment[];
67
- headers?: Record<string, string>;
68
- messageId?: string;
69
- references?: string[];
70
- inReplyTo?: string;
71
- tags?: string[];
72
- priority?: "high" | "normal" | "low";
73
- scheduledAt?: Date;
74
- }
75
- export interface SMSMessage extends NotificationMessage {
76
- channel: "sms";
77
- recipient: string;
78
- message: string | TemplateRef;
79
- senderId?: string;
80
- scheduledAt?: Date;
81
- }
82
- export interface WhatsAppMessage extends NotificationMessage {
83
- channel: "whatsapp";
84
- recipient: string;
85
- templateId: string;
86
- parameters?: Record<string, string>;
87
- mediaUrl?: string;
88
- }
89
- export interface PushNotificationMessage extends NotificationMessage {
90
- channel: "push";
91
- recipient: string;
92
- title: string | TemplateRef;
93
- body: string | TemplateRef;
94
- actionUrl?: string;
95
- imageUrl?: string;
96
- data?: Record<string, unknown>;
97
- }
98
- /**
99
- * Union of all built-in notification types
100
- */
101
- export type BuiltInNotification = EmailMessage | SMSMessage | WhatsAppMessage | PushNotificationMessage;
102
- /**
103
- * Interface for composable notification messages
104
- * Implement this interface to create reusable notification templates
105
- */
106
- export interface Notifiable {
107
- /**
108
- * Build notification message(s)
109
- * Can return single message or array of messages for multi-channel
110
- * @returns NotificationMessage or Promise<NotificationMessage>
111
- */
112
- build(channel?: NotificationChannel): NotificationMessage | Promise<NotificationMessage>;
113
- /**
114
- * Optional: Build multiple channel notifications at once
115
- */
116
- buildAll?(): Record<NotificationChannel, NotificationMessage | Promise<NotificationMessage>>;
117
- }
118
- /**
119
- * Health status for channel services
120
- */
121
- export interface ChannelHealth {
122
- status: "healthy" | "degraded" | "unhealthy";
123
- message: string;
124
- checkedAt: Date;
125
- error?: string;
126
- }
127
- /**
128
- * Base interface for all channel services
129
- */
130
- export interface ChannelService<T extends NotificationMessage = NotificationMessage> {
131
- /** Channel name/identifier */
132
- readonly name: NotificationChannel;
133
- /** Configuration schema validator (optional) */
134
- readonly configSchema?: StandardSchema;
135
- /**
136
- * Validate message structure at runtime
137
- * Should throw if message is invalid
138
- */
139
- validate(message: unknown): asserts message is T;
140
- /**
141
- * Send a notification message
142
- * @returns Message ID or undefined if not trackable
143
- */
144
- send(message: T): Promise<string | undefined>;
145
- /**
146
- * Get channel health status
147
- */
148
- getHealth?(): Promise<ChannelHealth>;
149
- /**
150
- * Get channel metrics (optional)
151
- */
152
- getMetrics?(): Promise<ChannelMetrics>;
153
- }
154
- export interface BaseChannelConfig {
155
- /** Enable this channel */
156
- enabled?: boolean;
157
- /** Dry-run mode (log instead of sending) */
158
- dryRun?: boolean;
159
- /** Enable metrics collection */
160
- enableMetrics?: boolean;
161
- }
162
- export interface EmailChannelConfig extends BaseChannelConfig {
163
- driver: "smtp" | "sendgrid" | "brevo" | "resend";
164
- from: string;
165
- fromName?: string;
166
- smtp?: {
167
- host: string;
168
- port: number;
169
- secure?: boolean;
170
- username?: string;
171
- password?: string;
172
- };
173
- apiKey?: string;
174
- }
175
- export interface SMSChannelConfig extends BaseChannelConfig {
176
- driver: "twilio" | "aws-sns" | "custom";
177
- accountSid?: string;
178
- authToken?: string;
179
- fromNumber?: string;
180
- apiKey?: string;
181
- }
182
- export interface WhatsAppChannelConfig extends BaseChannelConfig {
183
- driver: "twilio" | "custom";
184
- accountSid?: string;
185
- authToken?: string;
186
- businessPhoneNumber?: string;
187
- apiKey?: string;
188
- }
189
- export interface PushChannelConfig extends BaseChannelConfig {
190
- driver: "firebase" | "apns" | "custom";
191
- serverKey?: string;
192
- certificatePath?: string;
193
- apiKey?: string;
194
- }
195
- export type ChannelConfig = EmailChannelConfig | SMSChannelConfig | WhatsAppChannelConfig | PushChannelConfig | Record<string, unknown>;
196
- export interface NotificationServiceConfig {
197
- /** Channels configuration */
198
- channels?: Record<NotificationChannel, ChannelConfig>;
199
- /** Default channel for sending */
200
- defaultChannel?: NotificationChannel;
201
- /** Queue system for async sending */
202
- queue?: boolean;
203
- /** Enable metrics collection */
204
- enableMetrics?: boolean;
205
- /** Optional template engine for rendering TemplateRef fields */
206
- templateEngine?: import("../templates/engine").TemplateEngine;
207
- }
208
- export interface ChannelMetrics {
209
- /** Total messages sent */
210
- sent: number;
211
- /** Total messages failed */
212
- failed: number;
213
- /** Successful send rate (0-1) */
214
- successRate: number;
215
- /** Average send time in ms */
216
- avgSendTime: number;
217
- /** Total time spent sending */
218
- totalSendTime: number;
219
- /** Last updated timestamp */
220
- updatedAt: Date;
221
- }
222
- export type NotificationEventType = "notification.sent" | "notification.failed" | "notification.queued" | "notification.bounced" | "notification.delivered";
223
- export interface NotificationEvent {
224
- type: NotificationEventType;
225
- channel: NotificationChannel;
226
- messageId?: string;
227
- recipient?: string;
228
- timestamp: Date;
229
- data?: Record<string, unknown>;
230
- }
231
- export interface NotificationValidationResult {
232
- valid: boolean;
233
- errors: string[];
234
- warnings: string[];
235
- }
236
- export interface StandardSchema<T = unknown> {
237
- "~standard": {
238
- version: number;
239
- types?: {
240
- input: unknown;
241
- output: T;
242
- };
243
- validate: (value: unknown) => Promise<{
244
- issues?: Array<{
245
- message: string;
246
- path?: Array<PropertyKey | {
247
- key: PropertyKey;
248
- }>;
249
- }>;
250
- }>;
251
- };
252
- }
253
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/notification/types.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=observability.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"observability.test.d.ts","sourceRoot":"","sources":["../../../src/observability/__tests__/observability.test.ts"],"names":[],"mappings":""}
@@ -1,48 +0,0 @@
1
- /**
2
- * Breadcrumb Collector
3
- *
4
- * Ring-buffer implementation for tracking recent events leading up to an error.
5
- * When the buffer is full, the oldest entry is evicted to make room for new ones.
6
- */
7
- import type { BreadcrumbEntry } from "./types";
8
- /**
9
- * Fixed-size ring buffer for breadcrumb entries.
10
- * Thread-safe for single-threaded Bun environments.
11
- */
12
- export declare class BreadcrumbCollector {
13
- private readonly _buffer;
14
- private readonly _maxSize;
15
- private _head;
16
- private _size;
17
- constructor(maxSize?: number);
18
- /**
19
- * Add a breadcrumb to the ring buffer.
20
- * If the buffer is full, the oldest entry is evicted.
21
- */
22
- add(entry: BreadcrumbEntry): void;
23
- /**
24
- * Return all breadcrumbs in chronological order (oldest first).
25
- */
26
- getAll(): BreadcrumbEntry[];
27
- /**
28
- * Clear all breadcrumbs.
29
- */
30
- clear(): void;
31
- /**
32
- * Current number of stored breadcrumbs.
33
- */
34
- get size(): number;
35
- /**
36
- * Maximum capacity of this collector.
37
- */
38
- get maxSize(): number;
39
- }
40
- /**
41
- * Convenience helper to build a breadcrumb entry from HTTP request info.
42
- */
43
- export declare function httpBreadcrumb(method: string, path: string, statusCode?: number, durationMs?: number): BreadcrumbEntry;
44
- /**
45
- * Convenience helper to build a log breadcrumb.
46
- */
47
- export declare function logBreadcrumb(level: BreadcrumbEntry["level"], message: string, data?: Record<string, unknown>): BreadcrumbEntry;
48
- //# sourceMappingURL=breadcrumbs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"breadcrumbs.d.ts","sourceRoot":"","sources":["../../src/observability/breadcrumbs.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE/C;;;GAGG;AACH,qBAAa,mBAAmB;IAC/B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,KAAK,CAAK;gBAEN,OAAO,SAAK;IAMxB;;;OAGG;IACH,GAAG,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAYjC;;OAEG;IACH,MAAM,IAAI,eAAe,EAAE;IAQ3B;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED;;OAEG;IACH,IAAI,OAAO,IAAI,MAAM,CAEpB;CACD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC7B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,EACnB,UAAU,CAAC,EAAE,MAAM,GACjB,eAAe,CAajB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAC5B,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,EAC/B,OAAO,EAAE,MAAM,EACf,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,eAAe,CAQjB"}
@@ -1,95 +0,0 @@
1
- /**
2
- * Observability Module
3
- *
4
- * Provides structured error tracking and observability integration for Bueno.
5
- * Implement ErrorReporter to send events to Sentry, Bugsnag, Datadog, or any
6
- * custom backend — zero SDK dependencies shipped by the framework.
7
- *
8
- * ## Quick Start
9
- *
10
- * ```typescript
11
- * import { createApp } from '@buenojs/bueno';
12
- * import { ObservabilityModule } from '@buenojs/bueno/observability';
13
- *
14
- * const app = createApp(AppModule);
15
- *
16
- * // Wire everything with a single call
17
- * const obs = ObservabilityModule.setup(app, {
18
- * reporter: new MyReporter(),
19
- * breadcrumbsSize: 20,
20
- * ignoreStatusCodes: [404, 401],
21
- * tags: { environment: 'production' },
22
- * });
23
- *
24
- * await app.listen(3000);
25
- * ```
26
- *
27
- * ## Writing a reporter (Sentry example)
28
- *
29
- * ```typescript
30
- * import * as Sentry from '@sentry/node';
31
- * import type { ErrorReporter, ErrorEvent } from '@buenojs/bueno/observability';
32
- *
33
- * class SentryReporter implements ErrorReporter {
34
- * constructor(dsn: string) { Sentry.init({ dsn }); }
35
- *
36
- * captureError(event: ErrorEvent) {
37
- * Sentry.withScope(scope => {
38
- * if (event.user) scope.setUser(event.user);
39
- * if (event.traceId) scope.setTag('traceId', event.traceId);
40
- * event.breadcrumbs.forEach(b => scope.addBreadcrumb(b));
41
- * Sentry.captureException(event.error);
42
- * });
43
- * }
44
- *
45
- * async flush() { await Sentry.flush(2000); }
46
- * }
47
- *
48
- * ObservabilityModule.setup(app, {
49
- * reporter: new SentryReporter(process.env.SENTRY_DSN),
50
- * });
51
- * ```
52
- */
53
- import type { Application } from "../modules";
54
- import { ObservabilityService } from "./service";
55
- import type { ObservabilityOptions } from "./types";
56
- /**
57
- * Static module class for configuring observability.
58
- * Use `ObservabilityModule.setup(app, options)` for the simplest setup.
59
- */
60
- export declare class ObservabilityModule {
61
- /**
62
- * One-call setup: creates the ObservabilityService, registers the global
63
- * interceptor for trace ID injection and breadcrumb tracking, and wires
64
- * process-level shutdown flush.
65
- *
66
- * Call this before `app.listen()`.
67
- *
68
- * @param app - The Bueno Application instance (from `createApp()`)
69
- * @param options - Observability configuration including the reporter
70
- * @returns The ObservabilityService — use for manual captureError / addBreadcrumb
71
- *
72
- * @example
73
- * ```typescript
74
- * const obs = ObservabilityModule.setup(app, {
75
- * reporter: new SentryReporter(process.env.SENTRY_DSN),
76
- * ignoreStatusCodes: [404, 401],
77
- * tags: { environment: 'production', version: '1.2.3' },
78
- * });
79
- *
80
- * // Later, in a background job:
81
- * obs.captureError(new Error('Job failed'));
82
- *
83
- * // Add a manual breadcrumb:
84
- * obs.addBreadcrumb({ type: 'custom', level: 'info', message: 'Checkout started' });
85
- * ```
86
- */
87
- static setup(app: Application, options: ObservabilityOptions): ObservabilityService;
88
- }
89
- export type { BreadcrumbEntry, ErrorEvent, ErrorRequestContext, ErrorUserContext, MessageEvent, ErrorReporter, ObservabilityOptions, ObservabilityConfig, } from "./types";
90
- export { ObservabilityService } from "./service";
91
- export { extractTraceContext } from "./service";
92
- export { ObservabilityInterceptor } from "./interceptor";
93
- export { BreadcrumbCollector, httpBreadcrumb, logBreadcrumb, } from "./breadcrumbs";
94
- export { generateTraceId, generateSpanId, buildTraceparent } from "./trace";
95
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/observability/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmDG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAEpD;;;GAGG;AACH,qBAAa,mBAAmB;IAC/B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,MAAM,CAAC,KAAK,CACX,GAAG,EAAE,WAAW,EAChB,OAAO,EAAE,oBAAoB,GAC3B,oBAAoB;CAYvB;AAKD,YAAY,EACX,eAAe,EACf,UAAU,EACV,mBAAmB,EACnB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,mBAAmB,GACnB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAGhD,OAAO,EAAE,wBAAwB,EAAE,MAAM,eAAe,CAAC;AAGzD,OAAO,EACN,mBAAmB,EACnB,cAAc,EACd,aAAa,GACb,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC"}
@@ -1,19 +0,0 @@
1
- /**
2
- * ObservabilityInterceptor
3
- *
4
- * Global interceptor that enriches every request with:
5
- * 1. Trace/span IDs — extracted from W3C `traceparent` header or generated fresh
6
- * 2. Breadcrumbs — records request entry and exit (with status + duration)
7
- * 3. Error capture — calls ObservabilityService when a route handler throws
8
- *
9
- * Register via ObservabilityModule.setup() (done automatically).
10
- */
11
- import type { Context } from "../context";
12
- import type { CallHandler, NestInterceptor } from "../modules";
13
- import type { ObservabilityService } from "./service";
14
- export declare class ObservabilityInterceptor implements NestInterceptor {
15
- private readonly service;
16
- constructor(service: ObservabilityService);
17
- intercept(context: Context, next: CallHandler): Promise<unknown>;
18
- }
19
- //# sourceMappingURL=interceptor.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"interceptor.d.ts","sourceRoot":"","sources":["../../src/observability/interceptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG/D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAkBtD,qBAAa,wBAAyB,YAAW,eAAe;IACnD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,oBAAoB;IAEpD,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;CAgDtE"}
@@ -1,101 +0,0 @@
1
- /**
2
- * ObservabilityService
3
- *
4
- * Central service that assembles ErrorEvents and dispatches them to the
5
- * configured ErrorReporter. Error capture happens through the
6
- * ObservabilityInterceptor which calls captureFromContext() directly.
7
- *
8
- * Exposes addBreadcrumb() and captureError() for manual instrumentation
9
- * throughout the application.
10
- */
11
- import type { Context } from "../context";
12
- import { BreadcrumbCollector } from "./breadcrumbs";
13
- import type { BreadcrumbEntry, ErrorEvent, MessageEvent, ObservabilityOptions } from "./types";
14
- /**
15
- * ObservabilityService manages error reporting and breadcrumb tracking.
16
- *
17
- * Use ObservabilityModule.setup(app, options) to wire it to the application,
18
- * or instantiate directly for contexts where the full module isn't needed.
19
- *
20
- * @example
21
- * ```typescript
22
- * // Via ObservabilityModule (recommended):
23
- * const obs = ObservabilityModule.setup(app, {
24
- * reporter: new SentryReporter(),
25
- * });
26
- *
27
- * // Manual breadcrumb:
28
- * obs.addBreadcrumb({
29
- * type: 'custom',
30
- * level: 'info',
31
- * message: 'User completed checkout',
32
- * data: { orderId: '123' }
33
- * });
34
- * ```
35
- */
36
- export declare class ObservabilityService {
37
- private readonly reporter;
38
- private readonly breadcrumbs;
39
- private readonly options;
40
- constructor(options: ObservabilityOptions);
41
- /**
42
- * Called by ObservabilityInterceptor when an HTTP route throws.
43
- * Assembles a full ErrorEvent with request context and dispatches it.
44
- * Non-blocking — never delays the HTTP response.
45
- */
46
- captureFromContext(context: Context, error: Error): void;
47
- /**
48
- * Register flush on process shutdown.
49
- * Called automatically by ObservabilityModule.setup().
50
- */
51
- registerShutdown(): void;
52
- /**
53
- * Manually capture an error outside the HTTP pipeline.
54
- * Useful inside background jobs, event listeners, scheduled tasks.
55
- *
56
- * @example
57
- * obs.captureError(new Error('Payment failed'), 'error');
58
- */
59
- captureError(error: Error, level?: ErrorEvent["level"]): void;
60
- /**
61
- * Manually capture a non-error message.
62
- *
63
- * @example
64
- * obs.captureMessage('Deployment completed', 'info', { version: '2.0.0' });
65
- */
66
- captureMessage(message: string, level?: MessageEvent["level"], extra?: Record<string, unknown>): void;
67
- /**
68
- * Add a breadcrumb to the ring buffer.
69
- * Breadcrumbs recorded here are included in the next error event.
70
- *
71
- * @example
72
- * obs.addBreadcrumb({
73
- * type: 'custom',
74
- * level: 'info',
75
- * message: 'Fetched user from database',
76
- * data: { userId: 42 }
77
- * });
78
- */
79
- addBreadcrumb(entry: Omit<BreadcrumbEntry, "timestamp"> & {
80
- timestamp?: Date;
81
- }): void;
82
- /**
83
- * Access the underlying BreadcrumbCollector.
84
- * Used internally by ObservabilityInterceptor.
85
- */
86
- getBreadcrumbCollector(): BreadcrumbCollector;
87
- private assembleEvent;
88
- private shouldIgnore;
89
- private dispatchAsync;
90
- private dispatchMessageAsync;
91
- private setupUnhandledCapture;
92
- }
93
- /**
94
- * Extract traceId and spanId from the W3C traceparent header.
95
- * Format: 00-<traceId>-<spanId>-<flags>
96
- */
97
- export declare function extractTraceContext(context: Context): {
98
- traceId?: string;
99
- spanId?: string;
100
- };
101
- //# sourceMappingURL=service.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../../src/observability/service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,mBAAmB,EAAkB,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,EACX,eAAe,EACf,UAAU,EAGV,YAAY,EACZ,oBAAoB,EACpB,MAAM,SAAS,CAAC;AAoCjB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,qBAAa,oBAAoB;IAChC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgB;IACzC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAsB;IAClD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAMtB;gBAEU,OAAO,EAAE,oBAAoB;IAkBzC;;;;OAIG;IACH,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAYxD;;;OAGG;IACH,gBAAgB,IAAI,IAAI;IAkBxB;;;;;;OAMG;IACH,YAAY,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,GAAE,UAAU,CAAC,OAAO,CAAW,GAAG,IAAI;IAMtE;;;;;OAKG;IACH,cAAc,CACb,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,YAAY,CAAC,OAAO,CAAU,EACrC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,IAAI;IAYP;;;;;;;;;;;OAWG;IACH,aAAa,CACZ,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,GAAG;QAAE,SAAS,CAAC,EAAE,IAAI,CAAA;KAAE,GAC9D,IAAI;IAOP;;;OAGG;IACH,sBAAsB,IAAI,mBAAmB;IAM7C,OAAO,CAAC,aAAa;IA+BrB,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,aAAa;IAOrB,OAAO,CAAC,oBAAoB;IAU5B,OAAO,CAAC,qBAAqB;CAa7B;AAID;;;GAGG;AACH,wBAAgB,mBAAmB,CAClC,OAAO,EAAE,OAAO,GACd;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAMvC"}
@@ -1,21 +0,0 @@
1
- /**
2
- * Trace ID generation helpers
3
- *
4
- * Generates W3C TraceContext-compatible IDs using the Web Crypto API.
5
- * These are intentionally kept separate from src/telemetry to avoid
6
- * coupling the observability module to the OTLP tracing module.
7
- */
8
- /**
9
- * Generate a W3C-compatible trace ID (32 hex characters / 16 bytes)
10
- */
11
- export declare function generateTraceId(): string;
12
- /**
13
- * Generate a W3C-compatible span ID (16 hex characters / 8 bytes)
14
- */
15
- export declare function generateSpanId(): string;
16
- /**
17
- * Build a W3C `traceparent` header value from traceId + spanId.
18
- * Format: 00-<traceId>-<spanId>-01
19
- */
20
- export declare function buildTraceparent(traceId: string, spanId: string): string;
21
- //# sourceMappingURL=trace.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../src/observability/trace.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAMxC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAMvC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAExE"}