drizzle-orm 1.0.0-beta.8-734e789 → 1.0.0-beta.8-c55bf0f
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/aws-data-api/pg/driver.cjs +2 -2
- package/aws-data-api/pg/driver.cjs.map +1 -1
- package/aws-data-api/pg/driver.d.cts +4 -4
- package/aws-data-api/pg/driver.d.ts +4 -4
- package/aws-data-api/pg/driver.js +2 -2
- package/aws-data-api/pg/driver.js.map +1 -1
- package/aws-data-api/pg/migrator.cjs +2 -1
- package/aws-data-api/pg/migrator.cjs.map +1 -1
- package/aws-data-api/pg/migrator.js +2 -1
- package/aws-data-api/pg/migrator.js.map +1 -1
- package/aws-data-api/pg/session.cjs +4 -12
- package/aws-data-api/pg/session.cjs.map +1 -1
- package/aws-data-api/pg/session.d.cts +7 -6
- package/aws-data-api/pg/session.d.ts +7 -6
- package/aws-data-api/pg/session.js +4 -16
- package/aws-data-api/pg/session.js.map +1 -1
- package/bun-sql/postgres/driver.cjs +2 -2
- package/bun-sql/postgres/driver.cjs.map +1 -1
- package/bun-sql/postgres/driver.d.cts +2 -2
- package/bun-sql/postgres/driver.d.ts +2 -2
- package/bun-sql/postgres/driver.js +2 -2
- package/bun-sql/postgres/driver.js.map +1 -1
- package/bun-sql/postgres/migrator.cjs +2 -1
- package/bun-sql/postgres/migrator.cjs.map +1 -1
- package/bun-sql/postgres/migrator.js +2 -1
- package/bun-sql/postgres/migrator.js.map +1 -1
- package/bun-sql/postgres/session.cjs +4 -5
- package/bun-sql/postgres/session.cjs.map +1 -1
- package/bun-sql/postgres/session.d.cts +6 -7
- package/bun-sql/postgres/session.d.ts +6 -7
- package/bun-sql/postgres/session.js +4 -5
- package/bun-sql/postgres/session.js.map +1 -1
- package/cache/core/cache-effect.cjs +50 -0
- package/cache/core/cache-effect.cjs.map +1 -0
- package/cache/core/cache-effect.d.cts +14 -0
- package/cache/core/cache-effect.d.ts +14 -0
- package/cache/core/cache-effect.js +25 -0
- package/cache/core/cache-effect.js.map +1 -0
- package/cache/core/cache.cjs +26 -3
- package/cache/core/cache.cjs.map +1 -1
- package/cache/core/cache.d.cts +27 -2
- package/cache/core/cache.d.ts +27 -2
- package/cache/core/cache.js +24 -2
- package/cache/core/cache.js.map +1 -1
- package/cache/core/types.cjs.map +1 -1
- package/cache/core/types.d.cts +1 -1
- package/cache/core/types.d.ts +1 -1
- package/cockroach-core/query-builders/refresh-materialized-view.cjs.map +1 -1
- package/cockroach-core/query-builders/refresh-materialized-view.js.map +1 -1
- package/effect-core/query-effect.cjs +77 -0
- package/effect-core/query-effect.cjs.map +1 -0
- package/effect-core/query-effect.d.cts +39 -0
- package/effect-core/query-effect.d.ts +39 -0
- package/effect-core/query-effect.js +52 -0
- package/effect-core/query-effect.js.map +1 -0
- package/effect-postgres/driver.cjs +93 -0
- package/effect-postgres/driver.cjs.map +1 -0
- package/effect-postgres/driver.d.cts +15 -0
- package/effect-postgres/driver.d.ts +15 -0
- package/effect-postgres/driver.js +58 -0
- package/effect-postgres/driver.js.map +1 -0
- package/effect-postgres/index.cjs +25 -0
- package/effect-postgres/index.cjs.map +1 -0
- package/effect-postgres/index.d.cts +2 -0
- package/effect-postgres/index.d.ts +2 -0
- package/effect-postgres/index.js +3 -0
- package/effect-postgres/index.js.map +1 -0
- package/effect-postgres/migrator.cjs +34 -0
- package/effect-postgres/migrator.cjs.map +1 -0
- package/effect-postgres/migrator.d.cts +4 -0
- package/effect-postgres/migrator.d.ts +4 -0
- package/effect-postgres/migrator.js +10 -0
- package/effect-postgres/migrator.js.map +1 -0
- package/effect-postgres/session.cjs +215 -0
- package/effect-postgres/session.cjs.map +1 -0
- package/effect-postgres/session.d.cts +62 -0
- package/effect-postgres/session.d.ts +62 -0
- package/effect-postgres/session.js +189 -0
- package/effect-postgres/session.js.map +1 -0
- package/gel-core/query-builders/select.cjs +1 -1
- package/gel-core/query-builders/select.cjs.map +1 -1
- package/gel-core/query-builders/select.js +1 -1
- package/gel-core/query-builders/select.js.map +1 -1
- package/gel-core/session.cjs +3 -3
- package/gel-core/session.cjs.map +1 -1
- package/gel-core/session.js +3 -3
- package/gel-core/session.js.map +1 -1
- package/mysql-core/query-builders/select.cjs +1 -1
- package/mysql-core/query-builders/select.cjs.map +1 -1
- package/mysql-core/query-builders/select.js +1 -1
- package/mysql-core/query-builders/select.js.map +1 -1
- package/mysql-core/session.cjs +3 -3
- package/mysql-core/session.cjs.map +1 -1
- package/mysql-core/session.js +3 -3
- package/mysql-core/session.js.map +1 -1
- package/neon-http/driver.cjs +9 -3
- package/neon-http/driver.cjs.map +1 -1
- package/neon-http/driver.d.cts +2 -2
- package/neon-http/driver.d.ts +2 -2
- package/neon-http/driver.js +9 -3
- package/neon-http/driver.js.map +1 -1
- package/neon-http/session.cjs +4 -12
- package/neon-http/session.cjs.map +1 -1
- package/neon-http/session.d.cts +7 -9
- package/neon-http/session.d.ts +7 -9
- package/neon-http/session.js +4 -12
- package/neon-http/session.js.map +1 -1
- package/neon-serverless/driver.cjs +2 -2
- package/neon-serverless/driver.cjs.map +1 -1
- package/neon-serverless/driver.d.cts +2 -2
- package/neon-serverless/driver.d.ts +2 -2
- package/neon-serverless/driver.js +2 -2
- package/neon-serverless/driver.js.map +1 -1
- package/neon-serverless/migrator.cjs +2 -1
- package/neon-serverless/migrator.cjs.map +1 -1
- package/neon-serverless/migrator.js +2 -1
- package/neon-serverless/migrator.js.map +1 -1
- package/neon-serverless/session.cjs +4 -11
- package/neon-serverless/session.cjs.map +1 -1
- package/neon-serverless/session.d.cts +7 -9
- package/neon-serverless/session.d.ts +7 -9
- package/neon-serverless/session.js +4 -11
- package/neon-serverless/session.js.map +1 -1
- package/node-postgres/driver.cjs +6 -20
- package/node-postgres/driver.cjs.map +1 -1
- package/node-postgres/driver.d.cts +2 -13
- package/node-postgres/driver.d.ts +2 -13
- package/node-postgres/driver.js +6 -19
- package/node-postgres/driver.js.map +1 -1
- package/node-postgres/migrator.cjs +2 -1
- package/node-postgres/migrator.cjs.map +1 -1
- package/node-postgres/migrator.js +2 -1
- package/node-postgres/migrator.js.map +1 -1
- package/node-postgres/session.cjs +5 -11
- package/node-postgres/session.cjs.map +1 -1
- package/node-postgres/session.d.cts +10 -10
- package/node-postgres/session.d.ts +10 -10
- package/node-postgres/session.js +5 -11
- package/node-postgres/session.js.map +1 -1
- package/package.json +397 -61
- package/pg-core/async/count.cjs +61 -0
- package/pg-core/async/count.cjs.map +1 -0
- package/pg-core/async/count.d.cts +21 -0
- package/pg-core/async/count.d.ts +21 -0
- package/pg-core/async/count.js +37 -0
- package/pg-core/async/count.js.map +1 -0
- package/pg-core/{db.cjs → async/db.cjs} +40 -34
- package/pg-core/async/db.cjs.map +1 -0
- package/pg-core/{db.d.cts → async/db.d.cts} +55 -50
- package/pg-core/{db.d.ts → async/db.d.ts} +55 -50
- package/pg-core/{db.js → async/db.js} +39 -39
- package/pg-core/async/db.js.map +1 -0
- package/pg-core/async/delete.cjs +62 -0
- package/pg-core/async/delete.cjs.map +1 -0
- package/pg-core/async/delete.d.cts +26 -0
- package/pg-core/async/delete.d.ts +26 -0
- package/pg-core/async/delete.js +38 -0
- package/pg-core/async/delete.js.map +1 -0
- package/pg-core/async/index.cjs +41 -0
- package/pg-core/async/index.cjs.map +1 -0
- package/pg-core/async/index.d.cts +10 -0
- package/pg-core/async/index.d.ts +10 -0
- package/pg-core/async/index.js +11 -0
- package/pg-core/async/index.js.map +1 -0
- package/pg-core/async/insert.cjs +62 -0
- package/pg-core/async/insert.cjs.map +1 -0
- package/pg-core/async/insert.d.cts +26 -0
- package/pg-core/async/insert.d.ts +26 -0
- package/pg-core/async/insert.js +38 -0
- package/pg-core/async/insert.js.map +1 -0
- package/pg-core/async/query.cjs +71 -0
- package/pg-core/async/query.cjs.map +1 -0
- package/pg-core/async/query.d.cts +20 -0
- package/pg-core/async/query.d.ts +20 -0
- package/pg-core/async/query.js +47 -0
- package/pg-core/async/query.js.map +1 -0
- package/pg-core/async/raw.cjs +43 -0
- package/pg-core/async/raw.cjs.map +1 -0
- package/pg-core/async/raw.d.cts +18 -0
- package/pg-core/async/raw.d.ts +18 -0
- package/pg-core/async/raw.js +19 -0
- package/pg-core/async/raw.js.map +1 -0
- package/pg-core/async/refresh-materialized-view.cjs +60 -0
- package/pg-core/async/refresh-materialized-view.cjs.map +1 -0
- package/pg-core/async/refresh-materialized-view.d.cts +16 -0
- package/pg-core/async/refresh-materialized-view.d.ts +16 -0
- package/pg-core/async/refresh-materialized-view.js +36 -0
- package/pg-core/async/refresh-materialized-view.js.map +1 -0
- package/pg-core/async/select.cjs +73 -0
- package/pg-core/async/select.cjs.map +1 -0
- package/pg-core/async/select.d.cts +33 -0
- package/pg-core/async/select.d.ts +33 -0
- package/pg-core/async/select.js +49 -0
- package/pg-core/async/select.js.map +1 -0
- package/pg-core/async/session.cjs +209 -0
- package/pg-core/async/session.cjs.map +1 -0
- package/pg-core/async/session.d.cts +54 -0
- package/pg-core/async/session.d.ts +54 -0
- package/pg-core/async/session.js +182 -0
- package/pg-core/async/session.js.map +1 -0
- package/pg-core/async/update.cjs +52 -0
- package/pg-core/async/update.cjs.map +1 -0
- package/pg-core/async/update.d.cts +40 -0
- package/pg-core/async/update.d.ts +40 -0
- package/pg-core/async/update.js +28 -0
- package/pg-core/async/update.js.map +1 -0
- package/pg-core/dialect.cjs +0 -43
- package/pg-core/dialect.cjs.map +1 -1
- package/pg-core/dialect.d.cts +0 -3
- package/pg-core/dialect.d.ts +0 -3
- package/pg-core/dialect.js +0 -43
- package/pg-core/dialect.js.map +1 -1
- package/pg-core/effect/count.cjs +53 -0
- package/pg-core/effect/count.cjs.map +1 -0
- package/pg-core/effect/count.d.cts +23 -0
- package/pg-core/effect/count.d.ts +23 -0
- package/pg-core/effect/count.js +29 -0
- package/pg-core/effect/count.js.map +1 -0
- package/pg-core/effect/db.cjs +361 -0
- package/pg-core/effect/db.cjs.map +1 -0
- package/pg-core/effect/db.d.cts +296 -0
- package/pg-core/effect/db.d.ts +296 -0
- package/pg-core/effect/db.js +336 -0
- package/pg-core/effect/db.js.map +1 -0
- package/pg-core/effect/delete.cjs +54 -0
- package/pg-core/effect/delete.cjs.map +1 -0
- package/pg-core/effect/delete.d.cts +26 -0
- package/pg-core/effect/delete.d.ts +26 -0
- package/pg-core/effect/delete.js +30 -0
- package/pg-core/effect/delete.js.map +1 -0
- package/pg-core/effect/index.cjs +41 -0
- package/pg-core/effect/index.cjs.map +1 -0
- package/pg-core/effect/index.d.cts +10 -0
- package/pg-core/effect/index.d.ts +10 -0
- package/pg-core/effect/index.js +11 -0
- package/pg-core/effect/index.js.map +1 -0
- package/pg-core/effect/insert.cjs +52 -0
- package/pg-core/effect/insert.cjs.map +1 -0
- package/pg-core/effect/insert.d.cts +26 -0
- package/pg-core/effect/insert.d.ts +26 -0
- package/pg-core/effect/insert.js +28 -0
- package/pg-core/effect/insert.js.map +1 -0
- package/pg-core/effect/query.cjs +61 -0
- package/pg-core/effect/query.cjs.map +1 -0
- package/pg-core/effect/query.d.cts +20 -0
- package/pg-core/effect/query.d.ts +20 -0
- package/pg-core/effect/query.js +37 -0
- package/pg-core/effect/query.js.map +1 -0
- package/pg-core/effect/raw.cjs +42 -0
- package/pg-core/effect/raw.cjs.map +1 -0
- package/pg-core/effect/raw.d.cts +20 -0
- package/pg-core/effect/raw.d.ts +20 -0
- package/pg-core/effect/raw.js +18 -0
- package/pg-core/effect/raw.js.map +1 -0
- package/pg-core/effect/refresh-materialized-view.cjs +50 -0
- package/pg-core/effect/refresh-materialized-view.cjs.map +1 -0
- package/pg-core/effect/refresh-materialized-view.d.cts +16 -0
- package/pg-core/effect/refresh-materialized-view.d.ts +16 -0
- package/pg-core/effect/refresh-materialized-view.js +26 -0
- package/pg-core/effect/refresh-materialized-view.js.map +1 -0
- package/pg-core/effect/select.cjs +61 -0
- package/pg-core/effect/select.cjs.map +1 -0
- package/pg-core/effect/select.d.cts +33 -0
- package/pg-core/effect/select.d.ts +33 -0
- package/pg-core/effect/select.js +37 -0
- package/pg-core/effect/select.js.map +1 -0
- package/pg-core/effect/session.cjs +186 -0
- package/pg-core/effect/session.cjs.map +1 -0
- package/pg-core/effect/session.d.cts +57 -0
- package/pg-core/effect/session.d.ts +57 -0
- package/pg-core/effect/session.js +162 -0
- package/pg-core/effect/session.js.map +1 -0
- package/pg-core/effect/update.cjs +51 -0
- package/pg-core/effect/update.cjs.map +1 -0
- package/pg-core/effect/update.d.cts +40 -0
- package/pg-core/effect/update.d.ts +40 -0
- package/pg-core/effect/update.js +27 -0
- package/pg-core/effect/update.js.map +1 -0
- package/pg-core/index.cjs +0 -2
- package/pg-core/index.cjs.map +1 -1
- package/pg-core/index.d.cts +0 -1
- package/pg-core/index.d.ts +0 -1
- package/pg-core/index.js +0 -1
- package/pg-core/index.js.map +1 -1
- package/pg-core/query-builders/_query.cjs.map +1 -1
- package/pg-core/query-builders/_query.d.cts +5 -4
- package/pg-core/query-builders/_query.d.ts +5 -4
- package/pg-core/query-builders/_query.js.map +1 -1
- package/pg-core/query-builders/count.cjs +18 -44
- package/pg-core/query-builders/count.cjs.map +1 -1
- package/pg-core/query-builders/count.d.cts +9 -18
- package/pg-core/query-builders/count.d.ts +9 -18
- package/pg-core/query-builders/count.js +17 -43
- package/pg-core/query-builders/count.js.map +1 -1
- package/pg-core/query-builders/delete.cjs +1 -28
- package/pg-core/query-builders/delete.cjs.map +1 -1
- package/pg-core/query-builders/delete.d.cts +34 -20
- package/pg-core/query-builders/delete.d.ts +34 -20
- package/pg-core/query-builders/delete.js +1 -28
- package/pg-core/query-builders/delete.js.map +1 -1
- package/pg-core/query-builders/insert.cjs +16 -33
- package/pg-core/query-builders/insert.cjs.map +1 -1
- package/pg-core/query-builders/insert.d.cts +50 -32
- package/pg-core/query-builders/insert.d.ts +50 -32
- package/pg-core/query-builders/insert.js +16 -33
- package/pg-core/query-builders/insert.js.map +1 -1
- package/pg-core/query-builders/query-builder.cjs +6 -6
- package/pg-core/query-builders/query-builder.cjs.map +1 -1
- package/pg-core/query-builders/query-builder.d.cts +9 -9
- package/pg-core/query-builders/query-builder.d.ts +9 -9
- package/pg-core/query-builders/query-builder.js +7 -7
- package/pg-core/query-builders/query-builder.js.map +1 -1
- package/pg-core/query-builders/query.cjs +5 -40
- package/pg-core/query-builders/query.cjs.map +1 -1
- package/pg-core/query-builders/query.d.cts +37 -25
- package/pg-core/query-builders/query.d.ts +37 -25
- package/pg-core/query-builders/query.js +5 -42
- package/pg-core/query-builders/query.js.map +1 -1
- package/pg-core/query-builders/raw.cjs +2 -8
- package/pg-core/query-builders/raw.cjs.map +1 -1
- package/pg-core/query-builders/raw.d.cts +6 -10
- package/pg-core/query-builders/raw.d.ts +6 -10
- package/pg-core/query-builders/raw.js +2 -8
- package/pg-core/query-builders/raw.js.map +1 -1
- package/pg-core/query-builders/refresh-materialized-view.cjs +1 -24
- package/pg-core/query-builders/refresh-materialized-view.cjs.map +1 -1
- package/pg-core/query-builders/refresh-materialized-view.d.cts +10 -15
- package/pg-core/query-builders/refresh-materialized-view.d.ts +10 -15
- package/pg-core/query-builders/refresh-materialized-view.js +1 -24
- package/pg-core/query-builders/refresh-materialized-view.js.map +1 -1
- package/pg-core/query-builders/select.cjs +32 -105
- package/pg-core/query-builders/select.cjs.map +1 -1
- package/pg-core/query-builders/select.d.cts +25 -46
- package/pg-core/query-builders/select.d.ts +25 -46
- package/pg-core/query-builders/select.js +33 -106
- package/pg-core/query-builders/select.js.map +1 -1
- package/pg-core/query-builders/select.types.cjs.map +1 -1
- package/pg-core/query-builders/select.types.d.cts +11 -22
- package/pg-core/query-builders/select.types.d.ts +11 -22
- package/pg-core/query-builders/update.cjs +11 -28
- package/pg-core/query-builders/update.cjs.map +1 -1
- package/pg-core/query-builders/update.d.cts +56 -34
- package/pg-core/query-builders/update.d.ts +56 -34
- package/pg-core/query-builders/update.js +11 -28
- package/pg-core/query-builders/update.js.map +1 -1
- package/pg-core/session.cjs +7 -153
- package/pg-core/session.cjs.map +1 -1
- package/pg-core/session.d.cts +10 -42
- package/pg-core/session.d.ts +10 -42
- package/pg-core/session.js +6 -151
- package/pg-core/session.js.map +1 -1
- package/pg-proxy/driver.cjs +2 -2
- package/pg-proxy/driver.cjs.map +1 -1
- package/pg-proxy/driver.d.cts +2 -2
- package/pg-proxy/driver.d.ts +2 -2
- package/pg-proxy/driver.js +2 -2
- package/pg-proxy/driver.js.map +1 -1
- package/pg-proxy/session.cjs +4 -5
- package/pg-proxy/session.cjs.map +1 -1
- package/pg-proxy/session.d.cts +5 -6
- package/pg-proxy/session.d.ts +5 -6
- package/pg-proxy/session.js +4 -5
- package/pg-proxy/session.js.map +1 -1
- package/pglite/driver.cjs +2 -2
- package/pglite/driver.cjs.map +1 -1
- package/pglite/driver.d.cts +2 -2
- package/pglite/driver.d.ts +2 -2
- package/pglite/driver.js +2 -2
- package/pglite/driver.js.map +1 -1
- package/pglite/migrator.cjs +2 -1
- package/pglite/migrator.cjs.map +1 -1
- package/pglite/migrator.js +2 -1
- package/pglite/migrator.js.map +1 -1
- package/pglite/session.cjs +5 -11
- package/pglite/session.cjs.map +1 -1
- package/pglite/session.d.cts +8 -9
- package/pglite/session.d.ts +8 -9
- package/pglite/session.js +5 -11
- package/pglite/session.js.map +1 -1
- package/postgres-js/driver.cjs +2 -2
- package/postgres-js/driver.cjs.map +1 -1
- package/postgres-js/driver.d.cts +2 -2
- package/postgres-js/driver.d.ts +2 -2
- package/postgres-js/driver.js +2 -2
- package/postgres-js/driver.js.map +1 -1
- package/postgres-js/migrator.cjs +2 -1
- package/postgres-js/migrator.cjs.map +1 -1
- package/postgres-js/migrator.js +2 -1
- package/postgres-js/migrator.js.map +1 -1
- package/postgres-js/session.cjs +4 -5
- package/postgres-js/session.cjs.map +1 -1
- package/postgres-js/session.d.cts +8 -8
- package/postgres-js/session.d.ts +8 -8
- package/postgres-js/session.js +4 -5
- package/postgres-js/session.js.map +1 -1
- package/prisma/pg/driver.cjs +2 -1
- package/prisma/pg/driver.cjs.map +1 -1
- package/prisma/pg/driver.d.cts +2 -2
- package/prisma/pg/driver.d.ts +2 -2
- package/prisma/pg/driver.js +3 -2
- package/prisma/pg/driver.js.map +1 -1
- package/prisma/pg/session.cjs +3 -3
- package/prisma/pg/session.cjs.map +1 -1
- package/prisma/pg/session.d.cts +9 -7
- package/prisma/pg/session.d.ts +9 -7
- package/prisma/pg/session.js +3 -3
- package/prisma/pg/session.js.map +1 -1
- package/singlestore-core/query-builders/select.cjs +1 -1
- package/singlestore-core/query-builders/select.cjs.map +1 -1
- package/singlestore-core/query-builders/select.js +1 -1
- package/singlestore-core/query-builders/select.js.map +1 -1
- package/singlestore-core/session.cjs +3 -3
- package/singlestore-core/session.cjs.map +1 -1
- package/singlestore-core/session.js +3 -3
- package/singlestore-core/session.js.map +1 -1
- package/sqlite-core/query-builders/select.cjs +1 -1
- package/sqlite-core/query-builders/select.cjs.map +1 -1
- package/sqlite-core/query-builders/select.js +1 -1
- package/sqlite-core/query-builders/select.js.map +1 -1
- package/sqlite-core/session.cjs +3 -3
- package/sqlite-core/session.cjs.map +1 -1
- package/sqlite-core/session.js +3 -3
- package/sqlite-core/session.js.map +1 -1
- package/utils.cjs +5 -0
- package/utils.cjs.map +1 -1
- package/utils.d.cts +1 -0
- package/utils.d.ts +1 -0
- package/utils.js +4 -0
- package/utils.js.map +1 -1
- package/vercel-postgres/driver.cjs +2 -2
- package/vercel-postgres/driver.cjs.map +1 -1
- package/vercel-postgres/driver.d.cts +2 -2
- package/vercel-postgres/driver.d.ts +2 -2
- package/vercel-postgres/driver.js +2 -2
- package/vercel-postgres/driver.js.map +1 -1
- package/vercel-postgres/migrator.cjs +2 -1
- package/vercel-postgres/migrator.cjs.map +1 -1
- package/vercel-postgres/migrator.js +2 -1
- package/vercel-postgres/migrator.js.map +1 -1
- package/vercel-postgres/session.cjs +4 -9
- package/vercel-postgres/session.cjs.map +1 -1
- package/vercel-postgres/session.d.cts +8 -9
- package/vercel-postgres/session.d.ts +8 -9
- package/vercel-postgres/session.js +4 -9
- package/vercel-postgres/session.js.map +1 -1
- package/xata-http/driver.cjs +2 -2
- package/xata-http/driver.cjs.map +1 -1
- package/xata-http/driver.d.cts +2 -2
- package/xata-http/driver.d.ts +2 -2
- package/xata-http/driver.js +2 -2
- package/xata-http/driver.js.map +1 -1
- package/xata-http/session.cjs +4 -5
- package/xata-http/session.cjs.map +1 -1
- package/xata-http/session.d.cts +6 -7
- package/xata-http/session.d.ts +6 -7
- package/xata-http/session.js +4 -5
- package/xata-http/session.js.map +1 -1
- package/pg-core/db.cjs.map +0 -1
- package/pg-core/db.js.map +0 -1
|
@@ -37,13 +37,13 @@ var import_client_rds_data = require("@aws-sdk/client-rds-data");
|
|
|
37
37
|
var V1 = __toESM(require("../../_relations.cjs"), 1);
|
|
38
38
|
var import_entity = require("../../entity.cjs");
|
|
39
39
|
var import_logger = require("../../logger.cjs");
|
|
40
|
-
var import_db = require("../../pg-core/db.cjs");
|
|
40
|
+
var import_db = require("../../pg-core/async/db.cjs");
|
|
41
41
|
var import_dialect = require("../../pg-core/dialect.cjs");
|
|
42
42
|
var import_pg_core = require("../../pg-core/index.cjs");
|
|
43
43
|
var import_sql = require("../../sql/sql.cjs");
|
|
44
44
|
var import_table = require("../../table.cjs");
|
|
45
45
|
var import_session = require("./session.cjs");
|
|
46
|
-
class AwsDataApiPgDatabase extends import_db.
|
|
46
|
+
class AwsDataApiPgDatabase extends import_db.PgAsyncDatabase {
|
|
47
47
|
static [import_entity.entityKind] = "AwsDataApiPgDatabase";
|
|
48
48
|
execute(query) {
|
|
49
49
|
return super.execute(query);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/aws-data-api/pg/driver.ts"],"sourcesContent":["import { RDSDataClient, type RDSDataClientConfig } from '@aws-sdk/client-rds-data';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/aws-data-api/pg/driver.ts"],"sourcesContent":["import { RDSDataClient, type RDSDataClientConfig } from '@aws-sdk/client-rds-data';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgAsyncDatabase } from '~/pg-core/async/db.ts';\nimport type { PgAsyncRaw } from '~/pg-core/async/raw.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport type { PgColumn, PgInsertConfig, PgTable, TableConfig } from '~/pg-core/index.ts';\nimport { PgArray } from '~/pg-core/index.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { Param, type SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport { Table } from '~/table.ts';\nimport type { DrizzleConfig, UpdateSet } from '~/utils.ts';\nimport type { AwsDataApiClient, AwsDataApiPgQueryResult, AwsDataApiPgQueryResultHKT } from './session.ts';\nimport { AwsDataApiSession } from './session.ts';\n\nexport interface PgDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tdatabase: string;\n\tresourceArn: string;\n\tsecretArn: string;\n}\n\nexport interface DrizzleAwsDataApiPgConfig<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends DrizzleConfig<TSchema, TRelations> {\n\tdatabase: string;\n\tresourceArn: string;\n\tsecretArn: string;\n}\n\nexport class AwsDataApiPgDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends PgAsyncDatabase<AwsDataApiPgQueryResultHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'AwsDataApiPgDatabase';\n\n\toverride execute<\n\t\tTRow extends Record<string, unknown> = Record<string, unknown>,\n\t>(query: SQLWrapper | string): PgAsyncRaw<AwsDataApiPgQueryResult<TRow>> {\n\t\treturn super.execute(query);\n\t}\n}\n\nexport class AwsPgDialect extends PgDialect {\n\tstatic override readonly [entityKind]: string = 'AwsPgDialect';\n\n\toverride escapeParam(num: number): string {\n\t\treturn `:${num + 1}`;\n\t}\n\n\toverride buildInsertQuery(\n\t\t{ table, values, onConflict, returning, select, withList }: PgInsertConfig<PgTable<TableConfig>>,\n\t): SQL<unknown> {\n\t\tconst columns: Record<string, PgColumn> = table[Table.Symbol.Columns];\n\n\t\tif (!select) {\n\t\t\tfor (const value of (values as Record<string, Param | SQL>[])) {\n\t\t\t\tfor (const fieldName of Object.keys(columns)) {\n\t\t\t\t\tconst colValue = value[fieldName];\n\t\t\t\t\tif (\n\t\t\t\t\t\tis(colValue, Param) && colValue.value !== undefined && is(colValue.encoder, PgArray)\n\t\t\t\t\t\t&& Array.isArray(colValue.value)\n\t\t\t\t\t) {\n\t\t\t\t\t\tvalue[fieldName] = sql`cast(${colValue} as ${sql.raw(colValue.encoder.getSQLType())})`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn super.buildInsertQuery({ table, values, onConflict, returning, withList });\n\t}\n\n\toverride buildUpdateSet(table: PgTable<TableConfig>, set: UpdateSet): SQL<unknown> {\n\t\tconst columns: Record<string, PgColumn> = table[Table.Symbol.Columns];\n\n\t\tfor (const [colName, colValue] of Object.entries(set)) {\n\t\t\tconst currentColumn = columns[colName];\n\t\t\tif (\n\t\t\t\tcurrentColumn && is(colValue, Param) && colValue.value !== undefined && is(colValue.encoder, PgArray)\n\t\t\t\t&& Array.isArray(colValue.value)\n\t\t\t) {\n\t\t\t\tset[colName] = sql`cast(${colValue} as ${sql.raw(colValue.encoder.getSQLType())})`;\n\t\t\t}\n\t\t}\n\t\treturn super.buildUpdateSet(table, set);\n\t}\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: AwsDataApiClient,\n\tconfig: DrizzleAwsDataApiPgConfig<TSchema, TRelations>,\n): AwsDataApiPgDatabase<TSchema, TRelations> & {\n\t$client: AwsDataApiClient;\n} {\n\tconst dialect = new AwsPgDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new AwsDataApiSession(client, dialect, relations, schema, {\n\t\t...config,\n\t\tlogger,\n\t\tcache: config.cache,\n\t}, undefined);\n\tconst db = new AwsDataApiPgDatabase(dialect, session, relations, schema as V1.RelationalSchemaConfig<any>, true);\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends AwsDataApiClient = RDSDataClient,\n>(\n\t...params: [\n\t\t(\n\t\t\t| (\n\t\t\t\t& DrizzleConfig<TSchema, TRelations>\n\t\t\t\t& {\n\t\t\t\t\tconnection: RDSDataClientConfig & Omit<DrizzleAwsDataApiPgConfig, keyof DrizzleConfig>;\n\t\t\t\t}\n\t\t\t)\n\t\t\t| (\n\t\t\t\t& DrizzleAwsDataApiPgConfig<TSchema, TRelations>\n\t\t\t\t& {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t}\n\t\t\t)\n\t\t),\n\t]\n): AwsDataApiPgDatabase<TSchema, TRelations> & {\n\t$client: TClient;\n} {\n\tif ((params[0] as { client?: TClient }).client) {\n\t\tconst { client, ...drizzleConfig } = params[0] as {\n\t\t\tclient: TClient;\n\t\t} & DrizzleAwsDataApiPgConfig<TSchema, TRelations>;\n\n\t\treturn construct(client, drizzleConfig) as any;\n\t}\n\n\tconst { connection, ...drizzleConfig } = params[0] as {\n\t\tconnection: RDSDataClientConfig & Omit<DrizzleAwsDataApiPgConfig, keyof DrizzleConfig>;\n\t} & DrizzleConfig<TSchema, TRelations>;\n\tconst { resourceArn, database, secretArn, ...rdsConfig } = connection;\n\n\tconst instance = new RDSDataClient(rdsConfig);\n\treturn construct(instance, { resourceArn, database, secretArn, ...drizzleConfig }) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig: DrizzleAwsDataApiPgConfig<TSchema, TRelations>,\n\t): AwsDataApiPgDatabase<TSchema, TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":"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","names":["drizzleConfig","drizzle"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { RDSDataClient, type RDSDataClientConfig } from '@aws-sdk/client-rds-data';
|
|
2
2
|
import { entityKind } from "../../entity.cjs";
|
|
3
3
|
import type { Logger } from "../../logger.cjs";
|
|
4
|
-
import {
|
|
4
|
+
import { PgAsyncDatabase } from "../../pg-core/async/db.cjs";
|
|
5
|
+
import type { PgAsyncRaw } from "../../pg-core/async/raw.cjs";
|
|
5
6
|
import { PgDialect } from "../../pg-core/dialect.cjs";
|
|
6
7
|
import type { PgInsertConfig, PgTable, TableConfig } from "../../pg-core/index.cjs";
|
|
7
|
-
import type { PgRaw } from "../../pg-core/query-builders/raw.cjs";
|
|
8
8
|
import type { AnyRelations, EmptyRelations } from "../../relations.cjs";
|
|
9
9
|
import { type SQL, type SQLWrapper } from "../../sql/sql.cjs";
|
|
10
10
|
import type { DrizzleConfig, UpdateSet } from "../../utils.cjs";
|
|
@@ -21,9 +21,9 @@ export interface DrizzleAwsDataApiPgConfig<TSchema extends Record<string, unknow
|
|
|
21
21
|
resourceArn: string;
|
|
22
22
|
secretArn: string;
|
|
23
23
|
}
|
|
24
|
-
export declare class AwsDataApiPgDatabase<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations> extends
|
|
24
|
+
export declare class AwsDataApiPgDatabase<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations> extends PgAsyncDatabase<AwsDataApiPgQueryResultHKT, TSchema, TRelations> {
|
|
25
25
|
static readonly [entityKind]: string;
|
|
26
|
-
execute<TRow extends Record<string, unknown> = Record<string, unknown>>(query: SQLWrapper | string):
|
|
26
|
+
execute<TRow extends Record<string, unknown> = Record<string, unknown>>(query: SQLWrapper | string): PgAsyncRaw<AwsDataApiPgQueryResult<TRow>>;
|
|
27
27
|
}
|
|
28
28
|
export declare class AwsPgDialect extends PgDialect {
|
|
29
29
|
static readonly [entityKind]: string;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { RDSDataClient, type RDSDataClientConfig } from '@aws-sdk/client-rds-data';
|
|
2
2
|
import { entityKind } from "../../entity.js";
|
|
3
3
|
import type { Logger } from "../../logger.js";
|
|
4
|
-
import {
|
|
4
|
+
import { PgAsyncDatabase } from "../../pg-core/async/db.js";
|
|
5
|
+
import type { PgAsyncRaw } from "../../pg-core/async/raw.js";
|
|
5
6
|
import { PgDialect } from "../../pg-core/dialect.js";
|
|
6
7
|
import type { PgInsertConfig, PgTable, TableConfig } from "../../pg-core/index.js";
|
|
7
|
-
import type { PgRaw } from "../../pg-core/query-builders/raw.js";
|
|
8
8
|
import type { AnyRelations, EmptyRelations } from "../../relations.js";
|
|
9
9
|
import { type SQL, type SQLWrapper } from "../../sql/sql.js";
|
|
10
10
|
import type { DrizzleConfig, UpdateSet } from "../../utils.js";
|
|
@@ -21,9 +21,9 @@ export interface DrizzleAwsDataApiPgConfig<TSchema extends Record<string, unknow
|
|
|
21
21
|
resourceArn: string;
|
|
22
22
|
secretArn: string;
|
|
23
23
|
}
|
|
24
|
-
export declare class AwsDataApiPgDatabase<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations> extends
|
|
24
|
+
export declare class AwsDataApiPgDatabase<TSchema extends Record<string, unknown> = Record<string, never>, TRelations extends AnyRelations = EmptyRelations> extends PgAsyncDatabase<AwsDataApiPgQueryResultHKT, TSchema, TRelations> {
|
|
25
25
|
static readonly [entityKind]: string;
|
|
26
|
-
execute<TRow extends Record<string, unknown> = Record<string, unknown>>(query: SQLWrapper | string):
|
|
26
|
+
execute<TRow extends Record<string, unknown> = Record<string, unknown>>(query: SQLWrapper | string): PgAsyncRaw<AwsDataApiPgQueryResult<TRow>>;
|
|
27
27
|
}
|
|
28
28
|
export declare class AwsPgDialect extends PgDialect {
|
|
29
29
|
static readonly [entityKind]: string;
|
|
@@ -2,13 +2,13 @@ import { RDSDataClient } from "@aws-sdk/client-rds-data";
|
|
|
2
2
|
import * as V1 from "../../_relations.js";
|
|
3
3
|
import { entityKind, is } from "../../entity.js";
|
|
4
4
|
import { DefaultLogger } from "../../logger.js";
|
|
5
|
-
import {
|
|
5
|
+
import { PgAsyncDatabase } from "../../pg-core/async/db.js";
|
|
6
6
|
import { PgDialect } from "../../pg-core/dialect.js";
|
|
7
7
|
import { PgArray } from "../../pg-core/index.js";
|
|
8
8
|
import { Param, sql } from "../../sql/sql.js";
|
|
9
9
|
import { Table } from "../../table.js";
|
|
10
10
|
import { AwsDataApiSession } from "./session.js";
|
|
11
|
-
class AwsDataApiPgDatabase extends
|
|
11
|
+
class AwsDataApiPgDatabase extends PgAsyncDatabase {
|
|
12
12
|
static [entityKind] = "AwsDataApiPgDatabase";
|
|
13
13
|
execute(query) {
|
|
14
14
|
return super.execute(query);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/aws-data-api/pg/driver.ts"],"sourcesContent":["import { RDSDataClient, type RDSDataClientConfig } from '@aws-sdk/client-rds-data';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/aws-data-api/pg/driver.ts"],"sourcesContent":["import { RDSDataClient, type RDSDataClientConfig } from '@aws-sdk/client-rds-data';\nimport * as V1 from '~/_relations.ts';\nimport { entityKind, is } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { DefaultLogger } from '~/logger.ts';\nimport { PgAsyncDatabase } from '~/pg-core/async/db.ts';\nimport type { PgAsyncRaw } from '~/pg-core/async/raw.ts';\nimport { PgDialect } from '~/pg-core/dialect.ts';\nimport type { PgColumn, PgInsertConfig, PgTable, TableConfig } from '~/pg-core/index.ts';\nimport { PgArray } from '~/pg-core/index.ts';\nimport type { AnyRelations, EmptyRelations } from '~/relations.ts';\nimport { Param, type SQL, sql, type SQLWrapper } from '~/sql/sql.ts';\nimport { Table } from '~/table.ts';\nimport type { DrizzleConfig, UpdateSet } from '~/utils.ts';\nimport type { AwsDataApiClient, AwsDataApiPgQueryResult, AwsDataApiPgQueryResultHKT } from './session.ts';\nimport { AwsDataApiSession } from './session.ts';\n\nexport interface PgDriverOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tdatabase: string;\n\tresourceArn: string;\n\tsecretArn: string;\n}\n\nexport interface DrizzleAwsDataApiPgConfig<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends DrizzleConfig<TSchema, TRelations> {\n\tdatabase: string;\n\tresourceArn: string;\n\tsecretArn: string;\n}\n\nexport class AwsDataApiPgDatabase<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n> extends PgAsyncDatabase<AwsDataApiPgQueryResultHKT, TSchema, TRelations> {\n\tstatic override readonly [entityKind]: string = 'AwsDataApiPgDatabase';\n\n\toverride execute<\n\t\tTRow extends Record<string, unknown> = Record<string, unknown>,\n\t>(query: SQLWrapper | string): PgAsyncRaw<AwsDataApiPgQueryResult<TRow>> {\n\t\treturn super.execute(query);\n\t}\n}\n\nexport class AwsPgDialect extends PgDialect {\n\tstatic override readonly [entityKind]: string = 'AwsPgDialect';\n\n\toverride escapeParam(num: number): string {\n\t\treturn `:${num + 1}`;\n\t}\n\n\toverride buildInsertQuery(\n\t\t{ table, values, onConflict, returning, select, withList }: PgInsertConfig<PgTable<TableConfig>>,\n\t): SQL<unknown> {\n\t\tconst columns: Record<string, PgColumn> = table[Table.Symbol.Columns];\n\n\t\tif (!select) {\n\t\t\tfor (const value of (values as Record<string, Param | SQL>[])) {\n\t\t\t\tfor (const fieldName of Object.keys(columns)) {\n\t\t\t\t\tconst colValue = value[fieldName];\n\t\t\t\t\tif (\n\t\t\t\t\t\tis(colValue, Param) && colValue.value !== undefined && is(colValue.encoder, PgArray)\n\t\t\t\t\t\t&& Array.isArray(colValue.value)\n\t\t\t\t\t) {\n\t\t\t\t\t\tvalue[fieldName] = sql`cast(${colValue} as ${sql.raw(colValue.encoder.getSQLType())})`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn super.buildInsertQuery({ table, values, onConflict, returning, withList });\n\t}\n\n\toverride buildUpdateSet(table: PgTable<TableConfig>, set: UpdateSet): SQL<unknown> {\n\t\tconst columns: Record<string, PgColumn> = table[Table.Symbol.Columns];\n\n\t\tfor (const [colName, colValue] of Object.entries(set)) {\n\t\t\tconst currentColumn = columns[colName];\n\t\t\tif (\n\t\t\t\tcurrentColumn && is(colValue, Param) && colValue.value !== undefined && is(colValue.encoder, PgArray)\n\t\t\t\t&& Array.isArray(colValue.value)\n\t\t\t) {\n\t\t\t\tset[colName] = sql`cast(${colValue} as ${sql.raw(colValue.encoder.getSQLType())})`;\n\t\t\t}\n\t\t}\n\t\treturn super.buildUpdateSet(table, set);\n\t}\n}\n\nfunction construct<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n>(\n\tclient: AwsDataApiClient,\n\tconfig: DrizzleAwsDataApiPgConfig<TSchema, TRelations>,\n): AwsDataApiPgDatabase<TSchema, TRelations> & {\n\t$client: AwsDataApiClient;\n} {\n\tconst dialect = new AwsPgDialect({ casing: config.casing });\n\tlet logger;\n\tif (config.logger === true) {\n\t\tlogger = new DefaultLogger();\n\t} else if (config.logger !== false) {\n\t\tlogger = config.logger;\n\t}\n\n\tlet schema: V1.RelationalSchemaConfig<V1.TablesRelationalConfig> | undefined;\n\tif (config.schema) {\n\t\tconst tablesConfig = V1.extractTablesRelationalConfig(\n\t\t\tconfig.schema,\n\t\t\tV1.createTableRelationsHelpers,\n\t\t);\n\t\tschema = {\n\t\t\tfullSchema: config.schema,\n\t\t\tschema: tablesConfig.tables,\n\t\t\ttableNamesMap: tablesConfig.tableNamesMap,\n\t\t};\n\t}\n\n\tconst relations = config.relations ?? {} as TRelations;\n\tconst session = new AwsDataApiSession(client, dialect, relations, schema, {\n\t\t...config,\n\t\tlogger,\n\t\tcache: config.cache,\n\t}, undefined);\n\tconst db = new AwsDataApiPgDatabase(dialect, session, relations, schema as V1.RelationalSchemaConfig<any>, true);\n\t(<any> db).$client = client;\n\t(<any> db).$cache = config.cache;\n\tif ((<any> db).$cache) {\n\t\t(<any> db).$cache['invalidate'] = config.cache?.onMutate;\n\t}\n\n\treturn db as any;\n}\n\nexport function drizzle<\n\tTSchema extends Record<string, unknown> = Record<string, never>,\n\tTRelations extends AnyRelations = EmptyRelations,\n\tTClient extends AwsDataApiClient = RDSDataClient,\n>(\n\t...params: [\n\t\t(\n\t\t\t| (\n\t\t\t\t& DrizzleConfig<TSchema, TRelations>\n\t\t\t\t& {\n\t\t\t\t\tconnection: RDSDataClientConfig & Omit<DrizzleAwsDataApiPgConfig, keyof DrizzleConfig>;\n\t\t\t\t}\n\t\t\t)\n\t\t\t| (\n\t\t\t\t& DrizzleAwsDataApiPgConfig<TSchema, TRelations>\n\t\t\t\t& {\n\t\t\t\t\tclient: TClient;\n\t\t\t\t}\n\t\t\t)\n\t\t),\n\t]\n): AwsDataApiPgDatabase<TSchema, TRelations> & {\n\t$client: TClient;\n} {\n\tif ((params[0] as { client?: TClient }).client) {\n\t\tconst { client, ...drizzleConfig } = params[0] as {\n\t\t\tclient: TClient;\n\t\t} & DrizzleAwsDataApiPgConfig<TSchema, TRelations>;\n\n\t\treturn construct(client, drizzleConfig) as any;\n\t}\n\n\tconst { connection, ...drizzleConfig } = params[0] as {\n\t\tconnection: RDSDataClientConfig & Omit<DrizzleAwsDataApiPgConfig, keyof DrizzleConfig>;\n\t} & DrizzleConfig<TSchema, TRelations>;\n\tconst { resourceArn, database, secretArn, ...rdsConfig } = connection;\n\n\tconst instance = new RDSDataClient(rdsConfig);\n\treturn construct(instance, { resourceArn, database, secretArn, ...drizzleConfig }) as any;\n}\n\nexport namespace drizzle {\n\texport function mock<\n\t\tTSchema extends Record<string, unknown> = Record<string, never>,\n\t\tTRelations extends AnyRelations = EmptyRelations,\n\t>(\n\t\tconfig: DrizzleAwsDataApiPgConfig<TSchema, TRelations>,\n\t): AwsDataApiPgDatabase<TSchema, TRelations> & {\n\t\t$client: '$client is not available on drizzle.mock()';\n\t} {\n\t\treturn construct({} as any, config) as any;\n\t}\n}\n"],"mappings":"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","names":["drizzleConfig","drizzle"]}
|
|
@@ -22,9 +22,10 @@ __export(migrator_exports, {
|
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(migrator_exports);
|
|
24
24
|
var import_migrator = require("../../migrator.cjs");
|
|
25
|
+
var import_session = require("../../pg-core/async/session.cjs");
|
|
25
26
|
async function migrate(db, config) {
|
|
26
27
|
const migrations = (0, import_migrator.readMigrationFiles)(config);
|
|
27
|
-
return await
|
|
28
|
+
return await (0, import_session.migrate)(migrations, db.session, config);
|
|
28
29
|
}
|
|
29
30
|
// Annotate the CommonJS export names for ESM import in node:
|
|
30
31
|
0 && (module.exports = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/aws-data-api/pg/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport type { AwsDataApiPgDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(\n\tdb: AwsDataApiPgDatabase<TSchema, TRelations>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\treturn await
|
|
1
|
+
{"version":3,"sources":["../../../src/aws-data-api/pg/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport { migrate as coreMigrate } from '~/pg-core/async/session.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport type { AwsDataApiPgDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(\n\tdb: AwsDataApiPgDatabase<TSchema, TRelations>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\treturn await coreMigrate(migrations, db.session, config);\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,sBAAmC;AACnC,qBAAuC;AAIvC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,iBAAa,oCAAmB,MAAM;AAC5C,SAAO,UAAM,eAAAA,SAAY,YAAY,GAAG,SAAS,MAAM;AACxD;","names":["coreMigrate"]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { readMigrationFiles } from "../../migrator.js";
|
|
2
|
+
import { migrate as coreMigrate } from "../../pg-core/async/session.js";
|
|
2
3
|
async function migrate(db, config) {
|
|
3
4
|
const migrations = readMigrationFiles(config);
|
|
4
|
-
return await
|
|
5
|
+
return await coreMigrate(migrations, db.session, config);
|
|
5
6
|
}
|
|
6
7
|
export {
|
|
7
8
|
migrate
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/aws-data-api/pg/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport type { AwsDataApiPgDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(\n\tdb: AwsDataApiPgDatabase<TSchema, TRelations>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\treturn await
|
|
1
|
+
{"version":3,"sources":["../../../src/aws-data-api/pg/migrator.ts"],"sourcesContent":["import type { MigrationConfig } from '~/migrator.ts';\nimport { readMigrationFiles } from '~/migrator.ts';\nimport { migrate as coreMigrate } from '~/pg-core/async/session.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport type { AwsDataApiPgDatabase } from './driver.ts';\n\nexport async function migrate<TSchema extends Record<string, unknown>, TRelations extends AnyRelations>(\n\tdb: AwsDataApiPgDatabase<TSchema, TRelations>,\n\tconfig: MigrationConfig,\n) {\n\tconst migrations = readMigrationFiles(config);\n\treturn await coreMigrate(migrations, db.session, config);\n}\n"],"mappings":"AACA,SAAS,0BAA0B;AACnC,SAAS,WAAW,mBAAmB;AAIvC,eAAsB,QACrB,IACA,QACC;AACD,QAAM,aAAa,mBAAmB,MAAM;AAC5C,SAAO,MAAM,YAAY,YAAY,GAAG,SAAS,MAAM;AACxD;","names":[]}
|
|
@@ -26,11 +26,11 @@ module.exports = __toCommonJS(session_exports);
|
|
|
26
26
|
var import_client_rds_data = require("@aws-sdk/client-rds-data");
|
|
27
27
|
var import_cache = require("../../cache/core/cache.cjs");
|
|
28
28
|
var import_entity = require("../../entity.cjs");
|
|
29
|
-
var
|
|
29
|
+
var import_session = require("../../pg-core/async/session.cjs");
|
|
30
30
|
var import_sql = require("../../sql/sql.cjs");
|
|
31
31
|
var import_utils = require("../../utils.cjs");
|
|
32
32
|
var import_common = require("../common/index.cjs");
|
|
33
|
-
class AwsDataApiPreparedQuery extends
|
|
33
|
+
class AwsDataApiPreparedQuery extends import_session.PgAsyncPreparedQuery {
|
|
34
34
|
constructor(client, queryString, params, typings, options, cache, queryMetadata, cacheConfig, fields, transactionId, _isResponseInArrayMode, customResultMapper, isRqbV2Query) {
|
|
35
35
|
super({ sql: queryString, params }, cache, queryMetadata, cacheConfig);
|
|
36
36
|
this.client = client;
|
|
@@ -158,7 +158,7 @@ class AwsDataApiPreparedQuery extends import_pg_core.PgPreparedQuery {
|
|
|
158
158
|
return this._isResponseInArrayMode;
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
|
-
class AwsDataApiSession extends
|
|
161
|
+
class AwsDataApiSession extends import_session.PgAsyncSession {
|
|
162
162
|
constructor(client, dialect, relations, schema, options, transactionId) {
|
|
163
163
|
super(dialect);
|
|
164
164
|
this.client = client;
|
|
@@ -210,14 +210,6 @@ class AwsDataApiSession extends import_pg_core.PgSession {
|
|
|
210
210
|
true
|
|
211
211
|
);
|
|
212
212
|
}
|
|
213
|
-
async count(sql2) {
|
|
214
|
-
const query = this.dialect.sqlToQuery(sql2);
|
|
215
|
-
const prepared = this.prepareQuery(query, void 0, void 0, true);
|
|
216
|
-
const { rows } = await prepared.values();
|
|
217
|
-
const count = rows[0]?.[0] ?? 0;
|
|
218
|
-
if (typeof count === "number") return count;
|
|
219
|
-
return Number(count);
|
|
220
|
-
}
|
|
221
213
|
execute(query) {
|
|
222
214
|
return this.prepareQuery(
|
|
223
215
|
this.dialect.sqlToQuery(query),
|
|
@@ -261,7 +253,7 @@ class AwsDataApiSession extends import_pg_core.PgSession {
|
|
|
261
253
|
}
|
|
262
254
|
}
|
|
263
255
|
}
|
|
264
|
-
class AwsDataApiTransaction extends
|
|
256
|
+
class AwsDataApiTransaction extends import_session.PgAsyncTransaction {
|
|
265
257
|
static [import_entity.entityKind] = "AwsDataApiTransaction";
|
|
266
258
|
async transaction(transaction) {
|
|
267
259
|
const savepointName = `sp${this.nestedIndex + 1}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/aws-data-api/pg/session.ts"],"sourcesContent":["import type { ColumnMetadata, ExecuteStatementCommandOutput, Field, RDSDataClient } from '@aws-sdk/client-rds-data';\nimport {\n\tBeginTransactionCommand,\n\tCommitTransactionCommand,\n\tExecuteStatementCommand,\n\tRollbackTransactionCommand,\n} from '@aws-sdk/client-rds-data';\nimport type * as V1 from '~/_relations.ts';\nimport type { Cache } from '~/cache/core/cache.ts';\nimport { NoopCache } from '~/cache/core/cache.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport {\n\ttype PgDialect,\n\tPgPreparedQuery,\n\ttype PgQueryResultHKT,\n\tPgSession,\n\tPgTransaction,\n\ttype PgTransactionConfig,\n\ttype PreparedQueryConfig,\n} from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport { fillPlaceholders, type QueryTypingsValue, type QueryWithTypings, type SQL, sql } from '~/sql/sql.ts';\nimport { mapResultRow } from '~/utils.ts';\nimport { getValueFromDataApi, toValueParam } from '../common/index.ts';\n\nexport type AwsDataApiClient = RDSDataClient;\n\nexport class AwsDataApiPreparedQuery<\n\tT extends PreparedQueryConfig & { values: AwsDataApiPgQueryResult<unknown[]> },\n\tTIsRqbV2 extends boolean = false,\n> extends PgPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'AwsDataApiPreparedQuery';\n\n\tprivate rawQuery: ExecuteStatementCommand;\n\n\tconstructor(\n\t\tprivate client: AwsDataApiClient,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate typings: QueryTypingsValue[],\n\t\tprivate options: AwsDataApiSessionOptions,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\t/** @internal */\n\t\treadonly transactionId: string | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper({ sql: queryString, params }, cache, queryMetadata, cacheConfig);\n\t\tthis.rawQuery = new ExecuteStatementCommand({\n\t\t\tsql: queryString,\n\t\t\tparameters: [],\n\t\t\tsecretArn: options.secretArn,\n\t\t\tresourceArn: options.resourceArn,\n\t\t\tdatabase: options.database,\n\t\t\ttransactionId,\n\t\t\tincludeResultMetadata: isRqbV2Query || (!fields && !customResultMapper),\n\t\t});\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\tconst { fields, joinsNotNullableMap, customResultMapper } = this;\n\n\t\tconst result = await this.values(placeholderValues);\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst { columnMetadata, rows } = result;\n\t\t\tif (!columnMetadata) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tconst mappedRows = rows.map((sourceRow) => {\n\t\t\t\tconst row: Record<string, unknown> = {};\n\t\t\t\tfor (const [index, value] of sourceRow.entries()) {\n\t\t\t\t\tconst metadata = columnMetadata[index];\n\t\t\t\t\tif (!metadata) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Unexpected state: no column metadata found for index ${index}. Please report this issue on GitHub: https://github.com/drizzle-team/drizzle-orm/issues/new/choose`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tif (!metadata.name) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Unexpected state: no column name for index ${index} found in the column metadata. Please report this issue on GitHub: https://github.com/drizzle-team/drizzle-orm/issues/new/choose`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\trow[metadata.name] = value;\n\t\t\t\t}\n\t\t\t\treturn row;\n\t\t\t});\n\t\t\treturn Object.assign(result, { rows: mappedRows });\n\t\t}\n\n\t\treturn customResultMapper\n\t\t\t? (customResultMapper as (rows: unknown[][]) => T['execute'])(result.rows!)\n\t\t\t: result.rows!.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tconst { customResultMapper } = this;\n\n\t\tconst result = await this.values(placeholderValues);\n\t\tconst { columnMetadata, rows } = result;\n\t\tif (!columnMetadata) {\n\t\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(\n\t\t\t\trows as [],\n\t\t\t);\n\t\t}\n\t\tconst mappedRows = rows.map((sourceRow) => {\n\t\t\tconst row: Record<string, unknown> = {};\n\t\t\tfor (const [index, value] of sourceRow.entries()) {\n\t\t\t\tconst metadata = columnMetadata[index];\n\t\t\t\tif (!metadata) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Unexpected state: no column metadata found for index ${index}. Please report this issue on GitHub: https://github.com/drizzle-team/drizzle-orm/issues/new/choose`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (!metadata.name) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Unexpected state: no column name for index ${index} found in the column metadata. Please report this issue on GitHub: https://github.com/drizzle-team/drizzle-orm/issues/new/choose`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\trow[metadata.name] = value;\n\t\t\t}\n\t\t\treturn row;\n\t\t});\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(\n\t\t\tmappedRows,\n\t\t);\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']> {\n\t\tconst result = await this.execute(placeholderValues);\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn (result as AwsDataApiPgQueryResult<unknown>).rows;\n\t\t}\n\t\treturn result;\n\t}\n\n\tasync values(placeholderValues: Record<string, unknown> = {}): Promise<T['values']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues ?? {});\n\n\t\tthis.rawQuery.input.parameters = params.map((param, index) => ({\n\t\t\tname: `${index + 1}`,\n\t\t\t...toValueParam(param, this.typings[index]),\n\t\t}));\n\n\t\tthis.options.logger?.logQuery(this.rawQuery.input.sql!, this.rawQuery.input.parameters);\n\n\t\tconst result = await this.queryWithCache(this.queryString, params, async () => {\n\t\t\treturn await this.client.send(this.rawQuery);\n\t\t});\n\t\tconst rows = result.records?.map((row) => {\n\t\t\treturn row.map((field) => getValueFromDataApi(field));\n\t\t}) ?? [];\n\n\t\treturn {\n\t\t\t...result,\n\t\t\trows,\n\t\t};\n\t}\n\n\t/** @internal */\n\tmapResultRows(records: Field[][], columnMetadata: ColumnMetadata[]) {\n\t\treturn records.map((record) => {\n\t\t\tconst row: Record<string, unknown> = {};\n\t\t\tfor (const [index, field] of record.entries()) {\n\t\t\t\tconst { name } = columnMetadata[index]!;\n\t\t\t\trow[name ?? index] = getValueFromDataApi(field); // not what to default if name is undefined\n\t\t\t}\n\t\t\treturn row;\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface AwsDataApiSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tdatabase: string;\n\tresourceArn: string;\n\tsecretArn: string;\n}\n\ninterface AwsDataApiQueryBase {\n\tresourceArn: string;\n\tsecretArn: string;\n\tdatabase: string;\n}\n\nexport class AwsDataApiSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgSession<AwsDataApiPgQueryResultHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'AwsDataApiSession';\n\n\t/** @internal */\n\treadonly rawQuery: AwsDataApiQueryBase;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\t/** @internal */\n\t\treadonly client: AwsDataApiClient,\n\t\tdialect: PgDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: AwsDataApiSessionOptions,\n\t\t/** @internal */\n\t\treadonly transactionId: string | undefined,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.rawQuery = {\n\t\t\tsecretArn: options.secretArn,\n\t\t\tresourceArn: options.resourceArn,\n\t\t\tdatabase: options.database,\n\t\t};\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<\n\t\tT extends PreparedQueryConfig & {\n\t\t\tvalues: AwsDataApiPgQueryResult<unknown[]>;\n\t\t} = PreparedQueryConfig & {\n\t\t\tvalues: AwsDataApiPgQueryResult<unknown[]>;\n\t\t},\n\t>(\n\t\tquery: QueryWithTypings,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tqueryMetadata?: { type: 'select' | 'update' | 'delete' | 'insert'; tables: string[] },\n\t\tcacheConfig?: WithCacheConfig,\n\t\ttransactionId?: string,\n\t): AwsDataApiPreparedQuery<T> {\n\t\treturn new AwsDataApiPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tquery.typings ?? [],\n\t\t\tthis.options,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\ttransactionId ?? this.transactionId,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: QueryWithTypings,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t\ttransactionId?: string,\n\t): PgPreparedQuery<T> {\n\t\treturn new AwsDataApiPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tquery.typings ?? [],\n\t\t\tthis.options,\n\t\t\tthis.cache,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\ttransactionId ?? this.transactionId,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst query = this.dialect.sqlToQuery(sql);\n\t\tconst prepared = this.prepareQuery(query, undefined, undefined, true);\n\n\t\tconst { rows } = await prepared.values();\n\t\tconst count = rows[0]?.[0] ?? 0;\n\n\t\tif (typeof count === 'number') return count;\n\t\treturn Number(count);\n\t}\n\n\toverride execute<T>(query: SQL): Promise<T> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T; values: AwsDataApiPgQueryResult<unknown[]> }>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfalse,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tthis.transactionId,\n\t\t).execute();\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: AwsDataApiTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig | undefined,\n\t): Promise<T> {\n\t\tconst { transactionId } = await this.client.send(new BeginTransactionCommand(this.rawQuery));\n\t\tconst session = new AwsDataApiSession(\n\t\t\tthis.client,\n\t\t\tthis.dialect,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.options,\n\t\t\ttransactionId,\n\t\t);\n\t\tconst tx = new AwsDataApiTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tsession,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tundefined,\n\t\t\ttrue,\n\t\t);\n\t\tif (config) {\n\t\t\tawait tx.setTransaction(config);\n\t\t}\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.client.send(new CommitTransactionCommand({ ...this.rawQuery, transactionId }));\n\t\t\treturn result;\n\t\t} catch (e) {\n\t\t\tawait this.client.send(new RollbackTransactionCommand({ ...this.rawQuery, transactionId }));\n\t\t\tthrow e;\n\t\t}\n\t}\n}\n\nexport class AwsDataApiTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgTransaction<AwsDataApiPgQueryResultHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'AwsDataApiTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: AwsDataApiTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new AwsDataApiTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait this.session.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.session.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (e) {\n\t\t\tawait this.session.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow e;\n\t\t}\n\t}\n}\n\nexport type AwsDataApiPgQueryResult<T> = ExecuteStatementCommandOutput & { rows: T[] };\n\nexport interface AwsDataApiPgQueryResultHKT extends PgQueryResultHKT {\n\ttype: AwsDataApiPgQueryResult<any>;\n}\n"],"mappings":"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","names":["sql"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/aws-data-api/pg/session.ts"],"sourcesContent":["import type { ColumnMetadata, ExecuteStatementCommandOutput, Field, RDSDataClient } from '@aws-sdk/client-rds-data';\nimport {\n\tBeginTransactionCommand,\n\tCommitTransactionCommand,\n\tExecuteStatementCommand,\n\tRollbackTransactionCommand,\n} from '@aws-sdk/client-rds-data';\nimport type * as V1 from '~/_relations.ts';\nimport type { Cache } from '~/cache/core/cache.ts';\nimport { NoopCache } from '~/cache/core/cache.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { PgAsyncPreparedQuery, PgAsyncSession, PgAsyncTransaction } from '~/pg-core/async/session.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport { fillPlaceholders, type QueryTypingsValue, type QueryWithTypings, type SQL, sql } from '~/sql/sql.ts';\nimport { mapResultRow } from '~/utils.ts';\nimport { getValueFromDataApi, toValueParam } from '../common/index.ts';\n\nexport type AwsDataApiClient = RDSDataClient;\n\nexport class AwsDataApiPreparedQuery<\n\tT extends PreparedQueryConfig & { values: AwsDataApiPgQueryResult<unknown[]> },\n\tTIsRqbV2 extends boolean = false,\n> extends PgAsyncPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'AwsDataApiPreparedQuery';\n\n\tprivate rawQuery: ExecuteStatementCommand;\n\n\tconstructor(\n\t\tprivate client: AwsDataApiClient,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate typings: QueryTypingsValue[],\n\t\tprivate options: AwsDataApiSessionOptions,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\t/** @internal */\n\t\treadonly transactionId: string | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper({ sql: queryString, params }, cache, queryMetadata, cacheConfig);\n\t\tthis.rawQuery = new ExecuteStatementCommand({\n\t\t\tsql: queryString,\n\t\t\tparameters: [],\n\t\t\tsecretArn: options.secretArn,\n\t\t\tresourceArn: options.resourceArn,\n\t\t\tdatabase: options.database,\n\t\t\ttransactionId,\n\t\t\tincludeResultMetadata: isRqbV2Query || (!fields && !customResultMapper),\n\t\t});\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\tconst { fields, joinsNotNullableMap, customResultMapper } = this;\n\n\t\tconst result = await this.values(placeholderValues);\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst { columnMetadata, rows } = result;\n\t\t\tif (!columnMetadata) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tconst mappedRows = rows.map((sourceRow) => {\n\t\t\t\tconst row: Record<string, unknown> = {};\n\t\t\t\tfor (const [index, value] of sourceRow.entries()) {\n\t\t\t\t\tconst metadata = columnMetadata[index];\n\t\t\t\t\tif (!metadata) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Unexpected state: no column metadata found for index ${index}. Please report this issue on GitHub: https://github.com/drizzle-team/drizzle-orm/issues/new/choose`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tif (!metadata.name) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Unexpected state: no column name for index ${index} found in the column metadata. Please report this issue on GitHub: https://github.com/drizzle-team/drizzle-orm/issues/new/choose`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\trow[metadata.name] = value;\n\t\t\t\t}\n\t\t\t\treturn row;\n\t\t\t});\n\t\t\treturn Object.assign(result, { rows: mappedRows });\n\t\t}\n\n\t\treturn customResultMapper\n\t\t\t? (customResultMapper as (rows: unknown[][]) => T['execute'])(result.rows!)\n\t\t\t: result.rows!.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tconst { customResultMapper } = this;\n\n\t\tconst result = await this.values(placeholderValues);\n\t\tconst { columnMetadata, rows } = result;\n\t\tif (!columnMetadata) {\n\t\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(\n\t\t\t\trows as [],\n\t\t\t);\n\t\t}\n\t\tconst mappedRows = rows.map((sourceRow) => {\n\t\t\tconst row: Record<string, unknown> = {};\n\t\t\tfor (const [index, value] of sourceRow.entries()) {\n\t\t\t\tconst metadata = columnMetadata[index];\n\t\t\t\tif (!metadata) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Unexpected state: no column metadata found for index ${index}. Please report this issue on GitHub: https://github.com/drizzle-team/drizzle-orm/issues/new/choose`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (!metadata.name) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Unexpected state: no column name for index ${index} found in the column metadata. Please report this issue on GitHub: https://github.com/drizzle-team/drizzle-orm/issues/new/choose`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\trow[metadata.name] = value;\n\t\t\t}\n\t\t\treturn row;\n\t\t});\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(\n\t\t\tmappedRows,\n\t\t);\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']> {\n\t\tconst result = await this.execute(placeholderValues);\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn (result as AwsDataApiPgQueryResult<unknown>).rows;\n\t\t}\n\t\treturn result;\n\t}\n\n\tasync values(placeholderValues: Record<string, unknown> = {}): Promise<T['values']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues ?? {});\n\n\t\tthis.rawQuery.input.parameters = params.map((param, index) => ({\n\t\t\tname: `${index + 1}`,\n\t\t\t...toValueParam(param, this.typings[index]),\n\t\t}));\n\n\t\tthis.options.logger?.logQuery(this.rawQuery.input.sql!, this.rawQuery.input.parameters);\n\n\t\tconst result = await this.queryWithCache(this.queryString, params, async () => {\n\t\t\treturn await this.client.send(this.rawQuery);\n\t\t});\n\t\tconst rows = result.records?.map((row) => {\n\t\t\treturn row.map((field) => getValueFromDataApi(field));\n\t\t}) ?? [];\n\n\t\treturn {\n\t\t\t...result,\n\t\t\trows,\n\t\t};\n\t}\n\n\t/** @internal */\n\tmapResultRows(records: Field[][], columnMetadata: ColumnMetadata[]) {\n\t\treturn records.map((record) => {\n\t\t\tconst row: Record<string, unknown> = {};\n\t\t\tfor (const [index, field] of record.entries()) {\n\t\t\t\tconst { name } = columnMetadata[index]!;\n\t\t\t\trow[name ?? index] = getValueFromDataApi(field); // not what to default if name is undefined\n\t\t\t}\n\t\t\treturn row;\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface AwsDataApiSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tdatabase: string;\n\tresourceArn: string;\n\tsecretArn: string;\n}\n\ninterface AwsDataApiQueryBase {\n\tresourceArn: string;\n\tsecretArn: string;\n\tdatabase: string;\n}\n\nexport class AwsDataApiSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgAsyncSession<AwsDataApiPgQueryResultHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'AwsDataApiSession';\n\n\t/** @internal */\n\treadonly rawQuery: AwsDataApiQueryBase;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\t/** @internal */\n\t\treadonly client: AwsDataApiClient,\n\t\tdialect: PgDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: AwsDataApiSessionOptions,\n\t\t/** @internal */\n\t\treadonly transactionId: string | undefined,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.rawQuery = {\n\t\t\tsecretArn: options.secretArn,\n\t\t\tresourceArn: options.resourceArn,\n\t\t\tdatabase: options.database,\n\t\t};\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<\n\t\tT extends PreparedQueryConfig & {\n\t\t\tvalues: AwsDataApiPgQueryResult<unknown[]>;\n\t\t} = PreparedQueryConfig & {\n\t\t\tvalues: AwsDataApiPgQueryResult<unknown[]>;\n\t\t},\n\t>(\n\t\tquery: QueryWithTypings,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tqueryMetadata?: { type: 'select' | 'update' | 'delete' | 'insert'; tables: string[] },\n\t\tcacheConfig?: WithCacheConfig,\n\t\ttransactionId?: string,\n\t): AwsDataApiPreparedQuery<T> {\n\t\treturn new AwsDataApiPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tquery.typings ?? [],\n\t\t\tthis.options,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\ttransactionId ?? this.transactionId,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: QueryWithTypings,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t\ttransactionId?: string,\n\t): PgAsyncPreparedQuery<T> {\n\t\treturn new AwsDataApiPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tquery.typings ?? [],\n\t\t\tthis.options,\n\t\t\tthis.cache,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\ttransactionId ?? this.transactionId,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\toverride execute<T>(query: SQL): Promise<T> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T; values: AwsDataApiPgQueryResult<unknown[]> }>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfalse,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tthis.transactionId,\n\t\t).execute();\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: AwsDataApiTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig | undefined,\n\t): Promise<T> {\n\t\tconst { transactionId } = await this.client.send(new BeginTransactionCommand(this.rawQuery));\n\t\tconst session = new AwsDataApiSession(\n\t\t\tthis.client,\n\t\t\tthis.dialect,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.options,\n\t\t\ttransactionId,\n\t\t);\n\t\tconst tx = new AwsDataApiTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tsession,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tundefined,\n\t\t\ttrue,\n\t\t);\n\t\tif (config) {\n\t\t\tawait tx.setTransaction(config);\n\t\t}\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.client.send(new CommitTransactionCommand({ ...this.rawQuery, transactionId }));\n\t\t\treturn result;\n\t\t} catch (e) {\n\t\t\tawait this.client.send(new RollbackTransactionCommand({ ...this.rawQuery, transactionId }));\n\t\t\tthrow e;\n\t\t}\n\t}\n}\n\nexport class AwsDataApiTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgAsyncTransaction<AwsDataApiPgQueryResultHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'AwsDataApiTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: AwsDataApiTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new AwsDataApiTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait this.session.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.session.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (e) {\n\t\t\tawait this.session.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow e;\n\t\t}\n\t}\n}\n\nexport type AwsDataApiPgQueryResult<T> = ExecuteStatementCommandOutput & { rows: T[] };\n\nexport interface AwsDataApiPgQueryResultHKT extends PgQueryResultHKT {\n\ttype: AwsDataApiPgQueryResult<any>;\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,6BAKO;AAGP,mBAA0B;AAE1B,oBAA2B;AAE3B,qBAAyE;AAKzE,iBAA+F;AAC/F,mBAA6B;AAC7B,oBAAkD;AAI3C,MAAM,gCAGH,oCAAwB;AAAA,EAKjC,YACS,QACA,aACA,QACA,SACA,SACR,OACA,eAIA,aACQ,QAEC,eACD,wBACA,oBAGA,cACP;AACD,UAAM,EAAE,KAAK,aAAa,OAAO,GAAG,OAAO,eAAe,WAAW;AApB7D;AACA;AACA;AACA;AACA;AAOA;AAEC;AACD;AACA;AAGA;AAGR,SAAK,WAAW,IAAI,+CAAwB;AAAA,MAC3C,KAAK;AAAA,MACL,YAAY,CAAC;AAAA,MACb,WAAW,QAAQ;AAAA,MACnB,aAAa,QAAQ;AAAA,MACrB,UAAU,QAAQ;AAAA,MAClB;AAAA,MACA,uBAAuB,gBAAiB,CAAC,UAAU,CAAC;AAAA,IACrD,CAAC;AAAA,EACF;AAAA,EAnCA,QAA0B,wBAAU,IAAY;AAAA,EAExC;AAAA,EAmCR,MAAM,QAAQ,oBAAyD,CAAC,GAA0B;AACjG,QAAI,KAAK,aAAc,QAAO,KAAK,aAAa,iBAAiB;AAEjE,UAAM,EAAE,QAAQ,qBAAqB,mBAAmB,IAAI;AAE5D,UAAM,SAAS,MAAM,KAAK,OAAO,iBAAiB;AAClD,QAAI,CAAC,UAAU,CAAC,oBAAoB;AACnC,YAAM,EAAE,gBAAgB,KAAK,IAAI;AACjC,UAAI,CAAC,gBAAgB;AACpB,eAAO;AAAA,MACR;AACA,YAAM,aAAa,KAAK,IAAI,CAAC,cAAc;AAC1C,cAAM,MAA+B,CAAC;AACtC,mBAAW,CAAC,OAAO,KAAK,KAAK,UAAU,QAAQ,GAAG;AACjD,gBAAM,WAAW,eAAe,KAAK;AACrC,cAAI,CAAC,UAAU;AACd,kBAAM,IAAI;AAAA,cACT,wDAAwD,KAAK;AAAA,YAC9D;AAAA,UACD;AACA,cAAI,CAAC,SAAS,MAAM;AACnB,kBAAM,IAAI;AAAA,cACT,8CAA8C,KAAK;AAAA,YACpD;AAAA,UACD;AACA,cAAI,SAAS,IAAI,IAAI;AAAA,QACtB;AACA,eAAO;AAAA,MACR,CAAC;AACD,aAAO,OAAO,OAAO,QAAQ,EAAE,MAAM,WAAW,CAAC;AAAA,IAClD;AAEA,WAAO,qBACH,mBAA2D,OAAO,IAAK,IACxE,OAAO,KAAM,IAAI,CAAC,YAAQ,2BAAa,QAAS,KAAK,mBAAmB,CAAC;AAAA,EAC7E;AAAA,EAEA,MAAc,aAAa,oBAAyD,CAAC,GAA0B;AAC9G,UAAM,EAAE,mBAAmB,IAAI;AAE/B,UAAM,SAAS,MAAM,KAAK,OAAO,iBAAiB;AAClD,UAAM,EAAE,gBAAgB,KAAK,IAAI;AACjC,QAAI,CAAC,gBAAgB;AACpB,aAAQ;AAAA,QACP;AAAA,MACD;AAAA,IACD;AACA,UAAM,aAAa,KAAK,IAAI,CAAC,cAAc;AAC1C,YAAM,MAA+B,CAAC;AACtC,iBAAW,CAAC,OAAO,KAAK,KAAK,UAAU,QAAQ,GAAG;AACjD,cAAM,WAAW,eAAe,KAAK;AACrC,YAAI,CAAC,UAAU;AACd,gBAAM,IAAI;AAAA,YACT,wDAAwD,KAAK;AAAA,UAC9D;AAAA,QACD;AACA,YAAI,CAAC,SAAS,MAAM;AACnB,gBAAM,IAAI;AAAA,YACT,8CAA8C,KAAK;AAAA,UACpD;AAAA,QACD;AACA,YAAI,SAAS,IAAI,IAAI;AAAA,MACtB;AACA,aAAO;AAAA,IACR,CAAC;AAED,WAAQ;AAAA,MACP;AAAA,IACD;AAAA,EACD;AAAA,EAEA,MAAM,IAAI,mBAA4E;AACrF,UAAM,SAAS,MAAM,KAAK,QAAQ,iBAAiB;AACnD,QAAI,CAAC,KAAK,UAAU,CAAC,KAAK,oBAAoB;AAC7C,aAAQ,OAA4C;AAAA,IACrD;AACA,WAAO;AAAA,EACR;AAAA,EAEA,MAAM,OAAO,oBAA6C,CAAC,GAAyB;AACnF,UAAM,aAAS,6BAAiB,KAAK,QAAQ,qBAAqB,CAAC,CAAC;AAEpE,SAAK,SAAS,MAAM,aAAa,OAAO,IAAI,CAAC,OAAO,WAAW;AAAA,MAC9D,MAAM,GAAG,QAAQ,CAAC;AAAA,MAClB,OAAG,4BAAa,OAAO,KAAK,QAAQ,KAAK,CAAC;AAAA,IAC3C,EAAE;AAEF,SAAK,QAAQ,QAAQ,SAAS,KAAK,SAAS,MAAM,KAAM,KAAK,SAAS,MAAM,UAAU;AAEtF,UAAM,SAAS,MAAM,KAAK,eAAe,KAAK,aAAa,QAAQ,YAAY;AAC9E,aAAO,MAAM,KAAK,OAAO,KAAK,KAAK,QAAQ;AAAA,IAC5C,CAAC;AACD,UAAM,OAAO,OAAO,SAAS,IAAI,CAAC,QAAQ;AACzC,aAAO,IAAI,IAAI,CAAC,cAAU,mCAAoB,KAAK,CAAC;AAAA,IACrD,CAAC,KAAK,CAAC;AAEP,WAAO;AAAA,MACN,GAAG;AAAA,MACH;AAAA,IACD;AAAA,EACD;AAAA;AAAA,EAGA,cAAc,SAAoB,gBAAkC;AACnE,WAAO,QAAQ,IAAI,CAAC,WAAW;AAC9B,YAAM,MAA+B,CAAC;AACtC,iBAAW,CAAC,OAAO,KAAK,KAAK,OAAO,QAAQ,GAAG;AAC9C,cAAM,EAAE,KAAK,IAAI,eAAe,KAAK;AACrC,YAAI,QAAQ,KAAK,QAAI,mCAAoB,KAAK;AAAA,MAC/C;AACA,aAAO;AAAA,IACR,CAAC;AAAA,EACF;AAAA;AAAA,EAGA,wBAAiC;AAChC,WAAO,KAAK;AAAA,EACb;AACD;AAgBO,MAAM,0BAIH,8BAA6E;AAAA,EAOtF,YAEU,QACT,SACQ,WACA,QACA,SAEC,eACR;AACD,UAAM,OAAO;AARJ;AAED;AACA;AACA;AAEC;AAGT,SAAK,WAAW;AAAA,MACf,WAAW,QAAQ;AAAA,MACnB,aAAa,QAAQ;AAAA,MACrB,UAAU,QAAQ;AAAA,IACnB;AACA,SAAK,QAAQ,QAAQ,SAAS,IAAI,uBAAU;AAAA,EAC7C;AAAA,EAvBA,QAA0B,wBAAU,IAAY;AAAA;AAAA,EAGvC;AAAA,EACD;AAAA,EAqBR,aAOC,OACA,QACA,MACA,uBACA,oBACA,eACA,aACA,eAC6B;AAC7B,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM,WAAW,CAAC;AAAA,MAClB,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiB,KAAK;AAAA,MACtB;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAEA,uBACC,OACA,QACA,MACA,oBACA,eAC0B;AAC1B,WAAO,IAAI;AAAA,MACV,KAAK;AAAA,MACL,MAAM;AAAA,MACN,MAAM;AAAA,MACN,MAAM,WAAW,CAAC;AAAA,MAClB,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,MACA;AAAA,MACA,iBAAiB,KAAK;AAAA,MACtB;AAAA,MACA;AAAA,MACA;AAAA,IACD;AAAA,EACD;AAAA,EAES,QAAW,OAAwB;AAC3C,WAAO,KAAK;AAAA,MACX,KAAK,QAAQ,WAAW,KAAK;AAAA,MAC7B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,KAAK;AAAA,IACN,EAAE,QAAQ;AAAA,EACX;AAAA,EAEA,MAAe,YACd,aACA,QACa;AACb,UAAM,EAAE,cAAc,IAAI,MAAM,KAAK,OAAO,KAAK,IAAI,+CAAwB,KAAK,QAAQ,CAAC;AAC3F,UAAM,UAAU,IAAI;AAAA,MACnB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,IACD;AACA,UAAM,KAAK,IAAI;AAAA,MACd,KAAK;AAAA,MACL;AAAA,MACA,KAAK;AAAA,MACL,KAAK;AAAA,MACL;AAAA,MACA;AAAA,IACD;AACA,QAAI,QAAQ;AACX,YAAM,GAAG,eAAe,MAAM;AAAA,IAC/B;AACA,QAAI;AACH,YAAM,SAAS,MAAM,YAAY,EAAE;AACnC,YAAM,KAAK,OAAO,KAAK,IAAI,gDAAyB,EAAE,GAAG,KAAK,UAAU,cAAc,CAAC,CAAC;AACxF,aAAO;AAAA,IACR,SAAS,GAAG;AACX,YAAM,KAAK,OAAO,KAAK,IAAI,kDAA2B,EAAE,GAAG,KAAK,UAAU,cAAc,CAAC,CAAC;AAC1F,YAAM;AAAA,IACP;AAAA,EACD;AACD;AAEO,MAAM,8BAIH,kCAAiF;AAAA,EAC1F,QAA0B,wBAAU,IAAY;AAAA,EAEhD,MAAe,YACd,aACa;AACb,UAAM,gBAAgB,KAAK,KAAK,cAAc,CAAC;AAC/C,UAAM,KAAK,IAAI;AAAA,MACd,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK,cAAc;AAAA,IACpB;AACA,UAAM,KAAK,QAAQ,QAAQ,eAAI,IAAI,aAAa,aAAa,EAAE,CAAC;AAChE,QAAI;AACH,YAAM,SAAS,MAAM,YAAY,EAAE;AACnC,YAAM,KAAK,QAAQ,QAAQ,eAAI,IAAI,qBAAqB,aAAa,EAAE,CAAC;AACxE,aAAO;AAAA,IACR,SAAS,GAAG;AACX,YAAM,KAAK,QAAQ,QAAQ,eAAI,IAAI,yBAAyB,aAAa,EAAE,CAAC;AAC5E,YAAM;AAAA,IACP;AAAA,EACD;AACD;","names":[]}
|
|
@@ -4,14 +4,16 @@ import type { Cache } from "../../cache/core/cache.cjs";
|
|
|
4
4
|
import type { WithCacheConfig } from "../../cache/core/types.cjs";
|
|
5
5
|
import { entityKind } from "../../entity.cjs";
|
|
6
6
|
import type { Logger } from "../../logger.cjs";
|
|
7
|
-
import {
|
|
7
|
+
import { PgAsyncPreparedQuery, PgAsyncSession, PgAsyncTransaction } from "../../pg-core/async/session.cjs";
|
|
8
|
+
import type { PgDialect } from "../../pg-core/dialect.cjs";
|
|
8
9
|
import type { SelectedFieldsOrdered } from "../../pg-core/query-builders/select.types.cjs";
|
|
10
|
+
import type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from "../../pg-core/session.cjs";
|
|
9
11
|
import type { AnyRelations } from "../../relations.cjs";
|
|
10
12
|
import { type QueryTypingsValue, type QueryWithTypings, type SQL } from "../../sql/sql.cjs";
|
|
11
13
|
export type AwsDataApiClient = RDSDataClient;
|
|
12
14
|
export declare class AwsDataApiPreparedQuery<T extends PreparedQueryConfig & {
|
|
13
15
|
values: AwsDataApiPgQueryResult<unknown[]>;
|
|
14
|
-
}, TIsRqbV2 extends boolean = false> extends
|
|
16
|
+
}, TIsRqbV2 extends boolean = false> extends PgAsyncPreparedQuery<T> {
|
|
15
17
|
private client;
|
|
16
18
|
private queryString;
|
|
17
19
|
private params;
|
|
@@ -41,7 +43,7 @@ export interface AwsDataApiSessionOptions {
|
|
|
41
43
|
resourceArn: string;
|
|
42
44
|
secretArn: string;
|
|
43
45
|
}
|
|
44
|
-
export declare class AwsDataApiSession<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends
|
|
46
|
+
export declare class AwsDataApiSession<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends PgAsyncSession<AwsDataApiPgQueryResultHKT, TFullSchema, TRelations, TSchema> {
|
|
45
47
|
private relations;
|
|
46
48
|
private schema;
|
|
47
49
|
private options;
|
|
@@ -60,12 +62,11 @@ export declare class AwsDataApiSession<TFullSchema extends Record<string, unknow
|
|
|
60
62
|
type: 'select' | 'update' | 'delete' | 'insert';
|
|
61
63
|
tables: string[];
|
|
62
64
|
}, cacheConfig?: WithCacheConfig, transactionId?: string): AwsDataApiPreparedQuery<T>;
|
|
63
|
-
prepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: QueryWithTypings, fields: SelectedFieldsOrdered | undefined, name: string | undefined, customResultMapper: (rows: Record<string, unknown>[]) => T['execute'], transactionId?: string):
|
|
64
|
-
count(sql: SQL): Promise<number>;
|
|
65
|
+
prepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: QueryWithTypings, fields: SelectedFieldsOrdered | undefined, name: string | undefined, customResultMapper: (rows: Record<string, unknown>[]) => T['execute'], transactionId?: string): PgAsyncPreparedQuery<T>;
|
|
65
66
|
execute<T>(query: SQL): Promise<T>;
|
|
66
67
|
transaction<T>(transaction: (tx: AwsDataApiTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>, config?: PgTransactionConfig | undefined): Promise<T>;
|
|
67
68
|
}
|
|
68
|
-
export declare class AwsDataApiTransaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends
|
|
69
|
+
export declare class AwsDataApiTransaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends PgAsyncTransaction<AwsDataApiPgQueryResultHKT, TFullSchema, TRelations, TSchema> {
|
|
69
70
|
static readonly [entityKind]: string;
|
|
70
71
|
transaction<T>(transaction: (tx: AwsDataApiTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>): Promise<T>;
|
|
71
72
|
}
|
|
@@ -4,14 +4,16 @@ import type { Cache } from "../../cache/core/cache.js";
|
|
|
4
4
|
import type { WithCacheConfig } from "../../cache/core/types.js";
|
|
5
5
|
import { entityKind } from "../../entity.js";
|
|
6
6
|
import type { Logger } from "../../logger.js";
|
|
7
|
-
import {
|
|
7
|
+
import { PgAsyncPreparedQuery, PgAsyncSession, PgAsyncTransaction } from "../../pg-core/async/session.js";
|
|
8
|
+
import type { PgDialect } from "../../pg-core/dialect.js";
|
|
8
9
|
import type { SelectedFieldsOrdered } from "../../pg-core/query-builders/select.types.js";
|
|
10
|
+
import type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from "../../pg-core/session.js";
|
|
9
11
|
import type { AnyRelations } from "../../relations.js";
|
|
10
12
|
import { type QueryTypingsValue, type QueryWithTypings, type SQL } from "../../sql/sql.js";
|
|
11
13
|
export type AwsDataApiClient = RDSDataClient;
|
|
12
14
|
export declare class AwsDataApiPreparedQuery<T extends PreparedQueryConfig & {
|
|
13
15
|
values: AwsDataApiPgQueryResult<unknown[]>;
|
|
14
|
-
}, TIsRqbV2 extends boolean = false> extends
|
|
16
|
+
}, TIsRqbV2 extends boolean = false> extends PgAsyncPreparedQuery<T> {
|
|
15
17
|
private client;
|
|
16
18
|
private queryString;
|
|
17
19
|
private params;
|
|
@@ -41,7 +43,7 @@ export interface AwsDataApiSessionOptions {
|
|
|
41
43
|
resourceArn: string;
|
|
42
44
|
secretArn: string;
|
|
43
45
|
}
|
|
44
|
-
export declare class AwsDataApiSession<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends
|
|
46
|
+
export declare class AwsDataApiSession<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends PgAsyncSession<AwsDataApiPgQueryResultHKT, TFullSchema, TRelations, TSchema> {
|
|
45
47
|
private relations;
|
|
46
48
|
private schema;
|
|
47
49
|
private options;
|
|
@@ -60,12 +62,11 @@ export declare class AwsDataApiSession<TFullSchema extends Record<string, unknow
|
|
|
60
62
|
type: 'select' | 'update' | 'delete' | 'insert';
|
|
61
63
|
tables: string[];
|
|
62
64
|
}, cacheConfig?: WithCacheConfig, transactionId?: string): AwsDataApiPreparedQuery<T>;
|
|
63
|
-
prepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: QueryWithTypings, fields: SelectedFieldsOrdered | undefined, name: string | undefined, customResultMapper: (rows: Record<string, unknown>[]) => T['execute'], transactionId?: string):
|
|
64
|
-
count(sql: SQL): Promise<number>;
|
|
65
|
+
prepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(query: QueryWithTypings, fields: SelectedFieldsOrdered | undefined, name: string | undefined, customResultMapper: (rows: Record<string, unknown>[]) => T['execute'], transactionId?: string): PgAsyncPreparedQuery<T>;
|
|
65
66
|
execute<T>(query: SQL): Promise<T>;
|
|
66
67
|
transaction<T>(transaction: (tx: AwsDataApiTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>, config?: PgTransactionConfig | undefined): Promise<T>;
|
|
67
68
|
}
|
|
68
|
-
export declare class AwsDataApiTransaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends
|
|
69
|
+
export declare class AwsDataApiTransaction<TFullSchema extends Record<string, unknown>, TRelations extends AnyRelations, TSchema extends V1.TablesRelationalConfig> extends PgAsyncTransaction<AwsDataApiPgQueryResultHKT, TFullSchema, TRelations, TSchema> {
|
|
69
70
|
static readonly [entityKind]: string;
|
|
70
71
|
transaction<T>(transaction: (tx: AwsDataApiTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>): Promise<T>;
|
|
71
72
|
}
|
|
@@ -6,15 +6,11 @@ import {
|
|
|
6
6
|
} from "@aws-sdk/client-rds-data";
|
|
7
7
|
import { NoopCache } from "../../cache/core/cache.js";
|
|
8
8
|
import { entityKind } from "../../entity.js";
|
|
9
|
-
import {
|
|
10
|
-
PgPreparedQuery,
|
|
11
|
-
PgSession,
|
|
12
|
-
PgTransaction
|
|
13
|
-
} from "../../pg-core/index.js";
|
|
9
|
+
import { PgAsyncPreparedQuery, PgAsyncSession, PgAsyncTransaction } from "../../pg-core/async/session.js";
|
|
14
10
|
import { fillPlaceholders, sql } from "../../sql/sql.js";
|
|
15
11
|
import { mapResultRow } from "../../utils.js";
|
|
16
12
|
import { getValueFromDataApi, toValueParam } from "../common/index.js";
|
|
17
|
-
class AwsDataApiPreparedQuery extends
|
|
13
|
+
class AwsDataApiPreparedQuery extends PgAsyncPreparedQuery {
|
|
18
14
|
constructor(client, queryString, params, typings, options, cache, queryMetadata, cacheConfig, fields, transactionId, _isResponseInArrayMode, customResultMapper, isRqbV2Query) {
|
|
19
15
|
super({ sql: queryString, params }, cache, queryMetadata, cacheConfig);
|
|
20
16
|
this.client = client;
|
|
@@ -142,7 +138,7 @@ class AwsDataApiPreparedQuery extends PgPreparedQuery {
|
|
|
142
138
|
return this._isResponseInArrayMode;
|
|
143
139
|
}
|
|
144
140
|
}
|
|
145
|
-
class AwsDataApiSession extends
|
|
141
|
+
class AwsDataApiSession extends PgAsyncSession {
|
|
146
142
|
constructor(client, dialect, relations, schema, options, transactionId) {
|
|
147
143
|
super(dialect);
|
|
148
144
|
this.client = client;
|
|
@@ -194,14 +190,6 @@ class AwsDataApiSession extends PgSession {
|
|
|
194
190
|
true
|
|
195
191
|
);
|
|
196
192
|
}
|
|
197
|
-
async count(sql2) {
|
|
198
|
-
const query = this.dialect.sqlToQuery(sql2);
|
|
199
|
-
const prepared = this.prepareQuery(query, void 0, void 0, true);
|
|
200
|
-
const { rows } = await prepared.values();
|
|
201
|
-
const count = rows[0]?.[0] ?? 0;
|
|
202
|
-
if (typeof count === "number") return count;
|
|
203
|
-
return Number(count);
|
|
204
|
-
}
|
|
205
193
|
execute(query) {
|
|
206
194
|
return this.prepareQuery(
|
|
207
195
|
this.dialect.sqlToQuery(query),
|
|
@@ -245,7 +233,7 @@ class AwsDataApiSession extends PgSession {
|
|
|
245
233
|
}
|
|
246
234
|
}
|
|
247
235
|
}
|
|
248
|
-
class AwsDataApiTransaction extends
|
|
236
|
+
class AwsDataApiTransaction extends PgAsyncTransaction {
|
|
249
237
|
static [entityKind] = "AwsDataApiTransaction";
|
|
250
238
|
async transaction(transaction) {
|
|
251
239
|
const savepointName = `sp${this.nestedIndex + 1}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/aws-data-api/pg/session.ts"],"sourcesContent":["import type { ColumnMetadata, ExecuteStatementCommandOutput, Field, RDSDataClient } from '@aws-sdk/client-rds-data';\nimport {\n\tBeginTransactionCommand,\n\tCommitTransactionCommand,\n\tExecuteStatementCommand,\n\tRollbackTransactionCommand,\n} from '@aws-sdk/client-rds-data';\nimport type * as V1 from '~/_relations.ts';\nimport type { Cache } from '~/cache/core/cache.ts';\nimport { NoopCache } from '~/cache/core/cache.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport {\n\ttype PgDialect,\n\tPgPreparedQuery,\n\ttype PgQueryResultHKT,\n\tPgSession,\n\tPgTransaction,\n\ttype PgTransactionConfig,\n\ttype PreparedQueryConfig,\n} from '~/pg-core/index.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport { fillPlaceholders, type QueryTypingsValue, type QueryWithTypings, type SQL, sql } from '~/sql/sql.ts';\nimport { mapResultRow } from '~/utils.ts';\nimport { getValueFromDataApi, toValueParam } from '../common/index.ts';\n\nexport type AwsDataApiClient = RDSDataClient;\n\nexport class AwsDataApiPreparedQuery<\n\tT extends PreparedQueryConfig & { values: AwsDataApiPgQueryResult<unknown[]> },\n\tTIsRqbV2 extends boolean = false,\n> extends PgPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'AwsDataApiPreparedQuery';\n\n\tprivate rawQuery: ExecuteStatementCommand;\n\n\tconstructor(\n\t\tprivate client: AwsDataApiClient,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate typings: QueryTypingsValue[],\n\t\tprivate options: AwsDataApiSessionOptions,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\t/** @internal */\n\t\treadonly transactionId: string | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper({ sql: queryString, params }, cache, queryMetadata, cacheConfig);\n\t\tthis.rawQuery = new ExecuteStatementCommand({\n\t\t\tsql: queryString,\n\t\t\tparameters: [],\n\t\t\tsecretArn: options.secretArn,\n\t\t\tresourceArn: options.resourceArn,\n\t\t\tdatabase: options.database,\n\t\t\ttransactionId,\n\t\t\tincludeResultMetadata: isRqbV2Query || (!fields && !customResultMapper),\n\t\t});\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\tconst { fields, joinsNotNullableMap, customResultMapper } = this;\n\n\t\tconst result = await this.values(placeholderValues);\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst { columnMetadata, rows } = result;\n\t\t\tif (!columnMetadata) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tconst mappedRows = rows.map((sourceRow) => {\n\t\t\t\tconst row: Record<string, unknown> = {};\n\t\t\t\tfor (const [index, value] of sourceRow.entries()) {\n\t\t\t\t\tconst metadata = columnMetadata[index];\n\t\t\t\t\tif (!metadata) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Unexpected state: no column metadata found for index ${index}. Please report this issue on GitHub: https://github.com/drizzle-team/drizzle-orm/issues/new/choose`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tif (!metadata.name) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Unexpected state: no column name for index ${index} found in the column metadata. Please report this issue on GitHub: https://github.com/drizzle-team/drizzle-orm/issues/new/choose`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\trow[metadata.name] = value;\n\t\t\t\t}\n\t\t\t\treturn row;\n\t\t\t});\n\t\t\treturn Object.assign(result, { rows: mappedRows });\n\t\t}\n\n\t\treturn customResultMapper\n\t\t\t? (customResultMapper as (rows: unknown[][]) => T['execute'])(result.rows!)\n\t\t\t: result.rows!.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tconst { customResultMapper } = this;\n\n\t\tconst result = await this.values(placeholderValues);\n\t\tconst { columnMetadata, rows } = result;\n\t\tif (!columnMetadata) {\n\t\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(\n\t\t\t\trows as [],\n\t\t\t);\n\t\t}\n\t\tconst mappedRows = rows.map((sourceRow) => {\n\t\t\tconst row: Record<string, unknown> = {};\n\t\t\tfor (const [index, value] of sourceRow.entries()) {\n\t\t\t\tconst metadata = columnMetadata[index];\n\t\t\t\tif (!metadata) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Unexpected state: no column metadata found for index ${index}. Please report this issue on GitHub: https://github.com/drizzle-team/drizzle-orm/issues/new/choose`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (!metadata.name) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Unexpected state: no column name for index ${index} found in the column metadata. Please report this issue on GitHub: https://github.com/drizzle-team/drizzle-orm/issues/new/choose`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\trow[metadata.name] = value;\n\t\t\t}\n\t\t\treturn row;\n\t\t});\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(\n\t\t\tmappedRows,\n\t\t);\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']> {\n\t\tconst result = await this.execute(placeholderValues);\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn (result as AwsDataApiPgQueryResult<unknown>).rows;\n\t\t}\n\t\treturn result;\n\t}\n\n\tasync values(placeholderValues: Record<string, unknown> = {}): Promise<T['values']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues ?? {});\n\n\t\tthis.rawQuery.input.parameters = params.map((param, index) => ({\n\t\t\tname: `${index + 1}`,\n\t\t\t...toValueParam(param, this.typings[index]),\n\t\t}));\n\n\t\tthis.options.logger?.logQuery(this.rawQuery.input.sql!, this.rawQuery.input.parameters);\n\n\t\tconst result = await this.queryWithCache(this.queryString, params, async () => {\n\t\t\treturn await this.client.send(this.rawQuery);\n\t\t});\n\t\tconst rows = result.records?.map((row) => {\n\t\t\treturn row.map((field) => getValueFromDataApi(field));\n\t\t}) ?? [];\n\n\t\treturn {\n\t\t\t...result,\n\t\t\trows,\n\t\t};\n\t}\n\n\t/** @internal */\n\tmapResultRows(records: Field[][], columnMetadata: ColumnMetadata[]) {\n\t\treturn records.map((record) => {\n\t\t\tconst row: Record<string, unknown> = {};\n\t\t\tfor (const [index, field] of record.entries()) {\n\t\t\t\tconst { name } = columnMetadata[index]!;\n\t\t\t\trow[name ?? index] = getValueFromDataApi(field); // not what to default if name is undefined\n\t\t\t}\n\t\t\treturn row;\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface AwsDataApiSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tdatabase: string;\n\tresourceArn: string;\n\tsecretArn: string;\n}\n\ninterface AwsDataApiQueryBase {\n\tresourceArn: string;\n\tsecretArn: string;\n\tdatabase: string;\n}\n\nexport class AwsDataApiSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgSession<AwsDataApiPgQueryResultHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'AwsDataApiSession';\n\n\t/** @internal */\n\treadonly rawQuery: AwsDataApiQueryBase;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\t/** @internal */\n\t\treadonly client: AwsDataApiClient,\n\t\tdialect: PgDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: AwsDataApiSessionOptions,\n\t\t/** @internal */\n\t\treadonly transactionId: string | undefined,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.rawQuery = {\n\t\t\tsecretArn: options.secretArn,\n\t\t\tresourceArn: options.resourceArn,\n\t\t\tdatabase: options.database,\n\t\t};\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<\n\t\tT extends PreparedQueryConfig & {\n\t\t\tvalues: AwsDataApiPgQueryResult<unknown[]>;\n\t\t} = PreparedQueryConfig & {\n\t\t\tvalues: AwsDataApiPgQueryResult<unknown[]>;\n\t\t},\n\t>(\n\t\tquery: QueryWithTypings,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tqueryMetadata?: { type: 'select' | 'update' | 'delete' | 'insert'; tables: string[] },\n\t\tcacheConfig?: WithCacheConfig,\n\t\ttransactionId?: string,\n\t): AwsDataApiPreparedQuery<T> {\n\t\treturn new AwsDataApiPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tquery.typings ?? [],\n\t\t\tthis.options,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\ttransactionId ?? this.transactionId,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: QueryWithTypings,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t\ttransactionId?: string,\n\t): PgPreparedQuery<T> {\n\t\treturn new AwsDataApiPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tquery.typings ?? [],\n\t\t\tthis.options,\n\t\t\tthis.cache,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\ttransactionId ?? this.transactionId,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\toverride async count(sql: SQL): Promise<number> {\n\t\tconst query = this.dialect.sqlToQuery(sql);\n\t\tconst prepared = this.prepareQuery(query, undefined, undefined, true);\n\n\t\tconst { rows } = await prepared.values();\n\t\tconst count = rows[0]?.[0] ?? 0;\n\n\t\tif (typeof count === 'number') return count;\n\t\treturn Number(count);\n\t}\n\n\toverride execute<T>(query: SQL): Promise<T> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T; values: AwsDataApiPgQueryResult<unknown[]> }>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfalse,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tthis.transactionId,\n\t\t).execute();\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: AwsDataApiTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig | undefined,\n\t): Promise<T> {\n\t\tconst { transactionId } = await this.client.send(new BeginTransactionCommand(this.rawQuery));\n\t\tconst session = new AwsDataApiSession(\n\t\t\tthis.client,\n\t\t\tthis.dialect,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.options,\n\t\t\ttransactionId,\n\t\t);\n\t\tconst tx = new AwsDataApiTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tsession,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tundefined,\n\t\t\ttrue,\n\t\t);\n\t\tif (config) {\n\t\t\tawait tx.setTransaction(config);\n\t\t}\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.client.send(new CommitTransactionCommand({ ...this.rawQuery, transactionId }));\n\t\t\treturn result;\n\t\t} catch (e) {\n\t\t\tawait this.client.send(new RollbackTransactionCommand({ ...this.rawQuery, transactionId }));\n\t\t\tthrow e;\n\t\t}\n\t}\n}\n\nexport class AwsDataApiTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgTransaction<AwsDataApiPgQueryResultHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'AwsDataApiTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: AwsDataApiTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new AwsDataApiTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait this.session.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.session.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (e) {\n\t\t\tawait this.session.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow e;\n\t\t}\n\t}\n}\n\nexport type AwsDataApiPgQueryResult<T> = ExecuteStatementCommandOutput & { rows: T[] };\n\nexport interface AwsDataApiPgQueryResultHKT extends PgQueryResultHKT {\n\ttype: AwsDataApiPgQueryResult<any>;\n}\n"],"mappings":"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","names":["sql"]}
|
|
1
|
+
{"version":3,"sources":["../../../src/aws-data-api/pg/session.ts"],"sourcesContent":["import type { ColumnMetadata, ExecuteStatementCommandOutput, Field, RDSDataClient } from '@aws-sdk/client-rds-data';\nimport {\n\tBeginTransactionCommand,\n\tCommitTransactionCommand,\n\tExecuteStatementCommand,\n\tRollbackTransactionCommand,\n} from '@aws-sdk/client-rds-data';\nimport type * as V1 from '~/_relations.ts';\nimport type { Cache } from '~/cache/core/cache.ts';\nimport { NoopCache } from '~/cache/core/cache.ts';\nimport type { WithCacheConfig } from '~/cache/core/types.ts';\nimport { entityKind } from '~/entity.ts';\nimport type { Logger } from '~/logger.ts';\nimport { PgAsyncPreparedQuery, PgAsyncSession, PgAsyncTransaction } from '~/pg-core/async/session.ts';\nimport type { PgDialect } from '~/pg-core/dialect.ts';\nimport type { SelectedFieldsOrdered } from '~/pg-core/query-builders/select.types.ts';\nimport type { PgQueryResultHKT, PgTransactionConfig, PreparedQueryConfig } from '~/pg-core/session.ts';\nimport type { AnyRelations } from '~/relations.ts';\nimport { fillPlaceholders, type QueryTypingsValue, type QueryWithTypings, type SQL, sql } from '~/sql/sql.ts';\nimport { mapResultRow } from '~/utils.ts';\nimport { getValueFromDataApi, toValueParam } from '../common/index.ts';\n\nexport type AwsDataApiClient = RDSDataClient;\n\nexport class AwsDataApiPreparedQuery<\n\tT extends PreparedQueryConfig & { values: AwsDataApiPgQueryResult<unknown[]> },\n\tTIsRqbV2 extends boolean = false,\n> extends PgAsyncPreparedQuery<T> {\n\tstatic override readonly [entityKind]: string = 'AwsDataApiPreparedQuery';\n\n\tprivate rawQuery: ExecuteStatementCommand;\n\n\tconstructor(\n\t\tprivate client: AwsDataApiClient,\n\t\tprivate queryString: string,\n\t\tprivate params: unknown[],\n\t\tprivate typings: QueryTypingsValue[],\n\t\tprivate options: AwsDataApiSessionOptions,\n\t\tcache: Cache,\n\t\tqueryMetadata: {\n\t\t\ttype: 'select' | 'update' | 'delete' | 'insert';\n\t\t\ttables: string[];\n\t\t} | undefined,\n\t\tcacheConfig: WithCacheConfig | undefined,\n\t\tprivate fields: SelectedFieldsOrdered | undefined,\n\t\t/** @internal */\n\t\treadonly transactionId: string | undefined,\n\t\tprivate _isResponseInArrayMode: boolean,\n\t\tprivate customResultMapper?: (\n\t\t\trows: TIsRqbV2 extends true ? Record<string, unknown>[] : unknown[][],\n\t\t) => T['execute'],\n\t\tprivate isRqbV2Query?: TIsRqbV2,\n\t) {\n\t\tsuper({ sql: queryString, params }, cache, queryMetadata, cacheConfig);\n\t\tthis.rawQuery = new ExecuteStatementCommand({\n\t\t\tsql: queryString,\n\t\t\tparameters: [],\n\t\t\tsecretArn: options.secretArn,\n\t\t\tresourceArn: options.resourceArn,\n\t\t\tdatabase: options.database,\n\t\t\ttransactionId,\n\t\t\tincludeResultMetadata: isRqbV2Query || (!fields && !customResultMapper),\n\t\t});\n\t}\n\n\tasync execute(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tif (this.isRqbV2Query) return this.executeRqbV2(placeholderValues);\n\n\t\tconst { fields, joinsNotNullableMap, customResultMapper } = this;\n\n\t\tconst result = await this.values(placeholderValues);\n\t\tif (!fields && !customResultMapper) {\n\t\t\tconst { columnMetadata, rows } = result;\n\t\t\tif (!columnMetadata) {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\tconst mappedRows = rows.map((sourceRow) => {\n\t\t\t\tconst row: Record<string, unknown> = {};\n\t\t\t\tfor (const [index, value] of sourceRow.entries()) {\n\t\t\t\t\tconst metadata = columnMetadata[index];\n\t\t\t\t\tif (!metadata) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Unexpected state: no column metadata found for index ${index}. Please report this issue on GitHub: https://github.com/drizzle-team/drizzle-orm/issues/new/choose`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\tif (!metadata.name) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Unexpected state: no column name for index ${index} found in the column metadata. Please report this issue on GitHub: https://github.com/drizzle-team/drizzle-orm/issues/new/choose`,\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\trow[metadata.name] = value;\n\t\t\t\t}\n\t\t\t\treturn row;\n\t\t\t});\n\t\t\treturn Object.assign(result, { rows: mappedRows });\n\t\t}\n\n\t\treturn customResultMapper\n\t\t\t? (customResultMapper as (rows: unknown[][]) => T['execute'])(result.rows!)\n\t\t\t: result.rows!.map((row) => mapResultRow(fields!, row, joinsNotNullableMap));\n\t}\n\n\tprivate async executeRqbV2(placeholderValues: Record<string, unknown> | undefined = {}): Promise<T['execute']> {\n\t\tconst { customResultMapper } = this;\n\n\t\tconst result = await this.values(placeholderValues);\n\t\tconst { columnMetadata, rows } = result;\n\t\tif (!columnMetadata) {\n\t\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(\n\t\t\t\trows as [],\n\t\t\t);\n\t\t}\n\t\tconst mappedRows = rows.map((sourceRow) => {\n\t\t\tconst row: Record<string, unknown> = {};\n\t\t\tfor (const [index, value] of sourceRow.entries()) {\n\t\t\t\tconst metadata = columnMetadata[index];\n\t\t\t\tif (!metadata) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Unexpected state: no column metadata found for index ${index}. Please report this issue on GitHub: https://github.com/drizzle-team/drizzle-orm/issues/new/choose`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\tif (!metadata.name) {\n\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t`Unexpected state: no column name for index ${index} found in the column metadata. Please report this issue on GitHub: https://github.com/drizzle-team/drizzle-orm/issues/new/choose`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\trow[metadata.name] = value;\n\t\t\t}\n\t\t\treturn row;\n\t\t});\n\n\t\treturn (customResultMapper as (rows: Record<string, unknown>[]) => T['execute'])(\n\t\t\tmappedRows,\n\t\t);\n\t}\n\n\tasync all(placeholderValues?: Record<string, unknown> | undefined): Promise<T['all']> {\n\t\tconst result = await this.execute(placeholderValues);\n\t\tif (!this.fields && !this.customResultMapper) {\n\t\t\treturn (result as AwsDataApiPgQueryResult<unknown>).rows;\n\t\t}\n\t\treturn result;\n\t}\n\n\tasync values(placeholderValues: Record<string, unknown> = {}): Promise<T['values']> {\n\t\tconst params = fillPlaceholders(this.params, placeholderValues ?? {});\n\n\t\tthis.rawQuery.input.parameters = params.map((param, index) => ({\n\t\t\tname: `${index + 1}`,\n\t\t\t...toValueParam(param, this.typings[index]),\n\t\t}));\n\n\t\tthis.options.logger?.logQuery(this.rawQuery.input.sql!, this.rawQuery.input.parameters);\n\n\t\tconst result = await this.queryWithCache(this.queryString, params, async () => {\n\t\t\treturn await this.client.send(this.rawQuery);\n\t\t});\n\t\tconst rows = result.records?.map((row) => {\n\t\t\treturn row.map((field) => getValueFromDataApi(field));\n\t\t}) ?? [];\n\n\t\treturn {\n\t\t\t...result,\n\t\t\trows,\n\t\t};\n\t}\n\n\t/** @internal */\n\tmapResultRows(records: Field[][], columnMetadata: ColumnMetadata[]) {\n\t\treturn records.map((record) => {\n\t\t\tconst row: Record<string, unknown> = {};\n\t\t\tfor (const [index, field] of record.entries()) {\n\t\t\t\tconst { name } = columnMetadata[index]!;\n\t\t\t\trow[name ?? index] = getValueFromDataApi(field); // not what to default if name is undefined\n\t\t\t}\n\t\t\treturn row;\n\t\t});\n\t}\n\n\t/** @internal */\n\tisResponseInArrayMode(): boolean {\n\t\treturn this._isResponseInArrayMode;\n\t}\n}\n\nexport interface AwsDataApiSessionOptions {\n\tlogger?: Logger;\n\tcache?: Cache;\n\tdatabase: string;\n\tresourceArn: string;\n\tsecretArn: string;\n}\n\ninterface AwsDataApiQueryBase {\n\tresourceArn: string;\n\tsecretArn: string;\n\tdatabase: string;\n}\n\nexport class AwsDataApiSession<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgAsyncSession<AwsDataApiPgQueryResultHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'AwsDataApiSession';\n\n\t/** @internal */\n\treadonly rawQuery: AwsDataApiQueryBase;\n\tprivate cache: Cache;\n\n\tconstructor(\n\t\t/** @internal */\n\t\treadonly client: AwsDataApiClient,\n\t\tdialect: PgDialect,\n\t\tprivate relations: TRelations,\n\t\tprivate schema: V1.RelationalSchemaConfig<TSchema> | undefined,\n\t\tprivate options: AwsDataApiSessionOptions,\n\t\t/** @internal */\n\t\treadonly transactionId: string | undefined,\n\t) {\n\t\tsuper(dialect);\n\t\tthis.rawQuery = {\n\t\t\tsecretArn: options.secretArn,\n\t\t\tresourceArn: options.resourceArn,\n\t\t\tdatabase: options.database,\n\t\t};\n\t\tthis.cache = options.cache ?? new NoopCache();\n\t}\n\n\tprepareQuery<\n\t\tT extends PreparedQueryConfig & {\n\t\t\tvalues: AwsDataApiPgQueryResult<unknown[]>;\n\t\t} = PreparedQueryConfig & {\n\t\t\tvalues: AwsDataApiPgQueryResult<unknown[]>;\n\t\t},\n\t>(\n\t\tquery: QueryWithTypings,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tisResponseInArrayMode: boolean,\n\t\tcustomResultMapper?: (rows: unknown[][]) => T['execute'],\n\t\tqueryMetadata?: { type: 'select' | 'update' | 'delete' | 'insert'; tables: string[] },\n\t\tcacheConfig?: WithCacheConfig,\n\t\ttransactionId?: string,\n\t): AwsDataApiPreparedQuery<T> {\n\t\treturn new AwsDataApiPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tquery.typings ?? [],\n\t\t\tthis.options,\n\t\t\tthis.cache,\n\t\t\tqueryMetadata,\n\t\t\tcacheConfig,\n\t\t\tfields,\n\t\t\ttransactionId ?? this.transactionId,\n\t\t\tisResponseInArrayMode,\n\t\t\tcustomResultMapper,\n\t\t);\n\t}\n\n\tprepareRelationalQuery<T extends PreparedQueryConfig = PreparedQueryConfig>(\n\t\tquery: QueryWithTypings,\n\t\tfields: SelectedFieldsOrdered | undefined,\n\t\tname: string | undefined,\n\t\tcustomResultMapper: (rows: Record<string, unknown>[]) => T['execute'],\n\t\ttransactionId?: string,\n\t): PgAsyncPreparedQuery<T> {\n\t\treturn new AwsDataApiPreparedQuery(\n\t\t\tthis.client,\n\t\t\tquery.sql,\n\t\t\tquery.params,\n\t\t\tquery.typings ?? [],\n\t\t\tthis.options,\n\t\t\tthis.cache,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfields,\n\t\t\ttransactionId ?? this.transactionId,\n\t\t\tfalse,\n\t\t\tcustomResultMapper,\n\t\t\ttrue,\n\t\t);\n\t}\n\n\toverride execute<T>(query: SQL): Promise<T> {\n\t\treturn this.prepareQuery<PreparedQueryConfig & { execute: T; values: AwsDataApiPgQueryResult<unknown[]> }>(\n\t\t\tthis.dialect.sqlToQuery(query),\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tfalse,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tundefined,\n\t\t\tthis.transactionId,\n\t\t).execute();\n\t}\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: AwsDataApiTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t\tconfig?: PgTransactionConfig | undefined,\n\t): Promise<T> {\n\t\tconst { transactionId } = await this.client.send(new BeginTransactionCommand(this.rawQuery));\n\t\tconst session = new AwsDataApiSession(\n\t\t\tthis.client,\n\t\t\tthis.dialect,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.options,\n\t\t\ttransactionId,\n\t\t);\n\t\tconst tx = new AwsDataApiTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tsession,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tundefined,\n\t\t\ttrue,\n\t\t);\n\t\tif (config) {\n\t\t\tawait tx.setTransaction(config);\n\t\t}\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.client.send(new CommitTransactionCommand({ ...this.rawQuery, transactionId }));\n\t\t\treturn result;\n\t\t} catch (e) {\n\t\t\tawait this.client.send(new RollbackTransactionCommand({ ...this.rawQuery, transactionId }));\n\t\t\tthrow e;\n\t\t}\n\t}\n}\n\nexport class AwsDataApiTransaction<\n\tTFullSchema extends Record<string, unknown>,\n\tTRelations extends AnyRelations,\n\tTSchema extends V1.TablesRelationalConfig,\n> extends PgAsyncTransaction<AwsDataApiPgQueryResultHKT, TFullSchema, TRelations, TSchema> {\n\tstatic override readonly [entityKind]: string = 'AwsDataApiTransaction';\n\n\toverride async transaction<T>(\n\t\ttransaction: (tx: AwsDataApiTransaction<TFullSchema, TRelations, TSchema>) => Promise<T>,\n\t): Promise<T> {\n\t\tconst savepointName = `sp${this.nestedIndex + 1}`;\n\t\tconst tx = new AwsDataApiTransaction<TFullSchema, TRelations, TSchema>(\n\t\t\tthis.dialect,\n\t\t\tthis.session,\n\t\t\tthis.relations,\n\t\t\tthis.schema,\n\t\t\tthis.nestedIndex + 1,\n\t\t);\n\t\tawait this.session.execute(sql.raw(`savepoint ${savepointName}`));\n\t\ttry {\n\t\t\tconst result = await transaction(tx);\n\t\t\tawait this.session.execute(sql.raw(`release savepoint ${savepointName}`));\n\t\t\treturn result;\n\t\t} catch (e) {\n\t\t\tawait this.session.execute(sql.raw(`rollback to savepoint ${savepointName}`));\n\t\t\tthrow e;\n\t\t}\n\t}\n}\n\nexport type AwsDataApiPgQueryResult<T> = ExecuteStatementCommandOutput & { rows: T[] };\n\nexport interface AwsDataApiPgQueryResultHKT extends PgQueryResultHKT {\n\ttype: AwsDataApiPgQueryResult<any>;\n}\n"],"mappings":"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","names":[]}
|