sqlew 5.0.8 → 5.1.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 +27 -0
- package/README.md +2 -2
- 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.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 +17 -45
- package/dist/config/global-config.d.ts.map +1 -1
- package/dist/config/global-config.js +169 -30
- 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/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/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/docs/CLI_USAGE.md +27 -107
- package/docs/CONFIGURATION.md +10 -5
- package/docs/DATABASE_AUTH.md +3 -3
- 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,23 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* Suggest Tool
|
|
2
|
+
* Suggest Tool - Native RDBMS Integration Tests
|
|
3
3
|
*
|
|
4
|
-
* Tests
|
|
5
|
-
* and three-tier detection on
|
|
6
|
-
*
|
|
7
|
-
* Task #533: Refactor to use direct Knex operations instead of MCP tool functions
|
|
8
|
-
*
|
|
9
|
-
* REFACTORING PATTERN:
|
|
10
|
-
* - Direct database operations via Knex for all data setup
|
|
11
|
-
* - Manual tag index population (t_tag_index inserts)
|
|
12
|
-
* - Manual similarity score calculation (Levenshtein, Jaccard)
|
|
13
|
-
* - No MCP tool function calls (no handleSuggestAction, no setDecision)
|
|
4
|
+
* Tests tag index (t_tag_index), similarity calculations (Levenshtein, Jaccard),
|
|
5
|
+
* and three-tier detection via direct Knex operations on MySQL, MariaDB, and PostgreSQL.
|
|
14
6
|
*/
|
|
15
7
|
import { describe, it } from 'node:test';
|
|
16
8
|
import assert from 'node:assert';
|
|
17
9
|
import { runTestsOnAllDatabases } from './test-harness.js';
|
|
18
|
-
// ============================================================================
|
|
19
|
-
// Similarity Calculation Helpers (Manual Implementation)
|
|
20
|
-
// ============================================================================
|
|
21
10
|
/**
|
|
22
11
|
* Calculate Levenshtein distance between two strings
|
|
23
12
|
* Used for key pattern similarity scoring
|
|
@@ -115,29 +104,23 @@ function calculatePriorityScore(priority) {
|
|
|
115
104
|
// 4 (critical) = 5 points, 3 (high) = 4 points, 2 (medium) = 3 points, 1 (low) = 2 points
|
|
116
105
|
return Math.min(priority + 1, 5);
|
|
117
106
|
}
|
|
118
|
-
// ============================================================================
|
|
119
|
-
// Database Helper Functions
|
|
120
|
-
// ============================================================================
|
|
121
107
|
/**
|
|
122
108
|
* Create a decision with tags (manual insert)
|
|
123
109
|
*/
|
|
124
110
|
async function createDecisionWithTags(db, params) {
|
|
125
111
|
const { key, value, layer, tags = [], priority = 2, version = '1.0.0', projectId } = params;
|
|
126
|
-
// Get or create context key
|
|
127
112
|
let keyRecord = await db('m_context_keys').where({ key_name: key }).first();
|
|
128
113
|
if (!keyRecord) {
|
|
129
114
|
await db('m_context_keys').insert({ key_name: key });
|
|
130
115
|
keyRecord = await db('m_context_keys').where({ key_name: key }).first();
|
|
131
116
|
}
|
|
132
117
|
const keyId = keyRecord.id;
|
|
133
|
-
// Get layer ID
|
|
134
118
|
const layerRecord = await db('m_layers').where({ name: layer }).first();
|
|
135
119
|
if (!layerRecord) {
|
|
136
120
|
throw new Error(`Layer "${layer}" not found`);
|
|
137
121
|
}
|
|
138
122
|
const layerId = layerRecord.id;
|
|
139
123
|
const ts = Math.floor(Date.now() / 1000);
|
|
140
|
-
// Insert decision
|
|
141
124
|
const existingDecision = await db('t_decisions')
|
|
142
125
|
.where({ key_id: keyId, project_id: projectId })
|
|
143
126
|
.first();
|
|
@@ -157,17 +140,14 @@ async function createDecisionWithTags(db, params) {
|
|
|
157
140
|
.where({ key_id: keyId, project_id: projectId })
|
|
158
141
|
.update({ value, version, layer_id: layerId, ts });
|
|
159
142
|
}
|
|
160
|
-
// Insert tags and populate tag index
|
|
161
143
|
if (tags.length > 0) {
|
|
162
144
|
for (const tagName of tags) {
|
|
163
|
-
// Get or create tag
|
|
164
145
|
let tagRecord = await db('m_tags').where({ name: tagName }).first();
|
|
165
146
|
if (!tagRecord) {
|
|
166
147
|
await db('m_tags').insert({ name: tagName });
|
|
167
148
|
tagRecord = await db('m_tags').where({ name: tagName }).first();
|
|
168
149
|
}
|
|
169
150
|
const tagId = tagRecord.id;
|
|
170
|
-
// Insert decision tag
|
|
171
151
|
const existingTag = await db('t_decision_tags')
|
|
172
152
|
.where({ decision_key_id: keyId, tag_id: tagId, project_id: projectId })
|
|
173
153
|
.first();
|
|
@@ -222,7 +202,6 @@ async function getDecisionByKeyId(db, keyId, projectId) {
|
|
|
222
202
|
.first();
|
|
223
203
|
if (!decision)
|
|
224
204
|
return null;
|
|
225
|
-
// Get tags
|
|
226
205
|
const tags = await db('t_decision_tags as dt')
|
|
227
206
|
.select('t.name as tag_name')
|
|
228
207
|
.join('m_tags as t', 'dt.tag_id', 't.id')
|
|
@@ -235,16 +214,12 @@ async function getDecisionByKeyId(db, keyId, projectId) {
|
|
|
235
214
|
}
|
|
236
215
|
runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) => {
|
|
237
216
|
let projectId;
|
|
238
|
-
// Get project ID before running tests
|
|
239
217
|
it('should get project ID', async () => {
|
|
240
218
|
const db = getDb();
|
|
241
219
|
const project = await db('m_projects').first();
|
|
242
220
|
assert.ok(project, 'Project should exist');
|
|
243
221
|
projectId = project.id;
|
|
244
222
|
});
|
|
245
|
-
// ============================================================================
|
|
246
|
-
// Tag Index Population Tests
|
|
247
|
-
// ============================================================================
|
|
248
223
|
describe('Tag Index (t_tag_index) - Data Integrity', () => {
|
|
249
224
|
it('should populate t_tag_index when creating decision with tags', async () => {
|
|
250
225
|
const db = getDb();
|
|
@@ -287,7 +262,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
|
|
|
287
262
|
tags: ['database'],
|
|
288
263
|
projectId,
|
|
289
264
|
});
|
|
290
|
-
// Query tag index for 'api' tag
|
|
291
265
|
const results = await queryTagIndex(db, ['api'], projectId);
|
|
292
266
|
assert.ok(results.length >= 2, 'Should find at least 2 decisions with api tag');
|
|
293
267
|
const apiKeys = results.map(r => r.key_name).filter(k => k.includes('api'));
|
|
@@ -295,7 +269,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
|
|
|
295
269
|
});
|
|
296
270
|
it('should handle FK constraints (source_id references m_context_keys)', async () => {
|
|
297
271
|
const db = getDb();
|
|
298
|
-
// Create decision
|
|
299
272
|
const keyId = await createDecisionWithTags(db, {
|
|
300
273
|
key: 'tag-index/fk-test',
|
|
301
274
|
value: 'test',
|
|
@@ -315,9 +288,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
|
|
|
315
288
|
assert.strictEqual(tagIndexEntry.source_id, contextKey.id, 'FK constraint should be valid');
|
|
316
289
|
});
|
|
317
290
|
});
|
|
318
|
-
// ============================================================================
|
|
319
|
-
// Key Similarity Tests (Manual Calculation)
|
|
320
|
-
// ============================================================================
|
|
321
291
|
describe('Key Similarity - Manual Calculation', () => {
|
|
322
292
|
it('should calculate Levenshtein distance for key similarity', async () => {
|
|
323
293
|
const db = getDb();
|
|
@@ -335,7 +305,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
|
|
|
335
305
|
tags: ['api', 'security'],
|
|
336
306
|
projectId,
|
|
337
307
|
});
|
|
338
|
-
// Manual similarity calculation
|
|
339
308
|
const key1 = 'similarity/api/authentication';
|
|
340
309
|
const key2 = 'similarity/api/authorization';
|
|
341
310
|
const keySimilarity = calculateKeySimilarity(key1, key2);
|
|
@@ -357,7 +326,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
|
|
|
357
326
|
tags: ['test'],
|
|
358
327
|
projectId,
|
|
359
328
|
});
|
|
360
|
-
// Get decisions
|
|
361
329
|
const decision1 = await getDecisionByKeyId(db, keyId1, projectId);
|
|
362
330
|
const decision2 = await getDecisionByKeyId(db, keyId2, projectId);
|
|
363
331
|
// Calculate full similarity score (matches actual suggest tool):
|
|
@@ -378,9 +346,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
|
|
|
378
346
|
assert.ok(totalScore >= 30, `Score ${totalScore} should be above low threshold (30)`);
|
|
379
347
|
});
|
|
380
348
|
});
|
|
381
|
-
// ============================================================================
|
|
382
|
-
// Tag Overlap Tests (Jaccard Similarity)
|
|
383
|
-
// ============================================================================
|
|
384
349
|
describe('Tag Overlap - Jaccard Similarity', () => {
|
|
385
350
|
it('should calculate Jaccard similarity for tag overlap', async () => {
|
|
386
351
|
const db = getDb();
|
|
@@ -398,7 +363,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
|
|
|
398
363
|
tags: ['performance'],
|
|
399
364
|
projectId,
|
|
400
365
|
});
|
|
401
|
-
// Calculate Jaccard similarity
|
|
402
366
|
const tags1 = ['performance', 'security'];
|
|
403
367
|
const tags2 = ['performance', 'security', 'critical'];
|
|
404
368
|
const tags3 = ['performance'];
|
|
@@ -409,7 +373,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
|
|
|
409
373
|
});
|
|
410
374
|
it('should rank by tag overlap using tag index', async () => {
|
|
411
375
|
const db = getDb();
|
|
412
|
-
// Create decisions with different tag overlaps
|
|
413
376
|
await createDecisionWithTags(db, {
|
|
414
377
|
key: 'ranking/high-overlap',
|
|
415
378
|
value: 'value1',
|
|
@@ -424,7 +387,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
|
|
|
424
387
|
tags: ['performance'],
|
|
425
388
|
projectId,
|
|
426
389
|
});
|
|
427
|
-
// Query tag index for multiple tags
|
|
428
390
|
const results = await queryTagIndex(db, ['performance', 'security'], projectId);
|
|
429
391
|
assert.ok(results.length > 0, 'Should find decisions with matching tags');
|
|
430
392
|
// Count tag matches per decision (v4 uses source_id)
|
|
@@ -467,9 +429,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
|
|
|
467
429
|
assert.ok(businessResults.every(r => r.layer === 'business'), 'All results should be from business layer');
|
|
468
430
|
});
|
|
469
431
|
});
|
|
470
|
-
// ============================================================================
|
|
471
|
-
// Three-Tier Similarity Detection (Manual Calculation)
|
|
472
|
-
// ============================================================================
|
|
473
432
|
describe('Three-Tier Similarity Detection - Manual', () => {
|
|
474
433
|
// Full scoring model (100 points max):
|
|
475
434
|
// - keySimilarity: 0-20 points
|
|
@@ -486,7 +445,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
|
|
|
486
445
|
tags: ['test'],
|
|
487
446
|
projectId,
|
|
488
447
|
});
|
|
489
|
-
// Manual similarity calculation for similar key
|
|
490
448
|
// NEW context (user input) vs EXISTING decision
|
|
491
449
|
const existingKey = 'tier1/existing';
|
|
492
450
|
const newKey = 'tier1/different'; // Different suffix to get lower score
|
|
@@ -510,7 +468,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
|
|
|
510
468
|
tags: ['api', 'security', 'authentication'],
|
|
511
469
|
projectId,
|
|
512
470
|
});
|
|
513
|
-
// Manual similarity calculation for highly similar decision
|
|
514
471
|
const existingKey = 'tier2/authentication-strategy';
|
|
515
472
|
const newKey = 'tier2/authentication-strategy-new';
|
|
516
473
|
const keySimilarity = calculateKeySimilarity(existingKey, newKey);
|
|
@@ -534,7 +491,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
|
|
|
534
491
|
version: '1.0.0',
|
|
535
492
|
projectId,
|
|
536
493
|
});
|
|
537
|
-
// Manual similarity calculation for near-exact duplicate
|
|
538
494
|
const existingKey = 'tier3/exact-match';
|
|
539
495
|
const newKey = 'tier3/exact-match'; // Exact same key
|
|
540
496
|
const keySimilarity = calculateKeySimilarity(existingKey, newKey); // 20 points (exact match)
|
|
@@ -556,7 +512,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
|
|
|
556
512
|
tags: ['api'],
|
|
557
513
|
projectId,
|
|
558
514
|
});
|
|
559
|
-
// Manual similarity calculation for completely different decision
|
|
560
515
|
const existingKey = 'no-match/api-design';
|
|
561
516
|
const newKey = 'no-match/database-schema';
|
|
562
517
|
const keySimilarity = calculateKeySimilarity(existingKey, newKey);
|
|
@@ -566,9 +521,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
|
|
|
566
521
|
assert.ok(totalScore < 35, `Score ${totalScore} should be below Tier 1 threshold (35)`);
|
|
567
522
|
});
|
|
568
523
|
});
|
|
569
|
-
// ============================================================================
|
|
570
|
-
// Cross-Database Compatibility Tests
|
|
571
|
-
// ============================================================================
|
|
572
524
|
describe(`Cross-database compatibility - ${dbType}`, () => {
|
|
573
525
|
it('should handle unicode in decision keys for tag index', async () => {
|
|
574
526
|
const db = getDb();
|
|
@@ -580,7 +532,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
|
|
|
580
532
|
tags: ['unicode'],
|
|
581
533
|
projectId,
|
|
582
534
|
});
|
|
583
|
-
// Query tag index
|
|
584
535
|
const results = await queryTagIndex(db, ['unicode'], projectId);
|
|
585
536
|
assert.ok(results.length > 0, 'Should find unicode decision in tag index');
|
|
586
537
|
const foundKey = results.find(r => r.key_name === unicodeKey);
|
|
@@ -595,7 +546,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
|
|
|
595
546
|
tags: ['api-v2', 'oauth2.0'],
|
|
596
547
|
projectId,
|
|
597
548
|
});
|
|
598
|
-
// Query tag index with special characters
|
|
599
549
|
const results = await queryTagIndex(db, ['api-v2'], projectId);
|
|
600
550
|
assert.ok(results.length > 0, 'Should find tags with special characters');
|
|
601
551
|
});
|
|
@@ -608,7 +558,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
|
|
|
608
558
|
tags: ['API'],
|
|
609
559
|
projectId,
|
|
610
560
|
});
|
|
611
|
-
// Query with different case
|
|
612
561
|
const upperResults = await queryTagIndex(db, ['API'], projectId);
|
|
613
562
|
const lowerResults = await queryTagIndex(db, ['api'], projectId);
|
|
614
563
|
// Behavior may vary by database
|
|
@@ -620,13 +569,9 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
|
|
|
620
569
|
}
|
|
621
570
|
});
|
|
622
571
|
});
|
|
623
|
-
// ============================================================================
|
|
624
|
-
// Tag Index Performance Tests
|
|
625
|
-
// ============================================================================
|
|
626
572
|
describe('Tag Index Performance', () => {
|
|
627
573
|
it('should efficiently query tag index for multiple tags', async () => {
|
|
628
574
|
const db = getDb();
|
|
629
|
-
// Create multiple decisions with overlapping tags
|
|
630
575
|
for (let i = 1; i <= 5; i++) {
|
|
631
576
|
await createDecisionWithTags(db, {
|
|
632
577
|
key: `perf/decision-${i}`,
|
|
@@ -636,7 +581,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
|
|
|
636
581
|
projectId,
|
|
637
582
|
});
|
|
638
583
|
}
|
|
639
|
-
// Query tag index for 'number' tag (should find all 5)
|
|
640
584
|
const results = await queryTagIndex(db, ['number'], projectId);
|
|
641
585
|
assert.ok(results.length >= 5, 'Should find all 5 decisions with number tag');
|
|
642
586
|
});
|
|
@@ -649,7 +593,6 @@ runTestsOnAllDatabases('Suggest Tool (v3.9.0) - Refactored', (getDb, dbType) =>
|
|
|
649
593
|
tags: ['tag1', 'tag2', 'tag3'],
|
|
650
594
|
projectId,
|
|
651
595
|
});
|
|
652
|
-
// Query tag index for multiple tags
|
|
653
596
|
const results = await queryTagIndex(db, ['tag1', 'tag2', 'tag3'], projectId);
|
|
654
597
|
// Group by source_id to count matches (v4 uses source_id)
|
|
655
598
|
const decisionMatches = new Map();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"suggest-tool.test.js","sourceRoot":"","sources":["../../../../src/tests/docker/native/suggest-tool.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"suggest-tool.test.js","sourceRoot":"","sources":["../../../../src/tests/docker/native/suggest-tool.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Native RDBMS Integration Test Harness
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Key Features:
|
|
8
|
-
* - runTestsOnAllDatabases(): Run same tests on all 3 databases
|
|
9
|
-
* - Database-agnostic assertion helpers
|
|
10
|
-
* - Minimal test data seeding
|
|
11
|
-
* - Automatic cleanup
|
|
12
|
-
*
|
|
13
|
-
* Note: Task and file tables removed in v5.0 (deprecated)
|
|
4
|
+
* Parameterized testing utilities for running test suites across
|
|
5
|
+
* MySQL, MariaDB, and PostgreSQL via fresh Knex migrations.
|
|
14
6
|
*/
|
|
15
7
|
import type { Knex } from 'knex';
|
|
16
8
|
import { type DatabaseType } from '../../database/testing-config.js';
|
|
17
|
-
import { type DatabaseFormat } from '../../../utils/sql-dump/index.js';
|
|
18
9
|
/**
|
|
19
10
|
* Run the same test suite on MySQL, MariaDB, and PostgreSQL
|
|
20
11
|
*
|
|
@@ -117,10 +108,6 @@ export declare function getScopeId(db: Knex, scopeName: string): Promise<number>
|
|
|
117
108
|
* Includes SQLite (local) + Docker databases (MySQL, MariaDB, PostgreSQL)
|
|
118
109
|
*/
|
|
119
110
|
export type CrossDbSourceType = 'sqlite' | DatabaseType;
|
|
120
|
-
/**
|
|
121
|
-
* Target database formats for SQL dump output
|
|
122
|
-
*/
|
|
123
|
-
export type CrossDbTargetFormat = DatabaseFormat;
|
|
124
111
|
/**
|
|
125
112
|
* Seed rich test data covering all v4 tables for migration testing
|
|
126
113
|
*
|
|
@@ -135,14 +122,6 @@ export type CrossDbTargetFormat = DatabaseFormat;
|
|
|
135
122
|
* @param projectId - Project ID to use (default: 1)
|
|
136
123
|
*/
|
|
137
124
|
export declare function seedRichTestData(db: Knex, projectId?: number): Promise<void>;
|
|
138
|
-
/**
|
|
139
|
-
* Execute SQL dump generation from a database
|
|
140
|
-
*
|
|
141
|
-
* @param db - Source Knex database connection
|
|
142
|
-
* @param targetFormat - Target database format (mysql, postgresql, sqlite)
|
|
143
|
-
* @returns Generated SQL dump string
|
|
144
|
-
*/
|
|
145
|
-
export declare function executeSqlDump(db: Knex, targetFormat: CrossDbTargetFormat): Promise<string>;
|
|
146
125
|
/**
|
|
147
126
|
* Verify sqlew access by checking row counts and basic CRUD operations
|
|
148
127
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test-harness.d.ts","sourceRoot":"","sources":["../../../../src/tests/docker/native/test-harness.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"test-harness.d.ts","sourceRoot":"","sources":["../../../../src/tests/docker/native/test-harness.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAEjC,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAErE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,sBAAsB,CACpC,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,MAAM,EAAE,YAAY,KAAK,IAAI,GAC7D,IAAI,CAuBN;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,YAAY,CAAC,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAiC1D;AAED;;;;;;;GAOG;AACH,wBAAsB,eAAe,CAAC,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAgB7D;AAED;;;;;;GAMG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,IAAI,EACR,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAaf;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMlF;AAID;;;;;;GAMG;AACH,wBAAsB,qBAAqB,CACzC,EAAE,EAAE,IAAI,EACR,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,IAAI,CAAC,CAiBf;AAED;;;;;;GAMG;AACH,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,IAAI,EACR,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,EAAE,GACrB,OAAO,CAAC,IAAI,CAAC,CAgBf;AAED;;;;;;GAMG;AACH,wBAAsB,QAAQ,CAAC,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CASzE;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI7E;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAS7E;AAED;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,QAAQ,GAAG,YAAY,CAAC;AAExD;;;;;;;;;;;;GAYG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,IAAI,EAAE,SAAS,GAAE,MAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAgDrF;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,EAAE,EAAE,IAAI,EACR,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GACtC,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IAC7E,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC,CAiDD;AAED;;;;;GAKG;AACH,wBAAsB,cAAc,CAAC,EAAE,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAwB9E"}
|
|
@@ -1,24 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Native RDBMS Integration Test Harness
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
* Key Features:
|
|
8
|
-
* - runTestsOnAllDatabases(): Run same tests on all 3 databases
|
|
9
|
-
* - Database-agnostic assertion helpers
|
|
10
|
-
* - Minimal test data seeding
|
|
11
|
-
* - Automatic cleanup
|
|
12
|
-
*
|
|
13
|
-
* Note: Task and file tables removed in v5.0 (deprecated)
|
|
4
|
+
* Parameterized testing utilities for running test suites across
|
|
5
|
+
* MySQL, MariaDB, and PostgreSQL via fresh Knex migrations.
|
|
14
6
|
*/
|
|
15
7
|
import { describe, before, after } from 'node:test';
|
|
16
8
|
import assert from 'node:assert';
|
|
17
9
|
import { initDatabase, teardownDatabase } from './db-init.js';
|
|
18
|
-
import { generateSqlDump } from '../../../utils/sql-dump/index.js';
|
|
19
|
-
// ============================================================================
|
|
20
|
-
// Parameterized Test Runner
|
|
21
|
-
// ============================================================================
|
|
22
10
|
/**
|
|
23
11
|
* Run the same test suite on MySQL, MariaDB, and PostgreSQL
|
|
24
12
|
*
|
|
@@ -55,14 +43,10 @@ export function runTestsOnAllDatabases(suiteName, defineTests) {
|
|
|
55
43
|
await teardownDatabase(db);
|
|
56
44
|
console.log(` ✅ ${dbType} cleanup complete`);
|
|
57
45
|
});
|
|
58
|
-
// Run the same tests with this database connection
|
|
59
46
|
defineTests(() => db, dbType);
|
|
60
47
|
});
|
|
61
48
|
}
|
|
62
49
|
}
|
|
63
|
-
// ============================================================================
|
|
64
|
-
// Test Data Seeding
|
|
65
|
-
// ============================================================================
|
|
66
50
|
/**
|
|
67
51
|
* Seed minimal test data for operations testing
|
|
68
52
|
*
|
|
@@ -75,7 +59,6 @@ export function runTestsOnAllDatabases(suiteName, defineTests) {
|
|
|
75
59
|
* @param db - Knex database connection
|
|
76
60
|
*/
|
|
77
61
|
export async function seedTestData(db) {
|
|
78
|
-
// Layers (should already exist from migrations, but verify)
|
|
79
62
|
const layerCount = await db('m_layers').count('* as count').first();
|
|
80
63
|
if (!layerCount || layerCount.count === 0) {
|
|
81
64
|
await db('m_layers').insert([
|
|
@@ -90,7 +73,6 @@ export async function seedTestData(db) {
|
|
|
90
73
|
{ name: 'review' },
|
|
91
74
|
]);
|
|
92
75
|
}
|
|
93
|
-
// Tags
|
|
94
76
|
const tags = ['test', 'api', 'performance', 'security', 'architecture'];
|
|
95
77
|
for (const tag of tags) {
|
|
96
78
|
const exists = await db('m_tags').where({ name: tag, project_id: 1 }).first();
|
|
@@ -98,7 +80,6 @@ export async function seedTestData(db) {
|
|
|
98
80
|
await db('m_tags').insert({ name: tag, project_id: 1 });
|
|
99
81
|
}
|
|
100
82
|
}
|
|
101
|
-
// Scopes
|
|
102
83
|
const scopes = ['global', 'module', 'component'];
|
|
103
84
|
for (const scope of scopes) {
|
|
104
85
|
const exists = await db('m_scopes').where({ name: scope, project_id: 1 }).first();
|
|
@@ -117,28 +98,19 @@ export async function seedTestData(db) {
|
|
|
117
98
|
* @param db - Knex database connection
|
|
118
99
|
*/
|
|
119
100
|
export async function cleanupTestData(db) {
|
|
120
|
-
// Delete in correct order (children first, parents last)
|
|
121
|
-
// Transaction tables
|
|
122
|
-
// t_decision_tags has (decision_key_id, project_id, tag_id)
|
|
123
101
|
await db('t_decision_tags').where('project_id', 1).del();
|
|
124
|
-
// t_decision_scopes has (decision_key_id, project_id, scope_id)
|
|
125
102
|
await db('t_decision_scopes').where('project_id', 1).del();
|
|
126
|
-
// t_decision_context
|
|
103
|
+
// t_decision_context added in v3.7.0
|
|
127
104
|
await db('t_decision_context').where('project_id', 1).del();
|
|
128
|
-
// t_decisions has project_id
|
|
129
105
|
await db('t_decisions').where('project_id', 1).del();
|
|
130
|
-
// t_decisions_numeric has project_id
|
|
131
106
|
await db('t_decisions_numeric').where('project_id', 1).del();
|
|
132
|
-
// m_context_keys has
|
|
107
|
+
// m_context_keys has no project_id column
|
|
133
108
|
await db('m_context_keys').del();
|
|
134
109
|
await db('t_constraints').where('project_id', 1).del();
|
|
135
110
|
// Note: Task and file tables removed in v5.0
|
|
136
|
-
//
|
|
111
|
+
// polymorphic design: source_type + source_id + tag
|
|
137
112
|
await db('t_tag_index').where('project_id', 1).del();
|
|
138
113
|
}
|
|
139
|
-
// ============================================================================
|
|
140
|
-
// Assertion Helpers
|
|
141
|
-
// ============================================================================
|
|
142
114
|
/**
|
|
143
115
|
* Assert that a decision exists with expected key and value
|
|
144
116
|
*
|
|
@@ -203,7 +175,6 @@ export async function assertTagIndexPopulated(db, key, expectedTags) {
|
|
|
203
175
|
.where({ key_name: key })
|
|
204
176
|
.first();
|
|
205
177
|
assert.ok(contextKey, `Decision key "${key}" should exist`);
|
|
206
|
-
// t_tag_index uses polymorphic design: source_type + source_id + tag
|
|
207
178
|
const indexEntries = await db('t_tag_index')
|
|
208
179
|
.where({ source_type: 'decision', source_id: contextKey.id, project_id: 1 })
|
|
209
180
|
.pluck('tag');
|
|
@@ -212,9 +183,6 @@ export async function assertTagIndexPopulated(db, key, expectedTags) {
|
|
|
212
183
|
assert.ok(indexEntries.includes(expectedTag), `Tag index should contain "${expectedTag}"`);
|
|
213
184
|
}
|
|
214
185
|
}
|
|
215
|
-
// ============================================================================
|
|
216
|
-
// Query Helpers
|
|
217
|
-
// ============================================================================
|
|
218
186
|
/**
|
|
219
187
|
* Get tag ID by name (creates if not exists)
|
|
220
188
|
*
|
|
@@ -272,7 +240,6 @@ export async function getScopeId(db, scopeName) {
|
|
|
272
240
|
*/
|
|
273
241
|
export async function seedRichTestData(db, projectId = 1) {
|
|
274
242
|
const now = Math.floor(Date.now() / 1000);
|
|
275
|
-
// 1. Create context keys and decisions
|
|
276
243
|
const decisionKeys = ['migration-test-decision-1', 'migration-test-decision-2', 'migration-test-decision-3'];
|
|
277
244
|
for (let i = 0; i < decisionKeys.length; i++) {
|
|
278
245
|
const keyName = decisionKeys[i];
|
|
@@ -288,7 +255,6 @@ export async function seedRichTestData(db, projectId = 1) {
|
|
|
288
255
|
layer_id: layerId,
|
|
289
256
|
status: 1, // Status.ACTIVE = 1
|
|
290
257
|
});
|
|
291
|
-
// Add tags to decisions
|
|
292
258
|
const tagIds = await db('m_tags').where({ project_id: projectId }).limit(2).pluck('id');
|
|
293
259
|
for (const tagId of tagIds) {
|
|
294
260
|
await db('t_decision_tags').insert({
|
|
@@ -298,7 +264,6 @@ export async function seedRichTestData(db, projectId = 1) {
|
|
|
298
264
|
}).catch(() => { }); // Ignore duplicates
|
|
299
265
|
}
|
|
300
266
|
}
|
|
301
|
-
// 2. Create constraints
|
|
302
267
|
const constraints = [
|
|
303
268
|
{ text: 'Migration test constraint 1', category: 'architecture', priority: 3 },
|
|
304
269
|
{ text: 'Migration test constraint 2', category: 'performance', priority: 2 },
|
|
@@ -317,21 +282,6 @@ export async function seedRichTestData(db, projectId = 1) {
|
|
|
317
282
|
}
|
|
318
283
|
// Note: Task and file table seeding removed in v5.0 (deprecated)
|
|
319
284
|
}
|
|
320
|
-
/**
|
|
321
|
-
* Execute SQL dump generation from a database
|
|
322
|
-
*
|
|
323
|
-
* @param db - Source Knex database connection
|
|
324
|
-
* @param targetFormat - Target database format (mysql, postgresql, sqlite)
|
|
325
|
-
* @returns Generated SQL dump string
|
|
326
|
-
*/
|
|
327
|
-
export async function executeSqlDump(db, targetFormat) {
|
|
328
|
-
return generateSqlDump(db, targetFormat, {
|
|
329
|
-
includeHeader: true,
|
|
330
|
-
includeSchema: true,
|
|
331
|
-
chunkSize: 100,
|
|
332
|
-
conflictMode: 'replace',
|
|
333
|
-
});
|
|
334
|
-
}
|
|
335
285
|
/**
|
|
336
286
|
* Verify sqlew access by checking row counts and basic CRUD operations
|
|
337
287
|
*
|
|
@@ -342,7 +292,6 @@ export async function executeSqlDump(db, targetFormat) {
|
|
|
342
292
|
export async function verifySqlewAccess(db, expectedCounts) {
|
|
343
293
|
const errors = [];
|
|
344
294
|
const tables = {};
|
|
345
|
-
// Core v4 tables to verify (task/file tables removed in v5.0)
|
|
346
295
|
const tablesToCheck = [
|
|
347
296
|
'm_projects',
|
|
348
297
|
'm_layers',
|
|
@@ -368,7 +317,6 @@ export async function verifySqlewAccess(db, expectedCounts) {
|
|
|
368
317
|
tables[table] = { count: -1, match: false };
|
|
369
318
|
}
|
|
370
319
|
}
|
|
371
|
-
// Test basic CRUD: Try to insert and read a decision
|
|
372
320
|
try {
|
|
373
321
|
const testKey = `migration-verify-${Date.now()}`;
|
|
374
322
|
await db('m_context_keys').insert({ key_name: testKey });
|
|
@@ -376,7 +324,6 @@ export async function verifySqlewAccess(db, expectedCounts) {
|
|
|
376
324
|
if (!inserted) {
|
|
377
325
|
errors.push('CRUD test failed: Could not read inserted context key');
|
|
378
326
|
}
|
|
379
|
-
// Cleanup
|
|
380
327
|
await db('m_context_keys').where({ key_name: testKey }).del();
|
|
381
328
|
}
|
|
382
329
|
catch (err) {
|
|
@@ -396,7 +343,6 @@ export async function verifySqlewAccess(db, expectedCounts) {
|
|
|
396
343
|
*/
|
|
397
344
|
export async function getTableCounts(db) {
|
|
398
345
|
const counts = {};
|
|
399
|
-
// Task and file tables removed in v5.0
|
|
400
346
|
const tables = [
|
|
401
347
|
'm_projects',
|
|
402
348
|
'm_layers',
|