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,774 @@
|
|
|
1
|
+
## API Report File for "typhex"
|
|
2
|
+
|
|
3
|
+
> Do not edit this file. It is a report generated by [API Extractor](https://api-extractor.com/).
|
|
4
|
+
|
|
5
|
+
```ts
|
|
6
|
+
|
|
7
|
+
import pg from 'pg';
|
|
8
|
+
|
|
9
|
+
// @public
|
|
10
|
+
export interface AnyEntityClass {
|
|
11
|
+
query<C extends AnyEntityClass>(this: C, executor?: QueryExecutor): QueryBuilder<C, EntityInstance<C>>;
|
|
12
|
+
table: TableDef<Record<string, string>, RelationsMap>;
|
|
13
|
+
transaction<T>(fn: (trx: Trx) => Promise<T>): Promise<T>;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// @public (undocumented)
|
|
17
|
+
export function appliedMigrations(driver: Driver): Promise<MigrationRecord[]>;
|
|
18
|
+
|
|
19
|
+
// @public
|
|
20
|
+
export function avg(_field: number): number;
|
|
21
|
+
|
|
22
|
+
// @public
|
|
23
|
+
export type ColumnChange = {
|
|
24
|
+
kind: "type";
|
|
25
|
+
from: string;
|
|
26
|
+
to: string;
|
|
27
|
+
} | {
|
|
28
|
+
kind: "not_null" | "nullable";
|
|
29
|
+
from: boolean;
|
|
30
|
+
to: boolean;
|
|
31
|
+
} | {
|
|
32
|
+
kind: "default";
|
|
33
|
+
from: string | null;
|
|
34
|
+
to: string | null;
|
|
35
|
+
} | {
|
|
36
|
+
kind: "primary_key";
|
|
37
|
+
from: boolean;
|
|
38
|
+
to: boolean;
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
// @public
|
|
42
|
+
export type ColumnDef = string | {
|
|
43
|
+
[K in DialectName]?: string;
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
// @public
|
|
47
|
+
export interface CompiledCteBody {
|
|
48
|
+
// (undocumented)
|
|
49
|
+
bodyParams: unknown[];
|
|
50
|
+
// (undocumented)
|
|
51
|
+
bodySql: string;
|
|
52
|
+
// (undocumented)
|
|
53
|
+
name: string;
|
|
54
|
+
// (undocumented)
|
|
55
|
+
recursive?: boolean;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// @public
|
|
59
|
+
export interface Connection<TDialect extends DialectInfo = DialectInfo> {
|
|
60
|
+
readonly dialect: TDialect;
|
|
61
|
+
execute(sql: string, params?: unknown[]): Promise<ExecuteResult>;
|
|
62
|
+
release(): Promise<void>;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// @public
|
|
66
|
+
export function count(_field?: unknown): number;
|
|
67
|
+
|
|
68
|
+
// @public
|
|
69
|
+
export function createDriver(options: CreateDriverOptions): Driver;
|
|
70
|
+
|
|
71
|
+
// @public
|
|
72
|
+
export type CreateDriverOptions = ({
|
|
73
|
+
dialect: "sqlite";
|
|
74
|
+
} & SqliteDriverOptions) | ({
|
|
75
|
+
dialect: "postgres";
|
|
76
|
+
} & PostgresDriverOptions);
|
|
77
|
+
|
|
78
|
+
// @public
|
|
79
|
+
export function createPostgresDriver(options: PostgresDriverOptions): Driver;
|
|
80
|
+
|
|
81
|
+
// @public
|
|
82
|
+
export function createSqliteDriver(options: SqliteDriverOptions): Driver;
|
|
83
|
+
|
|
84
|
+
// @public
|
|
85
|
+
export class Db implements QueryExecutor {
|
|
86
|
+
constructor(options: DbOptions | Driver);
|
|
87
|
+
appliedMigrations(): Promise<MigrationRecord[]>;
|
|
88
|
+
beginTrx(options?: TransactionOptions): Promise<Trx>;
|
|
89
|
+
close(): Promise<void>;
|
|
90
|
+
get dialect(): DialectInfo;
|
|
91
|
+
downMigration(name: string, dir?: string): Promise<void>;
|
|
92
|
+
get driver(): Driver;
|
|
93
|
+
dryRunMigrations(dir?: string): Promise<{
|
|
94
|
+
applied: MigrationRecord[];
|
|
95
|
+
pending: PendingMigration[];
|
|
96
|
+
skipped: string[];
|
|
97
|
+
}>;
|
|
98
|
+
static fromConfig(options?: {
|
|
99
|
+
configPath?: string;
|
|
100
|
+
cwd?: string;
|
|
101
|
+
}): Promise<Db>;
|
|
102
|
+
generateMigrations(dir?: string): Promise<MigrationFile[]>;
|
|
103
|
+
migrate(): Promise<void>;
|
|
104
|
+
migrationStatus(dir?: string): Promise<{
|
|
105
|
+
applied: MigrationRecord[];
|
|
106
|
+
pending: string[];
|
|
107
|
+
}>;
|
|
108
|
+
pendingMigrations(dir?: string): Promise<PendingMigration[]>;
|
|
109
|
+
query(sql: string, params?: unknown[]): Promise<unknown[]>;
|
|
110
|
+
run(sql: string, params?: unknown[]): Promise<{
|
|
111
|
+
lastID?: number;
|
|
112
|
+
changes: number;
|
|
113
|
+
}>;
|
|
114
|
+
runMigrations(dir?: string): Promise<MigrationResult>;
|
|
115
|
+
transaction<T>(fn: (trx: Trx) => Promise<T>, options?: TransactionOptions): Promise<T>;
|
|
116
|
+
upMigration(name: string, dir?: string): Promise<void>;
|
|
117
|
+
validate(): Promise<void>;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// @public (undocumented)
|
|
121
|
+
export interface DbColumnInfo {
|
|
122
|
+
// (undocumented)
|
|
123
|
+
dflt_value: string | null;
|
|
124
|
+
// (undocumented)
|
|
125
|
+
name: string;
|
|
126
|
+
// (undocumented)
|
|
127
|
+
notnull: number;
|
|
128
|
+
// (undocumented)
|
|
129
|
+
pk: number;
|
|
130
|
+
// (undocumented)
|
|
131
|
+
type: string;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
// @public
|
|
135
|
+
export type DbOptions = {
|
|
136
|
+
driver: Driver;
|
|
137
|
+
migrationsFolder?: string;
|
|
138
|
+
} | {
|
|
139
|
+
dialect: DialectName;
|
|
140
|
+
database?: string;
|
|
141
|
+
url?: string;
|
|
142
|
+
migrationsFolder?: string;
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
// @public
|
|
146
|
+
export interface DialectInfo {
|
|
147
|
+
// (undocumented)
|
|
148
|
+
readonly name: DialectName;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// @public
|
|
152
|
+
export type DialectName = "sqlite" | "postgres";
|
|
153
|
+
|
|
154
|
+
// @public (undocumented)
|
|
155
|
+
export type DiffAction = {
|
|
156
|
+
kind: "add_table";
|
|
157
|
+
table: string;
|
|
158
|
+
schema: Record<string, ColumnDef>;
|
|
159
|
+
} | {
|
|
160
|
+
kind: "drop_table";
|
|
161
|
+
table: string;
|
|
162
|
+
columnInfos: DbColumnInfo[];
|
|
163
|
+
} | {
|
|
164
|
+
kind: "add_column";
|
|
165
|
+
table: string;
|
|
166
|
+
column: string;
|
|
167
|
+
definition: ColumnDef;
|
|
168
|
+
} | {
|
|
169
|
+
kind: "drop_column";
|
|
170
|
+
table: string;
|
|
171
|
+
column: string;
|
|
172
|
+
columnInfo: DbColumnInfo;
|
|
173
|
+
} | {
|
|
174
|
+
kind: "alter_column";
|
|
175
|
+
table: string;
|
|
176
|
+
column: string;
|
|
177
|
+
oldDef: string;
|
|
178
|
+
newDef: ColumnDef;
|
|
179
|
+
columnInfo: DbColumnInfo;
|
|
180
|
+
changes: ColumnChange[];
|
|
181
|
+
};
|
|
182
|
+
|
|
183
|
+
// @public
|
|
184
|
+
export function diffSchema(driver: Driver, entities: readonly RegisteredEntity[]): Promise<DiffAction[]>;
|
|
185
|
+
|
|
186
|
+
// @public
|
|
187
|
+
export function distinct<T>(_field: T): T;
|
|
188
|
+
|
|
189
|
+
// @public (undocumented)
|
|
190
|
+
export function downMigration(driver: Driver, dir: string, name: string): Promise<void>;
|
|
191
|
+
|
|
192
|
+
// @public
|
|
193
|
+
export interface Driver<TDialect extends DialectInfo = DialectInfo> {
|
|
194
|
+
close(): Promise<void>;
|
|
195
|
+
connect(): Promise<Connection<TDialect>>;
|
|
196
|
+
createTrx(conn: Connection<TDialect>, options?: TransactionOptions): Trx;
|
|
197
|
+
readonly dialect: TDialect;
|
|
198
|
+
execute(sql: string, params?: unknown[]): Promise<ExecuteResult>;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
// @public (undocumented)
|
|
202
|
+
export function dryRunMigrations(driver: Driver, dir: string): Promise<{
|
|
203
|
+
applied: MigrationRecord[];
|
|
204
|
+
pending: PendingMigration[];
|
|
205
|
+
skipped: string[];
|
|
206
|
+
}>;
|
|
207
|
+
|
|
208
|
+
// @public
|
|
209
|
+
export function Entity<TTable extends string, const TSchema extends Record<string, string>, const TRels extends RelationsMap = {}>(tableName: TTable, schema: TSchema, relations?: TRels): EntityClass<TTable, TSchema, TRels>;
|
|
210
|
+
|
|
211
|
+
// @public
|
|
212
|
+
export interface EntityBase {
|
|
213
|
+
_dirty: ReadonlySet<string>;
|
|
214
|
+
_isNew: boolean;
|
|
215
|
+
query(trx?: Trx): SingleRowQueryBuilder<this>;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
// @public
|
|
219
|
+
export interface EntityClass<_TTable extends string, TSchema extends Record<string, string>, TRels extends RelationsMap = {}> extends AnyEntityClass {
|
|
220
|
+
new (data?: Partial<InferTable<TSchema>>): Row<Materialized<TSchema>, TRels>;
|
|
221
|
+
table: TableDef<TSchema, TRels>;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
// @public
|
|
225
|
+
export type EntityClassOf<T> = T extends EntityInstance<infer E> ? E : T extends AnyEntityClass ? T : never;
|
|
226
|
+
|
|
227
|
+
// @public
|
|
228
|
+
export type EntityFields<E extends AnyEntityClass> = Materialized<EntitySchema<E>>;
|
|
229
|
+
|
|
230
|
+
// Warning: (ae-forgotten-export) The symbol "EntityInstanceFromTable" needs to be exported by the entry point index.d.ts
|
|
231
|
+
//
|
|
232
|
+
// @public
|
|
233
|
+
export type EntityInstance<E extends AnyEntityClass> = E extends new (...args: any[]) => infer R ? R extends EntityBase ? R : EntityInstanceFromTable<E> : EntityInstanceFromTable<E>;
|
|
234
|
+
|
|
235
|
+
// @public
|
|
236
|
+
export type EntityRelationProps<E extends AnyEntityClass> = {
|
|
237
|
+
[K in keyof EntityRelations<E>]: RelationQueryable<EntityRelations<E>[K]>;
|
|
238
|
+
};
|
|
239
|
+
|
|
240
|
+
// @public
|
|
241
|
+
export type EntityRelationPropsLoaded<E extends AnyEntityClass> = {
|
|
242
|
+
[K in keyof EntityRelations<E>]: RelationLoadedValue<EntityRelations<E>[K]>;
|
|
243
|
+
};
|
|
244
|
+
|
|
245
|
+
// @public
|
|
246
|
+
export type EntityRelations<E extends AnyEntityClass> = E["table"] extends TableDef<any, infer R> ? R : never;
|
|
247
|
+
|
|
248
|
+
// @public
|
|
249
|
+
export type EntityRow<E> = E extends AnyEntityClass ? EntityInstance<E> : never;
|
|
250
|
+
|
|
251
|
+
// @public
|
|
252
|
+
export type EntitySchema<E extends AnyEntityClass> = E["table"] extends TableDef<infer S, any> ? S : never;
|
|
253
|
+
|
|
254
|
+
// @public
|
|
255
|
+
export interface ExecuteResult {
|
|
256
|
+
changes: number;
|
|
257
|
+
lastID?: number;
|
|
258
|
+
rows: unknown[];
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
// @public
|
|
262
|
+
export type ExtractSQLBase<S extends string> = StripParens<S> extends `${infer Base} ${string}` ? Lowercase<Base> : Lowercase<StripParens<S>>;
|
|
263
|
+
|
|
264
|
+
// @public
|
|
265
|
+
export type Flatten<T> = {
|
|
266
|
+
[K in keyof T]: T[K];
|
|
267
|
+
} & {};
|
|
268
|
+
|
|
269
|
+
// @public
|
|
270
|
+
export function generateMigrationFiles(driver: Driver, entities: readonly RegisteredEntity[]): Promise<MigrationFile[]>;
|
|
271
|
+
|
|
272
|
+
// @public
|
|
273
|
+
export function getPkColumnsFromSchema(schema: Record<string, string>): string[];
|
|
274
|
+
|
|
275
|
+
// @public
|
|
276
|
+
export type HasDefault<S extends string> = Lowercase<S> extends `${string}default${string}` ? true : false;
|
|
277
|
+
|
|
278
|
+
// @public
|
|
279
|
+
export type InferColumnType<S extends string> = IsNotNull<S> extends true ? SQLToTS<S> : SQLToTS<S> | null;
|
|
280
|
+
|
|
281
|
+
// @public
|
|
282
|
+
export type InferInsert<T extends Record<string, string>> = Flatten<{
|
|
283
|
+
-readonly [K in keyof T as OptionalOnInsert<T[K]> extends true ? K : never]?: InferColumnType<T[K]>;
|
|
284
|
+
} & {
|
|
285
|
+
-readonly [K in keyof T as OptionalOnInsert<T[K]> extends true ? never : K]: InferColumnType<T[K]>;
|
|
286
|
+
}>;
|
|
287
|
+
|
|
288
|
+
// @public
|
|
289
|
+
export type InferTable<T extends Record<string, string>> = Flatten<{
|
|
290
|
+
-readonly [K in keyof T]: InferColumnType<T[K]>;
|
|
291
|
+
}>;
|
|
292
|
+
|
|
293
|
+
// @public
|
|
294
|
+
export class InsertBuilder<C extends AnyEntityClass, R> extends QueryBuilder<C> implements PromiseLike<R> {
|
|
295
|
+
doNothing(): Promise<R>;
|
|
296
|
+
doUpdate(updateColumns?: string[]): Promise<R>;
|
|
297
|
+
onConflict(columns: string[]): this;
|
|
298
|
+
then<T1 = R, T2 = never>(res?: ((v: R) => T1 | PromiseLike<T1>) | null, rej?: ((e: unknown) => T2 | PromiseLike<T2>) | null): PromiseLike<T1 | T2>;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
// @public
|
|
302
|
+
export type IsGenerated<S extends string> = Lowercase<S> extends `${string}autoincrement${string}` ? true : Lowercase<S> extends `${string}auto_increment${string}` ? true : Lowercase<S> extends `${string}generated${string}` ? true : Lowercase<ExtractSQLBase<S>> extends "serial" | "bigserial" ? true : false;
|
|
303
|
+
|
|
304
|
+
// @public
|
|
305
|
+
export type IsNotNull<S extends string> = Lowercase<S> extends `${string}not null${string}` ? true : Lowercase<S> extends `${string}primary key${string}` ? true : false;
|
|
306
|
+
|
|
307
|
+
// @public
|
|
308
|
+
export interface JunctionOptions {
|
|
309
|
+
foreignKey: string | string[];
|
|
310
|
+
junction: string;
|
|
311
|
+
referenceKey: string | string[];
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
// @public
|
|
315
|
+
export function loadConfig(options?: LoadConfigOptions): Promise<TyphexConfig>;
|
|
316
|
+
|
|
317
|
+
// @public
|
|
318
|
+
export interface LoadConfigOptions {
|
|
319
|
+
configPath?: string;
|
|
320
|
+
cwd?: string;
|
|
321
|
+
overrides?: Partial<TyphexConfig>;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
// @public
|
|
325
|
+
export type ManyRelation<E extends EntityBase> = RelationQueryBuilder<E> & E[];
|
|
326
|
+
|
|
327
|
+
// @public
|
|
328
|
+
export type ManyToMany<E extends AnyEntityClass | EntityBase> = E extends EntityBase ? ManyRelation<E> : RelatedEntityInstance<EntityClassOf<E>, "many">;
|
|
329
|
+
|
|
330
|
+
// @public
|
|
331
|
+
export function manyToMany<E extends AnyEntityClass>(target: () => E, options: JunctionOptions): RelationDef<E, "many-to-many">;
|
|
332
|
+
|
|
333
|
+
// @public
|
|
334
|
+
export function manyToMany<TTarget>(target: () => {
|
|
335
|
+
_selectType: TTarget;
|
|
336
|
+
}, options: JunctionOptions): RelationDef<TTarget, "many-to-many">;
|
|
337
|
+
|
|
338
|
+
// @public
|
|
339
|
+
export function manyToMany<E extends AnyEntityClass>(target: () => unknown, options: JunctionOptions): RelationDef<E, "many-to-many">;
|
|
340
|
+
|
|
341
|
+
// @public
|
|
342
|
+
export type ManyToManyDef<E> = RelationDef<E, "many-to-many">;
|
|
343
|
+
|
|
344
|
+
// @public
|
|
345
|
+
export type ManyToOne<E extends AnyEntityClass | EntityBase> = SingleRelation<ToEntityInstance<E>>;
|
|
346
|
+
|
|
347
|
+
// @public
|
|
348
|
+
export function manyToOne<E extends AnyEntityClass>(target: () => E, options: RelationOptions): RelationDef<E, "many-to-one">;
|
|
349
|
+
|
|
350
|
+
// @public
|
|
351
|
+
export function manyToOne<TTarget>(target: () => {
|
|
352
|
+
_selectType: TTarget;
|
|
353
|
+
}, options: RelationOptions): RelationDef<TTarget, "many-to-one">;
|
|
354
|
+
|
|
355
|
+
// @public
|
|
356
|
+
export function manyToOne<E extends AnyEntityClass>(target: () => unknown, options: RelationOptions): RelationDef<E, "many-to-one">;
|
|
357
|
+
|
|
358
|
+
// @public
|
|
359
|
+
export type ManyToOneDef<E> = RelationDef<E, "many-to-one">;
|
|
360
|
+
|
|
361
|
+
// @public
|
|
362
|
+
export type Materialized<T extends Record<string, string>> = Mutable<{
|
|
363
|
+
readonly [K in keyof T]: InferColumnType<T[K]>;
|
|
364
|
+
}>;
|
|
365
|
+
|
|
366
|
+
// @public
|
|
367
|
+
export type MaterializeShape<T extends Record<string, unknown>> = T extends Record<string, string> ? Materialized<T> : Mutable<T>;
|
|
368
|
+
|
|
369
|
+
// @public
|
|
370
|
+
export function max<T>(_field: T): T;
|
|
371
|
+
|
|
372
|
+
// @public
|
|
373
|
+
export interface MigrationDb {
|
|
374
|
+
// (undocumented)
|
|
375
|
+
run(sql: string, params?: unknown[]): Promise<void>;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
// @public (undocumented)
|
|
379
|
+
export interface MigrationDryRun {
|
|
380
|
+
// (undocumented)
|
|
381
|
+
applied: MigrationRecord[];
|
|
382
|
+
// (undocumented)
|
|
383
|
+
pending: PendingMigration[];
|
|
384
|
+
// (undocumented)
|
|
385
|
+
skipped: string[];
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
// @public
|
|
389
|
+
export interface MigrationFile {
|
|
390
|
+
content: string;
|
|
391
|
+
downSql: string;
|
|
392
|
+
name: string;
|
|
393
|
+
upSql: string;
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
// @public
|
|
397
|
+
export interface MigrationRecord {
|
|
398
|
+
applied_at: string;
|
|
399
|
+
id: number;
|
|
400
|
+
name: string;
|
|
401
|
+
}
|
|
402
|
+
|
|
403
|
+
// @public
|
|
404
|
+
export interface MigrationResult {
|
|
405
|
+
applied: string[];
|
|
406
|
+
skipped: string[];
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
// @public
|
|
410
|
+
export function migrationStatus(driver: Driver, dir: string): Promise<{
|
|
411
|
+
applied: MigrationRecord[];
|
|
412
|
+
pending: string[];
|
|
413
|
+
}>;
|
|
414
|
+
|
|
415
|
+
// @public
|
|
416
|
+
export function min<T>(_field: T): T;
|
|
417
|
+
|
|
418
|
+
// @public
|
|
419
|
+
export type Mutable<T> = {
|
|
420
|
+
-readonly [K in keyof T]: T[K];
|
|
421
|
+
};
|
|
422
|
+
|
|
423
|
+
// @public
|
|
424
|
+
export type OneToMany<E extends AnyEntityClass | EntityBase> = E extends EntityBase ? ManyRelation<E> : RelatedEntityInstance<EntityClassOf<E>, "many">;
|
|
425
|
+
|
|
426
|
+
// @public
|
|
427
|
+
export function oneToMany<E extends AnyEntityClass>(target: () => E, options: {
|
|
428
|
+
foreignKey: string | string[];
|
|
429
|
+
}): RelationDef<E, "one-to-many">;
|
|
430
|
+
|
|
431
|
+
// @public
|
|
432
|
+
export function oneToMany<TTarget>(target: () => {
|
|
433
|
+
_selectType: TTarget;
|
|
434
|
+
}, options: {
|
|
435
|
+
foreignKey: string | string[];
|
|
436
|
+
}): RelationDef<TTarget, "one-to-many">;
|
|
437
|
+
|
|
438
|
+
// @public
|
|
439
|
+
export function oneToMany<E extends AnyEntityClass>(target: () => unknown, options: {
|
|
440
|
+
foreignKey: string | string[];
|
|
441
|
+
}): RelationDef<E, "one-to-many">;
|
|
442
|
+
|
|
443
|
+
// @public
|
|
444
|
+
export type OneToManyDef<E> = RelationDef<E, "one-to-many">;
|
|
445
|
+
|
|
446
|
+
// @public
|
|
447
|
+
export type OneToOne<E extends AnyEntityClass | EntityBase> = SingleRelation<ToEntityInstance<E>>;
|
|
448
|
+
|
|
449
|
+
// @public
|
|
450
|
+
export function oneToOne<E extends AnyEntityClass>(target: () => E, options: RelationOptions): RelationDef<E, "one-to-one">;
|
|
451
|
+
|
|
452
|
+
// @public
|
|
453
|
+
export function oneToOne<TTarget>(target: () => {
|
|
454
|
+
_selectType: TTarget;
|
|
455
|
+
}, options: RelationOptions): RelationDef<TTarget, "one-to-one">;
|
|
456
|
+
|
|
457
|
+
// @public
|
|
458
|
+
export function oneToOne<E extends AnyEntityClass>(target: () => unknown, options: RelationOptions): RelationDef<E, "one-to-one">;
|
|
459
|
+
|
|
460
|
+
// @public
|
|
461
|
+
export type OneToOneDef<E> = RelationDef<E, "one-to-one">;
|
|
462
|
+
|
|
463
|
+
// @public
|
|
464
|
+
export type OptionalOnInsert<S extends string> = IsGenerated<S> extends true ? true : IsNotNull<S> extends false ? true : HasDefault<S> extends true ? true : false;
|
|
465
|
+
|
|
466
|
+
// @public
|
|
467
|
+
export type OrderDirection = "asc" | "desc";
|
|
468
|
+
|
|
469
|
+
// @public (undocumented)
|
|
470
|
+
export interface PendingMigration {
|
|
471
|
+
// (undocumented)
|
|
472
|
+
downSql: string;
|
|
473
|
+
// (undocumented)
|
|
474
|
+
downStatements: string[];
|
|
475
|
+
// (undocumented)
|
|
476
|
+
file: string;
|
|
477
|
+
// (undocumented)
|
|
478
|
+
name: string;
|
|
479
|
+
// (undocumented)
|
|
480
|
+
statements: string[];
|
|
481
|
+
// (undocumented)
|
|
482
|
+
upSql: string;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
// @public (undocumented)
|
|
486
|
+
export function pendingMigrations(driver: Driver, dir: string): Promise<PendingMigration[]>;
|
|
487
|
+
|
|
488
|
+
// @public
|
|
489
|
+
export interface PostgresDriverOptions {
|
|
490
|
+
connectionString?: string;
|
|
491
|
+
connectionTimeoutMs?: number;
|
|
492
|
+
database?: string;
|
|
493
|
+
host?: string;
|
|
494
|
+
idleTimeoutMs?: number;
|
|
495
|
+
logger?: {
|
|
496
|
+
error: (msg: string, err: Error) => void;
|
|
497
|
+
};
|
|
498
|
+
password?: string;
|
|
499
|
+
poolMax?: number;
|
|
500
|
+
poolMin?: number;
|
|
501
|
+
port?: number;
|
|
502
|
+
ssl?: pg.ConnectionConfig["ssl"];
|
|
503
|
+
statementTimeoutMs?: number;
|
|
504
|
+
url?: string;
|
|
505
|
+
user?: string;
|
|
506
|
+
}
|
|
507
|
+
|
|
508
|
+
// Warning: (ae-forgotten-export) The symbol "NoCtes" needs to be exported by the entry point index.d.ts
|
|
509
|
+
// Warning: (ae-forgotten-export) The symbol "QueryFromKind" needs to be exported by the entry point index.d.ts
|
|
510
|
+
//
|
|
511
|
+
// @public
|
|
512
|
+
export class QueryBuilder<C extends AnyEntityClass = AnyEntityClass, T = EntityInstance<C>, Ctes extends Record<string, unknown> = NoCtes, FromKind extends QueryFromKind = "table"> {
|
|
513
|
+
clone(): QueryBuilder<C, T, Ctes, FromKind>;
|
|
514
|
+
count(): Promise<number>;
|
|
515
|
+
crossJoin(keysOrFn: string[] | ((row: T) => unknown)): this;
|
|
516
|
+
delete(): Promise<number>;
|
|
517
|
+
deleteReturning(): Promise<EntityInstance<C>[]>;
|
|
518
|
+
findById(id: unknown): Promise<EntityInstance<C> | null>;
|
|
519
|
+
first(): Promise<EntityInstance<C> | undefined>;
|
|
520
|
+
from<N extends keyof Ctes & string>(name: N): QueryBuilder<C, Ctes[N], Ctes, "cte">;
|
|
521
|
+
// (undocumented)
|
|
522
|
+
from<Row = EntityInstance<C>>(name: string): QueryBuilder<C, Row, Ctes, "cte">;
|
|
523
|
+
// (undocumented)
|
|
524
|
+
from<Row>(source: QueryBuilder<any, Row>): QueryBuilder<C, Row, Ctes, "table">;
|
|
525
|
+
// (undocumented)
|
|
526
|
+
from(): QueryBuilder<C, EntityInstance<C>, Ctes, "table">;
|
|
527
|
+
fullJoin(keysOrFn: string[] | ((row: T) => unknown)): this;
|
|
528
|
+
// (undocumented)
|
|
529
|
+
fullJoin<E extends AnyEntityClass>(entity: E, on: (joined: EntityInstance<E>, row: T) => boolean): this;
|
|
530
|
+
groupBy(columnOrFn: string | string[] | number | number[] | ((row: EntityInstance<C>) => unknown), ...rest: (string | number)[]): this;
|
|
531
|
+
having(predicate: HasRegisteredCtes<Ctes> extends true ? (row: EntityInstance<C>, ctes: RegisteredCtes<Ctes>) => boolean : (row: EntityInstance<C>) => boolean, params?: Record<string, unknown>): this;
|
|
532
|
+
innerJoin(keysOrFn: string[] | ((row: T) => unknown)): this;
|
|
533
|
+
// (undocumented)
|
|
534
|
+
innerJoin<E extends AnyEntityClass>(entity: E, on: (joined: EntityInstance<E>, row: T) => boolean): this;
|
|
535
|
+
insert(row: Record<string, unknown>): InsertBuilder<C, EntityInstance<C> | undefined>;
|
|
536
|
+
insertGraph(graph: Record<string, unknown>): Promise<EntityInstance<C>>;
|
|
537
|
+
insertGraph(graphs: Record<string, unknown>[]): Promise<EntityInstance<C>[]>;
|
|
538
|
+
insertMany(rows: Record<string, unknown>[]): InsertBuilder<C, EntityInstance<C>[]>;
|
|
539
|
+
leftJoin(keysOrFn: string[] | ((row: T) => unknown)): this;
|
|
540
|
+
// (undocumented)
|
|
541
|
+
leftJoin<E extends AnyEntityClass>(entity: E, on: (joined: EntityInstance<E>, row: T) => boolean): this;
|
|
542
|
+
limit(n: number): this;
|
|
543
|
+
offset(n: number): this;
|
|
544
|
+
orderBy(col: string | ((row: T) => unknown), direction?: OrderDirection): this;
|
|
545
|
+
patch(set: Record<string, unknown>): Promise<EntityInstance<C> | null>;
|
|
546
|
+
// (undocumented)
|
|
547
|
+
protected requirePkColumns(context: string): string[];
|
|
548
|
+
rightJoin(keysOrFn: string[] | ((row: T) => unknown)): this;
|
|
549
|
+
// (undocumented)
|
|
550
|
+
rightJoin<E extends AnyEntityClass>(entity: E, on: (joined: EntityInstance<E>, row: T) => boolean): this;
|
|
551
|
+
select<U>(fn: (row: SelectRow<C>) => U): QueryBuilder<C, U, Ctes>;
|
|
552
|
+
select(columns: string[]): QueryBuilder<C, T, Ctes>;
|
|
553
|
+
toArray(): Promise<EntityInstance<C>[]>;
|
|
554
|
+
unionAll<OC extends AnyEntityClass, OT>(other: QueryBuilder<OC, OT, any, any>): QueryBuilder<C, T, Ctes, FromKind>;
|
|
555
|
+
update(set: Record<string, unknown>): Promise<number>;
|
|
556
|
+
// (undocumented)
|
|
557
|
+
update(setFn: HasRegisteredCtes<Ctes> extends true ? (row: EntityInstance<C>, ctes: RegisteredCtes<Ctes>) => Record<string, unknown> : (row: EntityInstance<C>) => Record<string, unknown>): Promise<number>;
|
|
558
|
+
updateReturning(set: Record<string, unknown>): Promise<EntityInstance<C>[]>;
|
|
559
|
+
// (undocumented)
|
|
560
|
+
updateReturning(setFn: HasRegisteredCtes<Ctes> extends true ? (row: EntityInstance<C>, ctes: RegisteredCtes<Ctes>) => Record<string, unknown> : (row: EntityInstance<C>) => Record<string, unknown>): Promise<EntityInstance<C>[]>;
|
|
561
|
+
// Warning: (ae-forgotten-export) The symbol "HasRegisteredCtes" needs to be exported by the entry point index.d.ts
|
|
562
|
+
// Warning: (ae-forgotten-export) The symbol "TableRow" needs to be exported by the entry point index.d.ts
|
|
563
|
+
// Warning: (ae-forgotten-export) The symbol "RegisteredCtes" needs to be exported by the entry point index.d.ts
|
|
564
|
+
where(predicate: FromKind extends "cte" ? (row: T) => boolean : HasRegisteredCtes<Ctes> extends true ? (row: TableRow<C, T, FromKind>, ctes: RegisteredCtes<Ctes>) => boolean : (row: TableRow<C, T, FromKind>) => boolean, params?: Record<string, unknown>): this;
|
|
565
|
+
// (undocumented)
|
|
566
|
+
withCte<const N extends string, IC extends AnyEntityClass, IT>(name: N, subquery: QueryBuilder<IC, IT, any, any>): QueryBuilder<C, T, Ctes & Record<N, IT>, FromKind>;
|
|
567
|
+
// (undocumented)
|
|
568
|
+
withCte<const N extends string, IC extends AnyEntityClass, IT>(name: N, build: (ctes: RegisteredCtes<Ctes>) => QueryBuilder<IC, IT, any, any>): QueryBuilder<C, T, Ctes & Record<N, IT>, FromKind>;
|
|
569
|
+
withRecursiveCte<const N extends string, IC extends AnyEntityClass, IT>(name: N, subquery: QueryBuilder<IC, IT, any, any>): QueryBuilder<C, T, Ctes & Record<N, IT>, FromKind>;
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
// @public
|
|
573
|
+
export interface QueryExecutor {
|
|
574
|
+
readonly dialect: DialectInfo;
|
|
575
|
+
query(sql: string, params?: unknown[]): Promise<unknown[]>;
|
|
576
|
+
run(sql: string, params?: unknown[]): Promise<{
|
|
577
|
+
lastID?: number;
|
|
578
|
+
changes: number;
|
|
579
|
+
}>;
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
// @public
|
|
583
|
+
export interface RegisteredEntity {
|
|
584
|
+
_registerJunctions?: () => void;
|
|
585
|
+
table: {
|
|
586
|
+
_table: string;
|
|
587
|
+
_schema: Record<string, string>;
|
|
588
|
+
};
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
// @public
|
|
592
|
+
export const rel: {
|
|
593
|
+
oneToOne: typeof oneToOne;
|
|
594
|
+
manyToOne: typeof manyToOne;
|
|
595
|
+
oneToMany: typeof oneToMany;
|
|
596
|
+
manyToMany: typeof manyToMany;
|
|
597
|
+
};
|
|
598
|
+
|
|
599
|
+
// @public
|
|
600
|
+
export type RelatedEntityInstance<E extends AnyEntityClass, Kind extends "one" | "many"> = Kind extends "many" ? RelationQueryBuilder<SelectRow<E>> & EntityInstance<E>[] : SingleRelation<EntityInstance<E>>;
|
|
601
|
+
|
|
602
|
+
// @public
|
|
603
|
+
export interface RelationDef<_E = unknown, TType extends RelationType = RelationType> {
|
|
604
|
+
readonly _options: RelationOptions | JunctionOptions;
|
|
605
|
+
readonly _relType: TType;
|
|
606
|
+
readonly _target: () => unknown;
|
|
607
|
+
}
|
|
608
|
+
|
|
609
|
+
// @public
|
|
610
|
+
export type RelationKind<TType extends RelationType> = TType extends "one-to-many" | "many-to-many" ? "many" : "one";
|
|
611
|
+
|
|
612
|
+
// @public
|
|
613
|
+
export type RelationLoadedValue<R> = R extends RelationDef<infer E, infer TType> ? E extends AnyEntityClass ? unknown extends E ? TType extends "one-to-many" | "many-to-many" ? RelationQueryBuilder<any> & EntityBase[] : EntityBase : TType extends "one-to-many" | "many-to-many" ? ManyRelation<EntityInstance<E>> : EntityInstance<E> : TType extends "one-to-many" | "many-to-many" ? RelationQueryBuilder<any> & EntityBase[] : EntityBase : never;
|
|
614
|
+
|
|
615
|
+
// @public
|
|
616
|
+
export interface RelationOptions {
|
|
617
|
+
foreignKey: string | string[];
|
|
618
|
+
references?: string | string[];
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
// @public
|
|
622
|
+
export type RelationQueryable<R> = R extends RelationDef<infer E, infer TType> ? E extends AnyEntityClass ? RelatedEntityInstance<E, RelationKind<TType>> : TType extends "one-to-many" | "many-to-many" ? RelationQueryBuilder<E> & E[] : RelationQueryBuilder<E> & E : never;
|
|
623
|
+
|
|
624
|
+
// @public
|
|
625
|
+
export interface RelationQueryBuilder<T> {
|
|
626
|
+
count(): Promise<number>;
|
|
627
|
+
first(): Promise<T | undefined>;
|
|
628
|
+
limit(n: number): RelationQueryBuilder<T>;
|
|
629
|
+
offset(n: number): RelationQueryBuilder<T>;
|
|
630
|
+
orderBy(col: string, dir?: string): RelationQueryBuilder<T>;
|
|
631
|
+
query(): RelationQueryBuilder<T>;
|
|
632
|
+
select<U>(fn: (row: T) => U): RelationQueryBuilder<U>;
|
|
633
|
+
toArray(): Promise<T[]>;
|
|
634
|
+
where(fn: (row: T) => boolean): RelationQueryBuilder<T>;
|
|
635
|
+
}
|
|
636
|
+
|
|
637
|
+
// @public
|
|
638
|
+
export type RelationsMap = Record<string, RelationDef<any, RelationType>>;
|
|
639
|
+
|
|
640
|
+
// @public
|
|
641
|
+
export type RelationTarget<R> = R extends RelationDef<infer E, any> ? (E extends AnyEntityClass ? EntityInstance<E> : E) : never;
|
|
642
|
+
|
|
643
|
+
// @public
|
|
644
|
+
export type RelationType = "one-to-one" | "many-to-one" | "one-to-many" | "many-to-many";
|
|
645
|
+
|
|
646
|
+
// @public
|
|
647
|
+
export type Row<TShape extends Record<string, unknown>, TRels extends RelationsMap = {}> = Flatten<MaterializeShape<TShape> & {
|
|
648
|
+
[K in keyof TRels]: RelationLoadedValue<TRels[K]>;
|
|
649
|
+
}> & EntityBase;
|
|
650
|
+
|
|
651
|
+
// @public
|
|
652
|
+
export function runMigrations(driver: Driver, dir: string): Promise<MigrationResult>;
|
|
653
|
+
|
|
654
|
+
// Warning: (ae-forgotten-export) The symbol "SelectRowFromTable" needs to be exported by the entry point index.d.ts
|
|
655
|
+
//
|
|
656
|
+
// @public
|
|
657
|
+
export type SelectRow<E extends AnyEntityClass> = E extends new (...args: any[]) => infer R ? R extends EntityBase ? R : SelectRowFromTable<E> : SelectRowFromTable<E>;
|
|
658
|
+
|
|
659
|
+
// @public
|
|
660
|
+
export type SingleRelation<E extends EntityBase> = E;
|
|
661
|
+
|
|
662
|
+
// @public
|
|
663
|
+
export class SingleRowQueryBuilder<T = unknown> {
|
|
664
|
+
delete(): Promise<void>;
|
|
665
|
+
patch(set: Record<string, unknown>): Promise<void>;
|
|
666
|
+
save(): Promise<void>;
|
|
667
|
+
}
|
|
668
|
+
|
|
669
|
+
// @public
|
|
670
|
+
export interface SqliteDriverOptions {
|
|
671
|
+
database?: string;
|
|
672
|
+
path?: string;
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
// @public
|
|
676
|
+
export type SQLToTS<S extends string> = ExtractSQLBase<S> extends keyof SQLTypeMap ? SQLTypeMap[ExtractSQLBase<S>] : unknown;
|
|
677
|
+
|
|
678
|
+
// @public
|
|
679
|
+
export type SQLTypeMap = {
|
|
680
|
+
integer: number;
|
|
681
|
+
int: number;
|
|
682
|
+
serial: number;
|
|
683
|
+
smallint: number;
|
|
684
|
+
tinyint: number;
|
|
685
|
+
real: number;
|
|
686
|
+
float: number;
|
|
687
|
+
double: number;
|
|
688
|
+
numeric: number;
|
|
689
|
+
decimal: number;
|
|
690
|
+
text: string;
|
|
691
|
+
varchar: string;
|
|
692
|
+
char: string;
|
|
693
|
+
nvarchar: string;
|
|
694
|
+
uuid: string;
|
|
695
|
+
boolean: boolean;
|
|
696
|
+
bool: boolean;
|
|
697
|
+
date: Date;
|
|
698
|
+
datetime: Date;
|
|
699
|
+
timestamp: Date;
|
|
700
|
+
blob: Uint8Array;
|
|
701
|
+
json: unknown;
|
|
702
|
+
jsonb: unknown;
|
|
703
|
+
bigint: bigint;
|
|
704
|
+
bigserial: bigint;
|
|
705
|
+
};
|
|
706
|
+
|
|
707
|
+
// @public
|
|
708
|
+
export type StripParens<S extends string> = S extends `${infer Base}(${string})${infer Rest}` ? `${Base}${Rest}` : S;
|
|
709
|
+
|
|
710
|
+
// @public
|
|
711
|
+
export function sum(_field: number): number;
|
|
712
|
+
|
|
713
|
+
// @public
|
|
714
|
+
export interface TableDef<TSchema extends Record<string, string>, TRelations extends RelationsMap = Record<string, never>> {
|
|
715
|
+
readonly _insertType: InferInsert<TSchema>;
|
|
716
|
+
readonly _relations: TRelations;
|
|
717
|
+
readonly _schema: TSchema;
|
|
718
|
+
readonly _selectType: InferTable<TSchema>;
|
|
719
|
+
readonly _table: string;
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
// @public
|
|
723
|
+
export type ToEntityInstance<E> = E extends EntityBase ? E : EntityInstance<EntityClassOf<E>>;
|
|
724
|
+
|
|
725
|
+
// @public
|
|
726
|
+
export interface TransactionOptions {
|
|
727
|
+
deferrable?: boolean;
|
|
728
|
+
isolationLevel?: "READ_UNCOMMITTED" | "READ_COMMITTED" | "REPEATABLE_READ" | "SERIALIZABLE";
|
|
729
|
+
readOnly?: boolean;
|
|
730
|
+
sqliteMode?: "deferred" | "immediate" | "exclusive";
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
// @public
|
|
734
|
+
export abstract class Trx {
|
|
735
|
+
protected abstract begin(): Promise<void>;
|
|
736
|
+
beginTrx(): Promise<Trx>;
|
|
737
|
+
abstract commit(): Promise<void>;
|
|
738
|
+
static readonly defaultOptions: TransactionOptions;
|
|
739
|
+
get dialect(): DialectInfo;
|
|
740
|
+
query(sql: string, params?: unknown[]): Promise<unknown[]>;
|
|
741
|
+
abstract rollback(): Promise<void>;
|
|
742
|
+
run(sql: string, params?: unknown[]): Promise<{
|
|
743
|
+
lastID?: number;
|
|
744
|
+
changes: number;
|
|
745
|
+
}>;
|
|
746
|
+
transaction<T>(fn: (trx: Trx) => Promise<T>): Promise<T>;
|
|
747
|
+
protected validateOptions(): void;
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
// @public
|
|
751
|
+
export interface TyphexConfig {
|
|
752
|
+
database?: string;
|
|
753
|
+
dialect: DialectName;
|
|
754
|
+
entities?: string;
|
|
755
|
+
migrationsFolder?: string;
|
|
756
|
+
url?: string;
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
// @public (undocumented)
|
|
760
|
+
export function upMigration(driver: Driver, dir: string, name: string): Promise<void>;
|
|
761
|
+
|
|
762
|
+
// @public
|
|
763
|
+
export interface WithClause {
|
|
764
|
+
// (undocumented)
|
|
765
|
+
inner: unknown;
|
|
766
|
+
// (undocumented)
|
|
767
|
+
kind: "simple" | "recursive";
|
|
768
|
+
// (undocumented)
|
|
769
|
+
name: string;
|
|
770
|
+
}
|
|
771
|
+
|
|
772
|
+
// (No @packageDocumentation comment for this package)
|
|
773
|
+
|
|
774
|
+
```
|