@unifiedcommerce/core 0.4.2 → 0.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (563) hide show
  1. package/dist/interfaces/rest/index.d.ts.map +1 -1
  2. package/dist/interfaces/rest/index.js +4 -17
  3. package/dist/runtime/server.d.ts.map +1 -1
  4. package/dist/runtime/server.js +33 -0
  5. package/package.json +1 -1
  6. package/src/interfaces/rest/index.ts +4 -18
  7. package/src/runtime/server.ts +33 -0
  8. package/dist/adapters/console-email.d.ts +0 -23
  9. package/dist/adapters/console-email.d.ts.map +0 -1
  10. package/dist/adapters/console-email.js +0 -38
  11. package/dist/auth/access.d.ts +0 -101
  12. package/dist/auth/access.d.ts.map +0 -1
  13. package/dist/auth/access.js +0 -128
  14. package/dist/auth/auth-schema.d.ts +0 -1475
  15. package/dist/auth/auth-schema.d.ts.map +0 -1
  16. package/dist/auth/auth-schema.js +0 -124
  17. package/dist/auth/middleware.d.ts +0 -5
  18. package/dist/auth/middleware.d.ts.map +0 -1
  19. package/dist/auth/middleware.js +0 -141
  20. package/dist/auth/org.d.ts +0 -22
  21. package/dist/auth/org.d.ts.map +0 -1
  22. package/dist/auth/org.js +0 -36
  23. package/dist/auth/permissions.d.ts +0 -4
  24. package/dist/auth/permissions.d.ts.map +0 -1
  25. package/dist/auth/permissions.js +0 -24
  26. package/dist/auth/setup.d.ts +0 -29
  27. package/dist/auth/setup.d.ts.map +0 -1
  28. package/dist/auth/setup.js +0 -117
  29. package/dist/auth/system-actor.d.ts +0 -7
  30. package/dist/auth/system-actor.d.ts.map +0 -1
  31. package/dist/auth/system-actor.js +0 -17
  32. package/dist/auth/types.d.ts +0 -11
  33. package/dist/auth/types.d.ts.map +0 -1
  34. package/dist/auth/types.js +0 -1
  35. package/dist/config/defaults.d.ts +0 -3
  36. package/dist/config/defaults.d.ts.map +0 -1
  37. package/dist/config/defaults.js +0 -80
  38. package/dist/config/define-config.d.ts +0 -9
  39. package/dist/config/define-config.d.ts.map +0 -1
  40. package/dist/config/define-config.js +0 -44
  41. package/dist/config/types.d.ts +0 -327
  42. package/dist/config/types.d.ts.map +0 -1
  43. package/dist/config/types.js +0 -1
  44. package/dist/generated/plugin-manifest.d.ts +0 -48
  45. package/dist/generated/plugin-manifest.d.ts.map +0 -1
  46. package/dist/generated/plugin-manifest.js +0 -20
  47. package/dist/hooks/checkout-completion.d.ts +0 -58
  48. package/dist/hooks/checkout-completion.d.ts.map +0 -1
  49. package/dist/hooks/checkout-completion.js +0 -137
  50. package/dist/hooks/checkout.d.ts +0 -99
  51. package/dist/hooks/checkout.d.ts.map +0 -1
  52. package/dist/hooks/checkout.js +0 -317
  53. package/dist/hooks/order-emails.d.ts +0 -16
  54. package/dist/hooks/order-emails.d.ts.map +0 -1
  55. package/dist/hooks/order-emails.js +0 -44
  56. package/dist/index.d.ts +0 -77
  57. package/dist/index.d.ts.map +0 -1
  58. package/dist/index.js +0 -45
  59. package/dist/interfaces/mcp/agent-prompt.d.ts +0 -16
  60. package/dist/interfaces/mcp/agent-prompt.d.ts.map +0 -1
  61. package/dist/interfaces/mcp/agent-prompt.js +0 -172
  62. package/dist/interfaces/mcp/context-enrichment.d.ts +0 -39
  63. package/dist/interfaces/mcp/context-enrichment.d.ts.map +0 -1
  64. package/dist/interfaces/mcp/context-enrichment.js +0 -119
  65. package/dist/interfaces/mcp/server.d.ts +0 -5
  66. package/dist/interfaces/mcp/server.d.ts.map +0 -1
  67. package/dist/interfaces/mcp/server.js +0 -30
  68. package/dist/interfaces/mcp/tool-builder.d.ts +0 -120
  69. package/dist/interfaces/mcp/tool-builder.d.ts.map +0 -1
  70. package/dist/interfaces/mcp/tool-builder.js +0 -224
  71. package/dist/interfaces/mcp/tools/analytics.d.ts +0 -42
  72. package/dist/interfaces/mcp/tools/analytics.d.ts.map +0 -1
  73. package/dist/interfaces/mcp/tools/analytics.js +0 -70
  74. package/dist/interfaces/mcp/tools/cart.d.ts +0 -14
  75. package/dist/interfaces/mcp/tools/cart.d.ts.map +0 -1
  76. package/dist/interfaces/mcp/tools/cart.js +0 -47
  77. package/dist/interfaces/mcp/tools/catalog.d.ts +0 -53
  78. package/dist/interfaces/mcp/tools/catalog.d.ts.map +0 -1
  79. package/dist/interfaces/mcp/tools/catalog.js +0 -284
  80. package/dist/interfaces/mcp/tools/index.d.ts +0 -3
  81. package/dist/interfaces/mcp/tools/index.d.ts.map +0 -1
  82. package/dist/interfaces/mcp/tools/index.js +0 -20
  83. package/dist/interfaces/mcp/tools/inventory.d.ts +0 -27
  84. package/dist/interfaces/mcp/tools/inventory.d.ts.map +0 -1
  85. package/dist/interfaces/mcp/tools/inventory.js +0 -143
  86. package/dist/interfaces/mcp/tools/orders.d.ts +0 -18
  87. package/dist/interfaces/mcp/tools/orders.d.ts.map +0 -1
  88. package/dist/interfaces/mcp/tools/orders.js +0 -82
  89. package/dist/interfaces/mcp/tools/pricing.d.ts +0 -29
  90. package/dist/interfaces/mcp/tools/pricing.d.ts.map +0 -1
  91. package/dist/interfaces/mcp/tools/pricing.js +0 -90
  92. package/dist/interfaces/mcp/tools/promotions.d.ts +0 -44
  93. package/dist/interfaces/mcp/tools/promotions.d.ts.map +0 -1
  94. package/dist/interfaces/mcp/tools/promotions.js +0 -109
  95. package/dist/interfaces/mcp/tools/registry.d.ts +0 -32
  96. package/dist/interfaces/mcp/tools/registry.d.ts.map +0 -1
  97. package/dist/interfaces/mcp/tools/registry.js +0 -55
  98. package/dist/interfaces/mcp/tools/search.d.ts +0 -14
  99. package/dist/interfaces/mcp/tools/search.d.ts.map +0 -1
  100. package/dist/interfaces/mcp/tools/search.js +0 -39
  101. package/dist/interfaces/mcp/tools/webhooks.d.ts +0 -15
  102. package/dist/interfaces/mcp/tools/webhooks.d.ts.map +0 -1
  103. package/dist/interfaces/mcp/tools/webhooks.js +0 -48
  104. package/dist/interfaces/mcp/transport.d.ts +0 -20
  105. package/dist/interfaces/mcp/transport.d.ts.map +0 -1
  106. package/dist/interfaces/mcp/transport.js +0 -99
  107. package/dist/interfaces/rest/customer-portal.d.ts +0 -5
  108. package/dist/interfaces/rest/customer-portal.d.ts.map +0 -1
  109. package/dist/interfaces/rest/customer-portal.js +0 -206
  110. package/dist/interfaces/rest/router.d.ts +0 -164
  111. package/dist/interfaces/rest/router.d.ts.map +0 -1
  112. package/dist/interfaces/rest/router.js +0 -259
  113. package/dist/interfaces/rest/routes/admin-jobs.d.ts +0 -5
  114. package/dist/interfaces/rest/routes/admin-jobs.d.ts.map +0 -1
  115. package/dist/interfaces/rest/routes/admin-jobs.js +0 -48
  116. package/dist/interfaces/rest/routes/audit.d.ts +0 -5
  117. package/dist/interfaces/rest/routes/audit.d.ts.map +0 -1
  118. package/dist/interfaces/rest/routes/audit.js +0 -43
  119. package/dist/interfaces/rest/routes/carts.d.ts +0 -5
  120. package/dist/interfaces/rest/routes/carts.d.ts.map +0 -1
  121. package/dist/interfaces/rest/routes/carts.js +0 -55
  122. package/dist/interfaces/rest/routes/catalog.d.ts +0 -5
  123. package/dist/interfaces/rest/routes/catalog.d.ts.map +0 -1
  124. package/dist/interfaces/rest/routes/catalog.js +0 -256
  125. package/dist/interfaces/rest/routes/checkout.d.ts +0 -5
  126. package/dist/interfaces/rest/routes/checkout.d.ts.map +0 -1
  127. package/dist/interfaces/rest/routes/checkout.js +0 -216
  128. package/dist/interfaces/rest/routes/customers.d.ts +0 -5
  129. package/dist/interfaces/rest/routes/customers.d.ts.map +0 -1
  130. package/dist/interfaces/rest/routes/customers.js +0 -74
  131. package/dist/interfaces/rest/routes/entity-aliases.d.ts +0 -18
  132. package/dist/interfaces/rest/routes/entity-aliases.d.ts.map +0 -1
  133. package/dist/interfaces/rest/routes/entity-aliases.js +0 -39
  134. package/dist/interfaces/rest/routes/inventory.d.ts +0 -5
  135. package/dist/interfaces/rest/routes/inventory.d.ts.map +0 -1
  136. package/dist/interfaces/rest/routes/inventory.js +0 -72
  137. package/dist/interfaces/rest/routes/media.d.ts +0 -5
  138. package/dist/interfaces/rest/routes/media.d.ts.map +0 -1
  139. package/dist/interfaces/rest/routes/media.js +0 -65
  140. package/dist/interfaces/rest/routes/orders.d.ts +0 -5
  141. package/dist/interfaces/rest/routes/orders.d.ts.map +0 -1
  142. package/dist/interfaces/rest/routes/orders.js +0 -64
  143. package/dist/interfaces/rest/routes/payments.d.ts +0 -5
  144. package/dist/interfaces/rest/routes/payments.d.ts.map +0 -1
  145. package/dist/interfaces/rest/routes/payments.js +0 -45
  146. package/dist/interfaces/rest/routes/pricing.d.ts +0 -5
  147. package/dist/interfaces/rest/routes/pricing.d.ts.map +0 -1
  148. package/dist/interfaces/rest/routes/pricing.js +0 -48
  149. package/dist/interfaces/rest/routes/promotions.d.ts +0 -5
  150. package/dist/interfaces/rest/routes/promotions.d.ts.map +0 -1
  151. package/dist/interfaces/rest/routes/promotions.js +0 -76
  152. package/dist/interfaces/rest/routes/search.d.ts +0 -5
  153. package/dist/interfaces/rest/routes/search.d.ts.map +0 -1
  154. package/dist/interfaces/rest/routes/search.js +0 -60
  155. package/dist/interfaces/rest/routes/webhooks.d.ts +0 -5
  156. package/dist/interfaces/rest/routes/webhooks.d.ts.map +0 -1
  157. package/dist/interfaces/rest/routes/webhooks.js +0 -39
  158. package/dist/interfaces/rest/schemas/admin-jobs.d.ts +0 -327
  159. package/dist/interfaces/rest/schemas/admin-jobs.d.ts.map +0 -1
  160. package/dist/interfaces/rest/schemas/admin-jobs.js +0 -37
  161. package/dist/interfaces/rest/schemas/audit.d.ts +0 -59
  162. package/dist/interfaces/rest/schemas/audit.d.ts.map +0 -1
  163. package/dist/interfaces/rest/schemas/audit.js +0 -43
  164. package/dist/interfaces/rest/schemas/carts.d.ts +0 -1456
  165. package/dist/interfaces/rest/schemas/carts.d.ts.map +0 -1
  166. package/dist/interfaces/rest/schemas/carts.js +0 -109
  167. package/dist/interfaces/rest/schemas/catalog.d.ts +0 -5452
  168. package/dist/interfaces/rest/schemas/catalog.d.ts.map +0 -1
  169. package/dist/interfaces/rest/schemas/catalog.js +0 -397
  170. package/dist/interfaces/rest/schemas/checkout.d.ts +0 -160
  171. package/dist/interfaces/rest/schemas/checkout.d.ts.map +0 -1
  172. package/dist/interfaces/rest/schemas/checkout.js +0 -60
  173. package/dist/interfaces/rest/schemas/customer-portal.d.ts +0 -2203
  174. package/dist/interfaces/rest/schemas/customer-portal.d.ts.map +0 -1
  175. package/dist/interfaces/rest/schemas/customer-portal.js +0 -177
  176. package/dist/interfaces/rest/schemas/customers.d.ts +0 -422
  177. package/dist/interfaces/rest/schemas/customers.d.ts.map +0 -1
  178. package/dist/interfaces/rest/schemas/customers.js +0 -150
  179. package/dist/interfaces/rest/schemas/inventory.d.ts +0 -561
  180. package/dist/interfaces/rest/schemas/inventory.d.ts.map +0 -1
  181. package/dist/interfaces/rest/schemas/inventory.js +0 -148
  182. package/dist/interfaces/rest/schemas/media.d.ts +0 -303
  183. package/dist/interfaces/rest/schemas/media.d.ts.map +0 -1
  184. package/dist/interfaces/rest/schemas/media.js +0 -69
  185. package/dist/interfaces/rest/schemas/orders.d.ts +0 -1792
  186. package/dist/interfaces/rest/schemas/orders.d.ts.map +0 -1
  187. package/dist/interfaces/rest/schemas/orders.js +0 -93
  188. package/dist/interfaces/rest/schemas/pricing.d.ts +0 -256
  189. package/dist/interfaces/rest/schemas/pricing.d.ts.map +0 -1
  190. package/dist/interfaces/rest/schemas/pricing.js +0 -72
  191. package/dist/interfaces/rest/schemas/promotions.d.ts +0 -363
  192. package/dist/interfaces/rest/schemas/promotions.d.ts.map +0 -1
  193. package/dist/interfaces/rest/schemas/promotions.js +0 -98
  194. package/dist/interfaces/rest/schemas/responses.d.ts +0 -4086
  195. package/dist/interfaces/rest/schemas/responses.d.ts.map +0 -1
  196. package/dist/interfaces/rest/schemas/responses.js +0 -74
  197. package/dist/interfaces/rest/schemas/search.d.ts +0 -247
  198. package/dist/interfaces/rest/schemas/search.d.ts.map +0 -1
  199. package/dist/interfaces/rest/schemas/search.js +0 -55
  200. package/dist/interfaces/rest/schemas/shared.d.ts +0 -95
  201. package/dist/interfaces/rest/schemas/shared.d.ts.map +0 -1
  202. package/dist/interfaces/rest/schemas/shared.js +0 -51
  203. package/dist/interfaces/rest/schemas/webhooks.d.ts +0 -221
  204. package/dist/interfaces/rest/schemas/webhooks.d.ts.map +0 -1
  205. package/dist/interfaces/rest/schemas/webhooks.js +0 -62
  206. package/dist/interfaces/rest/utils.d.ts +0 -45
  207. package/dist/interfaces/rest/utils.d.ts.map +0 -1
  208. package/dist/interfaces/rest/utils.js +0 -71
  209. package/dist/interfaces/rest/webhook-router.d.ts +0 -41
  210. package/dist/interfaces/rest/webhook-router.d.ts.map +0 -1
  211. package/dist/interfaces/rest/webhook-router.js +0 -36
  212. package/dist/kernel/compensation/executor.d.ts +0 -21
  213. package/dist/kernel/compensation/executor.d.ts.map +0 -1
  214. package/dist/kernel/compensation/executor.js +0 -36
  215. package/dist/kernel/compensation/types.d.ts +0 -25
  216. package/dist/kernel/compensation/types.d.ts.map +0 -1
  217. package/dist/kernel/compensation/types.js +0 -1
  218. package/dist/kernel/database/adapter.d.ts +0 -18
  219. package/dist/kernel/database/adapter.d.ts.map +0 -1
  220. package/dist/kernel/database/adapter.js +0 -3
  221. package/dist/kernel/database/drizzle-db.d.ts +0 -49
  222. package/dist/kernel/database/drizzle-db.d.ts.map +0 -1
  223. package/dist/kernel/database/drizzle-db.js +0 -20
  224. package/dist/kernel/database/migrate.d.ts +0 -38
  225. package/dist/kernel/database/migrate.d.ts.map +0 -1
  226. package/dist/kernel/database/migrate.js +0 -61
  227. package/dist/kernel/database/plugin-types.d.ts +0 -32
  228. package/dist/kernel/database/plugin-types.d.ts.map +0 -1
  229. package/dist/kernel/database/plugin-types.js +0 -10
  230. package/dist/kernel/database/schema.d.ts +0 -24
  231. package/dist/kernel/database/schema.d.ts.map +0 -1
  232. package/dist/kernel/database/schema.js +0 -36
  233. package/dist/kernel/database/scoped-db.d.ts +0 -20
  234. package/dist/kernel/database/scoped-db.d.ts.map +0 -1
  235. package/dist/kernel/database/scoped-db.js +0 -62
  236. package/dist/kernel/database/tx-context.d.ts +0 -15
  237. package/dist/kernel/database/tx-context.d.ts.map +0 -1
  238. package/dist/kernel/database/tx-context.js +0 -19
  239. package/dist/kernel/error-mapper.d.ts +0 -3
  240. package/dist/kernel/error-mapper.d.ts.map +0 -1
  241. package/dist/kernel/error-mapper.js +0 -12
  242. package/dist/kernel/errors.d.ts +0 -38
  243. package/dist/kernel/errors.d.ts.map +0 -1
  244. package/dist/kernel/errors.js +0 -69
  245. package/dist/kernel/factory/repository-factory.d.ts +0 -71
  246. package/dist/kernel/factory/repository-factory.d.ts.map +0 -1
  247. package/dist/kernel/factory/repository-factory.js +0 -138
  248. package/dist/kernel/hooks/create-context.d.ts +0 -25
  249. package/dist/kernel/hooks/create-context.d.ts.map +0 -1
  250. package/dist/kernel/hooks/create-context.js +0 -22
  251. package/dist/kernel/hooks/executor.d.ts +0 -12
  252. package/dist/kernel/hooks/executor.d.ts.map +0 -1
  253. package/dist/kernel/hooks/executor.js +0 -50
  254. package/dist/kernel/hooks/registry.d.ts +0 -28
  255. package/dist/kernel/hooks/registry.d.ts.map +0 -1
  256. package/dist/kernel/hooks/registry.js +0 -58
  257. package/dist/kernel/hooks/types.d.ts +0 -37
  258. package/dist/kernel/hooks/types.d.ts.map +0 -1
  259. package/dist/kernel/hooks/types.js +0 -1
  260. package/dist/kernel/http-error.d.ts +0 -30
  261. package/dist/kernel/http-error.d.ts.map +0 -1
  262. package/dist/kernel/http-error.js +0 -35
  263. package/dist/kernel/jobs/adapter.d.ts +0 -25
  264. package/dist/kernel/jobs/adapter.d.ts.map +0 -1
  265. package/dist/kernel/jobs/adapter.js +0 -9
  266. package/dist/kernel/jobs/drizzle-adapter.d.ts +0 -15
  267. package/dist/kernel/jobs/drizzle-adapter.d.ts.map +0 -1
  268. package/dist/kernel/jobs/drizzle-adapter.js +0 -42
  269. package/dist/kernel/jobs/runner.d.ts +0 -24
  270. package/dist/kernel/jobs/runner.d.ts.map +0 -1
  271. package/dist/kernel/jobs/runner.js +0 -114
  272. package/dist/kernel/jobs/schema.d.ts +0 -280
  273. package/dist/kernel/jobs/schema.d.ts.map +0 -1
  274. package/dist/kernel/jobs/schema.js +0 -37
  275. package/dist/kernel/jobs/types.d.ts +0 -30
  276. package/dist/kernel/jobs/types.d.ts.map +0 -1
  277. package/dist/kernel/jobs/types.js +0 -1
  278. package/dist/kernel/local-api.d.ts +0 -103
  279. package/dist/kernel/local-api.d.ts.map +0 -1
  280. package/dist/kernel/local-api.js +0 -89
  281. package/dist/kernel/plugin/manifest.d.ts +0 -90
  282. package/dist/kernel/plugin/manifest.d.ts.map +0 -1
  283. package/dist/kernel/plugin/manifest.js +0 -169
  284. package/dist/kernel/query/executor.d.ts +0 -21
  285. package/dist/kernel/query/executor.d.ts.map +0 -1
  286. package/dist/kernel/query/executor.js +0 -128
  287. package/dist/kernel/query/registry.d.ts +0 -33
  288. package/dist/kernel/query/registry.d.ts.map +0 -1
  289. package/dist/kernel/query/registry.js +0 -20
  290. package/dist/kernel/result.d.ts +0 -36
  291. package/dist/kernel/result.d.ts.map +0 -1
  292. package/dist/kernel/result.js +0 -16
  293. package/dist/kernel/schema/extra-columns.d.ts +0 -23
  294. package/dist/kernel/schema/extra-columns.d.ts.map +0 -1
  295. package/dist/kernel/schema/extra-columns.js +0 -10
  296. package/dist/kernel/service-registry.d.ts +0 -109
  297. package/dist/kernel/service-registry.d.ts.map +0 -1
  298. package/dist/kernel/service-registry.js +0 -26
  299. package/dist/kernel/service-timing.d.ts +0 -25
  300. package/dist/kernel/service-timing.d.ts.map +0 -1
  301. package/dist/kernel/service-timing.js +0 -62
  302. package/dist/kernel/state-machine/machine.d.ts +0 -24
  303. package/dist/kernel/state-machine/machine.d.ts.map +0 -1
  304. package/dist/kernel/state-machine/machine.js +0 -70
  305. package/dist/modules/analytics/drizzle-adapter.d.ts +0 -13
  306. package/dist/modules/analytics/drizzle-adapter.d.ts.map +0 -1
  307. package/dist/modules/analytics/drizzle-adapter.js +0 -358
  308. package/dist/modules/analytics/hooks.d.ts +0 -13
  309. package/dist/modules/analytics/hooks.d.ts.map +0 -1
  310. package/dist/modules/analytics/hooks.js +0 -12
  311. package/dist/modules/analytics/models.d.ts +0 -14
  312. package/dist/modules/analytics/models.d.ts.map +0 -1
  313. package/dist/modules/analytics/models.js +0 -118
  314. package/dist/modules/analytics/repository/index.d.ts +0 -5
  315. package/dist/modules/analytics/repository/index.d.ts.map +0 -1
  316. package/dist/modules/analytics/repository/index.js +0 -1
  317. package/dist/modules/analytics/service.d.ts +0 -45
  318. package/dist/modules/analytics/service.d.ts.map +0 -1
  319. package/dist/modules/analytics/service.js +0 -196
  320. package/dist/modules/analytics/types.d.ts +0 -119
  321. package/dist/modules/analytics/types.d.ts.map +0 -1
  322. package/dist/modules/analytics/types.js +0 -25
  323. package/dist/modules/audit/hooks.d.ts +0 -7
  324. package/dist/modules/audit/hooks.d.ts.map +0 -1
  325. package/dist/modules/audit/hooks.js +0 -67
  326. package/dist/modules/audit/schema.d.ts +0 -178
  327. package/dist/modules/audit/schema.d.ts.map +0 -1
  328. package/dist/modules/audit/schema.js +0 -21
  329. package/dist/modules/audit/service.d.ts +0 -38
  330. package/dist/modules/audit/service.d.ts.map +0 -1
  331. package/dist/modules/audit/service.js +0 -109
  332. package/dist/modules/cart/access.d.ts +0 -11
  333. package/dist/modules/cart/access.d.ts.map +0 -1
  334. package/dist/modules/cart/access.js +0 -18
  335. package/dist/modules/cart/matcher.d.ts +0 -20
  336. package/dist/modules/cart/matcher.d.ts.map +0 -1
  337. package/dist/modules/cart/matcher.js +0 -2
  338. package/dist/modules/cart/repository/index.d.ts +0 -45
  339. package/dist/modules/cart/repository/index.d.ts.map +0 -1
  340. package/dist/modules/cart/repository/index.js +0 -158
  341. package/dist/modules/cart/schema.d.ts +0 -359
  342. package/dist/modules/cart/schema.d.ts.map +0 -1
  343. package/dist/modules/cart/schema.js +0 -40
  344. package/dist/modules/cart/schemas.d.ts +0 -29
  345. package/dist/modules/cart/schemas.d.ts.map +0 -1
  346. package/dist/modules/cart/schemas.js +0 -14
  347. package/dist/modules/cart/service.d.ts +0 -63
  348. package/dist/modules/cart/service.d.ts.map +0 -1
  349. package/dist/modules/cart/service.js +0 -339
  350. package/dist/modules/catalog/repository/index.d.ts +0 -106
  351. package/dist/modules/catalog/repository/index.d.ts.map +0 -1
  352. package/dist/modules/catalog/repository/index.js +0 -455
  353. package/dist/modules/catalog/schema.d.ts +0 -1193
  354. package/dist/modules/catalog/schema.d.ts.map +0 -1
  355. package/dist/modules/catalog/schema.js +0 -149
  356. package/dist/modules/catalog/schemas.d.ts +0 -81
  357. package/dist/modules/catalog/schemas.d.ts.map +0 -1
  358. package/dist/modules/catalog/schemas.js +0 -62
  359. package/dist/modules/catalog/service.d.ts +0 -160
  360. package/dist/modules/catalog/service.d.ts.map +0 -1
  361. package/dist/modules/catalog/service.js +0 -759
  362. package/dist/modules/customers/repository/index.d.ts +0 -47
  363. package/dist/modules/customers/repository/index.d.ts.map +0 -1
  364. package/dist/modules/customers/repository/index.js +0 -206
  365. package/dist/modules/customers/schema.d.ts +0 -560
  366. package/dist/modules/customers/schema.d.ts.map +0 -1
  367. package/dist/modules/customers/schema.js +0 -60
  368. package/dist/modules/customers/service.d.ts +0 -27
  369. package/dist/modules/customers/service.d.ts.map +0 -1
  370. package/dist/modules/customers/service.js +0 -106
  371. package/dist/modules/fulfillment/repository/index.d.ts +0 -63
  372. package/dist/modules/fulfillment/repository/index.d.ts.map +0 -1
  373. package/dist/modules/fulfillment/repository/index.js +0 -268
  374. package/dist/modules/fulfillment/schema.d.ts +0 -655
  375. package/dist/modules/fulfillment/schema.d.ts.map +0 -1
  376. package/dist/modules/fulfillment/schema.js +0 -83
  377. package/dist/modules/fulfillment/service.d.ts +0 -58
  378. package/dist/modules/fulfillment/service.d.ts.map +0 -1
  379. package/dist/modules/fulfillment/service.js +0 -338
  380. package/dist/modules/fulfillment/types.d.ts +0 -44
  381. package/dist/modules/fulfillment/types.d.ts.map +0 -1
  382. package/dist/modules/fulfillment/types.js +0 -1
  383. package/dist/modules/inventory/repository/index.d.ts +0 -81
  384. package/dist/modules/inventory/repository/index.d.ts.map +0 -1
  385. package/dist/modules/inventory/repository/index.js +0 -310
  386. package/dist/modules/inventory/schema.d.ts +0 -570
  387. package/dist/modules/inventory/schema.d.ts.map +0 -1
  388. package/dist/modules/inventory/schema.js +0 -69
  389. package/dist/modules/inventory/schemas.d.ts +0 -31
  390. package/dist/modules/inventory/schemas.d.ts.map +0 -1
  391. package/dist/modules/inventory/schemas.js +0 -28
  392. package/dist/modules/inventory/service.d.ts +0 -69
  393. package/dist/modules/inventory/service.d.ts.map +0 -1
  394. package/dist/modules/inventory/service.js +0 -283
  395. package/dist/modules/media/adapter.d.ts +0 -16
  396. package/dist/modules/media/adapter.d.ts.map +0 -1
  397. package/dist/modules/media/adapter.js +0 -1
  398. package/dist/modules/media/repository/index.d.ts +0 -35
  399. package/dist/modules/media/repository/index.d.ts.map +0 -1
  400. package/dist/modules/media/repository/index.js +0 -176
  401. package/dist/modules/media/schema.d.ts +0 -289
  402. package/dist/modules/media/schema.d.ts.map +0 -1
  403. package/dist/modules/media/schema.js +0 -35
  404. package/dist/modules/media/service.d.ts +0 -42
  405. package/dist/modules/media/service.d.ts.map +0 -1
  406. package/dist/modules/media/service.js +0 -89
  407. package/dist/modules/orders/repository/index.d.ts +0 -48
  408. package/dist/modules/orders/repository/index.d.ts.map +0 -1
  409. package/dist/modules/orders/repository/index.js +0 -199
  410. package/dist/modules/orders/schema.d.ts +0 -672
  411. package/dist/modules/orders/schema.d.ts.map +0 -1
  412. package/dist/modules/orders/schema.js +0 -63
  413. package/dist/modules/orders/service.d.ts +0 -85
  414. package/dist/modules/orders/service.d.ts.map +0 -1
  415. package/dist/modules/orders/service.js +0 -313
  416. package/dist/modules/orders/stale-order-cleanup.d.ts +0 -27
  417. package/dist/modules/orders/stale-order-cleanup.d.ts.map +0 -1
  418. package/dist/modules/orders/stale-order-cleanup.js +0 -55
  419. package/dist/modules/organization/service.d.ts +0 -53
  420. package/dist/modules/organization/service.d.ts.map +0 -1
  421. package/dist/modules/organization/service.js +0 -151
  422. package/dist/modules/payments/adapter.d.ts +0 -42
  423. package/dist/modules/payments/adapter.d.ts.map +0 -1
  424. package/dist/modules/payments/adapter.js +0 -1
  425. package/dist/modules/payments/repository/index.d.ts +0 -5
  426. package/dist/modules/payments/repository/index.d.ts.map +0 -1
  427. package/dist/modules/payments/repository/index.js +0 -1
  428. package/dist/modules/payments/service.d.ts +0 -23
  429. package/dist/modules/payments/service.d.ts.map +0 -1
  430. package/dist/modules/payments/service.js +0 -72
  431. package/dist/modules/pricing/repository/index.d.ts +0 -34
  432. package/dist/modules/pricing/repository/index.d.ts.map +0 -1
  433. package/dist/modules/pricing/repository/index.js +0 -176
  434. package/dist/modules/pricing/schema.d.ts +0 -565
  435. package/dist/modules/pricing/schema.d.ts.map +0 -1
  436. package/dist/modules/pricing/schema.js +0 -57
  437. package/dist/modules/pricing/schemas.d.ts +0 -37
  438. package/dist/modules/pricing/schemas.d.ts.map +0 -1
  439. package/dist/modules/pricing/schemas.js +0 -30
  440. package/dist/modules/pricing/service.d.ts +0 -62
  441. package/dist/modules/pricing/service.d.ts.map +0 -1
  442. package/dist/modules/pricing/service.js +0 -308
  443. package/dist/modules/promotions/repository/index.d.ts +0 -41
  444. package/dist/modules/promotions/repository/index.d.ts.map +0 -1
  445. package/dist/modules/promotions/repository/index.js +0 -204
  446. package/dist/modules/promotions/schema.d.ts +0 -427
  447. package/dist/modules/promotions/schema.d.ts.map +0 -1
  448. package/dist/modules/promotions/schema.js +0 -52
  449. package/dist/modules/promotions/schemas.d.ts +0 -33
  450. package/dist/modules/promotions/schemas.d.ts.map +0 -1
  451. package/dist/modules/promotions/schemas.js +0 -32
  452. package/dist/modules/promotions/service.d.ts +0 -80
  453. package/dist/modules/promotions/service.d.ts.map +0 -1
  454. package/dist/modules/promotions/service.js +0 -347
  455. package/dist/modules/search/adapter.d.ts +0 -51
  456. package/dist/modules/search/adapter.d.ts.map +0 -1
  457. package/dist/modules/search/adapter.js +0 -1
  458. package/dist/modules/search/hooks.d.ts +0 -8
  459. package/dist/modules/search/hooks.d.ts.map +0 -1
  460. package/dist/modules/search/hooks.js +0 -6
  461. package/dist/modules/search/repository/index.d.ts +0 -5
  462. package/dist/modules/search/repository/index.d.ts.map +0 -1
  463. package/dist/modules/search/repository/index.js +0 -1
  464. package/dist/modules/search/service.d.ts +0 -24
  465. package/dist/modules/search/service.d.ts.map +0 -1
  466. package/dist/modules/search/service.js +0 -217
  467. package/dist/modules/shipping/calculator.d.ts +0 -42
  468. package/dist/modules/shipping/calculator.d.ts.map +0 -1
  469. package/dist/modules/shipping/calculator.js +0 -91
  470. package/dist/modules/shipping/repository/index.d.ts +0 -5
  471. package/dist/modules/shipping/repository/index.d.ts.map +0 -1
  472. package/dist/modules/shipping/repository/index.js +0 -1
  473. package/dist/modules/shipping/service.d.ts +0 -28
  474. package/dist/modules/shipping/service.d.ts.map +0 -1
  475. package/dist/modules/shipping/service.js +0 -20
  476. package/dist/modules/tax/adapter.d.ts +0 -58
  477. package/dist/modules/tax/adapter.d.ts.map +0 -1
  478. package/dist/modules/tax/adapter.js +0 -1
  479. package/dist/modules/tax/repository/index.d.ts +0 -5
  480. package/dist/modules/tax/repository/index.d.ts.map +0 -1
  481. package/dist/modules/tax/repository/index.js +0 -1
  482. package/dist/modules/tax/service.d.ts +0 -19
  483. package/dist/modules/tax/service.d.ts.map +0 -1
  484. package/dist/modules/tax/service.js +0 -34
  485. package/dist/modules/webhooks/hook.d.ts +0 -13
  486. package/dist/modules/webhooks/hook.d.ts.map +0 -1
  487. package/dist/modules/webhooks/hook.js +0 -29
  488. package/dist/modules/webhooks/repository/index.d.ts +0 -40
  489. package/dist/modules/webhooks/repository/index.d.ts.map +0 -1
  490. package/dist/modules/webhooks/repository/index.js +0 -175
  491. package/dist/modules/webhooks/schema.d.ts +0 -404
  492. package/dist/modules/webhooks/schema.d.ts.map +0 -1
  493. package/dist/modules/webhooks/schema.js +0 -40
  494. package/dist/modules/webhooks/service.d.ts +0 -23
  495. package/dist/modules/webhooks/service.d.ts.map +0 -1
  496. package/dist/modules/webhooks/service.js +0 -92
  497. package/dist/modules/webhooks/signing.d.ts +0 -2
  498. package/dist/modules/webhooks/signing.d.ts.map +0 -1
  499. package/dist/modules/webhooks/signing.js +0 -5
  500. package/dist/modules/webhooks/ssrf-guard.d.ts +0 -19
  501. package/dist/modules/webhooks/ssrf-guard.d.ts.map +0 -1
  502. package/dist/modules/webhooks/ssrf-guard.js +0 -79
  503. package/dist/modules/webhooks/tasks.d.ts +0 -16
  504. package/dist/modules/webhooks/tasks.d.ts.map +0 -1
  505. package/dist/modules/webhooks/tasks.js +0 -35
  506. package/dist/modules/webhooks/worker.d.ts +0 -21
  507. package/dist/modules/webhooks/worker.d.ts.map +0 -1
  508. package/dist/modules/webhooks/worker.js +0 -113
  509. package/dist/runtime/commerce.d.ts +0 -110
  510. package/dist/runtime/commerce.d.ts.map +0 -1
  511. package/dist/runtime/commerce.js +0 -37
  512. package/dist/runtime/kernel.d.ts +0 -71
  513. package/dist/runtime/kernel.d.ts.map +0 -1
  514. package/dist/runtime/kernel.js +0 -306
  515. package/dist/runtime/logger.d.ts +0 -11
  516. package/dist/runtime/logger.d.ts.map +0 -1
  517. package/dist/runtime/logger.js +0 -32
  518. package/dist/runtime/shutdown.d.ts +0 -15
  519. package/dist/runtime/shutdown.d.ts.map +0 -1
  520. package/dist/runtime/shutdown.js +0 -34
  521. package/dist/test-utils/create-pglite-adapter.d.ts +0 -32
  522. package/dist/test-utils/create-pglite-adapter.d.ts.map +0 -1
  523. package/dist/test-utils/create-pglite-adapter.js +0 -107
  524. package/dist/test-utils/create-plugin-test-app.d.ts +0 -50
  525. package/dist/test-utils/create-plugin-test-app.d.ts.map +0 -1
  526. package/dist/test-utils/create-plugin-test-app.js +0 -74
  527. package/dist/test-utils/create-repository-test-harness.d.ts +0 -8
  528. package/dist/test-utils/create-repository-test-harness.d.ts.map +0 -1
  529. package/dist/test-utils/create-repository-test-harness.js +0 -7
  530. package/dist/test-utils/create-test-config.d.ts +0 -18
  531. package/dist/test-utils/create-test-config.d.ts.map +0 -1
  532. package/dist/test-utils/create-test-config.js +0 -172
  533. package/dist/test-utils/create-test-kernel.d.ts +0 -3
  534. package/dist/test-utils/create-test-kernel.d.ts.map +0 -1
  535. package/dist/test-utils/create-test-kernel.js +0 -5
  536. package/dist/test-utils/create-test-plugin-context.d.ts +0 -42
  537. package/dist/test-utils/create-test-plugin-context.d.ts.map +0 -1
  538. package/dist/test-utils/create-test-plugin-context.js +0 -46
  539. package/dist/test-utils/rest-api-test-utils.d.ts +0 -64
  540. package/dist/test-utils/rest-api-test-utils.d.ts.map +0 -1
  541. package/dist/test-utils/rest-api-test-utils.js +0 -207
  542. package/dist/test-utils/test-actors.d.ts +0 -15
  543. package/dist/test-utils/test-actors.d.ts.map +0 -1
  544. package/dist/test-utils/test-actors.js +0 -57
  545. package/dist/test-utils/typed-hooks.d.ts +0 -43
  546. package/dist/test-utils/typed-hooks.d.ts.map +0 -1
  547. package/dist/test-utils/typed-hooks.js +0 -35
  548. package/dist/testing.d.ts +0 -14
  549. package/dist/testing.d.ts.map +0 -1
  550. package/dist/testing.js +0 -13
  551. package/dist/tsconfig.tsbuildinfo +0 -1
  552. package/dist/types/commerce-types.d.ts +0 -34
  553. package/dist/types/commerce-types.d.ts.map +0 -1
  554. package/dist/types/commerce-types.js +0 -1
  555. package/dist/utils/id.d.ts +0 -2
  556. package/dist/utils/id.d.ts.map +0 -1
  557. package/dist/utils/id.js +0 -3
  558. package/dist/utils/logger.d.ts +0 -3
  559. package/dist/utils/logger.d.ts.map +0 -1
  560. package/dist/utils/logger.js +0 -16
  561. package/dist/utils/pagination.d.ts +0 -11
  562. package/dist/utils/pagination.d.ts.map +0 -1
  563. package/dist/utils/pagination.js +0 -15
@@ -1,216 +0,0 @@
1
- import { OpenAPIHono } from "@hono/zod-openapi";
2
- import { checkoutRoute } from "../schemas/checkout.js";
3
- import { applyPromotionCodes, authorizePayment, calculateShipping, calculateTax, checkInventoryAvailability, completeCheckout, recordAnalyticsEvent, resolveCurrentPrices, validateCartNotEmpty, validatePaymentMethod, } from "../../../hooks/checkout.js";
4
- import { runAfterHooks, runBeforeHooks } from "../../../kernel/hooks/executor.js";
5
- import { createHookContext } from "../../../kernel/hooks/create-context.js";
6
- import { mapErrorToResponse, mapErrorToStatus } from "../utils.js";
7
- import { isCommerceError } from "../../../kernel/errors.js";
8
- import { makeId } from "../../../utils/id.js";
9
- export function checkoutRoutes(kernel) {
10
- const router = new OpenAPIHono();
11
- // @ts-expect-error -- openapi() enforces strict response typing but our handler
12
- // returns union responses (201 | 400 | 422). The route definition documents the
13
- // contract; the defaultHook handles Zod validation; the handler returns dynamic status.
14
- router.openapi(checkoutRoute, async (c) => {
15
- const body = c.req.valid("json");
16
- const actor = c.get("actor");
17
- const checkoutData = {
18
- checkoutId: makeId(),
19
- cartId: body.cartId,
20
- currency: body.currency ?? "USD",
21
- paymentMethodId: body.paymentMethodId,
22
- lineItems: [],
23
- subtotal: 0,
24
- discountTotal: 0,
25
- taxTotal: 0,
26
- shippingTotal: 0,
27
- total: 0,
28
- ...(body.customerId !== undefined ? { customerId: body.customerId } : {}),
29
- ...(body.customerGroupIds !== undefined
30
- ? { customerGroupIds: body.customerGroupIds }
31
- : {}),
32
- ...(body.promotionCodes !== undefined
33
- ? { promotionCodes: body.promotionCodes }
34
- : {}),
35
- ...(body.shippingAddress != null
36
- ? {
37
- shippingAddress: {
38
- line1: body.shippingAddress.line1,
39
- city: body.shippingAddress.city,
40
- postalCode: body.shippingAddress.postalCode,
41
- country: body.shippingAddress.country,
42
- ...(body.shippingAddress.line2 != null ? { line2: body.shippingAddress.line2 } : {}),
43
- ...(body.shippingAddress.state != null ? { state: body.shippingAddress.state } : {}),
44
- },
45
- }
46
- : {}),
47
- };
48
- // ── Phase 1: Validate & Calculate (inside DB transaction — fast SQL only) ──
49
- const validationHooks = [
50
- validateCartNotEmpty,
51
- resolveCurrentPrices,
52
- checkInventoryAvailability,
53
- applyPromotionCodes,
54
- calculateTax,
55
- calculateShipping,
56
- ...kernel.hooks.resolve("checkout.beforePayment"),
57
- validatePaymentMethod,
58
- ];
59
- // ── Phase 2: Payment Authorization (outside transaction — external API call) ──
60
- const paymentHooks = [
61
- authorizePayment,
62
- ...kernel.hooks.resolve("checkout.beforeCreate"),
63
- ];
64
- const afterHooks = [
65
- completeCheckout,
66
- recordAnalyticsEvent,
67
- ...kernel.hooks.resolve("checkout.afterCreate"),
68
- ];
69
- const context = createHookContext({
70
- actor,
71
- logger: kernel.logger,
72
- services: kernel.services,
73
- context: { moduleName: "checkout" },
74
- origin: "rest",
75
- kernel: { database: { db: kernel.database.db } },
76
- });
77
- try {
78
- // Phase 1: DB transaction for validation — releases connection immediately after
79
- const validated = await kernel.database.transaction(async (_tx) => {
80
- context.tx = _tx;
81
- return runBeforeHooks(validationHooks, checkoutData, "create", context);
82
- });
83
- // Phase 2: Payment authorization — NO DB connection held while calling Stripe/etc.
84
- // If Stripe takes 5s, the DB connection pool is not affected.
85
- context.tx = null;
86
- const processed = await runBeforeHooks(paymentHooks, validated, "create", context);
87
- // Resolve customer profile UUID from customerId (may be a profile UUID or a Better Auth user_id)
88
- let customerUuid = undefined;
89
- if (processed.customerId) {
90
- const uuidRe = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
91
- if (uuidRe.test(processed.customerId)) {
92
- // Looks like a profile UUID — try direct lookup (no auto-create)
93
- const byIdResult = await kernel.services.customers.getById(processed.customerId, actor);
94
- if (byIdResult.ok) {
95
- customerUuid = byIdResult.value.id;
96
- }
97
- }
98
- if (!customerUuid) {
99
- // Fall back to user_id lookup (auto-creates customer profile if needed)
100
- const byUserIdResult = await kernel.services.customers.getByUserId(processed.customerId, actor);
101
- if (byUserIdResult.ok) {
102
- customerUuid = byUserIdResult.value.id;
103
- }
104
- }
105
- // If both lookups fail, we still allow guest checkout (customerUuid remains undefined)
106
- }
107
- const orderPayload = {
108
- currency: processed.currency,
109
- subtotal: processed.subtotal,
110
- taxTotal: processed.taxTotal,
111
- shippingTotal: processed.shippingTotal,
112
- discountTotal: processed.discountTotal,
113
- grandTotal: processed.total,
114
- paymentIntentId: processed.paymentIntentId,
115
- paymentMethodId: processed.paymentMethodId,
116
- metadata: {
117
- // H2 fix: Merge hook-injected metadata (e.g., BNPL fee) before core fields
118
- ...(typeof processed.metadata === "object" && processed.metadata !== null
119
- ? processed.metadata
120
- : {}),
121
- cartId: processed.cartId,
122
- paymentIntentId: processed.paymentIntentId,
123
- checkoutId: processed.checkoutId,
124
- promotionCodes: processed.promotionCodes,
125
- appliedPromotions: processed.appliedPromotions,
126
- shippingAddress: processed.shippingAddress,
127
- },
128
- lineItems: processed.lineItems.map((lineItem) => {
129
- const payload = {
130
- entityId: lineItem.entityId,
131
- entityType: lineItem.entityType ?? "product",
132
- title: lineItem.title ?? lineItem.entityId,
133
- quantity: lineItem.quantity,
134
- unitPrice: lineItem.resolvedUnitPrice ?? 0,
135
- totalPrice: lineItem.resolvedTotal ?? 0,
136
- };
137
- return lineItem.variantId !== undefined
138
- ? { ...payload, variantId: lineItem.variantId }
139
- : payload;
140
- }),
141
- ...(customerUuid !== undefined
142
- ? { customerId: customerUuid }
143
- : {}),
144
- };
145
- const order = await kernel.services.orders.create(orderPayload, actor);
146
- if (!order.ok) {
147
- return c.json(mapErrorToResponse(order.error), mapErrorToStatus(order.error));
148
- }
149
- if (order.ok && (processed.appliedPromotions?.length ?? 0) > 0) {
150
- await kernel.services.promotions.recordUsage({
151
- promotions: processed.appliedPromotions ?? [],
152
- orderId: order.value.id,
153
- ...(customerUuid !== undefined
154
- ? { customerId: customerUuid }
155
- : {}),
156
- });
157
- }
158
- if (order.ok) {
159
- await kernel.services.tax.reportTransaction({
160
- transactionId: order.value.id,
161
- transactionDate: new Date(),
162
- currency: processed.currency,
163
- amount: processed.subtotal -
164
- processed.discountTotal +
165
- processed.shippingTotal,
166
- shipping: processed.shippingTotal,
167
- salesTax: processed.taxTotal,
168
- lineItems: processed.lineItems.map((lineItem, index) => ({
169
- id: lineItem.id ?? `${order.value.id}-${index + 1}`,
170
- entityId: lineItem.entityId,
171
- description: lineItem.title ?? lineItem.entityId,
172
- quantity: lineItem.quantity,
173
- unitPrice: lineItem.resolvedUnitPrice ?? 0,
174
- ...(lineItem.discountAmount !== undefined
175
- ? { discount: lineItem.discountAmount }
176
- : {}),
177
- })),
178
- ...(customerUuid !== undefined
179
- ? { customerId: customerUuid }
180
- : {}),
181
- ...(processed.shippingAddress !== undefined
182
- ? { toAddress: processed.shippingAddress }
183
- : {}),
184
- });
185
- }
186
- // Stash paymentMethodId for completeCheckout compensation chain
187
- context.context.paymentMethodId = processed.paymentMethodId;
188
- const afterReport = await runAfterHooks(afterHooks, null, order.value, "create", context);
189
- await kernel.services.cart.markAsCheckedOut(body.cartId, actor);
190
- return c.json({
191
- data: {
192
- ...order.value,
193
- // Stripe Elements requires clientSecret to collect card details on the frontend
194
- ...(processed.paymentClientSecret
195
- ? { paymentClientSecret: processed.paymentClientSecret }
196
- : {}),
197
- },
198
- meta: afterReport.hasErrors
199
- ? { hookErrors: afterReport.errors }
200
- : undefined,
201
- }, 201);
202
- }
203
- catch (error) {
204
- const message = isCommerceError(error)
205
- ? error.message
206
- : "Checkout failed.";
207
- return c.json({
208
- error: {
209
- code: "CHECKOUT_FAILED",
210
- message,
211
- },
212
- }, 422);
213
- }
214
- });
215
- return router;
216
- }
@@ -1,5 +0,0 @@
1
- import { OpenAPIHono } from "@hono/zod-openapi";
2
- import type { Kernel } from "../../../runtime/kernel.js";
3
- import { type AppEnv } from "../utils.js";
4
- export declare function customerRoutes(kernel: Kernel): OpenAPIHono<AppEnv, {}, "/">;
5
- //# sourceMappingURL=customers.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"customers.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/customers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAQzD,OAAO,EAAE,KAAK,MAAM,EAAyD,MAAM,aAAa,CAAC;AAEjG,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,gCAkF5C"}
@@ -1,74 +0,0 @@
1
- import { OpenAPIHono } from "@hono/zod-openapi";
2
- import { listCustomersRoute, getCustomerRoute, updateCustomerRoute, getCustomerOrdersRoute, getCustomerAddressesRoute, } from "../schemas/customers.js";
3
- import { mapErrorToResponse, mapErrorToStatus, parsePagination } from "../utils.js";
4
- export function customerRoutes(kernel) {
5
- const router = new OpenAPIHono();
6
- // @ts-expect-error -- openapi handler union return type
7
- router.openapi(listCustomersRoute, async (c) => {
8
- const actor = c.get("actor");
9
- const { page, limit } = parsePagination(c.req.query());
10
- const result = await kernel.services.customers.list(actor);
11
- if (!result.ok)
12
- return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
13
- const all = result.value;
14
- const total = all.length;
15
- const start = (page - 1) * limit;
16
- const paged = all.slice(start, start + limit);
17
- return c.json({
18
- data: paged,
19
- meta: {
20
- pagination: { page, limit, total, totalPages: Math.ceil(total / limit) },
21
- },
22
- });
23
- });
24
- // @ts-expect-error -- openapi handler union return type
25
- router.openapi(getCustomerRoute, async (c) => {
26
- const { id } = c.req.valid("param");
27
- const actor = c.get("actor");
28
- const result = await kernel.services.customers.getById(id, actor);
29
- if (!result.ok)
30
- return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
31
- return c.json({ data: result.value });
32
- });
33
- // @ts-expect-error -- openapi handler union return type
34
- router.openapi(updateCustomerRoute, async (c) => {
35
- const { id } = c.req.valid("param");
36
- const body = c.req.valid("json");
37
- const actor = c.get("actor");
38
- // Strip undefined values — exactOptionalPropertyTypes requires omission, not undefined
39
- const updates = {};
40
- for (const [k, v] of Object.entries(body)) {
41
- if (v !== undefined)
42
- updates[k] = v;
43
- }
44
- const result = await kernel.services.customers.update(id, updates, actor);
45
- if (!result.ok)
46
- return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
47
- return c.json({ data: result.value });
48
- });
49
- // @ts-expect-error -- openapi handler union return type
50
- router.openapi(getCustomerOrdersRoute, async (c) => {
51
- const { id } = c.req.valid("param");
52
- const actor = c.get("actor");
53
- const { page, limit } = parsePagination(c.req.query());
54
- const status = c.req.query("status") || undefined;
55
- const result = await kernel.services.orders.listByCustomer(id, { page, limit, ...(status ? { status } : {}) }, actor);
56
- if (!result.ok)
57
- return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
58
- return c.json({ data: result.value.items, meta: { pagination: result.value.pagination } });
59
- });
60
- // @ts-expect-error -- openapi handler union return type
61
- router.openapi(getCustomerAddressesRoute, async (c) => {
62
- const { id } = c.req.valid("param");
63
- const actor = c.get("actor");
64
- // Get customer first, then use their userId for address lookup
65
- const customerResult = await kernel.services.customers.getById(id, actor);
66
- if (!customerResult.ok)
67
- return c.json(mapErrorToResponse(customerResult.error), mapErrorToStatus(customerResult.error));
68
- const addressResult = await kernel.services.customers.getAddresses(customerResult.value.userId, actor);
69
- if (!addressResult.ok)
70
- return c.json(mapErrorToResponse(addressResult.error), mapErrorToStatus(addressResult.error));
71
- return c.json({ data: addressResult.value });
72
- });
73
- return router;
74
- }
@@ -1,18 +0,0 @@
1
- import { OpenAPIHono } from "@hono/zod-openapi";
2
- import type { Kernel } from "../../../runtime/kernel.js";
3
- import type { AppEnv } from "../utils.js";
4
- /**
5
- * Register URL rewrite aliases for entity types that define `alias` in config.
6
- *
7
- * E.g., `entities.product.alias = "products"` rewrites:
8
- * /api/products → /api/catalog/entities?type=product
9
- * /api/products/:id → /api/catalog/entities/:id
10
- * /api/products/:id/... → /api/catalog/entities/:id/...
11
- *
12
- * This is a thin rewrite layer — no handler duplication. The original
13
- * catalog routes handle all logic, validation, and OpenAPI schema.
14
- *
15
- * The `type` filter is injected automatically on list requests.
16
- */
17
- export declare function registerEntityAliases(router: OpenAPIHono<AppEnv>, kernel: Kernel): void;
18
- //# sourceMappingURL=entity-aliases.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"entity-aliases.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/entity-aliases.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,EAC3B,MAAM,EAAE,MAAM,GACb,IAAI,CA4BN"}
@@ -1,39 +0,0 @@
1
- /**
2
- * Register URL rewrite aliases for entity types that define `alias` in config.
3
- *
4
- * E.g., `entities.product.alias = "products"` rewrites:
5
- * /api/products → /api/catalog/entities?type=product
6
- * /api/products/:id → /api/catalog/entities/:id
7
- * /api/products/:id/... → /api/catalog/entities/:id/...
8
- *
9
- * This is a thin rewrite layer — no handler duplication. The original
10
- * catalog routes handle all logic, validation, and OpenAPI schema.
11
- *
12
- * The `type` filter is injected automatically on list requests.
13
- */
14
- export function registerEntityAliases(router, kernel) {
15
- const entities = kernel.config.entities ?? {};
16
- for (const [entityType, entityConfig] of Object.entries(entities)) {
17
- if (!entityConfig.alias)
18
- continue;
19
- const alias = entityConfig.alias;
20
- // /api/{alias} → /api/catalog/entities?type={entityType}
21
- router.all(`/${alias}`, (c) => {
22
- const url = new URL(c.req.url);
23
- url.pathname = "/api/catalog/entities";
24
- // Inject type filter for list requests
25
- if (c.req.method === "GET") {
26
- url.searchParams.set("type", entityType);
27
- }
28
- const newReq = new Request(url.toString(), c.req.raw);
29
- return router.fetch(newReq);
30
- });
31
- // /api/{alias}/:rest → /api/catalog/entities/:rest
32
- router.all(`/${alias}/*`, (c) => {
33
- const url = new URL(c.req.url);
34
- url.pathname = url.pathname.replace(`/api/${alias}`, "/api/catalog/entities");
35
- const newReq = new Request(url.toString(), c.req.raw);
36
- return router.fetch(newReq);
37
- });
38
- }
39
- }
@@ -1,5 +0,0 @@
1
- import { OpenAPIHono } from "@hono/zod-openapi";
2
- import type { Kernel } from "../../../runtime/kernel.js";
3
- import { type AppEnv } from "../utils.js";
4
- export declare function inventoryRoutes(kernel: Kernel): OpenAPIHono<AppEnv, {}, "/">;
5
- //# sourceMappingURL=inventory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"inventory.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/inventory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAUzD,OAAO,EAAE,KAAK,MAAM,EAAwC,MAAM,aAAa,CAAC;AAEhF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,gCAyE7C"}
@@ -1,72 +0,0 @@
1
- import { OpenAPIHono } from "@hono/zod-openapi";
2
- import { inventoryAdjustRoute, inventoryReserveRoute, inventoryReleaseRoute, createWarehouseRoute, inventoryCheckRoute, listWarehousesRoute, listInventoryLevelsRoute, } from "../schemas/inventory.js";
3
- import { mapErrorToResponse, mapErrorToStatus } from "../utils.js";
4
- export function inventoryRoutes(kernel) {
5
- const router = new OpenAPIHono();
6
- // @ts-expect-error -- openapi handler union return type
7
- router.openapi(listInventoryLevelsRoute, async (c) => {
8
- const actor = c.get("actor");
9
- const warehouseId = c.req.query("warehouseId");
10
- const entityId = c.req.query("entityId");
11
- const result = await kernel.services.inventory.listLevels({
12
- ...(warehouseId ? { warehouseId } : {}),
13
- ...(entityId ? { entityId } : {}),
14
- }, actor);
15
- if (!result.ok)
16
- return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
17
- return c.json({ data: result.value });
18
- });
19
- // @ts-expect-error -- openapi handler union return type
20
- router.openapi(inventoryCheckRoute, async (c) => {
21
- const entityIds = (c.req.query("entityIds") ?? "")
22
- .split(",")
23
- .map((item) => item.trim())
24
- .filter(Boolean);
25
- const result = await kernel.services.inventory.checkMultiple(entityIds);
26
- if (!result.ok)
27
- return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
28
- return c.json({ data: result.value });
29
- });
30
- // @ts-expect-error -- openapi handler union return type
31
- router.openapi(inventoryAdjustRoute, async (c) => {
32
- const body = c.req.valid("json");
33
- const result = await kernel.services.inventory.adjust(body, c.get("actor"));
34
- if (!result.ok)
35
- return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
36
- return c.json({ data: result.value });
37
- });
38
- // @ts-expect-error -- openapi handler union return type
39
- router.openapi(inventoryReserveRoute, async (c) => {
40
- const body = c.req.valid("json");
41
- const result = await kernel.services.inventory.reserve(body, c.get("actor"));
42
- if (!result.ok)
43
- return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
44
- return c.json({ data: { reserved: true } });
45
- });
46
- // @ts-expect-error -- openapi handler union return type
47
- router.openapi(inventoryReleaseRoute, async (c) => {
48
- const body = c.req.valid("json");
49
- const result = await kernel.services.inventory.release(body, c.get("actor"));
50
- if (!result.ok)
51
- return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
52
- return c.json({ data: { released: true } });
53
- });
54
- // @ts-expect-error -- openapi handler union return type
55
- router.openapi(createWarehouseRoute, async (c) => {
56
- const body = c.req.valid("json");
57
- const actor = c.get("actor");
58
- const result = await kernel.services.inventory.createWarehouse(body, actor);
59
- if (!result.ok)
60
- return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
61
- return c.json({ data: result.value }, 201);
62
- });
63
- // @ts-expect-error -- openapi handler union return type
64
- router.openapi(listWarehousesRoute, async (c) => {
65
- const actor = c.get("actor");
66
- const result = await kernel.services.inventory.listWarehouses(actor);
67
- if (!result.ok)
68
- return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
69
- return c.json({ data: result.value });
70
- });
71
- return router;
72
- }
@@ -1,5 +0,0 @@
1
- import { OpenAPIHono } from "@hono/zod-openapi";
2
- import type { Kernel } from "../../../runtime/kernel.js";
3
- import { type AppEnv } from "../utils.js";
4
- export declare function mediaRoutes(kernel: Kernel): OpenAPIHono<AppEnv, {}, "/">;
5
- //# sourceMappingURL=media.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/media.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAGzD,OAAO,EAAE,KAAK,MAAM,EAAqD,MAAM,aAAa,CAAC;AAE7F,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,gCA+EzC"}
@@ -1,65 +0,0 @@
1
- import { OpenAPIHono } from "@hono/zod-openapi";
2
- import { attachMediaRoute, getMediaRoute, deleteMediaRoute } from "../schemas/media.js";
3
- import { mapErrorToResponse, mapErrorToStatus, requirePerm } from "../utils.js";
4
- export function mediaRoutes(kernel) {
5
- const router = new OpenAPIHono();
6
- // Upload requires authentication + media:write permission
7
- router.use("/upload", requirePerm("media:write"));
8
- router.post("/upload", async (c) => {
9
- const body = await c.req.parseBody();
10
- const file = body.file;
11
- if (!file) {
12
- return c.json({ error: { code: "VALIDATION_FAILED", message: "file is required" } }, 422);
13
- }
14
- const buffer = await file.arrayBuffer();
15
- const actor = c.get("actor");
16
- const result = await kernel.services.media.upload({
17
- filename: file.name,
18
- contentType: file.type,
19
- data: buffer,
20
- alt: String(body.alt ?? ""),
21
- }, actor);
22
- if (!result.ok) {
23
- return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
24
- }
25
- return c.json({ data: result.value }, 201);
26
- });
27
- router.openapi(getMediaRoute, async (c) => {
28
- const signed = c.req.query("signed") === "true";
29
- // Signed URLs require authentication
30
- if (signed && !c.get("actor")) {
31
- return c.json({ error: { code: "UNAUTHORIZED", message: "Authentication required for signed URLs." } }, 401);
32
- }
33
- const result = signed
34
- ? await kernel.services.media.getSignedUrl(c.req.param("id"))
35
- : await kernel.services.media.getUrl(c.req.param("id"));
36
- if (!result.ok) {
37
- return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
38
- }
39
- return c.redirect(result.value, 302);
40
- });
41
- // @ts-expect-error -- openapi handler union return type
42
- router.openapi(deleteMediaRoute, async (c) => {
43
- const actor = c.get("actor");
44
- if (!actor || (!actor.permissions.includes("media:write") && !actor.permissions.includes("*:*"))) {
45
- return c.json({ error: { code: "FORBIDDEN", message: "media:write permission required." } }, 403);
46
- }
47
- const result = await kernel.services.media.delete(c.req.param("id"));
48
- if (!result.ok) {
49
- return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
50
- }
51
- return c.json({ data: { deleted: true } });
52
- });
53
- // Attach requires media:write
54
- router.use("/attach", requirePerm("media:write"));
55
- // @ts-expect-error -- openapi handler union return type
56
- router.openapi(attachMediaRoute, async (c) => {
57
- const body = c.req.valid("json");
58
- const result = await kernel.services.media.attachToEntity(body);
59
- if (!result.ok) {
60
- return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
61
- }
62
- return c.json({ data: { attached: true } }, 201);
63
- });
64
- return router;
65
- }
@@ -1,5 +0,0 @@
1
- import { OpenAPIHono } from "@hono/zod-openapi";
2
- import type { Kernel } from "../../../runtime/kernel.js";
3
- import { type AppEnv } from "../utils.js";
4
- export declare function orderRoutes(kernel: Kernel): OpenAPIHono<AppEnv, {}, "/">;
5
- //# sourceMappingURL=orders.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"orders.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/orders.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAEzD,OAAO,EAAE,KAAK,MAAM,EAAiE,MAAM,aAAa,CAAC;AAEzG,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,gCAwEzC"}
@@ -1,64 +0,0 @@
1
- import { OpenAPIHono } from "@hono/zod-openapi";
2
- import { changeOrderStatusRoute, listOrdersRoute, getOrderRoute, getOrderFulfillmentsRoute } from "../schemas/orders.js";
3
- import { isUUID, mapErrorToResponse, mapErrorToStatus, parsePagination } from "../utils.js";
4
- export function orderRoutes(kernel) {
5
- const router = new OpenAPIHono();
6
- // @ts-expect-error -- openapi handler union return type
7
- router.openapi(listOrdersRoute, async (c) => {
8
- const pagination = parsePagination(c.req.query());
9
- const status = c.req.query("status");
10
- const result = await kernel.services.orders.list({
11
- page: pagination.page,
12
- limit: pagination.limit,
13
- ...(status !== undefined ? { status } : {}),
14
- }, c.get("actor"));
15
- if (!result.ok)
16
- return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
17
- return c.json({
18
- data: result.value.items,
19
- meta: {
20
- pagination: result.value.pagination,
21
- },
22
- });
23
- });
24
- // @ts-expect-error -- openapi handler union return type
25
- router.openapi(getOrderRoute, async (c) => {
26
- const idOrNumber = c.req.param("idOrNumber");
27
- const result = isUUID(idOrNumber)
28
- ? await kernel.services.orders.getById(idOrNumber, c.get("actor"))
29
- : await kernel.services.orders.getByNumber(idOrNumber, c.get("actor"));
30
- if (!result.ok)
31
- return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
32
- return c.json({ data: result.value });
33
- });
34
- // @ts-expect-error -- openapi() enforces strict response typing but our handler
35
- // returns union responses (200 | 400 | 404). The route definition documents the
36
- // contract; the handler returns dynamic status.
37
- router.openapi(changeOrderStatusRoute, async (c) => {
38
- const body = c.req.valid("json");
39
- const result = await kernel.services.orders.changeStatus({
40
- orderId: c.req.param("id"),
41
- newStatus: body.status,
42
- ...(body.reason !== undefined ? { reason: body.reason } : {}),
43
- }, c.get("actor"));
44
- if (!result.ok)
45
- return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
46
- return c.json({ data: result.value });
47
- });
48
- // @ts-expect-error -- openapi handler union return type
49
- router.openapi(getOrderFulfillmentsRoute, async (c) => {
50
- const orderId = c.req.param("id");
51
- const actor = c.get("actor");
52
- // Verify the order exists and the actor has access before returning fulfillments
53
- const orderResult = isUUID(orderId)
54
- ? await kernel.services.orders.getById(orderId, actor)
55
- : await kernel.services.orders.getByNumber(orderId, actor);
56
- if (!orderResult.ok)
57
- return c.json(mapErrorToResponse(orderResult.error), mapErrorToStatus(orderResult.error));
58
- const result = await kernel.services.fulfillment.getByOrderId(orderResult.value.id);
59
- if (!result.ok)
60
- return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
61
- return c.json({ data: result.value });
62
- });
63
- return router;
64
- }
@@ -1,5 +0,0 @@
1
- import { OpenAPIHono } from "@hono/zod-openapi";
2
- import type { Kernel } from "../../../runtime/kernel.js";
3
- import { type AppEnv } from "../utils.js";
4
- export declare function paymentRoutes(kernel: Kernel): OpenAPIHono<AppEnv, {}, "/">;
5
- //# sourceMappingURL=payments.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"payments.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/routes/payments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,KAAK,MAAM,EAAwC,MAAM,aAAa,CAAC;AAKhF,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,gCAmD3C"}
@@ -1,45 +0,0 @@
1
- import { OpenAPIHono } from "@hono/zod-openapi";
2
- import { mapErrorToResponse, mapErrorToStatus } from "../utils.js";
3
- import { processedWebhookEvents } from "../../../modules/webhooks/schema.js";
4
- export function paymentRoutes(kernel) {
5
- const router = new OpenAPIHono();
6
- router.post("/webhook", async (c) => {
7
- const result = await kernel.services.payments.verifyWebhook(c.req.raw);
8
- if (!result.ok) {
9
- return c.json(mapErrorToResponse(result.error), mapErrorToStatus(result.error));
10
- }
11
- const event = result.value;
12
- const db = kernel.database.db;
13
- // Atomic idempotency: INSERT ... ON CONFLICT DO NOTHING ... RETURNING
14
- // If the row already exists, RETURNING yields zero rows → duplicate.
15
- // If the row is new, RETURNING yields one row → process the event.
16
- // No TOCTOU race: the UNIQUE constraint on event_id is the single source of truth.
17
- const [inserted] = await db
18
- .insert(processedWebhookEvents)
19
- .values({
20
- eventId: event.id,
21
- provider: "stripe",
22
- eventType: event.type,
23
- })
24
- .onConflictDoNothing()
25
- .returning({ id: processedWebhookEvents.id });
26
- if (!inserted) {
27
- // Row already existed — this is a duplicate delivery
28
- return c.json({ data: { received: true, duplicate: true } });
29
- }
30
- // Process the event (first time only)
31
- if (event.type === "payment_intent.succeeded") {
32
- const data = event.data;
33
- const metadata = data?.metadata;
34
- if (typeof metadata?.orderId === "string") {
35
- await kernel.services.orders.changeStatus({
36
- orderId: metadata.orderId,
37
- newStatus: "confirmed",
38
- reason: "stripe_webhook_payment_intent_succeeded",
39
- }, null);
40
- }
41
- }
42
- return c.json({ data: { received: true } });
43
- });
44
- return router;
45
- }