@yan162/changewayguard 6.8.25
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/LICENSE +21 -0
- package/OpenClaw-linux_Mac-Guide-zh.md +89 -0
- package/dashboard-dist/api/122.index.js +95 -0
- package/dashboard-dist/api/122.index.js.map +1 -0
- package/dashboard-dist/api/143.index.js +2734 -0
- package/dashboard-dist/api/143.index.js.map +1 -0
- package/dashboard-dist/api/154.index.js +4151 -0
- package/dashboard-dist/api/154.index.js.map +1 -0
- package/dashboard-dist/api/173.index.js +24112 -0
- package/dashboard-dist/api/173.index.js.map +1 -0
- package/dashboard-dist/api/217.index.js +44 -0
- package/dashboard-dist/api/217.index.js.map +1 -0
- package/dashboard-dist/api/222.index.js +90 -0
- package/dashboard-dist/api/222.index.js.map +1 -0
- package/dashboard-dist/api/280.index.js +213 -0
- package/dashboard-dist/api/280.index.js.map +1 -0
- package/dashboard-dist/api/369.index.js +115 -0
- package/dashboard-dist/api/369.index.js.map +1 -0
- package/dashboard-dist/api/374.index.js +1896 -0
- package/dashboard-dist/api/374.index.js.map +1 -0
- package/dashboard-dist/api/424.index.js +135 -0
- package/dashboard-dist/api/424.index.js.map +1 -0
- package/dashboard-dist/api/445.index.js +3562 -0
- package/dashboard-dist/api/445.index.js.map +1 -0
- package/dashboard-dist/api/555.index.js +496 -0
- package/dashboard-dist/api/555.index.js.map +1 -0
- package/dashboard-dist/api/573.index.js +806 -0
- package/dashboard-dist/api/573.index.js.map +1 -0
- package/dashboard-dist/api/580.index.js +1420 -0
- package/dashboard-dist/api/580.index.js.map +1 -0
- package/dashboard-dist/api/581.index.js +67 -0
- package/dashboard-dist/api/581.index.js.map +1 -0
- package/dashboard-dist/api/598.index.js +328 -0
- package/dashboard-dist/api/598.index.js.map +1 -0
- package/dashboard-dist/api/720.index.js +105 -0
- package/dashboard-dist/api/720.index.js.map +1 -0
- package/dashboard-dist/api/744.index.js +333 -0
- package/dashboard-dist/api/744.index.js.map +1 -0
- package/dashboard-dist/api/818.index.js +374 -0
- package/dashboard-dist/api/818.index.js.map +1 -0
- package/dashboard-dist/api/831.index.js +99 -0
- package/dashboard-dist/api/831.index.js.map +1 -0
- package/dashboard-dist/api/84.index.js +64 -0
- package/dashboard-dist/api/84.index.js.map +1 -0
- package/dashboard-dist/api/900.index.js +81 -0
- package/dashboard-dist/api/900.index.js.map +1 -0
- package/dashboard-dist/api/917.index.js +88 -0
- package/dashboard-dist/api/917.index.js.map +1 -0
- package/dashboard-dist/api/927.index.js +4250 -0
- package/dashboard-dist/api/927.index.js.map +1 -0
- package/dashboard-dist/api/948.index.js +64 -0
- package/dashboard-dist/api/948.index.js.map +1 -0
- package/dashboard-dist/api/982.index.js +67 -0
- package/dashboard-dist/api/982.index.js.map +1 -0
- package/dashboard-dist/api/99.index.js +1176 -0
- package/dashboard-dist/api/99.index.js.map +1 -0
- package/dashboard-dist/api/drizzle/sqlite/0000_short_captain_stacy.sql +70 -0
- package/dashboard-dist/api/drizzle/sqlite/0001_closed_magus.sql +10 -0
- package/dashboard-dist/api/drizzle/sqlite/0002_agent_capability_observation.sql +38 -0
- package/dashboard-dist/api/drizzle/sqlite/0003_auth_magic_link.sql +28 -0
- package/dashboard-dist/api/drizzle/sqlite/0004_static_scan_fields.sql +8 -0
- package/dashboard-dist/api/drizzle/sqlite/0005_gateway_activity.sql +24 -0
- package/dashboard-dist/api/drizzle/sqlite/0006_sour_marauders.sql +41 -0
- package/dashboard-dist/api/drizzle/sqlite/meta/0000_snapshot.json +460 -0
- package/dashboard-dist/api/drizzle/sqlite/meta/0001_snapshot.json +536 -0
- package/dashboard-dist/api/drizzle/sqlite/meta/0006_snapshot.json +1249 -0
- package/dashboard-dist/api/drizzle/sqlite/meta/_journal.json +55 -0
- package/dashboard-dist/api/index.js +28482 -0
- package/dashboard-dist/api/index.js.map +1 -0
- package/dashboard-dist/api/package.json +16 -0
- package/dashboard-dist/api/sourcemap-register.cjs +1 -0
- package/dashboard-dist/web/assets/index-BKUfzbIg.js +148 -0
- package/dashboard-dist/web/assets/index-rHRH99IQ.css +1 -0
- package/dashboard-dist/web/changeway-logo.png +0 -0
- package/dashboard-dist/web/favicon.svg +29 -0
- package/dashboard-dist/web/index.html +15 -0
- package/dashboard-dist/web/logo.svg +16 -0
- package/dist/agent/activation.d.ts +21 -0
- package/dist/agent/activation.d.ts.map +1 -0
- package/dist/agent/activation.js +94 -0
- package/dist/agent/activation.js.map +1 -0
- package/dist/agent/auth.d.ts +73 -0
- package/dist/agent/auth.d.ts.map +1 -0
- package/dist/agent/auth.js +363 -0
- package/dist/agent/auth.js.map +1 -0
- package/dist/agent/behavior-detector.d.ts +150 -0
- package/dist/agent/behavior-detector.d.ts.map +1 -0
- package/dist/agent/behavior-detector.js +559 -0
- package/dist/agent/behavior-detector.js.map +1 -0
- package/dist/agent/business-reporter.d.ts +114 -0
- package/dist/agent/business-reporter.d.ts.map +1 -0
- package/dist/agent/business-reporter.js +359 -0
- package/dist/agent/business-reporter.js.map +1 -0
- package/dist/agent/config-sync.d.ts +70 -0
- package/dist/agent/config-sync.d.ts.map +1 -0
- package/dist/agent/config-sync.js +133 -0
- package/dist/agent/config-sync.js.map +1 -0
- package/dist/agent/config.d.ts +98 -0
- package/dist/agent/config.d.ts.map +1 -0
- package/dist/agent/config.js +348 -0
- package/dist/agent/config.js.map +1 -0
- package/dist/agent/content-injection-scanner.d.ts +35 -0
- package/dist/agent/content-injection-scanner.d.ts.map +1 -0
- package/dist/agent/content-injection-scanner.js +270 -0
- package/dist/agent/content-injection-scanner.js.map +1 -0
- package/dist/agent/engine-log-writer.d.ts +6 -0
- package/dist/agent/engine-log-writer.d.ts.map +1 -0
- package/dist/agent/engine-log-writer.js +18 -0
- package/dist/agent/engine-log-writer.js.map +1 -0
- package/dist/agent/env.d.ts +19 -0
- package/dist/agent/env.d.ts.map +1 -0
- package/dist/agent/env.js +44 -0
- package/dist/agent/env.js.map +1 -0
- package/dist/agent/event-reporter.d.ts +87 -0
- package/dist/agent/event-reporter.d.ts.map +1 -0
- package/dist/agent/event-reporter.js +306 -0
- package/dist/agent/event-reporter.js.map +1 -0
- package/dist/agent/file-watcher.d.ts +50 -0
- package/dist/agent/file-watcher.d.ts.map +1 -0
- package/dist/agent/file-watcher.js +135 -0
- package/dist/agent/file-watcher.js.map +1 -0
- package/dist/agent/fs-utils.d.ts +22 -0
- package/dist/agent/fs-utils.d.ts.map +1 -0
- package/dist/agent/fs-utils.js +41 -0
- package/dist/agent/fs-utils.js.map +1 -0
- package/dist/agent/gateway-manager.d.ts +59 -0
- package/dist/agent/gateway-manager.d.ts.map +1 -0
- package/dist/agent/gateway-manager.js +583 -0
- package/dist/agent/gateway-manager.js.map +1 -0
- package/dist/agent/hook-types.d.ts +276 -0
- package/dist/agent/hook-types.d.ts.map +1 -0
- package/dist/agent/hook-types.js +51 -0
- package/dist/agent/hook-types.js.map +1 -0
- package/dist/agent/http-client.d.ts +19 -0
- package/dist/agent/http-client.d.ts.map +1 -0
- package/dist/agent/http-client.js +37 -0
- package/dist/agent/http-client.js.map +1 -0
- package/dist/agent/index.d.ts +8 -0
- package/dist/agent/index.d.ts.map +1 -0
- package/dist/agent/index.js +8 -0
- package/dist/agent/index.js.map +1 -0
- package/dist/agent/openclaw-hybrid-audit-changeway.js +1447 -0
- package/dist/agent/prompt-gate.d.ts +16 -0
- package/dist/agent/prompt-gate.d.ts.map +1 -0
- package/dist/agent/prompt-gate.js +58 -0
- package/dist/agent/prompt-gate.js.map +1 -0
- package/dist/agent/prompt-input.d.ts +9 -0
- package/dist/agent/prompt-input.d.ts.map +1 -0
- package/dist/agent/prompt-input.js +173 -0
- package/dist/agent/prompt-input.js.map +1 -0
- package/dist/agent/prompt-output.d.ts +4 -0
- package/dist/agent/prompt-output.d.ts.map +1 -0
- package/dist/agent/prompt-output.js +19 -0
- package/dist/agent/prompt-output.js.map +1 -0
- package/dist/agent/runner.d.ts +23 -0
- package/dist/agent/runner.d.ts.map +1 -0
- package/dist/agent/runner.js +165 -0
- package/dist/agent/runner.js.map +1 -0
- package/dist/agent/runtime-mode.d.ts +10 -0
- package/dist/agent/runtime-mode.d.ts.map +1 -0
- package/dist/agent/runtime-mode.js +19 -0
- package/dist/agent/runtime-mode.js.map +1 -0
- package/dist/agent/sanitizer.d.ts +10 -0
- package/dist/agent/sanitizer.d.ts.map +1 -0
- package/dist/agent/sanitizer.js +175 -0
- package/dist/agent/sanitizer.js.map +1 -0
- package/dist/agent/scan-activity.d.ts +19 -0
- package/dist/agent/scan-activity.d.ts.map +1 -0
- package/dist/agent/scan-activity.js +34 -0
- package/dist/agent/scan-activity.js.map +1 -0
- package/dist/agent/types.d.ts +177 -0
- package/dist/agent/types.d.ts.map +1 -0
- package/dist/agent/types.js +5 -0
- package/dist/agent/types.js.map +1 -0
- package/dist/agent/workspace-scanner.d.ts +35 -0
- package/dist/agent/workspace-scanner.d.ts.map +1 -0
- package/dist/agent/workspace-scanner.js +137 -0
- package/dist/agent/workspace-scanner.js.map +1 -0
- package/dist/dashboard-launcher.d.ts +52 -0
- package/dist/dashboard-launcher.d.ts.map +1 -0
- package/dist/dashboard-launcher.js +363 -0
- package/dist/dashboard-launcher.js.map +1 -0
- package/dist/gateway/activity.d.ts +52 -0
- package/dist/gateway/activity.d.ts.map +1 -0
- package/dist/gateway/activity.js +111 -0
- package/dist/gateway/activity.js.map +1 -0
- package/dist/gateway/config.d.ts +50 -0
- package/dist/gateway/config.d.ts.map +1 -0
- package/dist/gateway/config.js +200 -0
- package/dist/gateway/config.js.map +1 -0
- package/dist/gateway/handlers/anthropic.d.ts +12 -0
- package/dist/gateway/handlers/anthropic.d.ts.map +1 -0
- package/dist/gateway/handlers/anthropic.js +254 -0
- package/dist/gateway/handlers/anthropic.js.map +1 -0
- package/dist/gateway/handlers/gemini.d.ts +12 -0
- package/dist/gateway/handlers/gemini.d.ts.map +1 -0
- package/dist/gateway/handlers/gemini.js +101 -0
- package/dist/gateway/handlers/gemini.js.map +1 -0
- package/dist/gateway/handlers/models.d.ts +4 -0
- package/dist/gateway/handlers/models.d.ts.map +1 -0
- package/dist/gateway/handlers/models.js +36 -0
- package/dist/gateway/handlers/models.js.map +1 -0
- package/dist/gateway/handlers/openai.d.ts +16 -0
- package/dist/gateway/handlers/openai.d.ts.map +1 -0
- package/dist/gateway/handlers/openai.js +254 -0
- package/dist/gateway/handlers/openai.js.map +1 -0
- package/dist/gateway/index.d.ts +27 -0
- package/dist/gateway/index.d.ts.map +1 -0
- package/dist/gateway/index.js +290 -0
- package/dist/gateway/index.js.map +1 -0
- package/dist/gateway/mapping-store.d.ts +38 -0
- package/dist/gateway/mapping-store.d.ts.map +1 -0
- package/dist/gateway/mapping-store.js +74 -0
- package/dist/gateway/mapping-store.js.map +1 -0
- package/dist/gateway/restorer.d.ts +63 -0
- package/dist/gateway/restorer.d.ts.map +1 -0
- package/dist/gateway/restorer.js +284 -0
- package/dist/gateway/restorer.js.map +1 -0
- package/dist/gateway/sanitizer.d.ts +17 -0
- package/dist/gateway/sanitizer.d.ts.map +1 -0
- package/dist/gateway/sanitizer.js +228 -0
- package/dist/gateway/sanitizer.js.map +1 -0
- package/dist/gateway/types.d.ts +53 -0
- package/dist/gateway/types.d.ts.map +1 -0
- package/dist/gateway/types.js +5 -0
- package/dist/gateway/types.js.map +1 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2990 -0
- package/dist/index.js.map +1 -0
- package/dist/memory/index.d.ts +5 -0
- package/dist/memory/index.d.ts.map +1 -0
- package/dist/memory/index.js +5 -0
- package/dist/memory/index.js.map +1 -0
- package/dist/memory/store.d.ts +82 -0
- package/dist/memory/store.d.ts.map +1 -0
- package/dist/memory/store.js +194 -0
- package/dist/memory/store.js.map +1 -0
- package/dist/platform-client/index.d.ts +63 -0
- package/dist/platform-client/index.d.ts.map +1 -0
- package/dist/platform-client/index.js +294 -0
- package/dist/platform-client/index.js.map +1 -0
- package/dist/platform-client/types.d.ts +109 -0
- package/dist/platform-client/types.d.ts.map +1 -0
- package/dist/platform-client/types.js +3 -0
- package/dist/platform-client/types.js.map +1 -0
- package/dist/workspace-agents-guide.d.ts +22 -0
- package/dist/workspace-agents-guide.d.ts.map +1 -0
- package/dist/workspace-agents-guide.js +92 -0
- package/dist/workspace-agents-guide.js.map +1 -0
- package/dist/workspace-agents-sync.d.ts +24 -0
- package/dist/workspace-agents-sync.d.ts.map +1 -0
- package/dist/workspace-agents-sync.js +41 -0
- package/dist/workspace-agents-sync.js.map +1 -0
- package/dist/workspace-agents-watcher.d.ts +23 -0
- package/dist/workspace-agents-watcher.d.ts.map +1 -0
- package/dist/workspace-agents-watcher.js +152 -0
- package/dist/workspace-agents-watcher.js.map +1 -0
- package/dist/workspace-discovery.d.ts +11 -0
- package/dist/workspace-discovery.d.ts.map +1 -0
- package/dist/workspace-discovery.js +116 -0
- package/dist/workspace-discovery.js.map +1 -0
- package/gateway/package-lock.json +597 -0
- package/gateway/package.json +57 -0
- package/gateway/pnpm-lock.yaml +342 -0
- package/gateway/src/activity.ts +142 -0
- package/gateway/src/config.ts +246 -0
- package/gateway/src/handlers/anthropic.ts +328 -0
- package/gateway/src/handlers/gemini.ts +122 -0
- package/gateway/src/handlers/models.ts +45 -0
- package/gateway/src/handlers/openai.ts +333 -0
- package/gateway/src/index.ts +344 -0
- package/gateway/src/mapping-store.ts +88 -0
- package/gateway/src/restorer.ts +322 -0
- package/gateway/src/sanitizer.ts +298 -0
- package/gateway/src/types.ts +73 -0
- package/gateway/tsconfig.json +20 -0
- package/openclaw.plugin.json +86 -0
- package/package.json +74 -0
- package/samples/Untitled +1 -0
- package/samples/clean-email.txt +20 -0
- package/samples/test-document.md +53 -0
- package/samples/test-email-popup.txt +44 -0
- package/samples/test-email.txt +32 -0
- package/samples/test-webpage.html +51 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"580.index.js","mappings":";;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;ACzEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAMA;AACA;;;;;;;;;;;;;;AC5EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;;;;;;;;;;;;;;AC3EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;;;;;;;;;;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;;;;;;;;;;;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;;;;;;;;;;;;;AC7BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAQA;AACA;;;;;;;;;;;;;;AC/CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;;;AC9BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;;;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;;;;;;;ACpCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;;ACvDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAOA;AACA","sources":["../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/boolean.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/foreign-keys.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/unique-constraint.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/common.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/datetime.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/float.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/int.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/json.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/text.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/varchar.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/bigint.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/binary.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/char.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/custom.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/date.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/decimal.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/double.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/enum.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/mediumint.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/real.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/serial.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/smallint.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/time.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/date.common.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/timestamp.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/tinyint.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/varbinary.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/year.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/columns/all.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql-core/table.js"],"sourcesContent":["import { entityKind } from \"../../entity.js\";\nimport { MySqlColumn, MySqlColumnBuilder } from \"./common.js\";\nclass MySqlBooleanBuilder extends MySqlColumnBuilder {\n static [entityKind] = \"MySqlBooleanBuilder\";\n constructor(name) {\n super(name, \"boolean\", \"MySqlBoolean\");\n }\n /** @internal */\n build(table) {\n return new MySqlBoolean(\n table,\n this.config\n );\n }\n}\nclass MySqlBoolean extends MySqlColumn {\n static [entityKind] = \"MySqlBoolean\";\n getSQLType() {\n return \"boolean\";\n }\n mapFromDriverValue(value) {\n if (typeof value === \"boolean\") {\n return value;\n }\n return value === 1;\n }\n}\nfunction boolean(name) {\n return new MySqlBooleanBuilder(name ?? \"\");\n}\nexport {\n MySqlBoolean,\n MySqlBooleanBuilder,\n boolean\n};\n//# sourceMappingURL=boolean.js.map","import { entityKind } from \"../entity.js\";\nimport { TableName } from \"../table.utils.js\";\nclass ForeignKeyBuilder {\n static [entityKind] = \"MySqlForeignKeyBuilder\";\n /** @internal */\n reference;\n /** @internal */\n _onUpdate;\n /** @internal */\n _onDelete;\n constructor(config, actions) {\n this.reference = () => {\n const { name, columns, foreignColumns } = config();\n return { name, columns, foreignTable: foreignColumns[0].table, foreignColumns };\n };\n if (actions) {\n this._onUpdate = actions.onUpdate;\n this._onDelete = actions.onDelete;\n }\n }\n onUpdate(action) {\n this._onUpdate = action;\n return this;\n }\n onDelete(action) {\n this._onDelete = action;\n return this;\n }\n /** @internal */\n build(table) {\n return new ForeignKey(table, this);\n }\n}\nclass ForeignKey {\n constructor(table, builder) {\n this.table = table;\n this.reference = builder.reference;\n this.onUpdate = builder._onUpdate;\n this.onDelete = builder._onDelete;\n }\n static [entityKind] = \"MySqlForeignKey\";\n reference;\n onUpdate;\n onDelete;\n getName() {\n const { name, columns, foreignColumns } = this.reference();\n const columnNames = columns.map((column) => column.name);\n const foreignColumnNames = foreignColumns.map((column) => column.name);\n const chunks = [\n this.table[TableName],\n ...columnNames,\n foreignColumns[0].table[TableName],\n ...foreignColumnNames\n ];\n return name ?? `${chunks.join(\"_\")}_fk`;\n }\n}\nfunction foreignKey(config) {\n function mappedConfig() {\n const { name, columns, foreignColumns } = config;\n return {\n name,\n columns,\n foreignColumns\n };\n }\n return new ForeignKeyBuilder(mappedConfig);\n}\nexport {\n ForeignKey,\n ForeignKeyBuilder,\n foreignKey\n};\n//# sourceMappingURL=foreign-keys.js.map","import { entityKind } from \"../entity.js\";\nimport { TableName } from \"../table.utils.js\";\nfunction unique(name) {\n return new UniqueOnConstraintBuilder(name);\n}\nfunction uniqueKeyName(table, columns) {\n return `${table[TableName]}_${columns.join(\"_\")}_unique`;\n}\nclass UniqueConstraintBuilder {\n constructor(columns, name) {\n this.name = name;\n this.columns = columns;\n }\n static [entityKind] = \"MySqlUniqueConstraintBuilder\";\n /** @internal */\n columns;\n /** @internal */\n build(table) {\n return new UniqueConstraint(table, this.columns, this.name);\n }\n}\nclass UniqueOnConstraintBuilder {\n static [entityKind] = \"MySqlUniqueOnConstraintBuilder\";\n /** @internal */\n name;\n constructor(name) {\n this.name = name;\n }\n on(...columns) {\n return new UniqueConstraintBuilder(columns, this.name);\n }\n}\nclass UniqueConstraint {\n constructor(table, columns, name) {\n this.table = table;\n this.columns = columns;\n this.name = name ?? uniqueKeyName(this.table, this.columns.map((column) => column.name));\n }\n static [entityKind] = \"MySqlUniqueConstraint\";\n columns;\n name;\n nullsNotDistinct = false;\n getName() {\n return this.name;\n }\n}\nexport {\n UniqueConstraint,\n UniqueConstraintBuilder,\n UniqueOnConstraintBuilder,\n unique,\n uniqueKeyName\n};\n//# sourceMappingURL=unique-constraint.js.map","import { ColumnBuilder } from \"../../column-builder.js\";\nimport { Column } from \"../../column.js\";\nimport { entityKind } from \"../../entity.js\";\nimport { ForeignKeyBuilder } from \"../foreign-keys.js\";\nimport { uniqueKeyName } from \"../unique-constraint.js\";\nclass MySqlColumnBuilder extends ColumnBuilder {\n static [entityKind] = \"MySqlColumnBuilder\";\n foreignKeyConfigs = [];\n references(ref, actions = {}) {\n this.foreignKeyConfigs.push({ ref, actions });\n return this;\n }\n unique(name) {\n this.config.isUnique = true;\n this.config.uniqueName = name;\n return this;\n }\n generatedAlwaysAs(as, config) {\n this.config.generated = {\n as,\n type: \"always\",\n mode: config?.mode ?? \"virtual\"\n };\n return this;\n }\n /** @internal */\n buildForeignKeys(column, table) {\n return this.foreignKeyConfigs.map(({ ref, actions }) => {\n return ((ref2, actions2) => {\n const builder = new ForeignKeyBuilder(() => {\n const foreignColumn = ref2();\n return { columns: [column], foreignColumns: [foreignColumn] };\n });\n if (actions2.onUpdate) {\n builder.onUpdate(actions2.onUpdate);\n }\n if (actions2.onDelete) {\n builder.onDelete(actions2.onDelete);\n }\n return builder.build(table);\n })(ref, actions);\n });\n }\n}\nclass MySqlColumn extends Column {\n constructor(table, config) {\n if (!config.uniqueName) {\n config.uniqueName = uniqueKeyName(table, [config.name]);\n }\n super(table, config);\n this.table = table;\n }\n static [entityKind] = \"MySqlColumn\";\n}\nclass MySqlColumnBuilderWithAutoIncrement extends MySqlColumnBuilder {\n static [entityKind] = \"MySqlColumnBuilderWithAutoIncrement\";\n constructor(name, dataType, columnType) {\n super(name, dataType, columnType);\n this.config.autoIncrement = false;\n }\n autoincrement() {\n this.config.autoIncrement = true;\n this.config.hasDefault = true;\n return this;\n }\n}\nclass MySqlColumnWithAutoIncrement extends MySqlColumn {\n static [entityKind] = \"MySqlColumnWithAutoIncrement\";\n autoIncrement = this.config.autoIncrement;\n}\nexport {\n MySqlColumn,\n MySqlColumnBuilder,\n MySqlColumnBuilderWithAutoIncrement,\n MySqlColumnWithAutoIncrement\n};\n//# sourceMappingURL=common.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { MySqlColumn, MySqlColumnBuilder } from \"./common.js\";\nclass MySqlDateTimeBuilder extends MySqlColumnBuilder {\n static [entityKind] = \"MySqlDateTimeBuilder\";\n constructor(name, config) {\n super(name, \"date\", \"MySqlDateTime\");\n this.config.fsp = config?.fsp;\n }\n /** @internal */\n build(table) {\n return new MySqlDateTime(\n table,\n this.config\n );\n }\n}\nclass MySqlDateTime extends MySqlColumn {\n static [entityKind] = \"MySqlDateTime\";\n fsp;\n constructor(table, config) {\n super(table, config);\n this.fsp = config.fsp;\n }\n getSQLType() {\n const precision = this.fsp === void 0 ? \"\" : `(${this.fsp})`;\n return `datetime${precision}`;\n }\n mapToDriverValue(value) {\n return value.toISOString().replace(\"T\", \" \").replace(\"Z\", \"\");\n }\n mapFromDriverValue(value) {\n return /* @__PURE__ */ new Date(value.replace(\" \", \"T\") + \"Z\");\n }\n}\nclass MySqlDateTimeStringBuilder extends MySqlColumnBuilder {\n static [entityKind] = \"MySqlDateTimeStringBuilder\";\n constructor(name, config) {\n super(name, \"string\", \"MySqlDateTimeString\");\n this.config.fsp = config?.fsp;\n }\n /** @internal */\n build(table) {\n return new MySqlDateTimeString(\n table,\n this.config\n );\n }\n}\nclass MySqlDateTimeString extends MySqlColumn {\n static [entityKind] = \"MySqlDateTimeString\";\n fsp;\n constructor(table, config) {\n super(table, config);\n this.fsp = config.fsp;\n }\n getSQLType() {\n const precision = this.fsp === void 0 ? \"\" : `(${this.fsp})`;\n return `datetime${precision}`;\n }\n}\nfunction datetime(a, b) {\n const { name, config } = getColumnNameAndConfig(a, b);\n if (config?.mode === \"string\") {\n return new MySqlDateTimeStringBuilder(name, config);\n }\n return new MySqlDateTimeBuilder(name, config);\n}\nexport {\n MySqlDateTime,\n MySqlDateTimeBuilder,\n MySqlDateTimeString,\n MySqlDateTimeStringBuilder,\n datetime\n};\n//# sourceMappingURL=datetime.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { MySqlColumnBuilderWithAutoIncrement, MySqlColumnWithAutoIncrement } from \"./common.js\";\nclass MySqlFloatBuilder extends MySqlColumnBuilderWithAutoIncrement {\n static [entityKind] = \"MySqlFloatBuilder\";\n constructor(name, config) {\n super(name, \"number\", \"MySqlFloat\");\n this.config.precision = config?.precision;\n this.config.scale = config?.scale;\n this.config.unsigned = config?.unsigned;\n }\n /** @internal */\n build(table) {\n return new MySqlFloat(table, this.config);\n }\n}\nclass MySqlFloat extends MySqlColumnWithAutoIncrement {\n static [entityKind] = \"MySqlFloat\";\n precision = this.config.precision;\n scale = this.config.scale;\n unsigned = this.config.unsigned;\n getSQLType() {\n let type = \"\";\n if (this.precision !== void 0 && this.scale !== void 0) {\n type += `float(${this.precision},${this.scale})`;\n } else if (this.precision === void 0) {\n type += \"float\";\n } else {\n type += `float(${this.precision})`;\n }\n return this.unsigned ? `${type} unsigned` : type;\n }\n}\nfunction float(a, b) {\n const { name, config } = getColumnNameAndConfig(a, b);\n return new MySqlFloatBuilder(name, config);\n}\nexport {\n MySqlFloat,\n MySqlFloatBuilder,\n float\n};\n//# sourceMappingURL=float.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { MySqlColumnBuilderWithAutoIncrement, MySqlColumnWithAutoIncrement } from \"./common.js\";\nclass MySqlIntBuilder extends MySqlColumnBuilderWithAutoIncrement {\n static [entityKind] = \"MySqlIntBuilder\";\n constructor(name, config) {\n super(name, \"number\", \"MySqlInt\");\n this.config.unsigned = config ? config.unsigned : false;\n }\n /** @internal */\n build(table) {\n return new MySqlInt(table, this.config);\n }\n}\nclass MySqlInt extends MySqlColumnWithAutoIncrement {\n static [entityKind] = \"MySqlInt\";\n getSQLType() {\n return `int${this.config.unsigned ? \" unsigned\" : \"\"}`;\n }\n mapFromDriverValue(value) {\n if (typeof value === \"string\") {\n return Number(value);\n }\n return value;\n }\n}\nfunction int(a, b) {\n const { name, config } = getColumnNameAndConfig(a, b);\n return new MySqlIntBuilder(name, config);\n}\nexport {\n MySqlInt,\n MySqlIntBuilder,\n int\n};\n//# sourceMappingURL=int.js.map","import { entityKind } from \"../../entity.js\";\nimport { MySqlColumn, MySqlColumnBuilder } from \"./common.js\";\nclass MySqlJsonBuilder extends MySqlColumnBuilder {\n static [entityKind] = \"MySqlJsonBuilder\";\n constructor(name) {\n super(name, \"json\", \"MySqlJson\");\n }\n /** @internal */\n build(table) {\n return new MySqlJson(table, this.config);\n }\n}\nclass MySqlJson extends MySqlColumn {\n static [entityKind] = \"MySqlJson\";\n getSQLType() {\n return \"json\";\n }\n mapToDriverValue(value) {\n return JSON.stringify(value);\n }\n}\nfunction json(name) {\n return new MySqlJsonBuilder(name ?? \"\");\n}\nexport {\n MySqlJson,\n MySqlJsonBuilder,\n json\n};\n//# sourceMappingURL=json.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { MySqlColumn, MySqlColumnBuilder } from \"./common.js\";\nclass MySqlTextBuilder extends MySqlColumnBuilder {\n static [entityKind] = \"MySqlTextBuilder\";\n constructor(name, textType, config) {\n super(name, \"string\", \"MySqlText\");\n this.config.textType = textType;\n this.config.enumValues = config.enum;\n }\n /** @internal */\n build(table) {\n return new MySqlText(table, this.config);\n }\n}\nclass MySqlText extends MySqlColumn {\n static [entityKind] = \"MySqlText\";\n textType = this.config.textType;\n enumValues = this.config.enumValues;\n getSQLType() {\n return this.textType;\n }\n}\nfunction text(a, b = {}) {\n const { name, config } = getColumnNameAndConfig(a, b);\n return new MySqlTextBuilder(name, \"text\", config);\n}\nfunction tinytext(a, b = {}) {\n const { name, config } = getColumnNameAndConfig(a, b);\n return new MySqlTextBuilder(name, \"tinytext\", config);\n}\nfunction mediumtext(a, b = {}) {\n const { name, config } = getColumnNameAndConfig(a, b);\n return new MySqlTextBuilder(name, \"mediumtext\", config);\n}\nfunction longtext(a, b = {}) {\n const { name, config } = getColumnNameAndConfig(a, b);\n return new MySqlTextBuilder(name, \"longtext\", config);\n}\nexport {\n MySqlText,\n MySqlTextBuilder,\n longtext,\n mediumtext,\n text,\n tinytext\n};\n//# sourceMappingURL=text.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { MySqlColumn, MySqlColumnBuilder } from \"./common.js\";\nclass MySqlVarCharBuilder extends MySqlColumnBuilder {\n static [entityKind] = \"MySqlVarCharBuilder\";\n /** @internal */\n constructor(name, config) {\n super(name, \"string\", \"MySqlVarChar\");\n this.config.length = config.length;\n this.config.enum = config.enum;\n }\n /** @internal */\n build(table) {\n return new MySqlVarChar(\n table,\n this.config\n );\n }\n}\nclass MySqlVarChar extends MySqlColumn {\n static [entityKind] = \"MySqlVarChar\";\n length = this.config.length;\n enumValues = this.config.enum;\n getSQLType() {\n return this.length === void 0 ? `varchar` : `varchar(${this.length})`;\n }\n}\nfunction varchar(a, b) {\n const { name, config } = getColumnNameAndConfig(a, b);\n return new MySqlVarCharBuilder(name, config);\n}\nexport {\n MySqlVarChar,\n MySqlVarCharBuilder,\n varchar\n};\n//# sourceMappingURL=varchar.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { MySqlColumnBuilderWithAutoIncrement, MySqlColumnWithAutoIncrement } from \"./common.js\";\nclass MySqlBigInt53Builder extends MySqlColumnBuilderWithAutoIncrement {\n static [entityKind] = \"MySqlBigInt53Builder\";\n constructor(name, unsigned = false) {\n super(name, \"number\", \"MySqlBigInt53\");\n this.config.unsigned = unsigned;\n }\n /** @internal */\n build(table) {\n return new MySqlBigInt53(\n table,\n this.config\n );\n }\n}\nclass MySqlBigInt53 extends MySqlColumnWithAutoIncrement {\n static [entityKind] = \"MySqlBigInt53\";\n getSQLType() {\n return `bigint${this.config.unsigned ? \" unsigned\" : \"\"}`;\n }\n mapFromDriverValue(value) {\n if (typeof value === \"number\") {\n return value;\n }\n return Number(value);\n }\n}\nclass MySqlBigInt64Builder extends MySqlColumnBuilderWithAutoIncrement {\n static [entityKind] = \"MySqlBigInt64Builder\";\n constructor(name, unsigned = false) {\n super(name, \"bigint\", \"MySqlBigInt64\");\n this.config.unsigned = unsigned;\n }\n /** @internal */\n build(table) {\n return new MySqlBigInt64(\n table,\n this.config\n );\n }\n}\nclass MySqlBigInt64 extends MySqlColumnWithAutoIncrement {\n static [entityKind] = \"MySqlBigInt64\";\n getSQLType() {\n return `bigint${this.config.unsigned ? \" unsigned\" : \"\"}`;\n }\n // eslint-disable-next-line unicorn/prefer-native-coercion-functions\n mapFromDriverValue(value) {\n return BigInt(value);\n }\n}\nfunction bigint(a, b) {\n const { name, config } = getColumnNameAndConfig(a, b);\n if (config.mode === \"number\") {\n return new MySqlBigInt53Builder(name, config.unsigned);\n }\n return new MySqlBigInt64Builder(name, config.unsigned);\n}\nexport {\n MySqlBigInt53,\n MySqlBigInt53Builder,\n MySqlBigInt64,\n MySqlBigInt64Builder,\n bigint\n};\n//# sourceMappingURL=bigint.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { MySqlColumn, MySqlColumnBuilder } from \"./common.js\";\nclass MySqlBinaryBuilder extends MySqlColumnBuilder {\n static [entityKind] = \"MySqlBinaryBuilder\";\n constructor(name, length) {\n super(name, \"string\", \"MySqlBinary\");\n this.config.length = length;\n }\n /** @internal */\n build(table) {\n return new MySqlBinary(table, this.config);\n }\n}\nclass MySqlBinary extends MySqlColumn {\n static [entityKind] = \"MySqlBinary\";\n length = this.config.length;\n getSQLType() {\n return this.length === void 0 ? `binary` : `binary(${this.length})`;\n }\n}\nfunction binary(a, b = {}) {\n const { name, config } = getColumnNameAndConfig(a, b);\n return new MySqlBinaryBuilder(name, config.length);\n}\nexport {\n MySqlBinary,\n MySqlBinaryBuilder,\n binary\n};\n//# sourceMappingURL=binary.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { MySqlColumn, MySqlColumnBuilder } from \"./common.js\";\nclass MySqlCharBuilder extends MySqlColumnBuilder {\n static [entityKind] = \"MySqlCharBuilder\";\n constructor(name, config) {\n super(name, \"string\", \"MySqlChar\");\n this.config.length = config.length;\n this.config.enum = config.enum;\n }\n /** @internal */\n build(table) {\n return new MySqlChar(\n table,\n this.config\n );\n }\n}\nclass MySqlChar extends MySqlColumn {\n static [entityKind] = \"MySqlChar\";\n length = this.config.length;\n enumValues = this.config.enum;\n getSQLType() {\n return this.length === void 0 ? `char` : `char(${this.length})`;\n }\n}\nfunction char(a, b = {}) {\n const { name, config } = getColumnNameAndConfig(a, b);\n return new MySqlCharBuilder(name, config);\n}\nexport {\n MySqlChar,\n MySqlCharBuilder,\n char\n};\n//# sourceMappingURL=char.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { MySqlColumn, MySqlColumnBuilder } from \"./common.js\";\nclass MySqlCustomColumnBuilder extends MySqlColumnBuilder {\n static [entityKind] = \"MySqlCustomColumnBuilder\";\n constructor(name, fieldConfig, customTypeParams) {\n super(name, \"custom\", \"MySqlCustomColumn\");\n this.config.fieldConfig = fieldConfig;\n this.config.customTypeParams = customTypeParams;\n }\n /** @internal */\n build(table) {\n return new MySqlCustomColumn(\n table,\n this.config\n );\n }\n}\nclass MySqlCustomColumn extends MySqlColumn {\n static [entityKind] = \"MySqlCustomColumn\";\n sqlName;\n mapTo;\n mapFrom;\n constructor(table, config) {\n super(table, config);\n this.sqlName = config.customTypeParams.dataType(config.fieldConfig);\n this.mapTo = config.customTypeParams.toDriver;\n this.mapFrom = config.customTypeParams.fromDriver;\n }\n getSQLType() {\n return this.sqlName;\n }\n mapFromDriverValue(value) {\n return typeof this.mapFrom === \"function\" ? this.mapFrom(value) : value;\n }\n mapToDriverValue(value) {\n return typeof this.mapTo === \"function\" ? this.mapTo(value) : value;\n }\n}\nfunction customType(customTypeParams) {\n return (a, b) => {\n const { name, config } = getColumnNameAndConfig(a, b);\n return new MySqlCustomColumnBuilder(name, config, customTypeParams);\n };\n}\nexport {\n MySqlCustomColumn,\n MySqlCustomColumnBuilder,\n customType\n};\n//# sourceMappingURL=custom.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { MySqlColumn, MySqlColumnBuilder } from \"./common.js\";\nclass MySqlDateBuilder extends MySqlColumnBuilder {\n static [entityKind] = \"MySqlDateBuilder\";\n constructor(name) {\n super(name, \"date\", \"MySqlDate\");\n }\n /** @internal */\n build(table) {\n return new MySqlDate(table, this.config);\n }\n}\nclass MySqlDate extends MySqlColumn {\n static [entityKind] = \"MySqlDate\";\n constructor(table, config) {\n super(table, config);\n }\n getSQLType() {\n return `date`;\n }\n mapFromDriverValue(value) {\n return new Date(value);\n }\n}\nclass MySqlDateStringBuilder extends MySqlColumnBuilder {\n static [entityKind] = \"MySqlDateStringBuilder\";\n constructor(name) {\n super(name, \"string\", \"MySqlDateString\");\n }\n /** @internal */\n build(table) {\n return new MySqlDateString(\n table,\n this.config\n );\n }\n}\nclass MySqlDateString extends MySqlColumn {\n static [entityKind] = \"MySqlDateString\";\n constructor(table, config) {\n super(table, config);\n }\n getSQLType() {\n return `date`;\n }\n}\nfunction date(a, b) {\n const { name, config } = getColumnNameAndConfig(a, b);\n if (config?.mode === \"string\") {\n return new MySqlDateStringBuilder(name);\n }\n return new MySqlDateBuilder(name);\n}\nexport {\n MySqlDate,\n MySqlDateBuilder,\n MySqlDateString,\n MySqlDateStringBuilder,\n date\n};\n//# sourceMappingURL=date.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { MySqlColumnBuilderWithAutoIncrement, MySqlColumnWithAutoIncrement } from \"./common.js\";\nclass MySqlDecimalBuilder extends MySqlColumnBuilderWithAutoIncrement {\n static [entityKind] = \"MySqlDecimalBuilder\";\n constructor(name, config) {\n super(name, \"string\", \"MySqlDecimal\");\n this.config.precision = config?.precision;\n this.config.scale = config?.scale;\n this.config.unsigned = config?.unsigned;\n }\n /** @internal */\n build(table) {\n return new MySqlDecimal(\n table,\n this.config\n );\n }\n}\nclass MySqlDecimal extends MySqlColumnWithAutoIncrement {\n static [entityKind] = \"MySqlDecimal\";\n precision = this.config.precision;\n scale = this.config.scale;\n unsigned = this.config.unsigned;\n getSQLType() {\n let type = \"\";\n if (this.precision !== void 0 && this.scale !== void 0) {\n type += `decimal(${this.precision},${this.scale})`;\n } else if (this.precision === void 0) {\n type += \"decimal\";\n } else {\n type += `decimal(${this.precision})`;\n }\n type = type === \"decimal(10,0)\" || type === \"decimal(10)\" ? \"decimal\" : type;\n return this.unsigned ? `${type} unsigned` : type;\n }\n}\nfunction decimal(a, b = {}) {\n const { name, config } = getColumnNameAndConfig(a, b);\n return new MySqlDecimalBuilder(name, config);\n}\nexport {\n MySqlDecimal,\n MySqlDecimalBuilder,\n decimal\n};\n//# sourceMappingURL=decimal.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { MySqlColumnBuilderWithAutoIncrement, MySqlColumnWithAutoIncrement } from \"./common.js\";\nclass MySqlDoubleBuilder extends MySqlColumnBuilderWithAutoIncrement {\n static [entityKind] = \"MySqlDoubleBuilder\";\n constructor(name, config) {\n super(name, \"number\", \"MySqlDouble\");\n this.config.precision = config?.precision;\n this.config.scale = config?.scale;\n this.config.unsigned = config?.unsigned;\n }\n /** @internal */\n build(table) {\n return new MySqlDouble(table, this.config);\n }\n}\nclass MySqlDouble extends MySqlColumnWithAutoIncrement {\n static [entityKind] = \"MySqlDouble\";\n precision = this.config.precision;\n scale = this.config.scale;\n unsigned = this.config.unsigned;\n getSQLType() {\n let type = \"\";\n if (this.precision !== void 0 && this.scale !== void 0) {\n type += `double(${this.precision},${this.scale})`;\n } else if (this.precision === void 0) {\n type += \"double\";\n } else {\n type += `double(${this.precision})`;\n }\n return this.unsigned ? `${type} unsigned` : type;\n }\n}\nfunction double(a, b) {\n const { name, config } = getColumnNameAndConfig(a, b);\n return new MySqlDoubleBuilder(name, config);\n}\nexport {\n MySqlDouble,\n MySqlDoubleBuilder,\n double\n};\n//# sourceMappingURL=double.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { MySqlColumn, MySqlColumnBuilder } from \"./common.js\";\nclass MySqlEnumColumnBuilder extends MySqlColumnBuilder {\n static [entityKind] = \"MySqlEnumColumnBuilder\";\n constructor(name, values) {\n super(name, \"string\", \"MySqlEnumColumn\");\n this.config.enumValues = values;\n }\n /** @internal */\n build(table) {\n return new MySqlEnumColumn(\n table,\n this.config\n );\n }\n}\nclass MySqlEnumColumn extends MySqlColumn {\n static [entityKind] = \"MySqlEnumColumn\";\n enumValues = this.config.enumValues;\n getSQLType() {\n return `enum(${this.enumValues.map((value) => `'${value}'`).join(\",\")})`;\n }\n}\nfunction mysqlEnum(a, b) {\n const { name, config: values } = getColumnNameAndConfig(a, b);\n if (values.length === 0) {\n throw new Error(`You have an empty array for \"${name}\" enum values`);\n }\n return new MySqlEnumColumnBuilder(name, values);\n}\nexport {\n MySqlEnumColumn,\n MySqlEnumColumnBuilder,\n mysqlEnum\n};\n//# sourceMappingURL=enum.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { MySqlColumnBuilderWithAutoIncrement, MySqlColumnWithAutoIncrement } from \"./common.js\";\nclass MySqlMediumIntBuilder extends MySqlColumnBuilderWithAutoIncrement {\n static [entityKind] = \"MySqlMediumIntBuilder\";\n constructor(name, config) {\n super(name, \"number\", \"MySqlMediumInt\");\n this.config.unsigned = config ? config.unsigned : false;\n }\n /** @internal */\n build(table) {\n return new MySqlMediumInt(\n table,\n this.config\n );\n }\n}\nclass MySqlMediumInt extends MySqlColumnWithAutoIncrement {\n static [entityKind] = \"MySqlMediumInt\";\n getSQLType() {\n return `mediumint${this.config.unsigned ? \" unsigned\" : \"\"}`;\n }\n mapFromDriverValue(value) {\n if (typeof value === \"string\") {\n return Number(value);\n }\n return value;\n }\n}\nfunction mediumint(a, b) {\n const { name, config } = getColumnNameAndConfig(a, b);\n return new MySqlMediumIntBuilder(name, config);\n}\nexport {\n MySqlMediumInt,\n MySqlMediumIntBuilder,\n mediumint\n};\n//# sourceMappingURL=mediumint.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { MySqlColumnBuilderWithAutoIncrement, MySqlColumnWithAutoIncrement } from \"./common.js\";\nclass MySqlRealBuilder extends MySqlColumnBuilderWithAutoIncrement {\n static [entityKind] = \"MySqlRealBuilder\";\n constructor(name, config) {\n super(name, \"number\", \"MySqlReal\");\n this.config.precision = config?.precision;\n this.config.scale = config?.scale;\n }\n /** @internal */\n build(table) {\n return new MySqlReal(table, this.config);\n }\n}\nclass MySqlReal extends MySqlColumnWithAutoIncrement {\n static [entityKind] = \"MySqlReal\";\n precision = this.config.precision;\n scale = this.config.scale;\n getSQLType() {\n if (this.precision !== void 0 && this.scale !== void 0) {\n return `real(${this.precision}, ${this.scale})`;\n } else if (this.precision === void 0) {\n return \"real\";\n } else {\n return `real(${this.precision})`;\n }\n }\n}\nfunction real(a, b = {}) {\n const { name, config } = getColumnNameAndConfig(a, b);\n return new MySqlRealBuilder(name, config);\n}\nexport {\n MySqlReal,\n MySqlRealBuilder,\n real\n};\n//# sourceMappingURL=real.js.map","import { entityKind } from \"../../entity.js\";\nimport { MySqlColumnBuilderWithAutoIncrement, MySqlColumnWithAutoIncrement } from \"./common.js\";\nclass MySqlSerialBuilder extends MySqlColumnBuilderWithAutoIncrement {\n static [entityKind] = \"MySqlSerialBuilder\";\n constructor(name) {\n super(name, \"number\", \"MySqlSerial\");\n this.config.hasDefault = true;\n this.config.autoIncrement = true;\n }\n /** @internal */\n build(table) {\n return new MySqlSerial(table, this.config);\n }\n}\nclass MySqlSerial extends MySqlColumnWithAutoIncrement {\n static [entityKind] = \"MySqlSerial\";\n getSQLType() {\n return \"serial\";\n }\n mapFromDriverValue(value) {\n if (typeof value === \"string\") {\n return Number(value);\n }\n return value;\n }\n}\nfunction serial(name) {\n return new MySqlSerialBuilder(name ?? \"\");\n}\nexport {\n MySqlSerial,\n MySqlSerialBuilder,\n serial\n};\n//# sourceMappingURL=serial.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { MySqlColumnBuilderWithAutoIncrement, MySqlColumnWithAutoIncrement } from \"./common.js\";\nclass MySqlSmallIntBuilder extends MySqlColumnBuilderWithAutoIncrement {\n static [entityKind] = \"MySqlSmallIntBuilder\";\n constructor(name, config) {\n super(name, \"number\", \"MySqlSmallInt\");\n this.config.unsigned = config ? config.unsigned : false;\n }\n /** @internal */\n build(table) {\n return new MySqlSmallInt(\n table,\n this.config\n );\n }\n}\nclass MySqlSmallInt extends MySqlColumnWithAutoIncrement {\n static [entityKind] = \"MySqlSmallInt\";\n getSQLType() {\n return `smallint${this.config.unsigned ? \" unsigned\" : \"\"}`;\n }\n mapFromDriverValue(value) {\n if (typeof value === \"string\") {\n return Number(value);\n }\n return value;\n }\n}\nfunction smallint(a, b) {\n const { name, config } = getColumnNameAndConfig(a, b);\n return new MySqlSmallIntBuilder(name, config);\n}\nexport {\n MySqlSmallInt,\n MySqlSmallIntBuilder,\n smallint\n};\n//# sourceMappingURL=smallint.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { MySqlColumn, MySqlColumnBuilder } from \"./common.js\";\nclass MySqlTimeBuilder extends MySqlColumnBuilder {\n static [entityKind] = \"MySqlTimeBuilder\";\n constructor(name, config) {\n super(name, \"string\", \"MySqlTime\");\n this.config.fsp = config?.fsp;\n }\n /** @internal */\n build(table) {\n return new MySqlTime(table, this.config);\n }\n}\nclass MySqlTime extends MySqlColumn {\n static [entityKind] = \"MySqlTime\";\n fsp = this.config.fsp;\n getSQLType() {\n const precision = this.fsp === void 0 ? \"\" : `(${this.fsp})`;\n return `time${precision}`;\n }\n}\nfunction time(a, b) {\n const { name, config } = getColumnNameAndConfig(a, b);\n return new MySqlTimeBuilder(name, config);\n}\nexport {\n MySqlTime,\n MySqlTimeBuilder,\n time\n};\n//# sourceMappingURL=time.js.map","import { entityKind } from \"../../entity.js\";\nimport { sql } from \"../../sql/sql.js\";\nimport { MySqlColumn, MySqlColumnBuilder } from \"./common.js\";\nclass MySqlDateColumnBaseBuilder extends MySqlColumnBuilder {\n static [entityKind] = \"MySqlDateColumnBuilder\";\n defaultNow() {\n return this.default(sql`(now())`);\n }\n // \"on update now\" also adds an implicit default value to the column - https://dev.mysql.com/doc/refman/8.0/en/timestamp-initialization.html\n onUpdateNow() {\n this.config.hasOnUpdateNow = true;\n this.config.hasDefault = true;\n return this;\n }\n}\nclass MySqlDateBaseColumn extends MySqlColumn {\n static [entityKind] = \"MySqlDateColumn\";\n hasOnUpdateNow = this.config.hasOnUpdateNow;\n}\nexport {\n MySqlDateBaseColumn,\n MySqlDateColumnBaseBuilder\n};\n//# sourceMappingURL=date.common.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { MySqlDateBaseColumn, MySqlDateColumnBaseBuilder } from \"./date.common.js\";\nclass MySqlTimestampBuilder extends MySqlDateColumnBaseBuilder {\n static [entityKind] = \"MySqlTimestampBuilder\";\n constructor(name, config) {\n super(name, \"date\", \"MySqlTimestamp\");\n this.config.fsp = config?.fsp;\n }\n /** @internal */\n build(table) {\n return new MySqlTimestamp(\n table,\n this.config\n );\n }\n}\nclass MySqlTimestamp extends MySqlDateBaseColumn {\n static [entityKind] = \"MySqlTimestamp\";\n fsp = this.config.fsp;\n getSQLType() {\n const precision = this.fsp === void 0 ? \"\" : `(${this.fsp})`;\n return `timestamp${precision}`;\n }\n mapFromDriverValue(value) {\n return /* @__PURE__ */ new Date(value + \"+0000\");\n }\n mapToDriverValue(value) {\n return value.toISOString().slice(0, -1).replace(\"T\", \" \");\n }\n}\nclass MySqlTimestampStringBuilder extends MySqlDateColumnBaseBuilder {\n static [entityKind] = \"MySqlTimestampStringBuilder\";\n constructor(name, config) {\n super(name, \"string\", \"MySqlTimestampString\");\n this.config.fsp = config?.fsp;\n }\n /** @internal */\n build(table) {\n return new MySqlTimestampString(\n table,\n this.config\n );\n }\n}\nclass MySqlTimestampString extends MySqlDateBaseColumn {\n static [entityKind] = \"MySqlTimestampString\";\n fsp = this.config.fsp;\n getSQLType() {\n const precision = this.fsp === void 0 ? \"\" : `(${this.fsp})`;\n return `timestamp${precision}`;\n }\n}\nfunction timestamp(a, b = {}) {\n const { name, config } = getColumnNameAndConfig(a, b);\n if (config?.mode === \"string\") {\n return new MySqlTimestampStringBuilder(name, config);\n }\n return new MySqlTimestampBuilder(name, config);\n}\nexport {\n MySqlTimestamp,\n MySqlTimestampBuilder,\n MySqlTimestampString,\n MySqlTimestampStringBuilder,\n timestamp\n};\n//# sourceMappingURL=timestamp.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { MySqlColumnBuilderWithAutoIncrement, MySqlColumnWithAutoIncrement } from \"./common.js\";\nclass MySqlTinyIntBuilder extends MySqlColumnBuilderWithAutoIncrement {\n static [entityKind] = \"MySqlTinyIntBuilder\";\n constructor(name, config) {\n super(name, \"number\", \"MySqlTinyInt\");\n this.config.unsigned = config ? config.unsigned : false;\n }\n /** @internal */\n build(table) {\n return new MySqlTinyInt(\n table,\n this.config\n );\n }\n}\nclass MySqlTinyInt extends MySqlColumnWithAutoIncrement {\n static [entityKind] = \"MySqlTinyInt\";\n getSQLType() {\n return `tinyint${this.config.unsigned ? \" unsigned\" : \"\"}`;\n }\n mapFromDriverValue(value) {\n if (typeof value === \"string\") {\n return Number(value);\n }\n return value;\n }\n}\nfunction tinyint(a, b) {\n const { name, config } = getColumnNameAndConfig(a, b);\n return new MySqlTinyIntBuilder(name, config);\n}\nexport {\n MySqlTinyInt,\n MySqlTinyIntBuilder,\n tinyint\n};\n//# sourceMappingURL=tinyint.js.map","import { entityKind } from \"../../entity.js\";\nimport { getColumnNameAndConfig } from \"../../utils.js\";\nimport { MySqlColumn, MySqlColumnBuilder } from \"./common.js\";\nclass MySqlVarBinaryBuilder extends MySqlColumnBuilder {\n static [entityKind] = \"MySqlVarBinaryBuilder\";\n /** @internal */\n constructor(name, config) {\n super(name, \"string\", \"MySqlVarBinary\");\n this.config.length = config?.length;\n }\n /** @internal */\n build(table) {\n return new MySqlVarBinary(\n table,\n this.config\n );\n }\n}\nclass MySqlVarBinary extends MySqlColumn {\n static [entityKind] = \"MySqlVarBinary\";\n length = this.config.length;\n getSQLType() {\n return this.length === void 0 ? `varbinary` : `varbinary(${this.length})`;\n }\n}\nfunction varbinary(a, b) {\n const { name, config } = getColumnNameAndConfig(a, b);\n return new MySqlVarBinaryBuilder(name, config);\n}\nexport {\n MySqlVarBinary,\n MySqlVarBinaryBuilder,\n varbinary\n};\n//# sourceMappingURL=varbinary.js.map","import { entityKind } from \"../../entity.js\";\nimport { MySqlColumn, MySqlColumnBuilder } from \"./common.js\";\nclass MySqlYearBuilder extends MySqlColumnBuilder {\n static [entityKind] = \"MySqlYearBuilder\";\n constructor(name) {\n super(name, \"number\", \"MySqlYear\");\n }\n /** @internal */\n build(table) {\n return new MySqlYear(table, this.config);\n }\n}\nclass MySqlYear extends MySqlColumn {\n static [entityKind] = \"MySqlYear\";\n getSQLType() {\n return `year`;\n }\n}\nfunction year(name) {\n return new MySqlYearBuilder(name ?? \"\");\n}\nexport {\n MySqlYear,\n MySqlYearBuilder,\n year\n};\n//# sourceMappingURL=year.js.map","import { bigint } from \"./bigint.js\";\nimport { binary } from \"./binary.js\";\nimport { boolean } from \"./boolean.js\";\nimport { char } from \"./char.js\";\nimport { customType } from \"./custom.js\";\nimport { date } from \"./date.js\";\nimport { datetime } from \"./datetime.js\";\nimport { decimal } from \"./decimal.js\";\nimport { double } from \"./double.js\";\nimport { mysqlEnum } from \"./enum.js\";\nimport { float } from \"./float.js\";\nimport { int } from \"./int.js\";\nimport { json } from \"./json.js\";\nimport { mediumint } from \"./mediumint.js\";\nimport { real } from \"./real.js\";\nimport { serial } from \"./serial.js\";\nimport { smallint } from \"./smallint.js\";\nimport { text } from \"./text.js\";\nimport { time } from \"./time.js\";\nimport { timestamp } from \"./timestamp.js\";\nimport { tinyint } from \"./tinyint.js\";\nimport { varbinary } from \"./varbinary.js\";\nimport { varchar } from \"./varchar.js\";\nimport { year } from \"./year.js\";\nfunction getMySqlColumnBuilders() {\n return {\n bigint,\n binary,\n boolean,\n char,\n customType,\n date,\n datetime,\n decimal,\n double,\n mysqlEnum,\n float,\n int,\n json,\n mediumint,\n real,\n serial,\n smallint,\n text,\n time,\n timestamp,\n tinyint,\n varbinary,\n varchar,\n year\n };\n}\nexport {\n getMySqlColumnBuilders\n};\n//# sourceMappingURL=all.js.map","import { entityKind } from \"../entity.js\";\nimport { Table } from \"../table.js\";\nimport { getMySqlColumnBuilders } from \"./columns/all.js\";\nconst InlineForeignKeys = Symbol.for(\"drizzle:MySqlInlineForeignKeys\");\nclass MySqlTable extends Table {\n static [entityKind] = \"MySqlTable\";\n /** @internal */\n static Symbol = Object.assign({}, Table.Symbol, {\n InlineForeignKeys\n });\n /** @internal */\n [Table.Symbol.Columns];\n /** @internal */\n [InlineForeignKeys] = [];\n /** @internal */\n [Table.Symbol.ExtraConfigBuilder] = void 0;\n}\nfunction mysqlTableWithSchema(name, columns, extraConfig, schema, baseName = name) {\n const rawTable = new MySqlTable(name, schema, baseName);\n const parsedColumns = typeof columns === \"function\" ? columns(getMySqlColumnBuilders()) : columns;\n const builtColumns = Object.fromEntries(\n Object.entries(parsedColumns).map(([name2, colBuilderBase]) => {\n const colBuilder = colBuilderBase;\n colBuilder.setName(name2);\n const column = colBuilder.build(rawTable);\n rawTable[InlineForeignKeys].push(...colBuilder.buildForeignKeys(column, rawTable));\n return [name2, column];\n })\n );\n const table = Object.assign(rawTable, builtColumns);\n table[Table.Symbol.Columns] = builtColumns;\n table[Table.Symbol.ExtraConfigColumns] = builtColumns;\n if (extraConfig) {\n table[MySqlTable.Symbol.ExtraConfigBuilder] = extraConfig;\n }\n return table;\n}\nconst mysqlTable = (name, columns, extraConfig) => {\n return mysqlTableWithSchema(name, columns, extraConfig, void 0, name);\n};\nfunction mysqlTableCreator(customizeTableName) {\n return (name, columns, extraConfig) => {\n return mysqlTableWithSchema(customizeTableName(name), columns, extraConfig, void 0, name);\n };\n}\nexport {\n InlineForeignKeys,\n MySqlTable,\n mysqlTable,\n mysqlTableCreator,\n mysqlTableWithSchema\n};\n//# sourceMappingURL=table.js.map"],"names":[],"sourceRoot":""}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
export const id = 581;
|
|
2
|
+
export const ids = [581];
|
|
3
|
+
export const modules = {
|
|
4
|
+
|
|
5
|
+
/***/ 1188:
|
|
6
|
+
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
7
|
+
|
|
8
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
9
|
+
/* harmony export */ I: () => (/* binding */ readMigrationFiles)
|
|
10
|
+
/* harmony export */ });
|
|
11
|
+
/* harmony import */ var node_crypto__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7598);
|
|
12
|
+
/* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3024);
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
function readMigrationFiles(config) {
|
|
16
|
+
const migrationFolderTo = config.migrationsFolder;
|
|
17
|
+
const migrationQueries = [];
|
|
18
|
+
const journalPath = `${migrationFolderTo}/meta/_journal.json`;
|
|
19
|
+
if (!node_fs__WEBPACK_IMPORTED_MODULE_1__.existsSync(journalPath)) {
|
|
20
|
+
throw new Error(`Can't find meta/_journal.json file`);
|
|
21
|
+
}
|
|
22
|
+
const journalAsString = node_fs__WEBPACK_IMPORTED_MODULE_1__["read"+"FileSync"](`${migrationFolderTo}/meta/_journal.json`).toString();
|
|
23
|
+
const journal = JSON.parse(journalAsString);
|
|
24
|
+
for (const journalEntry of journal.entries) {
|
|
25
|
+
const migrationPath = `${migrationFolderTo}/${journalEntry.tag}.sql`;
|
|
26
|
+
try {
|
|
27
|
+
const query = node_fs__WEBPACK_IMPORTED_MODULE_1__["read"+"FileSync"](`${migrationFolderTo}/${journalEntry.tag}.sql`).toString();
|
|
28
|
+
const result = query.split("--> statement-breakpoint").map((it) => {
|
|
29
|
+
return it;
|
|
30
|
+
});
|
|
31
|
+
migrationQueries.push({
|
|
32
|
+
sql: result,
|
|
33
|
+
bps: journalEntry.breakpoints,
|
|
34
|
+
folderMillis: journalEntry.when,
|
|
35
|
+
hash: node_crypto__WEBPACK_IMPORTED_MODULE_0__.createHash("sha256").update(query).digest("hex")
|
|
36
|
+
});
|
|
37
|
+
} catch {
|
|
38
|
+
throw new Error(`No file ${migrationPath} found in ${migrationFolderTo} folder`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return migrationQueries;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=migrator.js.map
|
|
45
|
+
|
|
46
|
+
/***/ }),
|
|
47
|
+
|
|
48
|
+
/***/ 1581:
|
|
49
|
+
/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
50
|
+
|
|
51
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
52
|
+
/* harmony export */ migrate: () => (/* binding */ migrate)
|
|
53
|
+
/* harmony export */ });
|
|
54
|
+
/* harmony import */ var _migrator_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1188);
|
|
55
|
+
|
|
56
|
+
async function migrate(db, config) {
|
|
57
|
+
const migrations = (0,_migrator_js__WEBPACK_IMPORTED_MODULE_0__/* .readMigrationFiles */ .I)(config);
|
|
58
|
+
await db.dialect.migrate(migrations, db.session, config);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
//# sourceMappingURL=migrator.js.map
|
|
62
|
+
|
|
63
|
+
/***/ })
|
|
64
|
+
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
//# sourceMappingURL=581.index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"581.index.js","mappings":";;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAGA;AACA;;;;;;;;;;;ACjCA;AACA;AACA;AACA;AACA;AAGA;AACA","sources":["../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/migrator.js","../../../node_modules/.pnpm/drizzle-orm@0.36.4_@libsql+client@0.14.0_mysql2@3.22.3_postgres@3.4.9/node_modules/drizzle-orm/mysql2/migrator.js"],"sourcesContent":["import crypto from \"node:crypto\";\nimport fs from \"node:fs\";\nfunction readMigrationFiles(config) {\n const migrationFolderTo = config.migrationsFolder;\n const migrationQueries = [];\n const journalPath = `${migrationFolderTo}/meta/_journal.json`;\n if (!fs.existsSync(journalPath)) {\n throw new Error(`Can't find meta/_journal.json file`);\n }\n const journalAsString = fs.readFileSync(`${migrationFolderTo}/meta/_journal.json`).toString();\n const journal = JSON.parse(journalAsString);\n for (const journalEntry of journal.entries) {\n const migrationPath = `${migrationFolderTo}/${journalEntry.tag}.sql`;\n try {\n const query = fs.readFileSync(`${migrationFolderTo}/${journalEntry.tag}.sql`).toString();\n const result = query.split(\"--> statement-breakpoint\").map((it) => {\n return it;\n });\n migrationQueries.push({\n sql: result,\n bps: journalEntry.breakpoints,\n folderMillis: journalEntry.when,\n hash: crypto.createHash(\"sha256\").update(query).digest(\"hex\")\n });\n } catch {\n throw new Error(`No file ${migrationPath} found in ${migrationFolderTo} folder`);\n }\n }\n return migrationQueries;\n}\nexport {\n readMigrationFiles\n};\n//# sourceMappingURL=migrator.js.map","import { readMigrationFiles } from \"../migrator.js\";\nasync function migrate(db, config) {\n const migrations = readMigrationFiles(config);\n await db.dialect.migrate(migrations, db.session, config);\n}\nexport {\n migrate\n};\n//# sourceMappingURL=migrator.js.map"],"names":[],"sourceRoot":""}
|
|
@@ -0,0 +1,328 @@
|
|
|
1
|
+
export const id = 598;
|
|
2
|
+
export const ids = [598];
|
|
3
|
+
export const modules = {
|
|
4
|
+
|
|
5
|
+
/***/ 9217:
|
|
6
|
+
/***/ ((__webpack_module__, __webpack_exports__, __webpack_require__) => {
|
|
7
|
+
|
|
8
|
+
__webpack_require__.a(__webpack_module__, async (__webpack_handle_async_dependencies__, __webpack_async_result__) => { try {
|
|
9
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
10
|
+
/* harmony export */ gatewayRouter: () => (/* binding */ router)
|
|
11
|
+
/* harmony export */ });
|
|
12
|
+
/* harmony import */ var express__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(316);
|
|
13
|
+
/* harmony import */ var node_fs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3024);
|
|
14
|
+
/* harmony import */ var node_path__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6760);
|
|
15
|
+
/* harmony import */ var node_os__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8161);
|
|
16
|
+
/* harmony import */ var _og_db__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6020);
|
|
17
|
+
var __webpack_async_dependencies__ = __webpack_handle_async_dependencies__([_og_db__WEBPACK_IMPORTED_MODULE_4__]);
|
|
18
|
+
_og_db__WEBPACK_IMPORTED_MODULE_4__ = (__webpack_async_dependencies__.then ? (await __webpack_async_dependencies__)() : __webpack_async_dependencies__)[0];
|
|
19
|
+
/**
|
|
20
|
+
* Gateway API routes
|
|
21
|
+
*
|
|
22
|
+
* Provides status and management endpoints for the AI Security Gateway.
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
const gatewayActivityDb = (0,_og_db__WEBPACK_IMPORTED_MODULE_4__/* .gatewayActivityQueries */ .y)(_og_db__WEBPACK_IMPORTED_MODULE_4__.db);
|
|
30
|
+
const DEFAULT_TENANT_ID = "default";
|
|
31
|
+
const router = (0,express__WEBPACK_IMPORTED_MODULE_0__.Router)();
|
|
32
|
+
// File paths - unified to moltguard data directory
|
|
33
|
+
const OPENCLAW_DIR = (0,node_path__WEBPACK_IMPORTED_MODULE_2__.join)((0,node_os__WEBPACK_IMPORTED_MODULE_3__.homedir)(), ".openclaw");
|
|
34
|
+
const MOLTGUARD_DATA_DIR = (0,node_path__WEBPACK_IMPORTED_MODULE_2__.join)(OPENCLAW_DIR, "extensions", "moltguard", "data");
|
|
35
|
+
const GATEWAY_CONFIG = (0,node_path__WEBPACK_IMPORTED_MODULE_2__.join)(MOLTGUARD_DATA_DIR, "gateway.json");
|
|
36
|
+
const GATEWAY_PID_FILE = (0,node_path__WEBPACK_IMPORTED_MODULE_2__.join)(MOLTGUARD_DATA_DIR, "gateway.pid");
|
|
37
|
+
const GATEWAY_BACKUP = (0,node_path__WEBPACK_IMPORTED_MODULE_2__.join)(MOLTGUARD_DATA_DIR, "gateway-backup.json");
|
|
38
|
+
/**
|
|
39
|
+
* Check if gateway process is running by checking PID file
|
|
40
|
+
* Note: In-process gateway (embedded in moltguard) won't have a PID file
|
|
41
|
+
*/
|
|
42
|
+
function checkPidFile() {
|
|
43
|
+
if (!(0,node_fs__WEBPACK_IMPORTED_MODULE_1__.existsSync)(GATEWAY_PID_FILE)) {
|
|
44
|
+
return { hasPid: false };
|
|
45
|
+
}
|
|
46
|
+
try {
|
|
47
|
+
const pid = parseInt((0,node_fs__WEBPACK_IMPORTED_MODULE_1__["read"+"FileSync"])(GATEWAY_PID_FILE, "utf-8").trim(), 10);
|
|
48
|
+
// Signal 0 doesn't kill, just checks if process exists
|
|
49
|
+
process.kill(pid, 0);
|
|
50
|
+
return { hasPid: true, pid };
|
|
51
|
+
}
|
|
52
|
+
catch {
|
|
53
|
+
return { hasPid: false };
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Check if gateway is actually responding by calling health endpoint
|
|
58
|
+
*/
|
|
59
|
+
async function checkGatewayHealth(port) {
|
|
60
|
+
const controller = new AbortController();
|
|
61
|
+
const timeoutId = setTimeout(() => controller.abort(), 2000);
|
|
62
|
+
try {
|
|
63
|
+
const response = await fetch(`http://127.0.0.1:${port}/health`, {
|
|
64
|
+
signal: controller.signal,
|
|
65
|
+
});
|
|
66
|
+
clearTimeout(timeoutId);
|
|
67
|
+
if (response.ok) {
|
|
68
|
+
return { healthy: true };
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
return { healthy: false, error: `Status ${response.status}` };
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
catch (err) {
|
|
75
|
+
clearTimeout(timeoutId);
|
|
76
|
+
return { healthy: false, error: err instanceof Error ? err.message : "Connection failed" };
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Read gateway configuration
|
|
81
|
+
*/
|
|
82
|
+
function readGatewayConfig() {
|
|
83
|
+
if (!(0,node_fs__WEBPACK_IMPORTED_MODULE_1__.existsSync)(GATEWAY_CONFIG)) {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
try {
|
|
87
|
+
return JSON.parse((0,node_fs__WEBPACK_IMPORTED_MODULE_1__["read"+"FileSync"])(GATEWAY_CONFIG, "utf-8"));
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Read gateway backup (enabled state)
|
|
95
|
+
*/
|
|
96
|
+
function readGatewayBackup() {
|
|
97
|
+
if (!(0,node_fs__WEBPACK_IMPORTED_MODULE_1__.existsSync)(GATEWAY_BACKUP)) {
|
|
98
|
+
return { enabled: false, agents: [], providers: [] };
|
|
99
|
+
}
|
|
100
|
+
try {
|
|
101
|
+
const backup = JSON.parse((0,node_fs__WEBPACK_IMPORTED_MODULE_1__["read"+"FileSync"])(GATEWAY_BACKUP, "utf-8"));
|
|
102
|
+
const agents = backup.entries?.map((e) => e.agentName) || [];
|
|
103
|
+
const providerSet = new Set();
|
|
104
|
+
for (const entry of backup.entries || []) {
|
|
105
|
+
for (const providerName of Object.keys(entry.providers || {})) {
|
|
106
|
+
providerSet.add(providerName);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return {
|
|
110
|
+
enabled: true,
|
|
111
|
+
agents,
|
|
112
|
+
providers: Array.from(providerSet),
|
|
113
|
+
timestamp: backup.timestamp,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
catch {
|
|
117
|
+
return { enabled: false, agents: [], providers: [] };
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
/**
|
|
121
|
+
* GET /api/gateway/status
|
|
122
|
+
* Get current gateway status
|
|
123
|
+
*/
|
|
124
|
+
router.get("/status", async (_req, res) => {
|
|
125
|
+
try {
|
|
126
|
+
const { hasPid, pid } = checkPidFile();
|
|
127
|
+
const backup = readGatewayBackup();
|
|
128
|
+
const config = readGatewayConfig();
|
|
129
|
+
const port = config?.port || 53669;
|
|
130
|
+
// Check if gateway is actually running by calling health endpoint
|
|
131
|
+
// This works for both standalone and in-process (embedded) gateway
|
|
132
|
+
const { healthy } = await checkGatewayHealth(port);
|
|
133
|
+
const status = {
|
|
134
|
+
enabled: backup.enabled,
|
|
135
|
+
running: healthy, // Use health check instead of PID file
|
|
136
|
+
pid: hasPid ? pid : undefined,
|
|
137
|
+
port,
|
|
138
|
+
url: `http://127.0.0.1:${port}`,
|
|
139
|
+
agents: backup.agents,
|
|
140
|
+
providers: backup.providers,
|
|
141
|
+
enabledAt: backup.timestamp || null,
|
|
142
|
+
backends: config ? Object.keys(config.backends || {}) : [],
|
|
143
|
+
};
|
|
144
|
+
res.json({ success: true, data: status });
|
|
145
|
+
}
|
|
146
|
+
catch (error) {
|
|
147
|
+
res.status(500).json({
|
|
148
|
+
success: false,
|
|
149
|
+
error: error instanceof Error ? error.message : "Failed to get gateway status",
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
});
|
|
153
|
+
/**
|
|
154
|
+
* GET /api/gateway/config
|
|
155
|
+
* Get gateway configuration (without sensitive data)
|
|
156
|
+
*/
|
|
157
|
+
router.get("/config", (_req, res) => {
|
|
158
|
+
try {
|
|
159
|
+
const config = readGatewayConfig();
|
|
160
|
+
if (!config) {
|
|
161
|
+
res.json({
|
|
162
|
+
success: true,
|
|
163
|
+
data: {
|
|
164
|
+
configured: false,
|
|
165
|
+
port: 53669,
|
|
166
|
+
backends: [],
|
|
167
|
+
},
|
|
168
|
+
});
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
// Return config without API keys
|
|
172
|
+
const backends = config.backends || {};
|
|
173
|
+
const sanitizedBackends = {};
|
|
174
|
+
for (const [name, backend] of Object.entries(backends)) {
|
|
175
|
+
sanitizedBackends[name] = {
|
|
176
|
+
baseUrl: backend.baseUrl || "",
|
|
177
|
+
hasApiKey: true, // We know it exists, just don't expose it
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
res.json({
|
|
181
|
+
success: true,
|
|
182
|
+
data: {
|
|
183
|
+
configured: true,
|
|
184
|
+
port: config.port || 53669,
|
|
185
|
+
backends: sanitizedBackends,
|
|
186
|
+
routing: config.routing || {},
|
|
187
|
+
},
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
catch (error) {
|
|
191
|
+
res.status(500).json({
|
|
192
|
+
success: false,
|
|
193
|
+
error: error instanceof Error ? error.message : "Failed to get gateway config",
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
});
|
|
197
|
+
/**
|
|
198
|
+
* GET /api/gateway/health
|
|
199
|
+
* Check if gateway is responding
|
|
200
|
+
*/
|
|
201
|
+
router.get("/health", async (_req, res) => {
|
|
202
|
+
try {
|
|
203
|
+
const config = readGatewayConfig();
|
|
204
|
+
const port = config?.port || 53669;
|
|
205
|
+
const { healthy, error } = await checkGatewayHealth(port);
|
|
206
|
+
res.json({
|
|
207
|
+
success: true,
|
|
208
|
+
data: {
|
|
209
|
+
healthy,
|
|
210
|
+
...(error ? { error } : {}),
|
|
211
|
+
},
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
catch (error) {
|
|
215
|
+
res.status(500).json({
|
|
216
|
+
success: false,
|
|
217
|
+
error: error instanceof Error ? error.message : "Failed to check gateway health",
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
/**
|
|
222
|
+
* POST /api/gateway/activity
|
|
223
|
+
* Receive gateway activity events from MoltGuard
|
|
224
|
+
*/
|
|
225
|
+
router.post("/activity", async (req, res) => {
|
|
226
|
+
try {
|
|
227
|
+
const event = req.body;
|
|
228
|
+
if (!event || !event.id || !event.type) {
|
|
229
|
+
res.status(400).json({
|
|
230
|
+
success: false,
|
|
231
|
+
error: "Invalid activity event: missing id or type",
|
|
232
|
+
});
|
|
233
|
+
return;
|
|
234
|
+
}
|
|
235
|
+
await gatewayActivityDb.create({
|
|
236
|
+
eventId: event.id,
|
|
237
|
+
requestId: event.requestId,
|
|
238
|
+
timestamp: event.timestamp,
|
|
239
|
+
type: event.type,
|
|
240
|
+
direction: event.direction,
|
|
241
|
+
backend: event.backend,
|
|
242
|
+
endpoint: event.endpoint,
|
|
243
|
+
model: event.model || null,
|
|
244
|
+
redactionCount: event.redactionCount || 0,
|
|
245
|
+
categories: event.categories || {},
|
|
246
|
+
durationMs: event.durationMs || null,
|
|
247
|
+
tenantId: DEFAULT_TENANT_ID,
|
|
248
|
+
});
|
|
249
|
+
res.json({ success: true });
|
|
250
|
+
}
|
|
251
|
+
catch (error) {
|
|
252
|
+
console.error("[gateway] Failed to save activity:", error);
|
|
253
|
+
res.status(500).json({
|
|
254
|
+
success: false,
|
|
255
|
+
error: error instanceof Error ? error.message : "Failed to save activity",
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
/**
|
|
260
|
+
* GET /api/gateway/activity
|
|
261
|
+
* List recent gateway activity events
|
|
262
|
+
*/
|
|
263
|
+
router.get("/activity", async (req, res) => {
|
|
264
|
+
try {
|
|
265
|
+
const limit = Math.min(parseInt(req.query.limit || "100", 10), 1000);
|
|
266
|
+
const type = req.query.type;
|
|
267
|
+
const events = await gatewayActivityDb.findRecent({
|
|
268
|
+
tenantId: DEFAULT_TENANT_ID,
|
|
269
|
+
limit,
|
|
270
|
+
type: type === "sanitize" || type === "restore" ? type : undefined,
|
|
271
|
+
});
|
|
272
|
+
// Transform events for API response
|
|
273
|
+
const data = [];
|
|
274
|
+
for (const e of events) {
|
|
275
|
+
data.push({
|
|
276
|
+
id: e.eventId,
|
|
277
|
+
requestId: e.requestId,
|
|
278
|
+
timestamp: e.timestamp,
|
|
279
|
+
type: e.type,
|
|
280
|
+
direction: e.direction,
|
|
281
|
+
backend: e.backend,
|
|
282
|
+
endpoint: e.endpoint,
|
|
283
|
+
model: e.model,
|
|
284
|
+
redactionCount: e.redactionCount,
|
|
285
|
+
categories: e.categories,
|
|
286
|
+
durationMs: e.durationMs,
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
res.json({ success: true, data });
|
|
290
|
+
}
|
|
291
|
+
catch (error) {
|
|
292
|
+
console.error("[gateway] Failed to get activity:", error);
|
|
293
|
+
res.status(500).json({
|
|
294
|
+
success: false,
|
|
295
|
+
error: error instanceof Error ? error.message : "Failed to get activity",
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
});
|
|
299
|
+
/**
|
|
300
|
+
* GET /api/gateway/activity/stats
|
|
301
|
+
* Get aggregated gateway activity statistics
|
|
302
|
+
*/
|
|
303
|
+
router.get("/activity/stats", async (_req, res) => {
|
|
304
|
+
try {
|
|
305
|
+
const stats = await gatewayActivityDb.stats(DEFAULT_TENANT_ID);
|
|
306
|
+
res.json({
|
|
307
|
+
success: true,
|
|
308
|
+
data: stats,
|
|
309
|
+
});
|
|
310
|
+
}
|
|
311
|
+
catch (error) {
|
|
312
|
+
console.error("[gateway] Failed to get activity stats:", error);
|
|
313
|
+
res.status(500).json({
|
|
314
|
+
success: false,
|
|
315
|
+
error: error instanceof Error ? error.message : "Failed to get activity stats",
|
|
316
|
+
});
|
|
317
|
+
}
|
|
318
|
+
});
|
|
319
|
+
|
|
320
|
+
//# sourceMappingURL=gateway.js.map
|
|
321
|
+
__webpack_async_result__();
|
|
322
|
+
} catch(e) { __webpack_async_result__(e); } });
|
|
323
|
+
|
|
324
|
+
/***/ })
|
|
325
|
+
|
|
326
|
+
};
|
|
327
|
+
|
|
328
|
+
//# sourceMappingURL=598.index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"598.index.js","mappings":";;;;;;;;;;;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sources":[".././dist/routes/gateway.js"],"sourcesContent":["/**\n * Gateway API routes\n *\n * Provides status and management endpoints for the AI Security Gateway.\n */\nimport { Router } from \"express\";\nimport { existsSync, readFileSync } from \"node:fs\";\nimport { join } from \"node:path\";\nimport { homedir } from \"node:os\";\nimport { db, gatewayActivityQueries } from \"@og/db\";\nconst gatewayActivityDb = gatewayActivityQueries(db);\nconst DEFAULT_TENANT_ID = \"default\";\nconst router = Router();\n// File paths - unified to moltguard data directory\nconst OPENCLAW_DIR = join(homedir(), \".openclaw\");\nconst MOLTGUARD_DATA_DIR = join(OPENCLAW_DIR, \"extensions\", \"moltguard\", \"data\");\nconst GATEWAY_CONFIG = join(MOLTGUARD_DATA_DIR, \"gateway.json\");\nconst GATEWAY_PID_FILE = join(MOLTGUARD_DATA_DIR, \"gateway.pid\");\nconst GATEWAY_BACKUP = join(MOLTGUARD_DATA_DIR, \"gateway-backup.json\");\n/**\n * Check if gateway process is running by checking PID file\n * Note: In-process gateway (embedded in moltguard) won't have a PID file\n */\nfunction checkPidFile() {\n if (!existsSync(GATEWAY_PID_FILE)) {\n return { hasPid: false };\n }\n try {\n const pid = parseInt(readFileSync(GATEWAY_PID_FILE, \"utf-8\").trim(), 10);\n // Signal 0 doesn't kill, just checks if process exists\n process.kill(pid, 0);\n return { hasPid: true, pid };\n }\n catch {\n return { hasPid: false };\n }\n}\n/**\n * Check if gateway is actually responding by calling health endpoint\n */\nasync function checkGatewayHealth(port) {\n const controller = new AbortController();\n const timeoutId = setTimeout(() => controller.abort(), 2000);\n try {\n const response = await fetch(`http://127.0.0.1:${port}/health`, {\n signal: controller.signal,\n });\n clearTimeout(timeoutId);\n if (response.ok) {\n return { healthy: true };\n }\n else {\n return { healthy: false, error: `Status ${response.status}` };\n }\n }\n catch (err) {\n clearTimeout(timeoutId);\n return { healthy: false, error: err instanceof Error ? err.message : \"Connection failed\" };\n }\n}\n/**\n * Read gateway configuration\n */\nfunction readGatewayConfig() {\n if (!existsSync(GATEWAY_CONFIG)) {\n return null;\n }\n try {\n return JSON.parse(readFileSync(GATEWAY_CONFIG, \"utf-8\"));\n }\n catch {\n return null;\n }\n}\n/**\n * Read gateway backup (enabled state)\n */\nfunction readGatewayBackup() {\n if (!existsSync(GATEWAY_BACKUP)) {\n return { enabled: false, agents: [], providers: [] };\n }\n try {\n const backup = JSON.parse(readFileSync(GATEWAY_BACKUP, \"utf-8\"));\n const agents = backup.entries?.map((e) => e.agentName) || [];\n const providerSet = new Set();\n for (const entry of backup.entries || []) {\n for (const providerName of Object.keys(entry.providers || {})) {\n providerSet.add(providerName);\n }\n }\n return {\n enabled: true,\n agents,\n providers: Array.from(providerSet),\n timestamp: backup.timestamp,\n };\n }\n catch {\n return { enabled: false, agents: [], providers: [] };\n }\n}\n/**\n * GET /api/gateway/status\n * Get current gateway status\n */\nrouter.get(\"/status\", async (_req, res) => {\n try {\n const { hasPid, pid } = checkPidFile();\n const backup = readGatewayBackup();\n const config = readGatewayConfig();\n const port = config?.port || 53669;\n // Check if gateway is actually running by calling health endpoint\n // This works for both standalone and in-process (embedded) gateway\n const { healthy } = await checkGatewayHealth(port);\n const status = {\n enabled: backup.enabled,\n running: healthy, // Use health check instead of PID file\n pid: hasPid ? pid : undefined,\n port,\n url: `http://127.0.0.1:${port}`,\n agents: backup.agents,\n providers: backup.providers,\n enabledAt: backup.timestamp || null,\n backends: config ? Object.keys(config.backends || {}) : [],\n };\n res.json({ success: true, data: status });\n }\n catch (error) {\n res.status(500).json({\n success: false,\n error: error instanceof Error ? error.message : \"Failed to get gateway status\",\n });\n }\n});\n/**\n * GET /api/gateway/config\n * Get gateway configuration (without sensitive data)\n */\nrouter.get(\"/config\", (_req, res) => {\n try {\n const config = readGatewayConfig();\n if (!config) {\n res.json({\n success: true,\n data: {\n configured: false,\n port: 53669,\n backends: [],\n },\n });\n return;\n }\n // Return config without API keys\n const backends = config.backends || {};\n const sanitizedBackends = {};\n for (const [name, backend] of Object.entries(backends)) {\n sanitizedBackends[name] = {\n baseUrl: backend.baseUrl || \"\",\n hasApiKey: true, // We know it exists, just don't expose it\n };\n }\n res.json({\n success: true,\n data: {\n configured: true,\n port: config.port || 53669,\n backends: sanitizedBackends,\n routing: config.routing || {},\n },\n });\n }\n catch (error) {\n res.status(500).json({\n success: false,\n error: error instanceof Error ? error.message : \"Failed to get gateway config\",\n });\n }\n});\n/**\n * GET /api/gateway/health\n * Check if gateway is responding\n */\nrouter.get(\"/health\", async (_req, res) => {\n try {\n const config = readGatewayConfig();\n const port = config?.port || 53669;\n const { healthy, error } = await checkGatewayHealth(port);\n res.json({\n success: true,\n data: {\n healthy,\n ...(error ? { error } : {}),\n },\n });\n }\n catch (error) {\n res.status(500).json({\n success: false,\n error: error instanceof Error ? error.message : \"Failed to check gateway health\",\n });\n }\n});\n/**\n * POST /api/gateway/activity\n * Receive gateway activity events from MoltGuard\n */\nrouter.post(\"/activity\", async (req, res) => {\n try {\n const event = req.body;\n if (!event || !event.id || !event.type) {\n res.status(400).json({\n success: false,\n error: \"Invalid activity event: missing id or type\",\n });\n return;\n }\n await gatewayActivityDb.create({\n eventId: event.id,\n requestId: event.requestId,\n timestamp: event.timestamp,\n type: event.type,\n direction: event.direction,\n backend: event.backend,\n endpoint: event.endpoint,\n model: event.model || null,\n redactionCount: event.redactionCount || 0,\n categories: event.categories || {},\n durationMs: event.durationMs || null,\n tenantId: DEFAULT_TENANT_ID,\n });\n res.json({ success: true });\n }\n catch (error) {\n console.error(\"[gateway] Failed to save activity:\", error);\n res.status(500).json({\n success: false,\n error: error instanceof Error ? error.message : \"Failed to save activity\",\n });\n }\n});\n/**\n * GET /api/gateway/activity\n * List recent gateway activity events\n */\nrouter.get(\"/activity\", async (req, res) => {\n try {\n const limit = Math.min(parseInt(req.query.limit || \"100\", 10), 1000);\n const type = req.query.type;\n const events = await gatewayActivityDb.findRecent({\n tenantId: DEFAULT_TENANT_ID,\n limit,\n type: type === \"sanitize\" || type === \"restore\" ? type : undefined,\n });\n // Transform events for API response\n const data = [];\n for (const e of events) {\n data.push({\n id: e.eventId,\n requestId: e.requestId,\n timestamp: e.timestamp,\n type: e.type,\n direction: e.direction,\n backend: e.backend,\n endpoint: e.endpoint,\n model: e.model,\n redactionCount: e.redactionCount,\n categories: e.categories,\n durationMs: e.durationMs,\n });\n }\n res.json({ success: true, data });\n }\n catch (error) {\n console.error(\"[gateway] Failed to get activity:\", error);\n res.status(500).json({\n success: false,\n error: error instanceof Error ? error.message : \"Failed to get activity\",\n });\n }\n});\n/**\n * GET /api/gateway/activity/stats\n * Get aggregated gateway activity statistics\n */\nrouter.get(\"/activity/stats\", async (_req, res) => {\n try {\n const stats = await gatewayActivityDb.stats(DEFAULT_TENANT_ID);\n res.json({\n success: true,\n data: stats,\n });\n }\n catch (error) {\n console.error(\"[gateway] Failed to get activity stats:\", error);\n res.status(500).json({\n success: false,\n error: error instanceof Error ? error.message : \"Failed to get activity stats\",\n });\n }\n});\nexport { router as gatewayRouter };\n//# sourceMappingURL=gateway.js.map"],"names":[],"sourceRoot":""}
|