@unifiedcommerce/core 0.4.3 → 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 (561) 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/dist/adapters/console-email.d.ts +0 -23
  7. package/dist/adapters/console-email.d.ts.map +0 -1
  8. package/dist/adapters/console-email.js +0 -38
  9. package/dist/auth/access.d.ts +0 -101
  10. package/dist/auth/access.d.ts.map +0 -1
  11. package/dist/auth/access.js +0 -128
  12. package/dist/auth/auth-schema.d.ts +0 -1475
  13. package/dist/auth/auth-schema.d.ts.map +0 -1
  14. package/dist/auth/auth-schema.js +0 -124
  15. package/dist/auth/middleware.d.ts +0 -5
  16. package/dist/auth/middleware.d.ts.map +0 -1
  17. package/dist/auth/middleware.js +0 -141
  18. package/dist/auth/org.d.ts +0 -22
  19. package/dist/auth/org.d.ts.map +0 -1
  20. package/dist/auth/org.js +0 -36
  21. package/dist/auth/permissions.d.ts +0 -4
  22. package/dist/auth/permissions.d.ts.map +0 -1
  23. package/dist/auth/permissions.js +0 -24
  24. package/dist/auth/setup.d.ts +0 -29
  25. package/dist/auth/setup.d.ts.map +0 -1
  26. package/dist/auth/setup.js +0 -117
  27. package/dist/auth/system-actor.d.ts +0 -7
  28. package/dist/auth/system-actor.d.ts.map +0 -1
  29. package/dist/auth/system-actor.js +0 -17
  30. package/dist/auth/types.d.ts +0 -11
  31. package/dist/auth/types.d.ts.map +0 -1
  32. package/dist/auth/types.js +0 -1
  33. package/dist/config/defaults.d.ts +0 -3
  34. package/dist/config/defaults.d.ts.map +0 -1
  35. package/dist/config/defaults.js +0 -80
  36. package/dist/config/define-config.d.ts +0 -9
  37. package/dist/config/define-config.d.ts.map +0 -1
  38. package/dist/config/define-config.js +0 -44
  39. package/dist/config/types.d.ts +0 -327
  40. package/dist/config/types.d.ts.map +0 -1
  41. package/dist/config/types.js +0 -1
  42. package/dist/generated/plugin-manifest.d.ts +0 -48
  43. package/dist/generated/plugin-manifest.d.ts.map +0 -1
  44. package/dist/generated/plugin-manifest.js +0 -20
  45. package/dist/hooks/checkout-completion.d.ts +0 -58
  46. package/dist/hooks/checkout-completion.d.ts.map +0 -1
  47. package/dist/hooks/checkout-completion.js +0 -137
  48. package/dist/hooks/checkout.d.ts +0 -99
  49. package/dist/hooks/checkout.d.ts.map +0 -1
  50. package/dist/hooks/checkout.js +0 -317
  51. package/dist/hooks/order-emails.d.ts +0 -16
  52. package/dist/hooks/order-emails.d.ts.map +0 -1
  53. package/dist/hooks/order-emails.js +0 -44
  54. package/dist/index.d.ts +0 -77
  55. package/dist/index.d.ts.map +0 -1
  56. package/dist/index.js +0 -45
  57. package/dist/interfaces/mcp/agent-prompt.d.ts +0 -16
  58. package/dist/interfaces/mcp/agent-prompt.d.ts.map +0 -1
  59. package/dist/interfaces/mcp/agent-prompt.js +0 -172
  60. package/dist/interfaces/mcp/context-enrichment.d.ts +0 -39
  61. package/dist/interfaces/mcp/context-enrichment.d.ts.map +0 -1
  62. package/dist/interfaces/mcp/context-enrichment.js +0 -119
  63. package/dist/interfaces/mcp/server.d.ts +0 -5
  64. package/dist/interfaces/mcp/server.d.ts.map +0 -1
  65. package/dist/interfaces/mcp/server.js +0 -30
  66. package/dist/interfaces/mcp/tool-builder.d.ts +0 -120
  67. package/dist/interfaces/mcp/tool-builder.d.ts.map +0 -1
  68. package/dist/interfaces/mcp/tool-builder.js +0 -224
  69. package/dist/interfaces/mcp/tools/analytics.d.ts +0 -42
  70. package/dist/interfaces/mcp/tools/analytics.d.ts.map +0 -1
  71. package/dist/interfaces/mcp/tools/analytics.js +0 -70
  72. package/dist/interfaces/mcp/tools/cart.d.ts +0 -14
  73. package/dist/interfaces/mcp/tools/cart.d.ts.map +0 -1
  74. package/dist/interfaces/mcp/tools/cart.js +0 -47
  75. package/dist/interfaces/mcp/tools/catalog.d.ts +0 -53
  76. package/dist/interfaces/mcp/tools/catalog.d.ts.map +0 -1
  77. package/dist/interfaces/mcp/tools/catalog.js +0 -284
  78. package/dist/interfaces/mcp/tools/index.d.ts +0 -3
  79. package/dist/interfaces/mcp/tools/index.d.ts.map +0 -1
  80. package/dist/interfaces/mcp/tools/index.js +0 -20
  81. package/dist/interfaces/mcp/tools/inventory.d.ts +0 -27
  82. package/dist/interfaces/mcp/tools/inventory.d.ts.map +0 -1
  83. package/dist/interfaces/mcp/tools/inventory.js +0 -143
  84. package/dist/interfaces/mcp/tools/orders.d.ts +0 -18
  85. package/dist/interfaces/mcp/tools/orders.d.ts.map +0 -1
  86. package/dist/interfaces/mcp/tools/orders.js +0 -82
  87. package/dist/interfaces/mcp/tools/pricing.d.ts +0 -29
  88. package/dist/interfaces/mcp/tools/pricing.d.ts.map +0 -1
  89. package/dist/interfaces/mcp/tools/pricing.js +0 -90
  90. package/dist/interfaces/mcp/tools/promotions.d.ts +0 -44
  91. package/dist/interfaces/mcp/tools/promotions.d.ts.map +0 -1
  92. package/dist/interfaces/mcp/tools/promotions.js +0 -109
  93. package/dist/interfaces/mcp/tools/registry.d.ts +0 -32
  94. package/dist/interfaces/mcp/tools/registry.d.ts.map +0 -1
  95. package/dist/interfaces/mcp/tools/registry.js +0 -55
  96. package/dist/interfaces/mcp/tools/search.d.ts +0 -14
  97. package/dist/interfaces/mcp/tools/search.d.ts.map +0 -1
  98. package/dist/interfaces/mcp/tools/search.js +0 -39
  99. package/dist/interfaces/mcp/tools/webhooks.d.ts +0 -15
  100. package/dist/interfaces/mcp/tools/webhooks.d.ts.map +0 -1
  101. package/dist/interfaces/mcp/tools/webhooks.js +0 -48
  102. package/dist/interfaces/mcp/transport.d.ts +0 -20
  103. package/dist/interfaces/mcp/transport.d.ts.map +0 -1
  104. package/dist/interfaces/mcp/transport.js +0 -99
  105. package/dist/interfaces/rest/customer-portal.d.ts +0 -5
  106. package/dist/interfaces/rest/customer-portal.d.ts.map +0 -1
  107. package/dist/interfaces/rest/customer-portal.js +0 -206
  108. package/dist/interfaces/rest/router.d.ts +0 -164
  109. package/dist/interfaces/rest/router.d.ts.map +0 -1
  110. package/dist/interfaces/rest/router.js +0 -259
  111. package/dist/interfaces/rest/routes/admin-jobs.d.ts +0 -5
  112. package/dist/interfaces/rest/routes/admin-jobs.d.ts.map +0 -1
  113. package/dist/interfaces/rest/routes/admin-jobs.js +0 -48
  114. package/dist/interfaces/rest/routes/audit.d.ts +0 -5
  115. package/dist/interfaces/rest/routes/audit.d.ts.map +0 -1
  116. package/dist/interfaces/rest/routes/audit.js +0 -43
  117. package/dist/interfaces/rest/routes/carts.d.ts +0 -5
  118. package/dist/interfaces/rest/routes/carts.d.ts.map +0 -1
  119. package/dist/interfaces/rest/routes/carts.js +0 -55
  120. package/dist/interfaces/rest/routes/catalog.d.ts +0 -5
  121. package/dist/interfaces/rest/routes/catalog.d.ts.map +0 -1
  122. package/dist/interfaces/rest/routes/catalog.js +0 -256
  123. package/dist/interfaces/rest/routes/checkout.d.ts +0 -5
  124. package/dist/interfaces/rest/routes/checkout.d.ts.map +0 -1
  125. package/dist/interfaces/rest/routes/checkout.js +0 -216
  126. package/dist/interfaces/rest/routes/customers.d.ts +0 -5
  127. package/dist/interfaces/rest/routes/customers.d.ts.map +0 -1
  128. package/dist/interfaces/rest/routes/customers.js +0 -74
  129. package/dist/interfaces/rest/routes/entity-aliases.d.ts +0 -18
  130. package/dist/interfaces/rest/routes/entity-aliases.d.ts.map +0 -1
  131. package/dist/interfaces/rest/routes/entity-aliases.js +0 -39
  132. package/dist/interfaces/rest/routes/inventory.d.ts +0 -5
  133. package/dist/interfaces/rest/routes/inventory.d.ts.map +0 -1
  134. package/dist/interfaces/rest/routes/inventory.js +0 -72
  135. package/dist/interfaces/rest/routes/media.d.ts +0 -5
  136. package/dist/interfaces/rest/routes/media.d.ts.map +0 -1
  137. package/dist/interfaces/rest/routes/media.js +0 -65
  138. package/dist/interfaces/rest/routes/orders.d.ts +0 -5
  139. package/dist/interfaces/rest/routes/orders.d.ts.map +0 -1
  140. package/dist/interfaces/rest/routes/orders.js +0 -64
  141. package/dist/interfaces/rest/routes/payments.d.ts +0 -5
  142. package/dist/interfaces/rest/routes/payments.d.ts.map +0 -1
  143. package/dist/interfaces/rest/routes/payments.js +0 -45
  144. package/dist/interfaces/rest/routes/pricing.d.ts +0 -5
  145. package/dist/interfaces/rest/routes/pricing.d.ts.map +0 -1
  146. package/dist/interfaces/rest/routes/pricing.js +0 -48
  147. package/dist/interfaces/rest/routes/promotions.d.ts +0 -5
  148. package/dist/interfaces/rest/routes/promotions.d.ts.map +0 -1
  149. package/dist/interfaces/rest/routes/promotions.js +0 -76
  150. package/dist/interfaces/rest/routes/search.d.ts +0 -5
  151. package/dist/interfaces/rest/routes/search.d.ts.map +0 -1
  152. package/dist/interfaces/rest/routes/search.js +0 -60
  153. package/dist/interfaces/rest/routes/webhooks.d.ts +0 -5
  154. package/dist/interfaces/rest/routes/webhooks.d.ts.map +0 -1
  155. package/dist/interfaces/rest/routes/webhooks.js +0 -39
  156. package/dist/interfaces/rest/schemas/admin-jobs.d.ts +0 -327
  157. package/dist/interfaces/rest/schemas/admin-jobs.d.ts.map +0 -1
  158. package/dist/interfaces/rest/schemas/admin-jobs.js +0 -37
  159. package/dist/interfaces/rest/schemas/audit.d.ts +0 -59
  160. package/dist/interfaces/rest/schemas/audit.d.ts.map +0 -1
  161. package/dist/interfaces/rest/schemas/audit.js +0 -43
  162. package/dist/interfaces/rest/schemas/carts.d.ts +0 -1456
  163. package/dist/interfaces/rest/schemas/carts.d.ts.map +0 -1
  164. package/dist/interfaces/rest/schemas/carts.js +0 -109
  165. package/dist/interfaces/rest/schemas/catalog.d.ts +0 -5452
  166. package/dist/interfaces/rest/schemas/catalog.d.ts.map +0 -1
  167. package/dist/interfaces/rest/schemas/catalog.js +0 -397
  168. package/dist/interfaces/rest/schemas/checkout.d.ts +0 -160
  169. package/dist/interfaces/rest/schemas/checkout.d.ts.map +0 -1
  170. package/dist/interfaces/rest/schemas/checkout.js +0 -60
  171. package/dist/interfaces/rest/schemas/customer-portal.d.ts +0 -2203
  172. package/dist/interfaces/rest/schemas/customer-portal.d.ts.map +0 -1
  173. package/dist/interfaces/rest/schemas/customer-portal.js +0 -177
  174. package/dist/interfaces/rest/schemas/customers.d.ts +0 -422
  175. package/dist/interfaces/rest/schemas/customers.d.ts.map +0 -1
  176. package/dist/interfaces/rest/schemas/customers.js +0 -150
  177. package/dist/interfaces/rest/schemas/inventory.d.ts +0 -561
  178. package/dist/interfaces/rest/schemas/inventory.d.ts.map +0 -1
  179. package/dist/interfaces/rest/schemas/inventory.js +0 -148
  180. package/dist/interfaces/rest/schemas/media.d.ts +0 -303
  181. package/dist/interfaces/rest/schemas/media.d.ts.map +0 -1
  182. package/dist/interfaces/rest/schemas/media.js +0 -69
  183. package/dist/interfaces/rest/schemas/orders.d.ts +0 -1792
  184. package/dist/interfaces/rest/schemas/orders.d.ts.map +0 -1
  185. package/dist/interfaces/rest/schemas/orders.js +0 -93
  186. package/dist/interfaces/rest/schemas/pricing.d.ts +0 -256
  187. package/dist/interfaces/rest/schemas/pricing.d.ts.map +0 -1
  188. package/dist/interfaces/rest/schemas/pricing.js +0 -72
  189. package/dist/interfaces/rest/schemas/promotions.d.ts +0 -363
  190. package/dist/interfaces/rest/schemas/promotions.d.ts.map +0 -1
  191. package/dist/interfaces/rest/schemas/promotions.js +0 -98
  192. package/dist/interfaces/rest/schemas/responses.d.ts +0 -4086
  193. package/dist/interfaces/rest/schemas/responses.d.ts.map +0 -1
  194. package/dist/interfaces/rest/schemas/responses.js +0 -74
  195. package/dist/interfaces/rest/schemas/search.d.ts +0 -247
  196. package/dist/interfaces/rest/schemas/search.d.ts.map +0 -1
  197. package/dist/interfaces/rest/schemas/search.js +0 -55
  198. package/dist/interfaces/rest/schemas/shared.d.ts +0 -95
  199. package/dist/interfaces/rest/schemas/shared.d.ts.map +0 -1
  200. package/dist/interfaces/rest/schemas/shared.js +0 -51
  201. package/dist/interfaces/rest/schemas/webhooks.d.ts +0 -221
  202. package/dist/interfaces/rest/schemas/webhooks.d.ts.map +0 -1
  203. package/dist/interfaces/rest/schemas/webhooks.js +0 -62
  204. package/dist/interfaces/rest/utils.d.ts +0 -45
  205. package/dist/interfaces/rest/utils.d.ts.map +0 -1
  206. package/dist/interfaces/rest/utils.js +0 -71
  207. package/dist/interfaces/rest/webhook-router.d.ts +0 -41
  208. package/dist/interfaces/rest/webhook-router.d.ts.map +0 -1
  209. package/dist/interfaces/rest/webhook-router.js +0 -36
  210. package/dist/kernel/compensation/executor.d.ts +0 -21
  211. package/dist/kernel/compensation/executor.d.ts.map +0 -1
  212. package/dist/kernel/compensation/executor.js +0 -36
  213. package/dist/kernel/compensation/types.d.ts +0 -25
  214. package/dist/kernel/compensation/types.d.ts.map +0 -1
  215. package/dist/kernel/compensation/types.js +0 -1
  216. package/dist/kernel/database/adapter.d.ts +0 -18
  217. package/dist/kernel/database/adapter.d.ts.map +0 -1
  218. package/dist/kernel/database/adapter.js +0 -3
  219. package/dist/kernel/database/drizzle-db.d.ts +0 -49
  220. package/dist/kernel/database/drizzle-db.d.ts.map +0 -1
  221. package/dist/kernel/database/drizzle-db.js +0 -20
  222. package/dist/kernel/database/migrate.d.ts +0 -38
  223. package/dist/kernel/database/migrate.d.ts.map +0 -1
  224. package/dist/kernel/database/migrate.js +0 -61
  225. package/dist/kernel/database/plugin-types.d.ts +0 -32
  226. package/dist/kernel/database/plugin-types.d.ts.map +0 -1
  227. package/dist/kernel/database/plugin-types.js +0 -10
  228. package/dist/kernel/database/schema.d.ts +0 -24
  229. package/dist/kernel/database/schema.d.ts.map +0 -1
  230. package/dist/kernel/database/schema.js +0 -36
  231. package/dist/kernel/database/scoped-db.d.ts +0 -20
  232. package/dist/kernel/database/scoped-db.d.ts.map +0 -1
  233. package/dist/kernel/database/scoped-db.js +0 -62
  234. package/dist/kernel/database/tx-context.d.ts +0 -15
  235. package/dist/kernel/database/tx-context.d.ts.map +0 -1
  236. package/dist/kernel/database/tx-context.js +0 -19
  237. package/dist/kernel/error-mapper.d.ts +0 -3
  238. package/dist/kernel/error-mapper.d.ts.map +0 -1
  239. package/dist/kernel/error-mapper.js +0 -12
  240. package/dist/kernel/errors.d.ts +0 -38
  241. package/dist/kernel/errors.d.ts.map +0 -1
  242. package/dist/kernel/errors.js +0 -69
  243. package/dist/kernel/factory/repository-factory.d.ts +0 -71
  244. package/dist/kernel/factory/repository-factory.d.ts.map +0 -1
  245. package/dist/kernel/factory/repository-factory.js +0 -138
  246. package/dist/kernel/hooks/create-context.d.ts +0 -25
  247. package/dist/kernel/hooks/create-context.d.ts.map +0 -1
  248. package/dist/kernel/hooks/create-context.js +0 -22
  249. package/dist/kernel/hooks/executor.d.ts +0 -12
  250. package/dist/kernel/hooks/executor.d.ts.map +0 -1
  251. package/dist/kernel/hooks/executor.js +0 -50
  252. package/dist/kernel/hooks/registry.d.ts +0 -28
  253. package/dist/kernel/hooks/registry.d.ts.map +0 -1
  254. package/dist/kernel/hooks/registry.js +0 -58
  255. package/dist/kernel/hooks/types.d.ts +0 -37
  256. package/dist/kernel/hooks/types.d.ts.map +0 -1
  257. package/dist/kernel/hooks/types.js +0 -1
  258. package/dist/kernel/http-error.d.ts +0 -30
  259. package/dist/kernel/http-error.d.ts.map +0 -1
  260. package/dist/kernel/http-error.js +0 -35
  261. package/dist/kernel/jobs/adapter.d.ts +0 -25
  262. package/dist/kernel/jobs/adapter.d.ts.map +0 -1
  263. package/dist/kernel/jobs/adapter.js +0 -9
  264. package/dist/kernel/jobs/drizzle-adapter.d.ts +0 -15
  265. package/dist/kernel/jobs/drizzle-adapter.d.ts.map +0 -1
  266. package/dist/kernel/jobs/drizzle-adapter.js +0 -42
  267. package/dist/kernel/jobs/runner.d.ts +0 -24
  268. package/dist/kernel/jobs/runner.d.ts.map +0 -1
  269. package/dist/kernel/jobs/runner.js +0 -114
  270. package/dist/kernel/jobs/schema.d.ts +0 -280
  271. package/dist/kernel/jobs/schema.d.ts.map +0 -1
  272. package/dist/kernel/jobs/schema.js +0 -37
  273. package/dist/kernel/jobs/types.d.ts +0 -30
  274. package/dist/kernel/jobs/types.d.ts.map +0 -1
  275. package/dist/kernel/jobs/types.js +0 -1
  276. package/dist/kernel/local-api.d.ts +0 -103
  277. package/dist/kernel/local-api.d.ts.map +0 -1
  278. package/dist/kernel/local-api.js +0 -89
  279. package/dist/kernel/plugin/manifest.d.ts +0 -90
  280. package/dist/kernel/plugin/manifest.d.ts.map +0 -1
  281. package/dist/kernel/plugin/manifest.js +0 -169
  282. package/dist/kernel/query/executor.d.ts +0 -21
  283. package/dist/kernel/query/executor.d.ts.map +0 -1
  284. package/dist/kernel/query/executor.js +0 -128
  285. package/dist/kernel/query/registry.d.ts +0 -33
  286. package/dist/kernel/query/registry.d.ts.map +0 -1
  287. package/dist/kernel/query/registry.js +0 -20
  288. package/dist/kernel/result.d.ts +0 -36
  289. package/dist/kernel/result.d.ts.map +0 -1
  290. package/dist/kernel/result.js +0 -16
  291. package/dist/kernel/schema/extra-columns.d.ts +0 -23
  292. package/dist/kernel/schema/extra-columns.d.ts.map +0 -1
  293. package/dist/kernel/schema/extra-columns.js +0 -10
  294. package/dist/kernel/service-registry.d.ts +0 -109
  295. package/dist/kernel/service-registry.d.ts.map +0 -1
  296. package/dist/kernel/service-registry.js +0 -26
  297. package/dist/kernel/service-timing.d.ts +0 -25
  298. package/dist/kernel/service-timing.d.ts.map +0 -1
  299. package/dist/kernel/service-timing.js +0 -62
  300. package/dist/kernel/state-machine/machine.d.ts +0 -24
  301. package/dist/kernel/state-machine/machine.d.ts.map +0 -1
  302. package/dist/kernel/state-machine/machine.js +0 -70
  303. package/dist/modules/analytics/drizzle-adapter.d.ts +0 -13
  304. package/dist/modules/analytics/drizzle-adapter.d.ts.map +0 -1
  305. package/dist/modules/analytics/drizzle-adapter.js +0 -358
  306. package/dist/modules/analytics/hooks.d.ts +0 -13
  307. package/dist/modules/analytics/hooks.d.ts.map +0 -1
  308. package/dist/modules/analytics/hooks.js +0 -12
  309. package/dist/modules/analytics/models.d.ts +0 -14
  310. package/dist/modules/analytics/models.d.ts.map +0 -1
  311. package/dist/modules/analytics/models.js +0 -118
  312. package/dist/modules/analytics/repository/index.d.ts +0 -5
  313. package/dist/modules/analytics/repository/index.d.ts.map +0 -1
  314. package/dist/modules/analytics/repository/index.js +0 -1
  315. package/dist/modules/analytics/service.d.ts +0 -45
  316. package/dist/modules/analytics/service.d.ts.map +0 -1
  317. package/dist/modules/analytics/service.js +0 -196
  318. package/dist/modules/analytics/types.d.ts +0 -119
  319. package/dist/modules/analytics/types.d.ts.map +0 -1
  320. package/dist/modules/analytics/types.js +0 -25
  321. package/dist/modules/audit/hooks.d.ts +0 -7
  322. package/dist/modules/audit/hooks.d.ts.map +0 -1
  323. package/dist/modules/audit/hooks.js +0 -67
  324. package/dist/modules/audit/schema.d.ts +0 -178
  325. package/dist/modules/audit/schema.d.ts.map +0 -1
  326. package/dist/modules/audit/schema.js +0 -21
  327. package/dist/modules/audit/service.d.ts +0 -38
  328. package/dist/modules/audit/service.d.ts.map +0 -1
  329. package/dist/modules/audit/service.js +0 -109
  330. package/dist/modules/cart/access.d.ts +0 -11
  331. package/dist/modules/cart/access.d.ts.map +0 -1
  332. package/dist/modules/cart/access.js +0 -18
  333. package/dist/modules/cart/matcher.d.ts +0 -20
  334. package/dist/modules/cart/matcher.d.ts.map +0 -1
  335. package/dist/modules/cart/matcher.js +0 -2
  336. package/dist/modules/cart/repository/index.d.ts +0 -45
  337. package/dist/modules/cart/repository/index.d.ts.map +0 -1
  338. package/dist/modules/cart/repository/index.js +0 -158
  339. package/dist/modules/cart/schema.d.ts +0 -359
  340. package/dist/modules/cart/schema.d.ts.map +0 -1
  341. package/dist/modules/cart/schema.js +0 -40
  342. package/dist/modules/cart/schemas.d.ts +0 -29
  343. package/dist/modules/cart/schemas.d.ts.map +0 -1
  344. package/dist/modules/cart/schemas.js +0 -14
  345. package/dist/modules/cart/service.d.ts +0 -63
  346. package/dist/modules/cart/service.d.ts.map +0 -1
  347. package/dist/modules/cart/service.js +0 -339
  348. package/dist/modules/catalog/repository/index.d.ts +0 -106
  349. package/dist/modules/catalog/repository/index.d.ts.map +0 -1
  350. package/dist/modules/catalog/repository/index.js +0 -455
  351. package/dist/modules/catalog/schema.d.ts +0 -1193
  352. package/dist/modules/catalog/schema.d.ts.map +0 -1
  353. package/dist/modules/catalog/schema.js +0 -149
  354. package/dist/modules/catalog/schemas.d.ts +0 -81
  355. package/dist/modules/catalog/schemas.d.ts.map +0 -1
  356. package/dist/modules/catalog/schemas.js +0 -62
  357. package/dist/modules/catalog/service.d.ts +0 -160
  358. package/dist/modules/catalog/service.d.ts.map +0 -1
  359. package/dist/modules/catalog/service.js +0 -759
  360. package/dist/modules/customers/repository/index.d.ts +0 -47
  361. package/dist/modules/customers/repository/index.d.ts.map +0 -1
  362. package/dist/modules/customers/repository/index.js +0 -206
  363. package/dist/modules/customers/schema.d.ts +0 -560
  364. package/dist/modules/customers/schema.d.ts.map +0 -1
  365. package/dist/modules/customers/schema.js +0 -60
  366. package/dist/modules/customers/service.d.ts +0 -27
  367. package/dist/modules/customers/service.d.ts.map +0 -1
  368. package/dist/modules/customers/service.js +0 -106
  369. package/dist/modules/fulfillment/repository/index.d.ts +0 -63
  370. package/dist/modules/fulfillment/repository/index.d.ts.map +0 -1
  371. package/dist/modules/fulfillment/repository/index.js +0 -268
  372. package/dist/modules/fulfillment/schema.d.ts +0 -655
  373. package/dist/modules/fulfillment/schema.d.ts.map +0 -1
  374. package/dist/modules/fulfillment/schema.js +0 -83
  375. package/dist/modules/fulfillment/service.d.ts +0 -58
  376. package/dist/modules/fulfillment/service.d.ts.map +0 -1
  377. package/dist/modules/fulfillment/service.js +0 -338
  378. package/dist/modules/fulfillment/types.d.ts +0 -44
  379. package/dist/modules/fulfillment/types.d.ts.map +0 -1
  380. package/dist/modules/fulfillment/types.js +0 -1
  381. package/dist/modules/inventory/repository/index.d.ts +0 -81
  382. package/dist/modules/inventory/repository/index.d.ts.map +0 -1
  383. package/dist/modules/inventory/repository/index.js +0 -310
  384. package/dist/modules/inventory/schema.d.ts +0 -570
  385. package/dist/modules/inventory/schema.d.ts.map +0 -1
  386. package/dist/modules/inventory/schema.js +0 -69
  387. package/dist/modules/inventory/schemas.d.ts +0 -31
  388. package/dist/modules/inventory/schemas.d.ts.map +0 -1
  389. package/dist/modules/inventory/schemas.js +0 -28
  390. package/dist/modules/inventory/service.d.ts +0 -69
  391. package/dist/modules/inventory/service.d.ts.map +0 -1
  392. package/dist/modules/inventory/service.js +0 -283
  393. package/dist/modules/media/adapter.d.ts +0 -16
  394. package/dist/modules/media/adapter.d.ts.map +0 -1
  395. package/dist/modules/media/adapter.js +0 -1
  396. package/dist/modules/media/repository/index.d.ts +0 -35
  397. package/dist/modules/media/repository/index.d.ts.map +0 -1
  398. package/dist/modules/media/repository/index.js +0 -176
  399. package/dist/modules/media/schema.d.ts +0 -289
  400. package/dist/modules/media/schema.d.ts.map +0 -1
  401. package/dist/modules/media/schema.js +0 -35
  402. package/dist/modules/media/service.d.ts +0 -42
  403. package/dist/modules/media/service.d.ts.map +0 -1
  404. package/dist/modules/media/service.js +0 -89
  405. package/dist/modules/orders/repository/index.d.ts +0 -48
  406. package/dist/modules/orders/repository/index.d.ts.map +0 -1
  407. package/dist/modules/orders/repository/index.js +0 -199
  408. package/dist/modules/orders/schema.d.ts +0 -672
  409. package/dist/modules/orders/schema.d.ts.map +0 -1
  410. package/dist/modules/orders/schema.js +0 -63
  411. package/dist/modules/orders/service.d.ts +0 -85
  412. package/dist/modules/orders/service.d.ts.map +0 -1
  413. package/dist/modules/orders/service.js +0 -313
  414. package/dist/modules/orders/stale-order-cleanup.d.ts +0 -27
  415. package/dist/modules/orders/stale-order-cleanup.d.ts.map +0 -1
  416. package/dist/modules/orders/stale-order-cleanup.js +0 -55
  417. package/dist/modules/organization/service.d.ts +0 -53
  418. package/dist/modules/organization/service.d.ts.map +0 -1
  419. package/dist/modules/organization/service.js +0 -151
  420. package/dist/modules/payments/adapter.d.ts +0 -42
  421. package/dist/modules/payments/adapter.d.ts.map +0 -1
  422. package/dist/modules/payments/adapter.js +0 -1
  423. package/dist/modules/payments/repository/index.d.ts +0 -5
  424. package/dist/modules/payments/repository/index.d.ts.map +0 -1
  425. package/dist/modules/payments/repository/index.js +0 -1
  426. package/dist/modules/payments/service.d.ts +0 -23
  427. package/dist/modules/payments/service.d.ts.map +0 -1
  428. package/dist/modules/payments/service.js +0 -72
  429. package/dist/modules/pricing/repository/index.d.ts +0 -34
  430. package/dist/modules/pricing/repository/index.d.ts.map +0 -1
  431. package/dist/modules/pricing/repository/index.js +0 -176
  432. package/dist/modules/pricing/schema.d.ts +0 -565
  433. package/dist/modules/pricing/schema.d.ts.map +0 -1
  434. package/dist/modules/pricing/schema.js +0 -57
  435. package/dist/modules/pricing/schemas.d.ts +0 -37
  436. package/dist/modules/pricing/schemas.d.ts.map +0 -1
  437. package/dist/modules/pricing/schemas.js +0 -30
  438. package/dist/modules/pricing/service.d.ts +0 -62
  439. package/dist/modules/pricing/service.d.ts.map +0 -1
  440. package/dist/modules/pricing/service.js +0 -308
  441. package/dist/modules/promotions/repository/index.d.ts +0 -41
  442. package/dist/modules/promotions/repository/index.d.ts.map +0 -1
  443. package/dist/modules/promotions/repository/index.js +0 -204
  444. package/dist/modules/promotions/schema.d.ts +0 -427
  445. package/dist/modules/promotions/schema.d.ts.map +0 -1
  446. package/dist/modules/promotions/schema.js +0 -52
  447. package/dist/modules/promotions/schemas.d.ts +0 -33
  448. package/dist/modules/promotions/schemas.d.ts.map +0 -1
  449. package/dist/modules/promotions/schemas.js +0 -32
  450. package/dist/modules/promotions/service.d.ts +0 -80
  451. package/dist/modules/promotions/service.d.ts.map +0 -1
  452. package/dist/modules/promotions/service.js +0 -347
  453. package/dist/modules/search/adapter.d.ts +0 -51
  454. package/dist/modules/search/adapter.d.ts.map +0 -1
  455. package/dist/modules/search/adapter.js +0 -1
  456. package/dist/modules/search/hooks.d.ts +0 -8
  457. package/dist/modules/search/hooks.d.ts.map +0 -1
  458. package/dist/modules/search/hooks.js +0 -6
  459. package/dist/modules/search/repository/index.d.ts +0 -5
  460. package/dist/modules/search/repository/index.d.ts.map +0 -1
  461. package/dist/modules/search/repository/index.js +0 -1
  462. package/dist/modules/search/service.d.ts +0 -24
  463. package/dist/modules/search/service.d.ts.map +0 -1
  464. package/dist/modules/search/service.js +0 -217
  465. package/dist/modules/shipping/calculator.d.ts +0 -42
  466. package/dist/modules/shipping/calculator.d.ts.map +0 -1
  467. package/dist/modules/shipping/calculator.js +0 -91
  468. package/dist/modules/shipping/repository/index.d.ts +0 -5
  469. package/dist/modules/shipping/repository/index.d.ts.map +0 -1
  470. package/dist/modules/shipping/repository/index.js +0 -1
  471. package/dist/modules/shipping/service.d.ts +0 -28
  472. package/dist/modules/shipping/service.d.ts.map +0 -1
  473. package/dist/modules/shipping/service.js +0 -20
  474. package/dist/modules/tax/adapter.d.ts +0 -58
  475. package/dist/modules/tax/adapter.d.ts.map +0 -1
  476. package/dist/modules/tax/adapter.js +0 -1
  477. package/dist/modules/tax/repository/index.d.ts +0 -5
  478. package/dist/modules/tax/repository/index.d.ts.map +0 -1
  479. package/dist/modules/tax/repository/index.js +0 -1
  480. package/dist/modules/tax/service.d.ts +0 -19
  481. package/dist/modules/tax/service.d.ts.map +0 -1
  482. package/dist/modules/tax/service.js +0 -34
  483. package/dist/modules/webhooks/hook.d.ts +0 -13
  484. package/dist/modules/webhooks/hook.d.ts.map +0 -1
  485. package/dist/modules/webhooks/hook.js +0 -29
  486. package/dist/modules/webhooks/repository/index.d.ts +0 -40
  487. package/dist/modules/webhooks/repository/index.d.ts.map +0 -1
  488. package/dist/modules/webhooks/repository/index.js +0 -175
  489. package/dist/modules/webhooks/schema.d.ts +0 -404
  490. package/dist/modules/webhooks/schema.d.ts.map +0 -1
  491. package/dist/modules/webhooks/schema.js +0 -40
  492. package/dist/modules/webhooks/service.d.ts +0 -23
  493. package/dist/modules/webhooks/service.d.ts.map +0 -1
  494. package/dist/modules/webhooks/service.js +0 -92
  495. package/dist/modules/webhooks/signing.d.ts +0 -2
  496. package/dist/modules/webhooks/signing.d.ts.map +0 -1
  497. package/dist/modules/webhooks/signing.js +0 -5
  498. package/dist/modules/webhooks/ssrf-guard.d.ts +0 -19
  499. package/dist/modules/webhooks/ssrf-guard.d.ts.map +0 -1
  500. package/dist/modules/webhooks/ssrf-guard.js +0 -79
  501. package/dist/modules/webhooks/tasks.d.ts +0 -16
  502. package/dist/modules/webhooks/tasks.d.ts.map +0 -1
  503. package/dist/modules/webhooks/tasks.js +0 -35
  504. package/dist/modules/webhooks/worker.d.ts +0 -21
  505. package/dist/modules/webhooks/worker.d.ts.map +0 -1
  506. package/dist/modules/webhooks/worker.js +0 -113
  507. package/dist/runtime/commerce.d.ts +0 -110
  508. package/dist/runtime/commerce.d.ts.map +0 -1
  509. package/dist/runtime/commerce.js +0 -37
  510. package/dist/runtime/kernel.d.ts +0 -71
  511. package/dist/runtime/kernel.d.ts.map +0 -1
  512. package/dist/runtime/kernel.js +0 -306
  513. package/dist/runtime/logger.d.ts +0 -11
  514. package/dist/runtime/logger.d.ts.map +0 -1
  515. package/dist/runtime/logger.js +0 -32
  516. package/dist/runtime/shutdown.d.ts +0 -15
  517. package/dist/runtime/shutdown.d.ts.map +0 -1
  518. package/dist/runtime/shutdown.js +0 -34
  519. package/dist/test-utils/create-pglite-adapter.d.ts +0 -32
  520. package/dist/test-utils/create-pglite-adapter.d.ts.map +0 -1
  521. package/dist/test-utils/create-pglite-adapter.js +0 -107
  522. package/dist/test-utils/create-plugin-test-app.d.ts +0 -50
  523. package/dist/test-utils/create-plugin-test-app.d.ts.map +0 -1
  524. package/dist/test-utils/create-plugin-test-app.js +0 -74
  525. package/dist/test-utils/create-repository-test-harness.d.ts +0 -8
  526. package/dist/test-utils/create-repository-test-harness.d.ts.map +0 -1
  527. package/dist/test-utils/create-repository-test-harness.js +0 -7
  528. package/dist/test-utils/create-test-config.d.ts +0 -18
  529. package/dist/test-utils/create-test-config.d.ts.map +0 -1
  530. package/dist/test-utils/create-test-config.js +0 -172
  531. package/dist/test-utils/create-test-kernel.d.ts +0 -3
  532. package/dist/test-utils/create-test-kernel.d.ts.map +0 -1
  533. package/dist/test-utils/create-test-kernel.js +0 -5
  534. package/dist/test-utils/create-test-plugin-context.d.ts +0 -42
  535. package/dist/test-utils/create-test-plugin-context.d.ts.map +0 -1
  536. package/dist/test-utils/create-test-plugin-context.js +0 -46
  537. package/dist/test-utils/rest-api-test-utils.d.ts +0 -64
  538. package/dist/test-utils/rest-api-test-utils.d.ts.map +0 -1
  539. package/dist/test-utils/rest-api-test-utils.js +0 -207
  540. package/dist/test-utils/test-actors.d.ts +0 -15
  541. package/dist/test-utils/test-actors.d.ts.map +0 -1
  542. package/dist/test-utils/test-actors.js +0 -57
  543. package/dist/test-utils/typed-hooks.d.ts +0 -43
  544. package/dist/test-utils/typed-hooks.d.ts.map +0 -1
  545. package/dist/test-utils/typed-hooks.js +0 -35
  546. package/dist/testing.d.ts +0 -14
  547. package/dist/testing.d.ts.map +0 -1
  548. package/dist/testing.js +0 -13
  549. package/dist/tsconfig.tsbuildinfo +0 -1
  550. package/dist/types/commerce-types.d.ts +0 -34
  551. package/dist/types/commerce-types.d.ts.map +0 -1
  552. package/dist/types/commerce-types.js +0 -1
  553. package/dist/utils/id.d.ts +0 -2
  554. package/dist/utils/id.d.ts.map +0 -1
  555. package/dist/utils/id.js +0 -3
  556. package/dist/utils/logger.d.ts +0 -3
  557. package/dist/utils/logger.d.ts.map +0 -1
  558. package/dist/utils/logger.js +0 -16
  559. package/dist/utils/pagination.d.ts +0 -11
  560. package/dist/utils/pagination.d.ts.map +0 -1
  561. 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"}