@fragno-dev/db 0.2.2 → 0.4.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 +404 -175
- package/CHANGELOG.md +109 -0
- package/README.md +54 -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 +24 -9
- package/dist/adapters/generic-sql/generic-sql-adapter.d.ts.map +1 -1
- package/dist/adapters/generic-sql/generic-sql-adapter.js +60 -22
- package/dist/adapters/generic-sql/generic-sql-adapter.js.map +1 -1
- package/dist/adapters/generic-sql/generic-sql-uow-executor.js +169 -3
- package/dist/adapters/generic-sql/generic-sql-uow-executor.js.map +1 -1
- package/dist/adapters/generic-sql/migration/cold-kysely.js.map +1 -1
- package/dist/adapters/generic-sql/migration/dialect/mysql.js +25 -6
- package/dist/adapters/generic-sql/migration/dialect/mysql.js.map +1 -1
- package/dist/adapters/generic-sql/migration/dialect/postgres.js +7 -6
- package/dist/adapters/generic-sql/migration/dialect/postgres.js.map +1 -1
- package/dist/adapters/generic-sql/migration/dialect/sqlite.js +193 -16
- package/dist/adapters/generic-sql/migration/dialect/sqlite.js.map +1 -1
- package/dist/adapters/generic-sql/migration/executor.d.ts.map +1 -1
- package/dist/adapters/generic-sql/migration/executor.js +30 -3
- package/dist/adapters/generic-sql/migration/executor.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 +9 -9
- package/dist/adapters/generic-sql/migration/prepared-migrations.js.map +1 -1
- package/dist/adapters/generic-sql/migration/sql-generator.js +75 -52
- package/dist/adapters/generic-sql/migration/sql-generator.js.map +1 -1
- package/dist/adapters/generic-sql/query/create-sql-query-compiler.js +7 -6
- 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/db-now-sql.js +27 -0
- package/dist/adapters/generic-sql/query/db-now-sql.js.map +1 -0
- package/dist/adapters/generic-sql/query/generic-sql-uow-operation-compiler.js +32 -21
- 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 +49 -18
- package/dist/adapters/generic-sql/query/sql-query-compiler.js.map +1 -1
- package/dist/adapters/generic-sql/query/where-builder.js +43 -29
- 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 +6 -2
- package/dist/adapters/generic-sql/uow-decoder.js.map +1 -1
- package/dist/adapters/generic-sql/uow-encoder.js +27 -8
- package/dist/adapters/generic-sql/uow-encoder.js.map +1 -1
- package/dist/adapters/in-memory/condition-evaluator.js +135 -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 +196 -0
- package/dist/adapters/in-memory/in-memory-adapter.js.map +1 -0
- package/dist/adapters/in-memory/in-memory-uow.js +871 -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 +30 -0
- package/dist/adapters/in-memory/options.d.ts.map +1 -0
- package/dist/adapters/in-memory/options.js +62 -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 +51 -24
- 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/browser/adapters/adapters.d.ts +61 -0
- package/dist/browser/adapters/adapters.d.ts.map +1 -0
- package/dist/browser/adapters/generic-sql/migration/executor.d.ts +15 -0
- package/dist/browser/adapters/generic-sql/migration/executor.d.ts.map +1 -0
- package/dist/browser/adapters/generic-sql/migration/prepared-migrations.d.ts +66 -0
- package/dist/browser/adapters/generic-sql/migration/prepared-migrations.d.ts.map +1 -0
- package/dist/browser/adapters/generic-sql/sqlite-storage.d.ts +11 -0
- package/dist/browser/adapters/generic-sql/sqlite-storage.d.ts.map +1 -0
- package/dist/browser/adapters/in-memory/in-memory-adapter.d.ts +5 -0
- package/dist/browser/adapters/in-memory/index.d.ts +2 -0
- package/dist/browser/adapters/in-memory/options.d.ts +1 -0
- package/dist/browser/db-fragment-definition-builder.d.ts +237 -0
- package/dist/browser/db-fragment-definition-builder.d.ts.map +1 -0
- package/dist/browser/durable-hooks.d.ts +3 -0
- package/dist/browser/fragments/internal-fragment.d.ts +317 -0
- package/dist/browser/fragments/internal-fragment.d.ts.map +1 -0
- package/dist/browser/fragments/internal-fragment.schema.d.ts +1 -0
- package/dist/browser/hooks/durable-hooks-logger.d.ts +10 -0
- package/dist/browser/hooks/durable-hooks-logger.d.ts.map +1 -0
- package/dist/browser/hooks/hooks.d.ts +146 -0
- package/dist/browser/hooks/hooks.d.ts.map +1 -0
- package/dist/browser/id.js +1 -0
- package/dist/browser/internal/adapter-registry.d.ts +4 -0
- package/dist/browser/internal/outbox-state.d.ts +2 -0
- package/dist/browser/mod.d.ts +15 -0
- package/dist/browser/mod.d.ts.map +1 -0
- package/dist/browser/mod.js +17 -0
- package/dist/browser/mod.js.map +1 -0
- package/dist/browser/mod2.d.ts +48 -0
- package/dist/browser/mod2.d.ts.map +1 -0
- package/dist/browser/naming/sql-naming.d.ts +19 -0
- package/dist/browser/naming/sql-naming.d.ts.map +1 -0
- package/dist/browser/outbox/outbox.d.ts +21 -0
- package/dist/browser/outbox/outbox.d.ts.map +1 -0
- package/dist/browser/query/column-defaults.js +1 -0
- package/dist/browser/query/condition-builder.d.ts +44 -0
- package/dist/browser/query/condition-builder.d.ts.map +1 -0
- package/dist/browser/query/condition-builder.js +97 -0
- package/dist/browser/query/condition-builder.js.map +1 -0
- package/dist/browser/query/cursor.d.ts +105 -0
- package/dist/browser/query/cursor.d.ts.map +1 -0
- package/dist/browser/query/cursor.js +150 -0
- package/dist/browser/query/cursor.js.map +1 -0
- package/dist/browser/query/db-now.d.ts +22 -0
- package/dist/browser/query/db-now.d.ts.map +1 -0
- package/dist/browser/query/db-now.js +33 -0
- package/dist/browser/query/db-now.js.map +1 -0
- package/dist/browser/query/orm/orm.d.ts +18 -0
- package/dist/browser/query/orm/orm.d.ts.map +1 -0
- package/dist/browser/query/simple-query-interface.d.ts +108 -0
- package/dist/browser/query/simple-query-interface.d.ts.map +1 -0
- package/dist/browser/query/unit-of-work/execute-unit-of-work.d.ts +423 -0
- package/dist/browser/query/unit-of-work/execute-unit-of-work.d.ts.map +1 -0
- package/dist/browser/query/unit-of-work/execute-unit-of-work.js +507 -0
- package/dist/browser/query/unit-of-work/execute-unit-of-work.js.map +1 -0
- package/dist/browser/query/unit-of-work/retry-policy.d.ts +23 -0
- package/dist/browser/query/unit-of-work/retry-policy.d.ts.map +1 -0
- package/dist/browser/query/unit-of-work/retry-policy.js +40 -0
- package/dist/browser/query/unit-of-work/retry-policy.js.map +1 -0
- package/dist/browser/query/unit-of-work/unit-of-work.d.ts +703 -0
- package/dist/browser/query/unit-of-work/unit-of-work.d.ts.map +1 -0
- package/dist/browser/query/unit-of-work/unit-of-work.js +1206 -0
- package/dist/browser/query/unit-of-work/unit-of-work.js.map +1 -0
- package/dist/browser/query/value-encoding.js +38 -0
- package/dist/browser/query/value-encoding.js.map +1 -0
- package/dist/browser/schema/create.d.ts +326 -0
- package/dist/browser/schema/create.d.ts.map +1 -0
- package/dist/browser/schema/create.js +89 -0
- package/dist/browser/schema/create.js.map +1 -0
- package/dist/browser/schema/generate-id.js +28 -0
- package/dist/browser/schema/generate-id.js.map +1 -0
- package/dist/browser/shared/providers.d.ts +6 -0
- package/dist/browser/shared/providers.d.ts.map +1 -0
- package/dist/browser/sql-driver/connection/connection-provider.d.ts +13 -0
- package/dist/browser/sql-driver/connection/connection-provider.d.ts.map +1 -0
- package/dist/browser/sql-driver/dialect-adapter/dialect-adapter.d.ts +7 -0
- package/dist/browser/sql-driver/dialect-adapter/dialect-adapter.d.ts.map +1 -0
- package/dist/browser/sql-driver/driver/runtime-driver.d.ts +23 -0
- package/dist/browser/sql-driver/driver/runtime-driver.d.ts.map +1 -0
- package/dist/browser/sql-driver/query-executor/plugin.d.ts +17 -0
- package/dist/browser/sql-driver/query-executor/plugin.d.ts.map +1 -0
- package/dist/browser/sql-driver/query-executor/query-executor.d.ts +36 -0
- package/dist/browser/sql-driver/query-executor/query-executor.d.ts.map +1 -0
- package/dist/browser/sql-driver/sql-driver-adapter.d.ts +29 -0
- package/dist/browser/sql-driver/sql-driver-adapter.d.ts.map +1 -0
- package/dist/browser/sql-driver/sql-driver.d.ts +38 -0
- package/dist/browser/sql-driver/sql-driver.d.ts.map +1 -0
- package/dist/browser/sync/commands.d.ts +15 -0
- package/dist/browser/sync/commands.d.ts.map +1 -0
- package/dist/browser/sync/commands.js +27 -0
- package/dist/browser/sync/commands.js.map +1 -0
- package/dist/browser/sync/types.d.ts +63 -0
- package/dist/browser/sync/types.d.ts.map +1 -0
- package/dist/browser/util/types.d.ts +8 -0
- package/dist/browser/util/types.d.ts.map +1 -0
- package/dist/browser/with-database.d.ts +29 -0
- package/dist/browser/with-database.d.ts.map +1 -0
- package/dist/client.d.ts +4 -0
- package/dist/client.js +5 -0
- package/dist/db-fragment-definition-builder.d.ts +101 -33
- package/dist/db-fragment-definition-builder.d.ts.map +1 -1
- package/dist/db-fragment-definition-builder.js +450 -60
- package/dist/db-fragment-definition-builder.js.map +1 -1
- package/dist/dispatchers/cloudflare-do/dispatcher.d.ts +20 -0
- package/dist/dispatchers/cloudflare-do/dispatcher.d.ts.map +1 -0
- package/dist/dispatchers/cloudflare-do/dispatcher.js +147 -0
- package/dist/dispatchers/cloudflare-do/dispatcher.js.map +1 -0
- package/dist/dispatchers/cloudflare-do/index.d.ts +11 -0
- package/dist/dispatchers/cloudflare-do/index.d.ts.map +1 -0
- package/dist/dispatchers/cloudflare-do/index.js +31 -0
- package/dist/dispatchers/cloudflare-do/index.js.map +1 -0
- package/dist/dispatchers/node/dispatcher.d.ts +14 -0
- package/dist/dispatchers/node/dispatcher.d.ts.map +1 -0
- package/dist/dispatchers/node/dispatcher.js +80 -0
- package/dist/dispatchers/node/dispatcher.js.map +1 -0
- package/dist/dispatchers/node/index.d.ts +12 -0
- package/dist/dispatchers/node/index.d.ts.map +1 -0
- package/dist/dispatchers/node/index.js +27 -0
- package/dist/dispatchers/node/index.js.map +1 -0
- package/dist/durable-hooks.d.ts +31 -0
- package/dist/durable-hooks.d.ts.map +1 -0
- package/dist/durable-hooks.js +23 -0
- package/dist/durable-hooks.js.map +1 -0
- package/dist/fragments/internal-fragment.d.ts +186 -8
- package/dist/fragments/internal-fragment.d.ts.map +1 -1
- package/dist/fragments/internal-fragment.js +203 -38
- package/dist/fragments/internal-fragment.js.map +1 -1
- package/dist/fragments/internal-fragment.routes.js +164 -0
- package/dist/fragments/internal-fragment.routes.js.map +1 -0
- package/dist/fragments/internal-fragment.schema.d.ts +15 -0
- package/dist/fragments/internal-fragment.schema.d.ts.map +1 -0
- package/dist/fragments/internal-fragment.schema.js +39 -0
- package/dist/fragments/internal-fragment.schema.js.map +1 -0
- package/dist/hooks/durable-hooks-logger.d.ts +10 -0
- package/dist/hooks/durable-hooks-logger.d.ts.map +1 -0
- package/dist/hooks/durable-hooks-logger.js +75 -0
- package/dist/hooks/durable-hooks-logger.js.map +1 -0
- package/dist/hooks/durable-hooks-processor.d.ts +1 -0
- package/dist/hooks/durable-hooks-processor.js +80 -0
- package/dist/hooks/durable-hooks-processor.js.map +1 -0
- package/dist/hooks/durable-hooks-runtime.js +44 -0
- package/dist/hooks/durable-hooks-runtime.js.map +1 -0
- package/dist/hooks/hooks.d.ts +100 -1
- package/dist/hooks/hooks.d.ts.map +1 -1
- package/dist/hooks/hooks.js +254 -27
- package/dist/hooks/hooks.js.map +1 -1
- package/dist/id.d.ts +2 -2
- package/dist/id.js +2 -2
- package/dist/internal/adapter-registry.d.ts +11 -0
- package/dist/internal/adapter-registry.d.ts.map +1 -0
- package/dist/internal/adapter-registry.js +135 -0
- package/dist/internal/adapter-registry.js.map +1 -0
- package/dist/internal/outbox-state.d.ts +2 -0
- package/dist/internal/outbox-state.js +26 -0
- package/dist/internal/outbox-state.js.map +1 -0
- package/dist/migration-engine/auto-from-schema.d.ts +33 -0
- package/dist/migration-engine/auto-from-schema.d.ts.map +1 -0
- package/dist/migration-engine/auto-from-schema.js +223 -37
- 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 +86 -35
- package/dist/migration-engine/generation-engine.js.map +1 -1
- package/dist/migration-engine/shared.d.ts +113 -0
- package/dist/migration-engine/shared.d.ts.map +1 -0
- package/dist/migration-engine/shared.js.map +1 -1
- package/dist/mod.d.ts +20 -12
- package/dist/mod.d.ts.map +1 -1
- package/dist/mod.js +18 -12
- 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/outbox/outbox-builder.js +156 -0
- package/dist/outbox/outbox-builder.js.map +1 -0
- package/dist/outbox/outbox.d.ts +54 -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/query/column-defaults.js +20 -4
- package/dist/query/column-defaults.js.map +1 -1
- package/dist/query/condition-builder.d.ts +7 -1
- package/dist/query/condition-builder.d.ts.map +1 -1
- package/dist/query/condition-builder.js +5 -1
- package/dist/query/condition-builder.js.map +1 -1
- package/dist/query/cursor-client.d.ts +105 -0
- package/dist/query/cursor-client.d.ts.map +1 -0
- package/dist/query/cursor-client.js +165 -0
- package/dist/query/cursor-client.js.map +1 -0
- package/dist/query/cursor.d.ts +3 -1
- package/dist/query/cursor.d.ts.map +1 -1
- package/dist/query/cursor.js +51 -14
- package/dist/query/cursor.js.map +1 -1
- package/dist/query/db-now.d.ts +22 -0
- package/dist/query/db-now.d.ts.map +1 -0
- package/dist/query/db-now.js +35 -0
- package/dist/query/db-now.js.map +1 -0
- package/dist/query/orm/orm.js.map +1 -1
- package/dist/query/serialize/create-sql-serializer.js +5 -4
- 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 +60 -12
- 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 +13 -4
- package/dist/query/simple-query-interface.d.ts.map +1 -1
- package/dist/query/unit-of-work/execute-unit-of-work.d.ts +37 -2
- 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 +50 -24
- 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 +92 -30
- package/dist/query/unit-of-work/unit-of-work.d.ts.map +1 -1
- package/dist/query/unit-of-work/unit-of-work.js +136 -11
- package/dist/query/unit-of-work/unit-of-work.js.map +1 -1
- package/dist/query/value-decoding.js +16 -6
- 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 +103 -35
- package/dist/schema/create.d.ts.map +1 -1
- package/dist/schema/create.js +172 -58
- package/dist/schema/create.js.map +1 -1
- package/dist/schema/generate-id.js +2 -2
- package/dist/schema/generate-id.js.map +1 -1
- package/dist/schema/type-conversion/create-sql-type-mapper.js +4 -3
- 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} +88 -60
- 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 +307 -0
- package/dist/schema-output/prisma.js.map +1 -0
- package/dist/sql-driver/dialects/durable-object-dialect.js +3 -9
- package/dist/sql-driver/dialects/durable-object-dialect.js.map +1 -1
- package/dist/sql-driver/query-executor/default-query-executor.js.map +1 -1
- package/dist/sql-driver/query-executor/query-executor-base.js.map +1 -1
- package/dist/sql-driver/sql-driver-adapter.js.map +1 -1
- package/dist/sql-driver/sql.js.map +1 -1
- package/dist/sync/commands.d.ts +15 -0
- package/dist/sync/commands.d.ts.map +1 -0
- package/dist/sync/commands.js +27 -0
- package/dist/sync/commands.js.map +1 -0
- package/dist/sync/index.d.ts +4 -0
- package/dist/sync/index.js +4 -0
- package/dist/sync/read-tracking.d.ts +25 -0
- package/dist/sync/read-tracking.d.ts.map +1 -0
- package/dist/sync/read-tracking.js +148 -0
- package/dist/sync/read-tracking.js.map +1 -0
- package/dist/sync/submit.js +213 -0
- package/dist/sync/submit.js.map +1 -0
- package/dist/sync/types.d.ts +63 -0
- package/dist/sync/types.d.ts.map +1 -0
- package/dist/util/default-database-adapter.js +66 -0
- package/dist/util/default-database-adapter.js.map +1 -0
- package/dist/with-database.d.ts +3 -6
- package/dist/with-database.d.ts.map +1 -1
- package/dist/with-database.js +8 -7
- package/dist/with-database.js.map +1 -1
- package/package.json +62 -55
- package/src/adapters/adapters.ts +33 -26
- package/src/adapters/drizzle/migrate-drizzle.test.ts +99 -41
- package/src/adapters/drizzle/migration-parity-drizzle-kit.test.ts +601 -0
- package/src/adapters/drizzle/test-utils.ts +13 -8
- package/src/adapters/generic-sql/driver-config.ts +38 -0
- package/src/adapters/generic-sql/generic-sql-adapter.test.ts +10 -8
- package/src/adapters/generic-sql/generic-sql-adapter.ts +117 -34
- package/src/adapters/generic-sql/generic-sql-uow-executor.test.ts +55 -0
- package/src/adapters/generic-sql/generic-sql-uow-executor.ts +297 -3
- package/src/adapters/generic-sql/migration/adapter-migration-parity.test.ts +120 -0
- package/src/adapters/generic-sql/migration/cold-kysely.ts +1 -0
- package/src/adapters/generic-sql/migration/dialect/mysql.test.ts +27 -8
- package/src/adapters/generic-sql/migration/dialect/mysql.ts +47 -8
- package/src/adapters/generic-sql/migration/dialect/postgres.test.ts +28 -9
- package/src/adapters/generic-sql/migration/dialect/postgres.ts +9 -4
- package/src/adapters/generic-sql/migration/dialect/sqlite.test.ts +839 -8
- package/src/adapters/generic-sql/migration/dialect/sqlite.ts +396 -53
- package/src/adapters/generic-sql/migration/executor.test.ts +52 -0
- package/src/adapters/generic-sql/migration/executor.ts +47 -4
- package/src/adapters/generic-sql/migration/prepared-migrations.test.ts +238 -46
- package/src/adapters/generic-sql/migration/prepared-migrations.ts +21 -13
- package/src/adapters/generic-sql/migration/sql-generator.ts +145 -66
- package/src/adapters/generic-sql/query/create-sql-query-compiler.ts +11 -8
- package/src/adapters/generic-sql/query/cursor-utils.test.ts +272 -0
- package/src/adapters/generic-sql/query/cursor-utils.ts +42 -7
- package/src/adapters/generic-sql/query/db-now-sql.ts +49 -0
- package/src/adapters/generic-sql/query/generic-sql-uow-operation-compiler.test.ts +171 -35
- package/src/adapters/generic-sql/query/generic-sql-uow-operation-compiler.ts +53 -40
- package/src/adapters/generic-sql/query/select-builder.test.ts +16 -11
- package/src/adapters/generic-sql/query/select-builder.ts +7 -3
- package/src/adapters/generic-sql/query/sql-query-compiler.test.ts +75 -6
- package/src/adapters/generic-sql/query/sql-query-compiler.ts +129 -24
- package/src/adapters/generic-sql/query/where-builder.test.ts +96 -20
- package/src/adapters/generic-sql/query/where-builder.ts +112 -41
- package/src/adapters/{kysely/kysely-adapter-pglite.test.ts → generic-sql/sql-adapter-pglite-migrations.test.ts} +11 -20
- package/src/adapters/generic-sql/sql-adapter-pglite-pagination.test.ts +851 -0
- package/src/adapters/{drizzle/drizzle-adapter-pglite.test.ts → generic-sql/sql-adapter-pglite-queries.test.ts} +18 -15
- package/src/adapters/generic-sql/{test/generic-drizzle-adapter-sqlite3.test.ts → sql-adapter-sqlite3-driver.test.ts} +282 -14
- package/src/adapters/{drizzle/drizzle-adapter-sqlite3.test.ts → generic-sql/sql-adapter-sqlite3-uow.test.ts} +129 -12
- package/src/adapters/{kysely/kysely-adapter-sqlocal.test.ts → generic-sql/sql-adapter-sqlocal.test.ts} +9 -7
- package/src/adapters/generic-sql/sqlite-storage.ts +20 -0
- package/src/adapters/generic-sql/uow-decoder.test.ts +5 -4
- package/src/adapters/generic-sql/uow-decoder.ts +23 -5
- package/src/adapters/generic-sql/uow-encoder.test.ts +36 -3
- package/src/adapters/generic-sql/uow-encoder.ts +48 -13
- package/src/adapters/in-memory/condition-evaluator.test.ts +194 -0
- package/src/adapters/in-memory/condition-evaluator.ts +280 -0
- package/src/adapters/in-memory/errors.ts +20 -0
- package/src/adapters/in-memory/in-memory-adapter.ts +388 -0
- package/src/adapters/in-memory/in-memory-uow.mutations.test.ts +344 -0
- package/src/adapters/in-memory/in-memory-uow.retrieval.test.ts +255 -0
- package/src/adapters/in-memory/in-memory-uow.ts +1724 -0
- package/src/adapters/in-memory/index.ts +3 -0
- package/src/adapters/in-memory/options.test.ts +42 -0
- package/src/adapters/in-memory/options.ts +91 -0
- package/src/adapters/in-memory/outbox.test.ts +361 -0
- package/src/adapters/in-memory/reference-resolution.test.ts +51 -0
- package/src/adapters/in-memory/reference-resolution.ts +67 -0
- package/src/adapters/in-memory/sorted-array-index.test.ts +124 -0
- package/src/adapters/in-memory/sorted-array-index.ts +228 -0
- package/src/adapters/in-memory/store.test.ts +69 -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 +58 -0
- package/src/adapters/prisma/prisma-adapter-sqlite3.test.ts +1207 -0
- package/src/adapters/shared/from-unit-of-work-compiler.ts +159 -47
- package/src/adapters/shared/uow-operation-compiler.ts +28 -18
- package/src/adapters/sql/index.ts +12 -0
- package/src/browser/mod.ts +64 -0
- package/src/client.ts +19 -0
- package/src/db-fragment-definition-builder.test.ts +845 -53
- package/src/db-fragment-definition-builder.ts +911 -95
- package/src/db-fragment-instantiator.test.ts +210 -94
- package/src/db-fragment-integration.test.ts +17 -12
- package/src/dispatchers/cloudflare-do/dispatcher.ts +204 -0
- package/src/dispatchers/cloudflare-do/index.test.ts +206 -0
- package/src/dispatchers/cloudflare-do/index.ts +63 -0
- package/src/dispatchers/node/dispatcher.ts +112 -0
- package/src/dispatchers/node/index.test.ts +120 -0
- package/src/dispatchers/node/index.ts +50 -0
- package/src/durable-hooks.test.ts +80 -0
- package/src/durable-hooks.ts +67 -0
- package/src/fragments/internal-fragment.routes.test.ts +570 -0
- package/src/fragments/internal-fragment.routes.ts +334 -0
- package/src/fragments/internal-fragment.schema.ts +95 -0
- package/src/fragments/internal-fragment.test.ts +505 -83
- package/src/fragments/internal-fragment.ts +453 -70
- package/src/hooks/durable-hooks-logger.ts +126 -0
- package/src/hooks/durable-hooks-processor.pglite.test.ts +87 -0
- package/src/hooks/durable-hooks-processor.test.ts +282 -0
- package/src/hooks/durable-hooks-processor.ts +173 -0
- package/src/hooks/durable-hooks-runtime.test.ts +65 -0
- package/src/hooks/durable-hooks-runtime.ts +81 -0
- package/src/hooks/hooks.test.ts +455 -34
- package/src/hooks/hooks.ts +501 -34
- package/src/id.test.ts +34 -0
- package/src/id.ts +1 -3
- package/src/internal/adapter-registry.test.ts +93 -0
- package/src/internal/adapter-registry.ts +239 -0
- package/src/internal/outbox-state.ts +43 -0
- package/src/migration-engine/auto-from-schema.test.ts +107 -14
- package/src/migration-engine/auto-from-schema.ts +365 -44
- package/src/migration-engine/create.test.ts +4 -3
- package/src/migration-engine/create.ts +1 -1
- package/src/migration-engine/generation-engine.test.ts +292 -110
- package/src/migration-engine/generation-engine.ts +117 -66
- package/src/migration-engine/shared.ts +14 -0
- package/src/mod.ts +95 -39
- package/src/naming/sql-naming.ts +181 -0
- package/src/outbox/outbox-builder.ts +241 -0
- package/src/outbox/outbox.test.ts +424 -0
- package/src/outbox/outbox.ts +139 -0
- package/src/query/column-defaults.ts +42 -4
- package/src/query/condition-builder.test.ts +18 -3
- package/src/query/condition-builder.ts +7 -0
- package/src/query/cursor-client.test.ts +70 -0
- package/src/query/cursor-client.ts +263 -0
- package/src/query/cursor.test.ts +119 -20
- package/src/query/cursor.ts +88 -27
- package/src/query/db-now.ts +73 -0
- package/src/query/orm/orm.ts +2 -2
- package/src/query/query-type.test.ts +4 -3
- package/src/query/serialize/create-sql-serializer.ts +10 -5
- package/src/query/serialize/dialect/mysql-serializer.ts +13 -5
- package/src/query/serialize/dialect/postgres-serializer.ts +35 -5
- package/src/query/serialize/dialect/sqlite-serializer.test.ts +90 -3
- package/src/query/serialize/dialect/sqlite-serializer.ts +108 -12
- package/src/query/serialize/sql-serializer.ts +4 -4
- package/src/query/simple-query-interface.ts +15 -4
- package/src/query/unit-of-work/execute-unit-of-work.test.ts +372 -10
- package/src/query/unit-of-work/execute-unit-of-work.ts +87 -27
- package/src/query/unit-of-work/retry-policy.test.ts +1 -0
- package/src/query/unit-of-work/tx-builder.test.ts +73 -1
- package/src/query/unit-of-work/unit-of-work-coordinator.test.ts +17 -16
- package/src/query/unit-of-work/unit-of-work-types.test.ts +42 -12
- package/src/query/unit-of-work/unit-of-work.test.ts +196 -39
- package/src/query/unit-of-work/unit-of-work.ts +309 -38
- package/src/query/value-decoding.test.ts +63 -4
- package/src/query/value-decoding.ts +32 -6
- package/src/query/value-encoding.test.ts +86 -2
- package/src/query/value-encoding.ts +56 -6
- package/src/schema/create.test.ts +293 -47
- package/src/schema/create.ts +406 -70
- package/src/schema/generate-id.test.ts +3 -2
- package/src/schema/generate-id.ts +2 -2
- package/src/schema/serialize.test.ts +18 -5
- package/src/schema/type-conversion/create-sql-type-mapper.ts +8 -3
- package/src/schema/type-conversion/dialect/sqlite.ts +18 -0
- package/src/schema/type-conversion/type-mapping.test.ts +26 -1
- package/src/schema/validator.test.ts +199 -0
- package/src/schema/validator.ts +232 -0
- package/src/{adapters/drizzle/generate.test.ts → schema-output/drizzle.test.ts} +232 -129
- package/src/{adapters/drizzle/generate.ts → schema-output/drizzle.ts} +155 -99
- package/src/schema-output/prisma.test.ts +694 -0
- package/src/schema-output/prisma.ts +593 -0
- package/src/sql-driver/better-sqlite3.test.ts +5 -3
- package/src/sql-driver/dialects/durable-object-dialect.ts +3 -8
- package/src/sql-driver/query-executor/default-query-executor.ts +1 -1
- package/src/sql-driver/query-executor/query-executor-base.ts +1 -1
- package/src/sql-driver/query-executor/query-executor.ts +1 -1
- package/src/sql-driver/sql-driver-adapter.ts +2 -2
- package/src/sql-driver/sql.ts +2 -1
- package/src/sql-driver/sqlocal.test.ts +4 -2
- package/src/sync/commands.test.ts +39 -0
- package/src/sync/commands.ts +51 -0
- package/src/sync/conflict-checker.test.ts +450 -0
- package/src/sync/conflict-checker.ts +248 -0
- package/src/sync/index.ts +14 -0
- package/src/sync/plan.ts +9 -0
- package/src/sync/read-tracking.test.ts +177 -0
- package/src/sync/read-tracking.ts +287 -0
- package/src/sync/submit.test.ts +205 -0
- package/src/sync/submit.ts +328 -0
- package/src/sync/types.ts +80 -0
- package/src/util/default-database-adapter.ts +119 -0
- package/src/with-database.ts +20 -31
- package/tsconfig.json +1 -1
- package/tsdown.config.ts +38 -24
- package/vitest.config.ts +1 -0
- 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 +0 -165
- package/dist/node_modules/.pnpm/rou3@0.7.10/node_modules/rou3/dist/index.js.map +0 -1
- package/dist/packages/fragno/dist/api/bind-services.js +0 -20
- package/dist/packages/fragno/dist/api/bind-services.js.map +0 -1
- package/dist/packages/fragno/dist/api/error.js +0 -48
- package/dist/packages/fragno/dist/api/error.js.map +0 -1
- package/dist/packages/fragno/dist/api/fragment-definition-builder.js +0 -320
- package/dist/packages/fragno/dist/api/fragment-definition-builder.js.map +0 -1
- package/dist/packages/fragno/dist/api/fragment-instantiator.js +0 -525
- package/dist/packages/fragno/dist/api/fragment-instantiator.js.map +0 -1
- package/dist/packages/fragno/dist/api/fragno-response.js +0 -73
- package/dist/packages/fragno/dist/api/fragno-response.js.map +0 -1
- package/dist/packages/fragno/dist/api/internal/response-stream.js +0 -81
- package/dist/packages/fragno/dist/api/internal/response-stream.js.map +0 -1
- package/dist/packages/fragno/dist/api/internal/route.js +0 -10
- package/dist/packages/fragno/dist/api/internal/route.js.map +0 -1
- package/dist/packages/fragno/dist/api/mutable-request-state.js +0 -97
- package/dist/packages/fragno/dist/api/mutable-request-state.js.map +0 -1
- package/dist/packages/fragno/dist/api/request-context-storage.js +0 -43
- package/dist/packages/fragno/dist/api/request-context-storage.js.map +0 -1
- package/dist/packages/fragno/dist/api/request-input-context.js +0 -118
- package/dist/packages/fragno/dist/api/request-input-context.js.map +0 -1
- package/dist/packages/fragno/dist/api/request-middleware.js +0 -83
- package/dist/packages/fragno/dist/api/request-middleware.js.map +0 -1
- package/dist/packages/fragno/dist/api/request-output-context.js +0 -119
- package/dist/packages/fragno/dist/api/request-output-context.js.map +0 -1
- package/dist/packages/fragno/dist/api/route.js +0 -17
- package/dist/packages/fragno/dist/api/route.js.map +0 -1
- package/dist/packages/fragno/dist/internal/symbols.js +0 -10
- package/dist/packages/fragno/dist/internal/symbols.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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"with-database.js","names":[],"sources":["../src/with-database.ts"],"sourcesContent":["import type {
|
|
1
|
+
{"version":3,"file":"with-database.js","names":[],"sources":["../src/with-database.ts"],"sourcesContent":["import type { RequestThisContext, FragnoPublicConfig, AnyRouteOrFactory } from \"@fragno-dev/core\";\nimport { FragmentDefinitionBuilder } from \"@fragno-dev/core\";\n\nimport {\n DatabaseFragmentDefinitionBuilder,\n type DatabaseServiceContext,\n type DatabaseHandlerContext,\n type ImplicitDatabaseDependencies,\n type FragnoPublicConfigWithDatabase,\n type DatabaseRequestStorage,\n} from \"./db-fragment-definition-builder\";\nimport type { HooksMap } from \"./hooks/hooks\";\nimport { getInternalFragment, getRegistryForAdapterSync } from \"./internal/adapter-registry\";\nimport type { AnySchema } from \"./schema/create\";\n\n/**\n * Helper to add database support to a fragment builder.\n * Registers the schema with the adapter registry and adds ImplicitDatabaseDependencies to the TDeps type.\n *\n * @example\n * ```typescript\n * // With .extend() - recommended\n * const def = defineFragment(\"my-frag\")\n * .extend(withDatabase(mySchema))\n * .withDependencies(...)\n * .build();\n *\n * // Or as a function wrapper\n * const def = withDatabase(mySchema)(defineFragment(\"my-frag\"))\n * .withDependencies(...)\n * .build();\n * ```\n */\nexport function withDatabase<TSchema extends AnySchema>(\n schema: TSchema,\n): <\n TConfig,\n TDeps,\n TBaseServices,\n TServices,\n TServiceDeps,\n TPrivateServices,\n TServiceThisContext extends RequestThisContext,\n THandlerThisContext extends RequestThisContext,\n TRequestStorage,\n TInternalRoutes extends readonly AnyRouteOrFactory[],\n>(\n builder: FragmentDefinitionBuilder<\n TConfig,\n FragnoPublicConfig,\n TDeps,\n TBaseServices,\n TServices,\n TServiceDeps,\n TPrivateServices,\n TServiceThisContext,\n THandlerThisContext,\n TRequestStorage,\n TInternalRoutes\n >,\n) => DatabaseFragmentDefinitionBuilder<\n TSchema,\n TConfig,\n TDeps & ImplicitDatabaseDependencies<TSchema>,\n TBaseServices,\n TServices,\n TServiceDeps,\n TPrivateServices,\n HooksMap,\n DatabaseServiceContext<HooksMap>,\n DatabaseHandlerContext,\n TInternalRoutes\n> {\n return <\n TConfig,\n TDeps,\n TBaseServices,\n TServices,\n TServiceDeps,\n TPrivateServices,\n TServiceThisContext extends RequestThisContext,\n THandlerThisContext extends RequestThisContext,\n TRequestStorage,\n TInternalRoutes extends readonly AnyRouteOrFactory[],\n >(\n builder: FragmentDefinitionBuilder<\n TConfig,\n FragnoPublicConfig,\n TDeps,\n TBaseServices,\n TServices,\n TServiceDeps,\n TPrivateServices,\n TServiceThisContext,\n THandlerThisContext,\n TRequestStorage,\n TInternalRoutes\n >,\n ) => {\n // Cast is safe: we're creating a DatabaseFragmentDefinitionBuilder which internally uses\n // FragnoPublicConfigWithDatabase, but the input builder uses FragnoPublicConfig.\n // The database builder's build() method will enforce FragnoPublicConfigWithDatabase at the end.\n // We also add ImplicitDatabaseDependencies to TDeps so they're available in service constructors.\n // Note: We discard TRequestStorage here because database fragments manage their own storage (DatabaseRequestStorage).\n // We set TServiceThisContext to DatabaseServiceContext (restricted) and THandlerThisContext to DatabaseHandlerContext (full).\n return new DatabaseFragmentDefinitionBuilder<\n TSchema,\n TConfig,\n TDeps & ImplicitDatabaseDependencies<TSchema>,\n TBaseServices,\n TServices,\n TServiceDeps,\n TPrivateServices,\n {}, // Start with empty hooks, provideHooks() will update this\n DatabaseServiceContext<{}>,\n DatabaseHandlerContext,\n TInternalRoutes\n >(\n builder as unknown as FragmentDefinitionBuilder<\n TConfig,\n FragnoPublicConfigWithDatabase,\n TDeps & ImplicitDatabaseDependencies<TSchema>,\n TBaseServices,\n TServices,\n TServiceDeps,\n TPrivateServices,\n DatabaseServiceContext<{}>,\n DatabaseHandlerContext,\n DatabaseRequestStorage,\n TInternalRoutes\n >,\n schema,\n undefined,\n undefined,\n {\n getRegistryForAdapterSync,\n getInternalFragment,\n },\n );\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAiCA,SAAgB,aACd,QAsCA;AACA,SAYE,YAaG;AAOH,SAAO,IAAI,kCAaT,SAaA,QACA,QACA,QACA;GACE;GACA;GACD,CACF"}
|
package/package.json
CHANGED
|
@@ -1,127 +1,134 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fragno-dev/db",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.1",
|
|
4
|
+
"homepage": "https://fragno.dev",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "https://github.com/rejot-dev/fragno.git",
|
|
9
|
+
"directory": "packages/fragno-db"
|
|
10
|
+
},
|
|
4
11
|
"type": "module",
|
|
5
12
|
"exports": {
|
|
6
13
|
".": {
|
|
7
|
-
"
|
|
14
|
+
"workerd": "./dist/mod.js",
|
|
15
|
+
"worker": "./dist/mod.js",
|
|
16
|
+
"browser": "./dist/browser/mod.js",
|
|
8
17
|
"types": "./dist/mod.d.ts",
|
|
9
18
|
"default": "./dist/mod.js"
|
|
10
19
|
},
|
|
11
20
|
"./id": {
|
|
12
|
-
"development": "./src/id.ts",
|
|
13
21
|
"types": "./dist/id.d.ts",
|
|
14
22
|
"default": "./dist/id.js"
|
|
15
23
|
},
|
|
16
24
|
"./schema": {
|
|
17
|
-
"development": "./src/schema/create.ts",
|
|
18
25
|
"types": "./dist/schema/create.d.ts",
|
|
19
26
|
"default": "./dist/schema/create.js"
|
|
20
27
|
},
|
|
21
28
|
"./drivers": {
|
|
22
|
-
"development": "./src/adapters/generic-sql/driver-config.ts",
|
|
23
29
|
"types": "./dist/adapters/generic-sql/driver-config.d.ts",
|
|
24
30
|
"default": "./dist/adapters/generic-sql/driver-config.js"
|
|
25
31
|
},
|
|
26
32
|
"./sql-driver": {
|
|
27
|
-
"development": "./src/sql-driver/sql-driver.ts",
|
|
28
33
|
"types": "./dist/sql-driver/sql-driver.d.ts",
|
|
29
34
|
"default": "./dist/sql-driver/sql-driver.js"
|
|
30
35
|
},
|
|
31
36
|
"./dialects": {
|
|
32
|
-
"development": "./src/sql-driver/dialects/dialects.ts",
|
|
33
37
|
"types": "./dist/sql-driver/dialects/dialects.d.ts",
|
|
34
38
|
"default": "./dist/sql-driver/dialects/dialects.js"
|
|
35
39
|
},
|
|
36
40
|
"./dialects/durable-object": {
|
|
37
|
-
"development": "./src/sql-driver/dialects/durable-object-dialect.ts",
|
|
38
41
|
"types": "./dist/sql-driver/dialects/durable-object-dialect.d.ts",
|
|
39
42
|
"default": "./dist/sql-driver/dialects/durable-object-dialect.js"
|
|
40
43
|
},
|
|
41
44
|
"./query": {
|
|
42
|
-
"development": "./src/query/simple-query-interface.ts",
|
|
43
45
|
"types": "./dist/query/simple-query-interface.d.ts",
|
|
44
46
|
"default": "./dist/query/simple-query-interface.js"
|
|
45
47
|
},
|
|
46
48
|
"./adapters": {
|
|
47
|
-
"development": "./src/adapters/adapters.ts",
|
|
48
49
|
"types": "./dist/adapters/adapters.d.ts",
|
|
49
50
|
"default": "./dist/adapters/adapters.js"
|
|
50
51
|
},
|
|
51
|
-
"./adapters/
|
|
52
|
-
"
|
|
53
|
-
"
|
|
54
|
-
|
|
52
|
+
"./adapters/in-memory": {
|
|
53
|
+
"types": "./dist/adapters/in-memory/index.d.ts",
|
|
54
|
+
"default": "./dist/adapters/in-memory/index.js"
|
|
55
|
+
},
|
|
56
|
+
"./adapters/sql": {
|
|
57
|
+
"types": "./dist/adapters/sql/index.d.ts",
|
|
58
|
+
"default": "./dist/adapters/sql/index.js"
|
|
59
|
+
},
|
|
60
|
+
"./schema-output/drizzle": {
|
|
61
|
+
"types": "./dist/schema-output/drizzle.d.ts",
|
|
62
|
+
"default": "./dist/schema-output/drizzle.js"
|
|
55
63
|
},
|
|
56
|
-
"./
|
|
57
|
-
"
|
|
58
|
-
"
|
|
59
|
-
"default": "./dist/adapters/drizzle/drizzle-adapter.js"
|
|
64
|
+
"./schema-output/prisma": {
|
|
65
|
+
"types": "./dist/schema-output/prisma.d.ts",
|
|
66
|
+
"default": "./dist/schema-output/prisma.js"
|
|
60
67
|
},
|
|
61
|
-
"./
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"default": "./dist/adapters/drizzle/generate.js"
|
|
68
|
+
"./client": {
|
|
69
|
+
"types": "./dist/client.d.ts",
|
|
70
|
+
"default": "./dist/client.js"
|
|
65
71
|
},
|
|
66
|
-
"./
|
|
67
|
-
"
|
|
68
|
-
"types": "./dist/
|
|
69
|
-
"default": "./dist/
|
|
72
|
+
"./sync": {
|
|
73
|
+
"browser": "./dist/browser/mod.js",
|
|
74
|
+
"types": "./dist/sync/index.d.ts",
|
|
75
|
+
"default": "./dist/sync/index.js"
|
|
70
76
|
},
|
|
71
77
|
"./unit-of-work": {
|
|
72
|
-
"development": "./src/query/unit-of-work/unit-of-work.ts",
|
|
73
78
|
"types": "./dist/query/unit-of-work/unit-of-work.d.ts",
|
|
74
79
|
"default": "./dist/query/unit-of-work/unit-of-work.js"
|
|
75
80
|
},
|
|
76
81
|
"./cursor": {
|
|
77
|
-
"development": "./src/query/cursor.ts",
|
|
78
82
|
"types": "./dist/query/cursor.d.ts",
|
|
79
83
|
"default": "./dist/query/cursor.js"
|
|
80
84
|
},
|
|
81
85
|
"./fragment": {
|
|
82
|
-
"development": "./src/fragment.ts",
|
|
83
86
|
"types": "./dist/fragment.d.ts",
|
|
84
87
|
"default": "./dist/fragment.js"
|
|
85
88
|
},
|
|
86
89
|
"./fragment-definition-builder": {
|
|
87
|
-
"development": "./src/db-fragment-definition-builder.ts",
|
|
88
90
|
"types": "./dist/db-fragment-definition-builder.d.ts",
|
|
89
91
|
"default": "./dist/db-fragment-definition-builder.js"
|
|
90
92
|
},
|
|
93
|
+
"./durable-hooks": {
|
|
94
|
+
"types": "./dist/durable-hooks.d.ts",
|
|
95
|
+
"default": "./dist/durable-hooks.js"
|
|
96
|
+
},
|
|
97
|
+
"./dispatchers/node": {
|
|
98
|
+
"types": "./dist/dispatchers/node/index.d.ts",
|
|
99
|
+
"default": "./dist/dispatchers/node/index.js"
|
|
100
|
+
},
|
|
101
|
+
"./dispatchers/cloudflare-do": {
|
|
102
|
+
"types": "./dist/dispatchers/cloudflare-do/index.d.ts",
|
|
103
|
+
"default": "./dist/dispatchers/cloudflare-do/index.js"
|
|
104
|
+
},
|
|
91
105
|
"./generation-engine": {
|
|
92
|
-
"development": "./src/migration-engine/generation-engine.ts",
|
|
93
106
|
"types": "./dist/migration-engine/generation-engine.d.ts",
|
|
94
107
|
"default": "./dist/migration-engine/generation-engine.js"
|
|
95
108
|
}
|
|
96
109
|
},
|
|
110
|
+
"dependencies": {
|
|
111
|
+
"@standard-schema/spec": "^1.1.0",
|
|
112
|
+
"kysely": "^0.28.10",
|
|
113
|
+
"superjson": "^2.2.1",
|
|
114
|
+
"@fragno-dev/core": "0.2.2"
|
|
115
|
+
},
|
|
97
116
|
"devDependencies": {
|
|
98
|
-
"@electric-sql/pglite": "^0.3.
|
|
117
|
+
"@electric-sql/pglite": "^0.3.15",
|
|
99
118
|
"@libsql/client": "^0.15.15",
|
|
100
119
|
"@types/better-sqlite3": "^7.6.13",
|
|
101
|
-
"@types/node": "^22",
|
|
102
|
-
"@vitest/coverage-istanbul": "^
|
|
103
|
-
"better-sqlite3": "^12.
|
|
104
|
-
"drizzle-kit": "^0.31.
|
|
105
|
-
"drizzle-orm": "^0.44.
|
|
120
|
+
"@types/node": "^22.19.7",
|
|
121
|
+
"@vitest/coverage-istanbul": "^4.1.0",
|
|
122
|
+
"better-sqlite3": "^12.6.2",
|
|
123
|
+
"drizzle-kit": "^0.31.8",
|
|
124
|
+
"drizzle-orm": "^0.44.7",
|
|
106
125
|
"kysely-pglite": "^0.6.1",
|
|
107
|
-
"mysql2": "^3.
|
|
126
|
+
"mysql2": "^3.16.1",
|
|
108
127
|
"sqlocal": "^0.15.2",
|
|
109
|
-
"vitest": "^
|
|
110
|
-
"zod": "^4.
|
|
111
|
-
"@fragno-
|
|
112
|
-
"@fragno-private/vitest-config": "0.0.0"
|
|
113
|
-
"@fragno-private/typescript-config": "0.0.1"
|
|
114
|
-
},
|
|
115
|
-
"repository": {
|
|
116
|
-
"type": "git",
|
|
117
|
-
"url": "https://github.com/rejot-dev/fragno.git",
|
|
118
|
-
"directory": "packages/fragno-db"
|
|
119
|
-
},
|
|
120
|
-
"homepage": "https://fragno.dev",
|
|
121
|
-
"license": "MIT",
|
|
122
|
-
"dependencies": {
|
|
123
|
-
"@paralleldrive/cuid2": "^2.3.1",
|
|
124
|
-
"kysely": "^0.28.7"
|
|
128
|
+
"vitest": "^4.1.4",
|
|
129
|
+
"zod": "^4.3.5",
|
|
130
|
+
"@fragno-private/typescript-config": "0.0.1",
|
|
131
|
+
"@fragno-private/vitest-config": "0.0.0"
|
|
125
132
|
},
|
|
126
133
|
"peerDependencies": {
|
|
127
134
|
"drizzle-orm": "^0.44.6"
|
|
@@ -134,7 +141,7 @@
|
|
|
134
141
|
"scripts": {
|
|
135
142
|
"build": "tsdown",
|
|
136
143
|
"build:watch": "tsdown --watch",
|
|
137
|
-
"types:check": "
|
|
144
|
+
"types:check": "tsgo --noEmit",
|
|
138
145
|
"test": "vitest run",
|
|
139
146
|
"test:watch": "vitest --watch"
|
|
140
147
|
}
|
package/src/adapters/adapters.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import type { SimpleQueryInterface } from "../query/simple-query-interface";
|
|
2
|
-
import type { SchemaGenerator } from "../schema-generator/schema-generator";
|
|
3
|
-
import type { AnySchema } from "../schema/create";
|
|
4
1
|
import type { RequestContextStorage } from "@fragno-dev/core/internal/request-context-storage";
|
|
2
|
+
|
|
3
|
+
import type { SqlNamingStrategy } from "../naming/sql-naming";
|
|
4
|
+
import type { SimpleQueryInterface } from "../query/simple-query-interface";
|
|
5
5
|
import type { IUnitOfWork } from "../query/unit-of-work/unit-of-work";
|
|
6
|
+
import type { AnySchema } from "../schema/create";
|
|
7
|
+
import type { SQLProvider } from "../shared/providers";
|
|
6
8
|
import type { PreparedMigrations } from "./generic-sql/migration/prepared-migrations";
|
|
9
|
+
import type { SQLiteStorageMode } from "./generic-sql/sqlite-storage";
|
|
7
10
|
|
|
8
11
|
export const fragnoDatabaseAdapterNameFakeSymbol = "$fragno-database-adapter-name" as const;
|
|
9
12
|
export const fragnoDatabaseAdapterVersionFakeSymbol = "$fragno-database-adapter-version" as const;
|
|
@@ -16,12 +19,12 @@ export type DatabaseContextStorage = {
|
|
|
16
19
|
uow: IUnitOfWork;
|
|
17
20
|
};
|
|
18
21
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
export type SQLiteProfile = "default" | "prisma";
|
|
23
|
+
|
|
24
|
+
export interface DatabaseAdapterMetadata {
|
|
25
|
+
databaseType?: SQLProvider;
|
|
26
|
+
sqliteProfile?: SQLiteProfile;
|
|
27
|
+
sqliteStorageMode?: SQLiteStorageMode;
|
|
25
28
|
}
|
|
26
29
|
|
|
27
30
|
export interface DatabaseAdapter<TUOWConfig = void> {
|
|
@@ -34,36 +37,40 @@ export interface DatabaseAdapter<TUOWConfig = void> {
|
|
|
34
37
|
*/
|
|
35
38
|
readonly contextStorage: RequestContextStorage<DatabaseContextStorage>;
|
|
36
39
|
|
|
40
|
+
/**
|
|
41
|
+
* Optional adapter override used for durable hook processing.
|
|
42
|
+
* Use this when the public adapter wraps another adapter (e.g. model checker).
|
|
43
|
+
*/
|
|
44
|
+
getHookProcessingAdapter?: () => DatabaseAdapter<TUOWConfig>;
|
|
45
|
+
|
|
37
46
|
/**
|
|
38
47
|
* Get current schema version, undefined if not initialized.
|
|
39
48
|
*/
|
|
40
49
|
getSchemaVersion(namespace: string): Promise<string | undefined>;
|
|
41
50
|
|
|
51
|
+
/**
|
|
52
|
+
* Optional metadata used by schema output tooling.
|
|
53
|
+
*/
|
|
54
|
+
readonly adapterMetadata?: DatabaseAdapterMetadata;
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Naming strategy used for physical SQL identifiers.
|
|
58
|
+
*/
|
|
59
|
+
readonly namingStrategy: SqlNamingStrategy;
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* @deprecated Avoid using query engines directly in fragment code. Prefer handlerTx/serviceTx.
|
|
63
|
+
*/
|
|
42
64
|
createQueryEngine: <const T extends AnySchema>(
|
|
43
65
|
schema: T,
|
|
44
|
-
namespace: string,
|
|
66
|
+
namespace: string | null,
|
|
45
67
|
) => SimpleQueryInterface<T, TUOWConfig>;
|
|
46
68
|
|
|
47
69
|
prepareMigrations?: <const T extends AnySchema>(
|
|
48
70
|
schema: T,
|
|
49
|
-
namespace: string,
|
|
71
|
+
namespace: string | null,
|
|
50
72
|
) => PreparedMigrations;
|
|
51
73
|
|
|
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
74
|
isConnectionHealthy: () => Promise<boolean>;
|
|
68
75
|
|
|
69
76
|
close: () => Promise<void>;
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { beforeAll, describe, expect, it } from "vitest";
|
|
2
|
-
|
|
2
|
+
|
|
3
3
|
import { createRequire } from "node:module";
|
|
4
|
+
|
|
5
|
+
import { column, idColumn, referenceColumn, schema } from "../../schema/create";
|
|
4
6
|
import { writeAndLoadSchema } from "./test-utils";
|
|
5
7
|
|
|
6
8
|
// I dunno
|
|
@@ -9,7 +11,7 @@ const { generateDrizzleJson, generateMigration } =
|
|
|
9
11
|
require("drizzle-kit/api") as typeof import("drizzle-kit/api");
|
|
10
12
|
|
|
11
13
|
describe("generateSchema and migrate", () => {
|
|
12
|
-
const testSchema = schema((s) => {
|
|
14
|
+
const testSchema = schema("test", (s) => {
|
|
13
15
|
return s
|
|
14
16
|
.addTable("users", (t) => {
|
|
15
17
|
return t
|
|
@@ -151,15 +153,16 @@ describe("generateSchema and migrate", () => {
|
|
|
151
153
|
|
|
152
154
|
expect(migrationStatements.join("\n")).toMatchInlineSnapshot(`
|
|
153
155
|
"CREATE TABLE "fragno_db_settings" (
|
|
154
|
-
"id" varchar(
|
|
156
|
+
"id" varchar(128) NOT NULL,
|
|
155
157
|
"key" text NOT NULL,
|
|
156
158
|
"value" text NOT NULL,
|
|
157
159
|
"_internalId" bigserial PRIMARY KEY NOT NULL,
|
|
158
|
-
"_version" integer DEFAULT 0 NOT NULL
|
|
160
|
+
"_version" integer DEFAULT 0 NOT NULL,
|
|
161
|
+
CONSTRAINT "fragno_db_settings_id_unique" UNIQUE("id")
|
|
159
162
|
);
|
|
160
163
|
|
|
161
164
|
CREATE TABLE "fragno_hooks" (
|
|
162
|
-
"id" varchar(
|
|
165
|
+
"id" varchar(128) NOT NULL,
|
|
163
166
|
"namespace" text NOT NULL,
|
|
164
167
|
"hookName" text NOT NULL,
|
|
165
168
|
"payload" json NOT NULL,
|
|
@@ -172,11 +175,53 @@ describe("generateSchema and migrate", () => {
|
|
|
172
175
|
"createdAt" timestamp DEFAULT now() NOT NULL,
|
|
173
176
|
"nonce" text NOT NULL,
|
|
174
177
|
"_internalId" bigserial PRIMARY KEY NOT NULL,
|
|
175
|
-
"_version" integer DEFAULT 0 NOT NULL
|
|
178
|
+
"_version" integer DEFAULT 0 NOT NULL,
|
|
179
|
+
CONSTRAINT "fragno_hooks_id_unique" UNIQUE("id")
|
|
180
|
+
);
|
|
181
|
+
|
|
182
|
+
CREATE TABLE "fragno_db_outbox" (
|
|
183
|
+
"id" varchar(128) NOT NULL,
|
|
184
|
+
"versionstamp" text NOT NULL,
|
|
185
|
+
"uowId" text NOT NULL,
|
|
186
|
+
"payload" json NOT NULL,
|
|
187
|
+
"refMap" json,
|
|
188
|
+
"createdAt" timestamp DEFAULT now() NOT NULL,
|
|
189
|
+
"_internalId" bigserial PRIMARY KEY NOT NULL,
|
|
190
|
+
"_version" integer DEFAULT 0 NOT NULL,
|
|
191
|
+
CONSTRAINT "fragno_db_outbox_id_unique" UNIQUE("id")
|
|
192
|
+
);
|
|
193
|
+
|
|
194
|
+
CREATE TABLE "fragno_db_outbox_mutations" (
|
|
195
|
+
"id" varchar(128) NOT NULL,
|
|
196
|
+
"entryVersionstamp" text NOT NULL,
|
|
197
|
+
"mutationVersionstamp" text NOT NULL,
|
|
198
|
+
"uowId" text NOT NULL,
|
|
199
|
+
"schema" text NOT NULL,
|
|
200
|
+
"table" text NOT NULL,
|
|
201
|
+
"externalId" text NOT NULL,
|
|
202
|
+
"op" text NOT NULL,
|
|
203
|
+
"createdAt" timestamp DEFAULT now() NOT NULL,
|
|
204
|
+
"_internalId" bigserial PRIMARY KEY NOT NULL,
|
|
205
|
+
"_version" integer DEFAULT 0 NOT NULL,
|
|
206
|
+
CONSTRAINT "fragno_db_outbox_mutations_id_unique" UNIQUE("id")
|
|
207
|
+
);
|
|
208
|
+
|
|
209
|
+
CREATE TABLE "fragno_db_sync_requests" (
|
|
210
|
+
"id" varchar(128) NOT NULL,
|
|
211
|
+
"requestId" text NOT NULL,
|
|
212
|
+
"status" text NOT NULL,
|
|
213
|
+
"confirmedCommandIds" json NOT NULL,
|
|
214
|
+
"conflictCommandId" text,
|
|
215
|
+
"baseVersionstamp" text,
|
|
216
|
+
"lastVersionstamp" text,
|
|
217
|
+
"createdAt" timestamp DEFAULT now() NOT NULL,
|
|
218
|
+
"_internalId" bigserial PRIMARY KEY NOT NULL,
|
|
219
|
+
"_version" integer DEFAULT 0 NOT NULL,
|
|
220
|
+
CONSTRAINT "fragno_db_sync_requests_id_unique" UNIQUE("id")
|
|
176
221
|
);
|
|
177
222
|
|
|
178
|
-
CREATE TABLE "users" (
|
|
179
|
-
"id" varchar(
|
|
223
|
+
CREATE TABLE "test"."users" (
|
|
224
|
+
"id" varchar(128) NOT NULL,
|
|
180
225
|
"name" text NOT NULL,
|
|
181
226
|
"email" text NOT NULL,
|
|
182
227
|
"age" integer,
|
|
@@ -185,11 +230,12 @@ describe("generateSchema and migrate", () => {
|
|
|
185
230
|
"createdAt" timestamp DEFAULT now() NOT NULL,
|
|
186
231
|
"updatedAt" timestamp DEFAULT now() NOT NULL,
|
|
187
232
|
"_internalId" bigserial PRIMARY KEY NOT NULL,
|
|
188
|
-
"_version" integer DEFAULT 0 NOT NULL
|
|
233
|
+
"_version" integer DEFAULT 0 NOT NULL,
|
|
234
|
+
CONSTRAINT "users_id_unique" UNIQUE("id")
|
|
189
235
|
);
|
|
190
236
|
|
|
191
|
-
CREATE TABLE "posts" (
|
|
192
|
-
"id" varchar(
|
|
237
|
+
CREATE TABLE "test"."posts" (
|
|
238
|
+
"id" varchar(128) NOT NULL,
|
|
193
239
|
"title" text NOT NULL,
|
|
194
240
|
"slug" varchar(255) NOT NULL,
|
|
195
241
|
"content" text NOT NULL,
|
|
@@ -204,11 +250,12 @@ describe("generateSchema and migrate", () => {
|
|
|
204
250
|
"thumbnail" "bytea",
|
|
205
251
|
"createdAt" timestamp DEFAULT now() NOT NULL,
|
|
206
252
|
"_internalId" bigserial PRIMARY KEY NOT NULL,
|
|
207
|
-
"_version" integer DEFAULT 0 NOT NULL
|
|
253
|
+
"_version" integer DEFAULT 0 NOT NULL,
|
|
254
|
+
CONSTRAINT "posts_id_unique" UNIQUE("id")
|
|
208
255
|
);
|
|
209
256
|
|
|
210
|
-
CREATE TABLE "comments" (
|
|
211
|
-
"id" varchar(
|
|
257
|
+
CREATE TABLE "test"."comments" (
|
|
258
|
+
"id" varchar(128) NOT NULL,
|
|
212
259
|
"content" text NOT NULL,
|
|
213
260
|
"postId" bigint NOT NULL,
|
|
214
261
|
"userId" bigint NOT NULL,
|
|
@@ -217,53 +264,64 @@ describe("generateSchema and migrate", () => {
|
|
|
217
264
|
"editedAt" timestamp,
|
|
218
265
|
"isDeleted" boolean DEFAULT false NOT NULL,
|
|
219
266
|
"_internalId" bigserial PRIMARY KEY NOT NULL,
|
|
220
|
-
"_version" integer DEFAULT 0 NOT NULL
|
|
267
|
+
"_version" integer DEFAULT 0 NOT NULL,
|
|
268
|
+
CONSTRAINT "comments_id_unique" UNIQUE("id")
|
|
221
269
|
);
|
|
222
270
|
|
|
223
|
-
CREATE TABLE "tags" (
|
|
224
|
-
"id" varchar(
|
|
271
|
+
CREATE TABLE "test"."tags" (
|
|
272
|
+
"id" varchar(128) NOT NULL,
|
|
225
273
|
"name" text NOT NULL,
|
|
226
274
|
"slug" varchar(100) NOT NULL,
|
|
227
275
|
"description" text,
|
|
228
276
|
"color" varchar(7),
|
|
229
277
|
"usageCount" bigint DEFAULT 0 NOT NULL,
|
|
230
278
|
"_internalId" bigserial PRIMARY KEY NOT NULL,
|
|
231
|
-
"_version" integer DEFAULT 0 NOT NULL
|
|
279
|
+
"_version" integer DEFAULT 0 NOT NULL,
|
|
280
|
+
CONSTRAINT "tags_id_unique" UNIQUE("id")
|
|
232
281
|
);
|
|
233
282
|
|
|
234
|
-
CREATE TABLE "postTags" (
|
|
235
|
-
"id" varchar(
|
|
283
|
+
CREATE TABLE "test"."postTags" (
|
|
284
|
+
"id" varchar(128) NOT NULL,
|
|
236
285
|
"postId" bigint NOT NULL,
|
|
237
286
|
"tagId" bigint NOT NULL,
|
|
238
287
|
"order" integer DEFAULT 0 NOT NULL,
|
|
239
288
|
"createdAt" timestamp DEFAULT now() NOT NULL,
|
|
240
289
|
"_internalId" bigserial PRIMARY KEY NOT NULL,
|
|
241
|
-
"_version" integer DEFAULT 0 NOT NULL
|
|
290
|
+
"_version" integer DEFAULT 0 NOT NULL,
|
|
291
|
+
CONSTRAINT "postTags_id_unique" UNIQUE("id")
|
|
242
292
|
);
|
|
243
293
|
|
|
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 "
|
|
294
|
+
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;
|
|
295
|
+
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;
|
|
296
|
+
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;
|
|
297
|
+
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;
|
|
298
|
+
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;
|
|
299
|
+
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
300
|
CREATE UNIQUE INDEX "unique_key" ON "fragno_db_settings" USING btree ("key");
|
|
251
301
|
CREATE INDEX "idx_namespace_status_retry" ON "fragno_hooks" USING btree ("namespace","status","nextRetryAt");
|
|
252
302
|
CREATE INDEX "idx_nonce" ON "fragno_hooks" USING btree ("nonce");
|
|
253
|
-
CREATE
|
|
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
|
|
266
|
-
CREATE INDEX "
|
|
303
|
+
CREATE INDEX "idx_namespace_status_last_attempt" ON "fragno_hooks" USING btree ("namespace","status","lastAttemptAt");
|
|
304
|
+
CREATE INDEX "idx_namespace_created_at" ON "fragno_hooks" USING btree ("namespace","createdAt","id");
|
|
305
|
+
CREATE UNIQUE INDEX "idx_outbox_versionstamp" ON "fragno_db_outbox" USING btree ("versionstamp");
|
|
306
|
+
CREATE INDEX "idx_outbox_uow" ON "fragno_db_outbox" USING btree ("uowId");
|
|
307
|
+
CREATE INDEX "idx_outbox_mutations_entry" ON "fragno_db_outbox_mutations" USING btree ("entryVersionstamp");
|
|
308
|
+
CREATE INDEX "idx_outbox_mutations_key" ON "fragno_db_outbox_mutations" USING btree ("schema","table","externalId","entryVersionstamp");
|
|
309
|
+
CREATE INDEX "idx_outbox_mutations_uow" ON "fragno_db_outbox_mutations" USING btree ("uowId");
|
|
310
|
+
CREATE UNIQUE INDEX "idx_sync_request_id" ON "fragno_db_sync_requests" USING btree ("requestId");
|
|
311
|
+
CREATE UNIQUE INDEX "idx_users_email" ON "test"."users" USING btree ("email");
|
|
312
|
+
CREATE INDEX "idx_users_name" ON "test"."users" USING btree ("name");
|
|
313
|
+
CREATE INDEX "idx_users_active" ON "test"."users" USING btree ("isActive");
|
|
314
|
+
CREATE INDEX "idx_posts_user" ON "test"."posts" USING btree ("userId");
|
|
315
|
+
CREATE INDEX "idx_posts_title" ON "test"."posts" USING btree ("title");
|
|
316
|
+
CREATE UNIQUE INDEX "idx_posts_slug" ON "test"."posts" USING btree ("slug");
|
|
317
|
+
CREATE INDEX "idx_posts_published" ON "test"."posts" USING btree ("isPublished","publishedAt");
|
|
318
|
+
CREATE INDEX "idx_comments_post" ON "test"."comments" USING btree ("postId");
|
|
319
|
+
CREATE INDEX "idx_comments_user" ON "test"."comments" USING btree ("userId");
|
|
320
|
+
CREATE INDEX "idx_comments_parent" ON "test"."comments" USING btree ("parentId");
|
|
321
|
+
CREATE UNIQUE INDEX "idx_tags_slug" ON "test"."tags" USING btree ("slug");
|
|
322
|
+
CREATE INDEX "idx_tags_name" ON "test"."tags" USING btree ("name");
|
|
323
|
+
CREATE UNIQUE INDEX "idx_postTags_post_tag" ON "test"."postTags" USING btree ("postId","tagId");
|
|
324
|
+
CREATE INDEX "idx_postTags_tag" ON "test"."postTags" USING btree ("tagId");"
|
|
267
325
|
`);
|
|
268
326
|
});
|
|
269
327
|
});
|