sqlew 5.0.8 → 5.2.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 +56 -0
- package/README.md +19 -10
- package/dist/adapters/auth/auth-factory.d.ts +2 -81
- package/dist/adapters/auth/auth-factory.d.ts.map +1 -1
- package/dist/adapters/auth/auth-factory.js +2 -82
- package/dist/adapters/auth/auth-factory.js.map +1 -1
- package/dist/adapters/auth/base-auth-provider.d.ts +18 -303
- package/dist/adapters/auth/base-auth-provider.d.ts.map +1 -1
- package/dist/adapters/auth/base-auth-provider.js +2 -104
- package/dist/adapters/auth/base-auth-provider.js.map +1 -1
- package/dist/adapters/auth/direct-auth-provider.d.ts +4 -348
- package/dist/adapters/auth/direct-auth-provider.d.ts.map +1 -1
- package/dist/adapters/auth/direct-auth-provider.js +6 -356
- package/dist/adapters/auth/direct-auth-provider.js.map +1 -1
- package/dist/adapters/base-adapter.d.ts +31 -598
- package/dist/adapters/base-adapter.d.ts.map +1 -1
- package/dist/adapters/base-adapter.js +10 -458
- package/dist/adapters/base-adapter.js.map +1 -1
- package/dist/adapters/index.d.ts +1 -11
- package/dist/adapters/index.d.ts.map +1 -1
- package/dist/adapters/index.js +1 -11
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/mysql-adapter.d.ts +15 -541
- package/dist/adapters/mysql-adapter.d.ts.map +1 -1
- package/dist/adapters/mysql-adapter.js +24 -561
- package/dist/adapters/mysql-adapter.js.map +1 -1
- package/dist/adapters/postgresql-adapter.d.ts +15 -203
- package/dist/adapters/postgresql-adapter.d.ts.map +1 -1
- package/dist/adapters/postgresql-adapter.js +24 -223
- package/dist/adapters/postgresql-adapter.js.map +1 -1
- package/dist/adapters/sqlite-adapter.d.ts +4 -28
- package/dist/adapters/sqlite-adapter.d.ts.map +1 -1
- package/dist/adapters/sqlite-adapter.js +4 -32
- package/dist/adapters/sqlite-adapter.js.map +1 -1
- package/dist/adapters/types.d.ts +1 -4
- package/dist/adapters/types.d.ts.map +1 -1
- package/dist/backend/backend-factory.d.ts +3 -3
- package/dist/backend/backend-factory.js +3 -3
- package/dist/backend/local-backend.d.ts.map +1 -1
- package/dist/backend/local-backend.js +0 -5
- package/dist/backend/local-backend.js.map +1 -1
- package/dist/cli/db-export.d.ts.map +1 -1
- package/dist/cli/db-export.js +54 -32
- package/dist/cli/db-export.js.map +1 -1
- package/dist/cli/db-import.d.ts.map +1 -1
- package/dist/cli/db-import.js +32 -31
- package/dist/cli/db-import.js.map +1 -1
- package/dist/cli/hooks/on-exit-plan.d.ts.map +1 -1
- package/dist/cli/hooks/on-exit-plan.js +42 -1
- package/dist/cli/hooks/on-exit-plan.js.map +1 -1
- package/dist/cli/hooks/on-prompt.d.ts.map +1 -1
- package/dist/cli/hooks/on-prompt.js +5 -0
- package/dist/cli/hooks/on-prompt.js.map +1 -1
- package/dist/cli/hooks/plan-processor.d.ts.map +1 -1
- package/dist/cli/hooks/plan-processor.js +16 -2
- package/dist/cli/hooks/plan-processor.js.map +1 -1
- package/dist/cli/hooks/stdin-parser.d.ts +41 -0
- package/dist/cli/hooks/stdin-parser.d.ts.map +1 -1
- package/dist/cli/hooks/stdin-parser.js +140 -4
- package/dist/cli/hooks/stdin-parser.js.map +1 -1
- package/dist/cli/hooks/track-plan.d.ts +13 -0
- package/dist/cli/hooks/track-plan.d.ts.map +1 -1
- package/dist/cli/hooks/track-plan.js +58 -3
- package/dist/cli/hooks/track-plan.js.map +1 -1
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +1 -12
- package/dist/cli.js.map +1 -1
- package/dist/config/cloud-config-loader.d.ts +8 -8
- package/dist/config/cloud-config-loader.d.ts.map +1 -1
- package/dist/config/cloud-config-loader.js +12 -12
- package/dist/config/cloud-config-loader.js.map +1 -1
- package/dist/config/global-config.d.ts +24 -46
- package/dist/config/global-config.d.ts.map +1 -1
- package/dist/config/global-config.js +174 -56
- package/dist/config/global-config.js.map +1 -1
- package/dist/config/loader.d.ts +1 -18
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +1 -89
- package/dist/config/loader.js.map +1 -1
- package/dist/config/types.d.ts +2 -64
- package/dist/config/types.d.ts.map +1 -1
- package/dist/config/types.js +0 -18
- package/dist/config/types.js.map +1 -1
- package/dist/database/index.d.ts +1 -2
- package/dist/database/index.d.ts.map +1 -1
- package/dist/database/index.js +1 -3
- package/dist/database/index.js.map +1 -1
- package/dist/database/migrations/v4/20251126000001_v4_migrate_data.d.ts.map +1 -1
- package/dist/database/migrations/v4/20251126000001_v4_migrate_data.js +2 -1
- package/dist/database/migrations/v4/20251126000001_v4_migrate_data.js.map +1 -1
- package/dist/database/operations/queries.d.ts +0 -4
- package/dist/database/operations/queries.d.ts.map +1 -1
- package/dist/database/operations/queries.js +0 -8
- package/dist/database/operations/queries.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/init-rules.d.ts.map +1 -1
- package/dist/init-rules.js +0 -1
- package/dist/init-rules.js.map +1 -1
- package/dist/knexfile.d.ts.map +1 -1
- package/dist/knexfile.js +2 -1
- package/dist/knexfile.js.map +1 -1
- package/dist/migration/local-to-global.d.ts +19 -0
- package/dist/migration/local-to-global.d.ts.map +1 -0
- package/dist/migration/local-to-global.js +133 -0
- package/dist/migration/local-to-global.js.map +1 -0
- package/dist/saas-connector/client/types.d.ts +1 -1
- package/dist/saas-connector/client/types.d.ts.map +1 -1
- package/dist/schema.js +1 -1
- package/dist/server/setup.d.ts.map +1 -1
- package/dist/server/setup.js +15 -7
- package/dist/server/setup.js.map +1 -1
- package/dist/tests/backend/backend-factory.test.js +2 -2
- package/dist/tests/backend/backend-factory.test.js.map +1 -1
- package/dist/tests/docker/native/constraint-operations.test.d.ts +2 -17
- package/dist/tests/docker/native/constraint-operations.test.d.ts.map +1 -1
- package/dist/tests/docker/native/constraint-operations.test.js +3 -82
- package/dist/tests/docker/native/constraint-operations.test.js.map +1 -1
- package/dist/tests/docker/native/db-init.d.ts +3 -34
- package/dist/tests/docker/native/db-init.d.ts.map +1 -1
- package/dist/tests/docker/native/db-init.js +15 -77
- package/dist/tests/docker/native/db-init.js.map +1 -1
- package/dist/tests/docker/native/decision-operations.test.d.ts +2 -10
- package/dist/tests/docker/native/decision-operations.test.d.ts.map +1 -1
- package/dist/tests/docker/native/decision-operations.test.js +2 -84
- package/dist/tests/docker/native/decision-operations.test.js.map +1 -1
- package/dist/tests/docker/native/help-system.test.d.ts +2 -5
- package/dist/tests/docker/native/help-system.test.d.ts.map +1 -1
- package/dist/tests/docker/native/help-system.test.js +2 -47
- package/dist/tests/docker/native/help-system.test.js.map +1 -1
- package/dist/tests/docker/native/suggest-tool.test.d.ts +3 -11
- package/dist/tests/docker/native/suggest-tool.test.d.ts.map +1 -1
- package/dist/tests/docker/native/suggest-tool.test.js +3 -60
- package/dist/tests/docker/native/suggest-tool.test.js.map +1 -1
- package/dist/tests/docker/native/test-harness.d.ts +2 -23
- package/dist/tests/docker/native/test-harness.d.ts.map +1 -1
- package/dist/tests/docker/native/test-harness.js +5 -59
- package/dist/tests/docker/native/test-harness.js.map +1 -1
- package/dist/tests/feature/decision/analytics.test.js +2 -1
- package/dist/tests/feature/decision/analytics.test.js.map +1 -1
- package/dist/tests/feature/decision/batch-validation-comprehensive.test.js +2 -7
- package/dist/tests/feature/decision/batch-validation-comprehensive.test.js.map +1 -1
- package/dist/tests/feature/decision/batch-validation.test.js +2 -1
- package/dist/tests/feature/decision/batch-validation.test.js.map +1 -1
- package/dist/tests/integration/auto-trigger-suggestions.test.js +4 -37
- package/dist/tests/integration/auto-trigger-suggestions.test.js.map +1 -1
- package/dist/tests/integration/hybrid-similarity-detection.test.js +2 -1
- package/dist/tests/integration/hybrid-similarity-detection.test.js.map +1 -1
- package/dist/tests/integration/json-export-import.test.d.ts.map +1 -0
- package/dist/tests/integration/json-export-import.test.js.map +1 -0
- package/dist/tests/unit/case-insensitive-validator.test.d.ts +0 -7
- package/dist/tests/unit/case-insensitive-validator.test.d.ts.map +1 -1
- package/dist/tests/unit/case-insensitive-validator.test.js +0 -22
- package/dist/tests/unit/case-insensitive-validator.test.js.map +1 -1
- package/dist/tests/unit/config/cloud-config-loader.test.js +4 -2
- package/dist/tests/unit/config/cloud-config-loader.test.js.map +1 -1
- package/dist/tests/unit/config/global-db-migration.test.d.ts +12 -0
- package/dist/tests/unit/config/global-db-migration.test.d.ts.map +1 -0
- package/dist/tests/unit/config/global-db-migration.test.js +117 -0
- package/dist/tests/unit/config/global-db-migration.test.js.map +1 -0
- package/dist/tests/unit/constraint-scorer.test.d.ts +2 -7
- package/dist/tests/unit/constraint-scorer.test.d.ts.map +1 -1
- package/dist/tests/unit/constraint-scorer.test.js +2 -28
- package/dist/tests/unit/constraint-scorer.test.js.map +1 -1
- package/dist/tests/unit/hooks/grok-hook-normalization.test.d.ts +9 -0
- package/dist/tests/unit/hooks/grok-hook-normalization.test.d.ts.map +1 -0
- package/dist/tests/unit/hooks/grok-hook-normalization.test.js +98 -0
- package/dist/tests/unit/hooks/grok-hook-normalization.test.js.map +1 -0
- package/dist/tests/unit/hooks/grok-plan-template-injection.test.d.ts +7 -0
- package/dist/tests/unit/hooks/grok-plan-template-injection.test.d.ts.map +1 -0
- package/dist/tests/unit/hooks/grok-plan-template-injection.test.js +55 -0
- package/dist/tests/unit/hooks/grok-plan-template-injection.test.js.map +1 -0
- package/dist/tests/unit/universal-knex.test.js +9 -0
- package/dist/tests/unit/universal-knex.test.js.map +1 -1
- package/dist/tests/unit/validation/parameter-validation.test.js +0 -24
- package/dist/tests/unit/validation/parameter-validation.test.js.map +1 -1
- package/dist/tests/utils/db-config.d.ts.map +1 -1
- package/dist/tests/utils/db-config.js +0 -9
- package/dist/tests/utils/db-config.js.map +1 -1
- package/dist/tests/utils/db-import.d.ts.map +1 -1
- package/dist/tests/utils/db-import.js +0 -3
- package/dist/tests/utils/db-import.js.map +1 -1
- package/dist/tests/utils/db-schema.d.ts.map +1 -1
- package/dist/tests/utils/db-schema.js +48 -51
- package/dist/tests/utils/db-schema.js.map +1 -1
- package/dist/tests/utils/db-seeding.d.ts.map +1 -1
- package/dist/tests/utils/db-seeding.js +0 -3
- package/dist/tests/utils/db-seeding.js.map +1 -1
- package/dist/tests/utils/index.d.ts +0 -1
- package/dist/tests/utils/index.d.ts.map +1 -1
- package/dist/tests/utils/index.js +0 -2
- package/dist/tests/utils/index.js.map +1 -1
- package/dist/tests/utils/test-helpers.d.ts +6 -76
- package/dist/tests/utils/test-helpers.d.ts.map +1 -1
- package/dist/tests/utils/test-helpers.js +56 -162
- package/dist/tests/utils/test-helpers.js.map +1 -1
- package/dist/tests/utils/test-lifecycle.d.ts +2 -28
- package/dist/tests/utils/test-lifecycle.d.ts.map +1 -1
- package/dist/tests/utils/test-lifecycle.js +2 -31
- package/dist/tests/utils/test-lifecycle.js.map +1 -1
- package/dist/tools/context/index.d.ts +0 -1
- package/dist/tools/context/index.d.ts.map +1 -1
- package/dist/tools/context/index.js +0 -2
- package/dist/tools/context/index.js.map +1 -1
- package/dist/tools/context/types.d.ts +1 -1
- package/dist/tools/context/types.d.ts.map +1 -1
- package/dist/types/actions.d.ts +6 -29
- package/dist/types/actions.d.ts.map +1 -1
- package/dist/types/actions.js +1 -2
- package/dist/types/actions.js.map +1 -1
- package/dist/types/constraint/params.d.ts +24 -1
- package/dist/types/constraint/params.d.ts.map +1 -1
- package/dist/types/constraint/params.js +3 -0
- package/dist/types/constraint/params.js.map +1 -1
- package/dist/types/constraint/responses.d.ts +18 -1
- package/dist/types/constraint/responses.d.ts.map +1 -1
- package/dist/types/constraint/responses.js +3 -0
- package/dist/types/constraint/responses.js.map +1 -1
- package/dist/types/decision/batch.d.ts +2 -5
- package/dist/types/decision/batch.d.ts.map +1 -1
- package/dist/types/decision/batch.js +3 -3
- package/dist/types/decision/batch.js.map +1 -1
- package/dist/types/decision/params.d.ts +7 -4
- package/dist/types/decision/params.d.ts.map +1 -1
- package/dist/types/decision/responses.d.ts +49 -35
- package/dist/types/decision/responses.d.ts.map +1 -1
- package/dist/types/decision/templates.d.ts +2 -18
- package/dist/types/decision/templates.d.ts.map +1 -1
- package/dist/types/decision/templates.js +3 -3
- package/dist/types/decision/templates.js.map +1 -1
- package/dist/types/enums.d.ts +11 -13
- package/dist/types/enums.d.ts.map +1 -1
- package/dist/types/enums.js +5 -13
- package/dist/types/enums.js.map +1 -1
- package/dist/types/import-export.d.ts +7 -30
- package/dist/types/import-export.d.ts.map +1 -1
- package/dist/types/import-export.js +1 -2
- package/dist/types/import-export.js.map +1 -1
- package/dist/types/index.d.ts +18 -22
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/index.js +4 -32
- package/dist/types/index.js.map +1 -1
- package/dist/types/master-entities.d.ts +1 -10
- package/dist/types/master-entities.d.ts.map +1 -1
- package/dist/types/master-entities.js +1 -2
- package/dist/types/master-entities.js.map +1 -1
- package/dist/types/transaction-entities.d.ts +2 -21
- package/dist/types/transaction-entities.d.ts.map +1 -1
- package/dist/types/transaction-entities.js +1 -1
- package/dist/types/validation.d.ts +1 -16
- package/dist/types/validation.d.ts.map +1 -1
- package/dist/types/validation.js +1 -2
- package/dist/types/validation.js.map +1 -1
- package/dist/types/view-entities.d.ts +3 -12
- package/dist/types/view-entities.d.ts.map +1 -1
- package/dist/types/view-entities.js +1 -1
- package/dist/types.d.ts +4 -718
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +5 -39
- package/dist/types.js.map +1 -1
- package/dist/utils/parameter-validator.d.ts +2 -2
- package/dist/utils/parameter-validator.d.ts.map +1 -1
- package/dist/utils/parameter-validator.js.map +1 -1
- package/dist/utils/path-normalize.d.ts +23 -0
- package/dist/utils/path-normalize.d.ts.map +1 -0
- package/dist/utils/path-normalize.js +38 -0
- package/dist/utils/path-normalize.js.map +1 -0
- package/dist/utils/project-root.d.ts +6 -3
- package/dist/utils/project-root.d.ts.map +1 -1
- package/dist/utils/project-root.js +11 -3
- package/dist/utils/project-root.js.map +1 -1
- package/dist/watcher/base-watcher.d.ts +0 -4
- package/dist/watcher/base-watcher.d.ts.map +1 -1
- package/dist/watcher/base-watcher.js +11 -22
- package/dist/watcher/base-watcher.js.map +1 -1
- package/docs/CLI_USAGE.md +27 -107
- package/docs/CONFIGURATION.md +10 -5
- package/docs/DATABASE_AUTH.md +3 -3
- package/docs/HOOKS_GUIDE.md +40 -6
- package/docs/MIGRATION_TO_SAAS.md +2 -2
- package/docs/SHARED_DATABASE.md +108 -0
- package/package.json +4 -3
- package/dist/adapters/auth/auth-types.d.ts +0 -30
- package/dist/adapters/auth/auth-types.d.ts.map +0 -1
- package/dist/adapters/auth/auth-types.js +0 -30
- package/dist/adapters/auth/auth-types.js.map +0 -1
- package/dist/cli/db-dump.d.ts +0 -36
- package/dist/cli/db-dump.d.ts.map +0 -1
- package/dist/cli/db-dump.js +0 -384
- package/dist/cli/db-dump.js.map +0 -1
- package/dist/database/config/config-ops.d.ts +0 -42
- package/dist/database/config/config-ops.d.ts.map +0 -1
- package/dist/database/config/config-ops.js +0 -102
- package/dist/database/config/config-ops.js.map +0 -1
- package/dist/formatters/adr-formatter.d.ts +0 -22
- package/dist/formatters/adr-formatter.d.ts.map +0 -1
- package/dist/formatters/adr-formatter.js +0 -127
- package/dist/formatters/adr-formatter.js.map +0 -1
- package/dist/formatters/confluence-formatter.d.ts +0 -26
- package/dist/formatters/confluence-formatter.d.ts.map +0 -1
- package/dist/formatters/confluence-formatter.js +0 -129
- package/dist/formatters/confluence-formatter.js.map +0 -1
- package/dist/formatters/index.d.ts +0 -34
- package/dist/formatters/index.d.ts.map +0 -1
- package/dist/formatters/index.js +0 -57
- package/dist/formatters/index.js.map +0 -1
- package/dist/formatters/markdown-formatter.d.ts +0 -16
- package/dist/formatters/markdown-formatter.d.ts.map +0 -1
- package/dist/formatters/markdown-formatter.js +0 -110
- package/dist/formatters/markdown-formatter.js.map +0 -1
- package/dist/formatters/notion-formatter.d.ts +0 -29
- package/dist/formatters/notion-formatter.d.ts.map +0 -1
- package/dist/formatters/notion-formatter.js +0 -177
- package/dist/formatters/notion-formatter.js.map +0 -1
- package/dist/formatters/types.d.ts +0 -31
- package/dist/formatters/types.d.ts.map +0 -1
- package/dist/formatters/types.js +0 -6
- package/dist/formatters/types.js.map +0 -1
- package/dist/tests/database/sql-dump/converters.test.d.ts +0 -7
- package/dist/tests/database/sql-dump/converters.test.d.ts.map +0 -1
- package/dist/tests/database/sql-dump/converters.test.js +0 -314
- package/dist/tests/database/sql-dump/converters.test.js.map +0 -1
- package/dist/tests/database/sql-dump/default-conversions.test.d.ts +0 -8
- package/dist/tests/database/sql-dump/default-conversions.test.d.ts.map +0 -1
- package/dist/tests/database/sql-dump/default-conversions.test.js +0 -141
- package/dist/tests/database/sql-dump/default-conversions.test.js.map +0 -1
- package/dist/tests/database/sql-dump/table-ordering.test.d.ts +0 -27
- package/dist/tests/database/sql-dump/table-ordering.test.d.ts.map +0 -1
- package/dist/tests/database/sql-dump/table-ordering.test.js +0 -284
- package/dist/tests/database/sql-dump/table-ordering.test.js.map +0 -1
- package/dist/tests/database/sql-dump/type-conversion.test.d.ts +0 -8
- package/dist/tests/database/sql-dump/type-conversion.test.d.ts.map +0 -1
- package/dist/tests/database/sql-dump/type-conversion.test.js +0 -361
- package/dist/tests/database/sql-dump/type-conversion.test.js.map +0 -1
- package/dist/tests/docker/cross-database.test.d.ts +0 -21
- package/dist/tests/docker/cross-database.test.d.ts.map +0 -1
- package/dist/tests/docker/cross-database.test.js +0 -308
- package/dist/tests/docker/cross-database.test.js.map +0 -1
- package/dist/tests/docker/dump-import.test.d.ts +0 -15
- package/dist/tests/docker/dump-import.test.d.ts.map +0 -1
- package/dist/tests/docker/dump-import.test.js +0 -424
- package/dist/tests/docker/dump-import.test.js.map +0 -1
- package/dist/tests/docker/fk-constraints.test.d.ts +0 -13
- package/dist/tests/docker/fk-constraints.test.d.ts.map +0 -1
- package/dist/tests/docker/fk-constraints.test.js +0 -381
- package/dist/tests/docker/fk-constraints.test.js.map +0 -1
- package/dist/tests/docker/indexes.test.d.ts +0 -12
- package/dist/tests/docker/indexes.test.d.ts.map +0 -1
- package/dist/tests/docker/indexes.test.js +0 -250
- package/dist/tests/docker/indexes.test.js.map +0 -1
- package/dist/tests/docker/integration.test.d.ts +0 -16
- package/dist/tests/docker/integration.test.d.ts.map +0 -1
- package/dist/tests/docker/integration.test.js +0 -323
- package/dist/tests/docker/integration.test.js.map +0 -1
- package/dist/tests/docker/multi-project-migration.test.d.ts +0 -17
- package/dist/tests/docker/multi-project-migration.test.d.ts.map +0 -1
- package/dist/tests/docker/multi-project-migration.test.js +0 -394
- package/dist/tests/docker/multi-project-migration.test.js.map +0 -1
- package/dist/tests/docker/schema-migration.test.d.ts +0 -8
- package/dist/tests/docker/schema-migration.test.d.ts.map +0 -1
- package/dist/tests/docker/schema-migration.test.js +0 -98
- package/dist/tests/docker/schema-migration.test.js.map +0 -1
- package/dist/tests/integration/e2e-workflow1-debug.test.d.ts +0 -5
- package/dist/tests/integration/e2e-workflow1-debug.test.d.ts.map +0 -1
- package/dist/tests/integration/e2e-workflow1-debug.test.js +0 -85
- package/dist/tests/integration/e2e-workflow1-debug.test.js.map +0 -1
- package/dist/tests/integration/suggest-simple.test.d.ts +0 -5
- package/dist/tests/integration/suggest-simple.test.d.ts.map +0 -1
- package/dist/tests/integration/suggest-simple.test.js +0 -90
- package/dist/tests/integration/suggest-simple.test.js.map +0 -1
- package/dist/tests/migrations/test-all-versions-real.d.ts +0 -8
- package/dist/tests/migrations/test-all-versions-real.d.ts.map +0 -1
- package/dist/tests/migrations/test-all-versions-real.js +0 -236
- package/dist/tests/migrations/test-all-versions-real.js.map +0 -1
- package/dist/tests/migrations/test-all-versions.d.ts +0 -14
- package/dist/tests/migrations/test-all-versions.d.ts.map +0 -1
- package/dist/tests/migrations/test-all-versions.js +0 -519
- package/dist/tests/migrations/test-all-versions.js.map +0 -1
- package/dist/tests/migrations/v4/v4-fresh-install.test.d.ts +0 -7
- package/dist/tests/migrations/v4/v4-fresh-install.test.d.ts.map +0 -1
- package/dist/tests/migrations/v4/v4-fresh-install.test.js +0 -168
- package/dist/tests/migrations/v4/v4-fresh-install.test.js.map +0 -1
- package/dist/tests/migrations/v4/v4-migrate-data.test.d.ts +0 -13
- package/dist/tests/migrations/v4/v4-migrate-data.test.d.ts.map +0 -1
- package/dist/tests/migrations/v4/v4-migrate-data.test.js +0 -264
- package/dist/tests/migrations/v4/v4-migrate-data.test.js.map +0 -1
- package/dist/tests/unit/utils/case-insensitive-validator.test.d.ts +0 -2
- package/dist/tests/unit/utils/case-insensitive-validator.test.d.ts.map +0 -1
- package/dist/tests/unit/utils/case-insensitive-validator.test.js +0 -97
- package/dist/tests/unit/utils/case-insensitive-validator.test.js.map +0 -1
- package/dist/tests/utils/json-export-import.test.d.ts.map +0 -1
- package/dist/tests/utils/json-export-import.test.js.map +0 -1
- package/dist/tests/utils/task-helpers.d.ts +0 -67
- package/dist/tests/utils/task-helpers.d.ts.map +0 -1
- package/dist/tests/utils/task-helpers.js +0 -134
- package/dist/tests/utils/task-helpers.js.map +0 -1
- package/dist/tools/context/actions/export.d.ts +0 -35
- package/dist/tools/context/actions/export.d.ts.map +0 -1
- package/dist/tools/context/actions/export.js +0 -93
- package/dist/tools/context/actions/export.js.map +0 -1
- package/dist/types/file/params.d.ts +0 -40
- package/dist/types/file/params.d.ts.map +0 -1
- package/dist/types/file/params.js +0 -6
- package/dist/types/file/params.js.map +0 -1
- package/dist/types/file/responses.d.ts +0 -2
- package/dist/types/file/responses.d.ts.map +0 -1
- package/dist/types/file/responses.js +0 -2
- package/dist/types/file/responses.js.map +0 -1
- package/dist/types/task/params.d.ts +0 -173
- package/dist/types/task/params.d.ts.map +0 -1
- package/dist/types/task/params.js +0 -8
- package/dist/types/task/params.js.map +0 -1
- package/dist/types/task/responses.d.ts +0 -334
- package/dist/types/task/responses.d.ts.map +0 -1
- package/dist/types/task/responses.js +0 -8
- package/dist/types/task/responses.js.map +0 -1
- package/dist/utils/sql-dump/core/dependency-sort.d.ts +0 -16
- package/dist/utils/sql-dump/core/dependency-sort.d.ts.map +0 -1
- package/dist/utils/sql-dump/core/dependency-sort.js +0 -105
- package/dist/utils/sql-dump/core/dependency-sort.js.map +0 -1
- package/dist/utils/sql-dump/core/generate-dump.d.ts +0 -13
- package/dist/utils/sql-dump/core/generate-dump.d.ts.map +0 -1
- package/dist/utils/sql-dump/core/generate-dump.js +0 -201
- package/dist/utils/sql-dump/core/generate-dump.js.map +0 -1
- package/dist/utils/sql-dump/core/index-export.d.ts +0 -10
- package/dist/utils/sql-dump/core/index-export.d.ts.map +0 -1
- package/dist/utils/sql-dump/core/index-export.js +0 -173
- package/dist/utils/sql-dump/core/index-export.js.map +0 -1
- package/dist/utils/sql-dump/core/sequence-reset.d.ts +0 -6
- package/dist/utils/sql-dump/core/sequence-reset.d.ts.map +0 -1
- package/dist/utils/sql-dump/core/sequence-reset.js +0 -28
- package/dist/utils/sql-dump/core/sequence-reset.js.map +0 -1
- package/dist/utils/sql-dump/core/table-export.d.ts +0 -2
- package/dist/utils/sql-dump/core/table-export.d.ts.map +0 -1
- package/dist/utils/sql-dump/core/table-export.js +0 -4
- package/dist/utils/sql-dump/core/table-export.js.map +0 -1
- package/dist/utils/sql-dump/core/view-export.d.ts +0 -2
- package/dist/utils/sql-dump/core/view-export.d.ts.map +0 -1
- package/dist/utils/sql-dump/core/view-export.js +0 -4
- package/dist/utils/sql-dump/core/view-export.js.map +0 -1
- package/dist/utils/sql-dump/formatters/bulk-insert.d.ts +0 -14
- package/dist/utils/sql-dump/formatters/bulk-insert.d.ts.map +0 -1
- package/dist/utils/sql-dump/formatters/bulk-insert.js +0 -177
- package/dist/utils/sql-dump/formatters/bulk-insert.js.map +0 -1
- package/dist/utils/sql-dump/formatters/identifiers.d.ts +0 -6
- package/dist/utils/sql-dump/formatters/identifiers.d.ts.map +0 -1
- package/dist/utils/sql-dump/formatters/identifiers.js +0 -16
- package/dist/utils/sql-dump/formatters/identifiers.js.map +0 -1
- package/dist/utils/sql-dump/formatters/value-formatter.d.ts +0 -14
- package/dist/utils/sql-dump/formatters/value-formatter.d.ts.map +0 -1
- package/dist/utils/sql-dump/formatters/value-formatter.js +0 -281
- package/dist/utils/sql-dump/formatters/value-formatter.js.map +0 -1
- package/dist/utils/sql-dump/generators/controls.d.ts +0 -10
- package/dist/utils/sql-dump/generators/controls.d.ts.map +0 -1
- package/dist/utils/sql-dump/generators/controls.js +0 -36
- package/dist/utils/sql-dump/generators/controls.js.map +0 -1
- package/dist/utils/sql-dump/generators/headers.d.ts +0 -6
- package/dist/utils/sql-dump/generators/headers.d.ts.map +0 -1
- package/dist/utils/sql-dump/generators/headers.js +0 -19
- package/dist/utils/sql-dump/generators/headers.js.map +0 -1
- package/dist/utils/sql-dump/index.d.ts +0 -14
- package/dist/utils/sql-dump/index.d.ts.map +0 -1
- package/dist/utils/sql-dump/index.js +0 -16
- package/dist/utils/sql-dump/index.js.map +0 -1
- package/dist/utils/sql-dump/schema/indexes.d.ts +0 -20
- package/dist/utils/sql-dump/schema/indexes.d.ts.map +0 -1
- package/dist/utils/sql-dump/schema/indexes.js +0 -108
- package/dist/utils/sql-dump/schema/indexes.js.map +0 -1
- package/dist/utils/sql-dump/schema/primary-keys.d.ts +0 -6
- package/dist/utils/sql-dump/schema/primary-keys.d.ts.map +0 -1
- package/dist/utils/sql-dump/schema/primary-keys.js +0 -41
- package/dist/utils/sql-dump/schema/primary-keys.js.map +0 -1
- package/dist/utils/sql-dump/schema/tables.d.ts +0 -15
- package/dist/utils/sql-dump/schema/tables.d.ts.map +0 -1
- package/dist/utils/sql-dump/schema/tables.js +0 -518
- package/dist/utils/sql-dump/schema/tables.js.map +0 -1
- package/dist/utils/sql-dump/schema/views.d.ts +0 -11
- package/dist/utils/sql-dump/schema/views.d.ts.map +0 -1
- package/dist/utils/sql-dump/schema/views.js +0 -116
- package/dist/utils/sql-dump/schema/views.js.map +0 -1
- package/dist/utils/sql-dump/types.d.ts +0 -10
- package/dist/utils/sql-dump/types.d.ts.map +0 -1
- package/dist/utils/sql-dump/types.js +0 -3
- package/dist/utils/sql-dump/types.js.map +0 -1
- package/dist/utils/sql-dump-converters.d.ts +0 -188
- package/dist/utils/sql-dump-converters.d.ts.map +0 -1
- package/dist/utils/sql-dump-converters.js +0 -315
- package/dist/utils/sql-dump-converters.js.map +0 -1
- package/dist/watcher/gitignore-parser.d.ts +0 -70
- package/dist/watcher/gitignore-parser.d.ts.map +0 -1
- package/dist/watcher/gitignore-parser.js +0 -195
- package/dist/watcher/gitignore-parser.js.map +0 -1
- package/dist/watcher/index.d.ts +0 -9
- package/dist/watcher/index.d.ts.map +0 -1
- package/dist/watcher/index.js +0 -8
- package/dist/watcher/index.js.map +0 -1
- /package/dist/tests/{utils → integration}/json-export-import.test.d.ts +0 -0
- /package/dist/tests/{utils → integration}/json-export-import.test.js +0 -0
|
@@ -1,36 +1,7 @@
|
|
|
1
1
|
import type { Knex } from 'knex';
|
|
2
2
|
import { BaseAdapter } from './base-adapter.js';
|
|
3
3
|
import type { DatabaseConfig } from '../config/types.js';
|
|
4
|
-
/**
|
|
5
|
-
* PostgreSQL adapter implementation with authentication support.
|
|
6
|
-
*
|
|
7
|
-
* This adapter provides PostgreSQL-specific implementations for database operations,
|
|
8
|
-
* integrating with the authentication layer for secure connections via SSH tunnels,
|
|
9
|
-
* direct connections, or cloud IAM (AWS RDS, GCP Cloud SQL).
|
|
10
|
-
*
|
|
11
|
-
* **PostgreSQL-Specific Features:**
|
|
12
|
-
* - RETURNING clause for insert/update/delete
|
|
13
|
-
* - ON CONFLICT ... DO UPDATE for upserts
|
|
14
|
-
* - jsonb_extract_path() and jsonb_build_object() for JSON operations
|
|
15
|
-
* - string_agg() for string aggregation
|
|
16
|
-
* - EXTRACT(EPOCH FROM ...) for Unix timestamp conversions
|
|
17
|
-
* - SERIAL/BIGSERIAL for auto-increment columns
|
|
18
|
-
* - Full transaction support with savepoints
|
|
19
|
-
* - Common Table Expressions (CTEs) and window functions
|
|
20
|
-
*
|
|
21
|
-
* **Supported PostgreSQL Versions:**
|
|
22
|
-
* - PostgreSQL 16+ (full feature support)
|
|
23
|
-
* - PostgreSQL 12-15 (full feature support)
|
|
24
|
-
* - PostgreSQL 9.5+ (basic feature support)
|
|
25
|
-
*
|
|
26
|
-
* **Authentication Methods:**
|
|
27
|
-
* - Direct: Standard username/password authentication
|
|
28
|
-
* - SSH Tunnel: Connect via SSH bastion host
|
|
29
|
-
* - AWS RDS IAM: Token-based authentication for AWS RDS
|
|
30
|
-
* - GCP Cloud SQL IAM: Token-based authentication for Cloud SQL
|
|
31
|
-
*
|
|
32
|
-
* @extends BaseAdapter
|
|
33
|
-
*/
|
|
4
|
+
/** PostgreSQL adapter with authentication support. */
|
|
34
5
|
export declare class PostgreSQLAdapter extends BaseAdapter {
|
|
35
6
|
readonly supportsReturning = true;
|
|
36
7
|
readonly supportsJSON = true;
|
|
@@ -40,195 +11,36 @@ export declare class PostgreSQLAdapter extends BaseAdapter {
|
|
|
40
11
|
readonly supportsSavepoints = true;
|
|
41
12
|
readonly databaseName: "postgresql";
|
|
42
13
|
constructor(config: DatabaseConfig);
|
|
43
|
-
/**
|
|
44
|
-
* Returns the Knex dialect for PostgreSQL.
|
|
45
|
-
*
|
|
46
|
-
* Uses 'pg' driver which supports:
|
|
47
|
-
* - Prepared statements
|
|
48
|
-
* - Promise-based API
|
|
49
|
-
* - Connection pooling
|
|
50
|
-
* - Full Unicode support
|
|
51
|
-
*
|
|
52
|
-
* @returns {string} 'pg' dialect identifier
|
|
53
|
-
*/
|
|
54
14
|
getDialect(): string;
|
|
55
|
-
/**
|
|
56
|
-
* Initializes PostgreSQL-specific session settings.
|
|
57
|
-
*
|
|
58
|
-
* **Configuration Applied:**
|
|
59
|
-
* - Timezone: UTC for consistent timestamp handling
|
|
60
|
-
* - Statement timeout: 30 seconds (prevents long-running queries)
|
|
61
|
-
* - Client encoding: UTF8 for full Unicode support
|
|
62
|
-
* - Default transaction isolation: READ COMMITTED
|
|
63
|
-
*
|
|
64
|
-
* @returns {Promise<void>}
|
|
65
|
-
* @throws {Error} If database does not exist or cannot be accessed
|
|
66
|
-
*/
|
|
15
|
+
/** Initializes PostgreSQL-specific session settings (UTC, timeout, UTF8). */
|
|
67
16
|
initialize(): Promise<void>;
|
|
68
|
-
/**
|
|
69
|
-
* Inserts a row and returns the inserted record using RETURNING clause.
|
|
70
|
-
*
|
|
71
|
-
* PostgreSQL supports RETURNING clause natively, making this more efficient
|
|
72
|
-
* than MySQL's approach (insert + select).
|
|
73
|
-
*
|
|
74
|
-
* @template T - Record type
|
|
75
|
-
* @param {string} table - Table name
|
|
76
|
-
* @param {Partial<T>} data - Data to insert
|
|
77
|
-
* @returns {Promise<T>} Inserted record
|
|
78
|
-
* @throws {Error} If insert fails
|
|
79
|
-
*/
|
|
17
|
+
/** Inserts a row and returns the inserted record using RETURNING clause. */
|
|
80
18
|
insertReturning<T extends Record<string, any>>(table: string, data: Partial<T>): Promise<T>;
|
|
81
|
-
/**
|
|
82
|
-
* Upserts a row using PostgreSQL's ON CONFLICT ... DO UPDATE syntax.
|
|
83
|
-
*
|
|
84
|
-
* **Behavior:**
|
|
85
|
-
* - If row with conflicting key exists: UPDATE specified columns
|
|
86
|
-
* - If no conflict: INSERT new row
|
|
87
|
-
* - Returns number of affected rows
|
|
88
|
-
*
|
|
89
|
-
* @template T - Record type
|
|
90
|
-
* @param {string} table - Table name
|
|
91
|
-
* @param {Partial<T>} data - Data to insert/update
|
|
92
|
-
* @param {string[]} conflictColumns - Columns that define uniqueness (must have UNIQUE index)
|
|
93
|
-
* @param {string[]} [updateColumns] - Columns to update on conflict (default: all except conflict columns)
|
|
94
|
-
* @returns {Promise<number>} Affected rows (1 = insert or update)
|
|
95
|
-
* @throws {Error} If conflictColumns don't have UNIQUE constraint
|
|
96
|
-
*/
|
|
19
|
+
/** Upserts a row using ON CONFLICT ... DO UPDATE. */
|
|
97
20
|
upsert<T extends Record<string, any>>(table: string, data: Partial<T>, conflictColumns: string[], updateColumns?: string[]): Promise<number>;
|
|
98
|
-
/**
|
|
99
|
-
* Extracts a value from a JSONB column using jsonb_extract_path_text().
|
|
100
|
-
*
|
|
101
|
-
* **PostgreSQL JSON Path Syntax:**
|
|
102
|
-
* - Nested objects: 'address', 'city' (separate arguments)
|
|
103
|
-
* - Array access: Use jsonb_array_element() separately
|
|
104
|
-
*
|
|
105
|
-
* @param {string} column - JSONB column name
|
|
106
|
-
* @param {string} path - JSON path (e.g., 'address.city')
|
|
107
|
-
* @returns {Knex.Raw} Raw SQL expression for JSON extraction
|
|
108
|
-
*/
|
|
21
|
+
/** Extracts a value from a JSONB column using jsonb_extract_path_text(). */
|
|
109
22
|
jsonExtract(column: string, path: string): Knex.Raw;
|
|
110
|
-
/**
|
|
111
|
-
* Builds a JSON object from field values using jsonb_build_object().
|
|
112
|
-
*
|
|
113
|
-
* @param {Record<string, any>} fields - Object with key-value pairs
|
|
114
|
-
* @returns {Knex.Raw} Raw SQL expression for JSON object construction
|
|
115
|
-
*/
|
|
23
|
+
/** Builds a JSON object using jsonb_build_object(). */
|
|
116
24
|
jsonBuildObject(fields: Record<string, any>): Knex.Raw;
|
|
117
|
-
/**
|
|
118
|
-
* Returns current Unix timestamp using EXTRACT(EPOCH FROM NOW()).
|
|
119
|
-
*
|
|
120
|
-
* **Behavior:**
|
|
121
|
-
* - Returns seconds since Unix epoch (1970-01-01 00:00:00 UTC)
|
|
122
|
-
* - Always returns UTC timestamp
|
|
123
|
-
* - Returns numeric value (may have fractional seconds)
|
|
124
|
-
*
|
|
125
|
-
* @returns {Knex.Raw} Raw SQL expression for current timestamp
|
|
126
|
-
*/
|
|
25
|
+
/** Returns current Unix timestamp using EXTRACT(EPOCH FROM NOW()). */
|
|
127
26
|
currentTimestamp(): Knex.Raw;
|
|
128
|
-
/**
|
|
129
|
-
* Converts Unix epoch timestamp to PostgreSQL timestamp using TO_TIMESTAMP().
|
|
130
|
-
*
|
|
131
|
-
* **Behavior:**
|
|
132
|
-
* - Converts integer epoch to TIMESTAMP WITH TIME ZONE
|
|
133
|
-
* - Returns UTC timestamp
|
|
134
|
-
* - Handles NULL values
|
|
135
|
-
*
|
|
136
|
-
* @param {string} epochColumn - Column containing Unix epoch timestamp
|
|
137
|
-
* @returns {Knex.Raw} Raw SQL expression for epoch conversion
|
|
138
|
-
*/
|
|
27
|
+
/** Converts Unix epoch to timestamp using TO_TIMESTAMP(). */
|
|
139
28
|
fromUnixEpoch(epochColumn: string): Knex.Raw;
|
|
140
|
-
/**
|
|
141
|
-
* Converts PostgreSQL timestamp to Unix epoch using EXTRACT(EPOCH FROM ...).
|
|
142
|
-
*
|
|
143
|
-
* **Behavior:**
|
|
144
|
-
* - Converts TIMESTAMP to integer epoch
|
|
145
|
-
* - Assumes input is UTC
|
|
146
|
-
* - Handles NULL values
|
|
147
|
-
*
|
|
148
|
-
* @param {string} timestampColumn - Column containing timestamp value
|
|
149
|
-
* @returns {Knex.Raw} Raw SQL expression for timestamp conversion
|
|
150
|
-
*/
|
|
29
|
+
/** Converts timestamp to Unix epoch using EXTRACT(EPOCH FROM ...). */
|
|
151
30
|
toUnixEpoch(timestampColumn: string): Knex.Raw;
|
|
152
|
-
/**
|
|
153
|
-
* Concatenates string values using || operator.
|
|
154
|
-
*
|
|
155
|
-
* **Behavior:**
|
|
156
|
-
* - PostgreSQL uses || for concatenation
|
|
157
|
-
* - Returns NULL if any argument is NULL (use COALESCE to handle)
|
|
158
|
-
* - Empty strings are preserved
|
|
159
|
-
*
|
|
160
|
-
* @param {...(string | Knex.Raw)[]} values - Values to concatenate
|
|
161
|
-
* @returns {Knex.Raw} Raw SQL expression for concatenation
|
|
162
|
-
*/
|
|
31
|
+
/** Concatenates string values using || operator. */
|
|
163
32
|
concat(...values: Array<string | Knex.Raw>): Knex.Raw;
|
|
164
|
-
/**
|
|
165
|
-
* Aggregates strings with separator using string_agg().
|
|
166
|
-
*
|
|
167
|
-
* **Behavior:**
|
|
168
|
-
* - Concatenates values from multiple rows into single string
|
|
169
|
-
* - NULL values are skipped
|
|
170
|
-
* - No result length limit (unlike MySQL's GROUP_CONCAT)
|
|
171
|
-
*
|
|
172
|
-
* @param {string} column - Column to aggregate
|
|
173
|
-
* @param {string} [separator=','] - Separator between values
|
|
174
|
-
* @returns {Knex.Raw} Raw SQL expression for string aggregation
|
|
175
|
-
*/
|
|
33
|
+
/** Aggregates strings with separator using string_agg(). */
|
|
176
34
|
stringAgg(column: string, separator?: string): Knex.Raw;
|
|
177
|
-
/**
|
|
178
|
-
* Executes a callback within a database transaction.
|
|
179
|
-
*
|
|
180
|
-
* **PostgreSQL Transaction Characteristics:**
|
|
181
|
-
* - Default isolation level: READ COMMITTED
|
|
182
|
-
* - Supports nested transactions via savepoints
|
|
183
|
-
* - Automatic rollback on error
|
|
184
|
-
* - MVCC (Multi-Version Concurrency Control)
|
|
185
|
-
*
|
|
186
|
-
* @template T - Return type
|
|
187
|
-
* @param {Function} callback - Transaction callback
|
|
188
|
-
* @param {Object} [options] - Transaction options
|
|
189
|
-
* @param {string} [options.isolationLevel] - Isolation level
|
|
190
|
-
* @returns {Promise<T>} Transaction result
|
|
191
|
-
*/
|
|
35
|
+
/** Executes a callback within a PostgreSQL transaction. */
|
|
192
36
|
transaction<T>(callback: (trx: Knex.Transaction) => Promise<T>, options?: {
|
|
193
37
|
isolationLevel?: 'serializable' | 'read committed' | 'repeatable read';
|
|
194
38
|
}): Promise<T>;
|
|
195
|
-
/**
|
|
196
|
-
* Creates a savepoint within a transaction.
|
|
197
|
-
*
|
|
198
|
-
* **PostgreSQL Savepoint Behavior:**
|
|
199
|
-
* - Allows partial rollback within transaction
|
|
200
|
-
* - Savepoint names are case-sensitive
|
|
201
|
-
* - Automatically released on transaction commit
|
|
202
|
-
* - Rolled back on transaction rollback
|
|
203
|
-
*
|
|
204
|
-
* @template T - Return type
|
|
205
|
-
* @param {Knex.Transaction} trx - Parent transaction
|
|
206
|
-
* @param {Function} callback - Savepoint callback
|
|
207
|
-
* @returns {Promise<T>} Savepoint result
|
|
208
|
-
*/
|
|
39
|
+
/** Creates a savepoint within a transaction. */
|
|
209
40
|
savepoint<T>(trx: Knex.Transaction, callback: (sp: Knex.Transaction) => Promise<T>): Promise<T>;
|
|
210
|
-
/**
|
|
211
|
-
* Checks if a table exists in the database.
|
|
212
|
-
*
|
|
213
|
-
* Queries information_schema.tables which is the standard PostgreSQL approach
|
|
214
|
-
* for table existence checking.
|
|
215
|
-
*
|
|
216
|
-
* @param {string} tableName - Table name to check
|
|
217
|
-
* @returns {Promise<boolean>} True if table exists, false otherwise
|
|
218
|
-
*/
|
|
41
|
+
/** Checks if a table exists via information_schema. */
|
|
219
42
|
tableExists(tableName: string): Promise<boolean>;
|
|
220
|
-
/**
|
|
221
|
-
* Adds a serial auto-increment primary key column to a table.
|
|
222
|
-
*
|
|
223
|
-
* **PostgreSQL SERIAL Behavior:**
|
|
224
|
-
* - SERIAL = INTEGER with auto-increment (sequence)
|
|
225
|
-
* - BIGSERIAL = BIGINT with auto-increment (recommended for large tables)
|
|
226
|
-
* - Automatically creates a sequence (tablename_columnname_seq)
|
|
227
|
-
* - Primary key constraint added automatically
|
|
228
|
-
*
|
|
229
|
-
* @param {Knex.CreateTableBuilder} table - Knex table builder
|
|
230
|
-
* @param {string} [columnName='id'] - Column name (default: 'id')
|
|
231
|
-
*/
|
|
43
|
+
/** Adds a serial auto-increment primary key column. */
|
|
232
44
|
autoIncrementColumn(table: Knex.CreateTableBuilder, columnName?: string): void;
|
|
233
45
|
}
|
|
234
46
|
//# sourceMappingURL=postgresql-adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgresql-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/postgresql-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD
|
|
1
|
+
{"version":3,"file":"postgresql-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/postgresql-adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,sDAAsD;AACtD,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,QAAQ,CAAC,iBAAiB,QAAQ;IAClC,QAAQ,CAAC,YAAY,QAAQ;IAC7B,QAAQ,CAAC,cAAc,QAAQ;IAC/B,QAAQ,CAAC,WAAW,QAAQ;IAC5B,QAAQ,CAAC,uBAAuB,QAAQ;IACxC,QAAQ,CAAC,kBAAkB,QAAQ;IACnC,QAAQ,CAAC,YAAY,EAAG,YAAY,CAAU;gBAElC,MAAM,EAAE,cAAc;IAIlC,UAAU,IAAI,MAAM;IAIpB,6EAA6E;IACvE,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAyCjC,4EAA4E;IACtE,eAAe,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACjD,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GACf,OAAO,CAAC,CAAC,CAAC;IAab,qDAAqD;IAC/C,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACxC,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,EAChB,eAAe,EAAE,MAAM,EAAE,EACzB,aAAa,CAAC,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,MAAM,CAAC;IAuBlB,4EAA4E;IAC5E,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG;IAQnD,uDAAuD;IACvD,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG;IAiBtD,sEAAsE;IACtE,gBAAgB,IAAI,IAAI,CAAC,GAAG;IAI5B,6DAA6D;IAC7D,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG;IAI5C,sEAAsE;IACtE,WAAW,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG;IAI9C,oDAAoD;IACpD,MAAM,CAAC,GAAG,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG;IAMrD,4DAA4D;IAC5D,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,GAAE,MAAY,GAAG,IAAI,CAAC,GAAG;IAI5D,2DAA2D;IACrD,WAAW,CAAC,CAAC,EACjB,QAAQ,EAAE,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,EAC/C,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,cAAc,GAAG,gBAAgB,GAAG,iBAAiB,CAAA;KAAE,GACnF,OAAO,CAAC,CAAC,CAAC;IAIb,gDAAgD;IAC1C,SAAS,CAAC,CAAC,EACf,GAAG,EAAE,IAAI,CAAC,WAAW,EACrB,QAAQ,EAAE,CAAC,EAAE,EAAE,IAAI,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GAC7C,OAAO,CAAC,CAAC,CAAC;IAIb,uDAAuD;IACjD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAetD,uDAAuD;IACvD,mBAAmB,CAAC,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,UAAU,GAAE,MAAa,GAAG,IAAI;CAIrF"}
|
|
@@ -1,72 +1,20 @@
|
|
|
1
1
|
import { BaseAdapter } from './base-adapter.js';
|
|
2
|
-
/**
|
|
3
|
-
* PostgreSQL adapter implementation with authentication support.
|
|
4
|
-
*
|
|
5
|
-
* This adapter provides PostgreSQL-specific implementations for database operations,
|
|
6
|
-
* integrating with the authentication layer for secure connections via SSH tunnels,
|
|
7
|
-
* direct connections, or cloud IAM (AWS RDS, GCP Cloud SQL).
|
|
8
|
-
*
|
|
9
|
-
* **PostgreSQL-Specific Features:**
|
|
10
|
-
* - RETURNING clause for insert/update/delete
|
|
11
|
-
* - ON CONFLICT ... DO UPDATE for upserts
|
|
12
|
-
* - jsonb_extract_path() and jsonb_build_object() for JSON operations
|
|
13
|
-
* - string_agg() for string aggregation
|
|
14
|
-
* - EXTRACT(EPOCH FROM ...) for Unix timestamp conversions
|
|
15
|
-
* - SERIAL/BIGSERIAL for auto-increment columns
|
|
16
|
-
* - Full transaction support with savepoints
|
|
17
|
-
* - Common Table Expressions (CTEs) and window functions
|
|
18
|
-
*
|
|
19
|
-
* **Supported PostgreSQL Versions:**
|
|
20
|
-
* - PostgreSQL 16+ (full feature support)
|
|
21
|
-
* - PostgreSQL 12-15 (full feature support)
|
|
22
|
-
* - PostgreSQL 9.5+ (basic feature support)
|
|
23
|
-
*
|
|
24
|
-
* **Authentication Methods:**
|
|
25
|
-
* - Direct: Standard username/password authentication
|
|
26
|
-
* - SSH Tunnel: Connect via SSH bastion host
|
|
27
|
-
* - AWS RDS IAM: Token-based authentication for AWS RDS
|
|
28
|
-
* - GCP Cloud SQL IAM: Token-based authentication for Cloud SQL
|
|
29
|
-
*
|
|
30
|
-
* @extends BaseAdapter
|
|
31
|
-
*/
|
|
2
|
+
/** PostgreSQL adapter with authentication support. */
|
|
32
3
|
export class PostgreSQLAdapter extends BaseAdapter {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
supportsSavepoints = true; // Full savepoint support
|
|
4
|
+
supportsReturning = true;
|
|
5
|
+
supportsJSON = true;
|
|
6
|
+
supportsUpsert = true;
|
|
7
|
+
supportsCTE = true;
|
|
8
|
+
supportsWindowFunctions = true;
|
|
9
|
+
supportsSavepoints = true;
|
|
40
10
|
databaseName = 'postgresql';
|
|
41
11
|
constructor(config) {
|
|
42
12
|
super(config);
|
|
43
13
|
}
|
|
44
|
-
/**
|
|
45
|
-
* Returns the Knex dialect for PostgreSQL.
|
|
46
|
-
*
|
|
47
|
-
* Uses 'pg' driver which supports:
|
|
48
|
-
* - Prepared statements
|
|
49
|
-
* - Promise-based API
|
|
50
|
-
* - Connection pooling
|
|
51
|
-
* - Full Unicode support
|
|
52
|
-
*
|
|
53
|
-
* @returns {string} 'pg' dialect identifier
|
|
54
|
-
*/
|
|
55
14
|
getDialect() {
|
|
56
15
|
return 'pg';
|
|
57
16
|
}
|
|
58
|
-
/**
|
|
59
|
-
* Initializes PostgreSQL-specific session settings.
|
|
60
|
-
*
|
|
61
|
-
* **Configuration Applied:**
|
|
62
|
-
* - Timezone: UTC for consistent timestamp handling
|
|
63
|
-
* - Statement timeout: 30 seconds (prevents long-running queries)
|
|
64
|
-
* - Client encoding: UTF8 for full Unicode support
|
|
65
|
-
* - Default transaction isolation: READ COMMITTED
|
|
66
|
-
*
|
|
67
|
-
* @returns {Promise<void>}
|
|
68
|
-
* @throws {Error} If database does not exist or cannot be accessed
|
|
69
|
-
*/
|
|
17
|
+
/** Initializes PostgreSQL-specific session settings (UTC, timeout, UTF8). */
|
|
70
18
|
async initialize() {
|
|
71
19
|
const knex = this.getKnex();
|
|
72
20
|
// Validate database exists
|
|
@@ -98,21 +46,7 @@ export class PostgreSQLAdapter extends BaseAdapter {
|
|
|
98
46
|
// Ensure UTF8 encoding
|
|
99
47
|
await knex.raw("SET client_encoding = 'UTF8'");
|
|
100
48
|
}
|
|
101
|
-
|
|
102
|
-
// Query Adaptations - PostgreSQL-specific implementations
|
|
103
|
-
// ============================================================================
|
|
104
|
-
/**
|
|
105
|
-
* Inserts a row and returns the inserted record using RETURNING clause.
|
|
106
|
-
*
|
|
107
|
-
* PostgreSQL supports RETURNING clause natively, making this more efficient
|
|
108
|
-
* than MySQL's approach (insert + select).
|
|
109
|
-
*
|
|
110
|
-
* @template T - Record type
|
|
111
|
-
* @param {string} table - Table name
|
|
112
|
-
* @param {Partial<T>} data - Data to insert
|
|
113
|
-
* @returns {Promise<T>} Inserted record
|
|
114
|
-
* @throws {Error} If insert fails
|
|
115
|
-
*/
|
|
49
|
+
/** Inserts a row and returns the inserted record using RETURNING clause. */
|
|
116
50
|
async insertReturning(table, data) {
|
|
117
51
|
const knex = this.getKnex();
|
|
118
52
|
// Use RETURNING * to get the complete inserted row
|
|
@@ -122,22 +56,7 @@ export class PostgreSQLAdapter extends BaseAdapter {
|
|
|
122
56
|
}
|
|
123
57
|
return result;
|
|
124
58
|
}
|
|
125
|
-
/**
|
|
126
|
-
* Upserts a row using PostgreSQL's ON CONFLICT ... DO UPDATE syntax.
|
|
127
|
-
*
|
|
128
|
-
* **Behavior:**
|
|
129
|
-
* - If row with conflicting key exists: UPDATE specified columns
|
|
130
|
-
* - If no conflict: INSERT new row
|
|
131
|
-
* - Returns number of affected rows
|
|
132
|
-
*
|
|
133
|
-
* @template T - Record type
|
|
134
|
-
* @param {string} table - Table name
|
|
135
|
-
* @param {Partial<T>} data - Data to insert/update
|
|
136
|
-
* @param {string[]} conflictColumns - Columns that define uniqueness (must have UNIQUE index)
|
|
137
|
-
* @param {string[]} [updateColumns] - Columns to update on conflict (default: all except conflict columns)
|
|
138
|
-
* @returns {Promise<number>} Affected rows (1 = insert or update)
|
|
139
|
-
* @throws {Error} If conflictColumns don't have UNIQUE constraint
|
|
140
|
-
*/
|
|
59
|
+
/** Upserts a row using ON CONFLICT ... DO UPDATE. */
|
|
141
60
|
async upsert(table, data, conflictColumns, updateColumns) {
|
|
142
61
|
const knex = this.getKnex();
|
|
143
62
|
// Determine which columns to update on conflict
|
|
@@ -154,17 +73,7 @@ export class PostgreSQLAdapter extends BaseAdapter {
|
|
|
154
73
|
.merge(updateData);
|
|
155
74
|
return result.length;
|
|
156
75
|
}
|
|
157
|
-
/**
|
|
158
|
-
* Extracts a value from a JSONB column using jsonb_extract_path_text().
|
|
159
|
-
*
|
|
160
|
-
* **PostgreSQL JSON Path Syntax:**
|
|
161
|
-
* - Nested objects: 'address', 'city' (separate arguments)
|
|
162
|
-
* - Array access: Use jsonb_array_element() separately
|
|
163
|
-
*
|
|
164
|
-
* @param {string} column - JSONB column name
|
|
165
|
-
* @param {string} path - JSON path (e.g., 'address.city')
|
|
166
|
-
* @returns {Knex.Raw} Raw SQL expression for JSON extraction
|
|
167
|
-
*/
|
|
76
|
+
/** Extracts a value from a JSONB column using jsonb_extract_path_text(). */
|
|
168
77
|
jsonExtract(column, path) {
|
|
169
78
|
const knex = this.getKnex();
|
|
170
79
|
// Split path by '.' and use as separate arguments
|
|
@@ -172,12 +81,7 @@ export class PostgreSQLAdapter extends BaseAdapter {
|
|
|
172
81
|
const placeholders = ['??', ...pathParts.map(() => '?')].join(', ');
|
|
173
82
|
return knex.raw(`jsonb_extract_path_text(${placeholders})`, [column, ...pathParts]);
|
|
174
83
|
}
|
|
175
|
-
/**
|
|
176
|
-
* Builds a JSON object from field values using jsonb_build_object().
|
|
177
|
-
*
|
|
178
|
-
* @param {Record<string, any>} fields - Object with key-value pairs
|
|
179
|
-
* @returns {Knex.Raw} Raw SQL expression for JSON object construction
|
|
180
|
-
*/
|
|
84
|
+
/** Builds a JSON object using jsonb_build_object(). */
|
|
181
85
|
jsonBuildObject(fields) {
|
|
182
86
|
const knex = this.getKnex();
|
|
183
87
|
const keys = Object.keys(fields);
|
|
@@ -192,150 +96,47 @@ export class PostgreSQLAdapter extends BaseAdapter {
|
|
|
192
96
|
const placeholders = args.map(() => '?').join(', ');
|
|
193
97
|
return knex.raw(`jsonb_build_object(${placeholders})`, args);
|
|
194
98
|
}
|
|
195
|
-
/**
|
|
196
|
-
* Returns current Unix timestamp using EXTRACT(EPOCH FROM NOW()).
|
|
197
|
-
*
|
|
198
|
-
* **Behavior:**
|
|
199
|
-
* - Returns seconds since Unix epoch (1970-01-01 00:00:00 UTC)
|
|
200
|
-
* - Always returns UTC timestamp
|
|
201
|
-
* - Returns numeric value (may have fractional seconds)
|
|
202
|
-
*
|
|
203
|
-
* @returns {Knex.Raw} Raw SQL expression for current timestamp
|
|
204
|
-
*/
|
|
99
|
+
/** Returns current Unix timestamp using EXTRACT(EPOCH FROM NOW()). */
|
|
205
100
|
currentTimestamp() {
|
|
206
101
|
return this.getKnex().raw('EXTRACT(EPOCH FROM NOW())::INTEGER');
|
|
207
102
|
}
|
|
208
|
-
/**
|
|
209
|
-
* Converts Unix epoch timestamp to PostgreSQL timestamp using TO_TIMESTAMP().
|
|
210
|
-
*
|
|
211
|
-
* **Behavior:**
|
|
212
|
-
* - Converts integer epoch to TIMESTAMP WITH TIME ZONE
|
|
213
|
-
* - Returns UTC timestamp
|
|
214
|
-
* - Handles NULL values
|
|
215
|
-
*
|
|
216
|
-
* @param {string} epochColumn - Column containing Unix epoch timestamp
|
|
217
|
-
* @returns {Knex.Raw} Raw SQL expression for epoch conversion
|
|
218
|
-
*/
|
|
103
|
+
/** Converts Unix epoch to timestamp using TO_TIMESTAMP(). */
|
|
219
104
|
fromUnixEpoch(epochColumn) {
|
|
220
105
|
return this.getKnex().raw('TO_TIMESTAMP(??)', [epochColumn]);
|
|
221
106
|
}
|
|
222
|
-
/**
|
|
223
|
-
* Converts PostgreSQL timestamp to Unix epoch using EXTRACT(EPOCH FROM ...).
|
|
224
|
-
*
|
|
225
|
-
* **Behavior:**
|
|
226
|
-
* - Converts TIMESTAMP to integer epoch
|
|
227
|
-
* - Assumes input is UTC
|
|
228
|
-
* - Handles NULL values
|
|
229
|
-
*
|
|
230
|
-
* @param {string} timestampColumn - Column containing timestamp value
|
|
231
|
-
* @returns {Knex.Raw} Raw SQL expression for timestamp conversion
|
|
232
|
-
*/
|
|
107
|
+
/** Converts timestamp to Unix epoch using EXTRACT(EPOCH FROM ...). */
|
|
233
108
|
toUnixEpoch(timestampColumn) {
|
|
234
109
|
return this.getKnex().raw('EXTRACT(EPOCH FROM ??)::INTEGER', [timestampColumn]);
|
|
235
110
|
}
|
|
236
|
-
/**
|
|
237
|
-
* Concatenates string values using || operator.
|
|
238
|
-
*
|
|
239
|
-
* **Behavior:**
|
|
240
|
-
* - PostgreSQL uses || for concatenation
|
|
241
|
-
* - Returns NULL if any argument is NULL (use COALESCE to handle)
|
|
242
|
-
* - Empty strings are preserved
|
|
243
|
-
*
|
|
244
|
-
* @param {...(string | Knex.Raw)[]} values - Values to concatenate
|
|
245
|
-
* @returns {Knex.Raw} Raw SQL expression for concatenation
|
|
246
|
-
*/
|
|
111
|
+
/** Concatenates string values using || operator. */
|
|
247
112
|
concat(...values) {
|
|
248
113
|
const knex = this.getKnex();
|
|
249
114
|
const placeholders = values.map(() => '?').join(' || ');
|
|
250
115
|
return knex.raw(`(${placeholders})`, values);
|
|
251
116
|
}
|
|
252
|
-
/**
|
|
253
|
-
* Aggregates strings with separator using string_agg().
|
|
254
|
-
*
|
|
255
|
-
* **Behavior:**
|
|
256
|
-
* - Concatenates values from multiple rows into single string
|
|
257
|
-
* - NULL values are skipped
|
|
258
|
-
* - No result length limit (unlike MySQL's GROUP_CONCAT)
|
|
259
|
-
*
|
|
260
|
-
* @param {string} column - Column to aggregate
|
|
261
|
-
* @param {string} [separator=','] - Separator between values
|
|
262
|
-
* @returns {Knex.Raw} Raw SQL expression for string aggregation
|
|
263
|
-
*/
|
|
117
|
+
/** Aggregates strings with separator using string_agg(). */
|
|
264
118
|
stringAgg(column, separator = ',') {
|
|
265
119
|
return this.getKnex().raw('string_agg(??, ?)', [column, separator]);
|
|
266
120
|
}
|
|
267
|
-
|
|
268
|
-
// Transaction Support
|
|
269
|
-
// ============================================================================
|
|
270
|
-
/**
|
|
271
|
-
* Executes a callback within a database transaction.
|
|
272
|
-
*
|
|
273
|
-
* **PostgreSQL Transaction Characteristics:**
|
|
274
|
-
* - Default isolation level: READ COMMITTED
|
|
275
|
-
* - Supports nested transactions via savepoints
|
|
276
|
-
* - Automatic rollback on error
|
|
277
|
-
* - MVCC (Multi-Version Concurrency Control)
|
|
278
|
-
*
|
|
279
|
-
* @template T - Return type
|
|
280
|
-
* @param {Function} callback - Transaction callback
|
|
281
|
-
* @param {Object} [options] - Transaction options
|
|
282
|
-
* @param {string} [options.isolationLevel] - Isolation level
|
|
283
|
-
* @returns {Promise<T>} Transaction result
|
|
284
|
-
*/
|
|
121
|
+
/** Executes a callback within a PostgreSQL transaction. */
|
|
285
122
|
async transaction(callback, options) {
|
|
286
|
-
// Delegate to BaseAdapter's implementation
|
|
287
123
|
return super.transaction(callback, options);
|
|
288
124
|
}
|
|
289
|
-
/**
|
|
290
|
-
* Creates a savepoint within a transaction.
|
|
291
|
-
*
|
|
292
|
-
* **PostgreSQL Savepoint Behavior:**
|
|
293
|
-
* - Allows partial rollback within transaction
|
|
294
|
-
* - Savepoint names are case-sensitive
|
|
295
|
-
* - Automatically released on transaction commit
|
|
296
|
-
* - Rolled back on transaction rollback
|
|
297
|
-
*
|
|
298
|
-
* @template T - Return type
|
|
299
|
-
* @param {Knex.Transaction} trx - Parent transaction
|
|
300
|
-
* @param {Function} callback - Savepoint callback
|
|
301
|
-
* @returns {Promise<T>} Savepoint result
|
|
302
|
-
*/
|
|
125
|
+
/** Creates a savepoint within a transaction. */
|
|
303
126
|
async savepoint(trx, callback) {
|
|
304
127
|
return trx.savepoint(callback);
|
|
305
128
|
}
|
|
306
|
-
|
|
307
|
-
// Schema Management
|
|
308
|
-
// ============================================================================
|
|
309
|
-
/**
|
|
310
|
-
* Checks if a table exists in the database.
|
|
311
|
-
*
|
|
312
|
-
* Queries information_schema.tables which is the standard PostgreSQL approach
|
|
313
|
-
* for table existence checking.
|
|
314
|
-
*
|
|
315
|
-
* @param {string} tableName - Table name to check
|
|
316
|
-
* @returns {Promise<boolean>} True if table exists, false otherwise
|
|
317
|
-
*/
|
|
129
|
+
/** Checks if a table exists via information_schema. */
|
|
318
130
|
async tableExists(tableName) {
|
|
319
131
|
const knex = this.getKnex();
|
|
320
132
|
const database = this.config.connection.database;
|
|
321
|
-
const result = await knex.raw(`SELECT table_name
|
|
322
|
-
FROM information_schema.tables
|
|
323
|
-
WHERE table_catalog = ?
|
|
133
|
+
const result = await knex.raw(`SELECT table_name
|
|
134
|
+
FROM information_schema.tables
|
|
135
|
+
WHERE table_catalog = ?
|
|
324
136
|
AND table_name = ?`, [database, tableName]);
|
|
325
137
|
return result.rows.length > 0;
|
|
326
138
|
}
|
|
327
|
-
/**
|
|
328
|
-
* Adds a serial auto-increment primary key column to a table.
|
|
329
|
-
*
|
|
330
|
-
* **PostgreSQL SERIAL Behavior:**
|
|
331
|
-
* - SERIAL = INTEGER with auto-increment (sequence)
|
|
332
|
-
* - BIGSERIAL = BIGINT with auto-increment (recommended for large tables)
|
|
333
|
-
* - Automatically creates a sequence (tablename_columnname_seq)
|
|
334
|
-
* - Primary key constraint added automatically
|
|
335
|
-
*
|
|
336
|
-
* @param {Knex.CreateTableBuilder} table - Knex table builder
|
|
337
|
-
* @param {string} [columnName='id'] - Column name (default: 'id')
|
|
338
|
-
*/
|
|
139
|
+
/** Adds a serial auto-increment primary key column. */
|
|
339
140
|
autoIncrementColumn(table, columnName = 'id') {
|
|
340
141
|
// Use increments() which creates SERIAL PRIMARY KEY for PostgreSQL
|
|
341
142
|
table.increments(columnName);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgresql-adapter.js","sourceRoot":"","sources":["../../src/adapters/postgresql-adapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD
|
|
1
|
+
{"version":3,"file":"postgresql-adapter.js","sourceRoot":"","sources":["../../src/adapters/postgresql-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,7 @@
|
|
|
1
1
|
import type { Knex } from 'knex';
|
|
2
2
|
import { BaseAdapter } from './base-adapter.js';
|
|
3
3
|
import type { DatabaseConfig } from '../config/types.js';
|
|
4
|
-
/**
|
|
5
|
-
* SQLite adapter implementation with BaseAdapter integration.
|
|
6
|
-
*
|
|
7
|
-
* SQLite is a file-based database that doesn't require authentication,
|
|
8
|
-
* so this adapter overrides the connect() method to bypass the auth flow.
|
|
9
|
-
*
|
|
10
|
-
* @extends BaseAdapter
|
|
11
|
-
*/
|
|
4
|
+
/** SQLite adapter (file-based, no authentication required). */
|
|
12
5
|
export declare class SQLiteAdapter extends BaseAdapter {
|
|
13
6
|
readonly supportsReturning = false;
|
|
14
7
|
readonly supportsJSON = false;
|
|
@@ -17,30 +10,13 @@ export declare class SQLiteAdapter extends BaseAdapter {
|
|
|
17
10
|
readonly supportsWindowFunctions = true;
|
|
18
11
|
readonly supportsSavepoints = true;
|
|
19
12
|
readonly databaseName: "sqlite";
|
|
20
|
-
/**
|
|
21
|
-
* Creates a new SQLite adapter instance.
|
|
22
|
-
*
|
|
23
|
-
* @param config - Database configuration (auth is ignored for SQLite)
|
|
24
|
-
*/
|
|
25
13
|
constructor(config: DatabaseConfig);
|
|
26
|
-
/**
|
|
27
|
-
* Returns the Knex dialect for SQLite.
|
|
28
|
-
*/
|
|
29
14
|
getDialect(): string;
|
|
30
|
-
/**
|
|
31
|
-
* Initializes SQLite-specific settings (PRAGMA configuration).
|
|
32
|
-
*/
|
|
15
|
+
/** Initializes SQLite-specific settings (PRAGMA configuration). */
|
|
33
16
|
initialize(): Promise<void>;
|
|
34
|
-
/**
|
|
35
|
-
* Establishes SQLite connection (overrides BaseAdapter to bypass auth).
|
|
36
|
-
*
|
|
37
|
-
* SQLite doesn't require authentication, so we create the Knex instance
|
|
38
|
-
* directly without going through the authentication provider flow.
|
|
39
|
-
*/
|
|
17
|
+
/** Establishes SQLite connection (bypasses auth flow). */
|
|
40
18
|
connect(config?: Knex.Config): Promise<Knex>;
|
|
41
|
-
/**
|
|
42
|
-
* Closes SQLite connection.
|
|
43
|
-
*/
|
|
19
|
+
/** Closes SQLite connection with WAL checkpoint. */
|
|
44
20
|
disconnect(): Promise<void>;
|
|
45
21
|
insertReturning<T extends Record<string, any>>(table: string, data: Partial<T>): Promise<T>;
|
|
46
22
|
upsert<T extends Record<string, any>>(table: string, data: Partial<T>, conflictColumns: string[], updateColumns?: string[]): Promise<number>;
|