@hot-updater/server 1.0.0-rc.18 → 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 +6 -8
- package/dist/adapters/drizzle.d.cts +2 -2
- package/dist/adapters/drizzle.d.mts +2 -2
- package/dist/adapters/drizzle.mjs +1 -3
- package/dist/adapters/drizzleExecutor.d.cts +1 -1
- package/dist/adapters/drizzleExecutor.d.mts +1 -1
- package/dist/adapters/kysely.cjs +4 -6
- package/dist/adapters/kysely.d.cts +3 -3
- package/dist/adapters/kysely.d.mts +3 -3
- package/dist/adapters/kysely.mjs +1 -3
- package/dist/adapters/kyselyExecutor.d.cts +1 -2
- package/dist/adapters/kyselyExecutor.d.mts +1 -2
- package/dist/adapters/mongodb.cjs +10 -21
- package/dist/adapters/mongodb.d.cts +1 -1
- package/dist/adapters/mongodb.d.mts +1 -1
- package/dist/adapters/mongodb.mjs +9 -20
- package/dist/adapters/mongodbAdapter.cjs +11 -11
- package/dist/adapters/mongodbAdapter.d.cts +1 -1
- package/dist/adapters/mongodbAdapter.d.mts +1 -1
- package/dist/adapters/mongodbAdapter.mjs +1 -1
- package/dist/adapters/prisma.cjs +7 -9
- package/dist/adapters/prisma.d.cts +1 -1
- package/dist/adapters/prisma.d.mts +1 -1
- package/dist/adapters/prisma.mjs +1 -3
- package/dist/adapters/prismaExecutor.cjs +2 -3
- package/dist/adapters/prismaExecutor.mjs +1 -2
- package/dist/adapters/sqlProviders.cjs +7 -2
- package/dist/adapters/sqlProviders.mjs +6 -1
- package/dist/assembly/assemblePlugins.cjs +26 -48
- package/dist/assembly/assemblePlugins.d.cts +2 -5
- package/dist/assembly/assemblePlugins.d.mts +2 -5
- package/dist/assembly/assemblePlugins.mjs +19 -45
- package/dist/assembly/clientPlugins.cjs +6 -4
- package/dist/assembly/clientPlugins.mjs +2 -0
- package/dist/assembly/configError.d.cts +1 -6
- package/dist/assembly/configError.d.mts +1 -6
- package/dist/assembly/configError.mjs +1 -6
- package/dist/core/api.cjs +0 -40
- package/dist/core/api.d.cts +5 -16
- package/dist/core/api.d.mts +5 -16
- package/dist/core/api.mjs +1 -37
- package/dist/core/baseCandidates.cjs +0 -43
- package/dist/core/baseCandidates.mjs +2 -43
- package/dist/core/operations.cjs +13 -12
- package/dist/core/operations.mjs +6 -5
- package/dist/core/reads.cjs +4 -4
- package/dist/core/reads.d.cts +2 -41
- package/dist/core/reads.d.mts +2 -41
- package/dist/core/reads.mjs +3 -3
- package/dist/core/releases.cjs +6 -6
- package/dist/core/releases.mjs +1 -1
- package/dist/core/writes.cjs +2 -2
- package/dist/core/writes.mjs +1 -1
- package/dist/createHotUpdaterCore.cjs +39 -39
- package/dist/createHotUpdaterCore.d.cts +61 -8
- package/dist/createHotUpdaterCore.d.mts +61 -8
- package/dist/createHotUpdaterCore.mjs +35 -32
- package/dist/db/engineDrizzleSchema.cjs +3 -4
- package/dist/db/engineDrizzleSchema.mjs +1 -2
- package/dist/db/enginePrismaSchema.cjs +4 -5
- package/dist/db/enginePrismaSchema.d.cts +1 -1
- package/dist/db/enginePrismaSchema.d.mts +1 -1
- package/dist/db/enginePrismaSchema.mjs +1 -2
- package/dist/db/releaseCatalog.cjs +6 -6
- package/dist/db/releaseCatalog.mjs +1 -1
- package/dist/db/updateArtifacts.cjs +6 -6
- package/dist/db/updateArtifacts.mjs +1 -1
- package/dist/handler.cjs +3 -4
- package/dist/handler.mjs +1 -1
- package/dist/handlerAdminRoutes.cjs +1 -2
- package/dist/handlerAdminRoutes.mjs +1 -2
- package/dist/handlerVersionRoutes.cjs +2 -2
- package/dist/handlerVersionRoutes.mjs +2 -2
- package/dist/index.cjs +9 -2
- package/dist/index.d.cts +4 -3
- package/dist/index.d.mts +4 -3
- package/dist/index.mjs +2 -1
- package/dist/node.cjs +3 -6
- package/dist/node.d.cts +3 -3
- package/dist/node.d.mts +3 -3
- 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 +8 -52
- package/dist/plugins/api-keys/index.d.cts +1 -84
- package/dist/plugins/api-keys/index.d.mts +1 -84
- package/dist/plugins/api-keys/index.mjs +2 -49
- package/dist/plugins/definePlugin.d.cts +2 -200
- package/dist/plugins/definePlugin.d.mts +2 -200
- package/dist/plugins/insights/index.cjs +7 -126
- package/dist/plugins/insights/index.d.cts +1 -398
- package/dist/plugins/insights/index.d.mts +1 -398
- package/dist/plugins/insights/index.mjs +2 -121
- 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 +1 -1
- package/dist/types/index.d.mts +1 -1
- package/package.json +15 -37
- package/dist/_virtual/_rolldown/runtime.cjs +0 -23
- package/dist/assembly/clientPlugins.d.cts +0 -16
- package/dist/assembly/clientPlugins.d.mts +0 -16
- package/dist/assembly/configError.cjs +0 -7
- package/dist/assembly/databasePlugins.cjs +0 -27
- package/dist/assembly/databasePlugins.d.cts +0 -43
- package/dist/assembly/databasePlugins.d.mts +0 -43
- package/dist/assembly/databasePlugins.mjs +0 -26
- package/dist/assembly/pluginCli.cjs +0 -125
- package/dist/assembly/pluginCli.d.cts +0 -59
- package/dist/assembly/pluginCli.d.mts +0 -59
- package/dist/assembly/pluginCli.mjs +0 -121
- package/dist/core/baseCandidates.d.cts +0 -17
- package/dist/core/baseCandidates.d.mts +0 -17
- package/dist/core/schema.cjs +0 -279
- package/dist/core/schema.d.cts +0 -307
- package/dist/core/schema.d.mts +0 -307
- package/dist/core/schema.mjs +0 -277
- package/dist/database/aggregateBatching.cjs +0 -626
- package/dist/database/aggregateBatching.d.cts +0 -10
- package/dist/database/aggregateBatching.d.mts +0 -10
- package/dist/database/aggregateBatching.mjs +0 -625
- package/dist/database/busy.cjs +0 -36
- package/dist/database/busy.d.cts +0 -12
- package/dist/database/busy.d.mts +0 -12
- package/dist/database/busy.mjs +0 -36
- package/dist/database/cursor.cjs +0 -44
- package/dist/database/cursor.d.cts +0 -7
- package/dist/database/cursor.d.mts +0 -7
- package/dist/database/cursor.mjs +0 -40
- package/dist/database/database.cjs +0 -63
- package/dist/database/database.d.cts +0 -136
- package/dist/database/database.d.mts +0 -136
- package/dist/database/database.mjs +0 -63
- package/dist/database/definitions.d.cts +0 -78
- package/dist/database/definitions.d.mts +0 -78
- package/dist/database/engine.cjs +0 -37
- package/dist/database/engine.d.cts +0 -41
- package/dist/database/engine.d.mts +0 -41
- package/dist/database/engine.mjs +0 -37
- package/dist/database/engineAggregates.cjs +0 -118
- package/dist/database/engineAggregates.mjs +0 -115
- package/dist/database/engineReads.cjs +0 -182
- package/dist/database/engineReads.d.cts +0 -35
- package/dist/database/engineReads.d.mts +0 -35
- package/dist/database/engineReads.mjs +0 -181
- package/dist/database/engineTransaction.cjs +0 -399
- package/dist/database/engineTransaction.d.cts +0 -26
- package/dist/database/engineTransaction.d.mts +0 -26
- package/dist/database/engineTransaction.mjs +0 -398
- package/dist/database/errors.cjs +0 -27
- package/dist/database/errors.d.cts +0 -21
- package/dist/database/errors.d.mts +0 -21
- package/dist/database/errors.mjs +0 -24
- package/dist/database/fence.cjs +0 -125
- package/dist/database/fence.d.cts +0 -42
- package/dist/database/fence.d.mts +0 -42
- package/dist/database/fence.mjs +0 -117
- package/dist/database/index.cjs +0 -136
- package/dist/database/index.d.cts +0 -18
- package/dist/database/index.d.mts +0 -18
- package/dist/database/index.mjs +0 -16
- package/dist/database/kv/kvAdapter.cjs +0 -285
- package/dist/database/kv/kvAdapter.d.cts +0 -109
- package/dist/database/kv/kvAdapter.d.mts +0 -109
- package/dist/database/kv/kvAdapter.mjs +0 -284
- package/dist/database/resolveSchema.cjs +0 -199
- package/dist/database/resolveSchema.d.cts +0 -42
- package/dist/database/resolveSchema.d.mts +0 -42
- package/dist/database/resolveSchema.mjs +0 -196
- package/dist/database/retention.cjs +0 -92
- package/dist/database/retention.mjs +0 -90
- package/dist/database/schema.cjs +0 -24
- package/dist/database/schema.d.cts +0 -90
- package/dist/database/schema.d.mts +0 -90
- package/dist/database/schema.mjs +0 -23
- package/dist/database/sql/sqlAdapter.cjs +0 -290
- package/dist/database/sql/sqlAdapter.d.cts +0 -46
- package/dist/database/sql/sqlAdapter.d.mts +0 -46
- package/dist/database/sql/sqlAdapter.mjs +0 -287
- package/dist/database/sql/sqlSchema.cjs +0 -171
- package/dist/database/sql/sqlSchema.d.cts +0 -8
- package/dist/database/sql/sqlSchema.d.mts +0 -8
- package/dist/database/sql/sqlSchema.mjs +0 -165
- package/dist/db/coreDatabase.cjs +0 -85
- package/dist/db/coreDatabase.d.cts +0 -57
- package/dist/db/coreDatabase.d.mts +0 -57
- package/dist/db/coreDatabase.mjs +0 -78
- package/dist/db/createBundleDiff.cjs +0 -144
- package/dist/db/createBundleDiff.d.cts +0 -17
- package/dist/db/createBundleDiff.d.mts +0 -17
- package/dist/db/createBundleDiff.mjs +0 -141
- package/dist/db/engineMigrator.cjs +0 -53
- package/dist/db/engineMigrator.mjs +0 -53
- package/dist/db/engineSql.cjs +0 -26
- package/dist/db/engineSql.d.cts +0 -17
- package/dist/db/engineSql.d.mts +0 -17
- package/dist/db/engineSql.mjs +0 -25
- package/dist/db/engineSqlMigrator.cjs +0 -66
- package/dist/db/engineSqlMigrator.mjs +0 -66
- package/dist/db/fixedMigratorShared.cjs +0 -12
- package/dist/db/fixedMigratorShared.mjs +0 -11
- package/dist/db/index.cjs +0 -50
- package/dist/db/index.d.cts +0 -23
- package/dist/db/index.d.mts +0 -23
- package/dist/db/index.mjs +0 -33
- package/dist/db/releaseCatalog.d.cts +0 -16
- package/dist/db/releaseCatalog.d.mts +0 -16
- package/dist/db/schemaSettings.cjs +0 -63
- package/dist/db/schemaSettings.d.cts +0 -12
- package/dist/db/schemaSettings.d.mts +0 -12
- package/dist/db/schemaSettings.mjs +0 -62
- package/dist/db/settingsMigrator.cjs +0 -92
- package/dist/db/settingsMigrator.mjs +0 -89
- package/dist/db/types.cjs +0 -11
- package/dist/db/types.d.cts +0 -78
- package/dist/db/types.d.mts +0 -78
- package/dist/db/types.mjs +0 -10
- package/dist/diff.cjs +0 -3
- package/dist/diff.d.cts +0 -2
- package/dist/diff.d.mts +0 -2
- package/dist/diff.mjs +0 -2
- package/dist/plugins/api-keys/apiKeys.cjs +0 -139
- package/dist/plugins/api-keys/apiKeys.d.cts +0 -27
- package/dist/plugins/api-keys/apiKeys.d.mts +0 -27
- package/dist/plugins/api-keys/apiKeys.mjs +0 -129
- package/dist/plugins/api-keys/cli.cjs +0 -115
- package/dist/plugins/api-keys/cli.mjs +0 -114
- package/dist/plugins/api-keys/model.cjs +0 -58
- package/dist/plugins/api-keys/model.d.cts +0 -26
- package/dist/plugins/api-keys/model.d.mts +0 -26
- package/dist/plugins/api-keys/model.mjs +0 -58
- package/dist/plugins/api-keys/schema.cjs +0 -38
- package/dist/plugins/api-keys/schema.d.cts +0 -44
- package/dist/plugins/api-keys/schema.d.mts +0 -44
- package/dist/plugins/api-keys/schema.mjs +0 -39
- package/dist/plugins/definePlugin.cjs +0 -5
- package/dist/plugins/definePlugin.mjs +0 -5
- package/dist/plugins/index.cjs +0 -38
- package/dist/plugins/index.d.cts +0 -12
- package/dist/plugins/index.d.mts +0 -12
- package/dist/plugins/index.mjs +0 -9
- package/dist/plugins/insights/contract.cjs +0 -193
- package/dist/plugins/insights/contract.mjs +0 -189
- package/dist/plugins/insights/domain.d.cts +0 -149
- package/dist/plugins/insights/domain.d.mts +0 -149
- package/dist/plugins/insights/errors.cjs +0 -15
- package/dist/plugins/insights/errors.mjs +0 -14
- package/dist/plugins/insights/eventInput.cjs +0 -284
- package/dist/plugins/insights/eventInput.mjs +0 -282
- package/dist/plugins/insights/eventRow.cjs +0 -49
- package/dist/plugins/insights/eventRow.d.cts +0 -64
- package/dist/plugins/insights/eventRow.d.mts +0 -64
- package/dist/plugins/insights/eventRow.mjs +0 -47
- package/dist/plugins/insights/model.cjs +0 -17
- package/dist/plugins/insights/model.d.cts +0 -10
- package/dist/plugins/insights/model.d.mts +0 -10
- package/dist/plugins/insights/model.mjs +0 -17
- package/dist/plugins/insights/modelTypes.d.cts +0 -176
- package/dist/plugins/insights/modelTypes.d.mts +0 -176
- package/dist/plugins/insights/overview.cjs +0 -109
- package/dist/plugins/insights/overview.d.cts +0 -15
- package/dist/plugins/insights/overview.d.mts +0 -15
- package/dist/plugins/insights/overview.mjs +0 -107
- package/dist/plugins/insights/provider.cjs +0 -375
- package/dist/plugins/insights/provider.d.cts +0 -6
- package/dist/plugins/insights/provider.d.mts +0 -6
- package/dist/plugins/insights/provider.mjs +0 -374
- package/dist/plugins/insights/queryInput.cjs +0 -93
- package/dist/plugins/insights/queryInput.mjs +0 -91
- package/dist/plugins/insights/reads.cjs +0 -681
- package/dist/plugins/insights/reads.d.cts +0 -61
- package/dist/plugins/insights/reads.d.mts +0 -61
- package/dist/plugins/insights/reads.mjs +0 -674
- package/dist/plugins/insights/recordEvent.cjs +0 -319
- package/dist/plugins/insights/recordEvent.d.cts +0 -18
- package/dist/plugins/insights/recordEvent.d.mts +0 -18
- package/dist/plugins/insights/recordEvent.mjs +0 -316
- package/dist/plugins/insights/routes.cjs +0 -96
- package/dist/plugins/insights/routes.mjs +0 -95
- package/dist/plugins/insights/schema.cjs +0 -489
- package/dist/plugins/insights/schema.d.cts +0 -698
- package/dist/plugins/insights/schema.d.mts +0 -698
- package/dist/plugins/insights/schema.mjs +0 -483
- package/dist/plugins/insights/testing/eventRow.d.mts +0 -64
- package/dist/plugins/insights/testing/expectInsightsIndex.mjs +0 -18
- package/dist/plugins/insights/testing/fixtures.d.mts +0 -8
- package/dist/plugins/insights/testing/fixtures.mjs +0 -25
- package/dist/plugins/insights/testing/index.d.mts +0 -24
- package/dist/plugins/insights/testing/index.mjs +0 -25
- package/dist/plugins/insights/testing/insightsModelTests.mjs +0 -714
- package/dist/plugins/insights/testing/modelTypes.d.mts +0 -176
- package/dist/plugins/insights/testing/setupInsightsHttpTestSuite.d.mts +0 -11
- package/dist/plugins/insights/testing/setupInsightsHttpTestSuite.mjs +0 -107
- package/dist/plugins/insights/testing/setupInsightsModelTestSuite.d.mts +0 -11
- package/dist/plugins/insights/testing/setupInsightsModelTestSuite.mjs +0 -31
- package/dist/plugins/insights/testing/types.d.mts +0 -26
- package/dist/plugins/insights/types.d.cts +0 -33
- package/dist/plugins/insights/types.d.mts +0 -33
- package/src/adapters/drizzle.conformance.integration.spec.ts +0 -34
- package/src/adapters/drizzle.readBudgets.integration.spec.ts +0 -43
- package/src/adapters/drizzle.spec.ts +0 -314
- package/src/adapters/drizzle.ts +0 -64
- package/src/adapters/drizzleExecutor.ts +0 -166
- package/src/adapters/kysely.conformance.integration.spec.ts +0 -36
- package/src/adapters/kysely.readBudgets.integration.spec.ts +0 -44
- package/src/adapters/kysely.spec.ts +0 -244
- package/src/adapters/kysely.ts +0 -46
- package/src/adapters/kyselyExecutor.ts +0 -53
- package/src/adapters/mongodb.integration.spec.ts +0 -271
- package/src/adapters/mongodb.readBudgets.integration.spec.ts +0 -61
- package/src/adapters/mongodb.ts +0 -45
- package/src/adapters/mongodbAdapter.ts +0 -307
- package/src/adapters/prisma.conformance.integration.spec.ts +0 -36
- package/src/adapters/prisma.integration.spec.ts +0 -146
- package/src/adapters/prisma.readBudgets.integration.spec.ts +0 -43
- package/src/adapters/prisma.spec.ts +0 -257
- package/src/adapters/prisma.ts +0 -74
- package/src/adapters/prismaExecutor.ts +0 -107
- package/src/adapters/prismaTestClients.ts +0 -182
- package/src/adapters/sqlProviders.ts +0 -14
- package/src/assembly/assemblePlugins.ts +0 -302
- package/src/assembly/assembly.spec.ts +0 -377
- package/src/assembly/assembly.types.spec.ts +0 -203
- package/src/assembly/clientPlugins.ts +0 -113
- package/src/assembly/configError.ts +0 -4
- package/src/assembly/databasePlugins.spec.ts +0 -71
- package/src/assembly/databasePlugins.ts +0 -102
- package/src/assembly/pluginCli.spec.ts +0 -254
- package/src/assembly/pluginCli.ts +0 -248
- package/src/assembly/pluginRoutes.spec.ts +0 -186
- package/src/core/api.ts +0 -139
- package/src/core/baseCandidates.spec.ts +0 -378
- package/src/core/baseCandidates.ts +0 -136
- package/src/core/index.ts +0 -44
- package/src/core/operations.spec.ts +0 -415
- package/src/core/operations.ts +0 -551
- package/src/core/reads.spec.ts +0 -300
- package/src/core/reads.ts +0 -417
- package/src/core/releases.spec.ts +0 -308
- package/src/core/releases.ts +0 -345
- package/src/core/schema.ts +0 -173
- package/src/core/writes.ts +0 -160
- package/src/createHotUpdaterCore.ts +0 -260
- package/src/database/aggregateBatching.spec.ts +0 -577
- package/src/database/aggregateBatching.ts +0 -803
- package/src/database/busy.spec.ts +0 -45
- package/src/database/busy.ts +0 -50
- package/src/database/cursor.ts +0 -65
- package/src/database/database.ts +0 -366
- package/src/database/database.types.spec.ts +0 -135
- package/src/database/definitions.ts +0 -76
- package/src/database/engine.ts +0 -62
- package/src/database/engineAggregates.spec.ts +0 -536
- package/src/database/engineAggregates.ts +0 -189
- package/src/database/engineReads.spec.ts +0 -219
- package/src/database/engineReads.ts +0 -304
- package/src/database/engineTransaction.spec.ts +0 -710
- package/src/database/engineTransaction.ts +0 -582
- package/src/database/errors.ts +0 -30
- package/src/database/fence.spec.ts +0 -223
- package/src/database/fence.ts +0 -175
- package/src/database/index.ts +0 -160
- package/src/database/kv/kvAdapter.batching.integration.spec.ts +0 -15
- package/src/database/kv/kvAdapter.conformance.integration.spec.ts +0 -19
- package/src/database/kv/kvAdapter.readBudgets.integration.spec.ts +0 -17
- package/src/database/kv/kvAdapter.spec.ts +0 -595
- package/src/database/kv/kvAdapter.ts +0 -479
- package/src/database/kv/kvTestStore.ts +0 -118
- package/src/database/memory.readBudgets.integration.spec.ts +0 -13
- package/src/database/resolveSchema.spec.ts +0 -230
- package/src/database/resolveSchema.ts +0 -375
- package/src/database/retention.spec.ts +0 -314
- package/src/database/retention.ts +0 -129
- package/src/database/schema.ts +0 -213
- package/src/database/schema.types.spec.ts +0 -94
- package/src/database/sql/docker-compose.yml +0 -36
- package/src/database/sql/sqlAdapter.integration.spec.ts +0 -145
- package/src/database/sql/sqlAdapter.readBudgets.integration.spec.ts +0 -123
- package/src/database/sql/sqlAdapter.spec.ts +0 -343
- package/src/database/sql/sqlAdapter.ts +0 -552
- package/src/database/sql/sqlSchema.ts +0 -286
- package/src/database/sql/sqlTestExecutors.ts +0 -183
- package/src/databaseTestSuite.spec.ts +0 -44
- package/src/db/bundleRows.spec.ts +0 -164
- package/src/db/bundleRows.ts +0 -10
- package/src/db/coreDatabase.ts +0 -153
- package/src/db/createBundleDiff.spec.ts +0 -464
- package/src/db/createBundleDiff.ts +0 -370
- package/src/db/engineDrizzleSchema.ts +0 -72
- package/src/db/engineMigrator.ts +0 -105
- package/src/db/enginePrismaSchema.ts +0 -147
- package/src/db/engineSql.spec.ts +0 -130
- package/src/db/engineSql.ts +0 -48
- package/src/db/engineSqlMigrator.ts +0 -116
- package/src/db/fixedMigratorShared.ts +0 -17
- package/src/db/index.spec.ts +0 -554
- package/src/db/index.ts +0 -93
- package/src/db/node-sqlite.d.ts +0 -25
- package/src/db/pluginTables.spec.ts +0 -248
- package/src/db/releaseCatalog.ts +0 -106
- package/src/db/schemaSettings.ts +0 -104
- package/src/db/settingsMigrator.spec.ts +0 -65
- package/src/db/settingsMigrator.ts +0 -152
- package/src/db/types.ts +0 -82
- package/src/db/updateArtifacts.spec.ts +0 -235
- package/src/db/updateArtifacts.ts +0 -473
- package/src/db/updateCheck.bench.ts +0 -47
- package/src/diff.ts +0 -6
- package/src/handler-standalone.integration.spec.ts +0 -321
- package/src/handler.spec.ts +0 -273
- package/src/handler.testFixtures.ts +0 -25
- package/src/handler.ts +0 -302
- package/src/handlerAdminRoutes.spec.ts +0 -183
- package/src/handlerAdminRoutes.ts +0 -536
- package/src/handlerAuth.integration.spec.ts +0 -33
- package/src/handlerErrors.ts +0 -7
- package/src/handlerManagement.spec.ts +0 -202
- package/src/handlerParameters.ts +0 -105
- package/src/handlerReleaseCatalogRoutes.ts +0 -176
- package/src/handlerTypes.ts +0 -19
- package/src/handlerVersionRoutes.ts +0 -25
- package/src/index.ts +0 -13
- package/src/internalRouter.ts +0 -104
- package/src/lintRules.spec.ts +0 -76
- package/src/node.spec.ts +0 -119
- package/src/node.ts +0 -111
- package/src/plugins/api-keys/apiKeys.integration.spec.ts +0 -92
- package/src/plugins/api-keys/apiKeys.spec.ts +0 -166
- package/src/plugins/api-keys/apiKeys.ts +0 -214
- package/src/plugins/api-keys/apiKeysPlugin.spec.ts +0 -168
- package/src/plugins/api-keys/cli.spec.ts +0 -187
- package/src/plugins/api-keys/cli.ts +0 -140
- package/src/plugins/api-keys/index.ts +0 -73
- package/src/plugins/api-keys/model.ts +0 -88
- package/src/plugins/api-keys/schema.ts +0 -22
- package/src/plugins/definePlugin.ts +0 -242
- package/src/plugins/index.ts +0 -73
- package/src/plugins/insights/contract.spec.ts +0 -285
- package/src/plugins/insights/contract.ts +0 -372
- package/src/plugins/insights/domain.ts +0 -176
- package/src/plugins/insights/errors.ts +0 -11
- package/src/plugins/insights/eventInput.ts +0 -381
- package/src/plugins/insights/eventRow.ts +0 -209
- package/src/plugins/insights/index.ts +0 -222
- package/src/plugins/insights/insights.integration.spec.ts +0 -921
- package/src/plugins/insights/insightsRollout.integration.spec.ts +0 -186
- package/src/plugins/insights/model.spec.ts +0 -64
- package/src/plugins/insights/model.ts +0 -18
- package/src/plugins/insights/modelTypes.ts +0 -197
- package/src/plugins/insights/overview.spec.ts +0 -64
- package/src/plugins/insights/overview.ts +0 -214
- package/src/plugins/insights/provider.spec.ts +0 -585
- package/src/plugins/insights/provider.ts +0 -704
- package/src/plugins/insights/queryInput.ts +0 -142
- package/src/plugins/insights/reads.spec.ts +0 -1013
- package/src/plugins/insights/reads.ts +0 -1037
- package/src/plugins/insights/recordEvent.spec.ts +0 -897
- package/src/plugins/insights/recordEvent.ts +0 -476
- package/src/plugins/insights/retention.spec.ts +0 -115
- package/src/plugins/insights/routes.ts +0 -149
- package/src/plugins/insights/schema.ts +0 -409
- package/src/plugins/insights/testing/expectInsightsIndex.spec.ts +0 -42
- package/src/plugins/insights/testing/expectInsightsIndex.ts +0 -20
- package/src/plugins/insights/testing/fixtures.ts +0 -30
- package/src/plugins/insights/testing/index.ts +0 -45
- package/src/plugins/insights/testing/insightsModelTests.ts +0 -860
- package/src/plugins/insights/testing/setupInsightsHttpTestSuite.ts +0 -152
- package/src/plugins/insights/testing/setupInsightsModelTestSuite.ts +0 -36
- package/src/plugins/insights/testing/types.ts +0 -30
- package/src/plugins/insights/types.ts +0 -55
- package/src/plugins/pluginTestHarness.spec.ts +0 -56
- package/src/readBudgets.testFixtures.ts +0 -15
- package/src/releaseCatalogRoutes.integration.spec.ts +0 -200
- package/src/retention.spec.ts +0 -73
- package/src/runtime.spec.ts +0 -207
- package/src/runtime.testFixtures.ts +0 -60
- package/src/runtimeBundles.integration.spec.ts +0 -112
- package/src/storageAccess.spec.ts +0 -152
- package/src/storageAccess.ts +0 -141
- package/src/testUtilsMutation.integration.spec.ts +0 -216
- package/src/testUtilsPackage.integration.spec.ts +0 -180
- package/src/types/index.ts +0 -2
- package/src/version.ts +0 -3
package/LICENSE
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
MIT License
|
|
1
|
+
MIT License with Hosted Service Attribution
|
|
2
2
|
|
|
3
|
-
Copyright (c) 2023 Sungyu Kang
|
|
3
|
+
Copyright (c) 2023 Sungyu Kang
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
6
|
of this software and associated documentation files (the "Software"), to deal
|
|
@@ -12,6 +12,16 @@ furnished to do so, subject to the following conditions:
|
|
|
12
12
|
The above copyright notice and this permission notice shall be included in all
|
|
13
13
|
copies or substantial portions of the Software.
|
|
14
14
|
|
|
15
|
+
Hosted service attribution. If you make the Software, a modified version of
|
|
16
|
+
it, or a service built on it available to third parties as a hosted or managed
|
|
17
|
+
service, that is, a service that third parties use to deliver updates to their
|
|
18
|
+
own apps, you must display the notice "Powered by hot-updater" with a link to
|
|
19
|
+
https://hot-updater.dev or https://github.com/gronxb/hot-updater where the
|
|
20
|
+
users of that service can reasonably see it, such as the service's dashboard,
|
|
21
|
+
the footer of its website, or its about page. This condition does not apply
|
|
22
|
+
when you run the Software only for your own apps, or for apps that you build
|
|
23
|
+
or operate for your clients.
|
|
24
|
+
|
|
15
25
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
26
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
27
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
@@ -19,15 +29,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
19
29
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
30
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
31
|
SOFTWARE.
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
ADDITIONAL DISCLAIMER
|
|
26
|
-
|
|
27
|
-
The authors of this software shall not be held responsible for any legal issues,
|
|
28
|
-
regulatory violations, policy violations, or disputes arising from the use,
|
|
29
|
-
distribution, or integration of this software.
|
|
30
|
-
|
|
31
|
-
Users are solely responsible for ensuring compliance with all applicable laws,
|
|
32
|
-
regulations, and third-party policies (including but not limited to app store
|
|
33
|
-
policies).
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_settingsMigrator = require("../db/settingsMigrator.cjs");
|
|
3
|
-
const require_coreDatabase = require("../db/coreDatabase.cjs");
|
|
4
|
-
const require_sqlAdapter = require("../database/sql/sqlAdapter.cjs");
|
|
5
2
|
const require_sqlProviders = require("./sqlProviders.cjs");
|
|
6
3
|
const require_engineDrizzleSchema = require("../db/engineDrizzleSchema.cjs");
|
|
7
4
|
const require_drizzleExecutor = require("./drizzleExecutor.cjs");
|
|
5
|
+
let _hot_updater_plugin_core = require("@hot-updater/plugin-core");
|
|
8
6
|
//#region src/adapters/drizzle.ts
|
|
9
7
|
/**
|
|
10
8
|
* Hot Updater's database on a Drizzle instance: the storage engine through the
|
|
@@ -16,19 +14,19 @@ const drizzleAdapter = (config) => {
|
|
|
16
14
|
const provider = require_sqlProviders.checkSqlProvider("drizzleAdapter", config.provider);
|
|
17
15
|
const executor = require_drizzleExecutor.drizzleExecutor(config.db, provider);
|
|
18
16
|
return {
|
|
19
|
-
...
|
|
17
|
+
...(0, _hot_updater_plugin_core.createEngineDatabase)({
|
|
20
18
|
name: "drizzle",
|
|
21
|
-
adapter:
|
|
19
|
+
adapter: (0, _hot_updater_plugin_core.createSqlAdapter)({ executor })
|
|
22
20
|
}),
|
|
23
21
|
provider,
|
|
24
|
-
generateSchema: ((version, _name, { schema } =
|
|
25
|
-
if (version !== "latest" && version !==
|
|
22
|
+
generateSchema: ((version, _name, { schema } = _hot_updater_plugin_core.coreTarget) => {
|
|
23
|
+
if (version !== "latest" && version !== _hot_updater_plugin_core.coreSettings["schema.core"]) throw new Error(`Invalid version ${version}`);
|
|
26
24
|
return {
|
|
27
25
|
code: require_engineDrizzleSchema.generateDrizzleEngineSchema(provider, schema),
|
|
28
26
|
path: "hot-updater-schema.ts"
|
|
29
27
|
};
|
|
30
28
|
}),
|
|
31
|
-
createMigrator: ({ settings } =
|
|
29
|
+
createMigrator: ({ settings } = _hot_updater_plugin_core.coreTarget) => (0, _hot_updater_plugin_core.createSettingsMigrator)({
|
|
32
30
|
adapterName: "drizzle",
|
|
33
31
|
executor,
|
|
34
32
|
settings,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ORMSQLProvider, ToolingDatabase } from "../db/types.cjs";
|
|
2
1
|
import { DrizzleTransactionUnsupportedError, SUPPORTED_DRIZZLE_DRIVERS } from "./drizzleExecutor.cjs";
|
|
2
|
+
import { SqlDialect, ToolingDatabase } from "@hot-updater/plugin-core";
|
|
3
3
|
//#region src/adapters/drizzle.d.ts
|
|
4
|
-
type DrizzleProvider =
|
|
4
|
+
type DrizzleProvider = SqlDialect;
|
|
5
5
|
interface DrizzleConfig {
|
|
6
6
|
/** A Drizzle database, or a function that returns one on first use. */
|
|
7
7
|
readonly db: unknown | (() => unknown | Promise<unknown>);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { ORMSQLProvider, ToolingDatabase } from "../db/types.mjs";
|
|
2
1
|
import { DrizzleTransactionUnsupportedError, SUPPORTED_DRIZZLE_DRIVERS } from "./drizzleExecutor.mjs";
|
|
2
|
+
import { SqlDialect, ToolingDatabase } from "@hot-updater/plugin-core";
|
|
3
3
|
//#region src/adapters/drizzle.d.ts
|
|
4
|
-
type DrizzleProvider =
|
|
4
|
+
type DrizzleProvider = SqlDialect;
|
|
5
5
|
interface DrizzleConfig {
|
|
6
6
|
/** A Drizzle database, or a function that returns one on first use. */
|
|
7
7
|
readonly db: unknown | (() => unknown | Promise<unknown>);
|
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { createSettingsMigrator } from "../db/settingsMigrator.mjs";
|
|
2
|
-
import { coreSettings, coreTarget, createEngineDatabase } from "../db/coreDatabase.mjs";
|
|
3
|
-
import { createSqlAdapter } from "../database/sql/sqlAdapter.mjs";
|
|
4
1
|
import { checkSqlProvider } from "./sqlProviders.mjs";
|
|
5
2
|
import { generateDrizzleEngineSchema } from "../db/engineDrizzleSchema.mjs";
|
|
6
3
|
import { DrizzleTransactionUnsupportedError, SUPPORTED_DRIZZLE_DRIVERS, drizzleExecutor } from "./drizzleExecutor.mjs";
|
|
4
|
+
import { coreSettings, coreTarget, createEngineDatabase, createSettingsMigrator, createSqlAdapter } from "@hot-updater/plugin-core";
|
|
7
5
|
//#region src/adapters/drizzle.ts
|
|
8
6
|
/**
|
|
9
7
|
* Hot Updater's database on a Drizzle instance: the storage engine through the
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "
|
|
1
|
+
import { SqlDialect, SqlExecutor } from "@hot-updater/plugin-core";
|
|
2
2
|
//#region src/adapters/drizzleExecutor.d.ts
|
|
3
3
|
declare const SUPPORTED_DRIZZLE_DRIVERS = "node-postgres, postgres-js, PGlite, or Neon over WebSockets for PostgreSQL; mysql2 for MySQL; libSQL, better-sqlite3, or bun:sqlite for SQLite";
|
|
4
4
|
declare class DrizzleTransactionUnsupportedError extends Error {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import "
|
|
1
|
+
import { SqlDialect, SqlExecutor } from "@hot-updater/plugin-core";
|
|
2
2
|
//#region src/adapters/drizzleExecutor.d.ts
|
|
3
3
|
declare const SUPPORTED_DRIZZLE_DRIVERS = "node-postgres, postgres-js, PGlite, or Neon over WebSockets for PostgreSQL; mysql2 for MySQL; libSQL, better-sqlite3, or bun:sqlite for SQLite";
|
|
4
4
|
declare class DrizzleTransactionUnsupportedError extends Error {
|
package/dist/adapters/kysely.cjs
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_coreDatabase = require("../db/coreDatabase.cjs");
|
|
3
|
-
const require_sqlAdapter = require("../database/sql/sqlAdapter.cjs");
|
|
4
|
-
const require_engineSqlMigrator = require("../db/engineSqlMigrator.cjs");
|
|
5
2
|
const require_kyselyExecutor = require("./kyselyExecutor.cjs");
|
|
6
3
|
const require_sqlProviders = require("./sqlProviders.cjs");
|
|
4
|
+
let _hot_updater_plugin_core = require("@hot-updater/plugin-core");
|
|
7
5
|
//#region src/adapters/kysely.ts
|
|
8
6
|
/**
|
|
9
7
|
* Hot Updater's database on a Kysely instance: the storage engine through the
|
|
@@ -14,12 +12,12 @@ const kyselyAdapter = (config) => {
|
|
|
14
12
|
const provider = require_sqlProviders.checkSqlProvider("kyselyAdapter", config.provider);
|
|
15
13
|
const executor = require_kyselyExecutor.kyselyExecutor(config.db, provider);
|
|
16
14
|
return {
|
|
17
|
-
...
|
|
15
|
+
...(0, _hot_updater_plugin_core.createEngineDatabase)({
|
|
18
16
|
name: "kysely",
|
|
19
|
-
adapter:
|
|
17
|
+
adapter: (0, _hot_updater_plugin_core.createSqlAdapter)({ executor })
|
|
20
18
|
}),
|
|
21
19
|
provider,
|
|
22
|
-
createMigrator: ({ schema, settings } =
|
|
20
|
+
createMigrator: ({ schema, settings } = _hot_updater_plugin_core.coreTarget) => (0, _hot_updater_plugin_core.createEngineSqlMigrator)({
|
|
23
21
|
adapterName: "kysely",
|
|
24
22
|
executor,
|
|
25
23
|
schema,
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { ORMSQLProvider, ToolingDatabase } from "../db/types.cjs";
|
|
2
1
|
import { kyselyExecutor } from "./kyselyExecutor.cjs";
|
|
2
|
+
import { SqlDialect, ToolingDatabase } from "@hot-updater/plugin-core";
|
|
3
3
|
import { Kysely } from "kysely";
|
|
4
4
|
//#region src/adapters/kysely.d.ts
|
|
5
5
|
interface KyselyAdapterConfig<TDatabase extends object = object> {
|
|
6
6
|
readonly db: Kysely<TDatabase>;
|
|
7
|
-
readonly provider:
|
|
7
|
+
readonly provider: SqlDialect;
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
10
|
* Hot Updater's database on a Kysely instance: the storage engine through the
|
|
@@ -13,4 +13,4 @@ interface KyselyAdapterConfig<TDatabase extends object = object> {
|
|
|
13
13
|
*/
|
|
14
14
|
declare const kyselyAdapter: <TDatabase extends object>(config: KyselyAdapterConfig<TDatabase>) => ToolingDatabase;
|
|
15
15
|
//#endregion
|
|
16
|
-
export { KyselyAdapterConfig, type
|
|
16
|
+
export { KyselyAdapterConfig, type SqlDialect as SQLProvider, kyselyAdapter, kyselyExecutor };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { ORMSQLProvider, ToolingDatabase } from "../db/types.mjs";
|
|
2
1
|
import { kyselyExecutor } from "./kyselyExecutor.mjs";
|
|
2
|
+
import { SqlDialect, ToolingDatabase } from "@hot-updater/plugin-core";
|
|
3
3
|
import { Kysely } from "kysely";
|
|
4
4
|
//#region src/adapters/kysely.d.ts
|
|
5
5
|
interface KyselyAdapterConfig<TDatabase extends object = object> {
|
|
6
6
|
readonly db: Kysely<TDatabase>;
|
|
7
|
-
readonly provider:
|
|
7
|
+
readonly provider: SqlDialect;
|
|
8
8
|
}
|
|
9
9
|
/**
|
|
10
10
|
* Hot Updater's database on a Kysely instance: the storage engine through the
|
|
@@ -13,4 +13,4 @@ interface KyselyAdapterConfig<TDatabase extends object = object> {
|
|
|
13
13
|
*/
|
|
14
14
|
declare const kyselyAdapter: <TDatabase extends object>(config: KyselyAdapterConfig<TDatabase>) => ToolingDatabase;
|
|
15
15
|
//#endregion
|
|
16
|
-
export { KyselyAdapterConfig, type
|
|
16
|
+
export { KyselyAdapterConfig, type SqlDialect as SQLProvider, kyselyAdapter, kyselyExecutor };
|
package/dist/adapters/kysely.mjs
CHANGED
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import { coreTarget, createEngineDatabase } from "../db/coreDatabase.mjs";
|
|
2
|
-
import { createSqlAdapter } from "../database/sql/sqlAdapter.mjs";
|
|
3
|
-
import { createEngineSqlMigrator } from "../db/engineSqlMigrator.mjs";
|
|
4
1
|
import { kyselyExecutor } from "./kyselyExecutor.mjs";
|
|
5
2
|
import { checkSqlProvider } from "./sqlProviders.mjs";
|
|
3
|
+
import { coreTarget, createEngineDatabase, createEngineSqlMigrator, createSqlAdapter } from "@hot-updater/plugin-core";
|
|
6
4
|
//#region src/adapters/kysely.ts
|
|
7
5
|
/**
|
|
8
6
|
* Hot Updater's database on a Kysely instance: the storage engine through the
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { SqlDialect } from "
|
|
2
|
-
import { SqlExecutor } from "../database/sql/sqlAdapter.cjs";
|
|
1
|
+
import { SqlDialect, SqlExecutor } from "@hot-updater/plugin-core";
|
|
3
2
|
import { Kysely } from "kysely";
|
|
4
3
|
//#region src/adapters/kyselyExecutor.d.ts
|
|
5
4
|
/**
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { SqlDialect } from "
|
|
2
|
-
import { SqlExecutor } from "../database/sql/sqlAdapter.mjs";
|
|
1
|
+
import { SqlDialect, SqlExecutor } from "@hot-updater/plugin-core";
|
|
3
2
|
import { Kysely } from "kysely";
|
|
4
3
|
//#region src/adapters/kyselyExecutor.d.ts
|
|
5
4
|
/**
|
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_fence = require("../database/fence.cjs");
|
|
3
|
-
const require_engineMigrator = require("../db/engineMigrator.cjs");
|
|
4
|
-
const require_coreDatabase = require("../db/coreDatabase.cjs");
|
|
5
2
|
const require_mongodbAdapter = require("./mongodbAdapter.cjs");
|
|
3
|
+
let _hot_updater_plugin_core = require("@hot-updater/plugin-core");
|
|
6
4
|
//#region src/adapters/mongodb.ts
|
|
7
5
|
/** Settings rows by their `key` field: the engine's rows and a v0 database's alike. */
|
|
8
6
|
const readSettings = (client) => async () => {
|
|
9
|
-
const rows = await client.db().collection(
|
|
7
|
+
const rows = await client.db().collection(_hot_updater_plugin_core.SETTINGS_TABLE.name).find({ key: { $type: "string" } }).toArray();
|
|
10
8
|
return new Map(rows.map((row) => [String(row.key), row.value]));
|
|
11
9
|
};
|
|
12
10
|
/**
|
|
@@ -14,23 +12,14 @@ const readSettings = (client) => async () => {
|
|
|
14
12
|
* fenced by the schema settings. `db migrate` creates the collections and
|
|
15
13
|
* indexes, then writes the settings.
|
|
16
14
|
*/
|
|
17
|
-
const mongoAdapter = (config) => {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
createMigrator: ({ schema, settings } = require_coreDatabase.coreTarget) => require_engineMigrator.createEngineMigrator({
|
|
26
|
-
adapterName: "mongodb",
|
|
27
|
-
adapter,
|
|
28
|
-
schema,
|
|
29
|
-
settings,
|
|
30
|
-
readSettings: readSettings(config.client)
|
|
31
|
-
})
|
|
32
|
-
};
|
|
33
|
-
};
|
|
15
|
+
const mongoAdapter = (config) => ({
|
|
16
|
+
...(0, _hot_updater_plugin_core.createEngineDatabase)({
|
|
17
|
+
name: "mongodb",
|
|
18
|
+
adapter: require_mongodbAdapter.createMongoAdapter({ client: config.client }),
|
|
19
|
+
readSettings: readSettings(config.client)
|
|
20
|
+
}),
|
|
21
|
+
provider: "mongodb"
|
|
22
|
+
});
|
|
34
23
|
//#endregion
|
|
35
24
|
exports.MongoTransactionUnsupportedError = require_mongodbAdapter.MongoTransactionUnsupportedError;
|
|
36
25
|
exports.mongoAdapter = mongoAdapter;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ToolingDatabase } from "../db/types.cjs";
|
|
2
1
|
import { MongoTransactionUnsupportedError } from "./mongodbAdapter.cjs";
|
|
2
|
+
import { ToolingDatabase } from "@hot-updater/plugin-core";
|
|
3
3
|
import { MongoClient } from "mongodb";
|
|
4
4
|
//#region src/adapters/mongodb.d.ts
|
|
5
5
|
/** Every write runs in a transaction, which needs a replica set or a sharded cluster. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ToolingDatabase } from "../db/types.mjs";
|
|
2
1
|
import { MongoTransactionUnsupportedError } from "./mongodbAdapter.mjs";
|
|
2
|
+
import { ToolingDatabase } from "@hot-updater/plugin-core";
|
|
3
3
|
import { MongoClient } from "mongodb";
|
|
4
4
|
//#region src/adapters/mongodb.d.ts
|
|
5
5
|
/** Every write runs in a transaction, which needs a replica set or a sharded cluster. */
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import { SETTINGS_TABLE } from "../database/fence.mjs";
|
|
2
|
-
import { createEngineMigrator } from "../db/engineMigrator.mjs";
|
|
3
|
-
import { coreTarget, createEngineDatabase } from "../db/coreDatabase.mjs";
|
|
4
1
|
import { MongoTransactionUnsupportedError, createMongoAdapter } from "./mongodbAdapter.mjs";
|
|
2
|
+
import { SETTINGS_TABLE, createEngineDatabase } from "@hot-updater/plugin-core";
|
|
5
3
|
//#region src/adapters/mongodb.ts
|
|
6
4
|
/** Settings rows by their `key` field: the engine's rows and a v0 database's alike. */
|
|
7
5
|
const readSettings = (client) => async () => {
|
|
@@ -13,22 +11,13 @@ const readSettings = (client) => async () => {
|
|
|
13
11
|
* fenced by the schema settings. `db migrate` creates the collections and
|
|
14
12
|
* indexes, then writes the settings.
|
|
15
13
|
*/
|
|
16
|
-
const mongoAdapter = (config) => {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
createMigrator: ({ schema, settings } = coreTarget) => createEngineMigrator({
|
|
25
|
-
adapterName: "mongodb",
|
|
26
|
-
adapter,
|
|
27
|
-
schema,
|
|
28
|
-
settings,
|
|
29
|
-
readSettings: readSettings(config.client)
|
|
30
|
-
})
|
|
31
|
-
};
|
|
32
|
-
};
|
|
14
|
+
const mongoAdapter = (config) => ({
|
|
15
|
+
...createEngineDatabase({
|
|
16
|
+
name: "mongodb",
|
|
17
|
+
adapter: createMongoAdapter({ client: config.client }),
|
|
18
|
+
readSettings: readSettings(config.client)
|
|
19
|
+
}),
|
|
20
|
+
provider: "mongodb"
|
|
21
|
+
});
|
|
33
22
|
//#endregion
|
|
34
23
|
export { MongoTransactionUnsupportedError, mongoAdapter };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
let
|
|
1
|
+
let _hot_updater_plugin_core = require("@hot-updater/plugin-core");
|
|
2
2
|
let mongodb = require("mongodb");
|
|
3
3
|
//#region src/adapters/mongodbAdapter.ts
|
|
4
4
|
var MongoTransactionUnsupportedError = class extends Error {
|
|
@@ -12,7 +12,7 @@ const idOf = (table, key) => table.key.length === 1 ? key[0] : Object.fromEntrie
|
|
|
12
12
|
/** A filter on `_id` (never an ObjectId), and on the version when given. */
|
|
13
13
|
const byId = (_id, v) => v === void 0 ? { _id } : {
|
|
14
14
|
_id,
|
|
15
|
-
[
|
|
15
|
+
[_hot_updater_plugin_core.DATABASE_VERSION_COLUMN]: v
|
|
16
16
|
};
|
|
17
17
|
/** MongoDB's TTL monitor deletes a document once its `_expireAt` passes. */
|
|
18
18
|
const TTL = {
|
|
@@ -27,7 +27,7 @@ const expireAt = ({ retention }, row) => {
|
|
|
27
27
|
};
|
|
28
28
|
/** Null columns are left out, so unique indexes skip them as SQL's do. */
|
|
29
29
|
const toDocument = (table, row) => ({
|
|
30
|
-
_id: idOf(table, (0,
|
|
30
|
+
_id: idOf(table, (0, _hot_updater_plugin_core.rowKey)(table, row)),
|
|
31
31
|
...Object.fromEntries(table.columns.flatMap(({ name }) => row[name] === null || row[name] === void 0 ? [] : [[name, row[name]]])),
|
|
32
32
|
...table.retention && { [TTL.name]: expireAt(table, row) }
|
|
33
33
|
});
|
|
@@ -40,8 +40,8 @@ const compare = (columns, { values, inclusive }, op) => {
|
|
|
40
40
|
return terms.length === 1 ? terms[0] : { $or: terms };
|
|
41
41
|
};
|
|
42
42
|
const indexDescription = (table, index) => {
|
|
43
|
-
const columns = index.unique ? index.eq : [...index.eq, ...(0,
|
|
44
|
-
const exists = columns.filter((column) => (0,
|
|
43
|
+
const columns = index.unique ? index.eq : [...index.eq, ...(0, _hot_updater_plugin_core.indexOrderColumns)(table, index)];
|
|
44
|
+
const exists = columns.filter((column) => (0, _hot_updater_plugin_core.findPhysicalColumn)(table, column).nullable).map((column) => [column, { $exists: true }]);
|
|
45
45
|
return {
|
|
46
46
|
name: index.name,
|
|
47
47
|
key: Object.fromEntries(columns.map((column) => [column, 1])),
|
|
@@ -60,7 +60,7 @@ const mongoError = (error) => error instanceof mongodb.MongoError ? error : void
|
|
|
60
60
|
const createMongoAdapter = (options) => {
|
|
61
61
|
const { client, tablePrefix = "", maxOps = 1e3 } = options;
|
|
62
62
|
const collection = (table) => client.db().collection(tablePrefix + table.name);
|
|
63
|
-
const normalize = (table, document) => (0,
|
|
63
|
+
const normalize = (table, document) => (0, _hot_updater_plugin_core.normalizeStoredRow)(table, document, { jsonText: false });
|
|
64
64
|
/** Whether the op applied; a guard that no longer matches changes nothing. */
|
|
65
65
|
const apply = async (op, session) => {
|
|
66
66
|
const target = collection(op.table);
|
|
@@ -72,7 +72,7 @@ const createMongoAdapter = (options) => {
|
|
|
72
72
|
const update = async (filter, change) => (await target.updateOne(filter, change, { session })).matchedCount === 1;
|
|
73
73
|
switch (op.type) {
|
|
74
74
|
case "patch": {
|
|
75
|
-
const $set = { [
|
|
75
|
+
const $set = { [_hot_updater_plugin_core.DATABASE_VERSION_COLUMN]: op.guard.v + 1 };
|
|
76
76
|
const $unset = {};
|
|
77
77
|
for (const [name, value] of Object.entries(op.set)) if (value === null) $unset[name] = "";
|
|
78
78
|
else $set[name] = value;
|
|
@@ -90,12 +90,12 @@ const createMongoAdapter = (options) => {
|
|
|
90
90
|
case "increment": {
|
|
91
91
|
if (op.init === void 0 || op.guard !== void 0) return update(byId(_id, op.guard?.v), { $inc: {
|
|
92
92
|
...op.by,
|
|
93
|
-
[
|
|
93
|
+
[_hot_updater_plugin_core.DATABASE_VERSION_COLUMN]: 1
|
|
94
94
|
} });
|
|
95
95
|
const set = {};
|
|
96
96
|
for (const { name } of op.table.columns) {
|
|
97
97
|
const start = op.init[name] ?? null;
|
|
98
|
-
const by = name ===
|
|
98
|
+
const by = name === _hot_updater_plugin_core.DATABASE_VERSION_COLUMN ? 1 : op.by[name];
|
|
99
99
|
const stored = { $ifNull: [`$${name}`, { $literal: start ?? 0 }] };
|
|
100
100
|
if (by !== void 0) set[name] = { $add: [stored, by] };
|
|
101
101
|
else if (start !== null) set[name] = stored;
|
|
@@ -123,8 +123,8 @@ const createMongoAdapter = (options) => {
|
|
|
123
123
|
});
|
|
124
124
|
},
|
|
125
125
|
async query(table, request) {
|
|
126
|
-
const index = (0,
|
|
127
|
-
const columns = (0,
|
|
126
|
+
const index = (0, _hot_updater_plugin_core.findPhysicalIndex)(table, request.index);
|
|
127
|
+
const columns = (0, _hot_updater_plugin_core.indexOrderColumns)(table, index);
|
|
128
128
|
const bounds = [...request.lower ? [compare(columns, request.lower, "$gt")] : [], ...request.upper ? [compare(columns, request.upper, "$lt")] : []];
|
|
129
129
|
const direction = request.order === "asc" ? 1 : -1;
|
|
130
130
|
return (await collection(table).find({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DATABASE_VERSION_COLUMN, findPhysicalColumn, findPhysicalIndex, indexOrderColumns, normalizeStoredRow, rowKey } from "@hot-updater/plugin-core
|
|
1
|
+
import { DATABASE_VERSION_COLUMN, findPhysicalColumn, findPhysicalIndex, indexOrderColumns, normalizeStoredRow, rowKey } from "@hot-updater/plugin-core";
|
|
2
2
|
import { MongoError } from "mongodb";
|
|
3
3
|
//#region src/adapters/mongodbAdapter.ts
|
|
4
4
|
var MongoTransactionUnsupportedError = class extends Error {
|
package/dist/adapters/prisma.cjs
CHANGED
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_settingsMigrator = require("../db/settingsMigrator.cjs");
|
|
3
|
-
const require_coreDatabase = require("../db/coreDatabase.cjs");
|
|
4
|
-
const require_sqlAdapter = require("../database/sql/sqlAdapter.cjs");
|
|
5
2
|
const require_sqlProviders = require("./sqlProviders.cjs");
|
|
6
3
|
const require_enginePrismaSchema = require("../db/enginePrismaSchema.cjs");
|
|
7
4
|
const require_prismaExecutor = require("./prismaExecutor.cjs");
|
|
5
|
+
let _hot_updater_plugin_core = require("@hot-updater/plugin-core");
|
|
8
6
|
//#region src/adapters/prisma.ts
|
|
9
7
|
/**
|
|
10
8
|
* Hot Updater's database on a Prisma client: the storage engine through the
|
|
@@ -16,21 +14,21 @@ const prismaAdapter = (config) => {
|
|
|
16
14
|
const provider = require_sqlProviders.checkSqlProvider("prismaAdapter", config.provider);
|
|
17
15
|
const executor = require_prismaExecutor.prismaExecutor(config.prisma, provider);
|
|
18
16
|
return {
|
|
19
|
-
...
|
|
17
|
+
...(0, _hot_updater_plugin_core.createEngineDatabase)({
|
|
20
18
|
name: "prisma",
|
|
21
|
-
adapter:
|
|
19
|
+
adapter: (0, _hot_updater_plugin_core.createSqlAdapter)({ executor })
|
|
22
20
|
}),
|
|
23
21
|
provider,
|
|
24
|
-
generateSchema: ((version, _name, { schema } =
|
|
25
|
-
if (version !== "latest" && version !==
|
|
22
|
+
generateSchema: ((version, _name, { schema } = _hot_updater_plugin_core.coreTarget) => {
|
|
23
|
+
if (version !== "latest" && version !== _hot_updater_plugin_core.coreSettings["schema.core"]) throw new Error(`Invalid version ${version}`);
|
|
26
24
|
return {
|
|
27
25
|
code: require_enginePrismaSchema.generatePrismaEngineSchema(provider, schema),
|
|
28
26
|
path: "prisma/schema.prisma"
|
|
29
27
|
};
|
|
30
28
|
}),
|
|
31
|
-
createMigrator: ({ schema, settings } =
|
|
29
|
+
createMigrator: ({ schema, settings } = _hot_updater_plugin_core.coreTarget) => {
|
|
32
30
|
const collations = require_enginePrismaSchema.prismaCollationStatements(provider, schema);
|
|
33
|
-
return
|
|
31
|
+
return (0, _hot_updater_plugin_core.createSettingsMigrator)({
|
|
34
32
|
adapterName: "prisma",
|
|
35
33
|
executor,
|
|
36
34
|
settings,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ToolingDatabase } from "../db/types.cjs";
|
|
2
1
|
import { PrismaProvider } from "../db/enginePrismaSchema.cjs";
|
|
2
|
+
import { ToolingDatabase } from "@hot-updater/plugin-core";
|
|
3
3
|
//#region src/adapters/prisma.d.ts
|
|
4
4
|
interface PrismaConfig {
|
|
5
5
|
/** A Prisma client: raw queries and interactive transactions run on it. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { ToolingDatabase } from "../db/types.mjs";
|
|
2
1
|
import { PrismaProvider } from "../db/enginePrismaSchema.mjs";
|
|
2
|
+
import { ToolingDatabase } from "@hot-updater/plugin-core";
|
|
3
3
|
//#region src/adapters/prisma.d.ts
|
|
4
4
|
interface PrismaConfig {
|
|
5
5
|
/** A Prisma client: raw queries and interactive transactions run on it. */
|
package/dist/adapters/prisma.mjs
CHANGED
|
@@ -1,9 +1,7 @@
|
|
|
1
|
-
import { createSettingsMigrator } from "../db/settingsMigrator.mjs";
|
|
2
|
-
import { coreSettings, coreTarget, createEngineDatabase } from "../db/coreDatabase.mjs";
|
|
3
|
-
import { createSqlAdapter } from "../database/sql/sqlAdapter.mjs";
|
|
4
1
|
import { checkSqlProvider } from "./sqlProviders.mjs";
|
|
5
2
|
import { generatePrismaEngineSchema, prismaCollationStatements } from "../db/enginePrismaSchema.mjs";
|
|
6
3
|
import { prismaExecutor } from "./prismaExecutor.mjs";
|
|
4
|
+
import { coreSettings, coreTarget, createEngineDatabase, createSettingsMigrator, createSqlAdapter } from "@hot-updater/plugin-core";
|
|
7
5
|
//#region src/adapters/prisma.ts
|
|
8
6
|
/**
|
|
9
7
|
* Hot Updater's database on a Prisma client: the storage engine through the
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
const require_sqlSchema = require("../database/sql/sqlSchema.cjs");
|
|
1
|
+
let _hot_updater_plugin_core = require("@hot-updater/plugin-core");
|
|
3
2
|
//#region src/adapters/prismaExecutor.ts
|
|
4
3
|
/**
|
|
5
4
|
* Prisma reports a raw query's database error as P2010 with the database's
|
|
@@ -33,7 +32,7 @@ const over = (dialect, client) => ({ async execute({ sql, params }) {
|
|
|
33
32
|
}
|
|
34
33
|
} });
|
|
35
34
|
/** Taking the write lock first makes a SQLite transaction behave as BEGIN IMMEDIATE. */
|
|
36
|
-
const writeLock = (dialect) => `UPDATE ${
|
|
35
|
+
const writeLock = (dialect) => `UPDATE ${(0, _hot_updater_plugin_core.quoteSql)(dialect, _hot_updater_plugin_core.SETTINGS_TABLE.name)} SET ${(0, _hot_updater_plugin_core.quoteSql)(dialect, "_v")} = ${(0, _hot_updater_plugin_core.quoteSql)(dialect, "_v")} WHERE 0 = 1`;
|
|
37
36
|
/**
|
|
38
37
|
* The SQL core's executor over a Prisma client, through raw queries and
|
|
39
38
|
* interactive transactions. A SQLite transaction takes the write lock with
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { SETTINGS_TABLE } from "
|
|
2
|
-
import { quoteSql } from "../database/sql/sqlSchema.mjs";
|
|
1
|
+
import { SETTINGS_TABLE, quoteSql } from "@hot-updater/plugin-core";
|
|
3
2
|
//#region src/adapters/prismaExecutor.ts
|
|
4
3
|
/**
|
|
5
4
|
* Prisma reports a raw query's database error as P2010 with the database's
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
const require_types = require("../db/types.cjs");
|
|
2
1
|
//#region src/adapters/sqlProviders.ts
|
|
2
|
+
/** The dialects Hot Updater's SQL core runs on. */
|
|
3
|
+
const sqlProviders = [
|
|
4
|
+
"sqlite",
|
|
5
|
+
"mysql",
|
|
6
|
+
"postgresql"
|
|
7
|
+
];
|
|
3
8
|
/** The provider an adapter was given, when Hot Updater's SQL core runs on it. */
|
|
4
9
|
const checkSqlProvider = (adapter, provider) => {
|
|
5
|
-
if (!
|
|
10
|
+
if (!sqlProviders.includes(provider)) throw new Error(`${adapter}: provider "${String(provider)}" is not supported. Use ${sqlProviders.map((name) => `"${name}"`).join(", ")}; CockroachDB and SQL Server were dropped in 1.0.`);
|
|
6
11
|
return provider;
|
|
7
12
|
};
|
|
8
13
|
//#endregion
|
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
import { sqlProviders } from "../db/types.mjs";
|
|
2
1
|
//#region src/adapters/sqlProviders.ts
|
|
2
|
+
/** The dialects Hot Updater's SQL core runs on. */
|
|
3
|
+
const sqlProviders = [
|
|
4
|
+
"sqlite",
|
|
5
|
+
"mysql",
|
|
6
|
+
"postgresql"
|
|
7
|
+
];
|
|
3
8
|
/** The provider an adapter was given, when Hot Updater's SQL core runs on it. */
|
|
4
9
|
const checkSqlProvider = (adapter, provider) => {
|
|
5
10
|
if (!sqlProviders.includes(provider)) throw new Error(`${adapter}: provider "${String(provider)}" is not supported. Use ${sqlProviders.map((name) => `"${name}"`).join(", ")}; CockroachDB and SQL Server were dropped in 1.0.`);
|