@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,584 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RECOMMENDED_PG_ROLE = exports.NON_TRANSACTIONAL_SIDE_EFFECTS = exports.PERMISSION_LEVEL_RANK = exports.ROLE_PRIVILEGE_RANK = exports.ROLE_CAPABILITIES = void 0;
|
|
4
|
+
exports.introspectionDetailFor = introspectionDetailFor;
|
|
5
|
+
exports.hasCapability = hasCapability;
|
|
6
|
+
exports.isAtLeastAsPrivileged = isAtLeastAsPrivileged;
|
|
7
|
+
exports.isStrictlyMorePrivileged = isStrictlyMorePrivileged;
|
|
8
|
+
exports.isAtLeastAsPermissive = isAtLeastAsPermissive;
|
|
9
|
+
exports.hasNonTransactionalSideEffect = hasNonTransactionalSideEffect;
|
|
10
|
+
exports.explainWhyNotAProvableRead = explainWhyNotAProvableRead;
|
|
11
|
+
exports.isProvableRead = isProvableRead;
|
|
12
|
+
exports.capabilityForClassification = capabilityForClassification;
|
|
13
|
+
exports.capabilityForMessageType = capabilityForMessageType;
|
|
14
|
+
exports.capabilityForEventKind = capabilityForEventKind;
|
|
15
|
+
/**
|
|
16
|
+
* Capability matrix.
|
|
17
|
+
*
|
|
18
|
+
* `viewer` and `data_reader` hold `introspect` but NOT `introspect_full`, so
|
|
19
|
+
* they receive the reduced snapshot (see `IntrospectionDetail` in
|
|
20
|
+
* execution/introspection.ts). Admin and developer hold both. This keeps the
|
|
21
|
+
* data explorer usable for a read-only user while removing the schema dump.
|
|
22
|
+
*/
|
|
23
|
+
exports.ROLE_CAPABILITIES = {
|
|
24
|
+
admin: [
|
|
25
|
+
'introspect',
|
|
26
|
+
'introspect_full',
|
|
27
|
+
'query_read',
|
|
28
|
+
'query_write',
|
|
29
|
+
'ddl',
|
|
30
|
+
'migration_run',
|
|
31
|
+
'approve_ddl',
|
|
32
|
+
'cancel',
|
|
33
|
+
'view_history',
|
|
34
|
+
'manage_team',
|
|
35
|
+
'manage_agent',
|
|
36
|
+
],
|
|
37
|
+
developer: [
|
|
38
|
+
'introspect',
|
|
39
|
+
'introspect_full',
|
|
40
|
+
'query_read',
|
|
41
|
+
'query_write',
|
|
42
|
+
'ddl',
|
|
43
|
+
'migration_run',
|
|
44
|
+
'approve_ddl',
|
|
45
|
+
'cancel',
|
|
46
|
+
'view_history',
|
|
47
|
+
],
|
|
48
|
+
data_reader: ['introspect', 'query_read', 'view_history'],
|
|
49
|
+
viewer: ['introspect', 'query_read', 'view_history'],
|
|
50
|
+
};
|
|
51
|
+
/** Introspection detail level implied by a role's capabilities. */
|
|
52
|
+
function introspectionDetailFor(role) {
|
|
53
|
+
return hasCapability(role, 'introspect_full') ? 'full' : 'structure';
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Ordering of roles by privilege, lowest first.
|
|
57
|
+
*
|
|
58
|
+
* Used to decide whether one principal may act on another's behalf (e.g. running
|
|
59
|
+
* a migration plan another user registered). It is a *matrix* ordering, not a
|
|
60
|
+
* real security hierarchy: the values come from this table and nothing else, so
|
|
61
|
+
* an unrecognised role can never be treated as privileged.
|
|
62
|
+
*/
|
|
63
|
+
exports.ROLE_PRIVILEGE_RANK = {
|
|
64
|
+
viewer: 0,
|
|
65
|
+
data_reader: 1,
|
|
66
|
+
developer: 2,
|
|
67
|
+
admin: 3,
|
|
68
|
+
};
|
|
69
|
+
/**
|
|
70
|
+
* Ordering of permission levels by permissiveness, lowest first.
|
|
71
|
+
*
|
|
72
|
+
* `read_only` is the strictest. A plan registered while a database was at a
|
|
73
|
+
* permissive level must not be laundered through a stricter one: a plan that
|
|
74
|
+
* needed no human at `full` may not execute unattended at `auto_upgrade`.
|
|
75
|
+
*/
|
|
76
|
+
exports.PERMISSION_LEVEL_RANK = {
|
|
77
|
+
read_only: 0,
|
|
78
|
+
auto_upgrade: 1,
|
|
79
|
+
manual: 2,
|
|
80
|
+
full: 3,
|
|
81
|
+
};
|
|
82
|
+
/** Check if a role has a specific capability. */
|
|
83
|
+
function hasCapability(role, cap) {
|
|
84
|
+
return exports.ROLE_CAPABILITIES[role]?.includes(cap) || false;
|
|
85
|
+
}
|
|
86
|
+
/** True when `role` is at least as privileged as `minimum`. */
|
|
87
|
+
function isAtLeastAsPrivileged(role, minimum) {
|
|
88
|
+
const r = exports.ROLE_PRIVILEGE_RANK[role];
|
|
89
|
+
const m = exports.ROLE_PRIVILEGE_RANK[minimum];
|
|
90
|
+
if (typeof r !== 'number' || typeof m !== 'number')
|
|
91
|
+
return false;
|
|
92
|
+
return r >= m;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* True when `role` is strictly more privileged than `minimum`.
|
|
96
|
+
*
|
|
97
|
+
* Acting on another principal's behalf requires a *higher* role than they held,
|
|
98
|
+
* never merely an equal one: two developers are peers, and one peer's plan is
|
|
99
|
+
* not the other's to run.
|
|
100
|
+
*/
|
|
101
|
+
function isStrictlyMorePrivileged(role, minimum) {
|
|
102
|
+
const r = exports.ROLE_PRIVILEGE_RANK[role];
|
|
103
|
+
const m = exports.ROLE_PRIVILEGE_RANK[minimum];
|
|
104
|
+
if (typeof r !== 'number' || typeof m !== 'number')
|
|
105
|
+
return false;
|
|
106
|
+
return r > m;
|
|
107
|
+
}
|
|
108
|
+
/** True when `level` is at least as permissive as `minimum`. */
|
|
109
|
+
function isAtLeastAsPermissive(level, minimum) {
|
|
110
|
+
const l = exports.PERMISSION_LEVEL_RANK[level];
|
|
111
|
+
const m = exports.PERMISSION_LEVEL_RANK[minimum];
|
|
112
|
+
if (typeof l !== 'number' || typeof m !== 'number')
|
|
113
|
+
return false;
|
|
114
|
+
return l >= m;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Side effects that escape the transaction, and therefore escape
|
|
118
|
+
* `default_transaction_read_only` as well.
|
|
119
|
+
*
|
|
120
|
+
* `NOTIFY` is delivered when the statement commits and is not rolled back;
|
|
121
|
+
* advisory locks are released by session end, not by `ROLLBACK`; a sequence
|
|
122
|
+
* advance and an XID allocation both persist (the XID is written to WAL).
|
|
123
|
+
* `read_only` is a restriction on writes to relations, so none of these is
|
|
124
|
+
* covered by it, and none of them is recorded by the audit chain unless the
|
|
125
|
+
* classifier records it here.
|
|
126
|
+
*/
|
|
127
|
+
exports.NON_TRANSACTIONAL_SIDE_EFFECTS = new Set([
|
|
128
|
+
'notified',
|
|
129
|
+
'advisory_lock',
|
|
130
|
+
'xid_allocated',
|
|
131
|
+
'sequence',
|
|
132
|
+
'session_mutation',
|
|
133
|
+
'remote_io',
|
|
134
|
+
'unknown_effect',
|
|
135
|
+
]);
|
|
136
|
+
/**
|
|
137
|
+
* The verdict records a classification must carry for every function it
|
|
138
|
+
* references before that classification can be called a provable read.
|
|
139
|
+
*
|
|
140
|
+
* `IMMUTABLE` and resolved. Not `STABLE`: a STABLE function's result depends on
|
|
141
|
+
* the snapshot and on the clock, and more importantly PostgreSQL makes no
|
|
142
|
+
* promise about it beyond that, whereas IMMUTABLE is a promise the server
|
|
143
|
+
* relies on for constant folding and index use. `VOLATILE`, `SECURITY
|
|
144
|
+
* DEFINER` and unknown all fail, and so does a reference the catalogue could
|
|
145
|
+
* not be asked about.
|
|
146
|
+
*/
|
|
147
|
+
function areAllFunctionsProvablyImmutable(records) {
|
|
148
|
+
if (!Array.isArray(records)) {
|
|
149
|
+
// An absent record list means "nothing is known about the functions this
|
|
150
|
+
// statement calls", which is not the same as "it calls none". Refuse.
|
|
151
|
+
return false;
|
|
152
|
+
}
|
|
153
|
+
const list = records;
|
|
154
|
+
return list.every((record) => record.effect === 'immutable' && record.resolved === true);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* True when the statement performs a side effect that a rollback does not undo.
|
|
158
|
+
*
|
|
159
|
+
* Consulted by `isProvableRead()` (any such effect makes the statement not a
|
|
160
|
+
* read) and exported so callers that need to explain WHY a statement was
|
|
161
|
+
* escalated do not have to re-derive the rule.
|
|
162
|
+
*/
|
|
163
|
+
function hasNonTransactionalSideEffect(c) {
|
|
164
|
+
const effects = c.side_effects;
|
|
165
|
+
if (Array.isArray(effects)) {
|
|
166
|
+
for (const kind of effects) {
|
|
167
|
+
if (exports.NON_TRANSACTIONAL_SIDE_EFFECTS.has(kind))
|
|
168
|
+
return true;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
const records = c.function_effects;
|
|
172
|
+
if (Array.isArray(records)) {
|
|
173
|
+
for (const record of records) {
|
|
174
|
+
for (const kind of record.side_effects ?? []) {
|
|
175
|
+
if (exports.NON_TRANSACTIONAL_SIDE_EFFECTS.has(kind))
|
|
176
|
+
return true;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return false;
|
|
181
|
+
}
|
|
182
|
+
/** Read-escape violations, and the plain-English reason each one is refused. */
|
|
183
|
+
const STRUCTURAL_ESCAPES = new Map([
|
|
184
|
+
['selects_into', 'it is a SELECT … INTO, which creates and populates a table'],
|
|
185
|
+
['row_locking', 'it takes row locks (FOR UPDATE / FOR SHARE), which block other transactions'],
|
|
186
|
+
['writable_cte', 'it contains a data-modifying CTE, which writes even inside a SELECT'],
|
|
187
|
+
['denied_function', 'it calls a function that is refused by name'],
|
|
188
|
+
['executable_block', 'it contains an executable block'],
|
|
189
|
+
['multiple_statements', 'it contains more than one statement, and all of them would run'],
|
|
190
|
+
['parse_error', 'PostgreSQL could not parse it'],
|
|
191
|
+
['parser_unavailable', 'the PostgreSQL parser was not loaded, so it could not be verified'],
|
|
192
|
+
]);
|
|
193
|
+
/**
|
|
194
|
+
* Side effects that are real events, not a verdict about one.
|
|
195
|
+
*
|
|
196
|
+
* `unknown_effect` is deliberately absent: it is attached to every reference
|
|
197
|
+
* that `pg_proc` does not prove `IMMUTABLE`, and reporting it as "a side effect
|
|
198
|
+
* outside the transaction" tells the caller the statement notifies or takes an
|
|
199
|
+
* advisory lock when the truth is only "we cannot prove it is harmless". That
|
|
200
|
+
* is what this function exists to prevent.
|
|
201
|
+
*/
|
|
202
|
+
const CONCRETE_EFFECT_LABELS = {
|
|
203
|
+
notified: 'it emits a NOTIFY, which is delivered outside the transaction',
|
|
204
|
+
advisory_lock: 'it takes an advisory lock, which survives a rollback',
|
|
205
|
+
xid_allocated: 'it allocates an XID, which is written to WAL',
|
|
206
|
+
sequence: 'it advances a sequence, which persists past a rollback',
|
|
207
|
+
session_mutation: 'it mutates the session, which a rollback does not undo',
|
|
208
|
+
remote_io: 'it performs remote I/O',
|
|
209
|
+
};
|
|
210
|
+
/** How each `pg_proc` verdict is described to the caller. */
|
|
211
|
+
const VERDICT_PHRASES = {
|
|
212
|
+
stable: 'STABLE — its result depends on the snapshot or the clock',
|
|
213
|
+
volatile: 'VOLATILE — it may do anything the calling role may do',
|
|
214
|
+
security_definer: 'SECURITY DEFINER — it runs with the owner’s rights',
|
|
215
|
+
unknown: 'no usable verdict',
|
|
216
|
+
};
|
|
217
|
+
/** `fn(), fn2()` …, capped so one statement cannot produce an unreadable line. */
|
|
218
|
+
function listReferences(names, cap = 3) {
|
|
219
|
+
const unique = [...new Set(names)].map((name) => `${name}()`);
|
|
220
|
+
if (unique.length <= cap)
|
|
221
|
+
return unique.join(', ');
|
|
222
|
+
return `${unique.slice(0, cap).join(', ')} and ${String(unique.length - cap)} more`;
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* The clause that says WHY {@link isProvableRead} returned false, in words a
|
|
226
|
+
* caller can act on.
|
|
227
|
+
*
|
|
228
|
+
* The permission layer refuses first and explains second, and the explanation
|
|
229
|
+
* used to assert that a refused statement "calls a function with a side effect
|
|
230
|
+
* outside the transaction (a notification, an advisory lock, …)" whenever any
|
|
231
|
+
* function was involved. For `SELECT extract(year FROM started_at)` that is
|
|
232
|
+
* simply false: `extract` does not notify, lock or advance anything, it is
|
|
233
|
+
* merely not proved `IMMUTABLE`. An automated caller reading a wrong reason
|
|
234
|
+
* adapts to the wrong thing, so this names the actual `pg_proc` verdict, the
|
|
235
|
+
* actual side-effect family, or the structural reason — whichever is the real
|
|
236
|
+
* cause, in that order of specificity.
|
|
237
|
+
*
|
|
238
|
+
* @returns A lowercase clause with no trailing full stop, suitable for
|
|
239
|
+
* splicing into `Read-only mode: <clause>.`
|
|
240
|
+
*/
|
|
241
|
+
function explainWhyNotAProvableRead(c) {
|
|
242
|
+
const violations = c.read_violations ?? [];
|
|
243
|
+
const records = c.function_effects ?? [];
|
|
244
|
+
// A SELECT that was escalated to `write` still carries the reason in
|
|
245
|
+
// `read_violations`; its `type` is the escalation, not the cause, and naming
|
|
246
|
+
// it first produced "it is a 'write' statement (SELECT)" — a contradiction
|
|
247
|
+
// that tells an automated caller nothing. Structural escapes come first
|
|
248
|
+
// because they are unambiguous, then the concrete side-effect families, then
|
|
249
|
+
// the `pg_proc` verdicts behind a `side_effect` violation.
|
|
250
|
+
if (violations.length > 0) {
|
|
251
|
+
// The concrete effect is the better answer when there is one: `pg_notify`
|
|
252
|
+
// is on the deny-list BECAUSE it notifies, and "refused by name" tells a
|
|
253
|
+
// caller nothing it can act on. `denied_function` is dropped in that case;
|
|
254
|
+
// the other escapes are structural and stand on their own.
|
|
255
|
+
const concrete = concreteEffects(c, records);
|
|
256
|
+
const structural = [
|
|
257
|
+
...new Set(violations
|
|
258
|
+
.filter((violation) => violation !== 'denied_function' || concrete.length === 0)
|
|
259
|
+
.map((violation) => STRUCTURAL_ESCAPES.get(violation))
|
|
260
|
+
.filter(isString)),
|
|
261
|
+
];
|
|
262
|
+
const parts = [...concrete, ...structural];
|
|
263
|
+
if (parts.length > 0)
|
|
264
|
+
return parts.join('; and ');
|
|
265
|
+
const unresolved = records.filter((record) => !record.resolved);
|
|
266
|
+
if (unresolved.length > 0) {
|
|
267
|
+
return `pg_proc has no verdict for ${listReferences(unresolved.map((r) => r.name))}, so the call cannot be proved harmless`;
|
|
268
|
+
}
|
|
269
|
+
const unproven = records.filter((record) => record.resolved && record.effect !== 'immutable');
|
|
270
|
+
if (unproven.length > 0)
|
|
271
|
+
return verdictClause(unproven);
|
|
272
|
+
return 'it is not provably free of side effects';
|
|
273
|
+
}
|
|
274
|
+
// No violations, so the statement was never a read: INSERT, UPDATE, DDL …
|
|
275
|
+
if (c.type !== 'read') {
|
|
276
|
+
const what = c.verb || c.kind || c.type;
|
|
277
|
+
return `it is a '${c.type}' statement (${what}), not a read`;
|
|
278
|
+
}
|
|
279
|
+
const concrete = concreteEffects(c, records);
|
|
280
|
+
if (concrete.length > 0)
|
|
281
|
+
return concrete.join('; and ');
|
|
282
|
+
if (records.length > 0)
|
|
283
|
+
return verdictClause(records);
|
|
284
|
+
return 'it is not provably free of side effects';
|
|
285
|
+
}
|
|
286
|
+
function isString(value) {
|
|
287
|
+
return value !== undefined;
|
|
288
|
+
}
|
|
289
|
+
/** The concrete side-effect families present, as distinct clauses. */
|
|
290
|
+
function concreteEffects(c, records) {
|
|
291
|
+
const clauses = new Set();
|
|
292
|
+
for (const kind of c.side_effects ?? []) {
|
|
293
|
+
const label = CONCRETE_EFFECT_LABELS[kind];
|
|
294
|
+
if (label)
|
|
295
|
+
clauses.add(label);
|
|
296
|
+
}
|
|
297
|
+
for (const record of records) {
|
|
298
|
+
for (const kind of record.side_effects ?? []) {
|
|
299
|
+
const label = CONCRETE_EFFECT_LABELS[kind];
|
|
300
|
+
if (label)
|
|
301
|
+
clauses.add(label);
|
|
302
|
+
}
|
|
303
|
+
}
|
|
304
|
+
return [...clauses];
|
|
305
|
+
}
|
|
306
|
+
/** `it calls a(), which pg_proc reports as STABLE — …`, grouped by verdict. */
|
|
307
|
+
function verdictClause(records) {
|
|
308
|
+
const byEffect = new Map();
|
|
309
|
+
for (const record of records) {
|
|
310
|
+
if (!record.resolved || record.effect === 'immutable')
|
|
311
|
+
continue;
|
|
312
|
+
const names = byEffect.get(record.effect) ?? [];
|
|
313
|
+
names.push(record.name);
|
|
314
|
+
byEffect.set(record.effect, names);
|
|
315
|
+
}
|
|
316
|
+
const phrases = [];
|
|
317
|
+
for (const [effect, names] of byEffect) {
|
|
318
|
+
const phrase = VERDICT_PHRASES[effect] ?? 'no usable verdict';
|
|
319
|
+
phrases.push(`it calls ${listReferences(names)}, which pg_proc reports as ${phrase}`);
|
|
320
|
+
}
|
|
321
|
+
if (phrases.length > 0)
|
|
322
|
+
return phrases.join('; and ');
|
|
323
|
+
return 'it calls a function pg_proc does not prove IMMUTABLE';
|
|
324
|
+
}
|
|
325
|
+
/**
|
|
326
|
+
* True only for a statement that is provably side-effect free: one statement,
|
|
327
|
+
* parsed by PostgreSQL's own grammar, classified as a read, with no read
|
|
328
|
+
* violations, no recorded side effect, and every function it calls proved
|
|
329
|
+
* `IMMUTABLE` and not `SECURITY DEFINER` by `pg_proc`.
|
|
330
|
+
*
|
|
331
|
+
* This is the single definition of "a read" used by the permission layer. A
|
|
332
|
+
* classification that does not satisfy every clause is treated as a write.
|
|
333
|
+
*
|
|
334
|
+
* The function clause is what closes the transitive hole: an
|
|
335
|
+
* operator-written `SECURITY DEFINER` wrapper around `pg_read_file`, or any
|
|
336
|
+
* VOLATILE function that INSERTs, parses as a `SELECT` and is on no deny-list,
|
|
337
|
+
* but `pg_proc` reports it as unsafe — and a function reference with no
|
|
338
|
+
* catalogue verdict at all is refused too, which is why a caller that cannot
|
|
339
|
+
* reach a database must expect every statement that calls a function to be
|
|
340
|
+
* escalated here.
|
|
341
|
+
*/
|
|
342
|
+
function isProvableRead(c) {
|
|
343
|
+
if (c.type !== 'read')
|
|
344
|
+
return false;
|
|
345
|
+
if (!c.parse_ok)
|
|
346
|
+
return false;
|
|
347
|
+
if (c.statement_count !== 1)
|
|
348
|
+
return false;
|
|
349
|
+
if (c.read_violations.length > 0)
|
|
350
|
+
return false;
|
|
351
|
+
if (hasNonTransactionalSideEffect(c))
|
|
352
|
+
return false;
|
|
353
|
+
return areAllFunctionsProvablyImmutable(c.function_effects);
|
|
354
|
+
}
|
|
355
|
+
/**
|
|
356
|
+
* Violations that mean "this parsed as a read but it is not one".
|
|
357
|
+
*
|
|
358
|
+
* A statement carrying any of them is gated on `ddl` regardless of the verb it
|
|
359
|
+
* was parsed as: `SELECT * INTO t FROM u` and `SELECT * FROM u FOR UPDATE`
|
|
360
|
+
* change state exactly as a `CREATE TABLE` or a `GRANT` does,
|
|
361
|
+
* `SELECT pg_terminate_backend(1)` is closer to a server-control command than
|
|
362
|
+
* to a read, and `SELECT some_volatile_fn()` is a call the classifier could not
|
|
363
|
+
* prove effect-free.
|
|
364
|
+
*/
|
|
365
|
+
const READ_ESCAPE_VIOLATIONS = new Set([
|
|
366
|
+
'selects_into',
|
|
367
|
+
'row_locking',
|
|
368
|
+
'writable_cte',
|
|
369
|
+
'denied_function',
|
|
370
|
+
'side_effect',
|
|
371
|
+
'executable_block',
|
|
372
|
+
]);
|
|
373
|
+
/**
|
|
374
|
+
* Map a statement classification to the capability required to run it.
|
|
375
|
+
*
|
|
376
|
+
* `query_read` is granted ONLY for a provable read. Because every role holds
|
|
377
|
+
* `query_read`, this predicate is the entire role-layer defence for `SELECT`,
|
|
378
|
+
* so it must never widen: anything the classifier could not prove is a read is
|
|
379
|
+
* escalated to `ddl` here rather than trusted.
|
|
380
|
+
*/
|
|
381
|
+
function capabilityForClassification(c) {
|
|
382
|
+
if (c.read_violations.some((v) => READ_ESCAPE_VIOLATIONS.has(v))) {
|
|
383
|
+
return 'ddl';
|
|
384
|
+
}
|
|
385
|
+
switch (c.type) {
|
|
386
|
+
case 'read':
|
|
387
|
+
return isProvableRead(c) ? 'query_read' : 'ddl';
|
|
388
|
+
case 'write':
|
|
389
|
+
return 'query_write';
|
|
390
|
+
case 'ddl':
|
|
391
|
+
return 'ddl';
|
|
392
|
+
case 'utility':
|
|
393
|
+
return 'ddl'; // VACUUM, ANALYZE, SET, etc. → treat as DDL-level
|
|
394
|
+
case 'unknown':
|
|
395
|
+
return 'ddl'; // safe default: require DDL capability
|
|
396
|
+
default:
|
|
397
|
+
return null;
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
/** Map a message type to the capability required. */
|
|
401
|
+
function capabilityForMessageType(type) {
|
|
402
|
+
switch (type) {
|
|
403
|
+
case 'ping':
|
|
404
|
+
return null; // no capability needed
|
|
405
|
+
case 'introspect':
|
|
406
|
+
return 'introspect';
|
|
407
|
+
case 'query':
|
|
408
|
+
case 'stream_query':
|
|
409
|
+
return null; // depends on SQL classification, not message type
|
|
410
|
+
case 'migration_run':
|
|
411
|
+
return 'migration_run';
|
|
412
|
+
case 'cancel':
|
|
413
|
+
return 'cancel';
|
|
414
|
+
default:
|
|
415
|
+
return null;
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
/**
|
|
419
|
+
* Map an inbound `event` kind to the capability required to use it.
|
|
420
|
+
*
|
|
421
|
+
* `event` messages bypass the query pipeline, so the capability has to be
|
|
422
|
+
* named here rather than inferred from a SQL statement.
|
|
423
|
+
*/
|
|
424
|
+
function capabilityForEventKind(kind) {
|
|
425
|
+
switch (kind) {
|
|
426
|
+
case 'plan_register':
|
|
427
|
+
return 'migration_run';
|
|
428
|
+
case 'approval_response':
|
|
429
|
+
return 'approve_ddl';
|
|
430
|
+
default:
|
|
431
|
+
return null;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
/**
|
|
435
|
+
* Shape of the PostgreSQL login role this connector should be given.
|
|
436
|
+
*
|
|
437
|
+
* The agent's own controls are implemented in TypeScript and can have bugs, so
|
|
438
|
+
* the database role is where the boundary that cannot be bypassed from the wire
|
|
439
|
+
* is set. Two things the agent does about function calls are worth naming
|
|
440
|
+
* precisely, because they are frequently described as one control:
|
|
441
|
+
*
|
|
442
|
+
* - `pg_proc` function-effect analysis (execution/function-effects.ts) is the
|
|
443
|
+
* primary control: a statement is only a read when every function it calls
|
|
444
|
+
* is `IMMUTABLE` and not `SECURITY DEFINER`. It does not depend on the
|
|
445
|
+
* function's name, so it covers operator-written helpers.
|
|
446
|
+
* - The `DENIED_READ_FUNCTIONS` list in sql-parser.ts is defence in depth. It
|
|
447
|
+
* is incomplete by construction and is not a boundary.
|
|
448
|
+
*
|
|
449
|
+
* The revokes below are what a miss cannot get past: `read_only` on the
|
|
450
|
+
* connection constrains WRITES only, so a function that reads a server file,
|
|
451
|
+
* notifies a channel, or reaches another host is not covered by it, and only
|
|
452
|
+
* the absence of EXECUTE is.
|
|
453
|
+
*
|
|
454
|
+
* `sw-agent doctor` reports these attributes for the connected role; the
|
|
455
|
+
* statements below are what an operator should run once per deployment. Where a
|
|
456
|
+
* role name is shown as a placeholder, substitute the real one.
|
|
457
|
+
*/
|
|
458
|
+
exports.RECOMMENDED_PG_ROLE = {
|
|
459
|
+
role_name: 'sw_agent',
|
|
460
|
+
/**
|
|
461
|
+
* Required `pg_roles` attributes. A role that satisfies all of these cannot
|
|
462
|
+
* escalate to superuser, cannot create databases or roles, cannot replicate,
|
|
463
|
+
* and cannot bypass row-level security.
|
|
464
|
+
*/
|
|
465
|
+
required_attributes: [
|
|
466
|
+
'rolsuper = false',
|
|
467
|
+
'rolcreatedb = false',
|
|
468
|
+
'rolcreaterole = false',
|
|
469
|
+
'rolreplication = false',
|
|
470
|
+
'rolbypassrls = false',
|
|
471
|
+
],
|
|
472
|
+
/**
|
|
473
|
+
* Predefined roles that must NOT be granted. Several of them exist only in
|
|
474
|
+
* newer PostgreSQL releases; grant the ones the server actually has.
|
|
475
|
+
*/
|
|
476
|
+
forbidden_memberships: [
|
|
477
|
+
'pg_read_server_files', // read any file the server can read
|
|
478
|
+
'pg_write_server_files',
|
|
479
|
+
'pg_execute_server_program', // COPY … TO PROGRAM
|
|
480
|
+
'pg_read_all_settings',
|
|
481
|
+
'pg_read_all_stats',
|
|
482
|
+
'pg_stat_scan_tables',
|
|
483
|
+
'pg_monitor',
|
|
484
|
+
'pg_read_all_data',
|
|
485
|
+
'pg_write_all_data',
|
|
486
|
+
],
|
|
487
|
+
/** Bootstrap. Idempotent; safe to re-run. */
|
|
488
|
+
bootstrap: [
|
|
489
|
+
"DO $$ BEGIN IF NOT EXISTS (SELECT 1 FROM pg_roles WHERE rolname = 'sw_agent') THEN CREATE ROLE sw_agent LOGIN; END IF; END $$;",
|
|
490
|
+
'ALTER ROLE sw_agent NOSUPERUSER NOCREATEDB NOCREATEROLE NOREPLICATION NOBYPASSRLS;',
|
|
491
|
+
],
|
|
492
|
+
/**
|
|
493
|
+
* REVOKEs that matter. PostgreSQL grants a great deal to PUBLIC by default —
|
|
494
|
+
* notably `CREATE` on schema `public` (pre-14) and `EXECUTE` on every
|
|
495
|
+
* function — so the default state must be revoked explicitly rather than
|
|
496
|
+
* assumed absent.
|
|
497
|
+
*
|
|
498
|
+
* WHY THE DEFAULT-PRIVILEGES ROW IS NOT OPTIONAL: every `REVOKE … ON ALL
|
|
499
|
+
* FUNCTIONS` above is a ONE-SHOT SNAPSHOT of the functions that exist at the
|
|
500
|
+
* moment it runs. A function created afterwards is granted to PUBLIC again
|
|
501
|
+
* by the same default privileges that gave the current one away, so the
|
|
502
|
+
* revocation silently decays to nothing on a database that receives DDL. The
|
|
503
|
+
* `ALTER DEFAULT PRIVILEGES` row is what stops the decay; run it as the role
|
|
504
|
+
* that owns the objects (or as a superuser, which covers every future object),
|
|
505
|
+
* and re-run it after any role that creates functions is added.
|
|
506
|
+
*/
|
|
507
|
+
revokes: [
|
|
508
|
+
// The connector talks to exactly one database; drop everything else.
|
|
509
|
+
'REVOKE ALL ON DATABASE <database> FROM PUBLIC;',
|
|
510
|
+
'REVOKE ALL ON SCHEMA public FROM PUBLIC;',
|
|
511
|
+
'REVOKE ALL ON SCHEMA public FROM sw_agent;',
|
|
512
|
+
'REVOKE CREATE ON SCHEMA public FROM PUBLIC;',
|
|
513
|
+
// Function execution is the attack surface: any VOLATILE or SECURITY
|
|
514
|
+
// DEFINER function reachable from a SELECT is arbitrary code execution.
|
|
515
|
+
'REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA public FROM PUBLIC;',
|
|
516
|
+
'REVOKE EXECUTE ON ALL FUNCTIONS IN SCHEMA public FROM sw_agent;',
|
|
517
|
+
'REVOKE EXECUTE ON ALL PROCEDURES IN SCHEMA public FROM PUBLIC;',
|
|
518
|
+
'REVOKE EXECUTE ON ALL PROCEDURES IN SCHEMA public FROM sw_agent;',
|
|
519
|
+
// Stops the two REVOKEs above decaying: functions created LATER are not
|
|
520
|
+
// granted to PUBLIC in the first place.
|
|
521
|
+
'ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE EXECUTE ON FUNCTIONS FROM PUBLIC;',
|
|
522
|
+
'ALTER DEFAULT PRIVILEGES IN SCHEMA public REVOKE EXECUTE ON PROCEDURES FROM PUBLIC;',
|
|
523
|
+
// No sequence access: nextval/setval mutate shared state.
|
|
524
|
+
'REVOKE ALL ON ALL SEQUENCES IN SCHEMA public FROM sw_agent;',
|
|
525
|
+
// No large objects, no foreign tables, no type creation.
|
|
526
|
+
'REVOKE ALL ON ALL TABLES IN SCHEMA public FROM sw_agent;',
|
|
527
|
+
'REVOKE ALL ON ALL SEQUENCES IN SCHEMA public FROM PUBLIC;',
|
|
528
|
+
],
|
|
529
|
+
/** The only privileges the read-only posture needs. */
|
|
530
|
+
grants: [
|
|
531
|
+
'GRANT CONNECT ON DATABASE <database> TO sw_agent;',
|
|
532
|
+
'GRANT USAGE ON SCHEMA public TO sw_agent;',
|
|
533
|
+
'GRANT SELECT ON ALL TABLES IN SCHEMA public TO sw_agent;',
|
|
534
|
+
// TEMP would let any statement create scratch tables in pg_temp.
|
|
535
|
+
'REVOKE TEMP ON DATABASE <database> FROM sw_agent;',
|
|
536
|
+
],
|
|
537
|
+
/**
|
|
538
|
+
* Session hardening, applied to every connection the role opens. The agent
|
|
539
|
+
* additionally sets `default_transaction_read_only` per connection for
|
|
540
|
+
* `read_only` entries; pinning it on the role means the guarantee also holds
|
|
541
|
+
* for an operator's own psql session and for any path the agent misses.
|
|
542
|
+
*/
|
|
543
|
+
role_settings: [
|
|
544
|
+
'ALTER ROLE sw_agent SET search_path = pg_catalog, public;',
|
|
545
|
+
'ALTER ROLE sw_agent SET default_transaction_read_only = on;',
|
|
546
|
+
'ALTER ROLE sw_agent SET statement_timeout = 30s;',
|
|
547
|
+
'ALTER ROLE sw_agent SET idle_in_transaction_session_timeout = 60s;',
|
|
548
|
+
'ALTER ROLE sw_agent SET log_statement = none;',
|
|
549
|
+
],
|
|
550
|
+
/**
|
|
551
|
+
* What `doctor` should check on the connected role. Each row is a query and
|
|
552
|
+
* the value that means "acceptable"; anything else is reported to the
|
|
553
|
+
* operator as a finding.
|
|
554
|
+
*/
|
|
555
|
+
verification_queries: [
|
|
556
|
+
{
|
|
557
|
+
sql: `SELECT rolsuper, rolcreatedb, rolcreaterole, rolreplication, rolbypassrls
|
|
558
|
+
FROM pg_roles WHERE rolname = current_user`,
|
|
559
|
+
expect: 'six columns, every boolean false',
|
|
560
|
+
},
|
|
561
|
+
{
|
|
562
|
+
sql: `SELECT has_database_privilege(current_user, current_database(), 'TEMP') AS can_create_temp`,
|
|
563
|
+
expect: 'false',
|
|
564
|
+
},
|
|
565
|
+
{
|
|
566
|
+
sql: `SELECT has_schema_privilege(current_user, 'public', 'CREATE') AS can_create_in_public`,
|
|
567
|
+
expect: 'false',
|
|
568
|
+
},
|
|
569
|
+
{
|
|
570
|
+
sql: `SELECT count(*) > 0 AS has_table_access
|
|
571
|
+
FROM pg_roles r
|
|
572
|
+
JOIN pg_auth_members m ON m.roleid = r.oid
|
|
573
|
+
WHERE r.rolname IN ('pg_read_server_files', 'pg_write_server_files',
|
|
574
|
+
'pg_execute_server_program', 'pg_monitor',
|
|
575
|
+
'pg_read_all_data', 'pg_write_all_data')`,
|
|
576
|
+
expect: 'false',
|
|
577
|
+
},
|
|
578
|
+
{
|
|
579
|
+
sql: 'SHOW default_transaction_read_only',
|
|
580
|
+
expect: 'on',
|
|
581
|
+
},
|
|
582
|
+
],
|
|
583
|
+
};
|
|
584
|
+
//# sourceMappingURL=role-policy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"role-policy.js","sourceRoot":"","sources":["../../../src/permissions/role-policy.ts"],"names":[],"mappings":";;;AA+EA,wDAEC;AAgCD,sCAEC;AAGD,sDAKC;AASD,4DAKC;AAGD,sDAKC;AAqDD,sEAgBC;AAgED,gEAiDC;AA4DD,wCAOC;AA6BD,kEAkBC;AAGD,4DAgBC;AAQD,wDASC;AApbD;;;;;;;GAOG;AACU,QAAA,iBAAiB,GAAmC;IAC/D,KAAK,EAAE;QACL,YAAY;QACZ,iBAAiB;QACjB,YAAY;QACZ,aAAa;QACb,KAAK;QACL,eAAe;QACf,aAAa;QACb,QAAQ;QACR,cAAc;QACd,aAAa;QACb,cAAc;KACf;IACD,SAAS,EAAE;QACT,YAAY;QACZ,iBAAiB;QACjB,YAAY;QACZ,aAAa;QACb,KAAK;QACL,eAAe;QACf,aAAa;QACb,QAAQ;QACR,cAAc;KACf;IACD,WAAW,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,cAAc,CAAC;IACzD,MAAM,EAAE,CAAC,YAAY,EAAE,YAAY,EAAE,cAAc,CAAC;CACrD,CAAC;AAEF,mEAAmE;AACnE,SAAgB,sBAAsB,CAAC,IAAU;IAC/C,OAAO,aAAa,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC;AACvE,CAAC;AAED;;;;;;;GAOG;AACU,QAAA,mBAAmB,GAAyB;IACvD,MAAM,EAAE,CAAC;IACT,WAAW,EAAE,CAAC;IACd,SAAS,EAAE,CAAC;IACZ,KAAK,EAAE,CAAC;CACT,CAAC;AAEF;;;;;;GAMG;AACU,QAAA,qBAAqB,GAAoC;IACpE,SAAS,EAAE,CAAC;IACZ,YAAY,EAAE,CAAC;IACf,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;CACR,CAAC;AAEF,iDAAiD;AACjD,SAAgB,aAAa,CAAC,IAAU,EAAE,GAAmB;IAC3D,OAAO,yBAAiB,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC;AACzD,CAAC;AAED,+DAA+D;AAC/D,SAAgB,qBAAqB,CAAC,IAAU,EAAE,OAAa;IAC7D,MAAM,CAAC,GAAG,2BAAmB,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,2BAAmB,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACjE,OAAO,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,wBAAwB,CAAC,IAAU,EAAE,OAAa;IAChE,MAAM,CAAC,GAAG,2BAAmB,CAAC,IAAI,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,2BAAmB,CAAC,OAAO,CAAC,CAAC;IACvC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,gEAAgE;AAChE,SAAgB,qBAAqB,CAAC,KAAsB,EAAE,OAAwB;IACpF,MAAM,CAAC,GAAG,6BAAqB,CAAC,KAAK,CAAC,CAAC;IACvC,MAAM,CAAC,GAAG,6BAAqB,CAAC,OAAO,CAAC,CAAC;IACzC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IACjE,OAAO,CAAC,IAAI,CAAC,CAAC;AAChB,CAAC;AAED;;;;;;;;;;GAUG;AACU,QAAA,8BAA8B,GAAgC,IAAI,GAAG,CAChF;IACE,UAAU;IACV,eAAe;IACf,eAAe;IACf,UAAU;IACV,kBAAkB;IAClB,WAAW;IACX,gBAAgB;CACjB,CACF,CAAC;AAEF;;;;;;;;;;GAUG;AACH,SAAS,gCAAgC,CAAC,OAAgB;IACxD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,yEAAyE;QACzE,sEAAsE;QACtE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,IAAI,GAAG,OAAiC,CAAC;IAC/C,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;AAC3F,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,6BAA6B,CAAC,CAA0B;IACtE,MAAM,OAAO,GAAG,CAAC,CAAC,YAAY,CAAC;IAC/B,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,OAAO,EAAE,CAAC;YAC3B,IAAI,sCAA8B,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,OAAO,IAAI,CAAC;QAC5D,CAAC;IACH,CAAC;IACD,MAAM,OAAO,GAAG,CAAC,CAAC,gBAAgB,CAAC;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;gBAC7C,IAAI,sCAA8B,CAAC,GAAG,CAAC,IAAI,CAAC;oBAAE,OAAO,IAAI,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,gFAAgF;AAChF,MAAM,kBAAkB,GAAgC,IAAI,GAAG,CAAiB;IAC9E,CAAC,cAAc,EAAE,4DAA4D,CAAC;IAC9E,CAAC,aAAa,EAAE,6EAA6E,CAAC;IAC9F,CAAC,cAAc,EAAE,qEAAqE,CAAC;IACvF,CAAC,iBAAiB,EAAE,6CAA6C,CAAC;IAClE,CAAC,kBAAkB,EAAE,iCAAiC,CAAC;IACvD,CAAC,qBAAqB,EAAE,gEAAgE,CAAC;IACzF,CAAC,aAAa,EAAE,+BAA+B,CAAC;IAChD,CAAC,oBAAoB,EAAE,mEAAmE,CAAC;CAC5F,CAAC,CAAC;AAEH;;;;;;;;GAQG;AACH,MAAM,sBAAsB,GAAsD;IAChF,QAAQ,EAAE,+DAA+D;IACzE,aAAa,EAAE,sDAAsD;IACrE,aAAa,EAAE,8CAA8C;IAC7D,QAAQ,EAAE,wDAAwD;IAClE,gBAAgB,EAAE,wDAAwD;IAC1E,SAAS,EAAE,wBAAwB;CACpC,CAAC;AAEF,6DAA6D;AAC7D,MAAM,eAAe,GAAsE;IACzF,MAAM,EAAE,0DAA0D;IAClE,QAAQ,EAAE,uDAAuD;IACjE,gBAAgB,EAAE,oDAAoD;IACtE,OAAO,EAAE,mBAAmB;CAC7B,CAAC;AAEF,kFAAkF;AAClF,SAAS,cAAc,CAAC,KAAwB,EAAE,GAAG,GAAG,CAAC;IACvD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC;IAC9D,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG;QAAE,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACnD,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC;AACtF,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,0BAA0B,CAAC,CAA0B;IACnE,MAAM,UAAU,GAAG,CAAC,CAAC,eAAe,IAAI,EAAE,CAAC;IAC3C,MAAM,OAAO,GAAG,CAAC,CAAC,gBAAgB,IAAI,EAAE,CAAC;IAEzC,qEAAqE;IACrE,6EAA6E;IAC7E,2EAA2E;IAC3E,wEAAwE;IACxE,6EAA6E;IAC7E,2DAA2D;IAC3D,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,0EAA0E;QAC1E,yEAAyE;QACzE,2EAA2E;QAC3E,2DAA2D;QAC3D,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG;YACjB,GAAG,IAAI,GAAG,CACR,UAAU;iBACP,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,KAAK,iBAAiB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;iBAC/E,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;iBACrD,MAAM,CAAC,QAAQ,CAAC,CACpB;SACF,CAAC;QACF,MAAM,KAAK,GAAG,CAAC,GAAG,QAAQ,EAAE,GAAG,UAAU,CAAC,CAAC;QAC3C,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAElD,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,OAAO,8BAA8B,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,yCAAyC,CAAC;QAC9H,CAAC;QAED,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC;QAC9F,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;QAExD,OAAO,yCAAyC,CAAC;IACnD,CAAC;IAED,0EAA0E;IAC1E,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACtB,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC;QACxC,OAAO,YAAY,CAAC,CAAC,IAAI,gBAAgB,IAAI,eAAe,CAAC;IAC/D,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;IAC7C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,aAAa,CAAC,OAAO,CAAC,CAAC;IAEtD,OAAO,yCAAyC,CAAC;AACnD,CAAC;AAED,SAAS,QAAQ,CAAC,KAAyB;IACzC,OAAO,KAAK,KAAK,SAAS,CAAC;AAC7B,CAAC;AAED,sEAAsE;AACtE,SAAS,eAAe,CACtB,CAA0B,EAC1B,OAAwC;IAExC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,IAAI,IAAI,CAAC,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,KAAK;YAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IACD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,sBAAsB,CAAC,IAAI,CAAC,CAAC;YAC3C,IAAI,KAAK;gBAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,OAAO,CAAC,CAAC;AACtB,CAAC;AAED,+EAA+E;AAC/E,SAAS,aAAa,CAAC,OAAwC;IAC7D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA4C,CAAC;IACrE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,WAAW;YAAE,SAAS;QAChE,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAChD,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACxB,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IACD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,QAAQ,EAAE,CAAC;QACvC,MAAM,MAAM,GAAG,eAAe,CAAC,MAAM,CAAC,IAAI,mBAAmB,CAAC;QAC9D,OAAO,CAAC,IAAI,CAAC,YAAY,cAAc,CAAC,KAAK,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtD,OAAO,sDAAsD,CAAC;AAChE,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,SAAgB,cAAc,CAAC,CAA0B;IACvD,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,KAAK,CAAC;IACpC,IAAI,CAAC,CAAC,CAAC,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC9B,IAAI,CAAC,CAAC,eAAe,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IAC1C,IAAI,CAAC,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,IAAI,6BAA6B,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACnD,OAAO,gCAAgC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;AAC9D,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,sBAAsB,GAAwB,IAAI,GAAG,CAAC;IAC1D,cAAc;IACd,aAAa;IACb,cAAc;IACd,iBAAiB;IACjB,aAAa;IACb,kBAAkB;CACnB,CAAC,CAAC;AAEH;;;;;;;GAOG;AACH,SAAgB,2BAA2B,CAAC,CAA0B;IACpE,IAAI,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACjE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,QAAQ,CAAC,CAAC,IAAI,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;QAClD,KAAK,OAAO;YACV,OAAO,aAAa,CAAC;QACvB,KAAK,KAAK;YACR,OAAO,KAAK,CAAC;QACf,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,CAAC,kDAAkD;QAClE,KAAK,SAAS;YACZ,OAAO,KAAK,CAAC,CAAC,uCAAuC;QACvD;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,qDAAqD;AACrD,SAAgB,wBAAwB,CAAC,IAAY;IACnD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM;YACT,OAAO,IAAI,CAAC,CAAC,uBAAuB;QACtC,KAAK,YAAY;YACf,OAAO,YAAY,CAAC;QACtB,KAAK,OAAO,CAAC;QACb,KAAK,cAAc;YACjB,OAAO,IAAI,CAAC,CAAC,kDAAkD;QACjE,KAAK,eAAe;YAClB,OAAO,eAAe,CAAC;QACzB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;;;GAKG;AACH,SAAgB,sBAAsB,CAAC,IAAY;IACjD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,eAAe;YAClB,OAAO,eAAe,CAAC;QACzB,KAAK,mBAAmB;YACtB,OAAO,aAAa,CAAC;QACvB;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACU,QAAA,mBAAmB,GAAG;IACjC,SAAS,EAAE,UAAU;IAErB;;;;OAIG;IACH,mBAAmB,EAAE;QACnB,kBAAkB;QAClB,qBAAqB;QACrB,uBAAuB;QACvB,wBAAwB;QACxB,sBAAsB;KACvB;IAED;;;OAGG;IACH,qBAAqB,EAAE;QACrB,sBAAsB,EAAE,oCAAoC;QAC5D,uBAAuB;QACvB,2BAA2B,EAAE,oBAAoB;QACjD,sBAAsB;QACtB,mBAAmB;QACnB,qBAAqB;QACrB,YAAY;QACZ,kBAAkB;QAClB,mBAAmB;KACpB;IAED,6CAA6C;IAC7C,SAAS,EAAE;QACT,gIAAgI;QAChI,oFAAoF;KACrF;IAED;;;;;;;;;;;;;;OAcG;IACH,OAAO,EAAE;QACP,qEAAqE;QACrE,gDAAgD;QAChD,0CAA0C;QAC1C,4CAA4C;QAC5C,6CAA6C;QAC7C,sEAAsE;QACtE,wEAAwE;QACxE,+DAA+D;QAC/D,iEAAiE;QACjE,gEAAgE;QAChE,kEAAkE;QAClE,wEAAwE;QACxE,wCAAwC;QACxC,oFAAoF;QACpF,qFAAqF;QACrF,0DAA0D;QAC1D,6DAA6D;QAC7D,yDAAyD;QACzD,0DAA0D;QAC1D,2DAA2D;KAC5D;IAED,uDAAuD;IACvD,MAAM,EAAE;QACN,mDAAmD;QACnD,2CAA2C;QAC3C,0DAA0D;QAC1D,iEAAiE;QACjE,mDAAmD;KACpD;IAED;;;;;OAKG;IACH,aAAa,EAAE;QACb,2DAA2D;QAC3D,6DAA6D;QAC7D,kDAAkD;QAClD,oEAAoE;QACpE,+CAA+C;KAChD;IAED;;;;OAIG;IACH,oBAAoB,EAAE;QACpB;YACE,GAAG,EAAE;uDAC4C;YACjD,MAAM,EAAE,kCAAkC;SAC3C;QACD;YACE,GAAG,EAAE,4FAA4F;YACjG,MAAM,EAAE,OAAO;SAChB;QACD;YACE,GAAG,EAAE,uFAAuF;YAC5F,MAAM,EAAE,OAAO;SAChB;QACD;YACE,GAAG,EAAE;;;;;yEAK8D;YACnE,MAAM,EAAE,OAAO;SAChB;QACD;YACE,GAAG,EAAE,oCAAoC;YACzC,MAAM,EAAE,IAAI;SACb;KACF;CACO,CAAC"}
|