@unifiedcommerce/core 0.4.4 → 0.5.0

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 (564) hide show
  1. package/dist/adapters/console-email.d.ts +23 -0
  2. package/dist/adapters/console-email.d.ts.map +1 -0
  3. package/dist/adapters/console-email.js +38 -0
  4. package/dist/auth/access.d.ts +101 -0
  5. package/dist/auth/access.d.ts.map +1 -0
  6. package/dist/auth/access.js +128 -0
  7. package/dist/auth/auth-schema.d.ts +1475 -0
  8. package/dist/auth/auth-schema.d.ts.map +1 -0
  9. package/dist/auth/auth-schema.js +124 -0
  10. package/dist/auth/middleware.d.ts +5 -0
  11. package/dist/auth/middleware.d.ts.map +1 -0
  12. package/dist/auth/middleware.js +141 -0
  13. package/dist/auth/org.d.ts +22 -0
  14. package/dist/auth/org.d.ts.map +1 -0
  15. package/dist/auth/org.js +36 -0
  16. package/dist/auth/permissions.d.ts +4 -0
  17. package/dist/auth/permissions.d.ts.map +1 -0
  18. package/dist/auth/permissions.js +24 -0
  19. package/dist/auth/setup.d.ts +29 -0
  20. package/dist/auth/setup.d.ts.map +1 -0
  21. package/dist/auth/setup.js +144 -0
  22. package/dist/auth/system-actor.d.ts +7 -0
  23. package/dist/auth/system-actor.d.ts.map +1 -0
  24. package/dist/auth/system-actor.js +17 -0
  25. package/dist/auth/types.d.ts +11 -0
  26. package/dist/auth/types.d.ts.map +1 -0
  27. package/dist/auth/types.js +1 -0
  28. package/dist/config/defaults.d.ts +3 -0
  29. package/dist/config/defaults.d.ts.map +1 -0
  30. package/dist/config/defaults.js +80 -0
  31. package/dist/config/define-config.d.ts +9 -0
  32. package/dist/config/define-config.d.ts.map +1 -0
  33. package/dist/config/define-config.js +44 -0
  34. package/dist/config/types.d.ts +327 -0
  35. package/dist/config/types.d.ts.map +1 -0
  36. package/dist/config/types.js +1 -0
  37. package/dist/generated/plugin-manifest.d.ts +48 -0
  38. package/dist/generated/plugin-manifest.d.ts.map +1 -0
  39. package/dist/generated/plugin-manifest.js +20 -0
  40. package/dist/hooks/checkout-completion.d.ts +58 -0
  41. package/dist/hooks/checkout-completion.d.ts.map +1 -0
  42. package/dist/hooks/checkout-completion.js +137 -0
  43. package/dist/hooks/checkout.d.ts +99 -0
  44. package/dist/hooks/checkout.d.ts.map +1 -0
  45. package/dist/hooks/checkout.js +317 -0
  46. package/dist/hooks/order-emails.d.ts +16 -0
  47. package/dist/hooks/order-emails.d.ts.map +1 -0
  48. package/dist/hooks/order-emails.js +44 -0
  49. package/dist/index.d.ts +77 -0
  50. package/dist/index.d.ts.map +1 -0
  51. package/dist/index.js +45 -0
  52. package/dist/interfaces/mcp/agent-prompt.d.ts +16 -0
  53. package/dist/interfaces/mcp/agent-prompt.d.ts.map +1 -0
  54. package/dist/interfaces/mcp/agent-prompt.js +172 -0
  55. package/dist/interfaces/mcp/context-enrichment.d.ts +39 -0
  56. package/dist/interfaces/mcp/context-enrichment.d.ts.map +1 -0
  57. package/dist/interfaces/mcp/context-enrichment.js +119 -0
  58. package/dist/interfaces/mcp/server.d.ts +5 -0
  59. package/dist/interfaces/mcp/server.d.ts.map +1 -0
  60. package/dist/interfaces/mcp/server.js +30 -0
  61. package/dist/interfaces/mcp/tool-builder.d.ts +120 -0
  62. package/dist/interfaces/mcp/tool-builder.d.ts.map +1 -0
  63. package/dist/interfaces/mcp/tool-builder.js +224 -0
  64. package/dist/interfaces/mcp/tools/analytics.d.ts +42 -0
  65. package/dist/interfaces/mcp/tools/analytics.d.ts.map +1 -0
  66. package/dist/interfaces/mcp/tools/analytics.js +70 -0
  67. package/dist/interfaces/mcp/tools/cart.d.ts +14 -0
  68. package/dist/interfaces/mcp/tools/cart.d.ts.map +1 -0
  69. package/dist/interfaces/mcp/tools/cart.js +47 -0
  70. package/dist/interfaces/mcp/tools/catalog.d.ts +53 -0
  71. package/dist/interfaces/mcp/tools/catalog.d.ts.map +1 -0
  72. package/dist/interfaces/mcp/tools/catalog.js +284 -0
  73. package/dist/interfaces/mcp/tools/index.d.ts +3 -0
  74. package/dist/interfaces/mcp/tools/index.d.ts.map +1 -0
  75. package/dist/interfaces/mcp/tools/index.js +20 -0
  76. package/dist/interfaces/mcp/tools/inventory.d.ts +27 -0
  77. package/dist/interfaces/mcp/tools/inventory.d.ts.map +1 -0
  78. package/dist/interfaces/mcp/tools/inventory.js +143 -0
  79. package/dist/interfaces/mcp/tools/orders.d.ts +18 -0
  80. package/dist/interfaces/mcp/tools/orders.d.ts.map +1 -0
  81. package/dist/interfaces/mcp/tools/orders.js +82 -0
  82. package/dist/interfaces/mcp/tools/pricing.d.ts +29 -0
  83. package/dist/interfaces/mcp/tools/pricing.d.ts.map +1 -0
  84. package/dist/interfaces/mcp/tools/pricing.js +90 -0
  85. package/dist/interfaces/mcp/tools/promotions.d.ts +44 -0
  86. package/dist/interfaces/mcp/tools/promotions.d.ts.map +1 -0
  87. package/dist/interfaces/mcp/tools/promotions.js +109 -0
  88. package/dist/interfaces/mcp/tools/registry.d.ts +32 -0
  89. package/dist/interfaces/mcp/tools/registry.d.ts.map +1 -0
  90. package/dist/interfaces/mcp/tools/registry.js +55 -0
  91. package/dist/interfaces/mcp/tools/search.d.ts +14 -0
  92. package/dist/interfaces/mcp/tools/search.d.ts.map +1 -0
  93. package/dist/interfaces/mcp/tools/search.js +39 -0
  94. package/dist/interfaces/mcp/tools/webhooks.d.ts +15 -0
  95. package/dist/interfaces/mcp/tools/webhooks.d.ts.map +1 -0
  96. package/dist/interfaces/mcp/tools/webhooks.js +48 -0
  97. package/dist/interfaces/mcp/transport.d.ts +20 -0
  98. package/dist/interfaces/mcp/transport.d.ts.map +1 -0
  99. package/dist/interfaces/mcp/transport.js +99 -0
  100. package/dist/interfaces/rest/customer-portal.d.ts +5 -0
  101. package/dist/interfaces/rest/customer-portal.d.ts.map +1 -0
  102. package/dist/interfaces/rest/customer-portal.js +206 -0
  103. package/dist/interfaces/rest/router.d.ts +164 -0
  104. package/dist/interfaces/rest/router.d.ts.map +1 -0
  105. package/dist/interfaces/rest/router.js +259 -0
  106. package/dist/interfaces/rest/routes/admin-jobs.d.ts +5 -0
  107. package/dist/interfaces/rest/routes/admin-jobs.d.ts.map +1 -0
  108. package/dist/interfaces/rest/routes/admin-jobs.js +48 -0
  109. package/dist/interfaces/rest/routes/audit.d.ts +5 -0
  110. package/dist/interfaces/rest/routes/audit.d.ts.map +1 -0
  111. package/dist/interfaces/rest/routes/audit.js +43 -0
  112. package/dist/interfaces/rest/routes/carts.d.ts +5 -0
  113. package/dist/interfaces/rest/routes/carts.d.ts.map +1 -0
  114. package/dist/interfaces/rest/routes/carts.js +55 -0
  115. package/dist/interfaces/rest/routes/catalog.d.ts +5 -0
  116. package/dist/interfaces/rest/routes/catalog.d.ts.map +1 -0
  117. package/dist/interfaces/rest/routes/catalog.js +256 -0
  118. package/dist/interfaces/rest/routes/checkout.d.ts +5 -0
  119. package/dist/interfaces/rest/routes/checkout.d.ts.map +1 -0
  120. package/dist/interfaces/rest/routes/checkout.js +216 -0
  121. package/dist/interfaces/rest/routes/customers.d.ts +5 -0
  122. package/dist/interfaces/rest/routes/customers.d.ts.map +1 -0
  123. package/dist/interfaces/rest/routes/customers.js +78 -0
  124. package/dist/interfaces/rest/routes/entity-aliases.d.ts +18 -0
  125. package/dist/interfaces/rest/routes/entity-aliases.d.ts.map +1 -0
  126. package/dist/interfaces/rest/routes/entity-aliases.js +39 -0
  127. package/dist/interfaces/rest/routes/inventory.d.ts +5 -0
  128. package/dist/interfaces/rest/routes/inventory.d.ts.map +1 -0
  129. package/dist/interfaces/rest/routes/inventory.js +74 -0
  130. package/dist/interfaces/rest/routes/media.d.ts +5 -0
  131. package/dist/interfaces/rest/routes/media.d.ts.map +1 -0
  132. package/dist/interfaces/rest/routes/media.js +65 -0
  133. package/dist/interfaces/rest/routes/orders.d.ts +5 -0
  134. package/dist/interfaces/rest/routes/orders.d.ts.map +1 -0
  135. package/dist/interfaces/rest/routes/orders.js +64 -0
  136. package/dist/interfaces/rest/routes/payments.d.ts +5 -0
  137. package/dist/interfaces/rest/routes/payments.d.ts.map +1 -0
  138. package/dist/interfaces/rest/routes/payments.js +45 -0
  139. package/dist/interfaces/rest/routes/pricing.d.ts +5 -0
  140. package/dist/interfaces/rest/routes/pricing.d.ts.map +1 -0
  141. package/dist/interfaces/rest/routes/pricing.js +48 -0
  142. package/dist/interfaces/rest/routes/promotions.d.ts +5 -0
  143. package/dist/interfaces/rest/routes/promotions.d.ts.map +1 -0
  144. package/dist/interfaces/rest/routes/promotions.js +76 -0
  145. package/dist/interfaces/rest/routes/search.d.ts +5 -0
  146. package/dist/interfaces/rest/routes/search.d.ts.map +1 -0
  147. package/dist/interfaces/rest/routes/search.js +60 -0
  148. package/dist/interfaces/rest/routes/webhooks.d.ts +5 -0
  149. package/dist/interfaces/rest/routes/webhooks.d.ts.map +1 -0
  150. package/dist/interfaces/rest/routes/webhooks.js +39 -0
  151. package/dist/interfaces/rest/schemas/admin-jobs.d.ts +327 -0
  152. package/dist/interfaces/rest/schemas/admin-jobs.d.ts.map +1 -0
  153. package/dist/interfaces/rest/schemas/admin-jobs.js +37 -0
  154. package/dist/interfaces/rest/schemas/audit.d.ts +59 -0
  155. package/dist/interfaces/rest/schemas/audit.d.ts.map +1 -0
  156. package/dist/interfaces/rest/schemas/audit.js +43 -0
  157. package/dist/interfaces/rest/schemas/carts.d.ts +1456 -0
  158. package/dist/interfaces/rest/schemas/carts.d.ts.map +1 -0
  159. package/dist/interfaces/rest/schemas/carts.js +109 -0
  160. package/dist/interfaces/rest/schemas/catalog.d.ts +5452 -0
  161. package/dist/interfaces/rest/schemas/catalog.d.ts.map +1 -0
  162. package/dist/interfaces/rest/schemas/catalog.js +397 -0
  163. package/dist/interfaces/rest/schemas/checkout.d.ts +160 -0
  164. package/dist/interfaces/rest/schemas/checkout.d.ts.map +1 -0
  165. package/dist/interfaces/rest/schemas/checkout.js +60 -0
  166. package/dist/interfaces/rest/schemas/customer-portal.d.ts +2203 -0
  167. package/dist/interfaces/rest/schemas/customer-portal.d.ts.map +1 -0
  168. package/dist/interfaces/rest/schemas/customer-portal.js +177 -0
  169. package/dist/interfaces/rest/schemas/customers.d.ts +422 -0
  170. package/dist/interfaces/rest/schemas/customers.d.ts.map +1 -0
  171. package/dist/interfaces/rest/schemas/customers.js +150 -0
  172. package/dist/interfaces/rest/schemas/inventory.d.ts +561 -0
  173. package/dist/interfaces/rest/schemas/inventory.d.ts.map +1 -0
  174. package/dist/interfaces/rest/schemas/inventory.js +148 -0
  175. package/dist/interfaces/rest/schemas/media.d.ts +303 -0
  176. package/dist/interfaces/rest/schemas/media.d.ts.map +1 -0
  177. package/dist/interfaces/rest/schemas/media.js +69 -0
  178. package/dist/interfaces/rest/schemas/orders.d.ts +1792 -0
  179. package/dist/interfaces/rest/schemas/orders.d.ts.map +1 -0
  180. package/dist/interfaces/rest/schemas/orders.js +93 -0
  181. package/dist/interfaces/rest/schemas/pricing.d.ts +256 -0
  182. package/dist/interfaces/rest/schemas/pricing.d.ts.map +1 -0
  183. package/dist/interfaces/rest/schemas/pricing.js +72 -0
  184. package/dist/interfaces/rest/schemas/promotions.d.ts +374 -0
  185. package/dist/interfaces/rest/schemas/promotions.d.ts.map +1 -0
  186. package/dist/interfaces/rest/schemas/promotions.js +104 -0
  187. package/dist/interfaces/rest/schemas/responses.d.ts +4086 -0
  188. package/dist/interfaces/rest/schemas/responses.d.ts.map +1 -0
  189. package/dist/interfaces/rest/schemas/responses.js +74 -0
  190. package/dist/interfaces/rest/schemas/search.d.ts +247 -0
  191. package/dist/interfaces/rest/schemas/search.d.ts.map +1 -0
  192. package/dist/interfaces/rest/schemas/search.js +55 -0
  193. package/dist/interfaces/rest/schemas/shared.d.ts +95 -0
  194. package/dist/interfaces/rest/schemas/shared.d.ts.map +1 -0
  195. package/dist/interfaces/rest/schemas/shared.js +51 -0
  196. package/dist/interfaces/rest/schemas/webhooks.d.ts +221 -0
  197. package/dist/interfaces/rest/schemas/webhooks.d.ts.map +1 -0
  198. package/dist/interfaces/rest/schemas/webhooks.js +62 -0
  199. package/dist/interfaces/rest/utils.d.ts +45 -0
  200. package/dist/interfaces/rest/utils.d.ts.map +1 -0
  201. package/dist/interfaces/rest/utils.js +71 -0
  202. package/dist/interfaces/rest/webhook-router.d.ts +41 -0
  203. package/dist/interfaces/rest/webhook-router.d.ts.map +1 -0
  204. package/dist/interfaces/rest/webhook-router.js +36 -0
  205. package/dist/kernel/compensation/executor.d.ts +21 -0
  206. package/dist/kernel/compensation/executor.d.ts.map +1 -0
  207. package/dist/kernel/compensation/executor.js +36 -0
  208. package/dist/kernel/compensation/types.d.ts +25 -0
  209. package/dist/kernel/compensation/types.d.ts.map +1 -0
  210. package/dist/kernel/compensation/types.js +1 -0
  211. package/dist/kernel/database/adapter.d.ts +18 -0
  212. package/dist/kernel/database/adapter.d.ts.map +1 -0
  213. package/dist/kernel/database/adapter.js +3 -0
  214. package/dist/kernel/database/drizzle-db.d.ts +49 -0
  215. package/dist/kernel/database/drizzle-db.d.ts.map +1 -0
  216. package/dist/kernel/database/drizzle-db.js +20 -0
  217. package/dist/kernel/database/migrate.d.ts +38 -0
  218. package/dist/kernel/database/migrate.d.ts.map +1 -0
  219. package/dist/kernel/database/migrate.js +61 -0
  220. package/dist/kernel/database/plugin-types.d.ts +32 -0
  221. package/dist/kernel/database/plugin-types.d.ts.map +1 -0
  222. package/dist/kernel/database/plugin-types.js +10 -0
  223. package/dist/kernel/database/schema.d.ts +24 -0
  224. package/dist/kernel/database/schema.d.ts.map +1 -0
  225. package/dist/kernel/database/schema.js +36 -0
  226. package/dist/kernel/database/scoped-db.d.ts +20 -0
  227. package/dist/kernel/database/scoped-db.d.ts.map +1 -0
  228. package/dist/kernel/database/scoped-db.js +62 -0
  229. package/dist/kernel/database/tx-context.d.ts +15 -0
  230. package/dist/kernel/database/tx-context.d.ts.map +1 -0
  231. package/dist/kernel/database/tx-context.js +19 -0
  232. package/dist/kernel/error-mapper.d.ts +3 -0
  233. package/dist/kernel/error-mapper.d.ts.map +1 -0
  234. package/dist/kernel/error-mapper.js +12 -0
  235. package/dist/kernel/errors.d.ts +38 -0
  236. package/dist/kernel/errors.d.ts.map +1 -0
  237. package/dist/kernel/errors.js +69 -0
  238. package/dist/kernel/factory/repository-factory.d.ts +71 -0
  239. package/dist/kernel/factory/repository-factory.d.ts.map +1 -0
  240. package/dist/kernel/factory/repository-factory.js +138 -0
  241. package/dist/kernel/hooks/create-context.d.ts +25 -0
  242. package/dist/kernel/hooks/create-context.d.ts.map +1 -0
  243. package/dist/kernel/hooks/create-context.js +22 -0
  244. package/dist/kernel/hooks/executor.d.ts +12 -0
  245. package/dist/kernel/hooks/executor.d.ts.map +1 -0
  246. package/dist/kernel/hooks/executor.js +50 -0
  247. package/dist/kernel/hooks/registry.d.ts +28 -0
  248. package/dist/kernel/hooks/registry.d.ts.map +1 -0
  249. package/dist/kernel/hooks/registry.js +58 -0
  250. package/dist/kernel/hooks/types.d.ts +37 -0
  251. package/dist/kernel/hooks/types.d.ts.map +1 -0
  252. package/dist/kernel/hooks/types.js +1 -0
  253. package/dist/kernel/http-error.d.ts +30 -0
  254. package/dist/kernel/http-error.d.ts.map +1 -0
  255. package/dist/kernel/http-error.js +35 -0
  256. package/dist/kernel/jobs/adapter.d.ts +25 -0
  257. package/dist/kernel/jobs/adapter.d.ts.map +1 -0
  258. package/dist/kernel/jobs/adapter.js +9 -0
  259. package/dist/kernel/jobs/drizzle-adapter.d.ts +15 -0
  260. package/dist/kernel/jobs/drizzle-adapter.d.ts.map +1 -0
  261. package/dist/kernel/jobs/drizzle-adapter.js +42 -0
  262. package/dist/kernel/jobs/runner.d.ts +24 -0
  263. package/dist/kernel/jobs/runner.d.ts.map +1 -0
  264. package/dist/kernel/jobs/runner.js +114 -0
  265. package/dist/kernel/jobs/schema.d.ts +280 -0
  266. package/dist/kernel/jobs/schema.d.ts.map +1 -0
  267. package/dist/kernel/jobs/schema.js +37 -0
  268. package/dist/kernel/jobs/types.d.ts +30 -0
  269. package/dist/kernel/jobs/types.d.ts.map +1 -0
  270. package/dist/kernel/jobs/types.js +1 -0
  271. package/dist/kernel/local-api.d.ts +103 -0
  272. package/dist/kernel/local-api.d.ts.map +1 -0
  273. package/dist/kernel/local-api.js +89 -0
  274. package/dist/kernel/plugin/manifest.d.ts +90 -0
  275. package/dist/kernel/plugin/manifest.d.ts.map +1 -0
  276. package/dist/kernel/plugin/manifest.js +169 -0
  277. package/dist/kernel/query/executor.d.ts +21 -0
  278. package/dist/kernel/query/executor.d.ts.map +1 -0
  279. package/dist/kernel/query/executor.js +128 -0
  280. package/dist/kernel/query/registry.d.ts +33 -0
  281. package/dist/kernel/query/registry.d.ts.map +1 -0
  282. package/dist/kernel/query/registry.js +20 -0
  283. package/dist/kernel/result.d.ts +36 -0
  284. package/dist/kernel/result.d.ts.map +1 -0
  285. package/dist/kernel/result.js +16 -0
  286. package/dist/kernel/schema/extra-columns.d.ts +23 -0
  287. package/dist/kernel/schema/extra-columns.d.ts.map +1 -0
  288. package/dist/kernel/schema/extra-columns.js +10 -0
  289. package/dist/kernel/service-registry.d.ts +109 -0
  290. package/dist/kernel/service-registry.d.ts.map +1 -0
  291. package/dist/kernel/service-registry.js +26 -0
  292. package/dist/kernel/service-timing.d.ts +25 -0
  293. package/dist/kernel/service-timing.d.ts.map +1 -0
  294. package/dist/kernel/service-timing.js +62 -0
  295. package/dist/kernel/state-machine/machine.d.ts +24 -0
  296. package/dist/kernel/state-machine/machine.d.ts.map +1 -0
  297. package/dist/kernel/state-machine/machine.js +70 -0
  298. package/dist/modules/analytics/drizzle-adapter.d.ts +13 -0
  299. package/dist/modules/analytics/drizzle-adapter.d.ts.map +1 -0
  300. package/dist/modules/analytics/drizzle-adapter.js +358 -0
  301. package/dist/modules/analytics/hooks.d.ts +13 -0
  302. package/dist/modules/analytics/hooks.d.ts.map +1 -0
  303. package/dist/modules/analytics/hooks.js +12 -0
  304. package/dist/modules/analytics/models.d.ts +14 -0
  305. package/dist/modules/analytics/models.d.ts.map +1 -0
  306. package/dist/modules/analytics/models.js +118 -0
  307. package/dist/modules/analytics/repository/index.d.ts +5 -0
  308. package/dist/modules/analytics/repository/index.d.ts.map +1 -0
  309. package/dist/modules/analytics/repository/index.js +1 -0
  310. package/dist/modules/analytics/service.d.ts +45 -0
  311. package/dist/modules/analytics/service.d.ts.map +1 -0
  312. package/dist/modules/analytics/service.js +196 -0
  313. package/dist/modules/analytics/types.d.ts +119 -0
  314. package/dist/modules/analytics/types.d.ts.map +1 -0
  315. package/dist/modules/analytics/types.js +25 -0
  316. package/dist/modules/audit/hooks.d.ts +7 -0
  317. package/dist/modules/audit/hooks.d.ts.map +1 -0
  318. package/dist/modules/audit/hooks.js +67 -0
  319. package/dist/modules/audit/schema.d.ts +178 -0
  320. package/dist/modules/audit/schema.d.ts.map +1 -0
  321. package/dist/modules/audit/schema.js +21 -0
  322. package/dist/modules/audit/service.d.ts +38 -0
  323. package/dist/modules/audit/service.d.ts.map +1 -0
  324. package/dist/modules/audit/service.js +109 -0
  325. package/dist/modules/cart/access.d.ts +11 -0
  326. package/dist/modules/cart/access.d.ts.map +1 -0
  327. package/dist/modules/cart/access.js +18 -0
  328. package/dist/modules/cart/matcher.d.ts +20 -0
  329. package/dist/modules/cart/matcher.d.ts.map +1 -0
  330. package/dist/modules/cart/matcher.js +2 -0
  331. package/dist/modules/cart/repository/index.d.ts +45 -0
  332. package/dist/modules/cart/repository/index.d.ts.map +1 -0
  333. package/dist/modules/cart/repository/index.js +158 -0
  334. package/dist/modules/cart/schema.d.ts +359 -0
  335. package/dist/modules/cart/schema.d.ts.map +1 -0
  336. package/dist/modules/cart/schema.js +40 -0
  337. package/dist/modules/cart/schemas.d.ts +29 -0
  338. package/dist/modules/cart/schemas.d.ts.map +1 -0
  339. package/dist/modules/cart/schemas.js +14 -0
  340. package/dist/modules/cart/service.d.ts +63 -0
  341. package/dist/modules/cart/service.d.ts.map +1 -0
  342. package/dist/modules/cart/service.js +339 -0
  343. package/dist/modules/catalog/repository/index.d.ts +106 -0
  344. package/dist/modules/catalog/repository/index.d.ts.map +1 -0
  345. package/dist/modules/catalog/repository/index.js +455 -0
  346. package/dist/modules/catalog/schema.d.ts +1193 -0
  347. package/dist/modules/catalog/schema.d.ts.map +1 -0
  348. package/dist/modules/catalog/schema.js +149 -0
  349. package/dist/modules/catalog/schemas.d.ts +81 -0
  350. package/dist/modules/catalog/schemas.d.ts.map +1 -0
  351. package/dist/modules/catalog/schemas.js +62 -0
  352. package/dist/modules/catalog/service.d.ts +165 -0
  353. package/dist/modules/catalog/service.d.ts.map +1 -0
  354. package/dist/modules/catalog/service.js +775 -0
  355. package/dist/modules/customers/repository/index.d.ts +47 -0
  356. package/dist/modules/customers/repository/index.d.ts.map +1 -0
  357. package/dist/modules/customers/repository/index.js +206 -0
  358. package/dist/modules/customers/schema.d.ts +560 -0
  359. package/dist/modules/customers/schema.d.ts.map +1 -0
  360. package/dist/modules/customers/schema.js +60 -0
  361. package/dist/modules/customers/service.d.ts +27 -0
  362. package/dist/modules/customers/service.d.ts.map +1 -0
  363. package/dist/modules/customers/service.js +106 -0
  364. package/dist/modules/fulfillment/repository/index.d.ts +63 -0
  365. package/dist/modules/fulfillment/repository/index.d.ts.map +1 -0
  366. package/dist/modules/fulfillment/repository/index.js +268 -0
  367. package/dist/modules/fulfillment/schema.d.ts +655 -0
  368. package/dist/modules/fulfillment/schema.d.ts.map +1 -0
  369. package/dist/modules/fulfillment/schema.js +83 -0
  370. package/dist/modules/fulfillment/service.d.ts +58 -0
  371. package/dist/modules/fulfillment/service.d.ts.map +1 -0
  372. package/dist/modules/fulfillment/service.js +338 -0
  373. package/dist/modules/fulfillment/types.d.ts +44 -0
  374. package/dist/modules/fulfillment/types.d.ts.map +1 -0
  375. package/dist/modules/fulfillment/types.js +1 -0
  376. package/dist/modules/inventory/repository/index.d.ts +81 -0
  377. package/dist/modules/inventory/repository/index.d.ts.map +1 -0
  378. package/dist/modules/inventory/repository/index.js +310 -0
  379. package/dist/modules/inventory/schema.d.ts +570 -0
  380. package/dist/modules/inventory/schema.d.ts.map +1 -0
  381. package/dist/modules/inventory/schema.js +69 -0
  382. package/dist/modules/inventory/schemas.d.ts +31 -0
  383. package/dist/modules/inventory/schemas.d.ts.map +1 -0
  384. package/dist/modules/inventory/schemas.js +28 -0
  385. package/dist/modules/inventory/service.d.ts +69 -0
  386. package/dist/modules/inventory/service.d.ts.map +1 -0
  387. package/dist/modules/inventory/service.js +283 -0
  388. package/dist/modules/media/adapter.d.ts +16 -0
  389. package/dist/modules/media/adapter.d.ts.map +1 -0
  390. package/dist/modules/media/adapter.js +1 -0
  391. package/dist/modules/media/repository/index.d.ts +35 -0
  392. package/dist/modules/media/repository/index.d.ts.map +1 -0
  393. package/dist/modules/media/repository/index.js +176 -0
  394. package/dist/modules/media/schema.d.ts +289 -0
  395. package/dist/modules/media/schema.d.ts.map +1 -0
  396. package/dist/modules/media/schema.js +35 -0
  397. package/dist/modules/media/service.d.ts +42 -0
  398. package/dist/modules/media/service.d.ts.map +1 -0
  399. package/dist/modules/media/service.js +89 -0
  400. package/dist/modules/orders/repository/index.d.ts +48 -0
  401. package/dist/modules/orders/repository/index.d.ts.map +1 -0
  402. package/dist/modules/orders/repository/index.js +199 -0
  403. package/dist/modules/orders/schema.d.ts +672 -0
  404. package/dist/modules/orders/schema.d.ts.map +1 -0
  405. package/dist/modules/orders/schema.js +63 -0
  406. package/dist/modules/orders/service.d.ts +85 -0
  407. package/dist/modules/orders/service.d.ts.map +1 -0
  408. package/dist/modules/orders/service.js +313 -0
  409. package/dist/modules/orders/stale-order-cleanup.d.ts +27 -0
  410. package/dist/modules/orders/stale-order-cleanup.d.ts.map +1 -0
  411. package/dist/modules/orders/stale-order-cleanup.js +55 -0
  412. package/dist/modules/organization/service.d.ts +53 -0
  413. package/dist/modules/organization/service.d.ts.map +1 -0
  414. package/dist/modules/organization/service.js +151 -0
  415. package/dist/modules/payments/adapter.d.ts +42 -0
  416. package/dist/modules/payments/adapter.d.ts.map +1 -0
  417. package/dist/modules/payments/adapter.js +1 -0
  418. package/dist/modules/payments/repository/index.d.ts +5 -0
  419. package/dist/modules/payments/repository/index.d.ts.map +1 -0
  420. package/dist/modules/payments/repository/index.js +1 -0
  421. package/dist/modules/payments/service.d.ts +23 -0
  422. package/dist/modules/payments/service.d.ts.map +1 -0
  423. package/dist/modules/payments/service.js +72 -0
  424. package/dist/modules/pricing/repository/index.d.ts +34 -0
  425. package/dist/modules/pricing/repository/index.d.ts.map +1 -0
  426. package/dist/modules/pricing/repository/index.js +176 -0
  427. package/dist/modules/pricing/schema.d.ts +565 -0
  428. package/dist/modules/pricing/schema.d.ts.map +1 -0
  429. package/dist/modules/pricing/schema.js +57 -0
  430. package/dist/modules/pricing/schemas.d.ts +37 -0
  431. package/dist/modules/pricing/schemas.d.ts.map +1 -0
  432. package/dist/modules/pricing/schemas.js +30 -0
  433. package/dist/modules/pricing/service.d.ts +62 -0
  434. package/dist/modules/pricing/service.d.ts.map +1 -0
  435. package/dist/modules/pricing/service.js +308 -0
  436. package/dist/modules/promotions/repository/index.d.ts +41 -0
  437. package/dist/modules/promotions/repository/index.d.ts.map +1 -0
  438. package/dist/modules/promotions/repository/index.js +204 -0
  439. package/dist/modules/promotions/schema.d.ts +427 -0
  440. package/dist/modules/promotions/schema.d.ts.map +1 -0
  441. package/dist/modules/promotions/schema.js +52 -0
  442. package/dist/modules/promotions/schemas.d.ts +33 -0
  443. package/dist/modules/promotions/schemas.d.ts.map +1 -0
  444. package/dist/modules/promotions/schemas.js +32 -0
  445. package/dist/modules/promotions/service.d.ts +85 -0
  446. package/dist/modules/promotions/service.d.ts.map +1 -0
  447. package/dist/modules/promotions/service.js +368 -0
  448. package/dist/modules/search/adapter.d.ts +51 -0
  449. package/dist/modules/search/adapter.d.ts.map +1 -0
  450. package/dist/modules/search/adapter.js +1 -0
  451. package/dist/modules/search/hooks.d.ts +8 -0
  452. package/dist/modules/search/hooks.d.ts.map +1 -0
  453. package/dist/modules/search/hooks.js +6 -0
  454. package/dist/modules/search/repository/index.d.ts +5 -0
  455. package/dist/modules/search/repository/index.d.ts.map +1 -0
  456. package/dist/modules/search/repository/index.js +1 -0
  457. package/dist/modules/search/service.d.ts +24 -0
  458. package/dist/modules/search/service.d.ts.map +1 -0
  459. package/dist/modules/search/service.js +217 -0
  460. package/dist/modules/shipping/calculator.d.ts +42 -0
  461. package/dist/modules/shipping/calculator.d.ts.map +1 -0
  462. package/dist/modules/shipping/calculator.js +91 -0
  463. package/dist/modules/shipping/repository/index.d.ts +5 -0
  464. package/dist/modules/shipping/repository/index.d.ts.map +1 -0
  465. package/dist/modules/shipping/repository/index.js +1 -0
  466. package/dist/modules/shipping/service.d.ts +28 -0
  467. package/dist/modules/shipping/service.d.ts.map +1 -0
  468. package/dist/modules/shipping/service.js +20 -0
  469. package/dist/modules/tax/adapter.d.ts +58 -0
  470. package/dist/modules/tax/adapter.d.ts.map +1 -0
  471. package/dist/modules/tax/adapter.js +1 -0
  472. package/dist/modules/tax/repository/index.d.ts +5 -0
  473. package/dist/modules/tax/repository/index.d.ts.map +1 -0
  474. package/dist/modules/tax/repository/index.js +1 -0
  475. package/dist/modules/tax/service.d.ts +19 -0
  476. package/dist/modules/tax/service.d.ts.map +1 -0
  477. package/dist/modules/tax/service.js +34 -0
  478. package/dist/modules/webhooks/hook.d.ts +13 -0
  479. package/dist/modules/webhooks/hook.d.ts.map +1 -0
  480. package/dist/modules/webhooks/hook.js +29 -0
  481. package/dist/modules/webhooks/repository/index.d.ts +40 -0
  482. package/dist/modules/webhooks/repository/index.d.ts.map +1 -0
  483. package/dist/modules/webhooks/repository/index.js +175 -0
  484. package/dist/modules/webhooks/schema.d.ts +404 -0
  485. package/dist/modules/webhooks/schema.d.ts.map +1 -0
  486. package/dist/modules/webhooks/schema.js +40 -0
  487. package/dist/modules/webhooks/service.d.ts +23 -0
  488. package/dist/modules/webhooks/service.d.ts.map +1 -0
  489. package/dist/modules/webhooks/service.js +92 -0
  490. package/dist/modules/webhooks/signing.d.ts +2 -0
  491. package/dist/modules/webhooks/signing.d.ts.map +1 -0
  492. package/dist/modules/webhooks/signing.js +5 -0
  493. package/dist/modules/webhooks/ssrf-guard.d.ts +19 -0
  494. package/dist/modules/webhooks/ssrf-guard.d.ts.map +1 -0
  495. package/dist/modules/webhooks/ssrf-guard.js +79 -0
  496. package/dist/modules/webhooks/tasks.d.ts +16 -0
  497. package/dist/modules/webhooks/tasks.d.ts.map +1 -0
  498. package/dist/modules/webhooks/tasks.js +35 -0
  499. package/dist/modules/webhooks/worker.d.ts +21 -0
  500. package/dist/modules/webhooks/worker.d.ts.map +1 -0
  501. package/dist/modules/webhooks/worker.js +113 -0
  502. package/dist/runtime/commerce.d.ts +110 -0
  503. package/dist/runtime/commerce.d.ts.map +1 -0
  504. package/dist/runtime/commerce.js +37 -0
  505. package/dist/runtime/kernel.d.ts +71 -0
  506. package/dist/runtime/kernel.d.ts.map +1 -0
  507. package/dist/runtime/kernel.js +306 -0
  508. package/dist/runtime/logger.d.ts +11 -0
  509. package/dist/runtime/logger.d.ts.map +1 -0
  510. package/dist/runtime/logger.js +32 -0
  511. package/dist/runtime/shutdown.d.ts +15 -0
  512. package/dist/runtime/shutdown.d.ts.map +1 -0
  513. package/dist/runtime/shutdown.js +34 -0
  514. package/dist/test-utils/create-pglite-adapter.d.ts +32 -0
  515. package/dist/test-utils/create-pglite-adapter.d.ts.map +1 -0
  516. package/dist/test-utils/create-pglite-adapter.js +107 -0
  517. package/dist/test-utils/create-plugin-test-app.d.ts +50 -0
  518. package/dist/test-utils/create-plugin-test-app.d.ts.map +1 -0
  519. package/dist/test-utils/create-plugin-test-app.js +74 -0
  520. package/dist/test-utils/create-repository-test-harness.d.ts +8 -0
  521. package/dist/test-utils/create-repository-test-harness.d.ts.map +1 -0
  522. package/dist/test-utils/create-repository-test-harness.js +7 -0
  523. package/dist/test-utils/create-test-config.d.ts +18 -0
  524. package/dist/test-utils/create-test-config.d.ts.map +1 -0
  525. package/dist/test-utils/create-test-config.js +172 -0
  526. package/dist/test-utils/create-test-kernel.d.ts +3 -0
  527. package/dist/test-utils/create-test-kernel.d.ts.map +1 -0
  528. package/dist/test-utils/create-test-kernel.js +5 -0
  529. package/dist/test-utils/create-test-plugin-context.d.ts +42 -0
  530. package/dist/test-utils/create-test-plugin-context.d.ts.map +1 -0
  531. package/dist/test-utils/create-test-plugin-context.js +46 -0
  532. package/dist/test-utils/rest-api-test-utils.d.ts +64 -0
  533. package/dist/test-utils/rest-api-test-utils.d.ts.map +1 -0
  534. package/dist/test-utils/rest-api-test-utils.js +207 -0
  535. package/dist/test-utils/test-actors.d.ts +15 -0
  536. package/dist/test-utils/test-actors.d.ts.map +1 -0
  537. package/dist/test-utils/test-actors.js +57 -0
  538. package/dist/test-utils/typed-hooks.d.ts +43 -0
  539. package/dist/test-utils/typed-hooks.d.ts.map +1 -0
  540. package/dist/test-utils/typed-hooks.js +35 -0
  541. package/dist/testing.d.ts +14 -0
  542. package/dist/testing.d.ts.map +1 -0
  543. package/dist/testing.js +13 -0
  544. package/dist/types/commerce-types.d.ts +34 -0
  545. package/dist/types/commerce-types.d.ts.map +1 -0
  546. package/dist/types/commerce-types.js +1 -0
  547. package/dist/utils/id.d.ts +2 -0
  548. package/dist/utils/id.d.ts.map +1 -0
  549. package/dist/utils/id.js +3 -0
  550. package/dist/utils/logger.d.ts +3 -0
  551. package/dist/utils/logger.d.ts.map +1 -0
  552. package/dist/utils/logger.js +16 -0
  553. package/dist/utils/pagination.d.ts +11 -0
  554. package/dist/utils/pagination.d.ts.map +1 -0
  555. package/dist/utils/pagination.js +15 -0
  556. package/package.json +2 -2
  557. package/src/auth/setup.ts +26 -0
  558. package/src/interfaces/rest/routes/customers.ts +7 -1
  559. package/src/interfaces/rest/routes/inventory.ts +4 -1
  560. package/src/interfaces/rest/routes/promotions.ts +12 -9
  561. package/src/interfaces/rest/schemas/promotions.ts +10 -4
  562. package/src/modules/catalog/service.ts +19 -0
  563. package/src/modules/promotions/service.ts +32 -0
  564. package/src/runtime/commerce.ts +1 -0
@@ -0,0 +1,221 @@
1
+ import { z } from "@hono/zod-openapi";
2
+ export declare const CreateWebhookEndpointBodySchema: z.ZodObject<{
3
+ url: z.ZodString;
4
+ events: z.ZodArray<z.ZodString>;
5
+ secret: z.ZodOptional<z.ZodString>;
6
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
7
+ }, z.core.$strip>;
8
+ export declare const listWebhookEndpointsRoute: {
9
+ method: "get";
10
+ path: "/";
11
+ tags: string[];
12
+ summary: string;
13
+ responses: {
14
+ 200: {
15
+ content: {
16
+ "application/json": {
17
+ schema: z.ZodObject<{
18
+ data: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
19
+ }, z.core.$strip>;
20
+ };
21
+ };
22
+ description: string;
23
+ };
24
+ };
25
+ } & {
26
+ getRoutingPath(): "/";
27
+ };
28
+ export declare const deleteWebhookEndpointRoute: {
29
+ method: "delete";
30
+ path: "/{id}";
31
+ tags: string[];
32
+ summary: string;
33
+ request: {
34
+ params: z.ZodObject<{
35
+ id: z.ZodUUID;
36
+ }, z.core.$strip>;
37
+ };
38
+ responses: {
39
+ 400: {
40
+ readonly content: {
41
+ readonly "application/json": {
42
+ readonly schema: z.ZodObject<{
43
+ error: z.ZodObject<{
44
+ code: z.ZodString;
45
+ message: z.ZodString;
46
+ }, z.core.$strip>;
47
+ }, z.core.$strip>;
48
+ };
49
+ };
50
+ readonly description: "Business logic error.";
51
+ };
52
+ 401: {
53
+ readonly content: {
54
+ readonly "application/json": {
55
+ readonly schema: z.ZodObject<{
56
+ error: z.ZodObject<{
57
+ code: z.ZodString;
58
+ message: z.ZodString;
59
+ }, z.core.$strip>;
60
+ }, z.core.$strip>;
61
+ };
62
+ };
63
+ readonly description: "Authentication required.";
64
+ };
65
+ 403: {
66
+ readonly content: {
67
+ readonly "application/json": {
68
+ readonly schema: z.ZodObject<{
69
+ error: z.ZodObject<{
70
+ code: z.ZodString;
71
+ message: z.ZodString;
72
+ }, z.core.$strip>;
73
+ }, z.core.$strip>;
74
+ };
75
+ };
76
+ readonly description: "Insufficient permissions.";
77
+ };
78
+ 404: {
79
+ readonly content: {
80
+ readonly "application/json": {
81
+ readonly schema: z.ZodObject<{
82
+ error: z.ZodObject<{
83
+ code: z.ZodString;
84
+ message: z.ZodString;
85
+ }, z.core.$strip>;
86
+ }, z.core.$strip>;
87
+ };
88
+ };
89
+ readonly description: "Resource not found.";
90
+ };
91
+ 422: {
92
+ readonly content: {
93
+ readonly "application/json": {
94
+ readonly schema: z.ZodObject<{
95
+ error: z.ZodObject<{
96
+ code: z.ZodString;
97
+ message: z.ZodString;
98
+ }, z.core.$strip>;
99
+ }, z.core.$strip>;
100
+ };
101
+ };
102
+ readonly description: "Validation error.";
103
+ };
104
+ 200: {
105
+ content: {
106
+ "application/json": {
107
+ schema: z.ZodObject<{
108
+ data: z.ZodObject<{
109
+ deleted: z.ZodLiteral<true>;
110
+ }, z.core.$strip>;
111
+ }, z.core.$strip>;
112
+ };
113
+ };
114
+ description: string;
115
+ };
116
+ };
117
+ } & {
118
+ getRoutingPath(): "/:id";
119
+ };
120
+ export declare const createWebhookEndpointRoute: {
121
+ method: "post";
122
+ path: "/";
123
+ tags: string[];
124
+ summary: string;
125
+ description: string;
126
+ request: {
127
+ body: {
128
+ content: {
129
+ "application/json": {
130
+ schema: z.ZodObject<{
131
+ url: z.ZodString;
132
+ events: z.ZodArray<z.ZodString>;
133
+ secret: z.ZodOptional<z.ZodString>;
134
+ metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
135
+ }, z.core.$strip>;
136
+ };
137
+ };
138
+ required: true;
139
+ };
140
+ };
141
+ responses: {
142
+ 400: {
143
+ readonly content: {
144
+ readonly "application/json": {
145
+ readonly schema: z.ZodObject<{
146
+ error: z.ZodObject<{
147
+ code: z.ZodString;
148
+ message: z.ZodString;
149
+ }, z.core.$strip>;
150
+ }, z.core.$strip>;
151
+ };
152
+ };
153
+ readonly description: "Business logic error.";
154
+ };
155
+ 401: {
156
+ readonly content: {
157
+ readonly "application/json": {
158
+ readonly schema: z.ZodObject<{
159
+ error: z.ZodObject<{
160
+ code: z.ZodString;
161
+ message: z.ZodString;
162
+ }, z.core.$strip>;
163
+ }, z.core.$strip>;
164
+ };
165
+ };
166
+ readonly description: "Authentication required.";
167
+ };
168
+ 403: {
169
+ readonly content: {
170
+ readonly "application/json": {
171
+ readonly schema: z.ZodObject<{
172
+ error: z.ZodObject<{
173
+ code: z.ZodString;
174
+ message: z.ZodString;
175
+ }, z.core.$strip>;
176
+ }, z.core.$strip>;
177
+ };
178
+ };
179
+ readonly description: "Insufficient permissions.";
180
+ };
181
+ 404: {
182
+ readonly content: {
183
+ readonly "application/json": {
184
+ readonly schema: z.ZodObject<{
185
+ error: z.ZodObject<{
186
+ code: z.ZodString;
187
+ message: z.ZodString;
188
+ }, z.core.$strip>;
189
+ }, z.core.$strip>;
190
+ };
191
+ };
192
+ readonly description: "Resource not found.";
193
+ };
194
+ 422: {
195
+ readonly content: {
196
+ readonly "application/json": {
197
+ readonly schema: z.ZodObject<{
198
+ error: z.ZodObject<{
199
+ code: z.ZodString;
200
+ message: z.ZodString;
201
+ }, z.core.$strip>;
202
+ }, z.core.$strip>;
203
+ };
204
+ };
205
+ readonly description: "Validation error.";
206
+ };
207
+ 201: {
208
+ content: {
209
+ "application/json": {
210
+ schema: z.ZodObject<{
211
+ data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
212
+ }, z.core.$strip>;
213
+ };
214
+ };
215
+ description: string;
216
+ };
217
+ };
218
+ } & {
219
+ getRoutingPath(): "/";
220
+ };
221
+ //# sourceMappingURL=webhooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhooks.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/rest/schemas/webhooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAe,MAAM,mBAAmB,CAAC;AAKnD,eAAO,MAAM,+BAA+B;;;;;iBAKF,CAAC;AAI3C,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;CAWpC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBrC,CAAC;AAEH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqBrC,CAAC"}
@@ -0,0 +1,62 @@
1
+ import { z, createRoute } from "@hono/zod-openapi";
2
+ import { errorResponses } from "./shared.js";
3
+ // ─── Request Schema ──────────────────────────────────────────────────────────
4
+ export const CreateWebhookEndpointBodySchema = z.object({
5
+ url: z.string().url().openapi({ example: "https://example.com/webhooks" }),
6
+ events: z.array(z.string()).openapi({ example: ["order.created", "order.fulfilled"] }),
7
+ secret: z.string().optional().openapi({ example: "whsec_abc123" }),
8
+ metadata: z.record(z.string(), z.unknown()).optional(),
9
+ }).openapi("CreateWebhookEndpointRequest");
10
+ // ─── Route Definitions ──────────────────────────────────────────────────────
11
+ export const listWebhookEndpointsRoute = createRoute({
12
+ method: "get",
13
+ path: "/",
14
+ tags: ["Webhooks"],
15
+ summary: "List webhook endpoints",
16
+ responses: {
17
+ 200: {
18
+ content: { "application/json": { schema: z.object({ data: z.array(z.record(z.string(), z.unknown())) }) } },
19
+ description: "Webhook endpoints",
20
+ },
21
+ },
22
+ });
23
+ export const deleteWebhookEndpointRoute = createRoute({
24
+ method: "delete",
25
+ path: "/{id}",
26
+ tags: ["Webhooks"],
27
+ summary: "Delete a webhook endpoint",
28
+ request: {
29
+ params: z.object({
30
+ id: z.uuid().openapi({ example: "550e8400-e29b-41d4-a716-446655440000" }),
31
+ }),
32
+ },
33
+ responses: {
34
+ 200: {
35
+ content: { "application/json": { schema: z.object({ data: z.object({ deleted: z.literal(true) }) }) } },
36
+ description: "Webhook endpoint deleted.",
37
+ },
38
+ ...errorResponses,
39
+ },
40
+ });
41
+ export const createWebhookEndpointRoute = createRoute({
42
+ method: "post",
43
+ path: "/",
44
+ tags: ["Webhooks"],
45
+ summary: "Create a webhook endpoint",
46
+ description: "Registers a new webhook endpoint that will receive event notifications.",
47
+ request: {
48
+ body: {
49
+ content: {
50
+ "application/json": { schema: CreateWebhookEndpointBodySchema },
51
+ },
52
+ required: true,
53
+ },
54
+ },
55
+ responses: {
56
+ 201: {
57
+ content: { "application/json": { schema: z.object({ data: z.record(z.string(), z.unknown()) }) } },
58
+ description: "Webhook endpoint created.",
59
+ },
60
+ ...errorResponses,
61
+ },
62
+ });
@@ -0,0 +1,45 @@
1
+ import { mapErrorToStatus } from "../../kernel/error-mapper.js";
2
+ import type { Actor } from "../../auth/types.js";
3
+ /**
4
+ * Shared Hono environment type for all sub-routers.
5
+ * Matches the Variables set by middleware in the top-level server app.
6
+ */
7
+ export type AppEnv = {
8
+ Variables: {
9
+ actor: Actor | null;
10
+ requestId: string;
11
+ logger: unknown;
12
+ kernel: unknown;
13
+ };
14
+ };
15
+ export declare function parsePagination(query: Record<string, string | undefined>): {
16
+ page: number;
17
+ limit: number;
18
+ };
19
+ export declare function parseInclude(value?: string): Set<string>;
20
+ /**
21
+ * Map an error to a safe client response. Internal errors are sanitized
22
+ * to prevent leaking SQL, schema, or stack trace details.
23
+ */
24
+ export declare function mapErrorToResponse(error: unknown): {
25
+ error: {
26
+ code: string;
27
+ message: string;
28
+ };
29
+ };
30
+ export { mapErrorToStatus };
31
+ /**
32
+ * Hono middleware that requires a specific permission on the actor.
33
+ * Returns 401 if no actor, 403 if permission denied.
34
+ * Usage: router.post("/", requirePerm("webhooks:manage"), handler);
35
+ */
36
+ export declare function requirePerm(permission: string): (c: {
37
+ get(key: string): unknown;
38
+ json(data: unknown, status: number): unknown;
39
+ }, next: () => Promise<void>) => Promise<unknown>;
40
+ export declare function parseSort(value?: string): {
41
+ field: "createdAt" | "updatedAt" | "slug";
42
+ direction: "asc" | "desc";
43
+ } | undefined;
44
+ export declare function isUUID(value: string): boolean;
45
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/interfaces/rest/utils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAEjD;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG;IACnB,SAAS,EAAE;QACT,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;QACpB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,OAAO,CAAC;QAChB,MAAM,EAAE,OAAO,CAAC;KACjB,CAAC;CACH,CAAC;AAIF,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,GAAG;IAC1E,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAOA;AAED,wBAAgB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAQxD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG;IAAE,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAO/F;AAED,OAAO,EAAE,gBAAgB,EAAE,CAAC;AAE5B;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,IAC9B,GAAG;IAAE,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,EAAE,MAAM,MAAM,OAAO,CAAC,IAAI,CAAC,sBAkBxH;AAED,wBAAgB,SAAS,CACvB,KAAK,CAAC,EAAE,MAAM,GAEZ;IACF,KAAK,EAAE,WAAW,GAAG,WAAW,GAAG,MAAM,CAAC;IAC1C,SAAS,EAAE,KAAK,GAAG,MAAM,CAAC;CAC3B,GACG,SAAS,CASZ;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAE7C"}
@@ -0,0 +1,71 @@
1
+ import { mapErrorToStatus } from "../../kernel/error-mapper.js";
2
+ import { toCommerceError } from "../../kernel/errors.js";
3
+ const MAX_PAGE_LIMIT = 100;
4
+ export function parsePagination(query) {
5
+ const page = Number.parseInt(query.page ?? "1", 10);
6
+ const limit = Number.parseInt(query.limit ?? "20", 10);
7
+ return {
8
+ page: Number.isFinite(page) && page > 0 ? page : 1,
9
+ limit: Math.min(MAX_PAGE_LIMIT, Number.isFinite(limit) && limit > 0 ? limit : 20),
10
+ };
11
+ }
12
+ export function parseInclude(value) {
13
+ if (!value)
14
+ return new Set();
15
+ return new Set(value
16
+ .split(",")
17
+ .map((item) => item.trim())
18
+ .filter(Boolean));
19
+ }
20
+ /**
21
+ * Map an error to a safe client response. Internal errors are sanitized
22
+ * to prevent leaking SQL, schema, or stack trace details.
23
+ */
24
+ export function mapErrorToResponse(error) {
25
+ const ce = toCommerceError(error);
26
+ if (ce.code === "INTERNAL_ERROR") {
27
+ // Sanitize internal errors -- do not expose raw messages to clients
28
+ return { error: { code: "INTERNAL_ERROR", message: "An unexpected error occurred." } };
29
+ }
30
+ return { error: { code: ce.code, message: ce.message } };
31
+ }
32
+ export { mapErrorToStatus };
33
+ /**
34
+ * Hono middleware that requires a specific permission on the actor.
35
+ * Returns 401 if no actor, 403 if permission denied.
36
+ * Usage: router.post("/", requirePerm("webhooks:manage"), handler);
37
+ */
38
+ export function requirePerm(permission) {
39
+ return async (c, next) => {
40
+ const actor = c.get("actor");
41
+ if (!actor) {
42
+ return c.json({ error: { code: "UNAUTHORIZED", message: "Authentication required." } }, 401);
43
+ }
44
+ const perms = actor.permissions ?? [];
45
+ if (perms.includes(permission) || perms.includes("*:*")) {
46
+ await next();
47
+ return;
48
+ }
49
+ // Check resource-level wildcard (e.g., "catalog:*" matches "catalog:create")
50
+ const [resource] = permission.split(":");
51
+ if (resource && perms.includes(`${resource}:*`)) {
52
+ await next();
53
+ return;
54
+ }
55
+ return c.json({ error: { code: "FORBIDDEN", message: `Permission '${permission}' is required.` } }, 403);
56
+ };
57
+ }
58
+ export function parseSort(value) {
59
+ if (!value)
60
+ return undefined;
61
+ const [fieldRaw, directionRaw] = value.split(":");
62
+ const selectedField = fieldRaw ?? "createdAt";
63
+ const field = ["createdAt", "updatedAt", "slug"].includes(selectedField)
64
+ ? selectedField
65
+ : "createdAt";
66
+ const direction = directionRaw === "asc" ? "asc" : "desc";
67
+ return { field, direction };
68
+ }
69
+ export function isUUID(value) {
70
+ return /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(value);
71
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * webhookRouter() — route builder for external webhook receivers.
3
+ *
4
+ * Unlike router() which uses UC authentication (.auth(), .permission()),
5
+ * webhookRouter() uses HMAC signature verification. This is for routes
6
+ * that receive callbacks from external services (Shopify, WooCommerce,
7
+ * Stripe, BNPL providers) that authenticate via provider-specific signatures.
8
+ *
9
+ * Provides typed access to kernel.services, kernel.database.db, and
10
+ * kernel.logger without casting through `unknown`.
11
+ *
12
+ * Usage:
13
+ *
14
+ * import { webhookRouter } from "@unifiedcommerce/core";
15
+ *
16
+ * export function createMyWebhookRoutes(kernel: Kernel) {
17
+ * const { app, services, db, logger } = webhookRouter(kernel);
18
+ *
19
+ * app.post("/product-updated", async (c) => {
20
+ * const body = await c.req.json();
21
+ * await services.catalog.update(body.id, { ... }, systemActor);
22
+ * return c.json({ status: "ok" });
23
+ * });
24
+ *
25
+ * return app;
26
+ * }
27
+ */
28
+ import { Hono } from "hono";
29
+ import type { Kernel } from "../../runtime/kernel.js";
30
+ export interface WebhookRouterResult {
31
+ /** Raw Hono app — mount routes on this. No UC auth middleware attached. */
32
+ app: Hono;
33
+ /** Kernel services (catalog, inventory, orders, etc.). Typed properly. */
34
+ services: Kernel["services"];
35
+ /** Drizzle database instance for direct queries. */
36
+ db: Kernel["database"]["db"];
37
+ /** Structured Pino logger. */
38
+ logger: Kernel["logger"];
39
+ }
40
+ export declare function webhookRouter(kernel: Kernel): WebhookRouterResult;
41
+ //# sourceMappingURL=webhook-router.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"webhook-router.d.ts","sourceRoot":"","sources":["../../../src/interfaces/rest/webhook-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAEtD,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,GAAG,EAAE,IAAI,CAAC;IACV,0EAA0E;IAC1E,QAAQ,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;IAC7B,oDAAoD;IACpD,EAAE,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7B,8BAA8B;IAC9B,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;CAC1B;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB,CAOjE"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * webhookRouter() — route builder for external webhook receivers.
3
+ *
4
+ * Unlike router() which uses UC authentication (.auth(), .permission()),
5
+ * webhookRouter() uses HMAC signature verification. This is for routes
6
+ * that receive callbacks from external services (Shopify, WooCommerce,
7
+ * Stripe, BNPL providers) that authenticate via provider-specific signatures.
8
+ *
9
+ * Provides typed access to kernel.services, kernel.database.db, and
10
+ * kernel.logger without casting through `unknown`.
11
+ *
12
+ * Usage:
13
+ *
14
+ * import { webhookRouter } from "@unifiedcommerce/core";
15
+ *
16
+ * export function createMyWebhookRoutes(kernel: Kernel) {
17
+ * const { app, services, db, logger } = webhookRouter(kernel);
18
+ *
19
+ * app.post("/product-updated", async (c) => {
20
+ * const body = await c.req.json();
21
+ * await services.catalog.update(body.id, { ... }, systemActor);
22
+ * return c.json({ status: "ok" });
23
+ * });
24
+ *
25
+ * return app;
26
+ * }
27
+ */
28
+ import { Hono } from "hono";
29
+ export function webhookRouter(kernel) {
30
+ return {
31
+ app: new Hono(),
32
+ services: kernel.services,
33
+ db: kernel.database.db,
34
+ logger: kernel.logger,
35
+ };
36
+ }
@@ -0,0 +1,21 @@
1
+ import type { CompensationContext, Step } from "./types.js";
2
+ import type { Result } from "../result.js";
3
+ /**
4
+ * AnyStep erases the output type parameter so that heterogeneous step
5
+ * arrays can be passed to runCompensationChain without variance issues
6
+ * under exactOptionalPropertyTypes.
7
+ */
8
+ type AnyStep<TInput> = Step<TInput, any>;
9
+ /**
10
+ * Runs a list of steps in order. If any step fails, compensates all
11
+ * previously completed steps in reverse. Steps share the same input
12
+ * object (they may mutate it to enrich downstream steps, following
13
+ * the same pattern established by BeforeHooks).
14
+ *
15
+ * Compensation failures are logged but do not override the original error.
16
+ * A failed compensation is a separate operational concern that requires
17
+ * manual review — it should never mask the root cause returned to the caller.
18
+ */
19
+ export declare function runCompensationChain<TInput>(steps: ReadonlyArray<AnyStep<TInput>>, input: TInput, ctx: CompensationContext): Promise<Result<TInput>>;
20
+ export {};
21
+ //# sourceMappingURL=executor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../src/kernel/compensation/executor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;;;GAIG;AAEH,KAAK,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAEzC;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CAAC,MAAM,EAC/C,KAAK,EAAE,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EACrC,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,mBAAmB,GACvB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAmCzB"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Runs a list of steps in order. If any step fails, compensates all
3
+ * previously completed steps in reverse. Steps share the same input
4
+ * object (they may mutate it to enrich downstream steps, following
5
+ * the same pattern established by BeforeHooks).
6
+ *
7
+ * Compensation failures are logged but do not override the original error.
8
+ * A failed compensation is a separate operational concern that requires
9
+ * manual review — it should never mask the root cause returned to the caller.
10
+ */
11
+ export async function runCompensationChain(steps, input, ctx) {
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any -- matches AnyStep output erasure
13
+ const completed = [];
14
+ for (const step of steps) {
15
+ const result = await step.run(input, ctx);
16
+ if (!result.ok) {
17
+ ctx.hook.logger.error(`Compensation chain failed at step "${step.id}". ` +
18
+ `Running ${completed.length} compensation(s).`, { error: result.error });
19
+ // Compensate in reverse order — most recently completed step first
20
+ for (const done of [...completed].reverse()) {
21
+ if (!done.step.compensate)
22
+ continue;
23
+ try {
24
+ await done.step.compensate(done.output, ctx);
25
+ ctx.hook.logger.info(`Compensated step "${done.step.id}"`);
26
+ }
27
+ catch (compensateError) {
28
+ ctx.hook.logger.error(`Compensation for step "${done.step.id}" failed. Manual review required.`, { compensateError });
29
+ }
30
+ }
31
+ return result;
32
+ }
33
+ completed.push({ step, output: result.value });
34
+ }
35
+ return { ok: true, value: input };
36
+ }
@@ -0,0 +1,25 @@
1
+ import type { TxContext } from "../database/tx-context.js";
2
+ import type { HookContext } from "../hooks/types.js";
3
+ import type { Result } from "../result.js";
4
+ /**
5
+ * CompensationContext carries the transaction and hook context into
6
+ * both the run and compensate functions. Steps have access to services,
7
+ * the actor, and the logger through ctx.hook.
8
+ */
9
+ export interface CompensationContext {
10
+ tx: TxContext | null;
11
+ hook: HookContext;
12
+ }
13
+ /**
14
+ * A Step is one unit of work in a compensation chain.
15
+ *
16
+ * TInput is the data the step receives (typically the shared checkout data object).
17
+ * TOutput is what the step produces. This same value is passed to compensate()
18
+ * so the compensate function has everything it needs to reverse the work.
19
+ */
20
+ export interface Step<TInput, TOutput> {
21
+ id: string;
22
+ run: (input: TInput, ctx: CompensationContext) => Promise<Result<TOutput>>;
23
+ compensate?: (output: TOutput, ctx: CompensationContext) => Promise<void>;
24
+ }
25
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/kernel/compensation/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAC3D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,EAAE,EAAE,SAAS,GAAG,IAAI,CAAC;IACrB,IAAI,EAAE,WAAW,CAAC;CACnB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,IAAI,CAAC,MAAM,EAAE,OAAO;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAC3E,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE,mBAAmB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3E"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Database adapter interface for the commerce engine.
3
+ *
4
+ * Generic defaults to `unknown` so that any driver-specific adapter
5
+ * (postgres-js, PGlite, etc.) can implement it without type conflicts.
6
+ * Internal code narrows to `PluginDb` at the consumption site — see
7
+ * PluginContext in manifest.ts and createHookContext.
8
+ */
9
+ export interface DatabaseAdapter<TDatabase = unknown, TTransaction = unknown> {
10
+ provider: string;
11
+ db: TDatabase;
12
+ transaction<T>(fn: (tx: TTransaction) => Promise<T>): Promise<T>;
13
+ }
14
+ export interface DatabaseConnectionFactoryInput {
15
+ adapter: DatabaseAdapter;
16
+ }
17
+ export declare function createDatabaseConnection(input: DatabaseConnectionFactoryInput): DatabaseAdapter;
18
+ //# sourceMappingURL=adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/kernel/database/adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,WAAW,eAAe,CAAC,SAAS,GAAG,OAAO,EAAE,YAAY,GAAG,OAAO;IAC1E,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,EAAE,SAAS,CAAC;IACd,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,YAAY,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;CAClE;AAED,MAAM,WAAW,8BAA8B;IAC7C,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,8BAA8B,GAAG,eAAe,CAE/F"}
@@ -0,0 +1,3 @@
1
+ export function createDatabaseConnection(input) {
2
+ return input.adapter;
3
+ }
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Drizzle Database Type Definitions
3
+ *
4
+ * This module provides type-safe, driver-agnostic database access for
5
+ * PostgreSQL repositories.
6
+ *
7
+ * We use `PgDatabase` from `drizzle-orm/pg-core` — the base class that all
8
+ * PostgreSQL drivers extend (postgres-js, pglite, node-postgres, bun-sql).
9
+ * This means:
10
+ *
11
+ * - Repositories accept any PG driver without casts
12
+ * - PGlite in tests and postgres-js in production use the same type
13
+ * - Row types are fully inferred from pgTable schema definitions
14
+ * - No coupling to any specific driver package
15
+ */
16
+ import type { PgDatabase, PgQueryResultHKT } from "drizzle-orm/pg-core";
17
+ import * as schema from "./schema.js";
18
+ /**
19
+ * Combined schema type for type inference
20
+ */
21
+ export type Schema = typeof schema;
22
+ /**
23
+ * Driver-agnostic PostgreSQL database instance with full schema type
24
+ * information.
25
+ *
26
+ * Both `PostgresJsDatabase<Schema>` and `PgliteDatabase<Schema>` are
27
+ * assignable to this type, so repositories work identically in production
28
+ * and tests without any casts.
29
+ */
30
+ export type DrizzleDatabase = PgDatabase<PgQueryResultHKT, Schema>;
31
+ /**
32
+ * Transaction type extracted from the database type.
33
+ * Used when operating within a transaction context.
34
+ *
35
+ * This type is derived from the transaction callback parameter:
36
+ * db.transaction(async (tx) => { ... })
37
+ * ^^-- This is DrizzleTx
38
+ */
39
+ export type DrizzleTx = Parameters<Parameters<DrizzleDatabase["transaction"]>[0]>[0];
40
+ /**
41
+ * Union type for database or transaction - repositories can accept either.
42
+ * Both have the same query builder interface.
43
+ */
44
+ export type DbOrTx = DrizzleDatabase | DrizzleTx;
45
+ /**
46
+ * Re-export schema for convenience
47
+ */
48
+ export { schema };
49
+ //# sourceMappingURL=drizzle-db.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drizzle-db.d.ts","sourceRoot":"","sources":["../../../src/kernel/database/drizzle-db.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,MAAM,MAAM,aAAa,CAAC;AAEtC;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG,OAAO,MAAM,CAAC;AAEnC;;;;;;;GAOG;AACH,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,gBAAgB,EAAE,MAAM,CAAC,CAAC;AAEnE;;;;;;;GAOG;AACH,MAAM,MAAM,SAAS,GAAG,UAAU,CAChC,UAAU,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAC9C,CAAC,CAAC,CAAC,CAAC;AAEL;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,eAAe,GAAG,SAAS,CAAC;AAEjD;;GAEG;AACH,OAAO,EAAE,MAAM,EAAE,CAAC"}