@hot-updater/server 1.0.0-rc.14 → 1.0.0-rc.16
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/dist/adapters/drizzle.cjs +35 -74
- package/dist/adapters/drizzle.d.cts +13 -5
- package/dist/adapters/drizzle.d.mts +13 -5
- package/dist/adapters/drizzle.mjs +34 -75
- package/dist/adapters/drizzleExecutor.cjs +114 -0
- package/dist/adapters/drizzleExecutor.d.cts +9 -0
- package/dist/adapters/drizzleExecutor.d.mts +9 -0
- package/dist/adapters/drizzleExecutor.mjs +112 -0
- package/dist/adapters/kysely.cjs +25 -31
- package/dist/adapters/kysely.d.cts +10 -6
- package/dist/adapters/kysely.d.mts +10 -6
- package/dist/adapters/kysely.mjs +25 -32
- package/dist/adapters/kyselyExecutor.cjs +32 -0
- package/dist/adapters/kyselyExecutor.d.cts +12 -0
- package/dist/adapters/kyselyExecutor.d.mts +12 -0
- package/dist/adapters/kyselyExecutor.mjs +32 -0
- package/dist/adapters/mongodb.cjs +28 -62
- package/dist/adapters/mongodb.d.cts +10 -5
- package/dist/adapters/mongodb.d.mts +10 -5
- package/dist/adapters/mongodb.mjs +28 -63
- package/dist/adapters/mongodbAdapter.cjs +174 -0
- package/dist/adapters/mongodbAdapter.d.cts +9 -0
- package/dist/adapters/mongodbAdapter.d.mts +9 -0
- package/dist/adapters/mongodbAdapter.mjs +173 -0
- package/dist/adapters/prisma.cjs +38 -257
- package/dist/adapters/prisma.d.cts +12 -7
- package/dist/adapters/prisma.d.mts +12 -7
- package/dist/adapters/prisma.mjs +38 -257
- package/dist/adapters/prismaExecutor.cjs +64 -0
- package/dist/adapters/prismaExecutor.mjs +64 -0
- package/dist/adapters/sqlProviders.cjs +9 -0
- package/dist/adapters/sqlProviders.mjs +9 -0
- package/dist/apiKeys.cjs +2 -6
- package/dist/apiKeys.d.cts +1 -23
- package/dist/apiKeys.d.mts +1 -23
- package/dist/apiKeys.mjs +2 -6
- package/dist/assembly/assemblePlugins.cjs +147 -0
- package/dist/assembly/assemblePlugins.d.cts +12 -0
- package/dist/assembly/assemblePlugins.d.mts +12 -0
- package/dist/assembly/assemblePlugins.mjs +146 -0
- package/dist/assembly/databasePlugins.cjs +23 -0
- package/dist/assembly/databasePlugins.d.cts +43 -0
- package/dist/assembly/databasePlugins.d.mts +43 -0
- package/dist/assembly/databasePlugins.mjs +22 -0
- package/dist/core/api.cjs +91 -0
- package/dist/core/api.d.cts +65 -0
- package/dist/core/api.d.mts +65 -0
- package/dist/core/api.mjs +87 -0
- package/dist/core/baseCandidates.cjs +71 -0
- package/dist/core/baseCandidates.d.cts +17 -0
- package/dist/core/baseCandidates.d.mts +17 -0
- package/dist/core/baseCandidates.mjs +69 -0
- package/dist/core/operations.cjs +350 -0
- package/dist/core/operations.mjs +350 -0
- package/dist/core/reads.cjs +273 -0
- package/dist/core/reads.d.cts +48 -0
- package/dist/core/reads.d.mts +48 -0
- package/dist/core/reads.mjs +267 -0
- package/dist/core/releases.cjs +193 -0
- package/dist/core/releases.mjs +190 -0
- package/dist/core/schema.cjs +279 -0
- package/dist/core/schema.d.cts +307 -0
- package/dist/core/schema.d.mts +307 -0
- package/dist/core/schema.mjs +277 -0
- package/dist/core/writes.cjs +96 -0
- package/dist/core/writes.mjs +91 -0
- package/dist/createHotUpdaterCore.cjs +58 -75
- package/dist/createHotUpdaterCore.d.cts +52 -44
- package/dist/createHotUpdaterCore.d.mts +52 -44
- package/dist/createHotUpdaterCore.mjs +59 -75
- package/dist/database/cursor.cjs +44 -0
- package/dist/database/cursor.d.cts +7 -0
- package/dist/database/cursor.d.mts +7 -0
- package/dist/database/cursor.mjs +40 -0
- package/dist/database/database.cjs +44 -0
- package/dist/database/database.d.cts +123 -0
- package/dist/database/database.d.mts +123 -0
- package/dist/database/database.mjs +44 -0
- package/dist/database/definitions.d.cts +68 -0
- package/dist/database/definitions.d.mts +68 -0
- package/dist/database/engine.cjs +37 -0
- package/dist/database/engine.d.cts +40 -0
- package/dist/database/engine.d.mts +40 -0
- package/dist/database/engine.mjs +37 -0
- package/dist/database/engineAggregates.cjs +115 -0
- package/dist/database/engineAggregates.mjs +112 -0
- package/dist/database/engineReads.cjs +180 -0
- package/dist/database/engineReads.d.cts +35 -0
- package/dist/database/engineReads.d.mts +35 -0
- package/dist/database/engineReads.mjs +179 -0
- package/dist/database/engineTransaction.cjs +403 -0
- package/dist/database/engineTransaction.d.cts +26 -0
- package/dist/database/engineTransaction.d.mts +26 -0
- package/dist/database/engineTransaction.mjs +402 -0
- package/dist/database/errors.cjs +27 -0
- package/dist/database/errors.d.cts +21 -0
- package/dist/database/errors.d.mts +21 -0
- package/dist/database/errors.mjs +24 -0
- package/dist/database/fence.cjs +124 -0
- package/dist/database/fence.d.cts +42 -0
- package/dist/database/fence.d.mts +42 -0
- package/dist/database/fence.mjs +116 -0
- package/dist/database/index.cjs +127 -0
- package/dist/database/index.d.cts +17 -0
- package/dist/database/index.d.mts +17 -0
- package/dist/database/index.mjs +15 -0
- package/dist/database/kv/kvAdapter.cjs +273 -0
- package/dist/database/kv/kvAdapter.d.cts +101 -0
- package/dist/database/kv/kvAdapter.d.mts +101 -0
- package/dist/database/kv/kvAdapter.mjs +272 -0
- package/dist/database/resolveSchema.cjs +196 -0
- package/dist/database/resolveSchema.d.cts +42 -0
- package/dist/database/resolveSchema.d.mts +42 -0
- package/dist/database/resolveSchema.mjs +193 -0
- package/dist/database/schema.cjs +21 -0
- package/dist/database/schema.d.cts +61 -0
- package/dist/database/schema.d.mts +61 -0
- package/dist/database/schema.mjs +20 -0
- package/dist/database/sql/sqlAdapter.cjs +282 -0
- package/dist/database/sql/sqlAdapter.d.cts +46 -0
- package/dist/database/sql/sqlAdapter.d.mts +46 -0
- package/dist/database/sql/sqlAdapter.mjs +279 -0
- package/dist/database/sql/sqlSchema.cjs +115 -0
- package/dist/database/sql/sqlSchema.d.cts +8 -0
- package/dist/database/sql/sqlSchema.d.mts +8 -0
- package/dist/database/sql/sqlSchema.mjs +111 -0
- package/dist/db/builtInDatabase.cjs +104 -0
- package/dist/db/builtInDatabase.d.cts +38 -0
- package/dist/db/builtInDatabase.d.mts +38 -0
- package/dist/db/builtInDatabase.mjs +97 -0
- package/dist/db/createBundleDiff.cjs +4 -4
- package/dist/db/createBundleDiff.d.cts +3 -2
- package/dist/db/createBundleDiff.d.mts +3 -2
- package/dist/db/createBundleDiff.mjs +5 -5
- package/dist/db/engineDrizzleSchema.cjs +54 -0
- package/dist/db/engineDrizzleSchema.mjs +54 -0
- package/dist/db/engineMigrator.cjs +53 -0
- package/dist/db/engineMigrator.mjs +53 -0
- package/dist/db/enginePrismaSchema.cjs +85 -0
- package/dist/db/enginePrismaSchema.d.cts +5 -0
- package/dist/db/enginePrismaSchema.d.mts +5 -0
- package/dist/db/enginePrismaSchema.mjs +84 -0
- package/dist/db/engineSql.cjs +26 -0
- package/dist/db/engineSql.d.cts +17 -0
- package/dist/db/engineSql.d.mts +17 -0
- package/dist/db/engineSql.mjs +25 -0
- package/dist/db/engineSqlMigrator.cjs +66 -0
- package/dist/db/engineSqlMigrator.mjs +66 -0
- package/dist/db/fixedMigratorShared.cjs +0 -11
- package/dist/db/fixedMigratorShared.mjs +1 -8
- package/dist/db/index.cjs +23 -8
- package/dist/db/index.d.cts +10 -3
- package/dist/db/index.d.mts +10 -3
- package/dist/db/index.mjs +16 -8
- package/dist/db/releaseCatalog.cjs +20 -43
- package/dist/db/releaseCatalog.d.cts +2 -2
- package/dist/db/releaseCatalog.d.mts +2 -2
- package/dist/db/releaseCatalog.mjs +20 -44
- package/dist/db/schemaSettings.cjs +63 -0
- package/dist/db/schemaSettings.d.cts +12 -0
- package/dist/db/schemaSettings.d.mts +12 -0
- package/dist/db/schemaSettings.mjs +62 -0
- package/dist/db/settingsMigrator.cjs +92 -0
- package/dist/db/settingsMigrator.mjs +89 -0
- package/dist/db/types.cjs +1 -12
- package/dist/db/types.d.cts +26 -66
- package/dist/db/types.d.mts +26 -66
- package/dist/db/types.mjs +2 -11
- package/dist/db/updateArtifacts.cjs +38 -67
- package/dist/db/updateArtifacts.mjs +40 -69
- package/dist/handler.cjs +72 -43
- package/dist/handler.d.cts +3 -5
- package/dist/handler.d.mts +3 -5
- package/dist/handler.mjs +73 -43
- package/dist/handlerAdminRoutes.cjs +375 -0
- package/dist/handlerAdminRoutes.mjs +373 -0
- package/dist/handlerParameters.cjs +6 -11
- package/dist/handlerParameters.mjs +6 -10
- package/dist/handlerReleaseCatalogRoutes.cjs +11 -13
- package/dist/handlerReleaseCatalogRoutes.mjs +11 -13
- package/dist/handlerTypes.d.cts +2 -55
- package/dist/handlerTypes.d.mts +2 -55
- package/dist/handlerVersionRoutes.cjs +20 -4
- package/dist/handlerVersionRoutes.mjs +20 -4
- package/dist/index.cjs +4 -7
- package/dist/index.d.cts +8 -7
- package/dist/index.d.mts +8 -7
- package/dist/index.mjs +4 -4
- package/dist/insights/domain.d.cts +12 -0
- package/dist/insights/domain.d.mts +12 -0
- package/dist/insights/errors.cjs +34 -0
- package/dist/insights/errors.mjs +34 -1
- package/dist/insights/eventInput.cjs +14 -19
- package/dist/insights/eventInput.mjs +15 -20
- package/dist/insights/provider.cjs +47 -23
- package/dist/insights/provider.mjs +47 -24
- package/dist/insights/routes.cjs +79 -14
- package/dist/insights/routes.mjs +77 -14
- package/dist/node.d.cts +1 -1
- package/dist/node.d.mts +1 -1
- package/dist/package.cjs +1 -1
- package/dist/package.mjs +1 -1
- package/dist/plugins/api-keys/index.cjs +50 -0
- package/dist/plugins/api-keys/index.d.cts +85 -0
- package/dist/plugins/api-keys/index.d.mts +85 -0
- package/dist/plugins/api-keys/index.mjs +47 -0
- package/dist/plugins/api-keys/model.cjs +58 -0
- package/dist/plugins/api-keys/model.d.cts +8 -0
- package/dist/plugins/api-keys/model.d.mts +8 -0
- package/dist/plugins/api-keys/model.mjs +58 -0
- package/dist/plugins/api-keys/schema.cjs +38 -0
- package/dist/plugins/api-keys/schema.d.cts +44 -0
- package/dist/plugins/api-keys/schema.d.mts +44 -0
- package/dist/plugins/api-keys/schema.mjs +39 -0
- package/dist/plugins/builtIn.cjs +7 -0
- package/dist/plugins/builtIn.mjs +6 -0
- package/dist/plugins/definePlugin.cjs +5 -0
- package/dist/plugins/definePlugin.d.cts +73 -0
- package/dist/plugins/definePlugin.d.mts +73 -0
- package/dist/plugins/definePlugin.mjs +5 -0
- package/dist/plugins/index.cjs +17 -0
- package/dist/plugins/index.d.cts +9 -0
- package/dist/plugins/index.d.mts +9 -0
- package/dist/plugins/index.mjs +7 -0
- package/dist/plugins/insights/index.cjs +48 -0
- package/dist/plugins/insights/index.d.cts +295 -0
- package/dist/plugins/insights/index.d.mts +295 -0
- package/dist/plugins/insights/index.mjs +44 -0
- package/dist/plugins/insights/model.cjs +17 -0
- package/dist/plugins/insights/model.d.cts +10 -0
- package/dist/plugins/insights/model.d.mts +10 -0
- package/dist/plugins/insights/model.mjs +17 -0
- package/dist/plugins/insights/reads.cjs +471 -0
- package/dist/plugins/insights/reads.mjs +466 -0
- package/dist/plugins/insights/recordEvent.cjs +135 -0
- package/dist/plugins/insights/recordEvent.d.cts +13 -0
- package/dist/plugins/insights/recordEvent.d.mts +13 -0
- package/dist/plugins/insights/recordEvent.mjs +132 -0
- package/dist/plugins/insights/schema.cjs +347 -0
- package/dist/plugins/insights/schema.d.cts +258 -0
- package/dist/plugins/insights/schema.d.mts +258 -0
- package/dist/plugins/insights/schema.mjs +344 -0
- package/dist/types/index.d.cts +2 -28
- package/dist/types/index.d.mts +2 -28
- package/package.json +28 -5
- package/src/adapters/drizzle.conformance.integration.spec.ts +34 -0
- package/src/adapters/drizzle.readBudgets.integration.spec.ts +41 -0
- package/src/adapters/drizzle.spec.ts +270 -399
- package/src/adapters/drizzle.ts +48 -140
- package/src/adapters/drizzleExecutor.ts +166 -0
- package/src/adapters/kysely.conformance.integration.spec.ts +36 -0
- package/src/adapters/kysely.readBudgets.integration.spec.ts +42 -0
- package/src/adapters/kysely.spec.ts +204 -171
- package/src/adapters/kysely.ts +32 -93
- package/src/adapters/kyselyExecutor.ts +53 -0
- package/src/adapters/mongodb.integration.spec.ts +143 -446
- package/src/adapters/mongodb.readBudgets.integration.spec.ts +61 -0
- package/src/adapters/mongodb.ts +36 -123
- package/src/adapters/mongodbAdapter.ts +293 -0
- package/src/adapters/prisma.conformance.integration.spec.ts +36 -0
- package/src/adapters/prisma.integration.spec.ts +138 -0
- package/src/adapters/prisma.readBudgets.integration.spec.ts +40 -0
- package/src/adapters/prisma.spec.ts +216 -433
- package/src/adapters/prisma.ts +60 -524
- package/src/adapters/prismaExecutor.ts +107 -0
- package/src/adapters/prismaTestClients.ts +175 -0
- package/src/adapters/sqlProviders.ts +14 -0
- package/src/apiKeys.integration.spec.ts +19 -119
- package/src/apiKeys.spec.ts +39 -35
- package/src/apiKeys.ts +2 -8
- package/src/assembly/assemblePlugins.ts +269 -0
- package/src/assembly/assembly.spec.ts +325 -0
- package/src/assembly/assembly.types.spec.ts +155 -0
- package/src/assembly/builtInRoutes.spec.ts +213 -0
- package/src/assembly/databasePlugins.spec.ts +71 -0
- package/src/assembly/databasePlugins.ts +96 -0
- package/src/core/api.ts +139 -0
- package/src/core/baseCandidates.spec.ts +378 -0
- package/src/core/baseCandidates.ts +136 -0
- package/src/core/index.ts +44 -0
- package/src/core/operations.spec.ts +415 -0
- package/src/core/operations.ts +551 -0
- package/src/core/reads.spec.ts +300 -0
- package/src/core/reads.ts +417 -0
- package/src/core/releases.spec.ts +308 -0
- package/src/core/releases.ts +345 -0
- package/src/core/schema.ts +173 -0
- package/src/core/writes.ts +160 -0
- package/src/createHotUpdaterCore.ts +191 -181
- package/src/database/cursor.ts +65 -0
- package/src/database/database.ts +335 -0
- package/src/database/database.types.spec.ts +135 -0
- package/src/database/definitions.ts +72 -0
- package/src/database/engine.ts +62 -0
- package/src/database/engineAggregates.spec.ts +539 -0
- package/src/database/engineAggregates.ts +193 -0
- package/src/database/engineReads.spec.ts +219 -0
- package/src/database/engineReads.ts +302 -0
- package/src/database/engineTransaction.spec.ts +710 -0
- package/src/database/engineTransaction.ts +588 -0
- package/src/database/errors.ts +30 -0
- package/src/database/fence.spec.ts +223 -0
- package/src/database/fence.ts +171 -0
- package/src/database/index.ts +154 -0
- package/src/database/kv/kvAdapter.conformance.integration.spec.ts +17 -0
- package/src/database/kv/kvAdapter.readBudgets.integration.spec.ts +17 -0
- package/src/database/kv/kvAdapter.spec.ts +468 -0
- package/src/database/kv/kvAdapter.ts +450 -0
- package/src/database/kv/kvTestStore.ts +91 -0
- package/src/database/memory.readBudgets.integration.spec.ts +13 -0
- package/src/database/resolveSchema.spec.ts +230 -0
- package/src/database/resolveSchema.ts +372 -0
- package/src/database/schema.ts +169 -0
- package/src/database/schema.types.spec.ts +94 -0
- package/src/database/sql/docker-compose.yml +36 -0
- package/src/database/sql/sqlAdapter.integration.spec.ts +148 -0
- package/src/database/sql/sqlAdapter.readBudgets.integration.spec.ts +109 -0
- package/src/database/sql/sqlAdapter.spec.ts +255 -0
- package/src/database/sql/sqlAdapter.ts +532 -0
- package/src/database/sql/sqlSchema.ts +205 -0
- package/src/database/sql/sqlTestExecutors.ts +183 -0
- package/src/databaseTestSuite.spec.ts +39 -0
- package/src/db/builtInDatabase.ts +149 -0
- package/src/db/bundleRows.spec.ts +3 -3
- package/src/db/createBundleDiff.spec.ts +43 -29
- package/src/db/createBundleDiff.ts +13 -7
- package/src/db/engineDrizzleSchema.ts +72 -0
- package/src/db/engineMigrator.ts +105 -0
- package/src/db/enginePrismaSchema.ts +147 -0
- package/src/db/engineSql.spec.ts +129 -0
- package/src/db/engineSql.ts +48 -0
- package/src/db/engineSqlMigrator.ts +116 -0
- package/src/db/fixedMigratorShared.ts +1 -20
- package/src/db/index.spec.ts +116 -829
- package/src/db/index.ts +43 -14
- package/src/db/pluginTables.spec.ts +218 -0
- package/src/db/releaseCatalog.ts +48 -90
- package/src/db/schemaSettings.ts +104 -0
- package/src/db/settingsMigrator.spec.ts +65 -0
- package/src/db/settingsMigrator.ts +152 -0
- package/src/db/types.ts +25 -171
- package/src/db/updateArtifacts.spec.ts +170 -294
- package/src/db/updateArtifacts.ts +74 -142
- package/src/db/updateCheck.bench.ts +47 -0
- package/src/handler-standalone.integration.spec.ts +204 -410
- package/src/handler.spec.ts +134 -51
- package/src/handler.testFixtures.ts +14 -19
- package/src/handler.ts +163 -75
- package/src/handlerAdminRoutes.spec.ts +183 -0
- package/src/handlerAdminRoutes.ts +536 -0
- package/src/handlerAuth.integration.spec.ts +3 -3
- package/src/handlerManagement.spec.ts +136 -196
- package/src/handlerReleaseCatalogRoutes.ts +15 -17
- package/src/handlerTypes.ts +3 -80
- package/src/handlerVersionRoutes.ts +20 -7
- package/src/index.ts +5 -12
- package/src/insights/domain.ts +12 -0
- package/src/insights/errors.spec.ts +48 -0
- package/src/insights/errors.ts +51 -0
- package/src/insights/eventInput.ts +27 -24
- package/src/insights/insights.integration.spec.ts +228 -78
- package/src/insights/provider.spec.ts +203 -25
- package/src/insights/provider.ts +88 -32
- package/src/insights/routes.ts +95 -20
- package/src/lintRules.spec.ts +76 -0
- package/src/plugins/api-keys/apiKeysPlugin.spec.ts +172 -0
- package/src/plugins/api-keys/index.ts +66 -0
- package/src/plugins/api-keys/model.ts +69 -0
- package/src/plugins/api-keys/schema.ts +22 -0
- package/src/plugins/builtIn.ts +5 -0
- package/src/plugins/definePlugin.ts +100 -0
- package/src/plugins/index.ts +55 -0
- package/src/plugins/insights/index.ts +86 -0
- package/src/plugins/insights/insightsRollout.integration.spec.ts +187 -0
- package/src/plugins/insights/model.spec.ts +66 -0
- package/src/plugins/insights/model.ts +19 -0
- package/src/plugins/insights/reads.spec.ts +725 -0
- package/src/plugins/insights/reads.ts +707 -0
- package/src/plugins/insights/recordEvent.spec.ts +443 -0
- package/src/plugins/insights/recordEvent.ts +238 -0
- package/src/plugins/insights/schema.ts +229 -0
- package/src/plugins/pluginTestHarness.spec.ts +56 -0
- package/src/readBudgets.testFixtures.ts +15 -0
- package/src/releaseCatalogRoutes.integration.spec.ts +47 -92
- package/src/runtime.spec.ts +91 -77
- package/src/runtime.testFixtures.ts +28 -44
- package/src/runtimeBundles.integration.spec.ts +112 -0
- package/src/testUtilsMutation.integration.spec.ts +215 -0
- package/src/testUtilsPackage.integration.spec.ts +176 -0
- package/src/types/index.ts +0 -32
- package/dist/adapters/databaseConstraintErrors.cjs +0 -22
- package/dist/adapters/databaseConstraintErrors.mjs +0 -21
- package/dist/adapters/databasePluginUtils.cjs +0 -130
- package/dist/adapters/databasePluginUtils.mjs +0 -118
- package/dist/adapters/drizzleCrud.cjs +0 -340
- package/dist/adapters/drizzleCrud.mjs +0 -337
- package/dist/adapters/drizzleLazyDB.cjs +0 -103
- package/dist/adapters/drizzleLazyDB.mjs +0 -103
- package/dist/adapters/drizzleQuery.cjs +0 -69
- package/dist/adapters/drizzleQuery.mjs +0 -69
- package/dist/adapters/kyselyCrud.cjs +0 -293
- package/dist/adapters/kyselyCrud.mjs +0 -292
- package/dist/adapters/kyselyQuery.cjs +0 -56
- package/dist/adapters/kyselyQuery.mjs +0 -56
- package/dist/adapters/mongodbCollections.cjs +0 -38
- package/dist/adapters/mongodbCollections.mjs +0 -32
- package/dist/adapters/mongodbQuery.cjs +0 -90
- package/dist/adapters/mongodbQuery.mjs +0 -83
- package/dist/adapters/mongodbReads.cjs +0 -206
- package/dist/adapters/mongodbReads.mjs +0 -206
- package/dist/adapters/mongodbWrites.cjs +0 -133
- package/dist/adapters/mongodbWrites.mjs +0 -133
- package/dist/adapters/prismaInsights.cjs +0 -99
- package/dist/adapters/prismaInsights.mjs +0 -97
- package/dist/adapters/prismaQuery.cjs +0 -57
- package/dist/adapters/prismaQuery.mjs +0 -56
- package/dist/adapters/prismaRows.cjs +0 -197
- package/dist/adapters/prismaRows.mjs +0 -188
- package/dist/db/databasePluginCore.cjs +0 -137
- package/dist/db/databasePluginCore.mjs +0 -137
- package/dist/db/fixedMigrator.cjs +0 -79
- package/dist/db/fixedMigrator.mjs +0 -78
- package/dist/db/fixedMigratorMongo.cjs +0 -321
- package/dist/db/fixedMigratorMongo.mjs +0 -321
- package/dist/db/mongoMigrationExecution.cjs +0 -11
- package/dist/db/mongoMigrationExecution.mjs +0 -11
- package/dist/db/schema/insightsCollation.cjs +0 -14
- package/dist/db/schema/insightsCollation.mjs +0 -14
- package/dist/db/schema/mongodb.cjs +0 -25
- package/dist/db/schema/mongodb.mjs +0 -25
- package/dist/db/schema/registry.cjs +0 -21
- package/dist/db/schema/registry.mjs +0 -17
- package/dist/db/schema/sql.cjs +0 -105
- package/dist/db/schema/sql.mjs +0 -97
- package/dist/db/schema/sqlOperations.cjs +0 -27
- package/dist/db/schema/sqlOperations.mjs +0 -26
- package/dist/db/schemaGenerators.cjs +0 -276
- package/dist/db/schemaGenerators.mjs +0 -274
- package/dist/db/schemaReadiness.cjs +0 -26
- package/dist/db/schemaReadiness.d.cts +0 -9
- package/dist/db/schemaReadiness.d.mts +0 -9
- package/dist/db/schemaReadiness.mjs +0 -25
- package/dist/db/sqlMigrationExecution.cjs +0 -67
- package/dist/db/sqlMigrationExecution.mjs +0 -67
- package/dist/handlerBundleRoutes.cjs +0 -155
- package/dist/handlerBundleRoutes.mjs +0 -155
- package/dist/handlerReleaseManagementRoutes.cjs +0 -124
- package/dist/handlerReleaseManagementRoutes.mjs +0 -124
- package/dist/schema/dsl.cjs +0 -103
- package/dist/schema/dsl.mjs +0 -87
- package/dist/schema/index.cjs +0 -20
- package/dist/schema/index.mjs +0 -7
- package/dist/schema/settings.cjs +0 -9
- package/dist/schema/settings.mjs +0 -9
- package/dist/schema/types.cjs +0 -8
- package/dist/schema/types.mjs +0 -6
- package/dist/schema/v1_0_0.cjs +0 -393
- package/dist/schema/v1_0_0.mjs +0 -385
- package/src/adapters/databaseConstraintErrors.ts +0 -25
- package/src/adapters/databasePluginTestDatabase.ts +0 -116
- package/src/adapters/databasePluginUtils.spec.ts +0 -29
- package/src/adapters/databasePluginUtils.ts +0 -238
- package/src/adapters/drizzleCrud.ts +0 -610
- package/src/adapters/drizzleLazyDB.ts +0 -284
- package/src/adapters/drizzleQuery.ts +0 -164
- package/src/adapters/kyselyCrud.ts +0 -696
- package/src/adapters/kyselyInsights.spec.ts +0 -168
- package/src/adapters/kyselyQuery.ts +0 -128
- package/src/adapters/mongodb.spec.ts +0 -230
- package/src/adapters/mongodbCollections.ts +0 -78
- package/src/adapters/mongodbQuery.ts +0 -245
- package/src/adapters/mongodbReads.ts +0 -387
- package/src/adapters/mongodbRows.spec.ts +0 -64
- package/src/adapters/mongodbRows.ts +0 -118
- package/src/adapters/mongodbTestClient.ts +0 -443
- package/src/adapters/mongodbTestFilter.ts +0 -170
- package/src/adapters/mongodbWrites.ts +0 -261
- package/src/adapters/prismaInsights.ts +0 -190
- package/src/adapters/prismaQuery.ts +0 -129
- package/src/adapters/prismaRows.spec.ts +0 -98
- package/src/adapters/prismaRows.ts +0 -308
- package/src/adapters/prismaTestClient.ts +0 -478
- package/src/calculatePagination.ts +0 -34
- package/src/db/databasePluginCore.spec.ts +0 -62
- package/src/db/databasePluginCore.testFixtures.ts +0 -76
- package/src/db/databasePluginCore.ts +0 -185
- package/src/db/databasePluginUpdateCheck.bench.ts +0 -117
- package/src/db/fixedMigrator.spec.ts +0 -294
- package/src/db/fixedMigrator.ts +0 -147
- package/src/db/fixedMigratorMongo.spec.ts +0 -253
- package/src/db/fixedMigratorMongo.ts +0 -425
- package/src/db/hotUpdaterSchema.ts +0 -5
- package/src/db/mongoMigrationExecution.ts +0 -23
- package/src/db/schema/definitions.ts +0 -1
- package/src/db/schema/insightsCollation.ts +0 -21
- package/src/db/schema/mongodb.ts +0 -40
- package/src/db/schema/registry.ts +0 -55
- package/src/db/schema/sql.ts +0 -244
- package/src/db/schema/sqlOperations.ts +0 -63
- package/src/db/schema/types.ts +0 -1
- package/src/db/schemaGenerators.ts +0 -495
- package/src/db/schemaReadiness.ts +0 -34
- package/src/db/sqlMigrationExecution.spec.ts +0 -65
- package/src/db/sqlMigrationExecution.ts +0 -108
- package/src/db/types.spec.ts +0 -63
- package/src/handlerBundleRoutes.ts +0 -259
- package/src/handlerReleaseManagementRoutes.ts +0 -213
- package/src/schema/dsl-all-versions.spec.ts +0 -35
- package/src/schema/dsl.ts +0 -187
- package/src/schema/index.ts +0 -10
- package/src/schema/settings.ts +0 -15
- package/src/schema/types.ts +0 -79
- package/src/schema/v1_0_0.spec.ts +0 -220
- package/src/schema/v1_0_0.ts +0 -511
|
@@ -1,81 +1,42 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const
|
|
3
|
-
const
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
2
|
+
const require_settingsMigrator = require("../db/settingsMigrator.cjs");
|
|
3
|
+
const require_builtInDatabase = require("../db/builtInDatabase.cjs");
|
|
4
|
+
const require_sqlAdapter = require("../database/sql/sqlAdapter.cjs");
|
|
5
|
+
const require_sqlProviders = require("./sqlProviders.cjs");
|
|
6
|
+
const require_engineDrizzleSchema = require("../db/engineDrizzleSchema.cjs");
|
|
7
|
+
const require_drizzleExecutor = require("./drizzleExecutor.cjs");
|
|
8
8
|
//#region src/adapters/drizzle.ts
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
recordInsights: async (input) => {
|
|
16
|
-
await require_drizzleCrud.recordDrizzleInsights(db.resolve === void 0 ? db : await db.resolve(), config.provider, input);
|
|
17
|
-
},
|
|
18
|
-
deleteChannel: (input) => {
|
|
19
|
-
if (transaction === void 0) throw new Error("Drizzle channel deletion requires transaction support.");
|
|
20
|
-
return transaction((transactionDatabase) => require_drizzleCrud.createDrizzleCrud(transactionDatabase, config.provider).deleteChannel(input));
|
|
21
|
-
},
|
|
22
|
-
...transaction ? { delete: (input) => transaction((transactionDatabase) => require_drizzleCrud.createDrizzleCrud(transactionDatabase, config.provider).delete(input)) } : {},
|
|
23
|
-
...transaction ? { transaction: async (callback) => transaction((transaction) => callback(require_drizzleCrud.createDrizzleCrud(transaction, config.provider))) } : {}
|
|
24
|
-
};
|
|
25
|
-
};
|
|
9
|
+
/**
|
|
10
|
+
* Hot Updater's database on a Drizzle instance: the storage engine through the
|
|
11
|
+
* shared SQL core, fenced by the schema settings. `db generate` writes the
|
|
12
|
+
* Drizzle schema drizzle-kit applies; `db migrate` then writes the settings
|
|
13
|
+
* rows the fence checks.
|
|
14
|
+
*/
|
|
26
15
|
const drizzleAdapter = (config) => {
|
|
27
|
-
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
findByScopeKey: (scopeKey) => getAdapter().models.releaseCatalogs.findByScopeKey(scopeKey),
|
|
48
|
-
findMany: (input) => getAdapter().models.releaseCatalogs.findMany(input)
|
|
49
|
-
},
|
|
50
|
-
channels: {
|
|
51
|
-
insert: (input) => getAdapter().models.channels.insert(input),
|
|
52
|
-
list: (input) => getAdapter().models.channels.list(input),
|
|
53
|
-
delete: (input) => getAdapter().models.channels.delete(input)
|
|
54
|
-
},
|
|
55
|
-
insights: {
|
|
56
|
-
recordEvent: (input) => getAdapter().models.insights.recordEvent(input),
|
|
57
|
-
listEvents: (input) => getAdapter().models.insights.listEvents(input),
|
|
58
|
-
findLatestEvents: (input) => getAdapter().models.insights.findLatestEvents(input),
|
|
59
|
-
countLatestEvents: (input) => getAdapter().models.insights.countLatestEvents(input),
|
|
60
|
-
countEvents: (input) => getAdapter().models.insights.countEvents(input)
|
|
61
|
-
},
|
|
62
|
-
apiKeys: {
|
|
63
|
-
create: (row) => getAdapter().models.apiKeys.create(row),
|
|
64
|
-
findByHash: (hash) => getAdapter().models.apiKeys.findByHash(hash),
|
|
65
|
-
list: () => getAdapter().models.apiKeys.list(),
|
|
66
|
-
revoke: (input) => getAdapter().models.apiKeys.revoke(input)
|
|
67
|
-
}
|
|
68
|
-
},
|
|
69
|
-
commit: (input) => getAdapter().commit(input)
|
|
70
|
-
});
|
|
71
|
-
return Object.assign(plugin, {
|
|
72
|
-
adapterName: "drizzle",
|
|
73
|
-
provider: config.provider,
|
|
74
|
-
generateSchema: (version) => ({
|
|
75
|
-
code: require_schemaGenerators.generateDrizzleSchema(config.provider, version === "latest" ? require_registry.hotUpdaterSchema : require_registry.getHotUpdaterSchemaVersion(version)),
|
|
76
|
-
path: "hot-updater-schema.ts"
|
|
16
|
+
const provider = require_sqlProviders.checkSqlProvider("drizzleAdapter", config.provider);
|
|
17
|
+
const executor = require_drizzleExecutor.drizzleExecutor(config.db, provider);
|
|
18
|
+
return {
|
|
19
|
+
...require_builtInDatabase.createEngineDatabase({
|
|
20
|
+
name: "drizzle",
|
|
21
|
+
adapter: require_sqlAdapter.createSqlAdapter({ executor })
|
|
22
|
+
}),
|
|
23
|
+
provider,
|
|
24
|
+
generateSchema: ((version, _name, { schema } = require_builtInDatabase.builtInTarget) => {
|
|
25
|
+
if (version !== "latest" && version !== require_builtInDatabase.builtInSettings["schema.core"]) throw new Error(`Invalid version ${version}`);
|
|
26
|
+
return {
|
|
27
|
+
code: require_engineDrizzleSchema.generateDrizzleEngineSchema(provider, schema),
|
|
28
|
+
path: "hot-updater-schema.ts"
|
|
29
|
+
};
|
|
30
|
+
}),
|
|
31
|
+
createMigrator: ({ settings } = require_builtInDatabase.builtInTarget) => require_settingsMigrator.createSettingsMigrator({
|
|
32
|
+
adapterName: "drizzle",
|
|
33
|
+
executor,
|
|
34
|
+
settings,
|
|
35
|
+
applyTables: "`drizzle-kit push` (or your drizzle-kit migrations)"
|
|
77
36
|
})
|
|
78
|
-
}
|
|
37
|
+
};
|
|
79
38
|
};
|
|
80
39
|
//#endregion
|
|
40
|
+
exports.DrizzleTransactionUnsupportedError = require_drizzleExecutor.DrizzleTransactionUnsupportedError;
|
|
41
|
+
exports.SUPPORTED_DRIZZLE_DRIVERS = require_drizzleExecutor.SUPPORTED_DRIZZLE_DRIVERS;
|
|
81
42
|
exports.drizzleAdapter = drizzleAdapter;
|
|
@@ -1,12 +1,20 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ORMSQLProvider, ToolingDatabase } from "../db/types.cjs";
|
|
2
|
+
import { DrizzleTransactionUnsupportedError, SUPPORTED_DRIZZLE_DRIVERS } from "./drizzleExecutor.cjs";
|
|
2
3
|
//#region src/adapters/drizzle.d.ts
|
|
3
|
-
type DrizzleProvider =
|
|
4
|
+
type DrizzleProvider = ORMSQLProvider;
|
|
4
5
|
interface DrizzleConfig {
|
|
6
|
+
/** A Drizzle database, or a function that returns one on first use. */
|
|
5
7
|
readonly db: unknown | (() => unknown | Promise<unknown>);
|
|
6
8
|
readonly provider: DrizzleProvider;
|
|
9
|
+
/** Ignored: Hot Updater reads through SQL; the schema file is for drizzle-kit. */
|
|
7
10
|
readonly schema?: Record<string, unknown>;
|
|
8
|
-
readonly transaction?: boolean;
|
|
9
11
|
}
|
|
10
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Hot Updater's database on a Drizzle instance: the storage engine through the
|
|
14
|
+
* shared SQL core, fenced by the schema settings. `db generate` writes the
|
|
15
|
+
* Drizzle schema drizzle-kit applies; `db migrate` then writes the settings
|
|
16
|
+
* rows the fence checks.
|
|
17
|
+
*/
|
|
18
|
+
declare const drizzleAdapter: (config: DrizzleConfig) => ToolingDatabase;
|
|
11
19
|
//#endregion
|
|
12
|
-
export { DrizzleConfig, DrizzleProvider, drizzleAdapter };
|
|
20
|
+
export { DrizzleConfig, DrizzleProvider, DrizzleTransactionUnsupportedError, SUPPORTED_DRIZZLE_DRIVERS, drizzleAdapter };
|
|
@@ -1,12 +1,20 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ORMSQLProvider, ToolingDatabase } from "../db/types.mjs";
|
|
2
|
+
import { DrizzleTransactionUnsupportedError, SUPPORTED_DRIZZLE_DRIVERS } from "./drizzleExecutor.mjs";
|
|
2
3
|
//#region src/adapters/drizzle.d.ts
|
|
3
|
-
type DrizzleProvider =
|
|
4
|
+
type DrizzleProvider = ORMSQLProvider;
|
|
4
5
|
interface DrizzleConfig {
|
|
6
|
+
/** A Drizzle database, or a function that returns one on first use. */
|
|
5
7
|
readonly db: unknown | (() => unknown | Promise<unknown>);
|
|
6
8
|
readonly provider: DrizzleProvider;
|
|
9
|
+
/** Ignored: Hot Updater reads through SQL; the schema file is for drizzle-kit. */
|
|
7
10
|
readonly schema?: Record<string, unknown>;
|
|
8
|
-
readonly transaction?: boolean;
|
|
9
11
|
}
|
|
10
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Hot Updater's database on a Drizzle instance: the storage engine through the
|
|
14
|
+
* shared SQL core, fenced by the schema settings. `db generate` writes the
|
|
15
|
+
* Drizzle schema drizzle-kit applies; `db migrate` then writes the settings
|
|
16
|
+
* rows the fence checks.
|
|
17
|
+
*/
|
|
18
|
+
declare const drizzleAdapter: (config: DrizzleConfig) => ToolingDatabase;
|
|
11
19
|
//#endregion
|
|
12
|
-
export { DrizzleConfig, DrizzleProvider, drizzleAdapter };
|
|
20
|
+
export { DrizzleConfig, DrizzleProvider, DrizzleTransactionUnsupportedError, SUPPORTED_DRIZZLE_DRIVERS, drizzleAdapter };
|
|
@@ -1,80 +1,39 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
1
|
+
import { createSettingsMigrator } from "../db/settingsMigrator.mjs";
|
|
2
|
+
import { builtInSettings, builtInTarget, createEngineDatabase } from "../db/builtInDatabase.mjs";
|
|
3
|
+
import { createSqlAdapter } from "../database/sql/sqlAdapter.mjs";
|
|
4
|
+
import { checkSqlProvider } from "./sqlProviders.mjs";
|
|
5
|
+
import { generateDrizzleEngineSchema } from "../db/engineDrizzleSchema.mjs";
|
|
6
|
+
import { DrizzleTransactionUnsupportedError, SUPPORTED_DRIZZLE_DRIVERS, drizzleExecutor } from "./drizzleExecutor.mjs";
|
|
7
7
|
//#region src/adapters/drizzle.ts
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
recordInsights: async (input) => {
|
|
15
|
-
await recordDrizzleInsights(db.resolve === void 0 ? db : await db.resolve(), config.provider, input);
|
|
16
|
-
},
|
|
17
|
-
deleteChannel: (input) => {
|
|
18
|
-
if (transaction === void 0) throw new Error("Drizzle channel deletion requires transaction support.");
|
|
19
|
-
return transaction((transactionDatabase) => createDrizzleCrud(transactionDatabase, config.provider).deleteChannel(input));
|
|
20
|
-
},
|
|
21
|
-
...transaction ? { delete: (input) => transaction((transactionDatabase) => createDrizzleCrud(transactionDatabase, config.provider).delete(input)) } : {},
|
|
22
|
-
...transaction ? { transaction: async (callback) => transaction((transaction) => callback(createDrizzleCrud(transaction, config.provider))) } : {}
|
|
23
|
-
};
|
|
24
|
-
};
|
|
8
|
+
/**
|
|
9
|
+
* Hot Updater's database on a Drizzle instance: the storage engine through the
|
|
10
|
+
* shared SQL core, fenced by the schema settings. `db generate` writes the
|
|
11
|
+
* Drizzle schema drizzle-kit applies; `db migrate` then writes the settings
|
|
12
|
+
* rows the fence checks.
|
|
13
|
+
*/
|
|
25
14
|
const drizzleAdapter = (config) => {
|
|
26
|
-
|
|
27
|
-
const
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
findByScopeKey: (scopeKey) => getAdapter().models.releaseCatalogs.findByScopeKey(scopeKey),
|
|
47
|
-
findMany: (input) => getAdapter().models.releaseCatalogs.findMany(input)
|
|
48
|
-
},
|
|
49
|
-
channels: {
|
|
50
|
-
insert: (input) => getAdapter().models.channels.insert(input),
|
|
51
|
-
list: (input) => getAdapter().models.channels.list(input),
|
|
52
|
-
delete: (input) => getAdapter().models.channels.delete(input)
|
|
53
|
-
},
|
|
54
|
-
insights: {
|
|
55
|
-
recordEvent: (input) => getAdapter().models.insights.recordEvent(input),
|
|
56
|
-
listEvents: (input) => getAdapter().models.insights.listEvents(input),
|
|
57
|
-
findLatestEvents: (input) => getAdapter().models.insights.findLatestEvents(input),
|
|
58
|
-
countLatestEvents: (input) => getAdapter().models.insights.countLatestEvents(input),
|
|
59
|
-
countEvents: (input) => getAdapter().models.insights.countEvents(input)
|
|
60
|
-
},
|
|
61
|
-
apiKeys: {
|
|
62
|
-
create: (row) => getAdapter().models.apiKeys.create(row),
|
|
63
|
-
findByHash: (hash) => getAdapter().models.apiKeys.findByHash(hash),
|
|
64
|
-
list: () => getAdapter().models.apiKeys.list(),
|
|
65
|
-
revoke: (input) => getAdapter().models.apiKeys.revoke(input)
|
|
66
|
-
}
|
|
67
|
-
},
|
|
68
|
-
commit: (input) => getAdapter().commit(input)
|
|
69
|
-
});
|
|
70
|
-
return Object.assign(plugin, {
|
|
71
|
-
adapterName: "drizzle",
|
|
72
|
-
provider: config.provider,
|
|
73
|
-
generateSchema: (version) => ({
|
|
74
|
-
code: generateDrizzleSchema(config.provider, version === "latest" ? hotUpdaterSchema : getHotUpdaterSchemaVersion(version)),
|
|
75
|
-
path: "hot-updater-schema.ts"
|
|
15
|
+
const provider = checkSqlProvider("drizzleAdapter", config.provider);
|
|
16
|
+
const executor = drizzleExecutor(config.db, provider);
|
|
17
|
+
return {
|
|
18
|
+
...createEngineDatabase({
|
|
19
|
+
name: "drizzle",
|
|
20
|
+
adapter: createSqlAdapter({ executor })
|
|
21
|
+
}),
|
|
22
|
+
provider,
|
|
23
|
+
generateSchema: ((version, _name, { schema } = builtInTarget) => {
|
|
24
|
+
if (version !== "latest" && version !== builtInSettings["schema.core"]) throw new Error(`Invalid version ${version}`);
|
|
25
|
+
return {
|
|
26
|
+
code: generateDrizzleEngineSchema(provider, schema),
|
|
27
|
+
path: "hot-updater-schema.ts"
|
|
28
|
+
};
|
|
29
|
+
}),
|
|
30
|
+
createMigrator: ({ settings } = builtInTarget) => createSettingsMigrator({
|
|
31
|
+
adapterName: "drizzle",
|
|
32
|
+
executor,
|
|
33
|
+
settings,
|
|
34
|
+
applyTables: "`drizzle-kit push` (or your drizzle-kit migrations)"
|
|
76
35
|
})
|
|
77
|
-
}
|
|
36
|
+
};
|
|
78
37
|
};
|
|
79
38
|
//#endregion
|
|
80
|
-
export { drizzleAdapter };
|
|
39
|
+
export { DrizzleTransactionUnsupportedError, SUPPORTED_DRIZZLE_DRIVERS, drizzleAdapter };
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
let drizzle_orm = require("drizzle-orm");
|
|
2
|
+
//#region src/adapters/drizzleExecutor.ts
|
|
3
|
+
const SUPPORTED_DRIZZLE_DRIVERS = "node-postgres, postgres-js, PGlite, or Neon over WebSockets for PostgreSQL; mysql2 for MySQL; libSQL, better-sqlite3, or bun:sqlite for SQLite";
|
|
4
|
+
var DrizzleTransactionUnsupportedError = class extends Error {
|
|
5
|
+
name = "DrizzleTransactionUnsupportedError";
|
|
6
|
+
constructor(cause) {
|
|
7
|
+
super(`This Drizzle driver cannot run interactive transactions, which Hot Updater needs. Use ${SUPPORTED_DRIZZLE_DRIVERS}.`, { cause });
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
/** The SQL core's statement as Drizzle SQL, each placeholder bound as a parameter. */
|
|
11
|
+
const toSql = (dialect, { sql: text, params }) => {
|
|
12
|
+
const pattern = dialect === "postgresql" ? /\$(\d+)/gu : /\?/gu;
|
|
13
|
+
const chunks = [];
|
|
14
|
+
let last = 0;
|
|
15
|
+
let next = 0;
|
|
16
|
+
for (const match of text.matchAll(pattern)) {
|
|
17
|
+
chunks.push(drizzle_orm.sql.raw(text.slice(last, match.index)));
|
|
18
|
+
const position = dialect === "postgresql" ? Number(match[1]) - 1 : next++;
|
|
19
|
+
chunks.push(drizzle_orm.sql`${drizzle_orm.sql.param(params[position])}`);
|
|
20
|
+
last = match.index + match[0].length;
|
|
21
|
+
}
|
|
22
|
+
chunks.push(drizzle_orm.sql.raw(text.slice(last)));
|
|
23
|
+
return drizzle_orm.sql.join(chunks);
|
|
24
|
+
};
|
|
25
|
+
const over = (dialect, runner) => ({ async execute(statement) {
|
|
26
|
+
const query = toSql(dialect, statement);
|
|
27
|
+
if (dialect === "sqlite") return /^\s*SELECT\b/iu.test(statement.sql) ? {
|
|
28
|
+
rows: await runner.all(query),
|
|
29
|
+
changes: 0
|
|
30
|
+
} : {
|
|
31
|
+
rows: [],
|
|
32
|
+
changes: changesOf(await runner.run(query))
|
|
33
|
+
};
|
|
34
|
+
const result = await runner.execute(query);
|
|
35
|
+
const value = dialect === "mysql" && Array.isArray(result) ? result[0] : result;
|
|
36
|
+
return {
|
|
37
|
+
rows: Array.isArray(value) ? value : value.rows ?? [],
|
|
38
|
+
changes: Array.isArray(value) && dialect === "mysql" ? 0 : changesOf(value)
|
|
39
|
+
};
|
|
40
|
+
} });
|
|
41
|
+
const changesOf = (result) => {
|
|
42
|
+
const record = result ?? {};
|
|
43
|
+
const meta = record.meta;
|
|
44
|
+
return Number(record.rowCount ?? record.affectedRows ?? record.rowsAffected ?? record.changes ?? record.count ?? meta?.changes ?? 0);
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* The SQL core's executor over a Drizzle database, or a function that
|
|
48
|
+
* returns one. Async drivers run Drizzle's transactions; sync SQLite drivers
|
|
49
|
+
* run one statement at a time, beginning transactions with BEGIN IMMEDIATE.
|
|
50
|
+
* First use checks that the driver can run a transaction at all.
|
|
51
|
+
*/
|
|
52
|
+
const drizzleExecutor = (source, dialect) => {
|
|
53
|
+
const isSync = (runner) => dialect === "sqlite" && runner.resultKind === "sync";
|
|
54
|
+
let ready;
|
|
55
|
+
const resolve = () => {
|
|
56
|
+
ready ??= (async () => {
|
|
57
|
+
const runner = await (typeof source === "function" ? source() : source);
|
|
58
|
+
if (isSync(runner)) return runner;
|
|
59
|
+
let started = false;
|
|
60
|
+
try {
|
|
61
|
+
if (typeof runner.transaction !== "function") throw new TypeError("The Drizzle database has no transaction().");
|
|
62
|
+
await runner.transaction(async () => {
|
|
63
|
+
started = true;
|
|
64
|
+
});
|
|
65
|
+
} catch (error) {
|
|
66
|
+
if (!started) throw new DrizzleTransactionUnsupportedError(error);
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
69
|
+
return runner;
|
|
70
|
+
})();
|
|
71
|
+
ready.catch(() => {
|
|
72
|
+
ready = void 0;
|
|
73
|
+
});
|
|
74
|
+
return ready;
|
|
75
|
+
};
|
|
76
|
+
let queue = Promise.resolve();
|
|
77
|
+
const serial = (task) => {
|
|
78
|
+
const result = queue.then(task);
|
|
79
|
+
queue = result.catch(() => void 0);
|
|
80
|
+
return result;
|
|
81
|
+
};
|
|
82
|
+
return {
|
|
83
|
+
dialect,
|
|
84
|
+
async execute(statement) {
|
|
85
|
+
const runner = await resolve();
|
|
86
|
+
const run = () => over(dialect, runner).execute(statement);
|
|
87
|
+
return isSync(runner) ? serial(run) : run();
|
|
88
|
+
},
|
|
89
|
+
async transaction(fn) {
|
|
90
|
+
const runner = await resolve();
|
|
91
|
+
if (!isSync(runner)) return await runner.transaction((tx) => fn(over(dialect, tx)));
|
|
92
|
+
return serial(async () => {
|
|
93
|
+
const connection = over(dialect, runner);
|
|
94
|
+
const raw = (text) => connection.execute({
|
|
95
|
+
sql: text,
|
|
96
|
+
params: []
|
|
97
|
+
});
|
|
98
|
+
await raw("BEGIN IMMEDIATE");
|
|
99
|
+
try {
|
|
100
|
+
const result = await fn(connection);
|
|
101
|
+
await raw("COMMIT");
|
|
102
|
+
return result;
|
|
103
|
+
} catch (error) {
|
|
104
|
+
await raw("ROLLBACK").catch(() => void 0);
|
|
105
|
+
throw error;
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
};
|
|
111
|
+
//#endregion
|
|
112
|
+
exports.DrizzleTransactionUnsupportedError = DrizzleTransactionUnsupportedError;
|
|
113
|
+
exports.SUPPORTED_DRIZZLE_DRIVERS = SUPPORTED_DRIZZLE_DRIVERS;
|
|
114
|
+
exports.drizzleExecutor = drizzleExecutor;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import "../database/sql/sqlAdapter.cjs";
|
|
2
|
+
//#region src/adapters/drizzleExecutor.d.ts
|
|
3
|
+
declare const SUPPORTED_DRIZZLE_DRIVERS = "node-postgres, postgres-js, PGlite, or Neon over WebSockets for PostgreSQL; mysql2 for MySQL; libSQL, better-sqlite3, or bun:sqlite for SQLite";
|
|
4
|
+
declare class DrizzleTransactionUnsupportedError extends Error {
|
|
5
|
+
readonly name = "DrizzleTransactionUnsupportedError";
|
|
6
|
+
constructor(cause: unknown);
|
|
7
|
+
}
|
|
8
|
+
//#endregion
|
|
9
|
+
export { DrizzleTransactionUnsupportedError, SUPPORTED_DRIZZLE_DRIVERS };
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import "../database/sql/sqlAdapter.mjs";
|
|
2
|
+
//#region src/adapters/drizzleExecutor.d.ts
|
|
3
|
+
declare const SUPPORTED_DRIZZLE_DRIVERS = "node-postgres, postgres-js, PGlite, or Neon over WebSockets for PostgreSQL; mysql2 for MySQL; libSQL, better-sqlite3, or bun:sqlite for SQLite";
|
|
4
|
+
declare class DrizzleTransactionUnsupportedError extends Error {
|
|
5
|
+
readonly name = "DrizzleTransactionUnsupportedError";
|
|
6
|
+
constructor(cause: unknown);
|
|
7
|
+
}
|
|
8
|
+
//#endregion
|
|
9
|
+
export { DrizzleTransactionUnsupportedError, SUPPORTED_DRIZZLE_DRIVERS };
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { sql } from "drizzle-orm";
|
|
2
|
+
//#region src/adapters/drizzleExecutor.ts
|
|
3
|
+
const SUPPORTED_DRIZZLE_DRIVERS = "node-postgres, postgres-js, PGlite, or Neon over WebSockets for PostgreSQL; mysql2 for MySQL; libSQL, better-sqlite3, or bun:sqlite for SQLite";
|
|
4
|
+
var DrizzleTransactionUnsupportedError = class extends Error {
|
|
5
|
+
name = "DrizzleTransactionUnsupportedError";
|
|
6
|
+
constructor(cause) {
|
|
7
|
+
super(`This Drizzle driver cannot run interactive transactions, which Hot Updater needs. Use ${SUPPORTED_DRIZZLE_DRIVERS}.`, { cause });
|
|
8
|
+
}
|
|
9
|
+
};
|
|
10
|
+
/** The SQL core's statement as Drizzle SQL, each placeholder bound as a parameter. */
|
|
11
|
+
const toSql = (dialect, { sql: text, params }) => {
|
|
12
|
+
const pattern = dialect === "postgresql" ? /\$(\d+)/gu : /\?/gu;
|
|
13
|
+
const chunks = [];
|
|
14
|
+
let last = 0;
|
|
15
|
+
let next = 0;
|
|
16
|
+
for (const match of text.matchAll(pattern)) {
|
|
17
|
+
chunks.push(sql.raw(text.slice(last, match.index)));
|
|
18
|
+
const position = dialect === "postgresql" ? Number(match[1]) - 1 : next++;
|
|
19
|
+
chunks.push(sql`${sql.param(params[position])}`);
|
|
20
|
+
last = match.index + match[0].length;
|
|
21
|
+
}
|
|
22
|
+
chunks.push(sql.raw(text.slice(last)));
|
|
23
|
+
return sql.join(chunks);
|
|
24
|
+
};
|
|
25
|
+
const over = (dialect, runner) => ({ async execute(statement) {
|
|
26
|
+
const query = toSql(dialect, statement);
|
|
27
|
+
if (dialect === "sqlite") return /^\s*SELECT\b/iu.test(statement.sql) ? {
|
|
28
|
+
rows: await runner.all(query),
|
|
29
|
+
changes: 0
|
|
30
|
+
} : {
|
|
31
|
+
rows: [],
|
|
32
|
+
changes: changesOf(await runner.run(query))
|
|
33
|
+
};
|
|
34
|
+
const result = await runner.execute(query);
|
|
35
|
+
const value = dialect === "mysql" && Array.isArray(result) ? result[0] : result;
|
|
36
|
+
return {
|
|
37
|
+
rows: Array.isArray(value) ? value : value.rows ?? [],
|
|
38
|
+
changes: Array.isArray(value) && dialect === "mysql" ? 0 : changesOf(value)
|
|
39
|
+
};
|
|
40
|
+
} });
|
|
41
|
+
const changesOf = (result) => {
|
|
42
|
+
const record = result ?? {};
|
|
43
|
+
const meta = record.meta;
|
|
44
|
+
return Number(record.rowCount ?? record.affectedRows ?? record.rowsAffected ?? record.changes ?? record.count ?? meta?.changes ?? 0);
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* The SQL core's executor over a Drizzle database, or a function that
|
|
48
|
+
* returns one. Async drivers run Drizzle's transactions; sync SQLite drivers
|
|
49
|
+
* run one statement at a time, beginning transactions with BEGIN IMMEDIATE.
|
|
50
|
+
* First use checks that the driver can run a transaction at all.
|
|
51
|
+
*/
|
|
52
|
+
const drizzleExecutor = (source, dialect) => {
|
|
53
|
+
const isSync = (runner) => dialect === "sqlite" && runner.resultKind === "sync";
|
|
54
|
+
let ready;
|
|
55
|
+
const resolve = () => {
|
|
56
|
+
ready ??= (async () => {
|
|
57
|
+
const runner = await (typeof source === "function" ? source() : source);
|
|
58
|
+
if (isSync(runner)) return runner;
|
|
59
|
+
let started = false;
|
|
60
|
+
try {
|
|
61
|
+
if (typeof runner.transaction !== "function") throw new TypeError("The Drizzle database has no transaction().");
|
|
62
|
+
await runner.transaction(async () => {
|
|
63
|
+
started = true;
|
|
64
|
+
});
|
|
65
|
+
} catch (error) {
|
|
66
|
+
if (!started) throw new DrizzleTransactionUnsupportedError(error);
|
|
67
|
+
throw error;
|
|
68
|
+
}
|
|
69
|
+
return runner;
|
|
70
|
+
})();
|
|
71
|
+
ready.catch(() => {
|
|
72
|
+
ready = void 0;
|
|
73
|
+
});
|
|
74
|
+
return ready;
|
|
75
|
+
};
|
|
76
|
+
let queue = Promise.resolve();
|
|
77
|
+
const serial = (task) => {
|
|
78
|
+
const result = queue.then(task);
|
|
79
|
+
queue = result.catch(() => void 0);
|
|
80
|
+
return result;
|
|
81
|
+
};
|
|
82
|
+
return {
|
|
83
|
+
dialect,
|
|
84
|
+
async execute(statement) {
|
|
85
|
+
const runner = await resolve();
|
|
86
|
+
const run = () => over(dialect, runner).execute(statement);
|
|
87
|
+
return isSync(runner) ? serial(run) : run();
|
|
88
|
+
},
|
|
89
|
+
async transaction(fn) {
|
|
90
|
+
const runner = await resolve();
|
|
91
|
+
if (!isSync(runner)) return await runner.transaction((tx) => fn(over(dialect, tx)));
|
|
92
|
+
return serial(async () => {
|
|
93
|
+
const connection = over(dialect, runner);
|
|
94
|
+
const raw = (text) => connection.execute({
|
|
95
|
+
sql: text,
|
|
96
|
+
params: []
|
|
97
|
+
});
|
|
98
|
+
await raw("BEGIN IMMEDIATE");
|
|
99
|
+
try {
|
|
100
|
+
const result = await fn(connection);
|
|
101
|
+
await raw("COMMIT");
|
|
102
|
+
return result;
|
|
103
|
+
} catch (error) {
|
|
104
|
+
await raw("ROLLBACK").catch(() => void 0);
|
|
105
|
+
throw error;
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
};
|
|
110
|
+
};
|
|
111
|
+
//#endregion
|
|
112
|
+
export { DrizzleTransactionUnsupportedError, SUPPORTED_DRIZZLE_DRIVERS, drizzleExecutor };
|
package/dist/adapters/kysely.cjs
CHANGED
|
@@ -1,38 +1,32 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const
|
|
3
|
-
const
|
|
4
|
-
|
|
5
|
-
|
|
2
|
+
const require_builtInDatabase = require("../db/builtInDatabase.cjs");
|
|
3
|
+
const require_sqlAdapter = require("../database/sql/sqlAdapter.cjs");
|
|
4
|
+
const require_engineSqlMigrator = require("../db/engineSqlMigrator.cjs");
|
|
5
|
+
const require_kyselyExecutor = require("./kyselyExecutor.cjs");
|
|
6
|
+
const require_sqlProviders = require("./sqlProviders.cjs");
|
|
6
7
|
//#region src/adapters/kysely.ts
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
recordInsights: (input) => db.transaction().execute((transaction) => require_kyselyCrud.recordKyselyInsights(transaction, config.provider, input)),
|
|
13
|
-
deleteChannel: (input) => db.transaction().execute((transaction) => require_kyselyCrud.createKyselyCrud(transaction, config.provider, relationMode).deleteChannel(input)),
|
|
14
|
-
create: (input) => db.transaction().execute((transaction) => require_kyselyCrud.createKyselyCrud(transaction, config.provider, relationMode).create(input)),
|
|
15
|
-
update: (input) => db.transaction().execute((transaction) => require_kyselyCrud.createKyselyCrud(transaction, config.provider, relationMode).update(input)),
|
|
16
|
-
delete: (input) => db.transaction().execute((transaction) => require_kyselyCrud.createKyselyCrud(transaction, config.provider, relationMode).delete(input)),
|
|
17
|
-
transaction: (callback) => db.transaction().execute((transaction) => callback(require_kyselyCrud.createKyselyCrud(transaction, config.provider, relationMode)))
|
|
18
|
-
};
|
|
19
|
-
};
|
|
8
|
+
/**
|
|
9
|
+
* Hot Updater's database on a Kysely instance: the storage engine through the
|
|
10
|
+
* shared SQL core, fenced by the schema settings. `db migrate` and
|
|
11
|
+
* `db generate --sql` apply the engine's SQL schema.
|
|
12
|
+
*/
|
|
20
13
|
const kyselyAdapter = (config) => {
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
14
|
+
const provider = require_sqlProviders.checkSqlProvider("kyselyAdapter", config.provider);
|
|
15
|
+
const executor = require_kyselyExecutor.kyselyExecutor(config.db, provider);
|
|
16
|
+
return {
|
|
17
|
+
...require_builtInDatabase.createEngineDatabase({
|
|
18
|
+
name: "kysely",
|
|
19
|
+
adapter: require_sqlAdapter.createSqlAdapter({ executor })
|
|
20
|
+
}),
|
|
21
|
+
provider,
|
|
22
|
+
createMigrator: ({ schema, settings } = require_builtInDatabase.builtInTarget) => require_engineSqlMigrator.createEngineSqlMigrator({
|
|
23
|
+
adapterName: "kysely",
|
|
24
|
+
executor,
|
|
25
|
+
schema,
|
|
26
|
+
settings
|
|
34
27
|
})
|
|
35
|
-
}
|
|
28
|
+
};
|
|
36
29
|
};
|
|
37
30
|
//#endregion
|
|
38
31
|
exports.kyselyAdapter = kyselyAdapter;
|
|
32
|
+
exports.kyselyExecutor = require_kyselyExecutor.kyselyExecutor;
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ORMSQLProvider, ToolingDatabase } from "../db/types.cjs";
|
|
2
|
+
import { kyselyExecutor } from "./kyselyExecutor.cjs";
|
|
2
3
|
import { Kysely } from "kysely";
|
|
3
4
|
//#region src/adapters/kysely.d.ts
|
|
4
|
-
type KyselySQLProvider = Exclude<ORMSQLProvider, "mssql">;
|
|
5
5
|
interface KyselyAdapterConfig<TDatabase extends object = object> {
|
|
6
6
|
readonly db: Kysely<TDatabase>;
|
|
7
|
-
readonly provider:
|
|
8
|
-
readonly relationMode?: RelationMode;
|
|
7
|
+
readonly provider: ORMSQLProvider;
|
|
9
8
|
}
|
|
10
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Hot Updater's database on a Kysely instance: the storage engine through the
|
|
11
|
+
* shared SQL core, fenced by the schema settings. `db migrate` and
|
|
12
|
+
* `db generate --sql` apply the engine's SQL schema.
|
|
13
|
+
*/
|
|
14
|
+
declare const kyselyAdapter: <TDatabase extends object>(config: KyselyAdapterConfig<TDatabase>) => ToolingDatabase;
|
|
11
15
|
//#endregion
|
|
12
|
-
export { KyselyAdapterConfig, type
|
|
16
|
+
export { KyselyAdapterConfig, type ORMSQLProvider as SQLProvider, kyselyAdapter, kyselyExecutor };
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ORMSQLProvider, ToolingDatabase } from "../db/types.mjs";
|
|
2
|
+
import { kyselyExecutor } from "./kyselyExecutor.mjs";
|
|
2
3
|
import { Kysely } from "kysely";
|
|
3
4
|
//#region src/adapters/kysely.d.ts
|
|
4
|
-
type KyselySQLProvider = Exclude<ORMSQLProvider, "mssql">;
|
|
5
5
|
interface KyselyAdapterConfig<TDatabase extends object = object> {
|
|
6
6
|
readonly db: Kysely<TDatabase>;
|
|
7
|
-
readonly provider:
|
|
8
|
-
readonly relationMode?: RelationMode;
|
|
7
|
+
readonly provider: ORMSQLProvider;
|
|
9
8
|
}
|
|
10
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Hot Updater's database on a Kysely instance: the storage engine through the
|
|
11
|
+
* shared SQL core, fenced by the schema settings. `db migrate` and
|
|
12
|
+
* `db generate --sql` apply the engine's SQL schema.
|
|
13
|
+
*/
|
|
14
|
+
declare const kyselyAdapter: <TDatabase extends object>(config: KyselyAdapterConfig<TDatabase>) => ToolingDatabase;
|
|
11
15
|
//#endregion
|
|
12
|
-
export { KyselyAdapterConfig, type
|
|
16
|
+
export { KyselyAdapterConfig, type ORMSQLProvider as SQLProvider, kyselyAdapter, kyselyExecutor };
|