@unifiedcommerce/core 0.0.1 → 0.0.2

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 (554) hide show
  1. package/dist/auth/access.d.ts +1 -1
  2. package/dist/auth/access.d.ts.map +1 -1
  3. package/dist/auth/auth-schema.js +3 -3
  4. package/dist/auth/middleware.d.ts +2 -2
  5. package/dist/auth/middleware.d.ts.map +1 -1
  6. package/dist/auth/middleware.js +37 -10
  7. package/dist/auth/org.js +1 -1
  8. package/dist/auth/permissions.d.ts +1 -1
  9. package/dist/auth/permissions.d.ts.map +1 -1
  10. package/dist/auth/permissions.js +1 -1
  11. package/dist/auth/setup.d.ts +19 -10
  12. package/dist/auth/setup.d.ts.map +1 -1
  13. package/dist/auth/setup.js +3 -4
  14. package/dist/auth/system-actor.d.ts +1 -1
  15. package/dist/auth/system-actor.d.ts.map +1 -1
  16. package/dist/auth/system-actor.js +1 -1
  17. package/dist/config/defaults.d.ts +1 -1
  18. package/dist/config/defaults.d.ts.map +1 -1
  19. package/dist/config/define-config.d.ts +1 -1
  20. package/dist/config/define-config.d.ts.map +1 -1
  21. package/dist/config/define-config.js +2 -2
  22. package/dist/config/types.d.ts +11 -11
  23. package/dist/config/types.d.ts.map +1 -1
  24. package/dist/hooks/checkout-completion.d.ts +2 -2
  25. package/dist/hooks/checkout-completion.d.ts.map +1 -1
  26. package/dist/hooks/checkout-completion.js +2 -2
  27. package/dist/hooks/checkout.d.ts +3 -3
  28. package/dist/hooks/checkout.d.ts.map +1 -1
  29. package/dist/hooks/checkout.js +3 -3
  30. package/dist/hooks/order-emails.d.ts +1 -1
  31. package/dist/hooks/order-emails.d.ts.map +1 -1
  32. package/dist/index.d.ts +81 -81
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +50 -13381
  35. package/dist/interfaces/mcp/context-enrichment.d.ts +2 -2
  36. package/dist/interfaces/mcp/context-enrichment.d.ts.map +1 -1
  37. package/dist/interfaces/mcp/context-enrichment.js +1 -1
  38. package/dist/interfaces/mcp/server.d.ts +2 -2
  39. package/dist/interfaces/mcp/server.d.ts.map +1 -1
  40. package/dist/interfaces/mcp/server.js +3 -3
  41. package/dist/interfaces/mcp/transport.d.ts +2 -2
  42. package/dist/interfaces/mcp/transport.d.ts.map +1 -1
  43. package/dist/interfaces/mcp/transport.js +1 -1
  44. package/dist/interfaces/rest/customer-portal.d.ts +2 -2
  45. package/dist/interfaces/rest/customer-portal.d.ts.map +1 -1
  46. package/dist/interfaces/rest/customer-portal.js +3 -3
  47. package/dist/interfaces/rest/index.d.ts +2 -2
  48. package/dist/interfaces/rest/index.d.ts.map +1 -1
  49. package/dist/interfaces/rest/index.js +13 -13
  50. package/dist/interfaces/rest/router.d.ts +1 -1
  51. package/dist/interfaces/rest/router.d.ts.map +1 -1
  52. package/dist/interfaces/rest/router.js +4 -4
  53. package/dist/interfaces/rest/routes/admin-jobs.d.ts +2 -2
  54. package/dist/interfaces/rest/routes/admin-jobs.d.ts.map +1 -1
  55. package/dist/interfaces/rest/routes/admin-jobs.js +4 -4
  56. package/dist/interfaces/rest/routes/audit.d.ts +2 -2
  57. package/dist/interfaces/rest/routes/audit.d.ts.map +1 -1
  58. package/dist/interfaces/rest/routes/audit.js +3 -3
  59. package/dist/interfaces/rest/routes/carts.d.ts +2 -2
  60. package/dist/interfaces/rest/routes/carts.d.ts.map +1 -1
  61. package/dist/interfaces/rest/routes/carts.js +2 -2
  62. package/dist/interfaces/rest/routes/catalog.d.ts +2 -2
  63. package/dist/interfaces/rest/routes/catalog.d.ts.map +1 -1
  64. package/dist/interfaces/rest/routes/catalog.js +2 -2
  65. package/dist/interfaces/rest/routes/checkout.d.ts +2 -2
  66. package/dist/interfaces/rest/routes/checkout.d.ts.map +1 -1
  67. package/dist/interfaces/rest/routes/checkout.js +7 -7
  68. package/dist/interfaces/rest/routes/inventory.d.ts +2 -2
  69. package/dist/interfaces/rest/routes/inventory.d.ts.map +1 -1
  70. package/dist/interfaces/rest/routes/inventory.js +2 -2
  71. package/dist/interfaces/rest/routes/media.d.ts +2 -2
  72. package/dist/interfaces/rest/routes/media.d.ts.map +1 -1
  73. package/dist/interfaces/rest/routes/media.js +2 -2
  74. package/dist/interfaces/rest/routes/orders.d.ts +2 -2
  75. package/dist/interfaces/rest/routes/orders.d.ts.map +1 -1
  76. package/dist/interfaces/rest/routes/orders.js +2 -2
  77. package/dist/interfaces/rest/routes/payments.d.ts +2 -2
  78. package/dist/interfaces/rest/routes/payments.d.ts.map +1 -1
  79. package/dist/interfaces/rest/routes/payments.js +2 -2
  80. package/dist/interfaces/rest/routes/pricing.d.ts +2 -2
  81. package/dist/interfaces/rest/routes/pricing.d.ts.map +1 -1
  82. package/dist/interfaces/rest/routes/pricing.js +2 -2
  83. package/dist/interfaces/rest/routes/promotions.d.ts +2 -2
  84. package/dist/interfaces/rest/routes/promotions.d.ts.map +1 -1
  85. package/dist/interfaces/rest/routes/promotions.js +3 -3
  86. package/dist/interfaces/rest/routes/search.d.ts +2 -2
  87. package/dist/interfaces/rest/routes/search.d.ts.map +1 -1
  88. package/dist/interfaces/rest/routes/search.js +2 -2
  89. package/dist/interfaces/rest/routes/webhooks.d.ts +2 -2
  90. package/dist/interfaces/rest/routes/webhooks.d.ts.map +1 -1
  91. package/dist/interfaces/rest/routes/webhooks.js +2 -2
  92. package/dist/interfaces/rest/schemas/admin-jobs.js +1 -1
  93. package/dist/interfaces/rest/schemas/carts.d.ts +1 -1
  94. package/dist/interfaces/rest/schemas/carts.d.ts.map +1 -1
  95. package/dist/interfaces/rest/schemas/carts.js +3 -3
  96. package/dist/interfaces/rest/schemas/catalog.js +3 -3
  97. package/dist/interfaces/rest/schemas/checkout.js +1 -1
  98. package/dist/interfaces/rest/schemas/customer-portal.js +2 -2
  99. package/dist/interfaces/rest/schemas/inventory.d.ts +1 -1
  100. package/dist/interfaces/rest/schemas/inventory.d.ts.map +1 -1
  101. package/dist/interfaces/rest/schemas/inventory.js +2 -2
  102. package/dist/interfaces/rest/schemas/media.js +1 -1
  103. package/dist/interfaces/rest/schemas/orders.js +2 -2
  104. package/dist/interfaces/rest/schemas/pricing.d.ts +1 -1
  105. package/dist/interfaces/rest/schemas/pricing.d.ts.map +1 -1
  106. package/dist/interfaces/rest/schemas/pricing.js +2 -2
  107. package/dist/interfaces/rest/schemas/promotions.d.ts +1 -1
  108. package/dist/interfaces/rest/schemas/promotions.d.ts.map +1 -1
  109. package/dist/interfaces/rest/schemas/promotions.js +2 -2
  110. package/dist/interfaces/rest/schemas/responses.js +5 -5
  111. package/dist/interfaces/rest/schemas/search.js +1 -1
  112. package/dist/interfaces/rest/schemas/webhooks.js +1 -1
  113. package/dist/interfaces/rest/utils.d.ts +2 -2
  114. package/dist/interfaces/rest/utils.d.ts.map +1 -1
  115. package/dist/interfaces/rest/utils.js +2 -2
  116. package/dist/interfaces/rest/webhook-router.d.ts +1 -1
  117. package/dist/interfaces/rest/webhook-router.d.ts.map +1 -1
  118. package/dist/kernel/compensation/executor.d.ts +2 -2
  119. package/dist/kernel/compensation/executor.d.ts.map +1 -1
  120. package/dist/kernel/compensation/types.d.ts +3 -3
  121. package/dist/kernel/compensation/types.d.ts.map +1 -1
  122. package/dist/kernel/database/drizzle-db.d.ts +1 -1
  123. package/dist/kernel/database/drizzle-db.d.ts.map +1 -1
  124. package/dist/kernel/database/drizzle-db.js +1 -1
  125. package/dist/kernel/database/migrate.d.ts +2 -2
  126. package/dist/kernel/database/migrate.d.ts.map +1 -1
  127. package/dist/kernel/database/migrate.js +1 -1
  128. package/dist/kernel/database/schema.d.ts +13 -13
  129. package/dist/kernel/database/schema.d.ts.map +1 -1
  130. package/dist/kernel/database/schema.js +13 -13
  131. package/dist/kernel/database/tx-context.d.ts +2 -2
  132. package/dist/kernel/database/tx-context.d.ts.map +1 -1
  133. package/dist/kernel/error-mapper.js +1 -1
  134. package/dist/kernel/factory/repository-factory.d.ts +2 -2
  135. package/dist/kernel/factory/repository-factory.d.ts.map +1 -1
  136. package/dist/kernel/factory/repository-factory.js +1 -1
  137. package/dist/kernel/hooks/create-context.d.ts +4 -4
  138. package/dist/kernel/hooks/create-context.d.ts.map +1 -1
  139. package/dist/kernel/hooks/create-context.js +1 -1
  140. package/dist/kernel/hooks/executor.d.ts +1 -1
  141. package/dist/kernel/hooks/executor.d.ts.map +1 -1
  142. package/dist/kernel/hooks/types.d.ts +3 -3
  143. package/dist/kernel/hooks/types.d.ts.map +1 -1
  144. package/dist/kernel/http-error.d.ts +1 -1
  145. package/dist/kernel/http-error.d.ts.map +1 -1
  146. package/dist/kernel/jobs/drizzle-adapter.d.ts +3 -3
  147. package/dist/kernel/jobs/drizzle-adapter.d.ts.map +1 -1
  148. package/dist/kernel/jobs/drizzle-adapter.js +2 -2
  149. package/dist/kernel/jobs/runner.d.ts +3 -3
  150. package/dist/kernel/jobs/runner.d.ts.map +1 -1
  151. package/dist/kernel/jobs/runner.js +1 -1
  152. package/dist/kernel/jobs/schema.js +1 -1
  153. package/dist/kernel/jobs/types.d.ts +2 -2
  154. package/dist/kernel/jobs/types.d.ts.map +1 -1
  155. package/dist/kernel/local-api.d.ts +21 -21
  156. package/dist/kernel/local-api.d.ts.map +1 -1
  157. package/dist/kernel/plugin/manifest.d.ts +1 -1
  158. package/dist/kernel/plugin/manifest.d.ts.map +1 -1
  159. package/dist/kernel/query/executor.d.ts +1 -1
  160. package/dist/kernel/query/executor.d.ts.map +1 -1
  161. package/dist/kernel/query/executor.js +1 -1
  162. package/dist/kernel/result.d.ts +1 -1
  163. package/dist/kernel/result.d.ts.map +1 -1
  164. package/dist/kernel/state-machine/machine.js +1 -1
  165. package/dist/modules/analytics/drizzle-adapter.d.ts +3 -3
  166. package/dist/modules/analytics/drizzle-adapter.d.ts.map +1 -1
  167. package/dist/modules/analytics/drizzle-adapter.js +2 -2
  168. package/dist/modules/analytics/models.d.ts +1 -1
  169. package/dist/modules/analytics/models.d.ts.map +1 -1
  170. package/dist/modules/analytics/repository/index.d.ts +1 -1
  171. package/dist/modules/analytics/repository/index.d.ts.map +1 -1
  172. package/dist/modules/analytics/service.d.ts +4 -4
  173. package/dist/modules/analytics/service.d.ts.map +1 -1
  174. package/dist/modules/analytics/service.js +2 -2
  175. package/dist/modules/analytics/types.d.ts +1 -1
  176. package/dist/modules/analytics/types.d.ts.map +1 -1
  177. package/dist/modules/audit/hooks.d.ts +1 -1
  178. package/dist/modules/audit/hooks.d.ts.map +1 -1
  179. package/dist/modules/audit/schema.js +1 -1
  180. package/dist/modules/audit/service.d.ts +4 -4
  181. package/dist/modules/audit/service.d.ts.map +1 -1
  182. package/dist/modules/audit/service.js +2 -2
  183. package/dist/modules/cart/access.d.ts +2 -2
  184. package/dist/modules/cart/access.d.ts.map +1 -1
  185. package/dist/modules/cart/matcher.d.ts +1 -1
  186. package/dist/modules/cart/matcher.d.ts.map +1 -1
  187. package/dist/modules/cart/repository/index.d.ts +3 -3
  188. package/dist/modules/cart/repository/index.d.ts.map +1 -1
  189. package/dist/modules/cart/repository/index.js +1 -1
  190. package/dist/modules/cart/schema.js +2 -2
  191. package/dist/modules/cart/service.d.ts +10 -10
  192. package/dist/modules/cart/service.d.ts.map +1 -1
  193. package/dist/modules/cart/service.js +8 -8
  194. package/dist/modules/catalog/repository/index.d.ts +3 -3
  195. package/dist/modules/catalog/repository/index.d.ts.map +1 -1
  196. package/dist/modules/catalog/repository/index.js +1 -1
  197. package/dist/modules/catalog/schema.js +1 -1
  198. package/dist/modules/catalog/service.d.ts +9 -9
  199. package/dist/modules/catalog/service.d.ts.map +1 -1
  200. package/dist/modules/catalog/service.js +8 -8
  201. package/dist/modules/customers/repository/index.d.ts +3 -3
  202. package/dist/modules/customers/repository/index.d.ts.map +1 -1
  203. package/dist/modules/customers/repository/index.js +1 -1
  204. package/dist/modules/customers/schema.js +1 -1
  205. package/dist/modules/customers/service.d.ts +4 -4
  206. package/dist/modules/customers/service.d.ts.map +1 -1
  207. package/dist/modules/customers/service.js +3 -3
  208. package/dist/modules/fulfillment/repository/index.d.ts +3 -3
  209. package/dist/modules/fulfillment/repository/index.d.ts.map +1 -1
  210. package/dist/modules/fulfillment/repository/index.js +1 -1
  211. package/dist/modules/fulfillment/schema.js +2 -2
  212. package/dist/modules/fulfillment/service.d.ts +6 -6
  213. package/dist/modules/fulfillment/service.d.ts.map +1 -1
  214. package/dist/modules/fulfillment/service.js +4 -4
  215. package/dist/modules/fulfillment/types.d.ts +2 -2
  216. package/dist/modules/fulfillment/types.d.ts.map +1 -1
  217. package/dist/modules/inventory/repository/index.d.ts +3 -3
  218. package/dist/modules/inventory/repository/index.d.ts.map +1 -1
  219. package/dist/modules/inventory/repository/index.js +1 -1
  220. package/dist/modules/inventory/schema.js +2 -2
  221. package/dist/modules/inventory/service.d.ts +9 -9
  222. package/dist/modules/inventory/service.d.ts.map +1 -1
  223. package/dist/modules/inventory/service.js +8 -8
  224. package/dist/modules/media/adapter.d.ts +1 -1
  225. package/dist/modules/media/adapter.d.ts.map +1 -1
  226. package/dist/modules/media/repository/index.d.ts +3 -3
  227. package/dist/modules/media/repository/index.d.ts.map +1 -1
  228. package/dist/modules/media/repository/index.js +1 -1
  229. package/dist/modules/media/schema.js +2 -2
  230. package/dist/modules/media/service.d.ts +6 -6
  231. package/dist/modules/media/service.d.ts.map +1 -1
  232. package/dist/modules/media/service.js +4 -4
  233. package/dist/modules/orders/repository/index.d.ts +3 -3
  234. package/dist/modules/orders/repository/index.d.ts.map +1 -1
  235. package/dist/modules/orders/repository/index.js +1 -1
  236. package/dist/modules/orders/schema.js +2 -2
  237. package/dist/modules/orders/service.d.ts +8 -8
  238. package/dist/modules/orders/service.d.ts.map +1 -1
  239. package/dist/modules/orders/service.js +9 -9
  240. package/dist/modules/orders/stale-order-cleanup.d.ts +1 -1
  241. package/dist/modules/orders/stale-order-cleanup.d.ts.map +1 -1
  242. package/dist/modules/orders/stale-order-cleanup.js +1 -1
  243. package/dist/modules/organization/service.d.ts +1 -1
  244. package/dist/modules/organization/service.d.ts.map +1 -1
  245. package/dist/modules/organization/service.js +1 -1
  246. package/dist/modules/payments/adapter.d.ts +1 -1
  247. package/dist/modules/payments/adapter.d.ts.map +1 -1
  248. package/dist/modules/payments/repository/index.d.ts +1 -1
  249. package/dist/modules/payments/repository/index.d.ts.map +1 -1
  250. package/dist/modules/payments/service.d.ts +3 -3
  251. package/dist/modules/payments/service.d.ts.map +1 -1
  252. package/dist/modules/payments/service.js +2 -2
  253. package/dist/modules/pricing/repository/index.d.ts +3 -3
  254. package/dist/modules/pricing/repository/index.d.ts.map +1 -1
  255. package/dist/modules/pricing/repository/index.js +1 -1
  256. package/dist/modules/pricing/schema.js +2 -2
  257. package/dist/modules/pricing/service.d.ts +7 -7
  258. package/dist/modules/pricing/service.d.ts.map +1 -1
  259. package/dist/modules/pricing/service.js +3 -3
  260. package/dist/modules/promotions/repository/index.d.ts +3 -3
  261. package/dist/modules/promotions/repository/index.d.ts.map +1 -1
  262. package/dist/modules/promotions/repository/index.js +1 -1
  263. package/dist/modules/promotions/schema.js +1 -1
  264. package/dist/modules/promotions/service.d.ts +8 -8
  265. package/dist/modules/promotions/service.d.ts.map +1 -1
  266. package/dist/modules/promotions/service.js +3 -3
  267. package/dist/modules/search/adapter.d.ts +1 -1
  268. package/dist/modules/search/adapter.d.ts.map +1 -1
  269. package/dist/modules/search/hooks.d.ts +1 -1
  270. package/dist/modules/search/hooks.d.ts.map +1 -1
  271. package/dist/modules/search/repository/index.d.ts +1 -1
  272. package/dist/modules/search/repository/index.d.ts.map +1 -1
  273. package/dist/modules/search/service.d.ts +4 -4
  274. package/dist/modules/search/service.d.ts.map +1 -1
  275. package/dist/modules/search/service.js +2 -2
  276. package/dist/modules/shipping/calculator.d.ts +3 -3
  277. package/dist/modules/shipping/calculator.d.ts.map +1 -1
  278. package/dist/modules/shipping/repository/index.d.ts +1 -1
  279. package/dist/modules/shipping/repository/index.d.ts.map +1 -1
  280. package/dist/modules/shipping/service.d.ts +5 -5
  281. package/dist/modules/shipping/service.d.ts.map +1 -1
  282. package/dist/modules/shipping/service.js +2 -2
  283. package/dist/modules/tax/adapter.d.ts +1 -1
  284. package/dist/modules/tax/adapter.d.ts.map +1 -1
  285. package/dist/modules/tax/repository/index.d.ts +1 -1
  286. package/dist/modules/tax/repository/index.d.ts.map +1 -1
  287. package/dist/modules/tax/service.d.ts +2 -2
  288. package/dist/modules/tax/service.d.ts.map +1 -1
  289. package/dist/modules/tax/service.js +2 -2
  290. package/dist/modules/webhooks/hook.d.ts +1 -1
  291. package/dist/modules/webhooks/hook.d.ts.map +1 -1
  292. package/dist/modules/webhooks/repository/index.d.ts +3 -3
  293. package/dist/modules/webhooks/repository/index.d.ts.map +1 -1
  294. package/dist/modules/webhooks/repository/index.js +1 -1
  295. package/dist/modules/webhooks/schema.js +1 -1
  296. package/dist/modules/webhooks/service.d.ts +4 -4
  297. package/dist/modules/webhooks/service.d.ts.map +1 -1
  298. package/dist/modules/webhooks/service.js +3 -3
  299. package/dist/modules/webhooks/tasks.d.ts +1 -1
  300. package/dist/modules/webhooks/tasks.d.ts.map +1 -1
  301. package/dist/modules/webhooks/tasks.js +1 -1
  302. package/dist/modules/webhooks/worker.d.ts +1 -1
  303. package/dist/modules/webhooks/worker.d.ts.map +1 -1
  304. package/dist/modules/webhooks/worker.js +2 -2
  305. package/dist/runtime/commerce.d.ts +9 -9
  306. package/dist/runtime/commerce.d.ts.map +1 -1
  307. package/dist/runtime/commerce.js +5 -5
  308. package/dist/runtime/kernel.d.ts +21 -21
  309. package/dist/runtime/kernel.d.ts.map +1 -1
  310. package/dist/runtime/kernel.js +41 -41
  311. package/dist/runtime/logger.d.ts +1 -1
  312. package/dist/runtime/logger.d.ts.map +1 -1
  313. package/dist/runtime/server.d.ts +6 -6
  314. package/dist/runtime/server.d.ts.map +1 -1
  315. package/dist/runtime/server.js +8 -6
  316. package/dist/runtime/shutdown.d.ts +1 -1
  317. package/dist/runtime/shutdown.d.ts.map +1 -1
  318. package/dist/test-utils/create-pglite-adapter.d.ts +2 -2
  319. package/dist/test-utils/create-pglite-adapter.d.ts.map +1 -1
  320. package/dist/test-utils/create-pglite-adapter.js +3 -3
  321. package/dist/test-utils/create-plugin-test-app.d.ts +3 -3
  322. package/dist/test-utils/create-plugin-test-app.d.ts.map +1 -1
  323. package/dist/test-utils/create-plugin-test-app.js +4 -4
  324. package/dist/test-utils/create-repository-test-harness.d.ts +2 -2
  325. package/dist/test-utils/create-repository-test-harness.d.ts.map +1 -1
  326. package/dist/test-utils/create-repository-test-harness.js +2 -2
  327. package/dist/test-utils/create-test-config.d.ts +1 -1
  328. package/dist/test-utils/create-test-config.d.ts.map +1 -1
  329. package/dist/test-utils/create-test-config.js +4 -4
  330. package/dist/test-utils/create-test-kernel.d.ts +2 -2
  331. package/dist/test-utils/create-test-kernel.d.ts.map +1 -1
  332. package/dist/test-utils/create-test-kernel.js +2 -2
  333. package/dist/test-utils/create-test-plugin-context.d.ts +2 -2
  334. package/dist/test-utils/create-test-plugin-context.d.ts.map +1 -1
  335. package/dist/test-utils/create-test-plugin-context.js +3 -3
  336. package/dist/test-utils/rest-api-test-utils.d.ts +4 -4
  337. package/dist/test-utils/rest-api-test-utils.d.ts.map +1 -1
  338. package/dist/test-utils/rest-api-test-utils.js +8 -8
  339. package/dist/test-utils/test-actors.d.ts +1 -1
  340. package/dist/test-utils/test-actors.d.ts.map +1 -1
  341. package/dist/test-utils/typed-hooks.d.ts +2 -2
  342. package/dist/test-utils/typed-hooks.d.ts.map +1 -1
  343. package/dist/types/commerce-types.d.ts +5 -5
  344. package/dist/types/commerce-types.d.ts.map +1 -1
  345. package/dist/utils/logger.d.ts +1 -1
  346. package/dist/utils/logger.d.ts.map +1 -1
  347. package/package.json +17 -9
  348. package/src/auth/access.ts +1 -1
  349. package/src/auth/auth-schema.ts +3 -3
  350. package/src/auth/middleware.ts +43 -14
  351. package/src/auth/org.ts +1 -1
  352. package/src/auth/permissions.ts +2 -2
  353. package/src/auth/setup.ts +18 -14
  354. package/src/auth/system-actor.ts +2 -2
  355. package/src/config/defaults.ts +1 -1
  356. package/src/config/define-config.ts +3 -3
  357. package/src/config/types.ts +11 -11
  358. package/src/hooks/checkout-completion.ts +4 -4
  359. package/src/hooks/checkout.ts +8 -8
  360. package/src/hooks/order-emails.ts +1 -1
  361. package/src/index.ts +83 -83
  362. package/src/interfaces/mcp/context-enrichment.ts +3 -3
  363. package/src/interfaces/mcp/server.ts +6 -6
  364. package/src/interfaces/mcp/transport.ts +3 -3
  365. package/src/interfaces/rest/customer-portal.ts +6 -6
  366. package/src/interfaces/rest/index.ts +15 -15
  367. package/src/interfaces/rest/router.ts +5 -5
  368. package/src/interfaces/rest/routes/admin-jobs.ts +5 -5
  369. package/src/interfaces/rest/routes/audit.ts +4 -4
  370. package/src/interfaces/rest/routes/carts.ts +4 -4
  371. package/src/interfaces/rest/routes/catalog.ts +5 -5
  372. package/src/interfaces/rest/routes/checkout.ts +11 -11
  373. package/src/interfaces/rest/routes/inventory.ts +3 -3
  374. package/src/interfaces/rest/routes/media.ts +4 -4
  375. package/src/interfaces/rest/routes/orders.ts +3 -3
  376. package/src/interfaces/rest/routes/payments.ts +3 -3
  377. package/src/interfaces/rest/routes/pricing.ts +3 -3
  378. package/src/interfaces/rest/routes/promotions.ts +4 -4
  379. package/src/interfaces/rest/routes/search.ts +3 -3
  380. package/src/interfaces/rest/routes/webhooks.ts +3 -3
  381. package/src/interfaces/rest/schemas/admin-jobs.ts +1 -1
  382. package/src/interfaces/rest/schemas/carts.ts +3 -3
  383. package/src/interfaces/rest/schemas/catalog.ts +3 -3
  384. package/src/interfaces/rest/schemas/checkout.ts +1 -1
  385. package/src/interfaces/rest/schemas/customer-portal.ts +2 -2
  386. package/src/interfaces/rest/schemas/inventory.ts +2 -2
  387. package/src/interfaces/rest/schemas/media.ts +1 -1
  388. package/src/interfaces/rest/schemas/orders.ts +2 -2
  389. package/src/interfaces/rest/schemas/pricing.ts +2 -2
  390. package/src/interfaces/rest/schemas/promotions.ts +2 -2
  391. package/src/interfaces/rest/schemas/responses.ts +5 -5
  392. package/src/interfaces/rest/schemas/search.ts +1 -1
  393. package/src/interfaces/rest/schemas/webhooks.ts +1 -1
  394. package/src/interfaces/rest/utils.ts +4 -4
  395. package/src/interfaces/rest/webhook-router.ts +1 -1
  396. package/src/kernel/compensation/executor.ts +2 -2
  397. package/src/kernel/compensation/types.ts +3 -3
  398. package/src/kernel/database/drizzle-db.ts +1 -1
  399. package/src/kernel/database/migrate.ts +2 -2
  400. package/src/kernel/database/schema.ts +13 -13
  401. package/src/kernel/database/tx-context.ts +2 -2
  402. package/src/kernel/error-mapper.ts +1 -1
  403. package/src/kernel/factory/repository-factory.ts +3 -3
  404. package/src/kernel/hooks/create-context.ts +5 -5
  405. package/src/kernel/hooks/executor.ts +1 -1
  406. package/src/kernel/hooks/types.ts +3 -3
  407. package/src/kernel/http-error.ts +1 -1
  408. package/src/kernel/jobs/drizzle-adapter.ts +5 -5
  409. package/src/kernel/jobs/runner.ts +4 -4
  410. package/src/kernel/jobs/schema.ts +1 -1
  411. package/src/kernel/jobs/types.ts +2 -2
  412. package/src/kernel/local-api.ts +4 -4
  413. package/src/kernel/plugin/manifest.ts +1 -1
  414. package/src/kernel/query/executor.ts +2 -2
  415. package/src/kernel/result.ts +1 -1
  416. package/src/kernel/state-machine/machine.ts +1 -1
  417. package/src/modules/analytics/drizzle-adapter.ts +4 -4
  418. package/src/modules/analytics/models.ts +1 -1
  419. package/src/modules/analytics/repository/index.ts +1 -1
  420. package/src/modules/analytics/service.ts +5 -5
  421. package/src/modules/analytics/types.ts +1 -1
  422. package/src/modules/audit/hooks.ts +3 -3
  423. package/src/modules/audit/schema.ts +1 -1
  424. package/src/modules/audit/service.ts +5 -5
  425. package/src/modules/cart/access.ts +2 -2
  426. package/src/modules/cart/matcher.ts +1 -1
  427. package/src/modules/cart/repository/index.ts +3 -3
  428. package/src/modules/cart/schema.ts +2 -2
  429. package/src/modules/cart/service.ts +17 -17
  430. package/src/modules/catalog/repository/index.ts +3 -3
  431. package/src/modules/catalog/schema.ts +1 -1
  432. package/src/modules/catalog/service.ts +16 -16
  433. package/src/modules/customers/repository/index.ts +3 -3
  434. package/src/modules/customers/schema.ts +1 -1
  435. package/src/modules/customers/service.ts +6 -6
  436. package/src/modules/fulfillment/repository/index.ts +3 -3
  437. package/src/modules/fulfillment/schema.ts +2 -2
  438. package/src/modules/fulfillment/service.ts +9 -9
  439. package/src/modules/fulfillment/types.ts +2 -2
  440. package/src/modules/inventory/repository/index.ts +3 -3
  441. package/src/modules/inventory/schema.ts +2 -2
  442. package/src/modules/inventory/service.ts +16 -16
  443. package/src/modules/media/adapter.ts +1 -1
  444. package/src/modules/media/repository/index.ts +3 -3
  445. package/src/modules/media/schema.ts +2 -2
  446. package/src/modules/media/service.ts +9 -9
  447. package/src/modules/orders/repository/index.ts +3 -3
  448. package/src/modules/orders/schema.ts +2 -2
  449. package/src/modules/orders/service.ts +15 -15
  450. package/src/modules/orders/stale-order-cleanup.ts +2 -2
  451. package/src/modules/organization/service.ts +2 -2
  452. package/src/modules/payments/adapter.ts +1 -1
  453. package/src/modules/payments/repository/index.ts +1 -1
  454. package/src/modules/payments/service.ts +3 -3
  455. package/src/modules/pricing/repository/index.ts +3 -3
  456. package/src/modules/pricing/schema.ts +2 -2
  457. package/src/modules/pricing/service.ts +9 -9
  458. package/src/modules/promotions/repository/index.ts +3 -3
  459. package/src/modules/promotions/schema.ts +1 -1
  460. package/src/modules/promotions/service.ts +10 -10
  461. package/src/modules/search/adapter.ts +1 -1
  462. package/src/modules/search/hooks.ts +2 -2
  463. package/src/modules/search/repository/index.ts +1 -1
  464. package/src/modules/search/service.ts +5 -5
  465. package/src/modules/shipping/calculator.ts +3 -3
  466. package/src/modules/shipping/repository/index.ts +1 -1
  467. package/src/modules/shipping/service.ts +5 -5
  468. package/src/modules/tax/adapter.ts +1 -1
  469. package/src/modules/tax/repository/index.ts +1 -1
  470. package/src/modules/tax/service.ts +3 -3
  471. package/src/modules/webhooks/hook.ts +1 -1
  472. package/src/modules/webhooks/repository/index.ts +3 -3
  473. package/src/modules/webhooks/schema.ts +1 -1
  474. package/src/modules/webhooks/service.ts +6 -6
  475. package/src/modules/webhooks/tasks.ts +3 -3
  476. package/src/modules/webhooks/worker.ts +3 -3
  477. package/src/runtime/commerce.ts +11 -11
  478. package/src/runtime/kernel.ts +45 -45
  479. package/src/runtime/logger.ts +1 -1
  480. package/src/runtime/server.ts +17 -13
  481. package/src/runtime/shutdown.ts +1 -1
  482. package/src/test-utils/create-pglite-adapter.ts +5 -5
  483. package/src/test-utils/create-plugin-test-app.ts +7 -7
  484. package/src/test-utils/create-repository-test-harness.ts +3 -3
  485. package/src/test-utils/create-test-config.ts +6 -6
  486. package/src/test-utils/create-test-kernel.ts +3 -3
  487. package/src/test-utils/create-test-plugin-context.ts +4 -4
  488. package/src/test-utils/rest-api-test-utils.ts +11 -11
  489. package/src/test-utils/test-actors.ts +1 -1
  490. package/src/test-utils/typed-hooks.ts +2 -2
  491. package/src/types/commerce-types.ts +5 -5
  492. package/src/utils/logger.ts +1 -1
  493. package/dist/auth/pos.d.ts +0 -3
  494. package/dist/auth/pos.d.ts.map +0 -1
  495. package/dist/auth/pos.js +0 -62
  496. package/dist/index.js.map +0 -156
  497. package/dist/interfaces/graphql/index.d.ts +0 -4
  498. package/dist/interfaces/graphql/index.d.ts.map +0 -1
  499. package/dist/interfaces/graphql/index.js +0 -415
  500. package/dist/kernel/factory/in-memory-repository-factory.d.ts +0 -20
  501. package/dist/kernel/factory/in-memory-repository-factory.d.ts.map +0 -1
  502. package/dist/kernel/factory/in-memory-repository-factory.js +0 -83
  503. package/dist/kernel/plugin/capability-registry.d.ts +0 -9
  504. package/dist/kernel/plugin/capability-registry.d.ts.map +0 -1
  505. package/dist/kernel/plugin/capability-registry.js +0 -28
  506. package/dist/kernel/plugin/dependency-graph.d.ts +0 -6
  507. package/dist/kernel/plugin/dependency-graph.d.ts.map +0 -1
  508. package/dist/kernel/plugin/dependency-graph.js +0 -55
  509. package/dist/modules/analytics/cubes.d.ts +0 -19
  510. package/dist/modules/analytics/cubes.d.ts.map +0 -1
  511. package/dist/modules/analytics/cubes.js +0 -187
  512. package/dist/modules/cart/repository/in-memory.d.ts +0 -30
  513. package/dist/modules/cart/repository/in-memory.d.ts.map +0 -1
  514. package/dist/modules/cart/repository/in-memory.js +0 -159
  515. package/dist/modules/catalog/repository/in-memory.d.ts +0 -82
  516. package/dist/modules/catalog/repository/in-memory.d.ts.map +0 -1
  517. package/dist/modules/catalog/repository/in-memory.js +0 -444
  518. package/dist/modules/customers/repository/in-memory.d.ts +0 -37
  519. package/dist/modules/customers/repository/in-memory.d.ts.map +0 -1
  520. package/dist/modules/customers/repository/in-memory.js +0 -278
  521. package/dist/modules/fulfillment/repository/in-memory.d.ts +0 -53
  522. package/dist/modules/fulfillment/repository/in-memory.d.ts.map +0 -1
  523. package/dist/modules/fulfillment/repository/in-memory.js +0 -327
  524. package/dist/modules/inventory/repository/in-memory.d.ts +0 -51
  525. package/dist/modules/inventory/repository/in-memory.d.ts.map +0 -1
  526. package/dist/modules/inventory/repository/in-memory.js +0 -281
  527. package/dist/modules/media/repository/in-memory.d.ts +0 -26
  528. package/dist/modules/media/repository/in-memory.d.ts.map +0 -1
  529. package/dist/modules/media/repository/in-memory.js +0 -145
  530. package/dist/modules/orders/repository/in-memory.d.ts +0 -40
  531. package/dist/modules/orders/repository/in-memory.d.ts.map +0 -1
  532. package/dist/modules/orders/repository/in-memory.js +0 -245
  533. package/dist/modules/pricing/repository/in-memory.d.ts +0 -25
  534. package/dist/modules/pricing/repository/in-memory.d.ts.map +0 -1
  535. package/dist/modules/pricing/repository/in-memory.js +0 -288
  536. package/dist/modules/promotions/repository/in-memory.d.ts +0 -32
  537. package/dist/modules/promotions/repository/in-memory.d.ts.map +0 -1
  538. package/dist/modules/promotions/repository/in-memory.js +0 -227
  539. package/dist/modules/webhooks/repository/in-memory.d.ts +0 -31
  540. package/dist/modules/webhooks/repository/in-memory.d.ts.map +0 -1
  541. package/dist/modules/webhooks/repository/in-memory.js +0 -187
  542. package/dist/runtime/state-manager.d.ts +0 -14
  543. package/dist/runtime/state-manager.d.ts.map +0 -1
  544. package/dist/runtime/state-manager.js +0 -84
  545. package/dist/runtime/state-repository.d.ts +0 -13
  546. package/dist/runtime/state-repository.d.ts.map +0 -1
  547. package/dist/runtime/state-repository.js +0 -160
  548. package/dist/runtime/state.d.ts +0 -382
  549. package/dist/runtime/state.d.ts.map +0 -1
  550. package/dist/runtime/state.js +0 -37
  551. package/dist/runtime/store.d.ts +0 -382
  552. package/dist/runtime/store.d.ts.map +0 -1
  553. package/dist/runtime/store.js +0 -37
  554. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,227 +0,0 @@
1
- function makeId() {
2
- return crypto.randomUUID();
3
- }
4
- /**
5
- * In-memory implementation of PromotionsRepository for testing.
6
- */
7
- export class InMemoryPromotionsRepository {
8
- promotions = new Map();
9
- usages = [];
10
- // ─────────────────────────────────────────────────────────────────────────────
11
- // Promotions
12
- // ─────────────────────────────────────────────────────────────────────────────
13
- async findById(id, _ctx) {
14
- return this.promotions.get(id);
15
- }
16
- async findByCode(code, _ctx) {
17
- return [...this.promotions.values()].find((p) => p.code === code);
18
- }
19
- async findAll(_ctx) {
20
- return [...this.promotions.values()].sort((a, b) => b.priority - a.priority);
21
- }
22
- async findActive(_ctx) {
23
- const now = new Date();
24
- return [...this.promotions.values()]
25
- .filter((p) => {
26
- if (!p.isActive)
27
- return false;
28
- if (p.validFrom && p.validFrom > now)
29
- return false;
30
- if (p.validUntil && p.validUntil < now)
31
- return false;
32
- return true;
33
- })
34
- .sort((a, b) => b.priority - a.priority);
35
- }
36
- async findAutomatic(_ctx) {
37
- const now = new Date();
38
- return [...this.promotions.values()]
39
- .filter((p) => {
40
- if (!p.isActive)
41
- return false;
42
- if (!p.isAutomatic)
43
- return false;
44
- if (p.validFrom && p.validFrom > now)
45
- return false;
46
- if (p.validUntil && p.validUntil < now)
47
- return false;
48
- return true;
49
- })
50
- .sort((a, b) => b.priority - a.priority);
51
- }
52
- async create(data, _ctx) {
53
- // Enforce unique code constraint (nullable: multiple NULLs allowed, but non-null codes must be unique)
54
- if (data.code != null) {
55
- const duplicate = [...this.promotions.values()].find((p) => p.code === data.code);
56
- if (duplicate) {
57
- throw new Error(`Promotion with code "${data.code}" already exists.`);
58
- }
59
- }
60
- const now = new Date();
61
- const promotion = {
62
- id: data.id ?? makeId(),
63
- code: data.code === undefined ? null : data.code,
64
- name: data.name,
65
- type: data.type,
66
- value: data.value ?? 0,
67
- buyQuantity: data.buyQuantity === undefined ? null : data.buyQuantity,
68
- getQuantity: data.getQuantity === undefined ? null : data.getQuantity,
69
- isAutomatic: data.isAutomatic ?? false,
70
- isActive: data.isActive ?? true,
71
- priority: data.priority ?? 100,
72
- conditions: data.conditions === undefined ? null : data.conditions,
73
- usageLimitTotal: data.usageLimitTotal === undefined ? null : data.usageLimitTotal,
74
- usageLimitPerCustomer: data.usageLimitPerCustomer === undefined
75
- ? null
76
- : data.usageLimitPerCustomer,
77
- validFrom: data.validFrom === undefined ? null : data.validFrom,
78
- validUntil: data.validUntil === undefined ? null : data.validUntil,
79
- metadata: data.metadata === undefined ? null : data.metadata,
80
- createdAt: now,
81
- updatedAt: now,
82
- };
83
- this.promotions.set(promotion.id, promotion);
84
- return promotion;
85
- }
86
- async update(id, data, _ctx) {
87
- const existing = this.promotions.get(id);
88
- if (!existing)
89
- return undefined;
90
- const updated = {
91
- id: existing.id,
92
- code: data.code !== undefined
93
- ? data.code === undefined
94
- ? null
95
- : data.code
96
- : existing.code,
97
- name: data.name !== undefined ? data.name : existing.name,
98
- type: data.type !== undefined ? data.type : existing.type,
99
- value: data.value !== undefined ? data.value : existing.value,
100
- buyQuantity: data.buyQuantity !== undefined
101
- ? data.buyQuantity === undefined
102
- ? null
103
- : data.buyQuantity
104
- : existing.buyQuantity,
105
- getQuantity: data.getQuantity !== undefined
106
- ? data.getQuantity === undefined
107
- ? null
108
- : data.getQuantity
109
- : existing.getQuantity,
110
- isAutomatic: data.isAutomatic !== undefined
111
- ? data.isAutomatic
112
- : existing.isAutomatic,
113
- isActive: data.isActive !== undefined ? data.isActive : existing.isActive,
114
- priority: data.priority !== undefined ? data.priority : existing.priority,
115
- conditions: data.conditions !== undefined
116
- ? data.conditions === undefined
117
- ? null
118
- : data.conditions
119
- : existing.conditions,
120
- usageLimitTotal: data.usageLimitTotal !== undefined
121
- ? data.usageLimitTotal === undefined
122
- ? null
123
- : data.usageLimitTotal
124
- : existing.usageLimitTotal,
125
- usageLimitPerCustomer: data.usageLimitPerCustomer !== undefined
126
- ? data.usageLimitPerCustomer === undefined
127
- ? null
128
- : data.usageLimitPerCustomer
129
- : existing.usageLimitPerCustomer,
130
- validFrom: data.validFrom !== undefined
131
- ? data.validFrom === undefined
132
- ? null
133
- : data.validFrom
134
- : existing.validFrom,
135
- validUntil: data.validUntil !== undefined
136
- ? data.validUntil === undefined
137
- ? null
138
- : data.validUntil
139
- : existing.validUntil,
140
- metadata: data.metadata !== undefined
141
- ? data.metadata === undefined
142
- ? null
143
- : data.metadata
144
- : existing.metadata,
145
- createdAt: existing.createdAt,
146
- updatedAt: new Date(),
147
- };
148
- this.promotions.set(id, updated);
149
- return updated;
150
- }
151
- async delete(id, _ctx) {
152
- return this.promotions.delete(id);
153
- }
154
- async activate(id, _ctx) {
155
- return this.update(id, { isActive: true }, _ctx);
156
- }
157
- async deactivate(id, _ctx) {
158
- return this.update(id, { isActive: false }, _ctx);
159
- }
160
- // ─────────────────────────────────────────────────────────────────────────────
161
- // Promotion Usages
162
- // ─────────────────────────────────────────────────────────────────────────────
163
- async findUsageById(id, _ctx) {
164
- return this.usages.find((u) => u.id === id);
165
- }
166
- async findUsagesByPromotionId(promotionId, _ctx) {
167
- return this.usages.filter((u) => u.promotionId === promotionId);
168
- }
169
- async findUsagesByCustomerId(customerId, _ctx) {
170
- return this.usages.filter((u) => u.customerId === customerId);
171
- }
172
- async createUsage(data, _ctx) {
173
- const usage = {
174
- id: data.id ?? makeId(),
175
- promotionId: data.promotionId,
176
- customerId: data.customerId ?? null,
177
- orderId: data.orderId ?? null,
178
- usedAt: data.usedAt ?? new Date(),
179
- };
180
- this.usages.push(usage);
181
- return usage;
182
- }
183
- async countUsages(promotionId, _ctx) {
184
- return this.usages.filter((u) => u.promotionId === promotionId).length;
185
- }
186
- async countUsagesByCustomer(promotionId, customerId, _ctx) {
187
- return this.usages.filter((u) => u.promotionId === promotionId && u.customerId === customerId).length;
188
- }
189
- async isUsageLimitReached(promotionId, _ctx) {
190
- const promotion = await this.findById(promotionId, _ctx);
191
- if (!promotion || promotion.usageLimitTotal === null)
192
- return false;
193
- const count = await this.countUsages(promotionId, _ctx);
194
- return count >= promotion.usageLimitTotal;
195
- }
196
- async isCustomerUsageLimitReached(promotionId, customerId, _ctx) {
197
- const promotion = await this.findById(promotionId, _ctx);
198
- if (!promotion || promotion.usageLimitPerCustomer === null)
199
- return false;
200
- const count = await this.countUsagesByCustomer(promotionId, customerId, _ctx);
201
- return count >= promotion.usageLimitPerCustomer;
202
- }
203
- async isPromotionValid(promotionId, customerId, _ctx) {
204
- const promotion = await this.findById(promotionId, _ctx);
205
- if (!promotion) {
206
- return { valid: false, reason: "Promotion not found" };
207
- }
208
- if (!promotion.isActive) {
209
- return { valid: false, reason: "Promotion is not active" };
210
- }
211
- const now = new Date();
212
- if (promotion.validFrom && promotion.validFrom > now) {
213
- return { valid: false, reason: "Promotion has not started yet" };
214
- }
215
- if (promotion.validUntil && promotion.validUntil < now) {
216
- return { valid: false, reason: "Promotion has expired" };
217
- }
218
- if (await this.isUsageLimitReached(promotionId, _ctx)) {
219
- return { valid: false, reason: "Promotion usage limit reached" };
220
- }
221
- if (customerId &&
222
- (await this.isCustomerUsageLimitReached(promotionId, customerId, _ctx))) {
223
- return { valid: false, reason: "Customer usage limit reached" };
224
- }
225
- return { valid: true };
226
- }
227
- }
@@ -1,31 +0,0 @@
1
- import type { TxContext } from "../../../kernel/database/tx-context";
2
- import type { WebhookEndpoint, WebhookEndpointInsert, WebhookDelivery, WebhookDeliveryInsert } from "./index";
3
- /**
4
- * In-memory implementation of WebhooksRepository for testing.
5
- */
6
- export declare class InMemoryWebhooksRepository {
7
- private endpoints;
8
- private deliveries;
9
- findEndpointById(id: string, _ctx?: TxContext): Promise<WebhookEndpoint | undefined>;
10
- findAllEndpoints(_ctx?: TxContext): Promise<WebhookEndpoint[]>;
11
- findActiveEndpoints(_ctx?: TxContext): Promise<WebhookEndpoint[]>;
12
- findEndpointsForEvent(eventName: string, _ctx?: TxContext): Promise<WebhookEndpoint[]>;
13
- createEndpoint(data: WebhookEndpointInsert, _ctx?: TxContext): Promise<WebhookEndpoint>;
14
- updateEndpoint(id: string, data: Partial<Omit<WebhookEndpointInsert, "id">>, _ctx?: TxContext): Promise<WebhookEndpoint | undefined>;
15
- deleteEndpoint(id: string, _ctx?: TxContext): Promise<boolean>;
16
- activateEndpoint(id: string, _ctx?: TxContext): Promise<WebhookEndpoint | undefined>;
17
- deactivateEndpoint(id: string, _ctx?: TxContext): Promise<WebhookEndpoint | undefined>;
18
- findDeliveryById(id: string, _ctx?: TxContext): Promise<WebhookDelivery | undefined>;
19
- findDeliveriesByEndpointId(endpointId: string, options?: {
20
- limit?: number;
21
- }, _ctx?: TxContext): Promise<WebhookDelivery[]>;
22
- findPendingDeliveries(_ctx?: TxContext): Promise<WebhookDelivery[]>;
23
- findFailedDeliveries(endpointId?: string, _ctx?: TxContext): Promise<WebhookDelivery[]>;
24
- createDelivery(data: WebhookDeliveryInsert, _ctx?: TxContext): Promise<WebhookDelivery>;
25
- updateDelivery(id: string, data: Partial<Omit<WebhookDeliveryInsert, "id">>, _ctx?: TxContext): Promise<WebhookDelivery | undefined>;
26
- markDelivered(id: string, statusCode: number, _ctx?: TxContext): Promise<WebhookDelivery | undefined>;
27
- markFailed(id: string, statusCode: number | null, nextRetryAt?: Date, _ctx?: TxContext): Promise<WebhookDelivery | undefined>;
28
- deleteDelivery(id: string, _ctx?: TxContext): Promise<boolean>;
29
- deleteDeliveriesByEndpointId(endpointId: string, _ctx?: TxContext): Promise<void>;
30
- }
31
- //# sourceMappingURL=in-memory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"in-memory.d.ts","sourceRoot":"","sources":["../../../../src/modules/webhooks/repository/in-memory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AACrE,OAAO,KAAK,EACV,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAMjB;;GAEG;AACH,qBAAa,0BAA0B;IACrC,OAAO,CAAC,SAAS,CAAsC;IACvD,OAAO,CAAC,UAAU,CAAsC;IAMlD,gBAAgB,CACpB,EAAE,EAAE,MAAM,EACV,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAIjC,gBAAgB,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAI9D,mBAAmB,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAIjE,qBAAqB,CACzB,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,eAAe,EAAE,CAAC;IAQvB,cAAc,CAClB,IAAI,EAAE,qBAAqB,EAC3B,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,eAAe,CAAC;IAarB,cAAc,CAClB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC,EAChD,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAoBjC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9D,gBAAgB,CACpB,EAAE,EAAE,MAAM,EACV,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAIjC,kBAAkB,CACtB,EAAE,EAAE,MAAM,EACV,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAQjC,gBAAgB,CACpB,EAAE,EAAE,MAAM,EACV,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAIjC,0BAA0B,CAC9B,UAAU,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAC5B,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,eAAe,EAAE,CAAC;IAYvB,qBAAqB,CAAC,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAYnE,oBAAoB,CACxB,UAAU,CAAC,EAAE,MAAM,EACnB,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,eAAe,EAAE,CAAC;IAcvB,cAAc,CAClB,IAAI,EAAE,qBAAqB,EAC3B,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,eAAe,CAAC;IAkBrB,cAAc,CAClB,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC,EAChD,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IA4CjC,aAAa,CACjB,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAYjC,UAAU,CACd,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,MAAM,GAAG,IAAI,EACzB,WAAW,CAAC,EAAE,IAAI,EAClB,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAmBjC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9D,4BAA4B,CAChC,UAAU,EAAE,MAAM,EAClB,IAAI,CAAC,EAAE,SAAS,GACf,OAAO,CAAC,IAAI,CAAC;CAOjB"}
@@ -1,187 +0,0 @@
1
- function makeId() {
2
- return crypto.randomUUID();
3
- }
4
- /**
5
- * In-memory implementation of WebhooksRepository for testing.
6
- */
7
- export class InMemoryWebhooksRepository {
8
- endpoints = new Map();
9
- deliveries = new Map();
10
- // ─────────────────────────────────────────────────────────────────────────────
11
- // Webhook Endpoints
12
- // ─────────────────────────────────────────────────────────────────────────────
13
- async findEndpointById(id, _ctx) {
14
- return this.endpoints.get(id);
15
- }
16
- async findAllEndpoints(_ctx) {
17
- return [...this.endpoints.values()];
18
- }
19
- async findActiveEndpoints(_ctx) {
20
- return [...this.endpoints.values()].filter((e) => e.isActive);
21
- }
22
- async findEndpointsForEvent(eventName, _ctx) {
23
- const active = await this.findActiveEndpoints(_ctx);
24
- return active.filter((endpoint) => {
25
- const events = endpoint.events;
26
- return events.includes(eventName) || events.includes("*");
27
- });
28
- }
29
- async createEndpoint(data, _ctx) {
30
- const endpoint = {
31
- id: data.id ?? makeId(),
32
- url: data.url,
33
- secret: data.secret,
34
- events: data.events,
35
- isActive: data.isActive ?? true,
36
- metadata: data.metadata === undefined ? null : data.metadata,
37
- };
38
- this.endpoints.set(endpoint.id, endpoint);
39
- return endpoint;
40
- }
41
- async updateEndpoint(id, data, _ctx) {
42
- const existing = this.endpoints.get(id);
43
- if (!existing)
44
- return undefined;
45
- const updated = {
46
- id: existing.id,
47
- url: data.url !== undefined ? data.url : existing.url,
48
- secret: data.secret !== undefined ? data.secret : existing.secret,
49
- events: data.events !== undefined ? data.events : existing.events,
50
- isActive: data.isActive !== undefined ? data.isActive : existing.isActive,
51
- metadata: data.metadata !== undefined
52
- ? data.metadata === undefined
53
- ? null
54
- : data.metadata
55
- : existing.metadata,
56
- };
57
- this.endpoints.set(id, updated);
58
- return updated;
59
- }
60
- async deleteEndpoint(id, _ctx) {
61
- return this.endpoints.delete(id);
62
- }
63
- async activateEndpoint(id, _ctx) {
64
- return this.updateEndpoint(id, { isActive: true }, _ctx);
65
- }
66
- async deactivateEndpoint(id, _ctx) {
67
- return this.updateEndpoint(id, { isActive: false }, _ctx);
68
- }
69
- // ─────────────────────────────────────────────────────────────────────────────
70
- // Webhook Deliveries
71
- // ─────────────────────────────────────────────────────────────────────────────
72
- async findDeliveryById(id, _ctx) {
73
- return this.deliveries.get(id);
74
- }
75
- async findDeliveriesByEndpointId(endpointId, options, _ctx) {
76
- let results = [...this.deliveries.values()]
77
- .filter((d) => d.endpointId === endpointId)
78
- .sort((a, b) => b.createdAt.getTime() - a.createdAt.getTime());
79
- if (options?.limit !== undefined) {
80
- results = results.slice(0, options.limit);
81
- }
82
- return results;
83
- }
84
- async findPendingDeliveries(_ctx) {
85
- const now = new Date();
86
- return [...this.deliveries.values()]
87
- .filter((d) => d.deliveredAt === null &&
88
- d.failedAt === null &&
89
- (d.nextRetryAt === null || d.nextRetryAt <= now))
90
- .sort((a, b) => a.createdAt.getTime() - b.createdAt.getTime());
91
- }
92
- async findFailedDeliveries(endpointId, _ctx) {
93
- let results = [...this.deliveries.values()].filter((d) => d.failedAt !== null);
94
- if (endpointId) {
95
- results = results.filter((d) => d.endpointId === endpointId);
96
- }
97
- return results.sort((a, b) => (b.failedAt?.getTime() ?? 0) - (a.failedAt?.getTime() ?? 0));
98
- }
99
- async createDelivery(data, _ctx) {
100
- const now = new Date();
101
- const delivery = {
102
- id: data.id ?? makeId(),
103
- endpointId: data.endpointId,
104
- eventName: data.eventName,
105
- payload: data.payload,
106
- statusCode: data.statusCode === undefined ? null : data.statusCode,
107
- attemptCount: data.attemptCount ?? 0,
108
- nextRetryAt: data.nextRetryAt === undefined ? null : data.nextRetryAt,
109
- deliveredAt: data.deliveredAt === undefined ? null : data.deliveredAt,
110
- failedAt: data.failedAt === undefined ? null : data.failedAt,
111
- createdAt: now,
112
- };
113
- this.deliveries.set(delivery.id, delivery);
114
- return delivery;
115
- }
116
- async updateDelivery(id, data, _ctx) {
117
- const existing = this.deliveries.get(id);
118
- if (!existing)
119
- return undefined;
120
- const updated = {
121
- id: existing.id,
122
- endpointId: data.endpointId !== undefined ? data.endpointId : existing.endpointId,
123
- eventName: data.eventName !== undefined ? data.eventName : existing.eventName,
124
- payload: data.payload !== undefined ? data.payload : existing.payload,
125
- statusCode: data.statusCode !== undefined
126
- ? data.statusCode === undefined
127
- ? null
128
- : data.statusCode
129
- : existing.statusCode,
130
- attemptCount: data.attemptCount !== undefined
131
- ? data.attemptCount
132
- : existing.attemptCount,
133
- nextRetryAt: data.nextRetryAt !== undefined
134
- ? data.nextRetryAt === undefined
135
- ? null
136
- : data.nextRetryAt
137
- : existing.nextRetryAt,
138
- deliveredAt: data.deliveredAt !== undefined
139
- ? data.deliveredAt === undefined
140
- ? null
141
- : data.deliveredAt
142
- : existing.deliveredAt,
143
- failedAt: data.failedAt !== undefined
144
- ? data.failedAt === undefined
145
- ? null
146
- : data.failedAt
147
- : existing.failedAt,
148
- createdAt: existing.createdAt,
149
- };
150
- this.deliveries.set(id, updated);
151
- return updated;
152
- }
153
- async markDelivered(id, statusCode, _ctx) {
154
- return this.updateDelivery(id, {
155
- statusCode,
156
- deliveredAt: new Date(),
157
- nextRetryAt: null,
158
- }, _ctx);
159
- }
160
- async markFailed(id, statusCode, nextRetryAt, _ctx) {
161
- const delivery = await this.findDeliveryById(id, _ctx);
162
- if (!delivery)
163
- return undefined;
164
- const data = {
165
- statusCode: statusCode ?? undefined,
166
- attemptCount: delivery.attemptCount + 1,
167
- };
168
- if (nextRetryAt) {
169
- data.nextRetryAt = nextRetryAt;
170
- }
171
- else {
172
- data.failedAt = new Date();
173
- data.nextRetryAt = null;
174
- }
175
- return this.updateDelivery(id, data, _ctx);
176
- }
177
- async deleteDelivery(id, _ctx) {
178
- return this.deliveries.delete(id);
179
- }
180
- async deleteDeliveriesByEndpointId(endpointId, _ctx) {
181
- for (const [id, delivery] of this.deliveries.entries()) {
182
- if (delivery.endpointId === endpointId) {
183
- this.deliveries.delete(id);
184
- }
185
- }
186
- }
187
- }
@@ -1,14 +0,0 @@
1
- import type { DatabaseAdapter } from "../kernel/database/adapter";
2
- import type { RuntimeState } from "./state";
3
- export declare class StateManager {
4
- private readonly database;
5
- private readonly storage;
6
- private readonly repository;
7
- private cache;
8
- private cacheInitialized;
9
- constructor(database: DatabaseAdapter);
10
- getStateProxy(): RuntimeState;
11
- runWithState<T>(fn: () => Promise<T>): Promise<T>;
12
- wrapService<TService extends object>(service: TService): TService;
13
- }
14
- //# sourceMappingURL=state-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state-manager.d.ts","sourceRoot":"","sources":["../../src/runtime/state-manager.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAU5C,qBAAa,YAAY;IAMX,OAAO,CAAC,QAAQ,CAAC,QAAQ;IALrC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyC;IACjE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IACpD,OAAO,CAAC,KAAK,CAAsC;IACnD,OAAO,CAAC,gBAAgB,CAAS;gBAEJ,QAAQ,EAAE,eAAe;IAItD,aAAa,IAAI,YAAY;IAgCvB,YAAY,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IA8BvD,WAAW,CAAC,QAAQ,SAAS,MAAM,EAAE,OAAO,EAAE,QAAQ,GAAG,QAAQ;CAiBlE"}
@@ -1,84 +0,0 @@
1
- import { AsyncLocalStorage } from "node:async_hooks";
2
- import { createRuntimeState } from "./state";
3
- import { RuntimeStateRepository } from "./state-repository";
4
- export class StateManager {
5
- database;
6
- storage = new AsyncLocalStorage();
7
- repository;
8
- cache = createRuntimeState();
9
- cacheInitialized = false;
10
- constructor(database) {
11
- this.database = database;
12
- this.repository = new RuntimeStateRepository(database);
13
- }
14
- getStateProxy() {
15
- const manager = this;
16
- return new Proxy({}, {
17
- get(_target, key) {
18
- const active = manager.storage.getStore();
19
- const source = active?.state ?? manager.cache;
20
- return source[key];
21
- },
22
- set(_target, key, value) {
23
- const active = manager.storage.getStore();
24
- if (!active) {
25
- manager.cache[key] = value;
26
- return true;
27
- }
28
- active.dirty = true;
29
- active.state[key] = value;
30
- return true;
31
- },
32
- ownKeys() {
33
- const active = manager.storage.getStore();
34
- const source = active?.state ?? manager.cache;
35
- return Reflect.ownKeys(source);
36
- },
37
- getOwnPropertyDescriptor(_target, key) {
38
- const active = manager.storage.getStore();
39
- const source = active?.state ?? manager.cache;
40
- return Object.getOwnPropertyDescriptor(source, key);
41
- },
42
- });
43
- }
44
- async runWithState(fn) {
45
- const existing = this.storage.getStore();
46
- if (existing) {
47
- existing.dirty = true;
48
- return fn();
49
- }
50
- return this.database.transaction(async (tx) => {
51
- if (!this.cacheInitialized) {
52
- this.cache = await this.repository.load(tx);
53
- this.cacheInitialized = true;
54
- }
55
- const context = {
56
- tx,
57
- state: this.cache,
58
- dirty: true,
59
- };
60
- const result = await this.storage.run(context, fn);
61
- if (context.dirty) {
62
- await this.repository.save(context.state, tx);
63
- this.cache = context.state;
64
- }
65
- return result;
66
- });
67
- }
68
- wrapService(service) {
69
- const manager = this;
70
- return new Proxy(service, {
71
- get(target, property, receiver) {
72
- const value = Reflect.get(target, property, receiver);
73
- if (typeof value !== "function") {
74
- return value;
75
- }
76
- return (...args) => {
77
- return manager.runWithState(async () => {
78
- return value.apply(target, args);
79
- });
80
- };
81
- },
82
- });
83
- }
84
- }
@@ -1,13 +0,0 @@
1
- import type { DatabaseAdapter } from "../kernel/database/adapter";
2
- import type { RuntimeState } from "./state";
3
- export declare class RuntimeStateRepository {
4
- private readonly database;
5
- private initialized;
6
- private readonly fallbackRecords;
7
- constructor(database: DatabaseAdapter);
8
- private supportsSql;
9
- private ensureTable;
10
- load(tx?: unknown): Promise<RuntimeState>;
11
- save(state: RuntimeState, tx?: unknown): Promise<void>;
12
- }
13
- //# sourceMappingURL=state-repository.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"state-repository.d.ts","sourceRoot":"","sources":["../../src/runtime/state-repository.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAuH5C,qBAAa,sBAAsB;IAIrB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAHrC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAA6B;gBAEhC,QAAQ,EAAE,eAAe;IAEtD,OAAO,CAAC,WAAW;YAIL,WAAW;IA0BnB,IAAI,CAAC,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC;IAoCzC,IAAI,CAAC,KAAK,EAAE,YAAY,EAAE,EAAE,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CA2B7D"}