@fragno-dev/db 0.1.15 → 0.2.1
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/.turbo/turbo-build.log +242 -179
- package/CHANGELOG.md +40 -0
- package/README.md +123 -8
- package/dist/adapters/adapters.d.ts +5 -5
- package/dist/adapters/adapters.d.ts.map +1 -1
- package/dist/adapters/adapters.js.map +1 -1
- package/dist/adapters/drizzle/drizzle-adapter.d.ts +6 -21
- package/dist/adapters/drizzle/drizzle-adapter.d.ts.map +1 -1
- package/dist/adapters/drizzle/drizzle-adapter.js +7 -54
- package/dist/adapters/drizzle/drizzle-adapter.js.map +1 -1
- package/dist/adapters/drizzle/generate.d.ts +3 -0
- package/dist/adapters/drizzle/generate.d.ts.map +1 -1
- package/dist/adapters/drizzle/generate.js +36 -28
- package/dist/adapters/drizzle/generate.js.map +1 -1
- package/dist/adapters/generic-sql/driver-config.d.ts +74 -0
- package/dist/adapters/generic-sql/driver-config.d.ts.map +1 -0
- package/dist/adapters/generic-sql/driver-config.js +94 -0
- package/dist/adapters/generic-sql/driver-config.js.map +1 -0
- package/dist/adapters/generic-sql/generic-sql-adapter.d.ts +43 -0
- package/dist/adapters/generic-sql/generic-sql-adapter.d.ts.map +1 -0
- package/dist/adapters/generic-sql/generic-sql-adapter.js +87 -0
- package/dist/adapters/generic-sql/generic-sql-adapter.js.map +1 -0
- package/dist/adapters/generic-sql/generic-sql-uow-executor.js +67 -0
- package/dist/adapters/generic-sql/generic-sql-uow-executor.js.map +1 -0
- package/dist/adapters/generic-sql/migration/cold-kysely.js +33 -0
- package/dist/adapters/generic-sql/migration/cold-kysely.js.map +1 -0
- package/dist/adapters/generic-sql/migration/dialect/mysql.js +60 -0
- package/dist/adapters/generic-sql/migration/dialect/mysql.js.map +1 -0
- package/dist/adapters/generic-sql/migration/dialect/postgres.js +59 -0
- package/dist/adapters/generic-sql/migration/dialect/postgres.js.map +1 -0
- package/dist/adapters/generic-sql/migration/dialect/sqlite.js +96 -0
- package/dist/adapters/generic-sql/migration/dialect/sqlite.js.map +1 -0
- package/dist/adapters/generic-sql/migration/executor.d.ts +15 -0
- package/dist/adapters/generic-sql/migration/executor.d.ts.map +1 -0
- package/dist/adapters/generic-sql/migration/executor.js +18 -0
- package/dist/adapters/generic-sql/migration/executor.js.map +1 -0
- package/dist/adapters/generic-sql/migration/prepared-migrations.d.ts +66 -0
- package/dist/adapters/generic-sql/migration/prepared-migrations.d.ts.map +1 -0
- package/dist/adapters/generic-sql/migration/prepared-migrations.js +68 -0
- package/dist/adapters/generic-sql/migration/prepared-migrations.js.map +1 -0
- package/dist/adapters/generic-sql/migration/sql-generator.js +212 -0
- package/dist/adapters/generic-sql/migration/sql-generator.js.map +1 -0
- package/dist/adapters/generic-sql/query/create-sql-query-compiler.js +32 -0
- package/dist/adapters/generic-sql/query/create-sql-query-compiler.js.map +1 -0
- package/dist/adapters/generic-sql/query/cursor-utils.js +37 -0
- package/dist/adapters/generic-sql/query/cursor-utils.js.map +1 -0
- package/dist/adapters/generic-sql/query/dialect/mysql.js +33 -0
- package/dist/adapters/generic-sql/query/dialect/mysql.js.map +1 -0
- package/dist/adapters/generic-sql/query/dialect/postgres.js +32 -0
- package/dist/adapters/generic-sql/query/dialect/postgres.js.map +1 -0
- package/dist/adapters/generic-sql/query/dialect/sqlite.js +32 -0
- package/dist/adapters/generic-sql/query/dialect/sqlite.js.map +1 -0
- package/dist/adapters/generic-sql/query/generic-sql-uow-operation-compiler.js +152 -0
- package/dist/adapters/generic-sql/query/generic-sql-uow-operation-compiler.js.map +1 -0
- package/dist/adapters/generic-sql/query/select-builder.js +69 -0
- package/dist/adapters/generic-sql/query/select-builder.js.map +1 -0
- package/dist/adapters/generic-sql/query/sql-query-compiler.js +145 -0
- package/dist/adapters/generic-sql/query/sql-query-compiler.js.map +1 -0
- package/dist/adapters/generic-sql/query/where-builder.js +129 -0
- package/dist/adapters/generic-sql/query/where-builder.js.map +1 -0
- package/dist/adapters/generic-sql/result-interpreter.js +74 -0
- package/dist/adapters/generic-sql/result-interpreter.js.map +1 -0
- package/dist/adapters/generic-sql/uow-decoder.js +105 -0
- package/dist/adapters/generic-sql/uow-decoder.js.map +1 -0
- package/dist/adapters/generic-sql/uow-encoder.js +93 -0
- package/dist/adapters/generic-sql/uow-encoder.js.map +1 -0
- package/dist/adapters/kysely/kysely-adapter.d.ts +5 -18
- package/dist/adapters/kysely/kysely-adapter.d.ts.map +1 -1
- package/dist/adapters/kysely/kysely-adapter.js +6 -165
- package/dist/adapters/kysely/kysely-adapter.js.map +1 -1
- package/dist/adapters/{drizzle/drizzle-query.js → shared/from-unit-of-work-compiler.js} +47 -61
- package/dist/adapters/shared/from-unit-of-work-compiler.js.map +1 -0
- package/dist/adapters/{drizzle/shared.d.ts → shared/table-name-mapper.d.ts} +2 -4
- package/dist/adapters/shared/table-name-mapper.d.ts.map +1 -0
- package/dist/adapters/shared/table-name-mapper.js +43 -0
- package/dist/adapters/shared/table-name-mapper.js.map +1 -0
- package/dist/adapters/shared/uow-operation-compiler.js +105 -0
- package/dist/adapters/shared/uow-operation-compiler.js.map +1 -0
- package/dist/db-fragment-definition-builder.d.ts +107 -19
- package/dist/db-fragment-definition-builder.d.ts.map +1 -1
- package/dist/db-fragment-definition-builder.js +134 -20
- package/dist/db-fragment-definition-builder.js.map +1 -1
- package/dist/fragments/internal-fragment.d.ts +39 -5
- package/dist/fragments/internal-fragment.d.ts.map +1 -1
- package/dist/fragments/internal-fragment.js +82 -10
- package/dist/fragments/internal-fragment.js.map +1 -1
- package/dist/hooks/hooks.d.ts +51 -0
- package/dist/hooks/hooks.d.ts.map +1 -0
- package/dist/hooks/hooks.js +88 -0
- package/dist/hooks/hooks.js.map +1 -0
- package/dist/migration-engine/generation-engine.d.ts +0 -2
- package/dist/migration-engine/generation-engine.d.ts.map +1 -1
- package/dist/migration-engine/generation-engine.js +23 -61
- package/dist/migration-engine/generation-engine.js.map +1 -1
- package/dist/mod.d.ts +34 -10
- package/dist/mod.d.ts.map +1 -1
- package/dist/mod.js +47 -16
- package/dist/mod.js.map +1 -1
- package/dist/node_modules/.pnpm/{rou3@0.7.8 → rou3@0.7.10}/node_modules/rou3/dist/index.js +1 -1
- package/dist/node_modules/.pnpm/rou3@0.7.10/node_modules/rou3/dist/index.js.map +1 -0
- package/dist/packages/fragno/dist/api/fragment-instantiator.js +69 -31
- package/dist/packages/fragno/dist/api/fragment-instantiator.js.map +1 -1
- package/dist/query/column-defaults.js +27 -0
- package/dist/query/column-defaults.js.map +1 -0
- package/dist/query/cursor.d.ts +4 -4
- package/dist/query/cursor.d.ts.map +1 -1
- package/dist/query/cursor.js +8 -6
- package/dist/query/cursor.js.map +1 -1
- package/dist/query/orm/orm.d.ts +1 -1
- package/dist/query/orm/orm.js.map +1 -1
- package/dist/query/serialize/create-sql-serializer.js +30 -0
- package/dist/query/serialize/create-sql-serializer.js.map +1 -0
- package/dist/query/serialize/dialect/mysql-serializer.js +87 -0
- package/dist/query/serialize/dialect/mysql-serializer.js.map +1 -0
- package/dist/query/serialize/dialect/postgres-serializer.js +80 -0
- package/dist/query/serialize/dialect/postgres-serializer.js.map +1 -0
- package/dist/query/serialize/dialect/sqlite-serializer.js +93 -0
- package/dist/query/serialize/dialect/sqlite-serializer.js.map +1 -0
- package/dist/query/serialize/sql-serializer.js +67 -0
- package/dist/query/serialize/sql-serializer.js.map +1 -0
- package/dist/query/{query.d.ts → simple-query-interface.d.ts} +5 -5
- package/dist/query/simple-query-interface.d.ts.map +1 -0
- package/dist/query/{execute-unit-of-work.d.ts → unit-of-work/execute-unit-of-work.d.ts} +50 -4
- package/dist/query/unit-of-work/execute-unit-of-work.d.ts.map +1 -0
- package/dist/query/{execute-unit-of-work.js → unit-of-work/execute-unit-of-work.js} +150 -5
- package/dist/query/unit-of-work/execute-unit-of-work.js.map +1 -0
- package/dist/query/{retry-policy.d.ts → unit-of-work/retry-policy.d.ts} +1 -1
- package/dist/query/unit-of-work/retry-policy.d.ts.map +1 -0
- package/dist/query/{retry-policy.js → unit-of-work/retry-policy.js} +1 -1
- package/dist/query/unit-of-work/retry-policy.js.map +1 -0
- package/dist/query/{unit-of-work.d.ts → unit-of-work/unit-of-work.d.ts} +69 -21
- package/dist/query/unit-of-work/unit-of-work.d.ts.map +1 -0
- package/dist/query/{unit-of-work.js → unit-of-work/unit-of-work.js} +83 -22
- package/dist/query/unit-of-work/unit-of-work.js.map +1 -0
- package/dist/query/value-decoding.js +71 -0
- package/dist/query/value-decoding.js.map +1 -0
- package/dist/query/value-encoding.js +124 -0
- package/dist/query/value-encoding.js.map +1 -0
- package/dist/schema/type-conversion/create-sql-type-mapper.js +29 -0
- package/dist/schema/type-conversion/create-sql-type-mapper.js.map +1 -0
- package/dist/schema/type-conversion/dialect/mysql.js +57 -0
- package/dist/schema/type-conversion/dialect/mysql.js.map +1 -0
- package/dist/schema/type-conversion/dialect/postgres.js +56 -0
- package/dist/schema/type-conversion/dialect/postgres.js.map +1 -0
- package/dist/schema/type-conversion/dialect/sqlite.js +52 -0
- package/dist/schema/type-conversion/dialect/sqlite.js.map +1 -0
- package/dist/schema/type-conversion/type-mapping.js +63 -0
- package/dist/schema/type-conversion/type-mapping.js.map +1 -0
- package/dist/sql-driver/connection/connection-provider.d.ts +13 -0
- package/dist/sql-driver/connection/connection-provider.d.ts.map +1 -0
- package/dist/sql-driver/connection/connection-provider.js +19 -0
- package/dist/sql-driver/connection/connection-provider.js.map +1 -0
- package/dist/sql-driver/connection/single-connection-provider.js +23 -0
- package/dist/sql-driver/connection/single-connection-provider.js.map +1 -0
- package/dist/sql-driver/dialect-adapter/dialect-adapter.d.ts +7 -0
- package/dist/sql-driver/dialect-adapter/dialect-adapter.d.ts.map +1 -0
- package/dist/sql-driver/dialects/dialects.d.ts +2 -0
- package/dist/sql-driver/dialects/dialects.js +3 -0
- package/dist/sql-driver/dialects/durable-object-dialect.d.ts +72 -0
- package/dist/sql-driver/dialects/durable-object-dialect.d.ts.map +1 -0
- package/dist/sql-driver/dialects/durable-object-dialect.js +130 -0
- package/dist/sql-driver/dialects/durable-object-dialect.js.map +1 -0
- package/dist/sql-driver/driver/runtime-driver.d.ts +23 -0
- package/dist/sql-driver/driver/runtime-driver.d.ts.map +1 -0
- package/dist/sql-driver/driver/runtime-driver.js +56 -0
- package/dist/sql-driver/driver/runtime-driver.js.map +1 -0
- package/dist/sql-driver/query-executor/default-query-executor.js +26 -0
- package/dist/sql-driver/query-executor/default-query-executor.js.map +1 -0
- package/dist/sql-driver/query-executor/plugin.d.ts +17 -0
- package/dist/sql-driver/query-executor/plugin.d.ts.map +1 -0
- package/dist/sql-driver/query-executor/query-executor-base.js +25 -0
- package/dist/sql-driver/query-executor/query-executor-base.js.map +1 -0
- package/dist/sql-driver/query-executor/query-executor.d.ts +36 -0
- package/dist/sql-driver/query-executor/query-executor.d.ts.map +1 -0
- package/dist/sql-driver/sql-driver-adapter.d.ts +29 -0
- package/dist/sql-driver/sql-driver-adapter.d.ts.map +1 -0
- package/dist/sql-driver/sql-driver-adapter.js +68 -0
- package/dist/sql-driver/sql-driver-adapter.js.map +1 -0
- package/dist/sql-driver/sql-driver.d.ts +38 -0
- package/dist/sql-driver/sql-driver.d.ts.map +1 -0
- package/dist/sql-driver/sql-driver.js +1 -0
- package/dist/sql-driver/sql.js +50 -0
- package/dist/sql-driver/sql.js.map +1 -0
- package/dist/with-database.d.ts +6 -2
- package/dist/with-database.d.ts.map +1 -1
- package/dist/with-database.js +1 -1
- package/dist/with-database.js.map +1 -1
- package/package.json +39 -12
- package/src/adapters/adapters.ts +8 -5
- package/src/adapters/drizzle/drizzle-adapter-pglite.test.ts +61 -169
- package/src/adapters/drizzle/{drizzle-adapter-sqlite.test.ts → drizzle-adapter-sqlite3.test.ts} +31 -55
- package/src/adapters/drizzle/drizzle-adapter.ts +15 -107
- package/src/adapters/drizzle/generate.test.ts +2 -2
- package/src/adapters/drizzle/generate.ts +78 -34
- package/src/adapters/drizzle/migrate-drizzle.test.ts +19 -0
- package/src/adapters/drizzle/shared.ts +0 -34
- package/src/adapters/drizzle/test-utils.ts +3 -3
- package/src/adapters/generic-sql/README.md +14 -0
- package/src/adapters/generic-sql/driver-config.ts +144 -0
- package/src/adapters/generic-sql/generic-sql-adapter.test.ts +50 -0
- package/src/adapters/generic-sql/generic-sql-adapter.ts +146 -0
- package/src/adapters/generic-sql/generic-sql-uow-executor.ts +130 -0
- package/src/adapters/generic-sql/migration/cold-kysely.ts +55 -0
- package/src/adapters/{kysely/migration/execute-mysql.test.ts → generic-sql/migration/dialect/mysql.test.ts} +342 -484
- package/src/adapters/generic-sql/migration/dialect/mysql.ts +104 -0
- package/src/adapters/generic-sql/migration/dialect/postgres.test.ts +1008 -0
- package/src/adapters/generic-sql/migration/dialect/postgres.ts +113 -0
- package/src/adapters/{kysely/migration/execute-sqlite.test.ts → generic-sql/migration/dialect/sqlite.test.ts} +307 -510
- package/src/adapters/generic-sql/migration/dialect/sqlite.ts +189 -0
- package/src/adapters/generic-sql/migration/executor.ts +33 -0
- package/src/adapters/generic-sql/migration/prepared-migrations.test.ts +661 -0
- package/src/adapters/generic-sql/migration/prepared-migrations.ts +214 -0
- package/src/adapters/generic-sql/migration/sql-generator.ts +413 -0
- package/src/adapters/generic-sql/query/create-sql-query-compiler.ts +36 -0
- package/src/adapters/generic-sql/query/cursor-utils.ts +56 -0
- package/src/adapters/generic-sql/query/dialect/mysql.ts +34 -0
- package/src/adapters/generic-sql/query/dialect/postgres.ts +32 -0
- package/src/adapters/generic-sql/query/dialect/sqlite.ts +32 -0
- package/src/adapters/generic-sql/query/generic-sql-uow-operation-compiler.test.ts +1568 -0
- package/src/adapters/generic-sql/query/generic-sql-uow-operation-compiler.ts +314 -0
- package/src/adapters/generic-sql/query/select-builder.test.ts +256 -0
- package/src/adapters/generic-sql/query/select-builder.ts +137 -0
- package/src/adapters/generic-sql/query/sql-query-compiler.test.ts +195 -0
- package/src/adapters/generic-sql/query/sql-query-compiler.ts +367 -0
- package/src/adapters/generic-sql/query/where-builder.test.ts +744 -0
- package/src/adapters/generic-sql/query/where-builder.ts +211 -0
- package/src/adapters/generic-sql/result-interpreter.ts +102 -0
- package/src/adapters/generic-sql/test/generic-drizzle-adapter-sqlite3.test.ts +899 -0
- package/src/adapters/generic-sql/uow-decoder.test.ts +399 -0
- package/src/adapters/generic-sql/uow-decoder.ts +152 -0
- package/src/adapters/generic-sql/uow-encoder.test.ts +183 -0
- package/src/adapters/generic-sql/uow-encoder.ts +131 -0
- package/src/adapters/kysely/kysely-adapter-pglite.test.ts +26 -76
- package/src/adapters/kysely/{kysely-adapter-sqlite.test.ts → kysely-adapter-sqlocal.test.ts} +76 -17
- package/src/adapters/kysely/kysely-adapter.ts +10 -250
- package/src/adapters/{drizzle/drizzle-query.ts → shared/from-unit-of-work-compiler.ts} +110 -104
- package/src/adapters/shared/table-name-mapper.ts +50 -0
- package/src/adapters/shared/uow-operation-compiler.ts +211 -0
- package/src/db-fragment-definition-builder.test.ts +2 -2
- package/src/db-fragment-definition-builder.ts +461 -50
- package/src/db-fragment-instantiator.test.ts +78 -2
- package/src/db-fragment-integration.test.ts +14 -16
- package/src/fragments/internal-fragment.test.ts +434 -45
- package/src/fragments/internal-fragment.ts +183 -20
- package/src/hooks/hooks.test.ts +587 -0
- package/src/hooks/hooks.ts +179 -0
- package/src/migration-engine/generation-engine.test.ts +44 -54
- package/src/migration-engine/generation-engine.ts +48 -94
- package/src/mod.ts +117 -29
- package/src/query/column-defaults.ts +49 -0
- package/src/query/cursor.test.ts +31 -6
- package/src/query/cursor.ts +11 -7
- package/src/query/orm/orm.ts +1 -1
- package/src/query/query-type.test.ts +9 -9
- package/src/query/serialize/create-sql-serializer.ts +34 -0
- package/src/query/serialize/dialect/mysql-serializer.ts +142 -0
- package/src/query/serialize/dialect/postgres-serializer.ts +129 -0
- package/src/query/serialize/dialect/sqlite-serializer.test.ts +251 -0
- package/src/query/serialize/dialect/sqlite-serializer.ts +156 -0
- package/src/query/serialize/sql-serializer.ts +143 -0
- package/src/query/{query.ts → simple-query-interface.ts} +2 -2
- package/src/query/{execute-unit-of-work.test.ts → unit-of-work/execute-unit-of-work.test.ts} +571 -17
- package/src/query/{execute-unit-of-work.ts → unit-of-work/execute-unit-of-work.ts} +361 -12
- package/src/query/{unit-of-work-coordinator.test.ts → unit-of-work/unit-of-work-coordinator.test.ts} +290 -44
- package/src/query/{unit-of-work-types.test.ts → unit-of-work/unit-of-work-types.test.ts} +5 -3
- package/src/query/{unit-of-work.test.ts → unit-of-work/unit-of-work.test.ts} +100 -9
- package/src/query/{unit-of-work.ts → unit-of-work/unit-of-work.ts} +174 -49
- package/src/query/{result-transform.test.ts → value-decoding.test.ts} +45 -427
- package/src/query/value-decoding.ts +113 -0
- package/src/query/value-encoding.test.ts +390 -0
- package/src/query/value-encoding.ts +168 -0
- package/src/schema/create.test.ts +5 -1
- package/src/schema/serialize.test.ts +165 -407
- package/src/schema/type-conversion/create-sql-type-mapper.ts +28 -0
- package/src/schema/type-conversion/dialect/mysql.ts +64 -0
- package/src/schema/type-conversion/dialect/postgres.ts +62 -0
- package/src/schema/type-conversion/dialect/sqlite.ts +63 -0
- package/src/schema/type-conversion/type-mapping.test.ts +137 -0
- package/src/schema/type-conversion/type-mapping.ts +153 -0
- package/src/shared/connection-pool.ts +5 -5
- package/src/sql-driver/better-sqlite3.test.ts +126 -0
- package/src/sql-driver/connection/connection-provider.ts +27 -0
- package/src/sql-driver/connection/single-connection-provider.ts +42 -0
- package/src/sql-driver/dialect-adapter/dialect-adapter.ts +9 -0
- package/src/sql-driver/dialect-adapter/sqlite-dialect-adapter.ts +7 -0
- package/src/sql-driver/dialects/dialects.ts +1 -0
- package/src/sql-driver/dialects/durable-object-dialect.ts +260 -0
- package/src/sql-driver/driver/runtime-driver.ts +91 -0
- package/src/sql-driver/query-executor/default-query-executor.ts +38 -0
- package/src/sql-driver/query-executor/plugin.ts +22 -0
- package/src/sql-driver/query-executor/query-executor-base.ts +53 -0
- package/src/sql-driver/query-executor/query-executor.ts +44 -0
- package/src/sql-driver/sql-driver-adapter.ts +96 -0
- package/src/sql-driver/sql-driver.ts +53 -0
- package/src/sql-driver/sql.ts +57 -0
- package/src/sql-driver/sqlocal.test.ts +117 -0
- package/src/with-database.ts +35 -23
- package/tsdown.config.ts +7 -2
- package/dist/adapters/drizzle/drizzle-connection-pool.js +0 -40
- package/dist/adapters/drizzle/drizzle-connection-pool.js.map +0 -1
- package/dist/adapters/drizzle/drizzle-query.d.ts +0 -23
- package/dist/adapters/drizzle/drizzle-query.d.ts.map +0 -1
- package/dist/adapters/drizzle/drizzle-query.js.map +0 -1
- package/dist/adapters/drizzle/drizzle-uow-compiler.d.ts +0 -10
- package/dist/adapters/drizzle/drizzle-uow-compiler.d.ts.map +0 -1
- package/dist/adapters/drizzle/drizzle-uow-compiler.js +0 -334
- package/dist/adapters/drizzle/drizzle-uow-compiler.js.map +0 -1
- package/dist/adapters/drizzle/drizzle-uow-decoder.js +0 -123
- package/dist/adapters/drizzle/drizzle-uow-decoder.js.map +0 -1
- package/dist/adapters/drizzle/drizzle-uow-executor.js +0 -160
- package/dist/adapters/drizzle/drizzle-uow-executor.js.map +0 -1
- package/dist/adapters/drizzle/join-column-utils.js +0 -28
- package/dist/adapters/drizzle/join-column-utils.js.map +0 -1
- package/dist/adapters/drizzle/shared.d.ts.map +0 -1
- package/dist/adapters/drizzle/shared.js +0 -35
- package/dist/adapters/drizzle/shared.js.map +0 -1
- package/dist/adapters/kysely/kysely-connection-pool.js +0 -41
- package/dist/adapters/kysely/kysely-connection-pool.js.map +0 -1
- package/dist/adapters/kysely/kysely-query-builder.js +0 -321
- package/dist/adapters/kysely/kysely-query-builder.js.map +0 -1
- package/dist/adapters/kysely/kysely-query-compiler.js +0 -67
- package/dist/adapters/kysely/kysely-query-compiler.js.map +0 -1
- package/dist/adapters/kysely/kysely-query.d.ts +0 -23
- package/dist/adapters/kysely/kysely-query.d.ts.map +0 -1
- package/dist/adapters/kysely/kysely-query.js +0 -230
- package/dist/adapters/kysely/kysely-query.js.map +0 -1
- package/dist/adapters/kysely/kysely-shared.d.ts +0 -14
- package/dist/adapters/kysely/kysely-shared.d.ts.map +0 -1
- package/dist/adapters/kysely/kysely-shared.js +0 -33
- package/dist/adapters/kysely/kysely-shared.js.map +0 -1
- package/dist/adapters/kysely/kysely-uow-compiler.js +0 -193
- package/dist/adapters/kysely/kysely-uow-compiler.js.map +0 -1
- package/dist/adapters/kysely/kysely-uow-executor.js +0 -93
- package/dist/adapters/kysely/kysely-uow-executor.js.map +0 -1
- package/dist/adapters/kysely/migration/execute-base.js +0 -128
- package/dist/adapters/kysely/migration/execute-base.js.map +0 -1
- package/dist/adapters/kysely/migration/execute-factory.js +0 -34
- package/dist/adapters/kysely/migration/execute-factory.js.map +0 -1
- package/dist/adapters/kysely/migration/execute-mssql.js +0 -112
- package/dist/adapters/kysely/migration/execute-mssql.js.map +0 -1
- package/dist/adapters/kysely/migration/execute-mysql.js +0 -93
- package/dist/adapters/kysely/migration/execute-mysql.js.map +0 -1
- package/dist/adapters/kysely/migration/execute-postgres.js +0 -104
- package/dist/adapters/kysely/migration/execute-postgres.js.map +0 -1
- package/dist/adapters/kysely/migration/execute-sqlite.js +0 -123
- package/dist/adapters/kysely/migration/execute-sqlite.js.map +0 -1
- package/dist/adapters/kysely/migration/execute.js +0 -34
- package/dist/adapters/kysely/migration/execute.js.map +0 -1
- package/dist/migration-engine/create.d.ts +0 -37
- package/dist/migration-engine/create.d.ts.map +0 -1
- package/dist/migration-engine/create.js +0 -58
- package/dist/migration-engine/create.js.map +0 -1
- package/dist/migration-engine/shared.d.ts +0 -112
- package/dist/migration-engine/shared.d.ts.map +0 -1
- package/dist/node_modules/.pnpm/rou3@0.7.8/node_modules/rou3/dist/index.js.map +0 -1
- package/dist/query/execute-unit-of-work.d.ts.map +0 -1
- package/dist/query/execute-unit-of-work.js.map +0 -1
- package/dist/query/query.d.ts.map +0 -1
- package/dist/query/result-transform.js +0 -170
- package/dist/query/result-transform.js.map +0 -1
- package/dist/query/retry-policy.d.ts.map +0 -1
- package/dist/query/retry-policy.js.map +0 -1
- package/dist/query/unit-of-work.d.ts.map +0 -1
- package/dist/query/unit-of-work.js.map +0 -1
- package/dist/schema/serialize.js +0 -111
- package/dist/schema/serialize.js.map +0 -1
- package/src/adapters/drizzle/drizzle-adapter.test.ts +0 -122
- package/src/adapters/drizzle/drizzle-connection-pool.ts +0 -66
- package/src/adapters/drizzle/drizzle-query.test.ts +0 -499
- package/src/adapters/drizzle/drizzle-uow-compiler-mysql.test.ts +0 -1442
- package/src/adapters/drizzle/drizzle-uow-compiler-sqlite.test.ts +0 -1414
- package/src/adapters/drizzle/drizzle-uow-compiler.test.ts +0 -1400
- package/src/adapters/drizzle/drizzle-uow-compiler.ts +0 -677
- package/src/adapters/drizzle/drizzle-uow-decoder.ts +0 -228
- package/src/adapters/drizzle/drizzle-uow-executor.ts +0 -309
- package/src/adapters/drizzle/join-column-utils.test.ts +0 -79
- package/src/adapters/drizzle/join-column-utils.ts +0 -39
- package/src/adapters/kysely/kysely-connection-pool.ts +0 -70
- package/src/adapters/kysely/kysely-query-builder.test.ts +0 -1344
- package/src/adapters/kysely/kysely-query-builder.ts +0 -666
- package/src/adapters/kysely/kysely-query-compiler.ts +0 -127
- package/src/adapters/kysely/kysely-query.test.ts +0 -498
- package/src/adapters/kysely/kysely-query.ts +0 -399
- package/src/adapters/kysely/kysely-shared.ts +0 -57
- package/src/adapters/kysely/kysely-uow-compiler.test.ts +0 -986
- package/src/adapters/kysely/kysely-uow-compiler.ts +0 -350
- package/src/adapters/kysely/kysely-uow-executor.ts +0 -164
- package/src/adapters/kysely/kysely-uow-joins.test.ts +0 -794
- package/src/adapters/kysely/migration/execute-base.ts +0 -256
- package/src/adapters/kysely/migration/execute-factory.ts +0 -53
- package/src/adapters/kysely/migration/execute-mssql.ts +0 -250
- package/src/adapters/kysely/migration/execute-mysql.ts +0 -211
- package/src/adapters/kysely/migration/execute-postgres.test.ts +0 -2657
- package/src/adapters/kysely/migration/execute-postgres.ts +0 -234
- package/src/adapters/kysely/migration/execute-sqlite.ts +0 -247
- package/src/adapters/kysely/migration/execute.ts +0 -50
- package/src/adapters/kysely/migration/kysely-migrator.test.ts +0 -261
- package/src/query/result-transform.ts +0 -274
- package/src/schema/serialize.ts +0 -407
- /package/dist/query/{query.js → simple-query-interface.js} +0 -0
- /package/src/query/{retry-policy.test.ts → unit-of-work/retry-policy.test.ts} +0 -0
- /package/src/query/{retry-policy.ts → unit-of-work/retry-policy.ts} +0 -0
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { AnySchema, AnyTable, FragnoId, IdColumn, Index, Relation } from "
|
|
2
|
-
import { Condition, ConditionBuilder } from "
|
|
3
|
-
import { CompiledJoin } from "
|
|
4
|
-
import { Cursor, CursorResult } from "
|
|
5
|
-
import { Prettify } from "
|
|
6
|
-
import {
|
|
1
|
+
import { AnySchema, AnyTable, FragnoId, IdColumn, Index, Relation } from "../../schema/create.js";
|
|
2
|
+
import { Condition, ConditionBuilder } from "../condition-builder.js";
|
|
3
|
+
import { CompiledJoin } from "../orm/orm.js";
|
|
4
|
+
import { Cursor, CursorResult } from "../cursor.js";
|
|
5
|
+
import { Prettify } from "../../util/types.js";
|
|
6
|
+
import { HookPayload, HooksMap, TriggerHookOptions, TriggeredHook } from "../../hooks/hooks.js";
|
|
7
|
+
import { ExtractJoinOut, ExtractSelect, SelectClause, SelectResult, TableToInsertValues, TableToUpdateValues } from "../simple-query-interface.js";
|
|
7
8
|
|
|
8
|
-
//#region src/query/unit-of-work.d.ts
|
|
9
|
+
//#region src/query/unit-of-work/unit-of-work.d.ts
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
12
|
* Builder for updateMany operations that supports both whereIndex and set chaining
|
|
@@ -149,12 +150,16 @@ type MutationOperation<TSchema extends AnySchema, TTable extends AnyTable = TSch
|
|
|
149
150
|
*/
|
|
150
151
|
interface CompiledMutation<TOutput> {
|
|
151
152
|
query: TOutput;
|
|
153
|
+
/**
|
|
154
|
+
* The type of mutation operation (create, update, delete, or check).
|
|
155
|
+
*/
|
|
156
|
+
op: "create" | "update" | "delete" | "check";
|
|
152
157
|
/**
|
|
153
158
|
* Number of rows this operation must affect for the transaction to succeed.
|
|
154
159
|
* If actual affected rows doesn't match, it indicates a version conflict.
|
|
155
160
|
* null means don't check affected rows (e.g., for create operations).
|
|
156
161
|
*/
|
|
157
|
-
expectedAffectedRows:
|
|
162
|
+
expectedAffectedRows: bigint | null;
|
|
158
163
|
/**
|
|
159
164
|
* Number of rows this SELECT query must return for the transaction to succeed.
|
|
160
165
|
* Used for check operations to verify version without modifying data.
|
|
@@ -210,7 +215,7 @@ interface UOWDecoder<TRawInput = unknown> {
|
|
|
210
215
|
* @param operations - Array of retrieval operations that produced these results
|
|
211
216
|
* @returns Decoded results in application format
|
|
212
217
|
*/
|
|
213
|
-
(rawResults: TRawInput[], operations: RetrievalOperation<AnySchema>[]): unknown[];
|
|
218
|
+
decode(rawResults: TRawInput[], operations: RetrievalOperation<AnySchema>[]): unknown[];
|
|
214
219
|
}
|
|
215
220
|
/**
|
|
216
221
|
* Builder for find operations in Unit of Work
|
|
@@ -250,6 +255,7 @@ declare class FindBuilder<TTable extends AnyTable, TSelect extends SelectClause<
|
|
|
250
255
|
before(cursor: Cursor | string): this;
|
|
251
256
|
/**
|
|
252
257
|
* Set the number of results per page
|
|
258
|
+
* @throws {RangeError} If size is not a positive integer
|
|
253
259
|
*/
|
|
254
260
|
pageSize(size: number): this;
|
|
255
261
|
/**
|
|
@@ -334,6 +340,7 @@ declare class JoinFindBuilder<TTable extends AnyTable, TSelect extends SelectCla
|
|
|
334
340
|
orderByIndex<TIndexName extends ValidIndexName<TTable>>(indexName: TIndexName, direction: "asc" | "desc"): this;
|
|
335
341
|
/**
|
|
336
342
|
* Set the number of results to return
|
|
343
|
+
* @throws {RangeError} If size is not a positive integer
|
|
337
344
|
*/
|
|
338
345
|
pageSize(size: number): this;
|
|
339
346
|
/**
|
|
@@ -387,9 +394,16 @@ interface IUnitOfWork {
|
|
|
387
394
|
getRetrievalOperations(): ReadonlyArray<RetrievalOperation<AnySchema>>;
|
|
388
395
|
getMutationOperations(): ReadonlyArray<MutationOperation<AnySchema>>;
|
|
389
396
|
getCreatedIds(): FragnoId[];
|
|
390
|
-
restrict(
|
|
397
|
+
restrict(options?: {
|
|
398
|
+
readyFor?: "mutation" | "retrieval" | "none";
|
|
399
|
+
}): IUnitOfWork;
|
|
400
|
+
signalReadyForRetrieval(): void;
|
|
401
|
+
signalReadyForMutation(): void;
|
|
391
402
|
reset(): void;
|
|
392
|
-
forSchema<TOtherSchema extends AnySchema>(schema: TOtherSchema): TypedUnitOfWork<TOtherSchema, [], any>;
|
|
403
|
+
forSchema<TOtherSchema extends AnySchema, TOtherHooks extends HooksMap = {}>(schema: TOtherSchema, hooks?: TOtherHooks): TypedUnitOfWork<TOtherSchema, [], any, TOtherHooks>;
|
|
404
|
+
registerSchema(schema: AnySchema, namespace: string): void;
|
|
405
|
+
triggerHook(hookName: string, payload: unknown, options?: TriggerHookOptions): void;
|
|
406
|
+
getTriggeredHooks(): readonly TriggeredHook[];
|
|
393
407
|
}
|
|
394
408
|
/**
|
|
395
409
|
* Restricted UOW interface without execute methods.
|
|
@@ -439,18 +453,33 @@ interface UnitOfWorkConfig {
|
|
|
439
453
|
declare class UnitOfWork<const TRawInput = unknown> implements IUnitOfWork {
|
|
440
454
|
#private;
|
|
441
455
|
constructor(compiler: UOWCompiler<unknown>, executor: UOWExecutor<unknown, TRawInput>, decoder: UOWDecoder<TRawInput>, name?: string, config?: UnitOfWorkConfig, schemaNamespaceMap?: WeakMap<AnySchema, string>);
|
|
456
|
+
/**
|
|
457
|
+
* Register a schema with its namespace for cross-fragment operations.
|
|
458
|
+
* This is used for internal fragments like hooks that need to create
|
|
459
|
+
* records in a different schema during the same transaction.
|
|
460
|
+
*/
|
|
461
|
+
registerSchema(schema: AnySchema, namespace: string): void;
|
|
442
462
|
/**
|
|
443
463
|
* Get a schema-specific typed view of this UOW for type-safe operations.
|
|
444
464
|
* Returns a wrapper that provides typed operations for the given schema.
|
|
445
465
|
* The namespace is automatically resolved from the schema-namespace map.
|
|
466
|
+
* The optional hooks parameter is for type inference only - pass your hooks map
|
|
467
|
+
* to get proper typing for triggerHook. The value is not used at runtime.
|
|
446
468
|
*/
|
|
447
|
-
forSchema<TOtherSchema extends AnySchema,
|
|
469
|
+
forSchema<TOtherSchema extends AnySchema, TOtherHooks extends HooksMap = {}>(schema: TOtherSchema, _hooks?: TOtherHooks): TypedUnitOfWork<TOtherSchema, [], TRawInput, TOtherHooks>;
|
|
448
470
|
/**
|
|
449
471
|
* Create a restricted child UOW that cannot execute phases.
|
|
450
472
|
* The child shares the same operation storage but must signal readiness
|
|
451
473
|
* before the parent can execute each phase.
|
|
474
|
+
*
|
|
475
|
+
* @param options.readyFor - Controls automatic readiness signaling:
|
|
476
|
+
* - "mutation" (default): Signals ready for both retrieval and mutation immediately
|
|
477
|
+
* - "retrieval": Signals ready for retrieval only
|
|
478
|
+
* - "none": No automatic signaling, caller must signal manually
|
|
452
479
|
*/
|
|
453
|
-
restrict(
|
|
480
|
+
restrict(options?: {
|
|
481
|
+
readyFor?: "mutation" | "retrieval" | "none";
|
|
482
|
+
}): UnitOfWork<TRawInput>;
|
|
454
483
|
/**
|
|
455
484
|
* Signal that this child is ready for retrieval phase execution.
|
|
456
485
|
* Only valid for restricted (child) UOWs.
|
|
@@ -466,6 +495,14 @@ declare class UnitOfWork<const TRawInput = unknown> implements IUnitOfWork {
|
|
|
466
495
|
* Clears operations, resets state, and resets phase promises.
|
|
467
496
|
*/
|
|
468
497
|
reset(): void;
|
|
498
|
+
/**
|
|
499
|
+
* Trigger a hook to be executed after the transaction commits.
|
|
500
|
+
*/
|
|
501
|
+
triggerHook(hookName: string, payload: unknown, options?: TriggerHookOptions): void;
|
|
502
|
+
/**
|
|
503
|
+
* Get all triggered hooks for this UOW.
|
|
504
|
+
*/
|
|
505
|
+
getTriggeredHooks(): ReadonlyArray<TriggeredHook>;
|
|
469
506
|
get state(): UOWState;
|
|
470
507
|
get name(): string | undefined;
|
|
471
508
|
get nonce(): string;
|
|
@@ -533,7 +570,7 @@ declare class UnitOfWork<const TRawInput = unknown> implements IUnitOfWork {
|
|
|
533
570
|
* All operations are stored in the underlying UOW, but this facade ensures type safety and
|
|
534
571
|
* filters retrieval results to only include operations added through this facade.
|
|
535
572
|
*/
|
|
536
|
-
declare class TypedUnitOfWork<const TSchema extends AnySchema, const TRetrievalResults extends unknown[] = [], const TRawInput = unknown> implements IUnitOfWork {
|
|
573
|
+
declare class TypedUnitOfWork<const TSchema extends AnySchema, const TRetrievalResults extends unknown[] = [], const TRawInput = unknown, const THooks extends HooksMap = {}> implements IUnitOfWork {
|
|
537
574
|
#private;
|
|
538
575
|
constructor(schema: TSchema, namespace: string | undefined, uow: UnitOfWork<TRawInput>);
|
|
539
576
|
get $results(): Prettify<TRetrievalResults>;
|
|
@@ -550,19 +587,24 @@ declare class TypedUnitOfWork<const TSchema extends AnySchema, const TRetrievalR
|
|
|
550
587
|
executeMutations(): Promise<{
|
|
551
588
|
success: boolean;
|
|
552
589
|
}>;
|
|
553
|
-
restrict(
|
|
590
|
+
restrict(options?: {
|
|
591
|
+
readyFor?: "mutation" | "retrieval" | "none";
|
|
592
|
+
}): IUnitOfWork;
|
|
593
|
+
signalReadyForRetrieval(): void;
|
|
594
|
+
signalReadyForMutation(): void;
|
|
554
595
|
reset(): void;
|
|
555
|
-
forSchema<TOtherSchema extends AnySchema>(schema: TOtherSchema): TypedUnitOfWork<TOtherSchema, [], TRawInput>;
|
|
596
|
+
forSchema<TOtherSchema extends AnySchema, TOtherHooks extends HooksMap = {}>(schema: TOtherSchema, hooks?: TOtherHooks): TypedUnitOfWork<TOtherSchema, [], TRawInput, TOtherHooks>;
|
|
597
|
+
registerSchema(schema: AnySchema, namespace: string): void;
|
|
556
598
|
compile<TOutput>(compiler: UOWCompiler<TOutput>): {
|
|
557
599
|
name?: string;
|
|
558
600
|
retrievalBatch: TOutput[];
|
|
559
601
|
mutationBatch: CompiledMutation<TOutput>[];
|
|
560
602
|
};
|
|
561
|
-
find<TTableName extends keyof TSchema["tables"] & string, const TBuilderResult>(tableName: TTableName, builderFn: (builder: Omit<FindBuilder<TSchema["tables"][TTableName]>, "build">) => TBuilderResult): TypedUnitOfWork<TSchema, [...TRetrievalResults, SelectResult<TSchema["tables"][TTableName], ExtractJoinOut<TBuilderResult>, Extract<ExtractSelect<TBuilderResult>, SelectClause<TSchema["tables"][TTableName]>>>[]], TRawInput>;
|
|
562
|
-
find<TTableName extends keyof TSchema["tables"] & string>(tableName: TTableName): TypedUnitOfWork<TSchema, [...TRetrievalResults, SelectResult<TSchema["tables"][TTableName], {}, true>[]], TRawInput>;
|
|
563
|
-
findFirst<TTableName extends keyof TSchema["tables"] & string, const TBuilderResult>(tableName: TTableName, builderFn: (builder: Omit<FindBuilder<TSchema["tables"][TTableName]>, "build">) => TBuilderResult): TypedUnitOfWork<TSchema, [...TRetrievalResults, SelectResult<TSchema["tables"][TTableName], ExtractJoinOut<TBuilderResult>, Extract<ExtractSelect<TBuilderResult>, SelectClause<TSchema["tables"][TTableName]>>> | null], TRawInput>;
|
|
564
|
-
findFirst<TTableName extends keyof TSchema["tables"] & string>(tableName: TTableName): TypedUnitOfWork<TSchema, [...TRetrievalResults, SelectResult<TSchema["tables"][TTableName], {}, true> | null], TRawInput>;
|
|
565
|
-
findWithCursor<TTableName extends keyof TSchema["tables"] & string, const TBuilderResult>(tableName: TTableName, builderFn: (builder: Omit<FindBuilder<TSchema["tables"][TTableName]>, "build">) => TBuilderResult): TypedUnitOfWork<TSchema, [...TRetrievalResults, CursorResult<SelectResult<TSchema["tables"][TTableName], ExtractJoinOut<TBuilderResult>, Extract<ExtractSelect<TBuilderResult>, SelectClause<TSchema["tables"][TTableName]>>>>], TRawInput>;
|
|
603
|
+
find<TTableName extends keyof TSchema["tables"] & string, const TBuilderResult>(tableName: TTableName, builderFn: (builder: Omit<FindBuilder<TSchema["tables"][TTableName]>, "build">) => TBuilderResult): TypedUnitOfWork<TSchema, [...TRetrievalResults, SelectResult<TSchema["tables"][TTableName], ExtractJoinOut<TBuilderResult>, Extract<ExtractSelect<TBuilderResult>, SelectClause<TSchema["tables"][TTableName]>>>[]], TRawInput, THooks>;
|
|
604
|
+
find<TTableName extends keyof TSchema["tables"] & string>(tableName: TTableName): TypedUnitOfWork<TSchema, [...TRetrievalResults, SelectResult<TSchema["tables"][TTableName], {}, true>[]], TRawInput, THooks>;
|
|
605
|
+
findFirst<TTableName extends keyof TSchema["tables"] & string, const TBuilderResult>(tableName: TTableName, builderFn: (builder: Omit<FindBuilder<TSchema["tables"][TTableName]>, "build">) => TBuilderResult): TypedUnitOfWork<TSchema, [...TRetrievalResults, SelectResult<TSchema["tables"][TTableName], ExtractJoinOut<TBuilderResult>, Extract<ExtractSelect<TBuilderResult>, SelectClause<TSchema["tables"][TTableName]>>> | null], TRawInput, THooks>;
|
|
606
|
+
findFirst<TTableName extends keyof TSchema["tables"] & string>(tableName: TTableName): TypedUnitOfWork<TSchema, [...TRetrievalResults, SelectResult<TSchema["tables"][TTableName], {}, true> | null], TRawInput, THooks>;
|
|
607
|
+
findWithCursor<TTableName extends keyof TSchema["tables"] & string, const TBuilderResult>(tableName: TTableName, builderFn: (builder: Omit<FindBuilder<TSchema["tables"][TTableName]>, "build">) => TBuilderResult): TypedUnitOfWork<TSchema, [...TRetrievalResults, CursorResult<SelectResult<TSchema["tables"][TTableName], ExtractJoinOut<TBuilderResult>, Extract<ExtractSelect<TBuilderResult>, SelectClause<TSchema["tables"][TTableName]>>>>], TRawInput, THooks>;
|
|
566
608
|
create<TableName extends keyof TSchema["tables"] & string>(tableName: TableName, values: TableToInsertValues<TSchema["tables"][TableName]>): FragnoId;
|
|
567
609
|
update<TableName extends keyof TSchema["tables"] & string>(tableName: TableName, id: FragnoId | string, builderFn: (builder: Omit<UpdateBuilder<TSchema["tables"][TableName]>, "build">) => Omit<UpdateBuilder<TSchema["tables"][TableName]>, "build"> | void): void;
|
|
568
610
|
delete<TableName extends keyof TSchema["tables"] & string>(tableName: TableName, id: FragnoId | string, builderFn?: (builder: Omit<DeleteBuilder, "build">) => Omit<DeleteBuilder, "build"> | void): void;
|
|
@@ -583,6 +625,12 @@ declare class TypedUnitOfWork<const TSchema extends AnySchema, const TRetrievalR
|
|
|
583
625
|
* ```
|
|
584
626
|
*/
|
|
585
627
|
check<TableName extends keyof TSchema["tables"] & string>(tableName: TableName, id: FragnoId): void;
|
|
628
|
+
get $hooks(): THooks;
|
|
629
|
+
/**
|
|
630
|
+
* Trigger a hook to be executed after the transaction commits.
|
|
631
|
+
*/
|
|
632
|
+
triggerHook<K$1 extends keyof THooks & string>(hookName: K$1, payload: HookPayload<THooks[K$1]>, options?: TriggerHookOptions): void;
|
|
633
|
+
getTriggeredHooks(): ReadonlyArray<TriggeredHook>;
|
|
586
634
|
}
|
|
587
635
|
//#endregion
|
|
588
636
|
export { CompiledMutation, DeleteBuilder, FindBuilder, IUnitOfWork, IUnitOfWorkRestricted, IndexColumns, IndexedConditionBuilder, IndexedJoinBuilder, InferIdColumnName, JoinFindBuilder, MutationOperation, MutationResult, RetrievalOperation, TypedUnitOfWork, UOWCompiler, UOWDecoder, UOWExecutor, UOWState, UnitOfWork, UnitOfWorkConfig, UpdateBuilder, UpdateManyBuilder, ValidIndexName, buildJoinIndexed, createUnitOfWork };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unit-of-work.d.ts","names":[],"sources":["../../../src/query/unit-of-work/unit-of-work.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { FragnoId } from "
|
|
2
|
-
import { buildCondition } from "
|
|
3
|
-
import { Cursor } from "
|
|
1
|
+
import { FragnoId } from "../../schema/create.js";
|
|
2
|
+
import { buildCondition } from "../condition-builder.js";
|
|
3
|
+
import { Cursor } from "../cursor.js";
|
|
4
4
|
|
|
5
|
-
//#region src/query/unit-of-work.ts
|
|
5
|
+
//#region src/query/unit-of-work/unit-of-work.ts
|
|
6
6
|
/**
|
|
7
7
|
* Builder for find operations in Unit of Work
|
|
8
8
|
*/
|
|
@@ -83,8 +83,10 @@ var FindBuilder = class {
|
|
|
83
83
|
}
|
|
84
84
|
/**
|
|
85
85
|
* Set the number of results per page
|
|
86
|
+
* @throws {RangeError} If size is not a positive integer
|
|
86
87
|
*/
|
|
87
88
|
pageSize(size) {
|
|
89
|
+
if (!Number.isInteger(size) || size <= 0) throw new RangeError(`pageSize must be a positive integer, received: ${size}`);
|
|
88
90
|
this.#pageSizeValue = size;
|
|
89
91
|
return this;
|
|
90
92
|
}
|
|
@@ -260,8 +262,10 @@ var JoinFindBuilder = class {
|
|
|
260
262
|
}
|
|
261
263
|
/**
|
|
262
264
|
* Set the number of results to return
|
|
265
|
+
* @throws {RangeError} If size is not a positive integer
|
|
263
266
|
*/
|
|
264
267
|
pageSize(size) {
|
|
268
|
+
if (!Number.isInteger(size) || size <= 0) throw new RangeError(`pageSize must be a positive integer, received: ${size}`);
|
|
265
269
|
this.#pageSizeValue = size;
|
|
266
270
|
return this;
|
|
267
271
|
}
|
|
@@ -546,36 +550,51 @@ var UnitOfWork = class UnitOfWork {
|
|
|
546
550
|
#retrievalError = null;
|
|
547
551
|
#mutationError = null;
|
|
548
552
|
#coordinator = new UOWChildCoordinator();
|
|
553
|
+
#triggeredHooks = [];
|
|
549
554
|
constructor(compiler, executor, decoder, name, config, schemaNamespaceMap) {
|
|
550
555
|
this.#compiler = compiler;
|
|
551
556
|
this.#executor = executor;
|
|
552
557
|
this.#decoder = decoder;
|
|
553
|
-
this.#schemaNamespaceMap = schemaNamespaceMap;
|
|
558
|
+
this.#schemaNamespaceMap = schemaNamespaceMap ?? /* @__PURE__ */ new WeakMap();
|
|
554
559
|
this.#name = name;
|
|
555
560
|
this.#config = config;
|
|
556
561
|
this.#nonce = config?.nonce ?? crypto.randomUUID();
|
|
557
562
|
}
|
|
558
563
|
/**
|
|
564
|
+
* Register a schema with its namespace for cross-fragment operations.
|
|
565
|
+
* This is used for internal fragments like hooks that need to create
|
|
566
|
+
* records in a different schema during the same transaction.
|
|
567
|
+
*/
|
|
568
|
+
registerSchema(schema, namespace) {
|
|
569
|
+
this.#schemaNamespaceMap.set(schema, namespace);
|
|
570
|
+
}
|
|
571
|
+
/**
|
|
559
572
|
* Get a schema-specific typed view of this UOW for type-safe operations.
|
|
560
573
|
* Returns a wrapper that provides typed operations for the given schema.
|
|
561
574
|
* The namespace is automatically resolved from the schema-namespace map.
|
|
575
|
+
* The optional hooks parameter is for type inference only - pass your hooks map
|
|
576
|
+
* to get proper typing for triggerHook. The value is not used at runtime.
|
|
562
577
|
*/
|
|
563
|
-
forSchema(schema) {
|
|
564
|
-
|
|
565
|
-
return new TypedUnitOfWork(schema, resolvedNamespace, this);
|
|
578
|
+
forSchema(schema, _hooks) {
|
|
579
|
+
return new TypedUnitOfWork(schema, this.#schemaNamespaceMap.get(schema), this);
|
|
566
580
|
}
|
|
567
581
|
/**
|
|
568
582
|
* Create a restricted child UOW that cannot execute phases.
|
|
569
583
|
* The child shares the same operation storage but must signal readiness
|
|
570
584
|
* before the parent can execute each phase.
|
|
585
|
+
*
|
|
586
|
+
* @param options.readyFor - Controls automatic readiness signaling:
|
|
587
|
+
* - "mutation" (default): Signals ready for both retrieval and mutation immediately
|
|
588
|
+
* - "retrieval": Signals ready for retrieval only
|
|
589
|
+
* - "none": No automatic signaling, caller must signal manually
|
|
571
590
|
*/
|
|
572
|
-
restrict() {
|
|
591
|
+
restrict(options) {
|
|
592
|
+
const readyFor = options?.readyFor ?? "mutation";
|
|
573
593
|
const child = new UnitOfWork(this.#compiler, this.#executor, this.#decoder, this.#name, {
|
|
574
594
|
...this.#config,
|
|
575
595
|
nonce: this.#nonce
|
|
576
596
|
}, this.#schemaNamespaceMap);
|
|
577
597
|
child.#coordinator.setAsRestricted(this, this.#coordinator);
|
|
578
|
-
child.#state = this.#state;
|
|
579
598
|
child.#retrievalOps = this.#retrievalOps;
|
|
580
599
|
child.#mutationOps = this.#mutationOps;
|
|
581
600
|
child.#retrievalResults = this.#retrievalResults;
|
|
@@ -584,9 +603,10 @@ var UnitOfWork = class UnitOfWork {
|
|
|
584
603
|
child.#mutationPhaseDeferred = this.#mutationPhaseDeferred;
|
|
585
604
|
child.#retrievalError = this.#retrievalError;
|
|
586
605
|
child.#mutationError = this.#mutationError;
|
|
606
|
+
child.#triggeredHooks = this.#triggeredHooks;
|
|
587
607
|
this.#coordinator.addChild(child);
|
|
588
|
-
child.signalReadyForRetrieval();
|
|
589
|
-
child.signalReadyForMutation();
|
|
608
|
+
if (readyFor === "mutation" || readyFor === "retrieval") child.signalReadyForRetrieval();
|
|
609
|
+
if (readyFor === "mutation") child.signalReadyForMutation();
|
|
590
610
|
return child;
|
|
591
611
|
}
|
|
592
612
|
/**
|
|
@@ -619,9 +639,26 @@ var UnitOfWork = class UnitOfWork {
|
|
|
619
639
|
this.#retrievalPhaseDeferred.reset();
|
|
620
640
|
this.#mutationPhaseDeferred.reset();
|
|
621
641
|
this.#coordinator.reset();
|
|
642
|
+
this.#triggeredHooks = [];
|
|
643
|
+
}
|
|
644
|
+
/**
|
|
645
|
+
* Trigger a hook to be executed after the transaction commits.
|
|
646
|
+
*/
|
|
647
|
+
triggerHook(hookName, payload, options) {
|
|
648
|
+
this.#triggeredHooks.push({
|
|
649
|
+
hookName,
|
|
650
|
+
payload,
|
|
651
|
+
options
|
|
652
|
+
});
|
|
653
|
+
}
|
|
654
|
+
/**
|
|
655
|
+
* Get all triggered hooks for this UOW.
|
|
656
|
+
*/
|
|
657
|
+
getTriggeredHooks() {
|
|
658
|
+
return this.#triggeredHooks;
|
|
622
659
|
}
|
|
623
660
|
get state() {
|
|
624
|
-
return this.#state;
|
|
661
|
+
return this.#coordinator.parent?.state ?? this.#state;
|
|
625
662
|
}
|
|
626
663
|
get name() {
|
|
627
664
|
return this.#name;
|
|
@@ -673,7 +710,7 @@ var UnitOfWork = class UnitOfWork {
|
|
|
673
710
|
return emptyResults;
|
|
674
711
|
}
|
|
675
712
|
const rawResults = await this.#executor.executeRetrievalPhase(retrievalBatch);
|
|
676
|
-
this.#retrievalResults = this.#decoder(rawResults, this.#retrievalOps);
|
|
713
|
+
this.#retrievalResults = this.#decoder.decode(rawResults, this.#retrievalOps);
|
|
677
714
|
this.#state = "building-mutation";
|
|
678
715
|
this.#retrievalPhaseDeferred.resolve(this.#retrievalResults);
|
|
679
716
|
return this.#retrievalResults;
|
|
@@ -706,7 +743,10 @@ var UnitOfWork = class UnitOfWork {
|
|
|
706
743
|
}
|
|
707
744
|
const result = await this.#executor.executeMutationPhase(mutationBatch);
|
|
708
745
|
this.#state = "executed";
|
|
709
|
-
if (result.success)
|
|
746
|
+
if (result.success) {
|
|
747
|
+
this.#createdInternalIds.length = 0;
|
|
748
|
+
this.#createdInternalIds.push(...result.createdInternalIds);
|
|
749
|
+
}
|
|
710
750
|
this.#mutationPhaseDeferred.resolve();
|
|
711
751
|
return { success: result.success };
|
|
712
752
|
} catch (error) {
|
|
@@ -731,7 +771,7 @@ var UnitOfWork = class UnitOfWork {
|
|
|
731
771
|
* Add a retrieval operation (used by TypedUnitOfWork)
|
|
732
772
|
*/
|
|
733
773
|
addRetrievalOperation(op) {
|
|
734
|
-
if (this
|
|
774
|
+
if (this.state !== "building-retrieval") throw new Error(`Cannot add retrieval operation in state ${this.state}. Must be in building-retrieval state.`);
|
|
735
775
|
this.#retrievalOps.push(op);
|
|
736
776
|
return this.#retrievalOps.length - 1;
|
|
737
777
|
}
|
|
@@ -740,7 +780,7 @@ var UnitOfWork = class UnitOfWork {
|
|
|
740
780
|
* Add a mutation operation (used by TypedUnitOfWork)
|
|
741
781
|
*/
|
|
742
782
|
addMutationOperation(op) {
|
|
743
|
-
if (this
|
|
783
|
+
if (this.state === "executed") throw new Error(`Cannot add mutation operation in executed state.`);
|
|
744
784
|
this.#mutationOps.push(op);
|
|
745
785
|
}
|
|
746
786
|
/**
|
|
@@ -752,7 +792,7 @@ var UnitOfWork = class UnitOfWork {
|
|
|
752
792
|
* @returns Array of FragnoIds in the same order as create() calls
|
|
753
793
|
*/
|
|
754
794
|
getCreatedIds() {
|
|
755
|
-
if (this
|
|
795
|
+
if (this.state !== "executed") throw new Error(`getCreatedIds() can only be called after executeMutations(). Current state: ${this.state}`);
|
|
756
796
|
const createdIds = [];
|
|
757
797
|
let createIndex = 0;
|
|
758
798
|
for (const op of this.#mutationOps) if (op.type === "create") {
|
|
@@ -849,14 +889,23 @@ var TypedUnitOfWork = class {
|
|
|
849
889
|
async executeMutations() {
|
|
850
890
|
return this.#uow.executeMutations();
|
|
851
891
|
}
|
|
852
|
-
restrict() {
|
|
853
|
-
return this.#uow.restrict();
|
|
892
|
+
restrict(options) {
|
|
893
|
+
return this.#uow.restrict(options);
|
|
894
|
+
}
|
|
895
|
+
signalReadyForRetrieval() {
|
|
896
|
+
this.#uow.signalReadyForRetrieval();
|
|
897
|
+
}
|
|
898
|
+
signalReadyForMutation() {
|
|
899
|
+
this.#uow.signalReadyForMutation();
|
|
854
900
|
}
|
|
855
901
|
reset() {
|
|
856
902
|
return this.#uow.reset();
|
|
857
903
|
}
|
|
858
|
-
forSchema(schema) {
|
|
859
|
-
return this.#uow.forSchema(schema);
|
|
904
|
+
forSchema(schema, hooks) {
|
|
905
|
+
return this.#uow.forSchema(schema, hooks);
|
|
906
|
+
}
|
|
907
|
+
registerSchema(schema, namespace) {
|
|
908
|
+
this.#uow.registerSchema(schema, namespace);
|
|
860
909
|
}
|
|
861
910
|
compile(compiler) {
|
|
862
911
|
return this.#uow.compile(compiler);
|
|
@@ -997,6 +1046,18 @@ var TypedUnitOfWork = class {
|
|
|
997
1046
|
id
|
|
998
1047
|
});
|
|
999
1048
|
}
|
|
1049
|
+
get $hooks() {
|
|
1050
|
+
throw new Error("type only");
|
|
1051
|
+
}
|
|
1052
|
+
/**
|
|
1053
|
+
* Trigger a hook to be executed after the transaction commits.
|
|
1054
|
+
*/
|
|
1055
|
+
triggerHook(hookName, payload, options) {
|
|
1056
|
+
this.#uow.triggerHook(hookName, payload, options);
|
|
1057
|
+
}
|
|
1058
|
+
getTriggeredHooks() {
|
|
1059
|
+
return this.#uow.getTriggeredHooks();
|
|
1060
|
+
}
|
|
1000
1061
|
};
|
|
1001
1062
|
|
|
1002
1063
|
//#endregion
|