@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,306 +0,0 @@
1
- import { HookRegistry } from "../kernel/hooks/registry.js";
2
- import { createDatabaseConnection, } from "../kernel/database/adapter.js";
3
- import { CatalogServiceImpl } from "../modules/catalog/service.js";
4
- import { CatalogRepository } from "../modules/catalog/repository/index.js";
5
- import { InventoryRepository } from "../modules/inventory/repository/index.js";
6
- import { CartRepository } from "../modules/cart/repository/index.js";
7
- import { OrdersRepository } from "../modules/orders/repository/index.js";
8
- import { CustomersRepository } from "../modules/customers/repository/index.js";
9
- import { PricingRepository } from "../modules/pricing/repository/index.js";
10
- import { PromotionsRepository } from "../modules/promotions/repository/index.js";
11
- import { FulfillmentRepository } from "../modules/fulfillment/repository/index.js";
12
- import { WebhooksRepository } from "../modules/webhooks/repository/index.js";
13
- import { MediaRepository } from "../modules/media/repository/index.js";
14
- import { InventoryService } from "../modules/inventory/service.js";
15
- import { MediaService } from "../modules/media/service.js";
16
- import { CartService } from "../modules/cart/service.js";
17
- import { OrderService } from "../modules/orders/service.js";
18
- import { PaymentsService } from "../modules/payments/service.js";
19
- import { FulfillmentService } from "../modules/fulfillment/service.js";
20
- import { CustomerService } from "../modules/customers/service.js";
21
- import { WebhookService } from "../modules/webhooks/service.js";
22
- import { AnalyticsService } from "../modules/analytics/service.js";
23
- import { DrizzleAnalyticsAdapter } from "../modules/analytics/drizzle-adapter.js";
24
- import { BUILTIN_ANALYTICS_MODELS } from "../modules/analytics/models.js";
25
- import { PricingService } from "../modules/pricing/service.js";
26
- import { PromotionService } from "../modules/promotions/service.js";
27
- import { TaxService } from "../modules/tax/service.js";
28
- import { ShippingService } from "../modules/shipping/service.js";
29
- import { SearchService } from "../modules/search/service.js";
30
- import { WebhookDeliveryWorker } from "../modules/webhooks/worker.js";
31
- import { createAuditService, } from "../modules/audit/service.js";
32
- import { OrganizationService } from "../modules/organization/service.js";
33
- import { createLogger } from "../utils/logger.js";
34
- import { withTiming } from "../kernel/service-timing.js";
35
- import { extendOrderStateMachine } from "../kernel/state-machine/machine.js";
36
- import { DEFAULT_ORG_ID } from "../auth/org.js";
37
- import { deliverWebhooks } from "../modules/webhooks/hook.js";
38
- // Analytics event recording hooks removed (RFC-006): source tables ARE the events.
39
- // The DrizzleAnalyticsAdapter queries orders/inventory directly via SQL.
40
- import { syncToSearchIndex } from "../modules/search/hooks.js";
41
- import { auditHooks } from "../modules/audit/hooks.js";
42
- import { sendOrderStatusEmail } from "../hooks/order-emails.js";
43
- import { DrizzleJobsAdapter } from "../kernel/jobs/drizzle-adapter.js";
44
- const requiredServiceKeys = [
45
- "catalog",
46
- "inventory",
47
- "media",
48
- "cart",
49
- "orders",
50
- "payments",
51
- "fulfillment",
52
- "customers",
53
- "webhooks",
54
- "analytics",
55
- "pricing",
56
- "promotions",
57
- "tax",
58
- "shipping",
59
- "search",
60
- "audit",
61
- ];
62
- function assertServicesReady(services) {
63
- for (const key of requiredServiceKeys) {
64
- if (services[key] === undefined) {
65
- throw new Error(`Kernel service "${String(key)}" was not initialized.`);
66
- }
67
- }
68
- }
69
- function registerConfiguredHooks(config, hooks) {
70
- for (const [entityType, entityConfig] of Object.entries(config.entities ?? {})) {
71
- const entityHooks = entityConfig.hooks ?? {};
72
- for (const [hookName, handlers] of Object.entries(entityHooks)) {
73
- hooks.registerConfigHooks(`catalog.${entityType}.${hookName}`, handlers ?? []);
74
- }
75
- }
76
- for (const [moduleName, moduleConfig] of [
77
- ["cart", config.cart],
78
- ["checkout", config.checkout],
79
- ["orders", config.orders],
80
- ["inventory", config.inventory],
81
- ]) {
82
- const hooksObject = moduleConfig?.hooks;
83
- if (!hooksObject)
84
- continue;
85
- for (const [hookName, handlers] of Object.entries(hooksObject)) {
86
- const normalizedHandlers = (Array.isArray(handlers) ? handlers : []);
87
- hooks.registerConfigHooks(`${moduleName}.${hookName}`, normalizedHandlers);
88
- }
89
- }
90
- // Webhook delivery (async via job queue) — 14 event types
91
- hooks.append("orders.afterCreate", deliverWebhooks);
92
- hooks.append("orders.afterStatusChange", deliverWebhooks);
93
- hooks.append("orders.afterStatusChange", sendOrderStatusEmail);
94
- hooks.append("catalog.afterCreate", deliverWebhooks);
95
- hooks.append("catalog.afterUpdate", deliverWebhooks);
96
- hooks.append("catalog.afterDelete", deliverWebhooks);
97
- hooks.append("inventory.afterAdjust", deliverWebhooks);
98
- hooks.append("customers.afterCreate", deliverWebhooks);
99
- hooks.append("customers.afterUpdate", deliverWebhooks);
100
- hooks.append("pricing.afterCreate", deliverWebhooks);
101
- hooks.append("pricing.afterUpdate", deliverWebhooks);
102
- hooks.append("promotions.afterCreate", deliverWebhooks);
103
- hooks.append("promotions.afterUpdate", deliverWebhooks);
104
- hooks.append("fulfillment.afterCreate", deliverWebhooks);
105
- hooks.append("cart.afterAddItem", deliverWebhooks);
106
- // Analytics: no event recording hooks needed (RFC-006).
107
- // The DrizzleAnalyticsAdapter queries source tables directly via SQL.
108
- // Search index sync
109
- hooks.append("catalog.afterCreate", syncToSearchIndex);
110
- hooks.append("catalog.afterUpdate", syncToSearchIndex);
111
- // Auto-audit — records every create/update/delete across all modules
112
- for (const [key, handler] of Object.entries(auditHooks)) {
113
- hooks.append(key, handler);
114
- }
115
- }
116
- export function createKernel(config) {
117
- const hooks = new HookRegistry();
118
- const logger = createLogger("kernel");
119
- hooks.setLogger({ error: (obj, msg) => logger.error(msg, obj) });
120
- if (!config.storage) {
121
- throw new Error("Storage adapter is required. Configure `storage` in defineConfig (for example: localStorageAdapter for development, or s3StorageAdapter/r2StorageAdapter for object storage).");
122
- }
123
- const database = createDatabaseConnection({
124
- adapter: config.databaseAdapter ?? {
125
- provider: config.database.provider,
126
- db: {},
127
- async transaction(fn) {
128
- return fn({});
129
- },
130
- },
131
- });
132
- const mcpTools = [];
133
- const services = {
134
- email: config.email,
135
- organization: new OrganizationService(database.db),
136
- };
137
- const serviceContainer = services;
138
- // Expose database on service container so plugin hooks can access it
139
- serviceContainer.database = database;
140
- const db = database.db;
141
- // Expose jobs adapter on service container so plugins can enqueue background work
142
- const jobsAdapter = new DrizzleJobsAdapter(db, new Map());
143
- serviceContainer.jobs = jobsAdapter;
144
- const pricingRepository = new PricingRepository(db);
145
- const promotionsRepository = new PromotionsRepository(db);
146
- services.tax = new TaxService({ adapter: config.tax?.adapter });
147
- services.payments = new PaymentsService(config.payments);
148
- const customersRepository = new CustomersRepository(db);
149
- services.customers = new CustomerService({
150
- repository: customersRepository,
151
- });
152
- const webhooksRepository = new WebhooksRepository(db);
153
- const webhookWorker = new WebhookDeliveryWorker({
154
- repository: webhooksRepository,
155
- });
156
- services.webhooks = Object.assign(new WebhookService({
157
- repository: webhooksRepository,
158
- }), {
159
- async enqueueDelivery(payload) {
160
- await webhookWorker.deliver(payload);
161
- },
162
- });
163
- const inventoryRepository = new InventoryRepository(db);
164
- services.inventory = new InventoryService({
165
- repository: inventoryRepository,
166
- hooks,
167
- config,
168
- services: serviceContainer,
169
- database,
170
- });
171
- const catalogRepository = new CatalogRepository(db);
172
- services.catalog = new CatalogServiceImpl({
173
- repository: catalogRepository,
174
- hooks,
175
- config,
176
- services: serviceContainer,
177
- });
178
- services.search = new SearchService({
179
- catalogRepository: catalogRepository,
180
- ...(config.search?.adapter ? { adapter: config.search.adapter } : {}),
181
- ...(config.search?.defaultFacets
182
- ? { defaultFacets: config.search.defaultFacets }
183
- : {}),
184
- });
185
- const cartRepository = new CartRepository(db);
186
- services.cart = new CartService({
187
- repository: cartRepository,
188
- catalogRepository: catalogRepository,
189
- hooks,
190
- config,
191
- services: serviceContainer,
192
- });
193
- const ordersRepository = new OrdersRepository(db);
194
- services.orders = new OrderService({
195
- repository: ordersRepository,
196
- hooks,
197
- services: serviceContainer,
198
- kernel: { database: { db: database.db } },
199
- ...(config.orders?.customTransitions
200
- ? { stateMachine: extendOrderStateMachine(config.orders.customTransitions) }
201
- : {}),
202
- });
203
- const fulfillmentRepository = new FulfillmentRepository(db);
204
- services.fulfillment = new FulfillmentService({
205
- repository: fulfillmentRepository,
206
- ordersRepository: ordersRepository,
207
- inventoryService: services.inventory,
208
- });
209
- services.pricing = new PricingService({
210
- repository: pricingRepository,
211
- catalogRepository: catalogRepository,
212
- });
213
- services.promotions = new PromotionService({
214
- repository: promotionsRepository,
215
- catalogRepository: catalogRepository,
216
- ordersRepository: ordersRepository,
217
- });
218
- // AnalyticsService — always uses DrizzleAnalyticsAdapter (direct SQL).
219
- // Plugins add their own models via the analyticsModels manifest slot.
220
- const analyticsAdapter = new DrizzleAnalyticsAdapter(db);
221
- for (const model of BUILTIN_ANALYTICS_MODELS) {
222
- analyticsAdapter.registerModel(model);
223
- }
224
- services.analytics = new AnalyticsService({
225
- adapter: analyticsAdapter,
226
- config,
227
- });
228
- services.shipping = new ShippingService({
229
- config,
230
- catalogRepository: catalogRepository,
231
- });
232
- const mediaRepository = new MediaRepository(db);
233
- services.media = new MediaService({
234
- repository: mediaRepository,
235
- catalogRepository: catalogRepository,
236
- storage: config.storage,
237
- });
238
- services.audit = createAuditService(db);
239
- assertServicesReady(services);
240
- // Service method observability: wrap each service in a timing proxy
241
- // that logs slow calls (>100ms) and failed calls with duration.
242
- // Disabled in test environment to avoid noisy logs.
243
- if (process.env.NODE_ENV !== "test") {
244
- const timedLogger = {
245
- info: (obj, msg) => logger.info(msg, obj),
246
- error: (obj, msg) => logger.error(msg, obj),
247
- };
248
- const serviceKeys = Object.keys(services);
249
- for (const key of serviceKeys) {
250
- const svc = services[key];
251
- if (svc && typeof svc === "object" && key !== "email") {
252
- services[key] = withTiming(svc, key, timedLogger);
253
- }
254
- }
255
- }
256
- registerConfiguredHooks(config, hooks);
257
- const kernel = {
258
- config,
259
- hooks,
260
- database,
261
- services,
262
- mcpTools,
263
- logger,
264
- getMCPActor() {
265
- return {
266
- type: "api_key",
267
- userId: "mcp-agent",
268
- email: null,
269
- name: "MCP Agent",
270
- vendorId: null,
271
- organizationId: DEFAULT_ORG_ID,
272
- role: "ai_agent",
273
- permissions: config.auth?.roles?.ai_agent?.permissions ?? [
274
- "catalog:read",
275
- "catalog:create",
276
- "inventory:read",
277
- "inventory:adjust",
278
- "orders:read",
279
- "cart:create",
280
- "cart:update",
281
- "mcp:access",
282
- ],
283
- };
284
- },
285
- };
286
- // Register plugin hooks from config.hooks flat map
287
- for (const [key, handlers] of Object.entries(config.hooks ?? {})) {
288
- for (const handler of handlers) {
289
- hooks.append(key, handler);
290
- }
291
- }
292
- // Register plugin analytics models from config.analytics.models
293
- for (const model of config.analytics?.models ?? []) {
294
- services.analytics.registerModel(model);
295
- }
296
- // Evaluate deferred plugin MCP tools.
297
- // config.mcpTools is a chained function built by defineCommercePlugin.
298
- // It receives the kernel and returns MCPTool[] from all plugins.
299
- if (config.mcpTools) {
300
- const pluginTools = config.mcpTools(kernel);
301
- if (Array.isArray(pluginTools)) {
302
- mcpTools.push(...pluginTools);
303
- }
304
- }
305
- return kernel;
306
- }
@@ -1,11 +0,0 @@
1
- import pino from "pino";
2
- import type { CommerceConfig } from "../config/types.js";
3
- export type Logger = pino.Logger;
4
- /**
5
- * Create a structured JSON logger for the commerce engine.
6
- *
7
- * Automatically redacts sensitive fields (authorization, password, token, etc.)
8
- * from all log output. Uses Pino for high-performance, newline-delimited JSON.
9
- */
10
- export declare function createLogger(config: CommerceConfig): Logger;
11
- //# sourceMappingURL=logger.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/runtime/logger.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;AAEjC;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAwB3D"}
@@ -1,32 +0,0 @@
1
- import pino from "pino";
2
- /**
3
- * Create a structured JSON logger for the commerce engine.
4
- *
5
- * Automatically redacts sensitive fields (authorization, password, token, etc.)
6
- * from all log output. Uses Pino for high-performance, newline-delimited JSON.
7
- */
8
- export function createLogger(config) {
9
- return pino({
10
- level: config.logLevel ?? "info",
11
- redact: {
12
- paths: [
13
- "req.headers.authorization",
14
- "req.headers.cookie",
15
- "*.password",
16
- "*.secret",
17
- "*.apiKey",
18
- "*.creditCard",
19
- "*.token",
20
- "*.apiToken",
21
- ],
22
- censor: "[REDACTED]",
23
- },
24
- serializers: {
25
- req: pino.stdSerializers.req,
26
- err: pino.stdSerializers.err,
27
- },
28
- formatters: {
29
- level: (label) => ({ level: label }),
30
- },
31
- });
32
- }
@@ -1,15 +0,0 @@
1
- import type { Logger } from "./logger.js";
2
- /**
3
- * Sets up graceful shutdown handlers for SIGTERM and SIGINT.
4
- *
5
- * On signal:
6
- * 1. Stops accepting new connections
7
- * 2. Runs cleanup (close DB pool, flush logs)
8
- * 3. Force-exits after timeout if cleanup hangs
9
- */
10
- export declare function setupGracefulShutdown(opts: {
11
- cleanup: () => Promise<void>;
12
- logger: Logger;
13
- timeoutMs?: number;
14
- }): void;
15
- //# sourceMappingURL=shutdown.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"shutdown.d.ts","sourceRoot":"","sources":["../../src/runtime/shutdown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE;IAC1C,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CA4BP"}
@@ -1,34 +0,0 @@
1
- /**
2
- * Sets up graceful shutdown handlers for SIGTERM and SIGINT.
3
- *
4
- * On signal:
5
- * 1. Stops accepting new connections
6
- * 2. Runs cleanup (close DB pool, flush logs)
7
- * 3. Force-exits after timeout if cleanup hangs
8
- */
9
- export function setupGracefulShutdown(opts) {
10
- const { cleanup, logger, timeoutMs = 30_000 } = opts;
11
- let isShuttingDown = false;
12
- async function shutdown(signal) {
13
- if (isShuttingDown)
14
- return;
15
- isShuttingDown = true;
16
- logger.info({ signal }, "shutdown signal received, draining connections");
17
- const forceTimer = setTimeout(() => {
18
- logger.error("shutdown timeout exceeded, forcing exit");
19
- process.exit(1);
20
- }, timeoutMs);
21
- forceTimer.unref();
22
- try {
23
- await cleanup();
24
- logger.info("graceful shutdown complete");
25
- process.exit(0);
26
- }
27
- catch (err) {
28
- logger.error({ err }, "error during shutdown");
29
- process.exit(1);
30
- }
31
- }
32
- process.on("SIGTERM", () => shutdown("SIGTERM"));
33
- process.on("SIGINT", () => shutdown("SIGINT"));
34
- }
@@ -1,32 +0,0 @@
1
- /**
2
- * PGlite-backed test adapter for real PostgreSQL behavior in tests.
3
- *
4
- * Creates an in-memory PGlite (WASM PostgreSQL) instance, pushes the
5
- * core Drizzle schema programmatically via drizzle-kit/api, and provides
6
- * a cleanup function to reset data between tests.
7
- *
8
- * Benefits over in-memory repository doubles:
9
- * - Real SQL execution (Drizzle query generation)
10
- * - PostgreSQL type coercion and constraint enforcement
11
- * - Real transaction rollback semantics
12
- * - Production parity for query edge cases
13
- */
14
- import type { DatabaseAdapter } from "../kernel/database/adapter.js";
15
- import type { DrizzleDatabase } from "../kernel/database/drizzle-db.js";
16
- /**
17
- * Creates a PGlite-backed database adapter for testing.
18
- *
19
- * Each call creates a new isolated PGlite instance with its own
20
- * in-memory database. Core schema is pushed once during initialization.
21
- *
22
- * @returns A promise resolving to an object containing:
23
- * - adapter: The DatabaseAdapter for use with createKernel
24
- * - db: The Drizzle ORM instance for direct queries
25
- * - cleanup: Function to truncate all tables (call between tests)
26
- */
27
- export declare function createPGliteTestAdapter(): Promise<{
28
- adapter: DatabaseAdapter;
29
- db: DrizzleDatabase;
30
- cleanup: () => Promise<void>;
31
- }>;
32
- //# sourceMappingURL=create-pglite-adapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-pglite-adapter.d.ts","sourceRoot":"","sources":["../../src/test-utils/create-pglite-adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAMrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AA0BxE;;;;;;;;;;GAUG;AACH,wBAAsB,uBAAuB,IAAI,OAAO,CAAC;IACvD,OAAO,EAAE,eAAe,CAAC;IACzB,EAAE,EAAE,eAAe,CAAC;IACpB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC,CA+DD"}
@@ -1,107 +0,0 @@
1
- /**
2
- * PGlite-backed test adapter for real PostgreSQL behavior in tests.
3
- *
4
- * Creates an in-memory PGlite (WASM PostgreSQL) instance, pushes the
5
- * core Drizzle schema programmatically via drizzle-kit/api, and provides
6
- * a cleanup function to reset data between tests.
7
- *
8
- * Benefits over in-memory repository doubles:
9
- * - Real SQL execution (Drizzle query generation)
10
- * - PostgreSQL type coercion and constraint enforcement
11
- * - Real transaction rollback semantics
12
- * - Production parity for query edge cases
13
- */
14
- import { PGlite } from "@electric-sql/pglite";
15
- import { drizzle } from "drizzle-orm/pglite";
16
- import { sql } from "drizzle-orm";
17
- import { createRequire } from "node:module";
18
- import { getSchema } from "../kernel/database/migrate.js";
19
- import { ensureDefaultOrg } from "../auth/org.js";
20
- // Single barrel import --- includes all core modules + auth tables
21
- import * as fullSchema from "../kernel/database/schema.js";
22
- // drizzle-kit/api uses CJS internally; createRequire provides ESM compat.
23
- const require = createRequire(import.meta.url);
24
- /**
25
- * Pushes the core Drizzle schema to the database using drizzle-kit/api.
26
- *
27
- * drizzle-kit introspects the live database via information_schema, diffs
28
- * against the pgTable definitions, and generates the minimal DDL needed.
29
- * Typed as DrizzleDatabase (our concrete schema type) to avoid the
30
- * PGlite → PgDatabase<HKT> invariance cast — drizzle-kit accepts any
31
- * Drizzle instance at runtime regardless of the schema generic.
32
- */
33
- async function pushCoreSchema(db) {
34
- const coreSchema = getSchema();
35
- const drizzleKit = require("drizzle-kit/api");
36
- const { apply } = await drizzleKit.pushSchema(coreSchema, db);
37
- await apply();
38
- }
39
- /**
40
- * Creates a PGlite-backed database adapter for testing.
41
- *
42
- * Each call creates a new isolated PGlite instance with its own
43
- * in-memory database. Core schema is pushed once during initialization.
44
- *
45
- * @returns A promise resolving to an object containing:
46
- * - adapter: The DatabaseAdapter for use with createKernel
47
- * - db: The Drizzle ORM instance for direct queries
48
- * - cleanup: Function to truncate all tables (call between tests)
49
- */
50
- export async function createPGliteTestAdapter() {
51
- // Create in-memory PGlite instance
52
- const pg = new PGlite();
53
- // Wrap with Drizzle ORM first (pushSchema needs the Drizzle instance)
54
- const db = drizzle(pg, { schema: fullSchema });
55
- // Push core schema via drizzle-kit/api (no migration files needed)
56
- // PgliteDatabase<Schema> and DrizzleDatabase share the same Schema type;
57
- // the HKT parameter differs (PgliteQueryResultHKT vs PgQueryResultHKT)
58
- // but drizzle-kit's pushSchema doesn't use it at runtime.
59
- await pushCoreSchema(db);
60
- // Ensure the default organization exists for all tests
61
- await ensureDefaultOrg(db);
62
- /**
63
- * PGlite-compatible transaction wrapper.
64
- *
65
- * Drizzle's transaction() method can hang with PGlite due to how
66
- * the adapter manages transaction state. This implementation uses
67
- * manual BEGIN/COMMIT control which works more reliably.
68
- */
69
- async function transaction(fn) {
70
- await pg.exec("BEGIN");
71
- try {
72
- const result = await fn(db);
73
- await pg.exec("COMMIT");
74
- return result;
75
- }
76
- catch (error) {
77
- await pg.exec("ROLLBACK");
78
- throw error;
79
- }
80
- }
81
- const adapter = {
82
- provider: "postgresql",
83
- db,
84
- transaction,
85
- };
86
- /**
87
- * Cleanup function to reset data between tests.
88
- * Truncates all tables in reverse dependency order with CASCADE.
89
- */
90
- async function cleanup() {
91
- await db.execute(sql `
92
- DO $$ DECLARE
93
- r RECORD;
94
- BEGIN
95
- FOR r IN (
96
- SELECT tablename FROM pg_tables
97
- WHERE schemaname = 'public'
98
- ) LOOP
99
- EXECUTE 'TRUNCATE TABLE ' || quote_ident(r.tablename) || ' CASCADE';
100
- END LOOP;
101
- END $$;
102
- `);
103
- // Re-insert default org after truncation (CASCADE wipes it)
104
- await ensureDefaultOrg(db);
105
- }
106
- return { adapter, db, cleanup };
107
- }
@@ -1,50 +0,0 @@
1
- /**
2
- * One-call plugin E2E test setup.
3
- *
4
- * Boots a PGlite kernel (or real PG if overridden), programmatically pushes
5
- * the merged schema (core + plugin tables) via drizzle-kit/api, mounts the
6
- * test actor middleware on an OpenAPIHono instance, and registers all plugin
7
- * routes --- matching the production server.ts boot sequence.
8
- *
9
- * Usage:
10
- * import { createPluginTestApp, jsonHeaders, testAdminActor } from "@unifiedcommerce/core";
11
- * const { app } = await createPluginTestApp(myPlugin());
12
- * const res = await app.request("/api/my-route", {
13
- * method: "POST",
14
- * headers: jsonHeaders(testAdminActor),
15
- * body: JSON.stringify({ ... }),
16
- * });
17
- * expect(res.status).toBe(201);
18
- */
19
- import { OpenAPIHono } from "@hono/zod-openapi";
20
- import type { PgDatabase, PgQueryResultHKT } from "drizzle-orm/pg-core";
21
- import type { CommerceConfig, CommercePlugin } from "../config/types.js";
22
- import type { Actor } from "../auth/types.js";
23
- import type { Kernel } from "../runtime/kernel.js";
24
- /**
25
- * Hono environment type for the test app. Declares the `actor` context
26
- * variable so c.set("actor", ...) / c.get("actor") are properly typed
27
- * without `as never` casts.
28
- */
29
- export type TestAppEnv = {
30
- Variables: {
31
- actor: Actor | null;
32
- };
33
- };
34
- export interface PluginTestApp {
35
- /** OpenAPIHono instance with test actor middleware and all plugin routes registered. */
36
- app: OpenAPIHono<TestAppEnv>;
37
- /** The booted kernel with database, services, and config. */
38
- kernel: Kernel;
39
- /** Drizzle database instance for direct queries in test assertions. */
40
- db: PgDatabase<PgQueryResultHKT, Record<string, unknown>>;
41
- }
42
- /**
43
- * Creates a fully-wired test application for plugin E2E testing.
44
- *
45
- * @param plugin - The plugin under test (e.g., `appointmentPlugin()`)
46
- * @param configOverrides - Optional config overrides. Pass `databaseAdapter`
47
- * to use a real PostgreSQL instance instead of PGlite.
48
- */
49
- export declare function createPluginTestApp(plugin: CommercePlugin, configOverrides?: Partial<CommerceConfig>): Promise<PluginTestApp>;
50
- //# sourceMappingURL=create-plugin-test-app.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-plugin-test-app.d.ts","sourceRoot":"","sources":["../../src/test-utils/create-plugin-test-app.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAcnD;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE;QACT,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;KACrB,CAAC;CACH,CAAC;AAEF,MAAM,WAAW,aAAa;IAC5B,wFAAwF;IACxF,GAAG,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAC7B,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,uEAAuE;IACvE,EAAE,EAAE,UAAU,CAAC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC3D;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,cAAc,EACtB,eAAe,GAAE,OAAO,CAAC,cAAc,CAAM,GAC5C,OAAO,CAAC,aAAa,CAAC,CAyDxB"}