pipework 0.7.13 → 0.7.18
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 +23 -0
- package/README.md +3 -2
- package/REFERENCE.md +327 -296
- package/dist/REFERENCE.md +396 -431
- package/dist/auth/tenant/scope.d.ts +1 -1
- package/dist/auth/tenant/scope.d.ts.map +1 -1
- package/dist/cli/commands/check.d.ts +2 -1
- package/dist/cli/commands/check.d.ts.map +1 -1
- package/dist/cli/commands/check.js +52 -17
- package/dist/cli/commands/check.js.map +1 -1
- package/dist/cli/commands/migrate.d.ts.map +1 -1
- package/dist/cli/commands/migrate.js +3 -6
- package/dist/cli/commands/migrate.js.map +1 -1
- package/dist/cli/commands/scope.d.ts +12 -0
- package/dist/cli/commands/scope.d.ts.map +1 -0
- package/dist/cli/commands/scope.js +25 -0
- package/dist/cli/commands/scope.js.map +1 -0
- package/dist/cli/commands/test.d.ts +3 -0
- package/dist/cli/commands/test.d.ts.map +1 -1
- package/dist/cli/commands/test.js +65 -1
- package/dist/cli/commands/test.js.map +1 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +21 -2
- package/dist/cli/index.js.map +1 -1
- package/dist/config/discover.d.ts.map +1 -1
- package/dist/config/discover.js +0 -14
- package/dist/config/discover.js.map +1 -1
- package/dist/core/config/namespace.d.ts +123 -120
- package/dist/core/config/namespace.d.ts.map +1 -1
- package/dist/core/config/schema.d.ts +8 -0
- package/dist/core/config/schema.d.ts.map +1 -1
- package/dist/core/config/schema.js +2 -0
- package/dist/core/config/schema.js.map +1 -1
- package/dist/data/db/col/index.d.ts +1 -1
- package/dist/data/db/col/index.d.ts.map +1 -1
- package/dist/data/db/col/index.js +1 -1
- package/dist/data/db/col/index.js.map +1 -1
- package/dist/data/db/excluded.js +2 -2
- package/dist/data/db/excluded.js.map +1 -1
- package/dist/data/db/filter.d.ts +12 -12
- package/dist/data/db/generated/drizzle-orm/aggregate.d.ts +1 -1
- package/dist/data/db/generated/drizzle-orm/aggregate.d.ts.map +1 -1
- package/dist/data/db/generated/drizzle-orm/aggregate.js +1 -1
- package/dist/data/db/generated/drizzle-orm/aggregate.js.map +1 -1
- package/dist/data/db/generated/drizzle-orm/introspection.d.ts +1 -1
- package/dist/data/db/generated/drizzle-orm/introspection.d.ts.map +1 -1
- package/dist/data/db/generated/drizzle-orm/introspection.js +1 -1
- package/dist/data/db/generated/drizzle-orm/introspection.js.map +1 -1
- package/dist/data/db/generated/drizzle-orm/operator.d.ts +1 -1
- package/dist/data/db/generated/drizzle-orm/operator.d.ts.map +1 -1
- package/dist/data/db/generated/drizzle-orm/operator.js +1 -1
- package/dist/data/db/generated/drizzle-orm/operator.js.map +1 -1
- package/dist/data/db/generated/drizzle-orm/relation.d.ts +1 -1
- package/dist/data/db/generated/drizzle-orm/relation.d.ts.map +1 -1
- package/dist/data/db/generated/drizzle-orm/relation.js +1 -1
- package/dist/data/db/generated/drizzle-orm/relation.js.map +1 -1
- package/dist/data/db/generated/drizzle-orm/type.d.ts +2 -2
- package/dist/data/db/generated/drizzle-orm/type.d.ts.map +1 -1
- package/dist/data/db/generated/drizzle-orm/type.js +1 -1
- package/dist/data/db/generated/drizzle-orm/type.js.map +1 -1
- package/dist/data/db/generated/pg-core/introspection.d.ts +1 -1
- package/dist/data/db/generated/pg-core/introspection.d.ts.map +1 -1
- package/dist/data/db/generated/pg-core/introspection.js +1 -1
- package/dist/data/db/generated/pg-core/introspection.js.map +1 -1
- package/dist/data/db/generated/pg-core/set-operation.d.ts +1 -1
- package/dist/data/db/generated/pg-core/set-operation.d.ts.map +1 -1
- package/dist/data/db/generated/pg-core/set-operation.js +1 -1
- package/dist/data/db/generated/pg-core/set-operation.js.map +1 -1
- package/dist/data/db/generated/pg-core/type.d.ts +2 -2
- package/dist/data/db/generated/pg-core/type.d.ts.map +1 -1
- package/dist/data/db/generated/pg-core/type.js +1 -1
- package/dist/data/db/generated/pg-core/type.js.map +1 -1
- package/dist/data/db/idx/index.d.ts +1 -1
- package/dist/data/db/idx/index.d.ts.map +1 -1
- package/dist/data/db/idx/index.js +1 -1
- package/dist/data/db/idx/index.js.map +1 -1
- package/dist/data/db/namespace.d.ts +43 -43
- package/dist/data/db/pool.d.ts +1 -1
- package/dist/data/db/pool.d.ts.map +1 -1
- package/dist/data/db/pool.js +1 -1
- package/dist/data/db/pool.js.map +1 -1
- package/dist/data/db/schema-features.d.ts +1 -1
- package/dist/data/db/schema-features.d.ts.map +1 -1
- package/dist/data/db/schema-features.js +1 -1
- package/dist/data/db/schema-features.js.map +1 -1
- package/dist/data/db/sql.d.ts +1 -1
- package/dist/data/db/sql.d.ts.map +1 -1
- package/dist/data/db/sql.js +1 -1
- package/dist/data/db/sql.js.map +1 -1
- package/dist/data/db/types.d.ts +3 -3
- package/dist/data/db/types.d.ts.map +1 -1
- package/dist/data/domain/project-table.d.ts +2 -2
- package/dist/data/domain/project-table.js +2 -2
- package/dist/data/domain/project-table.js.map +1 -1
- package/dist/data/domain/types.d.ts +1 -1
- package/dist/data/domain/types.d.ts.map +1 -1
- package/dist/data/migrate/apply.d.ts +8 -0
- package/dist/data/migrate/apply.d.ts.map +1 -0
- package/dist/data/migrate/apply.js +91 -0
- package/dist/data/migrate/apply.js.map +1 -0
- package/dist/data/migrate/diff.d.ts +118 -0
- package/dist/data/migrate/diff.d.ts.map +1 -0
- package/dist/data/migrate/diff.js +215 -0
- package/dist/data/migrate/diff.js.map +1 -0
- package/dist/data/migrate/generate.d.ts.map +1 -1
- package/dist/data/migrate/generate.js +12 -22
- package/dist/data/migrate/generate.js.map +1 -1
- package/dist/data/migrate/run.d.ts.map +1 -1
- package/dist/data/migrate/run.js +5 -16
- package/dist/data/migrate/run.js.map +1 -1
- package/dist/data/migrate/snapshot.d.ts +87 -0
- package/dist/data/migrate/snapshot.d.ts.map +1 -0
- package/dist/data/migrate/snapshot.js +204 -0
- package/dist/data/migrate/snapshot.js.map +1 -0
- package/dist/data/migrate/sql-emit.d.ts +3 -0
- package/dist/data/migrate/sql-emit.d.ts.map +1 -0
- package/dist/data/migrate/sql-emit.js +220 -0
- package/dist/data/migrate/sql-emit.js.map +1 -0
- package/dist/data/query/alias.d.ts +32 -0
- package/dist/data/query/alias.d.ts.map +1 -0
- package/dist/data/query/alias.js +101 -0
- package/dist/data/query/alias.js.map +1 -0
- package/dist/data/query/batch.d.ts +7 -0
- package/dist/data/query/batch.d.ts.map +1 -0
- package/dist/data/query/batch.js +2 -0
- package/dist/data/query/batch.js.map +1 -0
- package/dist/data/query/cache/core/cache.d.ts +37 -0
- package/dist/data/query/cache/core/cache.d.ts.map +1 -0
- package/dist/data/query/cache/core/cache.js +29 -0
- package/dist/data/query/cache/core/cache.js.map +1 -0
- package/dist/data/query/cache/core/index.d.ts +2 -0
- package/dist/data/query/cache/core/index.d.ts.map +1 -0
- package/dist/data/query/cache/core/index.js +2 -0
- package/dist/data/query/cache/core/index.js.map +1 -0
- package/dist/data/query/cache/core/types.d.ts +34 -0
- package/dist/data/query/cache/core/types.d.ts.map +1 -0
- package/dist/data/query/cache/core/types.js +2 -0
- package/dist/data/query/cache/core/types.js.map +1 -0
- package/dist/data/query/casing.d.ts +17 -0
- package/dist/data/query/casing.d.ts.map +1 -0
- package/dist/data/query/casing.js +62 -0
- package/dist/data/query/casing.js.map +1 -0
- package/dist/data/query/column-builder.d.ts +241 -0
- package/dist/data/query/column-builder.d.ts.map +1 -0
- package/dist/data/query/column-builder.js +105 -0
- package/dist/data/query/column-builder.js.map +1 -0
- package/dist/data/query/column.d.ts +70 -0
- package/dist/data/query/column.d.ts.map +1 -0
- package/dist/data/query/column.js +57 -0
- package/dist/data/query/column.js.map +1 -0
- package/dist/data/query/entity.d.ts +8 -0
- package/dist/data/query/entity.d.ts.map +1 -0
- package/dist/data/query/entity.js +25 -0
- package/dist/data/query/entity.js.map +1 -0
- package/dist/data/query/errors.d.ts +19 -0
- package/dist/data/query/errors.d.ts.map +1 -0
- package/dist/data/query/errors.js +31 -0
- package/dist/data/query/errors.js.map +1 -0
- package/dist/data/query/index.d.ts +15 -0
- package/dist/data/query/index.d.ts.map +1 -0
- package/dist/data/query/index.js +15 -0
- package/dist/data/query/index.js.map +1 -0
- package/dist/data/query/logger.d.ts +24 -0
- package/dist/data/query/logger.d.ts.map +1 -0
- package/dist/data/query/logger.js +33 -0
- package/dist/data/query/logger.js.map +1 -0
- package/dist/data/query/operations.d.ts +25 -0
- package/dist/data/query/operations.d.ts.map +1 -0
- package/dist/data/query/operations.js +2 -0
- package/dist/data/query/operations.js.map +1 -0
- package/dist/data/query/pg-core/alias.d.ts +5 -0
- package/dist/data/query/pg-core/alias.d.ts.map +1 -0
- package/dist/data/query/pg-core/alias.js +5 -0
- package/dist/data/query/pg-core/alias.js.map +1 -0
- package/dist/data/query/pg-core/checks.d.ts +21 -0
- package/dist/data/query/pg-core/checks.d.ts.map +1 -0
- package/dist/data/query/pg-core/checks.js +30 -0
- package/dist/data/query/pg-core/checks.js.map +1 -0
- package/dist/data/query/pg-core/columns/all.d.ts +68 -0
- package/dist/data/query/pg-core/columns/all.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/all.js +69 -0
- package/dist/data/query/pg-core/columns/all.js.map +1 -0
- package/dist/data/query/pg-core/columns/bigint.d.ts +54 -0
- package/dist/data/query/pg-core/columns/bigint.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/bigint.js +54 -0
- package/dist/data/query/pg-core/columns/bigint.js.map +1 -0
- package/dist/data/query/pg-core/columns/bigserial.d.ts +53 -0
- package/dist/data/query/pg-core/columns/bigserial.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/bigserial.js +56 -0
- package/dist/data/query/pg-core/columns/bigserial.js.map +1 -0
- package/dist/data/query/pg-core/columns/boolean.d.ts +28 -0
- package/dist/data/query/pg-core/columns/boolean.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/boolean.js +22 -0
- package/dist/data/query/pg-core/columns/boolean.js.map +1 -0
- package/dist/data/query/pg-core/columns/char.d.ts +53 -0
- package/dist/data/query/pg-core/columns/char.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/char.js +28 -0
- package/dist/data/query/pg-core/columns/char.js.map +1 -0
- package/dist/data/query/pg-core/columns/cidr.d.ts +28 -0
- package/dist/data/query/pg-core/columns/cidr.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/cidr.js +22 -0
- package/dist/data/query/pg-core/columns/cidr.js.map +1 -0
- package/dist/data/query/pg-core/columns/common.d.ts +167 -0
- package/dist/data/query/pg-core/columns/common.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/common.js +190 -0
- package/dist/data/query/pg-core/columns/common.js.map +1 -0
- package/dist/data/query/pg-core/columns/custom.d.ts +160 -0
- package/dist/data/query/pg-core/columns/custom.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/custom.js +46 -0
- package/dist/data/query/pg-core/columns/custom.js.map +1 -0
- package/dist/data/query/pg-core/columns/date.common.d.ts +8 -0
- package/dist/data/query/pg-core/columns/date.common.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/date.common.js +10 -0
- package/dist/data/query/pg-core/columns/date.common.js.map +1 -0
- package/dist/data/query/pg-core/columns/date.d.ts +57 -0
- package/dist/data/query/pg-core/columns/date.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/date.js +57 -0
- package/dist/data/query/pg-core/columns/date.js.map +1 -0
- package/dist/data/query/pg-core/columns/double-precision.d.ts +29 -0
- package/dist/data/query/pg-core/columns/double-precision.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/double-precision.js +28 -0
- package/dist/data/query/pg-core/columns/double-precision.js.map +1 -0
- package/dist/data/query/pg-core/columns/enum.d.ts +102 -0
- package/dist/data/query/pg-core/columns/enum.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/enum.js +78 -0
- package/dist/data/query/pg-core/columns/enum.js.map +1 -0
- package/dist/data/query/pg-core/columns/index.d.ts +36 -0
- package/dist/data/query/pg-core/columns/index.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/index.js +36 -0
- package/dist/data/query/pg-core/columns/index.js.map +1 -0
- package/dist/data/query/pg-core/columns/inet.d.ts +28 -0
- package/dist/data/query/pg-core/columns/inet.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/inet.js +22 -0
- package/dist/data/query/pg-core/columns/inet.js.map +1 -0
- package/dist/data/query/pg-core/columns/int.common.d.ts +16 -0
- package/dist/data/query/pg-core/columns/int.common.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/int.common.js +42 -0
- package/dist/data/query/pg-core/columns/int.common.js.map +1 -0
- package/dist/data/query/pg-core/columns/integer.d.ts +30 -0
- package/dist/data/query/pg-core/columns/integer.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/integer.js +29 -0
- package/dist/data/query/pg-core/columns/integer.js.map +1 -0
- package/dist/data/query/pg-core/columns/interval.d.ts +40 -0
- package/dist/data/query/pg-core/columns/interval.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/interval.js +29 -0
- package/dist/data/query/pg-core/columns/interval.js.map +1 -0
- package/dist/data/query/pg-core/columns/json.d.ts +33 -0
- package/dist/data/query/pg-core/columns/json.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/json.js +39 -0
- package/dist/data/query/pg-core/columns/json.js.map +1 -0
- package/dist/data/query/pg-core/columns/jsonb.d.ts +33 -0
- package/dist/data/query/pg-core/columns/jsonb.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/jsonb.js +39 -0
- package/dist/data/query/pg-core/columns/jsonb.js.map +1 -0
- package/dist/data/query/pg-core/columns/line.d.ts +69 -0
- package/dist/data/query/pg-core/columns/line.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/line.js +57 -0
- package/dist/data/query/pg-core/columns/line.js.map +1 -0
- package/dist/data/query/pg-core/columns/macaddr.d.ts +28 -0
- package/dist/data/query/pg-core/columns/macaddr.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/macaddr.js +22 -0
- package/dist/data/query/pg-core/columns/macaddr.js.map +1 -0
- package/dist/data/query/pg-core/columns/macaddr8.d.ts +28 -0
- package/dist/data/query/pg-core/columns/macaddr8.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/macaddr8.js +22 -0
- package/dist/data/query/pg-core/columns/macaddr8.js.map +1 -0
- package/dist/data/query/pg-core/columns/numeric.d.ts +112 -0
- package/dist/data/query/pg-core/columns/numeric.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/numeric.js +126 -0
- package/dist/data/query/pg-core/columns/numeric.js.map +1 -0
- package/dist/data/query/pg-core/columns/point.d.ts +72 -0
- package/dist/data/query/pg-core/columns/point.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/point.js +63 -0
- package/dist/data/query/pg-core/columns/point.js.map +1 -0
- package/dist/data/query/pg-core/columns/postgis_extension/geometry.d.ts +68 -0
- package/dist/data/query/pg-core/columns/postgis_extension/geometry.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/postgis_extension/geometry.js +57 -0
- package/dist/data/query/pg-core/columns/postgis_extension/geometry.js.map +1 -0
- package/dist/data/query/pg-core/columns/postgis_extension/utils.d.ts +2 -0
- package/dist/data/query/pg-core/columns/postgis_extension/utils.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/postgis_extension/utils.js +39 -0
- package/dist/data/query/pg-core/columns/postgis_extension/utils.js.map +1 -0
- package/dist/data/query/pg-core/columns/real.d.ts +34 -0
- package/dist/data/query/pg-core/columns/real.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/real.js +32 -0
- package/dist/data/query/pg-core/columns/real.js.map +1 -0
- package/dist/data/query/pg-core/columns/serial.d.ts +28 -0
- package/dist/data/query/pg-core/columns/serial.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/serial.js +24 -0
- package/dist/data/query/pg-core/columns/serial.js.map +1 -0
- package/dist/data/query/pg-core/columns/smallint.d.ts +30 -0
- package/dist/data/query/pg-core/columns/smallint.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/smallint.js +29 -0
- package/dist/data/query/pg-core/columns/smallint.js.map +1 -0
- package/dist/data/query/pg-core/columns/smallserial.d.ts +28 -0
- package/dist/data/query/pg-core/columns/smallserial.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/smallserial.js +24 -0
- package/dist/data/query/pg-core/columns/smallserial.js.map +1 -0
- package/dist/data/query/pg-core/columns/text.d.ts +38 -0
- package/dist/data/query/pg-core/columns/text.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/text.js +26 -0
- package/dist/data/query/pg-core/columns/text.js.map +1 -0
- package/dist/data/query/pg-core/columns/time.d.ts +45 -0
- package/dist/data/query/pg-core/columns/time.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/time.js +39 -0
- package/dist/data/query/pg-core/columns/time.js.map +1 -0
- package/dist/data/query/pg-core/columns/timestamp.d.ts +76 -0
- package/dist/data/query/pg-core/columns/timestamp.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/timestamp.js +83 -0
- package/dist/data/query/pg-core/columns/timestamp.js.map +1 -0
- package/dist/data/query/pg-core/columns/uuid.d.ts +32 -0
- package/dist/data/query/pg-core/columns/uuid.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/uuid.js +29 -0
- package/dist/data/query/pg-core/columns/uuid.js.map +1 -0
- package/dist/data/query/pg-core/columns/varchar.d.ts +53 -0
- package/dist/data/query/pg-core/columns/varchar.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/varchar.js +28 -0
- package/dist/data/query/pg-core/columns/varchar.js.map +1 -0
- package/dist/data/query/pg-core/columns/vector_extension/bit.d.ts +45 -0
- package/dist/data/query/pg-core/columns/vector_extension/bit.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/vector_extension/bit.js +26 -0
- package/dist/data/query/pg-core/columns/vector_extension/bit.js.map +1 -0
- package/dist/data/query/pg-core/columns/vector_extension/halfvec.d.ts +49 -0
- package/dist/data/query/pg-core/columns/vector_extension/halfvec.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/vector_extension/halfvec.js +35 -0
- package/dist/data/query/pg-core/columns/vector_extension/halfvec.js.map +1 -0
- package/dist/data/query/pg-core/columns/vector_extension/sparsevec.d.ts +36 -0
- package/dist/data/query/pg-core/columns/vector_extension/sparsevec.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/vector_extension/sparsevec.js +26 -0
- package/dist/data/query/pg-core/columns/vector_extension/sparsevec.js.map +1 -0
- package/dist/data/query/pg-core/columns/vector_extension/vector.d.ts +49 -0
- package/dist/data/query/pg-core/columns/vector_extension/vector.d.ts.map +1 -0
- package/dist/data/query/pg-core/columns/vector_extension/vector.js +35 -0
- package/dist/data/query/pg-core/columns/vector_extension/vector.js.map +1 -0
- package/dist/data/query/pg-core/db.d.ts +292 -0
- package/dist/data/query/pg-core/db.d.ts.map +1 -0
- package/dist/data/query/pg-core/db.js +377 -0
- package/dist/data/query/pg-core/db.js.map +1 -0
- package/dist/data/query/pg-core/dialect.d.ts +66 -0
- package/dist/data/query/pg-core/dialect.d.ts.map +1 -0
- package/dist/data/query/pg-core/dialect.js +1099 -0
- package/dist/data/query/pg-core/dialect.js.map +1 -0
- package/dist/data/query/pg-core/expressions.d.ts +9 -0
- package/dist/data/query/pg-core/expressions.d.ts.map +1 -0
- package/dist/data/query/pg-core/expressions.js +18 -0
- package/dist/data/query/pg-core/expressions.js.map +1 -0
- package/dist/data/query/pg-core/foreign-keys.d.ts +57 -0
- package/dist/data/query/pg-core/foreign-keys.d.ts.map +1 -0
- package/dist/data/query/pg-core/foreign-keys.js +70 -0
- package/dist/data/query/pg-core/foreign-keys.js.map +1 -0
- package/dist/data/query/pg-core/index.d.ts +22 -0
- package/dist/data/query/pg-core/index.d.ts.map +1 -0
- package/dist/data/query/pg-core/index.js +22 -0
- package/dist/data/query/pg-core/index.js.map +1 -0
- package/dist/data/query/pg-core/indexes.d.ts +84 -0
- package/dist/data/query/pg-core/indexes.d.ts.map +1 -0
- package/dist/data/query/pg-core/indexes.js +100 -0
- package/dist/data/query/pg-core/indexes.js.map +1 -0
- package/dist/data/query/pg-core/policies.d.ts +27 -0
- package/dist/data/query/pg-core/policies.d.ts.map +1 -0
- package/dist/data/query/pg-core/policies.js +30 -0
- package/dist/data/query/pg-core/policies.js.map +1 -0
- package/dist/data/query/pg-core/primary-keys.d.ts +37 -0
- package/dist/data/query/pg-core/primary-keys.d.ts.map +1 -0
- package/dist/data/query/pg-core/primary-keys.js +38 -0
- package/dist/data/query/pg-core/primary-keys.js.map +1 -0
- package/dist/data/query/pg-core/query-builders/count.d.ts +30 -0
- package/dist/data/query/pg-core/query-builders/count.d.ts.map +1 -0
- package/dist/data/query/pg-core/query-builders/count.js +45 -0
- package/dist/data/query/pg-core/query-builders/count.js.map +1 -0
- package/dist/data/query/pg-core/query-builders/delete.d.ts +115 -0
- package/dist/data/query/pg-core/query-builders/delete.d.ts.map +1 -0
- package/dist/data/query/pg-core/query-builders/delete.js +103 -0
- package/dist/data/query/pg-core/query-builders/delete.js.map +1 -0
- package/dist/data/query/pg-core/query-builders/index.d.ts +8 -0
- package/dist/data/query/pg-core/query-builders/index.d.ts.map +1 -0
- package/dist/data/query/pg-core/query-builders/index.js +8 -0
- package/dist/data/query/pg-core/query-builders/index.js.map +1 -0
- package/dist/data/query/pg-core/query-builders/insert.d.ts +189 -0
- package/dist/data/query/pg-core/query-builders/insert.d.ts.map +1 -0
- package/dist/data/query/pg-core/query-builders/insert.js +201 -0
- package/dist/data/query/pg-core/query-builders/insert.js.map +1 -0
- package/dist/data/query/pg-core/query-builders/query-builder.d.ts +38 -0
- package/dist/data/query/pg-core/query-builders/query-builder.d.ts.map +1 -0
- package/dist/data/query/pg-core/query-builders/query-builder.js +83 -0
- package/dist/data/query/pg-core/query-builders/query-builder.js.map +1 -0
- package/dist/data/query/pg-core/query-builders/query.d.ts +56 -0
- package/dist/data/query/pg-core/query-builders/query.d.ts.map +1 -0
- package/dist/data/query/pg-core/query-builders/query.js +104 -0
- package/dist/data/query/pg-core/query-builders/query.js.map +1 -0
- package/dist/data/query/pg-core/query-builders/raw.d.ts +27 -0
- package/dist/data/query/pg-core/query-builders/raw.d.ts.map +1 -0
- package/dist/data/query/pg-core/query-builders/raw.js +34 -0
- package/dist/data/query/pg-core/query-builders/raw.js.map +1 -0
- package/dist/data/query/pg-core/query-builders/refresh-materialized-view.d.ts +38 -0
- package/dist/data/query/pg-core/query-builders/refresh-materialized-view.d.ts.map +1 -0
- package/dist/data/query/pg-core/query-builders/refresh-materialized-view.js +58 -0
- package/dist/data/query/pg-core/query-builders/refresh-materialized-view.js.map +1 -0
- package/dist/data/query/pg-core/query-builders/select.d.ts +811 -0
- package/dist/data/query/pg-core/query-builders/select.d.ts.map +1 -0
- package/dist/data/query/pg-core/query-builders/select.js +993 -0
- package/dist/data/query/pg-core/query-builders/select.js.map +1 -0
- package/dist/data/query/pg-core/query-builders/select.types.d.ts +141 -0
- package/dist/data/query/pg-core/query-builders/select.types.d.ts.map +1 -0
- package/dist/data/query/pg-core/query-builders/select.types.js +2 -0
- package/dist/data/query/pg-core/query-builders/select.types.js.map +1 -0
- package/dist/data/query/pg-core/query-builders/update.d.ts +183 -0
- package/dist/data/query/pg-core/query-builders/update.d.ts.map +1 -0
- package/dist/data/query/pg-core/query-builders/update.js +210 -0
- package/dist/data/query/pg-core/query-builders/update.js.map +1 -0
- package/dist/data/query/pg-core/roles.d.ts +22 -0
- package/dist/data/query/pg-core/roles.d.ts.map +1 -0
- package/dist/data/query/pg-core/roles.js +29 -0
- package/dist/data/query/pg-core/roles.js.map +1 -0
- package/dist/data/query/pg-core/schema.d.ts +23 -0
- package/dist/data/query/pg-core/schema.d.ts.map +1 -0
- package/dist/data/query/pg-core/schema.js +46 -0
- package/dist/data/query/pg-core/schema.js.map +1 -0
- package/dist/data/query/pg-core/sequence.d.ts +21 -0
- package/dist/data/query/pg-core/sequence.d.ts.map +1 -0
- package/dist/data/query/pg-core/sequence.js +23 -0
- package/dist/data/query/pg-core/sequence.js.map +1 -0
- package/dist/data/query/pg-core/session.d.ts +94 -0
- package/dist/data/query/pg-core/session.d.ts.map +1 -0
- package/dist/data/query/pg-core/session.js +169 -0
- package/dist/data/query/pg-core/session.js.map +1 -0
- package/dist/data/query/pg-core/subquery.d.ts +19 -0
- package/dist/data/query/pg-core/subquery.d.ts.map +1 -0
- package/dist/data/query/pg-core/subquery.js +2 -0
- package/dist/data/query/pg-core/subquery.js.map +1 -0
- package/dist/data/query/pg-core/table.d.ts +129 -0
- package/dist/data/query/pg-core/table.d.ts.map +1 -0
- package/dist/data/query/pg-core/table.js +62 -0
- package/dist/data/query/pg-core/table.js.map +1 -0
- package/dist/data/query/pg-core/unique-constraint.d.ts +34 -0
- package/dist/data/query/pg-core/unique-constraint.d.ts.map +1 -0
- package/dist/data/query/pg-core/unique-constraint.js +56 -0
- package/dist/data/query/pg-core/unique-constraint.js.map +1 -0
- package/dist/data/query/pg-core/utils/array.d.ts +4 -0
- package/dist/data/query/pg-core/utils/array.d.ts.map +1 -0
- package/dist/data/query/pg-core/utils/array.js +75 -0
- package/dist/data/query/pg-core/utils/array.js.map +1 -0
- package/dist/data/query/pg-core/utils/index.d.ts +2 -0
- package/dist/data/query/pg-core/utils/index.d.ts.map +1 -0
- package/dist/data/query/pg-core/utils/index.js +2 -0
- package/dist/data/query/pg-core/utils/index.js.map +1 -0
- package/dist/data/query/pg-core/utils.d.ts +56 -0
- package/dist/data/query/pg-core/utils.d.ts.map +1 -0
- package/dist/data/query/pg-core/utils.js +88 -0
- package/dist/data/query/pg-core/utils.js.map +1 -0
- package/dist/data/query/pg-core/view-base.d.ts +9 -0
- package/dist/data/query/pg-core/view-base.d.ts.map +1 -0
- package/dist/data/query/pg-core/view-base.js +6 -0
- package/dist/data/query/pg-core/view-base.js.map +1 -0
- package/dist/data/query/pg-core/view-common.d.ts +2 -0
- package/dist/data/query/pg-core/view-common.d.ts.map +1 -0
- package/dist/data/query/pg-core/view-common.js +2 -0
- package/dist/data/query/pg-core/view-common.js.map +1 -0
- package/dist/data/query/pg-core/view.d.ts +161 -0
- package/dist/data/query/pg-core/view.d.ts.map +1 -0
- package/dist/data/query/pg-core/view.js +243 -0
- package/dist/data/query/pg-core/view.js.map +1 -0
- package/dist/data/query/postgres-js/driver.d.ts +30 -0
- package/dist/data/query/postgres-js/driver.d.ts.map +1 -0
- package/dist/data/query/postgres-js/driver.js +77 -0
- package/dist/data/query/postgres-js/driver.js.map +1 -0
- package/dist/data/query/postgres-js/index.d.ts +3 -0
- package/dist/data/query/postgres-js/index.d.ts.map +1 -0
- package/dist/data/query/postgres-js/index.js +3 -0
- package/dist/data/query/postgres-js/index.js.map +1 -0
- package/dist/data/query/postgres-js/session.d.ts +67 -0
- package/dist/data/query/postgres-js/session.d.ts.map +1 -0
- package/dist/data/query/postgres-js/session.js +139 -0
- package/dist/data/query/postgres-js/session.js.map +1 -0
- package/dist/data/query/primary-key.d.ts +11 -0
- package/dist/data/query/primary-key.d.ts.map +1 -0
- package/dist/data/query/primary-key.js +11 -0
- package/dist/data/query/primary-key.js.map +1 -0
- package/dist/data/query/query-builders/query-builder.d.ts +14 -0
- package/dist/data/query/query-builders/query-builder.d.ts.map +1 -0
- package/dist/data/query/query-builders/query-builder.js +9 -0
- package/dist/data/query/query-builders/query-builder.js.map +1 -0
- package/dist/data/query/query-builders/select.types.d.ts +59 -0
- package/dist/data/query/query-builders/select.types.d.ts.map +1 -0
- package/dist/data/query/query-builders/select.types.js +2 -0
- package/dist/data/query/query-builders/select.types.js.map +1 -0
- package/dist/data/query/query-promise.d.ts +10 -0
- package/dist/data/query/query-promise.d.ts.map +1 -0
- package/dist/data/query/query-promise.js +21 -0
- package/dist/data/query/query-promise.js.map +1 -0
- package/dist/data/query/relations.d.ts +216 -0
- package/dist/data/query/relations.d.ts.map +1 -0
- package/dist/data/query/relations.js +257 -0
- package/dist/data/query/relations.js.map +1 -0
- package/dist/data/query/runnable-query.d.ts +11 -0
- package/dist/data/query/runnable-query.d.ts.map +1 -0
- package/dist/data/query/runnable-query.js +2 -0
- package/dist/data/query/runnable-query.js.map +1 -0
- package/dist/data/query/selection-proxy.d.ts +10 -0
- package/dist/data/query/selection-proxy.d.ts.map +1 -0
- package/dist/data/query/selection-proxy.js +62 -0
- package/dist/data/query/selection-proxy.js.map +1 -0
- package/dist/data/query/session.d.ts +8 -0
- package/dist/data/query/session.d.ts.map +1 -0
- package/dist/data/query/session.js +2 -0
- package/dist/data/query/session.js.map +1 -0
- package/dist/data/query/sql/expressions/conditions.d.ts +454 -0
- package/dist/data/query/sql/expressions/conditions.d.ts.map +1 -0
- package/dist/data/query/sql/expressions/conditions.js +393 -0
- package/dist/data/query/sql/expressions/conditions.js.map +1 -0
- package/dist/data/query/sql/expressions/index.d.ts +3 -0
- package/dist/data/query/sql/expressions/index.d.ts.map +1 -0
- package/dist/data/query/sql/expressions/index.js +3 -0
- package/dist/data/query/sql/expressions/index.js.map +1 -0
- package/dist/data/query/sql/expressions/select.d.ts +39 -0
- package/dist/data/query/sql/expressions/select.d.ts.map +1 -0
- package/dist/data/query/sql/expressions/select.js +42 -0
- package/dist/data/query/sql/expressions/select.js.map +1 -0
- package/dist/data/query/sql/functions/aggregate.d.ts +105 -0
- package/dist/data/query/sql/functions/aggregate.d.ts.map +1 -0
- package/dist/data/query/sql/functions/aggregate.js +122 -0
- package/dist/data/query/sql/functions/aggregate.js.map +1 -0
- package/dist/data/query/sql/functions/index.d.ts +3 -0
- package/dist/data/query/sql/functions/index.d.ts.map +1 -0
- package/dist/data/query/sql/functions/index.js +3 -0
- package/dist/data/query/sql/functions/index.js.map +1 -0
- package/dist/data/query/sql/functions/vector.d.ts +121 -0
- package/dist/data/query/sql/functions/vector.d.ts.map +1 -0
- package/dist/data/query/sql/functions/vector.js +152 -0
- package/dist/data/query/sql/functions/vector.js.map +1 -0
- package/dist/data/query/sql/index.d.ts +4 -0
- package/dist/data/query/sql/index.d.ts.map +1 -0
- package/dist/data/query/sql/index.js +4 -0
- package/dist/data/query/sql/index.js.map +1 -0
- package/dist/data/query/sql/sql.d.ts +254 -0
- package/dist/data/query/sql/sql.d.ts.map +1 -0
- package/dist/data/query/sql/sql.js +478 -0
- package/dist/data/query/sql/sql.js.map +1 -0
- package/dist/data/query/subquery.d.ts +21 -0
- package/dist/data/query/subquery.d.ts.map +1 -0
- package/dist/data/query/subquery.js +18 -0
- package/dist/data/query/subquery.js.map +1 -0
- package/dist/data/query/table.d.ts +142 -0
- package/dist/data/query/table.d.ts.map +1 -0
- package/dist/data/query/table.js +73 -0
- package/dist/data/query/table.js.map +1 -0
- package/dist/data/query/table.utils.d.ts +3 -0
- package/dist/data/query/table.utils.d.ts.map +1 -0
- package/dist/data/query/table.utils.js +3 -0
- package/dist/data/query/table.utils.js.map +1 -0
- package/dist/data/query/tracing-utils.d.ts +2 -0
- package/dist/data/query/tracing-utils.d.ts.map +1 -0
- package/dist/data/query/tracing-utils.js +4 -0
- package/dist/data/query/tracing-utils.js.map +1 -0
- package/dist/data/query/tracing.d.ts +10 -0
- package/dist/data/query/tracing.d.ts.map +1 -0
- package/dist/data/query/tracing.js +7 -0
- package/dist/data/query/tracing.js.map +1 -0
- package/dist/data/query/utils.d.ts +81 -0
- package/dist/data/query/utils.d.ts.map +1 -0
- package/dist/data/query/utils.js +193 -0
- package/dist/data/query/utils.js.map +1 -0
- package/dist/data/query/version.d.ts +3 -0
- package/dist/data/query/version.d.ts.map +1 -0
- package/dist/data/query/version.js +5 -0
- package/dist/data/query/version.js.map +1 -0
- package/dist/data/query/view-common.d.ts +2 -0
- package/dist/data/query/view-common.d.ts.map +1 -0
- package/dist/data/query/view-common.js +2 -0
- package/dist/data/query/view-common.js.map +1 -0
- package/dist/data/schema/namespace.d.ts +2 -2
- package/dist/data/temporal/columns.d.ts +4 -4
- package/dist/data/vector/types.d.ts +2 -2
- package/dist/db/index.d.ts +0 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/index.js +0 -1
- package/dist/db/index.js.map +1 -1
- package/dist/db/namespace.d.ts +0 -5
- package/dist/db/namespace.d.ts.map +1 -1
- package/dist/db/namespace.js +0 -5
- package/dist/db/namespace.js.map +1 -1
- package/dist/domain/define.d.ts.map +1 -1
- package/dist/domain/define.js.map +1 -1
- package/dist/domain/field.d.ts +2 -4
- package/dist/domain/field.d.ts.map +1 -1
- package/dist/domain/field.js.map +1 -1
- package/dist/domain/index.d.ts +1 -1
- package/dist/domain/index.d.ts.map +1 -1
- package/dist/domain/types.d.ts +9 -37
- package/dist/domain/types.d.ts.map +1 -1
- package/dist/drizzle/index.d.ts +3 -0
- package/dist/drizzle/index.d.ts.map +1 -0
- package/dist/drizzle/index.js +3 -0
- package/dist/drizzle/index.js.map +1 -0
- package/dist/log/namespace.d.ts +1 -1
- package/dist/logging/index.d.ts +1 -1
- package/dist/logging/index.d.ts.map +1 -1
- package/dist/logging/proxy.d.ts +2 -2
- package/dist/logging/proxy.d.ts.map +1 -1
- package/dist/logging/proxy.js +2 -9
- package/dist/logging/proxy.js.map +1 -1
- package/dist/logging/types.d.ts +0 -7
- package/dist/logging/types.d.ts.map +1 -1
- package/dist/resource/batch.d.ts +17 -0
- package/dist/resource/batch.d.ts.map +1 -0
- package/dist/resource/batch.js +47 -0
- package/dist/resource/batch.js.map +1 -0
- package/dist/resource/builder.d.ts +11 -0
- package/dist/resource/builder.d.ts.map +1 -0
- package/dist/resource/builder.js +12 -0
- package/dist/resource/builder.js.map +1 -0
- package/dist/resource/errors.d.ts +7 -0
- package/dist/resource/errors.d.ts.map +1 -0
- package/dist/resource/errors.js +9 -0
- package/dist/resource/errors.js.map +1 -0
- package/dist/resource/index.d.ts +9 -0
- package/dist/resource/index.d.ts.map +1 -0
- package/dist/resource/index.js +6 -0
- package/dist/resource/index.js.map +1 -0
- package/dist/resource/paginate.d.ts +13 -0
- package/dist/resource/paginate.d.ts.map +1 -0
- package/dist/resource/paginate.js +29 -0
- package/dist/resource/paginate.js.map +1 -0
- package/dist/resource/register.d.ts +16 -0
- package/dist/resource/register.d.ts.map +1 -0
- package/dist/resource/register.js +181 -0
- package/dist/resource/register.js.map +1 -0
- package/dist/resource/types.d.ts +69 -0
- package/dist/resource/types.d.ts.map +1 -0
- package/dist/resource/types.js +2 -0
- package/dist/resource/types.js.map +1 -0
- package/dist/surface/http.d.ts +2 -2
- package/dist/surface/http.d.ts.map +1 -1
- package/dist/surface/http.js +8 -25
- package/dist/surface/http.js.map +1 -1
- package/dist/surface/index.d.ts +1 -1
- package/dist/surface/index.d.ts.map +1 -1
- package/dist/surface/namespace.d.ts +1 -1
- package/dist/surface/namespace.d.ts.map +1 -1
- package/dist/surface/namespace.js +1 -1
- package/dist/surface/namespace.js.map +1 -1
- package/dist/surface/types.d.ts +0 -7
- package/dist/surface/types.d.ts.map +1 -1
- package/dist/temporal/definition-queries.d.ts +5 -5
- package/dist/temporal/definition-queries.d.ts.map +1 -1
- package/dist/temporal/definition-queries.js.map +1 -1
- package/dist/test/plugin.d.ts +2 -1
- package/dist/test/plugin.d.ts.map +1 -1
- package/dist/test/plugin.js +10 -2
- package/dist/test/plugin.js.map +1 -1
- package/dist/test/setup.d.ts.map +1 -1
- package/dist/test/setup.js +6 -4
- package/dist/test/setup.js.map +1 -1
- package/dist/test/vitest.d.ts +2 -2
- package/dist/test/vitest.d.ts.map +1 -1
- package/dist/test/vitest.js +6 -3
- package/dist/test/vitest.js.map +1 -1
- package/dist/trunk.d.ts +35 -0
- package/dist/trunk.d.ts.map +1 -0
- package/dist/trunk.js +102 -0
- package/dist/trunk.js.map +1 -0
- package/dist/validation/surface.d.ts +4 -0
- package/dist/validation/surface.d.ts.map +1 -0
- package/dist/validation/surface.js +55 -0
- package/dist/validation/surface.js.map +1 -0
- package/dist/vector/index.d.ts +1 -2
- package/dist/vector/index.d.ts.map +1 -1
- package/dist/vector/index.js +1 -1
- package/dist/vector/index.js.map +1 -1
- package/dist/vector/namespace.d.ts +4 -10
- package/dist/vector/namespace.d.ts.map +1 -1
- package/dist/vector/namespace.js +4 -10
- package/dist/vector/namespace.js.map +1 -1
- package/dist/vector/query.d.ts +2 -15
- package/dist/vector/query.d.ts.map +1 -1
- package/dist/vector/query.js +1 -39
- package/dist/vector/query.js.map +1 -1
- package/dist/webhook/verify.d.ts +3 -5
- package/dist/webhook/verify.d.ts.map +1 -1
- package/dist/webhook/verify.js +2 -5
- package/dist/webhook/verify.js.map +1 -1
- package/dist/workspace/affected.d.ts +17 -0
- package/dist/workspace/affected.d.ts.map +1 -0
- package/dist/workspace/affected.js +29 -0
- package/dist/workspace/affected.js.map +1 -0
- package/dist/workspace/changed-files.d.ts +7 -0
- package/dist/workspace/changed-files.d.ts.map +1 -0
- package/dist/workspace/changed-files.js +38 -0
- package/dist/workspace/changed-files.js.map +1 -0
- package/dist/workspace/dependency-graph.d.ts +8 -0
- package/dist/workspace/dependency-graph.d.ts.map +1 -0
- package/dist/workspace/dependency-graph.js +54 -0
- package/dist/workspace/dependency-graph.js.map +1 -0
- package/dist/workspace/generate.d.ts +1 -0
- package/dist/workspace/generate.d.ts.map +1 -1
- package/dist/workspace/generate.js +1 -0
- package/dist/workspace/generate.js.map +1 -1
- package/dist/workspace/index.d.ts +3 -0
- package/dist/workspace/index.d.ts.map +1 -1
- package/dist/workspace/index.js +3 -0
- package/dist/workspace/index.js.map +1 -1
- package/dist/workspace/sync.d.ts.map +1 -1
- package/dist/workspace/sync.js +1 -0
- package/dist/workspace/sync.js.map +1 -1
- package/package.json +33 -24
- package/dist/config/ts-register.d.ts +0 -2
- package/dist/config/ts-register.d.ts.map +0 -1
- package/dist/config/ts-register.js +0 -3
- package/dist/config/ts-register.js.map +0 -1
- package/dist/config/ts-resolve-hooks.d.ts +0 -10
- package/dist/config/ts-resolve-hooks.d.ts.map +0 -1
- package/dist/config/ts-resolve-hooks.js +0 -14
- package/dist/config/ts-resolve-hooks.js.map +0 -1
- package/dist/db/excluded.d.ts +0 -7
- package/dist/db/excluded.d.ts.map +0 -1
- package/dist/db/excluded.js +0 -11
- package/dist/db/excluded.js.map +0 -1
- package/dist/jsonb/index.d.ts +0 -2
- package/dist/jsonb/index.d.ts.map +0 -1
- package/dist/jsonb/index.js +0 -2
- package/dist/jsonb/index.js.map +0 -1
- package/dist/jsonb/namespace.d.ts +0 -11
- package/dist/jsonb/namespace.d.ts.map +0 -1
- package/dist/jsonb/namespace.js +0 -11
- package/dist/jsonb/namespace.js.map +0 -1
- package/dist/jsonb/query.d.ts +0 -5
- package/dist/jsonb/query.d.ts.map +0 -1
- package/dist/jsonb/query.js +0 -11
- package/dist/jsonb/query.js.map +0 -1
- package/dist/validation/doctrine.d.ts +0 -13
- package/dist/validation/doctrine.d.ts.map +0 -1
- package/dist/validation/doctrine.js +0 -115
- package/dist/validation/doctrine.js.map +0 -1
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
import { type AnyTable, type InferModelFromColumns, Table } from './table.js';
|
|
2
|
+
import { type AnyColumn, Column } from './column.js';
|
|
3
|
+
import { entityKind } from './entity.js';
|
|
4
|
+
import { and, asc, between, desc, exists, ilike, inArray, isNotNull, isNull, like, not, notBetween, notExists, notIlike, notInArray, notLike, or } from './sql/expressions/index.js';
|
|
5
|
+
import { type Placeholder, SQL, sql } from './sql/sql.js';
|
|
6
|
+
import type { Assume, ColumnsWithTable, Equal, Simplify, ValueOrArray } from './utils.js';
|
|
7
|
+
export declare abstract class Relation<TTableName extends string = string> {
|
|
8
|
+
readonly sourceTable: Table;
|
|
9
|
+
readonly referencedTable: AnyTable<{
|
|
10
|
+
name: TTableName;
|
|
11
|
+
}>;
|
|
12
|
+
readonly relationName: string | undefined;
|
|
13
|
+
static readonly [entityKind]: string;
|
|
14
|
+
readonly $brand: 'Relation';
|
|
15
|
+
readonly referencedTableName: TTableName;
|
|
16
|
+
fieldName: string;
|
|
17
|
+
constructor(sourceTable: Table, referencedTable: AnyTable<{
|
|
18
|
+
name: TTableName;
|
|
19
|
+
}>, relationName: string | undefined);
|
|
20
|
+
abstract withFieldName(fieldName: string): Relation<TTableName>;
|
|
21
|
+
}
|
|
22
|
+
export declare class Relations<TTableName extends string = string, TConfig extends Record<string, Relation> = Record<string, Relation>> {
|
|
23
|
+
readonly table: AnyTable<{
|
|
24
|
+
name: TTableName;
|
|
25
|
+
}>;
|
|
26
|
+
readonly config: (helpers: TableRelationsHelpers<TTableName>) => TConfig;
|
|
27
|
+
static readonly [entityKind]: string;
|
|
28
|
+
readonly $brand: 'Relations';
|
|
29
|
+
constructor(table: AnyTable<{
|
|
30
|
+
name: TTableName;
|
|
31
|
+
}>, config: (helpers: TableRelationsHelpers<TTableName>) => TConfig);
|
|
32
|
+
}
|
|
33
|
+
export declare class One<TTableName extends string = string, TIsNullable extends boolean = boolean> extends Relation<TTableName> {
|
|
34
|
+
readonly config: RelationConfig<TTableName, string, AnyColumn<{
|
|
35
|
+
tableName: TTableName;
|
|
36
|
+
}>[]> | undefined;
|
|
37
|
+
readonly isNullable: TIsNullable;
|
|
38
|
+
static readonly [entityKind]: string;
|
|
39
|
+
protected $relationBrand: 'One';
|
|
40
|
+
constructor(sourceTable: Table, referencedTable: AnyTable<{
|
|
41
|
+
name: TTableName;
|
|
42
|
+
}>, config: RelationConfig<TTableName, string, AnyColumn<{
|
|
43
|
+
tableName: TTableName;
|
|
44
|
+
}>[]> | undefined, isNullable: TIsNullable);
|
|
45
|
+
withFieldName(fieldName: string): One<TTableName>;
|
|
46
|
+
}
|
|
47
|
+
export declare class Many<TTableName extends string> extends Relation<TTableName> {
|
|
48
|
+
readonly config: {
|
|
49
|
+
relationName: string;
|
|
50
|
+
} | undefined;
|
|
51
|
+
static readonly [entityKind]: string;
|
|
52
|
+
protected $relationBrand: 'Many';
|
|
53
|
+
constructor(sourceTable: Table, referencedTable: AnyTable<{
|
|
54
|
+
name: TTableName;
|
|
55
|
+
}>, config: {
|
|
56
|
+
relationName: string;
|
|
57
|
+
} | undefined);
|
|
58
|
+
withFieldName(fieldName: string): Many<TTableName>;
|
|
59
|
+
}
|
|
60
|
+
export type TableRelationsKeysOnly<TSchema extends Record<string, unknown>, TTableName extends string, K extends keyof TSchema> = TSchema[K] extends Relations<TTableName> ? K : never;
|
|
61
|
+
export type ExtractTableRelationsFromSchema<TSchema extends Record<string, unknown>, TTableName extends string> = ExtractObjectValues<{
|
|
62
|
+
[K in keyof TSchema as TableRelationsKeysOnly<TSchema, TTableName, K>]: TSchema[K] extends Relations<TTableName, infer TConfig> ? TConfig : never;
|
|
63
|
+
}>;
|
|
64
|
+
export type ExtractObjectValues<T> = T[keyof T];
|
|
65
|
+
export type ExtractRelationsFromTableExtraConfigSchema<TConfig extends unknown[]> = ExtractObjectValues<{
|
|
66
|
+
[K in keyof TConfig as TConfig[K] extends Relations<any> ? K : never]: TConfig[K] extends Relations<infer TRelationConfig> ? TRelationConfig : never;
|
|
67
|
+
}>;
|
|
68
|
+
export declare function getOperators(): {
|
|
69
|
+
and: typeof and;
|
|
70
|
+
between: typeof between;
|
|
71
|
+
eq: import("./sql/expressions/conditions.js").BinaryOperator;
|
|
72
|
+
exists: typeof exists;
|
|
73
|
+
gt: import("./sql/expressions/conditions.js").BinaryOperator;
|
|
74
|
+
gte: import("./sql/expressions/conditions.js").BinaryOperator;
|
|
75
|
+
ilike: typeof ilike;
|
|
76
|
+
inArray: typeof inArray;
|
|
77
|
+
isNull: typeof isNull;
|
|
78
|
+
isNotNull: typeof isNotNull;
|
|
79
|
+
like: typeof like;
|
|
80
|
+
lt: import("./sql/expressions/conditions.js").BinaryOperator;
|
|
81
|
+
lte: import("./sql/expressions/conditions.js").BinaryOperator;
|
|
82
|
+
ne: import("./sql/expressions/conditions.js").BinaryOperator;
|
|
83
|
+
not: typeof not;
|
|
84
|
+
notBetween: typeof notBetween;
|
|
85
|
+
notExists: typeof notExists;
|
|
86
|
+
notLike: typeof notLike;
|
|
87
|
+
notIlike: typeof notIlike;
|
|
88
|
+
notInArray: typeof notInArray;
|
|
89
|
+
or: typeof or;
|
|
90
|
+
sql: typeof sql;
|
|
91
|
+
};
|
|
92
|
+
export type Operators = ReturnType<typeof getOperators>;
|
|
93
|
+
export declare function getOrderByOperators(): {
|
|
94
|
+
sql: typeof sql;
|
|
95
|
+
asc: typeof asc;
|
|
96
|
+
desc: typeof desc;
|
|
97
|
+
};
|
|
98
|
+
export type OrderByOperators = ReturnType<typeof getOrderByOperators>;
|
|
99
|
+
export type FindTableByDBName<TSchema extends TablesRelationalConfig, TTableName extends string> = ExtractObjectValues<{
|
|
100
|
+
[K in keyof TSchema as TSchema[K]['dbName'] extends TTableName ? K : never]: TSchema[K];
|
|
101
|
+
}>;
|
|
102
|
+
export type DBQueryConfig<TRelationType extends 'one' | 'many' = 'one' | 'many', TIsRoot extends boolean = boolean, TSchema extends TablesRelationalConfig = TablesRelationalConfig, TTableConfig extends TableRelationalConfig = TableRelationalConfig> = {
|
|
103
|
+
columns?: {
|
|
104
|
+
[K in keyof TTableConfig['columns']]?: boolean;
|
|
105
|
+
} | undefined;
|
|
106
|
+
with?: {
|
|
107
|
+
[K in keyof TTableConfig['relations']]?: true | DBQueryConfig<TTableConfig['relations'][K] extends One ? 'one' : 'many', false, TSchema, FindTableByDBName<TSchema, TTableConfig['relations'][K]['referencedTableName']>> | undefined;
|
|
108
|
+
} | undefined;
|
|
109
|
+
extras?: Record<string, SQL.Aliased> | ((fields: Simplify<[
|
|
110
|
+
TTableConfig['columns']
|
|
111
|
+
] extends [never] ? {} : TTableConfig['columns']>, operators: {
|
|
112
|
+
sql: Operators['sql'];
|
|
113
|
+
}) => Record<string, SQL.Aliased>) | undefined;
|
|
114
|
+
} & (TRelationType extends 'many' ? {
|
|
115
|
+
where?: SQL | undefined | ((fields: Simplify<[
|
|
116
|
+
TTableConfig['columns']
|
|
117
|
+
] extends [never] ? {} : TTableConfig['columns']>, operators: Operators) => SQL | undefined);
|
|
118
|
+
orderBy?: ValueOrArray<AnyColumn | SQL> | ((fields: Simplify<[
|
|
119
|
+
TTableConfig['columns']
|
|
120
|
+
] extends [never] ? {} : TTableConfig['columns']>, operators: OrderByOperators) => ValueOrArray<AnyColumn | SQL>) | undefined;
|
|
121
|
+
limit?: number | Placeholder | undefined;
|
|
122
|
+
} & (TIsRoot extends true ? {
|
|
123
|
+
offset?: number | Placeholder | undefined;
|
|
124
|
+
} : {}) : {});
|
|
125
|
+
export interface TableRelationalConfig {
|
|
126
|
+
tsName: string;
|
|
127
|
+
dbName: string;
|
|
128
|
+
columns: Record<string, Column>;
|
|
129
|
+
relations: Record<string, Relation>;
|
|
130
|
+
primaryKey: AnyColumn[];
|
|
131
|
+
schema?: string | undefined;
|
|
132
|
+
}
|
|
133
|
+
export type TablesRelationalConfig = Record<string, TableRelationalConfig>;
|
|
134
|
+
export interface RelationalSchemaConfig<TSchema extends TablesRelationalConfig> {
|
|
135
|
+
fullSchema: Record<string, unknown>;
|
|
136
|
+
schema: TSchema;
|
|
137
|
+
tableNamesMap: Record<string, string>;
|
|
138
|
+
}
|
|
139
|
+
export type ExtractTablesWithRelations<TSchema extends Record<string, unknown>> = {
|
|
140
|
+
[K in keyof TSchema as TSchema[K] extends Table ? K : never]: TSchema[K] extends Table ? {
|
|
141
|
+
tsName: K & string;
|
|
142
|
+
dbName: TSchema[K]['_']['name'];
|
|
143
|
+
columns: TSchema[K]['_']['columns'];
|
|
144
|
+
relations: ExtractTableRelationsFromSchema<TSchema, TSchema[K]['_']['name']>;
|
|
145
|
+
primaryKey: AnyColumn[];
|
|
146
|
+
} : never;
|
|
147
|
+
};
|
|
148
|
+
export type ReturnTypeOrValue<T> = T extends (...args: any[]) => infer R ? R : T;
|
|
149
|
+
export type BuildRelationResult<TSchema extends TablesRelationalConfig, TInclude, TRelations extends Record<string, Relation>> = {
|
|
150
|
+
[K in NonUndefinedKeysOnly<TInclude> & keyof TRelations]: TRelations[K] extends infer TRel extends Relation ? BuildQueryResult<TSchema, FindTableByDBName<TSchema, TRel['referencedTableName']>, Assume<TInclude[K], true | Record<string, unknown>>> extends infer TResult ? TRel extends One ? TResult | (Equal<TRel['isNullable'], false> extends true ? null : never) : TResult[] : never : never;
|
|
151
|
+
};
|
|
152
|
+
export type NonUndefinedKeysOnly<T> = ExtractObjectValues<{
|
|
153
|
+
[K in keyof T as T[K] extends undefined ? never : K]: K;
|
|
154
|
+
}> & keyof T;
|
|
155
|
+
export type BuildQueryResult<TSchema extends TablesRelationalConfig, TTableConfig extends TableRelationalConfig, TFullSelection extends true | Record<string, unknown>> = Equal<TFullSelection, true> extends true ? InferModelFromColumns<TTableConfig['columns']> : TFullSelection extends Record<string, unknown> ? Simplify<(TFullSelection['columns'] extends Record<string, unknown> ? InferModelFromColumns<{
|
|
156
|
+
[K in Equal<Exclude<TFullSelection['columns'][keyof TFullSelection['columns'] & keyof TTableConfig['columns']], undefined>, false> extends true ? Exclude<keyof TTableConfig['columns'], NonUndefinedKeysOnly<TFullSelection['columns']>> : {
|
|
157
|
+
[K in keyof TFullSelection['columns']]: Equal<TFullSelection['columns'][K], true> extends true ? K : never;
|
|
158
|
+
}[keyof TFullSelection['columns']] & keyof TTableConfig['columns']]: TTableConfig['columns'][K];
|
|
159
|
+
}> : InferModelFromColumns<TTableConfig['columns']>) & (TFullSelection['extras'] extends Record<string, unknown> | ((...args: any[]) => Record<string, unknown>) ? {
|
|
160
|
+
[K in NonUndefinedKeysOnly<ReturnTypeOrValue<TFullSelection['extras']>>]: Assume<ReturnTypeOrValue<TFullSelection['extras']>[K], SQL.Aliased>['_']['type'];
|
|
161
|
+
} : {}) & (TFullSelection['with'] extends Record<string, unknown> ? BuildRelationResult<TSchema, TFullSelection['with'], TTableConfig['relations']> : {})> : never;
|
|
162
|
+
export interface RelationConfig<TTableName extends string, TForeignTableName extends string, TColumns extends AnyColumn<{
|
|
163
|
+
tableName: TTableName;
|
|
164
|
+
}>[]> {
|
|
165
|
+
relationName?: string;
|
|
166
|
+
fields: TColumns;
|
|
167
|
+
references: ColumnsWithTable<TTableName, TForeignTableName, TColumns>;
|
|
168
|
+
}
|
|
169
|
+
export declare function extractTablesRelationalConfig<TTables extends TablesRelationalConfig>(schema: Record<string, unknown>, configHelpers: (table: Table) => any): {
|
|
170
|
+
tables: TTables;
|
|
171
|
+
tableNamesMap: Record<string, string>;
|
|
172
|
+
};
|
|
173
|
+
export declare function relations<TTableName extends string, TRelations extends Record<string, Relation<any>>>(table: AnyTable<{
|
|
174
|
+
name: TTableName;
|
|
175
|
+
}>, relations: (helpers: TableRelationsHelpers<TTableName>) => TRelations): Relations<TTableName, TRelations>;
|
|
176
|
+
export declare function createOne<TTableName extends string>(sourceTable: Table): <TForeignTable extends Table, TColumns extends [AnyColumn<{
|
|
177
|
+
tableName: TTableName;
|
|
178
|
+
}>, ...AnyColumn<{
|
|
179
|
+
tableName: TTableName;
|
|
180
|
+
}>[]]>(table: TForeignTable, config?: RelationConfig<TTableName, TForeignTable["_"]["name"], TColumns>) => One<TForeignTable["_"]["name"], Equal<TColumns[number]["_"]["notNull"], true>>;
|
|
181
|
+
export declare function createMany(sourceTable: Table): <TForeignTable extends Table>(referencedTable: TForeignTable, config?: {
|
|
182
|
+
relationName: string;
|
|
183
|
+
}) => Many<TForeignTable["_"]["name"]>;
|
|
184
|
+
export interface NormalizedRelation {
|
|
185
|
+
fields: AnyColumn[];
|
|
186
|
+
references: AnyColumn[];
|
|
187
|
+
}
|
|
188
|
+
export declare function normalizeRelation(schema: TablesRelationalConfig, tableNamesMap: Record<string, string>, relation: Relation): NormalizedRelation;
|
|
189
|
+
export declare function createTableRelationsHelpers<TTableName extends string>(sourceTable: AnyTable<{
|
|
190
|
+
name: TTableName;
|
|
191
|
+
}>): {
|
|
192
|
+
one: <TForeignTable extends Table, TColumns extends [AnyColumn<{
|
|
193
|
+
tableName: TTableName;
|
|
194
|
+
}>, ...AnyColumn<{
|
|
195
|
+
tableName: TTableName;
|
|
196
|
+
}>[]]>(table: TForeignTable, config?: RelationConfig<TTableName, TForeignTable["_"]["name"], TColumns> | undefined) => One<TForeignTable["_"]["name"], Equal<TColumns[number]["_"]["notNull"], true>>;
|
|
197
|
+
many: <TForeignTable extends Table>(referencedTable: TForeignTable, config?: {
|
|
198
|
+
relationName: string;
|
|
199
|
+
}) => Many<TForeignTable["_"]["name"]>;
|
|
200
|
+
};
|
|
201
|
+
export type TableRelationsHelpers<TTableName extends string> = ReturnType<typeof createTableRelationsHelpers<TTableName>>;
|
|
202
|
+
export interface BuildRelationalQueryResult<TTable extends Table = Table, TColumn extends Column = Column> {
|
|
203
|
+
tableTsKey: string;
|
|
204
|
+
selection: {
|
|
205
|
+
dbKey: string;
|
|
206
|
+
tsKey: string;
|
|
207
|
+
field: TColumn | SQL | SQL.Aliased;
|
|
208
|
+
relationTableTsKey: string | undefined;
|
|
209
|
+
isJson: boolean;
|
|
210
|
+
isExtra?: boolean;
|
|
211
|
+
selection: BuildRelationalQueryResult<TTable>['selection'];
|
|
212
|
+
}[];
|
|
213
|
+
sql: TTable | SQL;
|
|
214
|
+
}
|
|
215
|
+
export declare function mapRelationalRow(tablesConfig: TablesRelationalConfig, tableConfig: TableRelationalConfig, row: unknown[], buildQueryResultSelection: BuildRelationalQueryResult['selection'], mapColumnValue?: (value: unknown) => unknown): Record<string, unknown>;
|
|
216
|
+
//# sourceMappingURL=relations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../../src/data/query/relations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import { getTableUniqueName, Table } from './table.js';
|
|
2
|
+
import { Column } from './column.js';
|
|
3
|
+
import { entityKind, is } from './entity.js';
|
|
4
|
+
import { PrimaryKeyBuilder } from './pg-core/primary-keys.js';
|
|
5
|
+
import { and, asc, between, desc, eq, exists, gt, gte, ilike, inArray, isNotNull, isNull, like, lt, lte, ne, not, notBetween, notExists, notIlike, notInArray, notLike, or, } from './sql/expressions/index.js';
|
|
6
|
+
import { SQL, sql } from './sql/sql.js';
|
|
7
|
+
export class Relation {
|
|
8
|
+
sourceTable;
|
|
9
|
+
referencedTable;
|
|
10
|
+
relationName;
|
|
11
|
+
static [entityKind] = 'Relation';
|
|
12
|
+
referencedTableName;
|
|
13
|
+
fieldName;
|
|
14
|
+
constructor(sourceTable, referencedTable, relationName) {
|
|
15
|
+
this.sourceTable = sourceTable;
|
|
16
|
+
this.referencedTable = referencedTable;
|
|
17
|
+
this.relationName = relationName;
|
|
18
|
+
this.referencedTableName = referencedTable[Table.Symbol.Name];
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export class Relations {
|
|
22
|
+
table;
|
|
23
|
+
config;
|
|
24
|
+
static [entityKind] = 'Relations';
|
|
25
|
+
constructor(table, config) {
|
|
26
|
+
this.table = table;
|
|
27
|
+
this.config = config;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export class One extends Relation {
|
|
31
|
+
config;
|
|
32
|
+
isNullable;
|
|
33
|
+
static [entityKind] = 'One';
|
|
34
|
+
constructor(sourceTable, referencedTable, config, isNullable) {
|
|
35
|
+
super(sourceTable, referencedTable, config?.relationName);
|
|
36
|
+
this.config = config;
|
|
37
|
+
this.isNullable = isNullable;
|
|
38
|
+
}
|
|
39
|
+
withFieldName(fieldName) {
|
|
40
|
+
const relation = new One(this.sourceTable, this.referencedTable, this.config, this.isNullable);
|
|
41
|
+
relation.fieldName = fieldName;
|
|
42
|
+
return relation;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
export class Many extends Relation {
|
|
46
|
+
config;
|
|
47
|
+
static [entityKind] = 'Many';
|
|
48
|
+
constructor(sourceTable, referencedTable, config) {
|
|
49
|
+
super(sourceTable, referencedTable, config?.relationName);
|
|
50
|
+
this.config = config;
|
|
51
|
+
}
|
|
52
|
+
withFieldName(fieldName) {
|
|
53
|
+
const relation = new Many(this.sourceTable, this.referencedTable, this.config);
|
|
54
|
+
relation.fieldName = fieldName;
|
|
55
|
+
return relation;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export function getOperators() {
|
|
59
|
+
return {
|
|
60
|
+
and,
|
|
61
|
+
between,
|
|
62
|
+
eq,
|
|
63
|
+
exists,
|
|
64
|
+
gt,
|
|
65
|
+
gte,
|
|
66
|
+
ilike,
|
|
67
|
+
inArray,
|
|
68
|
+
isNull,
|
|
69
|
+
isNotNull,
|
|
70
|
+
like,
|
|
71
|
+
lt,
|
|
72
|
+
lte,
|
|
73
|
+
ne,
|
|
74
|
+
not,
|
|
75
|
+
notBetween,
|
|
76
|
+
notExists,
|
|
77
|
+
notLike,
|
|
78
|
+
notIlike,
|
|
79
|
+
notInArray,
|
|
80
|
+
or,
|
|
81
|
+
sql,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export function getOrderByOperators() {
|
|
85
|
+
return {
|
|
86
|
+
sql,
|
|
87
|
+
asc,
|
|
88
|
+
desc,
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
export function extractTablesRelationalConfig(schema, configHelpers) {
|
|
92
|
+
if (Object.keys(schema).length === 1
|
|
93
|
+
&& 'default' in schema
|
|
94
|
+
&& !is(schema['default'], Table)) {
|
|
95
|
+
schema = schema['default'];
|
|
96
|
+
}
|
|
97
|
+
// table DB name -> schema table key
|
|
98
|
+
const tableNamesMap = {};
|
|
99
|
+
// Table relations found before their tables - need to buffer them until we know the schema table key
|
|
100
|
+
const relationsBuffer = {};
|
|
101
|
+
const tablesConfig = {};
|
|
102
|
+
for (const [key, value] of Object.entries(schema)) {
|
|
103
|
+
if (is(value, Table)) {
|
|
104
|
+
const dbName = getTableUniqueName(value);
|
|
105
|
+
const bufferedRelations = relationsBuffer[dbName];
|
|
106
|
+
tableNamesMap[dbName] = key;
|
|
107
|
+
tablesConfig[key] = {
|
|
108
|
+
tsName: key,
|
|
109
|
+
dbName: value[Table.Symbol.Name],
|
|
110
|
+
schema: value[Table.Symbol.Schema],
|
|
111
|
+
columns: value[Table.Symbol.Columns],
|
|
112
|
+
relations: bufferedRelations?.relations ?? {},
|
|
113
|
+
primaryKey: bufferedRelations?.primaryKey ?? [],
|
|
114
|
+
};
|
|
115
|
+
// Fill in primary keys
|
|
116
|
+
for (const column of Object.values(value[Table.Symbol.Columns])) {
|
|
117
|
+
if (column.primary) {
|
|
118
|
+
tablesConfig[key].primaryKey.push(column);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
const extraConfig = value[Table.Symbol.ExtraConfigBuilder]?.(value[Table.Symbol.ExtraConfigColumns]);
|
|
122
|
+
if (extraConfig) {
|
|
123
|
+
for (const configEntry of Object.values(extraConfig)) {
|
|
124
|
+
if (is(configEntry, PrimaryKeyBuilder)) {
|
|
125
|
+
tablesConfig[key].primaryKey.push(...configEntry.columns);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else if (is(value, Relations)) {
|
|
131
|
+
const dbName = getTableUniqueName(value.table);
|
|
132
|
+
const tableName = tableNamesMap[dbName];
|
|
133
|
+
const relations = value.config(configHelpers(value.table));
|
|
134
|
+
let primaryKey;
|
|
135
|
+
for (const [relationName, relation] of Object.entries(relations)) {
|
|
136
|
+
if (tableName) {
|
|
137
|
+
const tableConfig = tablesConfig[tableName];
|
|
138
|
+
tableConfig.relations[relationName] = relation;
|
|
139
|
+
if (primaryKey) {
|
|
140
|
+
tableConfig.primaryKey.push(...primaryKey);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
else {
|
|
144
|
+
if (!(dbName in relationsBuffer)) {
|
|
145
|
+
relationsBuffer[dbName] = {
|
|
146
|
+
relations: {},
|
|
147
|
+
primaryKey,
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
relationsBuffer[dbName].relations[relationName] = relation;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return { tables: tablesConfig, tableNamesMap };
|
|
156
|
+
}
|
|
157
|
+
export function relations(table, relations) {
|
|
158
|
+
return new Relations(table, (helpers) => Object.fromEntries(Object.entries(relations(helpers)).map(([key, value]) => [
|
|
159
|
+
key,
|
|
160
|
+
value.withFieldName(key),
|
|
161
|
+
])));
|
|
162
|
+
}
|
|
163
|
+
export function createOne(sourceTable) {
|
|
164
|
+
return function one(table, config) {
|
|
165
|
+
return new One(sourceTable, table, config, (config?.fields.reduce((res, f) => res && f.notNull, true)
|
|
166
|
+
?? false));
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
export function createMany(sourceTable) {
|
|
170
|
+
return function many(referencedTable, config) {
|
|
171
|
+
return new Many(sourceTable, referencedTable, config);
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
export function normalizeRelation(schema, tableNamesMap, relation) {
|
|
175
|
+
if (is(relation, One) && relation.config) {
|
|
176
|
+
return {
|
|
177
|
+
fields: relation.config.fields,
|
|
178
|
+
references: relation.config.references,
|
|
179
|
+
};
|
|
180
|
+
}
|
|
181
|
+
const referencedTableTsName = tableNamesMap[getTableUniqueName(relation.referencedTable)];
|
|
182
|
+
if (!referencedTableTsName) {
|
|
183
|
+
throw new Error(`Table "${relation.referencedTable[Table.Symbol.Name]}" not found in schema`);
|
|
184
|
+
}
|
|
185
|
+
const referencedTableConfig = schema[referencedTableTsName];
|
|
186
|
+
if (!referencedTableConfig) {
|
|
187
|
+
throw new Error(`Table "${referencedTableTsName}" not found in schema`);
|
|
188
|
+
}
|
|
189
|
+
const sourceTable = relation.sourceTable;
|
|
190
|
+
const sourceTableTsName = tableNamesMap[getTableUniqueName(sourceTable)];
|
|
191
|
+
if (!sourceTableTsName) {
|
|
192
|
+
throw new Error(`Table "${sourceTable[Table.Symbol.Name]}" not found in schema`);
|
|
193
|
+
}
|
|
194
|
+
const reverseRelations = [];
|
|
195
|
+
for (const referencedTableRelation of Object.values(referencedTableConfig.relations)) {
|
|
196
|
+
if ((relation.relationName
|
|
197
|
+
&& relation !== referencedTableRelation
|
|
198
|
+
&& referencedTableRelation.relationName === relation.relationName)
|
|
199
|
+
|| (!relation.relationName
|
|
200
|
+
&& referencedTableRelation.referencedTable === relation.sourceTable)) {
|
|
201
|
+
reverseRelations.push(referencedTableRelation);
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
if (reverseRelations.length > 1) {
|
|
205
|
+
throw relation.relationName
|
|
206
|
+
? new Error(`There are multiple relations with name "${relation.relationName}" in table "${referencedTableTsName}"`)
|
|
207
|
+
: new Error(`There are multiple relations between "${referencedTableTsName}" and "${relation.sourceTable[Table.Symbol.Name]}". Please specify relation name`);
|
|
208
|
+
}
|
|
209
|
+
if (reverseRelations[0]
|
|
210
|
+
&& is(reverseRelations[0], One)
|
|
211
|
+
&& reverseRelations[0].config) {
|
|
212
|
+
return {
|
|
213
|
+
fields: reverseRelations[0].config.references,
|
|
214
|
+
references: reverseRelations[0].config.fields,
|
|
215
|
+
};
|
|
216
|
+
}
|
|
217
|
+
throw new Error(`There is not enough information to infer relation "${sourceTableTsName}.${relation.fieldName}"`);
|
|
218
|
+
}
|
|
219
|
+
export function createTableRelationsHelpers(sourceTable) {
|
|
220
|
+
return {
|
|
221
|
+
one: createOne(sourceTable),
|
|
222
|
+
many: createMany(sourceTable),
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
export function mapRelationalRow(tablesConfig, tableConfig, row, buildQueryResultSelection, mapColumnValue = (value) => value) {
|
|
226
|
+
const result = {};
|
|
227
|
+
for (const [selectionItemIndex, selectionItem,] of buildQueryResultSelection.entries()) {
|
|
228
|
+
if (selectionItem.isJson) {
|
|
229
|
+
const relation = tableConfig.relations[selectionItem.tsKey];
|
|
230
|
+
const rawSubRows = row[selectionItemIndex];
|
|
231
|
+
const subRows = typeof rawSubRows === 'string'
|
|
232
|
+
? JSON.parse(rawSubRows)
|
|
233
|
+
: rawSubRows;
|
|
234
|
+
result[selectionItem.tsKey] = is(relation, One)
|
|
235
|
+
? subRows
|
|
236
|
+
&& mapRelationalRow(tablesConfig, tablesConfig[selectionItem.relationTableTsKey], subRows, selectionItem.selection, mapColumnValue)
|
|
237
|
+
: subRows.map((subRow) => mapRelationalRow(tablesConfig, tablesConfig[selectionItem.relationTableTsKey], subRow, selectionItem.selection, mapColumnValue));
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
const value = mapColumnValue(row[selectionItemIndex]);
|
|
241
|
+
const field = selectionItem.field;
|
|
242
|
+
let decoder;
|
|
243
|
+
if (is(field, Column)) {
|
|
244
|
+
decoder = field;
|
|
245
|
+
}
|
|
246
|
+
else if (is(field, SQL)) {
|
|
247
|
+
decoder = field.decoder;
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
decoder = field.sql.decoder;
|
|
251
|
+
}
|
|
252
|
+
result[selectionItem.tsKey] = value === null ? null : decoder.mapFromDriverValue(value);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
return result;
|
|
256
|
+
}
|
|
257
|
+
//# sourceMappingURL=relations.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relations.js","sourceRoot":"","sources":["../../../src/data/query/relations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,kBAAkB,EAA8B,KAAK,EAAE,MAAM,YAAY,CAAC;AAClG,OAAO,EAAkB,MAAM,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EACN,GAAG,EACH,GAAG,EACH,OAAO,EACP,IAAI,EACJ,EAAE,EACF,MAAM,EACN,EAAE,EACF,GAAG,EACH,KAAK,EACL,OAAO,EACP,SAAS,EACT,MAAM,EACN,IAAI,EACJ,EAAE,EACF,GAAG,EACH,EAAE,EACF,GAAG,EACH,UAAU,EACV,SAAS,EACT,QAAQ,EACR,UAAU,EACV,OAAO,EACP,EAAE,GACF,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAoB,GAAG,EAAE,GAAG,EAAE,MAAM,cAAc,CAAC;AAG1D,MAAM,OAAgB,QAAQ;IAQnB;IACA;IACA;IATV,MAAM,CAAU,CAAC,UAAU,CAAC,GAAW,UAAU,CAAC;IAGzC,mBAAmB,CAAa;IACzC,SAAS,CAAU;IAEnB,YACU,WAAkB,EAClB,eAA+C,EAC/C,YAAgC;QAFhC,gBAAW,GAAX,WAAW,CAAO;QAClB,oBAAe,GAAf,eAAe,CAAgC;QAC/C,iBAAY,GAAZ,YAAY,CAAoB;QAEzC,IAAI,CAAC,mBAAmB,GAAG,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAe,CAAC;IAC7E,CAAC;;AAKF,MAAM,OAAO,SAAS;IASX;IACA;IANV,MAAM,CAAU,CAAC,UAAU,CAAC,GAAW,WAAW,CAAC;IAInD,YACU,KAAqC,EACrC,MAA+D;QAD/D,UAAK,GAAL,KAAK,CAAgC;QACrC,WAAM,GAAN,MAAM,CAAyD;IACtE,CAAC;;AAGL,MAAM,OAAO,GAGX,SAAQ,QAAoB;IAQnB;IAOA;IAdV,MAAM,CAAmB,CAAC,UAAU,CAAC,GAAW,KAAK,CAAC;IAItD,YACC,WAAkB,EAClB,eAA+C,EACtC,MAMG,EACH,UAAuB;QAEhC,KAAK,CAAC,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QATjD,WAAM,GAAN,MAAM,CAMH;QACH,eAAU,GAAV,UAAU,CAAa;IAGjC,CAAC;IAED,aAAa,CAAC,SAAiB;QAC9B,MAAM,QAAQ,GAAG,IAAI,GAAG,CACvB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,UAAU,CACf,CAAC;QACF,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;QAC/B,OAAO,QAAQ,CAAC;IACjB,CAAC;;AAGF,MAAM,OAAO,IAAgC,SAAQ,QAAoB;IAQ9D;IAPV,MAAM,CAAmB,CAAC,UAAU,CAAC,GAAW,MAAM,CAAC;IAIvD,YACC,WAAkB,EAClB,eAA+C,EACtC,MAA4C;QAErD,KAAK,CAAC,WAAW,EAAE,eAAe,EAAE,MAAM,EAAE,YAAY,CAAC,CAAC;QAFjD,WAAM,GAAN,MAAM,CAAsC;IAGtD,CAAC;IAED,aAAa,CAAC,SAAiB;QAC9B,MAAM,QAAQ,GAAG,IAAI,IAAI,CACxB,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,MAAM,CACX,CAAC;QACF,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;QAC/B,OAAO,QAAQ,CAAC;IACjB,CAAC;;AAsCF,MAAM,UAAU,YAAY;IAC3B,OAAO;QACN,GAAG;QACH,OAAO;QACP,EAAE;QACF,MAAM;QACN,EAAE;QACF,GAAG;QACH,KAAK;QACL,OAAO;QACP,MAAM;QACN,SAAS;QACT,IAAI;QACJ,EAAE;QACF,GAAG;QACH,EAAE;QACF,GAAG;QACH,UAAU;QACV,SAAS;QACT,OAAO;QACP,QAAQ;QACR,UAAU;QACV,EAAE;QACF,GAAG;KACH,CAAC;AACH,CAAC;AAID,MAAM,UAAU,mBAAmB;IAClC,OAAO;QACN,GAAG;QACH,GAAG;QACH,IAAI;KACJ,CAAC;AACH,CAAC;AA8ND,MAAM,UAAU,6BAA6B,CAG5C,MAA+B,EAC/B,aAAoC;IAEpC,IACC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC;WAC7B,SAAS,IAAI,MAAM;WACnB,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,EAC/B,CAAC;QACF,MAAM,GAAG,MAAM,CAAC,SAAS,CAA4B,CAAC;IACvD,CAAC;IAED,oCAAoC;IACpC,MAAM,aAAa,GAA2B,EAAE,CAAC;IACjD,qGAAqG;IACrG,MAAM,eAAe,GAGjB,EAAE,CAAC;IACP,MAAM,YAAY,GAA2B,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnD,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;YACtB,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YACzC,MAAM,iBAAiB,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;YAClD,aAAa,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;YAC5B,YAAY,CAAC,GAAG,CAAC,GAAG;gBACnB,MAAM,EAAE,GAAG;gBACX,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;gBAChC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;gBAClC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;gBACpC,SAAS,EAAE,iBAAiB,EAAE,SAAS,IAAI,EAAE;gBAC7C,UAAU,EAAE,iBAAiB,EAAE,UAAU,IAAI,EAAE;aAC/C,CAAC;YAEF,uBAAuB;YACvB,KACC,MAAM,MAAM,IAAI,MAAM,CAAC,MAAM,CAC3B,KAAe,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CACtC,EACA,CAAC;gBACF,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;oBACpB,YAAY,CAAC,GAAG,CAAE,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC5C,CAAC;YACF,CAAC;YAED,MAAM,WAAW,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAE,KAAe,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;YAChH,IAAI,WAAW,EAAE,CAAC;gBACjB,KAAK,MAAM,WAAW,IAAI,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC;oBACtD,IAAI,EAAE,CAAC,WAAW,EAAE,iBAAiB,CAAC,EAAE,CAAC;wBACxC,YAAY,CAAC,GAAG,CAAE,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC;oBAC5D,CAAC;gBACF,CAAC;YACF,CAAC;QACF,CAAC;aAAM,IAAI,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/C,MAAM,SAAS,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;YACxC,MAAM,SAAS,GAA6B,KAAK,CAAC,MAAM,CACvD,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAC1B,CAAC;YACF,IAAI,UAAmC,CAAC;YAExC,KAAK,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBAClE,IAAI,SAAS,EAAE,CAAC;oBACf,MAAM,WAAW,GAAG,YAAY,CAAC,SAAS,CAAE,CAAC;oBAC7C,WAAW,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;oBAC/C,IAAI,UAAU,EAAE,CAAC;wBAChB,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC;oBAC5C,CAAC;gBACF,CAAC;qBAAM,CAAC;oBACP,IAAI,CAAC,CAAC,MAAM,IAAI,eAAe,CAAC,EAAE,CAAC;wBAClC,eAAe,CAAC,MAAM,CAAC,GAAG;4BACzB,SAAS,EAAE,EAAE;4BACb,UAAU;yBACV,CAAC;oBACH,CAAC;oBACD,eAAe,CAAC,MAAM,CAAE,CAAC,SAAS,CAAC,YAAY,CAAC,GAAG,QAAQ,CAAC;gBAC7D,CAAC;YACF,CAAC;QACF,CAAC;IACF,CAAC;IAED,OAAO,EAAE,MAAM,EAAE,YAAuB,EAAE,aAAa,EAAE,CAAC;AAC3D,CAAC;AAED,MAAM,UAAU,SAAS,CAIxB,KAAqC,EACrC,SAAqE;IAErE,OAAO,IAAI,SAAS,CACnB,KAAK,EACL,CAAC,OAA0C,EAAE,EAAE,CAC9C,MAAM,CAAC,WAAW,CACjB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QACxD,GAAG;QACH,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC;KACxB,CAAC,CACY,CAChB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,SAAS,CAA4B,WAAkB;IACtE,OAAO,SAAS,GAAG,CAOlB,KAAoB,EACpB,MAAyE;QAKzE,OAAO,IAAI,GAAG,CACb,WAAW,EACX,KAAK,EACL,MAAM,EACN,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAU,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC;eAC/D,KAAK,CAAkD,CAC3D,CAAC;IACH,CAAC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,WAAkB;IAC5C,OAAO,SAAS,IAAI,CACnB,eAA8B,EAC9B,MAAiC;QAEjC,OAAO,IAAI,IAAI,CAAC,WAAW,EAAE,eAAe,EAAE,MAAM,CAAC,CAAC;IACvD,CAAC,CAAC;AACH,CAAC;AAOD,MAAM,UAAU,iBAAiB,CAChC,MAA8B,EAC9B,aAAqC,EACrC,QAAkB;IAElB,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QAC1C,OAAO;YACN,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM;YAC9B,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,UAAU;SACtC,CAAC;IACH,CAAC;IAED,MAAM,qBAAqB,GAAG,aAAa,CAAC,kBAAkB,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;IAC1F,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACd,UAAU,QAAQ,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAC5E,CAAC;IACH,CAAC;IAED,MAAM,qBAAqB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAC5D,IAAI,CAAC,qBAAqB,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,UAAU,qBAAqB,uBAAuB,CAAC,CAAC;IACzE,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;IACzC,MAAM,iBAAiB,GAAG,aAAa,CAAC,kBAAkB,CAAC,WAAW,CAAC,CAAC,CAAC;IACzE,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACxB,MAAM,IAAI,KAAK,CACd,UAAU,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,CAC/D,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAe,EAAE,CAAC;IACxC,KACC,MAAM,uBAAuB,IAAI,MAAM,CAAC,MAAM,CAC7C,qBAAqB,CAAC,SAAS,CAC/B,EACA,CAAC;QACF,IACC,CAAC,QAAQ,CAAC,YAAY;eAClB,QAAQ,KAAK,uBAAuB;eACpC,uBAAuB,CAAC,YAAY,KAAK,QAAQ,CAAC,YAAY,CAAC;eAChE,CAAC,CAAC,QAAQ,CAAC,YAAY;mBACtB,uBAAuB,CAAC,eAAe,KAAK,QAAQ,CAAC,WAAW,CAAC,EACpE,CAAC;YACF,gBAAgB,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAChD,CAAC;IACF,CAAC;IAED,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjC,MAAM,QAAQ,CAAC,YAAY;YAC1B,CAAC,CAAC,IAAI,KAAK,CACV,2CAA2C,QAAQ,CAAC,YAAY,eAAe,qBAAqB,GAAG,CACvG;YACD,CAAC,CAAC,IAAI,KAAK,CACV,yCAAyC,qBAAqB,UAC7D,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CACvC,iCAAiC,CACjC,CAAC;IACJ,CAAC;IAED,IACC,gBAAgB,CAAC,CAAC,CAAC;WAChB,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC;WAC5B,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,EAC5B,CAAC;QACF,OAAO;YACN,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU;YAC7C,UAAU,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM;SAC7C,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CACd,sDAAsD,iBAAiB,IAAI,QAAQ,CAAC,SAAS,GAAG,CAChG,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CAC1C,WAA2C;IAE3C,OAAO;QACN,GAAG,EAAE,SAAS,CAAa,WAAW,CAAC;QACvC,IAAI,EAAE,UAAU,CAAC,WAAW,CAAC;KAC7B,CAAC;AACH,CAAC;AAuBD,MAAM,UAAU,gBAAgB,CAC/B,YAAoC,EACpC,WAAkC,EAClC,GAAc,EACd,yBAAkE,EAClE,iBAA8C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;IAE9D,MAAM,MAAM,GAA4B,EAAE,CAAC;IAE3C,KACC,MAAM,CACL,kBAAkB,EAClB,aAAa,EACb,IAAI,yBAAyB,CAAC,OAAO,EAAE,EACvC,CAAC;QACF,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAE,CAAC;YAC7D,MAAM,UAAU,GAAG,GAAG,CAAC,kBAAkB,CAIhC,CAAC;YACV,MAAM,OAAO,GAAG,OAAO,UAAU,KAAK,QAAQ;gBAC7C,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAe;gBACvC,CAAC,CAAC,UAAU,CAAC;YACd,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,GAAG,CAAC;gBAC9C,CAAC,CAAC,OAAO;uBACL,gBAAgB,CAClB,YAAY,EACZ,YAAY,CAAC,aAAa,CAAC,kBAAmB,CAAE,EAChD,OAAO,EACP,aAAa,CAAC,SAAS,EACvB,cAAc,CACd;gBACF,CAAC,CAAE,OAAuB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CACzC,gBAAgB,CACf,YAAY,EACZ,YAAY,CAAC,aAAa,CAAC,kBAAmB,CAAE,EAChD,MAAM,EACN,aAAa,CAAC,SAAS,EACvB,cAAc,CACd,CACD,CAAC;QACJ,CAAC;aAAM,CAAC;YACP,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;YACtD,MAAM,KAAK,GAAG,aAAa,CAAC,KAAM,CAAC;YACnC,IAAI,OAAO,CAAC;YACZ,IAAI,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC;gBACvB,OAAO,GAAG,KAAK,CAAC;YACjB,CAAC;iBAAM,IAAI,EAAE,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;gBAC3B,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;YACzB,CAAC;iBAAM,CAAC;gBACP,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC;YAC7B,CAAC;YACD,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACzF,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { Dialect } from './column-builder.js';
|
|
2
|
+
import type { PreparedQuery } from './session.js';
|
|
3
|
+
export interface RunnableQuery<T, TDialect extends Dialect> {
|
|
4
|
+
readonly _: {
|
|
5
|
+
readonly dialect: TDialect;
|
|
6
|
+
readonly result: T;
|
|
7
|
+
};
|
|
8
|
+
/** @internal */
|
|
9
|
+
_prepare(): PreparedQuery;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=runnable-query.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runnable-query.d.ts","sourceRoot":"","sources":["../../../src/data/query/runnable-query.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,WAAW,aAAa,CAAC,CAAC,EAAE,QAAQ,SAAS,OAAO;IACzD,QAAQ,CAAC,CAAC,EAAE;QACX,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC;QAC3B,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;KACnB,CAAC;IAEF,gBAAgB;IAChB,QAAQ,IAAI,aAAa,CAAC;CAC1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runnable-query.js","sourceRoot":"","sources":["../../../src/data/query/runnable-query.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { entityKind } from './entity.js';
|
|
2
|
+
import { View } from './sql/sql.js';
|
|
3
|
+
import { Subquery } from './subquery.js';
|
|
4
|
+
export declare class SelectionProxyHandler<T extends Subquery | Record<string, unknown> | View> implements ProxyHandler<Subquery | Record<string, unknown> | View> {
|
|
5
|
+
static readonly [entityKind]: string;
|
|
6
|
+
private config;
|
|
7
|
+
constructor(config: SelectionProxyHandler<T>['config']);
|
|
8
|
+
get(subquery: T, prop: string | symbol): any;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=selection-proxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection-proxy.d.ts","sourceRoot":"","sources":["../../../src/data/query/selection-proxy.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAM,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAO,IAAI,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,qBAAa,qBAAqB,CAAC,CAAC,SAAS,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CACrF,YAAW,YAAY,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAElE,MAAM,CAAC,QAAQ,CAAC,CAAC,UAAU,CAAC,EAAE,MAAM,CAA2B;IAE/D,OAAO,CAAC,MAAM,CA4BZ;gBAEU,MAAM,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAItD,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,GAAG;CA0E5C"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { ColumnAliasProxyHandler, TableAliasProxyHandler } from './alias.js';
|
|
2
|
+
import { Column } from './column.js';
|
|
3
|
+
import { entityKind, is } from './entity.js';
|
|
4
|
+
import { SQL, View } from './sql/sql.js';
|
|
5
|
+
import { Subquery } from './subquery.js';
|
|
6
|
+
import { ViewBaseConfig } from './view-common.js';
|
|
7
|
+
export class SelectionProxyHandler {
|
|
8
|
+
static [entityKind] = 'SelectionProxyHandler';
|
|
9
|
+
config;
|
|
10
|
+
constructor(config) {
|
|
11
|
+
this.config = { ...config };
|
|
12
|
+
}
|
|
13
|
+
get(subquery, prop) {
|
|
14
|
+
if (prop === '_') {
|
|
15
|
+
return {
|
|
16
|
+
...subquery['_'],
|
|
17
|
+
selectedFields: new Proxy(subquery._.selectedFields, this),
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
if (prop === ViewBaseConfig) {
|
|
21
|
+
return {
|
|
22
|
+
...subquery[ViewBaseConfig],
|
|
23
|
+
selectedFields: new Proxy(subquery[ViewBaseConfig].selectedFields, this),
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
if (typeof prop === 'symbol') {
|
|
27
|
+
return subquery[prop];
|
|
28
|
+
}
|
|
29
|
+
const columns = is(subquery, Subquery)
|
|
30
|
+
? subquery._.selectedFields
|
|
31
|
+
: is(subquery, View)
|
|
32
|
+
? subquery[ViewBaseConfig].selectedFields
|
|
33
|
+
: subquery;
|
|
34
|
+
const value = columns[prop];
|
|
35
|
+
if (is(value, SQL.Aliased)) {
|
|
36
|
+
// Never return the underlying SQL expression for a field previously selected in a subquery
|
|
37
|
+
if (this.config.sqlAliasedBehavior === 'sql' && !value.isSelectionField) {
|
|
38
|
+
return value.sql;
|
|
39
|
+
}
|
|
40
|
+
const newValue = value.clone();
|
|
41
|
+
newValue.isSelectionField = true;
|
|
42
|
+
return newValue;
|
|
43
|
+
}
|
|
44
|
+
if (is(value, SQL)) {
|
|
45
|
+
if (this.config.sqlBehavior === 'sql') {
|
|
46
|
+
return value;
|
|
47
|
+
}
|
|
48
|
+
throw new Error(`You tried to reference "${prop}" field from a subquery, which is a raw SQL field, but it doesn't have an alias declared. Please add an alias to the field using ".as('alias')" method.`);
|
|
49
|
+
}
|
|
50
|
+
if (is(value, Column)) {
|
|
51
|
+
if (this.config.alias) {
|
|
52
|
+
return new Proxy(value, new ColumnAliasProxyHandler(new Proxy(value.table, new TableAliasProxyHandler(this.config.alias, this.config.replaceOriginalName ?? false))));
|
|
53
|
+
}
|
|
54
|
+
return value;
|
|
55
|
+
}
|
|
56
|
+
if (typeof value !== 'object' || value === null) {
|
|
57
|
+
return value;
|
|
58
|
+
}
|
|
59
|
+
return new Proxy(value, new SelectionProxyHandler(this.config));
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=selection-proxy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selection-proxy.js","sourceRoot":"","sources":["../../../src/data/query/selection-proxy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/data/query/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,aAAa;IAC7B,QAAQ,IAAI,KAAK,CAAC;IAClB,SAAS,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC7D,gBAAgB;IAChB,qBAAqB,IAAI,OAAO,CAAC;CACjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/data/query/session.ts"],"names":[],"mappings":""}
|