@fragno-dev/db 0.2.1 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.turbo/turbo-build.log +206 -140
- package/CHANGELOG.md +67 -0
- package/README.md +30 -9
- package/dist/adapters/adapters.d.ts +23 -21
- package/dist/adapters/adapters.d.ts.map +1 -1
- package/dist/adapters/adapters.js.map +1 -1
- package/dist/adapters/generic-sql/driver-config.d.ts +16 -1
- package/dist/adapters/generic-sql/driver-config.d.ts.map +1 -1
- package/dist/adapters/generic-sql/driver-config.js +23 -1
- package/dist/adapters/generic-sql/driver-config.js.map +1 -1
- package/dist/adapters/generic-sql/generic-sql-adapter.d.ts +27 -9
- package/dist/adapters/generic-sql/generic-sql-adapter.d.ts.map +1 -1
- package/dist/adapters/generic-sql/generic-sql-adapter.js +55 -16
- package/dist/adapters/generic-sql/generic-sql-adapter.js.map +1 -1
- package/dist/adapters/generic-sql/generic-sql-uow-executor.js +129 -3
- package/dist/adapters/generic-sql/generic-sql-uow-executor.js.map +1 -1
- package/dist/adapters/generic-sql/migration/dialect/mysql.js +24 -5
- package/dist/adapters/generic-sql/migration/dialect/mysql.js.map +1 -1
- package/dist/adapters/generic-sql/migration/dialect/postgres.js +6 -5
- package/dist/adapters/generic-sql/migration/dialect/postgres.js.map +1 -1
- package/dist/adapters/generic-sql/migration/dialect/sqlite.js +21 -10
- package/dist/adapters/generic-sql/migration/dialect/sqlite.js.map +1 -1
- package/dist/adapters/generic-sql/migration/prepared-migrations.d.ts.map +1 -1
- package/dist/adapters/generic-sql/migration/prepared-migrations.js +8 -8
- package/dist/adapters/generic-sql/migration/prepared-migrations.js.map +1 -1
- package/dist/adapters/generic-sql/migration/sql-generator.js +74 -51
- package/dist/adapters/generic-sql/migration/sql-generator.js.map +1 -1
- package/dist/adapters/generic-sql/query/create-sql-query-compiler.js +6 -5
- package/dist/adapters/generic-sql/query/create-sql-query-compiler.js.map +1 -1
- package/dist/adapters/generic-sql/query/cursor-utils.js +42 -4
- package/dist/adapters/generic-sql/query/cursor-utils.js.map +1 -1
- package/dist/adapters/generic-sql/query/generic-sql-uow-operation-compiler.js +25 -17
- package/dist/adapters/generic-sql/query/generic-sql-uow-operation-compiler.js.map +1 -1
- package/dist/adapters/generic-sql/query/select-builder.js +5 -3
- package/dist/adapters/generic-sql/query/select-builder.js.map +1 -1
- package/dist/adapters/generic-sql/query/sql-query-compiler.js +15 -12
- package/dist/adapters/generic-sql/query/sql-query-compiler.js.map +1 -1
- package/dist/adapters/generic-sql/query/where-builder.js +38 -28
- package/dist/adapters/generic-sql/query/where-builder.js.map +1 -1
- package/dist/adapters/generic-sql/sqlite-storage.d.ts +13 -0
- package/dist/adapters/generic-sql/sqlite-storage.d.ts.map +1 -0
- package/dist/adapters/generic-sql/sqlite-storage.js +15 -0
- package/dist/adapters/generic-sql/sqlite-storage.js.map +1 -0
- package/dist/adapters/generic-sql/uow-decoder.js +7 -3
- package/dist/adapters/generic-sql/uow-decoder.js.map +1 -1
- package/dist/adapters/generic-sql/uow-encoder.js +28 -8
- package/dist/adapters/generic-sql/uow-encoder.js.map +1 -1
- package/dist/adapters/in-memory/condition-evaluator.js +131 -0
- package/dist/adapters/in-memory/condition-evaluator.js.map +1 -0
- package/dist/adapters/in-memory/errors.d.ts +13 -0
- package/dist/adapters/in-memory/errors.d.ts.map +1 -0
- package/dist/adapters/in-memory/errors.js +23 -0
- package/dist/adapters/in-memory/errors.js.map +1 -0
- package/dist/adapters/in-memory/in-memory-adapter.d.ts +27 -0
- package/dist/adapters/in-memory/in-memory-adapter.d.ts.map +1 -0
- package/dist/adapters/in-memory/in-memory-adapter.js +176 -0
- package/dist/adapters/in-memory/in-memory-adapter.js.map +1 -0
- package/dist/adapters/in-memory/in-memory-uow.js +648 -0
- package/dist/adapters/in-memory/in-memory-uow.js.map +1 -0
- package/dist/adapters/in-memory/index.d.ts +4 -0
- package/dist/adapters/in-memory/index.js +4 -0
- package/dist/adapters/in-memory/options.d.ts +28 -0
- package/dist/adapters/in-memory/options.d.ts.map +1 -0
- package/dist/adapters/in-memory/options.js +61 -0
- package/dist/adapters/in-memory/options.js.map +1 -0
- package/dist/adapters/in-memory/reference-resolution.js +26 -0
- package/dist/adapters/in-memory/reference-resolution.js.map +1 -0
- package/dist/adapters/in-memory/sorted-array-index.js +129 -0
- package/dist/adapters/in-memory/sorted-array-index.js.map +1 -0
- package/dist/adapters/in-memory/store.js +71 -0
- package/dist/adapters/in-memory/store.js.map +1 -0
- package/dist/adapters/in-memory/value-comparison.js +28 -0
- package/dist/adapters/in-memory/value-comparison.js.map +1 -0
- package/dist/adapters/shared/from-unit-of-work-compiler.js.map +1 -1
- package/dist/adapters/shared/uow-operation-compiler.js +11 -11
- package/dist/adapters/shared/uow-operation-compiler.js.map +1 -1
- package/dist/adapters/sql/index.d.ts +5 -0
- package/dist/adapters/sql/index.js +4 -0
- package/dist/db-fragment-definition-builder.d.ts +45 -96
- package/dist/db-fragment-definition-builder.d.ts.map +1 -1
- package/dist/db-fragment-definition-builder.js +121 -99
- package/dist/db-fragment-definition-builder.js.map +1 -1
- package/dist/dispatchers/cloudflare-do/index.d.ts +26 -0
- package/dist/dispatchers/cloudflare-do/index.d.ts.map +1 -0
- package/dist/dispatchers/cloudflare-do/index.js +63 -0
- package/dist/dispatchers/cloudflare-do/index.js.map +1 -0
- package/dist/dispatchers/node/index.d.ts +17 -0
- package/dist/dispatchers/node/index.d.ts.map +1 -0
- package/dist/dispatchers/node/index.js +59 -0
- package/dist/dispatchers/node/index.js.map +1 -0
- package/dist/fragments/internal-fragment.d.ts +172 -9
- package/dist/fragments/internal-fragment.d.ts.map +1 -1
- package/dist/fragments/internal-fragment.js +193 -74
- package/dist/fragments/internal-fragment.js.map +1 -1
- package/dist/fragments/internal-fragment.routes.js +29 -0
- package/dist/fragments/internal-fragment.routes.js.map +1 -0
- package/dist/fragments/internal-fragment.schema.d.ts +9 -0
- package/dist/fragments/internal-fragment.schema.d.ts.map +1 -0
- package/dist/fragments/internal-fragment.schema.js +22 -0
- package/dist/fragments/internal-fragment.schema.js.map +1 -0
- package/dist/hooks/durable-hooks-processor.d.ts +14 -0
- package/dist/hooks/durable-hooks-processor.d.ts.map +1 -0
- package/dist/hooks/durable-hooks-processor.js +32 -0
- package/dist/hooks/durable-hooks-processor.js.map +1 -0
- package/dist/hooks/hooks.d.ts +47 -4
- package/dist/hooks/hooks.d.ts.map +1 -1
- package/dist/hooks/hooks.js +106 -39
- package/dist/hooks/hooks.js.map +1 -1
- package/dist/migration-engine/auto-from-schema.js +14 -11
- package/dist/migration-engine/auto-from-schema.js.map +1 -1
- package/dist/migration-engine/generation-engine.d.ts +16 -10
- package/dist/migration-engine/generation-engine.d.ts.map +1 -1
- package/dist/migration-engine/generation-engine.js +72 -33
- package/dist/migration-engine/generation-engine.js.map +1 -1
- package/dist/migration-engine/shared.js.map +1 -1
- package/dist/mod.d.ts +17 -10
- package/dist/mod.d.ts.map +1 -1
- package/dist/mod.js +14 -8
- package/dist/mod.js.map +1 -1
- package/dist/naming/sql-naming.d.ts +19 -0
- package/dist/naming/sql-naming.d.ts.map +1 -0
- package/dist/naming/sql-naming.js +116 -0
- package/dist/naming/sql-naming.js.map +1 -0
- package/dist/node_modules/.pnpm/{rou3@0.7.10 → rou3@0.7.12}/node_modules/rou3/dist/index.js +8 -5
- package/dist/node_modules/.pnpm/rou3@0.7.12/node_modules/rou3/dist/index.js.map +1 -0
- package/dist/outbox/outbox-builder.js +156 -0
- package/dist/outbox/outbox-builder.js.map +1 -0
- package/dist/outbox/outbox.d.ts +52 -0
- package/dist/outbox/outbox.d.ts.map +1 -0
- package/dist/outbox/outbox.js +37 -0
- package/dist/outbox/outbox.js.map +1 -0
- package/dist/packages/fragno/dist/api/fragment-definition-builder.js +3 -2
- package/dist/packages/fragno/dist/api/fragment-definition-builder.js.map +1 -1
- package/dist/packages/fragno/dist/api/fragment-instantiator.js +164 -20
- package/dist/packages/fragno/dist/api/fragment-instantiator.js.map +1 -1
- package/dist/packages/fragno/dist/api/request-input-context.js +67 -0
- package/dist/packages/fragno/dist/api/request-input-context.js.map +1 -1
- package/dist/packages/fragno/dist/api/route.js +14 -1
- package/dist/packages/fragno/dist/api/route.js.map +1 -1
- package/dist/packages/fragno/dist/internal/trace-context.js +12 -0
- package/dist/packages/fragno/dist/internal/trace-context.js.map +1 -0
- package/dist/query/column-defaults.js +20 -4
- package/dist/query/column-defaults.js.map +1 -1
- package/dist/query/cursor.d.ts +3 -1
- package/dist/query/cursor.d.ts.map +1 -1
- package/dist/query/cursor.js +45 -14
- package/dist/query/cursor.js.map +1 -1
- package/dist/query/db-now.d.ts +8 -0
- package/dist/query/db-now.d.ts.map +1 -0
- package/dist/query/db-now.js +7 -0
- package/dist/query/db-now.js.map +1 -0
- package/dist/query/serialize/create-sql-serializer.js +3 -2
- package/dist/query/serialize/create-sql-serializer.js.map +1 -1
- package/dist/query/serialize/dialect/mysql-serializer.js +12 -6
- package/dist/query/serialize/dialect/mysql-serializer.js.map +1 -1
- package/dist/query/serialize/dialect/postgres-serializer.js +25 -7
- package/dist/query/serialize/dialect/postgres-serializer.js.map +1 -1
- package/dist/query/serialize/dialect/sqlite-serializer.js +55 -11
- package/dist/query/serialize/dialect/sqlite-serializer.js.map +1 -1
- package/dist/query/serialize/sql-serializer.js +2 -2
- package/dist/query/serialize/sql-serializer.js.map +1 -1
- package/dist/query/simple-query-interface.d.ts +6 -1
- package/dist/query/simple-query-interface.d.ts.map +1 -1
- package/dist/query/unit-of-work/execute-unit-of-work.d.ts +351 -100
- package/dist/query/unit-of-work/execute-unit-of-work.d.ts.map +1 -1
- package/dist/query/unit-of-work/execute-unit-of-work.js +440 -267
- package/dist/query/unit-of-work/execute-unit-of-work.js.map +1 -1
- package/dist/query/unit-of-work/unit-of-work.d.ts +67 -22
- package/dist/query/unit-of-work/unit-of-work.d.ts.map +1 -1
- package/dist/query/unit-of-work/unit-of-work.js +110 -13
- package/dist/query/unit-of-work/unit-of-work.js.map +1 -1
- package/dist/query/value-decoding.js +8 -5
- package/dist/query/value-decoding.js.map +1 -1
- package/dist/query/value-encoding.js +29 -9
- package/dist/query/value-encoding.js.map +1 -1
- package/dist/schema/create.d.ts +40 -14
- package/dist/schema/create.d.ts.map +1 -1
- package/dist/schema/create.js +82 -42
- package/dist/schema/create.js.map +1 -1
- package/dist/schema/generate-id.d.ts +20 -0
- package/dist/schema/generate-id.d.ts.map +1 -0
- package/dist/schema/generate-id.js +28 -0
- package/dist/schema/generate-id.js.map +1 -0
- package/dist/schema/type-conversion/create-sql-type-mapper.js +3 -2
- package/dist/schema/type-conversion/create-sql-type-mapper.js.map +1 -1
- package/dist/schema/type-conversion/dialect/sqlite.js +9 -0
- package/dist/schema/type-conversion/dialect/sqlite.js.map +1 -1
- package/dist/schema/validator.d.ts +10 -0
- package/dist/schema/validator.d.ts.map +1 -0
- package/dist/schema/validator.js +123 -0
- package/dist/schema/validator.js.map +1 -0
- package/dist/schema-output/drizzle.d.ts +30 -0
- package/dist/schema-output/drizzle.d.ts.map +1 -0
- package/dist/{adapters/drizzle/generate.js → schema-output/drizzle.js} +82 -56
- package/dist/schema-output/drizzle.js.map +1 -0
- package/dist/schema-output/prisma.d.ts +17 -0
- package/dist/schema-output/prisma.d.ts.map +1 -0
- package/dist/schema-output/prisma.js +296 -0
- package/dist/schema-output/prisma.js.map +1 -0
- package/dist/util/default-database-adapter.js +61 -0
- package/dist/util/default-database-adapter.js.map +1 -0
- package/dist/with-database.d.ts +1 -1
- package/dist/with-database.d.ts.map +1 -1
- package/dist/with-database.js +12 -3
- package/dist/with-database.js.map +1 -1
- package/package.json +43 -28
- package/src/adapters/adapters.ts +30 -24
- package/src/adapters/drizzle/migrate-drizzle.test.ts +54 -33
- package/src/adapters/drizzle/migration-parity-drizzle-kit.test.ts +599 -0
- package/src/adapters/drizzle/test-utils.ts +12 -8
- package/src/adapters/generic-sql/driver-config.ts +38 -0
- package/src/adapters/generic-sql/generic-sql-adapter.test.ts +5 -5
- package/src/adapters/generic-sql/generic-sql-adapter.ts +110 -24
- package/src/adapters/generic-sql/generic-sql-uow-executor.test.ts +54 -0
- package/src/adapters/generic-sql/generic-sql-uow-executor.ts +231 -3
- package/src/adapters/generic-sql/migration/adapter-migration-parity.test.ts +118 -0
- package/src/adapters/generic-sql/migration/dialect/mysql.test.ts +26 -8
- package/src/adapters/generic-sql/migration/dialect/mysql.ts +46 -8
- package/src/adapters/generic-sql/migration/dialect/postgres.test.ts +25 -7
- package/src/adapters/generic-sql/migration/dialect/postgres.ts +8 -4
- package/src/adapters/generic-sql/migration/dialect/sqlite.test.ts +47 -8
- package/src/adapters/generic-sql/migration/dialect/sqlite.ts +27 -12
- package/src/adapters/generic-sql/migration/prepared-migrations.test.ts +128 -39
- package/src/adapters/generic-sql/migration/prepared-migrations.ts +15 -8
- package/src/adapters/generic-sql/migration/sql-generator.ts +142 -65
- package/src/adapters/generic-sql/query/create-sql-query-compiler.ts +9 -6
- package/src/adapters/generic-sql/query/cursor-utils.test.ts +271 -0
- package/src/adapters/generic-sql/query/cursor-utils.ts +41 -6
- package/src/adapters/generic-sql/query/generic-sql-uow-operation-compiler.test.ts +27 -27
- package/src/adapters/generic-sql/query/generic-sql-uow-operation-compiler.ts +38 -24
- package/src/adapters/generic-sql/query/select-builder.test.ts +15 -11
- package/src/adapters/generic-sql/query/select-builder.ts +6 -2
- package/src/adapters/generic-sql/query/sql-query-compiler.test.ts +52 -2
- package/src/adapters/generic-sql/query/sql-query-compiler.ts +50 -15
- package/src/adapters/generic-sql/query/where-builder.test.ts +91 -17
- package/src/adapters/generic-sql/query/where-builder.ts +90 -38
- package/src/adapters/{kysely/kysely-adapter-pglite.test.ts → generic-sql/sql-adapter-pglite-migrations.test.ts} +6 -6
- package/src/adapters/generic-sql/sql-adapter-pglite-pagination.test.ts +806 -0
- package/src/adapters/{drizzle/drizzle-adapter-pglite.test.ts → generic-sql/sql-adapter-pglite-queries.test.ts} +11 -11
- package/src/adapters/generic-sql/{test/generic-drizzle-adapter-sqlite3.test.ts → sql-adapter-sqlite3-driver.test.ts} +49 -35
- package/src/adapters/{drizzle/drizzle-adapter-sqlite3.test.ts → generic-sql/sql-adapter-sqlite3-uow.test.ts} +48 -32
- package/src/adapters/{kysely/kysely-adapter-sqlocal.test.ts → generic-sql/sql-adapter-sqlocal.test.ts} +6 -6
- package/src/adapters/generic-sql/sqlite-storage.ts +20 -0
- package/src/adapters/generic-sql/uow-decoder.test.ts +1 -1
- package/src/adapters/generic-sql/uow-decoder.ts +21 -3
- package/src/adapters/generic-sql/uow-encoder.test.ts +33 -2
- package/src/adapters/generic-sql/uow-encoder.ts +50 -11
- package/src/adapters/in-memory/condition-evaluator.test.ts +193 -0
- package/src/adapters/in-memory/condition-evaluator.ts +275 -0
- package/src/adapters/in-memory/errors.ts +20 -0
- package/src/adapters/in-memory/in-memory-adapter.ts +277 -0
- package/src/adapters/in-memory/in-memory-uow.mutations.test.ts +296 -0
- package/src/adapters/in-memory/in-memory-uow.retrieval.test.ts +100 -0
- package/src/adapters/in-memory/in-memory-uow.ts +1348 -0
- package/src/adapters/in-memory/index.ts +3 -0
- package/src/adapters/in-memory/options.test.ts +41 -0
- package/src/adapters/in-memory/options.ts +87 -0
- package/src/adapters/in-memory/reference-resolution.test.ts +50 -0
- package/src/adapters/in-memory/reference-resolution.ts +67 -0
- package/src/adapters/in-memory/sorted-array-index.test.ts +123 -0
- package/src/adapters/in-memory/sorted-array-index.ts +228 -0
- package/src/adapters/in-memory/store.test.ts +68 -0
- package/src/adapters/in-memory/store.ts +145 -0
- package/src/adapters/in-memory/value-comparison.ts +53 -0
- package/src/adapters/in-memory/value-normalization.test.ts +57 -0
- package/src/adapters/prisma/prisma-adapter-sqlite3.test.ts +1163 -0
- package/src/adapters/shared/from-unit-of-work-compiler.ts +3 -1
- package/src/adapters/shared/uow-operation-compiler.ts +26 -16
- package/src/adapters/sql/index.ts +12 -0
- package/src/db-fragment-definition-builder.test.ts +88 -54
- package/src/db-fragment-definition-builder.ts +201 -322
- package/src/db-fragment-instantiator.test.ts +169 -101
- package/src/db-fragment-integration.test.ts +301 -149
- package/src/dispatchers/cloudflare-do/index.test.ts +73 -0
- package/src/dispatchers/cloudflare-do/index.ts +104 -0
- package/src/dispatchers/node/index.test.ts +91 -0
- package/src/dispatchers/node/index.ts +87 -0
- package/src/fragments/internal-fragment.routes.ts +42 -0
- package/src/fragments/internal-fragment.schema.ts +51 -0
- package/src/fragments/internal-fragment.test.ts +730 -274
- package/src/fragments/internal-fragment.ts +447 -154
- package/src/hooks/durable-hooks-processor.test.ts +117 -0
- package/src/hooks/durable-hooks-processor.ts +67 -0
- package/src/hooks/hooks.test.ts +411 -259
- package/src/hooks/hooks.ts +265 -66
- package/src/migration-engine/auto-from-schema.test.ts +14 -14
- package/src/migration-engine/auto-from-schema.ts +5 -2
- package/src/migration-engine/create.test.ts +2 -2
- package/src/migration-engine/generation-engine.test.ts +229 -104
- package/src/migration-engine/generation-engine.ts +94 -64
- package/src/migration-engine/shared.ts +1 -0
- package/src/mod.ts +78 -30
- package/src/naming/sql-naming.ts +180 -0
- package/src/outbox/outbox-builder.ts +241 -0
- package/src/outbox/outbox.test.ts +253 -0
- package/src/outbox/outbox.ts +137 -0
- package/src/query/column-defaults.ts +41 -3
- package/src/query/condition-builder.test.ts +3 -3
- package/src/query/cursor.test.ts +116 -18
- package/src/query/cursor.ts +75 -26
- package/src/query/db-now.ts +6 -0
- package/src/query/query-type.test.ts +2 -2
- package/src/query/serialize/create-sql-serializer.ts +7 -2
- package/src/query/serialize/dialect/mysql-serializer.ts +12 -4
- package/src/query/serialize/dialect/postgres-serializer.ts +34 -4
- package/src/query/serialize/dialect/sqlite-serializer.test.ts +51 -1
- package/src/query/serialize/dialect/sqlite-serializer.ts +92 -9
- package/src/query/serialize/sql-serializer.ts +4 -4
- package/src/query/simple-query-interface.ts +5 -0
- package/src/query/unit-of-work/execute-unit-of-work.test.ts +1512 -1458
- package/src/query/unit-of-work/execute-unit-of-work.ts +1708 -596
- package/src/query/unit-of-work/tx-builder.test.ts +1041 -0
- package/src/query/unit-of-work/unit-of-work-coordinator.test.ts +32 -32
- package/src/query/unit-of-work/unit-of-work-types.test.ts +1 -1
- package/src/query/unit-of-work/unit-of-work.test.ts +231 -36
- package/src/query/unit-of-work/unit-of-work.ts +229 -31
- package/src/query/value-decoding.test.ts +13 -2
- package/src/query/value-decoding.ts +17 -4
- package/src/query/value-encoding.test.ts +85 -2
- package/src/query/value-encoding.ts +56 -6
- package/src/schema/create.test.ts +129 -42
- package/src/schema/create.ts +187 -47
- package/src/schema/generate-id.test.ts +57 -0
- package/src/schema/generate-id.ts +38 -0
- package/src/schema/serialize.test.ts +14 -2
- package/src/schema/type-conversion/create-sql-type-mapper.ts +7 -2
- package/src/schema/type-conversion/dialect/sqlite.ts +18 -0
- package/src/schema/type-conversion/type-mapping.test.ts +25 -1
- package/src/schema/validator.test.ts +197 -0
- package/src/schema/validator.ts +231 -0
- package/src/{adapters/drizzle/generate.test.ts → schema-output/drizzle.test.ts} +179 -129
- package/src/{adapters/drizzle/generate.ts → schema-output/drizzle.ts} +143 -93
- package/src/schema-output/prisma.test.ts +536 -0
- package/src/schema-output/prisma.ts +573 -0
- package/src/util/default-database-adapter.ts +106 -0
- package/src/with-database.ts +22 -3
- package/tsdown.config.ts +6 -4
- package/dist/adapters/drizzle/drizzle-adapter.d.ts +0 -20
- package/dist/adapters/drizzle/drizzle-adapter.d.ts.map +0 -1
- package/dist/adapters/drizzle/drizzle-adapter.js +0 -27
- package/dist/adapters/drizzle/drizzle-adapter.js.map +0 -1
- package/dist/adapters/drizzle/generate.d.ts +0 -30
- package/dist/adapters/drizzle/generate.d.ts.map +0 -1
- package/dist/adapters/drizzle/generate.js.map +0 -1
- package/dist/adapters/kysely/kysely-adapter.d.ts +0 -19
- package/dist/adapters/kysely/kysely-adapter.d.ts.map +0 -1
- package/dist/adapters/kysely/kysely-adapter.js +0 -17
- package/dist/adapters/kysely/kysely-adapter.js.map +0 -1
- package/dist/adapters/shared/table-name-mapper.d.ts +0 -12
- package/dist/adapters/shared/table-name-mapper.d.ts.map +0 -1
- package/dist/adapters/shared/table-name-mapper.js +0 -43
- package/dist/adapters/shared/table-name-mapper.js.map +0 -1
- package/dist/node_modules/.pnpm/rou3@0.7.10/node_modules/rou3/dist/index.js.map +0 -1
- package/dist/schema-generator/schema-generator.d.ts +0 -15
- package/dist/schema-generator/schema-generator.d.ts.map +0 -1
- package/src/adapters/drizzle/drizzle-adapter.ts +0 -39
- package/src/adapters/kysely/kysely-adapter.ts +0 -27
- package/src/adapters/shared/table-name-mapper.ts +0 -50
- package/src/schema-generator/schema-generator.ts +0 -12
- package/src/shared/config.ts +0 -10
- package/src/shared/connection-pool.ts +0 -24
- package/src/shared/prisma.ts +0 -45
package/src/adapters/adapters.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type { SimpleQueryInterface } from "../query/simple-query-interface";
|
|
2
|
-
import type { SchemaGenerator } from "../schema-generator/schema-generator";
|
|
3
2
|
import type { AnySchema } from "../schema/create";
|
|
4
3
|
import type { RequestContextStorage } from "@fragno-dev/core/internal/request-context-storage";
|
|
5
4
|
import type { IUnitOfWork } from "../query/unit-of-work/unit-of-work";
|
|
6
5
|
import type { PreparedMigrations } from "./generic-sql/migration/prepared-migrations";
|
|
6
|
+
import type { SQLProvider } from "../shared/providers";
|
|
7
|
+
import type { SQLiteStorageMode } from "./generic-sql/sqlite-storage";
|
|
8
|
+
import type { SqlNamingStrategy } from "../naming/sql-naming";
|
|
7
9
|
|
|
8
10
|
export const fragnoDatabaseAdapterNameFakeSymbol = "$fragno-database-adapter-name" as const;
|
|
9
11
|
export const fragnoDatabaseAdapterVersionFakeSymbol = "$fragno-database-adapter-version" as const;
|
|
@@ -16,12 +18,12 @@ export type DatabaseContextStorage = {
|
|
|
16
18
|
uow: IUnitOfWork;
|
|
17
19
|
};
|
|
18
20
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
21
|
+
export type SQLiteProfile = "default" | "prisma";
|
|
22
|
+
|
|
23
|
+
export interface DatabaseAdapterMetadata {
|
|
24
|
+
databaseType?: SQLProvider;
|
|
25
|
+
sqliteProfile?: SQLiteProfile;
|
|
26
|
+
sqliteStorageMode?: SQLiteStorageMode;
|
|
25
27
|
}
|
|
26
28
|
|
|
27
29
|
export interface DatabaseAdapter<TUOWConfig = void> {
|
|
@@ -34,36 +36,40 @@ export interface DatabaseAdapter<TUOWConfig = void> {
|
|
|
34
36
|
*/
|
|
35
37
|
readonly contextStorage: RequestContextStorage<DatabaseContextStorage>;
|
|
36
38
|
|
|
39
|
+
/**
|
|
40
|
+
* Optional adapter override used for durable hook processing.
|
|
41
|
+
* Use this when the public adapter wraps another adapter (e.g. model checker).
|
|
42
|
+
*/
|
|
43
|
+
getHookProcessingAdapter?: () => DatabaseAdapter<TUOWConfig>;
|
|
44
|
+
|
|
37
45
|
/**
|
|
38
46
|
* Get current schema version, undefined if not initialized.
|
|
39
47
|
*/
|
|
40
48
|
getSchemaVersion(namespace: string): Promise<string | undefined>;
|
|
41
49
|
|
|
50
|
+
/**
|
|
51
|
+
* Optional metadata used by schema output tooling.
|
|
52
|
+
*/
|
|
53
|
+
readonly adapterMetadata?: DatabaseAdapterMetadata;
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Naming strategy used for physical SQL identifiers.
|
|
57
|
+
*/
|
|
58
|
+
readonly namingStrategy: SqlNamingStrategy;
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* @deprecated Avoid using query engines directly in fragment code. Prefer handlerTx/serviceTx.
|
|
62
|
+
*/
|
|
42
63
|
createQueryEngine: <const T extends AnySchema>(
|
|
43
64
|
schema: T,
|
|
44
|
-
namespace: string,
|
|
65
|
+
namespace: string | null,
|
|
45
66
|
) => SimpleQueryInterface<T, TUOWConfig>;
|
|
46
67
|
|
|
47
68
|
prepareMigrations?: <const T extends AnySchema>(
|
|
48
69
|
schema: T,
|
|
49
|
-
namespace: string,
|
|
70
|
+
namespace: string | null,
|
|
50
71
|
) => PreparedMigrations;
|
|
51
72
|
|
|
52
|
-
/**
|
|
53
|
-
* Generate a combined schema file from one or more fragments.
|
|
54
|
-
* If not implemented, schema generation is not supported for this adapter.
|
|
55
|
-
*/
|
|
56
|
-
createSchemaGenerator?: (
|
|
57
|
-
fragments: { schema: AnySchema; namespace: string }[],
|
|
58
|
-
options?: { path?: string },
|
|
59
|
-
) => SchemaGenerator;
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Creates a table name mapper for the given namespace.
|
|
63
|
-
* Used to convert between logical table names and physical table names.
|
|
64
|
-
*/
|
|
65
|
-
createTableNameMapper: (namespace: string) => TableNameMapper;
|
|
66
|
-
|
|
67
73
|
isConnectionHealthy: () => Promise<boolean>;
|
|
68
74
|
|
|
69
75
|
close: () => Promise<void>;
|
|
@@ -9,7 +9,7 @@ const { generateDrizzleJson, generateMigration } =
|
|
|
9
9
|
require("drizzle-kit/api") as typeof import("drizzle-kit/api");
|
|
10
10
|
|
|
11
11
|
describe("generateSchema and migrate", () => {
|
|
12
|
-
const testSchema = schema((s) => {
|
|
12
|
+
const testSchema = schema("test", (s) => {
|
|
13
13
|
return s
|
|
14
14
|
.addTable("users", (t) => {
|
|
15
15
|
return t
|
|
@@ -155,7 +155,8 @@ describe("generateSchema and migrate", () => {
|
|
|
155
155
|
"key" text NOT NULL,
|
|
156
156
|
"value" text NOT NULL,
|
|
157
157
|
"_internalId" bigserial PRIMARY KEY NOT NULL,
|
|
158
|
-
"_version" integer DEFAULT 0 NOT NULL
|
|
158
|
+
"_version" integer DEFAULT 0 NOT NULL,
|
|
159
|
+
CONSTRAINT "fragno_db_settings_id_unique" UNIQUE("id")
|
|
159
160
|
);
|
|
160
161
|
|
|
161
162
|
CREATE TABLE "fragno_hooks" (
|
|
@@ -172,10 +173,23 @@ describe("generateSchema and migrate", () => {
|
|
|
172
173
|
"createdAt" timestamp DEFAULT now() NOT NULL,
|
|
173
174
|
"nonce" text NOT NULL,
|
|
174
175
|
"_internalId" bigserial PRIMARY KEY NOT NULL,
|
|
175
|
-
"_version" integer DEFAULT 0 NOT NULL
|
|
176
|
+
"_version" integer DEFAULT 0 NOT NULL,
|
|
177
|
+
CONSTRAINT "fragno_hooks_id_unique" UNIQUE("id")
|
|
176
178
|
);
|
|
177
179
|
|
|
178
|
-
CREATE TABLE "
|
|
180
|
+
CREATE TABLE "fragno_db_outbox" (
|
|
181
|
+
"id" varchar(30) NOT NULL,
|
|
182
|
+
"versionstamp" text NOT NULL,
|
|
183
|
+
"uowId" text NOT NULL,
|
|
184
|
+
"payload" json NOT NULL,
|
|
185
|
+
"refMap" json,
|
|
186
|
+
"createdAt" timestamp DEFAULT now() NOT NULL,
|
|
187
|
+
"_internalId" bigserial PRIMARY KEY NOT NULL,
|
|
188
|
+
"_version" integer DEFAULT 0 NOT NULL,
|
|
189
|
+
CONSTRAINT "fragno_db_outbox_id_unique" UNIQUE("id")
|
|
190
|
+
);
|
|
191
|
+
|
|
192
|
+
CREATE TABLE "test"."users" (
|
|
179
193
|
"id" varchar(30) NOT NULL,
|
|
180
194
|
"name" text NOT NULL,
|
|
181
195
|
"email" text NOT NULL,
|
|
@@ -185,10 +199,11 @@ describe("generateSchema and migrate", () => {
|
|
|
185
199
|
"createdAt" timestamp DEFAULT now() NOT NULL,
|
|
186
200
|
"updatedAt" timestamp DEFAULT now() NOT NULL,
|
|
187
201
|
"_internalId" bigserial PRIMARY KEY NOT NULL,
|
|
188
|
-
"_version" integer DEFAULT 0 NOT NULL
|
|
202
|
+
"_version" integer DEFAULT 0 NOT NULL,
|
|
203
|
+
CONSTRAINT "users_id_unique" UNIQUE("id")
|
|
189
204
|
);
|
|
190
205
|
|
|
191
|
-
CREATE TABLE "posts" (
|
|
206
|
+
CREATE TABLE "test"."posts" (
|
|
192
207
|
"id" varchar(30) NOT NULL,
|
|
193
208
|
"title" text NOT NULL,
|
|
194
209
|
"slug" varchar(255) NOT NULL,
|
|
@@ -204,10 +219,11 @@ describe("generateSchema and migrate", () => {
|
|
|
204
219
|
"thumbnail" "bytea",
|
|
205
220
|
"createdAt" timestamp DEFAULT now() NOT NULL,
|
|
206
221
|
"_internalId" bigserial PRIMARY KEY NOT NULL,
|
|
207
|
-
"_version" integer DEFAULT 0 NOT NULL
|
|
222
|
+
"_version" integer DEFAULT 0 NOT NULL,
|
|
223
|
+
CONSTRAINT "posts_id_unique" UNIQUE("id")
|
|
208
224
|
);
|
|
209
225
|
|
|
210
|
-
CREATE TABLE "comments" (
|
|
226
|
+
CREATE TABLE "test"."comments" (
|
|
211
227
|
"id" varchar(30) NOT NULL,
|
|
212
228
|
"content" text NOT NULL,
|
|
213
229
|
"postId" bigint NOT NULL,
|
|
@@ -217,10 +233,11 @@ describe("generateSchema and migrate", () => {
|
|
|
217
233
|
"editedAt" timestamp,
|
|
218
234
|
"isDeleted" boolean DEFAULT false NOT NULL,
|
|
219
235
|
"_internalId" bigserial PRIMARY KEY NOT NULL,
|
|
220
|
-
"_version" integer DEFAULT 0 NOT NULL
|
|
236
|
+
"_version" integer DEFAULT 0 NOT NULL,
|
|
237
|
+
CONSTRAINT "comments_id_unique" UNIQUE("id")
|
|
221
238
|
);
|
|
222
239
|
|
|
223
|
-
CREATE TABLE "tags" (
|
|
240
|
+
CREATE TABLE "test"."tags" (
|
|
224
241
|
"id" varchar(30) NOT NULL,
|
|
225
242
|
"name" text NOT NULL,
|
|
226
243
|
"slug" varchar(100) NOT NULL,
|
|
@@ -228,42 +245,46 @@ describe("generateSchema and migrate", () => {
|
|
|
228
245
|
"color" varchar(7),
|
|
229
246
|
"usageCount" bigint DEFAULT 0 NOT NULL,
|
|
230
247
|
"_internalId" bigserial PRIMARY KEY NOT NULL,
|
|
231
|
-
"_version" integer DEFAULT 0 NOT NULL
|
|
248
|
+
"_version" integer DEFAULT 0 NOT NULL,
|
|
249
|
+
CONSTRAINT "tags_id_unique" UNIQUE("id")
|
|
232
250
|
);
|
|
233
251
|
|
|
234
|
-
CREATE TABLE "postTags" (
|
|
252
|
+
CREATE TABLE "test"."postTags" (
|
|
235
253
|
"id" varchar(30) NOT NULL,
|
|
236
254
|
"postId" bigint NOT NULL,
|
|
237
255
|
"tagId" bigint NOT NULL,
|
|
238
256
|
"order" integer DEFAULT 0 NOT NULL,
|
|
239
257
|
"createdAt" timestamp DEFAULT now() NOT NULL,
|
|
240
258
|
"_internalId" bigserial PRIMARY KEY NOT NULL,
|
|
241
|
-
"_version" integer DEFAULT 0 NOT NULL
|
|
259
|
+
"_version" integer DEFAULT 0 NOT NULL,
|
|
260
|
+
CONSTRAINT "postTags_id_unique" UNIQUE("id")
|
|
242
261
|
);
|
|
243
262
|
|
|
244
|
-
ALTER TABLE "posts" ADD CONSTRAINT "
|
|
245
|
-
ALTER TABLE "comments" ADD CONSTRAINT "
|
|
246
|
-
ALTER TABLE "comments" ADD CONSTRAINT "
|
|
247
|
-
ALTER TABLE "comments" ADD CONSTRAINT "
|
|
248
|
-
ALTER TABLE "postTags" ADD CONSTRAINT "
|
|
249
|
-
ALTER TABLE "postTags" ADD CONSTRAINT "
|
|
263
|
+
ALTER TABLE "test"."posts" ADD CONSTRAINT "fk_posts_users_author" FOREIGN KEY ("userId") REFERENCES "test"."users"("_internalId") ON DELETE no action ON UPDATE no action;
|
|
264
|
+
ALTER TABLE "test"."comments" ADD CONSTRAINT "fk_comments_posts_post" FOREIGN KEY ("postId") REFERENCES "test"."posts"("_internalId") ON DELETE no action ON UPDATE no action;
|
|
265
|
+
ALTER TABLE "test"."comments" ADD CONSTRAINT "fk_comments_users_author" FOREIGN KEY ("userId") REFERENCES "test"."users"("_internalId") ON DELETE no action ON UPDATE no action;
|
|
266
|
+
ALTER TABLE "test"."comments" ADD CONSTRAINT "fk_comments_comments_parent" FOREIGN KEY ("parentId") REFERENCES "test"."comments"("_internalId") ON DELETE no action ON UPDATE no action;
|
|
267
|
+
ALTER TABLE "test"."postTags" ADD CONSTRAINT "fk_postTags_posts_post" FOREIGN KEY ("postId") REFERENCES "test"."posts"("_internalId") ON DELETE no action ON UPDATE no action;
|
|
268
|
+
ALTER TABLE "test"."postTags" ADD CONSTRAINT "fk_postTags_tags_tag" FOREIGN KEY ("tagId") REFERENCES "test"."tags"("_internalId") ON DELETE no action ON UPDATE no action;
|
|
250
269
|
CREATE UNIQUE INDEX "unique_key" ON "fragno_db_settings" USING btree ("key");
|
|
251
270
|
CREATE INDEX "idx_namespace_status_retry" ON "fragno_hooks" USING btree ("namespace","status","nextRetryAt");
|
|
252
271
|
CREATE INDEX "idx_nonce" ON "fragno_hooks" USING btree ("nonce");
|
|
253
|
-
CREATE UNIQUE INDEX "
|
|
254
|
-
CREATE INDEX "
|
|
255
|
-
CREATE INDEX "
|
|
256
|
-
CREATE INDEX "
|
|
257
|
-
CREATE INDEX "
|
|
258
|
-
CREATE
|
|
259
|
-
CREATE INDEX "
|
|
260
|
-
CREATE INDEX "
|
|
261
|
-
CREATE INDEX "
|
|
262
|
-
CREATE INDEX "
|
|
263
|
-
CREATE
|
|
264
|
-
CREATE INDEX "
|
|
265
|
-
CREATE UNIQUE INDEX "
|
|
266
|
-
CREATE INDEX "
|
|
272
|
+
CREATE UNIQUE INDEX "idx_outbox_versionstamp" ON "fragno_db_outbox" USING btree ("versionstamp");
|
|
273
|
+
CREATE INDEX "idx_outbox_uow" ON "fragno_db_outbox" USING btree ("uowId");
|
|
274
|
+
CREATE UNIQUE INDEX "idx_users_email" ON "test"."users" USING btree ("email");
|
|
275
|
+
CREATE INDEX "idx_users_name" ON "test"."users" USING btree ("name");
|
|
276
|
+
CREATE INDEX "idx_users_active" ON "test"."users" USING btree ("isActive");
|
|
277
|
+
CREATE INDEX "idx_posts_user" ON "test"."posts" USING btree ("userId");
|
|
278
|
+
CREATE INDEX "idx_posts_title" ON "test"."posts" USING btree ("title");
|
|
279
|
+
CREATE UNIQUE INDEX "idx_posts_slug" ON "test"."posts" USING btree ("slug");
|
|
280
|
+
CREATE INDEX "idx_posts_published" ON "test"."posts" USING btree ("isPublished","publishedAt");
|
|
281
|
+
CREATE INDEX "idx_comments_post" ON "test"."comments" USING btree ("postId");
|
|
282
|
+
CREATE INDEX "idx_comments_user" ON "test"."comments" USING btree ("userId");
|
|
283
|
+
CREATE INDEX "idx_comments_parent" ON "test"."comments" USING btree ("parentId");
|
|
284
|
+
CREATE UNIQUE INDEX "idx_tags_slug" ON "test"."tags" USING btree ("slug");
|
|
285
|
+
CREATE INDEX "idx_tags_name" ON "test"."tags" USING btree ("name");
|
|
286
|
+
CREATE UNIQUE INDEX "idx_postTags_post_tag" ON "test"."postTags" USING btree ("postId","tagId");
|
|
287
|
+
CREATE INDEX "idx_postTags_tag" ON "test"."postTags" USING btree ("tagId");"
|
|
267
288
|
`);
|
|
268
289
|
});
|
|
269
290
|
});
|