@hot-updater/server 1.0.0-rc.1 → 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/_virtual/_rolldown/runtime.cjs +1 -1
- package/dist/adapters/drizzle.cjs +35 -69
- package/dist/adapters/drizzle.d.cts +13 -6
- package/dist/adapters/drizzle.d.mts +13 -6
- package/dist/adapters/drizzle.mjs +34 -69
- 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 -7
- package/dist/adapters/kysely.d.mts +10 -7
- package/dist/adapters/kysely.mjs +25 -31
- 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 -27
- package/dist/adapters/mongodb.d.cts +10 -5
- package/dist/adapters/mongodb.d.mts +10 -5
- package/dist/adapters/mongodb.mjs +28 -27
- 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 -220
- package/dist/adapters/prisma.d.cts +12 -8
- package/dist/adapters/prisma.d.mts +12 -8
- package/dist/adapters/prisma.mjs +38 -219
- 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 +8 -8
- package/dist/apiKeys.d.cts +1 -24
- package/dist/apiKeys.d.mts +1 -24
- package/dist/apiKeys.mjs +5 -9
- 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 +61 -63
- package/dist/createHotUpdaterCore.d.cts +53 -45
- package/dist/createHotUpdaterCore.d.mts +53 -45
- package/dist/createHotUpdaterCore.mjs +61 -63
- 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 +6 -6
- package/dist/db/createBundleDiff.d.cts +4 -7
- package/dist/db/createBundleDiff.d.mts +4 -7
- 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 -4
- package/dist/db/index.d.mts +10 -4
- package/dist/db/index.mjs +16 -8
- package/dist/db/releaseCatalog.cjs +20 -44
- package/dist/db/releaseCatalog.d.cts +2 -3
- package/dist/db/releaseCatalog.d.mts +2 -3
- 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 +3 -12
- package/dist/db/types.d.cts +26 -69
- package/dist/db/types.d.mts +26 -69
- package/dist/db/types.mjs +2 -11
- package/dist/db/updateArtifacts.cjs +38 -68
- package/dist/db/updateArtifacts.mjs +40 -69
- package/dist/handler.cjs +72 -43
- package/dist/handler.d.cts +3 -6
- package/dist/handler.d.mts +3 -6
- 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 -14
- package/dist/handlerReleaseCatalogRoutes.mjs +11 -13
- package/dist/handlerTypes.d.cts +2 -56
- package/dist/handlerTypes.d.mts +2 -56
- package/dist/handlerVersionRoutes.cjs +20 -4
- package/dist/handlerVersionRoutes.d.cts +1 -0
- package/dist/handlerVersionRoutes.d.mts +1 -0
- package/dist/handlerVersionRoutes.mjs +20 -4
- package/dist/index.cjs +4 -7
- package/dist/index.d.cts +10 -9
- package/dist/index.d.mts +10 -9
- package/dist/index.mjs +4 -4
- package/dist/insights/domain.d.cts +53 -70
- package/dist/insights/domain.d.mts +53 -70
- package/dist/insights/errors.cjs +35 -8
- package/dist/insights/errors.mjs +35 -8
- package/dist/insights/eventInput.cjs +64 -24
- package/dist/insights/eventInput.mjs +63 -25
- package/dist/insights/provider.cjs +356 -0
- package/dist/insights/provider.d.cts +6 -0
- package/dist/insights/provider.d.mts +6 -0
- package/dist/insights/provider.mjs +355 -0
- package/dist/insights/queryInput.cjs +78 -43
- package/dist/insights/queryInput.mjs +76 -40
- package/dist/insights/routes.cjs +94 -34
- package/dist/insights/routes.mjs +93 -35
- package/dist/insights/types.d.cts +27 -12
- package/dist/insights/types.d.mts +27 -12
- package/dist/node.d.cts +1 -2
- package/dist/node.d.mts +1 -2
- 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/storageAccess.cjs +0 -1
- package/dist/types/index.d.cts +2 -29
- package/dist/types/index.d.mts +2 -29
- package/package.json +30 -7
- 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 +277 -208
- package/src/adapters/drizzle.ts +48 -128
- 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 +212 -117
- package/src/adapters/kysely.ts +32 -87
- package/src/adapters/kyselyExecutor.ts +53 -0
- package/src/adapters/mongodb.integration.spec.ts +180 -0
- package/src/adapters/mongodb.readBudgets.integration.spec.ts +61 -0
- package/src/adapters/mongodb.ts +36 -65
- 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 +226 -173
- package/src/adapters/prisma.ts +60 -451
- 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 -167
- 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 -824
- 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 -165
- 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 -412
- 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 +7 -14
- package/src/insights/domain.ts +56 -77
- package/src/insights/errors.spec.ts +48 -0
- package/src/insights/errors.ts +50 -6
- package/src/insights/eventInput.ts +80 -27
- package/src/insights/insights.integration.spec.ts +525 -44
- package/src/insights/provider.spec.ts +574 -0
- package/src/insights/provider.ts +667 -0
- package/src/insights/queryInput.ts +113 -73
- package/src/insights/routes.ts +125 -69
- package/src/insights/types.ts +47 -36
- 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 -23
- package/dist/adapters/databaseConstraintErrors.mjs +0 -21
- package/dist/adapters/databasePluginUtils.cjs +0 -117
- package/dist/adapters/databasePluginUtils.mjs +0 -106
- package/dist/adapters/drizzleCrud.cjs +0 -250
- package/dist/adapters/drizzleCrud.mjs +0 -249
- package/dist/adapters/drizzleLazyDB.cjs +0 -101
- package/dist/adapters/drizzleLazyDB.mjs +0 -101
- package/dist/adapters/drizzleQuery.cjs +0 -68
- package/dist/adapters/drizzleQuery.mjs +0 -67
- package/dist/adapters/kyselyCrud.cjs +0 -254
- package/dist/adapters/kyselyCrud.mjs +0 -253
- package/dist/adapters/kyselyQuery.cjs +0 -56
- package/dist/adapters/kyselyQuery.mjs +0 -55
- package/dist/adapters/mongodbCollections.cjs +0 -36
- package/dist/adapters/mongodbCollections.mjs +0 -30
- package/dist/adapters/mongodbQuery.cjs +0 -77
- package/dist/adapters/mongodbQuery.mjs +0 -70
- package/dist/adapters/mongodbReads.cjs +0 -148
- package/dist/adapters/mongodbReads.mjs +0 -147
- package/dist/adapters/mongodbWrites.cjs +0 -134
- package/dist/adapters/mongodbWrites.mjs +0 -133
- package/dist/adapters/prismaQuery.cjs +0 -58
- package/dist/adapters/prismaQuery.mjs +0 -56
- package/dist/adapters/prismaRows.cjs +0 -198
- package/dist/adapters/prismaRows.mjs +0 -188
- package/dist/db/databasePluginCore.cjs +0 -138
- 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 -319
- package/dist/db/fixedMigratorMongo.mjs +0 -319
- package/dist/db/mongoMigrationExecution.cjs +0 -11
- package/dist/db/mongoMigrationExecution.mjs +0 -11
- 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 -101
- 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 -256
- package/dist/db/schemaGenerators.mjs +0 -254
- package/dist/db/schemaReadiness.cjs +0 -24
- package/dist/db/schemaReadiness.d.cts +0 -8
- package/dist/db/schemaReadiness.d.mts +0 -8
- package/dist/db/schemaReadiness.mjs +0 -23
- package/dist/db/sqlMigrationExecution.cjs +0 -67
- package/dist/db/sqlMigrationExecution.mjs +0 -66
- package/dist/handlerBundleRoutes.cjs +0 -155
- package/dist/handlerBundleRoutes.mjs +0 -155
- package/dist/handlerReleaseManagementRoutes.cjs +0 -125
- package/dist/handlerReleaseManagementRoutes.mjs +0 -124
- package/dist/insights/bounded/activeOverview.cjs +0 -87
- package/dist/insights/bounded/activeOverview.mjs +0 -85
- package/dist/insights/bounded/installationSearch.cjs +0 -42
- package/dist/insights/bounded/installationSearch.mjs +0 -42
- package/dist/insights/bounded/persistence.cjs +0 -39
- package/dist/insights/bounded/persistence.mjs +0 -38
- package/dist/insights/bounded/provider.cjs +0 -170
- package/dist/insights/bounded/provider.d.cts +0 -7
- package/dist/insights/bounded/provider.d.mts +0 -7
- package/dist/insights/bounded/provider.mjs +0 -170
- package/dist/insights/bounded/scan.cjs +0 -144
- package/dist/insights/bounded/scan.mjs +0 -138
- package/dist/insights/persistence.d.cts +0 -6
- package/dist/insights/persistence.d.mts +0 -6
- package/dist/schema/dsl.cjs +0 -103
- package/dist/schema/dsl.mjs +0 -87
- package/dist/schema/index.cjs +0 -6
- 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 -364
- package/dist/schema/v1_0_0.mjs +0 -357
- package/src/adapters/databaseConstraintErrors.ts +0 -25
- package/src/adapters/databasePluginTestDatabase.ts +0 -106
- package/src/adapters/databasePluginUtils.spec.ts +0 -29
- package/src/adapters/databasePluginUtils.ts +0 -214
- package/src/adapters/drizzleCrud.ts +0 -419
- package/src/adapters/drizzleLazyDB.ts +0 -257
- package/src/adapters/drizzleQuery.ts +0 -164
- package/src/adapters/kyselyCrud.ts +0 -588
- package/src/adapters/kyselyQuery.ts +0 -128
- package/src/adapters/mongodb.spec.ts +0 -141
- package/src/adapters/mongodbCollections.ts +0 -62
- package/src/adapters/mongodbQuery.ts +0 -226
- package/src/adapters/mongodbReads.ts +0 -311
- package/src/adapters/mongodbRows.spec.ts +0 -64
- package/src/adapters/mongodbRows.ts +0 -118
- package/src/adapters/mongodbTestClient.ts +0 -342
- package/src/adapters/mongodbTestFilter.ts +0 -166
- package/src/adapters/mongodbWrites.ts +0 -260
- package/src/adapters/prismaQuery.ts +0 -129
- package/src/adapters/prismaRows.spec.ts +0 -98
- package/src/adapters/prismaRows.ts +0 -301
- package/src/adapters/prismaTestClient.ts +0 -396
- 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 -107
- package/src/db/fixedMigrator.spec.ts +0 -231
- package/src/db/fixedMigrator.ts +0 -147
- package/src/db/fixedMigratorMongo.spec.ts +0 -192
- 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/mongodb.ts +0 -40
- package/src/db/schema/registry.ts +0 -55
- package/src/db/schema/sql.ts +0 -241
- package/src/db/schema/sqlOperations.ts +0 -63
- package/src/db/schema/types.ts +0 -1
- package/src/db/schemaGenerators.ts +0 -466
- 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 -55
- package/src/handlerBundleRoutes.ts +0 -259
- package/src/handlerReleaseManagementRoutes.ts +0 -213
- package/src/insights/bounded/activeOverview.spec.ts +0 -189
- package/src/insights/bounded/activeOverview.ts +0 -148
- package/src/insights/bounded/installationSearch.spec.ts +0 -130
- package/src/insights/bounded/installationSearch.ts +0 -69
- package/src/insights/bounded/persistence.ts +0 -43
- package/src/insights/bounded/provider.spec.ts +0 -219
- package/src/insights/bounded/provider.ts +0 -229
- package/src/insights/bounded/scan.ts +0 -235
- package/src/insights/persistence.ts +0 -10
- 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 -146
- package/src/schema/v1_0_0.ts +0 -465
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
import { isChannelDeleteReferencedError, translateChannelDeleteError } from "./databaseConstraintErrors.mjs";
|
|
2
|
-
import { fromStoredBundleRow, fromStoredReleaseCatalogRow, fromStoredReleaseRow, toStoredBundleRow, toStoredBundleUpdate, toStoredReleaseRow, toStoredReleaseUpdate } from "./databasePluginUtils.mjs";
|
|
3
|
-
import { buildKyselyWhere } from "./kyselyQuery.mjs";
|
|
4
|
-
import { DatabasePluginInputError } from "@hot-updater/plugin-core";
|
|
5
|
-
import { sql } from "kysely";
|
|
6
|
-
//#region src/adapters/kyselyCrud.ts
|
|
7
|
-
var KyselyAdapterInvariantError = class extends Error {
|
|
8
|
-
name = "KyselyAdapterInvariantError";
|
|
9
|
-
constructor(reason) {
|
|
10
|
-
super(`Kysely plugin invariant failed: ${reason}`);
|
|
11
|
-
this.reason = reason;
|
|
12
|
-
}
|
|
13
|
-
};
|
|
14
|
-
const empty = sql``;
|
|
15
|
-
const lockClause = (provider, relationMode) => relationMode === "fumadb" && provider !== "sqlite" ? sql` for update` : empty;
|
|
16
|
-
const whereClause = (where) => where === void 0 ? empty : sql` where ${where}`;
|
|
17
|
-
const orderClause = (input) => {
|
|
18
|
-
const clauses = input?.orderBy;
|
|
19
|
-
if (clauses === void 0 || clauses.length === 0) return empty;
|
|
20
|
-
return sql` order by ${sql.join(clauses.map((clause) => {
|
|
21
|
-
const field = sql.ref(clause.field);
|
|
22
|
-
return sql`${(clause.nulls ?? (clause.direction === "asc" ? "last" : "first")) === "first" ? sql`${field} is null desc` : sql`${field} is null asc`}, ${clause.direction === "asc" ? sql`${field} asc` : sql`${field} desc`}`;
|
|
23
|
-
}), sql`, `)}`;
|
|
24
|
-
};
|
|
25
|
-
const insertRow = async (executor, table, row, provider, onConflict = void 0) => {
|
|
26
|
-
const entries = Object.entries(row);
|
|
27
|
-
const columns = sql.join(entries.map(([field]) => sql.ref(field)));
|
|
28
|
-
const values = sql.join(entries.map(([, value]) => value));
|
|
29
|
-
const result = onConflict === void 0 ? await sql`insert into ${sql.table(table)} (${columns}) values (${values})`.execute(executor) : provider === "mysql" ? await sql`insert ignore into ${sql.table(table)} (${columns}) values (${values})`.execute(executor) : provider === "sqlite" ? await sql`insert or ignore into ${sql.table(table)} (${columns}) values (${values})`.execute(executor) : await sql`insert into ${sql.table(table)} (${columns}) values (${values}) on conflict do nothing`.execute(executor);
|
|
30
|
-
return Number(result.numAffectedRows ?? 0) > 0;
|
|
31
|
-
};
|
|
32
|
-
const updateBundle = async (executor, id, update) => {
|
|
33
|
-
const assignments = Object.entries(update).filter(([, value]) => value !== void 0).map(([field, value]) => sql`${sql.ref(field)} = ${value}`);
|
|
34
|
-
if (assignments.length === 0) return;
|
|
35
|
-
await sql`update ${sql.table("bundles")} set ${sql.join(assignments)} where ${sql.ref("id")} = ${id}`.execute(executor);
|
|
36
|
-
};
|
|
37
|
-
const updateApiKey = async (executor, id, revokedAtMs) => {
|
|
38
|
-
await sql`update ${sql.table("api_keys")} set ${sql.ref("revoked_at_ms")} = ${revokedAtMs} where ${sql.ref("id")} = ${id}`.execute(executor);
|
|
39
|
-
};
|
|
40
|
-
const updateRow = async (executor, table, keyField, key, update) => {
|
|
41
|
-
const assignments = Object.entries(update).filter(([, value]) => value !== void 0).map(([field, value]) => sql`${sql.ref(field)} = ${value}`);
|
|
42
|
-
if (assignments.length === 0) return;
|
|
43
|
-
await sql`update ${sql.table(table)} set ${sql.join(assignments)} where ${sql.ref(keyField)} = ${key}`.execute(executor);
|
|
44
|
-
};
|
|
45
|
-
const assertBundleReferences = async (executor, provider, relationMode, bundleId, baseBundleId) => {
|
|
46
|
-
const ids = [...new Set([bundleId, baseBundleId])].sort((left, right) => left.localeCompare(right));
|
|
47
|
-
const result = await sql`select ${sql.ref("id")} from ${sql.table("bundles")} where ${sql.ref("id")} in (${sql.join(ids)}) order by ${sql.ref("id")}${lockClause(provider, relationMode)}`.execute(executor);
|
|
48
|
-
const storedIds = new Set(result.rows.map(({ id }) => id));
|
|
49
|
-
if (!storedIds.has(bundleId)) throw new KyselyAdapterInvariantError("bundle_patches.bundle_id.foreign-key");
|
|
50
|
-
if (!storedIds.has(baseBundleId)) throw new KyselyAdapterInvariantError("bundle_patches.base_bundle_id.foreign-key");
|
|
51
|
-
};
|
|
52
|
-
const countRows = async (executor, table, where) => {
|
|
53
|
-
const result = await sql`select count(${sql.ref("id")}) as ${sql.ref("total")} from ${sql.table(table)}${whereClause(where)}`.execute(executor);
|
|
54
|
-
return Number(result.rows[0]?.total ?? 0);
|
|
55
|
-
};
|
|
56
|
-
const createKyselyCrud = (executor, provider, relationMode = "foreign-keys") => ({
|
|
57
|
-
async deleteChannel({ id }) {
|
|
58
|
-
if ((await sql`select ${sql.ref("id")}, ${sql.ref("name")} from ${sql.table("channels")} where ${sql.ref("id")} = ${id} limit 1${lockClause(provider, relationMode)}`.execute(executor)).rows[0] === void 0) return {
|
|
59
|
-
deleted: false,
|
|
60
|
-
reason: "not_found"
|
|
61
|
-
};
|
|
62
|
-
if (await countRows(executor, "releases", sql`${sql.ref("channel_id")} = ${id}`) > 0) return {
|
|
63
|
-
deleted: false,
|
|
64
|
-
reason: "not_empty"
|
|
65
|
-
};
|
|
66
|
-
try {
|
|
67
|
-
await sql`delete from ${sql.table("channels")} where ${sql.ref("id")} = ${id}`.execute(executor);
|
|
68
|
-
} catch (error) {
|
|
69
|
-
if (isChannelDeleteReferencedError(error)) return {
|
|
70
|
-
deleted: false,
|
|
71
|
-
reason: "not_empty"
|
|
72
|
-
};
|
|
73
|
-
throw error;
|
|
74
|
-
}
|
|
75
|
-
return { deleted: true };
|
|
76
|
-
},
|
|
77
|
-
async insertChannel(input) {
|
|
78
|
-
const inserted = await insertRow(executor, "channels", input.row, provider, "ignore");
|
|
79
|
-
const row = (await sql`select ${sql.ref("id")}, ${sql.ref("name")} from ${sql.table("channels")} where ${sql.ref("name")} = ${input.row.name} limit 1`.execute(executor)).rows[0];
|
|
80
|
-
if (row === void 0) throw new KyselyAdapterInvariantError("channels.insert.return-existing");
|
|
81
|
-
return {
|
|
82
|
-
row,
|
|
83
|
-
inserted
|
|
84
|
-
};
|
|
85
|
-
},
|
|
86
|
-
async create(input) {
|
|
87
|
-
switch (input.model) {
|
|
88
|
-
case "bundles":
|
|
89
|
-
await insertRow(executor, "bundles", toStoredBundleRow(input.data, provider), provider);
|
|
90
|
-
return input.data;
|
|
91
|
-
case "bundle_patches":
|
|
92
|
-
await assertBundleReferences(executor, provider, relationMode, input.data.bundle_id, input.data.base_bundle_id);
|
|
93
|
-
await insertRow(executor, "bundle_patches", input.data, provider);
|
|
94
|
-
return input.data;
|
|
95
|
-
case "bundle_events":
|
|
96
|
-
await insertRow(executor, "bundle_events", input.data, provider);
|
|
97
|
-
return input.data;
|
|
98
|
-
case "releases":
|
|
99
|
-
await insertRow(executor, "releases", toStoredReleaseRow(input.data, provider), provider);
|
|
100
|
-
return input.data;
|
|
101
|
-
case "release_catalogs":
|
|
102
|
-
await insertRow(executor, "release_catalogs", input.data, provider);
|
|
103
|
-
return input.data;
|
|
104
|
-
case "api_keys":
|
|
105
|
-
await insertRow(executor, "api_keys", input.data, provider, input.onConflict);
|
|
106
|
-
return input.data;
|
|
107
|
-
case "channels":
|
|
108
|
-
await insertRow(executor, "channels", input.data, provider, input.onConflict);
|
|
109
|
-
return input.data;
|
|
110
|
-
}
|
|
111
|
-
},
|
|
112
|
-
async update(input) {
|
|
113
|
-
const selector = input.where[0];
|
|
114
|
-
if (selector === void 0 || typeof selector.value !== "string") throw new KyselyAdapterInvariantError(`${input.model}.update.selector`);
|
|
115
|
-
if (input.model === "api_keys") {
|
|
116
|
-
await updateApiKey(executor, selector.value, input.update.revoked_at_ms);
|
|
117
|
-
return (await sql`select * from ${sql.table("api_keys")} where ${sql.ref("id")} = ${selector.value} limit 1`.execute(executor)).rows[0] ?? null;
|
|
118
|
-
}
|
|
119
|
-
if (input.model === "releases") {
|
|
120
|
-
await updateRow(executor, "releases", "id", selector.value, toStoredReleaseUpdate(input.update, provider));
|
|
121
|
-
const row = (await sql`select * from ${sql.table("releases")} where ${sql.ref("id")} = ${selector.value} limit 1`.execute(executor)).rows[0];
|
|
122
|
-
return row === void 0 ? null : fromStoredReleaseRow(row);
|
|
123
|
-
}
|
|
124
|
-
if (input.model === "release_catalogs") {
|
|
125
|
-
await updateRow(executor, "release_catalogs", "scope_key", selector.value, input.update);
|
|
126
|
-
const row = (await sql`select * from ${sql.table("release_catalogs")} where ${sql.ref("scope_key")} = ${selector.value} limit 1`.execute(executor)).rows[0];
|
|
127
|
-
return row === void 0 ? null : fromStoredReleaseCatalogRow(row);
|
|
128
|
-
}
|
|
129
|
-
await updateBundle(executor, selector.value, toStoredBundleUpdate(input.update, provider));
|
|
130
|
-
const stored = (await sql`select * from ${sql.table("bundles")} where ${sql.ref("id")} = ${selector.value} limit 1`.execute(executor)).rows[0];
|
|
131
|
-
if (stored === void 0) return null;
|
|
132
|
-
return fromStoredBundleRow(stored);
|
|
133
|
-
},
|
|
134
|
-
async delete(input) {
|
|
135
|
-
switch (input.model) {
|
|
136
|
-
case "bundles": {
|
|
137
|
-
const where = buildKyselyWhere(provider, input.where);
|
|
138
|
-
if (where === void 0) throw new KyselyAdapterInvariantError("bundles.delete.where");
|
|
139
|
-
if (relationMode === "fumadb") {
|
|
140
|
-
const bundleIds = (await sql`select ${sql.ref("id")} from ${sql.table("bundles")} where ${where} order by ${sql.ref("id")}${lockClause(provider, relationMode)}`.execute(executor)).rows.map(({ id }) => id);
|
|
141
|
-
if (bundleIds.length === 0) return;
|
|
142
|
-
await sql`delete from ${sql.table("bundle_patches")} where ${sql.ref("bundle_id")} in (${sql.join(bundleIds)}) or ${sql.ref("base_bundle_id")} in (${sql.join(bundleIds)})`.execute(executor);
|
|
143
|
-
}
|
|
144
|
-
await sql`delete from ${sql.table("bundles")} where ${where}`.execute(executor);
|
|
145
|
-
return;
|
|
146
|
-
}
|
|
147
|
-
case "bundle_patches": {
|
|
148
|
-
const where = buildKyselyWhere(provider, input.where);
|
|
149
|
-
if (where === void 0) throw new KyselyAdapterInvariantError("bundle_patches.delete.where");
|
|
150
|
-
await sql`delete from ${sql.table("bundle_patches")} where ${where}`.execute(executor);
|
|
151
|
-
return;
|
|
152
|
-
}
|
|
153
|
-
case "releases": {
|
|
154
|
-
const where = buildKyselyWhere(provider, input.where);
|
|
155
|
-
if (where === void 0) throw new KyselyAdapterInvariantError("releases.delete.where");
|
|
156
|
-
await sql`delete from ${sql.table("releases")} where ${where}`.execute(executor);
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
case "channels": {
|
|
160
|
-
const where = buildKyselyWhere(provider, input.where);
|
|
161
|
-
if (where === void 0) throw new KyselyAdapterInvariantError("channels.delete.where");
|
|
162
|
-
try {
|
|
163
|
-
await sql`delete from ${sql.table("channels")} where ${where}`.execute(executor);
|
|
164
|
-
} catch (error) {
|
|
165
|
-
translateChannelDeleteError(error);
|
|
166
|
-
}
|
|
167
|
-
return;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
},
|
|
171
|
-
async count(input) {
|
|
172
|
-
if (input.distinct !== void 0) throw new DatabasePluginInputError("invalid-operation");
|
|
173
|
-
switch (input.model) {
|
|
174
|
-
case "bundles": return countRows(executor, "bundles", buildKyselyWhere(provider, input.where));
|
|
175
|
-
case "bundle_patches": return countRows(executor, "bundle_patches", buildKyselyWhere(provider, input.where));
|
|
176
|
-
case "releases": return countRows(executor, "releases", buildKyselyWhere(provider, input.where));
|
|
177
|
-
}
|
|
178
|
-
},
|
|
179
|
-
async findOne(input) {
|
|
180
|
-
switch (input.model) {
|
|
181
|
-
case "bundles": {
|
|
182
|
-
const where = whereClause(buildKyselyWhere(provider, input.where));
|
|
183
|
-
const row = (await sql`select * from ${sql.table("bundles")}${where} limit 1`.execute(executor)).rows[0];
|
|
184
|
-
return row === void 0 ? null : fromStoredBundleRow(row);
|
|
185
|
-
}
|
|
186
|
-
case "bundle_patches": {
|
|
187
|
-
const where = whereClause(buildKyselyWhere(provider, input.where));
|
|
188
|
-
return (await sql`select * from ${sql.table("bundle_patches")}${where} limit 1`.execute(executor)).rows[0] ?? null;
|
|
189
|
-
}
|
|
190
|
-
case "api_keys": {
|
|
191
|
-
const where = whereClause(buildKyselyWhere(provider, input.where));
|
|
192
|
-
return (await sql`select * from ${sql.table("api_keys")}${where} limit 1`.execute(executor)).rows[0] ?? null;
|
|
193
|
-
}
|
|
194
|
-
case "channels": {
|
|
195
|
-
const where = whereClause(buildKyselyWhere(provider, input.where));
|
|
196
|
-
return (await sql`select * from ${sql.table("channels")}${where} limit 1`.execute(executor)).rows[0] ?? null;
|
|
197
|
-
}
|
|
198
|
-
case "releases": {
|
|
199
|
-
const where = whereClause(buildKyselyWhere(provider, input.where));
|
|
200
|
-
const row = (await sql`select * from ${sql.table("releases")}${where} limit 1`.execute(executor)).rows[0];
|
|
201
|
-
return row === void 0 ? null : fromStoredReleaseRow(row);
|
|
202
|
-
}
|
|
203
|
-
case "release_catalogs": {
|
|
204
|
-
const where = whereClause(buildKyselyWhere(provider, input.where));
|
|
205
|
-
const row = (await sql`select * from ${sql.table("release_catalogs")}${where} limit 1`.execute(executor)).rows[0];
|
|
206
|
-
return row === void 0 ? null : fromStoredReleaseCatalogRow(row);
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
},
|
|
210
|
-
async findMany(input) {
|
|
211
|
-
if (input.distinctOn !== void 0) throw new DatabasePluginInputError("invalid-operation");
|
|
212
|
-
const pagination = sql` limit ${input.limit} offset ${input.offset}`;
|
|
213
|
-
switch (input.model) {
|
|
214
|
-
case "bundles": {
|
|
215
|
-
const where = whereClause(buildKyselyWhere(provider, input.where));
|
|
216
|
-
const order = orderClause(input);
|
|
217
|
-
return (await sql`select * from ${sql.table("bundles")}${where}${order}${pagination}`.execute(executor)).rows.map(fromStoredBundleRow);
|
|
218
|
-
}
|
|
219
|
-
case "bundle_patches": {
|
|
220
|
-
const where = whereClause(buildKyselyWhere(provider, input.where));
|
|
221
|
-
const order = orderClause(input);
|
|
222
|
-
return [...(await sql`select * from ${sql.table("bundle_patches")}${where}${order}${pagination}`.execute(executor)).rows];
|
|
223
|
-
}
|
|
224
|
-
case "bundle_events": {
|
|
225
|
-
const where = whereClause(buildKyselyWhere(provider, input.where));
|
|
226
|
-
const order = orderClause(input);
|
|
227
|
-
return [...(await sql`select * from ${sql.table("bundle_events")}${where}${order}${pagination}`.execute(executor)).rows];
|
|
228
|
-
}
|
|
229
|
-
case "api_keys": {
|
|
230
|
-
const where = whereClause(buildKyselyWhere(provider, input.where));
|
|
231
|
-
const order = orderClause(input);
|
|
232
|
-
return [...(await sql`select * from ${sql.table("api_keys")}${where}${order}${pagination}`.execute(executor)).rows];
|
|
233
|
-
}
|
|
234
|
-
case "channels": {
|
|
235
|
-
const where = whereClause(buildKyselyWhere(provider, input.where));
|
|
236
|
-
const order = orderClause(input);
|
|
237
|
-
return [...(await sql`select * from ${sql.table("channels")}${where}${order}${pagination}`.execute(executor)).rows];
|
|
238
|
-
}
|
|
239
|
-
case "releases": {
|
|
240
|
-
const where = whereClause(buildKyselyWhere(provider, input.where));
|
|
241
|
-
const order = orderClause(input);
|
|
242
|
-
return (await sql`select * from ${sql.table("releases")}${where}${order}${pagination}`.execute(executor)).rows.map(fromStoredReleaseRow);
|
|
243
|
-
}
|
|
244
|
-
case "release_catalogs": {
|
|
245
|
-
const where = whereClause(buildKyselyWhere(provider, input.where));
|
|
246
|
-
const order = orderClause(input);
|
|
247
|
-
return (await sql`select * from ${sql.table("release_catalogs")}${where}${order}${pagination}`.execute(executor)).rows.map(fromStoredReleaseCatalogRow);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
});
|
|
252
|
-
//#endregion
|
|
253
|
-
export { createKyselyCrud };
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
require("../_virtual/_rolldown/runtime.cjs");
|
|
2
|
-
const require_databasePluginUtils = require("./databasePluginUtils.cjs");
|
|
3
|
-
let kysely = require("kysely");
|
|
4
|
-
//#region src/adapters/kyselyQuery.ts
|
|
5
|
-
var InvalidDatabasePredicateError = class extends Error {
|
|
6
|
-
name = "InvalidDatabasePredicateError";
|
|
7
|
-
};
|
|
8
|
-
const stringPredicate = (provider, field, operator, value, insensitive) => {
|
|
9
|
-
const column = kysely.sql.ref(field);
|
|
10
|
-
if (provider === "sqlite" && !insensitive) {
|
|
11
|
-
const literal = require_databasePluginUtils.escapeGlobPattern(value);
|
|
12
|
-
return kysely.sql`${column} glob ${operator === "contains" ? `*${literal}*` : operator === "starts_with" ? `${literal}*` : `*${literal}`}`;
|
|
13
|
-
}
|
|
14
|
-
const literal = require_databasePluginUtils.escapeLikePattern(value);
|
|
15
|
-
const pattern = operator === "contains" ? `%${literal}%` : operator === "starts_with" ? `${literal}%` : `%${literal}`;
|
|
16
|
-
if (insensitive) return kysely.sql`lower(${column}) like lower(${pattern}) escape '\\'`;
|
|
17
|
-
if (provider === "mysql") return kysely.sql`binary ${column} like binary ${pattern} escape '\\'`;
|
|
18
|
-
return kysely.sql`${column} like ${pattern} escape '\\'`;
|
|
19
|
-
};
|
|
20
|
-
const predicate = (provider, condition) => {
|
|
21
|
-
const column = kysely.sql.ref(condition.field);
|
|
22
|
-
const operator = condition.operator ?? "eq";
|
|
23
|
-
switch (operator) {
|
|
24
|
-
case "eq":
|
|
25
|
-
case "ne":
|
|
26
|
-
if (condition.value === null) return operator === "eq" ? kysely.sql`${column} is null` : kysely.sql`${column} is not null`;
|
|
27
|
-
if ("mode" in condition && condition.mode === "insensitive") return operator === "eq" ? kysely.sql`lower(${column}) = lower(${condition.value})` : kysely.sql`lower(${column}) <> lower(${condition.value})`;
|
|
28
|
-
return operator === "eq" ? kysely.sql`${column} = ${condition.value}` : kysely.sql`${column} <> ${condition.value}`;
|
|
29
|
-
case "gt": return kysely.sql`${column} > ${condition.value}`;
|
|
30
|
-
case "gte": return kysely.sql`${column} >= ${condition.value}`;
|
|
31
|
-
case "lt": return kysely.sql`${column} < ${condition.value}`;
|
|
32
|
-
case "lte": return kysely.sql`${column} <= ${condition.value}`;
|
|
33
|
-
case "in":
|
|
34
|
-
case "not_in":
|
|
35
|
-
if (!Array.isArray(condition.value)) throw new InvalidDatabasePredicateError();
|
|
36
|
-
if (operator === "in") return condition.value.length === 0 ? kysely.sql`false` : kysely.sql`${column} in (${kysely.sql.join(condition.value)})`;
|
|
37
|
-
return condition.value.length === 0 ? kysely.sql`true` : kysely.sql`${column} not in (${kysely.sql.join(condition.value)})`;
|
|
38
|
-
case "contains":
|
|
39
|
-
case "starts_with":
|
|
40
|
-
case "ends_with":
|
|
41
|
-
if (typeof condition.value !== "string") throw new InvalidDatabasePredicateError();
|
|
42
|
-
return stringPredicate(provider, condition.field, operator, condition.value, "mode" in condition && condition.mode === "insensitive");
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
const buildKyselyWhere = (provider, where) => {
|
|
46
|
-
const [first, ...rest] = where ?? [];
|
|
47
|
-
if (first === void 0) return void 0;
|
|
48
|
-
let expression = predicate(provider, first);
|
|
49
|
-
for (const condition of rest) {
|
|
50
|
-
const next = predicate(provider, condition);
|
|
51
|
-
expression = condition.connector === "OR" ? kysely.sql`(${expression} or ${next})` : kysely.sql`(${expression} and ${next})`;
|
|
52
|
-
}
|
|
53
|
-
return expression;
|
|
54
|
-
};
|
|
55
|
-
//#endregion
|
|
56
|
-
exports.buildKyselyWhere = buildKyselyWhere;
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { escapeGlobPattern, escapeLikePattern } from "./databasePluginUtils.mjs";
|
|
2
|
-
import { sql } from "kysely";
|
|
3
|
-
//#region src/adapters/kyselyQuery.ts
|
|
4
|
-
var InvalidDatabasePredicateError = class extends Error {
|
|
5
|
-
name = "InvalidDatabasePredicateError";
|
|
6
|
-
};
|
|
7
|
-
const stringPredicate = (provider, field, operator, value, insensitive) => {
|
|
8
|
-
const column = sql.ref(field);
|
|
9
|
-
if (provider === "sqlite" && !insensitive) {
|
|
10
|
-
const literal = escapeGlobPattern(value);
|
|
11
|
-
return sql`${column} glob ${operator === "contains" ? `*${literal}*` : operator === "starts_with" ? `${literal}*` : `*${literal}`}`;
|
|
12
|
-
}
|
|
13
|
-
const literal = escapeLikePattern(value);
|
|
14
|
-
const pattern = operator === "contains" ? `%${literal}%` : operator === "starts_with" ? `${literal}%` : `%${literal}`;
|
|
15
|
-
if (insensitive) return sql`lower(${column}) like lower(${pattern}) escape '\\'`;
|
|
16
|
-
if (provider === "mysql") return sql`binary ${column} like binary ${pattern} escape '\\'`;
|
|
17
|
-
return sql`${column} like ${pattern} escape '\\'`;
|
|
18
|
-
};
|
|
19
|
-
const predicate = (provider, condition) => {
|
|
20
|
-
const column = sql.ref(condition.field);
|
|
21
|
-
const operator = condition.operator ?? "eq";
|
|
22
|
-
switch (operator) {
|
|
23
|
-
case "eq":
|
|
24
|
-
case "ne":
|
|
25
|
-
if (condition.value === null) return operator === "eq" ? sql`${column} is null` : sql`${column} is not null`;
|
|
26
|
-
if ("mode" in condition && condition.mode === "insensitive") return operator === "eq" ? sql`lower(${column}) = lower(${condition.value})` : sql`lower(${column}) <> lower(${condition.value})`;
|
|
27
|
-
return operator === "eq" ? sql`${column} = ${condition.value}` : sql`${column} <> ${condition.value}`;
|
|
28
|
-
case "gt": return sql`${column} > ${condition.value}`;
|
|
29
|
-
case "gte": return sql`${column} >= ${condition.value}`;
|
|
30
|
-
case "lt": return sql`${column} < ${condition.value}`;
|
|
31
|
-
case "lte": return sql`${column} <= ${condition.value}`;
|
|
32
|
-
case "in":
|
|
33
|
-
case "not_in":
|
|
34
|
-
if (!Array.isArray(condition.value)) throw new InvalidDatabasePredicateError();
|
|
35
|
-
if (operator === "in") return condition.value.length === 0 ? sql`false` : sql`${column} in (${sql.join(condition.value)})`;
|
|
36
|
-
return condition.value.length === 0 ? sql`true` : sql`${column} not in (${sql.join(condition.value)})`;
|
|
37
|
-
case "contains":
|
|
38
|
-
case "starts_with":
|
|
39
|
-
case "ends_with":
|
|
40
|
-
if (typeof condition.value !== "string") throw new InvalidDatabasePredicateError();
|
|
41
|
-
return stringPredicate(provider, condition.field, operator, condition.value, "mode" in condition && condition.mode === "insensitive");
|
|
42
|
-
}
|
|
43
|
-
};
|
|
44
|
-
const buildKyselyWhere = (provider, where) => {
|
|
45
|
-
const [first, ...rest] = where ?? [];
|
|
46
|
-
if (first === void 0) return void 0;
|
|
47
|
-
let expression = predicate(provider, first);
|
|
48
|
-
for (const condition of rest) {
|
|
49
|
-
const next = predicate(provider, condition);
|
|
50
|
-
expression = condition.connector === "OR" ? sql`(${expression} or ${next})` : sql`(${expression} and ${next})`;
|
|
51
|
-
}
|
|
52
|
-
return expression;
|
|
53
|
-
};
|
|
54
|
-
//#endregion
|
|
55
|
-
export { buildKyselyWhere };
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
//#region src/adapters/mongodbCollections.ts
|
|
2
|
-
var MongoAdapterConstraintError = class extends Error {
|
|
3
|
-
name = "MongoAdapterConstraintError";
|
|
4
|
-
constructor(reason) {
|
|
5
|
-
super(`MongoDB adapter constraint failed: ${reason}`);
|
|
6
|
-
this.reason = reason;
|
|
7
|
-
}
|
|
8
|
-
};
|
|
9
|
-
const WITHOUT_MONGO_ID = { _id: 0 };
|
|
10
|
-
const DELETION_TOKEN_FIELD = "_hot_updater_deletion_token";
|
|
11
|
-
const WITHOUT_INTERNAL_FIELDS = {
|
|
12
|
-
...WITHOUT_MONGO_ID,
|
|
13
|
-
[DELETION_TOKEN_FIELD]: 0
|
|
14
|
-
};
|
|
15
|
-
const activeBundleFilter = (where) => ({ $and: [where, { [DELETION_TOKEN_FIELD]: { $exists: false } }] });
|
|
16
|
-
const createMongoCollections = (client) => {
|
|
17
|
-
const database = client.db();
|
|
18
|
-
return {
|
|
19
|
-
bundles: database.collection("bundles"),
|
|
20
|
-
bundlePatches: database.collection("bundle_patches"),
|
|
21
|
-
bundleEvents: database.collection("bundle_events"),
|
|
22
|
-
channels: database.collection("channels"),
|
|
23
|
-
apiKeys: database.collection("api_keys"),
|
|
24
|
-
releases: database.collection("releases"),
|
|
25
|
-
releaseCatalogs: database.collection("release_catalogs")
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
const mongoSessionOptions = (session) => session === void 0 ? {} : { session };
|
|
29
|
-
//#endregion
|
|
30
|
-
exports.DELETION_TOKEN_FIELD = DELETION_TOKEN_FIELD;
|
|
31
|
-
exports.MongoAdapterConstraintError = MongoAdapterConstraintError;
|
|
32
|
-
exports.WITHOUT_INTERNAL_FIELDS = WITHOUT_INTERNAL_FIELDS;
|
|
33
|
-
exports.WITHOUT_MONGO_ID = WITHOUT_MONGO_ID;
|
|
34
|
-
exports.activeBundleFilter = activeBundleFilter;
|
|
35
|
-
exports.createMongoCollections = createMongoCollections;
|
|
36
|
-
exports.mongoSessionOptions = mongoSessionOptions;
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
//#region src/adapters/mongodbCollections.ts
|
|
2
|
-
var MongoAdapterConstraintError = class extends Error {
|
|
3
|
-
name = "MongoAdapterConstraintError";
|
|
4
|
-
constructor(reason) {
|
|
5
|
-
super(`MongoDB adapter constraint failed: ${reason}`);
|
|
6
|
-
this.reason = reason;
|
|
7
|
-
}
|
|
8
|
-
};
|
|
9
|
-
const WITHOUT_MONGO_ID = { _id: 0 };
|
|
10
|
-
const DELETION_TOKEN_FIELD = "_hot_updater_deletion_token";
|
|
11
|
-
const WITHOUT_INTERNAL_FIELDS = {
|
|
12
|
-
...WITHOUT_MONGO_ID,
|
|
13
|
-
[DELETION_TOKEN_FIELD]: 0
|
|
14
|
-
};
|
|
15
|
-
const activeBundleFilter = (where) => ({ $and: [where, { [DELETION_TOKEN_FIELD]: { $exists: false } }] });
|
|
16
|
-
const createMongoCollections = (client) => {
|
|
17
|
-
const database = client.db();
|
|
18
|
-
return {
|
|
19
|
-
bundles: database.collection("bundles"),
|
|
20
|
-
bundlePatches: database.collection("bundle_patches"),
|
|
21
|
-
bundleEvents: database.collection("bundle_events"),
|
|
22
|
-
channels: database.collection("channels"),
|
|
23
|
-
apiKeys: database.collection("api_keys"),
|
|
24
|
-
releases: database.collection("releases"),
|
|
25
|
-
releaseCatalogs: database.collection("release_catalogs")
|
|
26
|
-
};
|
|
27
|
-
};
|
|
28
|
-
const mongoSessionOptions = (session) => session === void 0 ? {} : { session };
|
|
29
|
-
//#endregion
|
|
30
|
-
export { DELETION_TOKEN_FIELD, MongoAdapterConstraintError, WITHOUT_INTERNAL_FIELDS, WITHOUT_MONGO_ID, activeBundleFilter, createMongoCollections, mongoSessionOptions };
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
//#region src/adapters/mongodbQuery.ts
|
|
2
|
-
const escapeRegularExpression = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
3
|
-
function literal(value) {
|
|
4
|
-
return { $literal: value };
|
|
5
|
-
}
|
|
6
|
-
const stringExpression = (field, operator, value, mode) => {
|
|
7
|
-
const escaped = escapeRegularExpression(value);
|
|
8
|
-
const regex = operator === "starts_with" ? `^${escaped}` : operator === "ends_with" ? `${escaped}$` : escaped;
|
|
9
|
-
return { $regexMatch: {
|
|
10
|
-
input: { $ifNull: [`$${field}`, ""] },
|
|
11
|
-
regex: literal(regex),
|
|
12
|
-
...mode === "insensitive" ? { options: "i" } : {}
|
|
13
|
-
} };
|
|
14
|
-
};
|
|
15
|
-
const predicate = (where) => {
|
|
16
|
-
const field = `$${where.field}`;
|
|
17
|
-
switch (where.operator) {
|
|
18
|
-
case void 0:
|
|
19
|
-
case "eq": return { $expr: "mode" in where && where.mode === "insensitive" && typeof where.value === "string" ? { $eq: [{ $toLower: { $ifNull: [field, ""] } }, literal(where.value.toLocaleLowerCase())] } : { $eq: [field, literal(where.value)] } };
|
|
20
|
-
case "ne": {
|
|
21
|
-
const comparison = "mode" in where && where.mode === "insensitive" ? { $ne: [{ $toLower: { $ifNull: [field, ""] } }, literal(where.value.toLocaleLowerCase())] } : { $ne: [field, literal(where.value)] };
|
|
22
|
-
return where.value === null ? { $expr: comparison } : { $and: [{ $expr: { $ne: [field, null] } }, { $expr: comparison }] };
|
|
23
|
-
}
|
|
24
|
-
case "gt":
|
|
25
|
-
case "gte":
|
|
26
|
-
case "lt":
|
|
27
|
-
case "lte": return { $and: [{ $expr: { $ne: [field, null] } }, { $expr: { [`$${where.operator}`]: [field, literal(where.value)] } }] };
|
|
28
|
-
case "in": return { $expr: { $in: [field, literal(where.value)] } };
|
|
29
|
-
case "not_in": return where.value.length === 0 ? { $expr: { $not: [{ $in: [field, literal(where.value)] }] } } : { $and: [{ $expr: { $ne: [field, null] } }, { $expr: { $not: [{ $in: [field, literal(where.value)] }] } }] };
|
|
30
|
-
case "contains":
|
|
31
|
-
case "starts_with":
|
|
32
|
-
case "ends_with": return { $expr: stringExpression(where.field, where.operator, where.value, where.mode) };
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
const createMongoWhereDocument = (where) => {
|
|
36
|
-
const items = Array.isArray(where) ? where : [];
|
|
37
|
-
const first = items[0];
|
|
38
|
-
if (first === void 0) return {};
|
|
39
|
-
let result = predicate(first);
|
|
40
|
-
for (const item of items.slice(1)) result = { [item.connector === "OR" ? "$or" : "$and"]: [result, predicate(item)] };
|
|
41
|
-
return result;
|
|
42
|
-
};
|
|
43
|
-
function createMongoBundleWhere(where) {
|
|
44
|
-
return createMongoWhereDocument(where);
|
|
45
|
-
}
|
|
46
|
-
function createMongoPatchWhere(where) {
|
|
47
|
-
return createMongoWhereDocument(where);
|
|
48
|
-
}
|
|
49
|
-
function createMongoEventWhere(where) {
|
|
50
|
-
return createMongoWhereDocument(where);
|
|
51
|
-
}
|
|
52
|
-
function createMongoApiKeyWhere(where) {
|
|
53
|
-
return createMongoWhereDocument(where);
|
|
54
|
-
}
|
|
55
|
-
function createMongoChannelWhere(where) {
|
|
56
|
-
return createMongoWhereDocument(where);
|
|
57
|
-
}
|
|
58
|
-
function createMongoReleaseWhere(where) {
|
|
59
|
-
return createMongoWhereDocument(where);
|
|
60
|
-
}
|
|
61
|
-
function createMongoReleaseCatalogWhere(where) {
|
|
62
|
-
return createMongoWhereDocument(where);
|
|
63
|
-
}
|
|
64
|
-
const createMongoSort = (input) => {
|
|
65
|
-
const clauses = Array.isArray(input) ? input : input && "orderBy" in input && Array.isArray(input.orderBy) ? input.orderBy : void 0;
|
|
66
|
-
if (clauses === void 0 || clauses.length === 0) return void 0;
|
|
67
|
-
return Object.fromEntries(clauses.map((clause) => [clause.field, clause.direction === "asc" ? 1 : -1]));
|
|
68
|
-
};
|
|
69
|
-
//#endregion
|
|
70
|
-
exports.createMongoApiKeyWhere = createMongoApiKeyWhere;
|
|
71
|
-
exports.createMongoBundleWhere = createMongoBundleWhere;
|
|
72
|
-
exports.createMongoChannelWhere = createMongoChannelWhere;
|
|
73
|
-
exports.createMongoEventWhere = createMongoEventWhere;
|
|
74
|
-
exports.createMongoPatchWhere = createMongoPatchWhere;
|
|
75
|
-
exports.createMongoReleaseCatalogWhere = createMongoReleaseCatalogWhere;
|
|
76
|
-
exports.createMongoReleaseWhere = createMongoReleaseWhere;
|
|
77
|
-
exports.createMongoSort = createMongoSort;
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
//#region src/adapters/mongodbQuery.ts
|
|
2
|
-
const escapeRegularExpression = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
3
|
-
function literal(value) {
|
|
4
|
-
return { $literal: value };
|
|
5
|
-
}
|
|
6
|
-
const stringExpression = (field, operator, value, mode) => {
|
|
7
|
-
const escaped = escapeRegularExpression(value);
|
|
8
|
-
const regex = operator === "starts_with" ? `^${escaped}` : operator === "ends_with" ? `${escaped}$` : escaped;
|
|
9
|
-
return { $regexMatch: {
|
|
10
|
-
input: { $ifNull: [`$${field}`, ""] },
|
|
11
|
-
regex: literal(regex),
|
|
12
|
-
...mode === "insensitive" ? { options: "i" } : {}
|
|
13
|
-
} };
|
|
14
|
-
};
|
|
15
|
-
const predicate = (where) => {
|
|
16
|
-
const field = `$${where.field}`;
|
|
17
|
-
switch (where.operator) {
|
|
18
|
-
case void 0:
|
|
19
|
-
case "eq": return { $expr: "mode" in where && where.mode === "insensitive" && typeof where.value === "string" ? { $eq: [{ $toLower: { $ifNull: [field, ""] } }, literal(where.value.toLocaleLowerCase())] } : { $eq: [field, literal(where.value)] } };
|
|
20
|
-
case "ne": {
|
|
21
|
-
const comparison = "mode" in where && where.mode === "insensitive" ? { $ne: [{ $toLower: { $ifNull: [field, ""] } }, literal(where.value.toLocaleLowerCase())] } : { $ne: [field, literal(where.value)] };
|
|
22
|
-
return where.value === null ? { $expr: comparison } : { $and: [{ $expr: { $ne: [field, null] } }, { $expr: comparison }] };
|
|
23
|
-
}
|
|
24
|
-
case "gt":
|
|
25
|
-
case "gte":
|
|
26
|
-
case "lt":
|
|
27
|
-
case "lte": return { $and: [{ $expr: { $ne: [field, null] } }, { $expr: { [`$${where.operator}`]: [field, literal(where.value)] } }] };
|
|
28
|
-
case "in": return { $expr: { $in: [field, literal(where.value)] } };
|
|
29
|
-
case "not_in": return where.value.length === 0 ? { $expr: { $not: [{ $in: [field, literal(where.value)] }] } } : { $and: [{ $expr: { $ne: [field, null] } }, { $expr: { $not: [{ $in: [field, literal(where.value)] }] } }] };
|
|
30
|
-
case "contains":
|
|
31
|
-
case "starts_with":
|
|
32
|
-
case "ends_with": return { $expr: stringExpression(where.field, where.operator, where.value, where.mode) };
|
|
33
|
-
}
|
|
34
|
-
};
|
|
35
|
-
const createMongoWhereDocument = (where) => {
|
|
36
|
-
const items = Array.isArray(where) ? where : [];
|
|
37
|
-
const first = items[0];
|
|
38
|
-
if (first === void 0) return {};
|
|
39
|
-
let result = predicate(first);
|
|
40
|
-
for (const item of items.slice(1)) result = { [item.connector === "OR" ? "$or" : "$and"]: [result, predicate(item)] };
|
|
41
|
-
return result;
|
|
42
|
-
};
|
|
43
|
-
function createMongoBundleWhere(where) {
|
|
44
|
-
return createMongoWhereDocument(where);
|
|
45
|
-
}
|
|
46
|
-
function createMongoPatchWhere(where) {
|
|
47
|
-
return createMongoWhereDocument(where);
|
|
48
|
-
}
|
|
49
|
-
function createMongoEventWhere(where) {
|
|
50
|
-
return createMongoWhereDocument(where);
|
|
51
|
-
}
|
|
52
|
-
function createMongoApiKeyWhere(where) {
|
|
53
|
-
return createMongoWhereDocument(where);
|
|
54
|
-
}
|
|
55
|
-
function createMongoChannelWhere(where) {
|
|
56
|
-
return createMongoWhereDocument(where);
|
|
57
|
-
}
|
|
58
|
-
function createMongoReleaseWhere(where) {
|
|
59
|
-
return createMongoWhereDocument(where);
|
|
60
|
-
}
|
|
61
|
-
function createMongoReleaseCatalogWhere(where) {
|
|
62
|
-
return createMongoWhereDocument(where);
|
|
63
|
-
}
|
|
64
|
-
const createMongoSort = (input) => {
|
|
65
|
-
const clauses = Array.isArray(input) ? input : input && "orderBy" in input && Array.isArray(input.orderBy) ? input.orderBy : void 0;
|
|
66
|
-
if (clauses === void 0 || clauses.length === 0) return void 0;
|
|
67
|
-
return Object.fromEntries(clauses.map((clause) => [clause.field, clause.direction === "asc" ? 1 : -1]));
|
|
68
|
-
};
|
|
69
|
-
//#endregion
|
|
70
|
-
export { createMongoApiKeyWhere, createMongoBundleWhere, createMongoChannelWhere, createMongoEventWhere, createMongoPatchWhere, createMongoReleaseCatalogWhere, createMongoReleaseWhere, createMongoSort };
|