@schema-weaver/pg-connector 0.0.0-stage → 2.0.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/CHANGELOG.md +21 -0
- package/LICENSE +21 -0
- package/README.md +457 -2
- package/dist/cjs/audit/chain.d.ts +365 -0
- package/dist/cjs/audit/chain.d.ts.map +1 -0
- package/dist/cjs/audit/chain.js +959 -0
- package/dist/cjs/audit/chain.js.map +1 -0
- package/dist/cjs/audit/cloud-client.d.ts +142 -0
- package/dist/cjs/audit/cloud-client.d.ts.map +1 -0
- package/dist/cjs/audit/cloud-client.js +364 -0
- package/dist/cjs/audit/cloud-client.js.map +1 -0
- package/dist/cjs/audit/cloud-writer.d.ts +57 -0
- package/dist/cjs/audit/cloud-writer.d.ts.map +1 -0
- package/dist/cjs/audit/cloud-writer.js +95 -0
- package/dist/cjs/audit/cloud-writer.js.map +1 -0
- package/dist/cjs/audit/context.d.ts +51 -0
- package/dist/cjs/audit/context.d.ts.map +1 -0
- package/dist/cjs/audit/context.js +75 -0
- package/dist/cjs/audit/context.js.map +1 -0
- package/dist/cjs/audit/files.d.ts +111 -0
- package/dist/cjs/audit/files.d.ts.map +1 -0
- package/dist/cjs/audit/files.js +406 -0
- package/dist/cjs/audit/files.js.map +1 -0
- package/dist/cjs/audit/index.d.ts +9 -0
- package/dist/cjs/audit/index.d.ts.map +1 -0
- package/dist/cjs/audit/index.js +68 -0
- package/dist/cjs/audit/index.js.map +1 -0
- package/dist/cjs/audit/local-writer.d.ts +255 -0
- package/dist/cjs/audit/local-writer.d.ts.map +1 -0
- package/dist/cjs/audit/local-writer.js +829 -0
- package/dist/cjs/audit/local-writer.js.map +1 -0
- package/dist/cjs/audit/redact.d.ts +151 -0
- package/dist/cjs/audit/redact.d.ts.map +1 -0
- package/dist/cjs/audit/redact.js +549 -0
- package/dist/cjs/audit/redact.js.map +1 -0
- package/dist/cjs/audit/sanitize.d.ts +78 -0
- package/dist/cjs/audit/sanitize.d.ts.map +1 -0
- package/dist/cjs/audit/sanitize.js +315 -0
- package/dist/cjs/audit/sanitize.js.map +1 -0
- package/dist/cjs/audit/sink.d.ts +278 -0
- package/dist/cjs/audit/sink.d.ts.map +1 -0
- package/dist/cjs/audit/sink.js +819 -0
- package/dist/cjs/audit/sink.js.map +1 -0
- package/dist/cjs/audit/types.d.ts +226 -0
- package/dist/cjs/audit/types.d.ts.map +1 -0
- package/dist/cjs/audit/types.js +3 -0
- package/dist/cjs/audit/types.js.map +1 -0
- package/dist/cjs/audit/verify-cache.d.ts +127 -0
- package/dist/cjs/audit/verify-cache.d.ts.map +1 -0
- package/dist/cjs/audit/verify-cache.js +668 -0
- package/dist/cjs/audit/verify-cache.js.map +1 -0
- package/dist/cjs/channels/agent-session.d.ts +228 -0
- package/dist/cjs/channels/agent-session.d.ts.map +1 -0
- package/dist/cjs/channels/agent-session.js +604 -0
- package/dist/cjs/channels/agent-session.js.map +1 -0
- package/dist/cjs/channels/data-channel.d.ts +181 -0
- package/dist/cjs/channels/data-channel.d.ts.map +1 -0
- package/dist/cjs/channels/data-channel.js +607 -0
- package/dist/cjs/channels/data-channel.js.map +1 -0
- package/dist/cjs/channels/reconnect.d.ts +142 -0
- package/dist/cjs/channels/reconnect.d.ts.map +1 -0
- package/dist/cjs/channels/reconnect.js +247 -0
- package/dist/cjs/channels/reconnect.js.map +1 -0
- package/dist/cjs/channels/types.d.ts +112 -0
- package/dist/cjs/channels/types.d.ts.map +1 -0
- package/dist/cjs/channels/types.js +3 -0
- package/dist/cjs/channels/types.js.map +1 -0
- package/dist/cjs/channels/wake-channel.d.ts +232 -0
- package/dist/cjs/channels/wake-channel.d.ts.map +1 -0
- package/dist/cjs/channels/wake-channel.js +752 -0
- package/dist/cjs/channels/wake-channel.js.map +1 -0
- package/dist/cjs/cli/banner.d.ts +2 -0
- package/dist/cjs/cli/banner.d.ts.map +1 -0
- package/dist/cjs/cli/banner.js +150 -0
- package/dist/cjs/cli/banner.js.map +1 -0
- package/dist/cjs/cli/commands/agent.d.ts +30 -0
- package/dist/cjs/cli/commands/agent.d.ts.map +1 -0
- package/dist/cjs/cli/commands/agent.js +214 -0
- package/dist/cjs/cli/commands/agent.js.map +1 -0
- package/dist/cjs/cli/commands/audit-verify.d.ts +19 -0
- package/dist/cjs/cli/commands/audit-verify.d.ts.map +1 -0
- package/dist/cjs/cli/commands/audit-verify.js +382 -0
- package/dist/cjs/cli/commands/audit-verify.js.map +1 -0
- package/dist/cjs/cli/commands/clean.d.ts +23 -0
- package/dist/cjs/cli/commands/clean.d.ts.map +1 -0
- package/dist/cjs/cli/commands/clean.js +272 -0
- package/dist/cjs/cli/commands/clean.js.map +1 -0
- package/dist/cjs/cli/commands/config-show.d.ts +2 -0
- package/dist/cjs/cli/commands/config-show.d.ts.map +1 -0
- package/dist/cjs/cli/commands/config-show.js +10 -0
- package/dist/cjs/cli/commands/config-show.js.map +1 -0
- package/dist/cjs/cli/commands/config.d.ts +6 -0
- package/dist/cjs/cli/commands/config.d.ts.map +1 -0
- package/dist/cjs/cli/commands/config.js +266 -0
- package/dist/cjs/cli/commands/config.js.map +1 -0
- package/dist/cjs/cli/commands/db-add.d.ts +16 -0
- package/dist/cjs/cli/commands/db-add.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-add.js +613 -0
- package/dist/cjs/cli/commands/db-add.js.map +1 -0
- package/dist/cjs/cli/commands/db-edit.d.ts +2 -0
- package/dist/cjs/cli/commands/db-edit.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-edit.js +388 -0
- package/dist/cjs/cli/commands/db-edit.js.map +1 -0
- package/dist/cjs/cli/commands/db-logs.d.ts +3 -0
- package/dist/cjs/cli/commands/db-logs.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-logs.js +67 -0
- package/dist/cjs/cli/commands/db-logs.js.map +1 -0
- package/dist/cjs/cli/commands/db-ls.d.ts +2 -0
- package/dist/cjs/cli/commands/db-ls.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-ls.js +118 -0
- package/dist/cjs/cli/commands/db-ls.js.map +1 -0
- package/dist/cjs/cli/commands/db-query.d.ts +121 -0
- package/dist/cjs/cli/commands/db-query.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-query.js +802 -0
- package/dist/cjs/cli/commands/db-query.js.map +1 -0
- package/dist/cjs/cli/commands/db-remove.d.ts +2 -0
- package/dist/cjs/cli/commands/db-remove.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-remove.js +51 -0
- package/dist/cjs/cli/commands/db-remove.js.map +1 -0
- package/dist/cjs/cli/commands/db-show.d.ts +2 -0
- package/dist/cjs/cli/commands/db-show.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-show.js +134 -0
- package/dist/cjs/cli/commands/db-show.js.map +1 -0
- package/dist/cjs/cli/commands/db-test.d.ts +3 -0
- package/dist/cjs/cli/commands/db-test.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db-test.js +311 -0
- package/dist/cjs/cli/commands/db-test.js.map +1 -0
- package/dist/cjs/cli/commands/db.d.ts +11 -0
- package/dist/cjs/cli/commands/db.d.ts.map +1 -0
- package/dist/cjs/cli/commands/db.js +90 -0
- package/dist/cjs/cli/commands/db.js.map +1 -0
- package/dist/cjs/cli/commands/debug.d.ts +2 -0
- package/dist/cjs/cli/commands/debug.d.ts.map +1 -0
- package/dist/cjs/cli/commands/debug.js +241 -0
- package/dist/cjs/cli/commands/debug.js.map +1 -0
- package/dist/cjs/cli/commands/doctor.d.ts +5 -0
- package/dist/cjs/cli/commands/doctor.d.ts.map +1 -0
- package/dist/cjs/cli/commands/doctor.js +117 -0
- package/dist/cjs/cli/commands/doctor.js.map +1 -0
- package/dist/cjs/cli/commands/index.d.ts +10 -0
- package/dist/cjs/cli/commands/index.d.ts.map +1 -0
- package/dist/cjs/cli/commands/index.js +30 -0
- package/dist/cjs/cli/commands/index.js.map +1 -0
- package/dist/cjs/cli/commands/init.d.ts +2 -0
- package/dist/cjs/cli/commands/init.d.ts.map +1 -0
- package/dist/cjs/cli/commands/init.js +199 -0
- package/dist/cjs/cli/commands/init.js.map +1 -0
- package/dist/cjs/cli/commands/link.d.ts +5 -0
- package/dist/cjs/cli/commands/link.d.ts.map +1 -0
- package/dist/cjs/cli/commands/link.js +44 -0
- package/dist/cjs/cli/commands/link.js.map +1 -0
- package/dist/cjs/cli/commands/logs.d.ts +17 -0
- package/dist/cjs/cli/commands/logs.d.ts.map +1 -0
- package/dist/cjs/cli/commands/logs.js +314 -0
- package/dist/cjs/cli/commands/logs.js.map +1 -0
- package/dist/cjs/cli/commands/project-show.d.ts +2 -0
- package/dist/cjs/cli/commands/project-show.d.ts.map +1 -0
- package/dist/cjs/cli/commands/project-show.js +105 -0
- package/dist/cjs/cli/commands/project-show.js.map +1 -0
- package/dist/cjs/cli/commands/project.d.ts +3 -0
- package/dist/cjs/cli/commands/project.d.ts.map +1 -0
- package/dist/cjs/cli/commands/project.js +64 -0
- package/dist/cjs/cli/commands/project.js.map +1 -0
- package/dist/cjs/cli/commands/service.d.ts +123 -0
- package/dist/cjs/cli/commands/service.d.ts.map +1 -0
- package/dist/cjs/cli/commands/service.js +554 -0
- package/dist/cjs/cli/commands/service.js.map +1 -0
- package/dist/cjs/cli/commands/start.d.ts +6 -0
- package/dist/cjs/cli/commands/start.d.ts.map +1 -0
- package/dist/cjs/cli/commands/start.js +308 -0
- package/dist/cjs/cli/commands/start.js.map +1 -0
- package/dist/cjs/cli/commands/status.d.ts +2 -0
- package/dist/cjs/cli/commands/status.d.ts.map +1 -0
- package/dist/cjs/cli/commands/status.js +225 -0
- package/dist/cjs/cli/commands/status.js.map +1 -0
- package/dist/cjs/cli/commands/stop.d.ts +6 -0
- package/dist/cjs/cli/commands/stop.d.ts.map +1 -0
- package/dist/cjs/cli/commands/stop.js +99 -0
- package/dist/cjs/cli/commands/stop.js.map +1 -0
- package/dist/cjs/cli/daemon/error-tracker.d.ts +119 -0
- package/dist/cjs/cli/daemon/error-tracker.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/error-tracker.js +500 -0
- package/dist/cjs/cli/daemon/error-tracker.js.map +1 -0
- package/dist/cjs/cli/daemon/fault-shutdown.d.ts +144 -0
- package/dist/cjs/cli/daemon/fault-shutdown.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/fault-shutdown.js +312 -0
- package/dist/cjs/cli/daemon/fault-shutdown.js.map +1 -0
- package/dist/cjs/cli/daemon/index.d.ts +12 -0
- package/dist/cjs/cli/daemon/index.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/index.js +23 -0
- package/dist/cjs/cli/daemon/index.js.map +1 -0
- package/dist/cjs/cli/daemon/pid-file.d.ts +13 -0
- package/dist/cjs/cli/daemon/pid-file.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/pid-file.js +90 -0
- package/dist/cjs/cli/daemon/pid-file.js.map +1 -0
- package/dist/cjs/cli/daemon/readiness.d.ts +30 -0
- package/dist/cjs/cli/daemon/readiness.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/readiness.js +74 -0
- package/dist/cjs/cli/daemon/readiness.js.map +1 -0
- package/dist/cjs/cli/daemon/runtime.d.ts +366 -0
- package/dist/cjs/cli/daemon/runtime.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/runtime.js +1343 -0
- package/dist/cjs/cli/daemon/runtime.js.map +1 -0
- package/dist/cjs/cli/daemon/shutdown.d.ts +7 -0
- package/dist/cjs/cli/daemon/shutdown.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/shutdown.js +66 -0
- package/dist/cjs/cli/daemon/shutdown.js.map +1 -0
- package/dist/cjs/cli/daemon/signal-handlers.d.ts +3 -0
- package/dist/cjs/cli/daemon/signal-handlers.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/signal-handlers.js +27 -0
- package/dist/cjs/cli/daemon/signal-handlers.js.map +1 -0
- package/dist/cjs/cli/daemon/state.d.ts +157 -0
- package/dist/cjs/cli/daemon/state.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/state.js +397 -0
- package/dist/cjs/cli/daemon/state.js.map +1 -0
- package/dist/cjs/cli/daemon/status-file.d.ts +139 -0
- package/dist/cjs/cli/daemon/status-file.d.ts.map +1 -0
- package/dist/cjs/cli/daemon/status-file.js +88 -0
- package/dist/cjs/cli/daemon/status-file.js.map +1 -0
- package/dist/cjs/cli/doctor/checks.d.ts +133 -0
- package/dist/cjs/cli/doctor/checks.d.ts.map +1 -0
- package/dist/cjs/cli/doctor/checks.js +677 -0
- package/dist/cjs/cli/doctor/checks.js.map +1 -0
- package/dist/cjs/cli/doctor/fixes.d.ts +9 -0
- package/dist/cjs/cli/doctor/fixes.d.ts.map +1 -0
- package/dist/cjs/cli/doctor/fixes.js +199 -0
- package/dist/cjs/cli/doctor/fixes.js.map +1 -0
- package/dist/cjs/cli/doctor/index.d.ts +7 -0
- package/dist/cjs/cli/doctor/index.d.ts.map +1 -0
- package/dist/cjs/cli/doctor/index.js +27 -0
- package/dist/cjs/cli/doctor/index.js.map +1 -0
- package/dist/cjs/cli/index.d.ts +3 -0
- package/dist/cjs/cli/index.d.ts.map +1 -0
- package/dist/cjs/cli/index.js +336 -0
- package/dist/cjs/cli/index.js.map +1 -0
- package/dist/cjs/cli/interactive.d.ts +8 -0
- package/dist/cjs/cli/interactive.d.ts.map +1 -0
- package/dist/cjs/cli/interactive.js +670 -0
- package/dist/cjs/cli/interactive.js.map +1 -0
- package/dist/cjs/cli/logs/format.d.ts +13 -0
- package/dist/cjs/cli/logs/format.d.ts.map +1 -0
- package/dist/cjs/cli/logs/format.js +178 -0
- package/dist/cjs/cli/logs/format.js.map +1 -0
- package/dist/cjs/cli/logs/index.d.ts +3 -0
- package/dist/cjs/cli/logs/index.d.ts.map +1 -0
- package/dist/cjs/cli/logs/index.js +13 -0
- package/dist/cjs/cli/logs/index.js.map +1 -0
- package/dist/cjs/cli/logs/viewer.d.ts +41 -0
- package/dist/cjs/cli/logs/viewer.d.ts.map +1 -0
- package/dist/cjs/cli/logs/viewer.js +417 -0
- package/dist/cjs/cli/logs/viewer.js.map +1 -0
- package/dist/cjs/cli/ops/operation-logger.d.ts +63 -0
- package/dist/cjs/cli/ops/operation-logger.d.ts.map +1 -0
- package/dist/cjs/cli/ops/operation-logger.js +183 -0
- package/dist/cjs/cli/ops/operation-logger.js.map +1 -0
- package/dist/cjs/cli/palette.d.ts +11 -0
- package/dist/cjs/cli/palette.d.ts.map +1 -0
- package/dist/cjs/cli/palette.js +243 -0
- package/dist/cjs/cli/palette.js.map +1 -0
- package/dist/cjs/cli/prompt.d.ts +186 -0
- package/dist/cjs/cli/prompt.d.ts.map +1 -0
- package/dist/cjs/cli/prompt.js +541 -0
- package/dist/cjs/cli/prompt.js.map +1 -0
- package/dist/cjs/cli/ui/box.d.ts +21 -0
- package/dist/cjs/cli/ui/box.d.ts.map +1 -0
- package/dist/cjs/cli/ui/box.js +72 -0
- package/dist/cjs/cli/ui/box.js.map +1 -0
- package/dist/cjs/cli/ui/clipboard.d.ts +6 -0
- package/dist/cjs/cli/ui/clipboard.d.ts.map +1 -0
- package/dist/cjs/cli/ui/clipboard.js +78 -0
- package/dist/cjs/cli/ui/clipboard.js.map +1 -0
- package/dist/cjs/cli/ui/colors.d.ts +57 -0
- package/dist/cjs/cli/ui/colors.d.ts.map +1 -0
- package/dist/cjs/cli/ui/colors.js +151 -0
- package/dist/cjs/cli/ui/colors.js.map +1 -0
- package/dist/cjs/cli/ui/index.d.ts +9 -0
- package/dist/cjs/cli/ui/index.d.ts.map +1 -0
- package/dist/cjs/cli/ui/index.js +55 -0
- package/dist/cjs/cli/ui/index.js.map +1 -0
- package/dist/cjs/cli/ui/spinner.d.ts +12 -0
- package/dist/cjs/cli/ui/spinner.d.ts.map +1 -0
- package/dist/cjs/cli/ui/spinner.js +82 -0
- package/dist/cjs/cli/ui/spinner.js.map +1 -0
- package/dist/cjs/cli/ui/symbols.d.ts +47 -0
- package/dist/cjs/cli/ui/symbols.d.ts.map +1 -0
- package/dist/cjs/cli/ui/symbols.js +112 -0
- package/dist/cjs/cli/ui/symbols.js.map +1 -0
- package/dist/cjs/cli/ui/table.d.ts +23 -0
- package/dist/cjs/cli/ui/table.d.ts.map +1 -0
- package/dist/cjs/cli/ui/table.js +160 -0
- package/dist/cjs/cli/ui/table.js.map +1 -0
- package/dist/cjs/cli/ui/terminal.d.ts +7 -0
- package/dist/cjs/cli/ui/terminal.d.ts.map +1 -0
- package/dist/cjs/cli/ui/terminal.js +40 -0
- package/dist/cjs/cli/ui/terminal.js.map +1 -0
- package/dist/cjs/config/atomic-write.d.ts +69 -0
- package/dist/cjs/config/atomic-write.d.ts.map +1 -0
- package/dist/cjs/config/atomic-write.js +289 -0
- package/dist/cjs/config/atomic-write.js.map +1 -0
- package/dist/cjs/config/db-config.d.ts +134 -0
- package/dist/cjs/config/db-config.d.ts.map +1 -0
- package/dist/cjs/config/db-config.js +594 -0
- package/dist/cjs/config/db-config.js.map +1 -0
- package/dist/cjs/config/machine-config.d.ts +85 -0
- package/dist/cjs/config/machine-config.d.ts.map +1 -0
- package/dist/cjs/config/machine-config.js +232 -0
- package/dist/cjs/config/machine-config.js.map +1 -0
- package/dist/cjs/config/paths.d.ts +64 -0
- package/dist/cjs/config/paths.d.ts.map +1 -0
- package/dist/cjs/config/paths.js +155 -0
- package/dist/cjs/config/paths.js.map +1 -0
- package/dist/cjs/config/schema.d.ts +72 -0
- package/dist/cjs/config/schema.d.ts.map +1 -0
- package/dist/cjs/config/schema.js +197 -0
- package/dist/cjs/config/schema.js.map +1 -0
- package/dist/cjs/config/token.d.ts +63 -0
- package/dist/cjs/config/token.d.ts.map +1 -0
- package/dist/cjs/config/token.js +146 -0
- package/dist/cjs/config/token.js.map +1 -0
- package/dist/cjs/execution/canceller.d.ts +41 -0
- package/dist/cjs/execution/canceller.d.ts.map +1 -0
- package/dist/cjs/execution/canceller.js +209 -0
- package/dist/cjs/execution/canceller.js.map +1 -0
- package/dist/cjs/execution/database-lookup.d.ts +56 -0
- package/dist/cjs/execution/database-lookup.d.ts.map +1 -0
- package/dist/cjs/execution/database-lookup.js +43 -0
- package/dist/cjs/execution/database-lookup.js.map +1 -0
- package/dist/cjs/execution/dispatcher.d.ts +181 -0
- package/dist/cjs/execution/dispatcher.d.ts.map +1 -0
- package/dist/cjs/execution/dispatcher.js +1296 -0
- package/dist/cjs/execution/dispatcher.js.map +1 -0
- package/dist/cjs/execution/function-effects.d.ts +209 -0
- package/dist/cjs/execution/function-effects.d.ts.map +1 -0
- package/dist/cjs/execution/function-effects.js +596 -0
- package/dist/cjs/execution/function-effects.js.map +1 -0
- package/dist/cjs/execution/introspection.d.ts +76 -0
- package/dist/cjs/execution/introspection.d.ts.map +1 -0
- package/dist/cjs/execution/introspection.js +448 -0
- package/dist/cjs/execution/introspection.js.map +1 -0
- package/dist/cjs/execution/migration-runner.d.ts +128 -0
- package/dist/cjs/execution/migration-runner.d.ts.map +1 -0
- package/dist/cjs/execution/migration-runner.js +798 -0
- package/dist/cjs/execution/migration-runner.js.map +1 -0
- package/dist/cjs/execution/non-tx-detector.d.ts +23 -0
- package/dist/cjs/execution/non-tx-detector.d.ts.map +1 -0
- package/dist/cjs/execution/non-tx-detector.js +218 -0
- package/dist/cjs/execution/non-tx-detector.js.map +1 -0
- package/dist/cjs/execution/pool.d.ts +229 -0
- package/dist/cjs/execution/pool.d.ts.map +1 -0
- package/dist/cjs/execution/pool.js +738 -0
- package/dist/cjs/execution/pool.js.map +1 -0
- package/dist/cjs/execution/query-runner.d.ts +88 -0
- package/dist/cjs/execution/query-runner.d.ts.map +1 -0
- package/dist/cjs/execution/query-runner.js +751 -0
- package/dist/cjs/execution/query-runner.js.map +1 -0
- package/dist/cjs/execution/rate-limiter.d.ts +120 -0
- package/dist/cjs/execution/rate-limiter.d.ts.map +1 -0
- package/dist/cjs/execution/rate-limiter.js +273 -0
- package/dist/cjs/execution/rate-limiter.js.map +1 -0
- package/dist/cjs/execution/search-path.d.ts +161 -0
- package/dist/cjs/execution/search-path.d.ts.map +1 -0
- package/dist/cjs/execution/search-path.js +279 -0
- package/dist/cjs/execution/search-path.js.map +1 -0
- package/dist/cjs/execution/sql-parser.d.ts +195 -0
- package/dist/cjs/execution/sql-parser.d.ts.map +1 -0
- package/dist/cjs/execution/sql-parser.js +704 -0
- package/dist/cjs/execution/sql-parser.js.map +1 -0
- package/dist/cjs/execution/statement-classifier.d.ts +103 -0
- package/dist/cjs/execution/statement-classifier.d.ts.map +1 -0
- package/dist/cjs/execution/statement-classifier.js +535 -0
- package/dist/cjs/execution/statement-classifier.js.map +1 -0
- package/dist/cjs/execution/types.d.ts +189 -0
- package/dist/cjs/execution/types.d.ts.map +1 -0
- package/dist/cjs/execution/types.js +28 -0
- package/dist/cjs/execution/types.js.map +1 -0
- package/dist/cjs/index.d.ts +34 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +98 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/permissions/auto-upgrade.d.ts +40 -0
- package/dist/cjs/permissions/auto-upgrade.d.ts.map +1 -0
- package/dist/cjs/permissions/auto-upgrade.js +168 -0
- package/dist/cjs/permissions/auto-upgrade.js.map +1 -0
- package/dist/cjs/permissions/checker.d.ts +53 -0
- package/dist/cjs/permissions/checker.d.ts.map +1 -0
- package/dist/cjs/permissions/checker.js +326 -0
- package/dist/cjs/permissions/checker.js.map +1 -0
- package/dist/cjs/permissions/manual-approval.d.ts +213 -0
- package/dist/cjs/permissions/manual-approval.d.ts.map +1 -0
- package/dist/cjs/permissions/manual-approval.js +541 -0
- package/dist/cjs/permissions/manual-approval.js.map +1 -0
- package/dist/cjs/permissions/plan-registry.d.ts +274 -0
- package/dist/cjs/permissions/plan-registry.d.ts.map +1 -0
- package/dist/cjs/permissions/plan-registry.js +454 -0
- package/dist/cjs/permissions/plan-registry.js.map +1 -0
- package/dist/cjs/permissions/role-policy.d.ts +217 -0
- package/dist/cjs/permissions/role-policy.d.ts.map +1 -0
- package/dist/cjs/permissions/role-policy.js +584 -0
- package/dist/cjs/permissions/role-policy.js.map +1 -0
- package/dist/cjs/permissions/types.d.ts +126 -0
- package/dist/cjs/permissions/types.d.ts.map +1 -0
- package/dist/cjs/permissions/types.js +3 -0
- package/dist/cjs/permissions/types.js.map +1 -0
- package/dist/cjs/protocol/constants.d.ts +72 -0
- package/dist/cjs/protocol/constants.d.ts.map +1 -0
- package/dist/cjs/protocol/constants.js +107 -0
- package/dist/cjs/protocol/constants.js.map +1 -0
- package/dist/cjs/protocol/envelope.d.ts +165 -0
- package/dist/cjs/protocol/envelope.d.ts.map +1 -0
- package/dist/cjs/protocol/envelope.js +309 -0
- package/dist/cjs/protocol/envelope.js.map +1 -0
- package/dist/cjs/protocol/errors.d.ts +33 -0
- package/dist/cjs/protocol/errors.d.ts.map +1 -0
- package/dist/cjs/protocol/errors.js +391 -0
- package/dist/cjs/protocol/errors.js.map +1 -0
- package/dist/cjs/protocol/messages.d.ts +327 -0
- package/dist/cjs/protocol/messages.d.ts.map +1 -0
- package/dist/cjs/protocol/messages.js +3 -0
- package/dist/cjs/protocol/messages.js.map +1 -0
- package/dist/cjs/protocol/serialize.d.ts +26 -0
- package/dist/cjs/protocol/serialize.d.ts.map +1 -0
- package/dist/cjs/protocol/serialize.js +71 -0
- package/dist/cjs/protocol/serialize.js.map +1 -0
- package/dist/cjs/protocol/validate.d.ts +135 -0
- package/dist/cjs/protocol/validate.d.ts.map +1 -0
- package/dist/cjs/protocol/validate.js +852 -0
- package/dist/cjs/protocol/validate.js.map +1 -0
- package/dist/esm/audit/chain.d.ts +365 -0
- package/dist/esm/audit/chain.d.ts.map +1 -0
- package/dist/esm/audit/chain.js +895 -0
- package/dist/esm/audit/chain.js.map +1 -0
- package/dist/esm/audit/cloud-client.d.ts +142 -0
- package/dist/esm/audit/cloud-client.d.ts.map +1 -0
- package/dist/esm/audit/cloud-client.js +326 -0
- package/dist/esm/audit/cloud-client.js.map +1 -0
- package/dist/esm/audit/cloud-writer.d.ts +57 -0
- package/dist/esm/audit/cloud-writer.d.ts.map +1 -0
- package/dist/esm/audit/cloud-writer.js +91 -0
- package/dist/esm/audit/cloud-writer.js.map +1 -0
- package/dist/esm/audit/context.d.ts +51 -0
- package/dist/esm/audit/context.d.ts.map +1 -0
- package/dist/esm/audit/context.js +69 -0
- package/dist/esm/audit/context.js.map +1 -0
- package/dist/esm/audit/files.d.ts +111 -0
- package/dist/esm/audit/files.d.ts.map +1 -0
- package/dist/esm/audit/files.js +361 -0
- package/dist/esm/audit/files.js.map +1 -0
- package/dist/esm/audit/index.d.ts +9 -0
- package/dist/esm/audit/index.d.ts.map +1 -0
- package/dist/esm/audit/index.js +8 -0
- package/dist/esm/audit/index.js.map +1 -0
- package/dist/esm/audit/local-writer.d.ts +255 -0
- package/dist/esm/audit/local-writer.d.ts.map +1 -0
- package/dist/esm/audit/local-writer.js +785 -0
- package/dist/esm/audit/local-writer.js.map +1 -0
- package/dist/esm/audit/redact.d.ts +151 -0
- package/dist/esm/audit/redact.d.ts.map +1 -0
- package/dist/esm/audit/redact.js +506 -0
- package/dist/esm/audit/redact.js.map +1 -0
- package/dist/esm/audit/sanitize.d.ts +78 -0
- package/dist/esm/audit/sanitize.d.ts.map +1 -0
- package/dist/esm/audit/sanitize.js +307 -0
- package/dist/esm/audit/sanitize.js.map +1 -0
- package/dist/esm/audit/sink.d.ts +278 -0
- package/dist/esm/audit/sink.d.ts.map +1 -0
- package/dist/esm/audit/sink.js +782 -0
- package/dist/esm/audit/sink.js.map +1 -0
- package/dist/esm/audit/types.d.ts +226 -0
- package/dist/esm/audit/types.d.ts.map +1 -0
- package/dist/esm/audit/types.js +2 -0
- package/dist/esm/audit/types.js.map +1 -0
- package/dist/esm/audit/verify-cache.d.ts +127 -0
- package/dist/esm/audit/verify-cache.d.ts.map +1 -0
- package/dist/esm/audit/verify-cache.js +628 -0
- package/dist/esm/audit/verify-cache.js.map +1 -0
- package/dist/esm/channels/agent-session.d.ts +228 -0
- package/dist/esm/channels/agent-session.d.ts.map +1 -0
- package/dist/esm/channels/agent-session.js +566 -0
- package/dist/esm/channels/agent-session.js.map +1 -0
- package/dist/esm/channels/data-channel.d.ts +181 -0
- package/dist/esm/channels/data-channel.d.ts.map +1 -0
- package/dist/esm/channels/data-channel.js +567 -0
- package/dist/esm/channels/data-channel.js.map +1 -0
- package/dist/esm/channels/reconnect.d.ts +142 -0
- package/dist/esm/channels/reconnect.d.ts.map +1 -0
- package/dist/esm/channels/reconnect.js +234 -0
- package/dist/esm/channels/reconnect.js.map +1 -0
- package/dist/esm/channels/types.d.ts +112 -0
- package/dist/esm/channels/types.d.ts.map +1 -0
- package/dist/esm/channels/types.js +2 -0
- package/dist/esm/channels/types.js.map +1 -0
- package/dist/esm/channels/wake-channel.d.ts +232 -0
- package/dist/esm/channels/wake-channel.d.ts.map +1 -0
- package/dist/esm/channels/wake-channel.js +715 -0
- package/dist/esm/channels/wake-channel.js.map +1 -0
- package/dist/esm/cli/banner.d.ts +2 -0
- package/dist/esm/cli/banner.d.ts.map +1 -0
- package/dist/esm/cli/banner.js +114 -0
- package/dist/esm/cli/banner.js.map +1 -0
- package/dist/esm/cli/commands/agent.d.ts +30 -0
- package/dist/esm/cli/commands/agent.d.ts.map +1 -0
- package/dist/esm/cli/commands/agent.js +204 -0
- package/dist/esm/cli/commands/agent.js.map +1 -0
- package/dist/esm/cli/commands/audit-verify.d.ts +19 -0
- package/dist/esm/cli/commands/audit-verify.d.ts.map +1 -0
- package/dist/esm/cli/commands/audit-verify.js +345 -0
- package/dist/esm/cli/commands/audit-verify.js.map +1 -0
- package/dist/esm/cli/commands/clean.d.ts +23 -0
- package/dist/esm/cli/commands/clean.d.ts.map +1 -0
- package/dist/esm/cli/commands/clean.js +235 -0
- package/dist/esm/cli/commands/clean.js.map +1 -0
- package/dist/esm/cli/commands/config-show.d.ts +2 -0
- package/dist/esm/cli/commands/config-show.d.ts.map +1 -0
- package/dist/esm/cli/commands/config-show.js +2 -0
- package/dist/esm/cli/commands/config-show.js.map +1 -0
- package/dist/esm/cli/commands/config.d.ts +6 -0
- package/dist/esm/cli/commands/config.d.ts.map +1 -0
- package/dist/esm/cli/commands/config.js +259 -0
- package/dist/esm/cli/commands/config.js.map +1 -0
- package/dist/esm/cli/commands/db-add.d.ts +16 -0
- package/dist/esm/cli/commands/db-add.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-add.js +576 -0
- package/dist/esm/cli/commands/db-add.js.map +1 -0
- package/dist/esm/cli/commands/db-edit.d.ts +2 -0
- package/dist/esm/cli/commands/db-edit.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-edit.js +352 -0
- package/dist/esm/cli/commands/db-edit.js.map +1 -0
- package/dist/esm/cli/commands/db-logs.d.ts +3 -0
- package/dist/esm/cli/commands/db-logs.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-logs.js +64 -0
- package/dist/esm/cli/commands/db-logs.js.map +1 -0
- package/dist/esm/cli/commands/db-ls.d.ts +2 -0
- package/dist/esm/cli/commands/db-ls.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-ls.js +115 -0
- package/dist/esm/cli/commands/db-ls.js.map +1 -0
- package/dist/esm/cli/commands/db-query.d.ts +121 -0
- package/dist/esm/cli/commands/db-query.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-query.js +754 -0
- package/dist/esm/cli/commands/db-query.js.map +1 -0
- package/dist/esm/cli/commands/db-remove.d.ts +2 -0
- package/dist/esm/cli/commands/db-remove.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-remove.js +48 -0
- package/dist/esm/cli/commands/db-remove.js.map +1 -0
- package/dist/esm/cli/commands/db-show.d.ts +2 -0
- package/dist/esm/cli/commands/db-show.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-show.js +131 -0
- package/dist/esm/cli/commands/db-show.js.map +1 -0
- package/dist/esm/cli/commands/db-test.d.ts +3 -0
- package/dist/esm/cli/commands/db-test.d.ts.map +1 -0
- package/dist/esm/cli/commands/db-test.js +307 -0
- package/dist/esm/cli/commands/db-test.js.map +1 -0
- package/dist/esm/cli/commands/db.d.ts +11 -0
- package/dist/esm/cli/commands/db.d.ts.map +1 -0
- package/dist/esm/cli/commands/db.js +76 -0
- package/dist/esm/cli/commands/db.js.map +1 -0
- package/dist/esm/cli/commands/debug.d.ts +2 -0
- package/dist/esm/cli/commands/debug.d.ts.map +1 -0
- package/dist/esm/cli/commands/debug.js +205 -0
- package/dist/esm/cli/commands/debug.js.map +1 -0
- package/dist/esm/cli/commands/doctor.d.ts +5 -0
- package/dist/esm/cli/commands/doctor.d.ts.map +1 -0
- package/dist/esm/cli/commands/doctor.js +114 -0
- package/dist/esm/cli/commands/doctor.js.map +1 -0
- package/dist/esm/cli/commands/index.d.ts +10 -0
- package/dist/esm/cli/commands/index.d.ts.map +1 -0
- package/dist/esm/cli/commands/index.js +10 -0
- package/dist/esm/cli/commands/index.js.map +1 -0
- package/dist/esm/cli/commands/init.d.ts +2 -0
- package/dist/esm/cli/commands/init.d.ts.map +1 -0
- package/dist/esm/cli/commands/init.js +163 -0
- package/dist/esm/cli/commands/init.js.map +1 -0
- package/dist/esm/cli/commands/link.d.ts +5 -0
- package/dist/esm/cli/commands/link.d.ts.map +1 -0
- package/dist/esm/cli/commands/link.js +41 -0
- package/dist/esm/cli/commands/link.js.map +1 -0
- package/dist/esm/cli/commands/logs.d.ts +17 -0
- package/dist/esm/cli/commands/logs.d.ts.map +1 -0
- package/dist/esm/cli/commands/logs.js +278 -0
- package/dist/esm/cli/commands/logs.js.map +1 -0
- package/dist/esm/cli/commands/project-show.d.ts +2 -0
- package/dist/esm/cli/commands/project-show.d.ts.map +1 -0
- package/dist/esm/cli/commands/project-show.js +69 -0
- package/dist/esm/cli/commands/project-show.js.map +1 -0
- package/dist/esm/cli/commands/project.d.ts +3 -0
- package/dist/esm/cli/commands/project.d.ts.map +1 -0
- package/dist/esm/cli/commands/project.js +60 -0
- package/dist/esm/cli/commands/project.js.map +1 -0
- package/dist/esm/cli/commands/service.d.ts +123 -0
- package/dist/esm/cli/commands/service.d.ts.map +1 -0
- package/dist/esm/cli/commands/service.js +505 -0
- package/dist/esm/cli/commands/service.js.map +1 -0
- package/dist/esm/cli/commands/start.d.ts +6 -0
- package/dist/esm/cli/commands/start.d.ts.map +1 -0
- package/dist/esm/cli/commands/start.js +272 -0
- package/dist/esm/cli/commands/start.js.map +1 -0
- package/dist/esm/cli/commands/status.d.ts +2 -0
- package/dist/esm/cli/commands/status.d.ts.map +1 -0
- package/dist/esm/cli/commands/status.js +222 -0
- package/dist/esm/cli/commands/status.js.map +1 -0
- package/dist/esm/cli/commands/stop.d.ts +6 -0
- package/dist/esm/cli/commands/stop.d.ts.map +1 -0
- package/dist/esm/cli/commands/stop.js +96 -0
- package/dist/esm/cli/commands/stop.js.map +1 -0
- package/dist/esm/cli/daemon/error-tracker.d.ts +119 -0
- package/dist/esm/cli/daemon/error-tracker.d.ts.map +1 -0
- package/dist/esm/cli/daemon/error-tracker.js +451 -0
- package/dist/esm/cli/daemon/error-tracker.js.map +1 -0
- package/dist/esm/cli/daemon/fault-shutdown.d.ts +144 -0
- package/dist/esm/cli/daemon/fault-shutdown.d.ts.map +1 -0
- package/dist/esm/cli/daemon/fault-shutdown.js +273 -0
- package/dist/esm/cli/daemon/fault-shutdown.js.map +1 -0
- package/dist/esm/cli/daemon/index.d.ts +12 -0
- package/dist/esm/cli/daemon/index.d.ts.map +1 -0
- package/dist/esm/cli/daemon/index.js +7 -0
- package/dist/esm/cli/daemon/index.js.map +1 -0
- package/dist/esm/cli/daemon/pid-file.d.ts +13 -0
- package/dist/esm/cli/daemon/pid-file.d.ts.map +1 -0
- package/dist/esm/cli/daemon/pid-file.js +51 -0
- package/dist/esm/cli/daemon/pid-file.js.map +1 -0
- package/dist/esm/cli/daemon/readiness.d.ts +30 -0
- package/dist/esm/cli/daemon/readiness.d.ts.map +1 -0
- package/dist/esm/cli/daemon/readiness.js +70 -0
- package/dist/esm/cli/daemon/readiness.js.map +1 -0
- package/dist/esm/cli/daemon/runtime.d.ts +366 -0
- package/dist/esm/cli/daemon/runtime.d.ts.map +1 -0
- package/dist/esm/cli/daemon/runtime.js +1284 -0
- package/dist/esm/cli/daemon/runtime.js.map +1 -0
- package/dist/esm/cli/daemon/shutdown.d.ts +7 -0
- package/dist/esm/cli/daemon/shutdown.d.ts.map +1 -0
- package/dist/esm/cli/daemon/shutdown.js +63 -0
- package/dist/esm/cli/daemon/shutdown.js.map +1 -0
- package/dist/esm/cli/daemon/signal-handlers.d.ts +3 -0
- package/dist/esm/cli/daemon/signal-handlers.d.ts.map +1 -0
- package/dist/esm/cli/daemon/signal-handlers.js +24 -0
- package/dist/esm/cli/daemon/signal-handlers.js.map +1 -0
- package/dist/esm/cli/daemon/state.d.ts +157 -0
- package/dist/esm/cli/daemon/state.d.ts.map +1 -0
- package/dist/esm/cli/daemon/state.js +352 -0
- package/dist/esm/cli/daemon/state.js.map +1 -0
- package/dist/esm/cli/daemon/status-file.d.ts +139 -0
- package/dist/esm/cli/daemon/status-file.d.ts.map +1 -0
- package/dist/esm/cli/daemon/status-file.js +50 -0
- package/dist/esm/cli/daemon/status-file.js.map +1 -0
- package/dist/esm/cli/doctor/checks.d.ts +133 -0
- package/dist/esm/cli/doctor/checks.d.ts.map +1 -0
- package/dist/esm/cli/doctor/checks.js +624 -0
- package/dist/esm/cli/doctor/checks.js.map +1 -0
- package/dist/esm/cli/doctor/fixes.d.ts +9 -0
- package/dist/esm/cli/doctor/fixes.d.ts.map +1 -0
- package/dist/esm/cli/doctor/fixes.js +163 -0
- package/dist/esm/cli/doctor/fixes.js.map +1 -0
- package/dist/esm/cli/doctor/index.d.ts +7 -0
- package/dist/esm/cli/doctor/index.d.ts.map +1 -0
- package/dist/esm/cli/doctor/index.js +5 -0
- package/dist/esm/cli/doctor/index.js.map +1 -0
- package/dist/esm/cli/index.d.ts +3 -0
- package/dist/esm/cli/index.d.ts.map +1 -0
- package/dist/esm/cli/index.js +333 -0
- package/dist/esm/cli/index.js.map +1 -0
- package/dist/esm/cli/interactive.d.ts +8 -0
- package/dist/esm/cli/interactive.d.ts.map +1 -0
- package/dist/esm/cli/interactive.js +665 -0
- package/dist/esm/cli/interactive.js.map +1 -0
- package/dist/esm/cli/logs/format.d.ts +13 -0
- package/dist/esm/cli/logs/format.d.ts.map +1 -0
- package/dist/esm/cli/logs/format.js +169 -0
- package/dist/esm/cli/logs/format.js.map +1 -0
- package/dist/esm/cli/logs/index.d.ts +3 -0
- package/dist/esm/cli/logs/index.d.ts.map +1 -0
- package/dist/esm/cli/logs/index.js +3 -0
- package/dist/esm/cli/logs/index.js.map +1 -0
- package/dist/esm/cli/logs/viewer.d.ts +41 -0
- package/dist/esm/cli/logs/viewer.d.ts.map +1 -0
- package/dist/esm/cli/logs/viewer.js +412 -0
- package/dist/esm/cli/logs/viewer.js.map +1 -0
- package/dist/esm/cli/ops/operation-logger.d.ts +63 -0
- package/dist/esm/cli/ops/operation-logger.d.ts.map +1 -0
- package/dist/esm/cli/ops/operation-logger.js +142 -0
- package/dist/esm/cli/ops/operation-logger.js.map +1 -0
- package/dist/esm/cli/palette.d.ts +11 -0
- package/dist/esm/cli/palette.d.ts.map +1 -0
- package/dist/esm/cli/palette.js +240 -0
- package/dist/esm/cli/palette.js.map +1 -0
- package/dist/esm/cli/prompt.d.ts +186 -0
- package/dist/esm/cli/prompt.d.ts.map +1 -0
- package/dist/esm/cli/prompt.js +483 -0
- package/dist/esm/cli/prompt.js.map +1 -0
- package/dist/esm/cli/ui/box.d.ts +21 -0
- package/dist/esm/cli/ui/box.d.ts.map +1 -0
- package/dist/esm/cli/ui/box.js +60 -0
- package/dist/esm/cli/ui/box.js.map +1 -0
- package/dist/esm/cli/ui/clipboard.d.ts +6 -0
- package/dist/esm/cli/ui/clipboard.d.ts.map +1 -0
- package/dist/esm/cli/ui/clipboard.js +42 -0
- package/dist/esm/cli/ui/clipboard.js.map +1 -0
- package/dist/esm/cli/ui/colors.d.ts +57 -0
- package/dist/esm/cli/ui/colors.d.ts.map +1 -0
- package/dist/esm/cli/ui/colors.js +126 -0
- package/dist/esm/cli/ui/colors.js.map +1 -0
- package/dist/esm/cli/ui/index.d.ts +9 -0
- package/dist/esm/cli/ui/index.d.ts.map +1 -0
- package/dist/esm/cli/ui/index.js +7 -0
- package/dist/esm/cli/ui/index.js.map +1 -0
- package/dist/esm/cli/ui/spinner.d.ts +12 -0
- package/dist/esm/cli/ui/spinner.d.ts.map +1 -0
- package/dist/esm/cli/ui/spinner.js +78 -0
- package/dist/esm/cli/ui/spinner.js.map +1 -0
- package/dist/esm/cli/ui/symbols.d.ts +47 -0
- package/dist/esm/cli/ui/symbols.d.ts.map +1 -0
- package/dist/esm/cli/ui/symbols.js +109 -0
- package/dist/esm/cli/ui/symbols.js.map +1 -0
- package/dist/esm/cli/ui/table.d.ts +23 -0
- package/dist/esm/cli/ui/table.d.ts.map +1 -0
- package/dist/esm/cli/ui/table.js +156 -0
- package/dist/esm/cli/ui/table.js.map +1 -0
- package/dist/esm/cli/ui/terminal.d.ts +7 -0
- package/dist/esm/cli/ui/terminal.d.ts.map +1 -0
- package/dist/esm/cli/ui/terminal.js +32 -0
- package/dist/esm/cli/ui/terminal.js.map +1 -0
- package/dist/esm/config/atomic-write.d.ts +69 -0
- package/dist/esm/config/atomic-write.d.ts.map +1 -0
- package/dist/esm/config/atomic-write.js +246 -0
- package/dist/esm/config/atomic-write.js.map +1 -0
- package/dist/esm/config/db-config.d.ts +134 -0
- package/dist/esm/config/db-config.d.ts.map +1 -0
- package/dist/esm/config/db-config.js +542 -0
- package/dist/esm/config/db-config.js.map +1 -0
- package/dist/esm/config/machine-config.d.ts +85 -0
- package/dist/esm/config/machine-config.d.ts.map +1 -0
- package/dist/esm/config/machine-config.js +190 -0
- package/dist/esm/config/machine-config.js.map +1 -0
- package/dist/esm/config/paths.d.ts +64 -0
- package/dist/esm/config/paths.d.ts.map +1 -0
- package/dist/esm/config/paths.js +108 -0
- package/dist/esm/config/paths.js.map +1 -0
- package/dist/esm/config/schema.d.ts +72 -0
- package/dist/esm/config/schema.d.ts.map +1 -0
- package/dist/esm/config/schema.js +180 -0
- package/dist/esm/config/schema.js.map +1 -0
- package/dist/esm/config/token.d.ts +63 -0
- package/dist/esm/config/token.d.ts.map +1 -0
- package/dist/esm/config/token.js +104 -0
- package/dist/esm/config/token.js.map +1 -0
- package/dist/esm/execution/canceller.d.ts +41 -0
- package/dist/esm/execution/canceller.d.ts.map +1 -0
- package/dist/esm/execution/canceller.js +205 -0
- package/dist/esm/execution/canceller.js.map +1 -0
- package/dist/esm/execution/database-lookup.d.ts +56 -0
- package/dist/esm/execution/database-lookup.d.ts.map +1 -0
- package/dist/esm/execution/database-lookup.js +38 -0
- package/dist/esm/execution/database-lookup.js.map +1 -0
- package/dist/esm/execution/dispatcher.d.ts +181 -0
- package/dist/esm/execution/dispatcher.d.ts.map +1 -0
- package/dist/esm/execution/dispatcher.js +1258 -0
- package/dist/esm/execution/dispatcher.js.map +1 -0
- package/dist/esm/execution/function-effects.d.ts +209 -0
- package/dist/esm/execution/function-effects.d.ts.map +1 -0
- package/dist/esm/execution/function-effects.js +586 -0
- package/dist/esm/execution/function-effects.js.map +1 -0
- package/dist/esm/execution/introspection.d.ts +76 -0
- package/dist/esm/execution/introspection.d.ts.map +1 -0
- package/dist/esm/execution/introspection.js +442 -0
- package/dist/esm/execution/introspection.js.map +1 -0
- package/dist/esm/execution/migration-runner.d.ts +128 -0
- package/dist/esm/execution/migration-runner.d.ts.map +1 -0
- package/dist/esm/execution/migration-runner.js +754 -0
- package/dist/esm/execution/migration-runner.js.map +1 -0
- package/dist/esm/execution/non-tx-detector.d.ts +23 -0
- package/dist/esm/execution/non-tx-detector.d.ts.map +1 -0
- package/dist/esm/execution/non-tx-detector.js +215 -0
- package/dist/esm/execution/non-tx-detector.js.map +1 -0
- package/dist/esm/execution/pool.d.ts +229 -0
- package/dist/esm/execution/pool.d.ts.map +1 -0
- package/dist/esm/execution/pool.js +685 -0
- package/dist/esm/execution/pool.js.map +1 -0
- package/dist/esm/execution/query-runner.d.ts +88 -0
- package/dist/esm/execution/query-runner.d.ts.map +1 -0
- package/dist/esm/execution/query-runner.js +743 -0
- package/dist/esm/execution/query-runner.js.map +1 -0
- package/dist/esm/execution/rate-limiter.d.ts +120 -0
- package/dist/esm/execution/rate-limiter.d.ts.map +1 -0
- package/dist/esm/execution/rate-limiter.js +269 -0
- package/dist/esm/execution/rate-limiter.js.map +1 -0
- package/dist/esm/execution/search-path.d.ts +161 -0
- package/dist/esm/execution/search-path.d.ts.map +1 -0
- package/dist/esm/execution/search-path.js +270 -0
- package/dist/esm/execution/search-path.js.map +1 -0
- package/dist/esm/execution/sql-parser.d.ts +195 -0
- package/dist/esm/execution/sql-parser.d.ts.map +1 -0
- package/dist/esm/execution/sql-parser.js +683 -0
- package/dist/esm/execution/sql-parser.js.map +1 -0
- package/dist/esm/execution/statement-classifier.d.ts +103 -0
- package/dist/esm/execution/statement-classifier.d.ts.map +1 -0
- package/dist/esm/execution/statement-classifier.js +526 -0
- package/dist/esm/execution/statement-classifier.js.map +1 -0
- package/dist/esm/execution/types.d.ts +189 -0
- package/dist/esm/execution/types.d.ts.map +1 -0
- package/dist/esm/execution/types.js +22 -0
- package/dist/esm/execution/types.js.map +1 -0
- package/dist/esm/index.d.ts +34 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +38 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/permissions/auto-upgrade.d.ts +40 -0
- package/dist/esm/permissions/auto-upgrade.d.ts.map +1 -0
- package/dist/esm/permissions/auto-upgrade.js +164 -0
- package/dist/esm/permissions/auto-upgrade.js.map +1 -0
- package/dist/esm/permissions/checker.d.ts +53 -0
- package/dist/esm/permissions/checker.d.ts.map +1 -0
- package/dist/esm/permissions/checker.js +322 -0
- package/dist/esm/permissions/checker.js.map +1 -0
- package/dist/esm/permissions/manual-approval.d.ts +213 -0
- package/dist/esm/permissions/manual-approval.d.ts.map +1 -0
- package/dist/esm/permissions/manual-approval.js +503 -0
- package/dist/esm/permissions/manual-approval.js.map +1 -0
- package/dist/esm/permissions/plan-registry.d.ts +274 -0
- package/dist/esm/permissions/plan-registry.d.ts.map +1 -0
- package/dist/esm/permissions/plan-registry.js +450 -0
- package/dist/esm/permissions/plan-registry.js.map +1 -0
- package/dist/esm/permissions/role-policy.d.ts +217 -0
- package/dist/esm/permissions/role-policy.d.ts.map +1 -0
- package/dist/esm/permissions/role-policy.js +570 -0
- package/dist/esm/permissions/role-policy.js.map +1 -0
- package/dist/esm/permissions/types.d.ts +126 -0
- package/dist/esm/permissions/types.d.ts.map +1 -0
- package/dist/esm/permissions/types.js +2 -0
- package/dist/esm/permissions/types.js.map +1 -0
- package/dist/esm/protocol/constants.d.ts +72 -0
- package/dist/esm/protocol/constants.d.ts.map +1 -0
- package/dist/esm/protocol/constants.js +104 -0
- package/dist/esm/protocol/constants.js.map +1 -0
- package/dist/esm/protocol/envelope.d.ts +165 -0
- package/dist/esm/protocol/envelope.d.ts.map +1 -0
- package/dist/esm/protocol/envelope.js +263 -0
- package/dist/esm/protocol/envelope.js.map +1 -0
- package/dist/esm/protocol/errors.d.ts +33 -0
- package/dist/esm/protocol/errors.d.ts.map +1 -0
- package/dist/esm/protocol/errors.js +384 -0
- package/dist/esm/protocol/errors.js.map +1 -0
- package/dist/esm/protocol/messages.d.ts +327 -0
- package/dist/esm/protocol/messages.d.ts.map +1 -0
- package/dist/esm/protocol/messages.js +2 -0
- package/dist/esm/protocol/messages.js.map +1 -0
- package/dist/esm/protocol/serialize.d.ts +26 -0
- package/dist/esm/protocol/serialize.d.ts.map +1 -0
- package/dist/esm/protocol/serialize.js +63 -0
- package/dist/esm/protocol/serialize.js.map +1 -0
- package/dist/esm/protocol/validate.d.ts +135 -0
- package/dist/esm/protocol/validate.d.ts.map +1 -0
- package/dist/esm/protocol/validate.js +830 -0
- package/dist/esm/protocol/validate.js.map +1 -0
- package/dist/types/audit/chain.d.ts +365 -0
- package/dist/types/audit/chain.d.ts.map +1 -0
- package/dist/types/audit/cloud-client.d.ts +142 -0
- package/dist/types/audit/cloud-client.d.ts.map +1 -0
- package/dist/types/audit/cloud-writer.d.ts +57 -0
- package/dist/types/audit/cloud-writer.d.ts.map +1 -0
- package/dist/types/audit/context.d.ts +51 -0
- package/dist/types/audit/context.d.ts.map +1 -0
- package/dist/types/audit/files.d.ts +111 -0
- package/dist/types/audit/files.d.ts.map +1 -0
- package/dist/types/audit/index.d.ts +9 -0
- package/dist/types/audit/index.d.ts.map +1 -0
- package/dist/types/audit/local-writer.d.ts +255 -0
- package/dist/types/audit/local-writer.d.ts.map +1 -0
- package/dist/types/audit/redact.d.ts +151 -0
- package/dist/types/audit/redact.d.ts.map +1 -0
- package/dist/types/audit/sanitize.d.ts +78 -0
- package/dist/types/audit/sanitize.d.ts.map +1 -0
- package/dist/types/audit/sink.d.ts +278 -0
- package/dist/types/audit/sink.d.ts.map +1 -0
- package/dist/types/audit/types.d.ts +226 -0
- package/dist/types/audit/types.d.ts.map +1 -0
- package/dist/types/audit/verify-cache.d.ts +127 -0
- package/dist/types/audit/verify-cache.d.ts.map +1 -0
- package/dist/types/channels/agent-session.d.ts +228 -0
- package/dist/types/channels/agent-session.d.ts.map +1 -0
- package/dist/types/channels/data-channel.d.ts +181 -0
- package/dist/types/channels/data-channel.d.ts.map +1 -0
- package/dist/types/channels/reconnect.d.ts +142 -0
- package/dist/types/channels/reconnect.d.ts.map +1 -0
- package/dist/types/channels/types.d.ts +112 -0
- package/dist/types/channels/types.d.ts.map +1 -0
- package/dist/types/channels/wake-channel.d.ts +232 -0
- package/dist/types/channels/wake-channel.d.ts.map +1 -0
- package/dist/types/cli/banner.d.ts +2 -0
- package/dist/types/cli/banner.d.ts.map +1 -0
- package/dist/types/cli/commands/agent.d.ts +30 -0
- package/dist/types/cli/commands/agent.d.ts.map +1 -0
- package/dist/types/cli/commands/audit-verify.d.ts +19 -0
- package/dist/types/cli/commands/audit-verify.d.ts.map +1 -0
- package/dist/types/cli/commands/clean.d.ts +23 -0
- package/dist/types/cli/commands/clean.d.ts.map +1 -0
- package/dist/types/cli/commands/config-show.d.ts +2 -0
- package/dist/types/cli/commands/config-show.d.ts.map +1 -0
- package/dist/types/cli/commands/config.d.ts +6 -0
- package/dist/types/cli/commands/config.d.ts.map +1 -0
- package/dist/types/cli/commands/db-add.d.ts +16 -0
- package/dist/types/cli/commands/db-add.d.ts.map +1 -0
- package/dist/types/cli/commands/db-edit.d.ts +2 -0
- package/dist/types/cli/commands/db-edit.d.ts.map +1 -0
- package/dist/types/cli/commands/db-logs.d.ts +3 -0
- package/dist/types/cli/commands/db-logs.d.ts.map +1 -0
- package/dist/types/cli/commands/db-ls.d.ts +2 -0
- package/dist/types/cli/commands/db-ls.d.ts.map +1 -0
- package/dist/types/cli/commands/db-query.d.ts +121 -0
- package/dist/types/cli/commands/db-query.d.ts.map +1 -0
- package/dist/types/cli/commands/db-remove.d.ts +2 -0
- package/dist/types/cli/commands/db-remove.d.ts.map +1 -0
- package/dist/types/cli/commands/db-show.d.ts +2 -0
- package/dist/types/cli/commands/db-show.d.ts.map +1 -0
- package/dist/types/cli/commands/db-test.d.ts +3 -0
- package/dist/types/cli/commands/db-test.d.ts.map +1 -0
- package/dist/types/cli/commands/db.d.ts +11 -0
- package/dist/types/cli/commands/db.d.ts.map +1 -0
- package/dist/types/cli/commands/debug.d.ts +2 -0
- package/dist/types/cli/commands/debug.d.ts.map +1 -0
- package/dist/types/cli/commands/doctor.d.ts +5 -0
- package/dist/types/cli/commands/doctor.d.ts.map +1 -0
- package/dist/types/cli/commands/index.d.ts +10 -0
- package/dist/types/cli/commands/index.d.ts.map +1 -0
- package/dist/types/cli/commands/init.d.ts +2 -0
- package/dist/types/cli/commands/init.d.ts.map +1 -0
- package/dist/types/cli/commands/link.d.ts +5 -0
- package/dist/types/cli/commands/link.d.ts.map +1 -0
- package/dist/types/cli/commands/logs.d.ts +17 -0
- package/dist/types/cli/commands/logs.d.ts.map +1 -0
- package/dist/types/cli/commands/project-show.d.ts +2 -0
- package/dist/types/cli/commands/project-show.d.ts.map +1 -0
- package/dist/types/cli/commands/project.d.ts +3 -0
- package/dist/types/cli/commands/project.d.ts.map +1 -0
- package/dist/types/cli/commands/service.d.ts +123 -0
- package/dist/types/cli/commands/service.d.ts.map +1 -0
- package/dist/types/cli/commands/start.d.ts +6 -0
- package/dist/types/cli/commands/start.d.ts.map +1 -0
- package/dist/types/cli/commands/status.d.ts +2 -0
- package/dist/types/cli/commands/status.d.ts.map +1 -0
- package/dist/types/cli/commands/stop.d.ts +6 -0
- package/dist/types/cli/commands/stop.d.ts.map +1 -0
- package/dist/types/cli/daemon/error-tracker.d.ts +119 -0
- package/dist/types/cli/daemon/error-tracker.d.ts.map +1 -0
- package/dist/types/cli/daemon/fault-shutdown.d.ts +144 -0
- package/dist/types/cli/daemon/fault-shutdown.d.ts.map +1 -0
- package/dist/types/cli/daemon/index.d.ts +12 -0
- package/dist/types/cli/daemon/index.d.ts.map +1 -0
- package/dist/types/cli/daemon/pid-file.d.ts +13 -0
- package/dist/types/cli/daemon/pid-file.d.ts.map +1 -0
- package/dist/types/cli/daemon/readiness.d.ts +30 -0
- package/dist/types/cli/daemon/readiness.d.ts.map +1 -0
- package/dist/types/cli/daemon/runtime.d.ts +366 -0
- package/dist/types/cli/daemon/runtime.d.ts.map +1 -0
- package/dist/types/cli/daemon/shutdown.d.ts +7 -0
- package/dist/types/cli/daemon/shutdown.d.ts.map +1 -0
- package/dist/types/cli/daemon/signal-handlers.d.ts +3 -0
- package/dist/types/cli/daemon/signal-handlers.d.ts.map +1 -0
- package/dist/types/cli/daemon/state.d.ts +157 -0
- package/dist/types/cli/daemon/state.d.ts.map +1 -0
- package/dist/types/cli/daemon/status-file.d.ts +139 -0
- package/dist/types/cli/daemon/status-file.d.ts.map +1 -0
- package/dist/types/cli/doctor/checks.d.ts +133 -0
- package/dist/types/cli/doctor/checks.d.ts.map +1 -0
- package/dist/types/cli/doctor/fixes.d.ts +9 -0
- package/dist/types/cli/doctor/fixes.d.ts.map +1 -0
- package/dist/types/cli/doctor/index.d.ts +7 -0
- package/dist/types/cli/doctor/index.d.ts.map +1 -0
- package/dist/types/cli/index.d.ts +3 -0
- package/dist/types/cli/index.d.ts.map +1 -0
- package/dist/types/cli/interactive.d.ts +8 -0
- package/dist/types/cli/interactive.d.ts.map +1 -0
- package/dist/types/cli/logs/format.d.ts +13 -0
- package/dist/types/cli/logs/format.d.ts.map +1 -0
- package/dist/types/cli/logs/index.d.ts +3 -0
- package/dist/types/cli/logs/index.d.ts.map +1 -0
- package/dist/types/cli/logs/viewer.d.ts +41 -0
- package/dist/types/cli/logs/viewer.d.ts.map +1 -0
- package/dist/types/cli/ops/operation-logger.d.ts +63 -0
- package/dist/types/cli/ops/operation-logger.d.ts.map +1 -0
- package/dist/types/cli/palette.d.ts +11 -0
- package/dist/types/cli/palette.d.ts.map +1 -0
- package/dist/types/cli/prompt.d.ts +186 -0
- package/dist/types/cli/prompt.d.ts.map +1 -0
- package/dist/types/cli/ui/box.d.ts +21 -0
- package/dist/types/cli/ui/box.d.ts.map +1 -0
- package/dist/types/cli/ui/clipboard.d.ts +6 -0
- package/dist/types/cli/ui/clipboard.d.ts.map +1 -0
- package/dist/types/cli/ui/colors.d.ts +57 -0
- package/dist/types/cli/ui/colors.d.ts.map +1 -0
- package/dist/types/cli/ui/index.d.ts +9 -0
- package/dist/types/cli/ui/index.d.ts.map +1 -0
- package/dist/types/cli/ui/spinner.d.ts +12 -0
- package/dist/types/cli/ui/spinner.d.ts.map +1 -0
- package/dist/types/cli/ui/symbols.d.ts +47 -0
- package/dist/types/cli/ui/symbols.d.ts.map +1 -0
- package/dist/types/cli/ui/table.d.ts +23 -0
- package/dist/types/cli/ui/table.d.ts.map +1 -0
- package/dist/types/cli/ui/terminal.d.ts +7 -0
- package/dist/types/cli/ui/terminal.d.ts.map +1 -0
- package/dist/types/config/atomic-write.d.ts +69 -0
- package/dist/types/config/atomic-write.d.ts.map +1 -0
- package/dist/types/config/db-config.d.ts +134 -0
- package/dist/types/config/db-config.d.ts.map +1 -0
- package/dist/types/config/machine-config.d.ts +85 -0
- package/dist/types/config/machine-config.d.ts.map +1 -0
- package/dist/types/config/paths.d.ts +64 -0
- package/dist/types/config/paths.d.ts.map +1 -0
- package/dist/types/config/schema.d.ts +72 -0
- package/dist/types/config/schema.d.ts.map +1 -0
- package/dist/types/config/token.d.ts +63 -0
- package/dist/types/config/token.d.ts.map +1 -0
- package/dist/types/execution/canceller.d.ts +41 -0
- package/dist/types/execution/canceller.d.ts.map +1 -0
- package/dist/types/execution/database-lookup.d.ts +56 -0
- package/dist/types/execution/database-lookup.d.ts.map +1 -0
- package/dist/types/execution/dispatcher.d.ts +181 -0
- package/dist/types/execution/dispatcher.d.ts.map +1 -0
- package/dist/types/execution/function-effects.d.ts +209 -0
- package/dist/types/execution/function-effects.d.ts.map +1 -0
- package/dist/types/execution/introspection.d.ts +76 -0
- package/dist/types/execution/introspection.d.ts.map +1 -0
- package/dist/types/execution/migration-runner.d.ts +128 -0
- package/dist/types/execution/migration-runner.d.ts.map +1 -0
- package/dist/types/execution/non-tx-detector.d.ts +23 -0
- package/dist/types/execution/non-tx-detector.d.ts.map +1 -0
- package/dist/types/execution/pool.d.ts +229 -0
- package/dist/types/execution/pool.d.ts.map +1 -0
- package/dist/types/execution/query-runner.d.ts +88 -0
- package/dist/types/execution/query-runner.d.ts.map +1 -0
- package/dist/types/execution/rate-limiter.d.ts +120 -0
- package/dist/types/execution/rate-limiter.d.ts.map +1 -0
- package/dist/types/execution/search-path.d.ts +161 -0
- package/dist/types/execution/search-path.d.ts.map +1 -0
- package/dist/types/execution/sql-parser.d.ts +195 -0
- package/dist/types/execution/sql-parser.d.ts.map +1 -0
- package/dist/types/execution/statement-classifier.d.ts +103 -0
- package/dist/types/execution/statement-classifier.d.ts.map +1 -0
- package/dist/types/execution/types.d.ts +189 -0
- package/dist/types/execution/types.d.ts.map +1 -0
- package/dist/types/index.d.ts +34 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/permissions/auto-upgrade.d.ts +40 -0
- package/dist/types/permissions/auto-upgrade.d.ts.map +1 -0
- package/dist/types/permissions/checker.d.ts +53 -0
- package/dist/types/permissions/checker.d.ts.map +1 -0
- package/dist/types/permissions/manual-approval.d.ts +213 -0
- package/dist/types/permissions/manual-approval.d.ts.map +1 -0
- package/dist/types/permissions/plan-registry.d.ts +274 -0
- package/dist/types/permissions/plan-registry.d.ts.map +1 -0
- package/dist/types/permissions/role-policy.d.ts +217 -0
- package/dist/types/permissions/role-policy.d.ts.map +1 -0
- package/dist/types/permissions/types.d.ts +126 -0
- package/dist/types/permissions/types.d.ts.map +1 -0
- package/dist/types/protocol/constants.d.ts +72 -0
- package/dist/types/protocol/constants.d.ts.map +1 -0
- package/dist/types/protocol/envelope.d.ts +165 -0
- package/dist/types/protocol/envelope.d.ts.map +1 -0
- package/dist/types/protocol/errors.d.ts +33 -0
- package/dist/types/protocol/errors.d.ts.map +1 -0
- package/dist/types/protocol/messages.d.ts +327 -0
- package/dist/types/protocol/messages.d.ts.map +1 -0
- package/dist/types/protocol/serialize.d.ts +26 -0
- package/dist/types/protocol/serialize.d.ts.map +1 -0
- package/dist/types/protocol/validate.d.ts +135 -0
- package/dist/types/protocol/validate.d.ts.map +1 -0
- package/package.json +116 -4
- package/scripts/generate-systemd-service.mjs +117 -0
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
export declare class SqlParserUnavailableError extends Error {
|
|
2
|
+
constructor(cause?: unknown);
|
|
3
|
+
}
|
|
4
|
+
export declare class SqlParseError extends Error {
|
|
5
|
+
/** libpg_query error code, e.g. 'syntax_error'. */
|
|
6
|
+
readonly pgCode: string;
|
|
7
|
+
/** 1-based cursor position from PostgreSQL, 0 if unknown. */
|
|
8
|
+
readonly cursorPosition: number;
|
|
9
|
+
constructor(message: string, pgCode?: string, cursorPosition?: number);
|
|
10
|
+
}
|
|
11
|
+
/** Load the WASM parser. Idempotent and safe to call concurrently. */
|
|
12
|
+
export declare function initSqlParser(): Promise<void>;
|
|
13
|
+
/** True once the WASM module is loaded and parsing is possible. */
|
|
14
|
+
export declare function isSqlParserReady(): boolean;
|
|
15
|
+
/** Throws unless the parser is loaded. Use at the top of any SQL path. */
|
|
16
|
+
export declare function assertParserReady(): void;
|
|
17
|
+
/**
|
|
18
|
+
* Parse one or more SQL statements into libpg_query raw parse nodes.
|
|
19
|
+
*
|
|
20
|
+
* @throws {SqlParserUnavailableError} if the WASM module is not loaded
|
|
21
|
+
* @throws {SqlParseError} on a PostgreSQL syntax/semantic error
|
|
22
|
+
*/
|
|
23
|
+
export declare function parseSql(sql: string): RawParseResult;
|
|
24
|
+
export interface RawParseResult {
|
|
25
|
+
version: number;
|
|
26
|
+
stmts: RawStmt[];
|
|
27
|
+
}
|
|
28
|
+
export interface RawStmt {
|
|
29
|
+
stmt: Record<string, any>;
|
|
30
|
+
stmt_location?: number;
|
|
31
|
+
stmt_len?: number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Root node type of a statement (e.g. 'SelectStmt', 'DropStmt').
|
|
35
|
+
* Returns 'none' for an empty node.
|
|
36
|
+
*/
|
|
37
|
+
export declare function rootNodeType(stmt: RawStmt | undefined): string;
|
|
38
|
+
/**
|
|
39
|
+
* The root node payload for a statement — i.e. the value of the single root
|
|
40
|
+
* key, not the `{ NodeName: {...} }` wrapper. Callers that want to walk the
|
|
41
|
+
* whole tree should use `walkAst(stmt.stmt, …)` instead.
|
|
42
|
+
*/
|
|
43
|
+
export declare function rootNode(stmt: RawStmt | undefined): any;
|
|
44
|
+
/**
|
|
45
|
+
* Depth-first walk over every node in a parse tree, invoking `visit` on each
|
|
46
|
+
* node. libpg_query marks nodes two ways depending on level: raw parse trees
|
|
47
|
+
* wrap each node in a single-key object (e.g. `{ SelectStmt: {...} }`), while
|
|
48
|
+
* `nodeType`-tagged trees use `{ nodeType: 'SelectStmt' }`. We support both.
|
|
49
|
+
*
|
|
50
|
+
* The node name is read from the *key* that holds the child, never from the
|
|
51
|
+
* child's own keys. A wrapper can sit directly inside a list — e.g.
|
|
52
|
+
* `fromClause[0].RangeFunction.functions[0].List.items[0].FuncCall` — and a
|
|
53
|
+
* walk that only recognises a wrapper when it is the sole key of a *nested*
|
|
54
|
+
* object silently misses every node in that position. That omission is a
|
|
55
|
+
* security bug here: it made `SELECT * FROM pg_read_file('/etc/passwd') AS
|
|
56
|
+
* t(contents)` collect zero function names and classify as a read.
|
|
57
|
+
*/
|
|
58
|
+
export declare function walkAst(node: unknown, visit: (type: string, payload: any) => void): void;
|
|
59
|
+
/**
|
|
60
|
+
* Extract every function name referenced anywhere in the statement, lower-cased
|
|
61
|
+
* and dot-joined so both `pg_read_file` and `pg_catalog.pg_read_file` are
|
|
62
|
+
* recognised. PostgreSQL folds unquoted identifiers to lower case; folding
|
|
63
|
+
* quoted ones too (`"PG_READ_FILE"`) only ever makes the match set larger,
|
|
64
|
+
* which is the safe direction.
|
|
65
|
+
*/
|
|
66
|
+
export declare function collectFunctionNames(stmt: RawStmt): string[];
|
|
67
|
+
/**
|
|
68
|
+
* True when the SELECT contains a data-modifying CTE
|
|
69
|
+
* (`WITH x AS (INSERT …) SELECT …`). PostgreSQL executes those even though the
|
|
70
|
+
* outer statement is a SELECT.
|
|
71
|
+
*/
|
|
72
|
+
export declare function hasWritableCte(selectNode: any): boolean;
|
|
73
|
+
/** SELECT … INTO <table> creates and populates a table. */
|
|
74
|
+
export declare function getSelectInto(selectNode: any): any | null;
|
|
75
|
+
/** Row-level locking clauses (FOR UPDATE / FOR SHARE / FOR NO KEY UPDATE …). */
|
|
76
|
+
export declare function getLockingClauses(selectNode: any): any[];
|
|
77
|
+
/** Side effects a `SELECT` envelope can carry, anywhere in the statement. */
|
|
78
|
+
export interface ReadSideEffects {
|
|
79
|
+
/** `SELECT … INTO <table>` creates and populates a table. */
|
|
80
|
+
selectsInto: boolean;
|
|
81
|
+
/** Row-level locking clauses: FOR UPDATE / SHARE / NO KEY UPDATE / KEY SHARE. */
|
|
82
|
+
lockingClauses: any[];
|
|
83
|
+
/** A data-modifying CTE (`WITH x AS (DELETE …) SELECT …`). */
|
|
84
|
+
writableCte: boolean;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Find every read-shaped side effect in a statement.
|
|
88
|
+
*
|
|
89
|
+
* This walks *all* `SelectStmt` nodes rather than only the outermost one: a
|
|
90
|
+
* locking clause or a data-modifying CTE in a sub-select or CTE body takes the
|
|
91
|
+
* same locks and performs the same writes as one at the top level.
|
|
92
|
+
*/
|
|
93
|
+
export declare function findReadSideEffects(stmt: RawStmt): ReadSideEffects;
|
|
94
|
+
/**
|
|
95
|
+
* True for `EXPLAIN ANALYZE`, which EXECUTES the statement it explains.
|
|
96
|
+
*
|
|
97
|
+
* libpg_query does not expose an `analyze` flag on `ExplainStmt`; the option is
|
|
98
|
+
* a `DefElem` with `defname: 'analyze'` in the `options` list, so reading a
|
|
99
|
+
* boolean field (as an earlier version did) always reported false.
|
|
100
|
+
*/
|
|
101
|
+
export declare function explainExecutesStatement(node: any): boolean;
|
|
102
|
+
/**
|
|
103
|
+
* Root nodes that are session/transaction utilities rather than schema changes.
|
|
104
|
+
* They still require elevated capability (utility maps to `ddl` in the role
|
|
105
|
+
* policy) but they are not DDL for audit purposes. Note that PostgreSQL's
|
|
106
|
+
* ANALYZE also parses as `VacuumStmt`, so it is covered here.
|
|
107
|
+
*/
|
|
108
|
+
export declare const UTILITY_ROOTS: ReadonlySet<string>;
|
|
109
|
+
/** Statements whose root node performs row modifications. */
|
|
110
|
+
export declare const WRITE_ROOTS: ReadonlySet<string>;
|
|
111
|
+
/**
|
|
112
|
+
* Root nodes that are acceptable as "read only".
|
|
113
|
+
*
|
|
114
|
+
* This is an ALLOWLIST, not a denylist. Anything not listed here is not a
|
|
115
|
+
* read. That is the entire point: adding a new PostgreSQL statement type
|
|
116
|
+
* cannot accidentally make it readable.
|
|
117
|
+
*/
|
|
118
|
+
export declare const READ_ROOTS: ReadonlySet<string>;
|
|
119
|
+
/**
|
|
120
|
+
* Root nodes that modify schema, roles, or persistent database state.
|
|
121
|
+
* Anything not in READ_ROOTS or WRITE_ROOTS and not here is `utility`.
|
|
122
|
+
*/
|
|
123
|
+
export declare const DDL_ROOTS: ReadonlySet<string>;
|
|
124
|
+
/**
|
|
125
|
+
* Root nodes that cannot run inside a transaction block.
|
|
126
|
+
* Used by the migration strategy detector, which previously mis-classified
|
|
127
|
+
* `DROP INDEX CONCURRENTLY` and `ALTER SYSTEM` as transactional.
|
|
128
|
+
*/
|
|
129
|
+
export declare const NON_TRANSACTIONAL_ROOTS: ReadonlySet<string>;
|
|
130
|
+
/** Roots that can execute arbitrary code or reach outside the database. */
|
|
131
|
+
export declare const EXECUTABLE_ROOTS: ReadonlySet<string>;
|
|
132
|
+
/**
|
|
133
|
+
* Functions that must never be reachable from a statement classified as a
|
|
134
|
+
* read, because they mutate state, read server files, reach other systems, or
|
|
135
|
+
* produce a side effect that escapes the transaction.
|
|
136
|
+
* Matched case-insensitively against the fully-qualified name *and* against
|
|
137
|
+
* the bare name, so `pg_catalog.pg_read_file` and `pg_read_file` both match.
|
|
138
|
+
*
|
|
139
|
+
* This list is NOT a security boundary and must not be presented as one. It is
|
|
140
|
+
* defence in depth in front of the control that is: every function a statement
|
|
141
|
+
* references is resolved against `pg_proc` and only `IMMUTABLE`, non-`SECURITY
|
|
142
|
+
* DEFINER` calls count as a read
|
|
143
|
+
* (`statement-classifier.ts` → `classifySelect`, `function-effects.ts`). That
|
|
144
|
+
* control is name-independent, which is what closes the class this list cannot:
|
|
145
|
+
* an operator's own `SECURITY DEFINER` helper around `pg_read_file`, or any
|
|
146
|
+
* VOLATILE function that INSERTs, parses as a plain `SELECT` and appears on no
|
|
147
|
+
* list at all.
|
|
148
|
+
*
|
|
149
|
+
* The claim that used to sit here — that a miss "cannot reach the host" because
|
|
150
|
+
* the connection is read-only — was FALSE. `default_transaction_read_only`
|
|
151
|
+
* constrains writes to relations and nothing else, and it does not span a
|
|
152
|
+
* second connection opened inside a function body. A read of a server file, a
|
|
153
|
+
* `NOTIFY` delivered on commit, an XID allocation, or a `dblink` round trip all
|
|
154
|
+
* succeed at `read_only`; only the write arm of a VOLATILE function is blocked.
|
|
155
|
+
* `RECOMMENDED_PG_ROLE` in `src/permissions/role-policy.ts` (the EXECUTE
|
|
156
|
+
* revokes, plus the default-privileges row that stops them decaying) is what a
|
|
157
|
+
* miss cannot get past.
|
|
158
|
+
*/
|
|
159
|
+
export declare const DENIED_READ_FUNCTIONS: ReadonlySet<string>;
|
|
160
|
+
/**
|
|
161
|
+
* Name prefixes denied for the same reason as {@link DENIED_READ_FUNCTIONS}.
|
|
162
|
+
*
|
|
163
|
+
* Families are matched on the bare function name so `dblink_fetch_result` and
|
|
164
|
+
* `postgres_fdw_validator` cannot be used to walk around the explicit list.
|
|
165
|
+
* Prefix rules are cheaper than enumerating every member of a function family
|
|
166
|
+
* and cannot be evaded by picking a sibling we forgot to write down.
|
|
167
|
+
*
|
|
168
|
+
* `txid_`, `pg_advisory_` and `pg_snapshot_` are here because the families
|
|
169
|
+
* grow: `pg_advisory_xact_lock_shared` and `txid_current_if_assigned` exist on
|
|
170
|
+
* some releases and not others.
|
|
171
|
+
*/
|
|
172
|
+
export declare const DENIED_READ_FUNCTION_PREFIXES: readonly string[];
|
|
173
|
+
/**
|
|
174
|
+
* Name suffixes denied for the same reason as {@link DENIED_READ_FUNCTIONS}.
|
|
175
|
+
*
|
|
176
|
+
* A prefix cannot express "every function whose name ends this way", and the
|
|
177
|
+
* families that matter are named by their suffix: `dblink_exec`,
|
|
178
|
+
* `dblink_send_query`, `postgres_fdw_disconnect`, `mysql_fdw_connect_u`. They
|
|
179
|
+
* are matched on the bare function name, exactly as the prefixes are.
|
|
180
|
+
*
|
|
181
|
+
* This costs generality, not safety: a function called `x_disconnect` that does
|
|
182
|
+
* nothing is refused as a read, which is the correct direction for a control
|
|
183
|
+
* that has to be conservative about names it cannot resolve.
|
|
184
|
+
*/
|
|
185
|
+
export declare const DENIED_READ_FUNCTION_SUFFIXES: readonly string[];
|
|
186
|
+
/** True when a (lower-cased, dot-joined) function name is denied in a read. */
|
|
187
|
+
export declare function isDeniedReadFunction(name: string): boolean;
|
|
188
|
+
/** Every denylisted function a statement references. */
|
|
189
|
+
export declare function findDeniedReadFunction(fnNames: Iterable<string>): string[];
|
|
190
|
+
/**
|
|
191
|
+
* Node-level transactionality that the root-node set cannot express.
|
|
192
|
+
* libpg_query uses a `concurrent` boolean on IndexStmt and DropStmt.
|
|
193
|
+
*/
|
|
194
|
+
export declare function isNonTransactionalNode(rootType: string, node: any): boolean;
|
|
195
|
+
//# sourceMappingURL=sql-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sql-parser.d.ts","sourceRoot":"","sources":["../../../src/execution/sql-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Statement classification, driven by the real PostgreSQL grammar.
|
|
3
|
+
*
|
|
4
|
+
* The previous implementation split the SQL on whitespace and looked at the
|
|
5
|
+
* first token. That is unsound: it classified `SELECT 1; DROP TABLE users` as a
|
|
6
|
+
* read, and it classified `SELECT * INTO t ...` as a read even though it
|
|
7
|
+
* creates a table. Both were reachable from the cloud and both executed.
|
|
8
|
+
*
|
|
9
|
+
* This implementation parses with libpg_query (WASM) and classifies from the
|
|
10
|
+
* AST. The guarantee it provides, and its exact limits:
|
|
11
|
+
*
|
|
12
|
+
* - The number of statements is COUNTED by PostgreSQL's own grammar, so
|
|
13
|
+
* multi-statement smuggling is structural rather than lexical: a `;` inside
|
|
14
|
+
* a string literal, a dollar-quoted body, a quoted identifier or a comment
|
|
15
|
+
* cannot split a statement, and a real second statement always is visible.
|
|
16
|
+
* `statement_count !== 1` is never a read.
|
|
17
|
+
* - Classification is ALLOWLIST-based on the root node: a statement type this
|
|
18
|
+
* module does not recognise is `unknown`, which is not a read.
|
|
19
|
+
* - `SELECT` is treated as a command envelope, not a read-only assertion.
|
|
20
|
+
* `SELECT … INTO`, row-locking clauses, data-modifying CTEs, executable
|
|
21
|
+
* blocks and denylisted volatile/privileged functions are detected anywhere
|
|
22
|
+
* in the statement and demote it out of `read`.
|
|
23
|
+
* - A parse failure and an unavailable parser both FAIL CLOSED: they throw,
|
|
24
|
+
* and no lexical heuristic is ever consulted as a fallback. An
|
|
25
|
+
* authorization decision must never be made from this module's guesswork.
|
|
26
|
+
* - A function reference is a claim that has to be PROVED. Every function the
|
|
27
|
+
* statement calls is resolved against `pg_proc` on the caller's connection
|
|
28
|
+
* (`function-effects.ts`), and only `provolatile = 'i' AND prosecdef =
|
|
29
|
+
* false` counts as a read. A VOLATILE or SECURITY DEFINER function, an
|
|
30
|
+
* unknown one, and — deliberately — one the catalogue could not be asked
|
|
31
|
+
* about all carry `side_effect` and are never a provable read. With no
|
|
32
|
+
* resolver supplied every statement that calls anything is escalated; see
|
|
33
|
+
* {@link ClassifyOptions.resolveFunctionEffects}.
|
|
34
|
+
*
|
|
35
|
+
* It is still not a substitute for PostgreSQL's own enforcement. The database
|
|
36
|
+
* is the authority on what a statement does, and the agent's read-only
|
|
37
|
+
* guarantee is `default_transaction_read_only = on` on the connection — which
|
|
38
|
+
* constrains WRITES only, and therefore does not constrain a function that
|
|
39
|
+
* reads a file, notifies a channel, or allocates a transaction id. Those are
|
|
40
|
+
* why the function-effect analysis above is a control in its own right rather
|
|
41
|
+
* than an optimisation of the deny-list in `sql-parser.ts`.
|
|
42
|
+
*/
|
|
43
|
+
import { SqlParseError, SqlParserUnavailableError, walkAst } from './sql-parser';
|
|
44
|
+
import type { RawStmt } from './sql-parser';
|
|
45
|
+
import type { FunctionEffectResolver } from './function-effects';
|
|
46
|
+
import type { StatementClassification } from './types';
|
|
47
|
+
/** Reasons a syntactically valid SELECT is still not a safe read. */
|
|
48
|
+
export type ReadViolation = 'selects_into' | 'row_locking' | 'writable_cte' | 'denied_function' | 'side_effect' | 'multiple_statements' | 'executable_block' | 'parse_error' | 'parser_unavailable';
|
|
49
|
+
/**
|
|
50
|
+
* Violations that mean "this parsed as a read but it is not one".
|
|
51
|
+
*
|
|
52
|
+
* A statement carrying any of these is never reported as a provable read, and
|
|
53
|
+
* the permission layer treats it as a privileged operation rather than a
|
|
54
|
+
* `query_read`.
|
|
55
|
+
*/
|
|
56
|
+
export declare const READ_ESCAPE_VIOLATIONS: ReadonlySet<ReadViolation>;
|
|
57
|
+
/**
|
|
58
|
+
* Options for a classification that can consult a database.
|
|
59
|
+
*
|
|
60
|
+
* `resolveFunctionEffects` is optional and its absence is meaningful: without
|
|
61
|
+
* it this module cannot prove any function call is effect-free, so it reports
|
|
62
|
+
* `side_effect` for every one of them and the statement is escalated. That is
|
|
63
|
+
* the fail-closed direction, and it is required — the alternative (treating an
|
|
64
|
+
* absent catalogue verdict as "safe") is the vulnerability being fixed.
|
|
65
|
+
*/
|
|
66
|
+
export interface ClassifyOptions {
|
|
67
|
+
resolveFunctionEffects?: FunctionEffectResolver;
|
|
68
|
+
}
|
|
69
|
+
export declare class StatementClassificationError extends Error {
|
|
70
|
+
readonly code: ReadViolation | 'unknown_statement';
|
|
71
|
+
constructor(message: string, code: ReadViolation | 'unknown_statement');
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Classify a SQL string using the PostgreSQL parser.
|
|
75
|
+
*
|
|
76
|
+
* @throws {SqlParserUnavailableError} if the parser has not been initialised
|
|
77
|
+
* @throws {SqlParseError} if PostgreSQL cannot parse the input
|
|
78
|
+
*/
|
|
79
|
+
export declare function classifyStatement(sql: string, options?: ClassifyOptions): Promise<StatementClassification>;
|
|
80
|
+
/**
|
|
81
|
+
* Classify a parsed statement list, resolving every function the statements
|
|
82
|
+
* reference against `pg_proc` in ONE batched read.
|
|
83
|
+
*
|
|
84
|
+
* The names of every statement in the list are collected before the lookup, so
|
|
85
|
+
* a migration plan of twenty statements still costs one catalogue query.
|
|
86
|
+
*/
|
|
87
|
+
export declare function classifyStatements(stmts: RawStmt[], options?: ClassifyOptions): Promise<StatementClassification>;
|
|
88
|
+
/**
|
|
89
|
+
* Classify using an already-parsed statement list (sync; parser must be ready).
|
|
90
|
+
*
|
|
91
|
+
* No catalogue is consulted here, so any statement that calls a function is
|
|
92
|
+
* escalated. Callers that hold a connection should use {@link classifyStatements}
|
|
93
|
+
* (or `classifyStatement`) with a resolver instead.
|
|
94
|
+
*/
|
|
95
|
+
export declare function classifyParsedStatements(stmts: RawStmt[]): StatementClassification;
|
|
96
|
+
/**
|
|
97
|
+
* Classify and throw instead of returning, for call sites that must fail
|
|
98
|
+
* closed on anything they cannot prove is a read.
|
|
99
|
+
*/
|
|
100
|
+
export declare function assertSingleReadStatement(sql: string, options?: ClassifyOptions): Promise<StatementClassification>;
|
|
101
|
+
export { SqlParseError, SqlParserUnavailableError };
|
|
102
|
+
export { walkAst };
|
|
103
|
+
//# sourceMappingURL=statement-classifier.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statement-classifier.d.ts","sourceRoot":"","sources":["../../../src/execution/statement-classifier.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyCG;AACH,OAAO,EAML,aAAa,EACb,yBAAyB,EASzB,OAAO,EACR,MAAM,cAAc,CAAC;AACtB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,KAAK,EAAgD,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAE/G,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAIvD,qEAAqE;AACrE,MAAM,MAAM,aAAa,GACrB,cAAc,GACd,aAAa,GACb,cAAc,GACd,iBAAiB,GACjB,aAAa,GACb,qBAAqB,GACrB,kBAAkB,GAClB,aAAa,GACb,oBAAoB,CAAC;AAEzB;;;;;;GAMG;AACH,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,aAAa,CAO5D,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,WAAW,eAAe;IAC9B,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;CACjD;AAKD,qBAAa,4BAA6B,SAAQ,KAAK;aAGnC,IAAI,EAAE,aAAa,GAAG,mBAAmB;gBADzD,OAAO,EAAE,MAAM,EACC,IAAI,EAAE,aAAa,GAAG,mBAAmB;CAK5D;AAgCD;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,uBAAuB,CAAC,CAGlC;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,OAAO,EAAE,EAChB,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,uBAAuB,CAAC,CASlC;AAgBD;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,EAAE,GAAG,uBAAuB,CAMlF;AA+YD;;;GAGG;AACH,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,MAAM,EACX,OAAO,GAAE,eAAoB,GAC5B,OAAO,CAAC,uBAAuB,CAAC,CA0BlC;AAED,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import type { AgentMessage, MigrationStatementStatus } from '../protocol/envelope';
|
|
2
|
+
import type { PoolClient, QueryArrayConfig, QueryArrayResult, QueryConfig } from 'pg';
|
|
3
|
+
import type { FunctionEffectRecord, SideEffectKind } from './function-effects';
|
|
4
|
+
/**
|
|
5
|
+
* node-postgres selects the **simple** query protocol whenever `values` is
|
|
6
|
+
* falsy (`pg/lib/query.js` → `requiresPreparation`: `if (!this.values) return
|
|
7
|
+
* false`), and the simple protocol executes *every* semicolon-separated
|
|
8
|
+
* statement in one round trip. A payload without `params` therefore reached
|
|
9
|
+
* PostgreSQL as a multi-command string.
|
|
10
|
+
*
|
|
11
|
+
* `queryMode: 'extended'` forces Parse/Bind/Execute. PostgreSQL refuses to
|
|
12
|
+
* parse more than one command into a single prepared statement, so anything
|
|
13
|
+
* sent through {@link extendedQuery} reaches the engine as exactly one command
|
|
14
|
+
* regardless of what the classifier or the protocol validator admitted.
|
|
15
|
+
* `$1`-style parameters keep working because Bind still carries `values`.
|
|
16
|
+
*
|
|
17
|
+
* `queryMode` is not yet declared by `@types/pg`.
|
|
18
|
+
*/
|
|
19
|
+
export type ExtendedQueryConfig = QueryConfig & {
|
|
20
|
+
queryMode: 'extended';
|
|
21
|
+
};
|
|
22
|
+
export type ExtendedQueryArrayConfig = QueryArrayConfig & {
|
|
23
|
+
queryMode: 'extended';
|
|
24
|
+
};
|
|
25
|
+
/** Minimal result shape used by the internal session/hardening statements. */
|
|
26
|
+
export interface SimpleResult {
|
|
27
|
+
rows: unknown[];
|
|
28
|
+
rowCount: number | null;
|
|
29
|
+
fields: Array<{
|
|
30
|
+
name: string;
|
|
31
|
+
dataTypeID: number;
|
|
32
|
+
}>;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Build a query config that is guaranteed to travel over the extended query
|
|
36
|
+
* protocol. `values` is always an array, so node-postgres never takes the
|
|
37
|
+
* falsy-`values` shortcut; an empty array means "no bind parameters".
|
|
38
|
+
*/
|
|
39
|
+
export declare function extendedQuery(text: string, values?: readonly unknown[]): ExtendedQueryConfig;
|
|
40
|
+
/** {@link extendedQuery} for `rowMode: 'array'` results. */
|
|
41
|
+
export declare function extendedArrayQuery(text: string, values?: readonly unknown[]): ExtendedQueryArrayConfig;
|
|
42
|
+
/** Run a single statement over the extended protocol. */
|
|
43
|
+
export declare function runExtended(client: PoolClient, text: string, values?: readonly unknown[]): Promise<SimpleResult>;
|
|
44
|
+
/** Run a single statement over the extended protocol, rows as arrays. */
|
|
45
|
+
export declare function runExtendedArray(client: PoolClient, text: string, values?: readonly unknown[]): Promise<QueryArrayResult<unknown[]>>;
|
|
46
|
+
/** Result of classifying a SQL statement. */
|
|
47
|
+
export interface StatementClassification {
|
|
48
|
+
/** High-level type. Derived from the PostgreSQL parse tree root node. */
|
|
49
|
+
type: 'read' | 'write' | 'ddl' | 'utility' | 'unknown';
|
|
50
|
+
/** Specific statement kind (SELECT, DROP TABLE, ALTER ROLE, …). */
|
|
51
|
+
kind: string;
|
|
52
|
+
/** Whether this statement can run inside a transaction block. */
|
|
53
|
+
transactional: boolean;
|
|
54
|
+
/** Detected statement name (uppercased). */
|
|
55
|
+
verb: string;
|
|
56
|
+
/**
|
|
57
|
+
* How many statements PostgreSQL's parser found in the input. Anything other
|
|
58
|
+
* than 1 must be rejected: the previous token classifier could not see a
|
|
59
|
+
* trailing `; DROP TABLE`, and node-postgres executes every statement when
|
|
60
|
+
* the simple query protocol is used.
|
|
61
|
+
*/
|
|
62
|
+
statement_count: number;
|
|
63
|
+
/** False when the input could not be parsed. Callers must fail closed. */
|
|
64
|
+
parse_ok: boolean;
|
|
65
|
+
/**
|
|
66
|
+
* Reasons a syntactically valid SELECT is nonetheless not a safe read:
|
|
67
|
+
* SELECT INTO creates a table, writable CTEs and FOR UPDATE mutate state,
|
|
68
|
+
* denylisted functions reach the filesystem, other servers, or session
|
|
69
|
+
* control, and any function reference the catalogue could not prove
|
|
70
|
+
* `IMMUTABLE` may do anything the calling role may do. Empty array means the
|
|
71
|
+
* statement is a provable read.
|
|
72
|
+
*/
|
|
73
|
+
read_violations: string[];
|
|
74
|
+
/**
|
|
75
|
+
* Per-function catalogue verdicts for the statement.
|
|
76
|
+
*
|
|
77
|
+
* Optional in the type only, so that a hand-built classification (a test
|
|
78
|
+
* fixture, an older constructor in another package) still compiles. It is
|
|
79
|
+
* ALWAYS populated by the classifier, and the permission layer treats an
|
|
80
|
+
* absent array as UNKNOWN rather than as "no functions were referenced" —
|
|
81
|
+
* `isProvableRead()` refuses such a classification. Reading it as "empty,
|
|
82
|
+
* therefore safe" is precisely the bug this field exists to close.
|
|
83
|
+
*/
|
|
84
|
+
function_effects?: FunctionEffectRecord[];
|
|
85
|
+
/**
|
|
86
|
+
* Side effects the statement's function references perform outside the
|
|
87
|
+
* transaction: notifications, advisory locks, sequence advances, XID
|
|
88
|
+
* allocation, session mutation, remote I/O.
|
|
89
|
+
*
|
|
90
|
+
* Optional for the same reason as {@link StatementClassification.function_effects}
|
|
91
|
+
* and treated the same way: absent means "not known", which is not safe.
|
|
92
|
+
*/
|
|
93
|
+
side_effects?: SideEffectKind[];
|
|
94
|
+
}
|
|
95
|
+
/** Tracks one in-flight request. */
|
|
96
|
+
export interface InFlightRequest {
|
|
97
|
+
request_id: string;
|
|
98
|
+
db_alias: string;
|
|
99
|
+
/** PG backend PID for this request. Used by canceller. */
|
|
100
|
+
pid: number;
|
|
101
|
+
/** When the request started (epoch ms). */
|
|
102
|
+
started_at: number;
|
|
103
|
+
/** The originating message, when the caller supplies it. */
|
|
104
|
+
message?: AgentMessage;
|
|
105
|
+
/** Abort controller for cancellation. */
|
|
106
|
+
abort: AbortController;
|
|
107
|
+
/** Whether this is a streaming request. */
|
|
108
|
+
is_streaming: boolean;
|
|
109
|
+
}
|
|
110
|
+
/** Result of a single migration statement execution. */
|
|
111
|
+
export interface StatementResult {
|
|
112
|
+
index: number;
|
|
113
|
+
status: MigrationStatementStatus;
|
|
114
|
+
ms: number;
|
|
115
|
+
rows_affected: number;
|
|
116
|
+
error?: string;
|
|
117
|
+
pg_error_code?: string;
|
|
118
|
+
}
|
|
119
|
+
/** Snapshot of one table's schema. */
|
|
120
|
+
export interface TableSnapshot {
|
|
121
|
+
schema: string;
|
|
122
|
+
name: string;
|
|
123
|
+
type: 'table' | 'view' | 'materialized_view';
|
|
124
|
+
columns: Array<{
|
|
125
|
+
name: string;
|
|
126
|
+
type: string;
|
|
127
|
+
nullable: boolean;
|
|
128
|
+
default: string | null;
|
|
129
|
+
is_primary_key: boolean;
|
|
130
|
+
is_unique: boolean;
|
|
131
|
+
is_foreign_key: boolean;
|
|
132
|
+
foreign_key?: {
|
|
133
|
+
references_schema: string;
|
|
134
|
+
references_table: string;
|
|
135
|
+
references_column: string;
|
|
136
|
+
on_delete: string | null;
|
|
137
|
+
on_update: string | null;
|
|
138
|
+
};
|
|
139
|
+
}>;
|
|
140
|
+
indexes: Array<{
|
|
141
|
+
name: string;
|
|
142
|
+
columns: string[];
|
|
143
|
+
is_unique: boolean;
|
|
144
|
+
is_primary: boolean;
|
|
145
|
+
definition: string;
|
|
146
|
+
}>;
|
|
147
|
+
constraints: Array<{
|
|
148
|
+
name: string;
|
|
149
|
+
type: 'CHECK' | 'FOREIGN KEY' | 'UNIQUE' | 'PRIMARY KEY' | 'EXCLUSION';
|
|
150
|
+
definition: string;
|
|
151
|
+
}>;
|
|
152
|
+
triggers: Array<{
|
|
153
|
+
name: string;
|
|
154
|
+
event: string;
|
|
155
|
+
timing: string;
|
|
156
|
+
function: string;
|
|
157
|
+
}>;
|
|
158
|
+
partition_info?: {
|
|
159
|
+
is_partitioned: boolean;
|
|
160
|
+
partition_key: string | null;
|
|
161
|
+
partitions: Array<{
|
|
162
|
+
name: string;
|
|
163
|
+
for_values: string;
|
|
164
|
+
}>;
|
|
165
|
+
};
|
|
166
|
+
owner: string;
|
|
167
|
+
comment: string | null;
|
|
168
|
+
}
|
|
169
|
+
/** Full schema snapshot of a database. */
|
|
170
|
+
export interface SchemaSnapshot {
|
|
171
|
+
pg_version: string;
|
|
172
|
+
snapshot_at: number;
|
|
173
|
+
schemas: string[];
|
|
174
|
+
tables: TableSnapshot[];
|
|
175
|
+
extensions: Array<{
|
|
176
|
+
name: string;
|
|
177
|
+
version: string;
|
|
178
|
+
enabled: boolean;
|
|
179
|
+
}>;
|
|
180
|
+
size_bytes: number;
|
|
181
|
+
}
|
|
182
|
+
/** Pool manager events. */
|
|
183
|
+
export interface PoolManagerEvents {
|
|
184
|
+
onPoolOpen?: (dbAlias: string) => void;
|
|
185
|
+
onPoolClose?: (dbAlias: string, reason: 'idle' | 'explicit' | 'error') => void;
|
|
186
|
+
onConnectionAcquired?: (dbAlias: string) => void;
|
|
187
|
+
onConnectionReleased?: (dbAlias: string) => void;
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/execution/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export declare const VERSION = "2.0.0";
|
|
2
|
+
export * from './config/machine-config';
|
|
3
|
+
export * from './config/db-config';
|
|
4
|
+
export * from './config/paths';
|
|
5
|
+
export * from './config/token';
|
|
6
|
+
export * from './config/schema';
|
|
7
|
+
export { PROTOCOL_VERSION, DEFAULTS, LIMITS } from './protocol/constants';
|
|
8
|
+
export { AgentMessage, Role, MessageType, EventKind, MigrationStatementStatus, createMessage, } from './protocol/envelope';
|
|
9
|
+
export * from './protocol/messages';
|
|
10
|
+
export { ErrorCode, ErrorMetadata, ERROR_CATALOG, getErrorMetadata, isFatalError, isRetryableError, makeError, } from './protocol/errors';
|
|
11
|
+
export { serialize, deserialize, serializeToBytes, deserializeFromBytes, ProtocolError, } from './protocol/serialize';
|
|
12
|
+
export { validateEnvelope, validatePayload, validateMessage, } from './protocol/validate';
|
|
13
|
+
export { WakeChannel, WakeChannelOptions } from './channels/wake-channel';
|
|
14
|
+
export { DataChannel, DataChannelOptions } from './channels/data-channel';
|
|
15
|
+
export { AgentSession, AgentSessionOptions } from './channels/agent-session';
|
|
16
|
+
export { Backoff, sleep, withJitter } from './channels/reconnect';
|
|
17
|
+
export { WakeChannelState, DataChannelState, DataChannelCloseReason, WakeEvent, AgentSessionState, MessageHandler, StateChangeHandler, } from './channels/types';
|
|
18
|
+
export { PoolManager, PoolError } from './execution/pool';
|
|
19
|
+
export { QueryRunner, QueryTooLargeError, QueryCancelledError, QueryRunContext } from './execution/query-runner';
|
|
20
|
+
export { MigrationRunner, MigrationInProgressError, MigrationContext } from './execution/migration-runner';
|
|
21
|
+
export { Canceller } from './execution/canceller';
|
|
22
|
+
export { Introspector } from './execution/introspection';
|
|
23
|
+
export { Dispatcher, DispatcherOptions } from './execution/dispatcher';
|
|
24
|
+
export { classifyStatement } from './execution/statement-classifier';
|
|
25
|
+
export { detectNonTransactional } from './execution/non-tx-detector';
|
|
26
|
+
export * from './execution/types';
|
|
27
|
+
export { PermissionChecker, PermissionCheckerOptions } from './permissions/checker';
|
|
28
|
+
export { AutoUpgradeChecker, AutoUpgradeOptions } from './permissions/auto-upgrade';
|
|
29
|
+
export { ManualApprovalHandler, ManualApprovalOptions } from './permissions/manual-approval';
|
|
30
|
+
export { PlanRegistry, RegisteredPlan, PlanRegistryOptions } from './permissions/plan-registry';
|
|
31
|
+
export { ROLE_CAPABILITIES, RoleCapability, hasCapability, capabilityForClassification, capabilityForMessageType, } from './permissions/role-policy';
|
|
32
|
+
export { ActionRequest, PermissionDecision, AutoUpgradeResult, ManualApprovalResult, } from './permissions/types';
|
|
33
|
+
export * from './audit';
|
|
34
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAC;AAG/B,cAAc,yBAAyB,CAAC;AACxC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAGhC,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EACL,YAAY,EACZ,IAAI,EACJ,WAAW,EACX,SAAS,EACT,wBAAwB,EACxB,aAAa,GACd,MAAM,qBAAqB,CAAC;AAC7B,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACL,SAAS,EACT,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,SAAS,GACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,SAAS,EACT,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,GACd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,sBAAsB,EACtB,SAAS,EACT,iBAAiB,EACjB,cAAc,EACd,kBAAkB,GACnB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACjH,OAAO,EAAE,eAAe,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAC3G,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAC;AACrE,cAAc,mBAAmB,CAAC;AAGlC,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAC7F,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAChG,OAAO,EACL,iBAAiB,EAAE,cAAc,EAAE,aAAa,EAChD,2BAA2B,EAAE,wBAAwB,GACtD,MAAM,2BAA2B,CAAC;AACnC,OAAO,EACL,aAAa,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB,GAC3E,MAAM,qBAAqB,CAAC;AAG7B,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { ActionRequest, AutoUpgradeResult } from './types';
|
|
2
|
+
import { PlanRegistry } from './plan-registry';
|
|
3
|
+
export interface AutoUpgradeOptions {
|
|
4
|
+
planRegistry: PlanRegistry;
|
|
5
|
+
}
|
|
6
|
+
export declare class AutoUpgradeChecker {
|
|
7
|
+
private readonly opts;
|
|
8
|
+
constructor(opts: AutoUpgradeOptions);
|
|
9
|
+
/**
|
|
10
|
+
* Check whether auto-upgrade should be granted.
|
|
11
|
+
*
|
|
12
|
+
* Only meaningful when permission_level === 'auto_upgrade'.
|
|
13
|
+
*
|
|
14
|
+
* Auto-upgrade is granted only when ALL of the following hold:
|
|
15
|
+
* - the effective permission level really is `auto_upgrade`; this checker
|
|
16
|
+
* grants nothing at `read_only`, `manual` or `full`, so a caller that
|
|
17
|
+
* reaches it on the wrong path is refused rather than trusted
|
|
18
|
+
* - the message really is a `migration_run`
|
|
19
|
+
* - the role holds `migration_run`
|
|
20
|
+
* - a plan id is present and is registered, unexpired, and its statements
|
|
21
|
+
* hash matches the statements being submitted
|
|
22
|
+
* - the plan's registering principal is bound to this execution: the runner
|
|
23
|
+
* is the registrant, or holds a strictly more privileged role, and the
|
|
24
|
+
* permission level at execution is at least as permissive as the level the
|
|
25
|
+
* plan was registered under
|
|
26
|
+
* - every statement parses, is exactly one statement, and is not a read
|
|
27
|
+
* - the plan is consumed, so it cannot be replayed
|
|
28
|
+
*
|
|
29
|
+
* The last four conditions are decided by ONE synchronous call into the
|
|
30
|
+
* registry (`consume()`), not by a validate-then-authorise-then-delete
|
|
31
|
+
* sequence: `consume()` removes the plan in the same tick it grants it, so
|
|
32
|
+
* no interleaving of two `migration_run` frames can ever be granted twice.
|
|
33
|
+
*
|
|
34
|
+
* Without the provenance rules the registry is a self-attesting allow-list:
|
|
35
|
+
* the same untrusted principal registers the plan and runs it, so a statement
|
|
36
|
+
* hash match proves nothing at all.
|
|
37
|
+
*/
|
|
38
|
+
check(req: ActionRequest, statements?: string[]): Promise<AutoUpgradeResult>;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=auto-upgrade.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-upgrade.d.ts","sourceRoot":"","sources":["../../../src/permissions/auto-upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAsB,MAAM,SAAS,CAAC;AAC/E,OAAO,EAAE,YAAY,EAA2B,MAAM,iBAAiB,CAAC;AAKxE,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;gBAE9B,IAAI,EAAE,kBAAkB;IAIpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,KAAK,CAAC,GAAG,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;CAoHnF"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { ActionRequest, PermissionDecision, PermissionLevel } from './types';
|
|
2
|
+
import { AutoUpgradeChecker } from './auto-upgrade';
|
|
3
|
+
import { ManualApprovalHandler } from './manual-approval';
|
|
4
|
+
import { PlanRegistry } from './plan-registry';
|
|
5
|
+
import type { FunctionEffectResolver } from '../execution/function-effects';
|
|
6
|
+
export { PermissionLevel };
|
|
7
|
+
export interface PermissionCheckerOptions {
|
|
8
|
+
autoUpgradeChecker: AutoUpgradeChecker;
|
|
9
|
+
manualApprovalHandler: ManualApprovalHandler;
|
|
10
|
+
planRegistry: PlanRegistry;
|
|
11
|
+
/**
|
|
12
|
+
* Optional default resolver for function-effect analysis.
|
|
13
|
+
*
|
|
14
|
+
* When omitted, `check()`'s own `resolveFunctionEffects` argument is used,
|
|
15
|
+
* and when THAT is omitted too the analysis reports nothing was analysable —
|
|
16
|
+
* so every statement that calls a function is escalated. Supplying it here
|
|
17
|
+
* keeps one resolver per database entry rather than one per call.
|
|
18
|
+
*/
|
|
19
|
+
resolveFunctionEffects?: FunctionEffectResolver;
|
|
20
|
+
}
|
|
21
|
+
export declare class PermissionChecker {
|
|
22
|
+
readonly opts: PermissionCheckerOptions;
|
|
23
|
+
constructor(opts: PermissionCheckerOptions);
|
|
24
|
+
/**
|
|
25
|
+
* Decide whether a request may proceed. This is the ONLY method the
|
|
26
|
+
* dispatcher calls.
|
|
27
|
+
*
|
|
28
|
+
* Order of checks (all of them must pass):
|
|
29
|
+
* 0. Parse. A statement we cannot parse is denied, never guessed at. A
|
|
30
|
+
* parse error and an unavailable parser are both terminal.
|
|
31
|
+
* 1. Exactly one statement. Multi-statement execution is refused outright
|
|
32
|
+
* because node-postgres uses the simple query protocol when no bind
|
|
33
|
+
* parameters are supplied, and the simple protocol runs every
|
|
34
|
+
* semicolon-separated statement.
|
|
35
|
+
* 2. Anti-spoofing. The browser-claimed intent must match the parsed
|
|
36
|
+
* classification. No intent value exempts the request from this check;
|
|
37
|
+
* `intent: 'migration'` is accepted only on the `migration_run` message
|
|
38
|
+
* type and never in place of the comparison.
|
|
39
|
+
* 3. Role capability for the message type and for the parsed class. A
|
|
40
|
+
* classification that is not a *provable* read requires `ddl`.
|
|
41
|
+
* 4. Permission level.
|
|
42
|
+
*
|
|
43
|
+
* @param resolveFunctionEffects Answers "what can this function call do?"
|
|
44
|
+
* from `pg_proc` on a live connection. It is an argument, not a global,
|
|
45
|
+
* because only the caller knows which database the statement is about —
|
|
46
|
+
* and OIDs, and therefore which overloads exist, are per-database. A
|
|
47
|
+
* caller that cannot supply one gets `analysed: false`, and every
|
|
48
|
+
* statement that calls a function is then escalated rather than
|
|
49
|
+
* trusted.
|
|
50
|
+
*/
|
|
51
|
+
check(req: ActionRequest, statements?: string[], resolveFunctionEffects?: FunctionEffectResolver): Promise<PermissionDecision>;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=checker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checker.d.ts","sourceRoot":"","sources":["../../../src/permissions/checker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAS7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAI5E,OAAO,EAAE,eAAe,EAAE,CAAC;AAE3B,MAAM,WAAW,wBAAwB;IACvC,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,qBAAqB,EAAE,qBAAqB,CAAC;IAC7C,YAAY,EAAE,YAAY,CAAC;IAC3B;;;;;;;OAOG;IACH,sBAAsB,CAAC,EAAE,sBAAsB,CAAC;CACjD;AAED,qBAAa,iBAAiB;IAC5B,SAAgB,IAAI,EAAE,wBAAwB,CAAC;gBAEnC,IAAI,EAAE,wBAAwB;IAI1C;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,KAAK,CACT,GAAG,EAAE,aAAa,EAClB,UAAU,CAAC,EAAE,MAAM,EAAE,EACrB,sBAAsB,CAAC,EAAE,sBAAsB,GAC9C,OAAO,CAAC,kBAAkB,CAAC;CA0P/B"}
|