typhex 0.1.0-alpha.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 +20 -0
- package/LICENSE +21 -0
- package/README.md +417 -0
- package/SECURITY.md +32 -0
- package/dist/arrow/aggregates.d.ts +12 -0
- package/dist/arrow/aggregates.d.ts.map +1 -0
- package/dist/arrow/aggregates.js +32 -0
- package/dist/arrow/aggregates.js.map +1 -0
- package/dist/arrow/constants.d.ts +15 -0
- package/dist/arrow/constants.d.ts.map +1 -0
- package/dist/arrow/constants.js +42 -0
- package/dist/arrow/constants.js.map +1 -0
- package/dist/arrow/index.d.ts +7 -0
- package/dist/arrow/index.d.ts.map +1 -0
- package/dist/arrow/index.js +7 -0
- package/dist/arrow/index.js.map +1 -0
- package/dist/config/index.d.ts +6 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +4 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/load-config.d.ts +19 -0
- package/dist/config/load-config.d.ts.map +1 -0
- package/dist/config/load-config.js +84 -0
- package/dist/config/load-config.js.map +1 -0
- package/dist/config/load-env.d.ts +7 -0
- package/dist/config/load-env.d.ts.map +1 -0
- package/dist/config/load-env.js +62 -0
- package/dist/config/load-env.js.map +1 -0
- package/dist/config/types.d.ts +20 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +10 -0
- package/dist/config/types.js.map +1 -0
- package/dist/dbs/base-migrator.d.ts +20 -0
- package/dist/dbs/base-migrator.d.ts.map +1 -0
- package/dist/dbs/base-migrator.js +112 -0
- package/dist/dbs/base-migrator.js.map +1 -0
- package/dist/dbs/index.d.ts +9 -0
- package/dist/dbs/index.d.ts.map +1 -0
- package/dist/dbs/index.js +17 -0
- package/dist/dbs/index.js.map +1 -0
- package/dist/dbs/postgres/dialect.d.ts +8 -0
- package/dist/dbs/postgres/dialect.d.ts.map +1 -0
- package/dist/dbs/postgres/dialect.js +17 -0
- package/dist/dbs/postgres/dialect.js.map +1 -0
- package/dist/dbs/postgres/driver.d.ts +42 -0
- package/dist/dbs/postgres/driver.d.ts.map +1 -0
- package/dist/dbs/postgres/driver.js +111 -0
- package/dist/dbs/postgres/driver.js.map +1 -0
- package/dist/dbs/postgres/index.d.ts +6 -0
- package/dist/dbs/postgres/index.d.ts.map +1 -0
- package/dist/dbs/postgres/index.js +5 -0
- package/dist/dbs/postgres/index.js.map +1 -0
- package/dist/dbs/postgres/migrator.d.ts +13 -0
- package/dist/dbs/postgres/migrator.d.ts.map +1 -0
- package/dist/dbs/postgres/migrator.js +22 -0
- package/dist/dbs/postgres/migrator.js.map +1 -0
- package/dist/dbs/postgres/query-compiler.d.ts +22 -0
- package/dist/dbs/postgres/query-compiler.d.ts.map +1 -0
- package/dist/dbs/postgres/query-compiler.js +140 -0
- package/dist/dbs/postgres/query-compiler.js.map +1 -0
- package/dist/dbs/postgres/trx.d.ts +16 -0
- package/dist/dbs/postgres/trx.d.ts.map +1 -0
- package/dist/dbs/postgres/trx.js +68 -0
- package/dist/dbs/postgres/trx.js.map +1 -0
- package/dist/dbs/query-compiler.d.ts +135 -0
- package/dist/dbs/query-compiler.d.ts.map +1 -0
- package/dist/dbs/query-compiler.js +775 -0
- package/dist/dbs/query-compiler.js.map +1 -0
- package/dist/dbs/sqlite/dialect.d.ts +8 -0
- package/dist/dbs/sqlite/dialect.d.ts.map +1 -0
- package/dist/dbs/sqlite/dialect.js +17 -0
- package/dist/dbs/sqlite/dialect.js.map +1 -0
- package/dist/dbs/sqlite/driver.d.ts +9 -0
- package/dist/dbs/sqlite/driver.d.ts.map +1 -0
- package/dist/dbs/sqlite/driver.js +66 -0
- package/dist/dbs/sqlite/driver.js.map +1 -0
- package/dist/dbs/sqlite/index.d.ts +6 -0
- package/dist/dbs/sqlite/index.d.ts.map +1 -0
- package/dist/dbs/sqlite/index.js +5 -0
- package/dist/dbs/sqlite/index.js.map +1 -0
- package/dist/dbs/sqlite/migrator.d.ts +13 -0
- package/dist/dbs/sqlite/migrator.d.ts.map +1 -0
- package/dist/dbs/sqlite/migrator.js +22 -0
- package/dist/dbs/sqlite/migrator.js.map +1 -0
- package/dist/dbs/sqlite/query-compiler.d.ts +26 -0
- package/dist/dbs/sqlite/query-compiler.d.ts.map +1 -0
- package/dist/dbs/sqlite/query-compiler.js +80 -0
- package/dist/dbs/sqlite/query-compiler.js.map +1 -0
- package/dist/dbs/sqlite/trx.d.ts +13 -0
- package/dist/dbs/sqlite/trx.d.ts.map +1 -0
- package/dist/dbs/sqlite/trx.js +69 -0
- package/dist/dbs/sqlite/trx.js.map +1 -0
- package/dist/dbs/types.d.ts +92 -0
- package/dist/dbs/types.d.ts.map +1 -0
- package/dist/dbs/types.js +26 -0
- package/dist/dbs/types.js.map +1 -0
- package/dist/dialect.d.ts +3 -0
- package/dist/dialect.d.ts.map +1 -0
- package/dist/dialect.js +2 -0
- package/dist/dialect.js.map +1 -0
- package/dist/driver/factory.d.ts +19 -0
- package/dist/driver/factory.d.ts.map +1 -0
- package/dist/driver/factory.js +24 -0
- package/dist/driver/factory.js.map +1 -0
- package/dist/driver/index.d.ts +6 -0
- package/dist/driver/index.d.ts.map +1 -0
- package/dist/driver/index.js +3 -0
- package/dist/driver/index.js.map +1 -0
- package/dist/driver/sqlite.d.ts +15 -0
- package/dist/driver/sqlite.d.ts.map +1 -0
- package/dist/driver/sqlite.js +74 -0
- package/dist/driver/sqlite.js.map +1 -0
- package/dist/driver/types.d.ts +75 -0
- package/dist/driver/types.d.ts.map +1 -0
- package/dist/driver/types.js +2 -0
- package/dist/driver/types.js.map +1 -0
- package/dist/entity/entity.d.ts +67 -0
- package/dist/entity/entity.d.ts.map +1 -0
- package/dist/entity/entity.js +139 -0
- package/dist/entity/entity.js.map +1 -0
- package/dist/entity/global-driver.d.ts +38 -0
- package/dist/entity/global-driver.d.ts.map +1 -0
- package/dist/entity/global-driver.js +109 -0
- package/dist/entity/global-driver.js.map +1 -0
- package/dist/entity/index.d.ts +8 -0
- package/dist/entity/index.d.ts.map +1 -0
- package/dist/entity/index.js +3 -0
- package/dist/entity/index.js.map +1 -0
- package/dist/entity/pk-columns.d.ts +5 -0
- package/dist/entity/pk-columns.d.ts.map +1 -0
- package/dist/entity/pk-columns.js +14 -0
- package/dist/entity/pk-columns.js.map +1 -0
- package/dist/entity/relations.d.ts +134 -0
- package/dist/entity/relations.d.ts.map +1 -0
- package/dist/entity/relations.js +23 -0
- package/dist/entity/relations.js.map +1 -0
- package/dist/entity/schema-inference.d.ts +77 -0
- package/dist/entity/schema-inference.d.ts.map +1 -0
- package/dist/entity/schema-inference.js +6 -0
- package/dist/entity/schema-inference.js.map +1 -0
- package/dist/entity/types.d.ts +30 -0
- package/dist/entity/types.d.ts.map +1 -0
- package/dist/entity/types.js +5 -0
- package/dist/entity/types.js.map +1 -0
- package/dist/index.d.ts +25 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/ir/index.d.ts +2 -0
- package/dist/ir/index.d.ts.map +1 -0
- package/dist/ir/index.js +2 -0
- package/dist/ir/index.js.map +1 -0
- package/dist/ir/types.d.ts +148 -0
- package/dist/ir/types.d.ts.map +1 -0
- package/dist/ir/types.js +97 -0
- package/dist/ir/types.js.map +1 -0
- package/dist/migration/cli.d.ts +18 -0
- package/dist/migration/cli.d.ts.map +1 -0
- package/dist/migration/cli.js +236 -0
- package/dist/migration/cli.js.map +1 -0
- package/dist/migration/diff.d.ts +10 -0
- package/dist/migration/diff.d.ts.map +1 -0
- package/dist/migration/diff.js +10 -0
- package/dist/migration/diff.js.map +1 -0
- package/dist/migration/generator.d.ts +12 -0
- package/dist/migration/generator.d.ts.map +1 -0
- package/dist/migration/generator.js +98 -0
- package/dist/migration/generator.js.map +1 -0
- package/dist/migration/index.d.ts +7 -0
- package/dist/migration/index.d.ts.map +1 -0
- package/dist/migration/index.js +5 -0
- package/dist/migration/index.js.map +1 -0
- package/dist/migration/runner.d.ts +32 -0
- package/dist/migration/runner.d.ts.map +1 -0
- package/dist/migration/runner.js +279 -0
- package/dist/migration/runner.js.map +1 -0
- package/dist/migration/topo-sort.d.ts +12 -0
- package/dist/migration/topo-sort.d.ts.map +1 -0
- package/dist/migration/topo-sort.js +42 -0
- package/dist/migration/topo-sort.js.map +1 -0
- package/dist/migration/types.d.ts +45 -0
- package/dist/migration/types.d.ts.map +1 -0
- package/dist/migration/types.js +2 -0
- package/dist/migration/types.js.map +1 -0
- package/dist/orm/aggregates.d.ts +19 -0
- package/dist/orm/aggregates.d.ts.map +1 -0
- package/dist/orm/aggregates.js +32 -0
- package/dist/orm/aggregates.js.map +1 -0
- package/dist/orm/db.d.ts +105 -0
- package/dist/orm/db.d.ts.map +1 -0
- package/dist/orm/db.js +172 -0
- package/dist/orm/db.js.map +1 -0
- package/dist/orm/expr.d.ts +125 -0
- package/dist/orm/expr.d.ts.map +1 -0
- package/dist/orm/expr.js +10 -0
- package/dist/orm/expr.js.map +1 -0
- package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.d.ts +9 -0
- package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.d.ts.map +1 -0
- package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.js +44 -0
- package/dist/orm/helpers/insert-graph/insert-graph-batch-executor.js.map +1 -0
- package/dist/orm/helpers/insert-graph/insert-graph-executor.d.ts +13 -0
- package/dist/orm/helpers/insert-graph/insert-graph-executor.d.ts.map +1 -0
- package/dist/orm/helpers/insert-graph/insert-graph-executor.js +42 -0
- package/dist/orm/helpers/insert-graph/insert-graph-executor.js.map +1 -0
- package/dist/orm/helpers/insert-graph/insert-graph-planner.d.ts +46 -0
- package/dist/orm/helpers/insert-graph/insert-graph-planner.d.ts.map +1 -0
- package/dist/orm/helpers/insert-graph/insert-graph-planner.js +258 -0
- package/dist/orm/helpers/insert-graph/insert-graph-planner.js.map +1 -0
- package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.d.ts +7 -0
- package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.d.ts.map +1 -0
- package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.js +8 -0
- package/dist/orm/helpers/insert-graph/insert-graph-sequential-executor.js.map +1 -0
- package/dist/orm/helpers/insert-graph/sequence-id-assigner.d.ts +15 -0
- package/dist/orm/helpers/insert-graph/sequence-id-assigner.d.ts.map +1 -0
- package/dist/orm/helpers/insert-graph/sequence-id-assigner.js +48 -0
- package/dist/orm/helpers/insert-graph/sequence-id-assigner.js.map +1 -0
- package/dist/orm/helpers/query-plan/expr-builder.d.ts +155 -0
- package/dist/orm/helpers/query-plan/expr-builder.d.ts.map +1 -0
- package/dist/orm/helpers/query-plan/expr-builder.js +297 -0
- package/dist/orm/helpers/query-plan/expr-builder.js.map +1 -0
- package/dist/orm/helpers/query-plan/query-ir-analyzer.d.ts +48 -0
- package/dist/orm/helpers/query-plan/query-ir-analyzer.d.ts.map +1 -0
- package/dist/orm/helpers/query-plan/query-ir-analyzer.js +262 -0
- package/dist/orm/helpers/query-plan/query-ir-analyzer.js.map +1 -0
- package/dist/orm/helpers/query-plan/query-plan.d.ts +164 -0
- package/dist/orm/helpers/query-plan/query-plan.d.ts.map +1 -0
- package/dist/orm/helpers/query-plan/query-plan.js +549 -0
- package/dist/orm/helpers/query-plan/query-plan.js.map +1 -0
- package/dist/orm/helpers/query-plan/select-classifier.d.ts +161 -0
- package/dist/orm/helpers/query-plan/select-classifier.d.ts.map +1 -0
- package/dist/orm/helpers/query-plan/select-classifier.js +359 -0
- package/dist/orm/helpers/query-plan/select-classifier.js.map +1 -0
- package/dist/orm/helpers/relations/relation-assembler.d.ts +21 -0
- package/dist/orm/helpers/relations/relation-assembler.d.ts.map +1 -0
- package/dist/orm/helpers/relations/relation-assembler.js +60 -0
- package/dist/orm/helpers/relations/relation-assembler.js.map +1 -0
- package/dist/orm/helpers/relations/relation-fetcher.d.ts +30 -0
- package/dist/orm/helpers/relations/relation-fetcher.d.ts.map +1 -0
- package/dist/orm/helpers/relations/relation-fetcher.js +128 -0
- package/dist/orm/helpers/relations/relation-fetcher.js.map +1 -0
- package/dist/orm/helpers/relations/relation-joins.d.ts +74 -0
- package/dist/orm/helpers/relations/relation-joins.d.ts.map +1 -0
- package/dist/orm/helpers/relations/relation-joins.js +138 -0
- package/dist/orm/helpers/relations/relation-joins.js.map +1 -0
- package/dist/orm/helpers/relations/relation-resolver.d.ts +14 -0
- package/dist/orm/helpers/relations/relation-resolver.d.ts.map +1 -0
- package/dist/orm/helpers/relations/relation-resolver.js +25 -0
- package/dist/orm/helpers/relations/relation-resolver.js.map +1 -0
- package/dist/orm/index.d.ts +7 -0
- package/dist/orm/index.d.ts.map +1 -0
- package/dist/orm/index.js +5 -0
- package/dist/orm/index.js.map +1 -0
- package/dist/orm/query-builder.d.ts +136 -0
- package/dist/orm/query-builder.d.ts.map +1 -0
- package/dist/orm/query-builder.js +433 -0
- package/dist/orm/query-builder.js.map +1 -0
- package/dist/orm/query-helpers.d.ts +35 -0
- package/dist/orm/query-helpers.d.ts.map +1 -0
- package/dist/orm/query-helpers.js +83 -0
- package/dist/orm/query-helpers.js.map +1 -0
- package/dist/orm/query-state.d.ts +56 -0
- package/dist/orm/query-state.d.ts.map +1 -0
- package/dist/orm/query-state.js +112 -0
- package/dist/orm/query-state.js.map +1 -0
- package/dist/orm/single-row-query-builder.d.ts +18 -0
- package/dist/orm/single-row-query-builder.d.ts.map +1 -0
- package/dist/orm/single-row-query-builder.js +90 -0
- package/dist/orm/single-row-query-builder.js.map +1 -0
- package/dist/orm/trx.d.ts +40 -0
- package/dist/orm/trx.d.ts.map +1 -0
- package/dist/orm/trx.js +118 -0
- package/dist/orm/trx.js.map +1 -0
- package/dist/parser/acorn-helpers.d.ts +43 -0
- package/dist/parser/acorn-helpers.d.ts.map +1 -0
- package/dist/parser/acorn-helpers.js +104 -0
- package/dist/parser/acorn-helpers.js.map +1 -0
- package/dist/parser/acorn-member.d.ts +16 -0
- package/dist/parser/acorn-member.d.ts.map +1 -0
- package/dist/parser/acorn-member.js +31 -0
- package/dist/parser/acorn-member.js.map +1 -0
- package/dist/parser/acorn-types.d.ts +14 -0
- package/dist/parser/acorn-types.d.ts.map +1 -0
- package/dist/parser/acorn-types.js +6 -0
- package/dist/parser/acorn-types.js.map +1 -0
- package/dist/parser/arrow-source.d.ts +23 -0
- package/dist/parser/arrow-source.d.ts.map +1 -0
- package/dist/parser/arrow-source.js +70 -0
- package/dist/parser/arrow-source.js.map +1 -0
- package/dist/parser/group-by.d.ts +17 -0
- package/dist/parser/group-by.d.ts.map +1 -0
- package/dist/parser/group-by.js +62 -0
- package/dist/parser/group-by.js.map +1 -0
- package/dist/parser/index.d.ts +5 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +3 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/parse-arrow.d.ts +10 -0
- package/dist/parser/parse-arrow.d.ts.map +1 -0
- package/dist/parser/parse-arrow.js +9 -0
- package/dist/parser/parse-arrow.js.map +1 -0
- package/dist/parser/predicate-walk.d.ts +24 -0
- package/dist/parser/predicate-walk.d.ts.map +1 -0
- package/dist/parser/predicate-walk.js +247 -0
- package/dist/parser/predicate-walk.js.map +1 -0
- package/dist/parser/resolve.d.ts +25 -0
- package/dist/parser/resolve.d.ts.map +1 -0
- package/dist/parser/resolve.js +134 -0
- package/dist/parser/resolve.js.map +1 -0
- package/dist/parser/select.d.ts +7 -0
- package/dist/parser/select.d.ts.map +1 -0
- package/dist/parser/select.js +333 -0
- package/dist/parser/select.js.map +1 -0
- package/dist/parser/update.d.ts +7 -0
- package/dist/parser/update.d.ts.map +1 -0
- package/dist/parser/update.js +51 -0
- package/dist/parser/update.js.map +1 -0
- package/dist/postgres/aggregates.d.ts +12 -0
- package/dist/postgres/aggregates.d.ts.map +1 -0
- package/dist/postgres/aggregates.js +19 -0
- package/dist/postgres/aggregates.js.map +1 -0
- package/dist/postgres.d.ts +6 -0
- package/dist/postgres.d.ts.map +1 -0
- package/dist/postgres.js +6 -0
- package/dist/postgres.js.map +1 -0
- package/dist/schema/index.d.ts +2 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/index.js +2 -0
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/types.d.ts +16 -0
- package/dist/schema/types.d.ts.map +1 -0
- package/dist/schema/types.js +40 -0
- package/dist/schema/types.js.map +1 -0
- package/dist/sqlite/aggregates.d.ts +8 -0
- package/dist/sqlite/aggregates.d.ts.map +1 -0
- package/dist/sqlite/aggregates.js +11 -0
- package/dist/sqlite/aggregates.js.map +1 -0
- package/dist/sqlite.d.ts +6 -0
- package/dist/sqlite.d.ts.map +1 -0
- package/dist/sqlite.js +6 -0
- package/dist/sqlite.js.map +1 -0
- package/dist/transformer/bindings.d.ts +18 -0
- package/dist/transformer/bindings.d.ts.map +1 -0
- package/dist/transformer/bindings.js +52 -0
- package/dist/transformer/bindings.js.map +1 -0
- package/dist/transformer/index.d.ts +17 -0
- package/dist/transformer/index.d.ts.map +1 -0
- package/dist/transformer/index.js +75 -0
- package/dist/transformer/index.js.map +1 -0
- package/dist/transformer/ir-emit.d.ts +12 -0
- package/dist/transformer/ir-emit.d.ts.map +1 -0
- package/dist/transformer/ir-emit.js +144 -0
- package/dist/transformer/ir-emit.js.map +1 -0
- package/dist/transformer/join-transformer.d.ts +12 -0
- package/dist/transformer/join-transformer.d.ts.map +1 -0
- package/dist/transformer/join-transformer.js +102 -0
- package/dist/transformer/join-transformer.js.map +1 -0
- package/dist/transformer/orderby-transformer.d.ts +13 -0
- package/dist/transformer/orderby-transformer.d.ts.map +1 -0
- package/dist/transformer/orderby-transformer.js +84 -0
- package/dist/transformer/orderby-transformer.js.map +1 -0
- package/dist/transformer/select-transformer.d.ts +9 -0
- package/dist/transformer/select-transformer.d.ts.map +1 -0
- package/dist/transformer/select-transformer.js +222 -0
- package/dist/transformer/select-transformer.js.map +1 -0
- package/dist/transformer/shared.d.ts +12 -0
- package/dist/transformer/shared.d.ts.map +1 -0
- package/dist/transformer/shared.js +12 -0
- package/dist/transformer/shared.js.map +1 -0
- package/dist/transformer/subquery-transformer.d.ts +15 -0
- package/dist/transformer/subquery-transformer.d.ts.map +1 -0
- package/dist/transformer/subquery-transformer.js +43 -0
- package/dist/transformer/subquery-transformer.js.map +1 -0
- package/dist/transformer/ts-aggregates.d.ts +13 -0
- package/dist/transformer/ts-aggregates.d.ts.map +1 -0
- package/dist/transformer/ts-aggregates.js +83 -0
- package/dist/transformer/ts-aggregates.js.map +1 -0
- package/dist/transformer/ts-binary.d.ts +8 -0
- package/dist/transformer/ts-binary.d.ts.map +1 -0
- package/dist/transformer/ts-binary.js +32 -0
- package/dist/transformer/ts-binary.js.map +1 -0
- package/dist/transformer/ts-member.d.ts +12 -0
- package/dist/transformer/ts-member.d.ts.map +1 -0
- package/dist/transformer/ts-member.js +22 -0
- package/dist/transformer/ts-member.js.map +1 -0
- package/dist/transformer/ts-utils.d.ts +10 -0
- package/dist/transformer/ts-utils.d.ts.map +1 -0
- package/dist/transformer/ts-utils.js +38 -0
- package/dist/transformer/ts-utils.js.map +1 -0
- package/dist/transformer/typhex-type.d.ts +8 -0
- package/dist/transformer/typhex-type.d.ts.map +1 -0
- package/dist/transformer/typhex-type.js +52 -0
- package/dist/transformer/typhex-type.js.map +1 -0
- package/dist/transformer/where-transformer.d.ts +33 -0
- package/dist/transformer/where-transformer.d.ts.map +1 -0
- package/dist/transformer/where-transformer.js +400 -0
- package/dist/transformer/where-transformer.js.map +1 -0
- package/dist/utils.d.ts +5 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +30 -0
- package/dist/utils.js.map +1 -0
- package/docs/drivers/postgres.md +54 -0
- package/docs/drivers/sqlite.md +33 -0
- package/docs/guide/aggregations.md +272 -0
- package/docs/guide/bulk-operations.md +204 -0
- package/docs/guide/cte-and-unions.md +270 -0
- package/docs/guide/entities-relations.md +208 -0
- package/docs/guide/expressions.md +98 -0
- package/docs/guide/filtering-by-relations.md +166 -0
- package/docs/guide/getting-started.md +277 -0
- package/docs/guide/querying-relations.md +133 -0
- package/docs/guide/subqueries.md +152 -0
- package/docs/guide/transactions.md +146 -0
- package/docs/guide/typescript-transformer.md +138 -0
- package/docs/index.md +33 -0
- package/docs/migrations/overview.md +143 -0
- package/docs/public-api.md +133 -0
- package/docs/reference/api.md +665 -0
- package/docs/reference/architecture.md +83 -0
- package/docs/release-checklist.md +55 -0
- package/etc/typhex.api.md +774 -0
- package/package.json +137 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PostgreSQL schema migrator: diff and introspection.
|
|
3
|
+
*/
|
|
4
|
+
import type { DbColumnInfo } from "../types.js";
|
|
5
|
+
import type { ResolvedDriver } from "../../driver/types.js";
|
|
6
|
+
import { BaseMigrator } from "../base-migrator.js";
|
|
7
|
+
export declare class PostgresMigrator extends BaseMigrator {
|
|
8
|
+
constructor();
|
|
9
|
+
getDbTables(driver: ResolvedDriver): Promise<string[]>;
|
|
10
|
+
getDbColumns(driver: ResolvedDriver, table: string): Promise<DbColumnInfo[]>;
|
|
11
|
+
}
|
|
12
|
+
export declare const postgresMigrator: PostgresMigrator;
|
|
13
|
+
//# sourceMappingURL=migrator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrator.d.ts","sourceRoot":"","sources":["../../../src/dbs/postgres/migrator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,qBAAa,gBAAiB,SAAQ,YAAY;;IAK1C,WAAW,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAMtD,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;CAKnF;AAED,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PostgreSQL schema migrator: diff and introspection.
|
|
3
|
+
*/
|
|
4
|
+
import { BaseMigrator } from "../base-migrator.js";
|
|
5
|
+
import { postgresQueryCompiler } from "./query-compiler.js";
|
|
6
|
+
export class PostgresMigrator extends BaseMigrator {
|
|
7
|
+
constructor() {
|
|
8
|
+
super("postgres", postgresQueryCompiler);
|
|
9
|
+
}
|
|
10
|
+
async getDbTables(driver) {
|
|
11
|
+
const compiled = this.queryCompiler.compileListTables();
|
|
12
|
+
const rows = await driver.execute(compiled.sql, compiled.params).then((r) => r.rows);
|
|
13
|
+
return rows.map((r) => r.table_name);
|
|
14
|
+
}
|
|
15
|
+
async getDbColumns(driver, table) {
|
|
16
|
+
const compiled = this.queryCompiler.compileListColumns(table);
|
|
17
|
+
const rows = await driver.execute(compiled.sql, compiled.params).then((r) => r.rows);
|
|
18
|
+
return rows;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export const postgresMigrator = new PostgresMigrator();
|
|
22
|
+
//# sourceMappingURL=migrator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrator.js","sourceRoot":"","sources":["../../../src/dbs/postgres/migrator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAE5D,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAChD;QACE,KAAK,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAsB;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,iBAAiB,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrF,OAAQ,IAAsC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,MAAsB,EAAE,KAAa;QACtD,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC9D,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACrF,OAAO,IAAsB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { BaseQueryCompiler } from "../query-compiler.js";
|
|
2
|
+
import type { CompileResult, DiffAction, ExpandPlaceholdersResult, CompiledCteBody } from "../types.js";
|
|
3
|
+
import type { ExprAggregate, JoinSpec } from "../../orm/expr.js";
|
|
4
|
+
type AlterColumnAction = Extract<DiffAction, {
|
|
5
|
+
kind: "alter_column";
|
|
6
|
+
}>;
|
|
7
|
+
export declare class PostgresQueryCompiler extends BaseQueryCompiler {
|
|
8
|
+
protected readonly dialect: "postgres";
|
|
9
|
+
compileNextSequenceValues(): CompileResult;
|
|
10
|
+
compileTrackingTable(): CompileResult;
|
|
11
|
+
compileListTables(): CompileResult;
|
|
12
|
+
compileListColumns(table: string): CompileResult;
|
|
13
|
+
protected expandPlaceholders(sql: string, resolvedParams: unknown[], startIdx?: number): ExpandPlaceholdersResult;
|
|
14
|
+
protected compileWithClause(coreSql: string, coreParams: unknown[], bodies: CompiledCteBody[], paramStartIndex: number): CompileResult;
|
|
15
|
+
private shiftPlaceholders;
|
|
16
|
+
compileAggregate(agg: ExprAggregate, params?: unknown[]): string;
|
|
17
|
+
protected buildJoinClause(join: JoinSpec, mainAlias: string, onSql?: string): string;
|
|
18
|
+
protected compileAlterColumn(action: AlterColumnAction, reverse: boolean): string;
|
|
19
|
+
}
|
|
20
|
+
export declare const postgresQueryCompiler: PostgresQueryCompiler;
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=query-compiler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-compiler.d.ts","sourceRoot":"","sources":["../../../src/dbs/postgres/query-compiler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,KAAK,EACV,aAAa,EACb,UAAU,EACV,wBAAwB,EACxB,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAEjE,KAAK,iBAAiB,GAAG,OAAO,CAAC,UAAU,EAAE;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC,CAAC;AAEvE,qBAAa,qBAAsB,SAAQ,iBAAiB;IAC1D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAG,UAAU,CAAU;IAEjD,yBAAyB,IAAI,aAAa;IAI1C,oBAAoB,IAAI,aAAa;IAWrC,iBAAiB,IAAI,aAAa;IAalC,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa;IAwBhD,SAAS,CAAC,kBAAkB,CAC1B,GAAG,EAAE,MAAM,EACX,cAAc,EAAE,OAAO,EAAE,EACzB,QAAQ,SAAI,GACX,wBAAwB;IAgB3B,SAAS,CAAC,iBAAiB,CACzB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,OAAO,EAAE,EACrB,MAAM,EAAE,eAAe,EAAE,EACzB,eAAe,EAAE,MAAM,GACtB,aAAa;IAiBhB,OAAO,CAAC,iBAAiB;IAKzB,gBAAgB,CAAC,GAAG,EAAE,aAAa,EAAE,MAAM,GAAE,OAAO,EAAO,GAAG,MAAM;IAapE,SAAS,CAAC,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM;IAiBpF,SAAS,CAAC,kBAAkB,CAAC,MAAM,EAAE,iBAAiB,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM;CA8BlF;AAED,eAAO,MAAM,qBAAqB,uBAA8B,CAAC"}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { BaseQueryCompiler } from "../query-compiler.js";
|
|
2
|
+
export class PostgresQueryCompiler extends BaseQueryCompiler {
|
|
3
|
+
dialect = "postgres";
|
|
4
|
+
compileNextSequenceValues() {
|
|
5
|
+
throw new Error("Postgres sequence allocation is not configured for this dialect yet");
|
|
6
|
+
}
|
|
7
|
+
compileTrackingTable() {
|
|
8
|
+
return {
|
|
9
|
+
sql: `CREATE TABLE IF NOT EXISTS ${this.escapeIdentifier("_typhex_migrations")} (
|
|
10
|
+
${this.escapeIdentifier("id")} SERIAL PRIMARY KEY,
|
|
11
|
+
${this.escapeIdentifier("name")} TEXT NOT NULL UNIQUE,
|
|
12
|
+
${this.escapeIdentifier("applied_at")} TIMESTAMP NOT NULL DEFAULT NOW()
|
|
13
|
+
)`,
|
|
14
|
+
params: [],
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
compileListTables() {
|
|
18
|
+
return {
|
|
19
|
+
sql: `
|
|
20
|
+
SELECT table_name
|
|
21
|
+
FROM information_schema.tables
|
|
22
|
+
WHERE table_schema = 'public'
|
|
23
|
+
AND table_type = 'BASE TABLE'
|
|
24
|
+
AND table_name != '_typhex_migrations'
|
|
25
|
+
`,
|
|
26
|
+
params: [],
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
compileListColumns(table) {
|
|
30
|
+
return {
|
|
31
|
+
sql: `
|
|
32
|
+
SELECT column_name as name, data_type as type,
|
|
33
|
+
CASE WHEN is_nullable = 'NO' THEN 1 ELSE 0 END as notnull,
|
|
34
|
+
column_default as dflt_value,
|
|
35
|
+
CASE WHEN column_name IN (
|
|
36
|
+
SELECT kcu.column_name
|
|
37
|
+
FROM information_schema.table_constraints tc
|
|
38
|
+
JOIN information_schema.key_column_usage kcu
|
|
39
|
+
ON tc.constraint_name = kcu.constraint_name
|
|
40
|
+
AND tc.table_schema = kcu.table_schema
|
|
41
|
+
WHERE tc.table_schema = 'public'
|
|
42
|
+
AND tc.table_name = $1
|
|
43
|
+
AND tc.constraint_type = 'PRIMARY KEY'
|
|
44
|
+
) THEN 1 ELSE 0 END as pk
|
|
45
|
+
FROM information_schema.columns
|
|
46
|
+
WHERE table_schema = 'public' AND table_name = $1
|
|
47
|
+
ORDER BY ordinal_position
|
|
48
|
+
`,
|
|
49
|
+
params: [table],
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
expandPlaceholders(sql, resolvedParams, startIdx = 1) {
|
|
53
|
+
let idx = 0;
|
|
54
|
+
const newParams = [];
|
|
55
|
+
let paramIndex = startIdx;
|
|
56
|
+
const newSql = sql.replaceAll(/\$(\d+)/g, () => {
|
|
57
|
+
const v = resolvedParams[idx++];
|
|
58
|
+
if (Array.isArray(v)) {
|
|
59
|
+
v.forEach((x) => newParams.push(x));
|
|
60
|
+
return v.map(() => `$${paramIndex++}`).join(", ");
|
|
61
|
+
}
|
|
62
|
+
newParams.push(v);
|
|
63
|
+
return `$${paramIndex++}`;
|
|
64
|
+
});
|
|
65
|
+
return { sql: newSql, params: newParams };
|
|
66
|
+
}
|
|
67
|
+
compileWithClause(coreSql, coreParams, bodies, paramStartIndex) {
|
|
68
|
+
let offset = paramStartIndex - 1;
|
|
69
|
+
const merged = [];
|
|
70
|
+
const parts = [];
|
|
71
|
+
for (const body of bodies) {
|
|
72
|
+
parts.push(`${this.escapeIdentifier(body.name)} AS (${this.shiftPlaceholders(body.bodySql, offset)})`);
|
|
73
|
+
merged.push(...body.bodyParams);
|
|
74
|
+
offset += body.bodyParams.length;
|
|
75
|
+
}
|
|
76
|
+
const outer = this.shiftPlaceholders(coreSql, offset);
|
|
77
|
+
merged.push(...coreParams);
|
|
78
|
+
const keyword = bodies.some((b) => b.recursive) ? "WITH RECURSIVE" : "WITH";
|
|
79
|
+
return { sql: `${keyword} ${parts.join(", ")} ${outer}`, params: merged };
|
|
80
|
+
}
|
|
81
|
+
shiftPlaceholders(sql, delta) {
|
|
82
|
+
if (delta === 0)
|
|
83
|
+
return sql;
|
|
84
|
+
return sql.replace(/\$(\d+)/g, (_, n) => `$${Number(n) + delta}`);
|
|
85
|
+
}
|
|
86
|
+
compileAggregate(agg, params = []) {
|
|
87
|
+
switch (agg.func) {
|
|
88
|
+
case "GROUP_CONCAT":
|
|
89
|
+
case "STRING_AGG":
|
|
90
|
+
return this.compileConcatAggregate("STRING_AGG", agg, "','", params);
|
|
91
|
+
case "ARRAY_AGG":
|
|
92
|
+
case "JSON_AGG":
|
|
93
|
+
return this.compileStandardAggregate(agg.func, agg, params);
|
|
94
|
+
default:
|
|
95
|
+
return super.compileAggregate(agg, params);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
buildJoinClause(join, mainAlias, onSql) {
|
|
99
|
+
const kw = join.joinType === "cross"
|
|
100
|
+
? "INNER JOIN"
|
|
101
|
+
: (BaseQueryCompiler.JOIN_SQL_KEYWORDS[join.joinType] ?? "LEFT JOIN");
|
|
102
|
+
if (join.on) {
|
|
103
|
+
return ` ${kw} ${this.escapeIdentifier(join.targetTable)} AS ${this.escapeIdentifier(join.alias)} ON ${onSql}`;
|
|
104
|
+
}
|
|
105
|
+
const on = join.foreignKeys
|
|
106
|
+
.map((fk, i) => `${this.escapeIdentifier(mainAlias)}.${this.escapeIdentifier(fk)} = ${this.escapeIdentifier(join.alias)}.${this.escapeIdentifier(join.targetPkColumns[i] ?? join.targetPkColumns[0])}`)
|
|
107
|
+
.join(" AND ");
|
|
108
|
+
return ` ${kw} ${this.escapeIdentifier(join.targetTable)} AS ${this.escapeIdentifier(join.alias)} ON ${on}`;
|
|
109
|
+
}
|
|
110
|
+
compileAlterColumn(action, reverse) {
|
|
111
|
+
const table = this.escapeIdentifier(action.table);
|
|
112
|
+
const column = this.escapeIdentifier(action.column);
|
|
113
|
+
return action.changes
|
|
114
|
+
.map((change) => {
|
|
115
|
+
switch (change.kind) {
|
|
116
|
+
case "type": {
|
|
117
|
+
const type = reverse ? change.from : change.to;
|
|
118
|
+
return `ALTER TABLE ${table} ALTER COLUMN ${column} TYPE ${type};`;
|
|
119
|
+
}
|
|
120
|
+
case "not_null":
|
|
121
|
+
case "nullable": {
|
|
122
|
+
const notNull = reverse ? change.from : change.to;
|
|
123
|
+
const operation = notNull ? "SET NOT NULL" : "DROP NOT NULL";
|
|
124
|
+
return `ALTER TABLE ${table} ALTER COLUMN ${column} ${operation};`;
|
|
125
|
+
}
|
|
126
|
+
case "default": {
|
|
127
|
+
const value = reverse ? change.from : change.to;
|
|
128
|
+
const operation = value == null ? "DROP DEFAULT" : `SET DEFAULT ${value}`;
|
|
129
|
+
return `ALTER TABLE ${table} ALTER COLUMN ${column} ${operation};`;
|
|
130
|
+
}
|
|
131
|
+
case "primary_key":
|
|
132
|
+
throw new Error(`Primary key change on ${action.table}.${action.column} requires a manual migration; ` +
|
|
133
|
+
`Postgres ALTER TABLE cannot add or drop a PK in isolation.`);
|
|
134
|
+
}
|
|
135
|
+
})
|
|
136
|
+
.join("\n");
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
export const postgresQueryCompiler = new PostgresQueryCompiler();
|
|
140
|
+
//# sourceMappingURL=query-compiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-compiler.js","sourceRoot":"","sources":["../../../src/dbs/postgres/query-compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PostgreSQL transaction scope: BEGIN [ISOLATION LEVEL ...], SAVEPOINT nesting.
|
|
3
|
+
*/
|
|
4
|
+
import { Trx } from "../../orm/trx.js";
|
|
5
|
+
export declare class PostgresTrx extends Trx {
|
|
6
|
+
/** PostgreSQL default: READ COMMITTED (Postgres's own default isolation level). */
|
|
7
|
+
static readonly defaultOptions: {
|
|
8
|
+
isolationLevel: "READ_COMMITTED";
|
|
9
|
+
};
|
|
10
|
+
protected validateOptions(): void;
|
|
11
|
+
private compileBeginStatement;
|
|
12
|
+
begin(): Promise<void>;
|
|
13
|
+
commit(): Promise<void>;
|
|
14
|
+
rollback(): Promise<void>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=trx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trx.d.ts","sourceRoot":"","sources":["../../../src/dbs/postgres/trx.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,qBAAa,WAAY,SAAQ,GAAG;IAClC,mFAAmF;IACnF,gBAAyB,cAAc;;MAAiD;IAExF,SAAS,CAAC,eAAe,IAAI,IAAI;IAmBjC,OAAO,CAAC,qBAAqB;IASvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAStB,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IASvB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAYhC"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* PostgreSQL transaction scope: BEGIN [ISOLATION LEVEL ...], SAVEPOINT nesting.
|
|
3
|
+
*/
|
|
4
|
+
import { Trx } from "../../orm/trx.js";
|
|
5
|
+
export class PostgresTrx extends Trx {
|
|
6
|
+
/** PostgreSQL default: READ COMMITTED (Postgres's own default isolation level). */
|
|
7
|
+
static defaultOptions = { isolationLevel: "READ_COMMITTED" };
|
|
8
|
+
validateOptions() {
|
|
9
|
+
// sqliteMode must never appear — check user options (it can't come from our Postgres defaults).
|
|
10
|
+
if (this._options?.sqliteMode !== undefined) {
|
|
11
|
+
throw new Error("TransactionOptions.sqliteMode is not supported by PostgreSQL. Use isolationLevel, readOnly, or deferrable instead.");
|
|
12
|
+
}
|
|
13
|
+
// Deferrable preconditions apply to the effective options (user may have omitted isolationLevel,
|
|
14
|
+
// relying on the default READ_COMMITTED — which is not valid for DEFERRABLE).
|
|
15
|
+
if (this._options.deferrable) {
|
|
16
|
+
if (this._options.isolationLevel !== "SERIALIZABLE") {
|
|
17
|
+
throw new Error('TransactionOptions.deferrable requires isolationLevel: "SERIALIZABLE".');
|
|
18
|
+
}
|
|
19
|
+
if (!this._options.readOnly) {
|
|
20
|
+
throw new Error("TransactionOptions.deferrable requires readOnly: true.");
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
compileBeginStatement() {
|
|
25
|
+
const parts = ["BEGIN"];
|
|
26
|
+
const iso = this._options.isolationLevel?.replaceAll("_", " ");
|
|
27
|
+
if (iso)
|
|
28
|
+
parts.push(`ISOLATION LEVEL ${iso}`);
|
|
29
|
+
if (this._options.readOnly)
|
|
30
|
+
parts.push("READ ONLY");
|
|
31
|
+
if (this._options.deferrable)
|
|
32
|
+
parts.push("DEFERRABLE");
|
|
33
|
+
return parts.join(" ");
|
|
34
|
+
}
|
|
35
|
+
async begin() {
|
|
36
|
+
if (this._isNested) {
|
|
37
|
+
await this._conn.execute(`SAVEPOINT ${this._savepointName}`, []);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
await this._conn.execute(this.compileBeginStatement(), []);
|
|
41
|
+
this._depth = 1;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
async commit() {
|
|
45
|
+
if (this._savepointName) {
|
|
46
|
+
await this._conn.execute(`RELEASE SAVEPOINT ${this._savepointName}`, []);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
await this._conn.execute("COMMIT", []);
|
|
50
|
+
await this._cleanup?.();
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
async rollback() {
|
|
54
|
+
if (this._savepointName) {
|
|
55
|
+
await this._conn.execute(`ROLLBACK TO SAVEPOINT ${this._savepointName}`, []);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
try {
|
|
59
|
+
await this._conn.execute("ROLLBACK", []);
|
|
60
|
+
}
|
|
61
|
+
catch {
|
|
62
|
+
/* ignore */
|
|
63
|
+
}
|
|
64
|
+
await this._cleanup?.();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=trx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trx.js","sourceRoot":"","sources":["../../../src/dbs/postgres/trx.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAEvC,MAAM,OAAO,WAAY,SAAQ,GAAG;IAClC,mFAAmF;IACnF,MAAM,CAAmB,cAAc,GAAG,EAAE,cAAc,EAAE,gBAAyB,EAAE,CAAC;IAE9E,eAAe;QACvB,gGAAgG;QAChG,IAAI,IAAI,CAAC,QAAQ,EAAE,UAAU,KAAK,SAAS,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CACb,oHAAoH,CACrH,CAAC;QACJ,CAAC;QACD,iGAAiG;QACjG,8EAA8E;QAC9E,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,QAAQ,CAAC,cAAc,KAAK,cAAc,EAAE,CAAC;gBACpD,MAAM,IAAI,KAAK,CAAC,wEAAwE,CAAC,CAAC;YAC5F,CAAC;YACD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;IACH,CAAC;IAEO,qBAAqB;QAC3B,MAAM,KAAK,GAAa,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC/D,IAAI,GAAG;YAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAC;QAC9C,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ;YAAE,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACpD,IAAI,IAAI,CAAC,QAAQ,CAAC,UAAU;YAAE,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,EAAE,CAAC,CAAC;YAC3D,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM;QACV,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;YACvC,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,yBAAyB,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YAC3C,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;YACD,MAAM,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC1B,CAAC;IACH,CAAC"}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared SQL query compiler.
|
|
3
|
+
*
|
|
4
|
+
* The public surface compiles complete query/migration operations. Dialect
|
|
5
|
+
* subclasses override protected pieces where SQL differs.
|
|
6
|
+
*/
|
|
7
|
+
import type { ColumnDef, CompileQueryOpts, CompileResult, CompileSelectOpts, DiffAction, ExpandPlaceholdersResult, OnConflictClause, QueryCompiler, CompiledCteBody } from "./types.js";
|
|
8
|
+
import type { Expr, ExprAggregate, ExprCase, ExprColumn, BinaryOp, GroupByItem, JoinSpec } from "../orm/expr.js";
|
|
9
|
+
import type { QueryPlan } from "../orm/helpers/query-plan/query-plan.js";
|
|
10
|
+
import type { FromSource } from "../orm/query-state.js";
|
|
11
|
+
import type { DialectName, WithClause } from "./types.js";
|
|
12
|
+
import type { JoinType } from "../ir/types.js";
|
|
13
|
+
type AlterColumnAction = Extract<DiffAction, {
|
|
14
|
+
kind: "alter_column";
|
|
15
|
+
}>;
|
|
16
|
+
type PreparedReadPlan = {
|
|
17
|
+
compiledCteBodies: CompiledCteBody[];
|
|
18
|
+
fromResolved: {
|
|
19
|
+
fromClause: string;
|
|
20
|
+
fromParams: unknown[];
|
|
21
|
+
};
|
|
22
|
+
joinsSql: string;
|
|
23
|
+
joinParams: unknown[];
|
|
24
|
+
expand: (compiled: {
|
|
25
|
+
sql: string;
|
|
26
|
+
params: unknown[];
|
|
27
|
+
}, paramValues: Record<string, unknown>) => ExpandPlaceholdersResult;
|
|
28
|
+
paramStartIndex: number;
|
|
29
|
+
};
|
|
30
|
+
export declare abstract class BaseQueryCompiler implements QueryCompiler {
|
|
31
|
+
protected static readonly JOIN_SQL_KEYWORDS: Record<JoinType, string>;
|
|
32
|
+
protected abstract readonly dialect: DialectName;
|
|
33
|
+
protected renderColumn(col: ExprColumn): string;
|
|
34
|
+
protected compileUnarySql(op: "!" | "~", operandSql: string): string;
|
|
35
|
+
protected compileXorSql(left: string, right: string): string;
|
|
36
|
+
protected compileBinarySql(op: BinaryOp, left: string, right: string): string;
|
|
37
|
+
protected compileInlineExpr(arg: Expr | null, params: unknown[]): string;
|
|
38
|
+
protected inlineConstLiteral(value: unknown): string;
|
|
39
|
+
protected compileInlineBinary(node: Expr & {
|
|
40
|
+
kind: "binary";
|
|
41
|
+
}, params: unknown[]): string;
|
|
42
|
+
protected compileInlineCase(node: ExprCase, params: unknown[]): string;
|
|
43
|
+
protected isNullEquality(node: Expr & {
|
|
44
|
+
kind: "binary";
|
|
45
|
+
}): boolean;
|
|
46
|
+
protected compileStandardAggregate(funcName: string, agg: ExprAggregate, params: unknown[]): string;
|
|
47
|
+
protected compileConcatAggregate(funcName: string, agg: ExprAggregate, defaultSep: string | undefined, params: unknown[]): string;
|
|
48
|
+
compileGroupBy(items: GroupByItem[]): string;
|
|
49
|
+
compilePlan(plan: QueryPlan, options?: CompileQueryOpts): CompileResult;
|
|
50
|
+
compileResultSize(plan: QueryPlan): CompileResult;
|
|
51
|
+
protected compileCteBodies(ctes: WithClause[] | undefined, allowedCteNames?: string[]): CompiledCteBody[];
|
|
52
|
+
protected resolvePlanFromClause(plan: {
|
|
53
|
+
tableName: string;
|
|
54
|
+
tableAlias: string;
|
|
55
|
+
fromSource?: FromSource;
|
|
56
|
+
}, allowedCteNames: string[], paramStartIndex: number, compileOptions?: CompileQueryOpts): {
|
|
57
|
+
fromClause: string;
|
|
58
|
+
fromParams: unknown[];
|
|
59
|
+
};
|
|
60
|
+
protected prepareReadPlan(plan: QueryPlan, options: CompileQueryOpts): PreparedReadPlan;
|
|
61
|
+
private compileJoinsSql;
|
|
62
|
+
protected abstract compileWithClause(coreSql: string, coreParams: unknown[], bodies: CompiledCteBody[], paramStartIndex: number): CompileResult;
|
|
63
|
+
protected attachCteBodies(core: CompileResult, bodies: CompiledCteBody[], paramStartIndex: number): CompileResult;
|
|
64
|
+
compileMigrationUp(action: DiffAction): string;
|
|
65
|
+
compileMigrationDown(action: DiffAction): string;
|
|
66
|
+
compileCreateTableIfNotExists(table: string, schema: Record<string, ColumnDef>): string;
|
|
67
|
+
compileAppliedMigrations(): CompileResult;
|
|
68
|
+
compileRecordMigration(name: string): CompileResult;
|
|
69
|
+
compileDeleteMigration(name: string): CompileResult;
|
|
70
|
+
compileNextSequenceValues(_tableName: string, _pkColumn: string, _count: number): CompileResult;
|
|
71
|
+
abstract compileTrackingTable(): CompileResult;
|
|
72
|
+
abstract compileListTables(): CompileResult;
|
|
73
|
+
abstract compileListColumns(table: string): CompileResult;
|
|
74
|
+
protected escapeIdentifier(name: string): string;
|
|
75
|
+
protected placeholder(index: number): string;
|
|
76
|
+
protected abstract expandPlaceholders(sql: string, resolvedParams: unknown[], startIdx?: number): ExpandPlaceholdersResult;
|
|
77
|
+
protected toColumnDef(def: ColumnDef): string;
|
|
78
|
+
protected compileSelectPlan(plan: QueryPlan, options: CompileQueryOpts): CompileResult;
|
|
79
|
+
protected compileUpdatePlan(plan: QueryPlan): CompileResult;
|
|
80
|
+
protected compileDeletePlan(plan: QueryPlan): CompileResult;
|
|
81
|
+
protected compileSelect(opts: CompileSelectOpts): CompileResult;
|
|
82
|
+
protected compileInsert(table: string, columns: string[], values: unknown[], pk?: string[], onConflict?: OnConflictClause): CompileResult;
|
|
83
|
+
protected compileInsertMany(table: string, columns: string[], rows: unknown[][], pk?: string[], onConflict?: OnConflictClause): CompileResult;
|
|
84
|
+
protected compileUpdate(table: string, updateSet: Record<string, Expr>, columns: string[], whereSql: string, whereParams: unknown[], options?: {
|
|
85
|
+
returning?: boolean;
|
|
86
|
+
fromCtes?: string[];
|
|
87
|
+
tableAlias?: string;
|
|
88
|
+
registeredCteNames?: Set<string>;
|
|
89
|
+
}): CompileResult;
|
|
90
|
+
protected compileDelete(table: string, whereSql: string, whereParams: unknown[], options?: {
|
|
91
|
+
returning?: boolean;
|
|
92
|
+
fromCtes?: string[];
|
|
93
|
+
tableAlias?: string;
|
|
94
|
+
}): CompileResult;
|
|
95
|
+
protected compileNode(node: Expr, params: unknown[]): string;
|
|
96
|
+
protected compileSubqueryPlan(plan: QueryPlan, outerParams: unknown[]): string;
|
|
97
|
+
protected compileInNode(node: Expr & {
|
|
98
|
+
kind: "in";
|
|
99
|
+
}, params: unknown[]): string;
|
|
100
|
+
protected compileExistsNode(node: Expr & {
|
|
101
|
+
kind: "exists";
|
|
102
|
+
}, params: unknown[]): string;
|
|
103
|
+
protected compileExists(targetTable: string, alias: string, fkColumns: string[], mainAlias: string, mainPk: string[], innerSql: string): string;
|
|
104
|
+
protected compileLike(receiver: string, arg: string, mode: "startsWith" | "endsWith" | "includes"): string;
|
|
105
|
+
compileAggregate(agg: ExprAggregate, params?: unknown[]): string;
|
|
106
|
+
protected buildJoinClause(join: JoinSpec, mainAlias: string, onSql?: string): string;
|
|
107
|
+
protected appendOnConflict(baseSql: string, onConflict: OnConflictClause, insertColumns: string[]): string;
|
|
108
|
+
protected excludedTableName(): string;
|
|
109
|
+
protected singleInsertReturnsRows(hasPk: boolean): boolean;
|
|
110
|
+
protected renderInsertManyValue(value: unknown, paramIndex: number): {
|
|
111
|
+
sql: string;
|
|
112
|
+
params: unknown[];
|
|
113
|
+
};
|
|
114
|
+
protected renumberUpdateWhereParams(whereSql: string, offset: number): string;
|
|
115
|
+
protected registeredCteNames(plan: QueryPlan): Set<string>;
|
|
116
|
+
protected fixMutationWhereAlias(table: string, whereSql: string, alias?: string, keepAlias?: boolean): string;
|
|
117
|
+
protected compileCreateTable(table: string, schema: Record<string, ColumnDef>, ifNotExists: boolean): string;
|
|
118
|
+
protected compileRecreateDroppedTable(table: string, columnInfos: Array<{
|
|
119
|
+
name: string;
|
|
120
|
+
type: string;
|
|
121
|
+
notnull: number;
|
|
122
|
+
dflt_value: string | null;
|
|
123
|
+
pk: number;
|
|
124
|
+
}>): string;
|
|
125
|
+
protected compileAlterColumn(action: AlterColumnAction, reverse: boolean): string;
|
|
126
|
+
protected reconstructColDef(col: {
|
|
127
|
+
type: string;
|
|
128
|
+
notnull: number;
|
|
129
|
+
dflt_value: string | null;
|
|
130
|
+
pk: number;
|
|
131
|
+
}): string;
|
|
132
|
+
private createExpander;
|
|
133
|
+
}
|
|
134
|
+
export {};
|
|
135
|
+
//# sourceMappingURL=query-compiler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-compiler.d.ts","sourceRoot":"","sources":["../../src/dbs/query-compiler.ts"],"names":[],"mappings":"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"}
|