@porulle/core 0.64.0 → 0.65.1

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 (463) hide show
  1. package/dist/adapters/email-render.d.ts +18 -0
  2. package/dist/adapters/email-render.d.ts.map +1 -0
  3. package/dist/adapters/email-render.js +37 -0
  4. package/dist/auth/actor.d.ts.map +1 -1
  5. package/dist/auth/actor.js +11 -0
  6. package/dist/auth/auth-failure.d.ts +0 -2
  7. package/dist/auth/auth-failure.d.ts.map +1 -1
  8. package/dist/auth/auth-failure.js +0 -4
  9. package/dist/auth/middleware.d.ts +0 -1
  10. package/dist/auth/middleware.d.ts.map +1 -1
  11. package/dist/auth/middleware.js +7 -6
  12. package/dist/auth/permissions.d.ts +2 -0
  13. package/dist/auth/permissions.d.ts.map +1 -1
  14. package/dist/auth/permissions.js +8 -6
  15. package/dist/auth/role-authority.d.ts +0 -1
  16. package/dist/auth/role-authority.d.ts.map +1 -1
  17. package/dist/auth/role-authority.js +1 -8
  18. package/dist/auth/setup.d.ts.map +1 -1
  19. package/dist/auth/setup.js +5 -0
  20. package/dist/auth/strict-org-resolution.d.ts +8 -1
  21. package/dist/auth/strict-org-resolution.d.ts.map +1 -1
  22. package/dist/auth/strict-org-resolution.js +9 -19
  23. package/dist/auth/system-actor.d.ts +3 -2
  24. package/dist/auth/system-actor.d.ts.map +1 -1
  25. package/dist/auth/system-actor.js +3 -3
  26. package/dist/config/defaults.d.ts.map +1 -1
  27. package/dist/config/defaults.js +3 -20
  28. package/dist/config/define-config.d.ts +2 -2
  29. package/dist/config/define-config.d.ts.map +1 -1
  30. package/dist/config/define-config.js +3 -2
  31. package/dist/config/types.d.ts +2 -3
  32. package/dist/config/types.d.ts.map +1 -1
  33. package/dist/hooks/checkout.d.ts +2 -15
  34. package/dist/hooks/checkout.d.ts.map +1 -1
  35. package/dist/hooks/checkout.js +2 -51
  36. package/dist/index.d.ts +11 -19
  37. package/dist/index.d.ts.map +1 -1
  38. package/dist/index.js +11 -12
  39. package/dist/interfaces/rest/router.js +3 -3
  40. package/dist/interfaces/rest/routes/admin/compensation-failures.d.ts.map +1 -1
  41. package/dist/interfaces/rest/routes/admin/compensation-failures.js +5 -5
  42. package/dist/interfaces/rest/routes/admin/entity-field-definitions.js +5 -5
  43. package/dist/interfaces/rest/routes/admin/staff.d.ts.map +1 -1
  44. package/dist/interfaces/rest/routes/admin/staff.js +2 -3
  45. package/dist/interfaces/rest/routes/analytics.d.ts.map +1 -1
  46. package/dist/interfaces/rest/routes/analytics.js +2 -2
  47. package/dist/interfaces/rest/routes/carts.d.ts.map +1 -1
  48. package/dist/interfaces/rest/routes/carts.js +12 -12
  49. package/dist/interfaces/rest/routes/catalog.js +37 -37
  50. package/dist/interfaces/rest/routes/checkout.d.ts.map +1 -1
  51. package/dist/interfaces/rest/routes/checkout.js +9 -10
  52. package/dist/interfaces/rest/routes/customers.d.ts.map +1 -1
  53. package/dist/interfaces/rest/routes/customers.js +12 -12
  54. package/dist/interfaces/rest/routes/documents.d.ts.map +1 -1
  55. package/dist/interfaces/rest/routes/documents.js +9 -9
  56. package/dist/interfaces/rest/routes/inventory.d.ts.map +1 -1
  57. package/dist/interfaces/rest/routes/inventory.js +8 -8
  58. package/dist/interfaces/rest/routes/media.d.ts.map +1 -1
  59. package/dist/interfaces/rest/routes/media.js +5 -5
  60. package/dist/interfaces/rest/routes/orders.d.ts.map +1 -1
  61. package/dist/interfaces/rest/routes/orders.js +32 -32
  62. package/dist/interfaces/rest/routes/payments.d.ts.map +1 -1
  63. package/dist/interfaces/rest/routes/payments.js +2 -2
  64. package/dist/interfaces/rest/routes/pricing.d.ts.map +1 -1
  65. package/dist/interfaces/rest/routes/pricing.js +8 -8
  66. package/dist/interfaces/rest/routes/promotions.d.ts.map +1 -1
  67. package/dist/interfaces/rest/routes/promotions.js +7 -7
  68. package/dist/interfaces/rest/routes/search.d.ts.map +1 -1
  69. package/dist/interfaces/rest/routes/search.js +3 -3
  70. package/dist/interfaces/rest/routes/settings.d.ts.map +1 -1
  71. package/dist/interfaces/rest/routes/settings.js +4 -4
  72. package/dist/interfaces/rest/routes/shipping.d.ts.map +1 -1
  73. package/dist/interfaces/rest/routes/shipping.js +9 -9
  74. package/dist/interfaces/rest/routes/tax.d.ts.map +1 -1
  75. package/dist/interfaces/rest/routes/tax.js +9 -9
  76. package/dist/interfaces/rest/routes/webhooks.d.ts.map +1 -1
  77. package/dist/interfaces/rest/routes/webhooks.js +4 -4
  78. package/dist/interfaces/rest/utils.d.ts +1 -1
  79. package/dist/interfaces/rest/utils.d.ts.map +1 -1
  80. package/dist/interfaces/rest/utils.js +4 -13
  81. package/dist/jobs.d.ts +1 -0
  82. package/dist/jobs.d.ts.map +1 -1
  83. package/dist/jobs.js +1 -0
  84. package/dist/kernel/database/adapter.d.ts +9 -0
  85. package/dist/kernel/database/adapter.d.ts.map +1 -1
  86. package/dist/kernel/database/adapter.js +1 -1
  87. package/dist/kernel/database/migrate.d.ts +0 -4
  88. package/dist/kernel/database/migrate.d.ts.map +1 -1
  89. package/dist/kernel/database/migrate.js +2 -14
  90. package/dist/kernel/database/pglite-transaction.d.ts +28 -0
  91. package/dist/kernel/database/pglite-transaction.d.ts.map +1 -0
  92. package/dist/kernel/database/pglite-transaction.js +52 -0
  93. package/dist/kernel/database/tx-context.d.ts +0 -1
  94. package/dist/kernel/database/tx-context.d.ts.map +1 -1
  95. package/dist/kernel/database/tx-context.js +2 -14
  96. package/dist/kernel/database/unique-violation.d.ts +3 -0
  97. package/dist/kernel/database/unique-violation.d.ts.map +1 -0
  98. package/dist/kernel/database/unique-violation.js +9 -0
  99. package/dist/kernel/error-mapper.d.ts.map +1 -1
  100. package/dist/kernel/error-mapper.js +1 -0
  101. package/dist/kernel/errors.d.ts +12 -0
  102. package/dist/kernel/errors.d.ts.map +1 -1
  103. package/dist/kernel/errors.js +16 -0
  104. package/dist/kernel/hooks/create-context.d.ts +18 -9
  105. package/dist/kernel/hooks/create-context.d.ts.map +1 -1
  106. package/dist/kernel/hooks/create-context.js +24 -3
  107. package/dist/kernel/hooks/registry.d.ts +0 -19
  108. package/dist/kernel/hooks/registry.d.ts.map +1 -1
  109. package/dist/kernel/hooks/registry.js +0 -32
  110. package/dist/kernel/jobs/drizzle-adapter.d.ts.map +1 -1
  111. package/dist/kernel/jobs/drizzle-adapter.js +3 -10
  112. package/dist/kernel/jobs/prepare-enqueue.d.ts +20 -0
  113. package/dist/kernel/jobs/prepare-enqueue.d.ts.map +1 -0
  114. package/dist/kernel/jobs/prepare-enqueue.js +24 -0
  115. package/dist/kernel/jobs/types.d.ts +0 -4
  116. package/dist/kernel/jobs/types.d.ts.map +1 -1
  117. package/dist/kernel/jobs/types.js +0 -4
  118. package/dist/kernel/local-api.d.ts +0 -33
  119. package/dist/kernel/local-api.d.ts.map +1 -1
  120. package/dist/kernel/local-api.js +0 -36
  121. package/dist/kernel/plugin/manifest.d.ts +3 -5
  122. package/dist/kernel/plugin/manifest.d.ts.map +1 -1
  123. package/dist/modules/analytics/service.d.ts +0 -6
  124. package/dist/modules/analytics/service.d.ts.map +1 -1
  125. package/dist/modules/analytics/service.js +0 -32
  126. package/dist/modules/cart/service.d.ts.map +1 -1
  127. package/dist/modules/cart/service.js +5 -17
  128. package/dist/modules/catalog/entity-service.d.ts.map +1 -1
  129. package/dist/modules/catalog/entity-service.js +9 -17
  130. package/dist/modules/catalog/import-service.d.ts.map +1 -1
  131. package/dist/modules/catalog/import-service.js +4 -13
  132. package/dist/modules/catalog/service.d.ts +1 -81
  133. package/dist/modules/catalog/service.d.ts.map +1 -1
  134. package/dist/modules/catalog/service.js +1 -8
  135. package/dist/modules/customers/service.d.ts.map +1 -1
  136. package/dist/modules/customers/service.js +5 -17
  137. package/dist/modules/documents/render.d.ts +0 -3
  138. package/dist/modules/documents/render.d.ts.map +1 -1
  139. package/dist/modules/documents/render.js +2 -17
  140. package/dist/modules/fulfillment/service.d.ts.map +1 -1
  141. package/dist/modules/fulfillment/service.js +8 -26
  142. package/dist/modules/inventory/service.d.ts.map +1 -1
  143. package/dist/modules/inventory/service.js +3 -20
  144. package/dist/modules/media/service.d.ts.map +1 -1
  145. package/dist/modules/media/service.js +2 -10
  146. package/dist/modules/orders/quote.d.ts.map +1 -1
  147. package/dist/modules/orders/quote.js +1 -2
  148. package/dist/modules/orders/service.d.ts.map +1 -1
  149. package/dist/modules/orders/service.js +4 -17
  150. package/dist/modules/pricing/service.d.ts.map +1 -1
  151. package/dist/modules/pricing/service.js +7 -18
  152. package/dist/modules/promotions/service.d.ts.map +1 -1
  153. package/dist/modules/promotions/service.js +4 -16
  154. package/dist/modules/tax/service.d.ts +1 -3
  155. package/dist/modules/tax/service.d.ts.map +1 -1
  156. package/dist/modules/tax/service.js +16 -52
  157. package/dist/modules/webhooks/hook.d.ts.map +1 -1
  158. package/dist/modules/webhooks/hook.js +3 -2
  159. package/dist/modules/webhooks/service.d.ts.map +1 -1
  160. package/dist/modules/webhooks/service.js +1 -50
  161. package/dist/runtime/commerce.d.ts.map +1 -1
  162. package/dist/runtime/commerce.js +4 -11
  163. package/dist/runtime/kernel-modules.d.ts +38 -1799
  164. package/dist/runtime/kernel-modules.d.ts.map +1 -1
  165. package/dist/runtime/kernel-modules.js +160 -66
  166. package/dist/runtime/kernel-types.d.ts +3 -15
  167. package/dist/runtime/kernel-types.d.ts.map +1 -1
  168. package/dist/runtime/kernel-types.js +0 -10
  169. package/dist/runtime/kernel.d.ts +2 -3
  170. package/dist/runtime/kernel.d.ts.map +1 -1
  171. package/dist/runtime/kernel.js +10 -51
  172. package/dist/runtime/server.d.ts +1 -1
  173. package/dist/runtime/server.d.ts.map +1 -1
  174. package/dist/test-utils/create-pglite-adapter.d.ts.map +1 -1
  175. package/dist/test-utils/create-pglite-adapter.js +5 -62
  176. package/dist/test-utils/create-plugin-test-app.d.ts.map +1 -1
  177. package/dist/test-utils/create-plugin-test-app.js +13 -32
  178. package/dist/test-utils/rest-api-test-utils.d.ts +0 -12
  179. package/dist/test-utils/rest-api-test-utils.d.ts.map +1 -1
  180. package/dist/test-utils/rest-api-test-utils.js +3 -70
  181. package/dist/test-utils/test-actors.d.ts +9 -0
  182. package/dist/test-utils/test-actors.d.ts.map +1 -1
  183. package/dist/test-utils/test-actors.js +62 -0
  184. package/dist/testing.d.ts +1 -4
  185. package/dist/testing.d.ts.map +1 -1
  186. package/dist/testing.js +1 -4
  187. package/dist/utils/escape-html.d.ts +3 -0
  188. package/dist/utils/escape-html.d.ts.map +1 -0
  189. package/dist/utils/escape-html.js +9 -0
  190. package/dist/utils/id.d.ts +0 -1
  191. package/dist/utils/id.d.ts.map +1 -1
  192. package/dist/utils/id.js +0 -3
  193. package/dist/utils/logger.d.ts +1 -1
  194. package/dist/utils/logger.d.ts.map +1 -1
  195. package/dist/utils/logger.js +1 -1
  196. package/dist/utils/money.d.ts +13 -0
  197. package/dist/utils/money.d.ts.map +1 -0
  198. package/dist/utils/money.js +58 -0
  199. package/package.json +26 -29
  200. package/src/adapters/email-render.ts +63 -0
  201. package/src/auth/actor.ts +14 -0
  202. package/src/auth/auth-failure.ts +0 -5
  203. package/src/auth/middleware.ts +7 -6
  204. package/src/auth/permissions.ts +12 -6
  205. package/src/auth/role-authority.ts +1 -10
  206. package/src/auth/setup.ts +8 -0
  207. package/src/auth/strict-org-resolution.ts +9 -16
  208. package/src/auth/system-actor.ts +3 -3
  209. package/src/config/defaults.ts +3 -20
  210. package/src/config/define-config.ts +5 -4
  211. package/src/config/types.ts +2 -2
  212. package/src/hooks/checkout.ts +2 -86
  213. package/src/index.ts +9 -36
  214. package/src/interfaces/rest/router.ts +3 -3
  215. package/src/interfaces/rest/routes/admin/compensation-failures.ts +5 -5
  216. package/src/interfaces/rest/routes/admin/entity-field-definitions.ts +5 -5
  217. package/src/interfaces/rest/routes/admin/staff.ts +2 -3
  218. package/src/interfaces/rest/routes/analytics.ts +2 -2
  219. package/src/interfaces/rest/routes/carts.ts +12 -12
  220. package/src/interfaces/rest/routes/catalog.ts +37 -37
  221. package/src/interfaces/rest/routes/checkout.ts +8 -10
  222. package/src/interfaces/rest/routes/customers.ts +12 -12
  223. package/src/interfaces/rest/routes/documents.ts +9 -9
  224. package/src/interfaces/rest/routes/inventory.ts +8 -8
  225. package/src/interfaces/rest/routes/media.ts +5 -5
  226. package/src/interfaces/rest/routes/orders.ts +32 -32
  227. package/src/interfaces/rest/routes/payments.ts +2 -2
  228. package/src/interfaces/rest/routes/pricing.ts +8 -8
  229. package/src/interfaces/rest/routes/promotions.ts +7 -7
  230. package/src/interfaces/rest/routes/search.ts +3 -3
  231. package/src/interfaces/rest/routes/settings.ts +4 -4
  232. package/src/interfaces/rest/routes/shipping.ts +9 -9
  233. package/src/interfaces/rest/routes/tax.ts +9 -9
  234. package/src/interfaces/rest/routes/webhooks.ts +4 -4
  235. package/src/interfaces/rest/utils.ts +4 -14
  236. package/src/jobs.ts +2 -1
  237. package/src/kernel/database/adapter.ts +1 -1
  238. package/src/kernel/database/migrate.ts +2 -17
  239. package/src/kernel/database/pglite-transaction.ts +61 -0
  240. package/src/kernel/database/tx-context.ts +2 -20
  241. package/src/kernel/database/unique-violation.ts +7 -0
  242. package/src/kernel/error-mapper.ts +1 -0
  243. package/src/kernel/errors.ts +18 -0
  244. package/src/kernel/hooks/create-context.ts +38 -8
  245. package/src/kernel/hooks/registry.ts +0 -37
  246. package/src/kernel/jobs/drizzle-adapter.ts +4 -15
  247. package/src/kernel/jobs/prepare-enqueue.ts +42 -0
  248. package/src/kernel/jobs/types.ts +0 -5
  249. package/src/kernel/local-api.ts +0 -44
  250. package/src/kernel/plugin/manifest.ts +3 -5
  251. package/src/modules/analytics/service.ts +0 -36
  252. package/src/modules/cart/service.ts +6 -29
  253. package/src/modules/catalog/entity-service.ts +9 -19
  254. package/src/modules/catalog/import-service.ts +4 -11
  255. package/src/modules/catalog/service.ts +2 -286
  256. package/src/modules/customers/service.ts +6 -27
  257. package/src/modules/documents/render.ts +2 -19
  258. package/src/modules/fulfillment/service.ts +8 -27
  259. package/src/modules/inventory/service.ts +3 -21
  260. package/src/modules/media/service.ts +2 -8
  261. package/src/modules/orders/quote.ts +1 -2
  262. package/src/modules/orders/service.ts +5 -30
  263. package/src/modules/pricing/service.ts +12 -30
  264. package/src/modules/promotions/service.ts +5 -28
  265. package/src/modules/tax/service.ts +20 -48
  266. package/src/modules/webhooks/hook.ts +3 -2
  267. package/src/modules/webhooks/service.ts +1 -42
  268. package/src/runtime/commerce.ts +4 -11
  269. package/src/runtime/kernel-modules.ts +191 -67
  270. package/src/runtime/kernel-types.ts +3 -26
  271. package/src/runtime/kernel.ts +11 -66
  272. package/src/runtime/server.ts +1 -3
  273. package/src/test-utils/create-pglite-adapter.ts +5 -67
  274. package/src/test-utils/create-plugin-test-app.ts +13 -52
  275. package/src/test-utils/rest-api-test-utils.ts +3 -70
  276. package/src/test-utils/test-actors.ts +66 -0
  277. package/src/testing.ts +1 -3
  278. package/src/utils/escape-html.ts +9 -0
  279. package/src/utils/id.ts +0 -4
  280. package/src/utils/logger.ts +1 -1
  281. package/src/utils/money.ts +62 -0
  282. package/dist/auth/access.d.ts +0 -101
  283. package/dist/auth/access.d.ts.map +0 -1
  284. package/dist/auth/access.js +0 -128
  285. package/dist/generated/plugin-manifest.d.ts +0 -51
  286. package/dist/generated/plugin-manifest.d.ts.map +0 -1
  287. package/dist/generated/plugin-manifest.js +0 -21
  288. package/dist/kernel/factory/repository-factory.d.ts +0 -71
  289. package/dist/kernel/factory/repository-factory.d.ts.map +0 -1
  290. package/dist/kernel/factory/repository-factory.js +0 -138
  291. package/dist/kernel/http-error.d.ts +0 -30
  292. package/dist/kernel/http-error.d.ts.map +0 -1
  293. package/dist/kernel/http-error.js +0 -35
  294. package/dist/kernel/jobs/builtin-job-tasks.d.ts +0 -3
  295. package/dist/kernel/jobs/builtin-job-tasks.d.ts.map +0 -1
  296. package/dist/kernel/jobs/builtin-job-tasks.js +0 -6
  297. package/dist/kernel/module/define.d.ts +0 -21
  298. package/dist/kernel/module/define.d.ts.map +0 -1
  299. package/dist/kernel/module/define.js +0 -3
  300. package/dist/kernel/module/index.d.ts +0 -4
  301. package/dist/kernel/module/index.d.ts.map +0 -1
  302. package/dist/kernel/module/index.js +0 -2
  303. package/dist/kernel/module/topo-sort.d.ts +0 -7
  304. package/dist/kernel/module/topo-sort.d.ts.map +0 -1
  305. package/dist/kernel/module/topo-sort.js +0 -89
  306. package/dist/kernel/query/executor.d.ts +0 -21
  307. package/dist/kernel/query/executor.d.ts.map +0 -1
  308. package/dist/kernel/query/executor.js +0 -128
  309. package/dist/kernel/query/registry.d.ts +0 -33
  310. package/dist/kernel/query/registry.d.ts.map +0 -1
  311. package/dist/kernel/query/registry.js +0 -20
  312. package/dist/kernel/service-registry.d.ts +0 -109
  313. package/dist/kernel/service-registry.d.ts.map +0 -1
  314. package/dist/kernel/service-registry.js +0 -26
  315. package/dist/modules/analytics/hooks.d.ts +0 -13
  316. package/dist/modules/analytics/hooks.d.ts.map +0 -1
  317. package/dist/modules/analytics/hooks.js +0 -12
  318. package/dist/modules/analytics/module.d.ts +0 -3
  319. package/dist/modules/analytics/module.d.ts.map +0 -1
  320. package/dist/modules/analytics/module.js +0 -24
  321. package/dist/modules/analytics/repository/index.d.ts +0 -5
  322. package/dist/modules/analytics/repository/index.d.ts.map +0 -1
  323. package/dist/modules/analytics/repository/index.js +0 -1
  324. package/dist/modules/audit/index.d.ts +0 -2
  325. package/dist/modules/audit/index.d.ts.map +0 -1
  326. package/dist/modules/audit/index.js +0 -1
  327. package/dist/modules/audit/module.d.ts +0 -180
  328. package/dist/modules/audit/module.d.ts.map +0 -1
  329. package/dist/modules/audit/module.js +0 -8
  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/module.d.ts +0 -14
  334. package/dist/modules/cart/module.d.ts.map +0 -1
  335. package/dist/modules/cart/module.js +0 -17
  336. package/dist/modules/catalog/module.d.ts +0 -26
  337. package/dist/modules/catalog/module.d.ts.map +0 -1
  338. package/dist/modules/catalog/module.js +0 -33
  339. package/dist/modules/customers/index.d.ts +0 -2
  340. package/dist/modules/customers/index.d.ts.map +0 -1
  341. package/dist/modules/customers/index.js +0 -1
  342. package/dist/modules/customers/module.d.ts +0 -563
  343. package/dist/modules/customers/module.d.ts.map +0 -1
  344. package/dist/modules/customers/module.js +0 -20
  345. package/dist/modules/documents/module.d.ts +0 -7
  346. package/dist/modules/documents/module.d.ts.map +0 -1
  347. package/dist/modules/documents/module.js +0 -13
  348. package/dist/modules/fulfillment/module.d.ts +0 -13
  349. package/dist/modules/fulfillment/module.d.ts.map +0 -1
  350. package/dist/modules/fulfillment/module.js +0 -23
  351. package/dist/modules/inventory/module.d.ts +0 -13
  352. package/dist/modules/inventory/module.d.ts.map +0 -1
  353. package/dist/modules/inventory/module.js +0 -20
  354. package/dist/modules/media/index.d.ts +0 -2
  355. package/dist/modules/media/index.d.ts.map +0 -1
  356. package/dist/modules/media/index.js +0 -1
  357. package/dist/modules/media/module.d.ts +0 -360
  358. package/dist/modules/media/module.d.ts.map +0 -1
  359. package/dist/modules/media/module.js +0 -24
  360. package/dist/modules/orders/module.d.ts +0 -25
  361. package/dist/modules/orders/module.d.ts.map +0 -1
  362. package/dist/modules/orders/module.js +0 -33
  363. package/dist/modules/organization/index.d.ts +0 -2
  364. package/dist/modules/organization/index.d.ts.map +0 -1
  365. package/dist/modules/organization/index.js +0 -1
  366. package/dist/modules/organization/module.d.ts +0 -205
  367. package/dist/modules/organization/module.d.ts.map +0 -1
  368. package/dist/modules/organization/module.js +0 -8
  369. package/dist/modules/payments/module.d.ts +0 -3
  370. package/dist/modules/payments/module.d.ts.map +0 -1
  371. package/dist/modules/payments/module.js +0 -7
  372. package/dist/modules/payments/repository/index.d.ts +0 -5
  373. package/dist/modules/payments/repository/index.d.ts.map +0 -1
  374. package/dist/modules/payments/repository/index.js +0 -1
  375. package/dist/modules/pricing/index.d.ts +0 -2
  376. package/dist/modules/pricing/index.d.ts.map +0 -1
  377. package/dist/modules/pricing/index.js +0 -1
  378. package/dist/modules/pricing/module.d.ts +0 -14
  379. package/dist/modules/pricing/module.d.ts.map +0 -1
  380. package/dist/modules/pricing/module.js +0 -17
  381. package/dist/modules/promotions/module.d.ts +0 -14
  382. package/dist/modules/promotions/module.d.ts.map +0 -1
  383. package/dist/modules/promotions/module.js +0 -19
  384. package/dist/modules/search/module.d.ts +0 -8
  385. package/dist/modules/search/module.d.ts.map +0 -1
  386. package/dist/modules/search/module.js +0 -22
  387. package/dist/modules/search/repository/index.d.ts +0 -5
  388. package/dist/modules/search/repository/index.d.ts.map +0 -1
  389. package/dist/modules/search/repository/index.js +0 -1
  390. package/dist/modules/settings/module.d.ts +0 -6
  391. package/dist/modules/settings/module.d.ts.map +0 -1
  392. package/dist/modules/settings/module.js +0 -12
  393. package/dist/modules/shipping/module.d.ts +0 -12
  394. package/dist/modules/shipping/module.d.ts.map +0 -1
  395. package/dist/modules/shipping/module.js +0 -14
  396. package/dist/modules/tax/module.d.ts +0 -7
  397. package/dist/modules/tax/module.d.ts.map +0 -1
  398. package/dist/modules/tax/module.js +0 -13
  399. package/dist/modules/webhooks/index.d.ts +0 -2
  400. package/dist/modules/webhooks/index.d.ts.map +0 -1
  401. package/dist/modules/webhooks/index.js +0 -1
  402. package/dist/modules/webhooks/module.d.ts +0 -403
  403. package/dist/modules/webhooks/module.d.ts.map +0 -1
  404. package/dist/modules/webhooks/module.js +0 -16
  405. package/dist/test-utils/create-repository-test-harness.d.ts +0 -8
  406. package/dist/test-utils/create-repository-test-harness.d.ts.map +0 -1
  407. package/dist/test-utils/create-repository-test-harness.js +0 -7
  408. package/dist/test-utils/create-test-plugin-context.d.ts +0 -38
  409. package/dist/test-utils/create-test-plugin-context.d.ts.map +0 -1
  410. package/dist/test-utils/create-test-plugin-context.js +0 -39
  411. package/dist/test-utils/typed-hooks.d.ts +0 -44
  412. package/dist/test-utils/typed-hooks.d.ts.map +0 -1
  413. package/dist/test-utils/typed-hooks.js +0 -36
  414. package/dist/types/commerce-types.d.ts +0 -34
  415. package/dist/types/commerce-types.d.ts.map +0 -1
  416. package/dist/types/commerce-types.js +0 -1
  417. package/src/auth/access.ts +0 -187
  418. package/src/generated/plugin-capabilities.d.ts +0 -21
  419. package/src/generated/plugin-manifest.ts +0 -24
  420. package/src/generated/plugin-repositories.d.ts +0 -21
  421. package/src/kernel/factory/repository-factory.ts +0 -244
  422. package/src/kernel/http-error.ts +0 -44
  423. package/src/kernel/jobs/builtin-job-tasks.ts +0 -17
  424. package/src/kernel/module/define.ts +0 -36
  425. package/src/kernel/module/index.ts +0 -3
  426. package/src/kernel/module/topo-sort.ts +0 -99
  427. package/src/kernel/query/executor.ts +0 -184
  428. package/src/kernel/query/registry.ts +0 -46
  429. package/src/kernel/service-registry.ts +0 -76
  430. package/src/modules/analytics/hooks.ts +0 -11
  431. package/src/modules/analytics/module.ts +0 -35
  432. package/src/modules/analytics/repository/index.ts +0 -5
  433. package/src/modules/audit/index.ts +0 -1
  434. package/src/modules/audit/module.ts +0 -11
  435. package/src/modules/cart/access.ts +0 -27
  436. package/src/modules/cart/module.ts +0 -32
  437. package/src/modules/catalog/module.ts +0 -80
  438. package/src/modules/customers/index.ts +0 -1
  439. package/src/modules/customers/module.ts +0 -29
  440. package/src/modules/documents/module.ts +0 -21
  441. package/src/modules/fulfillment/module.ts +0 -44
  442. package/src/modules/inventory/module.ts +0 -37
  443. package/src/modules/media/index.ts +0 -1
  444. package/src/modules/media/module.ts +0 -27
  445. package/src/modules/orders/module.ts +0 -67
  446. package/src/modules/organization/index.ts +0 -1
  447. package/src/modules/organization/module.ts +0 -11
  448. package/src/modules/payments/module.ts +0 -14
  449. package/src/modules/payments/repository/index.ts +0 -5
  450. package/src/modules/pricing/index.ts +0 -1
  451. package/src/modules/pricing/module.ts +0 -32
  452. package/src/modules/promotions/module.ts +0 -34
  453. package/src/modules/search/module.ts +0 -32
  454. package/src/modules/search/repository/index.ts +0 -5
  455. package/src/modules/settings/module.ts +0 -20
  456. package/src/modules/shipping/module.ts +0 -27
  457. package/src/modules/tax/module.ts +0 -21
  458. package/src/modules/webhooks/index.ts +0 -1
  459. package/src/modules/webhooks/module.ts +0 -24
  460. package/src/test-utils/create-repository-test-harness.ts +0 -16
  461. package/src/test-utils/create-test-plugin-context.ts +0 -66
  462. package/src/test-utils/typed-hooks.ts +0 -55
  463. package/src/types/commerce-types.ts +0 -34
@@ -1,44 +0,0 @@
1
- import type { CommerceConfig } from "../../config/types.js";
2
- import type { DrizzleDatabase } from "../../kernel/database/drizzle-db.js";
3
- import { defineModule } from "../../kernel/module/index.js";
4
- import type { InventoryService } from "../inventory/service.js";
5
- import { OrdersRepository } from "../orders/repository/index.js";
6
- import { FulfillmentRepository } from "./repository/index.js";
7
- import {
8
- fulfillmentEvents,
9
- fulfillmentLineItems,
10
- fulfillmentRecords,
11
- } from "./schema.js";
12
- import { FulfillmentService } from "./service.js";
13
-
14
- type FulfillmentModuleDeps = {
15
- inventory: InventoryService;
16
- };
17
-
18
- export const fulfillmentModule = defineModule<
19
- {
20
- fulfillmentRecords: typeof fulfillmentRecords;
21
- fulfillmentLineItems: typeof fulfillmentLineItems;
22
- fulfillmentEvents: typeof fulfillmentEvents;
23
- },
24
- FulfillmentService,
25
- FulfillmentModuleDeps
26
- >({
27
- id: "fulfillment",
28
- dependencies: ["inventory"],
29
- schema: () => ({
30
- fulfillmentRecords,
31
- fulfillmentLineItems,
32
- fulfillmentEvents,
33
- }),
34
- service: (deps) =>
35
- new FulfillmentService({
36
- repository: new FulfillmentRepository(deps.db.db as DrizzleDatabase),
37
- ordersRepository: new OrdersRepository(deps.db.db as DrizzleDatabase),
38
- inventoryService: deps.services.inventory,
39
- hooks: deps.hooks,
40
- config: deps.config as CommerceConfig,
41
- services: deps.services,
42
- database: deps.db,
43
- }),
44
- });
@@ -1,37 +0,0 @@
1
- import type { CommerceConfig } from "../../config/types.js";
2
- import type { DrizzleDatabase } from "../../kernel/database/drizzle-db.js";
3
- import { defineModule } from "../../kernel/module/index.js";
4
- import type { CatalogServiceImpl } from "../catalog/service.js";
5
- import { InventoryRepository } from "./repository/index.js";
6
- import { inventoryLevels, inventoryMovements, warehouses } from "./schema.js";
7
- import { InventoryService } from "./service.js";
8
-
9
- type InventoryModuleDeps = {
10
- catalog: CatalogServiceImpl;
11
- };
12
-
13
- export const inventoryModule = defineModule<
14
- {
15
- inventoryLevels: typeof inventoryLevels;
16
- inventoryMovements: typeof inventoryMovements;
17
- warehouses: typeof warehouses;
18
- },
19
- InventoryService,
20
- InventoryModuleDeps
21
- >({
22
- id: "inventory",
23
- dependencies: ["catalog"],
24
- schema: () => ({
25
- inventoryLevels,
26
- inventoryMovements,
27
- warehouses,
28
- }),
29
- service: (deps) =>
30
- new InventoryService({
31
- repository: new InventoryRepository(deps.db.db as DrizzleDatabase),
32
- hooks: deps.hooks,
33
- config: deps.config as CommerceConfig,
34
- services: deps.services,
35
- database: deps.db,
36
- }),
37
- });
@@ -1 +0,0 @@
1
- export { mediaModule } from "./module.js";
@@ -1,27 +0,0 @@
1
- import type { CommerceConfig } from "../../config/types.js";
2
- import type { DrizzleDatabase } from "../../kernel/database/drizzle-db.js";
3
- import { defineModule } from "../../kernel/module/index.js";
4
- import { CatalogRepository } from "../catalog/repository/index.js";
5
- import { MediaRepository } from "./repository/index.js";
6
- import { MediaService } from "./service.js";
7
- import { entityMedia, mediaAssets } from "./schema.js";
8
-
9
- export const mediaModule = defineModule({
10
- id: "media",
11
- schema: () => ({ mediaAssets, entityMedia }),
12
- service: (deps) => {
13
- const db = deps.db.db as DrizzleDatabase;
14
- const storage = (deps.config as CommerceConfig).storage;
15
- if (storage == null) {
16
- throw new Error("Media module requires config.storage");
17
- }
18
- return new MediaService({
19
- repository: new MediaRepository(db),
20
- catalogRepository: new CatalogRepository(db),
21
- storage,
22
- config: deps.config as CommerceConfig,
23
- database: deps.db,
24
- services: deps.services,
25
- });
26
- },
27
- });
@@ -1,67 +0,0 @@
1
- import type { CommerceConfig } from "../../config/types.js";
2
- import type { DrizzleDatabase } from "../../kernel/database/drizzle-db.js";
3
- import { defineModule } from "../../kernel/module/index.js";
4
- import { extendOrderStateMachine } from "../../kernel/state-machine/machine.js";
5
- import type { CartService } from "../cart/service.js";
6
- import type { FulfillmentService } from "../fulfillment/service.js";
7
- import type { InventoryService } from "../inventory/service.js";
8
- import type { PaymentsService } from "../payments/service.js";
9
- import type { PricingService } from "../pricing/service.js";
10
- import type { PromotionService } from "../promotions/service.js";
11
- import type { TaxService } from "../tax/service.js";
12
- import { OrdersRepository } from "./repository/index.js";
13
- import {
14
- orderLineItems,
15
- orders,
16
- orderStatusHistory,
17
- } from "./schema.js";
18
- import { OrderService } from "./service.js";
19
-
20
- type OrdersModuleDeps = {
21
- cart: CartService;
22
- inventory: InventoryService;
23
- payments: PaymentsService;
24
- pricing: PricingService;
25
- promotions: PromotionService;
26
- fulfillment: FulfillmentService;
27
- tax: TaxService;
28
- };
29
-
30
- export const ordersModule = defineModule<
31
- {
32
- orders: typeof orders;
33
- orderLineItems: typeof orderLineItems;
34
- orderStatusHistory: typeof orderStatusHistory;
35
- },
36
- OrderService,
37
- OrdersModuleDeps
38
- >({
39
- id: "orders",
40
- dependencies: [
41
- "cart",
42
- "inventory",
43
- "payments",
44
- "pricing",
45
- "promotions",
46
- "fulfillment",
47
- "tax",
48
- ],
49
- schema: () => ({ orders, orderLineItems, orderStatusHistory }),
50
- service: (deps) => {
51
- const config = deps.config as CommerceConfig;
52
- return new OrderService({
53
- repository: new OrdersRepository(deps.db.db as DrizzleDatabase),
54
- hooks: deps.hooks,
55
- config,
56
- services: deps.services,
57
- database: deps.db,
58
- ...(config.orders?.customTransitions
59
- ? {
60
- stateMachine: extendOrderStateMachine(
61
- config.orders.customTransitions,
62
- ),
63
- }
64
- : {}),
65
- });
66
- },
67
- });
@@ -1 +0,0 @@
1
- export { organizationModule } from "./module.js";
@@ -1,11 +0,0 @@
1
- import { member, organization } from "../../auth/auth-schema.js";
2
- import type { DrizzleDatabase } from "../../kernel/database/drizzle-db.js";
3
- import { defineModule } from "../../kernel/module/index.js";
4
- import { OrganizationService } from "./service.js";
5
-
6
- export const organizationModule = defineModule({
7
- id: "organization",
8
- schema: () => ({ organization, member }),
9
- service: (deps) =>
10
- new OrganizationService(deps.db.db as DrizzleDatabase),
11
- });
@@ -1,14 +0,0 @@
1
- import type { CommerceConfig } from "../../config/types.js";
2
- import { defineModule } from "../../kernel/module/index.js";
3
- import { PaymentsService } from "./service.js";
4
-
5
- export const paymentsModule = defineModule<
6
- Record<string, never>,
7
- PaymentsService,
8
- Record<string, never>
9
- >({
10
- id: "payments",
11
- schema: () => ({}),
12
- service: (deps) =>
13
- new PaymentsService((deps.config as CommerceConfig).payments),
14
- });
@@ -1,5 +0,0 @@
1
- import type { TxContext } from "../../../kernel/database/tx-context.js";
2
-
3
- export interface PaymentsRepository {
4
- ping(ctx: TxContext): Promise<void>;
5
- }
@@ -1 +0,0 @@
1
- export { pricingModule } from "./module.js";
@@ -1,32 +0,0 @@
1
- import type { CommerceConfig } from "../../config/types.js";
2
- import type { DrizzleDatabase } from "../../kernel/database/drizzle-db.js";
3
- import { defineModule } from "../../kernel/module/index.js";
4
- import type { CatalogRepository } from "../catalog/repository/index.js";
5
- import { PricingRepository } from "./repository/index.js";
6
- import { PricingService } from "./service.js";
7
- import { priceModifiers, prices } from "./schema.js";
8
-
9
- type PricingModuleDeps = {
10
- catalog: {
11
- repository: CatalogRepository;
12
- };
13
- };
14
-
15
- export const pricingModule = defineModule<
16
- { prices: typeof prices; priceModifiers: typeof priceModifiers },
17
- PricingService,
18
- PricingModuleDeps
19
- >({
20
- id: "pricing",
21
- dependencies: ["catalog"],
22
- schema: () => ({ prices, priceModifiers }),
23
- service: (deps) =>
24
- new PricingService({
25
- repository: new PricingRepository(deps.db.db as DrizzleDatabase),
26
- catalogRepository: deps.services.catalog.repository,
27
- hooks: deps.hooks,
28
- config: deps.config as CommerceConfig,
29
- services: deps.services,
30
- database: deps.db,
31
- }),
32
- });
@@ -1,34 +0,0 @@
1
- import type { CommerceConfig } from "../../config/types.js";
2
- import type { DrizzleDatabase } from "../../kernel/database/drizzle-db.js";
3
- import { defineModule } from "../../kernel/module/index.js";
4
- import type { CatalogServiceImpl } from "../catalog/service.js";
5
- import type { OrderService } from "../orders/service.js";
6
- import { OrdersRepository } from "../orders/repository/index.js";
7
- import { PromotionsRepository } from "./repository/index.js";
8
- import { promotionUsages, promotions } from "./schema.js";
9
- import { PromotionService } from "./service.js";
10
-
11
- type PromotionsModuleDeps = {
12
- catalog: CatalogServiceImpl;
13
- orders: OrderService;
14
- };
15
-
16
- export const promotionsModule = defineModule<
17
- { promotions: typeof promotions; promotionUsages: typeof promotionUsages },
18
- PromotionService,
19
- PromotionsModuleDeps
20
- >({
21
- id: "promotions",
22
- dependencies: ["catalog", "orders"],
23
- schema: () => ({ promotions, promotionUsages }),
24
- service: (deps) =>
25
- new PromotionService({
26
- repository: new PromotionsRepository(deps.db.db as DrizzleDatabase),
27
- catalogRepository: deps.services.catalog.repository,
28
- ordersRepository: new OrdersRepository(deps.db.db as DrizzleDatabase),
29
- hooks: deps.hooks,
30
- config: deps.config as CommerceConfig,
31
- services: deps.services,
32
- database: deps.db,
33
- }),
34
- });
@@ -1,32 +0,0 @@
1
- import type { CommerceConfig } from "../../config/types.js";
2
- import type { PluginDb } from "../../kernel/database/plugin-types.js";
3
- import { defineModule } from "../../kernel/module/index.js";
4
- import type { CatalogServiceImpl } from "../catalog/service.js";
5
- import { SearchService } from "./service.js";
6
-
7
- type SearchModuleDeps = {
8
- catalog: CatalogServiceImpl;
9
- };
10
-
11
- export const searchModule = defineModule<Record<string, never>, SearchService, SearchModuleDeps>(
12
- {
13
- id: "search",
14
- dependencies: ["catalog"],
15
- schema: () => ({}),
16
- service: (deps) => {
17
- const config = deps.config as CommerceConfig;
18
- const adapter = config.search?.adapter;
19
- adapter?.init?.({ db: deps.db.db as PluginDb });
20
- return new SearchService({
21
- catalogRepository: deps.services.catalog.repository,
22
- resolveEntityFieldDefinitions: deps.services.catalog.resolveEntityFieldDefinitions.bind(deps.services.catalog),
23
- config,
24
- ...(config.entities ? { entities: config.entities } : {}),
25
- ...(adapter ? { adapter } : {}),
26
- ...(config.search?.defaultFacets
27
- ? { defaultFacets: config.search.defaultFacets }
28
- : {}),
29
- });
30
- },
31
- },
32
- );
@@ -1,5 +0,0 @@
1
- import type { TxContext } from "../../../kernel/database/tx-context.js";
2
-
3
- export interface SearchRepository {
4
- ping(ctx: TxContext): Promise<void>;
5
- }
@@ -1,20 +0,0 @@
1
- import type { CommerceConfig } from "../../config/types.js";
2
- import type { DrizzleDatabase } from "../../kernel/database/drizzle-db.js";
3
- import { defineModule } from "../../kernel/module/index.js";
4
- import { SettingsRepository } from "./repository/index.js";
5
- import { storeSettings } from "./schema.js";
6
- import { SettingsService } from "./service.js";
7
-
8
- export const settingsModule = defineModule<
9
- { storeSettings: typeof storeSettings },
10
- SettingsService,
11
- Record<string, never>
12
- >({
13
- id: "settings",
14
- schema: () => ({ storeSettings }),
15
- service: (deps) =>
16
- new SettingsService({
17
- repository: new SettingsRepository(deps.db.db as DrizzleDatabase),
18
- config: deps.config as CommerceConfig,
19
- }),
20
- });
@@ -1,27 +0,0 @@
1
- import type { CommerceConfig } from "../../config/types.js";
2
- import type { DrizzleDatabase } from "../../kernel/database/drizzle-db.js";
3
- import { defineModule } from "../../kernel/module/index.js";
4
- import type { CatalogServiceImpl } from "../catalog/service.js";
5
- import { ShippingConfigRepository } from "./repository/index.js";
6
- import { shippingZones, shippingRates } from "./schema.js";
7
- import { ShippingService } from "./service.js";
8
-
9
- type ShippingModuleDeps = {
10
- catalog: CatalogServiceImpl;
11
- };
12
-
13
- export const shippingModule = defineModule<
14
- { shippingZones: typeof shippingZones; shippingRates: typeof shippingRates },
15
- ShippingService,
16
- ShippingModuleDeps
17
- >({
18
- id: "shipping",
19
- dependencies: ["catalog"],
20
- schema: () => ({ shippingZones, shippingRates }),
21
- service: (deps) =>
22
- new ShippingService({
23
- config: deps.config as CommerceConfig,
24
- catalogRepository: deps.services.catalog.repository,
25
- repository: new ShippingConfigRepository(deps.db.db as DrizzleDatabase),
26
- }),
27
- });
@@ -1,21 +0,0 @@
1
- import type { CommerceConfig } from "../../config/types.js";
2
- import type { DrizzleDatabase } from "../../kernel/database/drizzle-db.js";
3
- import { defineModule } from "../../kernel/module/index.js";
4
- import { TaxRatesRepository } from "./repository/index.js";
5
- import { taxClasses, taxRates } from "./schema.js";
6
- import { TaxService } from "./service.js";
7
-
8
- export const taxModule = defineModule<
9
- { taxRates: typeof taxRates; taxClasses: typeof taxClasses },
10
- TaxService,
11
- Record<string, never>
12
- >({
13
- id: "tax",
14
- schema: () => ({ taxRates, taxClasses }),
15
- service: (deps) =>
16
- new TaxService({
17
- adapter: (deps.config as CommerceConfig).tax?.adapter,
18
- repository: new TaxRatesRepository(deps.db.db as DrizzleDatabase),
19
- config: deps.config as CommerceConfig,
20
- }),
21
- });
@@ -1 +0,0 @@
1
- export { webhooksModule } from "./module.js";
@@ -1,24 +0,0 @@
1
- import type { CommerceConfig } from "../../config/types.js";
2
- import { defineModule } from "../../kernel/module/index.js";
3
- import type { DrizzleDatabase } from "../../kernel/database/drizzle-db.js";
4
- import { WebhooksRepository } from "./repository/index.js";
5
- import { WebhookService } from "./service.js";
6
- import {
7
- processedWebhookEvents,
8
- webhookDeliveries,
9
- webhookEndpoints,
10
- } from "./schema.js";
11
-
12
- export const webhooksModule = defineModule({
13
- id: "webhooks",
14
- schema: () => ({
15
- webhookEndpoints,
16
- processedWebhookEvents,
17
- webhookDeliveries,
18
- }),
19
- service: (deps) =>
20
- new WebhookService({
21
- repository: new WebhooksRepository(deps.db.db as DrizzleDatabase),
22
- config: deps.config as CommerceConfig,
23
- }),
24
- });
@@ -1,16 +0,0 @@
1
- import type { CommerceConfig } from "../config/types.js";
2
- import { createTestConfig } from "./create-test-config.js";
3
- import { createKernel } from "../runtime/kernel.js";
4
-
5
- export interface RepositoryTestHarness {
6
- config: CommerceConfig;
7
- kernel: ReturnType<typeof createKernel>;
8
- }
9
-
10
- export async function createRepositoryTestHarness(
11
- overrides: Partial<CommerceConfig> = {},
12
- ): Promise<RepositoryTestHarness> {
13
- const config = await createTestConfig(overrides);
14
- const kernel = createKernel(config);
15
- return { config, kernel };
16
- }
@@ -1,66 +0,0 @@
1
- import { HookRegistry } from "../kernel/hooks/registry.js";
2
- import { createLogger } from "../utils/logger.js";
3
- import { createTestConfig } from "./create-test-config.js";
4
- import type { CommerceConfig } from "../config/types.js";
5
-
6
- interface PluginContextShape {
7
- hooks: HookRegistry;
8
- config: CommerceConfig;
9
- services: Record<string, unknown>;
10
- routes: { add(method: string, path: string, handler: (...args: unknown[]) => unknown): void };
11
- analytics: { registerModel(model: unknown): void };
12
- database: {
13
- registerSchema(schema: Record<string, unknown>): void;
14
- query: unknown;
15
- transaction<T>(fn: (tx: unknown) => Promise<T>): Promise<T>;
16
- };
17
- logger: { info(message: string, data?: unknown): void; warn(message: string, data?: unknown): void; error(message: string, data?: unknown): void };
18
- }
19
-
20
- export interface TestPluginContext extends PluginContextShape {
21
- registeredRoutes: Array<{ method: string; path: string; handler: (...args: unknown[]) => unknown }>;
22
- registeredAnalyticsModels: unknown[];
23
- registeredSchemas: Array<Record<string, unknown>>;
24
- }
25
-
26
- export async function createTestPluginContext(options?: {
27
- config?: Partial<CommerceConfig>;
28
- services?: Record<string, unknown>;
29
- }): Promise<TestPluginContext> {
30
- const hooks = new HookRegistry();
31
- const config = await createTestConfig(options?.config ?? {});
32
- const services = options?.services ?? {};
33
-
34
- const registeredRoutes: TestPluginContext["registeredRoutes"] = [];
35
- const registeredAnalyticsModels: unknown[] = [];
36
- const registeredSchemas: Array<Record<string, unknown>> = [];
37
-
38
- return {
39
- hooks,
40
- config,
41
- services,
42
- routes: {
43
- add(method, path, handler) {
44
- registeredRoutes.push({ method: method.toUpperCase(), path, handler });
45
- },
46
- },
47
- analytics: {
48
- registerModel(model) {
49
- registeredAnalyticsModels.push(model);
50
- },
51
- },
52
- database: {
53
- registerSchema(schema) {
54
- registeredSchemas.push(schema);
55
- },
56
- query: {},
57
- async transaction<T>(fn: (tx: unknown) => Promise<T>): Promise<T> {
58
- return fn({});
59
- },
60
- },
61
- logger: createLogger("test-plugin-context"),
62
- registeredRoutes,
63
- registeredAnalyticsModels,
64
- registeredSchemas,
65
- };
66
- }
@@ -1,55 +0,0 @@
1
- import type { PluginHookRegistration } from "../kernel/plugin/manifest.js";
2
- import type { HookContext, HookOperation } from "../kernel/hooks/types.js";
3
-
4
- /**
5
- * Creates a typed before-hook registration for plugins.
6
- *
7
- * Narrows the handler signature from the loose `(...args: unknown[]) => unknown`
8
- * on PluginHookRegistration to the actual `{ data, operation, context }` shape,
9
- * providing autocomplete on context.jobs.enqueue(), context.logger.info(), etc.
10
- *
11
- * @example
12
- * ```typescript
13
- * hooks: () => [
14
- * beforeHook<{ customerId: string }>("orders.beforeCreate", async ({ data, context }) => {
15
- * context.logger.info("order_creating", { customerId: data.customerId });
16
- * return data;
17
- * }),
18
- * ],
19
- * ```
20
- */
21
- export function beforeHook<TData>(
22
- key: string,
23
- handler: (args: {
24
- data: TData;
25
- operation: HookOperation;
26
- context: HookContext;
27
- }) => Promise<TData> | TData,
28
- ): PluginHookRegistration {
29
- return { key, handler: handler as PluginHookRegistration["handler"] };
30
- }
31
-
32
- /**
33
- * Creates a typed after-hook registration for plugins.
34
- *
35
- * @example
36
- * ```typescript
37
- * import { resolveOrgId } from "@porulle/core";
38
- * hooks: () => [
39
- * afterHook<{ id: string; grandTotal: number }>("orders.afterCreate", async ({ result, context }) => {
40
- * await context.jobs.enqueue("loyalty:award-points", { orderId: result.id }, { organizationId: resolveOrgId(context.actor) });
41
- * }),
42
- * ],
43
- * ```
44
- */
45
- export function afterHook<TData>(
46
- key: string,
47
- handler: (args: {
48
- data: TData | null;
49
- result: TData;
50
- operation: HookOperation;
51
- context: HookContext;
52
- }) => Promise<void> | void,
53
- ): PluginHookRegistration {
54
- return { key, handler: handler as PluginHookRegistration["handler"] };
55
- }
@@ -1,34 +0,0 @@
1
- import type { sellableEntities } from "../modules/catalog/schema.js";
2
- import type { orders } from "../modules/orders/schema.js";
3
- import type { carts } from "../modules/cart/schema.js";
4
- import type { customers } from "../modules/customers/schema.js";
5
- import type { inventoryLevels } from "../modules/inventory/schema.js";
6
-
7
- /**
8
- * Central type map for all commerce entities.
9
- *
10
- * Plugins can augment this interface via TypeScript module augmentation:
11
- *
12
- * ```typescript
13
- * declare module "@porulle/core" {
14
- * interface CommerceModuleTypes {
15
- * LoyaltyPoints: {
16
- * id: string;
17
- * customerId: string;
18
- * points: number;
19
- * tier: "bronze" | "silver" | "gold";
20
- * };
21
- * }
22
- * }
23
- * ```
24
- *
25
- * This enables plugin types to be referenced without importing
26
- * internal schema modules.
27
- */
28
- export interface CommerceModuleTypes {
29
- Product: typeof sellableEntities.$inferSelect;
30
- Order: typeof orders.$inferSelect;
31
- Cart: typeof carts.$inferSelect;
32
- Customer: typeof customers.$inferSelect;
33
- InventoryLevel: typeof inventoryLevels.$inferSelect;
34
- }