@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,92 +0,0 @@
1
- import { resolveOrgId } from "../../auth/org.js";
2
- import { CommerceNotFoundError, CommerceValidationError } from "../../kernel/errors.js";
3
- import { Err, Ok } from "../../kernel/result.js";
4
- /**
5
- * Checks whether a URL points to a private/internal IP address.
6
- * Blocks: loopback (127.x), link-local (169.254.x), private (10.x, 172.16-31.x, 192.168.x),
7
- * cloud metadata (169.254.169.254, metadata.google.internal), and localhost.
8
- */
9
- function isPrivateUrl(urlStr) {
10
- try {
11
- const parsed = new URL(urlStr);
12
- // Strip IPv6 brackets: URL.hostname returns "[::1]" not "::1"
13
- const hostname = parsed.hostname.toLowerCase().replace(/^\[|\]$/g, "");
14
- // Loopback (IPv4 + IPv6)
15
- if (hostname === "localhost" || hostname === "127.0.0.1" || hostname === "::1")
16
- return true;
17
- if (hostname.endsWith(".localhost"))
18
- return true;
19
- // IPv6 loopback and link-local patterns
20
- if (hostname.startsWith("::ffff:"))
21
- return true; // IPv6-mapped IPv4 (e.g., ::ffff:127.0.0.1)
22
- if (hostname.startsWith("fe80:"))
23
- return true; // IPv6 link-local
24
- if (hostname === "::")
25
- return true; // Unspecified address
26
- // Cloud metadata endpoints
27
- if (hostname === "169.254.169.254")
28
- return true;
29
- if (hostname === "metadata.google.internal")
30
- return true;
31
- // Private IP ranges (RFC 1918 + link-local)
32
- const parts = hostname.split(".").map(Number);
33
- if (parts.length === 4 && parts.every((n) => !isNaN(n))) {
34
- const [a, b] = parts;
35
- if (a === 10)
36
- return true;
37
- if (a === 172 && b !== undefined && b >= 16 && b <= 31)
38
- return true;
39
- if (a === 192 && b === 168)
40
- return true;
41
- if (a === 169 && b === 254)
42
- return true;
43
- if (a === 127)
44
- return true; // Full 127.0.0.0/8 range
45
- if (a === 0)
46
- return true;
47
- }
48
- return false;
49
- }
50
- catch {
51
- return true; // Invalid URLs are blocked
52
- }
53
- }
54
- export class WebhookService {
55
- deps;
56
- repo;
57
- constructor(deps) {
58
- this.deps = deps;
59
- this.repo = deps.repository;
60
- }
61
- async createEndpoint(input, actor, ctx) {
62
- if (isPrivateUrl(input.url)) {
63
- return Err(new CommerceValidationError("Webhook URL must not point to a private or internal address."));
64
- }
65
- const orgId = resolveOrgId(actor ?? ctx?.actor ?? null);
66
- const endpoint = await this.repo.createEndpoint({
67
- organizationId: orgId,
68
- url: input.url,
69
- secret: input.secret,
70
- events: input.events,
71
- isActive: true,
72
- metadata: input.metadata ?? {},
73
- }, ctx);
74
- return Ok(endpoint);
75
- }
76
- async listEndpoints(ctx) {
77
- const endpoints = await this.repo.findAllEndpoints(ctx);
78
- return Ok(endpoints);
79
- }
80
- async deleteEndpoint(id, ctx) {
81
- const existing = await this.repo.findEndpointById(id, ctx);
82
- if (!existing) {
83
- return Err(new CommerceNotFoundError("Webhook endpoint not found."));
84
- }
85
- await this.repo.deleteEndpoint(id, ctx);
86
- return Ok(undefined);
87
- }
88
- async getEndpointsForEvent(eventName, ctx) {
89
- const endpoints = await this.repo.findEndpointsForEvent(eventName, ctx);
90
- return Ok(endpoints);
91
- }
92
- }
@@ -1,2 +0,0 @@
1
- export declare function signWebhookPayload(secret: string, payload: unknown): string;
2
- //# sourceMappingURL=signing.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"signing.d.ts","sourceRoot":"","sources":["../../../src/modules/webhooks/signing.ts"],"names":[],"mappings":"AAEA,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAG3E"}
@@ -1,5 +0,0 @@
1
- import { createHmac } from "node:crypto";
2
- export function signWebhookPayload(secret, payload) {
3
- const body = typeof payload === "string" ? payload : JSON.stringify(payload);
4
- return createHmac("sha256", secret).update(body).digest("hex");
5
- }
@@ -1,19 +0,0 @@
1
- /**
2
- * Shared SSRF prevention utilities.
3
- *
4
- * Used by both webhook delivery (DNS rebinding check) and connector URL
5
- * validation (store URL check) to reject private/internal IP addresses.
6
- */
7
- /**
8
- * Returns true if the given IP address falls within a private, loopback,
9
- * link-local, or otherwise non-routable range.
10
- */
11
- export declare function isPrivateIp(ip: string): boolean;
12
- /**
13
- * Checks whether a URL string points to a private/internal IP address or
14
- * hostname. This performs a string-level check only (no DNS resolution).
15
- *
16
- * For DNS rebinding protection, use `isPrivateIp` after resolving the hostname.
17
- */
18
- export declare function isPrivateUrl(urlStr: string): boolean;
19
- //# sourceMappingURL=ssrf-guard.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ssrf-guard.d.ts","sourceRoot":"","sources":["../../../src/modules/webhooks/ssrf-guard.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAY/C;AAmBD;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAsBpD"}
@@ -1,79 +0,0 @@
1
- /**
2
- * Shared SSRF prevention utilities.
3
- *
4
- * Used by both webhook delivery (DNS rebinding check) and connector URL
5
- * validation (store URL check) to reject private/internal IP addresses.
6
- */
7
- /**
8
- * Returns true if the given IP address falls within a private, loopback,
9
- * link-local, or otherwise non-routable range.
10
- */
11
- export function isPrivateIp(ip) {
12
- // IPv6 loopback / link-local / mapped
13
- if (ip === "::1" || ip === "::")
14
- return true;
15
- if (ip.startsWith("fe80:"))
16
- return true;
17
- // IPv6-mapped IPv4 (e.g. ::ffff:127.0.0.1) — extract the IPv4 portion
18
- const mappedMatch = ip.match(/^::ffff:(\d+\.\d+\.\d+\.\d+)$/i);
19
- if (mappedMatch) {
20
- return isPrivateIpv4(mappedMatch[1]);
21
- }
22
- return isPrivateIpv4(ip);
23
- }
24
- function isPrivateIpv4(ip) {
25
- const parts = ip.split(".").map(Number);
26
- if (parts.length !== 4 || parts.some((n) => isNaN(n)))
27
- return false;
28
- const [a, b] = parts;
29
- if (a === undefined || b === undefined)
30
- return false;
31
- if (a === 127)
32
- return true; // loopback 127.0.0.0/8
33
- if (a === 10)
34
- return true; // RFC 1918 class A
35
- if (a === 172 && b >= 16 && b <= 31)
36
- return true; // RFC 1918 class B
37
- if (a === 192 && b === 168)
38
- return true; // RFC 1918 class C
39
- if (a === 169 && b === 254)
40
- return true; // link-local / AWS IMDS
41
- if (a === 0)
42
- return true; // unspecified
43
- return false;
44
- }
45
- /**
46
- * Checks whether a URL string points to a private/internal IP address or
47
- * hostname. This performs a string-level check only (no DNS resolution).
48
- *
49
- * For DNS rebinding protection, use `isPrivateIp` after resolving the hostname.
50
- */
51
- export function isPrivateUrl(urlStr) {
52
- try {
53
- const parsed = new URL(urlStr);
54
- const hostname = parsed.hostname.toLowerCase().replace(/^\[|\]$/g, "");
55
- // Direct hostname matches
56
- if (hostname === "localhost" || hostname.endsWith(".localhost"))
57
- return true;
58
- if (hostname === "::1" || hostname === "::")
59
- return true;
60
- if (hostname.startsWith("::ffff:"))
61
- return true;
62
- if (hostname.startsWith("fe80:"))
63
- return true;
64
- if (hostname.endsWith(".local"))
65
- return true;
66
- if (hostname.endsWith(".internal"))
67
- return true;
68
- // Cloud metadata endpoints
69
- if (hostname === "169.254.169.254")
70
- return true;
71
- if (hostname === "metadata.google.internal")
72
- return true;
73
- // Check if hostname is a raw IP in private ranges
74
- return isPrivateIpv4(hostname);
75
- }
76
- catch {
77
- return true; // Invalid URLs are blocked
78
- }
79
- }
@@ -1,16 +0,0 @@
1
- import type { TaskDefinition } from "../../kernel/jobs/types.js";
2
- /**
3
- * Background task for async webhook delivery.
4
- *
5
- * Instead of blocking the HTTP response with inline webhook HTTP calls,
6
- * the deliverWebhooks hook enqueues this task. The job runner picks it up
7
- * and delivers asynchronously with retries.
8
- */
9
- export declare const webhookDeliveryTask: TaskDefinition<{
10
- endpointId: string;
11
- endpointUrl: string;
12
- endpointSecret: string;
13
- eventName: string;
14
- payload: unknown;
15
- }>;
16
- //# sourceMappingURL=tasks.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../../src/modules/webhooks/tasks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAIjE;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,EAAE,cAAc,CAAC;IAC/C,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB,CAkCA,CAAC"}
@@ -1,35 +0,0 @@
1
- import { WebhookDeliveryWorker } from "./worker.js";
2
- /**
3
- * Background task for async webhook delivery.
4
- *
5
- * Instead of blocking the HTTP response with inline webhook HTTP calls,
6
- * the deliverWebhooks hook enqueues this task. The job runner picks it up
7
- * and delivers asynchronously with retries.
8
- */
9
- export const webhookDeliveryTask = {
10
- slug: "webhooks/deliver",
11
- async handler({ input, ctx }) {
12
- const webhooksService = ctx.services.webhooks;
13
- // Build a minimal worker — the repository is needed for delivery tracking
14
- const repository = webhooksService?.repository;
15
- if (!repository) {
16
- ctx.logger.warn("Webhook delivery skipped: no webhooks repository available");
17
- return { output: {} };
18
- }
19
- const worker = new WebhookDeliveryWorker({ repository });
20
- await worker.deliver({
21
- endpoint: {
22
- id: input.endpointId,
23
- url: input.endpointUrl,
24
- secret: input.endpointSecret,
25
- },
26
- eventName: input.eventName,
27
- payload: input.payload,
28
- });
29
- return { output: {} };
30
- },
31
- retries: {
32
- attempts: 5,
33
- backoff: { type: "exponential", delay: 2000 },
34
- },
35
- };
@@ -1,21 +0,0 @@
1
- import type { WebhooksRepository } from "./repository/index.js";
2
- interface WorkerDeps {
3
- repository: WebhooksRepository;
4
- fetchImpl?: typeof fetch;
5
- }
6
- export declare class WebhookDeliveryWorker {
7
- private deps;
8
- private fetchImpl;
9
- constructor(deps: WorkerDeps);
10
- deliver(args: {
11
- endpoint: {
12
- id: string;
13
- url: string;
14
- secret: string;
15
- };
16
- eventName: string;
17
- payload: unknown;
18
- }): Promise<void>;
19
- }
20
- export {};
21
- //# sourceMappingURL=worker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../../src/modules/webhooks/worker.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AA+DhE,UAAU,UAAU;IAClB,UAAU,EAAE,kBAAkB,CAAC;IAC/B,SAAS,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAED,qBAAa,qBAAqB;IAGpB,OAAO,CAAC,IAAI;IAFxB,OAAO,CAAC,SAAS,CAAe;gBAEZ,IAAI,EAAE,UAAU;IAI9B,OAAO,CAAC,IAAI,EAAE;QAClB,QAAQ,EAAE;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,GAAG,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QACtD,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,OAAO,CAAC;KAClB,GAAG,OAAO,CAAC,IAAI,CAAC;CAoDlB"}
@@ -1,113 +0,0 @@
1
- import { signWebhookPayload } from "./signing.js";
2
- import { isPrivateIp } from "./ssrf-guard.js";
3
- /**
4
- * SSRF prevention: reject webhook URLs targeting private/internal hosts.
5
- * Blocks RFC 1918, loopback, link-local, and common internal domains.
6
- */
7
- const PRIVATE_HOST_PATTERNS = [
8
- /^127\./, // loopback
9
- /^10\./, // RFC 1918 class A
10
- /^172\.(1[6-9]|2[0-9]|3[01])\./, // RFC 1918 class B
11
- /^192\.168\./, // RFC 1918 class C
12
- /^169\.254\./, // link-local / AWS IMDS
13
- /^0\.0\.0\.0/, // unspecified
14
- /^localhost$/i,
15
- /\.local$/i,
16
- /\.internal$/i,
17
- ];
18
- function validateWebhookUrl(url) {
19
- const parsed = new URL(url);
20
- if (process.env.NODE_ENV === "production" && parsed.protocol !== "https:") {
21
- throw new Error("Webhook URLs must use HTTPS in production.");
22
- }
23
- const hostname = parsed.hostname;
24
- for (const pattern of PRIVATE_HOST_PATTERNS) {
25
- if (pattern.test(hostname)) {
26
- throw new Error(`Webhook URLs cannot target private hosts: ${hostname}`);
27
- }
28
- }
29
- }
30
- /**
31
- * Resolve the webhook URL hostname via DNS and verify the resolved IP is not
32
- * private. This closes the DNS rebinding gap where a hostname initially
33
- * resolves to a public IP but later rebinds to an internal address.
34
- */
35
- async function validateResolvedIp(url) {
36
- const { lookup } = await import("node:dns/promises");
37
- const parsed = new URL(url);
38
- const hostname = parsed.hostname.replace(/^\[|\]$/g, "");
39
- // Skip DNS resolution for raw IP addresses — they are already checked
40
- // by validateWebhookUrl via PRIVATE_HOST_PATTERNS.
41
- const isIpLiteral = /^[\d.]+$/.test(hostname) || hostname.includes(":");
42
- if (isIpLiteral)
43
- return;
44
- try {
45
- const { address } = await lookup(hostname);
46
- if (isPrivateIp(address)) {
47
- throw new Error(`Webhook URL hostname "${hostname}" resolved to private IP ${address}`);
48
- }
49
- }
50
- catch (err) {
51
- if (err instanceof Error && err.message.includes("resolved to private")) {
52
- throw err;
53
- }
54
- throw new Error(`Failed to resolve webhook URL hostname "${hostname}": ${err}`);
55
- }
56
- }
57
- export class WebhookDeliveryWorker {
58
- deps;
59
- fetchImpl;
60
- constructor(deps) {
61
- this.deps = deps;
62
- this.fetchImpl = deps.fetchImpl ?? fetch;
63
- }
64
- async deliver(args) {
65
- // SSRF prevention: validate URL string patterns + resolved DNS IP
66
- validateWebhookUrl(args.endpoint.url);
67
- await validateResolvedIp(args.endpoint.url);
68
- let attempt = 0;
69
- const maxAttempts = 3;
70
- while (attempt < maxAttempts) {
71
- attempt += 1;
72
- const signature = signWebhookPayload(args.endpoint.secret, args.payload);
73
- try {
74
- const response = await this.fetchImpl(args.endpoint.url, {
75
- method: "POST",
76
- headers: {
77
- "content-type": "application/json",
78
- "x-commerce-signature": signature,
79
- "x-commerce-event": args.eventName,
80
- },
81
- body: JSON.stringify(args.payload),
82
- signal: AbortSignal.timeout(10_000),
83
- });
84
- await this.deps.repository.createDelivery({
85
- endpointId: args.endpoint.id,
86
- eventName: args.eventName,
87
- payload: args.payload,
88
- statusCode: response.status,
89
- attemptCount: attempt,
90
- ...(response.ok ? { deliveredAt: new Date() } : {}),
91
- ...(!response.ok ? { failedAt: new Date() } : {}),
92
- ...(!response.ok && attempt < maxAttempts
93
- ? { nextRetryAt: new Date(Date.now() + 2 ** attempt * 1000) }
94
- : {}),
95
- });
96
- if (response.ok)
97
- return;
98
- }
99
- catch {
100
- await this.deps.repository.createDelivery({
101
- endpointId: args.endpoint.id,
102
- eventName: args.eventName,
103
- payload: args.payload,
104
- attemptCount: attempt,
105
- failedAt: new Date(),
106
- ...(attempt < maxAttempts
107
- ? { nextRetryAt: new Date(Date.now() + 2 ** attempt * 1000) }
108
- : {}),
109
- });
110
- }
111
- }
112
- }
113
- }
@@ -1,110 +0,0 @@
1
- import type { Actor } from "../auth/types.js";
2
- import type { CommerceConfig } from "../config/types.js";
3
- import type { Kernel } from "./kernel.js";
4
- import { type AuthInstance } from "../auth/setup.js";
5
- import { type Logger } from "./logger.js";
6
- import { type CommerceLocalAPI } from "../kernel/local-api.js";
7
- /**
8
- * The commerce instance returned by `createCommerce()`.
9
- *
10
- * This is the headless, framework-agnostic entry point.
11
- * No HTTP server, no Hono — just typed services and a local API.
12
- *
13
- * ## Usage with Next.js App Router:
14
- *
15
- * ```typescript
16
- * // lib/commerce.ts
17
- * import { createCommerce } from "@unifiedcommerce/core";
18
- * import config from "../commerce.config.js";
19
- *
20
- * export const commerce = await createCommerce(config);
21
- *
22
- * // app/products/page.tsx (Server Component)
23
- * import { commerce } from "@/lib/commerce";
24
- *
25
- * export default async function ProductsPage() {
26
- * const products = await commerce.api.catalog.list({ limit: 20 });
27
- * if (!products.ok) return <div>Error</div>;
28
- * return <ProductGrid items={products.value.items} />;
29
- * }
30
- * ```
31
- *
32
- * ## Usage with TanStack Start:
33
- *
34
- * ```typescript
35
- * // app/routes/products.tsx
36
- * import { createServerFn } from "@tanstack/start";
37
- * import { commerce } from "../lib/commerce.js";
38
- *
39
- * const getProducts = createServerFn("GET", async () => {
40
- * return commerce.api.catalog.list({ limit: 20 });
41
- * });
42
- * ```
43
- *
44
- * ## Usage with SvelteKit:
45
- *
46
- * ```typescript
47
- * // src/lib/server/commerce.ts
48
- * import { createCommerce } from "@unifiedcommerce/core";
49
- * import config from "./commerce.config.js";
50
- * export const commerce = await createCommerce(config);
51
- *
52
- * // src/routes/products/+page.server.ts
53
- * import { commerce } from "$lib/server/commerce";
54
- * export async function load() {
55
- * const products = await commerce.api.catalog.list({ limit: 20 });
56
- * return { products: products.ok ? products.value : { items: [] } };
57
- * }
58
- * ```
59
- */
60
- export interface CommerceInstance {
61
- /** Proxy-based local API — auto-injects actor/tx to every service call */
62
- api: CommerceLocalAPI;
63
- /** Raw kernel for advanced usage (hooks, database, config) */
64
- kernel: Kernel;
65
- /** Drizzle database instance for direct queries */
66
- db: unknown;
67
- /** Auth instance (Better Auth) for session management */
68
- auth: AuthInstance;
69
- /** Logger */
70
- logger: Logger;
71
- /**
72
- * Create a scoped API for a specific user/actor.
73
- * Use this in authenticated routes to scope data access.
74
- *
75
- * ```typescript
76
- * // In a Next.js server action:
77
- * const userApi = commerce.withActor({
78
- * type: "user", userId: session.userId, ...
79
- * });
80
- * const orders = await userApi.orders.list({ limit: 10 });
81
- * // Only returns orders for this user's org
82
- * ```
83
- */
84
- withActor(actor: Actor): CommerceLocalAPI;
85
- /**
86
- * Create a scoped API within a database transaction.
87
- *
88
- * ```typescript
89
- * await commerce.kernel.database.transaction(async (tx) => {
90
- * const txApi = commerce.withTransaction(tx, actor);
91
- * await txApi.inventory.adjust({ entityId, adjustment: -1, reason: "sold" });
92
- * await txApi.orders.create({ ... });
93
- * });
94
- * ```
95
- */
96
- withTransaction(tx: unknown, actor?: Actor | null): CommerceLocalAPI;
97
- }
98
- /**
99
- * Create a headless commerce instance.
100
- *
101
- * This is the primary entry point for using UnifiedCommerce without an HTTP server.
102
- * It initializes the kernel, database, auth, and returns a local API that works
103
- * exactly like the REST API but without HTTP overhead.
104
- *
105
- * The Hono server (`createServer`) is optional — use it only when you need
106
- * a standalone HTTP API. For Next.js, TanStack Start, SvelteKit, Nuxt, etc.,
107
- * use `createCommerce()` directly.
108
- */
109
- export declare function createCommerce(config: CommerceConfig): Promise<CommerceInstance>;
110
- //# sourceMappingURL=commerce.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"commerce.d.ts","sourceRoot":"","sources":["../../src/runtime/commerce.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAgB,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,EAAkB,KAAK,gBAAgB,EAAwB,MAAM,wBAAwB,CAAC;AAErG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,GAAG,EAAE,gBAAgB,CAAC;IAEtB,8DAA8D;IAC9D,MAAM,EAAE,MAAM,CAAC;IAEf,mDAAmD;IACnD,EAAE,EAAE,OAAO,CAAC;IAEZ,yDAAyD;IACzD,IAAI,EAAE,YAAY,CAAC;IAEnB,aAAa;IACb,MAAM,EAAE,MAAM,CAAC;IAEf;;;;;;;;;;;;OAYG;IACH,SAAS,CAAC,KAAK,EAAE,KAAK,GAAG,gBAAgB,CAAC;IAE1C;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,KAAK,GAAG,IAAI,GAAG,gBAAgB,CAAC;CACtE;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,gBAAgB,CAAC,CAwB3B"}
@@ -1,37 +0,0 @@
1
- import { createKernel } from "./kernel.js";
2
- import { ensureDefaultOrg } from "../auth/org.js";
3
- import { createAuth } from "../auth/setup.js";
4
- import { createLogger } from "./logger.js";
5
- import { createLocalAPI } from "../kernel/local-api.js";
6
- /**
7
- * Create a headless commerce instance.
8
- *
9
- * This is the primary entry point for using UnifiedCommerce without an HTTP server.
10
- * It initializes the kernel, database, auth, and returns a local API that works
11
- * exactly like the REST API but without HTTP overhead.
12
- *
13
- * The Hono server (`createServer`) is optional — use it only when you need
14
- * a standalone HTTP API. For Next.js, TanStack Start, SvelteKit, Nuxt, etc.,
15
- * use `createCommerce()` directly.
16
- */
17
- export async function createCommerce(config) {
18
- const kernel = createKernel(config);
19
- await ensureDefaultOrg(kernel.database.db);
20
- const auth = createAuth(kernel.database, config);
21
- const logger = createLogger(config);
22
- // Default API: no actor (public access), no transaction
23
- const api = createLocalAPI(kernel);
24
- return {
25
- api,
26
- kernel,
27
- db: kernel.database.db,
28
- auth,
29
- logger,
30
- withActor(actor) {
31
- return createLocalAPI(kernel, { actor });
32
- },
33
- withTransaction(tx, actor) {
34
- return createLocalAPI(kernel, { actor: actor ?? null, tx });
35
- },
36
- };
37
- }
@@ -1,71 +0,0 @@
1
- import type { CommerceConfig, MCPTool } from "../config/types.js";
2
- import { HookRegistry } from "../kernel/hooks/registry.js";
3
- import { type DatabaseAdapter } from "../kernel/database/adapter.js";
4
- import { CatalogServiceImpl } from "../modules/catalog/service.js";
5
- import { InventoryService } from "../modules/inventory/service.js";
6
- import { MediaService } from "../modules/media/service.js";
7
- import { CartService } from "../modules/cart/service.js";
8
- import { OrderService } from "../modules/orders/service.js";
9
- import { PaymentsService } from "../modules/payments/service.js";
10
- import { FulfillmentService } from "../modules/fulfillment/service.js";
11
- import { CustomerService } from "../modules/customers/service.js";
12
- import { WebhookService } from "../modules/webhooks/service.js";
13
- import { AnalyticsService } from "../modules/analytics/service.js";
14
- import { PricingService } from "../modules/pricing/service.js";
15
- import { PromotionService } from "../modules/promotions/service.js";
16
- import { TaxService } from "../modules/tax/service.js";
17
- import { ShippingService } from "../modules/shipping/service.js";
18
- import { SearchService } from "../modules/search/service.js";
19
- import { type AuditService } from "../modules/audit/service.js";
20
- import { OrganizationService } from "../modules/organization/service.js";
21
- import { createLogger } from "../utils/logger.js";
22
- export interface WebhookDeliveryPayload {
23
- endpoint: {
24
- id: string;
25
- url: string;
26
- secret: string;
27
- };
28
- eventName: string;
29
- payload: unknown;
30
- }
31
- export interface Kernel {
32
- config: CommerceConfig;
33
- hooks: HookRegistry;
34
- database: DatabaseAdapter;
35
- services: {
36
- catalog: CatalogServiceImpl;
37
- inventory: InventoryService;
38
- media: MediaService;
39
- cart: CartService;
40
- orders: OrderService;
41
- payments: PaymentsService;
42
- fulfillment: FulfillmentService;
43
- customers: CustomerService;
44
- webhooks: WebhookService & {
45
- enqueueDelivery(payload: WebhookDeliveryPayload): Promise<void>;
46
- };
47
- analytics: AnalyticsService;
48
- pricing: PricingService;
49
- promotions: PromotionService;
50
- tax: TaxService;
51
- shipping: ShippingService;
52
- search: SearchService;
53
- audit: AuditService;
54
- email: CommerceConfig["email"];
55
- organization: OrganizationService;
56
- };
57
- mcpTools: MCPTool[];
58
- logger: ReturnType<typeof createLogger>;
59
- getMCPActor(): {
60
- type: "api_key";
61
- userId: string;
62
- email: null;
63
- name: string;
64
- vendorId: null;
65
- organizationId: string;
66
- role: string;
67
- permissions: string[];
68
- };
69
- }
70
- export declare function createKernel(config: CommerceConfig): Kernel;
71
- //# sourceMappingURL=kernel.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../../src/runtime/kernel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,OAAO,EACR,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,YAAY,EAAoB,MAAM,6BAA6B,CAAC;AAC7E,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAYnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AAGnE,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAEL,KAAK,YAAY,EAClB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAYlD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IACtD,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,MAAM;IACrB,MAAM,EAAE,cAAc,CAAC;IACvB,KAAK,EAAE,YAAY,CAAC;IACpB,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE;QACR,OAAO,EAAE,kBAAkB,CAAC;QAC5B,SAAS,EAAE,gBAAgB,CAAC;QAC5B,KAAK,EAAE,YAAY,CAAC;QACpB,IAAI,EAAE,WAAW,CAAC;QAClB,MAAM,EAAE,YAAY,CAAC;QACrB,QAAQ,EAAE,eAAe,CAAC;QAC1B,WAAW,EAAE,kBAAkB,CAAC;QAChC,SAAS,EAAE,eAAe,CAAC;QAC3B,QAAQ,EAAE,cAAc,GAAG;YACzB,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;SACjE,CAAC;QACF,SAAS,EAAE,gBAAgB,CAAC;QAC5B,OAAO,EAAE,cAAc,CAAC;QACxB,UAAU,EAAE,gBAAgB,CAAC;QAC7B,GAAG,EAAE,UAAU,CAAC;QAChB,QAAQ,EAAE,eAAe,CAAC;QAC1B,MAAM,EAAE,aAAa,CAAC;QACtB,KAAK,EAAE,YAAY,CAAC;QACpB,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;QAC/B,YAAY,EAAE,mBAAmB,CAAC;KACnC,CAAC;IACF,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;IACxC,WAAW,IAAI;QACb,IAAI,EAAE,SAAS,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,KAAK,EAAE,IAAI,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,IAAI,CAAC;QACf,cAAc,EAAE,MAAM,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,CAAC;CACH;AA8FD,wBAAgB,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,MAAM,CAsO3D"}