@engjts/nexus 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (843) hide show
  1. package/README.md +164 -0
  2. package/dist/advanced/cache/InMemoryCacheStore.d.ts +18 -0
  3. package/dist/advanced/cache/InMemoryCacheStore.d.ts.map +1 -0
  4. package/dist/advanced/cache/InMemoryCacheStore.js +60 -0
  5. package/dist/advanced/cache/InMemoryCacheStore.js.map +1 -0
  6. package/dist/advanced/cache/MultiTierCache.d.ts +55 -0
  7. package/dist/advanced/cache/MultiTierCache.d.ts.map +1 -0
  8. package/dist/advanced/cache/MultiTierCache.js +159 -0
  9. package/dist/advanced/cache/MultiTierCache.js.map +1 -0
  10. package/dist/advanced/cache/RedisCacheStore.d.ts +153 -0
  11. package/dist/advanced/cache/RedisCacheStore.d.ts.map +1 -0
  12. package/dist/advanced/cache/RedisCacheStore.js +247 -0
  13. package/dist/advanced/cache/RedisCacheStore.js.map +1 -0
  14. package/dist/advanced/cache/index.d.ts +6 -0
  15. package/dist/advanced/cache/index.d.ts.map +1 -0
  16. package/dist/advanced/cache/index.js +26 -0
  17. package/dist/advanced/cache/index.js.map +1 -0
  18. package/dist/advanced/cache/types.d.ts +35 -0
  19. package/dist/advanced/cache/types.d.ts.map +1 -0
  20. package/dist/advanced/cache/types.js +3 -0
  21. package/dist/advanced/cache/types.js.map +1 -0
  22. package/dist/advanced/graphql/SimpleDataLoader.d.ts +8 -0
  23. package/dist/advanced/graphql/SimpleDataLoader.d.ts.map +1 -0
  24. package/dist/advanced/graphql/SimpleDataLoader.js +43 -0
  25. package/dist/advanced/graphql/SimpleDataLoader.js.map +1 -0
  26. package/dist/advanced/graphql/index.d.ts +15 -0
  27. package/dist/advanced/graphql/index.d.ts.map +1 -0
  28. package/dist/advanced/graphql/index.js +19 -0
  29. package/dist/advanced/graphql/index.js.map +1 -0
  30. package/dist/advanced/graphql/server.d.ts +23 -0
  31. package/dist/advanced/graphql/server.d.ts.map +1 -0
  32. package/dist/advanced/graphql/server.js +208 -0
  33. package/dist/advanced/graphql/server.js.map +1 -0
  34. package/dist/advanced/graphql/types.d.ts +45 -0
  35. package/dist/advanced/graphql/types.d.ts.map +1 -0
  36. package/dist/advanced/graphql/types.js +3 -0
  37. package/dist/advanced/graphql/types.js.map +1 -0
  38. package/dist/advanced/jobs/InMemoryQueueStore.d.ts +14 -0
  39. package/dist/advanced/jobs/InMemoryQueueStore.d.ts.map +1 -0
  40. package/dist/advanced/jobs/InMemoryQueueStore.js +59 -0
  41. package/dist/advanced/jobs/InMemoryQueueStore.js.map +1 -0
  42. package/dist/advanced/jobs/JobQueue.d.ts +178 -0
  43. package/dist/advanced/jobs/JobQueue.d.ts.map +1 -0
  44. package/dist/advanced/jobs/JobQueue.js +440 -0
  45. package/dist/advanced/jobs/JobQueue.js.map +1 -0
  46. package/dist/advanced/jobs/RedisQueueStore.d.ts +157 -0
  47. package/dist/advanced/jobs/RedisQueueStore.d.ts.map +1 -0
  48. package/dist/advanced/jobs/RedisQueueStore.js +264 -0
  49. package/dist/advanced/jobs/RedisQueueStore.js.map +1 -0
  50. package/dist/advanced/jobs/index.d.ts +6 -0
  51. package/dist/advanced/jobs/index.d.ts.map +1 -0
  52. package/dist/advanced/jobs/index.js +26 -0
  53. package/dist/advanced/jobs/index.js.map +1 -0
  54. package/dist/advanced/jobs/types.d.ts +64 -0
  55. package/dist/advanced/jobs/types.d.ts.map +1 -0
  56. package/dist/advanced/jobs/types.js +3 -0
  57. package/dist/advanced/jobs/types.js.map +1 -0
  58. package/dist/advanced/observability/APMManager.d.ts +64 -0
  59. package/dist/advanced/observability/APMManager.d.ts.map +1 -0
  60. package/dist/advanced/observability/APMManager.js +150 -0
  61. package/dist/advanced/observability/APMManager.js.map +1 -0
  62. package/dist/advanced/observability/AlertManager.d.ts +30 -0
  63. package/dist/advanced/observability/AlertManager.d.ts.map +1 -0
  64. package/dist/advanced/observability/AlertManager.js +98 -0
  65. package/dist/advanced/observability/AlertManager.js.map +1 -0
  66. package/dist/advanced/observability/MetricRegistry.d.ts +37 -0
  67. package/dist/advanced/observability/MetricRegistry.d.ts.map +1 -0
  68. package/dist/advanced/observability/MetricRegistry.js +129 -0
  69. package/dist/advanced/observability/MetricRegistry.js.map +1 -0
  70. package/dist/advanced/observability/ObservabilityCenter.d.ts +113 -0
  71. package/dist/advanced/observability/ObservabilityCenter.d.ts.map +1 -0
  72. package/dist/advanced/observability/ObservabilityCenter.js +266 -0
  73. package/dist/advanced/observability/ObservabilityCenter.js.map +1 -0
  74. package/dist/advanced/observability/StructuredLogger.d.ts +25 -0
  75. package/dist/advanced/observability/StructuredLogger.d.ts.map +1 -0
  76. package/dist/advanced/observability/StructuredLogger.js +137 -0
  77. package/dist/advanced/observability/StructuredLogger.js.map +1 -0
  78. package/dist/advanced/observability/TracingManager.d.ts +31 -0
  79. package/dist/advanced/observability/TracingManager.d.ts.map +1 -0
  80. package/dist/advanced/observability/TracingManager.js +105 -0
  81. package/dist/advanced/observability/TracingManager.js.map +1 -0
  82. package/dist/advanced/observability/adapters.d.ts +134 -0
  83. package/dist/advanced/observability/adapters.d.ts.map +1 -0
  84. package/dist/advanced/observability/adapters.js +257 -0
  85. package/dist/advanced/observability/adapters.js.map +1 -0
  86. package/dist/advanced/observability/createObservabilityMiddleware.d.ts +8 -0
  87. package/dist/advanced/observability/createObservabilityMiddleware.d.ts.map +1 -0
  88. package/dist/advanced/observability/createObservabilityMiddleware.js +46 -0
  89. package/dist/advanced/observability/createObservabilityMiddleware.js.map +1 -0
  90. package/dist/advanced/observability/index.d.ts +2 -0
  91. package/dist/advanced/observability/index.d.ts.map +1 -0
  92. package/dist/advanced/observability/index.js +13 -0
  93. package/dist/advanced/observability/index.js.map +1 -0
  94. package/dist/advanced/observability/types.d.ts +182 -0
  95. package/dist/advanced/observability/types.d.ts.map +1 -0
  96. package/dist/advanced/observability/types.js +3 -0
  97. package/dist/advanced/observability/types.js.map +1 -0
  98. package/dist/advanced/playground/extractPathParams.d.ts +4 -0
  99. package/dist/advanced/playground/extractPathParams.d.ts.map +1 -0
  100. package/dist/advanced/playground/extractPathParams.js +8 -0
  101. package/dist/advanced/playground/extractPathParams.js.map +1 -0
  102. package/dist/advanced/playground/generateFieldExample.d.ts +2 -0
  103. package/dist/advanced/playground/generateFieldExample.d.ts.map +1 -0
  104. package/dist/advanced/playground/generateFieldExample.js +40 -0
  105. package/dist/advanced/playground/generateFieldExample.js.map +1 -0
  106. package/dist/advanced/playground/generatePlaygroundHTML.d.ts +3 -0
  107. package/dist/advanced/playground/generatePlaygroundHTML.d.ts.map +1 -0
  108. package/dist/advanced/playground/generatePlaygroundHTML.js +1848 -0
  109. package/dist/advanced/playground/generatePlaygroundHTML.js.map +1 -0
  110. package/dist/advanced/playground/generateSummary.d.ts +3 -0
  111. package/dist/advanced/playground/generateSummary.d.ts.map +1 -0
  112. package/dist/advanced/playground/generateSummary.js +19 -0
  113. package/dist/advanced/playground/generateSummary.js.map +1 -0
  114. package/dist/advanced/playground/getTagFromPath.d.ts +2 -0
  115. package/dist/advanced/playground/getTagFromPath.d.ts.map +1 -0
  116. package/dist/advanced/playground/getTagFromPath.js +11 -0
  117. package/dist/advanced/playground/getTagFromPath.js.map +1 -0
  118. package/dist/advanced/playground/index.d.ts +7 -0
  119. package/dist/advanced/playground/index.d.ts.map +1 -0
  120. package/dist/advanced/playground/index.js +10 -0
  121. package/dist/advanced/playground/index.js.map +1 -0
  122. package/dist/advanced/playground/playground.d.ts +4 -0
  123. package/dist/advanced/playground/playground.d.ts.map +1 -0
  124. package/dist/advanced/playground/playground.js +139 -0
  125. package/dist/advanced/playground/playground.js.map +1 -0
  126. package/dist/advanced/playground/types.d.ts +18 -0
  127. package/dist/advanced/playground/types.d.ts.map +1 -0
  128. package/dist/advanced/playground/types.js +3 -0
  129. package/dist/advanced/playground/types.js.map +1 -0
  130. package/dist/advanced/playground/zodToExample.d.ts +2 -0
  131. package/dist/advanced/playground/zodToExample.d.ts.map +1 -0
  132. package/dist/advanced/playground/zodToExample.js +22 -0
  133. package/dist/advanced/playground/zodToExample.js.map +1 -0
  134. package/dist/advanced/playground/zodToParams.d.ts +5 -0
  135. package/dist/advanced/playground/zodToParams.d.ts.map +1 -0
  136. package/dist/advanced/playground/zodToParams.js +18 -0
  137. package/dist/advanced/playground/zodToParams.js.map +1 -0
  138. package/dist/advanced/postman/buildAuth.d.ts +3 -0
  139. package/dist/advanced/postman/buildAuth.d.ts.map +1 -0
  140. package/dist/advanced/postman/buildAuth.js +32 -0
  141. package/dist/advanced/postman/buildAuth.js.map +1 -0
  142. package/dist/advanced/postman/buildBody.d.ts +3 -0
  143. package/dist/advanced/postman/buildBody.d.ts.map +1 -0
  144. package/dist/advanced/postman/buildBody.js +15 -0
  145. package/dist/advanced/postman/buildBody.js.map +1 -0
  146. package/dist/advanced/postman/buildQueryParams.d.ts +3 -0
  147. package/dist/advanced/postman/buildQueryParams.d.ts.map +1 -0
  148. package/dist/advanced/postman/buildQueryParams.js +26 -0
  149. package/dist/advanced/postman/buildQueryParams.js.map +1 -0
  150. package/dist/advanced/postman/buildRequestItem.d.ts +3 -0
  151. package/dist/advanced/postman/buildRequestItem.d.ts.map +1 -0
  152. package/dist/advanced/postman/buildRequestItem.js +33 -0
  153. package/dist/advanced/postman/buildRequestItem.js.map +1 -0
  154. package/dist/advanced/postman/buildResponses.d.ts +3 -0
  155. package/dist/advanced/postman/buildResponses.d.ts.map +1 -0
  156. package/dist/advanced/postman/buildResponses.js +12 -0
  157. package/dist/advanced/postman/buildResponses.js.map +1 -0
  158. package/dist/advanced/postman/buildUrl.d.ts +3 -0
  159. package/dist/advanced/postman/buildUrl.d.ts.map +1 -0
  160. package/dist/advanced/postman/buildUrl.js +30 -0
  161. package/dist/advanced/postman/buildUrl.js.map +1 -0
  162. package/dist/advanced/postman/capitalize.d.ts +2 -0
  163. package/dist/advanced/postman/capitalize.d.ts.map +1 -0
  164. package/dist/advanced/postman/capitalize.js +7 -0
  165. package/dist/advanced/postman/capitalize.js.map +1 -0
  166. package/dist/advanced/postman/generateCollection.d.ts +3 -0
  167. package/dist/advanced/postman/generateCollection.d.ts.map +1 -0
  168. package/dist/advanced/postman/generateCollection.js +50 -0
  169. package/dist/advanced/postman/generateCollection.js.map +1 -0
  170. package/dist/advanced/postman/generateEnvironment.d.ts +3 -0
  171. package/dist/advanced/postman/generateEnvironment.d.ts.map +1 -0
  172. package/dist/advanced/postman/generateEnvironment.js +33 -0
  173. package/dist/advanced/postman/generateEnvironment.js.map +1 -0
  174. package/dist/advanced/postman/generateExampleFromZod.d.ts +2 -0
  175. package/dist/advanced/postman/generateExampleFromZod.d.ts.map +1 -0
  176. package/dist/advanced/postman/generateExampleFromZod.js +22 -0
  177. package/dist/advanced/postman/generateExampleFromZod.js.map +1 -0
  178. package/dist/advanced/postman/generateFieldExample.d.ts +2 -0
  179. package/dist/advanced/postman/generateFieldExample.d.ts.map +1 -0
  180. package/dist/advanced/postman/generateFieldExample.js +55 -0
  181. package/dist/advanced/postman/generateFieldExample.js.map +1 -0
  182. package/dist/advanced/postman/generateName.d.ts +3 -0
  183. package/dist/advanced/postman/generateName.d.ts.map +1 -0
  184. package/dist/advanced/postman/generateName.js +19 -0
  185. package/dist/advanced/postman/generateName.js.map +1 -0
  186. package/dist/advanced/postman/generateUUID.d.ts +2 -0
  187. package/dist/advanced/postman/generateUUID.d.ts.map +1 -0
  188. package/dist/advanced/postman/generateUUID.js +14 -0
  189. package/dist/advanced/postman/generateUUID.js.map +1 -0
  190. package/dist/advanced/postman/getTagFromPath.d.ts +2 -0
  191. package/dist/advanced/postman/getTagFromPath.d.ts.map +1 -0
  192. package/dist/advanced/postman/getTagFromPath.js +12 -0
  193. package/dist/advanced/postman/getTagFromPath.js.map +1 -0
  194. package/dist/advanced/postman/index.d.ts +28 -0
  195. package/dist/advanced/postman/index.d.ts.map +1 -0
  196. package/dist/advanced/postman/index.js +30 -0
  197. package/dist/advanced/postman/index.js.map +1 -0
  198. package/dist/advanced/postman/postman.d.ts +7 -0
  199. package/dist/advanced/postman/postman.d.ts.map +1 -0
  200. package/dist/advanced/postman/postman.js +138 -0
  201. package/dist/advanced/postman/postman.js.map +1 -0
  202. package/dist/advanced/postman/slugify.d.ts +2 -0
  203. package/dist/advanced/postman/slugify.d.ts.map +1 -0
  204. package/dist/advanced/postman/slugify.js +10 -0
  205. package/dist/advanced/postman/slugify.js.map +1 -0
  206. package/dist/advanced/postman/types.d.ts +133 -0
  207. package/dist/advanced/postman/types.d.ts.map +1 -0
  208. package/dist/advanced/postman/types.js +3 -0
  209. package/dist/advanced/postman/types.js.map +1 -0
  210. package/dist/advanced/realtime/index.d.ts +13 -0
  211. package/dist/advanced/realtime/index.d.ts.map +1 -0
  212. package/dist/advanced/realtime/index.js +17 -0
  213. package/dist/advanced/realtime/index.js.map +1 -0
  214. package/dist/advanced/realtime/websocket.d.ts +60 -0
  215. package/dist/advanced/realtime/websocket.d.ts.map +1 -0
  216. package/dist/advanced/realtime/websocket.js +197 -0
  217. package/dist/advanced/realtime/websocket.js.map +1 -0
  218. package/dist/advanced/sentry/index.d.ts +287 -0
  219. package/dist/advanced/sentry/index.d.ts.map +1 -0
  220. package/dist/advanced/sentry/index.js +1002 -0
  221. package/dist/advanced/sentry/index.js.map +1 -0
  222. package/dist/advanced/sentry/types.d.ts +298 -0
  223. package/dist/advanced/sentry/types.d.ts.map +1 -0
  224. package/dist/advanced/sentry/types.js +6 -0
  225. package/dist/advanced/sentry/types.js.map +1 -0
  226. package/dist/advanced/static/generateDirectoryListing.d.ts +5 -0
  227. package/dist/advanced/static/generateDirectoryListing.d.ts.map +1 -0
  228. package/dist/advanced/static/generateDirectoryListing.js +44 -0
  229. package/dist/advanced/static/generateDirectoryListing.js.map +1 -0
  230. package/dist/advanced/static/generateETag.d.ts +8 -0
  231. package/dist/advanced/static/generateETag.d.ts.map +1 -0
  232. package/dist/advanced/static/generateETag.js +10 -0
  233. package/dist/advanced/static/generateETag.js.map +1 -0
  234. package/dist/advanced/static/getMimeType.d.ts +5 -0
  235. package/dist/advanced/static/getMimeType.d.ts.map +1 -0
  236. package/dist/advanced/static/getMimeType.js +11 -0
  237. package/dist/advanced/static/getMimeType.js.map +1 -0
  238. package/dist/advanced/static/index.d.ts +30 -0
  239. package/dist/advanced/static/index.d.ts.map +1 -0
  240. package/dist/advanced/static/index.js +33 -0
  241. package/dist/advanced/static/index.js.map +1 -0
  242. package/dist/advanced/static/isSafePath.d.ts +5 -0
  243. package/dist/advanced/static/isSafePath.d.ts.map +1 -0
  244. package/dist/advanced/static/isSafePath.js +14 -0
  245. package/dist/advanced/static/isSafePath.js.map +1 -0
  246. package/dist/advanced/static/publicDir.d.ts +12 -0
  247. package/dist/advanced/static/publicDir.d.ts.map +1 -0
  248. package/dist/advanced/static/publicDir.js +22 -0
  249. package/dist/advanced/static/publicDir.js.map +1 -0
  250. package/dist/advanced/static/serveStatic.d.ts +7 -0
  251. package/dist/advanced/static/serveStatic.d.ts.map +1 -0
  252. package/dist/advanced/static/serveStatic.js +198 -0
  253. package/dist/advanced/static/serveStatic.js.map +1 -0
  254. package/dist/advanced/static/spa.d.ts +14 -0
  255. package/dist/advanced/static/spa.d.ts.map +1 -0
  256. package/dist/advanced/static/spa.js +23 -0
  257. package/dist/advanced/static/spa.js.map +1 -0
  258. package/dist/advanced/static/types.d.ts +78 -0
  259. package/dist/advanced/static/types.d.ts.map +1 -0
  260. package/dist/advanced/static/types.js +67 -0
  261. package/dist/advanced/static/types.js.map +1 -0
  262. package/dist/advanced/swagger/SwaggerGenerator.d.ts +19 -0
  263. package/dist/advanced/swagger/SwaggerGenerator.d.ts.map +1 -0
  264. package/dist/advanced/swagger/SwaggerGenerator.js +59 -0
  265. package/dist/advanced/swagger/SwaggerGenerator.js.map +1 -0
  266. package/dist/advanced/swagger/buildOperation.d.ts +6 -0
  267. package/dist/advanced/swagger/buildOperation.d.ts.map +1 -0
  268. package/dist/advanced/swagger/buildOperation.js +54 -0
  269. package/dist/advanced/swagger/buildOperation.js.map +1 -0
  270. package/dist/advanced/swagger/buildParameters.d.ts +6 -0
  271. package/dist/advanced/swagger/buildParameters.d.ts.map +1 -0
  272. package/dist/advanced/swagger/buildParameters.js +57 -0
  273. package/dist/advanced/swagger/buildParameters.js.map +1 -0
  274. package/dist/advanced/swagger/buildRequestBody.d.ts +7 -0
  275. package/dist/advanced/swagger/buildRequestBody.d.ts.map +1 -0
  276. package/dist/advanced/swagger/buildRequestBody.js +19 -0
  277. package/dist/advanced/swagger/buildRequestBody.js.map +1 -0
  278. package/dist/advanced/swagger/buildResponses.d.ts +7 -0
  279. package/dist/advanced/swagger/buildResponses.d.ts.map +1 -0
  280. package/dist/advanced/swagger/buildResponses.js +48 -0
  281. package/dist/advanced/swagger/buildResponses.js.map +1 -0
  282. package/dist/advanced/swagger/capitalize.d.ts +2 -0
  283. package/dist/advanced/swagger/capitalize.d.ts.map +1 -0
  284. package/dist/advanced/swagger/capitalize.js +7 -0
  285. package/dist/advanced/swagger/capitalize.js.map +1 -0
  286. package/dist/advanced/swagger/convertPath.d.ts +6 -0
  287. package/dist/advanced/swagger/convertPath.d.ts.map +1 -0
  288. package/dist/advanced/swagger/convertPath.js +11 -0
  289. package/dist/advanced/swagger/convertPath.js.map +1 -0
  290. package/dist/advanced/swagger/createSwagger.d.ts +8 -0
  291. package/dist/advanced/swagger/createSwagger.d.ts.map +1 -0
  292. package/dist/advanced/swagger/createSwagger.js +12 -0
  293. package/dist/advanced/swagger/createSwagger.js.map +1 -0
  294. package/dist/advanced/swagger/generateOperationId.d.ts +6 -0
  295. package/dist/advanced/swagger/generateOperationId.d.ts.map +1 -0
  296. package/dist/advanced/swagger/generateOperationId.js +20 -0
  297. package/dist/advanced/swagger/generateOperationId.js.map +1 -0
  298. package/dist/advanced/swagger/generateSpec.d.ts +6 -0
  299. package/dist/advanced/swagger/generateSpec.d.ts.map +1 -0
  300. package/dist/advanced/swagger/generateSpec.js +85 -0
  301. package/dist/advanced/swagger/generateSpec.js.map +1 -0
  302. package/dist/advanced/swagger/generateSummary.d.ts +6 -0
  303. package/dist/advanced/swagger/generateSummary.d.ts.map +1 -0
  304. package/dist/advanced/swagger/generateSummary.js +22 -0
  305. package/dist/advanced/swagger/generateSummary.js.map +1 -0
  306. package/dist/advanced/swagger/generateSwaggerUI.d.ts +6 -0
  307. package/dist/advanced/swagger/generateSwaggerUI.d.ts.map +1 -0
  308. package/dist/advanced/swagger/generateSwaggerUI.js +69 -0
  309. package/dist/advanced/swagger/generateSwaggerUI.js.map +1 -0
  310. package/dist/advanced/swagger/generateThemeCss.d.ts +6 -0
  311. package/dist/advanced/swagger/generateThemeCss.d.ts.map +1 -0
  312. package/dist/advanced/swagger/generateThemeCss.js +53 -0
  313. package/dist/advanced/swagger/generateThemeCss.js.map +1 -0
  314. package/dist/advanced/swagger/index.d.ts +23 -0
  315. package/dist/advanced/swagger/index.d.ts.map +1 -0
  316. package/dist/advanced/swagger/index.js +26 -0
  317. package/dist/advanced/swagger/index.js.map +1 -0
  318. package/dist/advanced/swagger/swagger.d.ts +36 -0
  319. package/dist/advanced/swagger/swagger.d.ts.map +1 -0
  320. package/dist/advanced/swagger/swagger.js +198 -0
  321. package/dist/advanced/swagger/swagger.js.map +1 -0
  322. package/dist/advanced/swagger/types.d.ts +210 -0
  323. package/dist/advanced/swagger/types.d.ts.map +1 -0
  324. package/dist/advanced/swagger/types.js +3 -0
  325. package/dist/advanced/swagger/types.js.map +1 -0
  326. package/dist/advanced/swagger/zodFieldToOpenAPI.d.ts +6 -0
  327. package/dist/advanced/swagger/zodFieldToOpenAPI.d.ts.map +1 -0
  328. package/dist/advanced/swagger/zodFieldToOpenAPI.js +86 -0
  329. package/dist/advanced/swagger/zodFieldToOpenAPI.js.map +1 -0
  330. package/dist/advanced/swagger/zodSchemaToOpenAPI.d.ts +6 -0
  331. package/dist/advanced/swagger/zodSchemaToOpenAPI.d.ts.map +1 -0
  332. package/dist/advanced/swagger/zodSchemaToOpenAPI.js +44 -0
  333. package/dist/advanced/swagger/zodSchemaToOpenAPI.js.map +1 -0
  334. package/dist/advanced/swagger/zodToOpenAPI.d.ts +6 -0
  335. package/dist/advanced/swagger/zodToOpenAPI.d.ts.map +1 -0
  336. package/dist/advanced/swagger/zodToOpenAPI.js +22 -0
  337. package/dist/advanced/swagger/zodToOpenAPI.js.map +1 -0
  338. package/dist/advanced/testing/factory.d.ts +206 -0
  339. package/dist/advanced/testing/factory.d.ts.map +1 -0
  340. package/dist/advanced/testing/factory.js +433 -0
  341. package/dist/advanced/testing/factory.js.map +1 -0
  342. package/dist/advanced/testing/harness.d.ts +181 -0
  343. package/dist/advanced/testing/harness.d.ts.map +1 -0
  344. package/dist/advanced/testing/harness.js +481 -0
  345. package/dist/advanced/testing/harness.js.map +1 -0
  346. package/dist/advanced/testing/index.d.ts +235 -0
  347. package/dist/advanced/testing/index.d.ts.map +1 -0
  348. package/dist/advanced/testing/index.js +306 -0
  349. package/dist/advanced/testing/index.js.map +1 -0
  350. package/dist/advanced/testing/load-test.d.ts +148 -0
  351. package/dist/advanced/testing/load-test.d.ts.map +1 -0
  352. package/dist/advanced/testing/load-test.js +490 -0
  353. package/dist/advanced/testing/load-test.js.map +1 -0
  354. package/dist/advanced/testing/mock-server.d.ts +166 -0
  355. package/dist/advanced/testing/mock-server.d.ts.map +1 -0
  356. package/dist/advanced/testing/mock-server.js +424 -0
  357. package/dist/advanced/testing/mock-server.js.map +1 -0
  358. package/dist/advanced/testing/mock.d.ts +248 -0
  359. package/dist/advanced/testing/mock.d.ts.map +1 -0
  360. package/dist/advanced/testing/mock.js +549 -0
  361. package/dist/advanced/testing/mock.js.map +1 -0
  362. package/dist/cli/bin.d.ts +3 -0
  363. package/dist/cli/bin.d.ts.map +1 -0
  364. package/dist/cli/bin.js +10 -0
  365. package/dist/cli/bin.js.map +1 -0
  366. package/dist/cli/cli.d.ts +24 -0
  367. package/dist/cli/cli.d.ts.map +1 -0
  368. package/dist/cli/cli.js +131 -0
  369. package/dist/cli/cli.js.map +1 -0
  370. package/dist/cli/commands/build.d.ts +20 -0
  371. package/dist/cli/commands/build.d.ts.map +1 -0
  372. package/dist/cli/commands/build.js +63 -0
  373. package/dist/cli/commands/build.js.map +1 -0
  374. package/dist/cli/commands/create.d.ts +13 -0
  375. package/dist/cli/commands/create.d.ts.map +1 -0
  376. package/dist/cli/commands/create.js +142 -0
  377. package/dist/cli/commands/create.js.map +1 -0
  378. package/dist/cli/commands/dev.d.ts +15 -0
  379. package/dist/cli/commands/dev.d.ts.map +1 -0
  380. package/dist/cli/commands/dev.js +77 -0
  381. package/dist/cli/commands/dev.js.map +1 -0
  382. package/dist/cli/commands/generate.d.ts +13 -0
  383. package/dist/cli/commands/generate.d.ts.map +1 -0
  384. package/dist/cli/commands/generate.js +80 -0
  385. package/dist/cli/commands/generate.js.map +1 -0
  386. package/dist/cli/commands/help.d.ts +13 -0
  387. package/dist/cli/commands/help.d.ts.map +1 -0
  388. package/dist/cli/commands/help.js +83 -0
  389. package/dist/cli/commands/help.js.map +1 -0
  390. package/dist/cli/commands/init.d.ts +11 -0
  391. package/dist/cli/commands/init.d.ts.map +1 -0
  392. package/dist/cli/commands/init.js +76 -0
  393. package/dist/cli/commands/init.js.map +1 -0
  394. package/dist/cli/commands/version.d.ts +9 -0
  395. package/dist/cli/commands/version.d.ts.map +1 -0
  396. package/dist/cli/commands/version.js +35 -0
  397. package/dist/cli/commands/version.js.map +1 -0
  398. package/dist/cli/index.d.ts +3 -0
  399. package/dist/cli/index.d.ts.map +1 -0
  400. package/dist/cli/index.js +7 -0
  401. package/dist/cli/index.js.map +1 -0
  402. package/dist/cli/templates/generators.d.ts +22 -0
  403. package/dist/cli/templates/generators.d.ts.map +1 -0
  404. package/dist/cli/templates/generators.js +282 -0
  405. package/dist/cli/templates/generators.js.map +1 -0
  406. package/dist/cli/templates/index.d.ts +27 -0
  407. package/dist/cli/templates/index.d.ts.map +1 -0
  408. package/dist/cli/templates/index.js +651 -0
  409. package/dist/cli/templates/index.js.map +1 -0
  410. package/dist/cli/utils/exec.d.ts +12 -0
  411. package/dist/cli/utils/exec.d.ts.map +1 -0
  412. package/dist/cli/utils/exec.js +37 -0
  413. package/dist/cli/utils/exec.js.map +1 -0
  414. package/dist/cli/utils/file-system.d.ts +15 -0
  415. package/dist/cli/utils/file-system.d.ts.map +1 -0
  416. package/dist/cli/utils/file-system.js +105 -0
  417. package/dist/cli/utils/file-system.js.map +1 -0
  418. package/dist/cli/utils/logger.d.ts +40 -0
  419. package/dist/cli/utils/logger.d.ts.map +1 -0
  420. package/dist/cli/utils/logger.js +100 -0
  421. package/dist/cli/utils/logger.js.map +1 -0
  422. package/dist/core/adapter.d.ts +73 -0
  423. package/dist/core/adapter.d.ts.map +1 -0
  424. package/dist/core/adapter.js +27 -0
  425. package/dist/core/adapter.js.map +1 -0
  426. package/dist/core/application.d.ts +540 -0
  427. package/dist/core/application.d.ts.map +1 -0
  428. package/dist/core/application.js +1111 -0
  429. package/dist/core/application.js.map +1 -0
  430. package/dist/core/context-pool.d.ts +52 -0
  431. package/dist/core/context-pool.d.ts.map +1 -0
  432. package/dist/core/context-pool.js +111 -0
  433. package/dist/core/context-pool.js.map +1 -0
  434. package/dist/core/context.d.ts +148 -0
  435. package/dist/core/context.d.ts.map +1 -0
  436. package/dist/core/context.js +367 -0
  437. package/dist/core/context.js.map +1 -0
  438. package/dist/core/index.d.ts +23 -0
  439. package/dist/core/index.d.ts.map +1 -0
  440. package/dist/core/index.js +77 -0
  441. package/dist/core/index.js.map +1 -0
  442. package/dist/core/middleware.d.ts +49 -0
  443. package/dist/core/middleware.d.ts.map +1 -0
  444. package/dist/core/middleware.js +215 -0
  445. package/dist/core/middleware.js.map +1 -0
  446. package/dist/core/performance/buffer-pool.d.ts +47 -0
  447. package/dist/core/performance/buffer-pool.d.ts.map +1 -0
  448. package/dist/core/performance/buffer-pool.js +97 -0
  449. package/dist/core/performance/buffer-pool.js.map +1 -0
  450. package/dist/core/performance/jit-compiler.d.ts +73 -0
  451. package/dist/core/performance/jit-compiler.d.ts.map +1 -0
  452. package/dist/core/performance/jit-compiler.js +145 -0
  453. package/dist/core/performance/jit-compiler.js.map +1 -0
  454. package/dist/core/performance/middleware-optimizer.d.ts +73 -0
  455. package/dist/core/performance/middleware-optimizer.d.ts.map +1 -0
  456. package/dist/core/performance/middleware-optimizer.js +138 -0
  457. package/dist/core/performance/middleware-optimizer.js.map +1 -0
  458. package/dist/core/plugin/PluginManager.d.ts +93 -0
  459. package/dist/core/plugin/PluginManager.d.ts.map +1 -0
  460. package/dist/core/plugin/PluginManager.js +351 -0
  461. package/dist/core/plugin/PluginManager.js.map +1 -0
  462. package/dist/core/plugin/builder.d.ts +192 -0
  463. package/dist/core/plugin/builder.d.ts.map +1 -0
  464. package/dist/core/plugin/builder.js +319 -0
  465. package/dist/core/plugin/builder.js.map +1 -0
  466. package/dist/core/plugin/index.d.ts +31 -0
  467. package/dist/core/plugin/index.d.ts.map +1 -0
  468. package/dist/core/plugin/index.js +41 -0
  469. package/dist/core/plugin/index.js.map +1 -0
  470. package/dist/core/plugin/types.d.ts +184 -0
  471. package/dist/core/plugin/types.d.ts.map +1 -0
  472. package/dist/core/plugin/types.js +17 -0
  473. package/dist/core/plugin/types.js.map +1 -0
  474. package/dist/core/router/file-router.d.ts +173 -0
  475. package/dist/core/router/file-router.d.ts.map +1 -0
  476. package/dist/core/router/file-router.js +498 -0
  477. package/dist/core/router/file-router.js.map +1 -0
  478. package/dist/core/router/index.d.ts +44 -0
  479. package/dist/core/router/index.d.ts.map +1 -0
  480. package/dist/core/router/index.js +145 -0
  481. package/dist/core/router/index.js.map +1 -0
  482. package/dist/core/router/radix-tree.d.ts +69 -0
  483. package/dist/core/router/radix-tree.d.ts.map +1 -0
  484. package/dist/core/router/radix-tree.js +196 -0
  485. package/dist/core/router/radix-tree.js.map +1 -0
  486. package/dist/core/store/index.d.ts +15 -0
  487. package/dist/core/store/index.d.ts.map +1 -0
  488. package/dist/core/store/index.js +23 -0
  489. package/dist/core/store/index.js.map +1 -0
  490. package/dist/core/store/registry.d.ts +80 -0
  491. package/dist/core/store/registry.d.ts.map +1 -0
  492. package/dist/core/store/registry.js +156 -0
  493. package/dist/core/store/registry.js.map +1 -0
  494. package/dist/core/store/request-store.d.ts +138 -0
  495. package/dist/core/store/request-store.d.ts.map +1 -0
  496. package/dist/core/store/request-store.js +209 -0
  497. package/dist/core/store/request-store.js.map +1 -0
  498. package/dist/core/store/types.d.ts +140 -0
  499. package/dist/core/store/types.d.ts.map +1 -0
  500. package/dist/core/store/types.js +176 -0
  501. package/dist/core/store/types.js.map +1 -0
  502. package/dist/core/types.d.ts +470 -0
  503. package/dist/core/types.d.ts.map +1 -0
  504. package/dist/core/types.js +106 -0
  505. package/dist/core/types.js.map +1 -0
  506. package/dist/database/adapter.d.ts +32 -0
  507. package/dist/database/adapter.d.ts.map +1 -0
  508. package/dist/database/adapter.js +3 -0
  509. package/dist/database/adapter.js.map +1 -0
  510. package/dist/database/adapters/index.d.ts +2 -0
  511. package/dist/database/adapters/index.d.ts.map +1 -0
  512. package/dist/database/adapters/index.js +18 -0
  513. package/dist/database/adapters/index.js.map +1 -0
  514. package/dist/database/adapters/mysql.d.ts +160 -0
  515. package/dist/database/adapters/mysql.d.ts.map +1 -0
  516. package/dist/database/adapters/mysql.js +501 -0
  517. package/dist/database/adapters/mysql.js.map +1 -0
  518. package/dist/database/database.d.ts +27 -0
  519. package/dist/database/database.d.ts.map +1 -0
  520. package/dist/database/database.js +59 -0
  521. package/dist/database/database.js.map +1 -0
  522. package/dist/database/dialect.d.ts +110 -0
  523. package/dist/database/dialect.d.ts.map +1 -0
  524. package/dist/database/dialect.js +269 -0
  525. package/dist/database/dialect.js.map +1 -0
  526. package/dist/database/index.d.ts +12 -0
  527. package/dist/database/index.d.ts.map +1 -0
  528. package/dist/database/index.js +28 -0
  529. package/dist/database/index.js.map +1 -0
  530. package/dist/database/migrations.d.ts +22 -0
  531. package/dist/database/migrations.d.ts.map +1 -0
  532. package/dist/database/migrations.js +73 -0
  533. package/dist/database/migrations.js.map +1 -0
  534. package/dist/database/optimizer.d.ts +25 -0
  535. package/dist/database/optimizer.d.ts.map +1 -0
  536. package/dist/database/optimizer.js +97 -0
  537. package/dist/database/optimizer.js.map +1 -0
  538. package/dist/database/query-builder.d.ts +49 -0
  539. package/dist/database/query-builder.d.ts.map +1 -0
  540. package/dist/database/query-builder.js +319 -0
  541. package/dist/database/query-builder.js.map +1 -0
  542. package/dist/database/realtime.d.ts +24 -0
  543. package/dist/database/realtime.d.ts.map +1 -0
  544. package/dist/database/realtime.js +38 -0
  545. package/dist/database/realtime.js.map +1 -0
  546. package/dist/database/schema.d.ts +27 -0
  547. package/dist/database/schema.d.ts.map +1 -0
  548. package/dist/database/schema.js +47 -0
  549. package/dist/database/schema.js.map +1 -0
  550. package/dist/database/transactions.d.ts +13 -0
  551. package/dist/database/transactions.d.ts.map +1 -0
  552. package/dist/database/transactions.js +51 -0
  553. package/dist/database/transactions.js.map +1 -0
  554. package/dist/database/types.d.ts +68 -0
  555. package/dist/database/types.d.ts.map +1 -0
  556. package/dist/database/types.js +3 -0
  557. package/dist/database/types.js.map +1 -0
  558. package/dist/deployment/cluster.d.ts +161 -0
  559. package/dist/deployment/cluster.d.ts.map +1 -0
  560. package/dist/deployment/cluster.js +336 -0
  561. package/dist/deployment/cluster.js.map +1 -0
  562. package/dist/deployment/config.d.ts +209 -0
  563. package/dist/deployment/config.d.ts.map +1 -0
  564. package/dist/deployment/config.js +263 -0
  565. package/dist/deployment/config.js.map +1 -0
  566. package/dist/deployment/docker.d.ts +168 -0
  567. package/dist/deployment/docker.d.ts.map +1 -0
  568. package/dist/deployment/docker.js +437 -0
  569. package/dist/deployment/docker.js.map +1 -0
  570. package/dist/deployment/graceful-shutdown.d.ts +130 -0
  571. package/dist/deployment/graceful-shutdown.d.ts.map +1 -0
  572. package/dist/deployment/graceful-shutdown.js +271 -0
  573. package/dist/deployment/graceful-shutdown.js.map +1 -0
  574. package/dist/deployment/index.d.ts +14 -0
  575. package/dist/deployment/index.d.ts.map +1 -0
  576. package/dist/deployment/index.js +33 -0
  577. package/dist/deployment/index.js.map +1 -0
  578. package/dist/index.d.ts +39 -0
  579. package/dist/index.d.ts.map +1 -0
  580. package/dist/index.js +174 -0
  581. package/dist/index.js.map +1 -0
  582. package/dist/security/adapter.d.ts +144 -0
  583. package/dist/security/adapter.d.ts.map +1 -0
  584. package/dist/security/adapter.js +159 -0
  585. package/dist/security/adapter.js.map +1 -0
  586. package/dist/security/auth/JWTPlugin.d.ts +105 -0
  587. package/dist/security/auth/JWTPlugin.d.ts.map +1 -0
  588. package/dist/security/auth/JWTPlugin.js +146 -0
  589. package/dist/security/auth/JWTPlugin.js.map +1 -0
  590. package/dist/security/auth/JWTProvider.d.ts +104 -0
  591. package/dist/security/auth/JWTProvider.d.ts.map +1 -0
  592. package/dist/security/auth/JWTProvider.js +288 -0
  593. package/dist/security/auth/JWTProvider.js.map +1 -0
  594. package/dist/security/auth/adapter.d.ts +8 -0
  595. package/dist/security/auth/adapter.d.ts.map +1 -0
  596. package/dist/security/auth/adapter.js +29 -0
  597. package/dist/security/auth/adapter.js.map +1 -0
  598. package/dist/security/auth/jwt.d.ts +55 -0
  599. package/dist/security/auth/jwt.d.ts.map +1 -0
  600. package/dist/security/auth/jwt.js +198 -0
  601. package/dist/security/auth/jwt.js.map +1 -0
  602. package/dist/security/auth/middleware.d.ts +64 -0
  603. package/dist/security/auth/middleware.d.ts.map +1 -0
  604. package/dist/security/auth/middleware.js +161 -0
  605. package/dist/security/auth/middleware.js.map +1 -0
  606. package/dist/security/csrf.d.ts +41 -0
  607. package/dist/security/csrf.d.ts.map +1 -0
  608. package/dist/security/csrf.js +185 -0
  609. package/dist/security/csrf.js.map +1 -0
  610. package/dist/security/headers.d.ts +34 -0
  611. package/dist/security/headers.d.ts.map +1 -0
  612. package/dist/security/headers.js +95 -0
  613. package/dist/security/headers.js.map +1 -0
  614. package/dist/security/index.d.ts +19 -0
  615. package/dist/security/index.d.ts.map +1 -0
  616. package/dist/security/index.js +65 -0
  617. package/dist/security/index.js.map +1 -0
  618. package/dist/security/rate-limit/adapter.d.ts +7 -0
  619. package/dist/security/rate-limit/adapter.d.ts.map +1 -0
  620. package/dist/security/rate-limit/adapter.js +8 -0
  621. package/dist/security/rate-limit/adapter.js.map +1 -0
  622. package/dist/security/rate-limit/memory.d.ts +28 -0
  623. package/dist/security/rate-limit/memory.d.ts.map +1 -0
  624. package/dist/security/rate-limit/memory.js +85 -0
  625. package/dist/security/rate-limit/memory.js.map +1 -0
  626. package/dist/security/rate-limit/middleware.d.ts +32 -0
  627. package/dist/security/rate-limit/middleware.d.ts.map +1 -0
  628. package/dist/security/rate-limit/middleware.js +159 -0
  629. package/dist/security/rate-limit/middleware.js.map +1 -0
  630. package/dist/security/sanitization.d.ts +29 -0
  631. package/dist/security/sanitization.d.ts.map +1 -0
  632. package/dist/security/sanitization.js +66 -0
  633. package/dist/security/sanitization.js.map +1 -0
  634. package/dist/security/types.d.ts +205 -0
  635. package/dist/security/types.d.ts.map +1 -0
  636. package/dist/security/types.js +8 -0
  637. package/dist/security/types.js.map +1 -0
  638. package/dist/security/utils.d.ts +19 -0
  639. package/dist/security/utils.d.ts.map +1 -0
  640. package/dist/security/utils.js +43 -0
  641. package/dist/security/utils.js.map +1 -0
  642. package/documentation/01-getting-started.md +240 -0
  643. package/documentation/02-context.md +335 -0
  644. package/documentation/03-routing.md +397 -0
  645. package/documentation/04-middleware.md +483 -0
  646. package/documentation/05-validation.md +514 -0
  647. package/documentation/06-error-handling.md +465 -0
  648. package/documentation/07-performance.md +364 -0
  649. package/documentation/08-adapters.md +470 -0
  650. package/documentation/09-api-reference.md +548 -0
  651. package/documentation/10-examples.md +582 -0
  652. package/documentation/11-deployment.md +477 -0
  653. package/documentation/12-sentry.md +620 -0
  654. package/documentation/13-sentry-data-storage.md +996 -0
  655. package/documentation/14-sentry-data-reference.md +457 -0
  656. package/documentation/15-sentry-summary.md +409 -0
  657. package/documentation/16-alerts-system.md +745 -0
  658. package/documentation/17-alert-adapters.md +696 -0
  659. package/documentation/18-alerts-implementation-summary.md +385 -0
  660. package/documentation/19-class-based-routing.md +840 -0
  661. package/documentation/20-websocket-realtime.md +813 -0
  662. package/documentation/21-cache-system.md +510 -0
  663. package/documentation/22-job-queue.md +772 -0
  664. package/documentation/23-sentry-plugin.md +551 -0
  665. package/documentation/24-testing-utilities.md +1287 -0
  666. package/documentation/25-api-versioning.md +533 -0
  667. package/documentation/26-context-store.md +607 -0
  668. package/documentation/27-dependency-injection.md +329 -0
  669. package/documentation/28-lifecycle-hooks.md +521 -0
  670. package/documentation/29-package-structure.md +196 -0
  671. package/documentation/30-plugin-system.md +414 -0
  672. package/documentation/31-jwt-authentication.md +597 -0
  673. package/documentation/32-cli.md +268 -0
  674. package/documentation/ALERTS-COMPLETE-SUMMARY.md +429 -0
  675. package/documentation/ALERTS-INDEX.md +330 -0
  676. package/documentation/ALERTS-QUICK-REFERENCE.md +286 -0
  677. package/documentation/README.md +178 -0
  678. package/documentation/index.html +34 -0
  679. package/modern_framework_paper.md +1870 -0
  680. package/package.json +178 -0
  681. package/public/css/style.css +87 -0
  682. package/public/index.html +34 -0
  683. package/public/js/app.js +27 -0
  684. package/src/advanced/cache/InMemoryCacheStore.ts +68 -0
  685. package/src/advanced/cache/MultiTierCache.ts +194 -0
  686. package/src/advanced/cache/RedisCacheStore.ts +341 -0
  687. package/src/advanced/cache/index.ts +5 -0
  688. package/src/advanced/cache/types.ts +40 -0
  689. package/src/advanced/graphql/SimpleDataLoader.ts +42 -0
  690. package/src/advanced/graphql/index.ts +22 -0
  691. package/src/advanced/graphql/server.ts +252 -0
  692. package/src/advanced/graphql/types.ts +42 -0
  693. package/src/advanced/jobs/InMemoryQueueStore.ts +68 -0
  694. package/src/advanced/jobs/JobQueue.ts +556 -0
  695. package/src/advanced/jobs/RedisQueueStore.ts +367 -0
  696. package/src/advanced/jobs/index.ts +5 -0
  697. package/src/advanced/jobs/types.ts +70 -0
  698. package/src/advanced/observability/APMManager.ts +163 -0
  699. package/src/advanced/observability/AlertManager.ts +109 -0
  700. package/src/advanced/observability/MetricRegistry.ts +151 -0
  701. package/src/advanced/observability/ObservabilityCenter.ts +304 -0
  702. package/src/advanced/observability/StructuredLogger.ts +154 -0
  703. package/src/advanced/observability/TracingManager.ts +117 -0
  704. package/src/advanced/observability/adapters.ts +304 -0
  705. package/src/advanced/observability/createObservabilityMiddleware.ts +63 -0
  706. package/src/advanced/observability/index.ts +11 -0
  707. package/src/advanced/observability/types.ts +174 -0
  708. package/src/advanced/playground/extractPathParams.ts +6 -0
  709. package/src/advanced/playground/generateFieldExample.ts +31 -0
  710. package/src/advanced/playground/generatePlaygroundHTML.ts +1849 -0
  711. package/src/advanced/playground/generateSummary.ts +19 -0
  712. package/src/advanced/playground/getTagFromPath.ts +9 -0
  713. package/src/advanced/playground/index.ts +8 -0
  714. package/src/advanced/playground/playground.ts +170 -0
  715. package/src/advanced/playground/types.ts +20 -0
  716. package/src/advanced/playground/zodToExample.ts +16 -0
  717. package/src/advanced/playground/zodToParams.ts +15 -0
  718. package/src/advanced/postman/buildAuth.ts +31 -0
  719. package/src/advanced/postman/buildBody.ts +15 -0
  720. package/src/advanced/postman/buildQueryParams.ts +27 -0
  721. package/src/advanced/postman/buildRequestItem.ts +36 -0
  722. package/src/advanced/postman/buildResponses.ts +11 -0
  723. package/src/advanced/postman/buildUrl.ts +33 -0
  724. package/src/advanced/postman/capitalize.ts +4 -0
  725. package/src/advanced/postman/generateCollection.ts +59 -0
  726. package/src/advanced/postman/generateEnvironment.ts +34 -0
  727. package/src/advanced/postman/generateExampleFromZod.ts +21 -0
  728. package/src/advanced/postman/generateFieldExample.ts +45 -0
  729. package/src/advanced/postman/generateName.ts +20 -0
  730. package/src/advanced/postman/generateUUID.ts +11 -0
  731. package/src/advanced/postman/getTagFromPath.ts +10 -0
  732. package/src/advanced/postman/index.ts +28 -0
  733. package/src/advanced/postman/postman.ts +156 -0
  734. package/src/advanced/postman/slugify.ts +7 -0
  735. package/src/advanced/postman/types.ts +140 -0
  736. package/src/advanced/realtime/index.ts +18 -0
  737. package/src/advanced/realtime/websocket.ts +211 -0
  738. package/src/advanced/sentry/index.ts +1236 -0
  739. package/src/advanced/sentry/types.ts +355 -0
  740. package/src/advanced/static/generateDirectoryListing.ts +47 -0
  741. package/src/advanced/static/generateETag.ts +7 -0
  742. package/src/advanced/static/getMimeType.ts +9 -0
  743. package/src/advanced/static/index.ts +32 -0
  744. package/src/advanced/static/isSafePath.ts +13 -0
  745. package/src/advanced/static/publicDir.ts +21 -0
  746. package/src/advanced/static/serveStatic.ts +225 -0
  747. package/src/advanced/static/spa.ts +24 -0
  748. package/src/advanced/static/types.ts +159 -0
  749. package/src/advanced/swagger/SwaggerGenerator.ts +66 -0
  750. package/src/advanced/swagger/buildOperation.ts +61 -0
  751. package/src/advanced/swagger/buildParameters.ts +61 -0
  752. package/src/advanced/swagger/buildRequestBody.ts +21 -0
  753. package/src/advanced/swagger/buildResponses.ts +54 -0
  754. package/src/advanced/swagger/capitalize.ts +5 -0
  755. package/src/advanced/swagger/convertPath.ts +9 -0
  756. package/src/advanced/swagger/createSwagger.ts +12 -0
  757. package/src/advanced/swagger/generateOperationId.ts +21 -0
  758. package/src/advanced/swagger/generateSpec.ts +105 -0
  759. package/src/advanced/swagger/generateSummary.ts +24 -0
  760. package/src/advanced/swagger/generateSwaggerUI.ts +70 -0
  761. package/src/advanced/swagger/generateThemeCss.ts +53 -0
  762. package/src/advanced/swagger/index.ts +25 -0
  763. package/src/advanced/swagger/swagger.ts +237 -0
  764. package/src/advanced/swagger/types.ts +206 -0
  765. package/src/advanced/swagger/zodFieldToOpenAPI.ts +94 -0
  766. package/src/advanced/swagger/zodSchemaToOpenAPI.ts +50 -0
  767. package/src/advanced/swagger/zodToOpenAPI.ts +22 -0
  768. package/src/advanced/testing/factory.ts +509 -0
  769. package/src/advanced/testing/harness.ts +612 -0
  770. package/src/advanced/testing/index.ts +430 -0
  771. package/src/advanced/testing/load-test.ts +618 -0
  772. package/src/advanced/testing/mock-server.ts +498 -0
  773. package/src/advanced/testing/mock.ts +670 -0
  774. package/src/cli/bin.ts +9 -0
  775. package/src/cli/cli.ts +155 -0
  776. package/src/cli/commands/build.ts +73 -0
  777. package/src/cli/commands/create.ts +166 -0
  778. package/src/cli/commands/dev.ts +85 -0
  779. package/src/cli/commands/generate.ts +97 -0
  780. package/src/cli/commands/help.ts +95 -0
  781. package/src/cli/commands/init.ts +91 -0
  782. package/src/cli/commands/version.ts +38 -0
  783. package/src/cli/index.ts +6 -0
  784. package/src/cli/templates/generators.ts +309 -0
  785. package/src/cli/templates/index.ts +679 -0
  786. package/src/cli/utils/exec.ts +52 -0
  787. package/src/cli/utils/file-system.ts +78 -0
  788. package/src/cli/utils/logger.ts +111 -0
  789. package/src/core/adapter.ts +88 -0
  790. package/src/core/application.ts +1283 -0
  791. package/src/core/context-pool.ts +127 -0
  792. package/src/core/context.ts +412 -0
  793. package/src/core/index.ts +80 -0
  794. package/src/core/middleware.ts +262 -0
  795. package/src/core/performance/buffer-pool.ts +108 -0
  796. package/src/core/performance/middleware-optimizer.ts +162 -0
  797. package/src/core/plugin/PluginManager.ts +435 -0
  798. package/src/core/plugin/builder.ts +358 -0
  799. package/src/core/plugin/index.ts +50 -0
  800. package/src/core/plugin/types.ts +214 -0
  801. package/src/core/router/file-router.ts +594 -0
  802. package/src/core/router/index.ts +182 -0
  803. package/src/core/router/radix-tree.ts +226 -0
  804. package/src/core/store/index.ts +30 -0
  805. package/src/core/store/registry.ts +178 -0
  806. package/src/core/store/request-store.ts +240 -0
  807. package/src/core/store/types.ts +233 -0
  808. package/src/core/types.ts +574 -0
  809. package/src/database/adapter.ts +35 -0
  810. package/src/database/adapters/index.ts +1 -0
  811. package/src/database/adapters/mysql.ts +669 -0
  812. package/src/database/database.ts +70 -0
  813. package/src/database/dialect.ts +388 -0
  814. package/src/database/index.ts +12 -0
  815. package/src/database/migrations.ts +86 -0
  816. package/src/database/optimizer.ts +125 -0
  817. package/src/database/query-builder.ts +404 -0
  818. package/src/database/realtime.ts +53 -0
  819. package/src/database/schema.ts +71 -0
  820. package/src/database/transactions.ts +56 -0
  821. package/src/database/types.ts +87 -0
  822. package/src/deployment/cluster.ts +471 -0
  823. package/src/deployment/config.ts +454 -0
  824. package/src/deployment/docker.ts +599 -0
  825. package/src/deployment/graceful-shutdown.ts +373 -0
  826. package/src/deployment/index.ts +56 -0
  827. package/src/index.ts +264 -0
  828. package/src/security/adapter.ts +318 -0
  829. package/src/security/auth/JWTPlugin.ts +234 -0
  830. package/src/security/auth/JWTProvider.ts +316 -0
  831. package/src/security/auth/adapter.ts +12 -0
  832. package/src/security/auth/jwt.ts +234 -0
  833. package/src/security/auth/middleware.ts +188 -0
  834. package/src/security/csrf.ts +220 -0
  835. package/src/security/headers.ts +108 -0
  836. package/src/security/index.ts +60 -0
  837. package/src/security/rate-limit/adapter.ts +7 -0
  838. package/src/security/rate-limit/memory.ts +108 -0
  839. package/src/security/rate-limit/middleware.ts +181 -0
  840. package/src/security/sanitization.ts +75 -0
  841. package/src/security/types.ts +240 -0
  842. package/src/security/utils.ts +52 -0
  843. package/tsconfig.json +39 -0
@@ -0,0 +1,996 @@
1
+ # Sentry Data Storage & Scope Analysis
2
+
3
+ Dokumentasi lengkap tentang data apa saja yang dikirim ke Sentry dan bagaimana scope-nya dalam Nexus Framework.
4
+
5
+ ## Table of Contents
6
+
7
+ 1. [Event Structure](#event-structure)
8
+ 2. [Data Categories](#data-categories)
9
+ 3. [Scope Hierarchy](#scope-hierarchy)
10
+ 4. [Security & Privacy](#security--privacy)
11
+ 5. [Storage & Retention](#storage--retention)
12
+ 6. [Data Flow Diagram](#data-flow-diagram)
13
+
14
+ ---
15
+
16
+ ## Event Structure
17
+
18
+ Setiap event yang dikirim ke Sentry memiliki struktur lengkap:
19
+
20
+ ```json
21
+ {
22
+ "event_id": "a1b2c3d4e5f6g7h8",
23
+ "timestamp": 1701619200,
24
+ "platform": "node",
25
+ "level": "error",
26
+ "logger": "nexus",
27
+ "server_name": "api-server-1",
28
+ "release": "1.0.0",
29
+ "environment": "production",
30
+
31
+ "message": "Database connection failed",
32
+
33
+ "exception": {
34
+ "values": [
35
+ {
36
+ "type": "DatabaseError",
37
+ "value": "Connection timeout after 5000ms",
38
+ "stacktrace": { /* stack frames */ },
39
+ "mechanism": {
40
+ "type": "generic",
41
+ "handled": true
42
+ }
43
+ }
44
+ ]
45
+ },
46
+
47
+ "user": { /* user data */ },
48
+ "tags": { /* tags */ },
49
+ "extra": { /* extra context */ },
50
+ "contexts": { /* system context */ },
51
+ "breadcrumbs": [ /* activity trail */ ],
52
+ "request": { /* HTTP request info */ },
53
+ "fingerprint": [ /* grouping */ ]
54
+ }
55
+ ```
56
+
57
+ ---
58
+
59
+ ## Data Categories
60
+
61
+ ### 1. Event Metadata
62
+
63
+ **Apa yang disimpan:**
64
+ ```typescript
65
+ {
66
+ event_id: string; // Unique identifier
67
+ timestamp: number; // When error occurred (Unix timestamp)
68
+ platform: 'node'; // Platform type
69
+ level: 'error' | 'warning'; // Severity level
70
+ logger: 'nexus'; // Which logger
71
+ message?: string; // Error message
72
+ fingerprint?: string[]; // Grouping key
73
+ }
74
+ ```
75
+
76
+ **Scope**: **GLOBAL** - Semua error akan punya metadata ini
77
+
78
+ **Contoh**:
79
+ ```json
80
+ {
81
+ "event_id": "a1b2c3d4e5f6g7h8",
82
+ "timestamp": 1701619200,
83
+ "platform": "node",
84
+ "level": "error",
85
+ "message": "User validation failed"
86
+ }
87
+ ```
88
+
89
+ ---
90
+
91
+ ### 2. Error/Exception Data
92
+
93
+ **Apa yang disimpan:**
94
+ ```typescript
95
+ {
96
+ type: string; // Error class name (e.g., "ValidationError")
97
+ value: string; // Error message
98
+ stacktrace: {
99
+ frames: [
100
+ {
101
+ filename: string; // File path
102
+ function: string; // Function name
103
+ lineno: number; // Line number
104
+ colno: number; // Column number
105
+ abs_path: string; // Absolute path
106
+ in_app: boolean; // Is this our code?
107
+ context_line?: string; // Line of code
108
+ pre_context?: string[]; // Lines before
109
+ post_context?: string[]; // Lines after
110
+ }
111
+ ]
112
+ };
113
+ mechanism: {
114
+ type: 'generic' | 'unhandledRejection' | 'uncaughtException';
115
+ handled: boolean;
116
+ };
117
+ }
118
+ ```
119
+
120
+ **Scope**: **ERROR-SPECIFIC** - Hanya pada error events
121
+
122
+ **Contoh Stack Trace**:
123
+ ```json
124
+ {
125
+ "exception": {
126
+ "values": [{
127
+ "type": "TypeError",
128
+ "value": "Cannot read property 'email' of undefined",
129
+ "stacktrace": {
130
+ "frames": [
131
+ {
132
+ "filename": "/app/src/handlers/user.ts",
133
+ "function": "createUser",
134
+ "lineno": 42,
135
+ "colno": 15,
136
+ "abs_path": "/app/src/handlers/user.ts",
137
+ "in_app": true,
138
+ "context_line": "const email = user.email.toLowerCase();",
139
+ "pre_context": ["async function createUser(user) {", " // Validate user"],
140
+ "post_context": [" return email;", "}"]
141
+ },
142
+ {
143
+ "filename": "/app/node_modules/express/index.js",
144
+ "function": "handler",
145
+ "in_app": false
146
+ }
147
+ ]
148
+ }
149
+ }]
150
+ }
151
+ }
152
+ ```
153
+
154
+ ---
155
+
156
+ ### 3. Server Context
157
+
158
+ **Apa yang disimpan:**
159
+ ```typescript
160
+ {
161
+ server_name: string; // Server hostname
162
+ release: string; // App version (e.g., "1.0.0")
163
+ environment: string; // 'production' | 'staging' | 'development'
164
+ contexts: {
165
+ runtime: {
166
+ name: 'node';
167
+ version: string; // Node.js version (e.g., "v20.10.0")
168
+ };
169
+ os: {
170
+ name: string; // Platform (e.g., 'linux', 'darwin')
171
+ version: string; // Architecture (e.g., 'x64')
172
+ };
173
+ };
174
+ }
175
+ ```
176
+
177
+ **Scope**: **GLOBAL** - Ada di setiap event
178
+
179
+ **Contoh**:
180
+ ```json
181
+ {
182
+ "server_name": "api-server-1",
183
+ "release": "1.0.0",
184
+ "environment": "production",
185
+ "contexts": {
186
+ "runtime": {
187
+ "name": "node",
188
+ "version": "v20.10.0"
189
+ },
190
+ "os": {
191
+ "name": "linux",
192
+ "version": "x64"
193
+ }
194
+ }
195
+ }
196
+ ```
197
+
198
+ ---
199
+
200
+ ### 4. User Context
201
+
202
+ **Apa yang disimpan:**
203
+ ```typescript
204
+ {
205
+ id?: string; // User ID (e.g., "user-123")
206
+ email?: string; // User email
207
+ username?: string; // Username
208
+ ip_address?: string; // User's IP address
209
+ [key: string]: any; // Custom user data
210
+ }
211
+ ```
212
+
213
+ **Scope**: **CONDITIONAL** - Hanya jika middleware `extractUser` mengembalikan data
214
+
215
+ **Contoh**:
216
+ ```json
217
+ {
218
+ "user": {
219
+ "id": "user-12345",
220
+ "email": "john@example.com",
221
+ "username": "john_doe",
222
+ "ip_address": "192.168.1.1",
223
+ "subscription": "premium",
224
+ "country": "US"
225
+ }
226
+ }
227
+ ```
228
+
229
+ **Cara Data Dikumpulkan**:
230
+ ```typescript
231
+ app.sentry({
232
+ dsn: process.env.SENTRY_DSN!
233
+ }, {
234
+ extractUser: (ctx) => {
235
+ if (ctx.user) {
236
+ return {
237
+ id: ctx.user.id,
238
+ email: ctx.user.email,
239
+ username: ctx.user.name,
240
+ subscription: ctx.user.plan,
241
+ country: ctx.user.country
242
+ };
243
+ }
244
+ return null;
245
+ }
246
+ });
247
+ ```
248
+
249
+ ---
250
+
251
+ ### 5. HTTP Request Context
252
+
253
+ **Apa yang disimpan:**
254
+ ```typescript
255
+ {
256
+ request: {
257
+ url?: string; // Full URL
258
+ method?: string; // HTTP method (GET, POST, etc.)
259
+ headers?: {
260
+ [key: string]: string;
261
+ };
262
+ query_string?: string; // Query params (from URL)
263
+ data?: any; // Request body (optional)
264
+ cookies?: string; // Cookie header
265
+ };
266
+ }
267
+ ```
268
+
269
+ **Scope**: **REQUEST-BASED** - Dikumpulkan dari middleware
270
+
271
+ **Contoh Lengkap**:
272
+ ```json
273
+ {
274
+ "request": {
275
+ "url": "https://api.example.com/api/users/123?sort=name",
276
+ "method": "POST",
277
+ "query_string": "sort=name",
278
+ "headers": {
279
+ "user-agent": "Mozilla/5.0...",
280
+ "content-type": "application/json",
281
+ "accept": "application/json"
282
+ },
283
+ "data": {
284
+ "name": "John Doe",
285
+ "email": "john@example.com"
286
+ },
287
+ "cookies": "session=abc123; theme=dark"
288
+ }
289
+ }
290
+ ```
291
+
292
+ **Kontrol Data yang Dikirim**:
293
+ ```typescript
294
+ app.sentry({
295
+ dsn: process.env.SENTRY_DSN!
296
+ }, {
297
+ // Include request body in error reports
298
+ includeRequestBody: true,
299
+
300
+ // Include request headers
301
+ includeHeaders: true,
302
+
303
+ // Headers to exclude (sensitive data)
304
+ excludeHeaders: [
305
+ 'authorization',
306
+ 'cookie',
307
+ 'x-api-key',
308
+ 'x-auth-token'
309
+ ]
310
+ });
311
+ ```
312
+
313
+ ---
314
+
315
+ ### 6. Tags
316
+
317
+ **Apa yang disimpan:**
318
+ ```typescript
319
+ {
320
+ tags: {
321
+ [key: string]: string; // Simple key-value for filtering
322
+ }
323
+ }
324
+ ```
325
+
326
+ **Scope**: **FLEXIBLE** - Global + per-event
327
+
328
+ **Contoh**:
329
+ ```json
330
+ {
331
+ "tags": {
332
+ "http.method": "POST",
333
+ "http.url": "/api/users",
334
+ "http.status_code": "500",
335
+ "environment": "production",
336
+ "version": "1.0.0",
337
+ "region": "us-east-1",
338
+ "team": "backend",
339
+ "module": "payments"
340
+ }
341
+ }
342
+ ```
343
+
344
+ **Penggunaan**:
345
+ ```typescript
346
+ // Global tags (di semua event)
347
+ app.sentry({
348
+ tags: {
349
+ app: 'my-api',
350
+ version: '1.0.0',
351
+ team: 'backend'
352
+ }
353
+ });
354
+
355
+ // Per-event tags
356
+ captureException(error, {
357
+ tags: {
358
+ module: 'payments',
359
+ operation: 'charge'
360
+ }
361
+ });
362
+
363
+ // Manually set tags
364
+ setTag('feature_flag.new_checkout', 'enabled');
365
+ ```
366
+
367
+ ---
368
+
369
+ ### 7. Extra Context
370
+
371
+ **Apa yang disimpan:**
372
+ ```typescript
373
+ {
374
+ extra: {
375
+ [key: string]: any; // Any data (objects, arrays, etc.)
376
+ }
377
+ }
378
+ ```
379
+
380
+ **Scope**: **FLEXIBLE** - Global + per-event
381
+
382
+ **Contoh**:
383
+ ```json
384
+ {
385
+ "extra": {
386
+ "user_id": "user-123",
387
+ "order_id": "order-456",
388
+ "payment_method": "credit_card",
389
+ "amount": 99.99,
390
+ "cart_items": [
391
+ { "sku": "PROD-001", "qty": 2 },
392
+ { "sku": "PROD-002", "qty": 1 }
393
+ ],
394
+ "feature_flags": {
395
+ "new_checkout": true,
396
+ "ai_recommendations": false
397
+ },
398
+ "trace_id": "xyz-789",
399
+ "db_query_time_ms": 245
400
+ }
401
+ }
402
+ ```
403
+
404
+ **Penggunaan**:
405
+ ```typescript
406
+ // Global extra
407
+ app.sentry({
408
+ extra: {
409
+ api_version: 'v2',
410
+ database: 'postgres'
411
+ }
412
+ });
413
+
414
+ // Per-event extra
415
+ captureException(error, {
416
+ extra: {
417
+ user_id: ctx.user?.id,
418
+ order_id: ctx.params.orderId,
419
+ database_query: dbQuery
420
+ }
421
+ });
422
+
423
+ // Set extra manually
424
+ setExtra('current_feature_flags', {
425
+ ai_search: true,
426
+ dark_mode: false
427
+ });
428
+ ```
429
+
430
+ ---
431
+
432
+ ### 8. Breadcrumbs
433
+
434
+ **Apa yang disimpan:**
435
+ ```typescript
436
+ [
437
+ {
438
+ type: 'http' | 'default' | 'navigation' | 'error' | 'debug' | 'query' | 'info';
439
+ category?: string;
440
+ message?: string;
441
+ level?: 'debug' | 'info' | 'warning' | 'error';
442
+ timestamp?: number;
443
+ data?: Record<string, any>;
444
+ }
445
+ ]
446
+ ```
447
+
448
+ **Scope**: **REQUEST-BASED** - Per transaction (max 100)
449
+
450
+ **Contoh Breadcrumb Trail**:
451
+ ```json
452
+ {
453
+ "breadcrumbs": [
454
+ {
455
+ "type": "info",
456
+ "category": "auth",
457
+ "message": "User login",
458
+ "level": "info",
459
+ "timestamp": 1701619100,
460
+ "data": { "user_id": "user-123" }
461
+ },
462
+ {
463
+ "type": "http",
464
+ "category": "http.request",
465
+ "message": "GET /api/cart",
466
+ "level": "info",
467
+ "timestamp": 1701619150,
468
+ "data": {
469
+ "method": "GET",
470
+ "url": "/api/cart",
471
+ "status_code": 200,
472
+ "duration_ms": 45
473
+ }
474
+ },
475
+ {
476
+ "type": "query",
477
+ "category": "database",
478
+ "message": "SELECT * FROM orders WHERE user_id = ?",
479
+ "level": "info",
480
+ "timestamp": 1701619160,
481
+ "data": {
482
+ "duration_ms": 32,
483
+ "rows_affected": 5
484
+ }
485
+ },
486
+ {
487
+ "type": "default",
488
+ "category": "payment",
489
+ "message": "Processing payment",
490
+ "level": "info",
491
+ "timestamp": 1701619170,
492
+ "data": { "amount": 99.99, "method": "stripe" }
493
+ },
494
+ {
495
+ "type": "error",
496
+ "category": "payment",
497
+ "message": "Payment declined",
498
+ "level": "error",
499
+ "timestamp": 1701619175,
500
+ "data": { "code": "card_declined", "retry_count": 2 }
501
+ }
502
+ ]
503
+ }
504
+ ```
505
+
506
+ **Penggunaan**:
507
+ ```typescript
508
+ addBreadcrumb({
509
+ type: 'http',
510
+ category: 'api.call',
511
+ message: 'Calling external API',
512
+ level: 'info',
513
+ data: {
514
+ endpoint: 'https://api.stripe.com/charges',
515
+ method: 'POST',
516
+ timeout: 5000
517
+ }
518
+ });
519
+ ```
520
+
521
+ ---
522
+
523
+ ### 9. Performance Tracing
524
+
525
+ **Apa yang disimpan**:
526
+ ```typescript
527
+ {
528
+ trace_id: string; // Unique trace ID
529
+ span_id: string; // This span's ID
530
+ parent_span_id?: string; // Parent span (if nested)
531
+ name: string; // Span name
532
+ op: string; // Operation type
533
+ status: string; // 'ok' | 'error'
534
+ start_timestamp: number; // Start time (Unix seconds)
535
+ timestamp: number; // End time
536
+ tags?: Record<string, string>;
537
+ data?: Record<string, any>;
538
+ spans?: Span[]; // Child spans
539
+ }
540
+ ```
541
+
542
+ **Scope**: **CONDITIONAL** - Hanya jika `enableTracing: true`
543
+
544
+ **Contoh Transaction dengan Spans**:
545
+ ```json
546
+ {
547
+ "trace_id": "a1b2c3d4e5f6g7h8i9j0",
548
+ "span_id": "k1l2m3n4o5p6q7r8",
549
+ "name": "POST /api/orders",
550
+ "op": "http.server",
551
+ "status": "ok",
552
+ "start_timestamp": 1701619200.123,
553
+ "timestamp": 1701619200.456,
554
+ "tags": {
555
+ "http.method": "POST",
556
+ "http.status_code": "201"
557
+ },
558
+ "data": {
559
+ "http.response_time_ms": 333
560
+ },
561
+ "spans": [
562
+ {
563
+ "span_id": "r8s9t0u1v2w3x4y5",
564
+ "parent_span_id": "k1l2m3n4o5p6q7r8",
565
+ "op": "db.query",
566
+ "description": "SELECT * FROM users WHERE id = ?",
567
+ "status": "ok",
568
+ "start_timestamp": 1701619200.150,
569
+ "timestamp": 1701619200.180,
570
+ "data": {
571
+ "duration_ms": 30,
572
+ "rows": 1
573
+ }
574
+ },
575
+ {
576
+ "span_id": "z1a2b3c4d5e6f7g8",
577
+ "parent_span_id": "k1l2m3n4o5p6q7r8",
578
+ "op": "http.request",
579
+ "description": "POST https://api.stripe.com/charges",
580
+ "status": "ok",
581
+ "start_timestamp": 1701619200.200,
582
+ "timestamp": 1701619200.350,
583
+ "data": {
584
+ "duration_ms": 150,
585
+ "status_code": 200
586
+ }
587
+ }
588
+ ]
589
+ }
590
+ ```
591
+
592
+ ---
593
+
594
+ ## Scope Hierarchy
595
+
596
+ Bagaimana data dikumpulkan pada berbagai tingkat:
597
+
598
+ ```
599
+ ┌─────────────────────────────────────────────────────────┐
600
+ │ Application Scope (Initialization) │
601
+ │ - environment │
602
+ │ - release │
603
+ │ - serverName │
604
+ │ - sampleRate │
605
+ │ - Global tags │
606
+ │ - Global extra │
607
+ └──────────────┬──────────────────────────────────────────┘
608
+
609
+ ┌──────────────┴──────────────────────────────────────────┐
610
+ │ Request Scope (Each HTTP Request) │
611
+ │ - user (from extractUser middleware) │
612
+ │ - correlationId │
613
+ │ - timestamp │
614
+ │ - HTTP request context │
615
+ │ - URL, method, headers, body │
616
+ │ - Breadcrumbs (per request, max 100) │
617
+ └──────────────┬──────────────────────────────────────────┘
618
+
619
+ ┌──────────────┴──────────────────────────────────────────┐
620
+ │ Transaction Scope (Performance Tracing) │
621
+ │ - trace_id, span_id │
622
+ │ - op (operation type) │
623
+ │ - Child spans (db queries, API calls, etc.) │
624
+ │ - tags (http.method, http.status_code, etc.) │
625
+ │ - data (duration_ms, response_time, etc.) │
626
+ └──────────────┬──────────────────────────────────────────┘
627
+
628
+ ┌──────────────┴──────────────────────────────────────────┐
629
+ │ Event Scope (Error/Message Capture) │
630
+ │ - event_id │
631
+ │ - level (error, warning, info, etc.) │
632
+ │ - exception/message │
633
+ │ - fingerprint (for grouping) │
634
+ │ - Per-event tags & extra │
635
+ └─────────────────────────────────────────────────────────┘
636
+ ```
637
+
638
+ ---
639
+
640
+ ## Security & Privacy
641
+
642
+ ### Data Yang TIDAK Dikirim (Secara Default):
643
+
644
+ 1. **Passwords & Secrets**
645
+ ```typescript
646
+ // TIDAK dikirim:
647
+ password, token, secret, apiKey, auth, authorization
648
+ ```
649
+
650
+ 2. **Personal Information (PII)**
651
+ ```typescript
652
+ // Kontrol dengan flag:
653
+ app.sentry({
654
+ sendDefaultPii: false // Default
655
+ });
656
+ ```
657
+
658
+ 3. **Sensitive Headers**
659
+ ```typescript
660
+ app.sentry({}, {
661
+ excludeHeaders: [
662
+ 'authorization',
663
+ 'cookie',
664
+ 'x-api-key',
665
+ 'x-auth-token',
666
+ 'x-csrf-token'
667
+ ]
668
+ });
669
+ ```
670
+
671
+ ### Data Filtering & Scrubbing:
672
+
673
+ ```typescript
674
+ app.sentry({
675
+ dsn: process.env.SENTRY_DSN!,
676
+
677
+ beforeSend: (event, hint) => {
678
+ // Redact credit card numbers
679
+ if (event.request?.data?.card_number) {
680
+ event.request.data.card_number = '[REDACTED]';
681
+ }
682
+
683
+ // Remove sensitive query params
684
+ if (event.request?.query_string) {
685
+ event.request.query_string = event.request.query_string
686
+ .replace(/token=[^&]*/g, 'token=[REDACTED]');
687
+ }
688
+
689
+ // Scrub emails in some cases
690
+ if (process.env.NODE_ENV === 'production') {
691
+ if (event.user?.email) {
692
+ const parts = event.user.email.split('@');
693
+ event.user.email = parts[0].substring(0, 2) + '***@' + parts[1];
694
+ }
695
+ }
696
+
697
+ return event;
698
+ }
699
+ });
700
+ ```
701
+
702
+ ### Compliance:
703
+
704
+ - **GDPR**: Datas disimpan di Sentry server (pastikan punya DPA)
705
+ - **CCPA**: User punya hak untuk request/delete data
706
+ - **Data Retention**: Set retention policy di Sentry dashboard
707
+
708
+ ---
709
+
710
+ ## Storage & Retention
711
+
712
+ ### Di Mana Data Disimpan:
713
+
714
+ 1. **Sentry Cloud** (default)
715
+ ```typescript
716
+ app.sentry({
717
+ dsn: 'https://key@org.ingest.sentry.io/project'
718
+ // Data dikirim ke Sentry cloud servers
719
+ });
720
+ ```
721
+
722
+ 2. **Self-Hosted Sentry**
723
+ ```typescript
724
+ app.sentry({
725
+ dsn: 'https://key@sentry.example.com/project'
726
+ // Data dikirim ke server Anda sendiri
727
+ });
728
+ ```
729
+
730
+ ### Retention Policy (default):
731
+
732
+ - **Errors**: 30 hari
733
+ - **Transactions**: 30 hari (bisa dikurangi)
734
+ - **Attachments**: 7 hari
735
+
736
+ ### Quota:
737
+
738
+ Default free tier:
739
+ - 5,000 errors/bulan
740
+ - 10,000 transactions/bulan
741
+ - Bisa ditingkatkan dengan paid plan
742
+
743
+ ---
744
+
745
+ ## Data Flow Diagram
746
+
747
+ ```
748
+ ┌────────────────────────────┐
749
+ │ Application Starts │
750
+ │ - app.sentry({dsn:...}) │
751
+ └──────────────┬─────────────┘
752
+
753
+ ┌──────────────┴──────────────┐
754
+ │ HTTP Request Comes In │
755
+ │ middleware: createSentry() │
756
+ └──────────────┬──────────────┘
757
+
758
+ ┌────────┴────────┐
759
+ │ │
760
+ ┌──┴──┐ ┌────┴───┐
761
+ │ OK │ │ ERROR │
762
+ └──┬──┘ └────┬───┘
763
+ │ │
764
+ │ ┌───────┴─────────┐
765
+ │ │ │
766
+ │ captureException() captureMessage()
767
+ │ (automatic or manual) (manual)
768
+ │ │ │
769
+ │ └────────┬────────┘
770
+ │ │
771
+ │ ┌────────┴────────────────┐
772
+ │ │ │
773
+ │ beforeSend() filter? beforeSend() filter?
774
+ │ Drop? Drop?
775
+ │ │ │
776
+ │ └────────┬────────────────┘
777
+ │ │
778
+ │ Build Envelope:
779
+ │ - Event metadata
780
+ │ - Exception/message
781
+ │ - User context
782
+ │ - Request context
783
+ │ - Tags & extra
784
+ │ - Breadcrumbs
785
+ │ - Tracing data
786
+ │ │
787
+ │ ┌────────┴──────────┐
788
+ │ │ │
789
+ │ HTTP POST to Sentry (Optional)
790
+ │ async (non-blocking) Store locally
791
+ │ │
792
+ │ │
793
+ │ Sentry receives event
794
+ │ - Processes & deduplicates
795
+ │ - Creates issue group
796
+ │ - Stores in database
797
+ │ - Updates dashboard
798
+ │ - Triggers alerts (if configured)
799
+
800
+ ┌──┴──┐
801
+ │Done │
802
+ └─────┘
803
+ ```
804
+
805
+ ---
806
+
807
+ ## Contoh Lengkap Data Sentry Event
808
+
809
+ ```typescript
810
+ // Scenario: User tries to checkout dengan credit card yang declined
811
+
812
+ app.post('/api/checkout', async (ctx) => {
813
+ // Data yang dikumpulkan oleh Sentry:
814
+ });
815
+ ```
816
+
817
+ **Event Lengkap yang Dikirim ke Sentry**:
818
+
819
+ ```json
820
+ {
821
+ "event_id": "a1b2c3d4e5f6g7h8",
822
+ "timestamp": 1701619200.123,
823
+ "platform": "node",
824
+ "level": "error",
825
+ "logger": "nexus",
826
+ "message": "Payment declined",
827
+
828
+ "exception": {
829
+ "values": [{
830
+ "type": "PaymentError",
831
+ "value": "Card declined: insufficient_funds",
832
+ "stacktrace": {
833
+ "frames": [
834
+ {
835
+ "filename": "/app/src/handlers/checkout.ts",
836
+ "function": "processPayment",
837
+ "lineno": 45,
838
+ "in_app": true
839
+ }
840
+ ]
841
+ }
842
+ }]
843
+ },
844
+
845
+ "user": {
846
+ "id": "user-123",
847
+ "email": "john@example.com",
848
+ "ip_address": "192.168.1.1",
849
+ "subscription_tier": "free"
850
+ },
851
+
852
+ "request": {
853
+ "url": "https://api.example.com/api/checkout",
854
+ "method": "POST",
855
+ "headers": {
856
+ "user-agent": "Mozilla/5.0...",
857
+ "content-type": "application/json"
858
+ },
859
+ "data": {
860
+ "amount": 99.99,
861
+ "currency": "USD",
862
+ "card_last_four": "4242"
863
+ }
864
+ },
865
+
866
+ "tags": {
867
+ "http.method": "POST",
868
+ "http.url": "/api/checkout",
869
+ "http.status_code": "402",
870
+ "feature": "checkout",
871
+ "payment_method": "credit_card",
872
+ "card_brand": "visa",
873
+ "error_code": "insufficient_funds"
874
+ },
875
+
876
+ "extra": {
877
+ "order_id": "order-456",
878
+ "user_tier": "free",
879
+ "cart_total": 99.99,
880
+ "retry_count": 2,
881
+ "payment_processor": "stripe",
882
+ "processor_response_time_ms": 1200
883
+ },
884
+
885
+ "breadcrumbs": [
886
+ {
887
+ "type": "info",
888
+ "category": "checkout",
889
+ "message": "Checkout page loaded",
890
+ "timestamp": 1701619100
891
+ },
892
+ {
893
+ "type": "info",
894
+ "category": "cart",
895
+ "message": "Cart validated",
896
+ "data": { "items": 3, "total": 99.99 },
897
+ "timestamp": 1701619110
898
+ },
899
+ {
900
+ "type": "http",
901
+ "category": "http.request",
902
+ "message": "POST /api/checkout",
903
+ "timestamp": 1701619190
904
+ },
905
+ {
906
+ "type": "query",
907
+ "category": "database",
908
+ "message": "SELECT user_payment_methods WHERE user_id = ?",
909
+ "data": { "duration_ms": 15 },
910
+ "timestamp": 1701619195
911
+ },
912
+ {
913
+ "type": "http",
914
+ "category": "payment",
915
+ "message": "Calling Stripe API",
916
+ "data": { "endpoint": "/v1/charges", "amount": 9999 },
917
+ "timestamp": 1701619198
918
+ }
919
+ ],
920
+
921
+ "contexts": {
922
+ "runtime": {
923
+ "name": "node",
924
+ "version": "v20.10.0"
925
+ },
926
+ "os": {
927
+ "name": "linux",
928
+ "version": "x64"
929
+ }
930
+ },
931
+
932
+ "server_name": "api-server-1",
933
+ "release": "1.0.0",
934
+ "environment": "production"
935
+ }
936
+ ```
937
+
938
+ ---
939
+
940
+ ## Best Practices Pengumpulan Data
941
+
942
+ 1. **Jangan kirim password/token**
943
+ ```typescript
944
+ beforeSend: (event) => {
945
+ if (event.request?.data?.password) {
946
+ delete event.request.data.password;
947
+ }
948
+ return event;
949
+ }
950
+ ```
951
+
952
+ 2. **Exclude sensitive headers**
953
+ ```typescript
954
+ app.sentry({}, {
955
+ excludeHeaders: ['authorization', 'cookie', 'x-api-key']
956
+ });
957
+ ```
958
+
959
+ 3. **Gunakan tags untuk filtering**
960
+ ```typescript
961
+ captureException(error, {
962
+ tags: {
963
+ feature: 'payments',
964
+ severity: 'high'
965
+ }
966
+ });
967
+ ```
968
+
969
+ 4. **Samping breadcrumbs saja yang penting**
970
+ ```typescript
971
+ addBreadcrumb({
972
+ category: 'payment',
973
+ message: 'Payment attempt',
974
+ data: { amount: 99.99 } // Good
975
+ // JANGAN: data: { all: bigData } // Bad
976
+ });
977
+ ```
978
+
979
+ 5. **Set user context setelah auth**
980
+ ```typescript
981
+ app.sentry({}, {
982
+ extractUser: (ctx) => {
983
+ return ctx.user ? {
984
+ id: ctx.user.id,
985
+ email: ctx.user.email
986
+ } : null;
987
+ }
988
+ });
989
+ ```
990
+
991
+ 6. **Fingerprint untuk grouping yang smart**
992
+ ```typescript
993
+ captureException(error, {
994
+ fingerprint: ['payment-declined', error.code]
995
+ });
996
+ ```