@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.
- package/bin/manta.mjs +20 -0
- package/bin/manta.ts +13 -0
- package/dist/admin/generate-admin-config.d.ts +8 -0
- package/dist/admin/generate-admin-config.d.ts.map +1 -0
- package/dist/admin/generate-admin-config.js +127 -0
- package/dist/admin/generate-admin-config.js.map +1 -0
- package/dist/ai/chat-handler.d.ts +10 -0
- package/dist/ai/chat-handler.d.ts.map +1 -0
- package/dist/ai/chat-handler.js +1353 -0
- package/dist/ai/chat-handler.js.map +1 -0
- package/dist/bootstrap/boot.d.ts +25 -0
- package/dist/bootstrap/boot.d.ts.map +1 -0
- package/dist/bootstrap/boot.js +344 -0
- package/dist/bootstrap/boot.js.map +1 -0
- package/dist/bootstrap/bootstrap-app.d.ts +71 -0
- package/dist/bootstrap/bootstrap-app.d.ts.map +1 -0
- package/dist/bootstrap/bootstrap-app.js +308 -0
- package/dist/bootstrap/bootstrap-app.js.map +1 -0
- package/dist/bootstrap/bootstrap-context.d.ts +76 -0
- package/dist/bootstrap/bootstrap-context.d.ts.map +1 -0
- package/dist/bootstrap/bootstrap-context.js +4 -0
- package/dist/bootstrap/bootstrap-context.js.map +1 -0
- package/dist/bootstrap/bootstrap-helpers.d.ts +71 -0
- package/dist/bootstrap/bootstrap-helpers.d.ts.map +1 -0
- package/dist/bootstrap/bootstrap-helpers.js +373 -0
- package/dist/bootstrap/bootstrap-helpers.js.map +1 -0
- package/dist/bootstrap/generate-types.d.ts +7 -0
- package/dist/bootstrap/generate-types.d.ts.map +1 -0
- package/dist/bootstrap/generate-types.js +832 -0
- package/dist/bootstrap/generate-types.js.map +1 -0
- package/dist/bootstrap/phases/assemble/index.d.ts +5 -0
- package/dist/bootstrap/phases/assemble/index.d.ts.map +1 -0
- package/dist/bootstrap/phases/assemble/index.js +5 -0
- package/dist/bootstrap/phases/assemble/index.js.map +1 -0
- package/dist/bootstrap/phases/assemble/load-links.d.ts +3 -0
- package/dist/bootstrap/phases/assemble/load-links.d.ts.map +1 -0
- package/dist/bootstrap/phases/assemble/load-links.js +160 -0
- package/dist/bootstrap/phases/assemble/load-links.js.map +1 -0
- package/dist/bootstrap/phases/assemble/load-modules.d.ts +3 -0
- package/dist/bootstrap/phases/assemble/load-modules.d.ts.map +1 -0
- package/dist/bootstrap/phases/assemble/load-modules.js +163 -0
- package/dist/bootstrap/phases/assemble/load-modules.js.map +1 -0
- package/dist/bootstrap/phases/assemble/load-resources.d.ts +3 -0
- package/dist/bootstrap/phases/assemble/load-resources.d.ts.map +1 -0
- package/dist/bootstrap/phases/assemble/load-resources.js +270 -0
- package/dist/bootstrap/phases/assemble/load-resources.js.map +1 -0
- package/dist/bootstrap/phases/assemble/wire-commands.d.ts +3 -0
- package/dist/bootstrap/phases/assemble/wire-commands.d.ts.map +1 -0
- package/dist/bootstrap/phases/assemble/wire-commands.js +408 -0
- package/dist/bootstrap/phases/assemble/wire-commands.js.map +1 -0
- package/dist/bootstrap/phases/assemble-modules.d.ts +3 -0
- package/dist/bootstrap/phases/assemble-modules.d.ts.map +1 -0
- package/dist/bootstrap/phases/assemble-modules.js +14 -0
- package/dist/bootstrap/phases/assemble-modules.js.map +1 -0
- package/dist/bootstrap/phases/build-app.d.ts +3 -0
- package/dist/bootstrap/phases/build-app.d.ts.map +1 -0
- package/dist/bootstrap/phases/build-app.js +15 -0
- package/dist/bootstrap/phases/build-app.js.map +1 -0
- package/dist/bootstrap/phases/discover-resources.d.ts +3 -0
- package/dist/bootstrap/phases/discover-resources.d.ts.map +1 -0
- package/dist/bootstrap/phases/discover-resources.js +60 -0
- package/dist/bootstrap/phases/discover-resources.js.map +1 -0
- package/dist/bootstrap/phases/index.d.ts +7 -0
- package/dist/bootstrap/phases/index.d.ts.map +1 -0
- package/dist/bootstrap/phases/index.js +7 -0
- package/dist/bootstrap/phases/index.js.map +1 -0
- package/dist/bootstrap/phases/init-infra.d.ts +3 -0
- package/dist/bootstrap/phases/init-infra.d.ts.map +1 -0
- package/dist/bootstrap/phases/init-infra.js +193 -0
- package/dist/bootstrap/phases/init-infra.js.map +1 -0
- package/dist/bootstrap/phases/seed-dev-users.d.ts +3 -0
- package/dist/bootstrap/phases/seed-dev-users.d.ts.map +1 -0
- package/dist/bootstrap/phases/seed-dev-users.js +93 -0
- package/dist/bootstrap/phases/seed-dev-users.js.map +1 -0
- package/dist/bootstrap/phases/wire/auth-helpers.d.ts +12 -0
- package/dist/bootstrap/phases/wire/auth-helpers.d.ts.map +1 -0
- package/dist/bootstrap/phases/wire/auth-helpers.js +25 -0
- package/dist/bootstrap/phases/wire/auth-helpers.js.map +1 -0
- package/dist/bootstrap/phases/wire/contexts/context-registry.d.ts +4 -0
- package/dist/bootstrap/phases/wire/contexts/context-registry.d.ts.map +1 -0
- package/dist/bootstrap/phases/wire/contexts/context-registry.js +96 -0
- package/dist/bootstrap/phases/wire/contexts/context-registry.js.map +1 -0
- package/dist/bootstrap/phases/wire/contexts/cqrs-routes.d.ts +3 -0
- package/dist/bootstrap/phases/wire/contexts/cqrs-routes.d.ts.map +1 -0
- package/dist/bootstrap/phases/wire/contexts/cqrs-routes.js +138 -0
- package/dist/bootstrap/phases/wire/contexts/cqrs-routes.js.map +1 -0
- package/dist/bootstrap/phases/wire/contexts/index.d.ts +6 -0
- package/dist/bootstrap/phases/wire/contexts/index.d.ts.map +1 -0
- package/dist/bootstrap/phases/wire/contexts/index.js +6 -0
- package/dist/bootstrap/phases/wire/contexts/index.js.map +1 -0
- package/dist/bootstrap/phases/wire/contexts/query-endpoints.d.ts +3 -0
- package/dist/bootstrap/phases/wire/contexts/query-endpoints.d.ts.map +1 -0
- package/dist/bootstrap/phases/wire/contexts/query-endpoints.js +116 -0
- package/dist/bootstrap/phases/wire/contexts/query-endpoints.js.map +1 -0
- package/dist/bootstrap/phases/wire/contexts/spa-warnings.d.ts +3 -0
- package/dist/bootstrap/phases/wire/contexts/spa-warnings.d.ts.map +1 -0
- package/dist/bootstrap/phases/wire/contexts/spa-warnings.js +17 -0
- package/dist/bootstrap/phases/wire/contexts/spa-warnings.js.map +1 -0
- package/dist/bootstrap/phases/wire/contexts/user-routes.d.ts +3 -0
- package/dist/bootstrap/phases/wire/contexts/user-routes.d.ts.map +1 -0
- package/dist/bootstrap/phases/wire/contexts/user-routes.js +83 -0
- package/dist/bootstrap/phases/wire/contexts/user-routes.js.map +1 -0
- package/dist/bootstrap/phases/wire/index.d.ts +5 -0
- package/dist/bootstrap/phases/wire/index.d.ts.map +1 -0
- package/dist/bootstrap/phases/wire/index.js +5 -0
- package/dist/bootstrap/phases/wire/index.js.map +1 -0
- package/dist/bootstrap/phases/wire/wire-adapter.d.ts +12 -0
- package/dist/bootstrap/phases/wire/wire-adapter.d.ts.map +1 -0
- package/dist/bootstrap/phases/wire/wire-adapter.js +156 -0
- package/dist/bootstrap/phases/wire/wire-adapter.js.map +1 -0
- package/dist/bootstrap/phases/wire/wire-auth.d.ts +3 -0
- package/dist/bootstrap/phases/wire/wire-auth.d.ts.map +1 -0
- package/dist/bootstrap/phases/wire/wire-auth.js +46 -0
- package/dist/bootstrap/phases/wire/wire-auth.js.map +1 -0
- package/dist/bootstrap/phases/wire/wire-contexts.d.ts +3 -0
- package/dist/bootstrap/phases/wire/wire-contexts.d.ts.map +1 -0
- package/dist/bootstrap/phases/wire/wire-contexts.js +15 -0
- package/dist/bootstrap/phases/wire/wire-contexts.js.map +1 -0
- package/dist/bootstrap/phases/wire/wire-cron-routes.d.ts +3 -0
- package/dist/bootstrap/phases/wire/wire-cron-routes.d.ts.map +1 -0
- package/dist/bootstrap/phases/wire/wire-cron-routes.js +102 -0
- package/dist/bootstrap/phases/wire/wire-cron-routes.js.map +1 -0
- package/dist/bootstrap/phases/wire/wire-extras.d.ts +3 -0
- package/dist/bootstrap/phases/wire/wire-extras.d.ts.map +1 -0
- package/dist/bootstrap/phases/wire/wire-extras.js +305 -0
- package/dist/bootstrap/phases/wire/wire-extras.js.map +1 -0
- package/dist/bootstrap/phases/wire/wire-workflow-routes.d.ts +3 -0
- package/dist/bootstrap/phases/wire/wire-workflow-routes.d.ts.map +1 -0
- package/dist/bootstrap/phases/wire/wire-workflow-routes.js +212 -0
- package/dist/bootstrap/phases/wire/wire-workflow-routes.js.map +1 -0
- package/dist/bootstrap/phases/wire-http.d.ts +3 -0
- package/dist/bootstrap/phases/wire-http.d.ts.map +1 -0
- package/dist/bootstrap/phases/wire-http.js +10 -0
- package/dist/bootstrap/phases/wire-http.js.map +1 -0
- package/dist/bootstrap/validate-generated-ts.d.ts +6 -0
- package/dist/bootstrap/validate-generated-ts.d.ts.map +1 -0
- package/dist/bootstrap/validate-generated-ts.js +26 -0
- package/dist/bootstrap/validate-generated-ts.js.map +1 -0
- package/dist/build/generate-manifest.d.ts +10 -0
- package/dist/build/generate-manifest.d.ts.map +1 -0
- package/dist/build/generate-manifest.js +138 -0
- package/dist/build/generate-manifest.js.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +421 -0
- package/dist/cli.js.map +1 -0
- package/dist/commands/build.d.ts +21 -0
- package/dist/commands/build.d.ts.map +1 -0
- package/dist/commands/build.js +399 -0
- package/dist/commands/build.js.map +1 -0
- package/dist/commands/db/create.d.ts +17 -0
- package/dist/commands/db/create.d.ts.map +1 -0
- package/dist/commands/db/create.js +94 -0
- package/dist/commands/db/create.js.map +1 -0
- package/dist/commands/db/diff.d.ts +39 -0
- package/dist/commands/db/diff.d.ts.map +1 -0
- package/dist/commands/db/diff.js +81 -0
- package/dist/commands/db/diff.js.map +1 -0
- package/dist/commands/db/generate.d.ts +58 -0
- package/dist/commands/db/generate.d.ts.map +1 -0
- package/dist/commands/db/generate.js +138 -0
- package/dist/commands/db/generate.js.map +1 -0
- package/dist/commands/db/migrate.d.ts +29 -0
- package/dist/commands/db/migrate.d.ts.map +1 -0
- package/dist/commands/db/migrate.js +118 -0
- package/dist/commands/db/migrate.js.map +1 -0
- package/dist/commands/db/pg-deps.d.ts +30 -0
- package/dist/commands/db/pg-deps.d.ts.map +1 -0
- package/dist/commands/db/pg-deps.js +178 -0
- package/dist/commands/db/pg-deps.js.map +1 -0
- package/dist/commands/db/rollback.d.ts +21 -0
- package/dist/commands/db/rollback.d.ts.map +1 -0
- package/dist/commands/db/rollback.js +85 -0
- package/dist/commands/db/rollback.js.map +1 -0
- package/dist/commands/db/types.d.ts +113 -0
- package/dist/commands/db/types.d.ts.map +1 -0
- package/dist/commands/db/types.js +4 -0
- package/dist/commands/db/types.js.map +1 -0
- package/dist/commands/dev.d.ts +12 -0
- package/dist/commands/dev.d.ts.map +1 -0
- package/dist/commands/dev.js +79 -0
- package/dist/commands/dev.js.map +1 -0
- package/dist/commands/exec.d.ts +21 -0
- package/dist/commands/exec.d.ts.map +1 -0
- package/dist/commands/exec.js +148 -0
- package/dist/commands/exec.js.map +1 -0
- package/dist/commands/generate.d.ts +11 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +19 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/init.d.ts +14 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +476 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/start.d.ts +15 -0
- package/dist/commands/start.d.ts.map +1 -0
- package/dist/commands/start.js +121 -0
- package/dist/commands/start.js.map +1 -0
- package/dist/commands/user.d.ts +19 -0
- package/dist/commands/user.d.ts.map +1 -0
- package/dist/commands/user.js +125 -0
- package/dist/commands/user.js.map +1 -0
- package/dist/config/load-config.d.ts +23 -0
- package/dist/config/load-config.d.ts.map +1 -0
- package/dist/config/load-config.js +105 -0
- package/dist/config/load-config.js.map +1 -0
- package/dist/config/load-env.d.ts +11 -0
- package/dist/config/load-env.d.ts.map +1 -0
- package/dist/config/load-env.js +61 -0
- package/dist/config/load-env.js.map +1 -0
- package/dist/config/resolve-adapters.d.ts +23 -0
- package/dist/config/resolve-adapters.d.ts.map +1 -0
- package/dist/config/resolve-adapters.js +96 -0
- package/dist/config/resolve-adapters.js.map +1 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/jiti.d.ts +2 -0
- package/dist/jiti.d.ts.map +1 -0
- package/dist/jiti.js +2 -0
- package/dist/jiti.js.map +1 -0
- package/dist/openapi/generate-spec.d.ts +56 -0
- package/dist/openapi/generate-spec.d.ts.map +1 -0
- package/dist/openapi/generate-spec.js +491 -0
- package/dist/openapi/generate-spec.js.map +1 -0
- package/dist/openapi/index.d.ts +4 -0
- package/dist/openapi/index.d.ts.map +1 -0
- package/dist/openapi/index.js +3 -0
- package/dist/openapi/index.js.map +1 -0
- package/dist/openapi/swagger-html.d.ts +2 -0
- package/dist/openapi/swagger-html.d.ts.map +1 -0
- package/dist/openapi/swagger-html.js +29 -0
- package/dist/openapi/swagger-html.js.map +1 -0
- package/dist/plugins/merge-resources.d.ts +18 -0
- package/dist/plugins/merge-resources.d.ts.map +1 -0
- package/dist/plugins/merge-resources.js +76 -0
- package/dist/plugins/merge-resources.js.map +1 -0
- package/dist/plugins/resolve-plugins.d.ts +14 -0
- package/dist/plugins/resolve-plugins.d.ts.map +1 -0
- package/dist/plugins/resolve-plugins.js +73 -0
- package/dist/plugins/resolve-plugins.js.map +1 -0
- package/dist/resource-loader.d.ts +151 -0
- package/dist/resource-loader.d.ts.map +1 -0
- package/dist/resource-loader.js +456 -0
- package/dist/resource-loader.js.map +1 -0
- package/dist/route-discovery.d.ts +33 -0
- package/dist/route-discovery.d.ts.map +1 -0
- package/dist/route-discovery.js +69 -0
- package/dist/route-discovery.js.map +1 -0
- package/dist/server-bootstrap.d.ts +38 -0
- package/dist/server-bootstrap.d.ts.map +1 -0
- package/dist/server-bootstrap.js +21 -0
- package/dist/server-bootstrap.js.map +1 -0
- package/dist/spa/generate-spa.d.ts +15 -0
- package/dist/spa/generate-spa.d.ts.map +1 -0
- package/dist/spa/generate-spa.js +357 -0
- package/dist/spa/generate-spa.js.map +1 -0
- package/dist/templates/agent/nextjs.md +129 -0
- package/dist/templates/agent/nuxt.md +98 -0
- package/dist/templates/agent/standalone.md +498 -0
- package/dist/types.d.ts +145 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/colors.d.ts +7 -0
- package/dist/utils/colors.d.ts.map +1 -0
- package/dist/utils/colors.js +8 -0
- package/dist/utils/colors.js.map +1 -0
- package/dist/utils/logger.d.ts +10 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +27 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/prompts.d.ts +6 -0
- package/dist/utils/prompts.d.ts.map +1 -0
- package/dist/utils/prompts.js +28 -0
- package/dist/utils/prompts.js.map +1 -0
- package/dist/utils/spinner.d.ts +7 -0
- package/dist/utils/spinner.d.ts.map +1 -0
- package/dist/utils/spinner.js +20 -0
- package/dist/utils/spinner.js.map +1 -0
- 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":"AAAA,wDAAwD;AACxD,uFAAuF;AACvF,EAAE;AACF,oBAAoB;AACpB,wDAAwD;AACxD,uCAAuC;AACvC,+CAA+C;AAC/C,iCAAiC;AACjC,2CAA2C;AAC3C,+BAA+B;AAC/B,EAAE;AACF,iEAAiE;AAEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AAE/D,uFAAuF;AACvF,6FAA6F;AAC7F,2FAA2F;AAC3F,2FAA2F;AAC3F,4EAA4E;AAC5E,OAAO,EACL,WAAW,IAAI,YAAY,EAC3B,aAAa,IAAI,cAAc,EAC/B,kBAAkB,IAAI,mBAAmB,EACzC,YAAY,IAAI,aAAa,EAC7B,SAAS,IAAI,UAAU,EACvB,UAAU,IAAI,WAAW,EACzB,gBAAgB,IAAI,iBAAiB,EACrC,iBAAiB,IAAI,kBAAkB,EACvC,WAAW,IAAI,YAAY,EAC3B,YAAY,IAAI,aAAa,EAC7B,WAAW,IAAI,YAAY,EAC3B,gBAAgB,IAAI,iBAAiB,EACrC,aAAa,IAAI,cAAc,EAC/B,gBAAgB,IAAI,iBAAiB,EACrC,eAAe,IAAI,gBAAgB,EACnC,cAAc,IAAI,eAAe,EACjC,KAAK,IAAI,MAAM,EACf,UAAU,IAAI,WAAW,EACzB,IAAI,IAAI,KAAK,EACb,gBAAgB,IAAI,iBAAiB,EACrC,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACtB,yBAAyB,GAC1B,MAAM,eAAe,CAAA;AAGtB,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,KAAK,CAAA;AAI7B,OAAO,EACL,eAAe,EACf,QAAQ,EACR,sBAAsB,EACtB,eAAe,EACf,YAAY,EACZ,iBAAiB,GAClB,MAAM,UAAU,CAAA;AA+BjB,MAAM,OAAO,oBAAoB;IACvB,MAAM,CAAQ;IACd,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAA;IAE/C,YAAY,UAA8B,EAAE;QAC1C,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,MAAM,CAAA;IACvC,CAAC;IAEO,MAAM,CAAU,MAAM,GAA2B;QACvD,KAAK,EAAE,CAAC,CAAC;QACT,KAAK,EAAE,CAAC;QACR,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC;QACP,IAAI,EAAE,CAAC;QACP,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,CAAC;KACT,CAAA;IAEO,IAAI,CAAC,KAAa,EAAE,GAAW,EAAE,GAAG,IAAe;QACzD,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,OAAM;QAClC,MAAM,MAAM,GAAG,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;QACnG,OAAO,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,KAAK,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,CAAA;IAC/C,CAAC;IAED,KAAK,CAAC,GAAW,EAAE,GAAG,IAAe;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IAClC,CAAC;IACD,IAAI,CAAC,GAAW,EAAE,GAAG,IAAe;QAClC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IACjC,CAAC;IACD,IAAI,CAAC,GAAW,EAAE,GAAG,IAAe;QAClC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IACjC,CAAC;IACD,IAAI,CAAC,GAAW,EAAE,GAAG,IAAe;QAClC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IACjC,CAAC;IACD,OAAO,CAAC,GAAW,EAAE,GAAG,IAAe;QACrC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IACpC,CAAC;IACD,KAAK,CAAC,GAAW,EAAE,GAAG,IAAe;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IAClC,CAAC;IACD,KAAK,CAAC,GAAW,EAAE,GAAG,IAAe;QACnC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;IAClC,CAAC;IACD,KAAK,CAAC,IAAa;QACjB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,CAAA;IACnC,CAAC;IAED,QAAQ,CAAC,GAAW;QAClB,MAAM,EAAE,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;QAC9B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QAC7B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,EAAE,CAAC,CAAA;QACpC,OAAO,EAAE,CAAA;IACX,CAAC;IACD,QAAQ,CAAC,EAAU,EAAE,GAAW;QAC9B,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,GAAG,EAAE,CAAC,CAAA;IACtC,CAAC;IACD,OAAO,CAAC,EAAU,EAAE,GAAW;QAC7B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,GAAG,EAAE,CAAC,CAAA;QACnC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC7B,CAAC;IACD,OAAO,CAAC,EAAU,EAAE,GAAW;QAC7B,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,GAAG,EAAE,CAAC,CAAA;QACpC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IAC7B,CAAC;IACD,SAAS,CAAC,KAAa;QACrB,MAAM,SAAS,GAAG,oBAAoB,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA;QAC/D,MAAM,SAAS,GAAG,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACzD,OAAO,KAAK,KAAK,OAAO,IAAI,SAAS,IAAI,SAAS,CAAA;IACpD,CAAC;IACD,WAAW,CAAC,KAAa;QACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAA;IACrB,CAAC;IACD,aAAa;QACX,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;;AAGH;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAG1B;IACF,8BAA8B,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC7C,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAA;QAC1E,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IACD,oCAAoC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,oBAAoB,CAAC,IAA0B,CAAC;IACpG,8BAA8B,EAAE,GAAG,EAAE,CAAC,IAAI,gBAAgB,EAAE;IAC5D,gCAAgC,EAAE,KAAK,IAAI,EAAE;QAC3C,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAA;QAC7E,OAAO,IAAI,kBAAkB,EAAE,CAAA;IACjC,CAAC;IACD,gCAAgC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC/C,MAAM,EAAE,mBAAmB,EAAE,GAAG,MAAM,MAAM,CAAC,gCAAgC,CAAC,CAAA;QAC9E,OAAO,IAAI,mBAAmB,CAAC,IAAI,CAAC,CAAA;IACtC,CAAC;IACD,+BAA+B,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QACzD,MAAM,EAAE,kBAAkB,EAAE,GAAG,MAAM,MAAM,CAAC,+BAA+B,CAAC,CAAA;QAC5E,MAAM,EAAE,GAAG,QAAS,CAAC,GAAG,CAAC,eAAe,CAA2B,CAAA;QACnE,OAAO,IAAI,kBAAkB,CAC3B,EAAE,CAAC,OAAO,EAAsG,CACjH,CAAA;IACH,CAAC;IACD,mCAAmC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAClD,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAA;QAC/E,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IACD,mCAAmC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QAC7D,MAAM,EAAE,iBAAiB,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAA;QAC/E,MAAM,OAAO,GAAG,QAAS,CAAC,GAAG,CAAC,cAAc,CAAiB,CAAA;QAC7D,MAAM,MAAM,GAAG,QAAS,CAAC,GAAG,CAAC,aAAa,CAAgB,CAAA;QAC1D,OAAO,IAAI,iBAAiB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC/C,CAAC;IACD,mCAAmC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAClD,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,mCAAmC,CAAC,CAAA;QACpF,OAAO,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAA;IACzC,CAAC;IACD,sCAAsC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QACrD,MAAM,EAAE,yBAAyB,EAAE,GAAG,MAAM,MAAM,CAAC,sCAAsC,CAAC,CAAA;QAC1F,OAAO,IAAI,yBAAyB,CAAC,IAAI,CAAC,CAAA;IAC5C,CAAC;IACD,qDAAqD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,EAAE,sBAAsB,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAA;QAC/E,OAAO,IAAI,sBAAsB,EAAE,CAAA;IACrC,CAAC;IACD,uDAAuD,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE;QACjF,MAAM,EAAE,wBAAwB,EAAE,GAAG,MAAM,MAAM,CAAC,8BAA8B,CAAC,CAAA;QACjF,OAAO,IAAI,wBAAwB,CAAC,EAAE,EAAE,EAAE,QAAS,CAAC,GAAG,CAAC,eAAe,CAAkB,EAAE,CAAC,CAAA;IAC9F,CAAC;IACD,oCAAoC,EAAE,GAAG,EAAE,CAAC,IAAI,oBAAoB,EAAE;IACtE,uCAAuC,EAAE,GAAG,EAAE,CAAC,IAAI,uBAAuB,EAAE;IAC5E,sCAAsC,EAAE,GAAG,EAAE,CAAC,IAAI,sBAAsB,EAAE;IAC1E,mCAAmC,EAAE,GAAG,EAAE,CAAC,IAAI,mBAAmB,EAAE;IACpE,yCAAyC,EAAE,GAAG,EAAE,CAAC,IAAI,yBAAyB,EAAE;IAChF,oCAAoC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE;QACxD,OAAO,IAAI,oBAAoB,CAC7B,QAAS,CAAC,GAAG,CAAC,cAAc,CAAiB,EAC7C,QAAS,CAAC,GAAG,CAAC,aAAa,CAAgB,CAC5C,CAAA;IACH,CAAC;CACF,CAAA;AAED;;;;GAIG;AACH,KAAK,UAAU,eAAe;IAC5B,kFAAkF;IAClF,sEAAsE;IACtE,MAAM,GAAG,GAAG,iBAAiB,CAAA;IAE7B,8EAA8E;IAC9E,4DAA4D;IAC5D,6FAA6F;IAC7F,MAAM,CAAC,GAAG,UAAqC,CAAA;IAC/C,IAAI,CAAC,CAAC,CAAC,WAAW;QAAE,CAAC,CAAC,WAAW,GAAG,YAAY,CAAA;IAChD,IAAI,CAAC,CAAC,CAAC,aAAa;QAAE,CAAC,CAAC,aAAa,GAAG,cAAc,CAAA;IACtD,IAAI,CAAC,CAAC,CAAC,UAAU;QAAE,CAAC,CAAC,UAAU,GAAG,WAAW,CAAA;IAC7C,IAAI,CAAC,CAAC,CAAC,aAAa;QAAE,CAAC,CAAC,aAAa,GAAG,cAAc,CAAA;IACtD,IAAI,CAAC,CAAC,CAAC,kBAAkB;QAAE,CAAC,CAAC,kBAAkB,GAAG,mBAAmB,CAAA;IACrE,IAAI,CAAC,CAAC,CAAC,WAAW;QAAE,CAAC,CAAC,WAAW,GAAG,YAAY,CAAA;IAChD,IAAI,CAAC,CAAC,CAAC,gBAAgB;QAAE,CAAC,CAAC,gBAAgB,GAAG,iBAAiB,CAAA;IAC/D,IAAI,CAAC,CAAC,CAAC,SAAS;QAAE,CAAC,CAAC,SAAS,GAAG,UAAU,CAAA;IAC1C,IAAI,CAAC,CAAC,CAAC,eAAe;QAAE,CAAC,CAAC,eAAe,GAAG,gBAAgB,CAAA;IAC5D,IAAI,CAAC,CAAC,CAAC,WAAW;QAAE,CAAC,CAAC,WAAW,GAAG,YAAY,CAAA;IAChD,IAAI,CAAC,CAAC,CAAC,gBAAgB;QAAE,CAAC,CAAC,gBAAgB,GAAG,iBAAiB,CAAA;IAC/D,IAAI,CAAC,CAAC,CAAC,cAAc;QAAE,CAAC,CAAC,cAAc,GAAG,eAAe,CAAA;IACzD,IAAI,CAAC,CAAC,CAAC,YAAY;QAAE,CAAC,CAAC,YAAY,GAAG,aAAa,CAAA;IACnD,IAAI,CAAC,CAAC,CAAC,YAAY;QAAE,CAAC,CAAC,YAAY,GAAG,aAAa,CAAA;IACnD,IAAI,CAAC,CAAC,CAAC,gBAAgB;QAAE,CAAC,CAAC,gBAAgB,GAAG,iBAAiB,CAAA;IAC/D,IAAI,CAAC,CAAC,CAAC,iBAAiB;QAAE,CAAC,CAAC,iBAAiB,GAAG,kBAAkB,CAAA;IAClE,IAAI,CAAC,CAAC,CAAC,KAAK;QAAE,CAAC,CAAC,KAAK,GAAG,MAAM,CAAA;IAC9B,IAAI,CAAC,CAAC,CAAC,IAAI;QAAE,CAAC,CAAC,IAAI,GAAG,KAAK,CAAA;IAC3B,IAAI,CAAC,CAAC,CAAC,CAAC;QAAE,CAAC,CAAC,CAAC,GAAG,EAAE,CAAA;IAClB,IAAI,CAAC,CAAC,CAAC,UAAU;QAAE,CAAC,CAAC,UAAU,GAAG,WAAW,CAAA;AAC/C,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,OAAyB;IAC1D,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;IAE9C,qFAAqF;IACrF,uFAAuF;IACvF,8EAA8E;IAC9E,MAAM,SAAS,GAAG,OAAO,CAAC,gBAAgB,CAAA;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,IAAI,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,IAAI,MAAM,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAA;IACxF,MAAM,QAAQ,GAAG,SAAS;QACxB,CAAC,CAAC,KAAK,EAAE,IAAY,EAAoC,EAAE;YACvD,IAAI,SAAS,CAAC,IAAI,CAAC;gBAAE,OAAO,SAAS,CAAC,IAAI,CAAC,CAAA;YAC3C,4CAA4C;YAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;YAC7C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzC,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,KAAK,SAAS;oBAAE,OAAO,SAAS,CAAC,GAAG,CAAC,CAAA;YACrF,CAAC;YACD,8DAA8D;YAC9D,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;QACrB,CAAC;QACH,CAAC,CAAC,MAAM,CAAA;IAEV,oDAAoD;IACpD,MAAM,eAAe,EAAE,CAAA;IAEvB,MAAM,MAAM,GAAW,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;IAExC,kCAAkC;IAClC,MAAM,GAAG,GAAqB;QAC5B,GAAG;QACH,IAAI;QACJ,OAAO,EAAE,OAAO,IAAI,KAAK;QACzB,QAAQ;QACR,MAAM;QACN,OAAO;QAEP,yCAAyC;QACzC,MAAM,EAAE,IAAW;QACnB,EAAE,EAAE,IAAW;QACf,QAAQ,EAAE,IAAI,GAAG,EAAE;QACnB,WAAW,EAAE,IAAW;QACxB,OAAO,EAAE,IAAW;QACpB,sBAAsB,EAAE,IAAW;QACnC,mBAAmB,EAAE,IAAW;QAEhC,gDAAgD;QAChD,SAAS,EAAE,IAAW;QACtB,eAAe,EAAE,EAAE;QAEnB,yCAAyC;QACzC,eAAe,EAAE,IAAI,GAAG,EAAE;QAC1B,cAAc,EAAE,IAAI,GAAG,EAAE;QACzB,WAAW,EAAE,EAAE;QACf,qBAAqB,EAAE,IAAI,GAAG,EAAE;QAChC,oBAAoB,EAAE,IAAI,GAAG,EAAE;QAC/B,gBAAgB,EAAE,IAAI,GAAG,EAAE;QAC3B,aAAa,EAAE,IAAW;QAC1B,cAAc,EAAE,IAAI,GAAG,EAAE;QACzB,eAAe,EAAE,EAAE;QACnB,eAAe,EAAE,EAAE;QACnB,wBAAwB,EAAE,EAAE;QAC5B,WAAW,EAAE,IAAW;QACxB,aAAa,EAAE,IAAI,GAAG,EAAE;QAExB,2CAA2C;QAC3C,OAAO,EAAE,IAAW;QACpB,WAAW,EAAE,IAAW;QACxB,SAAS,EAAE,EAAE;QACb,eAAe,EAAE,IAAW;KAC7B,CAAA;IAED,MAAM,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAClC,MAAM,sBAAsB,CAAC,GAAG,CAAC,CAAA;IACjC,MAAM,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAClC,MAAM,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAC3B,MAAM,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IACpC,MAAM,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;IAE/B,MAAM,GAAG,GAAG,MAAM,CAAC,OAAQ,CAAA;IAC3B,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,GAAG,CAAA;IAE9C,oBAAoB;IACpB,MAAM,QAAQ,GAAG,KAAK,IAAI,EAAE;QAC1B,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAA;QAC/B,IAAI,CAAC;YACH,MAAM,EAAE,CAAC,OAAO,EAAE,CAAA;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,sBAAuB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAA;QAC9D,CAAC;QACD,IAAI,CAAC;YACH,MAAM,GAAG,CAAC,OAAO,EAAE,CAAA;QACrB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,uBAAwB,GAAa,CAAC,OAAO,EAAE,CAAC,CAAA;QAC/D,CAAC;IACH,CAAC,CAAA;IAED,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAA;AAC1D,CAAC"}
|
|
@@ -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 @@
|
|
|
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"}
|