@fragno-dev/db 0.3.0 → 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 +327 -160
- package/CHANGELOG.md +74 -0
- package/README.md +24 -0
- package/dist/adapters/adapters.d.ts +1 -1
- package/dist/adapters/adapters.d.ts.map +1 -1
- package/dist/adapters/adapters.js.map +1 -1
- package/dist/adapters/generic-sql/generic-sql-adapter.d.ts +0 -3
- package/dist/adapters/generic-sql/generic-sql-adapter.d.ts.map +1 -1
- package/dist/adapters/generic-sql/generic-sql-adapter.js +11 -12
- package/dist/adapters/generic-sql/generic-sql-adapter.js.map +1 -1
- package/dist/adapters/generic-sql/generic-sql-uow-executor.js +46 -6
- 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 +1 -1
- package/dist/adapters/generic-sql/migration/dialect/mysql.js.map +1 -1
- package/dist/adapters/generic-sql/migration/dialect/postgres.js +1 -1
- package/dist/adapters/generic-sql/migration/dialect/postgres.js.map +1 -1
- package/dist/adapters/generic-sql/migration/dialect/sqlite.js +185 -19
- 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 +3 -3
- package/dist/adapters/generic-sql/migration/prepared-migrations.js.map +1 -1
- package/dist/adapters/generic-sql/migration/sql-generator.js +1 -1
- package/dist/adapters/generic-sql/migration/sql-generator.js.map +1 -1
- package/dist/adapters/generic-sql/query/create-sql-query-compiler.js +1 -1
- package/dist/adapters/generic-sql/query/create-sql-query-compiler.js.map +1 -1
- 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 +9 -6
- package/dist/adapters/generic-sql/query/generic-sql-uow-operation-compiler.js.map +1 -1
- package/dist/adapters/generic-sql/query/select-builder.js.map +1 -1
- package/dist/adapters/generic-sql/query/sql-query-compiler.js +37 -9
- package/dist/adapters/generic-sql/query/sql-query-compiler.js.map +1 -1
- package/dist/adapters/generic-sql/query/where-builder.js +24 -20
- package/dist/adapters/generic-sql/query/where-builder.js.map +1 -1
- package/dist/adapters/generic-sql/uow-decoder.js +1 -1
- package/dist/adapters/generic-sql/uow-decoder.js.map +1 -1
- package/dist/adapters/generic-sql/uow-encoder.js +8 -9
- package/dist/adapters/generic-sql/uow-encoder.js.map +1 -1
- package/dist/adapters/in-memory/condition-evaluator.js +10 -6
- package/dist/adapters/in-memory/condition-evaluator.js.map +1 -1
- package/dist/adapters/in-memory/in-memory-adapter.d.ts.map +1 -1
- package/dist/adapters/in-memory/in-memory-adapter.js +45 -25
- package/dist/adapters/in-memory/in-memory-adapter.js.map +1 -1
- package/dist/adapters/in-memory/in-memory-uow.js +236 -13
- package/dist/adapters/in-memory/in-memory-uow.js.map +1 -1
- package/dist/adapters/in-memory/options.d.ts +2 -0
- package/dist/adapters/in-memory/options.d.ts.map +1 -1
- package/dist/adapters/in-memory/options.js +3 -2
- package/dist/adapters/in-memory/options.js.map +1 -1
- package/dist/adapters/in-memory/reference-resolution.js.map +1 -1
- package/dist/adapters/in-memory/store.js +1 -1
- package/dist/adapters/in-memory/store.js.map +1 -1
- 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.map +1 -1
- 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 +85 -28
- package/dist/db-fragment-definition-builder.d.ts.map +1 -1
- package/dist/db-fragment-definition-builder.js +374 -46
- 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 +5 -20
- package/dist/dispatchers/cloudflare-do/index.d.ts.map +1 -1
- package/dist/dispatchers/cloudflare-do/index.js +23 -55
- package/dist/dispatchers/cloudflare-do/index.js.map +1 -1
- 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 +5 -10
- package/dist/dispatchers/node/index.d.ts.map +1 -1
- package/dist/dispatchers/node/index.js +21 -53
- package/dist/dispatchers/node/index.js.map +1 -1
- 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 +128 -27
- package/dist/fragments/internal-fragment.d.ts.map +1 -1
- package/dist/fragments/internal-fragment.js +125 -78
- package/dist/fragments/internal-fragment.js.map +1 -1
- package/dist/fragments/internal-fragment.routes.js +138 -3
- package/dist/fragments/internal-fragment.routes.js.map +1 -1
- package/dist/fragments/internal-fragment.schema.d.ts +7 -1
- package/dist/fragments/internal-fragment.schema.d.ts.map +1 -1
- package/dist/fragments/internal-fragment.schema.js +18 -1
- package/dist/fragments/internal-fragment.schema.js.map +1 -1
- 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 -14
- package/dist/hooks/durable-hooks-processor.js +58 -10
- package/dist/hooks/durable-hooks-processor.js.map +1 -1
- 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 +60 -2
- package/dist/hooks/hooks.d.ts.map +1 -1
- package/dist/hooks/hooks.js +214 -53
- 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 +210 -27
- package/dist/migration-engine/auto-from-schema.js.map +1 -1
- package/dist/migration-engine/generation-engine.d.ts.map +1 -1
- package/dist/migration-engine/generation-engine.js +17 -5
- 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 +12 -11
- package/dist/mod.d.ts.map +1 -1
- package/dist/mod.js +10 -10
- package/dist/mod.js.map +1 -1
- package/dist/naming/sql-naming.d.ts.map +1 -1
- package/dist/naming/sql-naming.js.map +1 -1
- package/dist/outbox/outbox-builder.js.map +1 -1
- package/dist/outbox/outbox.d.ts +3 -1
- package/dist/outbox/outbox.d.ts.map +1 -1
- package/dist/outbox/outbox.js.map +1 -1
- 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.map +1 -1
- package/dist/query/cursor.js +7 -1
- package/dist/query/cursor.js.map +1 -1
- package/dist/query/db-now.d.ts +15 -1
- package/dist/query/db-now.d.ts.map +1 -1
- package/dist/query/db-now.js +30 -2
- package/dist/query/db-now.js.map +1 -1
- package/dist/query/orm/orm.js.map +1 -1
- package/dist/query/serialize/create-sql-serializer.js +2 -2
- package/dist/query/serialize/create-sql-serializer.js.map +1 -1
- package/dist/query/serialize/dialect/mysql-serializer.js.map +1 -1
- package/dist/query/serialize/dialect/postgres-serializer.js.map +1 -1
- package/dist/query/serialize/dialect/sqlite-serializer.js +6 -2
- package/dist/query/serialize/dialect/sqlite-serializer.js.map +1 -1
- package/dist/query/simple-query-interface.d.ts +7 -3
- 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 +39 -18
- 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 +42 -16
- package/dist/query/unit-of-work/unit-of-work.d.ts.map +1 -1
- package/dist/query/unit-of-work/unit-of-work.js +50 -6
- package/dist/query/unit-of-work/unit-of-work.js.map +1 -1
- package/dist/query/value-decoding.js +8 -1
- package/dist/query/value-decoding.js.map +1 -1
- package/dist/query/value-encoding.js.map +1 -1
- package/dist/schema/create.d.ts +69 -25
- package/dist/schema/create.d.ts.map +1 -1
- package/dist/schema/create.js +91 -16
- package/dist/schema/create.js.map +1 -1
- package/dist/schema/type-conversion/create-sql-type-mapper.js +1 -1
- package/dist/schema/type-conversion/create-sql-type-mapper.js.map +1 -1
- package/dist/schema/type-conversion/dialect/sqlite.js.map +1 -1
- package/dist/schema/validator.d.ts.map +1 -1
- package/dist/schema/validator.js.map +1 -1
- package/dist/schema-output/drizzle.d.ts.map +1 -1
- package/dist/schema-output/drizzle.js +8 -6
- package/dist/schema-output/drizzle.js.map +1 -1
- package/dist/schema-output/prisma.d.ts.map +1 -1
- package/dist/schema-output/prisma.js +21 -10
- package/dist/schema-output/prisma.js.map +1 -1
- 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 +6 -1
- package/dist/util/default-database-adapter.js.map +1 -1
- package/dist/with-database.d.ts +3 -6
- package/dist/with-database.d.ts.map +1 -1
- package/dist/with-database.js +7 -15
- package/dist/with-database.js.map +1 -1
- package/package.json +33 -41
- package/src/adapters/adapters.ts +5 -4
- package/src/adapters/drizzle/migrate-drizzle.test.ts +46 -9
- package/src/adapters/drizzle/migration-parity-drizzle-kit.test.ts +5 -3
- package/src/adapters/drizzle/test-utils.ts +2 -1
- package/src/adapters/generic-sql/generic-sql-adapter.test.ts +5 -3
- package/src/adapters/generic-sql/generic-sql-adapter.ts +21 -24
- package/src/adapters/generic-sql/generic-sql-uow-executor.test.ts +1 -0
- package/src/adapters/generic-sql/generic-sql-uow-executor.ts +81 -15
- package/src/adapters/generic-sql/migration/adapter-migration-parity.test.ts +4 -2
- package/src/adapters/generic-sql/migration/cold-kysely.ts +1 -0
- package/src/adapters/generic-sql/migration/dialect/mysql.test.ts +3 -2
- package/src/adapters/generic-sql/migration/dialect/mysql.ts +1 -0
- package/src/adapters/generic-sql/migration/dialect/postgres.test.ts +5 -4
- package/src/adapters/generic-sql/migration/dialect/postgres.ts +2 -1
- package/src/adapters/generic-sql/migration/dialect/sqlite.test.ts +795 -3
- package/src/adapters/generic-sql/migration/dialect/sqlite.ts +385 -57
- 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 +117 -14
- package/src/adapters/generic-sql/migration/prepared-migrations.ts +9 -8
- package/src/adapters/generic-sql/migration/sql-generator.ts +5 -3
- package/src/adapters/generic-sql/query/create-sql-query-compiler.ts +3 -3
- package/src/adapters/generic-sql/query/cursor-utils.test.ts +3 -2
- package/src/adapters/generic-sql/query/cursor-utils.ts +1 -1
- 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 +144 -8
- package/src/adapters/generic-sql/query/generic-sql-uow-operation-compiler.ts +16 -17
- package/src/adapters/generic-sql/query/select-builder.test.ts +1 -0
- package/src/adapters/generic-sql/query/select-builder.ts +2 -2
- package/src/adapters/generic-sql/query/sql-query-compiler.test.ts +24 -5
- package/src/adapters/generic-sql/query/sql-query-compiler.ts +83 -13
- package/src/adapters/generic-sql/query/where-builder.test.ts +7 -5
- package/src/adapters/generic-sql/query/where-builder.ts +48 -29
- package/src/adapters/generic-sql/sql-adapter-pglite-migrations.test.ts +6 -15
- package/src/adapters/generic-sql/sql-adapter-pglite-pagination.test.ts +52 -7
- package/src/adapters/generic-sql/sql-adapter-pglite-queries.test.ts +9 -6
- package/src/adapters/generic-sql/sql-adapter-sqlite3-driver.test.ts +273 -5
- package/src/adapters/generic-sql/sql-adapter-sqlite3-uow.test.ts +123 -6
- package/src/adapters/generic-sql/sql-adapter-sqlocal.test.ts +4 -2
- package/src/adapters/generic-sql/uow-decoder.test.ts +4 -3
- package/src/adapters/generic-sql/uow-decoder.ts +3 -3
- package/src/adapters/generic-sql/uow-encoder.test.ts +4 -2
- package/src/adapters/generic-sql/uow-encoder.ts +14 -18
- package/src/adapters/in-memory/condition-evaluator.test.ts +2 -1
- package/src/adapters/in-memory/condition-evaluator.ts +9 -4
- package/src/adapters/in-memory/in-memory-adapter.ts +155 -44
- package/src/adapters/in-memory/in-memory-uow.mutations.test.ts +50 -2
- package/src/adapters/in-memory/in-memory-uow.retrieval.test.ts +158 -3
- package/src/adapters/in-memory/in-memory-uow.ts +402 -26
- package/src/adapters/in-memory/options.test.ts +1 -0
- package/src/adapters/in-memory/options.ts +5 -1
- package/src/adapters/in-memory/outbox.test.ts +361 -0
- package/src/adapters/in-memory/reference-resolution.test.ts +3 -2
- package/src/adapters/in-memory/reference-resolution.ts +2 -2
- package/src/adapters/in-memory/sorted-array-index.test.ts +1 -0
- package/src/adapters/in-memory/store.test.ts +1 -0
- package/src/adapters/in-memory/store.ts +3 -3
- package/src/adapters/in-memory/value-normalization.test.ts +1 -0
- package/src/adapters/prisma/prisma-adapter-sqlite3.test.ts +51 -7
- package/src/adapters/shared/from-unit-of-work-compiler.ts +156 -46
- package/src/adapters/shared/uow-operation-compiler.ts +3 -3
- package/src/browser/mod.ts +64 -0
- package/src/client.ts +19 -0
- package/src/db-fragment-definition-builder.test.ts +821 -47
- package/src/db-fragment-definition-builder.ts +857 -110
- package/src/db-fragment-instantiator.test.ts +114 -90
- package/src/db-fragment-integration.test.ts +9 -6
- package/src/dispatchers/cloudflare-do/dispatcher.ts +204 -0
- package/src/dispatchers/cloudflare-do/index.test.ts +145 -12
- package/src/dispatchers/cloudflare-do/index.ts +49 -90
- package/src/dispatchers/node/dispatcher.ts +112 -0
- package/src/dispatchers/node/index.test.ts +43 -14
- package/src/dispatchers/node/index.ts +38 -75
- 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 +297 -5
- package/src/fragments/internal-fragment.schema.ts +45 -1
- package/src/fragments/internal-fragment.test.ts +223 -251
- package/src/fragments/internal-fragment.ts +278 -154
- 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 +179 -14
- package/src/hooks/durable-hooks-processor.ts +120 -14
- 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 +314 -53
- package/src/hooks/hooks.ts +360 -81
- 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 +93 -0
- package/src/migration-engine/auto-from-schema.ts +360 -42
- package/src/migration-engine/create.test.ts +2 -1
- package/src/migration-engine/create.ts +1 -1
- package/src/migration-engine/generation-engine.test.ts +66 -9
- package/src/migration-engine/generation-engine.ts +31 -10
- package/src/migration-engine/shared.ts +13 -0
- package/src/mod.ts +45 -27
- package/src/naming/sql-naming.ts +1 -0
- package/src/outbox/outbox-builder.ts +2 -2
- package/src/outbox/outbox.test.ts +216 -45
- package/src/outbox/outbox.ts +3 -1
- package/src/query/column-defaults.ts +1 -1
- package/src/query/condition-builder.test.ts +15 -0
- 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 +3 -2
- package/src/query/cursor.ts +15 -3
- package/src/query/db-now.ts +69 -2
- package/src/query/orm/orm.ts +2 -2
- package/src/query/query-type.test.ts +2 -1
- package/src/query/serialize/create-sql-serializer.ts +3 -3
- package/src/query/serialize/dialect/mysql-serializer.ts +1 -1
- package/src/query/serialize/dialect/postgres-serializer.ts +1 -1
- package/src/query/serialize/dialect/sqlite-serializer.test.ts +39 -2
- package/src/query/serialize/dialect/sqlite-serializer.ts +18 -5
- package/src/query/simple-query-interface.ts +10 -4
- package/src/query/unit-of-work/execute-unit-of-work.test.ts +347 -9
- package/src/query/unit-of-work/execute-unit-of-work.ts +63 -20
- 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 +5 -4
- package/src/query/unit-of-work/unit-of-work-types.test.ts +41 -11
- package/src/query/unit-of-work/unit-of-work.test.ts +28 -2
- package/src/query/unit-of-work/unit-of-work.ts +105 -19
- package/src/query/value-decoding.test.ts +50 -2
- package/src/query/value-decoding.ts +17 -4
- package/src/query/value-encoding.test.ts +1 -0
- package/src/query/value-encoding.ts +1 -1
- package/src/schema/create.test.ts +164 -5
- package/src/schema/create.ts +222 -24
- package/src/schema/generate-id.test.ts +1 -0
- package/src/schema/serialize.test.ts +4 -3
- package/src/schema/type-conversion/create-sql-type-mapper.ts +1 -1
- package/src/schema/type-conversion/dialect/sqlite.ts +2 -2
- package/src/schema/type-conversion/type-mapping.test.ts +2 -1
- package/src/schema/validator.test.ts +4 -2
- package/src/schema/validator.ts +1 -0
- package/src/schema-output/drizzle.test.ts +72 -19
- package/src/schema-output/drizzle.ts +24 -18
- package/src/schema-output/prisma.test.ts +172 -14
- package/src/schema-output/prisma.ts +34 -14
- 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 +15 -2
- package/src/with-database.ts +20 -50
- package/tsconfig.json +1 -1
- package/tsdown.config.ts +38 -26
- package/vitest.config.ts +1 -0
- package/dist/hooks/durable-hooks-processor.d.ts.map +0 -1
- package/dist/node_modules/.pnpm/rou3@0.7.12/node_modules/rou3/dist/index.js +0 -168
- package/dist/node_modules/.pnpm/rou3@0.7.12/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 -321
- package/dist/packages/fragno/dist/api/fragment-definition-builder.js.map +0 -1
- package/dist/packages/fragno/dist/api/fragment-instantiator.js +0 -669
- 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 -185
- 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 -30
- 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/packages/fragno/dist/internal/trace-context.js +0 -12
- package/dist/packages/fragno/dist/internal/trace-context.js.map +0 -1
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import type { StandardSchemaV1 } from "@standard-schema/spec";
|
|
2
1
|
import { describe, expect, it } from "vitest";
|
|
2
|
+
|
|
3
|
+
import type { StandardSchemaV1 } from "@standard-schema/spec";
|
|
4
|
+
|
|
3
5
|
import {
|
|
4
6
|
FragnoDbValidationError,
|
|
5
7
|
FragnoId,
|
|
@@ -121,7 +123,7 @@ describe("table validation", () => {
|
|
|
121
123
|
const users = testSchema.tables.users;
|
|
122
124
|
const posts = testSchema.tables.posts;
|
|
123
125
|
|
|
124
|
-
const longId = "a".repeat(
|
|
126
|
+
const longId = "a".repeat(129);
|
|
125
127
|
const longTitleResult = posts["~standard"].validate({
|
|
126
128
|
id: "post-1",
|
|
127
129
|
userId: "user-1",
|
package/src/schema/validator.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { describe, expect, it } from "vitest";
|
|
2
|
+
|
|
3
|
+
import { internalSchema } from "../fragments/internal-fragment";
|
|
2
4
|
import { column, idColumn, referenceColumn, schema } from "../schema/create";
|
|
3
5
|
import { generateDrizzleSchema } from "./drizzle";
|
|
4
|
-
import { internalSchema } from "../fragments/internal-fragment";
|
|
5
6
|
|
|
6
7
|
describe("generateDrizzleSchema", () => {
|
|
7
8
|
const testSchema = schema("test", (s) => {
|
|
@@ -32,6 +33,26 @@ describe("generateDrizzleSchema", () => {
|
|
|
32
33
|
});
|
|
33
34
|
});
|
|
34
35
|
|
|
36
|
+
it("should reflect alterColumn nullable changes", () => {
|
|
37
|
+
const alteredSchema = schema("altered", (s) => {
|
|
38
|
+
return s
|
|
39
|
+
.addTable("users", (t) => {
|
|
40
|
+
return t.addColumn("id", idColumn()).addColumn("name", column("string"));
|
|
41
|
+
})
|
|
42
|
+
.alterTable("users", (t) => {
|
|
43
|
+
return t.alterColumn("name").nullable();
|
|
44
|
+
});
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
const generated = generateDrizzleSchema(
|
|
48
|
+
[{ namespace: "altered", schema: alteredSchema }],
|
|
49
|
+
"postgresql",
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
expect(generated).toContain(`name: text("name")`);
|
|
53
|
+
expect(generated).not.toContain(`name: text("name").notNull()`);
|
|
54
|
+
});
|
|
55
|
+
|
|
35
56
|
describe("postgresql", () => {
|
|
36
57
|
it("should generate PostgreSQL schema", () => {
|
|
37
58
|
const generated = generateDrizzleSchema(
|
|
@@ -50,7 +71,7 @@ describe("generateDrizzleSchema", () => {
|
|
|
50
71
|
const schema_test = pgSchema("test");
|
|
51
72
|
|
|
52
73
|
export const users_test = schema_test.table("users", {
|
|
53
|
-
id: varchar("id", { length:
|
|
74
|
+
id: varchar("id", { length: 128 }).notNull().unique().$defaultFn(() => createId()),
|
|
54
75
|
name: text("name").notNull(),
|
|
55
76
|
email: text("email").notNull(),
|
|
56
77
|
age: integer("age"),
|
|
@@ -62,7 +83,7 @@ describe("generateDrizzleSchema", () => {
|
|
|
62
83
|
])
|
|
63
84
|
|
|
64
85
|
export const posts_test = schema_test.table("posts", {
|
|
65
|
-
id: varchar("id", { length:
|
|
86
|
+
id: varchar("id", { length: 128 }).notNull().unique().$defaultFn(() => createId()),
|
|
66
87
|
title: text("title").notNull(),
|
|
67
88
|
content: text("content").notNull(),
|
|
68
89
|
userId: bigint("userId", { mode: "number" }).notNull(),
|
|
@@ -121,7 +142,7 @@ describe("generateDrizzleSchema", () => {
|
|
|
121
142
|
// ============================================================================
|
|
122
143
|
|
|
123
144
|
export const users_test = mysqlTable("users_test", {
|
|
124
|
-
id: varchar("id", { length:
|
|
145
|
+
id: varchar("id", { length: 128 }).notNull().unique().$defaultFn(() => createId()),
|
|
125
146
|
name: text("name").notNull(),
|
|
126
147
|
email: text("email").notNull(),
|
|
127
148
|
age: int("age"),
|
|
@@ -133,7 +154,7 @@ describe("generateDrizzleSchema", () => {
|
|
|
133
154
|
])
|
|
134
155
|
|
|
135
156
|
export const posts_test = mysqlTable("posts_test", {
|
|
136
|
-
id: varchar("id", { length:
|
|
157
|
+
id: varchar("id", { length: 128 }).notNull().unique().$defaultFn(() => createId()),
|
|
137
158
|
title: text("title").notNull(),
|
|
138
159
|
content: text("content").notNull(),
|
|
139
160
|
userId: bigint("userId", { mode: "number" }).notNull(),
|
|
@@ -281,7 +302,7 @@ describe("generateDrizzleSchema", () => {
|
|
|
281
302
|
const schema_test = pgSchema("test");
|
|
282
303
|
|
|
283
304
|
export const events_test = schema_test.table("events", {
|
|
284
|
-
id: varchar("id", { length:
|
|
305
|
+
id: varchar("id", { length: 128 }).notNull().unique().$defaultFn(() => createId()),
|
|
285
306
|
createdAt: timestamp("createdAt").notNull().$defaultFn(() => new Date()),
|
|
286
307
|
_internalId: bigserial("_internalId", { mode: "number" }).primaryKey().notNull(),
|
|
287
308
|
_version: integer("_version").notNull().default(0)
|
|
@@ -320,7 +341,7 @@ describe("generateDrizzleSchema", () => {
|
|
|
320
341
|
const schema_test = pgSchema("test");
|
|
321
342
|
|
|
322
343
|
export const events_test = schema_test.table("events", {
|
|
323
|
-
id: varchar("id", { length:
|
|
344
|
+
id: varchar("id", { length: 128 }).notNull().unique().$defaultFn(() => createId()),
|
|
324
345
|
createdAt: timestamp("createdAt").notNull().defaultNow(),
|
|
325
346
|
_internalId: bigserial("_internalId", { mode: "number" }).primaryKey().notNull(),
|
|
326
347
|
_version: integer("_version").notNull().default(0)
|
|
@@ -374,7 +395,7 @@ describe("generateDrizzleSchema", () => {
|
|
|
374
395
|
const schema_test = pgSchema("test");
|
|
375
396
|
|
|
376
397
|
export const files_test = schema_test.table("files", {
|
|
377
|
-
id: varchar("id", { length:
|
|
398
|
+
id: varchar("id", { length: 128 }).notNull().unique().$defaultFn(() => createId()),
|
|
378
399
|
data: customBinary("data").notNull(),
|
|
379
400
|
_internalId: bigserial("_internalId", { mode: "number" }).primaryKey().notNull(),
|
|
380
401
|
_version: integer("_version").notNull().default(0)
|
|
@@ -431,14 +452,14 @@ describe("generateDrizzleSchema", () => {
|
|
|
431
452
|
const schema_test = pgSchema("test");
|
|
432
453
|
|
|
433
454
|
export const users_test = schema_test.table("users", {
|
|
434
|
-
id: varchar("id", { length:
|
|
455
|
+
id: varchar("id", { length: 128 }).notNull().unique().$defaultFn(() => createId()),
|
|
435
456
|
name: text("name").notNull(),
|
|
436
457
|
_internalId: bigserial("_internalId", { mode: "number" }).primaryKey().notNull(),
|
|
437
458
|
_version: integer("_version").notNull().default(0)
|
|
438
459
|
})
|
|
439
460
|
|
|
440
461
|
export const posts_test = schema_test.table("posts", {
|
|
441
|
-
id: varchar("id", { length:
|
|
462
|
+
id: varchar("id", { length: 128 }).notNull().unique().$defaultFn(() => createId()),
|
|
442
463
|
title: text("title").notNull(),
|
|
443
464
|
userId: bigint("userId", { mode: "number" }).notNull(),
|
|
444
465
|
_internalId: bigserial("_internalId", { mode: "number" }).primaryKey().notNull(),
|
|
@@ -498,14 +519,14 @@ describe("generateDrizzleSchema", () => {
|
|
|
498
519
|
// ============================================================================
|
|
499
520
|
|
|
500
521
|
export const users_test = mysqlTable("users_test", {
|
|
501
|
-
id: varchar("id", { length:
|
|
522
|
+
id: varchar("id", { length: 128 }).notNull().unique().$defaultFn(() => createId()),
|
|
502
523
|
name: text("name").notNull(),
|
|
503
524
|
_internalId: bigint("_internalId", { mode: "number" }).primaryKey().autoincrement().notNull(),
|
|
504
525
|
_version: int("_version").notNull().default(0)
|
|
505
526
|
})
|
|
506
527
|
|
|
507
528
|
export const posts_test = mysqlTable("posts_test", {
|
|
508
|
-
id: varchar("id", { length:
|
|
529
|
+
id: varchar("id", { length: 128 }).notNull().unique().$defaultFn(() => createId()),
|
|
509
530
|
title: text("title").notNull(),
|
|
510
531
|
userId: bigint("userId", { mode: "number" }).notNull(),
|
|
511
532
|
_internalId: bigint("_internalId", { mode: "number" }).primaryKey().autoincrement().notNull(),
|
|
@@ -670,14 +691,14 @@ describe("generateDrizzleSchema", () => {
|
|
|
670
691
|
const schema_test = pgSchema("test");
|
|
671
692
|
|
|
672
693
|
export const categories_test = schema_test.table("categories", {
|
|
673
|
-
id: varchar("id", { length:
|
|
694
|
+
id: varchar("id", { length: 128 }).notNull().unique().$defaultFn(() => createId()),
|
|
674
695
|
name: text("name").notNull(),
|
|
675
696
|
_internalId: bigserial("_internalId", { mode: "number" }).primaryKey().notNull(),
|
|
676
697
|
_version: integer("_version").notNull().default(0)
|
|
677
698
|
})
|
|
678
699
|
|
|
679
700
|
export const products_test = schema_test.table("products", {
|
|
680
|
-
id: varchar("id", { length:
|
|
701
|
+
id: varchar("id", { length: 128 }).notNull().unique().$defaultFn(() => createId()),
|
|
681
702
|
name: text("name").notNull(),
|
|
682
703
|
categoryId: bigint("categoryId", { mode: "number" }).notNull(),
|
|
683
704
|
_internalId: bigserial("_internalId", { mode: "number" }).primaryKey().notNull(),
|
|
@@ -748,7 +769,7 @@ describe("generateDrizzleSchema", () => {
|
|
|
748
769
|
const schema_test = pgSchema("test");
|
|
749
770
|
|
|
750
771
|
export const category_test = schema_test.table("category", {
|
|
751
|
-
id: varchar("id", { length:
|
|
772
|
+
id: varchar("id", { length: 128 }).notNull().unique().$defaultFn(() => createId()),
|
|
752
773
|
name: text("name").notNull(),
|
|
753
774
|
parentId: bigint("parentId", { mode: "number" }),
|
|
754
775
|
_internalId: bigserial("_internalId", { mode: "number" }).primaryKey().notNull(),
|
|
@@ -786,6 +807,38 @@ describe("generateDrizzleSchema", () => {
|
|
|
786
807
|
});
|
|
787
808
|
});
|
|
788
809
|
|
|
810
|
+
it("should skip join-only relations in schema output", () => {
|
|
811
|
+
const joinOnlySchema = schema("joinonly", (s) => {
|
|
812
|
+
return s
|
|
813
|
+
.addTable("users", (t) => {
|
|
814
|
+
return t
|
|
815
|
+
.addColumn("id", idColumn())
|
|
816
|
+
.addColumn("email", column("string"))
|
|
817
|
+
.createIndex("idx_users_email", ["email"]);
|
|
818
|
+
})
|
|
819
|
+
.addTable("invitations", (t) => {
|
|
820
|
+
return t
|
|
821
|
+
.addColumn("id", idColumn())
|
|
822
|
+
.addColumn("email", column("string"))
|
|
823
|
+
.createIndex("idx_inv_email", ["email"]);
|
|
824
|
+
})
|
|
825
|
+
.addReference("invitedUser", {
|
|
826
|
+
type: "one",
|
|
827
|
+
from: { table: "invitations", column: "email" },
|
|
828
|
+
to: { table: "users", column: "email" },
|
|
829
|
+
foreignKey: false,
|
|
830
|
+
});
|
|
831
|
+
});
|
|
832
|
+
|
|
833
|
+
const generated = generateDrizzleSchema(
|
|
834
|
+
[{ namespace: "test", schema: joinOnlySchema }],
|
|
835
|
+
"postgresql",
|
|
836
|
+
);
|
|
837
|
+
|
|
838
|
+
expect(generated).not.toContain("foreignKey(");
|
|
839
|
+
expect(generated).not.toContain("relations(");
|
|
840
|
+
});
|
|
841
|
+
|
|
789
842
|
describe("self-referencing foreign keys", () => {
|
|
790
843
|
const selfRefSchema = schema("selfref", (s) => {
|
|
791
844
|
return s
|
|
@@ -820,7 +873,7 @@ describe("generateDrizzleSchema", () => {
|
|
|
820
873
|
const schema_test = pgSchema("test");
|
|
821
874
|
|
|
822
875
|
export const comment_test = schema_test.table("comment", {
|
|
823
|
-
id: varchar("id", { length:
|
|
876
|
+
id: varchar("id", { length: 128 }).notNull().unique().$defaultFn(() => createId()),
|
|
824
877
|
content: text("content").notNull(),
|
|
825
878
|
parentId: bigint("parentId", { mode: "number" }),
|
|
826
879
|
_internalId: bigserial("_internalId", { mode: "number" }).primaryKey().notNull(),
|
|
@@ -870,7 +923,7 @@ describe("generateDrizzleSchema", () => {
|
|
|
870
923
|
// ============================================================================
|
|
871
924
|
|
|
872
925
|
export const comment_test = mysqlTable("comment_test", {
|
|
873
|
-
id: varchar("id", { length:
|
|
926
|
+
id: varchar("id", { length: 128 }).notNull().unique().$defaultFn(() => createId()),
|
|
874
927
|
content: text("content").notNull(),
|
|
875
928
|
parentId: bigint("parentId", { mode: "number" }),
|
|
876
929
|
_internalId: bigint("_internalId", { mode: "number" }).primaryKey().autoincrement().notNull(),
|
|
@@ -1045,7 +1098,7 @@ describe("generateDrizzleSchema", () => {
|
|
|
1045
1098
|
const schema_my_fragment_v2 = pgSchema("my-fragment-v2");
|
|
1046
1099
|
|
|
1047
1100
|
export const users_my_fragment_v2 = schema_my_fragment_v2.table("users", {
|
|
1048
|
-
id: varchar("id", { length:
|
|
1101
|
+
id: varchar("id", { length: 128 }).notNull().unique().$defaultFn(() => createId()),
|
|
1049
1102
|
name: text("name").notNull(),
|
|
1050
1103
|
email: text("email").notNull(),
|
|
1051
1104
|
age: integer("age"),
|
|
@@ -1057,7 +1110,7 @@ describe("generateDrizzleSchema", () => {
|
|
|
1057
1110
|
])
|
|
1058
1111
|
|
|
1059
1112
|
export const posts_my_fragment_v2 = schema_my_fragment_v2.table("posts", {
|
|
1060
|
-
id: varchar("id", { length:
|
|
1113
|
+
id: varchar("id", { length: 128 }).notNull().unique().$defaultFn(() => createId()),
|
|
1061
1114
|
title: text("title").notNull(),
|
|
1062
1115
|
content: text("content").notNull(),
|
|
1063
1116
|
userId: bigint("userId", { mode: "number" }).notNull(),
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
import { importGenerator } from "../util/import-generator";
|
|
2
|
-
import { ident, parseVarchar } from "../util/parse";
|
|
3
1
|
import {
|
|
4
|
-
|
|
5
|
-
type
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
InternalIdColumn,
|
|
9
|
-
} from "../schema/create";
|
|
2
|
+
defaultNamingStrategyForDatabase,
|
|
3
|
+
type SupportedDatabase,
|
|
4
|
+
} from "../adapters/generic-sql/driver-config";
|
|
5
|
+
import { internalSchema } from "../fragments/internal-fragment.schema";
|
|
10
6
|
import {
|
|
11
7
|
createNamingResolver,
|
|
12
8
|
sanitizeNamespace,
|
|
13
9
|
type NamingResolver,
|
|
14
10
|
type SqlNamingStrategy,
|
|
15
11
|
} from "../naming/sql-naming";
|
|
16
|
-
import { internalSchema } from "../fragments/internal-fragment.schema";
|
|
17
|
-
import { type DatabaseTypeLiteral } from "../schema/type-conversion/type-mapping";
|
|
18
|
-
import { createSQLTypeMapper } from "../schema/type-conversion/create-sql-type-mapper";
|
|
19
12
|
import {
|
|
20
|
-
|
|
21
|
-
type
|
|
22
|
-
|
|
13
|
+
type AnyColumn,
|
|
14
|
+
type AnySchema,
|
|
15
|
+
type AnyTable,
|
|
16
|
+
type Relation,
|
|
17
|
+
InternalIdColumn,
|
|
18
|
+
} from "../schema/create";
|
|
19
|
+
import { createSQLTypeMapper } from "../schema/type-conversion/create-sql-type-mapper";
|
|
20
|
+
import { type DatabaseTypeLiteral } from "../schema/type-conversion/type-mapping";
|
|
21
|
+
import { importGenerator } from "../util/import-generator";
|
|
22
|
+
import { ident, parseVarchar } from "../util/parse";
|
|
23
23
|
|
|
24
24
|
// ============================================================================
|
|
25
25
|
// PROVIDER CONFIGURATION
|
|
@@ -369,7 +369,7 @@ function generateForeignKeys(
|
|
|
369
369
|
for (const relation of Object.values(table.relations)) {
|
|
370
370
|
// Only "one" relations generate foreign keys
|
|
371
371
|
// "many" relations don't have foreign keys (they're on the other side)
|
|
372
|
-
if (relation.type === "many") {
|
|
372
|
+
if (relation.type === "many" || relation.foreignKey === false) {
|
|
373
373
|
continue;
|
|
374
374
|
}
|
|
375
375
|
|
|
@@ -380,7 +380,7 @@ function generateForeignKeys(
|
|
|
380
380
|
for (const [localCol, refCol] of relation.on) {
|
|
381
381
|
columns.push(`table.${localCol}`);
|
|
382
382
|
// Foreign keys always reference internal IDs
|
|
383
|
-
const actualRefCol = refCol
|
|
383
|
+
const actualRefCol = refCol !== "id" ? refCol : "_internalId";
|
|
384
384
|
// For self-referencing foreign keys, use table parameter instead of table constant
|
|
385
385
|
if (isSelfReference) {
|
|
386
386
|
foreignColumns.push(`table.${actualRefCol}`);
|
|
@@ -524,6 +524,9 @@ function generateRelation(
|
|
|
524
524
|
|
|
525
525
|
// Generate explicit relations defined on this table
|
|
526
526
|
for (const relation of Object.values(table.relations)) {
|
|
527
|
+
if (relation.foreignKey === false) {
|
|
528
|
+
continue;
|
|
529
|
+
}
|
|
527
530
|
const options: string[] = [`relationName: "${relation.id}"`];
|
|
528
531
|
|
|
529
532
|
// Track which relation types are used
|
|
@@ -547,7 +550,7 @@ function generateRelation(
|
|
|
547
550
|
for (const [left, right] of relation.on) {
|
|
548
551
|
fields.push(`${tableRef}.${left}`);
|
|
549
552
|
// Relations reference internal IDs
|
|
550
|
-
const actualRight = right
|
|
553
|
+
const actualRight = right !== "id" ? right : "_internalId";
|
|
551
554
|
references.push(`${relatedTableRef}.${actualRight}`);
|
|
552
555
|
}
|
|
553
556
|
|
|
@@ -571,7 +574,7 @@ function generateRelation(
|
|
|
571
574
|
if (inverseRelations && inverseRelations.length > 0) {
|
|
572
575
|
for (const { fromTable, relation } of inverseRelations) {
|
|
573
576
|
// Only generate inverse for "one" relations (they become "many" on this side)
|
|
574
|
-
if (relation.type === "one") {
|
|
577
|
+
if (relation.type === "one" && relation.foreignKey !== false) {
|
|
575
578
|
hasMany = true;
|
|
576
579
|
|
|
577
580
|
// Use sanitized TypeScript export name for identifier reference
|
|
@@ -739,6 +742,9 @@ export function generateDrizzleSchema(
|
|
|
739
742
|
const inverseRelations = new Map<string, Array<{ fromTable: AnyTable; relation: Relation }>>();
|
|
740
743
|
for (const table of Object.values(schema.tables)) {
|
|
741
744
|
for (const relation of Object.values(table.relations)) {
|
|
745
|
+
if (relation.foreignKey === false) {
|
|
746
|
+
continue;
|
|
747
|
+
}
|
|
742
748
|
// Track this relation as an inverse on the target table
|
|
743
749
|
const targetTableName = relation.table.name;
|
|
744
750
|
if (!inverseRelations.has(targetTableName)) {
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { describe, expect, it } from "vitest";
|
|
2
|
-
|
|
2
|
+
|
|
3
|
+
import { sqliteStorageDefault, sqliteStoragePrisma } from "../adapters/generic-sql/sqlite-storage";
|
|
3
4
|
import { internalSchema } from "../fragments/internal-fragment";
|
|
5
|
+
import { column, idColumn, referenceColumn, schema } from "../schema/create";
|
|
4
6
|
import { generatePrismaSchema } from "./prisma";
|
|
5
|
-
import { sqliteStorageDefault, sqliteStoragePrisma } from "../adapters/generic-sql/sqlite-storage";
|
|
6
7
|
|
|
7
8
|
const blogSchema = schema("blog", (s) => {
|
|
8
9
|
return s
|
|
@@ -128,7 +129,7 @@ const relationNamingSchema = schema("relationnaming", (s) => {
|
|
|
128
129
|
});
|
|
129
130
|
|
|
130
131
|
describe("generatePrismaSchema", () => {
|
|
131
|
-
it("should generate stable ordering for internal models and
|
|
132
|
+
it("should generate stable ordering for internal models and schemas", () => {
|
|
132
133
|
const alphaSchema = schema("alpha", (s) => {
|
|
133
134
|
return s
|
|
134
135
|
.addTable("zeta", (t) => t.addColumn("id", idColumn()))
|
|
@@ -141,9 +142,9 @@ describe("generatePrismaSchema", () => {
|
|
|
141
142
|
|
|
142
143
|
const generated = generatePrismaSchema(
|
|
143
144
|
[
|
|
144
|
-
{ namespace: "
|
|
145
|
+
{ namespace: "alpha", schema: bravoSchema },
|
|
145
146
|
{ namespace: null, schema: internalSchema },
|
|
146
|
-
{ namespace: "
|
|
147
|
+
{ namespace: "zulu", schema: alphaSchema },
|
|
147
148
|
],
|
|
148
149
|
"sqlite",
|
|
149
150
|
{ sqliteStorageMode: sqliteStoragePrisma },
|
|
@@ -152,9 +153,9 @@ describe("generatePrismaSchema", () => {
|
|
|
152
153
|
const settingsIndex = generated.indexOf("model FragnoDbSettings");
|
|
153
154
|
const hooksIndex = generated.indexOf("model FragnoHooks");
|
|
154
155
|
const outboxIndex = generated.indexOf("model FragnoDbOutbox");
|
|
155
|
-
const alphaIndex = generated.indexOf("model
|
|
156
|
-
const zetaIndex = generated.indexOf("model
|
|
157
|
-
const bravoIndex = generated.indexOf("model
|
|
156
|
+
const alphaIndex = generated.indexOf("model Alpha_zulu");
|
|
157
|
+
const zetaIndex = generated.indexOf("model Zeta_zulu");
|
|
158
|
+
const bravoIndex = generated.indexOf("model Bravo_alpha");
|
|
158
159
|
|
|
159
160
|
expect(settingsIndex).toBeGreaterThanOrEqual(0);
|
|
160
161
|
expect(hooksIndex).toBeGreaterThanOrEqual(0);
|
|
@@ -198,6 +199,24 @@ describe("generatePrismaSchema", () => {
|
|
|
198
199
|
@@map("fragno_db_outbox")
|
|
199
200
|
}
|
|
200
201
|
|
|
202
|
+
model FragnoDbOutboxMutations {
|
|
203
|
+
id String @unique @default(cuid())
|
|
204
|
+
entryVersionstamp String
|
|
205
|
+
mutationVersionstamp String
|
|
206
|
+
uowId String
|
|
207
|
+
schema String
|
|
208
|
+
table String
|
|
209
|
+
externalId String
|
|
210
|
+
op String
|
|
211
|
+
createdAt DateTime @default(now())
|
|
212
|
+
_internalId Int @id @default(autoincrement())
|
|
213
|
+
_version Int @default(0)
|
|
214
|
+
@@index([entryVersionstamp], map: "idx_fragno_db_outbox_mutations_idx_outbox_mutations_entf896150d")
|
|
215
|
+
@@index([schema, table, externalId, entryVersionstamp], map: "idx_fragno_db_outbox_mutations_idx_outbox_mutations_key16922fb2")
|
|
216
|
+
@@index([uowId], map: "idx_fragno_db_outbox_mutations_idx_outbox_mutations_uowa7a0749c")
|
|
217
|
+
@@map("fragno_db_outbox_mutations")
|
|
218
|
+
}
|
|
219
|
+
|
|
201
220
|
model FragnoDbSettings {
|
|
202
221
|
id String @unique @default(cuid())
|
|
203
222
|
key String
|
|
@@ -208,6 +227,21 @@ describe("generatePrismaSchema", () => {
|
|
|
208
227
|
@@map("fragno_db_settings")
|
|
209
228
|
}
|
|
210
229
|
|
|
230
|
+
model FragnoDbSyncRequests {
|
|
231
|
+
id String @unique @default(cuid())
|
|
232
|
+
requestId String
|
|
233
|
+
status String
|
|
234
|
+
confirmedCommandIds Json
|
|
235
|
+
conflictCommandId String?
|
|
236
|
+
baseVersionstamp String?
|
|
237
|
+
lastVersionstamp String?
|
|
238
|
+
createdAt DateTime @default(now())
|
|
239
|
+
_internalId Int @id @default(autoincrement())
|
|
240
|
+
_version Int @default(0)
|
|
241
|
+
@@unique([requestId], map: "uidx_fragno_db_sync_requests_idx_sync_request_id_a352b2bb")
|
|
242
|
+
@@map("fragno_db_sync_requests")
|
|
243
|
+
}
|
|
244
|
+
|
|
211
245
|
model FragnoHooks {
|
|
212
246
|
id String @unique @default(cuid())
|
|
213
247
|
namespace String
|
|
@@ -223,6 +257,8 @@ describe("generatePrismaSchema", () => {
|
|
|
223
257
|
nonce String
|
|
224
258
|
_internalId Int @id @default(autoincrement())
|
|
225
259
|
_version Int @default(0)
|
|
260
|
+
@@index([namespace, createdAt, id], map: "idx_fragno_hooks_idx_namespace_created_at_e489a066")
|
|
261
|
+
@@index([namespace, status, lastAttemptAt], map: "idx_fragno_hooks_idx_namespace_status_last_attempt_f6aacab3")
|
|
226
262
|
@@index([namespace, status, nextRetryAt], map: "idx_fragno_hooks_idx_namespace_status_retry_b66b1168")
|
|
227
263
|
@@index([nonce], map: "idx_fragno_hooks_idx_nonce_90c97cf1")
|
|
228
264
|
@@map("fragno_hooks")
|
|
@@ -263,6 +299,26 @@ describe("generatePrismaSchema", () => {
|
|
|
263
299
|
`);
|
|
264
300
|
});
|
|
265
301
|
|
|
302
|
+
it("should reflect alterColumn nullable changes", () => {
|
|
303
|
+
const alteredSchema = schema("altered", (s) => {
|
|
304
|
+
return s
|
|
305
|
+
.addTable("users", (t) => {
|
|
306
|
+
return t.addColumn("id", idColumn()).addColumn("name", column("string"));
|
|
307
|
+
})
|
|
308
|
+
.alterTable("users", (t) => {
|
|
309
|
+
return t.alterColumn("name").nullable();
|
|
310
|
+
});
|
|
311
|
+
});
|
|
312
|
+
|
|
313
|
+
const generated = generatePrismaSchema(
|
|
314
|
+
[{ namespace: "altered", schema: alteredSchema }],
|
|
315
|
+
"sqlite",
|
|
316
|
+
{ sqliteStorageMode: sqliteStoragePrisma },
|
|
317
|
+
);
|
|
318
|
+
|
|
319
|
+
expect(generated).toContain("name String?");
|
|
320
|
+
});
|
|
321
|
+
|
|
266
322
|
it("should generate SQLite Prisma schema for default storage mode", () => {
|
|
267
323
|
const generated = generatePrismaSchema(
|
|
268
324
|
[
|
|
@@ -292,6 +348,24 @@ describe("generatePrismaSchema", () => {
|
|
|
292
348
|
@@map("fragno_db_outbox")
|
|
293
349
|
}
|
|
294
350
|
|
|
351
|
+
model FragnoDbOutboxMutations {
|
|
352
|
+
id String @unique @default(cuid())
|
|
353
|
+
entryVersionstamp String
|
|
354
|
+
mutationVersionstamp String
|
|
355
|
+
uowId String
|
|
356
|
+
schema String
|
|
357
|
+
table String
|
|
358
|
+
externalId String
|
|
359
|
+
op String
|
|
360
|
+
createdAt Int @default(dbgenerated("CURRENT_TIMESTAMP"))
|
|
361
|
+
_internalId Int @id @default(autoincrement())
|
|
362
|
+
_version Int @default(0)
|
|
363
|
+
@@index([entryVersionstamp], map: "idx_fragno_db_outbox_mutations_idx_outbox_mutations_entf896150d")
|
|
364
|
+
@@index([schema, table, externalId, entryVersionstamp], map: "idx_fragno_db_outbox_mutations_idx_outbox_mutations_key16922fb2")
|
|
365
|
+
@@index([uowId], map: "idx_fragno_db_outbox_mutations_idx_outbox_mutations_uowa7a0749c")
|
|
366
|
+
@@map("fragno_db_outbox_mutations")
|
|
367
|
+
}
|
|
368
|
+
|
|
295
369
|
model FragnoDbSettings {
|
|
296
370
|
id String @unique @default(cuid())
|
|
297
371
|
key String
|
|
@@ -302,6 +376,21 @@ describe("generatePrismaSchema", () => {
|
|
|
302
376
|
@@map("fragno_db_settings")
|
|
303
377
|
}
|
|
304
378
|
|
|
379
|
+
model FragnoDbSyncRequests {
|
|
380
|
+
id String @unique @default(cuid())
|
|
381
|
+
requestId String
|
|
382
|
+
status String
|
|
383
|
+
confirmedCommandIds Json
|
|
384
|
+
conflictCommandId String?
|
|
385
|
+
baseVersionstamp String?
|
|
386
|
+
lastVersionstamp String?
|
|
387
|
+
createdAt Int @default(dbgenerated("CURRENT_TIMESTAMP"))
|
|
388
|
+
_internalId Int @id @default(autoincrement())
|
|
389
|
+
_version Int @default(0)
|
|
390
|
+
@@unique([requestId], map: "uidx_fragno_db_sync_requests_idx_sync_request_id_a352b2bb")
|
|
391
|
+
@@map("fragno_db_sync_requests")
|
|
392
|
+
}
|
|
393
|
+
|
|
305
394
|
model FragnoHooks {
|
|
306
395
|
id String @unique @default(cuid())
|
|
307
396
|
namespace String
|
|
@@ -317,6 +406,8 @@ describe("generatePrismaSchema", () => {
|
|
|
317
406
|
nonce String
|
|
318
407
|
_internalId Int @id @default(autoincrement())
|
|
319
408
|
_version Int @default(0)
|
|
409
|
+
@@index([namespace, createdAt, id], map: "idx_fragno_hooks_idx_namespace_created_at_e489a066")
|
|
410
|
+
@@index([namespace, status, lastAttemptAt], map: "idx_fragno_hooks_idx_namespace_status_last_attempt_f6aacab3")
|
|
320
411
|
@@index([namespace, status, nextRetryAt], map: "idx_fragno_hooks_idx_namespace_status_retry_b66b1168")
|
|
321
412
|
@@index([nonce], map: "idx_fragno_hooks_idx_nonce_90c97cf1")
|
|
322
413
|
@@map("fragno_hooks")
|
|
@@ -357,6 +448,38 @@ describe("generatePrismaSchema", () => {
|
|
|
357
448
|
`);
|
|
358
449
|
});
|
|
359
450
|
|
|
451
|
+
it("should skip join-only relations in Prisma output", () => {
|
|
452
|
+
const joinOnlySchema = schema("joinonly", (s) => {
|
|
453
|
+
return s
|
|
454
|
+
.addTable("users", (t) => {
|
|
455
|
+
return t
|
|
456
|
+
.addColumn("id", idColumn())
|
|
457
|
+
.addColumn("email", column("string"))
|
|
458
|
+
.createIndex("idx_users_email", ["email"]);
|
|
459
|
+
})
|
|
460
|
+
.addTable("invitations", (t) => {
|
|
461
|
+
return t
|
|
462
|
+
.addColumn("id", idColumn())
|
|
463
|
+
.addColumn("email", column("string"))
|
|
464
|
+
.createIndex("idx_inv_email", ["email"]);
|
|
465
|
+
})
|
|
466
|
+
.addReference("invitedUser", {
|
|
467
|
+
type: "one",
|
|
468
|
+
from: { table: "invitations", column: "email" },
|
|
469
|
+
to: { table: "users", column: "email" },
|
|
470
|
+
foreignKey: false,
|
|
471
|
+
});
|
|
472
|
+
});
|
|
473
|
+
|
|
474
|
+
const generated = generatePrismaSchema(
|
|
475
|
+
[{ namespace: "joinonly", schema: joinOnlySchema }],
|
|
476
|
+
"sqlite",
|
|
477
|
+
{ sqliteStorageMode: sqliteStoragePrisma },
|
|
478
|
+
);
|
|
479
|
+
|
|
480
|
+
expect(generated).not.toContain("@relation(");
|
|
481
|
+
});
|
|
482
|
+
|
|
360
483
|
it("should generate PostgreSQL (PGLite) Prisma schema", () => {
|
|
361
484
|
const generated = generatePrismaSchema(
|
|
362
485
|
[
|
|
@@ -372,7 +495,7 @@ describe("generatePrismaSchema", () => {
|
|
|
372
495
|
// Namespaces: blog
|
|
373
496
|
|
|
374
497
|
model FragnoDbOutbox {
|
|
375
|
-
id String @unique @default(cuid()) @db.VarChar(
|
|
498
|
+
id String @unique @default(cuid()) @db.VarChar(128)
|
|
376
499
|
versionstamp String
|
|
377
500
|
uowId String
|
|
378
501
|
payload Json @db.Json
|
|
@@ -385,8 +508,26 @@ describe("generatePrismaSchema", () => {
|
|
|
385
508
|
@@map("fragno_db_outbox")
|
|
386
509
|
}
|
|
387
510
|
|
|
511
|
+
model FragnoDbOutboxMutations {
|
|
512
|
+
id String @unique @default(cuid()) @db.VarChar(128)
|
|
513
|
+
entryVersionstamp String
|
|
514
|
+
mutationVersionstamp String
|
|
515
|
+
uowId String
|
|
516
|
+
schema String
|
|
517
|
+
table String
|
|
518
|
+
externalId String
|
|
519
|
+
op String
|
|
520
|
+
createdAt DateTime @default(now())
|
|
521
|
+
_internalId BigInt @id @default(autoincrement())
|
|
522
|
+
_version Int @default(0)
|
|
523
|
+
@@index([entryVersionstamp], map: "idx_outbox_mutations_entry")
|
|
524
|
+
@@index([schema, table, externalId, entryVersionstamp], map: "idx_outbox_mutations_key")
|
|
525
|
+
@@index([uowId], map: "idx_outbox_mutations_uow")
|
|
526
|
+
@@map("fragno_db_outbox_mutations")
|
|
527
|
+
}
|
|
528
|
+
|
|
388
529
|
model FragnoDbSettings {
|
|
389
|
-
id String @unique @default(cuid()) @db.VarChar(
|
|
530
|
+
id String @unique @default(cuid()) @db.VarChar(128)
|
|
390
531
|
key String
|
|
391
532
|
value String
|
|
392
533
|
_internalId BigInt @id @default(autoincrement())
|
|
@@ -395,8 +536,23 @@ describe("generatePrismaSchema", () => {
|
|
|
395
536
|
@@map("fragno_db_settings")
|
|
396
537
|
}
|
|
397
538
|
|
|
539
|
+
model FragnoDbSyncRequests {
|
|
540
|
+
id String @unique @default(cuid()) @db.VarChar(128)
|
|
541
|
+
requestId String
|
|
542
|
+
status String
|
|
543
|
+
confirmedCommandIds Json @db.Json
|
|
544
|
+
conflictCommandId String?
|
|
545
|
+
baseVersionstamp String?
|
|
546
|
+
lastVersionstamp String?
|
|
547
|
+
createdAt DateTime @default(now())
|
|
548
|
+
_internalId BigInt @id @default(autoincrement())
|
|
549
|
+
_version Int @default(0)
|
|
550
|
+
@@unique([requestId], map: "idx_sync_request_id")
|
|
551
|
+
@@map("fragno_db_sync_requests")
|
|
552
|
+
}
|
|
553
|
+
|
|
398
554
|
model FragnoHooks {
|
|
399
|
-
id String @unique @default(cuid()) @db.VarChar(
|
|
555
|
+
id String @unique @default(cuid()) @db.VarChar(128)
|
|
400
556
|
namespace String
|
|
401
557
|
hookName String
|
|
402
558
|
payload Json @db.Json
|
|
@@ -410,13 +566,15 @@ describe("generatePrismaSchema", () => {
|
|
|
410
566
|
nonce String
|
|
411
567
|
_internalId BigInt @id @default(autoincrement())
|
|
412
568
|
_version Int @default(0)
|
|
569
|
+
@@index([namespace, createdAt, id], map: "idx_namespace_created_at")
|
|
570
|
+
@@index([namespace, status, lastAttemptAt], map: "idx_namespace_status_last_attempt")
|
|
413
571
|
@@index([namespace, status, nextRetryAt], map: "idx_namespace_status_retry")
|
|
414
572
|
@@index([nonce], map: "idx_nonce")
|
|
415
573
|
@@map("fragno_hooks")
|
|
416
574
|
}
|
|
417
575
|
|
|
418
576
|
model Posts_blog {
|
|
419
|
-
id String @unique @default(cuid()) @db.VarChar(
|
|
577
|
+
id String @unique @default(cuid()) @db.VarChar(128)
|
|
420
578
|
title String
|
|
421
579
|
authorId BigInt
|
|
422
580
|
editorId BigInt?
|
|
@@ -430,7 +588,7 @@ describe("generatePrismaSchema", () => {
|
|
|
430
588
|
}
|
|
431
589
|
|
|
432
590
|
model Users_blog {
|
|
433
|
-
id String @unique @default(cuid()) @db.VarChar(
|
|
591
|
+
id String @unique @default(cuid()) @db.VarChar(128)
|
|
434
592
|
email String
|
|
435
593
|
createdAt DateTime @default(now())
|
|
436
594
|
birthDate DateTime? @db.Date
|
|
@@ -486,7 +644,7 @@ describe("generatePrismaSchema", () => {
|
|
|
486
644
|
// Namespaces: my-app
|
|
487
645
|
|
|
488
646
|
model UserProfiles_my_app {
|
|
489
|
-
id String @unique @default(cuid()) @db.VarChar(
|
|
647
|
+
id String @unique @default(cuid()) @db.VarChar(128)
|
|
490
648
|
user_id String @map("user-id")
|
|
491
649
|
display_name String? @map("display name")
|
|
492
650
|
_internalId BigInt @id @default(autoincrement())
|