@mantajs/cli 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 (282) hide show
  1. package/bin/manta.mjs +20 -0
  2. package/bin/manta.ts +13 -0
  3. package/dist/admin/generate-admin-config.d.ts +8 -0
  4. package/dist/admin/generate-admin-config.d.ts.map +1 -0
  5. package/dist/admin/generate-admin-config.js +127 -0
  6. package/dist/admin/generate-admin-config.js.map +1 -0
  7. package/dist/ai/chat-handler.d.ts +10 -0
  8. package/dist/ai/chat-handler.d.ts.map +1 -0
  9. package/dist/ai/chat-handler.js +1353 -0
  10. package/dist/ai/chat-handler.js.map +1 -0
  11. package/dist/bootstrap/boot.d.ts +25 -0
  12. package/dist/bootstrap/boot.d.ts.map +1 -0
  13. package/dist/bootstrap/boot.js +344 -0
  14. package/dist/bootstrap/boot.js.map +1 -0
  15. package/dist/bootstrap/bootstrap-app.d.ts +71 -0
  16. package/dist/bootstrap/bootstrap-app.d.ts.map +1 -0
  17. package/dist/bootstrap/bootstrap-app.js +308 -0
  18. package/dist/bootstrap/bootstrap-app.js.map +1 -0
  19. package/dist/bootstrap/bootstrap-context.d.ts +76 -0
  20. package/dist/bootstrap/bootstrap-context.d.ts.map +1 -0
  21. package/dist/bootstrap/bootstrap-context.js +4 -0
  22. package/dist/bootstrap/bootstrap-context.js.map +1 -0
  23. package/dist/bootstrap/bootstrap-helpers.d.ts +71 -0
  24. package/dist/bootstrap/bootstrap-helpers.d.ts.map +1 -0
  25. package/dist/bootstrap/bootstrap-helpers.js +373 -0
  26. package/dist/bootstrap/bootstrap-helpers.js.map +1 -0
  27. package/dist/bootstrap/generate-types.d.ts +7 -0
  28. package/dist/bootstrap/generate-types.d.ts.map +1 -0
  29. package/dist/bootstrap/generate-types.js +832 -0
  30. package/dist/bootstrap/generate-types.js.map +1 -0
  31. package/dist/bootstrap/phases/assemble/index.d.ts +5 -0
  32. package/dist/bootstrap/phases/assemble/index.d.ts.map +1 -0
  33. package/dist/bootstrap/phases/assemble/index.js +5 -0
  34. package/dist/bootstrap/phases/assemble/index.js.map +1 -0
  35. package/dist/bootstrap/phases/assemble/load-links.d.ts +3 -0
  36. package/dist/bootstrap/phases/assemble/load-links.d.ts.map +1 -0
  37. package/dist/bootstrap/phases/assemble/load-links.js +160 -0
  38. package/dist/bootstrap/phases/assemble/load-links.js.map +1 -0
  39. package/dist/bootstrap/phases/assemble/load-modules.d.ts +3 -0
  40. package/dist/bootstrap/phases/assemble/load-modules.d.ts.map +1 -0
  41. package/dist/bootstrap/phases/assemble/load-modules.js +163 -0
  42. package/dist/bootstrap/phases/assemble/load-modules.js.map +1 -0
  43. package/dist/bootstrap/phases/assemble/load-resources.d.ts +3 -0
  44. package/dist/bootstrap/phases/assemble/load-resources.d.ts.map +1 -0
  45. package/dist/bootstrap/phases/assemble/load-resources.js +270 -0
  46. package/dist/bootstrap/phases/assemble/load-resources.js.map +1 -0
  47. package/dist/bootstrap/phases/assemble/wire-commands.d.ts +3 -0
  48. package/dist/bootstrap/phases/assemble/wire-commands.d.ts.map +1 -0
  49. package/dist/bootstrap/phases/assemble/wire-commands.js +408 -0
  50. package/dist/bootstrap/phases/assemble/wire-commands.js.map +1 -0
  51. package/dist/bootstrap/phases/assemble-modules.d.ts +3 -0
  52. package/dist/bootstrap/phases/assemble-modules.d.ts.map +1 -0
  53. package/dist/bootstrap/phases/assemble-modules.js +14 -0
  54. package/dist/bootstrap/phases/assemble-modules.js.map +1 -0
  55. package/dist/bootstrap/phases/build-app.d.ts +3 -0
  56. package/dist/bootstrap/phases/build-app.d.ts.map +1 -0
  57. package/dist/bootstrap/phases/build-app.js +15 -0
  58. package/dist/bootstrap/phases/build-app.js.map +1 -0
  59. package/dist/bootstrap/phases/discover-resources.d.ts +3 -0
  60. package/dist/bootstrap/phases/discover-resources.d.ts.map +1 -0
  61. package/dist/bootstrap/phases/discover-resources.js +60 -0
  62. package/dist/bootstrap/phases/discover-resources.js.map +1 -0
  63. package/dist/bootstrap/phases/index.d.ts +7 -0
  64. package/dist/bootstrap/phases/index.d.ts.map +1 -0
  65. package/dist/bootstrap/phases/index.js +7 -0
  66. package/dist/bootstrap/phases/index.js.map +1 -0
  67. package/dist/bootstrap/phases/init-infra.d.ts +3 -0
  68. package/dist/bootstrap/phases/init-infra.d.ts.map +1 -0
  69. package/dist/bootstrap/phases/init-infra.js +193 -0
  70. package/dist/bootstrap/phases/init-infra.js.map +1 -0
  71. package/dist/bootstrap/phases/seed-dev-users.d.ts +3 -0
  72. package/dist/bootstrap/phases/seed-dev-users.d.ts.map +1 -0
  73. package/dist/bootstrap/phases/seed-dev-users.js +93 -0
  74. package/dist/bootstrap/phases/seed-dev-users.js.map +1 -0
  75. package/dist/bootstrap/phases/wire/auth-helpers.d.ts +12 -0
  76. package/dist/bootstrap/phases/wire/auth-helpers.d.ts.map +1 -0
  77. package/dist/bootstrap/phases/wire/auth-helpers.js +25 -0
  78. package/dist/bootstrap/phases/wire/auth-helpers.js.map +1 -0
  79. package/dist/bootstrap/phases/wire/contexts/context-registry.d.ts +4 -0
  80. package/dist/bootstrap/phases/wire/contexts/context-registry.d.ts.map +1 -0
  81. package/dist/bootstrap/phases/wire/contexts/context-registry.js +96 -0
  82. package/dist/bootstrap/phases/wire/contexts/context-registry.js.map +1 -0
  83. package/dist/bootstrap/phases/wire/contexts/cqrs-routes.d.ts +3 -0
  84. package/dist/bootstrap/phases/wire/contexts/cqrs-routes.d.ts.map +1 -0
  85. package/dist/bootstrap/phases/wire/contexts/cqrs-routes.js +138 -0
  86. package/dist/bootstrap/phases/wire/contexts/cqrs-routes.js.map +1 -0
  87. package/dist/bootstrap/phases/wire/contexts/index.d.ts +6 -0
  88. package/dist/bootstrap/phases/wire/contexts/index.d.ts.map +1 -0
  89. package/dist/bootstrap/phases/wire/contexts/index.js +6 -0
  90. package/dist/bootstrap/phases/wire/contexts/index.js.map +1 -0
  91. package/dist/bootstrap/phases/wire/contexts/query-endpoints.d.ts +3 -0
  92. package/dist/bootstrap/phases/wire/contexts/query-endpoints.d.ts.map +1 -0
  93. package/dist/bootstrap/phases/wire/contexts/query-endpoints.js +116 -0
  94. package/dist/bootstrap/phases/wire/contexts/query-endpoints.js.map +1 -0
  95. package/dist/bootstrap/phases/wire/contexts/spa-warnings.d.ts +3 -0
  96. package/dist/bootstrap/phases/wire/contexts/spa-warnings.d.ts.map +1 -0
  97. package/dist/bootstrap/phases/wire/contexts/spa-warnings.js +17 -0
  98. package/dist/bootstrap/phases/wire/contexts/spa-warnings.js.map +1 -0
  99. package/dist/bootstrap/phases/wire/contexts/user-routes.d.ts +3 -0
  100. package/dist/bootstrap/phases/wire/contexts/user-routes.d.ts.map +1 -0
  101. package/dist/bootstrap/phases/wire/contexts/user-routes.js +83 -0
  102. package/dist/bootstrap/phases/wire/contexts/user-routes.js.map +1 -0
  103. package/dist/bootstrap/phases/wire/index.d.ts +5 -0
  104. package/dist/bootstrap/phases/wire/index.d.ts.map +1 -0
  105. package/dist/bootstrap/phases/wire/index.js +5 -0
  106. package/dist/bootstrap/phases/wire/index.js.map +1 -0
  107. package/dist/bootstrap/phases/wire/wire-adapter.d.ts +12 -0
  108. package/dist/bootstrap/phases/wire/wire-adapter.d.ts.map +1 -0
  109. package/dist/bootstrap/phases/wire/wire-adapter.js +156 -0
  110. package/dist/bootstrap/phases/wire/wire-adapter.js.map +1 -0
  111. package/dist/bootstrap/phases/wire/wire-auth.d.ts +3 -0
  112. package/dist/bootstrap/phases/wire/wire-auth.d.ts.map +1 -0
  113. package/dist/bootstrap/phases/wire/wire-auth.js +46 -0
  114. package/dist/bootstrap/phases/wire/wire-auth.js.map +1 -0
  115. package/dist/bootstrap/phases/wire/wire-contexts.d.ts +3 -0
  116. package/dist/bootstrap/phases/wire/wire-contexts.d.ts.map +1 -0
  117. package/dist/bootstrap/phases/wire/wire-contexts.js +15 -0
  118. package/dist/bootstrap/phases/wire/wire-contexts.js.map +1 -0
  119. package/dist/bootstrap/phases/wire/wire-cron-routes.d.ts +3 -0
  120. package/dist/bootstrap/phases/wire/wire-cron-routes.d.ts.map +1 -0
  121. package/dist/bootstrap/phases/wire/wire-cron-routes.js +102 -0
  122. package/dist/bootstrap/phases/wire/wire-cron-routes.js.map +1 -0
  123. package/dist/bootstrap/phases/wire/wire-extras.d.ts +3 -0
  124. package/dist/bootstrap/phases/wire/wire-extras.d.ts.map +1 -0
  125. package/dist/bootstrap/phases/wire/wire-extras.js +305 -0
  126. package/dist/bootstrap/phases/wire/wire-extras.js.map +1 -0
  127. package/dist/bootstrap/phases/wire/wire-workflow-routes.d.ts +3 -0
  128. package/dist/bootstrap/phases/wire/wire-workflow-routes.d.ts.map +1 -0
  129. package/dist/bootstrap/phases/wire/wire-workflow-routes.js +212 -0
  130. package/dist/bootstrap/phases/wire/wire-workflow-routes.js.map +1 -0
  131. package/dist/bootstrap/phases/wire-http.d.ts +3 -0
  132. package/dist/bootstrap/phases/wire-http.d.ts.map +1 -0
  133. package/dist/bootstrap/phases/wire-http.js +10 -0
  134. package/dist/bootstrap/phases/wire-http.js.map +1 -0
  135. package/dist/bootstrap/validate-generated-ts.d.ts +6 -0
  136. package/dist/bootstrap/validate-generated-ts.d.ts.map +1 -0
  137. package/dist/bootstrap/validate-generated-ts.js +26 -0
  138. package/dist/bootstrap/validate-generated-ts.js.map +1 -0
  139. package/dist/build/generate-manifest.d.ts +10 -0
  140. package/dist/build/generate-manifest.d.ts.map +1 -0
  141. package/dist/build/generate-manifest.js +138 -0
  142. package/dist/build/generate-manifest.js.map +1 -0
  143. package/dist/cli.d.ts +3 -0
  144. package/dist/cli.d.ts.map +1 -0
  145. package/dist/cli.js +421 -0
  146. package/dist/cli.js.map +1 -0
  147. package/dist/commands/build.d.ts +21 -0
  148. package/dist/commands/build.d.ts.map +1 -0
  149. package/dist/commands/build.js +399 -0
  150. package/dist/commands/build.js.map +1 -0
  151. package/dist/commands/db/create.d.ts +17 -0
  152. package/dist/commands/db/create.d.ts.map +1 -0
  153. package/dist/commands/db/create.js +94 -0
  154. package/dist/commands/db/create.js.map +1 -0
  155. package/dist/commands/db/diff.d.ts +39 -0
  156. package/dist/commands/db/diff.d.ts.map +1 -0
  157. package/dist/commands/db/diff.js +81 -0
  158. package/dist/commands/db/diff.js.map +1 -0
  159. package/dist/commands/db/generate.d.ts +58 -0
  160. package/dist/commands/db/generate.d.ts.map +1 -0
  161. package/dist/commands/db/generate.js +138 -0
  162. package/dist/commands/db/generate.js.map +1 -0
  163. package/dist/commands/db/migrate.d.ts +29 -0
  164. package/dist/commands/db/migrate.d.ts.map +1 -0
  165. package/dist/commands/db/migrate.js +118 -0
  166. package/dist/commands/db/migrate.js.map +1 -0
  167. package/dist/commands/db/pg-deps.d.ts +30 -0
  168. package/dist/commands/db/pg-deps.d.ts.map +1 -0
  169. package/dist/commands/db/pg-deps.js +178 -0
  170. package/dist/commands/db/pg-deps.js.map +1 -0
  171. package/dist/commands/db/rollback.d.ts +21 -0
  172. package/dist/commands/db/rollback.d.ts.map +1 -0
  173. package/dist/commands/db/rollback.js +85 -0
  174. package/dist/commands/db/rollback.js.map +1 -0
  175. package/dist/commands/db/types.d.ts +113 -0
  176. package/dist/commands/db/types.d.ts.map +1 -0
  177. package/dist/commands/db/types.js +4 -0
  178. package/dist/commands/db/types.js.map +1 -0
  179. package/dist/commands/dev.d.ts +12 -0
  180. package/dist/commands/dev.d.ts.map +1 -0
  181. package/dist/commands/dev.js +79 -0
  182. package/dist/commands/dev.js.map +1 -0
  183. package/dist/commands/exec.d.ts +21 -0
  184. package/dist/commands/exec.d.ts.map +1 -0
  185. package/dist/commands/exec.js +148 -0
  186. package/dist/commands/exec.js.map +1 -0
  187. package/dist/commands/generate.d.ts +11 -0
  188. package/dist/commands/generate.d.ts.map +1 -0
  189. package/dist/commands/generate.js +19 -0
  190. package/dist/commands/generate.js.map +1 -0
  191. package/dist/commands/init.d.ts +14 -0
  192. package/dist/commands/init.d.ts.map +1 -0
  193. package/dist/commands/init.js +476 -0
  194. package/dist/commands/init.js.map +1 -0
  195. package/dist/commands/start.d.ts +15 -0
  196. package/dist/commands/start.d.ts.map +1 -0
  197. package/dist/commands/start.js +121 -0
  198. package/dist/commands/start.js.map +1 -0
  199. package/dist/commands/user.d.ts +19 -0
  200. package/dist/commands/user.d.ts.map +1 -0
  201. package/dist/commands/user.js +125 -0
  202. package/dist/commands/user.js.map +1 -0
  203. package/dist/config/load-config.d.ts +23 -0
  204. package/dist/config/load-config.d.ts.map +1 -0
  205. package/dist/config/load-config.js +105 -0
  206. package/dist/config/load-config.js.map +1 -0
  207. package/dist/config/load-env.d.ts +11 -0
  208. package/dist/config/load-env.d.ts.map +1 -0
  209. package/dist/config/load-env.js +61 -0
  210. package/dist/config/load-env.js.map +1 -0
  211. package/dist/config/resolve-adapters.d.ts +23 -0
  212. package/dist/config/resolve-adapters.d.ts.map +1 -0
  213. package/dist/config/resolve-adapters.js +96 -0
  214. package/dist/config/resolve-adapters.js.map +1 -0
  215. package/dist/index.d.ts +18 -0
  216. package/dist/index.d.ts.map +1 -0
  217. package/dist/index.js +19 -0
  218. package/dist/index.js.map +1 -0
  219. package/dist/jiti.d.ts +2 -0
  220. package/dist/jiti.d.ts.map +1 -0
  221. package/dist/jiti.js +2 -0
  222. package/dist/jiti.js.map +1 -0
  223. package/dist/openapi/generate-spec.d.ts +56 -0
  224. package/dist/openapi/generate-spec.d.ts.map +1 -0
  225. package/dist/openapi/generate-spec.js +491 -0
  226. package/dist/openapi/generate-spec.js.map +1 -0
  227. package/dist/openapi/index.d.ts +4 -0
  228. package/dist/openapi/index.d.ts.map +1 -0
  229. package/dist/openapi/index.js +3 -0
  230. package/dist/openapi/index.js.map +1 -0
  231. package/dist/openapi/swagger-html.d.ts +2 -0
  232. package/dist/openapi/swagger-html.d.ts.map +1 -0
  233. package/dist/openapi/swagger-html.js +29 -0
  234. package/dist/openapi/swagger-html.js.map +1 -0
  235. package/dist/plugins/merge-resources.d.ts +18 -0
  236. package/dist/plugins/merge-resources.d.ts.map +1 -0
  237. package/dist/plugins/merge-resources.js +76 -0
  238. package/dist/plugins/merge-resources.js.map +1 -0
  239. package/dist/plugins/resolve-plugins.d.ts +14 -0
  240. package/dist/plugins/resolve-plugins.d.ts.map +1 -0
  241. package/dist/plugins/resolve-plugins.js +73 -0
  242. package/dist/plugins/resolve-plugins.js.map +1 -0
  243. package/dist/resource-loader.d.ts +151 -0
  244. package/dist/resource-loader.d.ts.map +1 -0
  245. package/dist/resource-loader.js +456 -0
  246. package/dist/resource-loader.js.map +1 -0
  247. package/dist/route-discovery.d.ts +33 -0
  248. package/dist/route-discovery.d.ts.map +1 -0
  249. package/dist/route-discovery.js +69 -0
  250. package/dist/route-discovery.js.map +1 -0
  251. package/dist/server-bootstrap.d.ts +38 -0
  252. package/dist/server-bootstrap.d.ts.map +1 -0
  253. package/dist/server-bootstrap.js +21 -0
  254. package/dist/server-bootstrap.js.map +1 -0
  255. package/dist/spa/generate-spa.d.ts +15 -0
  256. package/dist/spa/generate-spa.d.ts.map +1 -0
  257. package/dist/spa/generate-spa.js +357 -0
  258. package/dist/spa/generate-spa.js.map +1 -0
  259. package/dist/templates/agent/nextjs.md +129 -0
  260. package/dist/templates/agent/nuxt.md +98 -0
  261. package/dist/templates/agent/standalone.md +498 -0
  262. package/dist/types.d.ts +145 -0
  263. package/dist/types.d.ts.map +1 -0
  264. package/dist/types.js +3 -0
  265. package/dist/types.js.map +1 -0
  266. package/dist/utils/colors.d.ts +7 -0
  267. package/dist/utils/colors.d.ts.map +1 -0
  268. package/dist/utils/colors.js +8 -0
  269. package/dist/utils/colors.js.map +1 -0
  270. package/dist/utils/logger.d.ts +10 -0
  271. package/dist/utils/logger.d.ts.map +1 -0
  272. package/dist/utils/logger.js +27 -0
  273. package/dist/utils/logger.js.map +1 -0
  274. package/dist/utils/prompts.d.ts +6 -0
  275. package/dist/utils/prompts.d.ts.map +1 -0
  276. package/dist/utils/prompts.js +28 -0
  277. package/dist/utils/prompts.js.map +1 -0
  278. package/dist/utils/spinner.d.ts +7 -0
  279. package/dist/utils/spinner.d.ts.map +1 -0
  280. package/dist/utils/spinner.js +20 -0
  281. package/dist/utils/spinner.js.map +1 -0
  282. package/package.json +80 -0
@@ -0,0 +1,308 @@
1
+ // bootstrapApp() — Portable application initialization.
2
+ // Zero dep HTTP. Fonctionne dans Next.js, Nuxt, Nitro standalone, ou un simple script.
3
+ //
4
+ // Responsabilites :
5
+ // 1. Charge le preset et instancie les adapters d'infra
6
+ // 2. Charge les modules (src/modules/)
7
+ // 3. Charge les subscribers (src/subscribers/)
8
+ // 4. Charge les jobs (src/jobs/)
9
+ // 5. Charge les workflows (src/workflows/)
10
+ // 6. Retourne le MantaApp pret
11
+ //
12
+ // Ne gere PAS : le serveur HTTP, le routing, le dashboard admin.
13
+ import { DrizzlePgAdapter } from '@mantajs/adapter-database-pg';
14
+ // Static value imports for registerGlobals — these are bundled by Nitro at build time.
15
+ // CRITICAL: do NOT use `await import('@mantajs/core')` for globals registration — on Vercel,
16
+ // the dynamic import resolves to the RAW .ts files in node_modules/@mantajs/core (which we
17
+ // copy for jiti) instead of the bundled chunks. Node.js can't import .ts → globals not set
18
+ // → every user file import fails → 0 commands registered → everything 404s.
19
+ import { defineAgent as _defineAgent, defineCommand as _defineCommand, defineCommandGraph as _defineCommandGraph, defineConfig as _defineConfig, defineJob as _defineJob, defineLink as _defineLink, defineMiddleware as _defineMiddleware, defineMiddlewares as _defineMiddlewares, defineModel as _defineModel, definePreset as _definePreset, defineQuery as _defineQuery, defineQueryGraph as _defineQueryGraph, defineService as _defineService, defineSubscriber as _defineSubscriber, defineUserModel as _defineUserModel, defineWorkflow as _defineWorkflow, field as _field, MantaError as _MantaError, many as _many, NullableModifier as _NullableModifier, InMemoryCacheAdapter, InMemoryEventBusAdapter, InMemoryFileAdapter, InMemoryJobScheduler, InMemoryLockingAdapter, InMemoryRepositoryFactory, } from '@mantajs/core';
20
+ import { z as _z } from 'zod';
21
+ import { assembleModules, buildApp, discoverResourcesPhase, initializeInfra, seedDevUsers, wireHttpEndpoints, } from './phases';
22
+ export class ConsoleLoggerAdapter {
23
+ _level;
24
+ _activities = new Map();
25
+ constructor(options = {}) {
26
+ this._level = options.level ?? 'info';
27
+ }
28
+ static LEVELS = {
29
+ panic: -1,
30
+ error: 0,
31
+ warn: 1,
32
+ info: 2,
33
+ http: 3,
34
+ verbose: 4,
35
+ debug: 5,
36
+ silly: 6,
37
+ };
38
+ _log(level, msg, ...args) {
39
+ if (!this.shouldLog(level))
40
+ return;
41
+ const method = level === 'panic' || level === 'error' ? 'error' : level === 'warn' ? 'warn' : 'log';
42
+ console[method](`[${level}] ${msg}`, ...args);
43
+ }
44
+ error(msg, ...args) {
45
+ this._log('error', msg, ...args);
46
+ }
47
+ warn(msg, ...args) {
48
+ this._log('warn', msg, ...args);
49
+ }
50
+ info(msg, ...args) {
51
+ this._log('info', msg, ...args);
52
+ }
53
+ http(msg, ...args) {
54
+ this._log('http', msg, ...args);
55
+ }
56
+ verbose(msg, ...args) {
57
+ this._log('verbose', msg, ...args);
58
+ }
59
+ debug(msg, ...args) {
60
+ this._log('debug', msg, ...args);
61
+ }
62
+ silly(msg, ...args) {
63
+ this._log('silly', msg, ...args);
64
+ }
65
+ panic(data) {
66
+ this._log('panic', 'PANIC', data);
67
+ }
68
+ activity(msg) {
69
+ const id = crypto.randomUUID();
70
+ this._activities.set(id, msg);
71
+ this.info(`[activity:${id}] ${msg}`);
72
+ return id;
73
+ }
74
+ progress(id, msg) {
75
+ this.info(`[progress:${id}] ${msg}`);
76
+ }
77
+ success(id, msg) {
78
+ this.info(`[success:${id}] ${msg}`);
79
+ this._activities.delete(id);
80
+ }
81
+ failure(id, msg) {
82
+ this.error(`[failure:${id}] ${msg}`);
83
+ this._activities.delete(id);
84
+ }
85
+ shouldLog(level) {
86
+ const threshold = ConsoleLoggerAdapter.LEVELS[this._level] ?? 2;
87
+ const requested = ConsoleLoggerAdapter.LEVELS[level] ?? 2;
88
+ return level === 'panic' || requested <= threshold;
89
+ }
90
+ setLogLevel(level) {
91
+ this._level = level;
92
+ }
93
+ unsetLogLevel() {
94
+ this._level = 'info';
95
+ }
96
+ }
97
+ /**
98
+ * Adapter factory map — maps adapter package names to factory functions.
99
+ * Production adapters use dynamic imports so they are only loaded when the preset requires them.
100
+ *
101
+ * The `builder` parameter is used for adapters that need to resolve already-registered infra
102
+ * (e.g. IJobSchedulerPort needs ILockingPort + ILoggerPort). During the build phase, we
103
+ * collect instances in a temporary map and pass it via the builder's registerInfra.
104
+ */
105
+ export const ADAPTER_FACTORIES = {
106
+ '@mantajs/adapter-logger-pino': async (opts) => {
107
+ const { PinoLoggerAdapter } = await import('@mantajs/adapter-logger-pino');
108
+ return new PinoLoggerAdapter(opts);
109
+ },
110
+ '@mantajs/core/ConsoleLoggerAdapter': (opts) => new ConsoleLoggerAdapter(opts),
111
+ '@mantajs/adapter-database-pg': () => new DrizzlePgAdapter(),
112
+ '@mantajs/adapter-database-neon': async () => {
113
+ const { NeonDrizzleAdapter } = await import('@mantajs/adapter-database-neon');
114
+ return new NeonDrizzleAdapter();
115
+ },
116
+ '@mantajs/adapter-cache-upstash': async (opts) => {
117
+ const { UpstashCacheAdapter } = await import('@mantajs/adapter-cache-upstash');
118
+ return new UpstashCacheAdapter(opts);
119
+ },
120
+ '@mantajs/adapter-locking-neon': async (_opts, infraMap) => {
121
+ const { NeonLockingAdapter } = await import('@mantajs/adapter-locking-neon');
122
+ const db = infraMap.get('IDatabasePort');
123
+ return new NeonLockingAdapter(db.getPool());
124
+ },
125
+ '@mantajs/adapter-file-vercel-blob': async (opts) => {
126
+ const { VercelBlobAdapter } = await import('@mantajs/adapter-file-vercel-blob');
127
+ return new VercelBlobAdapter(opts);
128
+ },
129
+ '@mantajs/adapter-jobs-vercel-cron': async (_opts, infraMap) => {
130
+ const { VercelCronAdapter } = await import('@mantajs/adapter-jobs-vercel-cron');
131
+ const locking = infraMap.get('ILockingPort');
132
+ const logger = infraMap.get('ILoggerPort');
133
+ return new VercelCronAdapter(locking, logger);
134
+ },
135
+ '@mantajs/adapter-eventbus-upstash': async (opts) => {
136
+ const { UpstashEventBusAdapter } = await import('@mantajs/adapter-eventbus-upstash');
137
+ return new UpstashEventBusAdapter(opts);
138
+ },
139
+ '@mantajs/adapter-notification-resend': async (opts) => {
140
+ const { ResendNotificationAdapter } = await import('@mantajs/adapter-notification-resend');
141
+ return new ResendNotificationAdapter(opts);
142
+ },
143
+ '@mantajs/adapter-database-pg/DrizzleSchemaGenerator': async () => {
144
+ const { DrizzleSchemaGenerator } = await import('@mantajs/adapter-database-pg');
145
+ return new DrizzleSchemaGenerator();
146
+ },
147
+ '@mantajs/adapter-database-pg/DrizzleRepositoryFactory': async (_opts, infraMap) => {
148
+ const { DrizzleRepositoryFactory } = await import('@mantajs/adapter-database-pg');
149
+ return new DrizzleRepositoryFactory({ db: infraMap.get('IDatabasePort') });
150
+ },
151
+ '@mantajs/core/InMemoryCacheAdapter': () => new InMemoryCacheAdapter(),
152
+ '@mantajs/core/InMemoryEventBusAdapter': () => new InMemoryEventBusAdapter(),
153
+ '@mantajs/core/InMemoryLockingAdapter': () => new InMemoryLockingAdapter(),
154
+ '@mantajs/core/InMemoryFileAdapter': () => new InMemoryFileAdapter(),
155
+ '@mantajs/core/InMemoryRepositoryFactory': () => new InMemoryRepositoryFactory(),
156
+ '@mantajs/core/InMemoryJobScheduler': (_opts, infraMap) => {
157
+ return new InMemoryJobScheduler(infraMap.get('ILockingPort'), infraMap.get('ILoggerPort'));
158
+ },
159
+ };
160
+ /**
161
+ * Register global symbols (defineModel, defineService, defineLink, defineCommand, field, many)
162
+ * so that user code can use them without explicit imports.
163
+ * Must be called BEFORE any user module is imported.
164
+ */
165
+ async function registerGlobals() {
166
+ // Force-reference NullableModifier so the bundler doesn't tree-shake nullable.ts.
167
+ // biome-ignore lint/correctness/noUnusedVariables: side-effect anchor
168
+ const _nm = _NullableModifier;
169
+ // Register all define* functions + field/many as globals so user source files
170
+ // (loaded by jiti at runtime) can use them without imports.
171
+ // Uses STATIC imports (bundled by Nitro at build time), NOT dynamic import('@mantajs/core').
172
+ const g = globalThis;
173
+ if (!g.defineModel)
174
+ g.defineModel = _defineModel;
175
+ if (!g.defineService)
176
+ g.defineService = _defineService;
177
+ if (!g.defineLink)
178
+ g.defineLink = _defineLink;
179
+ if (!g.defineCommand)
180
+ g.defineCommand = _defineCommand;
181
+ if (!g.defineCommandGraph)
182
+ g.defineCommandGraph = _defineCommandGraph;
183
+ if (!g.defineAgent)
184
+ g.defineAgent = _defineAgent;
185
+ if (!g.defineSubscriber)
186
+ g.defineSubscriber = _defineSubscriber;
187
+ if (!g.defineJob)
188
+ g.defineJob = _defineJob;
189
+ if (!g.defineUserModel)
190
+ g.defineUserModel = _defineUserModel;
191
+ if (!g.defineQuery)
192
+ g.defineQuery = _defineQuery;
193
+ if (!g.defineQueryGraph)
194
+ g.defineQueryGraph = _defineQueryGraph;
195
+ if (!g.defineWorkflow)
196
+ g.defineWorkflow = _defineWorkflow;
197
+ if (!g.defineConfig)
198
+ g.defineConfig = _defineConfig;
199
+ if (!g.definePreset)
200
+ g.definePreset = _definePreset;
201
+ if (!g.defineMiddleware)
202
+ g.defineMiddleware = _defineMiddleware;
203
+ if (!g.defineMiddlewares)
204
+ g.defineMiddlewares = _defineMiddlewares;
205
+ if (!g.field)
206
+ g.field = _field;
207
+ if (!g.many)
208
+ g.many = _many;
209
+ if (!g.z)
210
+ g.z = _z;
211
+ if (!g.MantaError)
212
+ g.MantaError = _MantaError;
213
+ }
214
+ /**
215
+ * Bootstrap the Manta application — portable, zero HTTP.
216
+ * Loads config, presets, adapters, modules, subscribers, jobs, workflows.
217
+ * Returns the ready MantaApp.
218
+ */
219
+ export async function bootstrapApp(options) {
220
+ const { config, cwd, mode, verbose } = options;
221
+ // Import function: when preloadedImports is available (build-time manifest), look up
222
+ // the module from the static import map first. Falls back to importFn (jiti) or native
223
+ // dynamic import. The preloaded map eliminates ALL runtime filesystem access.
224
+ const preloaded = options.preloadedImports;
225
+ const baseFn = options.importFn ?? ((path) => import(`${path}?t=${Date.now()}`));
226
+ const doImport = preloaded
227
+ ? async (path) => {
228
+ if (preloaded[path])
229
+ return preloaded[path];
230
+ // Try without trailing extension variations
231
+ const withoutTs = path.replace(/\.tsx?$/, '');
232
+ for (const key of Object.keys(preloaded)) {
233
+ if (key === path || key.replace(/\.tsx?$/, '') === withoutTs)
234
+ return preloaded[key];
235
+ }
236
+ // Fallback to runtime import (for edge cases not in manifest)
237
+ return baseFn(path);
238
+ }
239
+ : baseFn;
240
+ // Register globals BEFORE any user code is imported
241
+ await registerGlobals();
242
+ const appRef = { current: null };
243
+ // Create shared bootstrap context
244
+ const ctx = {
245
+ cwd,
246
+ mode,
247
+ verbose: verbose ?? false,
248
+ doImport,
249
+ config,
250
+ options,
251
+ // Phase 1 — populated by initializeInfra
252
+ logger: null,
253
+ db: null,
254
+ infraMap: new Map(),
255
+ repoFactory: null,
256
+ builder: null,
257
+ generatePgTableFromDml: null,
258
+ generateLinkPgTable: null,
259
+ // Phase 2 — populated by discoverResourcesPhase
260
+ resources: null,
261
+ resolvedPlugins: [],
262
+ // Phase 3 — populated by assembleModules
263
+ generatedTables: new Map(),
264
+ entityRegistry: new Map(),
265
+ loadedLinks: [],
266
+ entityCommandRegistry: new Map(),
267
+ explicitCommandNames: new Set(),
268
+ commandGraphDefs: new Map(),
269
+ queryRegistry: null,
270
+ queryGraphDefs: new Map(),
271
+ queryExtensions: [],
272
+ userDefinitions: [],
273
+ moduleScopedCommandNames: [],
274
+ cmdRegistry: null,
275
+ agentRegistry: new Map(),
276
+ // Phase 5 — populated by wireHttpEndpoints
277
+ adapter: null,
278
+ authService: null,
279
+ jwtSecret: '',
280
+ contextRegistry: null,
281
+ };
282
+ await initializeInfra(ctx, appRef);
283
+ await discoverResourcesPhase(ctx);
284
+ await assembleModules(ctx, appRef);
285
+ await buildApp(ctx, appRef);
286
+ await wireHttpEndpoints(ctx, appRef);
287
+ await seedDevUsers(ctx, appRef);
288
+ const app = appRef.current;
289
+ const { logger, db, adapter, resources } = ctx;
290
+ // Shutdown function
291
+ const shutdown = async () => {
292
+ logger.info('Shutting down...');
293
+ try {
294
+ await db.dispose();
295
+ }
296
+ catch (err) {
297
+ logger.error(`DB dispose failed: ${err.message}`);
298
+ }
299
+ try {
300
+ await app.dispose();
301
+ }
302
+ catch (err) {
303
+ logger.error(`App dispose failed: ${err.message}`);
304
+ }
305
+ };
306
+ return { app, adapter, logger, db, resources, shutdown };
307
+ }
308
+ //# sourceMappingURL=bootstrap-app.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-app.js","sourceRoot":"","sources":["../../src/bootstrap/bootstrap-app.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,76 @@
1
+ import type { generateLinkPgTable, generatePgTableFromDml } from '@mantajs/adapter-database-pg';
2
+ import type { H3Adapter } from '@mantajs/adapter-h3';
3
+ import type { CommandGraphDefinition, CommandRegistry, ContextRegistry, ILoggerPort, MantaApp, MantaAppBuilder, QueryGraphExtensionDefinition, QueryRegistry, UserDefinition } from '@mantajs/core';
4
+ import type { AuthModuleService } from '@mantajs/core/auth';
5
+ import type { IDatabasePort, IQueuePort, IRepositoryFactory } from '@mantajs/core/ports';
6
+ type IQueuePortRef = IQueuePort;
7
+ import type { DiscoveredResources } from '../resource-loader';
8
+ import type { LoadedConfig } from '../types';
9
+ import type { BootstrapOptions } from './bootstrap-app';
10
+ import type { DmlEntityLike } from './bootstrap-helpers';
11
+ export type AppRef = {
12
+ current: MantaApp | null;
13
+ };
14
+ /** A resource entry that the bootstrap loader cannot fully type at runtime — the
15
+ * underlying definition comes from user code that is imported dynamically. */
16
+ type OpaqueDefinition = Record<string, any>;
17
+ export interface BootstrapContext {
18
+ readonly cwd: string;
19
+ readonly mode: 'dev' | 'prod';
20
+ readonly verbose: boolean;
21
+ readonly doImport: (path: string) => Promise<Record<string, unknown>>;
22
+ readonly config: LoadedConfig;
23
+ readonly options: BootstrapOptions;
24
+ logger: ILoggerPort;
25
+ db: IDatabasePort;
26
+ infraMap: Map<string, unknown>;
27
+ repoFactory: IRepositoryFactory;
28
+ builder: MantaAppBuilder;
29
+ generatePgTableFromDml: typeof generatePgTableFromDml;
30
+ generateLinkPgTable: typeof generateLinkPgTable;
31
+ resources: DiscoveredResources;
32
+ resolvedPlugins: Array<{
33
+ name: string;
34
+ rootDir: string;
35
+ }>;
36
+ generatedTables: Map<string, unknown>;
37
+ entityRegistry: Map<string, DmlEntityLike>;
38
+ loadedLinks: Array<Record<string, unknown>>;
39
+ /** Entity commands auto-generated by generateEntityCommands — shape varies per op. */
40
+ entityCommandRegistry: Map<string, OpaqueDefinition>;
41
+ explicitCommandNames: Set<string>;
42
+ commandGraphDefs: Map<string, CommandGraphDefinition>;
43
+ queryRegistry: QueryRegistry;
44
+ queryGraphDefs: Map<string, unknown>;
45
+ queryExtensions: QueryGraphExtensionDefinition[];
46
+ userDefinitions: Array<{
47
+ contextName: string;
48
+ def: UserDefinition;
49
+ }>;
50
+ moduleScopedCommandNames: string[];
51
+ cmdRegistry: CommandRegistry | null;
52
+ /**
53
+ * Queue adapter used for workflow continuations (ctx.yield). Set by
54
+ * wire-commands so the resume route can share the same instance.
55
+ */
56
+ workflowQueue?: IQueuePortRef;
57
+ /**
58
+ * Builder fn `(runId) => url` for the queue's resume POST target. Must
59
+ * produce a URL the queue adapter can reach (= public internet URL on
60
+ * Vercel / serverless). Set by wire-commands.
61
+ */
62
+ workflowResumeEndpoint?: (runId: string) => string;
63
+ /**
64
+ * Wall-clock budget (ms) steps get before they must `ctx.yield(state)`.
65
+ * Defaults to 7s on Vercel, undefined (unbounded) on long-running Node.
66
+ */
67
+ workflowStepBudgetMs?: number;
68
+ /** Agents are user-defined step definitions — shape is intentionally open. */
69
+ agentRegistry: Map<string, OpaqueDefinition>;
70
+ adapter: H3Adapter;
71
+ authService: AuthModuleService;
72
+ jwtSecret: string;
73
+ contextRegistry: ContextRegistry;
74
+ }
75
+ export {};
76
+ //# sourceMappingURL=bootstrap-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-context.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap-context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ // bootstrap-context.ts — Shared context object threaded through all bootstrap phases.
2
+ // Replaces most `any` fields with concrete types from @mantajs/core and the adapters.
3
+ export {};
4
+ //# sourceMappingURL=bootstrap-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-context.js","sourceRoot":"","sources":["../../src/bootstrap/bootstrap-context.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,sFAAsF"}
@@ -0,0 +1,71 @@
1
+ import type { ILoggerPort } from '@mantajs/core';
2
+ import type { IRepositoryFactory } from '@mantajs/core/ports';
3
+ export interface DmlEntityLike {
4
+ name: string;
5
+ schema: Record<string, unknown>;
6
+ getOptions?: () => Record<string, unknown>;
7
+ }
8
+ export declare function isDmlEntity(value: unknown): value is DmlEntityLike;
9
+ export declare function hasModelObjects(cls: unknown): cls is (new (...args: unknown[]) => unknown) & {
10
+ $modelObjects: Record<string, unknown>;
11
+ };
12
+ /**
13
+ * Entity name → table export name convention.
14
+ * Product → products, InventoryItem → inventoryItems
15
+ */
16
+ export declare function entityToTableKey(entityName: string): string;
17
+ export declare function tryInstantiateService(ServiceClass: new (...args: unknown[]) => unknown, infraMap: Map<string, unknown>, repoFactory: IRepositoryFactory): unknown | null;
18
+ /**
19
+ * Generate .manta/types.ts — module augmentation for typed step proxy.
20
+ * Scans discovered modules, finds DML entities, writes the type file.
21
+ */
22
+ export declare function generateMantaTypes(cwd: string, modules: Array<{
23
+ name: string;
24
+ dirName?: string;
25
+ entities: Array<{
26
+ name: string;
27
+ modelPath: string;
28
+ }>;
29
+ }>, doImport: (path: string) => Promise<Record<string, unknown>>, logger: ILoggerPort): Promise<void>;
30
+ export declare const FRAMEWORK_SCHEMA_VERSION = 1;
31
+ /**
32
+ * Ensure Manta's framework-internal schema is at FRAMEWORK_SCHEMA_VERSION.
33
+ *
34
+ * Safe to call unconditionally on every boot (dev, prod, serverless). A
35
+ * Postgres advisory transaction lock serializes concurrent boots, and a
36
+ * version table means only the first boot of a new deploy runs DDL;
37
+ * subsequent boots read a single row and return.
38
+ *
39
+ * The whole operation is bounded by `MIGRATION_TIMEOUT_MS` so a misbehaving
40
+ * pooler or lock never blocks a serverless cold start indefinitely. The
41
+ * caller is expected to try/catch around this call and continue booting on
42
+ * error — framework-dependent endpoints will fail loudly on first access,
43
+ * which is strictly better than taking the whole app down.
44
+ *
45
+ * Framework tables are Manta-owned; the user never writes to them. That's
46
+ * why we manage them here rather than via `manta db:*`, which is the
47
+ * app-level migration surface.
48
+ */
49
+ export declare function ensureFrameworkSchema(sql: unknown, logger: ILoggerPort): Promise<void>;
50
+ /**
51
+ * @deprecated Use `ensureFrameworkSchema` instead. Kept as an alias so
52
+ * existing call sites (init-infra, tests, the Neon adapter
53
+ * comment) don't break.
54
+ */
55
+ export declare function ensureFrameworkTables(sql: unknown, logger: ILoggerPort): Promise<void>;
56
+ /** DML type → SQL type mapping */
57
+ export declare const DML_TO_SQL: Record<string, string>;
58
+ /**
59
+ * Auto-create tables from discovered DML entities + links.
60
+ * No hardcoded application tables — everything comes from defineModel() and defineLink().
61
+ */
62
+ export declare function ensureEntityTables(sql: unknown, entities: Array<{
63
+ name: string;
64
+ schema: Record<string, unknown>;
65
+ }>, links: Array<{
66
+ tableName: string;
67
+ leftFk: string;
68
+ rightFk: string;
69
+ extraColumns?: Record<string, unknown>;
70
+ }>, logger: ILoggerPort): Promise<void>;
71
+ //# sourceMappingURL=bootstrap-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap-helpers.d.ts","sourceRoot":"","sources":["../../src/bootstrap/bootstrap-helpers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAChD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAK7D,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC/B,UAAU,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAC3C;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAQlE;AAID,wBAAgB,eAAe,CAC7B,GAAG,EAAE,OAAO,GACX,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,GAAG;IAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAE3F;AAUD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAK3D;AAED,wBAAgB,qBAAqB,CACnC,YAAY,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,EACjD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,WAAW,EAAE,kBAAkB,GAC9B,OAAO,GAAG,IAAI,CAoChB;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,EACxG,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAC5D,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CA2Df;AAQD,eAAO,MAAM,wBAAwB,IAAI,CAAA;AA2BzC;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAiD5F;AAgBD;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAE5F;AAED,kCAAkC;AAClC,eAAO,MAAM,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAY7C,CAAA;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,OAAO,EACZ,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,EAClE,KAAK,EAAE,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,CAAC,EAC5G,MAAM,EAAE,WAAW,GAClB,OAAO,CAAC,IAAI,CAAC,CA4Hf"}