@mantajs/core 0.1.6 → 0.2.0-beta.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/auth-mock.d.ts +44 -0
  2. package/dist/adapters/auth-mock.d.ts.map +1 -0
  3. package/dist/adapters/auth-mock.js +160 -0
  4. package/dist/adapters/auth-mock.js.map +1 -0
  5. package/dist/adapters/cache-memory.d.ts +11 -0
  6. package/dist/adapters/cache-memory.d.ts.map +1 -0
  7. package/dist/adapters/cache-memory.js +32 -0
  8. package/dist/adapters/cache-memory.js.map +1 -0
  9. package/dist/adapters/database-memory.d.ts +24 -0
  10. package/dist/adapters/database-memory.d.ts.map +1 -0
  11. package/dist/adapters/database-memory.js +141 -0
  12. package/dist/adapters/database-memory.js.map +1 -0
  13. package/dist/adapters/eventbus-memory.d.ts +37 -0
  14. package/dist/adapters/eventbus-memory.d.ts.map +1 -0
  15. package/dist/adapters/eventbus-memory.js +166 -0
  16. package/dist/adapters/eventbus-memory.js.map +1 -0
  17. package/dist/adapters/file-memory.d.ts +24 -0
  18. package/dist/adapters/file-memory.d.ts.map +1 -0
  19. package/dist/adapters/file-memory.js +77 -0
  20. package/dist/adapters/file-memory.js.map +1 -0
  21. package/dist/adapters/http-memory.d.ts +23 -0
  22. package/dist/adapters/http-memory.d.ts.map +1 -0
  23. package/dist/adapters/http-memory.js +149 -0
  24. package/dist/adapters/http-memory.js.map +1 -0
  25. package/dist/adapters/index.d.ts +14 -0
  26. package/dist/adapters/index.d.ts.map +1 -0
  27. package/dist/adapters/index.js +15 -0
  28. package/dist/adapters/index.js.map +1 -0
  29. package/dist/adapters/job-scheduler-memory.d.ts +20 -0
  30. package/dist/adapters/job-scheduler-memory.d.ts.map +1 -0
  31. package/dist/adapters/job-scheduler-memory.js +103 -0
  32. package/dist/adapters/job-scheduler-memory.js.map +1 -0
  33. package/dist/adapters/locking-memory.d.ts +20 -0
  34. package/dist/adapters/locking-memory.d.ts.map +1 -0
  35. package/dist/adapters/locking-memory.js +85 -0
  36. package/dist/adapters/locking-memory.js.map +1 -0
  37. package/dist/adapters/logger-test.d.ts +30 -0
  38. package/dist/adapters/logger-test.d.ts.map +1 -0
  39. package/dist/adapters/logger-test.js +77 -0
  40. package/dist/adapters/logger-test.js.map +1 -0
  41. package/dist/adapters/notification-memory.d.ts +27 -0
  42. package/dist/adapters/notification-memory.d.ts.map +1 -0
  43. package/dist/adapters/notification-memory.js +69 -0
  44. package/dist/adapters/notification-memory.js.map +1 -0
  45. package/dist/adapters/relational-query-memory.d.ts +47 -0
  46. package/dist/adapters/relational-query-memory.d.ts.map +1 -0
  47. package/dist/adapters/relational-query-memory.js +263 -0
  48. package/dist/adapters/relational-query-memory.js.map +1 -0
  49. package/dist/adapters/repository-factory-memory.d.ts +17 -0
  50. package/dist/adapters/repository-factory-memory.d.ts.map +1 -0
  51. package/dist/adapters/repository-factory-memory.js +32 -0
  52. package/dist/adapters/repository-factory-memory.js.map +1 -0
  53. package/dist/adapters/repository-memory.d.ts +30 -0
  54. package/dist/adapters/repository-memory.d.ts.map +1 -0
  55. package/dist/adapters/repository-memory.js +183 -0
  56. package/dist/adapters/repository-memory.js.map +1 -0
  57. package/dist/ai/index.d.ts +53 -0
  58. package/dist/ai/index.d.ts.map +1 -0
  59. package/dist/ai/index.js +48 -0
  60. package/dist/ai/index.js.map +1 -0
  61. package/dist/app/index.d.ts +97 -0
  62. package/dist/app/index.d.ts.map +1 -0
  63. package/dist/app/index.js +217 -0
  64. package/dist/app/index.js.map +1 -0
  65. package/dist/app/request-context.d.ts +35 -0
  66. package/dist/app/request-context.d.ts.map +1 -0
  67. package/dist/app/request-context.js +32 -0
  68. package/dist/app/request-context.js.map +1 -0
  69. package/dist/auth/auth-module-service.d.ts +62 -0
  70. package/dist/auth/auth-module-service.d.ts.map +1 -0
  71. package/dist/auth/auth-module-service.js +210 -0
  72. package/dist/auth/auth-module-service.js.map +1 -0
  73. package/dist/auth/index.d.ts +7 -0
  74. package/dist/auth/index.d.ts.map +1 -0
  75. package/dist/auth/index.js +5 -0
  76. package/dist/auth/index.js.map +1 -0
  77. package/dist/auth/middleware.d.ts +19 -0
  78. package/dist/auth/middleware.d.ts.map +1 -0
  79. package/dist/auth/middleware.js +61 -0
  80. package/dist/auth/middleware.js.map +1 -0
  81. package/dist/auth/models/auth-identity.d.ts +11 -0
  82. package/dist/auth/models/auth-identity.d.ts.map +1 -0
  83. package/dist/auth/models/auth-identity.js +12 -0
  84. package/dist/auth/models/auth-identity.js.map +1 -0
  85. package/dist/auth/providers/emailpass.d.ts +7 -0
  86. package/dist/auth/providers/emailpass.d.ts.map +1 -0
  87. package/dist/auth/providers/emailpass.js +94 -0
  88. package/dist/auth/providers/emailpass.js.map +1 -0
  89. package/dist/auth/providers/types.d.ts +66 -0
  90. package/dist/auth/providers/types.d.ts.map +1 -0
  91. package/dist/auth/providers/types.js +3 -0
  92. package/dist/auth/providers/types.js.map +1 -0
  93. package/dist/auth/types.d.ts +36 -0
  94. package/dist/auth/types.d.ts.map +1 -0
  95. package/dist/auth/types.js +3 -0
  96. package/dist/auth/types.js.map +1 -0
  97. package/dist/command/define-command-graph.d.ts +63 -0
  98. package/dist/command/define-command-graph.d.ts.map +1 -0
  99. package/dist/command/define-command-graph.js +80 -0
  100. package/dist/command/define-command-graph.js.map +1 -0
  101. package/dist/command/dml-to-zod.d.ts +34 -0
  102. package/dist/command/dml-to-zod.d.ts.map +1 -0
  103. package/dist/command/dml-to-zod.js +140 -0
  104. package/dist/command/dml-to-zod.js.map +1 -0
  105. package/dist/command/generate-entity-commands.d.ts +68 -0
  106. package/dist/command/generate-entity-commands.d.ts.map +1 -0
  107. package/dist/command/generate-entity-commands.js +350 -0
  108. package/dist/command/generate-entity-commands.js.map +1 -0
  109. package/dist/command/index.d.ts +54 -0
  110. package/dist/command/index.d.ts.map +1 -0
  111. package/dist/command/index.js +338 -0
  112. package/dist/command/index.js.map +1 -0
  113. package/dist/command/types.d.ts +131 -0
  114. package/dist/command/types.d.ts.map +1 -0
  115. package/dist/command/types.js +2 -0
  116. package/dist/command/types.js.map +1 -0
  117. package/dist/config/built-in-presets.d.ts +20 -0
  118. package/dist/config/built-in-presets.d.ts.map +1 -0
  119. package/dist/config/built-in-presets.js +70 -0
  120. package/dist/config/built-in-presets.js.map +1 -0
  121. package/dist/config/config-manager.d.ts +117 -0
  122. package/dist/config/config-manager.d.ts.map +1 -0
  123. package/dist/config/config-manager.js +245 -0
  124. package/dist/config/config-manager.js.map +1 -0
  125. package/dist/config/define-config.d.ts +20 -0
  126. package/dist/config/define-config.d.ts.map +1 -0
  127. package/dist/config/define-config.js +64 -0
  128. package/dist/config/define-config.js.map +1 -0
  129. package/dist/config/feature-flags.d.ts +48 -0
  130. package/dist/config/feature-flags.d.ts.map +1 -0
  131. package/dist/config/feature-flags.js +97 -0
  132. package/dist/config/feature-flags.js.map +1 -0
  133. package/dist/config/index.d.ts +9 -0
  134. package/dist/config/index.d.ts.map +1 -0
  135. package/dist/config/index.js +8 -0
  136. package/dist/config/index.js.map +1 -0
  137. package/dist/config/presets.d.ts +38 -0
  138. package/dist/config/presets.d.ts.map +1 -0
  139. package/dist/config/presets.js +29 -0
  140. package/dist/config/presets.js.map +1 -0
  141. package/dist/config/types.d.ts +707 -0
  142. package/dist/config/types.d.ts.map +1 -0
  143. package/dist/config/types.js +112 -0
  144. package/dist/config/types.js.map +1 -0
  145. package/dist/context/index.d.ts +95 -0
  146. package/dist/context/index.d.ts.map +1 -0
  147. package/dist/context/index.js +26 -0
  148. package/dist/context/index.js.map +1 -0
  149. package/dist/context/registry.d.ts +32 -0
  150. package/dist/context/registry.d.ts.map +1 -0
  151. package/dist/context/registry.js +142 -0
  152. package/dist/context/registry.js.map +1 -0
  153. package/dist/db/index.d.ts +2 -0
  154. package/dist/db/index.d.ts.map +1 -0
  155. package/dist/db/index.js +4 -0
  156. package/dist/db/index.js.map +1 -0
  157. package/dist/db/schema.d.ts +839 -0
  158. package/dist/db/schema.d.ts.map +1 -0
  159. package/dist/db/schema.js +106 -0
  160. package/dist/db/schema.js.map +1 -0
  161. package/dist/dml/entity.d.ts +132 -0
  162. package/dist/dml/entity.d.ts.map +1 -0
  163. package/dist/dml/entity.js +110 -0
  164. package/dist/dml/entity.js.map +1 -0
  165. package/dist/dml/from-zod.d.ts +13 -0
  166. package/dist/dml/from-zod.d.ts.map +1 -0
  167. package/dist/dml/from-zod.js +81 -0
  168. package/dist/dml/from-zod.js.map +1 -0
  169. package/dist/dml/generator/index.d.ts +62 -0
  170. package/dist/dml/generator/index.d.ts.map +1 -0
  171. package/dist/dml/generator/index.js +208 -0
  172. package/dist/dml/generator/index.js.map +1 -0
  173. package/dist/dml/index.d.ts +11 -0
  174. package/dist/dml/index.d.ts.map +1 -0
  175. package/dist/dml/index.js +13 -0
  176. package/dist/dml/index.js.map +1 -0
  177. package/dist/dml/infer.d.ts +36 -0
  178. package/dist/dml/infer.d.ts.map +1 -0
  179. package/dist/dml/infer.js +5 -0
  180. package/dist/dml/infer.js.map +1 -0
  181. package/dist/dml/model.d.ts +58 -0
  182. package/dist/dml/model.d.ts.map +1 -0
  183. package/dist/dml/model.js +95 -0
  184. package/dist/dml/model.js.map +1 -0
  185. package/dist/dml/modifiers.d.ts +9 -0
  186. package/dist/dml/modifiers.d.ts.map +1 -0
  187. package/dist/dml/modifiers.js +25 -0
  188. package/dist/dml/modifiers.js.map +1 -0
  189. package/dist/dml/properties/array.d.ts +7 -0
  190. package/dist/dml/properties/array.d.ts.map +1 -0
  191. package/dist/dml/properties/array.js +5 -0
  192. package/dist/dml/properties/array.js.map +1 -0
  193. package/dist/dml/properties/autoincrement.d.ts +7 -0
  194. package/dist/dml/properties/autoincrement.d.ts.map +1 -0
  195. package/dist/dml/properties/autoincrement.js +5 -0
  196. package/dist/dml/properties/autoincrement.js.map +1 -0
  197. package/dist/dml/properties/base.d.ts +124 -0
  198. package/dist/dml/properties/base.d.ts.map +1 -0
  199. package/dist/dml/properties/base.js +76 -0
  200. package/dist/dml/properties/base.js.map +1 -0
  201. package/dist/dml/properties/big-number.d.ts +7 -0
  202. package/dist/dml/properties/big-number.d.ts.map +1 -0
  203. package/dist/dml/properties/big-number.js +5 -0
  204. package/dist/dml/properties/big-number.js.map +1 -0
  205. package/dist/dml/properties/boolean.d.ts +7 -0
  206. package/dist/dml/properties/boolean.d.ts.map +1 -0
  207. package/dist/dml/properties/boolean.js +5 -0
  208. package/dist/dml/properties/boolean.js.map +1 -0
  209. package/dist/dml/properties/computed.d.ts +9 -0
  210. package/dist/dml/properties/computed.d.ts.map +1 -0
  211. package/dist/dml/properties/computed.js +22 -0
  212. package/dist/dml/properties/computed.js.map +1 -0
  213. package/dist/dml/properties/date-time.d.ts +7 -0
  214. package/dist/dml/properties/date-time.d.ts.map +1 -0
  215. package/dist/dml/properties/date-time.js +5 -0
  216. package/dist/dml/properties/date-time.js.map +1 -0
  217. package/dist/dml/properties/enum.d.ts +12 -0
  218. package/dist/dml/properties/enum.d.ts.map +1 -0
  219. package/dist/dml/properties/enum.js +14 -0
  220. package/dist/dml/properties/enum.js.map +1 -0
  221. package/dist/dml/properties/float.d.ts +7 -0
  222. package/dist/dml/properties/float.d.ts.map +1 -0
  223. package/dist/dml/properties/float.js +5 -0
  224. package/dist/dml/properties/float.js.map +1 -0
  225. package/dist/dml/properties/index.d.ts +15 -0
  226. package/dist/dml/properties/index.d.ts.map +1 -0
  227. package/dist/dml/properties/index.js +15 -0
  228. package/dist/dml/properties/index.js.map +1 -0
  229. package/dist/dml/properties/json.d.ts +7 -0
  230. package/dist/dml/properties/json.d.ts.map +1 -0
  231. package/dist/dml/properties/json.js +6 -0
  232. package/dist/dml/properties/json.js.map +1 -0
  233. package/dist/dml/properties/nullable.d.ts +23 -0
  234. package/dist/dml/properties/nullable.d.ts.map +1 -0
  235. package/dist/dml/properties/nullable.js +46 -0
  236. package/dist/dml/properties/nullable.js.map +1 -0
  237. package/dist/dml/properties/number.d.ts +10 -0
  238. package/dist/dml/properties/number.d.ts.map +1 -0
  239. package/dist/dml/properties/number.js +13 -0
  240. package/dist/dml/properties/number.js.map +1 -0
  241. package/dist/dml/properties/primary-key.d.ts +14 -0
  242. package/dist/dml/properties/primary-key.d.ts.map +1 -0
  243. package/dist/dml/properties/primary-key.js +23 -0
  244. package/dist/dml/properties/primary-key.js.map +1 -0
  245. package/dist/dml/properties/text.d.ts +15 -0
  246. package/dist/dml/properties/text.d.ts.map +1 -0
  247. package/dist/dml/properties/text.js +19 -0
  248. package/dist/dml/properties/text.js.map +1 -0
  249. package/dist/dml/relations/belongs-to.d.ts +20 -0
  250. package/dist/dml/relations/belongs-to.d.ts.map +1 -0
  251. package/dist/dml/relations/belongs-to.js +29 -0
  252. package/dist/dml/relations/belongs-to.js.map +1 -0
  253. package/dist/dml/relations/has-many.d.ts +16 -0
  254. package/dist/dml/relations/has-many.d.ts.map +1 -0
  255. package/dist/dml/relations/has-many.js +25 -0
  256. package/dist/dml/relations/has-many.js.map +1 -0
  257. package/dist/dml/relations/has-one.d.ts +26 -0
  258. package/dist/dml/relations/has-one.d.ts.map +1 -0
  259. package/dist/dml/relations/has-one.js +46 -0
  260. package/dist/dml/relations/has-one.js.map +1 -0
  261. package/dist/dml/relations/many-to-many.d.ts +9 -0
  262. package/dist/dml/relations/many-to-many.d.ts.map +1 -0
  263. package/dist/dml/relations/many-to-many.js +11 -0
  264. package/dist/dml/relations/many-to-many.js.map +1 -0
  265. package/dist/errors/manta-error.d.ts +68 -0
  266. package/dist/errors/manta-error.d.ts.map +1 -0
  267. package/dist/errors/manta-error.js +80 -0
  268. package/dist/errors/manta-error.js.map +1 -0
  269. package/dist/events/index.d.ts +3 -0
  270. package/dist/events/index.d.ts.map +1 -0
  271. package/dist/events/index.js +3 -0
  272. package/dist/events/index.js.map +1 -0
  273. package/dist/events/message-aggregator.d.ts +25 -0
  274. package/dist/events/message-aggregator.d.ts.map +1 -0
  275. package/dist/events/message-aggregator.js +35 -0
  276. package/dist/events/message-aggregator.js.map +1 -0
  277. package/dist/events/types.d.ts +42 -0
  278. package/dist/events/types.d.ts.map +1 -0
  279. package/dist/events/types.js +3 -0
  280. package/dist/events/types.js.map +1 -0
  281. package/dist/index.d.ts +55 -0
  282. package/dist/index.d.ts.map +1 -0
  283. package/dist/index.js +53 -0
  284. package/dist/index.js.map +1 -0
  285. package/dist/job/index.d.ts +52 -0
  286. package/dist/job/index.d.ts.map +1 -0
  287. package/dist/job/index.js +31 -0
  288. package/dist/job/index.js.map +1 -0
  289. package/dist/link/index.d.ts +97 -0
  290. package/dist/link/index.d.ts.map +1 -0
  291. package/dist/link/index.js +185 -0
  292. package/dist/link/index.js.map +1 -0
  293. package/dist/middleware/define-middleware.d.ts +54 -0
  294. package/dist/middleware/define-middleware.d.ts.map +1 -0
  295. package/dist/middleware/define-middleware.js +40 -0
  296. package/dist/middleware/define-middleware.js.map +1 -0
  297. package/dist/middleware/index.d.ts +56 -0
  298. package/dist/middleware/index.d.ts.map +1 -0
  299. package/dist/middleware/index.js +50 -0
  300. package/dist/middleware/index.js.map +1 -0
  301. package/dist/module/index.d.ts +56 -0
  302. package/dist/module/index.d.ts.map +1 -0
  303. package/dist/module/index.js +52 -0
  304. package/dist/module/index.js.map +1 -0
  305. package/dist/module/versioning.d.ts +27 -0
  306. package/dist/module/versioning.d.ts.map +1 -0
  307. package/dist/module/versioning.js +64 -0
  308. package/dist/module/versioning.js.map +1 -0
  309. package/dist/naming.d.ts +39 -0
  310. package/dist/naming.d.ts.map +1 -0
  311. package/dist/naming.js +95 -0
  312. package/dist/naming.js.map +1 -0
  313. package/dist/ports/analytics.d.ts +7 -0
  314. package/dist/ports/analytics.d.ts.map +1 -0
  315. package/dist/ports/analytics.js +3 -0
  316. package/dist/ports/analytics.js.map +1 -0
  317. package/dist/ports/auth.d.ts +27 -0
  318. package/dist/ports/auth.d.ts.map +1 -0
  319. package/dist/ports/auth.js +3 -0
  320. package/dist/ports/auth.js.map +1 -0
  321. package/dist/ports/cache.d.ts +35 -0
  322. package/dist/ports/cache.d.ts.map +1 -0
  323. package/dist/ports/cache.js +3 -0
  324. package/dist/ports/cache.js.map +1 -0
  325. package/dist/ports/database.d.ts +40 -0
  326. package/dist/ports/database.d.ts.map +1 -0
  327. package/dist/ports/database.js +3 -0
  328. package/dist/ports/database.js.map +1 -0
  329. package/dist/ports/event-bus.d.ts +85 -0
  330. package/dist/ports/event-bus.d.ts.map +1 -0
  331. package/dist/ports/event-bus.js +3 -0
  332. package/dist/ports/event-bus.js.map +1 -0
  333. package/dist/ports/file.d.ts +62 -0
  334. package/dist/ports/file.d.ts.map +1 -0
  335. package/dist/ports/file.js +3 -0
  336. package/dist/ports/file.js.map +1 -0
  337. package/dist/ports/http.d.ts +20 -0
  338. package/dist/ports/http.d.ts.map +1 -0
  339. package/dist/ports/http.js +3 -0
  340. package/dist/ports/http.js.map +1 -0
  341. package/dist/ports/in-memory-progress-channel.d.ts +9 -0
  342. package/dist/ports/in-memory-progress-channel.d.ts.map +1 -0
  343. package/dist/ports/in-memory-progress-channel.js +19 -0
  344. package/dist/ports/in-memory-progress-channel.js.map +1 -0
  345. package/dist/ports/in-memory-queue.d.ts +24 -0
  346. package/dist/ports/in-memory-queue.d.ts.map +1 -0
  347. package/dist/ports/in-memory-queue.js +63 -0
  348. package/dist/ports/in-memory-queue.js.map +1 -0
  349. package/dist/ports/index.d.ts +27 -0
  350. package/dist/ports/index.d.ts.map +1 -0
  351. package/dist/ports/index.js +6 -0
  352. package/dist/ports/index.js.map +1 -0
  353. package/dist/ports/job-scheduler.d.ts +42 -0
  354. package/dist/ports/job-scheduler.d.ts.map +1 -0
  355. package/dist/ports/job-scheduler.js +3 -0
  356. package/dist/ports/job-scheduler.js.map +1 -0
  357. package/dist/ports/locking.d.ts +43 -0
  358. package/dist/ports/locking.d.ts.map +1 -0
  359. package/dist/ports/locking.js +3 -0
  360. package/dist/ports/locking.js.map +1 -0
  361. package/dist/ports/logger.d.ts +65 -0
  362. package/dist/ports/logger.d.ts.map +1 -0
  363. package/dist/ports/logger.js +3 -0
  364. package/dist/ports/logger.js.map +1 -0
  365. package/dist/ports/notification.d.ts +71 -0
  366. package/dist/ports/notification.d.ts.map +1 -0
  367. package/dist/ports/notification.js +3 -0
  368. package/dist/ports/notification.js.map +1 -0
  369. package/dist/ports/progress-channel.d.ts +46 -0
  370. package/dist/ports/progress-channel.d.ts.map +1 -0
  371. package/dist/ports/progress-channel.js +6 -0
  372. package/dist/ports/progress-channel.js.map +1 -0
  373. package/dist/ports/queue.d.ts +21 -0
  374. package/dist/ports/queue.d.ts.map +1 -0
  375. package/dist/ports/queue.js +15 -0
  376. package/dist/ports/queue.js.map +1 -0
  377. package/dist/ports/relational-query.d.ts +37 -0
  378. package/dist/ports/relational-query.d.ts.map +1 -0
  379. package/dist/ports/relational-query.js +3 -0
  380. package/dist/ports/relational-query.js.map +1 -0
  381. package/dist/ports/repository-factory.d.ts +21 -0
  382. package/dist/ports/repository-factory.d.ts.map +1 -0
  383. package/dist/ports/repository-factory.js +4 -0
  384. package/dist/ports/repository-factory.js.map +1 -0
  385. package/dist/ports/repository.d.ts +73 -0
  386. package/dist/ports/repository.d.ts.map +1 -0
  387. package/dist/ports/repository.js +3 -0
  388. package/dist/ports/repository.js.map +1 -0
  389. package/dist/ports/schema-generator.d.ts +15 -0
  390. package/dist/ports/schema-generator.d.ts.map +1 -0
  391. package/dist/ports/schema-generator.js +4 -0
  392. package/dist/ports/schema-generator.js.map +1 -0
  393. package/dist/ports/search.d.ts +7 -0
  394. package/dist/ports/search.d.ts.map +1 -0
  395. package/dist/ports/search.js +3 -0
  396. package/dist/ports/search.js.map +1 -0
  397. package/dist/ports/types.d.ts +112 -0
  398. package/dist/ports/types.d.ts.map +1 -0
  399. package/dist/ports/types.js +26 -0
  400. package/dist/ports/types.js.map +1 -0
  401. package/dist/ports/workflow-store.d.ts +111 -0
  402. package/dist/ports/workflow-store.d.ts.map +1 -0
  403. package/dist/ports/workflow-store.js +5 -0
  404. package/dist/ports/workflow-store.js.map +1 -0
  405. package/dist/query/define-query-graph.d.ts +55 -0
  406. package/dist/query/define-query-graph.d.ts.map +1 -0
  407. package/dist/query/define-query-graph.js +59 -0
  408. package/dist/query/define-query-graph.js.map +1 -0
  409. package/dist/query/define-query.d.ts +79 -0
  410. package/dist/query/define-query.d.ts.map +1 -0
  411. package/dist/query/define-query.js +77 -0
  412. package/dist/query/define-query.js.map +1 -0
  413. package/dist/query/extend-query-graph.d.ts +36 -0
  414. package/dist/query/extend-query-graph.d.ts.map +1 -0
  415. package/dist/query/extend-query-graph.js +34 -0
  416. package/dist/query/extend-query-graph.js.map +1 -0
  417. package/dist/query/index.d.ts +181 -0
  418. package/dist/query/index.d.ts.map +1 -0
  419. package/dist/query/index.js +288 -0
  420. package/dist/query/index.js.map +1 -0
  421. package/dist/service/define.d.ts +97 -0
  422. package/dist/service/define.d.ts.map +1 -0
  423. package/dist/service/define.js +45 -0
  424. package/dist/service/define.js.map +1 -0
  425. package/dist/service/index.d.ts +52 -0
  426. package/dist/service/index.d.ts.map +1 -0
  427. package/dist/service/index.js +281 -0
  428. package/dist/service/index.js.map +1 -0
  429. package/dist/service/instantiate.d.ts +15 -0
  430. package/dist/service/instantiate.d.ts.map +1 -0
  431. package/dist/service/instantiate.js +143 -0
  432. package/dist/service/instantiate.js.map +1 -0
  433. package/dist/service/snapshot-repository.d.ts +31 -0
  434. package/dist/service/snapshot-repository.d.ts.map +1 -0
  435. package/dist/service/snapshot-repository.js +114 -0
  436. package/dist/service/snapshot-repository.js.map +1 -0
  437. package/dist/service/types.d.ts +39 -0
  438. package/dist/service/types.d.ts.map +1 -0
  439. package/dist/service/types.js +3 -0
  440. package/dist/service/types.js.map +1 -0
  441. package/dist/strict-mode/index.d.ts +42 -0
  442. package/dist/strict-mode/index.d.ts.map +1 -0
  443. package/dist/strict-mode/index.js +84 -0
  444. package/dist/strict-mode/index.js.map +1 -0
  445. package/dist/subscriber/index.d.ts +117 -0
  446. package/dist/subscriber/index.d.ts.map +1 -0
  447. package/dist/subscriber/index.js +76 -0
  448. package/dist/subscriber/index.js.map +1 -0
  449. package/dist/testing/relational-query-suite.d.ts +22 -0
  450. package/dist/testing/relational-query-suite.d.ts.map +1 -0
  451. package/dist/testing/relational-query-suite.js +233 -0
  452. package/dist/testing/relational-query-suite.js.map +1 -0
  453. package/dist/user/auto-routes.d.ts +32 -0
  454. package/dist/user/auto-routes.d.ts.map +1 -0
  455. package/dist/user/auto-routes.js +424 -0
  456. package/dist/user/auto-routes.js.map +1 -0
  457. package/dist/user/define-user.d.ts +54 -0
  458. package/dist/user/define-user.d.ts.map +1 -0
  459. package/dist/user/define-user.js +103 -0
  460. package/dist/user/define-user.js.map +1 -0
  461. package/dist/user/index.d.ts +7 -0
  462. package/dist/user/index.d.ts.map +1 -0
  463. package/dist/user/index.js +5 -0
  464. package/dist/user/index.js.map +1 -0
  465. package/dist/user/models/user.d.ts +15 -0
  466. package/dist/user/models/user.d.ts.map +1 -0
  467. package/dist/user/models/user.js +16 -0
  468. package/dist/user/models/user.js.map +1 -0
  469. package/dist/user/user-module-service.d.ts +55 -0
  470. package/dist/user/user-module-service.d.ts.map +1 -0
  471. package/dist/user/user-module-service.js +100 -0
  472. package/dist/user/user-module-service.js.map +1 -0
  473. package/dist/workflows/ai-step.d.ts +2 -0
  474. package/dist/workflows/ai-step.d.ts.map +1 -0
  475. package/dist/workflows/ai-step.js +54 -0
  476. package/dist/workflows/ai-step.js.map +1 -0
  477. package/dist/workflows/create-step.d.ts +16 -0
  478. package/dist/workflows/create-step.d.ts.map +1 -0
  479. package/dist/workflows/create-step.js +194 -0
  480. package/dist/workflows/create-step.js.map +1 -0
  481. package/dist/workflows/create-workflow.d.ts +16 -0
  482. package/dist/workflows/create-workflow.d.ts.map +1 -0
  483. package/dist/workflows/create-workflow.js +21 -0
  484. package/dist/workflows/create-workflow.js.map +1 -0
  485. package/dist/workflows/define-workflow.d.ts +55 -0
  486. package/dist/workflows/define-workflow.d.ts.map +1 -0
  487. package/dist/workflows/define-workflow.js +72 -0
  488. package/dist/workflows/define-workflow.js.map +1 -0
  489. package/dist/workflows/emit-event-step.d.ts +17 -0
  490. package/dist/workflows/emit-event-step.d.ts.map +1 -0
  491. package/dist/workflows/emit-event-step.js +46 -0
  492. package/dist/workflows/emit-event-step.js.map +1 -0
  493. package/dist/workflows/for-each.d.ts +6 -0
  494. package/dist/workflows/for-each.d.ts.map +1 -0
  495. package/dist/workflows/for-each.js +79 -0
  496. package/dist/workflows/for-each.js.map +1 -0
  497. package/dist/workflows/index.d.ts +15 -0
  498. package/dist/workflows/index.d.ts.map +1 -0
  499. package/dist/workflows/index.js +12 -0
  500. package/dist/workflows/index.js.map +1 -0
  501. package/dist/workflows/manager.d.ts +99 -0
  502. package/dist/workflows/manager.d.ts.map +1 -0
  503. package/dist/workflows/manager.js +450 -0
  504. package/dist/workflows/manager.js.map +1 -0
  505. package/dist/workflows/orphan-reaper.d.ts +50 -0
  506. package/dist/workflows/orphan-reaper.d.ts.map +1 -0
  507. package/dist/workflows/orphan-reaper.js +69 -0
  508. package/dist/workflows/orphan-reaper.js.map +1 -0
  509. package/dist/workflows/progress-helper.d.ts +20 -0
  510. package/dist/workflows/progress-helper.d.ts.map +1 -0
  511. package/dist/workflows/progress-helper.js +48 -0
  512. package/dist/workflows/progress-helper.js.map +1 -0
  513. package/dist/workflows/step.d.ts +103 -0
  514. package/dist/workflows/step.d.ts.map +1 -0
  515. package/dist/workflows/step.js +949 -0
  516. package/dist/workflows/step.js.map +1 -0
  517. package/dist/workflows/types.d.ts +215 -0
  518. package/dist/workflows/types.d.ts.map +1 -0
  519. package/dist/workflows/types.js +9 -0
  520. package/dist/workflows/types.js.map +1 -0
  521. package/dist/workflows/yield.d.ts +12 -0
  522. package/dist/workflows/yield.d.ts.map +1 -0
  523. package/dist/workflows/yield.js +29 -0
  524. package/dist/workflows/yield.js.map +1 -0
  525. package/docs/00-overview.md +254 -0
  526. package/docs/01-getting-started.md +224 -0
  527. package/docs/02-models.md +163 -0
  528. package/docs/03-services.md +208 -0
  529. package/docs/04-users.md +165 -0
  530. package/docs/05-commands.md +501 -0
  531. package/docs/06-queries.md +342 -0
  532. package/docs/07-events.md +248 -0
  533. package/docs/08-links.md +182 -0
  534. package/docs/09-agents.md +142 -0
  535. package/docs/10-spa.md +327 -0
  536. package/docs/11-config.md +481 -0
  537. package/docs/12-constraints.md +183 -0
  538. package/docs/13-testing.md +345 -0
  539. package/docs/14-adapters.md +204 -0
  540. package/docs/15-hosts.md +163 -0
  541. package/docs/16-reference.md +274 -0
  542. package/docs/17-dashboard.md +619 -0
  543. package/docs/AGENT.md +501 -0
  544. package/package.json +49 -52
  545. package/.medusa/server/src/admin/index.js +0 -5358
  546. package/.medusa/server/src/admin/index.mjs +0 -5356
  547. package/.medusa/server/src/api/admin/companies/[id]/route.js +0 -39
  548. package/.medusa/server/src/api/admin/companies/middlewares.js +0 -41
  549. package/.medusa/server/src/api/admin/companies/route.js +0 -37
  550. package/.medusa/server/src/api/admin/companies/validators.js +0 -29
  551. package/.medusa/server/src/api/middlewares.js +0 -8
  552. package/.medusa/server/src/index.js +0 -5
  553. package/.medusa/server/src/modules/company/index.js +0 -13
  554. package/.medusa/server/src/modules/company/migrations/Migration20260126141741.js +0 -26
  555. package/.medusa/server/src/modules/company/models/company.js +0 -24
  556. package/.medusa/server/src/modules/company/models/employee.js +0 -15
  557. package/.medusa/server/src/modules/company/models/index.js +0 -11
  558. package/.medusa/server/src/modules/company/service.js +0 -11
  559. package/.medusa/server/src/workflows/create-company.js +0 -10
  560. package/.medusa/server/src/workflows/delete-company.js +0 -10
  561. package/.medusa/server/src/workflows/steps/create-company.js +0 -16
  562. package/.medusa/server/src/workflows/steps/delete-company.js +0 -30
  563. package/.medusa/server/src/workflows/steps/update-company.js +0 -30
  564. package/.medusa/server/src/workflows/update-company.js +0 -10
package/dist/index.js ADDED
@@ -0,0 +1,53 @@
1
+ // @mantajs/core — Public API
2
+ //
3
+ // Everything is a define*():
4
+ // import { defineModel, defineService, defineCommand, ... } from '@mantajs/core'
5
+ //
6
+ // Helpers used inside define*():
7
+ // field.text(), field.number(), defineService()
8
+ //
9
+ // Step (workflow unit):
10
+ // step.MODULE.create(), step.action(), step.emit()
11
+ export { InMemoryCacheAdapter, InMemoryDatabaseAdapter, InMemoryEventBusAdapter, InMemoryFileAdapter, InMemoryHttpAdapter, InMemoryJobScheduler, InMemoryLockingAdapter, InMemoryNotificationAdapter, InMemoryRelationalQuery, InMemoryRepository, InMemoryRepositoryFactory, InMemoryTransaction, MockAuthGateway, MockAuthModuleService, MockAuthPort, TestLogger, } from './adapters';
12
+ // ── Agent (AI step) ──────────────────────────────
13
+ export { defineAgent } from './ai';
14
+ export { createApp, createTestMantaApp, getRequestContext, MantaAppBuilder, runInRequestContext } from './app';
15
+ // ── Commands (CQRS tool-first) ───────────────────
16
+ export { CommandRegistry, defineCommand, defineCommandGraph, dmlToZod, generateEntityCommands, generateLinkCommands, generateModuleCommands, getCommandScope, isCommandAllowed, isModuleAllowed, QUERY_TOOL_SCHEMA, zodToJsonSchema, } from './command';
17
+ // ── Config ───────────────────────────────────────
18
+ export { AuthConfigSchema, AuthSessionConfigSchema, BootConfigSchema, BUILT_IN_PRESETS, ConfigManager, cloudflarePreset, DatabaseConfigSchema, defineConfig, definePreset, devPreset, EventsConfigSchema, FlagRouter, HttpConfigSchema, LoadedConfigSchema, QueryConfigSchema, RateLimitConfigSchema, SessionCookieConfigSchema, SPA_DEFAULTS, vercelPreset, } from './config';
19
+ export { ContextRegistry } from './context';
20
+ export { ArrayProperty, AutoIncrementProperty, BaseProperty, BaseProperty as DmlProperty, BigNumberProperty, BooleanProperty, ComputedProperty, DateTimeProperty, EnumProperty, FloatProperty, JSONProperty, NullableModifier, NumberProperty, PrimaryKeyModifier, TextProperty, } from './dml';
21
+ export { DmlEntity } from './dml/entity';
22
+ export { fromZodSchema } from './dml/from-zod';
23
+ export { generateDrizzleSchema, parseDmlEntity } from './dml/generator';
24
+ // ── DML (Data Modeling Language) ─────────────────
25
+ export { defineModel, field, model } from './dml/model';
26
+ export { belongsTo } from './dml/relations/belongs-to';
27
+ export { hasMany } from './dml/relations/has-many';
28
+ export { hasOne, hasOneWithFK } from './dml/relations/has-one';
29
+ // ── Errors ───────────────────────────────────────
30
+ export { MantaError, PermanentSubscriberError, permanentSubscriberFailure } from './errors/manta-error';
31
+ export { MessageAggregator } from './events';
32
+ // ── Job ──────────────────────────────────────────
33
+ export { defineJob } from './job';
34
+ // ── Link ─────────────────────────────────────────
35
+ export { clearLinkRegistry, createModelProxy, defineLink, getRegisteredLinks, many, REMOTE_LINK, registerLink, } from './link';
36
+ export { defineMiddleware, defineMiddlewares, ERROR_STATUS_MAP, mapErrorToStatus } from './middleware';
37
+ export { Module } from './module'; // internal — used by plugin-medusa shim
38
+ export { ModuleVersionChecker } from './module/versioning';
39
+ // ── Naming conventions ──────────────────────────
40
+ export { pluralize, toCamel, toKebab, toPascal, toSnake, toTableKey, validateCamelCase, validatePascalCase, } from './naming';
41
+ export { ContainerRegistrationKeys, InMemoryProgressChannel, InMemoryQueueAdapter } from './ports';
42
+ // ── Query ────────────────────────────────────────
43
+ export { defineQuery, defineQueryGraph, extendQueryGraph, getEntityFilter, isEntityAllowed, QueryRegistry, QueryService, } from './query';
44
+ // ── Service ──────────────────────────────────────
45
+ export { buildEventNamesFromModelName, createService, defineService, instantiateServiceDescriptor, isServiceDescriptor, } from './service';
46
+ export { checkAutoDiscovery, checkEventNameAutoGeneration, checkLinkLocations, checkRouteConflicts, checkUnboundedRelations, getEntityThreshold, } from './strict-mode';
47
+ // ── Subscriber ───────────────────────────────────
48
+ export { defineSubscriber, makeIdempotent, registerSubscriber } from './subscriber';
49
+ // ── User ────────────────────────────────────────
50
+ export { defineUserModel } from './user';
51
+ export { generateAllUserRoutes, getPublicPaths } from './user/auto-routes';
52
+ export { CancelledError, createForEach, createOrphanReaperJob, createProgress, createStep, createWorkflow, DEFAULT_ORPHAN_REAP_LIMIT, DEFAULT_ORPHAN_THRESHOLD_MS, defineWorkflow, ENTITY_TAG, emitEventStep, ORPHAN_REAPER_JOB_NAME, ORPHAN_REAPER_SCHEDULE, step, WORKFLOW_ORPHANED_CODE, WorkflowManager, } from './workflows';
53
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,6BAA6B;AAC7B,EAAE;AACF,6BAA6B;AAC7B,mFAAmF;AACnF,EAAE;AACF,iCAAiC;AACjC,kDAAkD;AAClD,EAAE;AACF,wBAAwB;AACxB,qDAAqD;AAKrD,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,2BAA2B,EAC3B,uBAAuB,EACvB,kBAAkB,EAClB,yBAAyB,EACzB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,EACrB,YAAY,EACZ,UAAU,GACX,MAAM,YAAY,CAAA;AAEnB,oDAAoD;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,MAAM,CAAA;AAGlC,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,OAAO,CAAA;AAe9G,oDAAoD;AACpD,OAAO,EACL,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,QAAQ,EACR,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,eAAe,GAChB,MAAM,WAAW,CAAA;AAElB,oDAAoD;AACpD,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,gBAAgB,EAChB,oBAAoB,EACpB,YAAY,EACZ,YAAY,EACZ,SAAS,EACT,kBAAkB,EAClB,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,yBAAyB,EACzB,YAAY,EACZ,YAAY,GACb,MAAM,UAAU,CAAA;AAYjB,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAA;AAC3C,OAAO,EACL,aAAa,EACb,qBAAqB,EACrB,YAAY,EACZ,YAAY,IAAI,WAAW,EAC3B,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAElB,YAAY,GACb,MAAM,OAAO,CAAA;AAEd,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAA;AAQ9C,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAEvE,oDAAoD;AACpD,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAE9D,oDAAoD;AACpD,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAA;AAGvG,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAE5C,oDAAoD;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAEjC,oDAAoD;AACpD,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,kBAAkB,EAClB,IAAI,EACJ,WAAW,EACX,YAAY,GACb,MAAM,QAAQ,CAAA;AAEf,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAGtG,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAA,CAAC,wCAAwC;AAE1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,mDAAmD;AACnD,OAAO,EACL,SAAS,EACT,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,EACP,UAAU,EACV,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,UAAU,CAAA;AA+CjB,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAmBlG,oDAAoD;AACpD,OAAO,EACL,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,aAAa,EACb,YAAY,GACb,MAAM,SAAS,CAAA;AAEhB,oDAAoD;AACpD,OAAO,EACL,4BAA4B,EAC5B,aAAa,EACb,aAAa,EACb,4BAA4B,EAC5B,mBAAmB,GACpB,MAAM,WAAW,CAAA;AAElB,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,kBAAkB,EAClB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,eAAe,CAAA;AAStB,oDAAoD;AACpD,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAA;AAEnF,mDAAmD;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,QAAQ,CAAA;AAExC,OAAO,EAAE,qBAAqB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AA0B1E,OAAO,EACL,cAAc,EACd,aAAa,EACb,qBAAqB,EACrB,cAAc,EACd,UAAU,EACV,cAAc,EACd,yBAAyB,EACzB,2BAA2B,EAC3B,cAAc,EACd,UAAU,EACV,aAAa,EACb,sBAAsB,EACtB,sBAAsB,EACtB,IAAI,EACJ,sBAAsB,EACtB,eAAe,GAChB,MAAM,aAAa,CAAA"}
@@ -0,0 +1,52 @@
1
+ import type { MantaApp } from '../app';
2
+ import type { MantaCommands } from '../command/types';
3
+ import type { IDatabasePort, INotificationPort } from '../ports';
4
+ import type { ILoggerPort } from '../ports/logger';
5
+ /**
6
+ * Scoped context passed to job handlers — same shape as subscriber scope.
7
+ * - `command` — CQRS command callables (with autocomplete from codegen)
8
+ * - `log` — logger instance
9
+ */
10
+ export interface JobScope {
11
+ command: MantaCommands;
12
+ log: ILoggerPort;
13
+ /** Fully booted app, for advanced jobs that need framework ports. */
14
+ app: MantaApp;
15
+ /** Database port. Use this instead of importing a concrete database adapter. */
16
+ db?: IDatabasePort;
17
+ /** Notification port. Use this instead of importing a concrete email/SMS SDK. */
18
+ notification?: INotificationPort;
19
+ }
20
+ /**
21
+ * Typed job definition.
22
+ */
23
+ export interface JobDefinition<TResult = unknown> {
24
+ __type: 'job';
25
+ name: string;
26
+ schedule: string;
27
+ handler: (scope: JobScope) => Promise<TResult>;
28
+ }
29
+ /**
30
+ * Define a scheduled job.
31
+ * Handler receives `{ command, log }` — same scope as subscribers.
32
+ *
33
+ * @example
34
+ * defineJob('cleanup-drafts', '0 3 * * *', async ({ command }) => {
35
+ * await command.cleanupDraftProducts({ olderThanDays: 30 })
36
+ * })
37
+ */
38
+ export declare function defineJob<TResult = unknown>(name: string, schedule: string, handler: (scope: JobScope) => Promise<TResult>): JobDefinition<TResult>;
39
+ /**
40
+ * Define a scheduled job using config object.
41
+ *
42
+ * @example
43
+ * defineJob({
44
+ * name: 'cleanup-drafts',
45
+ * schedule: '0 3 * * *',
46
+ * handler: async ({ command }) => {
47
+ * await command.cleanupDraftProducts({ olderThanDays: 30 })
48
+ * },
49
+ * })
50
+ */
51
+ export declare function defineJob<TResult = unknown>(config: Omit<JobDefinition<TResult>, '__type'>): JobDefinition<TResult>;
52
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/job/index.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAA;AACtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAErD,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAChE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAElD;;;;GAIG;AACH,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,aAAa,CAAA;IACtB,GAAG,EAAE,WAAW,CAAA;IAChB,qEAAqE;IACrE,GAAG,EAAE,QAAQ,CAAA;IACb,gFAAgF;IAChF,EAAE,CAAC,EAAE,aAAa,CAAA;IAClB,iFAAiF;IACjF,YAAY,CAAC,EAAE,iBAAiB,CAAA;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa,CAAC,OAAO,GAAG,OAAO;IAC9C,MAAM,EAAE,KAAK,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;CAC/C;AAED;;;;;;;;GAQG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAG,OAAO,EACzC,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC,OAAO,CAAC,GAC7C,aAAa,CAAC,OAAO,CAAC,CAAA;AAEzB;;;;;;;;;;;GAWG;AACH,wBAAgB,SAAS,CAAC,OAAO,GAAG,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC,CAAA"}
@@ -0,0 +1,31 @@
1
+ // Job definition — typed cron scheduler that dispatches commands
2
+ //
3
+ // Jobs receive { command, log } — same scope as subscribers.
4
+ // Every mutation goes through a command (compensation, retry, audit trail).
5
+ //
6
+ // Usage:
7
+ // defineJob('cleanup-drafts', '0 3 * * *', async ({ command }) => {
8
+ // await command.cleanupDraftProducts({ olderThanDays: 30 })
9
+ // })
10
+ import { MantaError } from '../errors/manta-error';
11
+ // ── Implementation ──────────────────────────────────────────────────
12
+ export function defineJob(nameOrConfig, schedule, handler) {
13
+ if (typeof nameOrConfig === 'object') {
14
+ const config = nameOrConfig;
15
+ if (!config.name)
16
+ throw new MantaError('INVALID_DATA', 'Job name is required');
17
+ if (!config.schedule)
18
+ throw new MantaError('INVALID_DATA', 'Job schedule (cron expression) is required');
19
+ if (typeof config.handler !== 'function')
20
+ throw new MantaError('INVALID_DATA', 'Job handler must be a function');
21
+ return { ...config, __type: 'job' };
22
+ }
23
+ if (!nameOrConfig)
24
+ throw new MantaError('INVALID_DATA', 'Job name is required');
25
+ if (!schedule)
26
+ throw new MantaError('INVALID_DATA', 'Job schedule (cron expression) is required');
27
+ if (typeof handler !== 'function')
28
+ throw new MantaError('INVALID_DATA', 'Job handler must be a function');
29
+ return { __type: 'job', name: nameOrConfig, schedule, handler };
30
+ }
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/job/index.ts"],"names":[],"mappings":"AAAA,iEAAiE;AACjE,EAAE;AACF,6DAA6D;AAC7D,4EAA4E;AAC5E,EAAE;AACF,SAAS;AACT,sEAAsE;AACtE,gEAAgE;AAChE,OAAO;AAIP,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AA2DlD,uEAAuE;AACvE,MAAM,UAAU,SAAS,CACvB,YAA6D,EAC7D,QAAiB,EACjB,OAA+C;IAE/C,IAAI,OAAO,YAAY,KAAK,QAAQ,EAAE,CAAC;QACrC,MAAM,MAAM,GAAG,YAAY,CAAA;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAI;YAAE,MAAM,IAAI,UAAU,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAA;QAC9E,IAAI,CAAC,MAAM,CAAC,QAAQ;YAAE,MAAM,IAAI,UAAU,CAAC,cAAc,EAAE,4CAA4C,CAAC,CAAA;QACxG,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,UAAU;YAAE,MAAM,IAAI,UAAU,CAAC,cAAc,EAAE,gCAAgC,CAAC,CAAA;QAChH,OAAO,EAAE,GAAG,MAAM,EAAE,MAAM,EAAE,KAAc,EAAE,CAAA;IAC9C,CAAC;IAED,IAAI,CAAC,YAAY;QAAE,MAAM,IAAI,UAAU,CAAC,cAAc,EAAE,sBAAsB,CAAC,CAAA;IAC/E,IAAI,CAAC,QAAQ;QAAE,MAAM,IAAI,UAAU,CAAC,cAAc,EAAE,4CAA4C,CAAC,CAAA;IACjG,IAAI,OAAO,OAAO,KAAK,UAAU;QAAE,MAAM,IAAI,UAAU,CAAC,cAAc,EAAE,gCAAgC,CAAC,CAAA;IAEzG,OAAO,EAAE,MAAM,EAAE,KAAc,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;AAC1E,CAAC"}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * A reference to a DML entity, produced by createModelProxy().
3
+ */
4
+ export interface ModelRef {
5
+ __modelRef: true;
6
+ entityName: string;
7
+ }
8
+ /**
9
+ * A "many" reference — wraps a ModelRef to indicate the "many" side of a relation.
10
+ */
11
+ export interface ManyRef extends ModelRef {
12
+ __many: true;
13
+ }
14
+ /**
15
+ * Typed model proxy — provides autocomplete for all entities in the app.
16
+ * MantaGeneratedEntities is populated by codegen (.manta/types/types.ts).
17
+ * Falls back to Record<string, ModelRef> when codegen hasn't run.
18
+ */
19
+ export type ModelProxy = {
20
+ [K in keyof MantaGeneratedEntities]: ModelRef;
21
+ } & Record<string, ModelRef>;
22
+ /**
23
+ * Resolved link with computed table name, cardinality, and cascade rules.
24
+ */
25
+ export interface ResolvedLink {
26
+ __type: 'link';
27
+ leftEntity: string;
28
+ rightEntity: string;
29
+ leftModule?: string;
30
+ rightModule?: string;
31
+ tableName: string;
32
+ leftFk: string;
33
+ rightFk: string;
34
+ cardinality: '1:1' | '1:N' | 'M:N';
35
+ cascadeLeft: boolean;
36
+ cascadeRight: boolean;
37
+ extraColumns?: Record<string, unknown>;
38
+ isReadOnlyLink?: boolean;
39
+ /**
40
+ * When true, this is an intra-module link with 1:1 or 1:N cardinality.
41
+ * The framework adds a FK column directly on the child entity instead of creating a pivot table.
42
+ * Set by the bootstrap when both entities belong to the same module.
43
+ */
44
+ isDirectFk?: boolean;
45
+ }
46
+ /**
47
+ * Entity name type — autocompletes from MantaGeneratedEntities (codegen).
48
+ */
49
+ type EntityNameArg = keyof MantaGeneratedEntities | (string & {});
50
+ /**
51
+ * Wrap a ModelRef or entity name to indicate "many" cardinality.
52
+ *
53
+ * @example
54
+ * many('inventory_item')
55
+ * many(model.inventory_item) // legacy callback form
56
+ */
57
+ export declare function many(refOrName: ModelRef | EntityNameArg): ManyRef;
58
+ /**
59
+ * Create a Proxy where any property access returns a ModelRef.
60
+ *
61
+ * @example
62
+ * const m = createModelProxy()
63
+ * m.Product // → { __modelRef: true, entityName: 'Product' }
64
+ */
65
+ export declare function createModelProxy(): ModelProxy;
66
+ /**
67
+ * Define a cross-module link.
68
+ *
69
+ * @example
70
+ * // String form (preferred)
71
+ * defineLink('product', many('variant'))
72
+ * defineLink('product', 'collection', { sortOrder: field.number() })
73
+ *
74
+ * // Legacy callback form
75
+ * defineLink((m) => [m.product, many(m.variant)])
76
+ */
77
+ export declare function defineLink(leftOrCallback: EntityNameArg | ManyRef | ((model: ModelProxy) => [ModelRef | ManyRef, ModelRef | ManyRef]), rightOrExtraColumns?: EntityNameArg | ModelRef | ManyRef | Record<string, unknown>, extraColumns?: Record<string, unknown>): ResolvedLink;
78
+ /**
79
+ * Register a pre-built ResolvedLink directly into the registry.
80
+ * Used by plugins that build links from external discovery (e.g. Medusa compat).
81
+ */
82
+ export declare function registerLink(resolved: ResolvedLink): ResolvedLink;
83
+ /**
84
+ * Get all registered links.
85
+ */
86
+ export declare function getRegisteredLinks(): readonly ResolvedLink[];
87
+ /**
88
+ * Clear the link registry (for testing).
89
+ */
90
+ export declare function clearLinkRegistry(): void;
91
+ /**
92
+ * REMOTE_LINK constant — used as a reference marker in link definitions
93
+ * to indicate a remote/external module link.
94
+ */
95
+ export declare const REMOTE_LINK: unique symbol;
96
+ export {};
97
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/link/index.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,UAAU,EAAE,IAAI,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,OAAQ,SAAQ,QAAQ;IACvC,MAAM,EAAE,IAAI,CAAA;CACb;AAED;;;;GAIG;AACH,MAAM,MAAM,UAAU,GAAG;KACtB,CAAC,IAAI,MAAM,sBAAsB,GAAG,QAAQ;CAC9C,GAAG,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;AAI5B;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;IACnB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAA;IAClC,WAAW,EAAE,OAAO,CAAA;IACpB,YAAY,EAAE,OAAO,CAAA;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB;;;;OAIG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACrB;AAID;;GAEG;AACH,KAAK,aAAa,GAAG,MAAM,sBAAsB,GAAG,CAAC,MAAM,GAAG,EAAE,CAAC,CAAA;AAEjE;;;;;;GAMG;AACH,wBAAgB,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,aAAa,GAAG,OAAO,CAKjE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,CAM7C;AAgBD;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CACxB,cAAc,EAAE,aAAa,GAAG,OAAO,GAAG,CAAC,CAAC,KAAK,EAAE,UAAU,KAAK,CAAC,QAAQ,GAAG,OAAO,EAAE,QAAQ,GAAG,OAAO,CAAC,CAAC,EAC3G,mBAAmB,CAAC,EAAE,aAAa,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClF,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,YAAY,CA0Hd;AAID;;;GAGG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,YAAY,GAAG,YAAY,CAGjE;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,SAAS,YAAY,EAAE,CAE5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAExC;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,eAAkC,CAAA"}
@@ -0,0 +1,185 @@
1
+ // SPEC-012 — defineLink() for cross-module relations
2
+ // Callback API only: defineLink((m) => [m.Product, many(m.Variant)])
3
+ import { MantaError } from '../errors/manta-error';
4
+ /**
5
+ * Wrap a ModelRef or entity name to indicate "many" cardinality.
6
+ *
7
+ * @example
8
+ * many('inventory_item')
9
+ * many(model.inventory_item) // legacy callback form
10
+ */
11
+ export function many(refOrName) {
12
+ if (typeof refOrName === 'string') {
13
+ return { __modelRef: true, entityName: refOrName, __many: true };
14
+ }
15
+ return { ...refOrName, __many: true };
16
+ }
17
+ /**
18
+ * Create a Proxy where any property access returns a ModelRef.
19
+ *
20
+ * @example
21
+ * const m = createModelProxy()
22
+ * m.Product // → { __modelRef: true, entityName: 'Product' }
23
+ */
24
+ export function createModelProxy() {
25
+ return new Proxy({}, {
26
+ get(_, prop) {
27
+ return { __modelRef: true, entityName: prop };
28
+ },
29
+ });
30
+ }
31
+ function isModelRef(value) {
32
+ return typeof value === 'object' && value !== null && '__modelRef' in value && value.__modelRef === true;
33
+ }
34
+ function isManyRef(value) {
35
+ return isModelRef(value) && '__many' in value && value.__many === true;
36
+ }
37
+ // ── Registry ────────────────────────────────────────────
38
+ const LINK_REGISTRY = [];
39
+ // ── defineLink ──────────────────────────────────────────
40
+ /**
41
+ * Define a cross-module link.
42
+ *
43
+ * @example
44
+ * // String form (preferred)
45
+ * defineLink('product', many('variant'))
46
+ * defineLink('product', 'collection', { sortOrder: field.number() })
47
+ *
48
+ * // Legacy callback form
49
+ * defineLink((m) => [m.product, many(m.variant)])
50
+ */
51
+ export function defineLink(leftOrCallback, rightOrExtraColumns, extraColumns) {
52
+ let left;
53
+ let right;
54
+ let extra;
55
+ if (typeof leftOrCallback === 'function') {
56
+ // Legacy callback form
57
+ const proxy = createModelProxy();
58
+ [left, right] = leftOrCallback(proxy);
59
+ extra = rightOrExtraColumns;
60
+ }
61
+ else {
62
+ // String form: defineLink('product', 'variant') or defineLink('product', many('variant'))
63
+ // Also handle: defineLink(many('customer'), many('customer_group'))
64
+ if (isModelRef(leftOrCallback)) {
65
+ left = leftOrCallback;
66
+ }
67
+ else {
68
+ left = { __modelRef: true, entityName: leftOrCallback };
69
+ }
70
+ if (typeof rightOrExtraColumns === 'string') {
71
+ right = { __modelRef: true, entityName: rightOrExtraColumns };
72
+ }
73
+ else if (isModelRef(rightOrExtraColumns)) {
74
+ right = rightOrExtraColumns;
75
+ }
76
+ else {
77
+ throw new MantaError('INVALID_DATA', 'defineLink: second argument must be an entity name string or many()');
78
+ }
79
+ extra = extraColumns;
80
+ }
81
+ if (!isModelRef(left) || !isModelRef(right)) {
82
+ throw new MantaError('INVALID_DATA', 'defineLink callback must return an array of two ModelRef values');
83
+ }
84
+ // Validate entity names: must be camelCase (e.g. 'customer', 'customerGroup'), not snake_case
85
+ for (const ref of [left, right]) {
86
+ const name = ref.entityName;
87
+ if (name.includes('_')) {
88
+ const camel = name.toLowerCase().replace(/_([a-z])/g, (_, c) => c.toUpperCase());
89
+ throw new MantaError('INVALID_DATA', `defineLink: entity name "${name}" must be camelCase. Use "${camel}" instead of "${name}".`);
90
+ }
91
+ if (name.includes('-')) {
92
+ const camel = name.toLowerCase().replace(/-([a-z])/g, (_, c) => c.toUpperCase());
93
+ throw new MantaError('INVALID_DATA', `defineLink: entity name "${name}" must be camelCase. Use "${camel}" instead of "${name}".`);
94
+ }
95
+ }
96
+ const leftEntity = left.entityName;
97
+ const rightEntity = right.entityName;
98
+ if (leftEntity === rightEntity) {
99
+ throw new MantaError('INVALID_DATA', `defineLink: both sides reference the same entity "${leftEntity}". Self-links are not supported.`);
100
+ }
101
+ // Check for duplicates
102
+ const duplicate = LINK_REGISTRY.find((l) => l.leftEntity === leftEntity && l.rightEntity === rightEntity);
103
+ if (duplicate) {
104
+ throw new MantaError('DUPLICATE_ERROR', `Link between "${leftEntity}" and "${rightEntity}" is already defined (table: "${duplicate.tableName}"). Each entity pair can only have one link.`);
105
+ }
106
+ // Infer cardinality
107
+ const leftMany = isManyRef(left);
108
+ const rightMany = isManyRef(right);
109
+ let cardinality;
110
+ if (leftMany && rightMany) {
111
+ cardinality = 'M:N';
112
+ }
113
+ else if (leftMany || rightMany) {
114
+ cardinality = '1:N';
115
+ }
116
+ else {
117
+ cardinality = '1:1';
118
+ }
119
+ // Auto-cascade rules:
120
+ // 1:1 — deleting either side cascades to the other entity
121
+ // 1:N — deleting the "one" side cascades to the "many" side, not the reverse
122
+ // M:N — no entity cascade (pivot rows always cleaned up regardless)
123
+ let cascadeLeft;
124
+ let cascadeRight;
125
+ if (cardinality === '1:1') {
126
+ cascadeLeft = true;
127
+ cascadeRight = true;
128
+ }
129
+ else if (cardinality === '1:N') {
130
+ // "one" side cascades to "many" side
131
+ // If right is many → left is one → cascadeLeft=true (deleting left cascades to right)
132
+ // If left is many → right is one → cascadeRight=true (deleting right cascades to left)
133
+ cascadeLeft = rightMany;
134
+ cascadeRight = leftMany;
135
+ }
136
+ else {
137
+ cascadeLeft = false;
138
+ cascadeRight = false;
139
+ }
140
+ // DB names use snake_case: 'customerGroup' → 'customer_group'
141
+ const leftSnake = leftEntity.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase();
142
+ const rightSnake = rightEntity.replace(/([a-z])([A-Z])/g, '$1_$2').toLowerCase();
143
+ const tableName = `${leftSnake}_${rightSnake}`;
144
+ const resolved = {
145
+ __type: 'link',
146
+ leftEntity,
147
+ rightEntity,
148
+ tableName,
149
+ leftFk: `${leftSnake}_id`,
150
+ rightFk: `${rightSnake}_id`,
151
+ cardinality,
152
+ cascadeLeft,
153
+ cascadeRight,
154
+ extraColumns: extra,
155
+ };
156
+ LINK_REGISTRY.push(resolved);
157
+ return resolved;
158
+ }
159
+ // ── Public registry API ─────────────────────────────────
160
+ /**
161
+ * Register a pre-built ResolvedLink directly into the registry.
162
+ * Used by plugins that build links from external discovery (e.g. Medusa compat).
163
+ */
164
+ export function registerLink(resolved) {
165
+ LINK_REGISTRY.push(resolved);
166
+ return resolved;
167
+ }
168
+ /**
169
+ * Get all registered links.
170
+ */
171
+ export function getRegisteredLinks() {
172
+ return LINK_REGISTRY;
173
+ }
174
+ /**
175
+ * Clear the link registry (for testing).
176
+ */
177
+ export function clearLinkRegistry() {
178
+ LINK_REGISTRY.length = 0;
179
+ }
180
+ /**
181
+ * REMOTE_LINK constant — used as a reference marker in link definitions
182
+ * to indicate a remote/external module link.
183
+ */
184
+ export const REMOTE_LINK = Symbol.for('manta:remote_link');
185
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/link/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Middleware request object — minimal interface for the handler.
3
+ */
4
+ export interface MiddlewareRequest {
5
+ method: string;
6
+ url: string;
7
+ headers: Record<string, string | string[] | undefined>;
8
+ /** Verify auth for a given context. Returns the auth entity or null. */
9
+ verifyAuth: (contextName: string) => Promise<{
10
+ entity: Record<string, unknown>;
11
+ actorType: string;
12
+ actorId: string;
13
+ } | null>;
14
+ /** Parsed body (if POST/PUT/PATCH). */
15
+ body?: unknown;
16
+ /** Parsed query parameters. */
17
+ query?: Record<string, unknown>;
18
+ }
19
+ /**
20
+ * What defineMiddleware() returns — a per-context middleware definition.
21
+ */
22
+ export interface MiddlewareDefinition {
23
+ handler: (req: MiddlewareRequest, next: () => Promise<unknown>) => Promise<unknown>;
24
+ __type: 'middleware';
25
+ }
26
+ /**
27
+ * Define a per-context middleware override.
28
+ *
29
+ * Place the file in `src/middleware/{context}.ts` to override the auto-generated
30
+ * middleware for that context. The auto-generated middleware (from defineUser)
31
+ * handles JWT verification and actor_type checking. Use defineMiddleware to add
32
+ * custom logic on top (RBAC, rate limiting, etc.).
33
+ *
34
+ * @example
35
+ * ```typescript
36
+ * // src/middleware/admin.ts
37
+ * import { defineMiddleware, MantaError } from '@mantajs/core'
38
+ *
39
+ * export default defineMiddleware(async (req, next) => {
40
+ * const auth = await req.verifyAuth('admin')
41
+ * if (!auth) throw new MantaError('UNAUTHORIZED')
42
+ *
43
+ * // Custom RBAC logic
44
+ * const user = auth.entity
45
+ * if (user.role === 'viewer' && req.method !== 'GET') {
46
+ * throw new MantaError('FORBIDDEN', 'Viewers have read-only access')
47
+ * }
48
+ *
49
+ * return next()
50
+ * })
51
+ * ```
52
+ */
53
+ export declare function defineMiddleware(handler: (req: MiddlewareRequest, next: () => Promise<unknown>) => Promise<unknown>): MiddlewareDefinition;
54
+ //# sourceMappingURL=define-middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/define-middleware.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,CAAA;IACtD,wEAAwE;IACxE,UAAU,EAAE,CACV,WAAW,EAAE,MAAM,KAChB,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;IAC5F,uCAAuC;IACvC,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,+BAA+B;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAA;IACnF,MAAM,EAAE,YAAY,CAAA;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,CAAC,GAAG,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,GAClF,oBAAoB,CAQtB"}
@@ -0,0 +1,40 @@
1
+ // SPEC-V2 — defineMiddleware() (singular)
2
+ // Per-context middleware override. Used in src/middleware/{context}.ts
3
+ import { MantaError } from '../errors/manta-error';
4
+ /**
5
+ * Define a per-context middleware override.
6
+ *
7
+ * Place the file in `src/middleware/{context}.ts` to override the auto-generated
8
+ * middleware for that context. The auto-generated middleware (from defineUser)
9
+ * handles JWT verification and actor_type checking. Use defineMiddleware to add
10
+ * custom logic on top (RBAC, rate limiting, etc.).
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * // src/middleware/admin.ts
15
+ * import { defineMiddleware, MantaError } from '@mantajs/core'
16
+ *
17
+ * export default defineMiddleware(async (req, next) => {
18
+ * const auth = await req.verifyAuth('admin')
19
+ * if (!auth) throw new MantaError('UNAUTHORIZED')
20
+ *
21
+ * // Custom RBAC logic
22
+ * const user = auth.entity
23
+ * if (user.role === 'viewer' && req.method !== 'GET') {
24
+ * throw new MantaError('FORBIDDEN', 'Viewers have read-only access')
25
+ * }
26
+ *
27
+ * return next()
28
+ * })
29
+ * ```
30
+ */
31
+ export function defineMiddleware(handler) {
32
+ if (typeof handler !== 'function') {
33
+ throw new MantaError('INVALID_DATA', 'defineMiddleware() requires a handler function');
34
+ }
35
+ return {
36
+ handler,
37
+ __type: 'middleware',
38
+ };
39
+ }
40
+ //# sourceMappingURL=define-middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"define-middleware.js","sourceRoot":"","sources":["../../src/middleware/define-middleware.ts"],"names":[],"mappings":"AAAA,0CAA0C;AAC1C,uEAAuE;AAEvE,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AA2BlD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAmF;IAEnF,IAAI,OAAO,OAAO,KAAK,UAAU,EAAE,CAAC;QAClC,MAAM,IAAI,UAAU,CAAC,cAAc,EAAE,gDAAgD,CAAC,CAAA;IACxF,CAAC;IACD,OAAO;QACL,OAAO;QACP,MAAM,EAAE,YAAY;KACrB,CAAA;AACH,CAAC"}
@@ -0,0 +1,56 @@
1
+ import type { MantaErrorType } from '../errors/manta-error';
2
+ export type { MiddlewareDefinition, MiddlewareRequest } from './define-middleware';
3
+ export { defineMiddleware } from './define-middleware';
4
+ /**
5
+ * A single middleware configuration entry.
6
+ */
7
+ export interface MiddlewareConfig {
8
+ matcher: string | RegExp | ((req: unknown) => boolean);
9
+ method?: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'HEAD' | 'OPTIONS';
10
+ bodyParser?: {
11
+ type: 'json' | 'multipart' | 'text' | 'urlencoded';
12
+ };
13
+ validators?: {
14
+ body?: unknown;
15
+ query?: unknown;
16
+ };
17
+ rateLimit?: {
18
+ maxRequests: number;
19
+ windowMs: number;
20
+ };
21
+ middlewares?: Array<(req: unknown, res: unknown, next: () => void) => Promise<void> | void>;
22
+ errorHandler?: (err: unknown, req: unknown, res: unknown, next: () => void) => void;
23
+ RBAC?: {
24
+ policies?: string[];
25
+ };
26
+ AUTHENTICATE?: false;
27
+ }
28
+ /**
29
+ * defineMiddlewares() — declares middleware pipeline configuration for routes.
30
+ *
31
+ * Returns the configurations for the IHttpPort adapter to apply
32
+ * as part of the 12-step pipeline.
33
+ *
34
+ * Usage:
35
+ * export default defineMiddlewares([
36
+ * {
37
+ * matcher: '/admin/products',
38
+ * method: 'POST',
39
+ * validators: { body: CreateProductSchema },
40
+ * },
41
+ * {
42
+ * matcher: '/store/*',
43
+ * rateLimit: { maxRequests: 200, windowMs: 60_000 },
44
+ * },
45
+ * ])
46
+ */
47
+ export declare function defineMiddlewares(configs: MiddlewareConfig[]): MiddlewareConfig[];
48
+ /**
49
+ * Error-to-HTTP-status mapping per SPEC-041.
50
+ */
51
+ export declare const ERROR_STATUS_MAP: Record<string, number>;
52
+ /**
53
+ * Map a MantaError type to an HTTP status code.
54
+ */
55
+ export declare function mapErrorToStatus(errorType: MantaErrorType | string): number;
56
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AAE3D,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAClF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAA;AAEtD;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC,CAAA;IACtD,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAA;IACzE,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,MAAM,GAAG,YAAY,CAAA;KAAE,CAAA;IACnE,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,OAAO,CAAA;QACd,KAAK,CAAC,EAAE,OAAO,CAAA;KAChB,CAAA;IACD,SAAS,CAAC,EAAE;QACV,WAAW,EAAE,MAAM,CAAA;QACnB,QAAQ,EAAE,MAAM,CAAA;KACjB,CAAA;IACD,WAAW,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAA;IAC3F,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,KAAK,IAAI,CAAA;IACnF,IAAI,CAAC,EAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,CAAA;IAC9B,YAAY,CAAC,EAAE,KAAK,CAAA;CACrB;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,EAAE,CAEjF;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAcnD,CAAA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,cAAc,GAAG,MAAM,GAAG,MAAM,CAE3E"}