@hot-updater/server 1.0.0-rc.2 → 1.0.0-rc.21
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/LICENSE +12 -14
- package/dist/adapters/drizzle.cjs +32 -75
- package/dist/adapters/drizzle.d.cts +13 -5
- package/dist/adapters/drizzle.d.mts +13 -5
- package/dist/adapters/drizzle.mjs +32 -77
- 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 +22 -31
- package/dist/adapters/kysely.d.cts +10 -6
- package/dist/adapters/kysely.d.mts +10 -6
- package/dist/adapters/kysely.mjs +23 -33
- package/dist/adapters/kyselyExecutor.cjs +32 -0
- package/dist/adapters/kyselyExecutor.d.cts +11 -0
- package/dist/adapters/kyselyExecutor.d.mts +11 -0
- package/dist/adapters/kyselyExecutor.mjs +32 -0
- package/dist/adapters/mongodb.cjs +18 -54
- package/dist/adapters/mongodb.d.cts +10 -5
- package/dist/adapters/mongodb.d.mts +10 -5
- package/dist/adapters/mongodb.mjs +19 -56
- package/dist/adapters/mongodbAdapter.cjs +192 -0
- package/dist/adapters/mongodbAdapter.d.cts +9 -0
- package/dist/adapters/mongodbAdapter.d.mts +9 -0
- package/dist/adapters/mongodbAdapter.mjs +191 -0
- package/dist/adapters/prisma.cjs +35 -267
- package/dist/adapters/prisma.d.cts +12 -7
- package/dist/adapters/prisma.d.mts +12 -7
- package/dist/adapters/prisma.mjs +36 -268
- package/dist/adapters/prismaExecutor.cjs +63 -0
- package/dist/adapters/prismaExecutor.mjs +63 -0
- package/dist/adapters/sqlProviders.cjs +14 -0
- package/dist/adapters/sqlProviders.mjs +14 -0
- package/dist/assembly/assemblePlugins.cjs +144 -0
- package/dist/assembly/assemblePlugins.d.cts +5 -0
- package/dist/assembly/assemblePlugins.d.mts +5 -0
- package/dist/assembly/assemblePlugins.mjs +139 -0
- package/dist/assembly/clientPlugins.cjs +88 -0
- package/dist/assembly/clientPlugins.mjs +88 -0
- package/dist/assembly/configError.d.cts +2 -0
- package/dist/assembly/configError.d.mts +2 -0
- package/dist/assembly/configError.mjs +2 -0
- package/dist/core/api.cjs +51 -0
- package/dist/core/api.d.cts +54 -0
- package/dist/core/api.d.mts +54 -0
- package/dist/core/api.mjs +51 -0
- package/dist/core/baseCandidates.cjs +28 -0
- package/dist/core/baseCandidates.mjs +28 -0
- package/dist/core/operations.cjs +351 -0
- package/dist/core/operations.mjs +351 -0
- package/dist/core/reads.cjs +273 -0
- package/dist/core/reads.d.cts +9 -0
- package/dist/core/reads.d.mts +9 -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/writes.cjs +96 -0
- package/dist/core/writes.mjs +91 -0
- package/dist/createHotUpdaterCore.cjs +72 -91
- package/dist/createHotUpdaterCore.d.cts +106 -38
- package/dist/createHotUpdaterCore.d.mts +106 -38
- package/dist/createHotUpdaterCore.mjs +74 -89
- package/dist/db/engineDrizzleSchema.cjs +53 -0
- package/dist/db/engineDrizzleSchema.mjs +53 -0
- package/dist/db/enginePrismaSchema.cjs +84 -0
- package/dist/db/enginePrismaSchema.d.cts +5 -0
- package/dist/db/enginePrismaSchema.d.mts +5 -0
- package/dist/db/enginePrismaSchema.mjs +83 -0
- package/dist/db/releaseCatalog.cjs +24 -47
- package/dist/db/releaseCatalog.mjs +20 -44
- package/dist/db/updateArtifacts.cjs +43 -72
- package/dist/db/updateArtifacts.mjs +40 -69
- package/dist/handler.cjs +59 -43
- package/dist/handler.d.cts +3 -5
- package/dist/handler.d.mts +3 -5
- package/dist/handler.mjs +61 -43
- package/dist/handlerAdminRoutes.cjs +374 -0
- package/dist/handlerAdminRoutes.mjs +372 -0
- package/dist/handlerParameters.cjs +6 -11
- package/dist/handlerParameters.mjs +6 -10
- package/dist/handlerReleaseCatalogRoutes.cjs +32 -15
- package/dist/handlerReleaseCatalogRoutes.mjs +32 -15
- 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 +9 -9
- package/dist/index.d.cts +8 -9
- package/dist/index.d.mts +8 -9
- package/dist/index.mjs +3 -4
- package/dist/node.cjs +3 -6
- package/dist/node.d.cts +2 -2
- package/dist/node.d.mts +2 -2
- package/dist/node.mjs +4 -4
- package/dist/package.cjs +1 -1
- package/dist/package.mjs +1 -1
- package/dist/plugins/api-keys/index.cjs +9 -0
- package/dist/plugins/api-keys/index.d.cts +1 -0
- package/dist/plugins/api-keys/index.d.mts +1 -0
- package/dist/plugins/api-keys/index.mjs +2 -0
- package/dist/plugins/definePlugin.d.cts +2 -0
- package/dist/plugins/definePlugin.d.mts +2 -0
- package/dist/plugins/insights/index.cjs +9 -0
- package/dist/plugins/insights/index.d.cts +1 -0
- package/dist/plugins/insights/index.d.mts +1 -0
- package/dist/plugins/insights/index.mjs +2 -0
- package/dist/plugins/official.cjs +30 -0
- package/dist/plugins/official.mjs +29 -0
- package/dist/storageAccess.cjs +13 -10
- package/dist/storageAccess.mjs +13 -10
- package/dist/types/index.d.cts +2 -28
- package/dist/types/index.d.mts +2 -28
- package/package.json +26 -14
- package/dist/_virtual/_rolldown/runtime.cjs +0 -23
- package/dist/adapters/databaseConstraintErrors.cjs +0 -22
- package/dist/adapters/databaseConstraintErrors.mjs +0 -21
- package/dist/adapters/databasePluginUtils.cjs +0 -116
- package/dist/adapters/databasePluginUtils.mjs +0 -106
- package/dist/adapters/drizzleCrud.cjs +0 -311
- package/dist/adapters/drizzleCrud.mjs +0 -308
- package/dist/adapters/drizzleLazyDB.cjs +0 -106
- package/dist/adapters/drizzleLazyDB.mjs +0 -106
- package/dist/adapters/drizzleQuery.cjs +0 -69
- package/dist/adapters/drizzleQuery.mjs +0 -69
- package/dist/adapters/insightsTransaction.cjs +0 -22
- package/dist/adapters/insightsTransaction.mjs +0 -22
- package/dist/adapters/kyselyCrud.cjs +0 -305
- package/dist/adapters/kyselyCrud.mjs +0 -304
- 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 -94
- package/dist/adapters/mongodbQuery.mjs +0 -86
- package/dist/adapters/mongodbReads.cjs +0 -210
- package/dist/adapters/mongodbReads.mjs +0 -210
- package/dist/adapters/mongodbWrites.cjs +0 -148
- package/dist/adapters/mongodbWrites.mjs +0 -148
- package/dist/adapters/prismaQuery.cjs +0 -57
- package/dist/adapters/prismaQuery.mjs +0 -56
- package/dist/adapters/prismaRows.cjs +0 -219
- package/dist/adapters/prismaRows.mjs +0 -209
- package/dist/apiKeys.cjs +0 -143
- package/dist/apiKeys.d.cts +0 -49
- package/dist/apiKeys.d.mts +0 -49
- package/dist/apiKeys.mjs +0 -133
- package/dist/db/createBundleDiff.cjs +0 -144
- package/dist/db/createBundleDiff.d.cts +0 -16
- package/dist/db/createBundleDiff.d.mts +0 -16
- package/dist/db/createBundleDiff.mjs +0 -141
- 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/fixedMigratorShared.cjs +0 -23
- package/dist/db/fixedMigratorShared.mjs +0 -18
- package/dist/db/index.cjs +0 -27
- package/dist/db/index.d.cts +0 -12
- package/dist/db/index.d.mts +0 -12
- package/dist/db/index.mjs +0 -22
- package/dist/db/mongoMigrationExecution.cjs +0 -11
- package/dist/db/mongoMigrationExecution.mjs +0 -11
- package/dist/db/releaseCatalog.d.cts +0 -16
- package/dist/db/releaseCatalog.d.mts +0 -16
- 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 -275
- package/dist/db/schemaGenerators.mjs +0 -273
- 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/db/types.cjs +0 -22
- package/dist/db/types.d.cts +0 -118
- package/dist/db/types.d.mts +0 -118
- package/dist/db/types.mjs +0 -19
- 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/insights/domain.d.cts +0 -89
- package/dist/insights/domain.d.mts +0 -89
- package/dist/insights/errors.cjs +0 -15
- package/dist/insights/errors.mjs +0 -14
- package/dist/insights/eventInput.cjs +0 -155
- package/dist/insights/eventInput.mjs +0 -153
- package/dist/insights/provider.cjs +0 -314
- package/dist/insights/provider.d.cts +0 -6
- package/dist/insights/provider.d.mts +0 -6
- package/dist/insights/provider.mjs +0 -314
- package/dist/insights/queryInput.cjs +0 -93
- package/dist/insights/queryInput.mjs +0 -91
- package/dist/insights/routes.cjs +0 -58
- package/dist/insights/routes.mjs +0 -56
- package/dist/insights/types.d.cts +0 -32
- package/dist/insights/types.d.mts +0 -32
- 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 -406
- package/dist/schema/v1_0_0.mjs +0 -398
- package/src/adapters/databaseConstraintErrors.ts +0 -25
- package/src/adapters/databasePluginTestDatabase.ts +0 -120
- package/src/adapters/databasePluginUtils.spec.ts +0 -29
- package/src/adapters/databasePluginUtils.ts +0 -214
- package/src/adapters/drizzle.spec.ts +0 -336
- package/src/adapters/drizzle.ts +0 -162
- package/src/adapters/drizzleCrud.ts +0 -571
- package/src/adapters/drizzleLazyDB.ts +0 -271
- package/src/adapters/drizzleQuery.ts +0 -164
- package/src/adapters/insightsTransaction.ts +0 -32
- package/src/adapters/kysely.spec.ts +0 -174
- package/src/adapters/kysely.ts +0 -110
- package/src/adapters/kyselyCrud.ts +0 -709
- package/src/adapters/kyselyQuery.ts +0 -128
- package/src/adapters/mongodb.integration.spec.ts +0 -210
- package/src/adapters/mongodb.spec.ts +0 -209
- package/src/adapters/mongodb.ts +0 -138
- package/src/adapters/mongodbCollections.ts +0 -67
- package/src/adapters/mongodbQuery.ts +0 -255
- package/src/adapters/mongodbReads.ts +0 -380
- package/src/adapters/mongodbRows.spec.ts +0 -64
- package/src/adapters/mongodbRows.ts +0 -118
- package/src/adapters/mongodbTestClient.ts +0 -377
- package/src/adapters/mongodbTestFilter.ts +0 -169
- package/src/adapters/mongodbWrites.ts +0 -287
- package/src/adapters/prisma.spec.ts +0 -293
- package/src/adapters/prisma.ts +0 -565
- package/src/adapters/prismaQuery.ts +0 -129
- package/src/adapters/prismaRows.spec.ts +0 -98
- package/src/adapters/prismaRows.ts +0 -337
- package/src/adapters/prismaTestClient.ts +0 -413
- package/src/apiKeys.integration.spec.ts +0 -192
- package/src/apiKeys.spec.ts +0 -162
- package/src/apiKeys.ts +0 -220
- package/src/calculatePagination.ts +0 -34
- package/src/createHotUpdaterCore.ts +0 -246
- package/src/db/bundleRows.spec.ts +0 -164
- package/src/db/bundleRows.ts +0 -10
- package/src/db/createBundleDiff.spec.ts +0 -450
- package/src/db/createBundleDiff.ts +0 -364
- 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 -110
- package/src/db/fixedMigrator.spec.ts +0 -296
- package/src/db/fixedMigrator.ts +0 -147
- package/src/db/fixedMigratorMongo.spec.ts +0 -239
- package/src/db/fixedMigratorMongo.ts +0 -425
- package/src/db/fixedMigratorShared.ts +0 -36
- package/src/db/hotUpdaterSchema.ts +0 -5
- package/src/db/index.spec.ts +0 -1269
- package/src/db/index.ts +0 -47
- package/src/db/mongoMigrationExecution.ts +0 -23
- package/src/db/node-sqlite.d.ts +0 -25
- package/src/db/releaseCatalog.ts +0 -148
- 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 -494
- 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/db/types.ts +0 -228
- package/src/db/updateArtifacts.spec.ts +0 -359
- package/src/db/updateArtifacts.ts +0 -541
- package/src/handler-standalone.integration.spec.ts +0 -528
- package/src/handler.spec.ts +0 -190
- package/src/handler.testFixtures.ts +0 -30
- package/src/handler.ts +0 -245
- package/src/handlerAuth.integration.spec.ts +0 -33
- package/src/handlerBundleRoutes.ts +0 -259
- package/src/handlerErrors.ts +0 -7
- package/src/handlerManagement.spec.ts +0 -262
- package/src/handlerParameters.ts +0 -105
- package/src/handlerReleaseCatalogRoutes.ts +0 -154
- package/src/handlerReleaseManagementRoutes.ts +0 -213
- package/src/handlerTypes.ts +0 -96
- package/src/handlerVersionRoutes.ts +0 -12
- package/src/index.ts +0 -30
- package/src/insights/domain.ts +0 -103
- package/src/insights/errors.ts +0 -11
- package/src/insights/eventInput.ts +0 -225
- package/src/insights/insights.integration.spec.ts +0 -381
- package/src/insights/provider.spec.ts +0 -385
- package/src/insights/provider.ts +0 -591
- package/src/insights/queryInput.ts +0 -141
- package/src/insights/routes.ts +0 -104
- package/src/insights/types.ts +0 -55
- package/src/internalRouter.ts +0 -104
- package/src/node.spec.ts +0 -119
- package/src/node.ts +0 -111
- package/src/releaseCatalogRoutes.integration.spec.ts +0 -238
- package/src/runtime.spec.ts +0 -194
- package/src/runtime.testFixtures.ts +0 -71
- package/src/schema/dsl-all-versions.spec.ts +0 -37
- 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 -529
- package/src/storageAccess.spec.ts +0 -152
- package/src/storageAccess.ts +0 -141
- package/src/types/index.ts +0 -34
- package/src/version.ts +0 -3
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
const require_databasePluginUtils = require("./databasePluginUtils.cjs");
|
|
2
|
-
let kysely = require("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 = kysely.sql.ref(field);
|
|
9
|
-
if (provider === "sqlite" && !insensitive) {
|
|
10
|
-
const literal = require_databasePluginUtils.escapeGlobPattern(value);
|
|
11
|
-
const pattern = operator === "contains" ? `*${literal}*` : operator === "starts_with" ? `${literal}*` : `*${literal}`;
|
|
12
|
-
return kysely.sql`${column} glob ${pattern}`;
|
|
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,56 +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
|
-
const pattern = operator === "contains" ? `*${literal}*` : operator === "starts_with" ? `${literal}*` : `*${literal}`;
|
|
12
|
-
return sql`${column} glob ${pattern}`;
|
|
13
|
-
}
|
|
14
|
-
const literal = escapeLikePattern(value);
|
|
15
|
-
const pattern = operator === "contains" ? `%${literal}%` : operator === "starts_with" ? `${literal}%` : `%${literal}`;
|
|
16
|
-
if (insensitive) return sql`lower(${column}) like lower(${pattern}) escape '\\'`;
|
|
17
|
-
if (provider === "mysql") return sql`binary ${column} like binary ${pattern} escape '\\'`;
|
|
18
|
-
return sql`${column} like ${pattern} escape '\\'`;
|
|
19
|
-
};
|
|
20
|
-
const predicate = (provider, condition) => {
|
|
21
|
-
const column = 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" ? sql`${column} is null` : sql`${column} is not null`;
|
|
27
|
-
if ("mode" in condition && condition.mode === "insensitive") return operator === "eq" ? sql`lower(${column}) = lower(${condition.value})` : sql`lower(${column}) <> lower(${condition.value})`;
|
|
28
|
-
return operator === "eq" ? sql`${column} = ${condition.value}` : sql`${column} <> ${condition.value}`;
|
|
29
|
-
case "gt": return sql`${column} > ${condition.value}`;
|
|
30
|
-
case "gte": return sql`${column} >= ${condition.value}`;
|
|
31
|
-
case "lt": return sql`${column} < ${condition.value}`;
|
|
32
|
-
case "lte": return 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 ? sql`false` : sql`${column} in (${sql.join(condition.value)})`;
|
|
37
|
-
return condition.value.length === 0 ? sql`true` : sql`${column} not in (${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" ? sql`(${expression} or ${next})` : sql`(${expression} and ${next})`;
|
|
52
|
-
}
|
|
53
|
-
return expression;
|
|
54
|
-
};
|
|
55
|
-
//#endregion
|
|
56
|
-
export { buildKyselyWhere };
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
//#region src/adapters/mongodbCollections.ts
|
|
2
|
-
var MongoAdapterConstraintError = class extends Error {
|
|
3
|
-
reason;
|
|
4
|
-
name = "MongoAdapterConstraintError";
|
|
5
|
-
constructor(reason) {
|
|
6
|
-
super(`MongoDB adapter constraint failed: ${reason}`);
|
|
7
|
-
this.reason = reason;
|
|
8
|
-
}
|
|
9
|
-
};
|
|
10
|
-
const WITHOUT_MONGO_ID = { _id: 0 };
|
|
11
|
-
const DELETION_TOKEN_FIELD = "_hot_updater_deletion_token";
|
|
12
|
-
const WITHOUT_INTERNAL_FIELDS = {
|
|
13
|
-
...WITHOUT_MONGO_ID,
|
|
14
|
-
[DELETION_TOKEN_FIELD]: 0
|
|
15
|
-
};
|
|
16
|
-
const activeBundleFilter = (where) => ({ $and: [where, { [DELETION_TOKEN_FIELD]: { $exists: false } }] });
|
|
17
|
-
const createMongoCollections = (client) => {
|
|
18
|
-
const database = client.db();
|
|
19
|
-
return {
|
|
20
|
-
bundles: database.collection("bundles"),
|
|
21
|
-
bundlePatches: database.collection("bundle_patches"),
|
|
22
|
-
bundleEvents: database.collection("bundle_events"),
|
|
23
|
-
bundleInstallations: database.collection("bundle_installations"),
|
|
24
|
-
channels: database.collection("channels"),
|
|
25
|
-
apiKeys: database.collection("api_keys"),
|
|
26
|
-
releases: database.collection("releases"),
|
|
27
|
-
releaseCatalogs: database.collection("release_catalogs")
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
const mongoSessionOptions = (session) => session === void 0 ? {} : { session };
|
|
31
|
-
//#endregion
|
|
32
|
-
exports.DELETION_TOKEN_FIELD = DELETION_TOKEN_FIELD;
|
|
33
|
-
exports.MongoAdapterConstraintError = MongoAdapterConstraintError;
|
|
34
|
-
exports.WITHOUT_INTERNAL_FIELDS = WITHOUT_INTERNAL_FIELDS;
|
|
35
|
-
exports.WITHOUT_MONGO_ID = WITHOUT_MONGO_ID;
|
|
36
|
-
exports.activeBundleFilter = activeBundleFilter;
|
|
37
|
-
exports.createMongoCollections = createMongoCollections;
|
|
38
|
-
exports.mongoSessionOptions = mongoSessionOptions;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
//#region src/adapters/mongodbCollections.ts
|
|
2
|
-
var MongoAdapterConstraintError = class extends Error {
|
|
3
|
-
reason;
|
|
4
|
-
name = "MongoAdapterConstraintError";
|
|
5
|
-
constructor(reason) {
|
|
6
|
-
super(`MongoDB adapter constraint failed: ${reason}`);
|
|
7
|
-
this.reason = reason;
|
|
8
|
-
}
|
|
9
|
-
};
|
|
10
|
-
const WITHOUT_MONGO_ID = { _id: 0 };
|
|
11
|
-
const DELETION_TOKEN_FIELD = "_hot_updater_deletion_token";
|
|
12
|
-
const WITHOUT_INTERNAL_FIELDS = {
|
|
13
|
-
...WITHOUT_MONGO_ID,
|
|
14
|
-
[DELETION_TOKEN_FIELD]: 0
|
|
15
|
-
};
|
|
16
|
-
const activeBundleFilter = (where) => ({ $and: [where, { [DELETION_TOKEN_FIELD]: { $exists: false } }] });
|
|
17
|
-
const createMongoCollections = (client) => {
|
|
18
|
-
const database = client.db();
|
|
19
|
-
return {
|
|
20
|
-
bundles: database.collection("bundles"),
|
|
21
|
-
bundlePatches: database.collection("bundle_patches"),
|
|
22
|
-
bundleEvents: database.collection("bundle_events"),
|
|
23
|
-
bundleInstallations: database.collection("bundle_installations"),
|
|
24
|
-
channels: database.collection("channels"),
|
|
25
|
-
apiKeys: database.collection("api_keys"),
|
|
26
|
-
releases: database.collection("releases"),
|
|
27
|
-
releaseCatalogs: database.collection("release_catalogs")
|
|
28
|
-
};
|
|
29
|
-
};
|
|
30
|
-
const mongoSessionOptions = (session) => session === void 0 ? {} : { session };
|
|
31
|
-
//#endregion
|
|
32
|
-
export { DELETION_TOKEN_FIELD, MongoAdapterConstraintError, WITHOUT_INTERNAL_FIELDS, WITHOUT_MONGO_ID, activeBundleFilter, createMongoCollections, mongoSessionOptions };
|
|
@@ -1,94 +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, toPredicate = predicate) => {
|
|
36
|
-
const items = Array.isArray(where) ? where : [];
|
|
37
|
-
const first = items[0];
|
|
38
|
-
if (first === void 0) return {};
|
|
39
|
-
let result = toPredicate(first);
|
|
40
|
-
for (const item of items.slice(1)) result = { [item.connector === "OR" ? "$or" : "$and"]: [result, toPredicate(item)] };
|
|
41
|
-
return result;
|
|
42
|
-
};
|
|
43
|
-
const insightsPredicate = (where) => {
|
|
44
|
-
if ("mode" in where && where.mode === "insensitive") return predicate(where);
|
|
45
|
-
switch (where.operator) {
|
|
46
|
-
case void 0:
|
|
47
|
-
case "eq": return { [where.field]: { $eq: where.value } };
|
|
48
|
-
case "gt":
|
|
49
|
-
case "gte":
|
|
50
|
-
case "lt":
|
|
51
|
-
case "lte":
|
|
52
|
-
case "in": return { [where.field]: { [`$${where.operator}`]: where.value } };
|
|
53
|
-
default: return predicate(where);
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
function createMongoBundleWhere(where) {
|
|
57
|
-
return createMongoWhereDocument(where);
|
|
58
|
-
}
|
|
59
|
-
function createMongoPatchWhere(where) {
|
|
60
|
-
return createMongoWhereDocument(where);
|
|
61
|
-
}
|
|
62
|
-
function createMongoEventWhere(where) {
|
|
63
|
-
return createMongoWhereDocument(where, insightsPredicate);
|
|
64
|
-
}
|
|
65
|
-
function createMongoInstallationWhere(where) {
|
|
66
|
-
return createMongoWhereDocument(where, insightsPredicate);
|
|
67
|
-
}
|
|
68
|
-
function createMongoApiKeyWhere(where) {
|
|
69
|
-
return createMongoWhereDocument(where);
|
|
70
|
-
}
|
|
71
|
-
function createMongoChannelWhere(where) {
|
|
72
|
-
return createMongoWhereDocument(where);
|
|
73
|
-
}
|
|
74
|
-
function createMongoReleaseWhere(where) {
|
|
75
|
-
return createMongoWhereDocument(where);
|
|
76
|
-
}
|
|
77
|
-
function createMongoReleaseCatalogWhere(where) {
|
|
78
|
-
return createMongoWhereDocument(where);
|
|
79
|
-
}
|
|
80
|
-
const createMongoSort = (input) => {
|
|
81
|
-
const clauses = Array.isArray(input) ? input : input && "orderBy" in input && Array.isArray(input.orderBy) ? input.orderBy : void 0;
|
|
82
|
-
if (clauses === void 0 || clauses.length === 0) return void 0;
|
|
83
|
-
return Object.fromEntries(clauses.map((clause) => [clause.field, clause.direction === "asc" ? 1 : -1]));
|
|
84
|
-
};
|
|
85
|
-
//#endregion
|
|
86
|
-
exports.createMongoApiKeyWhere = createMongoApiKeyWhere;
|
|
87
|
-
exports.createMongoBundleWhere = createMongoBundleWhere;
|
|
88
|
-
exports.createMongoChannelWhere = createMongoChannelWhere;
|
|
89
|
-
exports.createMongoEventWhere = createMongoEventWhere;
|
|
90
|
-
exports.createMongoInstallationWhere = createMongoInstallationWhere;
|
|
91
|
-
exports.createMongoPatchWhere = createMongoPatchWhere;
|
|
92
|
-
exports.createMongoReleaseCatalogWhere = createMongoReleaseCatalogWhere;
|
|
93
|
-
exports.createMongoReleaseWhere = createMongoReleaseWhere;
|
|
94
|
-
exports.createMongoSort = createMongoSort;
|
|
@@ -1,86 +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, toPredicate = predicate) => {
|
|
36
|
-
const items = Array.isArray(where) ? where : [];
|
|
37
|
-
const first = items[0];
|
|
38
|
-
if (first === void 0) return {};
|
|
39
|
-
let result = toPredicate(first);
|
|
40
|
-
for (const item of items.slice(1)) result = { [item.connector === "OR" ? "$or" : "$and"]: [result, toPredicate(item)] };
|
|
41
|
-
return result;
|
|
42
|
-
};
|
|
43
|
-
const insightsPredicate = (where) => {
|
|
44
|
-
if ("mode" in where && where.mode === "insensitive") return predicate(where);
|
|
45
|
-
switch (where.operator) {
|
|
46
|
-
case void 0:
|
|
47
|
-
case "eq": return { [where.field]: { $eq: where.value } };
|
|
48
|
-
case "gt":
|
|
49
|
-
case "gte":
|
|
50
|
-
case "lt":
|
|
51
|
-
case "lte":
|
|
52
|
-
case "in": return { [where.field]: { [`$${where.operator}`]: where.value } };
|
|
53
|
-
default: return predicate(where);
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
function createMongoBundleWhere(where) {
|
|
57
|
-
return createMongoWhereDocument(where);
|
|
58
|
-
}
|
|
59
|
-
function createMongoPatchWhere(where) {
|
|
60
|
-
return createMongoWhereDocument(where);
|
|
61
|
-
}
|
|
62
|
-
function createMongoEventWhere(where) {
|
|
63
|
-
return createMongoWhereDocument(where, insightsPredicate);
|
|
64
|
-
}
|
|
65
|
-
function createMongoInstallationWhere(where) {
|
|
66
|
-
return createMongoWhereDocument(where, insightsPredicate);
|
|
67
|
-
}
|
|
68
|
-
function createMongoApiKeyWhere(where) {
|
|
69
|
-
return createMongoWhereDocument(where);
|
|
70
|
-
}
|
|
71
|
-
function createMongoChannelWhere(where) {
|
|
72
|
-
return createMongoWhereDocument(where);
|
|
73
|
-
}
|
|
74
|
-
function createMongoReleaseWhere(where) {
|
|
75
|
-
return createMongoWhereDocument(where);
|
|
76
|
-
}
|
|
77
|
-
function createMongoReleaseCatalogWhere(where) {
|
|
78
|
-
return createMongoWhereDocument(where);
|
|
79
|
-
}
|
|
80
|
-
const createMongoSort = (input) => {
|
|
81
|
-
const clauses = Array.isArray(input) ? input : input && "orderBy" in input && Array.isArray(input.orderBy) ? input.orderBy : void 0;
|
|
82
|
-
if (clauses === void 0 || clauses.length === 0) return void 0;
|
|
83
|
-
return Object.fromEntries(clauses.map((clause) => [clause.field, clause.direction === "asc" ? 1 : -1]));
|
|
84
|
-
};
|
|
85
|
-
//#endregion
|
|
86
|
-
export { createMongoApiKeyWhere, createMongoBundleWhere, createMongoChannelWhere, createMongoEventWhere, createMongoInstallationWhere, createMongoPatchWhere, createMongoReleaseCatalogWhere, createMongoReleaseWhere, createMongoSort };
|
|
@@ -1,210 +0,0 @@
|
|
|
1
|
-
const require_databasePluginUtils = require("./databasePluginUtils.cjs");
|
|
2
|
-
const require_mongodbCollections = require("./mongodbCollections.cjs");
|
|
3
|
-
const require_mongodbQuery = require("./mongodbQuery.cjs");
|
|
4
|
-
let _hot_updater_plugin_core = require("@hot-updater/plugin-core");
|
|
5
|
-
//#region src/adapters/mongodbReads.ts
|
|
6
|
-
const findMongoRows = async (collections, input, session) => {
|
|
7
|
-
if (input.limit === 0) return [];
|
|
8
|
-
const rawOrderBy = input.orderBy;
|
|
9
|
-
const needsInMemoryOrder = require_databasePluginUtils.hasNullOrderOverrides(rawOrderBy);
|
|
10
|
-
switch (input.model) {
|
|
11
|
-
case "bundles": {
|
|
12
|
-
const cursor = collections.bundles.find(require_mongodbCollections.activeBundleFilter(require_mongodbQuery.createMongoBundleWhere(input.where)), {
|
|
13
|
-
projection: require_mongodbCollections.WITHOUT_INTERNAL_FIELDS,
|
|
14
|
-
...require_mongodbCollections.mongoSessionOptions(session)
|
|
15
|
-
}).skip(input.offset).limit(input.limit);
|
|
16
|
-
if (rawOrderBy === void 0) return cursor.toArray();
|
|
17
|
-
if (needsInMemoryOrder) {
|
|
18
|
-
const rows = await collections.bundles.find(require_mongodbCollections.activeBundleFilter(require_mongodbQuery.createMongoBundleWhere(input.where)), {
|
|
19
|
-
projection: require_mongodbCollections.WITHOUT_INTERNAL_FIELDS,
|
|
20
|
-
...require_mongodbCollections.mongoSessionOptions(session)
|
|
21
|
-
}).toArray();
|
|
22
|
-
return require_databasePluginUtils.sortRowsByOrder(rows, rawOrderBy).slice(input.offset, input.offset + input.limit);
|
|
23
|
-
}
|
|
24
|
-
const sort = require_mongodbQuery.createMongoSort(input);
|
|
25
|
-
return sort === void 0 ? cursor.toArray() : cursor.sort(sort).toArray();
|
|
26
|
-
}
|
|
27
|
-
case "bundle_patches": {
|
|
28
|
-
const cursor = collections.bundlePatches.find(require_mongodbQuery.createMongoPatchWhere(input.where), {
|
|
29
|
-
projection: require_mongodbCollections.WITHOUT_MONGO_ID,
|
|
30
|
-
...require_mongodbCollections.mongoSessionOptions(session)
|
|
31
|
-
}).skip(input.offset).limit(input.limit);
|
|
32
|
-
if (rawOrderBy === void 0) return cursor.toArray();
|
|
33
|
-
if (needsInMemoryOrder) {
|
|
34
|
-
const rows = await collections.bundlePatches.find(require_mongodbQuery.createMongoPatchWhere(input.where), {
|
|
35
|
-
projection: require_mongodbCollections.WITHOUT_MONGO_ID,
|
|
36
|
-
...require_mongodbCollections.mongoSessionOptions(session)
|
|
37
|
-
}).toArray();
|
|
38
|
-
return require_databasePluginUtils.sortRowsByOrder(rows, rawOrderBy).slice(input.offset, input.offset + input.limit);
|
|
39
|
-
}
|
|
40
|
-
const sort = require_mongodbQuery.createMongoSort(input);
|
|
41
|
-
return sort === void 0 ? cursor.toArray() : cursor.sort(sort).toArray();
|
|
42
|
-
}
|
|
43
|
-
case "bundle_events": {
|
|
44
|
-
const cursor = collections.bundleEvents.find(require_mongodbQuery.createMongoEventWhere(input.where), {
|
|
45
|
-
projection: require_mongodbCollections.WITHOUT_MONGO_ID,
|
|
46
|
-
...require_mongodbCollections.mongoSessionOptions(session),
|
|
47
|
-
collation: { locale: "simple" },
|
|
48
|
-
readPreference: "primary"
|
|
49
|
-
}).skip(input.offset).limit(input.limit);
|
|
50
|
-
if (rawOrderBy === void 0) return cursor.toArray();
|
|
51
|
-
if (needsInMemoryOrder) {
|
|
52
|
-
const rows = await collections.bundleEvents.find(require_mongodbQuery.createMongoEventWhere(input.where), {
|
|
53
|
-
projection: require_mongodbCollections.WITHOUT_MONGO_ID,
|
|
54
|
-
...require_mongodbCollections.mongoSessionOptions(session),
|
|
55
|
-
collation: { locale: "simple" },
|
|
56
|
-
readPreference: "primary"
|
|
57
|
-
}).toArray();
|
|
58
|
-
return require_databasePluginUtils.sortRowsByOrder(rows, rawOrderBy).slice(input.offset, input.offset + input.limit);
|
|
59
|
-
}
|
|
60
|
-
const sort = require_mongodbQuery.createMongoSort(input);
|
|
61
|
-
return sort === void 0 ? cursor.toArray() : cursor.sort(sort).toArray();
|
|
62
|
-
}
|
|
63
|
-
case "bundle_installations": {
|
|
64
|
-
const cursor = collections.bundleInstallations.find(require_mongodbQuery.createMongoInstallationWhere(input.where), {
|
|
65
|
-
projection: require_mongodbCollections.WITHOUT_MONGO_ID,
|
|
66
|
-
...require_mongodbCollections.mongoSessionOptions(session),
|
|
67
|
-
collation: { locale: "simple" },
|
|
68
|
-
readPreference: "primary"
|
|
69
|
-
}).skip(input.offset).limit(input.limit);
|
|
70
|
-
if (rawOrderBy === void 0) return cursor.toArray();
|
|
71
|
-
if (needsInMemoryOrder) {
|
|
72
|
-
const rows = await collections.bundleInstallations.find(require_mongodbQuery.createMongoInstallationWhere(input.where), {
|
|
73
|
-
projection: require_mongodbCollections.WITHOUT_MONGO_ID,
|
|
74
|
-
...require_mongodbCollections.mongoSessionOptions(session),
|
|
75
|
-
collation: { locale: "simple" },
|
|
76
|
-
readPreference: "primary"
|
|
77
|
-
}).toArray();
|
|
78
|
-
return require_databasePluginUtils.sortRowsByOrder(rows, rawOrderBy).slice(input.offset, input.offset + input.limit);
|
|
79
|
-
}
|
|
80
|
-
const sort = require_mongodbQuery.createMongoSort(input);
|
|
81
|
-
return sort === void 0 ? cursor.toArray() : cursor.sort(sort).toArray();
|
|
82
|
-
}
|
|
83
|
-
case "api_keys": {
|
|
84
|
-
const cursor = collections.apiKeys.find(require_mongodbQuery.createMongoApiKeyWhere(input.where), {
|
|
85
|
-
projection: require_mongodbCollections.WITHOUT_MONGO_ID,
|
|
86
|
-
...require_mongodbCollections.mongoSessionOptions(session)
|
|
87
|
-
}).skip(input.offset).limit(input.limit);
|
|
88
|
-
if (rawOrderBy === void 0) return cursor.toArray();
|
|
89
|
-
if (needsInMemoryOrder) {
|
|
90
|
-
const rows = await collections.apiKeys.find(require_mongodbQuery.createMongoApiKeyWhere(input.where), {
|
|
91
|
-
projection: require_mongodbCollections.WITHOUT_MONGO_ID,
|
|
92
|
-
...require_mongodbCollections.mongoSessionOptions(session)
|
|
93
|
-
}).toArray();
|
|
94
|
-
return require_databasePluginUtils.sortRowsByOrder(rows, rawOrderBy).slice(input.offset, input.offset + input.limit);
|
|
95
|
-
}
|
|
96
|
-
const sort = require_mongodbQuery.createMongoSort(input);
|
|
97
|
-
return sort === void 0 ? cursor.toArray() : cursor.sort(sort).toArray();
|
|
98
|
-
}
|
|
99
|
-
case "channels": {
|
|
100
|
-
const cursor = collections.channels.find(require_mongodbQuery.createMongoChannelWhere(input.where), {
|
|
101
|
-
projection: require_mongodbCollections.WITHOUT_MONGO_ID,
|
|
102
|
-
...require_mongodbCollections.mongoSessionOptions(session)
|
|
103
|
-
}).skip(input.offset).limit(input.limit);
|
|
104
|
-
if (rawOrderBy === void 0) return cursor.toArray();
|
|
105
|
-
if (needsInMemoryOrder) {
|
|
106
|
-
const rows = await collections.channels.find(require_mongodbQuery.createMongoChannelWhere(input.where), {
|
|
107
|
-
projection: require_mongodbCollections.WITHOUT_MONGO_ID,
|
|
108
|
-
...require_mongodbCollections.mongoSessionOptions(session)
|
|
109
|
-
}).toArray();
|
|
110
|
-
return require_databasePluginUtils.sortRowsByOrder(rows, rawOrderBy).slice(input.offset, input.offset + input.limit);
|
|
111
|
-
}
|
|
112
|
-
const sort = require_mongodbQuery.createMongoSort(input);
|
|
113
|
-
return sort === void 0 ? cursor.toArray() : cursor.sort(sort).toArray();
|
|
114
|
-
}
|
|
115
|
-
case "releases": {
|
|
116
|
-
const cursor = collections.releases.find(require_mongodbQuery.createMongoReleaseWhere(input.where), {
|
|
117
|
-
projection: require_mongodbCollections.WITHOUT_MONGO_ID,
|
|
118
|
-
...require_mongodbCollections.mongoSessionOptions(session)
|
|
119
|
-
}).skip(input.offset).limit(input.limit);
|
|
120
|
-
if (rawOrderBy === void 0) return cursor.toArray();
|
|
121
|
-
if (needsInMemoryOrder) {
|
|
122
|
-
const rows = await collections.releases.find(require_mongodbQuery.createMongoReleaseWhere(input.where), {
|
|
123
|
-
projection: require_mongodbCollections.WITHOUT_MONGO_ID,
|
|
124
|
-
...require_mongodbCollections.mongoSessionOptions(session)
|
|
125
|
-
}).toArray();
|
|
126
|
-
return require_databasePluginUtils.sortRowsByOrder(rows, rawOrderBy).slice(input.offset, input.offset + input.limit);
|
|
127
|
-
}
|
|
128
|
-
const sort = require_mongodbQuery.createMongoSort(input);
|
|
129
|
-
return sort === void 0 ? cursor.toArray() : cursor.sort(sort).toArray();
|
|
130
|
-
}
|
|
131
|
-
case "release_catalogs": {
|
|
132
|
-
const cursor = collections.releaseCatalogs.find(require_mongodbQuery.createMongoReleaseCatalogWhere(input.where), {
|
|
133
|
-
projection: require_mongodbCollections.WITHOUT_MONGO_ID,
|
|
134
|
-
...require_mongodbCollections.mongoSessionOptions(session)
|
|
135
|
-
}).skip(input.offset).limit(input.limit);
|
|
136
|
-
if (rawOrderBy === void 0) return cursor.toArray();
|
|
137
|
-
if (needsInMemoryOrder) {
|
|
138
|
-
const rows = await collections.releaseCatalogs.find(require_mongodbQuery.createMongoReleaseCatalogWhere(input.where), {
|
|
139
|
-
projection: require_mongodbCollections.WITHOUT_MONGO_ID,
|
|
140
|
-
...require_mongodbCollections.mongoSessionOptions(session)
|
|
141
|
-
}).toArray();
|
|
142
|
-
return require_databasePluginUtils.sortRowsByOrder(rows, rawOrderBy).slice(input.offset, input.offset + input.limit);
|
|
143
|
-
}
|
|
144
|
-
const sort = require_mongodbQuery.createMongoSort(input);
|
|
145
|
-
return sort === void 0 ? cursor.toArray() : cursor.sort(sort).toArray();
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
};
|
|
149
|
-
const createMongoReads = (collections, session) => ({
|
|
150
|
-
count: async (input) => {
|
|
151
|
-
if (input.distinct !== void 0) throw new _hot_updater_plugin_core.DatabasePluginInputError("invalid-operation");
|
|
152
|
-
switch (input.model) {
|
|
153
|
-
case "bundles": return collections.bundles.countDocuments(require_mongodbCollections.activeBundleFilter(require_mongodbQuery.createMongoBundleWhere(input.where)), require_mongodbCollections.mongoSessionOptions(session));
|
|
154
|
-
case "bundle_patches": return collections.bundlePatches.countDocuments(require_mongodbQuery.createMongoPatchWhere(input.where), require_mongodbCollections.mongoSessionOptions(session));
|
|
155
|
-
case "releases": return collections.releases.countDocuments(require_mongodbQuery.createMongoReleaseWhere(input.where), require_mongodbCollections.mongoSessionOptions(session));
|
|
156
|
-
case "bundle_installations": return collections.bundleInstallations.countDocuments(require_mongodbQuery.createMongoInstallationWhere(input.where), {
|
|
157
|
-
...require_mongodbCollections.mongoSessionOptions(session),
|
|
158
|
-
collation: { locale: "simple" },
|
|
159
|
-
readPreference: "primary",
|
|
160
|
-
...session === void 0 ? { readConcern: { level: "snapshot" } } : {}
|
|
161
|
-
});
|
|
162
|
-
case "bundle_events": return collections.bundleEvents.countDocuments(require_mongodbQuery.createMongoEventWhere(input.where), {
|
|
163
|
-
...require_mongodbCollections.mongoSessionOptions(session),
|
|
164
|
-
collation: { locale: "simple" },
|
|
165
|
-
readPreference: "primary",
|
|
166
|
-
...session === void 0 ? { readConcern: { level: "snapshot" } } : {}
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
},
|
|
170
|
-
findOne: async (input) => {
|
|
171
|
-
switch (input.model) {
|
|
172
|
-
case "bundles": return collections.bundles.findOne(require_mongodbCollections.activeBundleFilter(require_mongodbQuery.createMongoBundleWhere(input.where)), {
|
|
173
|
-
projection: require_mongodbCollections.WITHOUT_INTERNAL_FIELDS,
|
|
174
|
-
...require_mongodbCollections.mongoSessionOptions(session)
|
|
175
|
-
});
|
|
176
|
-
case "channels": return collections.channels.findOne(require_mongodbQuery.createMongoChannelWhere(input.where), {
|
|
177
|
-
projection: require_mongodbCollections.WITHOUT_MONGO_ID,
|
|
178
|
-
...require_mongodbCollections.mongoSessionOptions(session)
|
|
179
|
-
});
|
|
180
|
-
case "api_keys": return collections.apiKeys.findOne(require_mongodbQuery.createMongoApiKeyWhere(input.where), {
|
|
181
|
-
projection: require_mongodbCollections.WITHOUT_MONGO_ID,
|
|
182
|
-
...require_mongodbCollections.mongoSessionOptions(session)
|
|
183
|
-
});
|
|
184
|
-
case "bundle_patches": return collections.bundlePatches.findOne(require_mongodbQuery.createMongoPatchWhere(input.where), {
|
|
185
|
-
projection: require_mongodbCollections.WITHOUT_MONGO_ID,
|
|
186
|
-
...require_mongodbCollections.mongoSessionOptions(session)
|
|
187
|
-
});
|
|
188
|
-
case "releases": return collections.releases.findOne(require_mongodbQuery.createMongoReleaseWhere(input.where), {
|
|
189
|
-
projection: require_mongodbCollections.WITHOUT_MONGO_ID,
|
|
190
|
-
...require_mongodbCollections.mongoSessionOptions(session)
|
|
191
|
-
});
|
|
192
|
-
case "release_catalogs": return collections.releaseCatalogs.findOne(require_mongodbQuery.createMongoReleaseCatalogWhere(input.where), {
|
|
193
|
-
projection: require_mongodbCollections.WITHOUT_MONGO_ID,
|
|
194
|
-
...require_mongodbCollections.mongoSessionOptions(session)
|
|
195
|
-
});
|
|
196
|
-
case "bundle_installations": return collections.bundleInstallations.findOne(require_mongodbQuery.createMongoInstallationWhere(input.where), {
|
|
197
|
-
projection: require_mongodbCollections.WITHOUT_MONGO_ID,
|
|
198
|
-
...require_mongodbCollections.mongoSessionOptions(session),
|
|
199
|
-
collation: { locale: "simple" },
|
|
200
|
-
readPreference: "primary"
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
},
|
|
204
|
-
findMany: (input) => {
|
|
205
|
-
if (input.distinctOn !== void 0) throw new _hot_updater_plugin_core.DatabasePluginInputError("invalid-operation");
|
|
206
|
-
return findMongoRows(collections, input, session);
|
|
207
|
-
}
|
|
208
|
-
});
|
|
209
|
-
//#endregion
|
|
210
|
-
exports.createMongoReads = createMongoReads;
|