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,141 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* DEFAULT value conversion tests for CREATE TABLE statements
|
|
3
|
-
*
|
|
4
|
-
* Tests that SQLite DEFAULT functions are correctly converted to target database syntax.
|
|
5
|
-
* Focus: INTEGER timestamp defaults (strftime('%s', 'now') → UNIX_TIMESTAMP() / EXTRACT(epoch...))
|
|
6
|
-
*/
|
|
7
|
-
import { describe, it } from 'node:test';
|
|
8
|
-
import assert from 'node:assert';
|
|
9
|
-
import knex from 'knex';
|
|
10
|
-
import { generateSqlDump } from '../../../utils/sql-dump/index.js';
|
|
11
|
-
describe('SQL Dump DEFAULT Value Conversions', () => {
|
|
12
|
-
describe('INTEGER Timestamp Defaults', () => {
|
|
13
|
-
it('should convert strftime(\'%s\', \'now\') to UNIX_TIMESTAMP() for MySQL', async () => {
|
|
14
|
-
// Create in-memory SQLite database with INTEGER timestamp DEFAULT
|
|
15
|
-
const db = knex({
|
|
16
|
-
client: 'better-sqlite3',
|
|
17
|
-
connection: ':memory:',
|
|
18
|
-
useNullAsDefault: true,
|
|
19
|
-
});
|
|
20
|
-
await db.schema.createTable('v4_help_token_usage', (table) => {
|
|
21
|
-
table.increments('usage_id').primary();
|
|
22
|
-
table.text('query_type').notNullable();
|
|
23
|
-
table.integer('estimated_tokens').notNullable();
|
|
24
|
-
// SQLite INTEGER timestamp with strftime DEFAULT (requires parentheses)
|
|
25
|
-
table.integer('timestamp').notNullable().defaultTo(db.raw("(strftime('%s', 'now'))"));
|
|
26
|
-
});
|
|
27
|
-
// Generate MySQL dump
|
|
28
|
-
const dump = await generateSqlDump(db, 'mysql', {
|
|
29
|
-
tables: ['v4_help_token_usage'],
|
|
30
|
-
includeSchema: true,
|
|
31
|
-
});
|
|
32
|
-
// Verify conversion
|
|
33
|
-
assert.ok(dump.includes('UNIX_TIMESTAMP()'), 'Should convert to UNIX_TIMESTAMP()');
|
|
34
|
-
assert.ok(!dump.includes('strftime'), 'Should not contain strftime');
|
|
35
|
-
assert.ok(!dump.includes('NOW()'), 'Should not use NOW() for integer timestamps');
|
|
36
|
-
await db.destroy();
|
|
37
|
-
});
|
|
38
|
-
it('should convert strftime(\'%s\', \'now\') to EXTRACT(epoch FROM NOW())::INTEGER for PostgreSQL', async () => {
|
|
39
|
-
const db = knex({
|
|
40
|
-
client: 'better-sqlite3',
|
|
41
|
-
connection: ':memory:',
|
|
42
|
-
useNullAsDefault: true,
|
|
43
|
-
});
|
|
44
|
-
await db.schema.createTable('v4_help_token_usage', (table) => {
|
|
45
|
-
table.increments('usage_id').primary();
|
|
46
|
-
table.text('query_type').notNullable();
|
|
47
|
-
table.integer('estimated_tokens').notNullable();
|
|
48
|
-
table.integer('timestamp').notNullable().defaultTo(db.raw("(strftime('%s', 'now'))"));
|
|
49
|
-
});
|
|
50
|
-
const dump = await generateSqlDump(db, 'postgresql', {
|
|
51
|
-
tables: ['v4_help_token_usage'],
|
|
52
|
-
includeSchema: true,
|
|
53
|
-
});
|
|
54
|
-
// Verify conversion
|
|
55
|
-
assert.ok(dump.includes('EXTRACT(epoch FROM NOW())::INTEGER'), 'Should convert to EXTRACT with INTEGER cast');
|
|
56
|
-
assert.ok(!dump.includes('strftime'), 'Should not contain strftime');
|
|
57
|
-
assert.ok(!dump.includes('NOW()') || dump.includes('EXTRACT(epoch FROM NOW())'), 'Should not use bare NOW() for integer timestamps');
|
|
58
|
-
await db.destroy();
|
|
59
|
-
});
|
|
60
|
-
it('should convert unixepoch() to UNIX_TIMESTAMP() for MySQL', async () => {
|
|
61
|
-
const db = knex({
|
|
62
|
-
client: 'better-sqlite3',
|
|
63
|
-
connection: ':memory:',
|
|
64
|
-
useNullAsDefault: true,
|
|
65
|
-
});
|
|
66
|
-
await db.schema.createTable('t_test', (table) => {
|
|
67
|
-
table.increments('id').primary();
|
|
68
|
-
table.integer('created_at').defaultTo(db.raw('(unixepoch())'));
|
|
69
|
-
});
|
|
70
|
-
const dump = await generateSqlDump(db, 'mysql', {
|
|
71
|
-
tables: ['t_test'],
|
|
72
|
-
includeSchema: true,
|
|
73
|
-
});
|
|
74
|
-
assert.ok(dump.includes('UNIX_TIMESTAMP()'), 'Should convert unixepoch() to UNIX_TIMESTAMP()');
|
|
75
|
-
assert.ok(!dump.includes('unixepoch'), 'Should not contain unixepoch');
|
|
76
|
-
await db.destroy();
|
|
77
|
-
});
|
|
78
|
-
it('should convert unixepoch() to EXTRACT(epoch FROM NOW())::INTEGER for PostgreSQL', async () => {
|
|
79
|
-
const db = knex({
|
|
80
|
-
client: 'better-sqlite3',
|
|
81
|
-
connection: ':memory:',
|
|
82
|
-
useNullAsDefault: true,
|
|
83
|
-
});
|
|
84
|
-
await db.schema.createTable('t_test', (table) => {
|
|
85
|
-
table.increments('id').primary();
|
|
86
|
-
table.integer('created_at').defaultTo(db.raw('(unixepoch())'));
|
|
87
|
-
});
|
|
88
|
-
const dump = await generateSqlDump(db, 'postgresql', {
|
|
89
|
-
tables: ['t_test'],
|
|
90
|
-
includeSchema: true,
|
|
91
|
-
});
|
|
92
|
-
assert.ok(dump.includes('EXTRACT(epoch FROM NOW())::INTEGER'), 'Should convert unixepoch() to EXTRACT with INTEGER cast');
|
|
93
|
-
assert.ok(!dump.includes('unixepoch'), 'Should not contain unixepoch');
|
|
94
|
-
await db.destroy();
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
describe('Datetime Defaults (Non-Integer)', () => {
|
|
98
|
-
it('should skip DEFAULT for TEXT columns in MySQL (TEXT cannot have DEFAULT)', async () => {
|
|
99
|
-
const db = knex({
|
|
100
|
-
client: 'better-sqlite3',
|
|
101
|
-
connection: ':memory:',
|
|
102
|
-
useNullAsDefault: true,
|
|
103
|
-
});
|
|
104
|
-
await db.schema.createTable('t_test', (table) => {
|
|
105
|
-
table.increments('id').primary();
|
|
106
|
-
table.text('created_at').defaultTo(db.raw("(strftime('%Y-%m-%d %H:%M:%S', 'now'))"));
|
|
107
|
-
});
|
|
108
|
-
const dump = await generateSqlDump(db, 'mysql', {
|
|
109
|
-
tables: ['t_test'],
|
|
110
|
-
includeSchema: true,
|
|
111
|
-
});
|
|
112
|
-
// MySQL TEXT columns cannot have DEFAULT values, so it should be skipped
|
|
113
|
-
// Check that created_at column does not have DEFAULT (ignore DEFAULT CHARSET)
|
|
114
|
-
const createdAtLine = dump.split('\n').find(line => line.includes('created_at'));
|
|
115
|
-
assert.ok(createdAtLine, 'Should have created_at column');
|
|
116
|
-
assert.ok(!createdAtLine.includes('DEFAULT'), 'created_at column should not have DEFAULT');
|
|
117
|
-
assert.ok(!dump.includes('strftime'), 'Should not contain strftime');
|
|
118
|
-
assert.ok(!dump.includes('NOW()'), 'Should not use NOW() for TEXT columns');
|
|
119
|
-
await db.destroy();
|
|
120
|
-
});
|
|
121
|
-
it('should convert strftime datetime formats to NOW() for PostgreSQL', async () => {
|
|
122
|
-
const db = knex({
|
|
123
|
-
client: 'better-sqlite3',
|
|
124
|
-
connection: ':memory:',
|
|
125
|
-
useNullAsDefault: true,
|
|
126
|
-
});
|
|
127
|
-
await db.schema.createTable('t_test', (table) => {
|
|
128
|
-
table.increments('id').primary();
|
|
129
|
-
table.text('created_at').defaultTo(db.raw("(strftime('%Y-%m-%d', 'now'))"));
|
|
130
|
-
});
|
|
131
|
-
const dump = await generateSqlDump(db, 'postgresql', {
|
|
132
|
-
tables: ['t_test'],
|
|
133
|
-
includeSchema: true,
|
|
134
|
-
});
|
|
135
|
-
assert.ok(dump.includes('NOW()'), 'Should convert datetime strftime to NOW()');
|
|
136
|
-
assert.ok(!dump.includes('strftime'), 'Should not contain strftime');
|
|
137
|
-
await db.destroy();
|
|
138
|
-
});
|
|
139
|
-
});
|
|
140
|
-
});
|
|
141
|
-
//# sourceMappingURL=default-conversions.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"default-conversions.test.js","sourceRoot":"","sources":["../../../../src/tests/database/sql-dump/default-conversions.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Topological Sort Unit Tests
|
|
3
|
-
*
|
|
4
|
-
* Tests the foreign key dependency resolution and topological sorting logic.
|
|
5
|
-
* Uses DRY shared test utilities from test-helpers.ts
|
|
6
|
-
*
|
|
7
|
-
* MAINTENANCE NOTE:
|
|
8
|
-
* The "End-to-End Sorting with Real Schema" test validates table ordering against
|
|
9
|
-
* the actual mcp-sqlew schema by running all migrations. This test MUST be updated
|
|
10
|
-
* whenever new tables or foreign key relationships are added to the schema.
|
|
11
|
-
*
|
|
12
|
-
* What to update after schema changes:
|
|
13
|
-
* 1. Add assertions for new FK dependencies (e.g., "new_table should come after parent_table")
|
|
14
|
-
* 2. Verify master tables (m_*) still come before transaction tables (t_*)
|
|
15
|
-
* 3. Check that the test database isolation (unique temp files) prevents conflicts
|
|
16
|
-
*
|
|
17
|
-
* Why this matters:
|
|
18
|
-
* SQL dumps export tables in dependency order. If topological sort fails or produces
|
|
19
|
-
* wrong order, importing the dump will fail with "table does not exist" errors.
|
|
20
|
-
*
|
|
21
|
-
* Test structure:
|
|
22
|
-
* - Pure algorithm tests: Validate sorting logic with synthetic data
|
|
23
|
-
* - SQLite integration tests: Test FK extraction from real schema
|
|
24
|
-
* - End-to-end test: Validate with full production schema (requires maintenance)
|
|
25
|
-
*/
|
|
26
|
-
export {};
|
|
27
|
-
//# sourceMappingURL=table-ordering.test.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table-ordering.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/database/sql-dump/table-ordering.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG"}
|
|
@@ -1,284 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Topological Sort Unit Tests
|
|
3
|
-
*
|
|
4
|
-
* Tests the foreign key dependency resolution and topological sorting logic.
|
|
5
|
-
* Uses DRY shared test utilities from test-helpers.ts
|
|
6
|
-
*
|
|
7
|
-
* MAINTENANCE NOTE:
|
|
8
|
-
* The "End-to-End Sorting with Real Schema" test validates table ordering against
|
|
9
|
-
* the actual mcp-sqlew schema by running all migrations. This test MUST be updated
|
|
10
|
-
* whenever new tables or foreign key relationships are added to the schema.
|
|
11
|
-
*
|
|
12
|
-
* What to update after schema changes:
|
|
13
|
-
* 1. Add assertions for new FK dependencies (e.g., "new_table should come after parent_table")
|
|
14
|
-
* 2. Verify master tables (m_*) still come before transaction tables (t_*)
|
|
15
|
-
* 3. Check that the test database isolation (unique temp files) prevents conflicts
|
|
16
|
-
*
|
|
17
|
-
* Why this matters:
|
|
18
|
-
* SQL dumps export tables in dependency order. If topological sort fails or produces
|
|
19
|
-
* wrong order, importing the dump will fail with "table does not exist" errors.
|
|
20
|
-
*
|
|
21
|
-
* Test structure:
|
|
22
|
-
* - Pure algorithm tests: Validate sorting logic with synthetic data
|
|
23
|
-
* - SQLite integration tests: Test FK extraction from real schema
|
|
24
|
-
* - End-to-end test: Validate with full production schema (requires maintenance)
|
|
25
|
-
*/
|
|
26
|
-
import { describe, it, before } from 'node:test';
|
|
27
|
-
import assert from 'node:assert';
|
|
28
|
-
import { mkdirSync } from 'node:fs';
|
|
29
|
-
import { getTableDependencies, topologicalSort } from '../../../utils/sql-dump/index.js';
|
|
30
|
-
import { connectDb, disconnectDb, getDbConfig } from '../../utils/test-helpers.js';
|
|
31
|
-
describe('Topological Sort Unit Tests', () => {
|
|
32
|
-
// Generate unique database path for this test suite to avoid conflicts
|
|
33
|
-
const TEST_DB_PATH = `.tmp-test/table-ordering-${Date.now()}.db`;
|
|
34
|
-
// Ensure test directory exists
|
|
35
|
-
before(() => {
|
|
36
|
-
mkdirSync('.tmp-test', { recursive: true });
|
|
37
|
-
});
|
|
38
|
-
describe('topologicalSort() - Pure Algorithm Tests', () => {
|
|
39
|
-
it('should handle empty table list', () => {
|
|
40
|
-
const tables = [];
|
|
41
|
-
const dependencies = new Map();
|
|
42
|
-
const sorted = topologicalSort(tables, dependencies);
|
|
43
|
-
assert.deepStrictEqual(sorted, []);
|
|
44
|
-
});
|
|
45
|
-
it('should handle single table with no dependencies', () => {
|
|
46
|
-
const tables = ['table_a'];
|
|
47
|
-
const dependencies = new Map([['table_a', []]]);
|
|
48
|
-
const sorted = topologicalSort(tables, dependencies);
|
|
49
|
-
assert.deepStrictEqual(sorted, ['table_a']);
|
|
50
|
-
});
|
|
51
|
-
it('should sort linear dependency chain (A←B←C←D)', () => {
|
|
52
|
-
// D depends on C, C depends on B, B depends on A
|
|
53
|
-
const tables = ['table_d', 'table_c', 'table_b', 'table_a'];
|
|
54
|
-
const dependencies = new Map([
|
|
55
|
-
['table_a', []],
|
|
56
|
-
['table_b', ['table_a']],
|
|
57
|
-
['table_c', ['table_b']],
|
|
58
|
-
['table_d', ['table_c']],
|
|
59
|
-
]);
|
|
60
|
-
const sorted = topologicalSort(tables, dependencies);
|
|
61
|
-
// Parents must come before children: A → B → C → D
|
|
62
|
-
const indexA = sorted.indexOf('table_a');
|
|
63
|
-
const indexB = sorted.indexOf('table_b');
|
|
64
|
-
const indexC = sorted.indexOf('table_c');
|
|
65
|
-
const indexD = sorted.indexOf('table_d');
|
|
66
|
-
assert.ok(indexA < indexB, 'A should come before B');
|
|
67
|
-
assert.ok(indexB < indexC, 'B should come before C');
|
|
68
|
-
assert.ok(indexC < indexD, 'C should come before D');
|
|
69
|
-
});
|
|
70
|
-
it('should sort diamond dependency (A←B,C; B,C←D)', () => {
|
|
71
|
-
// A
|
|
72
|
-
// / \
|
|
73
|
-
// B C
|
|
74
|
-
// \ /
|
|
75
|
-
// D
|
|
76
|
-
// D depends on both B and C, which both depend on A
|
|
77
|
-
const tables = ['table_d', 'table_c', 'table_b', 'table_a'];
|
|
78
|
-
const dependencies = new Map([
|
|
79
|
-
['table_a', []],
|
|
80
|
-
['table_b', ['table_a']],
|
|
81
|
-
['table_c', ['table_a']],
|
|
82
|
-
['table_d', ['table_b', 'table_c']],
|
|
83
|
-
]);
|
|
84
|
-
const sorted = topologicalSort(tables, dependencies);
|
|
85
|
-
const indexA = sorted.indexOf('table_a');
|
|
86
|
-
const indexB = sorted.indexOf('table_b');
|
|
87
|
-
const indexC = sorted.indexOf('table_c');
|
|
88
|
-
const indexD = sorted.indexOf('table_d');
|
|
89
|
-
// A must come before B and C
|
|
90
|
-
assert.ok(indexA < indexB, 'A should come before B');
|
|
91
|
-
assert.ok(indexA < indexC, 'A should come before C');
|
|
92
|
-
// B and C must come before D
|
|
93
|
-
assert.ok(indexB < indexD, 'B should come before D');
|
|
94
|
-
assert.ok(indexC < indexD, 'C should come before D');
|
|
95
|
-
});
|
|
96
|
-
it('should handle circular dependency (A←B←C←A) with warning', () => {
|
|
97
|
-
// Circular: A → B → C → A
|
|
98
|
-
const tables = ['table_a', 'table_b', 'table_c'];
|
|
99
|
-
const dependencies = new Map([
|
|
100
|
-
['table_a', ['table_c']],
|
|
101
|
-
['table_b', ['table_a']],
|
|
102
|
-
['table_c', ['table_b']],
|
|
103
|
-
]);
|
|
104
|
-
// Should complete without throwing (logs warning)
|
|
105
|
-
const sorted = topologicalSort(tables, dependencies);
|
|
106
|
-
// All tables should be in result
|
|
107
|
-
assert.strictEqual(sorted.length, 3);
|
|
108
|
-
assert.ok(sorted.includes('table_a'));
|
|
109
|
-
assert.ok(sorted.includes('table_b'));
|
|
110
|
-
assert.ok(sorted.includes('table_c'));
|
|
111
|
-
});
|
|
112
|
-
it('should handle self-referential dependency (A←A)', () => {
|
|
113
|
-
// Table A has FK to itself (e.g., categories.parent_id → categories.id)
|
|
114
|
-
const tables = ['table_a'];
|
|
115
|
-
const dependencies = new Map([['table_a', ['table_a']]]);
|
|
116
|
-
const sorted = topologicalSort(tables, dependencies);
|
|
117
|
-
// Should include table once
|
|
118
|
-
assert.strictEqual(sorted.length, 1);
|
|
119
|
-
assert.strictEqual(sorted[0], 'table_a');
|
|
120
|
-
});
|
|
121
|
-
it('should handle disconnected graphs (independent tables)', () => {
|
|
122
|
-
// A←B C←D (two separate chains)
|
|
123
|
-
const tables = ['table_a', 'table_b', 'table_c', 'table_d'];
|
|
124
|
-
const dependencies = new Map([
|
|
125
|
-
['table_a', []],
|
|
126
|
-
['table_b', ['table_a']],
|
|
127
|
-
['table_c', []],
|
|
128
|
-
['table_d', ['table_c']],
|
|
129
|
-
]);
|
|
130
|
-
const sorted = topologicalSort(tables, dependencies);
|
|
131
|
-
// All tables should be present
|
|
132
|
-
assert.strictEqual(sorted.length, 4);
|
|
133
|
-
// Dependencies should be respected within each chain
|
|
134
|
-
const indexA = sorted.indexOf('table_a');
|
|
135
|
-
const indexB = sorted.indexOf('table_b');
|
|
136
|
-
const indexC = sorted.indexOf('table_c');
|
|
137
|
-
const indexD = sorted.indexOf('table_d');
|
|
138
|
-
assert.ok(indexA < indexB, 'A should come before B');
|
|
139
|
-
assert.ok(indexC < indexD, 'C should come before D');
|
|
140
|
-
});
|
|
141
|
-
it('should handle complex multi-dependency graph', () => {
|
|
142
|
-
// A
|
|
143
|
-
// / \
|
|
144
|
-
// B C
|
|
145
|
-
// |\ /|
|
|
146
|
-
// | X |
|
|
147
|
-
// |/ \|
|
|
148
|
-
// D E
|
|
149
|
-
// \ /
|
|
150
|
-
// F
|
|
151
|
-
const tables = ['table_a', 'table_b', 'table_c', 'table_d', 'table_e', 'table_f'];
|
|
152
|
-
const dependencies = new Map([
|
|
153
|
-
['table_a', []],
|
|
154
|
-
['table_b', ['table_a']],
|
|
155
|
-
['table_c', ['table_a']],
|
|
156
|
-
['table_d', ['table_b', 'table_c']],
|
|
157
|
-
['table_e', ['table_b', 'table_c']],
|
|
158
|
-
['table_f', ['table_d', 'table_e']],
|
|
159
|
-
]);
|
|
160
|
-
const sorted = topologicalSort(tables, dependencies);
|
|
161
|
-
const indices = new Map(sorted.map((t, i) => [t, i]));
|
|
162
|
-
// A must come first
|
|
163
|
-
assert.ok(indices.get('table_a') < indices.get('table_b'));
|
|
164
|
-
assert.ok(indices.get('table_a') < indices.get('table_c'));
|
|
165
|
-
// B and C before D and E
|
|
166
|
-
assert.ok(indices.get('table_b') < indices.get('table_d'));
|
|
167
|
-
assert.ok(indices.get('table_b') < indices.get('table_e'));
|
|
168
|
-
assert.ok(indices.get('table_c') < indices.get('table_d'));
|
|
169
|
-
assert.ok(indices.get('table_c') < indices.get('table_e'));
|
|
170
|
-
// D and E before F
|
|
171
|
-
assert.ok(indices.get('table_d') < indices.get('table_f'));
|
|
172
|
-
assert.ok(indices.get('table_e') < indices.get('table_f'));
|
|
173
|
-
});
|
|
174
|
-
});
|
|
175
|
-
describe('getTableDependencies() - SQLite Integration', () => {
|
|
176
|
-
let db;
|
|
177
|
-
it('should extract FK dependencies from SQLite schema', async () => {
|
|
178
|
-
const config = getDbConfig('sqlite', TEST_DB_PATH);
|
|
179
|
-
db = await connectDb(config);
|
|
180
|
-
// Create test schema with FK relationships
|
|
181
|
-
await db.schema.createTable('m_projects', (table) => {
|
|
182
|
-
table.increments('id').primary();
|
|
183
|
-
table.string('name').notNullable();
|
|
184
|
-
});
|
|
185
|
-
await db.schema.createTable('v4_users', (table) => {
|
|
186
|
-
table.increments('id').primary();
|
|
187
|
-
table.integer('project_id').unsigned().notNullable();
|
|
188
|
-
table.foreign('project_id').references('m_projects.id');
|
|
189
|
-
});
|
|
190
|
-
await db.schema.createTable('v4_posts', (table) => {
|
|
191
|
-
table.increments('id').primary();
|
|
192
|
-
table.integer('user_id').unsigned().notNullable();
|
|
193
|
-
table.foreign('user_id').references('v4_users.id');
|
|
194
|
-
});
|
|
195
|
-
// Extract dependencies
|
|
196
|
-
const tables = ['m_projects', 'v4_users', 'v4_posts'];
|
|
197
|
-
const dependencies = await getTableDependencies(db, tables);
|
|
198
|
-
// Verify dependencies
|
|
199
|
-
assert.deepStrictEqual(dependencies.get('m_projects'), []);
|
|
200
|
-
assert.deepStrictEqual(dependencies.get('v4_users'), ['m_projects']);
|
|
201
|
-
assert.deepStrictEqual(dependencies.get('v4_posts'), ['v4_users']);
|
|
202
|
-
// Clean up
|
|
203
|
-
await disconnectDb(db);
|
|
204
|
-
});
|
|
205
|
-
it('should handle self-referential FK (categories example)', async () => {
|
|
206
|
-
const config = getDbConfig('sqlite', TEST_DB_PATH);
|
|
207
|
-
db = await connectDb(config);
|
|
208
|
-
// Categories table with parent_id self-reference
|
|
209
|
-
await db.schema.createTable('categories', (table) => {
|
|
210
|
-
table.increments('id').primary();
|
|
211
|
-
table.string('name').notNullable();
|
|
212
|
-
table.integer('parent_id').unsigned().nullable();
|
|
213
|
-
table.foreign('parent_id').references('categories.id');
|
|
214
|
-
});
|
|
215
|
-
const tables = ['categories'];
|
|
216
|
-
const dependencies = await getTableDependencies(db, tables);
|
|
217
|
-
// Self-references are intentionally filtered out (don't affect sort order)
|
|
218
|
-
assert.deepStrictEqual(dependencies.get('categories'), []);
|
|
219
|
-
await disconnectDb(db);
|
|
220
|
-
});
|
|
221
|
-
it('should handle tables with no FKs', async () => {
|
|
222
|
-
const config = getDbConfig('sqlite', TEST_DB_PATH);
|
|
223
|
-
db = await connectDb(config);
|
|
224
|
-
await db.schema.createTable('standalone_table', (table) => {
|
|
225
|
-
table.increments('id').primary();
|
|
226
|
-
table.string('data');
|
|
227
|
-
});
|
|
228
|
-
const tables = ['standalone_table'];
|
|
229
|
-
const dependencies = await getTableDependencies(db, tables);
|
|
230
|
-
assert.deepStrictEqual(dependencies.get('standalone_table'), []);
|
|
231
|
-
await disconnectDb(db);
|
|
232
|
-
});
|
|
233
|
-
it('should ignore FKs to tables not in the list', async () => {
|
|
234
|
-
const config = getDbConfig('sqlite', TEST_DB_PATH);
|
|
235
|
-
db = await connectDb(config);
|
|
236
|
-
await db.schema.createTable('external_table', (table) => {
|
|
237
|
-
table.increments('id').primary();
|
|
238
|
-
});
|
|
239
|
-
await db.schema.createTable('my_table', (table) => {
|
|
240
|
-
table.increments('id').primary();
|
|
241
|
-
table.integer('external_id').unsigned();
|
|
242
|
-
table.foreign('external_id').references('external_table.id');
|
|
243
|
-
});
|
|
244
|
-
// Only include my_table in the list
|
|
245
|
-
const tables = ['my_table'];
|
|
246
|
-
const dependencies = await getTableDependencies(db, tables);
|
|
247
|
-
// FK to external_table should be ignored
|
|
248
|
-
assert.deepStrictEqual(dependencies.get('my_table'), []);
|
|
249
|
-
await disconnectDb(db);
|
|
250
|
-
});
|
|
251
|
-
});
|
|
252
|
-
describe('End-to-End Sorting with Real Schema', () => {
|
|
253
|
-
// ⚠️ MAINTENANCE REQUIRED: Update this test when adding new tables or FK relationships
|
|
254
|
-
// This test validates dependency order using the REAL production schema
|
|
255
|
-
it('should correctly sort mcp-sqlew schema tables', async () => {
|
|
256
|
-
// Use separate database for migration test to avoid conflicts
|
|
257
|
-
const E2E_DB_PATH = `.tmp-test/table-ordering-e2e-${Date.now()}.db`;
|
|
258
|
-
const config = getDbConfig('sqlite', E2E_DB_PATH);
|
|
259
|
-
const db = await connectDb(config);
|
|
260
|
-
// Run migrations to get real schema
|
|
261
|
-
await db.migrate.latest();
|
|
262
|
-
// Get all tables
|
|
263
|
-
const result = await db.raw(`
|
|
264
|
-
SELECT name FROM sqlite_master
|
|
265
|
-
WHERE type='table' AND name NOT LIKE 'sqlite_%' AND name != 'knex_migrations'
|
|
266
|
-
ORDER BY name
|
|
267
|
-
`);
|
|
268
|
-
const tables = result.map((r) => r.name);
|
|
269
|
-
// Extract dependencies
|
|
270
|
-
const dependencies = await getTableDependencies(db, tables);
|
|
271
|
-
// Sort topologically
|
|
272
|
-
const sorted = topologicalSort(tables, dependencies);
|
|
273
|
-
// Verify master tables come before transaction tables
|
|
274
|
-
// ⚠️ ADD NEW ASSERTIONS HERE when adding tables with FK dependencies
|
|
275
|
-
const projectsIndex = sorted.indexOf('m_projects');
|
|
276
|
-
const decisionsIndex = sorted.indexOf('t_decisions');
|
|
277
|
-
const constraintsIndex = sorted.indexOf('t_constraints');
|
|
278
|
-
assert.ok(projectsIndex < decisionsIndex, 'm_projects should come before t_decisions');
|
|
279
|
-
assert.ok(projectsIndex < constraintsIndex, 'm_projects should come before t_constraints');
|
|
280
|
-
await disconnectDb(db);
|
|
281
|
-
});
|
|
282
|
-
});
|
|
283
|
-
});
|
|
284
|
-
//# sourceMappingURL=table-ordering.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"table-ordering.test.js","sourceRoot":"","sources":["../../../../src/tests/database/sql-dump/table-ordering.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"type-conversion.test.d.ts","sourceRoot":"","sources":["../../../../src/tests/database/sql-dump/type-conversion.test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG"}
|