@motiadev/core 0.14.0-beta.165-516298 → 0.14.0-beta.165-454838

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 (522) hide show
  1. package/dist/index.d.ts +30 -0
  2. package/dist/index.d.ts.map +1 -0
  3. package/dist/index.js +72 -0
  4. package/dist/jest.config.d.ts +8 -0
  5. package/dist/jest.config.d.ts.map +1 -0
  6. package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.ts +13 -0
  7. package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.ts.map +1 -0
  8. package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.js +53 -0
  9. package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.ts +15 -0
  10. package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.ts.map +1 -0
  11. package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.js +49 -0
  12. package/dist/src/adapters/defaults/index.d.ts +9 -0
  13. package/dist/src/adapters/defaults/index.d.ts.map +1 -0
  14. package/dist/src/adapters/defaults/index.js +19 -0
  15. package/dist/src/adapters/defaults/state/file-state-adapter.d.ts +23 -0
  16. package/dist/src/adapters/defaults/state/file-state-adapter.d.ts.map +1 -0
  17. package/dist/src/adapters/defaults/state/file-state-adapter.js +149 -0
  18. package/dist/src/adapters/defaults/state/memory-state-adapter.d.ts +16 -0
  19. package/dist/src/adapters/defaults/state/memory-state-adapter.d.ts.map +1 -0
  20. package/dist/src/adapters/defaults/state/memory-state-adapter.js +69 -0
  21. package/dist/src/adapters/defaults/state/utils.d.ts +4 -0
  22. package/dist/src/adapters/defaults/state/utils.d.ts.map +1 -0
  23. package/dist/src/adapters/defaults/state/utils.js +66 -0
  24. package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.ts +9 -0
  25. package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.ts.map +1 -0
  26. package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.js +14 -0
  27. package/dist/src/adapters/defaults/stream/file-stream-adapter.d.ts +22 -0
  28. package/dist/src/adapters/defaults/stream/file-stream-adapter.d.ts.map +1 -0
  29. package/dist/src/adapters/defaults/stream/file-stream-adapter.js +125 -0
  30. package/dist/src/adapters/defaults/stream/index.d.ts +5 -0
  31. package/dist/src/adapters/defaults/stream/index.d.ts.map +1 -0
  32. package/dist/src/adapters/defaults/stream/index.js +11 -0
  33. package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.ts +6 -0
  34. package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.ts.map +1 -0
  35. package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.js +10 -0
  36. package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.ts +16 -0
  37. package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.ts.map +1 -0
  38. package/dist/src/adapters/defaults/stream/memory-stream-adapter.js +55 -0
  39. package/dist/src/adapters/interfaces/cron-adapter.interface.d.ts +29 -0
  40. package/dist/src/adapters/interfaces/cron-adapter.interface.d.ts.map +1 -0
  41. package/dist/src/adapters/interfaces/cron-adapter.interface.js +2 -0
  42. package/dist/src/adapters/interfaces/event-adapter.interface.d.ts +15 -0
  43. package/dist/src/adapters/interfaces/event-adapter.interface.d.ts.map +1 -0
  44. package/dist/src/adapters/interfaces/event-adapter.interface.js +2 -0
  45. package/dist/src/adapters/interfaces/index.d.ts +7 -0
  46. package/dist/src/adapters/interfaces/index.d.ts.map +1 -0
  47. package/dist/src/adapters/interfaces/index.js +5 -0
  48. package/dist/src/adapters/interfaces/observability-adapter.interface.d.ts +23 -0
  49. package/dist/src/adapters/interfaces/observability-adapter.interface.d.ts.map +1 -0
  50. package/dist/src/adapters/interfaces/observability-adapter.interface.js +2 -0
  51. package/dist/src/adapters/interfaces/state-adapter.interface.d.ts +24 -0
  52. package/dist/src/adapters/interfaces/state-adapter.interface.d.ts.map +1 -0
  53. package/dist/src/adapters/interfaces/state-adapter.interface.js +2 -0
  54. package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.ts +6 -0
  55. package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.ts.map +1 -0
  56. package/dist/src/adapters/interfaces/stream-adapter-manager.interface.js +2 -0
  57. package/dist/src/adapters/interfaces/stream-adapter.interface.d.ts +22 -0
  58. package/dist/src/adapters/interfaces/stream-adapter.interface.d.ts.map +1 -0
  59. package/dist/src/adapters/interfaces/stream-adapter.interface.js +16 -0
  60. package/dist/src/analytics/utils.d.ts +6 -0
  61. package/dist/src/analytics/utils.d.ts.map +1 -0
  62. package/dist/src/analytics/utils.js +51 -0
  63. package/dist/src/call-step-file.d.ts +16 -0
  64. package/dist/src/call-step-file.d.ts.map +1 -0
  65. package/dist/src/call-step-file.js +198 -0
  66. package/dist/src/config.d.ts +3 -0
  67. package/dist/src/config.d.ts.map +1 -0
  68. package/dist/src/config.js +5 -0
  69. package/dist/src/config.types.d.ts +17 -0
  70. package/dist/src/config.types.d.ts.map +1 -0
  71. package/dist/src/config.types.js +2 -0
  72. package/dist/src/cron-handler.d.ts +14 -0
  73. package/dist/src/cron-handler.d.ts.map +1 -0
  74. package/dist/src/cron-handler.js +132 -0
  75. package/dist/src/endpoints/analytics-endpoint.d.ts +3 -0
  76. package/dist/src/endpoints/analytics-endpoint.d.ts.map +1 -0
  77. package/dist/src/endpoints/analytics-endpoint.js +28 -0
  78. package/dist/src/endpoints/flows-config-endpoint.d.ts +4 -0
  79. package/dist/src/endpoints/flows-config-endpoint.d.ts.map +1 -0
  80. package/dist/src/endpoints/flows-config-endpoint.js +34 -0
  81. package/dist/src/endpoints/flows-endpoint.d.ts +3 -0
  82. package/dist/src/endpoints/flows-endpoint.d.ts.map +1 -0
  83. package/dist/src/endpoints/flows-endpoint.js +29 -0
  84. package/dist/src/endpoints/step-endpoint.d.ts +4 -0
  85. package/dist/src/endpoints/step-endpoint.d.ts.map +1 -0
  86. package/dist/src/endpoints/step-endpoint.js +45 -0
  87. package/dist/src/generate-trace-id.d.ts +3 -0
  88. package/dist/src/generate-trace-id.d.ts.map +1 -0
  89. package/dist/src/generate-trace-id.js +14 -0
  90. package/dist/src/get-step-config.d.ts +5 -0
  91. package/dist/src/get-step-config.d.ts.map +1 -0
  92. package/dist/src/get-step-config.js +68 -0
  93. package/dist/src/get-step-language.d.ts +2 -0
  94. package/dist/src/get-step-language.d.ts.map +1 -0
  95. package/dist/src/get-step-language.js +27 -0
  96. package/dist/src/guards.d.ts +6 -0
  97. package/dist/src/guards.d.ts.map +1 -0
  98. package/dist/src/guards.js +11 -0
  99. package/dist/src/helper/flows-helper.d.ts +6 -0
  100. package/dist/src/helper/flows-helper.d.ts.map +1 -0
  101. package/dist/src/helper/flows-helper.js +143 -0
  102. package/dist/src/infrastructure-validator/defaults.d.ts +4 -0
  103. package/dist/src/infrastructure-validator/defaults.d.ts.map +1 -0
  104. package/dist/src/infrastructure-validator/defaults.js +16 -0
  105. package/dist/src/infrastructure-validator/index.d.ts +4 -0
  106. package/dist/src/infrastructure-validator/index.d.ts.map +1 -0
  107. package/dist/src/infrastructure-validator/index.js +13 -0
  108. package/dist/src/infrastructure-validator/schemas.d.ts +45 -0
  109. package/dist/src/infrastructure-validator/schemas.d.ts.map +1 -0
  110. package/dist/src/infrastructure-validator/schemas.js +100 -0
  111. package/dist/src/infrastructure-validator/types.d.ts +21 -0
  112. package/dist/src/infrastructure-validator/types.d.ts.map +1 -0
  113. package/dist/src/infrastructure-validator/types.js +2 -0
  114. package/dist/src/infrastructure-validator/validations.d.ts +4 -0
  115. package/dist/src/infrastructure-validator/validations.d.ts.map +1 -0
  116. package/dist/src/infrastructure-validator/validations.js +62 -0
  117. package/dist/src/language-runner.d.ts +15 -0
  118. package/dist/src/language-runner.d.ts.map +1 -0
  119. package/dist/src/language-runner.js +31 -0
  120. package/dist/src/locked-data.d.ts +78 -0
  121. package/dist/src/locked-data.d.ts.map +1 -0
  122. package/dist/src/locked-data.js +284 -0
  123. package/dist/src/logger-factory.d.ts +19 -0
  124. package/dist/src/logger-factory.d.ts.map +1 -0
  125. package/dist/src/logger-factory.js +27 -0
  126. package/dist/src/logger.d.ts +26 -0
  127. package/dist/src/logger.d.ts.map +1 -0
  128. package/dist/src/logger.js +60 -0
  129. package/dist/src/mermaid-generator.d.ts +5 -0
  130. package/dist/src/mermaid-generator.d.ts.map +1 -0
  131. package/dist/src/mermaid-generator.js +203 -0
  132. package/dist/src/motia.d.ts +33 -0
  133. package/dist/src/motia.d.ts.map +1 -0
  134. package/dist/src/motia.js +4 -0
  135. package/dist/src/node/can-access.d.ts +2 -0
  136. package/dist/src/node/can-access.d.ts.map +1 -0
  137. package/dist/src/node/can-access.js +44 -0
  138. package/dist/src/node/get-config.d.ts +2 -0
  139. package/dist/src/node/get-config.d.ts.map +1 -0
  140. package/dist/src/node/get-config.js +64 -0
  141. package/dist/src/node/logger.d.ts +16 -0
  142. package/dist/src/node/logger.d.ts.map +1 -0
  143. package/dist/src/node/logger.js +48 -0
  144. package/dist/src/node/middleware-compose.d.ts +2 -0
  145. package/dist/src/node/middleware-compose.d.ts.map +1 -0
  146. package/dist/src/node/middleware-compose.js +10 -0
  147. package/dist/src/node/node-runner.d.ts +2 -0
  148. package/dist/src/node/node-runner.d.ts.map +1 -0
  149. package/dist/src/node/node-runner.js +83 -0
  150. package/dist/src/node/rpc-state-manager.d.ts +12 -0
  151. package/dist/src/node/rpc-state-manager.d.ts.map +1 -0
  152. package/dist/src/node/rpc-state-manager.js +24 -0
  153. package/dist/src/node/rpc.d.ts +10 -0
  154. package/dist/src/node/rpc.d.ts.map +1 -0
  155. package/dist/src/node/rpc.js +50 -0
  156. package/dist/src/observability/create-trace.d.ts +4 -0
  157. package/dist/src/observability/create-trace.d.ts.map +1 -0
  158. package/dist/src/observability/create-trace.js +22 -0
  159. package/dist/src/observability/index.d.ts +4 -0
  160. package/dist/src/observability/index.d.ts.map +1 -0
  161. package/dist/src/observability/index.js +2 -0
  162. package/dist/src/observability/no-tracer.d.ts +10 -0
  163. package/dist/src/observability/no-tracer.d.ts.map +1 -0
  164. package/dist/src/observability/no-tracer.js +22 -0
  165. package/dist/src/observability/redis-trace-stream-adapter.d.ts +17 -0
  166. package/dist/src/observability/redis-trace-stream-adapter.d.ts.map +1 -0
  167. package/dist/src/observability/redis-trace-stream-adapter.js +65 -0
  168. package/dist/src/observability/stream-tracer.d.ts +23 -0
  169. package/dist/src/observability/stream-tracer.d.ts.map +1 -0
  170. package/dist/src/observability/stream-tracer.js +114 -0
  171. package/dist/src/observability/trace-manager.d.ts +14 -0
  172. package/dist/src/observability/trace-manager.d.ts.map +1 -0
  173. package/dist/src/observability/trace-manager.js +26 -0
  174. package/dist/src/observability/tracer.d.ts +19 -0
  175. package/dist/src/observability/tracer.d.ts.map +1 -0
  176. package/dist/src/observability/tracer.js +86 -0
  177. package/dist/src/observability/types.d.ts +75 -0
  178. package/dist/src/observability/types.d.ts.map +1 -0
  179. package/dist/src/observability/types.js +2 -0
  180. package/dist/src/pretty-print.d.ts +2 -0
  181. package/dist/src/pretty-print.d.ts.map +1 -0
  182. package/dist/src/pretty-print.js +63 -0
  183. package/dist/src/printer.d.ts +61 -0
  184. package/dist/src/printer.d.ts.map +1 -0
  185. package/dist/src/printer.js +164 -0
  186. package/dist/src/process-communication/communication-config.d.ts +8 -0
  187. package/dist/src/process-communication/communication-config.d.ts.map +1 -0
  188. package/dist/src/process-communication/communication-config.js +18 -0
  189. package/dist/src/process-communication/process-manager.d.ts +32 -0
  190. package/dist/src/process-communication/process-manager.d.ts.map +1 -0
  191. package/dist/src/process-communication/process-manager.js +88 -0
  192. package/dist/src/process-communication/rpc-processor-interface.d.ts +10 -0
  193. package/dist/src/process-communication/rpc-processor-interface.d.ts.map +1 -0
  194. package/dist/src/process-communication/rpc-processor-interface.js +2 -0
  195. package/dist/src/queue-manager.d.ts +42 -0
  196. package/dist/src/queue-manager.d.ts.map +1 -0
  197. package/dist/src/queue-manager.js +252 -0
  198. package/dist/src/ruby/get-ruby-config.d.ts +3 -0
  199. package/dist/src/ruby/get-ruby-config.d.ts.map +1 -0
  200. package/dist/src/ruby/get-ruby-config.js +34 -0
  201. package/dist/src/run-stream-can-access.d.ts +10 -0
  202. package/dist/src/run-stream-can-access.d.ts.map +1 -0
  203. package/dist/src/run-stream-can-access.js +59 -0
  204. package/dist/src/schema-utils.d.ts +9 -0
  205. package/dist/src/schema-utils.d.ts.map +1 -0
  206. package/dist/src/schema-utils.js +80 -0
  207. package/dist/src/server.d.ts +37 -0
  208. package/dist/src/server.d.ts.map +1 -0
  209. package/dist/src/server.js +344 -0
  210. package/dist/src/socket-server/helpers.d.ts +53 -0
  211. package/dist/src/socket-server/helpers.d.ts.map +1 -0
  212. package/dist/src/socket-server/helpers.js +28 -0
  213. package/dist/src/socket-server.d.ts +21 -0
  214. package/dist/src/socket-server.d.ts.map +1 -0
  215. package/dist/src/socket-server.js +127 -0
  216. package/dist/src/state/create-state-adapter.d.ts +8 -0
  217. package/dist/src/state/create-state-adapter.d.ts.map +1 -0
  218. package/dist/src/state/create-state-adapter.js +8 -0
  219. package/dist/src/step-handler-rpc-processor.d.ts +22 -0
  220. package/dist/src/step-handler-rpc-processor.d.ts.map +1 -0
  221. package/dist/src/step-handler-rpc-processor.js +63 -0
  222. package/dist/src/step-handler-rpc-stdin-processor.d.ts +23 -0
  223. package/dist/src/step-handler-rpc-stdin-processor.d.ts.map +1 -0
  224. package/dist/src/step-handler-rpc-stdin-processor.js +83 -0
  225. package/dist/src/step-handlers.d.ts +9 -0
  226. package/dist/src/step-handlers.d.ts.map +1 -0
  227. package/dist/src/step-handlers.js +77 -0
  228. package/dist/src/step-validator.d.ts +15 -0
  229. package/dist/src/step-validator.d.ts.map +1 -0
  230. package/dist/src/step-validator.js +135 -0
  231. package/dist/src/steps/emit.step.d.ts +12 -0
  232. package/dist/src/steps/emit.step.d.ts.map +1 -0
  233. package/dist/src/steps/emit.step.js +27 -0
  234. package/dist/src/steps/index.d.ts +3 -0
  235. package/dist/src/steps/index.d.ts.map +1 -0
  236. package/dist/src/steps/index.js +16 -0
  237. package/dist/src/streams/flows-config-stream.d.ts +14 -0
  238. package/dist/src/streams/flows-config-stream.d.ts.map +1 -0
  239. package/dist/src/streams/flows-config-stream.js +49 -0
  240. package/dist/src/streams/flows-stream.d.ts +12 -0
  241. package/dist/src/streams/flows-stream.d.ts.map +1 -0
  242. package/dist/src/streams/flows-stream.js +35 -0
  243. package/dist/src/streams/redis-logs-stream.d.ts +31 -0
  244. package/dist/src/streams/redis-logs-stream.d.ts.map +1 -0
  245. package/dist/src/streams/redis-logs-stream.js +84 -0
  246. package/dist/src/streams/stream-factory.d.ts +3 -0
  247. package/dist/src/streams/stream-factory.d.ts.map +1 -0
  248. package/dist/src/streams/stream-factory.js +2 -0
  249. package/dist/src/types/app-config-types.d.ts +45 -0
  250. package/dist/src/types/app-config-types.d.ts.map +1 -0
  251. package/dist/src/types/app-config-types.js +2 -0
  252. package/dist/src/types/flows-config-types.d.ts +10 -0
  253. package/dist/src/types/flows-config-types.d.ts.map +1 -0
  254. package/dist/src/types/flows-config-types.js +2 -0
  255. package/dist/src/types/flows-types.d.ts +39 -0
  256. package/dist/src/types/flows-types.d.ts.map +1 -0
  257. package/dist/src/types/flows-types.js +2 -0
  258. package/dist/src/types/generate-type-from-schema.d.ts +3 -0
  259. package/dist/src/types/generate-type-from-schema.d.ts.map +1 -0
  260. package/dist/src/types/generate-type-from-schema.js +49 -0
  261. package/dist/src/types/generate-types-from-response.d.ts +3 -0
  262. package/dist/src/types/generate-types-from-response.d.ts.map +1 -0
  263. package/dist/src/types/generate-types-from-response.js +13 -0
  264. package/dist/src/types/generate-types.d.ts +13 -0
  265. package/dist/src/types/generate-types.d.ts.map +1 -0
  266. package/dist/src/types/generate-types.js +127 -0
  267. package/dist/src/types/merge-schemas.d.ts +5 -0
  268. package/dist/src/types/merge-schemas.d.ts.map +1 -0
  269. package/dist/src/types/merge-schemas.js +183 -0
  270. package/dist/src/types/schema.types.d.ts +9 -0
  271. package/dist/src/types/schema.types.d.ts.map +1 -0
  272. package/dist/src/types/schema.types.js +14 -0
  273. package/dist/src/types-stream.d.ts +42 -0
  274. package/dist/src/types-stream.d.ts.map +1 -0
  275. package/dist/src/types-stream.js +2 -0
  276. package/dist/src/types.d.ts +190 -0
  277. package/dist/src/types.d.ts.map +1 -0
  278. package/dist/src/types.js +17 -0
  279. package/dist/src/utils.d.ts +3 -0
  280. package/dist/src/utils.d.ts.map +1 -0
  281. package/dist/src/utils.js +12 -0
  282. package/dist/src/validate-event-input.d.ts +3 -0
  283. package/dist/src/validate-event-input.d.ts.map +1 -0
  284. package/dist/src/validate-event-input.js +74 -0
  285. package/package.json +8 -21
  286. package/dist/index.d.mts +0 -38
  287. package/dist/index.mjs +0 -30
  288. package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.mts +0 -17
  289. package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.d.mts.map +0 -1
  290. package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.mjs +0 -51
  291. package/dist/src/adapters/defaults/cron/in-memory-cron-adapter.mjs.map +0 -1
  292. package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.mts +0 -19
  293. package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.d.mts.map +0 -1
  294. package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.mjs +0 -54
  295. package/dist/src/adapters/defaults/event/in-memory-queue-event-adapter.mjs.map +0 -1
  296. package/dist/src/adapters/defaults/index.d.mts +0 -8
  297. package/dist/src/adapters/defaults/index.mjs +0 -10
  298. package/dist/src/adapters/defaults/state/file-state-adapter.d.mts +0 -27
  299. package/dist/src/adapters/defaults/state/file-state-adapter.d.mts.map +0 -1
  300. package/dist/src/adapters/defaults/state/file-state-adapter.mjs +0 -105
  301. package/dist/src/adapters/defaults/state/file-state-adapter.mjs.map +0 -1
  302. package/dist/src/adapters/defaults/state/memory-state-adapter.d.mts +0 -20
  303. package/dist/src/adapters/defaults/state/memory-state-adapter.d.mts.map +0 -1
  304. package/dist/src/adapters/defaults/state/memory-state-adapter.mjs +0 -58
  305. package/dist/src/adapters/defaults/state/memory-state-adapter.mjs.map +0 -1
  306. package/dist/src/adapters/defaults/state/utils.mjs +0 -40
  307. package/dist/src/adapters/defaults/state/utils.mjs.map +0 -1
  308. package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.mts +0 -13
  309. package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.d.mts.map +0 -1
  310. package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.mjs +0 -16
  311. package/dist/src/adapters/defaults/stream/file-stream-adapter-manager.mjs.map +0 -1
  312. package/dist/src/adapters/defaults/stream/file-stream-adapter.d.mts +0 -24
  313. package/dist/src/adapters/defaults/stream/file-stream-adapter.d.mts.map +0 -1
  314. package/dist/src/adapters/defaults/stream/file-stream-adapter.mjs +0 -84
  315. package/dist/src/adapters/defaults/stream/file-stream-adapter.mjs.map +0 -1
  316. package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.mts +0 -10
  317. package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.d.mts.map +0 -1
  318. package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.mjs +0 -12
  319. package/dist/src/adapters/defaults/stream/memory-stream-adapter-manager.mjs.map +0 -1
  320. package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.mts +0 -20
  321. package/dist/src/adapters/defaults/stream/memory-stream-adapter.d.mts.map +0 -1
  322. package/dist/src/adapters/defaults/stream/memory-stream-adapter.mjs +0 -58
  323. package/dist/src/adapters/defaults/stream/memory-stream-adapter.mjs.map +0 -1
  324. package/dist/src/adapters/interfaces/cron-adapter.interface.d.mts +0 -32
  325. package/dist/src/adapters/interfaces/cron-adapter.interface.d.mts.map +0 -1
  326. package/dist/src/adapters/interfaces/event-adapter.interface.d.mts +0 -19
  327. package/dist/src/adapters/interfaces/event-adapter.interface.d.mts.map +0 -1
  328. package/dist/src/adapters/interfaces/observability-adapter.interface.d.mts +0 -27
  329. package/dist/src/adapters/interfaces/observability-adapter.interface.d.mts.map +0 -1
  330. package/dist/src/adapters/interfaces/state-adapter.interface.d.mts +0 -28
  331. package/dist/src/adapters/interfaces/state-adapter.interface.d.mts.map +0 -1
  332. package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.mts +0 -10
  333. package/dist/src/adapters/interfaces/stream-adapter-manager.interface.d.mts.map +0 -1
  334. package/dist/src/adapters/interfaces/stream-adapter.interface.d.mts +0 -26
  335. package/dist/src/adapters/interfaces/stream-adapter.interface.d.mts.map +0 -1
  336. package/dist/src/adapters/interfaces/stream-adapter.interface.mjs +0 -17
  337. package/dist/src/adapters/interfaces/stream-adapter.interface.mjs.map +0 -1
  338. package/dist/src/analytics/utils.d.mts +0 -9
  339. package/dist/src/analytics/utils.d.mts.map +0 -1
  340. package/dist/src/analytics/utils.mjs +0 -35
  341. package/dist/src/analytics/utils.mjs.map +0 -1
  342. package/dist/src/call-step-file.mjs +0 -215
  343. package/dist/src/call-step-file.mjs.map +0 -1
  344. package/dist/src/config.d.mts +0 -7
  345. package/dist/src/config.d.mts.map +0 -1
  346. package/dist/src/config.mjs +0 -6
  347. package/dist/src/config.mjs.map +0 -1
  348. package/dist/src/cron-handler.d.mts +0 -18
  349. package/dist/src/cron-handler.d.mts.map +0 -1
  350. package/dist/src/cron-handler.mjs +0 -103
  351. package/dist/src/cron-handler.mjs.map +0 -1
  352. package/dist/src/endpoints/analytics-endpoint.mjs +0 -29
  353. package/dist/src/endpoints/analytics-endpoint.mjs.map +0 -1
  354. package/dist/src/endpoints/flows-config-endpoint.mjs +0 -38
  355. package/dist/src/endpoints/flows-config-endpoint.mjs.map +0 -1
  356. package/dist/src/endpoints/flows-endpoint.mjs +0 -39
  357. package/dist/src/endpoints/flows-endpoint.mjs.map +0 -1
  358. package/dist/src/endpoints/step-endpoint.mjs +0 -41
  359. package/dist/src/endpoints/step-endpoint.mjs.map +0 -1
  360. package/dist/src/generate-trace-id.mjs +0 -13
  361. package/dist/src/generate-trace-id.mjs.map +0 -1
  362. package/dist/src/get-step-config.d.mts +0 -9
  363. package/dist/src/get-step-config.d.mts.map +0 -1
  364. package/dist/src/get-step-config.mjs +0 -63
  365. package/dist/src/get-step-config.mjs.map +0 -1
  366. package/dist/src/get-step-language.mjs +0 -14
  367. package/dist/src/get-step-language.mjs.map +0 -1
  368. package/dist/src/guards.d.mts +0 -10
  369. package/dist/src/guards.d.mts.map +0 -1
  370. package/dist/src/guards.mjs +0 -9
  371. package/dist/src/guards.mjs.map +0 -1
  372. package/dist/src/helper/flows-helper.mjs +0 -126
  373. package/dist/src/helper/flows-helper.mjs.map +0 -1
  374. package/dist/src/infrastructure-validator/defaults.mjs +0 -17
  375. package/dist/src/infrastructure-validator/defaults.mjs.map +0 -1
  376. package/dist/src/infrastructure-validator/index.d.mts +0 -3
  377. package/dist/src/infrastructure-validator/index.mjs +0 -4
  378. package/dist/src/infrastructure-validator/schemas.d.mts +0 -1
  379. package/dist/src/infrastructure-validator/schemas.mjs +0 -77
  380. package/dist/src/infrastructure-validator/schemas.mjs.map +0 -1
  381. package/dist/src/infrastructure-validator/types.d.mts +0 -14
  382. package/dist/src/infrastructure-validator/types.d.mts.map +0 -1
  383. package/dist/src/infrastructure-validator/validations.d.mts +0 -7
  384. package/dist/src/infrastructure-validator/validations.d.mts.map +0 -1
  385. package/dist/src/infrastructure-validator/validations.mjs +0 -29
  386. package/dist/src/infrastructure-validator/validations.mjs.map +0 -1
  387. package/dist/src/language-runner.mjs +0 -55
  388. package/dist/src/language-runner.mjs.map +0 -1
  389. package/dist/src/locked-data.d.mts +0 -81
  390. package/dist/src/locked-data.d.mts.map +0 -1
  391. package/dist/src/locked-data.mjs +0 -223
  392. package/dist/src/locked-data.mjs.map +0 -1
  393. package/dist/src/logger-factory.d.mts +0 -16
  394. package/dist/src/logger-factory.d.mts.map +0 -1
  395. package/dist/src/logger-factory.mjs +0 -33
  396. package/dist/src/logger-factory.mjs.map +0 -1
  397. package/dist/src/logger.d.mts +0 -28
  398. package/dist/src/logger.d.mts.map +0 -1
  399. package/dist/src/logger.mjs +0 -64
  400. package/dist/src/logger.mjs.map +0 -1
  401. package/dist/src/mermaid-generator.d.mts +0 -9
  402. package/dist/src/mermaid-generator.d.mts.map +0 -1
  403. package/dist/src/mermaid-generator.mjs +0 -126
  404. package/dist/src/mermaid-generator.mjs.map +0 -1
  405. package/dist/src/motia.d.mts +0 -37
  406. package/dist/src/motia.d.mts.map +0 -1
  407. package/dist/src/motia.mjs +0 -6
  408. package/dist/src/motia.mjs.map +0 -1
  409. package/dist/src/node/can-access.d.mts +0 -1
  410. package/dist/src/node/can-access.mjs +0 -36
  411. package/dist/src/node/can-access.mjs.map +0 -1
  412. package/dist/src/node/get-config.d.mts +0 -1
  413. package/dist/src/node/get-config.mjs +0 -49
  414. package/dist/src/node/get-config.mjs.map +0 -1
  415. package/dist/src/node/logger.mjs +0 -47
  416. package/dist/src/node/logger.mjs.map +0 -1
  417. package/dist/src/node/middleware-compose.mjs +0 -10
  418. package/dist/src/node/middleware-compose.mjs.map +0 -1
  419. package/dist/src/node/node-runner.d.mts +0 -1
  420. package/dist/src/node/node-runner.mjs +0 -94
  421. package/dist/src/node/node-runner.mjs.map +0 -1
  422. package/dist/src/node/rpc-state-manager.mjs +0 -35
  423. package/dist/src/node/rpc-state-manager.mjs.map +0 -1
  424. package/dist/src/node/rpc.mjs +0 -55
  425. package/dist/src/node/rpc.mjs.map +0 -1
  426. package/dist/src/observability/create-trace.mjs +0 -26
  427. package/dist/src/observability/create-trace.mjs.map +0 -1
  428. package/dist/src/observability/index.d.mts +0 -7
  429. package/dist/src/observability/index.d.mts.map +0 -1
  430. package/dist/src/observability/no-tracer.d.mts +0 -15
  431. package/dist/src/observability/no-tracer.d.mts.map +0 -1
  432. package/dist/src/observability/no-tracer.mjs +0 -23
  433. package/dist/src/observability/no-tracer.mjs.map +0 -1
  434. package/dist/src/observability/redis-trace-stream-adapter.mjs +0 -76
  435. package/dist/src/observability/redis-trace-stream-adapter.mjs.map +0 -1
  436. package/dist/src/observability/stream-tracer.mjs +0 -98
  437. package/dist/src/observability/stream-tracer.mjs.map +0 -1
  438. package/dist/src/observability/trace-manager.mjs +0 -27
  439. package/dist/src/observability/trace-manager.mjs.map +0 -1
  440. package/dist/src/observability/tracer.mjs +0 -88
  441. package/dist/src/observability/tracer.mjs.map +0 -1
  442. package/dist/src/observability/types.d.mts +0 -14
  443. package/dist/src/observability/types.d.mts.map +0 -1
  444. package/dist/src/pretty-print.mjs +0 -50
  445. package/dist/src/pretty-print.mjs.map +0 -1
  446. package/dist/src/printer.d.mts +0 -65
  447. package/dist/src/printer.d.mts.map +0 -1
  448. package/dist/src/printer.mjs +0 -147
  449. package/dist/src/printer.mjs.map +0 -1
  450. package/dist/src/process-communication/communication-config.mjs +0 -26
  451. package/dist/src/process-communication/communication-config.mjs.map +0 -1
  452. package/dist/src/process-communication/process-manager.mjs +0 -67
  453. package/dist/src/process-communication/process-manager.mjs.map +0 -1
  454. package/dist/src/queue-manager.d.mts +0 -37
  455. package/dist/src/queue-manager.d.mts.map +0 -1
  456. package/dist/src/queue-manager.mjs +0 -209
  457. package/dist/src/queue-manager.mjs.map +0 -1
  458. package/dist/src/run-stream-can-access.mjs +0 -59
  459. package/dist/src/run-stream-can-access.mjs.map +0 -1
  460. package/dist/src/schema-utils.mjs +0 -30
  461. package/dist/src/schema-utils.mjs.map +0 -1
  462. package/dist/src/server.d.mts +0 -40
  463. package/dist/src/server.d.mts.map +0 -1
  464. package/dist/src/server.mjs +0 -353
  465. package/dist/src/server.mjs.map +0 -1
  466. package/dist/src/socket-server/helpers.mjs +0 -35
  467. package/dist/src/socket-server/helpers.mjs.map +0 -1
  468. package/dist/src/socket-server.mjs +0 -127
  469. package/dist/src/socket-server.mjs.map +0 -1
  470. package/dist/src/state/create-state-adapter.d.mts +0 -11
  471. package/dist/src/state/create-state-adapter.d.mts.map +0 -1
  472. package/dist/src/state/create-state-adapter.mjs +0 -11
  473. package/dist/src/state/create-state-adapter.mjs.map +0 -1
  474. package/dist/src/step-handler-rpc-processor.mjs +0 -56
  475. package/dist/src/step-handler-rpc-processor.mjs.map +0 -1
  476. package/dist/src/step-handler-rpc-stdin-processor.mjs +0 -71
  477. package/dist/src/step-handler-rpc-stdin-processor.mjs.map +0 -1
  478. package/dist/src/step-handlers.d.mts +0 -13
  479. package/dist/src/step-handlers.d.mts.map +0 -1
  480. package/dist/src/step-handlers.mjs +0 -93
  481. package/dist/src/step-handlers.mjs.map +0 -1
  482. package/dist/src/step-validator.d.mts +0 -15
  483. package/dist/src/step-validator.d.mts.map +0 -1
  484. package/dist/src/step-validator.mjs +0 -118
  485. package/dist/src/step-validator.mjs.map +0 -1
  486. package/dist/src/steps/emit.step.mjs +0 -20
  487. package/dist/src/steps/emit.step.mjs.map +0 -1
  488. package/dist/src/steps/index.mjs +0 -14
  489. package/dist/src/steps/index.mjs.map +0 -1
  490. package/dist/src/streams/flows-config-stream.mjs +0 -46
  491. package/dist/src/streams/flows-config-stream.mjs.map +0 -1
  492. package/dist/src/streams/flows-stream.mjs +0 -33
  493. package/dist/src/streams/flows-stream.mjs.map +0 -1
  494. package/dist/src/streams/redis-logs-stream.d.mts +0 -3
  495. package/dist/src/streams/redis-logs-stream.mjs +0 -97
  496. package/dist/src/streams/redis-logs-stream.mjs.map +0 -1
  497. package/dist/src/streams/stream-factory.d.mts +0 -7
  498. package/dist/src/streams/stream-factory.d.mts.map +0 -1
  499. package/dist/src/types/app-config-types.d.mts +0 -49
  500. package/dist/src/types/app-config-types.d.mts.map +0 -1
  501. package/dist/src/types/generate-type-from-schema.mjs +0 -30
  502. package/dist/src/types/generate-type-from-schema.mjs.map +0 -1
  503. package/dist/src/types/generate-types-from-response.mjs +0 -12
  504. package/dist/src/types/generate-types-from-response.mjs.map +0 -1
  505. package/dist/src/types/generate-types.mjs +0 -101
  506. package/dist/src/types/generate-types.mjs.map +0 -1
  507. package/dist/src/types/merge-schemas.mjs +0 -102
  508. package/dist/src/types/merge-schemas.mjs.map +0 -1
  509. package/dist/src/types/schema.types.d.mts +0 -13
  510. package/dist/src/types/schema.types.d.mts.map +0 -1
  511. package/dist/src/types/schema.types.mjs +0 -14
  512. package/dist/src/types/schema.types.mjs.map +0 -1
  513. package/dist/src/types-stream.d.mts +0 -46
  514. package/dist/src/types-stream.d.mts.map +0 -1
  515. package/dist/src/types.d.mts +0 -194
  516. package/dist/src/types.d.mts.map +0 -1
  517. package/dist/src/utils.mjs +0 -13
  518. package/dist/src/utils.mjs.map +0 -1
  519. package/dist/src/validate-event-input.mjs +0 -76
  520. package/dist/src/validate-event-input.mjs.map +0 -1
  521. package/jest.config.cjs +0 -20
  522. package/tsdown.config.ts +0 -53
@@ -1,35 +0,0 @@
1
- //#region src/node/rpc-state-manager.ts
2
- var RpcStateManager = class {
3
- constructor(sender) {
4
- this.sender = sender;
5
- }
6
- async get(traceId, key) {
7
- return this.sender.send("state.get", {
8
- traceId,
9
- key
10
- });
11
- }
12
- async set(traceId, key, value) {
13
- return this.sender.send("state.set", {
14
- traceId,
15
- key,
16
- value
17
- });
18
- }
19
- async delete(traceId, key) {
20
- return this.sender.send("state.delete", {
21
- traceId,
22
- key
23
- });
24
- }
25
- async clear(traceId) {
26
- await this.sender.send("state.clear", { traceId });
27
- }
28
- async getGroup(groupId) {
29
- return this.sender.send("state.getGroup", { groupId });
30
- }
31
- };
32
-
33
- //#endregion
34
- export { RpcStateManager };
35
- //# sourceMappingURL=rpc-state-manager.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpc-state-manager.mjs","names":["sender: RpcSender"],"sources":["../../../src/node/rpc-state-manager.ts"],"sourcesContent":["import type { InternalStateManager } from '../types'\nimport type { RpcSender } from './rpc'\n\nexport class RpcStateManager implements InternalStateManager {\n constructor(private readonly sender: RpcSender) {}\n\n async get<T>(traceId: string, key: string) {\n return this.sender.send<T>('state.get', { traceId, key })\n }\n\n async set<T>(traceId: string, key: string, value: T) {\n return this.sender.send<T>('state.set', { traceId, key, value })\n }\n\n async delete<T>(traceId: string, key: string): Promise<T | null> {\n return this.sender.send<T>('state.delete', { traceId, key })\n }\n\n async clear(traceId: string) {\n await this.sender.send('state.clear', { traceId })\n }\n\n async getGroup<T>(groupId: string): Promise<T[]> {\n return this.sender.send<T[]>('state.getGroup', { groupId })\n }\n}\n"],"mappings":";AAGA,IAAa,kBAAb,MAA6D;CAC3D,YAAY,AAAiBA,QAAmB;EAAnB;;CAE7B,MAAM,IAAO,SAAiB,KAAa;AACzC,SAAO,KAAK,OAAO,KAAQ,aAAa;GAAE;GAAS;GAAK,CAAC;;CAG3D,MAAM,IAAO,SAAiB,KAAa,OAAU;AACnD,SAAO,KAAK,OAAO,KAAQ,aAAa;GAAE;GAAS;GAAK;GAAO,CAAC;;CAGlE,MAAM,OAAU,SAAiB,KAAgC;AAC/D,SAAO,KAAK,OAAO,KAAQ,gBAAgB;GAAE;GAAS;GAAK,CAAC;;CAG9D,MAAM,MAAM,SAAiB;AAC3B,QAAM,KAAK,OAAO,KAAK,eAAe,EAAE,SAAS,CAAC;;CAGpD,MAAM,SAAY,SAA+B;AAC/C,SAAO,KAAK,OAAO,KAAU,kBAAkB,EAAE,SAAS,CAAC"}
@@ -1,55 +0,0 @@
1
- import crypto from "crypto";
2
-
3
- //#region src/node/rpc.ts
4
- var RpcSender = class {
5
- constructor(process) {
6
- this.process = process;
7
- this.pendingRequests = {};
8
- }
9
- async close() {
10
- if (Object.values(this.pendingRequests).length > 0) {
11
- console.error("Process ended while there are some promises outstanding");
12
- this.process.exit(1);
13
- }
14
- }
15
- send(method, args) {
16
- return new Promise((resolve, reject) => {
17
- const id = crypto.randomUUID();
18
- this.pendingRequests[id] = {
19
- resolve,
20
- reject,
21
- method,
22
- args
23
- };
24
- this.process.send?.({
25
- type: "rpc_request",
26
- id,
27
- method,
28
- args
29
- });
30
- });
31
- }
32
- sendNoWait(method, args) {
33
- this.process.send?.({
34
- type: "rpc_request",
35
- method,
36
- args
37
- });
38
- }
39
- init() {
40
- this.process.on("message", (msg) => {
41
- if (msg.type === "rpc_response") {
42
- const { id, result, error } = msg;
43
- const callbacks = this.pendingRequests[id];
44
- if (!callbacks) return;
45
- else if (error) callbacks.reject(error);
46
- else callbacks.resolve(result);
47
- delete this.pendingRequests[id];
48
- }
49
- });
50
- }
51
- };
52
-
53
- //#endregion
54
- export { RpcSender };
55
- //# sourceMappingURL=rpc.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"rpc.mjs","names":["process: NodeJS.Process"],"sources":["../../../src/node/rpc.ts"],"sourcesContent":["/// <reference types=\"node\" />\nimport crypto from 'crypto'\n\ntype RpcResponse = {\n type: 'rpc_response'\n id: string\n result: unknown\n error: unknown\n}\n\nexport class RpcSender {\n private readonly pendingRequests: Record<\n string,\n { resolve: (result: any) => void; reject: (error: any) => void; method: string; args: any }\n > = {}\n\n constructor(private readonly process: NodeJS.Process) {}\n\n async close(): Promise<void> {\n const outstandingRequests = Object.values(this.pendingRequests)\n\n if (outstandingRequests.length > 0) {\n console.error('Process ended while there are some promises outstanding')\n this.process.exit(1)\n }\n }\n\n send<T>(method: string, args: unknown): Promise<T> {\n return new Promise((resolve, reject) => {\n const id = crypto.randomUUID()\n this.pendingRequests[id] = { resolve, reject, method, args }\n\n this.process.send?.({ type: 'rpc_request', id, method, args })\n })\n }\n\n sendNoWait(method: string, args: unknown) {\n this.process.send?.({ type: 'rpc_request', method, args })\n }\n\n init() {\n this.process.on('message', (msg: RpcResponse) => {\n if (msg.type === 'rpc_response') {\n const { id, result, error } = msg\n const callbacks = this.pendingRequests[id]\n\n if (!callbacks) {\n return\n } else if (error) {\n callbacks.reject(error)\n } else {\n callbacks.resolve(result)\n }\n\n delete this.pendingRequests[id]\n }\n })\n }\n}\n"],"mappings":";;;AAUA,IAAa,YAAb,MAAuB;CAMrB,YAAY,AAAiBA,SAAyB;EAAzB;yBAFzB,EAAE;;CAIN,MAAM,QAAuB;AAG3B,MAF4B,OAAO,OAAO,KAAK,gBAAgB,CAEvC,SAAS,GAAG;AAClC,WAAQ,MAAM,0DAA0D;AACxE,QAAK,QAAQ,KAAK,EAAE;;;CAIxB,KAAQ,QAAgB,MAA2B;AACjD,SAAO,IAAI,SAAS,SAAS,WAAW;GACtC,MAAM,KAAK,OAAO,YAAY;AAC9B,QAAK,gBAAgB,MAAM;IAAE;IAAS;IAAQ;IAAQ;IAAM;AAE5D,QAAK,QAAQ,OAAO;IAAE,MAAM;IAAe;IAAI;IAAQ;IAAM,CAAC;IAC9D;;CAGJ,WAAW,QAAgB,MAAe;AACxC,OAAK,QAAQ,OAAO;GAAE,MAAM;GAAe;GAAQ;GAAM,CAAC;;CAG5D,OAAO;AACL,OAAK,QAAQ,GAAG,YAAY,QAAqB;AAC/C,OAAI,IAAI,SAAS,gBAAgB;IAC/B,MAAM,EAAE,IAAI,QAAQ,UAAU;IAC9B,MAAM,YAAY,KAAK,gBAAgB;AAEvC,QAAI,CAAC,UACH;aACS,MACT,WAAU,OAAO,MAAM;QAEvB,WAAU,QAAQ,OAAO;AAG3B,WAAO,KAAK,gBAAgB;;IAE9B"}
@@ -1,26 +0,0 @@
1
- import { randomUUID } from "crypto";
2
-
3
- //#region src/observability/create-trace.ts
4
- const createTrace = (traceGroup, step) => {
5
- const trace = {
6
- id: randomUUID(),
7
- name: step.config.name,
8
- correlationId: traceGroup.correlationId,
9
- parentTraceId: traceGroup.id,
10
- status: "running",
11
- startTime: Date.now(),
12
- endTime: void 0,
13
- entryPoint: {
14
- type: step.config.type,
15
- stepName: step.config.name
16
- },
17
- events: []
18
- };
19
- traceGroup.metadata.totalSteps++;
20
- traceGroup.metadata.activeSteps++;
21
- return trace;
22
- };
23
-
24
- //#endregion
25
- export { createTrace };
26
- //# sourceMappingURL=create-trace.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-trace.mjs","names":["trace: Trace"],"sources":["../../../src/observability/create-trace.ts"],"sourcesContent":["import { randomUUID } from 'crypto'\nimport type { Step } from '../types'\nimport type { Trace, TraceGroup } from './types'\n\nexport const createTrace = (traceGroup: TraceGroup, step: Step) => {\n const id = randomUUID()\n const trace: Trace = {\n id,\n name: step.config.name,\n correlationId: traceGroup.correlationId,\n parentTraceId: traceGroup.id,\n status: 'running',\n startTime: Date.now(),\n endTime: undefined,\n entryPoint: { type: step.config.type, stepName: step.config.name },\n events: [],\n }\n\n traceGroup.metadata.totalSteps++\n traceGroup.metadata.activeSteps++\n\n return trace\n}\n"],"mappings":";;;AAIA,MAAa,eAAe,YAAwB,SAAe;CAEjE,MAAMA,QAAe;EACnB,IAFS,YAAY;EAGrB,MAAM,KAAK,OAAO;EAClB,eAAe,WAAW;EAC1B,eAAe,WAAW;EAC1B,QAAQ;EACR,WAAW,KAAK,KAAK;EACrB,SAAS;EACT,YAAY;GAAE,MAAM,KAAK,OAAO;GAAM,UAAU,KAAK,OAAO;GAAM;EAClE,QAAQ,EAAE;EACX;AAED,YAAW,SAAS;AACpB,YAAW,SAAS;AAEpB,QAAO"}
@@ -1,7 +0,0 @@
1
- import { ObservabilityAdapter, Tracer } from "../adapters/interfaces/observability-adapter.interface.mjs";
2
-
3
- //#region src/observability/index.d.ts
4
- type TracerFactory = ObservabilityAdapter;
5
- //#endregion
6
- export { TracerFactory };
7
- //# sourceMappingURL=index.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.mts","names":[],"sources":["../../../src/observability/index.ts"],"sourcesContent":[],"mappings":";;;KAGY,aAAA,GAAgB"}
@@ -1,15 +0,0 @@
1
- import { Tracer } from "../adapters/interfaces/observability-adapter.interface.mjs";
2
- import "./index.mjs";
3
-
4
- //#region src/observability/no-tracer.d.ts
5
- declare class NoTracer implements Tracer {
6
- end(): Promise<void>;
7
- stateOperation(): Promise<void>;
8
- emitOperation(): Promise<void>;
9
- streamOperation(): Promise<void>;
10
- clear(): void;
11
- child(): this;
12
- }
13
- //#endregion
14
- export { NoTracer };
15
- //# sourceMappingURL=no-tracer.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"no-tracer.d.mts","names":[],"sources":["../../../src/observability/no-tracer.ts"],"sourcesContent":[],"mappings":";;;;cAEa,QAAA,YAAoB;SACtB;oBAGW;EAJT,aAAS,CAAA,CAAA,EAOD,OAPC,CAAA,IAAA,CAAA;EACX,eAAA,CAAA,CAAA,EASY,OATZ,CAAA,IAAA,CAAA;EAGW,KAAA,CAAA,CAAA,EAAA,IAAA;EAGD,KAAA,CAAA,CAAA,EAAA,IAAA"}
@@ -1,23 +0,0 @@
1
- //#region src/observability/no-tracer.ts
2
- var NoTracer = class {
3
- async end() {
4
- return Promise.resolve();
5
- }
6
- async stateOperation() {
7
- return Promise.resolve();
8
- }
9
- async emitOperation() {
10
- return Promise.resolve();
11
- }
12
- async streamOperation() {
13
- return Promise.resolve();
14
- }
15
- clear() {}
16
- child() {
17
- return this;
18
- }
19
- };
20
-
21
- //#endregion
22
- export { NoTracer };
23
- //# sourceMappingURL=no-tracer.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"no-tracer.mjs","names":[],"sources":["../../../src/observability/no-tracer.ts"],"sourcesContent":["import type { Tracer } from './index'\n\nexport class NoTracer implements Tracer {\n async end() {\n return Promise.resolve()\n }\n async stateOperation() {\n return Promise.resolve()\n }\n async emitOperation() {\n return Promise.resolve()\n }\n async streamOperation() {\n return Promise.resolve()\n }\n clear() {}\n child() {\n return this\n }\n}\n"],"mappings":";AAEA,IAAa,WAAb,MAAwC;CACtC,MAAM,MAAM;AACV,SAAO,QAAQ,SAAS;;CAE1B,MAAM,iBAAiB;AACrB,SAAO,QAAQ,SAAS;;CAE1B,MAAM,gBAAgB;AACpB,SAAO,QAAQ,SAAS;;CAE1B,MAAM,kBAAkB;AACtB,SAAO,QAAQ,SAAS;;CAE1B,QAAQ;CACR,QAAQ;AACN,SAAO"}
@@ -1,76 +0,0 @@
1
- import { StreamAdapter } from "../adapters/interfaces/stream-adapter.interface.mjs";
2
-
3
- //#region src/observability/redis-trace-stream-adapter.ts
4
- const TRACE_TTL_SECONDS = 4320 * 60;
5
- var RedisTraceStreamAdapter = class extends StreamAdapter {
6
- constructor(streamName, client, ttl = TRACE_TTL_SECONDS) {
7
- super(streamName);
8
- this.keyPrefix = "motia:trace:";
9
- this.client = client;
10
- this.ttl = ttl;
11
- }
12
- makeGroupKey(groupId) {
13
- return `${this.keyPrefix}${groupId}`;
14
- }
15
- async get(groupId, id) {
16
- const hashKey = this.makeGroupKey(groupId);
17
- const value = await this.client.hGet(hashKey, id);
18
- return value ? JSON.parse(value) : null;
19
- }
20
- async set(groupId, id, data) {
21
- const hashKey = this.makeGroupKey(groupId);
22
- const item = {
23
- ...data,
24
- id
25
- };
26
- const itemJson = JSON.stringify(item);
27
- const eventType = await this.client.hExists(hashKey, id) ? "update" : "create";
28
- await Promise.all([
29
- this.client.hSet(hashKey, id, itemJson),
30
- this.send({
31
- groupId,
32
- id
33
- }, {
34
- type: eventType,
35
- data: item
36
- }),
37
- this.client.expire(hashKey, this.ttl)
38
- ]);
39
- return item;
40
- }
41
- async delete(groupId, id) {
42
- const hashKey = this.makeGroupKey(groupId);
43
- const value = await this.client.hGet(hashKey, id);
44
- if (!value) return null;
45
- const item = JSON.parse(value);
46
- await Promise.all([this.client.hDel(hashKey, id), this.send({
47
- groupId,
48
- id
49
- }, {
50
- type: "delete",
51
- data: item
52
- })]);
53
- return item;
54
- }
55
- async getGroup(groupId) {
56
- const hashKey = this.makeGroupKey(groupId);
57
- const values = await this.client.hGetAll(hashKey);
58
- const items = Object.values(values).map((v) => JSON.parse(v));
59
- const sortDesc = (a, b) => {
60
- return (a.startTime || 0) - (b.startTime || 0);
61
- };
62
- return items.sort(sortDesc);
63
- }
64
- async send(channel, event) {
65
- const channelKey = channel.id ? `${this.keyPrefix}events:${this.streamName}:${channel.groupId}:${channel.id}` : `${this.keyPrefix}events:${this.streamName}:${channel.groupId}`;
66
- await this.client.publish(channelKey, JSON.stringify(event));
67
- }
68
- async clear(groupId) {
69
- const hashKey = this.makeGroupKey(groupId);
70
- await this.client.del(hashKey);
71
- }
72
- };
73
-
74
- //#endregion
75
- export { RedisTraceStreamAdapter };
76
- //# sourceMappingURL=redis-trace-stream-adapter.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"redis-trace-stream-adapter.mjs","names":["item: BaseStreamItem<TData>"],"sources":["../../../src/observability/redis-trace-stream-adapter.ts"],"sourcesContent":["import type { RedisClientType } from 'redis'\nimport { StreamAdapter } from '../adapters/interfaces/stream-adapter.interface'\nimport type { BaseStreamItem, StateStreamEvent, StateStreamEventChannel } from '../types-stream'\n\nconst TRACE_TTL_SECONDS = 3 * 24 * 60 * 60\n\nexport class RedisTraceStreamAdapter<TData> extends StreamAdapter<TData> {\n private client: RedisClientType\n private readonly keyPrefix: string = 'motia:trace:'\n private ttl: number\n\n constructor(streamName: string, client: RedisClientType, ttl: number = TRACE_TTL_SECONDS) {\n super(streamName)\n this.client = client\n this.ttl = ttl\n }\n\n private makeGroupKey(groupId: string): string {\n return `${this.keyPrefix}${groupId}`\n }\n\n async get(groupId: string, id: string): Promise<BaseStreamItem<TData> | null> {\n const hashKey = this.makeGroupKey(groupId)\n const value = await this.client.hGet(hashKey, id)\n return value ? JSON.parse(value) : null\n }\n\n async set(groupId: string, id: string, data: TData): Promise<BaseStreamItem<TData>> {\n const hashKey = this.makeGroupKey(groupId)\n const item: BaseStreamItem<TData> = { ...data, id } as BaseStreamItem<TData>\n const itemJson = JSON.stringify(item)\n\n const existed = await this.client.hExists(hashKey, id)\n const eventType = existed ? 'update' : 'create'\n\n await Promise.all([\n this.client.hSet(hashKey, id, itemJson),\n this.send({ groupId, id }, { type: eventType, data: item }),\n this.client.expire(hashKey, this.ttl),\n ])\n\n return item\n }\n\n async delete(groupId: string, id: string): Promise<BaseStreamItem<TData> | null> {\n const hashKey = this.makeGroupKey(groupId)\n const value = await this.client.hGet(hashKey, id)\n\n if (!value) return null\n\n const item = JSON.parse(value) as BaseStreamItem<TData>\n\n await Promise.all([this.client.hDel(hashKey, id), this.send({ groupId, id }, { type: 'delete', data: item })])\n\n return item\n }\n\n async getGroup(groupId: string): Promise<BaseStreamItem<TData>[]> {\n const hashKey = this.makeGroupKey(groupId)\n const values = await this.client.hGetAll(hashKey)\n\n const items = Object.values(values).map((v: string) => JSON.parse(v) as BaseStreamItem<TData>)\n\n const sortDesc = (a: BaseStreamItem<TData>, b: BaseStreamItem<TData>) => {\n const aTime = (a as { startTime?: number }).startTime || 0\n const bTime = (b as { startTime?: number }).startTime || 0\n return aTime - bTime\n }\n return items.sort(sortDesc)\n }\n\n async send<T>(channel: StateStreamEventChannel, event: StateStreamEvent<T>): Promise<void> {\n const channelKey = channel.id\n ? `${this.keyPrefix}events:${this.streamName}:${channel.groupId}:${channel.id}`\n : `${this.keyPrefix}events:${this.streamName}:${channel.groupId}`\n await this.client.publish(channelKey, JSON.stringify(event))\n }\n\n async clear(groupId: string): Promise<void> {\n const hashKey = this.makeGroupKey(groupId)\n await this.client.del(hashKey)\n }\n}\n"],"mappings":";;;AAIA,MAAM,oBAAoB,OAAc;AAExC,IAAa,0BAAb,cAAoD,cAAqB;CAKvE,YAAY,YAAoB,QAAyB,MAAc,mBAAmB;AACxF,QAAM,WAAW;mBAJkB;AAKnC,OAAK,SAAS;AACd,OAAK,MAAM;;CAGb,AAAQ,aAAa,SAAyB;AAC5C,SAAO,GAAG,KAAK,YAAY;;CAG7B,MAAM,IAAI,SAAiB,IAAmD;EAC5E,MAAM,UAAU,KAAK,aAAa,QAAQ;EAC1C,MAAM,QAAQ,MAAM,KAAK,OAAO,KAAK,SAAS,GAAG;AACjD,SAAO,QAAQ,KAAK,MAAM,MAAM,GAAG;;CAGrC,MAAM,IAAI,SAAiB,IAAY,MAA6C;EAClF,MAAM,UAAU,KAAK,aAAa,QAAQ;EAC1C,MAAMA,OAA8B;GAAE,GAAG;GAAM;GAAI;EACnD,MAAM,WAAW,KAAK,UAAU,KAAK;EAGrC,MAAM,YADU,MAAM,KAAK,OAAO,QAAQ,SAAS,GAAG,GAC1B,WAAW;AAEvC,QAAM,QAAQ,IAAI;GAChB,KAAK,OAAO,KAAK,SAAS,IAAI,SAAS;GACvC,KAAK,KAAK;IAAE;IAAS;IAAI,EAAE;IAAE,MAAM;IAAW,MAAM;IAAM,CAAC;GAC3D,KAAK,OAAO,OAAO,SAAS,KAAK,IAAI;GACtC,CAAC;AAEF,SAAO;;CAGT,MAAM,OAAO,SAAiB,IAAmD;EAC/E,MAAM,UAAU,KAAK,aAAa,QAAQ;EAC1C,MAAM,QAAQ,MAAM,KAAK,OAAO,KAAK,SAAS,GAAG;AAEjD,MAAI,CAAC,MAAO,QAAO;EAEnB,MAAM,OAAO,KAAK,MAAM,MAAM;AAE9B,QAAM,QAAQ,IAAI,CAAC,KAAK,OAAO,KAAK,SAAS,GAAG,EAAE,KAAK,KAAK;GAAE;GAAS;GAAI,EAAE;GAAE,MAAM;GAAU,MAAM;GAAM,CAAC,CAAC,CAAC;AAE9G,SAAO;;CAGT,MAAM,SAAS,SAAmD;EAChE,MAAM,UAAU,KAAK,aAAa,QAAQ;EAC1C,MAAM,SAAS,MAAM,KAAK,OAAO,QAAQ,QAAQ;EAEjD,MAAM,QAAQ,OAAO,OAAO,OAAO,CAAC,KAAK,MAAc,KAAK,MAAM,EAAE,CAA0B;EAE9F,MAAM,YAAY,GAA0B,MAA6B;AAGvE,WAFe,EAA6B,aAAa,MAC1C,EAA6B,aAAa;;AAG3D,SAAO,MAAM,KAAK,SAAS;;CAG7B,MAAM,KAAQ,SAAkC,OAA2C;EACzF,MAAM,aAAa,QAAQ,KACvB,GAAG,KAAK,UAAU,SAAS,KAAK,WAAW,GAAG,QAAQ,QAAQ,GAAG,QAAQ,OACzE,GAAG,KAAK,UAAU,SAAS,KAAK,WAAW,GAAG,QAAQ;AAC1D,QAAM,KAAK,OAAO,QAAQ,YAAY,KAAK,UAAU,MAAM,CAAC;;CAG9D,MAAM,MAAM,SAAgC;EAC1C,MAAM,UAAU,KAAK,aAAa,QAAQ;AAC1C,QAAM,KAAK,OAAO,IAAI,QAAQ"}
@@ -1,98 +0,0 @@
1
- import { createTrace } from "./create-trace.mjs";
2
-
3
- //#region src/observability/stream-tracer.ts
4
- var StreamTracer = class StreamTracer {
5
- constructor(manager, traceGroup, trace, logger) {
6
- this.manager = manager;
7
- this.traceGroup = traceGroup;
8
- this.trace = trace;
9
- logger.addListener(async (level, msg, args) => {
10
- await this.addEvent({
11
- type: "log",
12
- timestamp: Date.now(),
13
- level,
14
- message: msg,
15
- metadata: args
16
- });
17
- });
18
- }
19
- async end(err) {
20
- if (this.trace.endTime) return;
21
- this.trace.status = err ? "failed" : "completed";
22
- this.trace.endTime = Date.now();
23
- this.trace.error = err;
24
- await this.manager.updateTrace();
25
- await this.recomputeTraceGroupStatus();
26
- await this.manager.updateTraceGroup();
27
- }
28
- async recomputeTraceGroupStatus() {
29
- const allTracesFromStorage = await this.manager.getAllTracesForGroup();
30
- const currentTraceIndex = allTracesFromStorage.findIndex((t) => t.id === this.trace.id);
31
- const allTraces = [...allTracesFromStorage];
32
- if (currentTraceIndex >= 0) allTraces[currentTraceIndex] = this.trace;
33
- else allTraces.push(this.trace);
34
- const completedCount = allTraces.filter((t) => t.status === "completed").length;
35
- const failedCount = allTraces.filter((t) => t.status === "failed").length;
36
- const runningCount = allTraces.filter((t) => t.status === "running").length;
37
- this.traceGroup.metadata.completedSteps = completedCount;
38
- this.traceGroup.metadata.activeSteps = runningCount;
39
- if (failedCount > 0) this.traceGroup.status = "failed";
40
- else if (runningCount === 0 && completedCount > 0) {
41
- this.traceGroup.status = "completed";
42
- if (!this.traceGroup.endTime) this.traceGroup.endTime = Date.now();
43
- } else this.traceGroup.status = "running";
44
- }
45
- async stateOperation(operation, input) {
46
- await this.addEvent({
47
- type: "state",
48
- timestamp: Date.now(),
49
- operation,
50
- data: input
51
- });
52
- }
53
- async emitOperation(topic, data, success) {
54
- await this.addEvent({
55
- type: "emit",
56
- timestamp: Date.now(),
57
- topic,
58
- success,
59
- data
60
- });
61
- }
62
- async streamOperation(streamName, operation, input) {
63
- if (operation === "set") {
64
- const lastEvent = this.trace.events[this.trace.events.length - 1];
65
- if (lastEvent && lastEvent.type === "stream" && lastEvent.streamName === streamName && lastEvent.data.groupId === input.groupId && lastEvent.data.id === input.id) {
66
- lastEvent.calls++;
67
- lastEvent.data.data = input.data;
68
- lastEvent.maxTimestamp = Date.now();
69
- this.traceGroup.lastActivity = lastEvent.maxTimestamp;
70
- await this.manager.updateTrace();
71
- await this.manager.updateTraceGroup();
72
- return;
73
- }
74
- }
75
- await this.addEvent({
76
- type: "stream",
77
- timestamp: Date.now(),
78
- operation,
79
- data: input,
80
- streamName,
81
- calls: 1
82
- });
83
- }
84
- child(step, logger) {
85
- const trace = createTrace(this.traceGroup, step);
86
- return new StreamTracer(this.manager.child(trace), this.traceGroup, trace, logger);
87
- }
88
- async addEvent(event) {
89
- this.trace.events.push(event);
90
- this.traceGroup.lastActivity = event.timestamp;
91
- await this.manager.updateTrace();
92
- await this.manager.updateTraceGroup();
93
- }
94
- };
95
-
96
- //#endregion
97
- export { StreamTracer };
98
- //# sourceMappingURL=stream-tracer.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stream-tracer.mjs","names":["manager: TraceManager","traceGroup: TraceGroup","trace: Trace"],"sources":["../../../src/observability/stream-tracer.ts"],"sourcesContent":["import type { Logger } from '../logger'\nimport type { Step } from '../types'\nimport { createTrace } from './create-trace'\nimport type { Tracer } from './index'\nimport type { TraceManager } from './trace-manager'\nimport type { StateOperation, StreamOperation, Trace, TraceError, TraceEvent, TraceGroup } from './types'\n\nexport class StreamTracer implements Tracer {\n constructor(\n private readonly manager: TraceManager,\n private readonly traceGroup: TraceGroup,\n private readonly trace: Trace,\n logger: Logger,\n ) {\n logger.addListener(async (level, msg, args) => {\n await this.addEvent({\n type: 'log',\n timestamp: Date.now(),\n level,\n message: msg,\n metadata: args,\n })\n })\n }\n\n async end(err?: TraceError) {\n if (this.trace.endTime) {\n return\n }\n\n this.trace.status = err ? 'failed' : 'completed'\n this.trace.endTime = Date.now()\n this.trace.error = err\n\n await this.manager.updateTrace()\n await this.recomputeTraceGroupStatus()\n await this.manager.updateTraceGroup()\n }\n\n private async recomputeTraceGroupStatus() {\n const allTracesFromStorage = await this.manager.getAllTracesForGroup()\n\n const currentTraceIndex = allTracesFromStorage.findIndex((t) => t.id === this.trace.id)\n const allTraces = [...allTracesFromStorage]\n\n if (currentTraceIndex >= 0) {\n allTraces[currentTraceIndex] = this.trace\n } else {\n allTraces.push(this.trace)\n }\n\n const completedCount = allTraces.filter((t) => t.status === 'completed').length\n const failedCount = allTraces.filter((t) => t.status === 'failed').length\n const runningCount = allTraces.filter((t) => t.status === 'running').length\n\n this.traceGroup.metadata.completedSteps = completedCount\n this.traceGroup.metadata.activeSteps = runningCount\n\n if (failedCount > 0) {\n this.traceGroup.status = 'failed'\n } else if (runningCount === 0 && completedCount > 0) {\n this.traceGroup.status = 'completed'\n if (!this.traceGroup.endTime) {\n this.traceGroup.endTime = Date.now()\n }\n } else {\n this.traceGroup.status = 'running'\n }\n }\n\n async stateOperation(operation: StateOperation, input: unknown) {\n await this.addEvent({\n type: 'state',\n timestamp: Date.now(),\n operation,\n data: input,\n })\n }\n\n async emitOperation(topic: string, data: unknown, success: boolean) {\n await this.addEvent({\n type: 'emit',\n timestamp: Date.now(),\n topic,\n success,\n data,\n })\n }\n\n async streamOperation(\n streamName: string,\n operation: StreamOperation,\n input: { groupId: string; id: string; data?: unknown },\n ) {\n if (operation === 'set') {\n const lastEvent = this.trace.events[this.trace.events.length - 1]\n\n if (\n lastEvent &&\n lastEvent.type === 'stream' &&\n lastEvent.streamName === streamName &&\n lastEvent.data.groupId === input.groupId &&\n lastEvent.data.id === input.id\n ) {\n lastEvent.calls++\n lastEvent.data.data = input.data\n lastEvent.maxTimestamp = Date.now()\n\n this.traceGroup.lastActivity = lastEvent.maxTimestamp\n await this.manager.updateTrace()\n await this.manager.updateTraceGroup()\n\n return\n }\n }\n\n await this.addEvent({\n type: 'stream',\n timestamp: Date.now(),\n operation,\n data: input,\n streamName,\n calls: 1,\n })\n }\n\n child(step: Step, logger: Logger) {\n const trace = createTrace(this.traceGroup, step)\n const manager = this.manager.child(trace)\n\n return new StreamTracer(manager, this.traceGroup, trace, logger)\n }\n\n private async addEvent(event: TraceEvent) {\n this.trace.events.push(event)\n this.traceGroup.lastActivity = event.timestamp\n\n await this.manager.updateTrace()\n await this.manager.updateTraceGroup()\n }\n}\n"],"mappings":";;;AAOA,IAAa,eAAb,MAAa,aAA+B;CAC1C,YACE,AAAiBA,SACjB,AAAiBC,YACjB,AAAiBC,OACjB,QACA;EAJiB;EACA;EACA;AAGjB,SAAO,YAAY,OAAO,OAAO,KAAK,SAAS;AAC7C,SAAM,KAAK,SAAS;IAClB,MAAM;IACN,WAAW,KAAK,KAAK;IACrB;IACA,SAAS;IACT,UAAU;IACX,CAAC;IACF;;CAGJ,MAAM,IAAI,KAAkB;AAC1B,MAAI,KAAK,MAAM,QACb;AAGF,OAAK,MAAM,SAAS,MAAM,WAAW;AACrC,OAAK,MAAM,UAAU,KAAK,KAAK;AAC/B,OAAK,MAAM,QAAQ;AAEnB,QAAM,KAAK,QAAQ,aAAa;AAChC,QAAM,KAAK,2BAA2B;AACtC,QAAM,KAAK,QAAQ,kBAAkB;;CAGvC,MAAc,4BAA4B;EACxC,MAAM,uBAAuB,MAAM,KAAK,QAAQ,sBAAsB;EAEtE,MAAM,oBAAoB,qBAAqB,WAAW,MAAM,EAAE,OAAO,KAAK,MAAM,GAAG;EACvF,MAAM,YAAY,CAAC,GAAG,qBAAqB;AAE3C,MAAI,qBAAqB,EACvB,WAAU,qBAAqB,KAAK;MAEpC,WAAU,KAAK,KAAK,MAAM;EAG5B,MAAM,iBAAiB,UAAU,QAAQ,MAAM,EAAE,WAAW,YAAY,CAAC;EACzE,MAAM,cAAc,UAAU,QAAQ,MAAM,EAAE,WAAW,SAAS,CAAC;EACnE,MAAM,eAAe,UAAU,QAAQ,MAAM,EAAE,WAAW,UAAU,CAAC;AAErE,OAAK,WAAW,SAAS,iBAAiB;AAC1C,OAAK,WAAW,SAAS,cAAc;AAEvC,MAAI,cAAc,EAChB,MAAK,WAAW,SAAS;WAChB,iBAAiB,KAAK,iBAAiB,GAAG;AACnD,QAAK,WAAW,SAAS;AACzB,OAAI,CAAC,KAAK,WAAW,QACnB,MAAK,WAAW,UAAU,KAAK,KAAK;QAGtC,MAAK,WAAW,SAAS;;CAI7B,MAAM,eAAe,WAA2B,OAAgB;AAC9D,QAAM,KAAK,SAAS;GAClB,MAAM;GACN,WAAW,KAAK,KAAK;GACrB;GACA,MAAM;GACP,CAAC;;CAGJ,MAAM,cAAc,OAAe,MAAe,SAAkB;AAClE,QAAM,KAAK,SAAS;GAClB,MAAM;GACN,WAAW,KAAK,KAAK;GACrB;GACA;GACA;GACD,CAAC;;CAGJ,MAAM,gBACJ,YACA,WACA,OACA;AACA,MAAI,cAAc,OAAO;GACvB,MAAM,YAAY,KAAK,MAAM,OAAO,KAAK,MAAM,OAAO,SAAS;AAE/D,OACE,aACA,UAAU,SAAS,YACnB,UAAU,eAAe,cACzB,UAAU,KAAK,YAAY,MAAM,WACjC,UAAU,KAAK,OAAO,MAAM,IAC5B;AACA,cAAU;AACV,cAAU,KAAK,OAAO,MAAM;AAC5B,cAAU,eAAe,KAAK,KAAK;AAEnC,SAAK,WAAW,eAAe,UAAU;AACzC,UAAM,KAAK,QAAQ,aAAa;AAChC,UAAM,KAAK,QAAQ,kBAAkB;AAErC;;;AAIJ,QAAM,KAAK,SAAS;GAClB,MAAM;GACN,WAAW,KAAK,KAAK;GACrB;GACA,MAAM;GACN;GACA,OAAO;GACR,CAAC;;CAGJ,MAAM,MAAY,QAAgB;EAChC,MAAM,QAAQ,YAAY,KAAK,YAAY,KAAK;AAGhD,SAAO,IAAI,aAFK,KAAK,QAAQ,MAAM,MAAM,EAER,KAAK,YAAY,OAAO,OAAO;;CAGlE,MAAc,SAAS,OAAmB;AACxC,OAAK,MAAM,OAAO,KAAK,MAAM;AAC7B,OAAK,WAAW,eAAe,MAAM;AAErC,QAAM,KAAK,QAAQ,aAAa;AAChC,QAAM,KAAK,QAAQ,kBAAkB"}
@@ -1,27 +0,0 @@
1
- //#region src/observability/trace-manager.ts
2
- var TraceManager = class TraceManager {
3
- constructor(traceStream, traceGroupStream, traceGroup, trace) {
4
- this.traceStream = traceStream;
5
- this.traceGroupStream = traceGroupStream;
6
- this.traceGroup = traceGroup;
7
- this.trace = trace;
8
- this.updateTrace().catch(() => {});
9
- this.updateTraceGroup().catch(() => {});
10
- }
11
- async updateTrace() {
12
- await this.traceStream.set(this.traceGroup.id, this.trace.id, this.trace);
13
- }
14
- async updateTraceGroup() {
15
- await this.traceGroupStream.set("default", this.traceGroup.id, this.traceGroup);
16
- }
17
- async getAllTracesForGroup() {
18
- return await this.traceStream.getGroup(this.traceGroup.id);
19
- }
20
- child(trace) {
21
- return new TraceManager(this.traceStream, this.traceGroupStream, this.traceGroup, trace);
22
- }
23
- };
24
-
25
- //#endregion
26
- export { TraceManager };
27
- //# sourceMappingURL=trace-manager.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"trace-manager.mjs","names":["traceStream: MotiaStream<Trace>","traceGroupStream: MotiaStream<TraceGroup>","traceGroup: TraceGroup","trace: Trace"],"sources":["../../../src/observability/trace-manager.ts"],"sourcesContent":["import type { MotiaStream } from '../types-stream'\nimport type { Trace, TraceGroup } from './types'\n\nexport class TraceManager {\n constructor(\n private readonly traceStream: MotiaStream<Trace>,\n private readonly traceGroupStream: MotiaStream<TraceGroup>,\n private readonly traceGroup: TraceGroup,\n private readonly trace: Trace,\n ) {\n this.updateTrace().catch(() => {})\n this.updateTraceGroup().catch(() => {})\n }\n\n async updateTrace() {\n await this.traceStream.set(this.traceGroup.id, this.trace.id, this.trace)\n }\n\n async updateTraceGroup() {\n await this.traceGroupStream.set('default', this.traceGroup.id, this.traceGroup)\n }\n\n async getAllTracesForGroup(): Promise<Trace[]> {\n return await this.traceStream.getGroup(this.traceGroup.id)\n }\n\n child(trace: Trace) {\n return new TraceManager(this.traceStream, this.traceGroupStream, this.traceGroup, trace)\n }\n}\n"],"mappings":";AAGA,IAAa,eAAb,MAAa,aAAa;CACxB,YACE,AAAiBA,aACjB,AAAiBC,kBACjB,AAAiBC,YACjB,AAAiBC,OACjB;EAJiB;EACA;EACA;EACA;AAEjB,OAAK,aAAa,CAAC,YAAY,GAAG;AAClC,OAAK,kBAAkB,CAAC,YAAY,GAAG;;CAGzC,MAAM,cAAc;AAClB,QAAM,KAAK,YAAY,IAAI,KAAK,WAAW,IAAI,KAAK,MAAM,IAAI,KAAK,MAAM;;CAG3E,MAAM,mBAAmB;AACvB,QAAM,KAAK,iBAAiB,IAAI,WAAW,KAAK,WAAW,IAAI,KAAK,WAAW;;CAGjF,MAAM,uBAAyC;AAC7C,SAAO,MAAM,KAAK,YAAY,SAAS,KAAK,WAAW,GAAG;;CAG5D,MAAM,OAAc;AAClB,SAAO,IAAI,aAAa,KAAK,aAAa,KAAK,kBAAkB,KAAK,YAAY,MAAM"}
@@ -1,88 +0,0 @@
1
- import { createTrace } from "./create-trace.mjs";
2
- import { RedisTraceStreamAdapter } from "./redis-trace-stream-adapter.mjs";
3
- import { StreamTracer } from "./stream-tracer.mjs";
4
- import { TraceManager } from "./trace-manager.mjs";
5
-
6
- //#region src/observability/tracer.ts
7
- const MAX_TRACE_GROUPS = process.env.MOTIA_MAX_TRACE_GROUPS ? Number.parseInt(process.env.MOTIA_MAX_TRACE_GROUPS, 10) : 50;
8
- var BaseTracerFactory = class {
9
- constructor(traceStream, traceGroupStream) {
10
- this.traceStream = traceStream;
11
- this.traceGroupStream = traceGroupStream;
12
- }
13
- async getAllGroups() {
14
- return await this.traceGroupStream.getGroup("default");
15
- }
16
- async deleteGroup(group) {
17
- const traces = await this.traceStream.getGroup(group.id);
18
- for (const trace of traces) await this.traceStream.delete(group.id, trace.id);
19
- await this.traceGroupStream.delete("default", group.id);
20
- }
21
- async clear() {
22
- const groups = await this.getAllGroups();
23
- for (const group of groups) await this.deleteGroup(group);
24
- }
25
- async createTracer(traceId, step, logger) {
26
- const traceGroup = {
27
- id: traceId,
28
- name: step.config.name,
29
- lastActivity: Date.now(),
30
- metadata: {
31
- completedSteps: 0,
32
- activeSteps: 0,
33
- totalSteps: 0
34
- },
35
- correlationId: void 0,
36
- status: "running",
37
- startTime: Date.now()
38
- };
39
- const groups = await this.getAllGroups();
40
- if (groups.length >= MAX_TRACE_GROUPS) {
41
- const groupsToDelete = groups.sort((a, b) => a.startTime - b.startTime).slice(0, groups.length - MAX_TRACE_GROUPS + 1);
42
- for (const group of groupsToDelete) await this.deleteGroup(group);
43
- }
44
- const trace = createTrace(traceGroup, step);
45
- return new StreamTracer(new TraceManager(this.traceStream, this.traceGroupStream, traceGroup, trace), traceGroup, trace, logger);
46
- }
47
- async attachToTrace(traceId, step, logger) {
48
- const existingGroup = await this.traceGroupStream.get("default", traceId);
49
- if (!existingGroup) return this.createTracer(traceId, step, logger);
50
- const trace = createTrace(existingGroup, step);
51
- return new StreamTracer(new TraceManager(this.traceStream, this.traceGroupStream, existingGroup, trace), existingGroup, trace, logger);
52
- }
53
- };
54
- const createTracerFactory = (lockedData) => {
55
- if (!lockedData.redisClient) throw new Error("Redis client is required for tracer factory. Please provide a redisClient when creating LockedData.");
56
- const traceStreamName = "motia-trace";
57
- const traceStreamAdapter = new RedisTraceStreamAdapter(traceStreamName, lockedData.redisClient);
58
- const traceStream = lockedData.createStream({
59
- filePath: traceStreamName,
60
- hidden: true,
61
- config: {
62
- name: traceStreamName,
63
- baseConfig: {
64
- storageType: "custom",
65
- factory: () => traceStreamAdapter
66
- },
67
- schema: null
68
- }
69
- })();
70
- const traceGroupName = "motia-trace-group";
71
- const traceGroupStreamAdapter = new RedisTraceStreamAdapter(traceGroupName, lockedData.redisClient);
72
- return new BaseTracerFactory(traceStream, lockedData.createStream({
73
- filePath: traceGroupName,
74
- hidden: true,
75
- config: {
76
- name: traceGroupName,
77
- baseConfig: {
78
- storageType: "custom",
79
- factory: () => traceGroupStreamAdapter
80
- },
81
- schema: null
82
- }
83
- })());
84
- };
85
-
86
- //#endregion
87
- export { createTracerFactory };
88
- //# sourceMappingURL=tracer.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tracer.mjs","names":["traceStream: MotiaStream<Trace>","traceGroupStream: MotiaStream<TraceGroup>","traceGroup: TraceGroup","traceStreamAdapter: MotiaStream<Trace>","traceGroupStreamAdapter: MotiaStream<TraceGroup>"],"sources":["../../../src/observability/tracer.ts"],"sourcesContent":["import { FileStreamAdapterManager } from '../adapters/defaults/stream/file-stream-adapter-manager'\nimport type { LockedData } from '../locked-data'\nimport type { Logger } from '../logger'\nimport type { Step } from '../types'\nimport type { MotiaStream } from '../types-stream'\nimport { createTrace } from './create-trace'\nimport type { TracerFactory } from './index'\nimport { RedisTraceStreamAdapter } from './redis-trace-stream-adapter'\nimport { StreamTracer } from './stream-tracer'\nimport { TraceManager } from './trace-manager'\nimport type { Trace, TraceGroup } from './types'\n\nconst MAX_TRACE_GROUPS = process.env.MOTIA_MAX_TRACE_GROUPS //\n ? Number.parseInt(process.env.MOTIA_MAX_TRACE_GROUPS, 10)\n : 50\n\nexport class BaseTracerFactory implements TracerFactory {\n constructor(\n private readonly traceStream: MotiaStream<Trace>,\n private readonly traceGroupStream: MotiaStream<TraceGroup>,\n ) {}\n\n private async getAllGroups() {\n return await this.traceGroupStream.getGroup('default')\n }\n\n private async deleteGroup(group: TraceGroup) {\n const traces = await this.traceStream.getGroup(group.id)\n\n for (const trace of traces) {\n await this.traceStream.delete(group.id, trace.id)\n }\n await this.traceGroupStream.delete('default', group.id)\n }\n\n async clear() {\n const groups = await this.getAllGroups()\n\n for (const group of groups) {\n await this.deleteGroup(group)\n }\n }\n\n async createTracer(traceId: string, step: Step, logger: Logger) {\n const traceGroup: TraceGroup = {\n id: traceId,\n name: step.config.name,\n lastActivity: Date.now(),\n metadata: {\n completedSteps: 0,\n activeSteps: 0,\n totalSteps: 0,\n },\n correlationId: undefined,\n status: 'running',\n startTime: Date.now(),\n }\n\n const groups = await this.getAllGroups()\n\n if (groups.length >= MAX_TRACE_GROUPS) {\n const groupsToDelete = groups\n .sort((a, b) => a.startTime - b.startTime) // date ascending\n .slice(0, groups.length - MAX_TRACE_GROUPS + 1)\n\n for (const group of groupsToDelete) {\n await this.deleteGroup(group)\n }\n }\n\n const trace = createTrace(traceGroup, step)\n const manager = new TraceManager(this.traceStream, this.traceGroupStream, traceGroup, trace)\n\n return new StreamTracer(manager, traceGroup, trace, logger)\n }\n\n async attachToTrace(traceId: string, step: Step, logger: Logger) {\n const existingGroup = await this.traceGroupStream.get('default', traceId)\n\n if (!existingGroup) {\n return this.createTracer(traceId, step, logger)\n }\n\n const trace = createTrace(existingGroup, step)\n const manager = new TraceManager(this.traceStream, this.traceGroupStream, existingGroup, trace)\n\n return new StreamTracer(manager, existingGroup, trace, logger)\n }\n}\n\nexport const createTracerFactory = (lockedData: LockedData): TracerFactory => {\n if (!lockedData.redisClient) {\n throw new Error(\n 'Redis client is required for tracer factory. Please provide a redisClient when creating LockedData.',\n )\n }\n\n const traceStreamName = 'motia-trace'\n const traceStreamAdapter: MotiaStream<Trace> = new RedisTraceStreamAdapter(traceStreamName, lockedData.redisClient)\n\n const traceStream = lockedData.createStream<Trace>({\n filePath: traceStreamName,\n hidden: true,\n config: {\n name: traceStreamName,\n baseConfig: { storageType: 'custom', factory: () => traceStreamAdapter },\n schema: null as never,\n },\n })()\n\n const traceGroupName = 'motia-trace-group'\n const traceGroupStreamAdapter: MotiaStream<TraceGroup> = new RedisTraceStreamAdapter(\n traceGroupName,\n lockedData.redisClient,\n )\n\n const traceGroupStream = lockedData.createStream<TraceGroup>({\n filePath: traceGroupName,\n hidden: true,\n config: {\n name: traceGroupName,\n baseConfig: { storageType: 'custom', factory: () => traceGroupStreamAdapter },\n schema: null as never,\n },\n })()\n\n return new BaseTracerFactory(traceStream, traceGroupStream)\n}\n"],"mappings":";;;;;;AAYA,MAAM,mBAAmB,QAAQ,IAAI,yBACjC,OAAO,SAAS,QAAQ,IAAI,wBAAwB,GAAG,GACvD;AAEJ,IAAa,oBAAb,MAAwD;CACtD,YACE,AAAiBA,aACjB,AAAiBC,kBACjB;EAFiB;EACA;;CAGnB,MAAc,eAAe;AAC3B,SAAO,MAAM,KAAK,iBAAiB,SAAS,UAAU;;CAGxD,MAAc,YAAY,OAAmB;EAC3C,MAAM,SAAS,MAAM,KAAK,YAAY,SAAS,MAAM,GAAG;AAExD,OAAK,MAAM,SAAS,OAClB,OAAM,KAAK,YAAY,OAAO,MAAM,IAAI,MAAM,GAAG;AAEnD,QAAM,KAAK,iBAAiB,OAAO,WAAW,MAAM,GAAG;;CAGzD,MAAM,QAAQ;EACZ,MAAM,SAAS,MAAM,KAAK,cAAc;AAExC,OAAK,MAAM,SAAS,OAClB,OAAM,KAAK,YAAY,MAAM;;CAIjC,MAAM,aAAa,SAAiB,MAAY,QAAgB;EAC9D,MAAMC,aAAyB;GAC7B,IAAI;GACJ,MAAM,KAAK,OAAO;GAClB,cAAc,KAAK,KAAK;GACxB,UAAU;IACR,gBAAgB;IAChB,aAAa;IACb,YAAY;IACb;GACD,eAAe;GACf,QAAQ;GACR,WAAW,KAAK,KAAK;GACtB;EAED,MAAM,SAAS,MAAM,KAAK,cAAc;AAExC,MAAI,OAAO,UAAU,kBAAkB;GACrC,MAAM,iBAAiB,OACpB,MAAM,GAAG,MAAM,EAAE,YAAY,EAAE,UAAU,CACzC,MAAM,GAAG,OAAO,SAAS,mBAAmB,EAAE;AAEjD,QAAK,MAAM,SAAS,eAClB,OAAM,KAAK,YAAY,MAAM;;EAIjC,MAAM,QAAQ,YAAY,YAAY,KAAK;AAG3C,SAAO,IAAI,aAFK,IAAI,aAAa,KAAK,aAAa,KAAK,kBAAkB,YAAY,MAAM,EAE3D,YAAY,OAAO,OAAO;;CAG7D,MAAM,cAAc,SAAiB,MAAY,QAAgB;EAC/D,MAAM,gBAAgB,MAAM,KAAK,iBAAiB,IAAI,WAAW,QAAQ;AAEzE,MAAI,CAAC,cACH,QAAO,KAAK,aAAa,SAAS,MAAM,OAAO;EAGjD,MAAM,QAAQ,YAAY,eAAe,KAAK;AAG9C,SAAO,IAAI,aAFK,IAAI,aAAa,KAAK,aAAa,KAAK,kBAAkB,eAAe,MAAM,EAE9D,eAAe,OAAO,OAAO;;;AAIlE,MAAa,uBAAuB,eAA0C;AAC5E,KAAI,CAAC,WAAW,YACd,OAAM,IAAI,MACR,sGACD;CAGH,MAAM,kBAAkB;CACxB,MAAMC,qBAAyC,IAAI,wBAAwB,iBAAiB,WAAW,YAAY;CAEnH,MAAM,cAAc,WAAW,aAAoB;EACjD,UAAU;EACV,QAAQ;EACR,QAAQ;GACN,MAAM;GACN,YAAY;IAAE,aAAa;IAAU,eAAe;IAAoB;GACxE,QAAQ;GACT;EACF,CAAC,EAAE;CAEJ,MAAM,iBAAiB;CACvB,MAAMC,0BAAmD,IAAI,wBAC3D,gBACA,WAAW,YACZ;AAYD,QAAO,IAAI,kBAAkB,aAVJ,WAAW,aAAyB;EAC3D,UAAU;EACV,QAAQ;EACR,QAAQ;GACN,MAAM;GACN,YAAY;IAAE,aAAa;IAAU,eAAe;IAAyB;GAC7E,QAAQ;GACT;EACF,CAAC,EAAE,CAEuD"}
@@ -1,14 +0,0 @@
1
- import "../types.mjs";
2
-
3
- //#region src/observability/types.d.ts
4
-
5
- type TraceError = {
6
- message: string;
7
- code?: string | number;
8
- stack?: string;
9
- };
10
- type StateOperation = 'get' | 'getGroup' | 'set' | 'delete' | 'clear';
11
- type StreamOperation = 'get' | 'getGroup' | 'set' | 'delete' | 'clear' | 'send';
12
- //#endregion
13
- export { StateOperation, StreamOperation, TraceError };
14
- //# sourceMappingURL=types.d.mts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.mts","names":[],"sources":["../../../src/observability/types.ts"],"sourcesContent":[],"mappings":";;;;KAiBY,UAAA;;;;;KAqBA,cAAA;KACA,eAAA"}
@@ -1,50 +0,0 @@
1
- import pc from "picocolors";
2
-
3
- //#region src/pretty-print.ts
4
- const stepTag = (step) => pc.bold(pc.cyan(step));
5
- const timestampTag = (timestamp) => pc.gray(timestamp);
6
- const traceIdTag = (traceId) => pc.gray(traceId);
7
- const levelTags = {
8
- error: pc.red("[ERROR]"),
9
- info: pc.blue("[INFO]"),
10
- warn: pc.yellow("[WARN]"),
11
- debug: pc.gray("[DEBUG]"),
12
- trace: pc.gray("[TRACE]")
13
- };
14
- const numericTag = (value) => pc.green(value);
15
- const stringTag = (value) => pc.cyan(value);
16
- const booleanTag = (value) => pc.blue(value);
17
- const arrayBrackets = ["[", "]"].map((s) => pc.gray(s));
18
- const objectBrackets = ["{", "}"].map((s) => pc.gray(s));
19
- const prettyPrintObject = (obj, depth = 0, parentIsLast = false, prefix = "") => {
20
- const tab = prefix + (depth === 0 ? "" : parentIsLast ? "│ " : "│ ");
21
- if (depth > 2) return `${tab} └ ${pc.gray("[...]")}`;
22
- const entries = Object.entries(obj);
23
- return entries.map(([key, value], index) => {
24
- const isLast = index === entries.length - 1;
25
- const isObject = typeof value === "object" && value !== null;
26
- const prefix$1 = isLast && !isObject ? "└" : "├";
27
- if (isObject) {
28
- const subObject = prettyPrintObject(value, depth + 1, isLast, tab);
29
- const [start, end] = Array.isArray(value) ? arrayBrackets : objectBrackets;
30
- return `${tab}${prefix$1} ${key}: ${start}\n${subObject}\n${tab}${isLast ? "└" : "│"} ${end}`;
31
- }
32
- let printedValue = value;
33
- if (typeof value === "number") printedValue = numericTag(String(value));
34
- else if (typeof value === "boolean") printedValue = booleanTag(String(value));
35
- else if (typeof value === "string") printedValue = stringTag(value);
36
- return `${tab}${prefix$1} ${key}: ${printedValue}`;
37
- }).join("\n");
38
- };
39
- const prettyPrint = (json, excludeDetails = false) => {
40
- const { time, traceId, msg, flows, level, step, ...details } = json;
41
- const levelTag = levelTags[level];
42
- const timestamp = timestampTag(`[${new Date(time).toLocaleTimeString()}]`);
43
- const objectHasKeys = Object.keys(details).length > 0;
44
- console.log(`${timestamp} ${traceIdTag(traceId)} ${levelTag} ${stepTag(step)} ${msg}`);
45
- if (objectHasKeys && !excludeDetails) console.log(prettyPrintObject(details));
46
- };
47
-
48
- //#endregion
49
- export { prettyPrint };
50
- //# sourceMappingURL=pretty-print.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pretty-print.mjs","names":["levelTags: Record<string, string>","prefix"],"sources":["../../src/pretty-print.ts"],"sourcesContent":["import pc from 'picocolors'\n\nconst stepTag = (step: string) => pc.bold(pc.cyan(step))\nconst timestampTag = (timestamp: string) => pc.gray(timestamp)\nconst traceIdTag = (traceId: string) => pc.gray(traceId)\n\nconst levelTags: Record<string, string> = {\n error: pc.red('[ERROR]'),\n info: pc.blue('[INFO]'),\n warn: pc.yellow('[WARN]'),\n debug: pc.gray('[DEBUG]'),\n trace: pc.gray('[TRACE]'),\n}\n\nconst numericTag = (value: string) => pc.green(value)\nconst stringTag = (value: string) => pc.cyan(value)\nconst booleanTag = (value: string) => pc.blue(value)\n\nconst arrayBrackets = ['[', ']'].map((s) => pc.gray(s))\nconst objectBrackets = ['{', '}'].map((s) => pc.gray(s))\n\nconst prettyPrintObject = (obj: Record<string, any>, depth = 0, parentIsLast = false, prefix = ''): string => {\n const tab = prefix + (depth === 0 ? '' : parentIsLast ? '│ ' : '│ ')\n\n if (depth > 2) {\n return `${tab} └ ${pc.gray('[...]')}`\n }\n\n const entries = Object.entries(obj)\n\n return entries\n .map(([key, value], index) => {\n const isLast = index === entries.length - 1\n const isObject = typeof value === 'object' && value !== null\n const prefix = isLast && !isObject ? '└' : '├'\n\n if (isObject) {\n const subObject = prettyPrintObject(value, depth + 1, isLast, tab)\n const [start, end] = Array.isArray(value) ? arrayBrackets : objectBrackets\n\n return `${tab}${prefix} ${key}: ${start}\\n${subObject}\\n${tab}${isLast ? '└' : '│'} ${end}`\n }\n\n let printedValue = value\n\n if (typeof value === 'number') {\n printedValue = numericTag(String(value))\n } else if (typeof value === 'boolean') {\n printedValue = booleanTag(String(value))\n } else if (typeof value === 'string') {\n printedValue = stringTag(value)\n }\n\n return `${tab}${prefix} ${key}: ${printedValue}`\n })\n .join('\\n')\n}\n\nexport const prettyPrint = (json: Record<string, any>, excludeDetails = false): void => {\n const { time, traceId, msg, flows, level, step, ...details } = json\n const levelTag = levelTags[level]\n const timestamp = timestampTag(`[${new Date(time).toLocaleTimeString()}]`)\n const objectHasKeys = Object.keys(details).length > 0\n\n console.log(`${timestamp} ${traceIdTag(traceId)} ${levelTag} ${stepTag(step)} ${msg}`)\n\n if (objectHasKeys && !excludeDetails) {\n console.log(prettyPrintObject(details))\n }\n}\n"],"mappings":";;;AAEA,MAAM,WAAW,SAAiB,GAAG,KAAK,GAAG,KAAK,KAAK,CAAC;AACxD,MAAM,gBAAgB,cAAsB,GAAG,KAAK,UAAU;AAC9D,MAAM,cAAc,YAAoB,GAAG,KAAK,QAAQ;AAExD,MAAMA,YAAoC;CACxC,OAAO,GAAG,IAAI,UAAU;CACxB,MAAM,GAAG,KAAK,SAAS;CACvB,MAAM,GAAG,OAAO,SAAS;CACzB,OAAO,GAAG,KAAK,UAAU;CACzB,OAAO,GAAG,KAAK,UAAU;CAC1B;AAED,MAAM,cAAc,UAAkB,GAAG,MAAM,MAAM;AACrD,MAAM,aAAa,UAAkB,GAAG,KAAK,MAAM;AACnD,MAAM,cAAc,UAAkB,GAAG,KAAK,MAAM;AAEpD,MAAM,gBAAgB,CAAC,KAAK,IAAI,CAAC,KAAK,MAAM,GAAG,KAAK,EAAE,CAAC;AACvD,MAAM,iBAAiB,CAAC,KAAK,IAAI,CAAC,KAAK,MAAM,GAAG,KAAK,EAAE,CAAC;AAExD,MAAM,qBAAqB,KAA0B,QAAQ,GAAG,eAAe,OAAO,SAAS,OAAe;CAC5G,MAAM,MAAM,UAAU,UAAU,IAAI,KAAK,eAAe,OAAO;AAE/D,KAAI,QAAQ,EACV,QAAO,GAAG,IAAI,KAAK,GAAG,KAAK,QAAQ;CAGrC,MAAM,UAAU,OAAO,QAAQ,IAAI;AAEnC,QAAO,QACJ,KAAK,CAAC,KAAK,QAAQ,UAAU;EAC5B,MAAM,SAAS,UAAU,QAAQ,SAAS;EAC1C,MAAM,WAAW,OAAO,UAAU,YAAY,UAAU;EACxD,MAAMC,WAAS,UAAU,CAAC,WAAW,MAAM;AAE3C,MAAI,UAAU;GACZ,MAAM,YAAY,kBAAkB,OAAO,QAAQ,GAAG,QAAQ,IAAI;GAClE,MAAM,CAAC,OAAO,OAAO,MAAM,QAAQ,MAAM,GAAG,gBAAgB;AAE5D,UAAO,GAAG,MAAMA,SAAO,GAAG,IAAI,IAAI,MAAM,IAAI,UAAU,IAAI,MAAM,SAAS,MAAM,IAAI,GAAG;;EAGxF,IAAI,eAAe;AAEnB,MAAI,OAAO,UAAU,SACnB,gBAAe,WAAW,OAAO,MAAM,CAAC;WAC/B,OAAO,UAAU,UAC1B,gBAAe,WAAW,OAAO,MAAM,CAAC;WAC/B,OAAO,UAAU,SAC1B,gBAAe,UAAU,MAAM;AAGjC,SAAO,GAAG,MAAMA,SAAO,GAAG,IAAI,IAAI;GAClC,CACD,KAAK,KAAK;;AAGf,MAAa,eAAe,MAA2B,iBAAiB,UAAgB;CACtF,MAAM,EAAE,MAAM,SAAS,KAAK,OAAO,OAAO,MAAM,GAAG,YAAY;CAC/D,MAAM,WAAW,UAAU;CAC3B,MAAM,YAAY,aAAa,IAAI,IAAI,KAAK,KAAK,CAAC,oBAAoB,CAAC,GAAG;CAC1E,MAAM,gBAAgB,OAAO,KAAK,QAAQ,CAAC,SAAS;AAEpD,SAAQ,IAAI,GAAG,UAAU,GAAG,WAAW,QAAQ,CAAC,GAAG,SAAS,GAAG,QAAQ,KAAK,CAAC,GAAG,MAAM;AAEtF,KAAI,iBAAiB,CAAC,eACpB,SAAQ,IAAI,kBAAkB,QAAQ,CAAC"}