sqlew 3.7.3 → 3.8.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 +427 -1
- package/README.md +71 -2
- package/assets/kanban-visualizer.png +0 -0
- package/assets/sample-agents/sqlew-scrum-master.md +4 -4
- package/dist/adapters/postgresql-adapter.d.ts +197 -5
- package/dist/adapters/postgresql-adapter.d.ts.map +1 -1
- package/dist/adapters/postgresql-adapter.js +300 -36
- package/dist/adapters/postgresql-adapter.js.map +1 -1
- package/dist/cli/db-export.d.ts +29 -0
- package/dist/cli/db-export.d.ts.map +1 -0
- package/dist/cli/db-export.js +251 -0
- package/dist/cli/db-export.js.map +1 -0
- package/dist/cli/db-import.d.ts +31 -0
- package/dist/cli/db-import.d.ts.map +1 -0
- package/dist/cli/db-import.js +258 -0
- package/dist/cli/db-import.js.map +1 -0
- package/dist/cli.d.ts +1 -1
- package/dist/cli.js +32 -73
- package/dist/cli.js.map +1 -1
- package/dist/config/knex/bootstrap/20251025021416_seed_master_data.d.ts.map +1 -1
- package/dist/config/knex/bootstrap/20251025021416_seed_master_data.js +158 -45
- package/dist/config/knex/bootstrap/20251025021416_seed_master_data.js.map +1 -1
- package/dist/config/knex/bootstrap/20251025070349_create_views.d.ts.map +1 -1
- package/dist/config/knex/bootstrap/20251025070349_create_views.js +60 -8
- package/dist/config/knex/bootstrap/20251025070349_create_views.js.map +1 -1
- package/dist/config/knex/enhancements/20251025100000_seed_help_metadata.js +1 -1
- package/dist/config/knex/enhancements/20251025100100_seed_remaining_use_cases.js +5 -5
- package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.d.ts.map +1 -1
- package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.js +9 -1
- package/dist/config/knex/enhancements/20251028000000_simplify_agent_system.js.map +1 -1
- package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.d.ts.map +1 -1
- package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.js +8 -1
- package/dist/config/knex/enhancements/20251105000000_add_token_usage_table.js.map +1 -1
- package/dist/config/knex/enhancements/20251108000000_add_planning_layers_v3_8_0.d.ts +21 -0
- package/dist/config/knex/enhancements/20251108000000_add_planning_layers_v3_8_0.d.ts.map +1 -0
- package/dist/config/knex/enhancements/20251108000000_add_planning_layers_v3_8_0.js +73 -0
- package/dist/config/knex/enhancements/20251108000000_add_planning_layers_v3_8_0.js.map +1 -0
- package/dist/config/knex/enhancements/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.d.ts +19 -0
- package/dist/config/knex/enhancements/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.d.ts.map +1 -0
- package/dist/config/knex/enhancements/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.js +88 -0
- package/dist/config/knex/enhancements/20251109000000_fix_task_file_links_unique_constraint_v3_8_0.js.map +1 -0
- package/dist/config/knex/enhancements/20251109000003_token_usage_cross_db_compat_v3_7_5.d.ts +24 -0
- package/dist/config/knex/enhancements/20251109000003_token_usage_cross_db_compat_v3_7_5.d.ts.map +1 -0
- package/dist/config/knex/enhancements/20251109000003_token_usage_cross_db_compat_v3_7_5.js +79 -0
- package/dist/config/knex/enhancements/20251109000003_token_usage_cross_db_compat_v3_7_5.js.map +1 -0
- package/dist/config/knex/enhancements/20251109010000_tool_cleanup_v3_8_0.d.ts +27 -0
- package/dist/config/knex/enhancements/20251109010000_tool_cleanup_v3_8_0.d.ts.map +1 -0
- package/dist/config/knex/enhancements/20251109010000_tool_cleanup_v3_8_0.js +347 -0
- package/dist/config/knex/enhancements/20251109010000_tool_cleanup_v3_8_0.js.map +1 -0
- package/dist/config/knex/enhancements/20251109020000_fix_missing_help_actions_v3_8_0.d.ts +30 -0
- package/dist/config/knex/enhancements/20251109020000_fix_missing_help_actions_v3_8_0.d.ts.map +1 -0
- package/dist/config/knex/enhancements/20251109020000_fix_missing_help_actions_v3_8_0.js +232 -0
- package/dist/config/knex/enhancements/20251109020000_fix_missing_help_actions_v3_8_0.js.map +1 -0
- package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.d.ts.map +1 -1
- package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.js +9 -0
- package/dist/config/knex/upgrades/20251104000000_add_multi_project_v3_7_0.js.map +1 -1
- package/dist/config/knex/upgrades/20251108000000_hotfix_v_tagged_constraints_project_id.d.ts +14 -0
- package/dist/config/knex/upgrades/20251108000000_hotfix_v_tagged_constraints_project_id.d.ts.map +1 -0
- package/dist/config/knex/upgrades/20251108000000_hotfix_v_tagged_constraints_project_id.js +97 -0
- package/dist/config/knex/upgrades/20251108000000_hotfix_v_tagged_constraints_project_id.js.map +1 -0
- package/dist/config/knex/upgrades/20251109000002_multi_project_cross_db_compat_v3_7_5.d.ts +24 -0
- package/dist/config/knex/upgrades/20251109000002_multi_project_cross_db_compat_v3_7_5.d.ts.map +1 -0
- package/dist/config/knex/upgrades/20251109000002_multi_project_cross_db_compat_v3_7_5.js +303 -0
- package/dist/config/knex/upgrades/20251109000002_multi_project_cross_db_compat_v3_7_5.js.map +1 -0
- package/dist/constants.d.ts +14 -2
- package/dist/constants.d.ts.map +1 -1
- package/dist/constants.js +28 -1
- package/dist/constants.js.map +1 -1
- package/dist/database/config/adapter-factory.d.ts +13 -0
- package/dist/database/config/adapter-factory.d.ts.map +1 -0
- package/dist/database/config/adapter-factory.js +21 -0
- package/dist/database/config/adapter-factory.js.map +1 -0
- package/dist/database/config/config-ops.d.ts +34 -0
- package/dist/database/config/config-ops.d.ts.map +1 -0
- package/dist/database/config/config-ops.js +76 -0
- package/dist/database/config/config-ops.js.map +1 -0
- package/dist/database/index.d.ts +21 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +31 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/initialization/cleanup.d.ts +8 -0
- package/dist/database/initialization/cleanup.d.ts.map +1 -0
- package/dist/database/initialization/cleanup.js +17 -0
- package/dist/database/initialization/cleanup.js.map +1 -0
- package/dist/database/initialization/init.d.ts +21 -0
- package/dist/database/initialization/init.d.ts.map +1 -0
- package/dist/database/initialization/init.js +83 -0
- package/dist/database/initialization/init.js.map +1 -0
- package/dist/database/operations/deletes.d.ts +10 -0
- package/dist/database/operations/deletes.d.ts.map +1 -0
- package/dist/database/operations/deletes.js +14 -0
- package/dist/database/operations/deletes.js.map +1 -0
- package/dist/database/operations/inserts.d.ts +40 -0
- package/dist/database/operations/inserts.d.ts.map +1 -0
- package/dist/database/operations/inserts.js +202 -0
- package/dist/database/operations/inserts.js.map +1 -0
- package/dist/database/operations/queries.d.ts +57 -0
- package/dist/database/operations/queries.d.ts.map +1 -0
- package/dist/database/operations/queries.js +77 -0
- package/dist/database/operations/queries.js.map +1 -0
- package/dist/database/operations/updates.d.ts +10 -0
- package/dist/database/operations/updates.d.ts.map +1 -0
- package/dist/database/operations/updates.js +14 -0
- package/dist/database/operations/updates.js.map +1 -0
- package/dist/database/types.d.ts +5 -0
- package/dist/database/types.d.ts.map +1 -0
- package/dist/database/types.js +5 -0
- package/dist/database/types.js.map +1 -0
- package/dist/database.d.ts +4 -144
- package/dist/database.d.ts.map +1 -1
- package/dist/database.js +5 -461
- package/dist/database.js.map +1 -1
- package/dist/index.js +29 -777
- package/dist/index.js.map +1 -1
- package/dist/server/arg-parser.d.ts +40 -0
- package/dist/server/arg-parser.d.ts.map +1 -0
- package/dist/server/arg-parser.js +137 -0
- package/dist/server/arg-parser.js.map +1 -0
- package/dist/server/setup.d.ts +31 -0
- package/dist/server/setup.d.ts.map +1 -0
- package/dist/server/setup.js +186 -0
- package/dist/server/setup.js.map +1 -0
- package/dist/server/shutdown.d.ts +15 -0
- package/dist/server/shutdown.d.ts.map +1 -0
- package/dist/server/shutdown.js +42 -0
- package/dist/server/shutdown.js.map +1 -0
- package/dist/server/tool-handlers.d.ts +10 -0
- package/dist/server/tool-handlers.d.ts.map +1 -0
- package/dist/server/tool-handlers.js +478 -0
- package/dist/server/tool-handlers.js.map +1 -0
- package/dist/server/tool-registry.d.ts +11 -0
- package/dist/server/tool-registry.d.ts.map +1 -0
- package/dist/server/tool-registry.js +225 -0
- package/dist/server/tool-registry.js.map +1 -0
- package/dist/tests/all-features.test.js +6 -38
- package/dist/tests/all-features.test.js.map +1 -1
- package/dist/tests/batch-validation-comprehensive.test.d.ts +12 -0
- package/dist/tests/batch-validation-comprehensive.test.d.ts.map +1 -0
- package/dist/tests/batch-validation-comprehensive.test.js +472 -0
- package/dist/tests/batch-validation-comprehensive.test.js.map +1 -0
- package/dist/tests/batch-validation-integration.test.d.ts +6 -0
- package/dist/tests/batch-validation-integration.test.d.ts.map +1 -0
- package/dist/tests/batch-validation-integration.test.js +193 -0
- package/dist/tests/batch-validation-integration.test.js.map +1 -0
- package/dist/tests/batch-validation.test.d.ts +6 -0
- package/dist/tests/batch-validation.test.d.ts.map +1 -0
- package/dist/tests/batch-validation.test.js +298 -0
- package/dist/tests/batch-validation.test.js.map +1 -0
- package/dist/tests/context-modular.test.d.ts +7 -0
- package/dist/tests/context-modular.test.d.ts.map +1 -0
- package/dist/tests/context-modular.test.js +271 -0
- package/dist/tests/context-modular.test.js.map +1 -0
- package/dist/tests/decision-batch-validation.test.d.ts +6 -0
- package/dist/tests/decision-batch-validation.test.d.ts.map +1 -0
- package/dist/tests/decision-batch-validation.test.js +253 -0
- package/dist/tests/decision-batch-validation.test.js.map +1 -0
- package/dist/tests/help-system.test.js +1 -1
- package/dist/tests/help-system.test.js.map +1 -1
- package/dist/tests/migrations/test-all-versions-real.js +3 -2
- package/dist/tests/migrations/test-all-versions-real.js.map +1 -1
- package/dist/tests/multi-project.test.js +2 -2
- package/dist/tests/multi-project.test.js.map +1 -1
- package/dist/tests/parameter-validation.test.js +2 -16
- package/dist/tests/parameter-validation.test.js.map +1 -1
- package/dist/tests/tasks.auto-pruning-decision-link.test.js +1 -1
- package/dist/tests/tasks.auto-pruning-decision-link.test.js.map +1 -1
- package/dist/tests/tasks.file-actions-integration.test.d.ts +10 -0
- package/dist/tests/tasks.file-actions-integration.test.d.ts.map +1 -0
- package/dist/tests/tasks.file-actions-integration.test.js +162 -0
- package/dist/tests/tasks.file-actions-integration.test.js.map +1 -0
- package/dist/tests/tasks.file-actions-validation.test.d.ts +6 -0
- package/dist/tests/tasks.file-actions-validation.test.d.ts.map +1 -0
- package/dist/tests/tasks.file-actions-validation.test.js +221 -0
- package/dist/tests/tasks.file-actions-validation.test.js.map +1 -0
- package/dist/tools/constraints/actions/add.d.ts +15 -0
- package/dist/tools/constraints/actions/add.d.ts.map +1 -0
- package/dist/tools/constraints/actions/add.js +101 -0
- package/dist/tools/constraints/actions/add.js.map +1 -0
- package/dist/tools/constraints/actions/deactivate.d.ts +16 -0
- package/dist/tools/constraints/actions/deactivate.d.ts.map +1 -0
- package/dist/tools/constraints/actions/deactivate.js +49 -0
- package/dist/tools/constraints/actions/deactivate.js.map +1 -0
- package/dist/tools/constraints/actions/get.d.ts +16 -0
- package/dist/tools/constraints/actions/get.d.ts.map +1 -0
- package/dist/tools/constraints/actions/get.js +76 -0
- package/dist/tools/constraints/actions/get.js.map +1 -0
- package/dist/tools/constraints/help/example.d.ts +9 -0
- package/dist/tools/constraints/help/example.d.ts.map +1 -0
- package/dist/tools/constraints/help/example.js +144 -0
- package/dist/tools/constraints/help/example.js.map +1 -0
- package/dist/tools/constraints/help/help.d.ts +9 -0
- package/dist/tools/constraints/help/help.d.ts.map +1 -0
- package/dist/tools/constraints/help/help.js +31 -0
- package/dist/tools/constraints/help/help.js.map +1 -0
- package/dist/tools/constraints/index.d.ts +12 -0
- package/dist/tools/constraints/index.d.ts.map +1 -0
- package/dist/tools/constraints/index.js +13 -0
- package/dist/tools/constraints/index.js.map +1 -0
- package/dist/tools/constraints/internal/validation.d.ts +11 -0
- package/dist/tools/constraints/internal/validation.d.ts.map +1 -0
- package/dist/tools/constraints/internal/validation.js +17 -0
- package/dist/tools/constraints/internal/validation.js.map +1 -0
- package/dist/tools/constraints/types.d.ts +6 -0
- package/dist/tools/constraints/types.d.ts.map +1 -0
- package/dist/tools/constraints/types.js +6 -0
- package/dist/tools/constraints/types.js.map +1 -0
- package/dist/tools/context/actions/add-context.d.ts +14 -0
- package/dist/tools/context/actions/add-context.d.ts.map +1 -0
- package/dist/tools/context/actions/add-context.js +62 -0
- package/dist/tools/context/actions/add-context.js.map +1 -0
- package/dist/tools/context/actions/batch-set.d.ts +16 -0
- package/dist/tools/context/actions/batch-set.d.ts.map +1 -0
- package/dist/tools/context/actions/batch-set.js +126 -0
- package/dist/tools/context/actions/batch-set.js.map +1 -0
- package/dist/tools/context/actions/create-template.d.ts +15 -0
- package/dist/tools/context/actions/create-template.d.ts.map +1 -0
- package/dist/tools/context/actions/create-template.js +68 -0
- package/dist/tools/context/actions/create-template.js.map +1 -0
- package/dist/tools/context/actions/get.d.ts +18 -0
- package/dist/tools/context/actions/get.d.ts.map +1 -0
- package/dist/tools/context/actions/get.js +80 -0
- package/dist/tools/context/actions/get.js.map +1 -0
- package/dist/tools/context/actions/hard-delete.d.ts +18 -0
- package/dist/tools/context/actions/hard-delete.d.ts.map +1 -0
- package/dist/tools/context/actions/hard-delete.js +85 -0
- package/dist/tools/context/actions/hard-delete.js.map +1 -0
- package/dist/tools/context/actions/has-updates.d.ts +16 -0
- package/dist/tools/context/actions/has-updates.d.ts.map +1 -0
- package/dist/tools/context/actions/has-updates.js +83 -0
- package/dist/tools/context/actions/has-updates.js.map +1 -0
- package/dist/tools/context/actions/list-contexts.d.ts +14 -0
- package/dist/tools/context/actions/list-contexts.d.ts.map +1 -0
- package/dist/tools/context/actions/list-contexts.js +43 -0
- package/dist/tools/context/actions/list-contexts.js.map +1 -0
- package/dist/tools/context/actions/list-templates.d.ts +15 -0
- package/dist/tools/context/actions/list-templates.d.ts.map +1 -0
- package/dist/tools/context/actions/list-templates.js +47 -0
- package/dist/tools/context/actions/list-templates.js.map +1 -0
- package/dist/tools/context/actions/list.d.ts +16 -0
- package/dist/tools/context/actions/list.d.ts.map +1 -0
- package/dist/tools/context/actions/list.js +100 -0
- package/dist/tools/context/actions/list.js.map +1 -0
- package/dist/tools/context/actions/quick-set.d.ts +21 -0
- package/dist/tools/context/actions/quick-set.d.ts.map +1 -0
- package/dist/tools/context/actions/quick-set.js +104 -0
- package/dist/tools/context/actions/quick-set.js.map +1 -0
- package/dist/tools/context/actions/search-advanced.d.ts +15 -0
- package/dist/tools/context/actions/search-advanced.d.ts.map +1 -0
- package/dist/tools/context/actions/search-advanced.js +140 -0
- package/dist/tools/context/actions/search-advanced.js.map +1 -0
- package/dist/tools/context/actions/search-layer.d.ts +15 -0
- package/dist/tools/context/actions/search-layer.d.ts.map +1 -0
- package/dist/tools/context/actions/search-layer.js +106 -0
- package/dist/tools/context/actions/search-layer.js.map +1 -0
- package/dist/tools/context/actions/search-tags.d.ts +15 -0
- package/dist/tools/context/actions/search-tags.d.ts.map +1 -0
- package/dist/tools/context/actions/search-tags.js +85 -0
- package/dist/tools/context/actions/search-tags.js.map +1 -0
- package/dist/tools/context/actions/set-from-template.d.ts +16 -0
- package/dist/tools/context/actions/set-from-template.d.ts.map +1 -0
- package/dist/tools/context/actions/set-from-template.js +83 -0
- package/dist/tools/context/actions/set-from-template.js.map +1 -0
- package/dist/tools/context/actions/set.d.ts +16 -0
- package/dist/tools/context/actions/set.d.ts.map +1 -0
- package/dist/tools/context/actions/set.js +56 -0
- package/dist/tools/context/actions/set.js.map +1 -0
- package/dist/tools/context/actions/versions.d.ts +15 -0
- package/dist/tools/context/actions/versions.d.ts.map +1 -0
- package/dist/tools/context/actions/versions.js +69 -0
- package/dist/tools/context/actions/versions.js.map +1 -0
- package/dist/tools/context/help/example.d.ts +5 -0
- package/dist/tools/context/help/example.d.ts.map +1 -0
- package/dist/tools/context/help/example.js +96 -0
- package/dist/tools/context/help/example.js.map +1 -0
- package/dist/tools/context/help/help.d.ts +5 -0
- package/dist/tools/context/help/help.d.ts.map +1 -0
- package/dist/tools/context/help/help.js +65 -0
- package/dist/tools/context/help/help.js.map +1 -0
- package/dist/tools/context/index.d.ts +25 -0
- package/dist/tools/context/index.d.ts.map +1 -0
- package/dist/tools/context/index.js +26 -0
- package/dist/tools/context/index.js.map +1 -0
- package/dist/tools/context/internal/queries.d.ts +18 -0
- package/dist/tools/context/internal/queries.d.ts.map +1 -0
- package/dist/tools/context/internal/queries.js +160 -0
- package/dist/tools/context/internal/queries.js.map +1 -0
- package/dist/tools/context/internal/validation.d.ts +39 -0
- package/dist/tools/context/internal/validation.d.ts.map +1 -0
- package/dist/tools/context/internal/validation.js +125 -0
- package/dist/tools/context/internal/validation.js.map +1 -0
- package/dist/tools/context/types.d.ts +6 -0
- package/dist/tools/context/types.d.ts.map +1 -0
- package/dist/tools/context/types.js +6 -0
- package/dist/tools/context/types.js.map +1 -0
- package/dist/tools/example/actions/get.d.ts +14 -0
- package/dist/tools/example/actions/get.d.ts.map +1 -0
- package/dist/tools/example/actions/get.js +40 -0
- package/dist/tools/example/actions/get.js.map +1 -0
- package/dist/tools/example/actions/list-all.d.ts +13 -0
- package/dist/tools/example/actions/list-all.d.ts.map +1 -0
- package/dist/tools/example/actions/list-all.js +39 -0
- package/dist/tools/example/actions/list-all.js.map +1 -0
- package/dist/tools/example/actions/search.d.ts +14 -0
- package/dist/tools/example/actions/search.d.ts.map +1 -0
- package/dist/tools/example/actions/search.js +52 -0
- package/dist/tools/example/actions/search.js.map +1 -0
- package/dist/tools/example/help/example.d.ts +6 -0
- package/dist/tools/example/help/example.d.ts.map +1 -0
- package/dist/tools/example/help/example.js +69 -0
- package/dist/tools/example/help/example.js.map +1 -0
- package/dist/tools/example/help/help.d.ts +6 -0
- package/dist/tools/example/help/help.d.ts.map +1 -0
- package/dist/tools/example/help/help.js +133 -0
- package/dist/tools/example/help/help.js.map +1 -0
- package/dist/tools/example/index.d.ts +11 -0
- package/dist/tools/example/index.d.ts.map +1 -0
- package/dist/tools/example/index.js +12 -0
- package/dist/tools/example/index.js.map +1 -0
- package/dist/tools/example/types.d.ts +59 -0
- package/dist/tools/example/types.d.ts.map +1 -0
- package/dist/tools/example/types.js +6 -0
- package/dist/tools/example/types.js.map +1 -0
- package/dist/tools/files/actions/check-lock.d.ts +16 -0
- package/dist/tools/files/actions/check-lock.d.ts.map +1 -0
- package/dist/tools/files/actions/check-lock.js +70 -0
- package/dist/tools/files/actions/check-lock.js.map +1 -0
- package/dist/tools/files/actions/get.d.ts +16 -0
- package/dist/tools/files/actions/get.d.ts.map +1 -0
- package/dist/tools/files/actions/get.js +113 -0
- package/dist/tools/files/actions/get.js.map +1 -0
- package/dist/tools/files/actions/record-batch.d.ts +18 -0
- package/dist/tools/files/actions/record-batch.d.ts.map +1 -0
- package/dist/tools/files/actions/record-batch.js +114 -0
- package/dist/tools/files/actions/record-batch.js.map +1 -0
- package/dist/tools/files/actions/record.d.ts +16 -0
- package/dist/tools/files/actions/record.d.ts.map +1 -0
- package/dist/tools/files/actions/record.js +37 -0
- package/dist/tools/files/actions/record.js.map +1 -0
- package/dist/tools/files/actions/sqlite-flush.d.ts +27 -0
- package/dist/tools/files/actions/sqlite-flush.d.ts.map +1 -0
- package/dist/tools/files/actions/sqlite-flush.js +66 -0
- package/dist/tools/files/actions/sqlite-flush.js.map +1 -0
- package/dist/tools/files/help/example.d.ts +5 -0
- package/dist/tools/files/help/example.d.ts.map +1 -0
- package/dist/tools/files/help/example.js +98 -0
- package/dist/tools/files/help/example.js.map +1 -0
- package/dist/tools/files/help/help.d.ts +5 -0
- package/dist/tools/files/help/help.d.ts.map +1 -0
- package/dist/tools/files/help/help.js +29 -0
- package/dist/tools/files/help/help.js.map +1 -0
- package/dist/tools/files/index.d.ts +14 -0
- package/dist/tools/files/index.d.ts.map +1 -0
- package/dist/tools/files/index.js +15 -0
- package/dist/tools/files/index.js.map +1 -0
- package/dist/tools/files/internal/queries.d.ts +18 -0
- package/dist/tools/files/internal/queries.d.ts.map +1 -0
- package/dist/tools/files/internal/queries.js +63 -0
- package/dist/tools/files/internal/queries.js.map +1 -0
- package/dist/tools/files/internal/validation.d.ts +18 -0
- package/dist/tools/files/internal/validation.d.ts.map +1 -0
- package/dist/tools/files/internal/validation.js +40 -0
- package/dist/tools/files/internal/validation.js.map +1 -0
- package/dist/tools/files/types.d.ts +6 -0
- package/dist/tools/files/types.d.ts.map +1 -0
- package/dist/tools/files/types.js +6 -0
- package/dist/tools/files/types.js.map +1 -0
- package/dist/tools/help/actions/batch-guide.d.ts +14 -0
- package/dist/tools/help/actions/batch-guide.d.ts.map +1 -0
- package/dist/tools/help/actions/batch-guide.js +59 -0
- package/dist/tools/help/actions/batch-guide.js.map +1 -0
- package/dist/tools/help/actions/error-recovery.d.ts +12 -0
- package/dist/tools/help/actions/error-recovery.d.ts.map +1 -0
- package/dist/tools/help/actions/error-recovery.js +107 -0
- package/dist/tools/help/actions/error-recovery.js.map +1 -0
- package/dist/tools/help/actions/query-action.d.ts +15 -0
- package/dist/tools/help/actions/query-action.d.ts.map +1 -0
- package/dist/tools/help/actions/query-action.js +15 -0
- package/dist/tools/help/actions/query-action.js.map +1 -0
- package/dist/tools/help/actions/query-params.d.ts +15 -0
- package/dist/tools/help/actions/query-params.d.ts.map +1 -0
- package/dist/tools/help/actions/query-params.js +15 -0
- package/dist/tools/help/actions/query-params.js.map +1 -0
- package/dist/tools/help/actions/query-tool.d.ts +15 -0
- package/dist/tools/help/actions/query-tool.d.ts.map +1 -0
- package/dist/tools/help/actions/query-tool.js +15 -0
- package/dist/tools/help/actions/query-tool.js.map +1 -0
- package/dist/tools/help/actions/workflow-hints.d.ts +14 -0
- package/dist/tools/help/actions/workflow-hints.d.ts.map +1 -0
- package/dist/tools/help/actions/workflow-hints.js +15 -0
- package/dist/tools/help/actions/workflow-hints.js.map +1 -0
- package/dist/tools/help/help/example.d.ts +6 -0
- package/dist/tools/help/help/example.d.ts.map +1 -0
- package/dist/tools/help/help/example.js +70 -0
- package/dist/tools/help/help/example.js.map +1 -0
- package/dist/tools/help/help/help.d.ts +6 -0
- package/dist/tools/help/help/help.d.ts.map +1 -0
- package/dist/tools/help/help/help.js +67 -0
- package/dist/tools/help/help/help.js.map +1 -0
- package/dist/tools/help/index.d.ts +14 -0
- package/dist/tools/help/index.d.ts.map +1 -0
- package/dist/tools/help/index.js +15 -0
- package/dist/tools/help/index.js.map +1 -0
- package/dist/tools/help/types.d.ts +92 -0
- package/dist/tools/help/types.d.ts.map +1 -0
- package/dist/tools/help/types.js +6 -0
- package/dist/tools/help/types.js.map +1 -0
- package/dist/tools/help-queries.d.ts.map +1 -1
- package/dist/tools/help-queries.js +1 -0
- package/dist/tools/help-queries.js.map +1 -1
- package/dist/tools/tasks/actions/add-dependency.d.ts +12 -0
- package/dist/tools/tasks/actions/add-dependency.d.ts.map +1 -0
- package/dist/tools/tasks/actions/add-dependency.js +124 -0
- package/dist/tools/tasks/actions/add-dependency.js.map +1 -0
- package/dist/tools/tasks/actions/archive.d.ts +11 -0
- package/dist/tools/tasks/actions/archive.d.ts.map +1 -0
- package/dist/tools/tasks/actions/archive.js +67 -0
- package/dist/tools/tasks/actions/archive.js.map +1 -0
- package/dist/tools/tasks/actions/create-batch.d.ts +19 -0
- package/dist/tools/tasks/actions/create-batch.d.ts.map +1 -0
- package/dist/tools/tasks/actions/create-batch.js +103 -0
- package/dist/tools/tasks/actions/create-batch.js.map +1 -0
- package/dist/tools/tasks/actions/create.d.ts +16 -0
- package/dist/tools/tasks/actions/create.d.ts.map +1 -0
- package/dist/tools/tasks/actions/create.js +180 -0
- package/dist/tools/tasks/actions/create.js.map +1 -0
- package/dist/tools/tasks/actions/get-dependencies.d.ts +12 -0
- package/dist/tools/tasks/actions/get-dependencies.d.ts.map +1 -0
- package/dist/tools/tasks/actions/get-dependencies.js +41 -0
- package/dist/tools/tasks/actions/get-dependencies.js.map +1 -0
- package/dist/tools/tasks/actions/get-pruned-files.d.ts +13 -0
- package/dist/tools/tasks/actions/get-pruned-files.d.ts.map +1 -0
- package/dist/tools/tasks/actions/get-pruned-files.js +45 -0
- package/dist/tools/tasks/actions/get-pruned-files.js.map +1 -0
- package/dist/tools/tasks/actions/get.d.ts +12 -0
- package/dist/tools/tasks/actions/get.d.ts.map +1 -0
- package/dist/tools/tasks/actions/get.js +88 -0
- package/dist/tools/tasks/actions/get.js.map +1 -0
- package/dist/tools/tasks/actions/link-pruned-file.d.ts +13 -0
- package/dist/tools/tasks/actions/link-pruned-file.d.ts.map +1 -0
- package/dist/tools/tasks/actions/link-pruned-file.js +63 -0
- package/dist/tools/tasks/actions/link-pruned-file.js.map +1 -0
- package/dist/tools/tasks/actions/link.d.ts +14 -0
- package/dist/tools/tasks/actions/link.d.ts.map +1 -0
- package/dist/tools/tasks/actions/link.js +118 -0
- package/dist/tools/tasks/actions/link.js.map +1 -0
- package/dist/tools/tasks/actions/list.d.ts +17 -0
- package/dist/tools/tasks/actions/list.d.ts.map +1 -0
- package/dist/tools/tasks/actions/list.js +98 -0
- package/dist/tools/tasks/actions/list.js.map +1 -0
- package/dist/tools/tasks/actions/move.d.ts +12 -0
- package/dist/tools/tasks/actions/move.d.ts.map +1 -0
- package/dist/tools/tasks/actions/move.js +91 -0
- package/dist/tools/tasks/actions/move.js.map +1 -0
- package/dist/tools/tasks/actions/remove-dependency.d.ts +12 -0
- package/dist/tools/tasks/actions/remove-dependency.d.ts.map +1 -0
- package/dist/tools/tasks/actions/remove-dependency.js +36 -0
- package/dist/tools/tasks/actions/remove-dependency.js.map +1 -0
- package/dist/tools/tasks/actions/update.d.ts +10 -0
- package/dist/tools/tasks/actions/update.d.ts.map +1 -0
- package/dist/tools/tasks/actions/update.js +186 -0
- package/dist/tools/tasks/actions/update.js.map +1 -0
- package/dist/tools/tasks/actions/watch-files.d.ts +14 -0
- package/dist/tools/tasks/actions/watch-files.d.ts.map +1 -0
- package/dist/tools/tasks/actions/watch-files.js +127 -0
- package/dist/tools/tasks/actions/watch-files.js.map +1 -0
- package/dist/tools/tasks/help/example.d.ts +8 -0
- package/dist/tools/tasks/help/example.d.ts.map +1 -0
- package/dist/tools/tasks/help/example.js +215 -0
- package/dist/tools/tasks/help/example.js.map +1 -0
- package/dist/tools/tasks/help/help.d.ts +8 -0
- package/dist/tools/tasks/help/help.d.ts.map +1 -0
- package/dist/tools/tasks/help/help.js +293 -0
- package/dist/tools/tasks/help/help.js.map +1 -0
- package/dist/tools/tasks/help/use-case.d.ts +11 -0
- package/dist/tools/tasks/help/use-case.d.ts.map +1 -0
- package/dist/tools/tasks/help/use-case.js +768 -0
- package/dist/tools/tasks/help/use-case.js.map +1 -0
- package/dist/tools/tasks/index.d.ts +28 -0
- package/dist/tools/tasks/index.d.ts.map +1 -0
- package/dist/tools/tasks/index.js +33 -0
- package/dist/tools/tasks/index.js.map +1 -0
- package/dist/tools/tasks/internal/state-machine.d.ts +16 -0
- package/dist/tools/tasks/internal/state-machine.d.ts.map +1 -0
- package/dist/tools/tasks/internal/state-machine.js +36 -0
- package/dist/tools/tasks/internal/state-machine.js.map +1 -0
- package/dist/tools/tasks/internal/task-queries.d.ts +12 -0
- package/dist/tools/tasks/internal/task-queries.d.ts.map +1 -0
- package/dist/tools/tasks/internal/task-queries.js +61 -0
- package/dist/tools/tasks/internal/task-queries.js.map +1 -0
- package/dist/tools/tasks/internal/validation.d.ts +47 -0
- package/dist/tools/tasks/internal/validation.d.ts.map +1 -0
- package/dist/tools/tasks/internal/validation.js +261 -0
- package/dist/tools/tasks/internal/validation.js.map +1 -0
- package/dist/tools/tasks/types.d.ts +68 -0
- package/dist/tools/tasks/types.d.ts.map +1 -0
- package/dist/tools/tasks/types.js +45 -0
- package/dist/tools/tasks/types.js.map +1 -0
- package/dist/tools/tasks/watcher/status.d.ts +9 -0
- package/dist/tools/tasks/watcher/status.d.ts.map +1 -0
- package/dist/tools/tasks/watcher/status.js +126 -0
- package/dist/tools/tasks/watcher/status.js.map +1 -0
- package/dist/tools/tasks.d.ts +12 -148
- package/dist/tools/tasks.d.ts.map +1 -1
- package/dist/tools/tasks.js +12 -2037
- package/dist/tools/tasks.js.map +1 -1
- package/dist/tools/use_case/actions/get.d.ts +14 -0
- package/dist/tools/use_case/actions/get.d.ts.map +1 -0
- package/dist/tools/use_case/actions/get.js +15 -0
- package/dist/tools/use_case/actions/get.js.map +1 -0
- package/dist/tools/use_case/actions/list-all.d.ts +15 -0
- package/dist/tools/use_case/actions/list-all.d.ts.map +1 -0
- package/dist/tools/use_case/actions/list-all.js +20 -0
- package/dist/tools/use_case/actions/list-all.js.map +1 -0
- package/dist/tools/use_case/actions/search.d.ts +14 -0
- package/dist/tools/use_case/actions/search.d.ts.map +1 -0
- package/dist/tools/use_case/actions/search.js +87 -0
- package/dist/tools/use_case/actions/search.js.map +1 -0
- package/dist/tools/use_case/help/example.d.ts +105 -0
- package/dist/tools/use_case/help/example.d.ts.map +1 -0
- package/dist/tools/use_case/help/example.js +138 -0
- package/dist/tools/use_case/help/example.js.map +1 -0
- package/dist/tools/use_case/help/help.d.ts +33 -0
- package/dist/tools/use_case/help/help.d.ts.map +1 -0
- package/dist/tools/use_case/help/help.js +109 -0
- package/dist/tools/use_case/help/help.js.map +1 -0
- package/dist/tools/use_case/index.d.ts +11 -0
- package/dist/tools/use_case/index.d.ts.map +1 -0
- package/dist/tools/use_case/index.js +12 -0
- package/dist/tools/use_case/index.js.map +1 -0
- package/dist/tools/use_case/types.d.ts +58 -0
- package/dist/tools/use_case/types.d.ts.map +1 -0
- package/dist/tools/use_case/types.js +6 -0
- package/dist/tools/use_case/types.js.map +1 -0
- package/dist/types/actions.d.ts +37 -0
- package/dist/types/actions.d.ts.map +1 -0
- package/dist/types/actions.js +6 -0
- package/dist/types/actions.js.map +1 -0
- package/dist/types/constraint/params.d.ts +2 -0
- package/dist/types/constraint/params.d.ts.map +1 -0
- package/dist/types/constraint/params.js +2 -0
- package/dist/types/constraint/params.js.map +1 -0
- package/dist/types/constraint/responses.d.ts +2 -0
- package/dist/types/constraint/responses.d.ts.map +1 -0
- package/dist/types/constraint/responses.js +2 -0
- package/dist/types/constraint/responses.js.map +1 -0
- package/dist/types/decision/batch.d.ts +24 -0
- package/dist/types/decision/batch.d.ts.map +1 -0
- package/dist/types/decision/batch.js +5 -0
- package/dist/types/decision/batch.js.map +1 -0
- package/dist/types/decision/params.d.ts +73 -0
- package/dist/types/decision/params.d.ts.map +1 -0
- package/dist/types/decision/params.js +5 -0
- package/dist/types/decision/params.js.map +1 -0
- package/dist/types/decision/responses.d.ts +79 -0
- package/dist/types/decision/responses.d.ts.map +1 -0
- package/dist/types/decision/responses.js +5 -0
- package/dist/types/decision/responses.js.map +1 -0
- package/dist/types/decision/templates.d.ts +74 -0
- package/dist/types/decision/templates.d.ts.map +1 -0
- package/dist/types/decision/templates.js +5 -0
- package/dist/types/decision/templates.js.map +1 -0
- package/dist/types/enums.d.ts +43 -0
- package/dist/types/enums.d.ts.map +1 -0
- package/dist/types/enums.js +47 -0
- package/dist/types/enums.js.map +1 -0
- package/dist/types/file/params.d.ts +40 -0
- package/dist/types/file/params.d.ts.map +1 -0
- package/dist/types/file/params.js +6 -0
- package/dist/types/file/params.js.map +1 -0
- package/dist/types/file/responses.d.ts +2 -0
- package/dist/types/file/responses.d.ts.map +1 -0
- package/dist/types/file/responses.js +2 -0
- package/dist/types/file/responses.js.map +1 -0
- package/dist/types/import-export.d.ts +126 -0
- package/dist/types/import-export.d.ts.map +1 -0
- package/dist/types/import-export.js +6 -0
- package/dist/types/import-export.js.map +1 -0
- package/dist/types/index.d.ts +25 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +35 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/master-entities.d.ts +33 -0
- package/dist/types/master-entities.d.ts.map +1 -0
- package/dist/types/master-entities.js +6 -0
- package/dist/types/master-entities.js.map +1 -0
- package/dist/types/task/params.d.ts +172 -0
- package/dist/types/task/params.d.ts.map +1 -0
- package/dist/types/task/params.js +8 -0
- package/dist/types/task/params.js.map +1 -0
- package/dist/types/task/responses.d.ts +334 -0
- package/dist/types/task/responses.d.ts.map +1 -0
- package/dist/types/task/responses.js +8 -0
- package/dist/types/task/responses.js.map +1 -0
- package/dist/types/transaction-entities.d.ts +89 -0
- package/dist/types/transaction-entities.d.ts.map +1 -0
- package/dist/types/transaction-entities.js +5 -0
- package/dist/types/transaction-entities.js.map +1 -0
- package/dist/types/validation.d.ts +44 -0
- package/dist/types/validation.d.ts.map +1 -0
- package/dist/types/validation.js +6 -0
- package/dist/types/validation.js.map +1 -0
- package/dist/types/view-entities.d.ts +61 -0
- package/dist/types/view-entities.d.ts.map +1 -0
- package/dist/types/view-entities.js +5 -0
- package/dist/types/view-entities.js.map +1 -0
- package/dist/types.d.ts +133 -10
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/action-specs/config-specs.d.ts +10 -0
- package/dist/utils/action-specs/config-specs.d.ts.map +1 -0
- package/dist/utils/action-specs/config-specs.js +12 -0
- package/dist/utils/action-specs/config-specs.js.map +1 -0
- package/dist/utils/action-specs/constraint-specs.d.ts +9 -0
- package/dist/utils/action-specs/constraint-specs.d.ts.map +1 -0
- package/dist/utils/action-specs/constraint-specs.js +42 -0
- package/dist/utils/action-specs/constraint-specs.js.map +1 -0
- package/dist/utils/action-specs/decision-specs.d.ts +9 -0
- package/dist/utils/action-specs/decision-specs.d.ts.map +1 -0
- package/dist/utils/action-specs/decision-specs.js +194 -0
- package/dist/utils/action-specs/decision-specs.js.map +1 -0
- package/dist/utils/action-specs/file-specs.d.ts +9 -0
- package/dist/utils/action-specs/file-specs.d.ts.map +1 -0
- package/dist/utils/action-specs/file-specs.js +56 -0
- package/dist/utils/action-specs/file-specs.js.map +1 -0
- package/dist/utils/action-specs/index.d.ts +38 -0
- package/dist/utils/action-specs/index.d.ts.map +1 -0
- package/dist/utils/action-specs/index.js +63 -0
- package/dist/utils/action-specs/index.js.map +1 -0
- package/dist/utils/action-specs/task-specs.d.ts +9 -0
- package/dist/utils/action-specs/task-specs.d.ts.map +1 -0
- package/dist/utils/action-specs/task-specs.js +143 -0
- package/dist/utils/action-specs/task-specs.js.map +1 -0
- package/dist/utils/action-specs/types.d.ts +14 -0
- package/dist/utils/action-specs/types.d.ts.map +1 -0
- package/dist/utils/action-specs/types.js +9 -0
- package/dist/utils/action-specs/types.js.map +1 -0
- package/dist/utils/batch-validation.d.ts +156 -0
- package/dist/utils/batch-validation.d.ts.map +1 -0
- package/dist/utils/batch-validation.example.d.ts +48 -0
- package/dist/utils/batch-validation.example.d.ts.map +1 -0
- package/dist/utils/batch-validation.example.js +180 -0
- package/dist/utils/batch-validation.example.js.map +1 -0
- package/dist/utils/batch-validation.js +345 -0
- package/dist/utils/batch-validation.js.map +1 -0
- package/dist/utils/exporter/export.d.ts +100 -0
- package/dist/utils/exporter/export.d.ts.map +1 -0
- package/dist/utils/exporter/export.js +363 -0
- package/dist/utils/exporter/export.js.map +1 -0
- package/dist/utils/importer/import.d.ts +29 -0
- package/dist/utils/importer/import.d.ts.map +1 -0
- package/dist/utils/importer/import.js +514 -0
- package/dist/utils/importer/import.js.map +1 -0
- package/dist/utils/importer/master-tables.d.ts +18 -0
- package/dist/utils/importer/master-tables.d.ts.map +1 -0
- package/dist/utils/importer/master-tables.js +255 -0
- package/dist/utils/importer/master-tables.js.map +1 -0
- package/dist/utils/importer/topological-sort.d.ts +61 -0
- package/dist/utils/importer/topological-sort.d.ts.map +1 -0
- package/dist/utils/importer/topological-sort.js +143 -0
- package/dist/utils/importer/topological-sort.js.map +1 -0
- package/dist/utils/levenshtein.d.ts +18 -0
- package/dist/utils/levenshtein.d.ts.map +1 -0
- package/dist/utils/levenshtein.js +46 -0
- package/dist/utils/levenshtein.js.map +1 -0
- package/dist/utils/parameter-validator.d.ts +3 -3
- package/dist/utils/parameter-validator.d.ts.map +1 -1
- package/dist/utils/parameter-validator.js +3 -39
- package/dist/utils/parameter-validator.js.map +1 -1
- package/dist/utils/sql-dump/core/dependency-sort.d.ts +16 -0
- package/dist/utils/sql-dump/core/dependency-sort.d.ts.map +1 -0
- package/dist/utils/sql-dump/core/dependency-sort.js +105 -0
- package/dist/utils/sql-dump/core/dependency-sort.js.map +1 -0
- package/dist/utils/sql-dump/core/generate-dump.d.ts +13 -0
- package/dist/utils/sql-dump/core/generate-dump.d.ts.map +1 -0
- package/dist/utils/sql-dump/core/generate-dump.js +181 -0
- package/dist/utils/sql-dump/core/generate-dump.js.map +1 -0
- package/dist/utils/sql-dump/core/index-export.d.ts +9 -0
- package/dist/utils/sql-dump/core/index-export.d.ts.map +1 -0
- package/dist/utils/sql-dump/core/index-export.js +173 -0
- package/dist/utils/sql-dump/core/index-export.js.map +1 -0
- package/dist/utils/sql-dump/core/sequence-reset.d.ts +6 -0
- package/dist/utils/sql-dump/core/sequence-reset.d.ts.map +1 -0
- package/dist/utils/sql-dump/core/sequence-reset.js +28 -0
- package/dist/utils/sql-dump/core/sequence-reset.js.map +1 -0
- package/dist/utils/sql-dump/core/table-export.d.ts +2 -0
- package/dist/utils/sql-dump/core/table-export.d.ts.map +1 -0
- package/dist/utils/sql-dump/core/table-export.js +4 -0
- package/dist/utils/sql-dump/core/table-export.js.map +1 -0
- package/dist/utils/sql-dump/core/view-export.d.ts +2 -0
- package/dist/utils/sql-dump/core/view-export.d.ts.map +1 -0
- package/dist/utils/sql-dump/core/view-export.js +4 -0
- package/dist/utils/sql-dump/core/view-export.js.map +1 -0
- package/dist/utils/sql-dump/formatters/bulk-insert.d.ts +14 -0
- package/dist/utils/sql-dump/formatters/bulk-insert.d.ts.map +1 -0
- package/dist/utils/sql-dump/formatters/bulk-insert.js +177 -0
- package/dist/utils/sql-dump/formatters/bulk-insert.js.map +1 -0
- package/dist/utils/sql-dump/formatters/identifiers.d.ts +6 -0
- package/dist/utils/sql-dump/formatters/identifiers.d.ts.map +1 -0
- package/dist/utils/sql-dump/formatters/identifiers.js +16 -0
- package/dist/utils/sql-dump/formatters/identifiers.js.map +1 -0
- package/dist/utils/sql-dump/formatters/value-formatter.d.ts +14 -0
- package/dist/utils/sql-dump/formatters/value-formatter.d.ts.map +1 -0
- package/dist/utils/sql-dump/formatters/value-formatter.js +281 -0
- package/dist/utils/sql-dump/formatters/value-formatter.js.map +1 -0
- package/dist/utils/sql-dump/generators/controls.d.ts +10 -0
- package/dist/utils/sql-dump/generators/controls.d.ts.map +1 -0
- package/dist/utils/sql-dump/generators/controls.js +36 -0
- package/dist/utils/sql-dump/generators/controls.js.map +1 -0
- package/dist/utils/sql-dump/generators/headers.d.ts +6 -0
- package/dist/utils/sql-dump/generators/headers.d.ts.map +1 -0
- package/dist/utils/sql-dump/generators/headers.js +19 -0
- package/dist/utils/sql-dump/generators/headers.js.map +1 -0
- package/dist/utils/sql-dump/index.d.ts +14 -0
- package/dist/utils/sql-dump/index.d.ts.map +1 -0
- package/dist/utils/sql-dump/index.js +16 -0
- package/dist/utils/sql-dump/index.js.map +1 -0
- package/dist/utils/sql-dump/schema/indexes.d.ts +6 -0
- package/dist/utils/sql-dump/schema/indexes.d.ts.map +1 -0
- package/dist/utils/sql-dump/schema/indexes.js +42 -0
- package/dist/utils/sql-dump/schema/indexes.js.map +1 -0
- package/dist/utils/sql-dump/schema/primary-keys.d.ts +6 -0
- package/dist/utils/sql-dump/schema/primary-keys.d.ts.map +1 -0
- package/dist/utils/sql-dump/schema/primary-keys.js +41 -0
- package/dist/utils/sql-dump/schema/primary-keys.js.map +1 -0
- package/dist/utils/sql-dump/schema/tables.d.ts +12 -0
- package/dist/utils/sql-dump/schema/tables.d.ts.map +1 -0
- package/dist/utils/sql-dump/schema/tables.js +370 -0
- package/dist/utils/sql-dump/schema/tables.js.map +1 -0
- package/dist/utils/sql-dump/schema/views.d.ts +11 -0
- package/dist/utils/sql-dump/schema/views.d.ts.map +1 -0
- package/dist/utils/sql-dump/schema/views.js +110 -0
- package/dist/utils/sql-dump/schema/views.js.map +1 -0
- package/dist/utils/sql-dump/types.d.ts +10 -0
- package/dist/utils/sql-dump/types.d.ts.map +1 -0
- package/dist/utils/sql-dump/types.js +3 -0
- package/dist/utils/sql-dump/types.js.map +1 -0
- package/docs/AI_AGENT_GUIDE.md +2 -2
- package/docs/AUTO_FILE_TRACKING.md +0 -1
- package/docs/BATCH_VALIDATION.md +617 -0
- package/docs/DATABASE_AUTH.md +1 -2
- package/docs/DECISION_TO_TASK_MIGRATION_GUIDE.md +2 -2
- package/docs/SHARED_CONCEPTS.md +2 -2
- package/docs/SPECIALIZED_AGENTS.md +1 -1
- package/docs/TASK_ACTIONS.md +7 -7
- package/docs/TASK_MIGRATION.md +5 -5
- package/docs/TASK_SYSTEM.md +5 -5
- package/docs/TOOL_REFERENCE.md +1 -3
- package/docs/WORKFLOWS.md +1 -1
- package/docs/{DATABASE_MIGRATION.md → cli/DATABASE_MIGRATION.md} +71 -32
- package/docs/cli/DATA_EXPORT_IMPORT.md +400 -0
- package/docs/cli/README.md +227 -0
- package/package.json +7 -4
- package/dist/tools/config.d.ts +0 -58
- package/dist/tools/config.d.ts.map +0 -1
- package/dist/tools/config.js +0 -281
- package/dist/tools/config.js.map +0 -1
- package/dist/tools/constraints.d.ts +0 -49
- package/dist/tools/constraints.d.ts.map +0 -1
- package/dist/tools/constraints.js +0 -378
- package/dist/tools/constraints.js.map +0 -1
- package/dist/tools/context.d.ts +0 -208
- package/dist/tools/context.d.ts.map +0 -1
- package/dist/tools/context.js +0 -1661
- package/dist/tools/context.js.map +0 -1
- package/dist/tools/files.d.ts +0 -54
- package/dist/tools/files.d.ts.map +0 -1
- package/dist/tools/files.js +0 -478
- package/dist/tools/files.js.map +0 -1
- package/dist/tools/messaging.d.ts +0 -71
- package/dist/tools/messaging.d.ts.map +0 -1
- package/dist/tools/messaging.js +0 -483
- package/dist/tools/messaging.js.map +0 -1
- package/dist/tools/utils.d.ts +0 -70
- package/dist/tools/utils.d.ts.map +0 -1
- package/dist/tools/utils.js +0 -483
- package/dist/tools/utils.js.map +0 -1
- package/dist/utils/action-specs.d.ts +0 -46
- package/dist/utils/action-specs.d.ts.map +0 -1
- package/dist/utils/action-specs.js +0 -527
- package/dist/utils/action-specs.js.map +0 -1
- package/docs/BASEADAPTER_IMPLEMENTATION.md +0 -399
- package/docs/HELP_PREVIEW_COMPARISON.md +0 -259
- package/docs/MIGRATION_CHAIN.md +0 -293
- package/docs/MIGRATION_v2.md +0 -538
- package/docs/MIGRATION_v3.3.md +0 -602
- package/docs/MIGRATION_v3.6.0.md +0 -170
- package/docs/MULTI_PROJECT_ARCHITECTURE.md +0 -497
|
@@ -4,8 +4,30 @@ import type { DatabaseConfig } from '../config/types.js';
|
|
|
4
4
|
/**
|
|
5
5
|
* PostgreSQL adapter implementation with authentication support.
|
|
6
6
|
*
|
|
7
|
-
* This adapter
|
|
8
|
-
*
|
|
7
|
+
* This adapter provides PostgreSQL-specific implementations for database operations,
|
|
8
|
+
* integrating with the authentication layer for secure connections via SSH tunnels,
|
|
9
|
+
* direct connections, or cloud IAM (AWS RDS, GCP Cloud SQL).
|
|
10
|
+
*
|
|
11
|
+
* **PostgreSQL-Specific Features:**
|
|
12
|
+
* - RETURNING clause for insert/update/delete
|
|
13
|
+
* - ON CONFLICT ... DO UPDATE for upserts
|
|
14
|
+
* - jsonb_extract_path() and jsonb_build_object() for JSON operations
|
|
15
|
+
* - string_agg() for string aggregation
|
|
16
|
+
* - EXTRACT(EPOCH FROM ...) for Unix timestamp conversions
|
|
17
|
+
* - SERIAL/BIGSERIAL for auto-increment columns
|
|
18
|
+
* - Full transaction support with savepoints
|
|
19
|
+
* - Common Table Expressions (CTEs) and window functions
|
|
20
|
+
*
|
|
21
|
+
* **Supported PostgreSQL Versions:**
|
|
22
|
+
* - PostgreSQL 16+ (full feature support)
|
|
23
|
+
* - PostgreSQL 12-15 (full feature support)
|
|
24
|
+
* - PostgreSQL 9.5+ (basic feature support)
|
|
25
|
+
*
|
|
26
|
+
* **Authentication Methods:**
|
|
27
|
+
* - Direct: Standard username/password authentication
|
|
28
|
+
* - SSH Tunnel: Connect via SSH bastion host
|
|
29
|
+
* - AWS RDS IAM: Token-based authentication for AWS RDS
|
|
30
|
+
* - GCP Cloud SQL IAM: Token-based authentication for Cloud SQL
|
|
9
31
|
*
|
|
10
32
|
* @extends BaseAdapter
|
|
11
33
|
*/
|
|
@@ -18,25 +40,195 @@ export declare class PostgreSQLAdapter extends BaseAdapter {
|
|
|
18
40
|
readonly supportsSavepoints = true;
|
|
19
41
|
readonly databaseName: "postgresql";
|
|
20
42
|
constructor(config: DatabaseConfig);
|
|
43
|
+
/**
|
|
44
|
+
* Returns the Knex dialect for PostgreSQL.
|
|
45
|
+
*
|
|
46
|
+
* Uses 'pg' driver which supports:
|
|
47
|
+
* - Prepared statements
|
|
48
|
+
* - Promise-based API
|
|
49
|
+
* - Connection pooling
|
|
50
|
+
* - Full Unicode support
|
|
51
|
+
*
|
|
52
|
+
* @returns {string} 'pg' dialect identifier
|
|
53
|
+
*/
|
|
21
54
|
getDialect(): string;
|
|
55
|
+
/**
|
|
56
|
+
* Initializes PostgreSQL-specific session settings.
|
|
57
|
+
*
|
|
58
|
+
* **Configuration Applied:**
|
|
59
|
+
* - Timezone: UTC for consistent timestamp handling
|
|
60
|
+
* - Statement timeout: 30 seconds (prevents long-running queries)
|
|
61
|
+
* - Client encoding: UTF8 for full Unicode support
|
|
62
|
+
* - Default transaction isolation: READ COMMITTED
|
|
63
|
+
*
|
|
64
|
+
* @returns {Promise<void>}
|
|
65
|
+
* @throws {Error} If database does not exist or cannot be accessed
|
|
66
|
+
*/
|
|
22
67
|
initialize(): Promise<void>;
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
68
|
+
/**
|
|
69
|
+
* Inserts a row and returns the inserted record using RETURNING clause.
|
|
70
|
+
*
|
|
71
|
+
* PostgreSQL supports RETURNING clause natively, making this more efficient
|
|
72
|
+
* than MySQL's approach (insert + select).
|
|
73
|
+
*
|
|
74
|
+
* @template T - Record type
|
|
75
|
+
* @param {string} table - Table name
|
|
76
|
+
* @param {Partial<T>} data - Data to insert
|
|
77
|
+
* @returns {Promise<T>} Inserted record
|
|
78
|
+
* @throws {Error} If insert fails
|
|
79
|
+
*/
|
|
26
80
|
insertReturning<T extends Record<string, any>>(table: string, data: Partial<T>): Promise<T>;
|
|
81
|
+
/**
|
|
82
|
+
* Upserts a row using PostgreSQL's ON CONFLICT ... DO UPDATE syntax.
|
|
83
|
+
*
|
|
84
|
+
* **Behavior:**
|
|
85
|
+
* - If row with conflicting key exists: UPDATE specified columns
|
|
86
|
+
* - If no conflict: INSERT new row
|
|
87
|
+
* - Returns number of affected rows
|
|
88
|
+
*
|
|
89
|
+
* @template T - Record type
|
|
90
|
+
* @param {string} table - Table name
|
|
91
|
+
* @param {Partial<T>} data - Data to insert/update
|
|
92
|
+
* @param {string[]} conflictColumns - Columns that define uniqueness (must have UNIQUE index)
|
|
93
|
+
* @param {string[]} [updateColumns] - Columns to update on conflict (default: all except conflict columns)
|
|
94
|
+
* @returns {Promise<number>} Affected rows (1 = insert or update)
|
|
95
|
+
* @throws {Error} If conflictColumns don't have UNIQUE constraint
|
|
96
|
+
*/
|
|
27
97
|
upsert<T extends Record<string, any>>(table: string, data: Partial<T>, conflictColumns: string[], updateColumns?: string[]): Promise<number>;
|
|
98
|
+
/**
|
|
99
|
+
* Extracts a value from a JSONB column using jsonb_extract_path_text().
|
|
100
|
+
*
|
|
101
|
+
* **PostgreSQL JSON Path Syntax:**
|
|
102
|
+
* - Nested objects: 'address', 'city' (separate arguments)
|
|
103
|
+
* - Array access: Use jsonb_array_element() separately
|
|
104
|
+
*
|
|
105
|
+
* @param {string} column - JSONB column name
|
|
106
|
+
* @param {string} path - JSON path (e.g., 'address.city')
|
|
107
|
+
* @returns {Knex.Raw} Raw SQL expression for JSON extraction
|
|
108
|
+
*/
|
|
28
109
|
jsonExtract(column: string, path: string): Knex.Raw;
|
|
110
|
+
/**
|
|
111
|
+
* Builds a JSON object from field values using jsonb_build_object().
|
|
112
|
+
*
|
|
113
|
+
* @param {Record<string, any>} fields - Object with key-value pairs
|
|
114
|
+
* @returns {Knex.Raw} Raw SQL expression for JSON object construction
|
|
115
|
+
*/
|
|
29
116
|
jsonBuildObject(fields: Record<string, any>): Knex.Raw;
|
|
117
|
+
/**
|
|
118
|
+
* Returns current Unix timestamp using EXTRACT(EPOCH FROM NOW()).
|
|
119
|
+
*
|
|
120
|
+
* **Behavior:**
|
|
121
|
+
* - Returns seconds since Unix epoch (1970-01-01 00:00:00 UTC)
|
|
122
|
+
* - Always returns UTC timestamp
|
|
123
|
+
* - Returns numeric value (may have fractional seconds)
|
|
124
|
+
*
|
|
125
|
+
* @returns {Knex.Raw} Raw SQL expression for current timestamp
|
|
126
|
+
*/
|
|
30
127
|
currentTimestamp(): Knex.Raw;
|
|
128
|
+
/**
|
|
129
|
+
* Converts Unix epoch timestamp to PostgreSQL timestamp using TO_TIMESTAMP().
|
|
130
|
+
*
|
|
131
|
+
* **Behavior:**
|
|
132
|
+
* - Converts integer epoch to TIMESTAMP WITH TIME ZONE
|
|
133
|
+
* - Returns UTC timestamp
|
|
134
|
+
* - Handles NULL values
|
|
135
|
+
*
|
|
136
|
+
* @param {string} epochColumn - Column containing Unix epoch timestamp
|
|
137
|
+
* @returns {Knex.Raw} Raw SQL expression for epoch conversion
|
|
138
|
+
*/
|
|
31
139
|
fromUnixEpoch(epochColumn: string): Knex.Raw;
|
|
140
|
+
/**
|
|
141
|
+
* Converts PostgreSQL timestamp to Unix epoch using EXTRACT(EPOCH FROM ...).
|
|
142
|
+
*
|
|
143
|
+
* **Behavior:**
|
|
144
|
+
* - Converts TIMESTAMP to integer epoch
|
|
145
|
+
* - Assumes input is UTC
|
|
146
|
+
* - Handles NULL values
|
|
147
|
+
*
|
|
148
|
+
* @param {string} timestampColumn - Column containing timestamp value
|
|
149
|
+
* @returns {Knex.Raw} Raw SQL expression for timestamp conversion
|
|
150
|
+
*/
|
|
32
151
|
toUnixEpoch(timestampColumn: string): Knex.Raw;
|
|
152
|
+
/**
|
|
153
|
+
* Concatenates string values using || operator.
|
|
154
|
+
*
|
|
155
|
+
* **Behavior:**
|
|
156
|
+
* - PostgreSQL uses || for concatenation
|
|
157
|
+
* - Returns NULL if any argument is NULL (use COALESCE to handle)
|
|
158
|
+
* - Empty strings are preserved
|
|
159
|
+
*
|
|
160
|
+
* @param {...(string | Knex.Raw)[]} values - Values to concatenate
|
|
161
|
+
* @returns {Knex.Raw} Raw SQL expression for concatenation
|
|
162
|
+
*/
|
|
33
163
|
concat(...values: Array<string | Knex.Raw>): Knex.Raw;
|
|
164
|
+
/**
|
|
165
|
+
* Aggregates strings with separator using string_agg().
|
|
166
|
+
*
|
|
167
|
+
* **Behavior:**
|
|
168
|
+
* - Concatenates values from multiple rows into single string
|
|
169
|
+
* - NULL values are skipped
|
|
170
|
+
* - No result length limit (unlike MySQL's GROUP_CONCAT)
|
|
171
|
+
*
|
|
172
|
+
* @param {string} column - Column to aggregate
|
|
173
|
+
* @param {string} [separator=','] - Separator between values
|
|
174
|
+
* @returns {Knex.Raw} Raw SQL expression for string aggregation
|
|
175
|
+
*/
|
|
34
176
|
stringAgg(column: string, separator?: string): Knex.Raw;
|
|
177
|
+
/**
|
|
178
|
+
* Executes a callback within a database transaction.
|
|
179
|
+
*
|
|
180
|
+
* **PostgreSQL Transaction Characteristics:**
|
|
181
|
+
* - Default isolation level: READ COMMITTED
|
|
182
|
+
* - Supports nested transactions via savepoints
|
|
183
|
+
* - Automatic rollback on error
|
|
184
|
+
* - MVCC (Multi-Version Concurrency Control)
|
|
185
|
+
*
|
|
186
|
+
* @template T - Return type
|
|
187
|
+
* @param {Function} callback - Transaction callback
|
|
188
|
+
* @param {Object} [options] - Transaction options
|
|
189
|
+
* @param {string} [options.isolationLevel] - Isolation level
|
|
190
|
+
* @returns {Promise<T>} Transaction result
|
|
191
|
+
*/
|
|
35
192
|
transaction<T>(callback: (trx: Knex.Transaction) => Promise<T>, options?: {
|
|
36
193
|
isolationLevel?: 'serializable' | 'read committed' | 'repeatable read';
|
|
37
194
|
}): Promise<T>;
|
|
195
|
+
/**
|
|
196
|
+
* Creates a savepoint within a transaction.
|
|
197
|
+
*
|
|
198
|
+
* **PostgreSQL Savepoint Behavior:**
|
|
199
|
+
* - Allows partial rollback within transaction
|
|
200
|
+
* - Savepoint names are case-sensitive
|
|
201
|
+
* - Automatically released on transaction commit
|
|
202
|
+
* - Rolled back on transaction rollback
|
|
203
|
+
*
|
|
204
|
+
* @template T - Return type
|
|
205
|
+
* @param {Knex.Transaction} trx - Parent transaction
|
|
206
|
+
* @param {Function} callback - Savepoint callback
|
|
207
|
+
* @returns {Promise<T>} Savepoint result
|
|
208
|
+
*/
|
|
38
209
|
savepoint<T>(trx: Knex.Transaction, callback: (sp: Knex.Transaction) => Promise<T>): Promise<T>;
|
|
210
|
+
/**
|
|
211
|
+
* Checks if a table exists in the database.
|
|
212
|
+
*
|
|
213
|
+
* Queries information_schema.tables which is the standard PostgreSQL approach
|
|
214
|
+
* for table existence checking.
|
|
215
|
+
*
|
|
216
|
+
* @param {string} tableName - Table name to check
|
|
217
|
+
* @returns {Promise<boolean>} True if table exists, false otherwise
|
|
218
|
+
*/
|
|
39
219
|
tableExists(tableName: string): Promise<boolean>;
|
|
220
|
+
/**
|
|
221
|
+
* Adds a serial auto-increment primary key column to a table.
|
|
222
|
+
*
|
|
223
|
+
* **PostgreSQL SERIAL Behavior:**
|
|
224
|
+
* - SERIAL = INTEGER with auto-increment (sequence)
|
|
225
|
+
* - BIGSERIAL = BIGINT with auto-increment (recommended for large tables)
|
|
226
|
+
* - Automatically creates a sequence (tablename_columnname_seq)
|
|
227
|
+
* - Primary key constraint added automatically
|
|
228
|
+
*
|
|
229
|
+
* @param {Knex.CreateTableBuilder} table - Knex table builder
|
|
230
|
+
* @param {string} [columnName='id'] - Column name (default: 'id')
|
|
231
|
+
*/
|
|
40
232
|
autoIncrementColumn(table: Knex.CreateTableBuilder, columnName?: string): void;
|
|
41
233
|
}
|
|
42
234
|
//# sourceMappingURL=postgresql-adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgresql-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/postgresql-adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"postgresql-adapter.d.ts","sourceRoot":"","sources":["../../src/adapters/postgresql-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,80 +1,344 @@
|
|
|
1
|
-
// src/adapters/postgresql-adapter.ts
|
|
2
|
-
import knexLib from 'knex';
|
|
3
1
|
import { BaseAdapter } from './base-adapter.js';
|
|
4
|
-
const { knex } = knexLib;
|
|
5
2
|
/**
|
|
6
3
|
* PostgreSQL adapter implementation with authentication support.
|
|
7
4
|
*
|
|
8
|
-
* This adapter
|
|
9
|
-
*
|
|
5
|
+
* This adapter provides PostgreSQL-specific implementations for database operations,
|
|
6
|
+
* integrating with the authentication layer for secure connections via SSH tunnels,
|
|
7
|
+
* direct connections, or cloud IAM (AWS RDS, GCP Cloud SQL).
|
|
8
|
+
*
|
|
9
|
+
* **PostgreSQL-Specific Features:**
|
|
10
|
+
* - RETURNING clause for insert/update/delete
|
|
11
|
+
* - ON CONFLICT ... DO UPDATE for upserts
|
|
12
|
+
* - jsonb_extract_path() and jsonb_build_object() for JSON operations
|
|
13
|
+
* - string_agg() for string aggregation
|
|
14
|
+
* - EXTRACT(EPOCH FROM ...) for Unix timestamp conversions
|
|
15
|
+
* - SERIAL/BIGSERIAL for auto-increment columns
|
|
16
|
+
* - Full transaction support with savepoints
|
|
17
|
+
* - Common Table Expressions (CTEs) and window functions
|
|
18
|
+
*
|
|
19
|
+
* **Supported PostgreSQL Versions:**
|
|
20
|
+
* - PostgreSQL 16+ (full feature support)
|
|
21
|
+
* - PostgreSQL 12-15 (full feature support)
|
|
22
|
+
* - PostgreSQL 9.5+ (basic feature support)
|
|
23
|
+
*
|
|
24
|
+
* **Authentication Methods:**
|
|
25
|
+
* - Direct: Standard username/password authentication
|
|
26
|
+
* - SSH Tunnel: Connect via SSH bastion host
|
|
27
|
+
* - AWS RDS IAM: Token-based authentication for AWS RDS
|
|
28
|
+
* - GCP Cloud SQL IAM: Token-based authentication for Cloud SQL
|
|
10
29
|
*
|
|
11
30
|
* @extends BaseAdapter
|
|
12
31
|
*/
|
|
13
32
|
export class PostgreSQLAdapter extends BaseAdapter {
|
|
14
33
|
// Feature detection
|
|
15
|
-
supportsReturning = true;
|
|
16
|
-
supportsJSON = true;
|
|
17
|
-
supportsUpsert = true;
|
|
18
|
-
supportsCTE = true;
|
|
19
|
-
supportsWindowFunctions = true;
|
|
20
|
-
supportsSavepoints = true;
|
|
34
|
+
supportsReturning = true; // RETURNING clause support
|
|
35
|
+
supportsJSON = true; // Native JSON/JSONB support
|
|
36
|
+
supportsUpsert = true; // ON CONFLICT support (9.5+)
|
|
37
|
+
supportsCTE = true; // WITH clause support
|
|
38
|
+
supportsWindowFunctions = true; // Window functions support
|
|
39
|
+
supportsSavepoints = true; // Full savepoint support
|
|
21
40
|
databaseName = 'postgresql';
|
|
22
41
|
constructor(config) {
|
|
23
42
|
super(config);
|
|
24
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Returns the Knex dialect for PostgreSQL.
|
|
46
|
+
*
|
|
47
|
+
* Uses 'pg' driver which supports:
|
|
48
|
+
* - Prepared statements
|
|
49
|
+
* - Promise-based API
|
|
50
|
+
* - Connection pooling
|
|
51
|
+
* - Full Unicode support
|
|
52
|
+
*
|
|
53
|
+
* @returns {string} 'pg' dialect identifier
|
|
54
|
+
*/
|
|
25
55
|
getDialect() {
|
|
26
56
|
return 'pg';
|
|
27
57
|
}
|
|
58
|
+
/**
|
|
59
|
+
* Initializes PostgreSQL-specific session settings.
|
|
60
|
+
*
|
|
61
|
+
* **Configuration Applied:**
|
|
62
|
+
* - Timezone: UTC for consistent timestamp handling
|
|
63
|
+
* - Statement timeout: 30 seconds (prevents long-running queries)
|
|
64
|
+
* - Client encoding: UTF8 for full Unicode support
|
|
65
|
+
* - Default transaction isolation: READ COMMITTED
|
|
66
|
+
*
|
|
67
|
+
* @returns {Promise<void>}
|
|
68
|
+
* @throws {Error} If database does not exist or cannot be accessed
|
|
69
|
+
*/
|
|
28
70
|
async initialize() {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
71
|
+
const knex = this.getKnex();
|
|
72
|
+
// Validate database exists
|
|
73
|
+
const dbName = this.config.connection?.database;
|
|
74
|
+
if (!dbName) {
|
|
75
|
+
throw new Error('PostgreSQL adapter requires database name in configuration');
|
|
76
|
+
}
|
|
77
|
+
try {
|
|
78
|
+
// Check if we can access the database
|
|
79
|
+
const result = await knex.raw('SELECT current_database() as db');
|
|
80
|
+
const currentDb = result.rows?.[0]?.db;
|
|
81
|
+
if (!currentDb || currentDb !== dbName) {
|
|
82
|
+
throw new Error(`Database '${dbName}' does not exist or cannot be accessed. ` +
|
|
83
|
+
`Please create it manually: CREATE DATABASE ${dbName} ENCODING 'UTF8';`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
catch (error) {
|
|
87
|
+
if (error.code === '3D000') {
|
|
88
|
+
// INVALID CATALOG NAME
|
|
89
|
+
throw new Error(`Database '${dbName}' does not exist. ` +
|
|
90
|
+
`Please create it manually before connecting.`);
|
|
91
|
+
}
|
|
92
|
+
throw error;
|
|
93
|
+
}
|
|
94
|
+
// Set timezone to UTC for consistent timestamp handling
|
|
95
|
+
await knex.raw("SET timezone = 'UTC'");
|
|
96
|
+
// Set statement timeout to prevent long-running queries
|
|
97
|
+
await knex.raw('SET statement_timeout = 30000'); // 30 seconds
|
|
98
|
+
// Ensure UTF8 encoding
|
|
99
|
+
await knex.raw("SET client_encoding = 'UTF8'");
|
|
39
100
|
}
|
|
101
|
+
// ============================================================================
|
|
102
|
+
// Query Adaptations - PostgreSQL-specific implementations
|
|
103
|
+
// ============================================================================
|
|
104
|
+
/**
|
|
105
|
+
* Inserts a row and returns the inserted record using RETURNING clause.
|
|
106
|
+
*
|
|
107
|
+
* PostgreSQL supports RETURNING clause natively, making this more efficient
|
|
108
|
+
* than MySQL's approach (insert + select).
|
|
109
|
+
*
|
|
110
|
+
* @template T - Record type
|
|
111
|
+
* @param {string} table - Table name
|
|
112
|
+
* @param {Partial<T>} data - Data to insert
|
|
113
|
+
* @returns {Promise<T>} Inserted record
|
|
114
|
+
* @throws {Error} If insert fails
|
|
115
|
+
*/
|
|
40
116
|
async insertReturning(table, data) {
|
|
41
|
-
|
|
117
|
+
const knex = this.getKnex();
|
|
118
|
+
// Use RETURNING * to get the complete inserted row
|
|
119
|
+
const [result] = await knex(table).insert(data).returning('*');
|
|
120
|
+
if (!result) {
|
|
121
|
+
throw new Error(`Failed to insert row into ${table}`);
|
|
122
|
+
}
|
|
123
|
+
return result;
|
|
42
124
|
}
|
|
125
|
+
/**
|
|
126
|
+
* Upserts a row using PostgreSQL's ON CONFLICT ... DO UPDATE syntax.
|
|
127
|
+
*
|
|
128
|
+
* **Behavior:**
|
|
129
|
+
* - If row with conflicting key exists: UPDATE specified columns
|
|
130
|
+
* - If no conflict: INSERT new row
|
|
131
|
+
* - Returns number of affected rows
|
|
132
|
+
*
|
|
133
|
+
* @template T - Record type
|
|
134
|
+
* @param {string} table - Table name
|
|
135
|
+
* @param {Partial<T>} data - Data to insert/update
|
|
136
|
+
* @param {string[]} conflictColumns - Columns that define uniqueness (must have UNIQUE index)
|
|
137
|
+
* @param {string[]} [updateColumns] - Columns to update on conflict (default: all except conflict columns)
|
|
138
|
+
* @returns {Promise<number>} Affected rows (1 = insert or update)
|
|
139
|
+
* @throws {Error} If conflictColumns don't have UNIQUE constraint
|
|
140
|
+
*/
|
|
43
141
|
async upsert(table, data, conflictColumns, updateColumns) {
|
|
44
|
-
|
|
142
|
+
const knex = this.getKnex();
|
|
143
|
+
// Determine which columns to update on conflict
|
|
144
|
+
const columnsToUpdate = updateColumns || Object.keys(data).filter(key => !conflictColumns.includes(key));
|
|
145
|
+
// Build update data for DO UPDATE SET clause
|
|
146
|
+
const updateData = columnsToUpdate.reduce((acc, col) => {
|
|
147
|
+
acc[col] = data[col];
|
|
148
|
+
return acc;
|
|
149
|
+
}, {});
|
|
150
|
+
// Use Knex's onConflict() which generates ON CONFLICT ... DO UPDATE for PostgreSQL
|
|
151
|
+
const result = await knex(table)
|
|
152
|
+
.insert(data)
|
|
153
|
+
.onConflict(conflictColumns)
|
|
154
|
+
.merge(updateData);
|
|
155
|
+
return result.length;
|
|
45
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* Extracts a value from a JSONB column using jsonb_extract_path_text().
|
|
159
|
+
*
|
|
160
|
+
* **PostgreSQL JSON Path Syntax:**
|
|
161
|
+
* - Nested objects: 'address', 'city' (separate arguments)
|
|
162
|
+
* - Array access: Use jsonb_array_element() separately
|
|
163
|
+
*
|
|
164
|
+
* @param {string} column - JSONB column name
|
|
165
|
+
* @param {string} path - JSON path (e.g., 'address.city')
|
|
166
|
+
* @returns {Knex.Raw} Raw SQL expression for JSON extraction
|
|
167
|
+
*/
|
|
46
168
|
jsonExtract(column, path) {
|
|
47
|
-
|
|
169
|
+
const knex = this.getKnex();
|
|
170
|
+
// Split path by '.' and use as separate arguments
|
|
171
|
+
const pathParts = path.replace(/^\$\.?/, '').split('.');
|
|
172
|
+
const placeholders = ['??', ...pathParts.map(() => '?')].join(', ');
|
|
173
|
+
return knex.raw(`jsonb_extract_path_text(${placeholders})`, [column, ...pathParts]);
|
|
48
174
|
}
|
|
175
|
+
/**
|
|
176
|
+
* Builds a JSON object from field values using jsonb_build_object().
|
|
177
|
+
*
|
|
178
|
+
* @param {Record<string, any>} fields - Object with key-value pairs
|
|
179
|
+
* @returns {Knex.Raw} Raw SQL expression for JSON object construction
|
|
180
|
+
*/
|
|
49
181
|
jsonBuildObject(fields) {
|
|
50
|
-
|
|
182
|
+
const knex = this.getKnex();
|
|
183
|
+
const keys = Object.keys(fields);
|
|
184
|
+
const values = Object.values(fields);
|
|
185
|
+
// Build arguments array: [key1, value1, key2, value2, ...]
|
|
186
|
+
const args = [];
|
|
187
|
+
keys.forEach((key, i) => {
|
|
188
|
+
args.push(key);
|
|
189
|
+
args.push(values[i]);
|
|
190
|
+
});
|
|
191
|
+
// Create placeholders for jsonb_build_object(?, ?, ?, ?, ...)
|
|
192
|
+
const placeholders = args.map(() => '?').join(', ');
|
|
193
|
+
return knex.raw(`jsonb_build_object(${placeholders})`, args);
|
|
51
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* Returns current Unix timestamp using EXTRACT(EPOCH FROM NOW()).
|
|
197
|
+
*
|
|
198
|
+
* **Behavior:**
|
|
199
|
+
* - Returns seconds since Unix epoch (1970-01-01 00:00:00 UTC)
|
|
200
|
+
* - Always returns UTC timestamp
|
|
201
|
+
* - Returns numeric value (may have fractional seconds)
|
|
202
|
+
*
|
|
203
|
+
* @returns {Knex.Raw} Raw SQL expression for current timestamp
|
|
204
|
+
*/
|
|
52
205
|
currentTimestamp() {
|
|
53
|
-
|
|
206
|
+
return this.getKnex().raw('EXTRACT(EPOCH FROM NOW())::INTEGER');
|
|
54
207
|
}
|
|
208
|
+
/**
|
|
209
|
+
* Converts Unix epoch timestamp to PostgreSQL timestamp using TO_TIMESTAMP().
|
|
210
|
+
*
|
|
211
|
+
* **Behavior:**
|
|
212
|
+
* - Converts integer epoch to TIMESTAMP WITH TIME ZONE
|
|
213
|
+
* - Returns UTC timestamp
|
|
214
|
+
* - Handles NULL values
|
|
215
|
+
*
|
|
216
|
+
* @param {string} epochColumn - Column containing Unix epoch timestamp
|
|
217
|
+
* @returns {Knex.Raw} Raw SQL expression for epoch conversion
|
|
218
|
+
*/
|
|
55
219
|
fromUnixEpoch(epochColumn) {
|
|
56
|
-
|
|
220
|
+
return this.getKnex().raw('TO_TIMESTAMP(??)', [epochColumn]);
|
|
57
221
|
}
|
|
222
|
+
/**
|
|
223
|
+
* Converts PostgreSQL timestamp to Unix epoch using EXTRACT(EPOCH FROM ...).
|
|
224
|
+
*
|
|
225
|
+
* **Behavior:**
|
|
226
|
+
* - Converts TIMESTAMP to integer epoch
|
|
227
|
+
* - Assumes input is UTC
|
|
228
|
+
* - Handles NULL values
|
|
229
|
+
*
|
|
230
|
+
* @param {string} timestampColumn - Column containing timestamp value
|
|
231
|
+
* @returns {Knex.Raw} Raw SQL expression for timestamp conversion
|
|
232
|
+
*/
|
|
58
233
|
toUnixEpoch(timestampColumn) {
|
|
59
|
-
|
|
234
|
+
return this.getKnex().raw('EXTRACT(EPOCH FROM ??)::INTEGER', [timestampColumn]);
|
|
60
235
|
}
|
|
236
|
+
/**
|
|
237
|
+
* Concatenates string values using || operator.
|
|
238
|
+
*
|
|
239
|
+
* **Behavior:**
|
|
240
|
+
* - PostgreSQL uses || for concatenation
|
|
241
|
+
* - Returns NULL if any argument is NULL (use COALESCE to handle)
|
|
242
|
+
* - Empty strings are preserved
|
|
243
|
+
*
|
|
244
|
+
* @param {...(string | Knex.Raw)[]} values - Values to concatenate
|
|
245
|
+
* @returns {Knex.Raw} Raw SQL expression for concatenation
|
|
246
|
+
*/
|
|
61
247
|
concat(...values) {
|
|
62
|
-
|
|
248
|
+
const knex = this.getKnex();
|
|
249
|
+
const placeholders = values.map(() => '?').join(' || ');
|
|
250
|
+
return knex.raw(`(${placeholders})`, values);
|
|
63
251
|
}
|
|
64
|
-
|
|
65
|
-
|
|
252
|
+
/**
|
|
253
|
+
* Aggregates strings with separator using string_agg().
|
|
254
|
+
*
|
|
255
|
+
* **Behavior:**
|
|
256
|
+
* - Concatenates values from multiple rows into single string
|
|
257
|
+
* - NULL values are skipped
|
|
258
|
+
* - No result length limit (unlike MySQL's GROUP_CONCAT)
|
|
259
|
+
*
|
|
260
|
+
* @param {string} column - Column to aggregate
|
|
261
|
+
* @param {string} [separator=','] - Separator between values
|
|
262
|
+
* @returns {Knex.Raw} Raw SQL expression for string aggregation
|
|
263
|
+
*/
|
|
264
|
+
stringAgg(column, separator = ',') {
|
|
265
|
+
return this.getKnex().raw('string_agg(??, ?)', [column, separator]);
|
|
66
266
|
}
|
|
267
|
+
// ============================================================================
|
|
268
|
+
// Transaction Support
|
|
269
|
+
// ============================================================================
|
|
270
|
+
/**
|
|
271
|
+
* Executes a callback within a database transaction.
|
|
272
|
+
*
|
|
273
|
+
* **PostgreSQL Transaction Characteristics:**
|
|
274
|
+
* - Default isolation level: READ COMMITTED
|
|
275
|
+
* - Supports nested transactions via savepoints
|
|
276
|
+
* - Automatic rollback on error
|
|
277
|
+
* - MVCC (Multi-Version Concurrency Control)
|
|
278
|
+
*
|
|
279
|
+
* @template T - Return type
|
|
280
|
+
* @param {Function} callback - Transaction callback
|
|
281
|
+
* @param {Object} [options] - Transaction options
|
|
282
|
+
* @param {string} [options.isolationLevel] - Isolation level
|
|
283
|
+
* @returns {Promise<T>} Transaction result
|
|
284
|
+
*/
|
|
67
285
|
async transaction(callback, options) {
|
|
68
|
-
|
|
286
|
+
// Delegate to BaseAdapter's implementation
|
|
287
|
+
return super.transaction(callback, options);
|
|
69
288
|
}
|
|
289
|
+
/**
|
|
290
|
+
* Creates a savepoint within a transaction.
|
|
291
|
+
*
|
|
292
|
+
* **PostgreSQL Savepoint Behavior:**
|
|
293
|
+
* - Allows partial rollback within transaction
|
|
294
|
+
* - Savepoint names are case-sensitive
|
|
295
|
+
* - Automatically released on transaction commit
|
|
296
|
+
* - Rolled back on transaction rollback
|
|
297
|
+
*
|
|
298
|
+
* @template T - Return type
|
|
299
|
+
* @param {Knex.Transaction} trx - Parent transaction
|
|
300
|
+
* @param {Function} callback - Savepoint callback
|
|
301
|
+
* @returns {Promise<T>} Savepoint result
|
|
302
|
+
*/
|
|
70
303
|
async savepoint(trx, callback) {
|
|
71
|
-
|
|
304
|
+
return trx.savepoint(callback);
|
|
72
305
|
}
|
|
306
|
+
// ============================================================================
|
|
307
|
+
// Schema Management
|
|
308
|
+
// ============================================================================
|
|
309
|
+
/**
|
|
310
|
+
* Checks if a table exists in the database.
|
|
311
|
+
*
|
|
312
|
+
* Queries information_schema.tables which is the standard PostgreSQL approach
|
|
313
|
+
* for table existence checking.
|
|
314
|
+
*
|
|
315
|
+
* @param {string} tableName - Table name to check
|
|
316
|
+
* @returns {Promise<boolean>} True if table exists, false otherwise
|
|
317
|
+
*/
|
|
73
318
|
async tableExists(tableName) {
|
|
74
|
-
|
|
319
|
+
const knex = this.getKnex();
|
|
320
|
+
const database = this.config.connection.database;
|
|
321
|
+
const result = await knex.raw(`SELECT table_name
|
|
322
|
+
FROM information_schema.tables
|
|
323
|
+
WHERE table_catalog = ?
|
|
324
|
+
AND table_name = ?`, [database, tableName]);
|
|
325
|
+
return result.rows.length > 0;
|
|
75
326
|
}
|
|
76
|
-
|
|
77
|
-
|
|
327
|
+
/**
|
|
328
|
+
* Adds a serial auto-increment primary key column to a table.
|
|
329
|
+
*
|
|
330
|
+
* **PostgreSQL SERIAL Behavior:**
|
|
331
|
+
* - SERIAL = INTEGER with auto-increment (sequence)
|
|
332
|
+
* - BIGSERIAL = BIGINT with auto-increment (recommended for large tables)
|
|
333
|
+
* - Automatically creates a sequence (tablename_columnname_seq)
|
|
334
|
+
* - Primary key constraint added automatically
|
|
335
|
+
*
|
|
336
|
+
* @param {Knex.CreateTableBuilder} table - Knex table builder
|
|
337
|
+
* @param {string} [columnName='id'] - Column name (default: 'id')
|
|
338
|
+
*/
|
|
339
|
+
autoIncrementColumn(table, columnName = 'id') {
|
|
340
|
+
// Use increments() which creates SERIAL PRIMARY KEY for PostgreSQL
|
|
341
|
+
table.increments(columnName);
|
|
78
342
|
}
|
|
79
343
|
}
|
|
80
344
|
//# sourceMappingURL=postgresql-adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgresql-adapter.js","sourceRoot":"","sources":["../../src/adapters/postgresql-adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"postgresql-adapter.js","sourceRoot":"","sources":["../../src/adapters/postgresql-adapter.ts"],"names":[],"mappings":"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"}
|