@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
|
@@ -1,15 +1,43 @@
|
|
|
1
|
-
import { ToolingDatabase } from "./db/types.mjs";
|
|
2
|
-
import { AnyHotUpdaterPlugin, PluginApis } from "./plugins/definePlugin.mjs";
|
|
3
1
|
import { CoreApi } from "./core/api.mjs";
|
|
2
|
+
import { AnyHotUpdaterPlugin, PluginApis } from "./plugins/definePlugin.mjs";
|
|
4
3
|
import { HotUpdaterHandlers } from "./handlerTypes.mjs";
|
|
5
4
|
import "./handler.mjs";
|
|
6
|
-
import {
|
|
5
|
+
import { PluginClientPlugin, StorageAdapter, ToolingDatabase } from "@hot-updater/plugin-core";
|
|
7
6
|
//#region src/createHotUpdaterCore.d.ts
|
|
7
|
+
/** A plugin's endpoint on `handlers.client`. */
|
|
8
|
+
interface ClientEndpoint {
|
|
9
|
+
/** The id of the plugin that adds it. */
|
|
10
|
+
readonly plugin: string;
|
|
11
|
+
readonly method: string;
|
|
12
|
+
/** Relative to the handler's mount; `:name` segments are parameters. */
|
|
13
|
+
readonly path: string;
|
|
14
|
+
}
|
|
15
|
+
/** The plugin that decides who may call client routes. */
|
|
16
|
+
interface ClientAuthProvider {
|
|
17
|
+
/** Its id. */
|
|
18
|
+
readonly plugin: string;
|
|
19
|
+
/**
|
|
20
|
+
* The request headers its decision reads, lowercase: what a cache in
|
|
21
|
+
* front of the server, such as a CDN, keys client routes on.
|
|
22
|
+
*/
|
|
23
|
+
readonly varyHeaders: readonly string[];
|
|
24
|
+
}
|
|
8
25
|
type RuntimeHotUpdaterAPI<TPlugins extends readonly AnyHotUpdaterPlugin[] = readonly AnyHotUpdaterPlugin[]> = {
|
|
26
|
+
/**
|
|
27
|
+
* The routes a host mounts. On first access every storage adapter must
|
|
28
|
+
* serve downloads (`get` and `getDownloadUrl`), so a server fails where it
|
|
29
|
+
* mounts them, while tooling that only reads the definition, such as the
|
|
30
|
+
* CLI, can list storage that only uploads.
|
|
31
|
+
*/
|
|
9
32
|
readonly handlers: HotUpdaterHandlers;
|
|
10
|
-
/**
|
|
33
|
+
/**
|
|
34
|
+
* Core's reads and typed writes: bundles, Releases, Catalogs, and
|
|
35
|
+
* channels. The CLI and the console write through it, so their writes
|
|
36
|
+
* take the server's path: the plugins' schema fence, pruning during
|
|
37
|
+
* writes, the storage's file URLs, and the database's CDN purge.
|
|
38
|
+
*/
|
|
11
39
|
readonly core: CoreApi;
|
|
12
|
-
/** Each plugin's API by plugin id. */
|
|
40
|
+
/** Each plugin's API by plugin id, which the CLI's and the console's plugin features call. */
|
|
13
41
|
readonly api: PluginApis<TPlugins>;
|
|
14
42
|
/** The database's name, which `hot-updater db` commands read. */
|
|
15
43
|
readonly adapterName: string;
|
|
@@ -20,6 +48,28 @@ type RuntimeHotUpdaterAPI<TPlugins extends readonly AnyHotUpdaterPlugin[] = read
|
|
|
20
48
|
* it before it exits.
|
|
21
49
|
*/
|
|
22
50
|
readonly flush: () => Promise<void>;
|
|
51
|
+
/**
|
|
52
|
+
* The database as configured. `hot-updater db` runs its tooling
|
|
53
|
+
* (`createMigrator`, `generateSchema`), and tooling done with the server
|
|
54
|
+
* closes it (`dispose`).
|
|
55
|
+
*/
|
|
56
|
+
readonly database: ToolingDatabase;
|
|
57
|
+
/** The storage as configured, in order, as a frozen copy. */
|
|
58
|
+
readonly storage: readonly StorageAdapter[];
|
|
59
|
+
/** The plugins as configured, as a frozen copy, whose tables tooling creates. */
|
|
60
|
+
readonly plugins: TPlugins;
|
|
61
|
+
/**
|
|
62
|
+
* The client plugins an app adds to `HotUpdater.init`'s `plugins` for
|
|
63
|
+
* these plugins, each once, in plugin order: what init prints.
|
|
64
|
+
*/
|
|
65
|
+
readonly clientPlugins: readonly PluginClientPlugin[];
|
|
66
|
+
/**
|
|
67
|
+
* The plugins' endpoints on `handlers.client`, which a host that routes
|
|
68
|
+
* by path, such as a CDN in front of the server, sends to it.
|
|
69
|
+
*/
|
|
70
|
+
readonly clientEndpoints: readonly ClientEndpoint[];
|
|
71
|
+
/** The plugin that guards client routes; absent when they are public. */
|
|
72
|
+
readonly clientAuth?: ClientAuthProvider;
|
|
23
73
|
};
|
|
24
74
|
type HotUpdaterAPI = RuntimeHotUpdaterAPI;
|
|
25
75
|
declare const REMOVED_CLIENT_ACCESS = "clientAccess objects were removed in 1.0: set clientAccess: \"public\", or add a plugin that provides clientAuth";
|
|
@@ -62,11 +112,14 @@ type ClientAccessRule<TPlugins extends readonly AnyHotUpdaterPlugin[]> = number
|
|
|
62
112
|
type CreateHotUpdaterOptions<TPlugins extends readonly AnyHotUpdaterPlugin[] = readonly []> = {
|
|
63
113
|
/** A provider's database on the storage engine, such as `kyselyAdapter(...)` or `postgres(...)`. */
|
|
64
114
|
readonly database: ToolingDatabase;
|
|
65
|
-
/**
|
|
66
|
-
|
|
115
|
+
/**
|
|
116
|
+
* Where bundles are stored: the server reads and signs the URIs of each
|
|
117
|
+
* adapter's protocol.
|
|
118
|
+
*/
|
|
119
|
+
readonly storage?: readonly StorageAdapter[];
|
|
67
120
|
/** The plugins the server runs; at most one provides clientAuth. Defaults to none. */
|
|
68
121
|
readonly plugins?: TPlugins;
|
|
69
122
|
} & ClientAccessRule<TPlugins>;
|
|
70
123
|
declare function createHotUpdater<const TPlugins extends readonly AnyHotUpdaterPlugin[] = readonly []>(options: CreateHotUpdaterOptions<TPlugins>): RuntimeHotUpdaterAPI<NoInfer<TPlugins>>;
|
|
71
124
|
//#endregion
|
|
72
|
-
export { ClientAccessPolicy, ClientAccessRule, CreateHotUpdaterOptions, HotUpdaterAPI, RemovedClientAccess, RuntimeHotUpdaterAPI, createHotUpdater };
|
|
125
|
+
export { ClientAccessPolicy, ClientAccessRule, ClientAuthProvider, ClientEndpoint, CreateHotUpdaterOptions, HotUpdaterAPI, RemovedClientAccess, RuntimeHotUpdaterAPI, createHotUpdater };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { toolingTargetOf } from "./db/coreDatabase.mjs";
|
|
2
1
|
import { HotUpdaterConfigError } from "./assembly/configError.mjs";
|
|
2
|
+
import { clientPluginsOf } from "./assembly/clientPlugins.mjs";
|
|
3
3
|
import { assemblePlugins } from "./assembly/assemblePlugins.mjs";
|
|
4
4
|
import { createHotUpdaterHandlers } from "./handler.mjs";
|
|
5
5
|
import { createStorageAccess } from "./storageAccess.mjs";
|
|
@@ -26,32 +26,24 @@ const isPublic = (value) => {
|
|
|
26
26
|
if (value === "public") return true;
|
|
27
27
|
throw new HotUpdaterConfigError(isRecord(value) ? "clientAccess objects were removed in 1.0. Set clientAccess: \"public\", or add a plugin that provides clientAuth to plugins." : "clientAccess must be \"public\"; to protect client routes, add a plugin that provides clientAuth to plugins.");
|
|
28
28
|
};
|
|
29
|
-
const hotUpdaterCoreMetadata = Symbol.for("@hot-updater/server/core-metadata");
|
|
30
|
-
function getHotUpdaterCoreMetadata(hotUpdater) {
|
|
31
|
-
return hotUpdater[hotUpdaterCoreMetadata];
|
|
32
|
-
}
|
|
33
29
|
function createHotUpdater(options) {
|
|
34
30
|
for (const key of ["authorityId", "catalogId"]) if (Object.hasOwn(options, key)) throw new TypeError(`Remove ${key} from createHotUpdater options. Catalog identity is managed internally.`);
|
|
35
31
|
const database = databaseOf(options.database);
|
|
36
|
-
const
|
|
37
|
-
|
|
38
|
-
return storage;
|
|
39
|
-
});
|
|
40
|
-
const { downloadStorageObject, readStorageText, resolveFileUrl } = createStorageAccess(storagePlugins);
|
|
32
|
+
const storage = Object.freeze([...options.storage ?? []]);
|
|
33
|
+
const { downloadStorageObject, readStorageText, resolveFileUrl } = createStorageAccess(storage);
|
|
41
34
|
const publicClients = isPublic(options.clientAccess);
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
...database.aggregateBatching === void 0 ? {} : { batching: database.aggregateBatching }
|
|
49
|
-
});
|
|
35
|
+
const configured = Object.freeze([...options.plugins ?? []]);
|
|
36
|
+
const plugins = assemblePlugins(configured, database, { storage: {
|
|
37
|
+
readStorageText,
|
|
38
|
+
resolveFileUrl
|
|
39
|
+
} });
|
|
40
|
+
const clientPlugins = Object.freeze(clientPluginsOf(configured));
|
|
50
41
|
const clientAuth = plugins.clientAuth;
|
|
51
42
|
if (clientAuth !== void 0 && publicClients) throw new HotUpdaterConfigError(`Plugin "${clientAuth.plugin}" provides clientAuth, so remove clientAccess.`);
|
|
52
43
|
if (clientAuth === void 0 && !publicClients) throw new HotUpdaterConfigError("Set clientAccess to \"public\", or add a plugin that provides clientAuth.");
|
|
44
|
+
const varyHeaders = Object.freeze((clientAuth?.varyHeaders ?? []).map((header) => header.toLowerCase()));
|
|
53
45
|
const clientPolicy = clientAuth === void 0 ? void 0 : {
|
|
54
|
-
varyHeaders
|
|
46
|
+
varyHeaders,
|
|
55
47
|
authenticate: (request) => clientAuth.authenticate(request.headers)
|
|
56
48
|
};
|
|
57
49
|
const handlers = createHotUpdaterHandlers({
|
|
@@ -61,22 +53,33 @@ function createHotUpdater(options) {
|
|
|
61
53
|
endpoints: plugins.endpoints,
|
|
62
54
|
plugins: Object.keys(plugins.api)
|
|
63
55
|
});
|
|
64
|
-
|
|
56
|
+
let serving = false;
|
|
57
|
+
return {
|
|
65
58
|
adapterName: database.name,
|
|
66
|
-
handlers
|
|
59
|
+
get handlers() {
|
|
60
|
+
if (!serving) {
|
|
61
|
+
for (const adapter of storage) assertStorageOperations(adapter, ["get", "getDownloadUrl"]);
|
|
62
|
+
serving = true;
|
|
63
|
+
}
|
|
64
|
+
return handlers;
|
|
65
|
+
},
|
|
67
66
|
core: plugins.core,
|
|
68
67
|
api: plugins.api,
|
|
69
|
-
flush: plugins.flush
|
|
68
|
+
flush: plugins.flush,
|
|
69
|
+
database,
|
|
70
|
+
storage,
|
|
71
|
+
plugins: configured,
|
|
72
|
+
clientPlugins,
|
|
73
|
+
clientEndpoints: Object.freeze(plugins.endpoints.filter((endpoint) => endpoint.access === "client").map(({ plugin, method, path }) => Object.freeze({
|
|
74
|
+
plugin,
|
|
75
|
+
method,
|
|
76
|
+
path
|
|
77
|
+
}))),
|
|
78
|
+
...clientAuth === void 0 ? {} : { clientAuth: Object.freeze({
|
|
79
|
+
plugin: clientAuth.plugin,
|
|
80
|
+
varyHeaders
|
|
81
|
+
}) }
|
|
70
82
|
};
|
|
71
|
-
Object.defineProperty(api, hotUpdaterCoreMetadata, {
|
|
72
|
-
enumerable: false,
|
|
73
|
-
value: {
|
|
74
|
-
database,
|
|
75
|
-
target: toolingTargetOf(options.plugins ?? []),
|
|
76
|
-
plugins: options.plugins ?? []
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
return api;
|
|
80
83
|
}
|
|
81
84
|
//#endregion
|
|
82
|
-
export { createHotUpdater
|
|
85
|
+
export { createHotUpdater };
|
|
@@ -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/db/engineDrizzleSchema.ts
|
|
4
3
|
const drizzle = {
|
|
5
4
|
postgresql: {
|
|
@@ -24,7 +23,7 @@ const literal = (value) => JSON.stringify(value);
|
|
|
24
23
|
*/
|
|
25
24
|
const generateDrizzleEngineSchema = (dialect, schema) => {
|
|
26
25
|
const { module, table: tableFunction } = drizzle[dialect];
|
|
27
|
-
const tables = [...schema.tables,
|
|
26
|
+
const tables = [...schema.tables, _hot_updater_plugin_core.SETTINGS_TABLE];
|
|
28
27
|
const blocks = [];
|
|
29
28
|
const emit = (shape) => {
|
|
30
29
|
const columns = shape.columns.map((column) => ` ${literal(column.name)}: column(${literal(column.type)})(${literal(column.name)})${column.notNull ? ".notNull()" : ""}${column.default === void 0 ? "" : `.default(${column.default})`},`);
|
|
@@ -33,7 +32,7 @@ const generateDrizzleEngineSchema = (dialect, schema) => {
|
|
|
33
32
|
blocks.push(`export const ${shape.name} = ${tableFunction}(${literal(shape.name)}, {\n${columns.join("\n")}\n}, (table) => [\n${extras.map((extra) => ` ${extra},`).join("\n")}\n]);`);
|
|
34
33
|
for (const index of shape.indexes) if (index.kind === "table") emit(index.table);
|
|
35
34
|
};
|
|
36
|
-
for (const shape of
|
|
35
|
+
for (const shape of (0, _hot_updater_plugin_core.sqlTableShapes)(dialect, tables)) emit(shape);
|
|
37
36
|
return [
|
|
38
37
|
"// Generated by `hot-updater db generate` from Hot Updater's schema. Do not edit.",
|
|
39
38
|
`import { ${[
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { SETTINGS_TABLE } from "
|
|
2
|
-
import { sqlTableShapes } from "../database/sql/sqlSchema.mjs";
|
|
1
|
+
import { SETTINGS_TABLE, sqlTableShapes } from "@hot-updater/plugin-core";
|
|
3
2
|
//#region src/db/engineDrizzleSchema.ts
|
|
4
3
|
const drizzle = {
|
|
5
4
|
postgresql: {
|
|
@@ -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/db/enginePrismaSchema.ts
|
|
4
3
|
const SCALARS = {
|
|
5
4
|
TEXT: "String",
|
|
@@ -41,7 +40,7 @@ const prismaColumn = (provider, { type }) => {
|
|
|
41
40
|
const fieldName = (column) => column.startsWith("_") ? `hu${column}` : column;
|
|
42
41
|
const list = (columns) => `[${columns.map(fieldName).join(", ")}]`;
|
|
43
42
|
const flatten = (shapes) => shapes.flatMap((shape) => [shape, ...flatten(shape.indexes.flatMap((index) => index.kind === "table" ? [index.table] : []))]);
|
|
44
|
-
const shapesOf = (provider, schema) => flatten(
|
|
43
|
+
const shapesOf = (provider, schema) => flatten((0, _hot_updater_plugin_core.sqlTableShapes)(provider, [...schema.tables, _hot_updater_plugin_core.SETTINGS_TABLE]));
|
|
45
44
|
const renderField = (provider, column) => {
|
|
46
45
|
const { scalar, native } = prismaColumn(provider, column);
|
|
47
46
|
const name = fieldName(column.name);
|
|
@@ -74,8 +73,8 @@ const generatePrismaEngineSchema = (provider, schema) => shapesOf(provider, sche
|
|
|
74
73
|
*/
|
|
75
74
|
const prismaCollationStatements = (provider, schema) => {
|
|
76
75
|
if (provider !== "postgresql" && provider !== "mysql") return [];
|
|
77
|
-
const quote = (name) =>
|
|
78
|
-
return shapesOf(provider, schema).filter((shape) => shape.name !==
|
|
76
|
+
const quote = (name) => (0, _hot_updater_plugin_core.quoteSql)(provider, name);
|
|
77
|
+
return shapesOf(provider, schema).filter((shape) => shape.name !== _hot_updater_plugin_core.SETTINGS_TABLE.name).flatMap((shape) => {
|
|
79
78
|
const changes = shape.columns.filter((column) => prismaColumn(provider, column).collate).map((column) => provider === "postgresql" ? `ALTER COLUMN ${quote(column.name)} TYPE ${column.type}` : `MODIFY ${quote(column.name)} ${column.type}${column.notNull ? " NOT NULL" : " NULL"}`);
|
|
80
79
|
return changes.length === 0 ? [] : [`ALTER TABLE ${quote(shape.name)} ${changes.join(", ")}`];
|
|
81
80
|
});
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { SETTINGS_TABLE } from "
|
|
2
|
-
import { quoteSql, sqlTableShapes } from "../database/sql/sqlSchema.mjs";
|
|
1
|
+
import { SETTINGS_TABLE, quoteSql, sqlTableShapes } from "@hot-updater/plugin-core";
|
|
3
2
|
//#region src/db/enginePrismaSchema.ts
|
|
4
3
|
const SCALARS = {
|
|
5
4
|
TEXT: "String",
|
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
let _hot_updater_plugin_core = require("@hot-updater/plugin-core");
|
|
2
|
-
let
|
|
2
|
+
let _hot_updater_protocol = require("@hot-updater/protocol");
|
|
3
3
|
//#region src/db/releaseCatalog.ts
|
|
4
4
|
/** A stored catalog payload, checked against its strategy's shape. */
|
|
5
5
|
const parseCompiledCatalog = (payload, strategy) => {
|
|
6
6
|
const parsed = JSON.parse(payload);
|
|
7
|
-
if (typeof parsed !== "object" || parsed === null || Reflect.get(parsed, "schemaVersion") !==
|
|
7
|
+
if (typeof parsed !== "object" || parsed === null || Reflect.get(parsed, "schemaVersion") !== _hot_updater_protocol.RELEASE_CATALOG_SCHEMA_VERSION || Reflect.get(parsed, "strategy") !== strategy || Reflect.get(parsed, "fallbackPolicy") !== _hot_updater_protocol.RELEASE_CATALOG_FALLBACK_POLICY || !Array.isArray(Reflect.get(parsed, "releaseDescriptors"))) throw new Error("Stored Release catalog payload is invalid");
|
|
8
8
|
if (strategy === "APP_VERSION" && !Array.isArray(Reflect.get(parsed, "segments"))) throw new Error("Stored app-version Release catalog is invalid");
|
|
9
9
|
if (strategy === "FINGERPRINT" && !Array.isArray(Reflect.get(parsed, "releaseIndexes"))) throw new Error("Stored fingerprint Release catalog is invalid");
|
|
10
10
|
return parsed;
|
|
11
11
|
};
|
|
12
12
|
/** The scope key an update check reads. */
|
|
13
|
-
const releaseCatalogScopeKeyOf = (input) => input.strategy === "APP_VERSION" ? (0,
|
|
13
|
+
const releaseCatalogScopeKeyOf = (input) => input.strategy === "APP_VERSION" ? (0, _hot_updater_protocol.createReleaseCatalogScopeKey)({
|
|
14
14
|
channelKey: input.channelKey,
|
|
15
15
|
platform: input.platform,
|
|
16
16
|
strategy: "APP_VERSION"
|
|
17
|
-
}) : (0,
|
|
17
|
+
}) : (0, _hot_updater_protocol.createReleaseCatalogScopeKey)({
|
|
18
18
|
channelKey: input.channelKey,
|
|
19
19
|
fingerprintHash: input.fingerprintHash,
|
|
20
20
|
platform: input.platform,
|
|
@@ -28,11 +28,11 @@ const projectReleaseCatalogRow = (row, input, scopeKey = releaseCatalogScopeKeyO
|
|
|
28
28
|
return {
|
|
29
29
|
catalogId: row.catalog_id,
|
|
30
30
|
catalogHash: row.catalog_hash,
|
|
31
|
-
fallbackPolicy:
|
|
31
|
+
fallbackPolicy: _hot_updater_protocol.RELEASE_CATALOG_FALLBACK_POLICY,
|
|
32
32
|
generation: row.generation,
|
|
33
33
|
releases: (0, _hot_updater_plugin_core.projectCompiledCatalog)(compiled, appVersion),
|
|
34
34
|
rollbackReleases: (0, _hot_updater_plugin_core.projectCompiledRollbackCatalog)(compiled, appVersion),
|
|
35
|
-
schemaVersion:
|
|
35
|
+
schemaVersion: _hot_updater_protocol.RELEASE_CATALOG_SCHEMA_VERSION,
|
|
36
36
|
scopeKey
|
|
37
37
|
};
|
|
38
38
|
};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { projectCompiledCatalog, projectCompiledRollbackCatalog } from "@hot-updater/plugin-core";
|
|
2
|
-
import { RELEASE_CATALOG_FALLBACK_POLICY, RELEASE_CATALOG_SCHEMA_VERSION, createReleaseCatalogScopeKey } from "@hot-updater/
|
|
2
|
+
import { RELEASE_CATALOG_FALLBACK_POLICY, RELEASE_CATALOG_SCHEMA_VERSION, createReleaseCatalogScopeKey } from "@hot-updater/protocol";
|
|
3
3
|
//#region src/db/releaseCatalog.ts
|
|
4
4
|
/** A stored catalog payload, checked against its strategy's shape. */
|
|
5
5
|
const parseCompiledCatalog = (payload, strategy) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
let _hot_updater_plugin_core = require("@hot-updater/plugin-core");
|
|
2
|
-
let
|
|
2
|
+
let _hot_updater_protocol = require("@hot-updater/protocol");
|
|
3
3
|
//#region src/db/updateArtifacts.ts
|
|
4
4
|
const HBC_ASSET_PATH_RE = /\.bundle$/;
|
|
5
5
|
const asByteSize = (value) => typeof value === "number" && Number.isSafeInteger(value) && value >= 0 ? value : null;
|
|
@@ -31,7 +31,7 @@ async function fetchBundleManifest(storageUri, readStorageText) {
|
|
|
31
31
|
return payload;
|
|
32
32
|
}
|
|
33
33
|
function resolveHbcPatchPlan({ currentBundle, targetBundle, targetManifest }) {
|
|
34
|
-
const matchingPatch = currentBundle ? (0,
|
|
34
|
+
const matchingPatch = currentBundle ? (0, _hot_updater_protocol.getBundlePatch)(targetBundle, currentBundle.id) : null;
|
|
35
35
|
const patchAssetPath = resolveUniqueHbcAssetPath(targetManifest);
|
|
36
36
|
if (!currentBundle || !matchingPatch || !patchAssetPath || !matchingPatch.patchStorageUri || !matchingPatch.patchFileHash || !matchingPatch.baseFileHash) return null;
|
|
37
37
|
return {
|
|
@@ -115,9 +115,9 @@ async function resolveAssets(plan, resolveFileUrl) {
|
|
|
115
115
|
return { assets: Object.fromEntries(resolvedEntries.map((entry) => entry.asset)) };
|
|
116
116
|
}
|
|
117
117
|
async function resolveManifestArtifacts({ currentBundle, resolveFileUrl, readStorageText, targetBundle }) {
|
|
118
|
-
const manifestStorageUri = targetBundle ? (0,
|
|
119
|
-
const manifestFileHash = targetBundle ? (0,
|
|
120
|
-
const assetBaseStorageUri = targetBundle ? (0,
|
|
118
|
+
const manifestStorageUri = targetBundle ? (0, _hot_updater_protocol.getManifestStorageUri)(targetBundle) : null;
|
|
119
|
+
const manifestFileHash = targetBundle ? (0, _hot_updater_protocol.getManifestFileHash)(targetBundle) : null;
|
|
120
|
+
const assetBaseStorageUri = targetBundle ? (0, _hot_updater_protocol.getAssetBaseStorageUri)(targetBundle) : null;
|
|
121
121
|
if (!targetBundle || !manifestStorageUri || !manifestFileHash || !assetBaseStorageUri) return null;
|
|
122
122
|
const targetManifest = await fetchBundleManifest(manifestStorageUri, readStorageText);
|
|
123
123
|
if (!targetManifest) return null;
|
|
@@ -140,7 +140,7 @@ async function resolveManifestArtifacts({ currentBundle, resolveFileUrl, readSto
|
|
|
140
140
|
}));
|
|
141
141
|
} catch {}
|
|
142
142
|
return {
|
|
143
|
-
artifactProtocolVersion:
|
|
143
|
+
artifactProtocolVersion: _hot_updater_protocol.ARTIFACT_PROTOCOL_VERSION,
|
|
144
144
|
assets: resolved.assets,
|
|
145
145
|
manifestFileHash,
|
|
146
146
|
manifestUrl,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getBundleArchiveStorageUri, getManifestAssetDownloadPath, isContentAddressedAssetFileHash, resolveManifestAssetStorageUri } from "@hot-updater/plugin-core";
|
|
2
|
-
import { ARTIFACT_PROTOCOL_VERSION, getAssetBaseStorageUri, getBundlePatch, getManifestFileHash, getManifestStorageUri } from "@hot-updater/
|
|
2
|
+
import { ARTIFACT_PROTOCOL_VERSION, getAssetBaseStorageUri, getBundlePatch, getManifestFileHash, getManifestStorageUri } from "@hot-updater/protocol";
|
|
3
3
|
//#region src/db/updateArtifacts.ts
|
|
4
4
|
const HBC_ASSET_PATH_RE = /\.bundle$/;
|
|
5
5
|
const asByteSize = (value) => typeof value === "number" && Number.isSafeInteger(value) && value >= 0 ? value : null;
|
package/dist/handler.cjs
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
const require_fence = require("./database/fence.cjs");
|
|
2
|
-
const require_configError = require("./assembly/configError.cjs");
|
|
3
1
|
const require_handlerErrors = require("./handlerErrors.cjs");
|
|
4
2
|
const require_handlerAdminRoutes = require("./handlerAdminRoutes.cjs");
|
|
5
3
|
const require_handlerReleaseCatalogRoutes = require("./handlerReleaseCatalogRoutes.cjs");
|
|
6
4
|
const require_handlerVersionRoutes = require("./handlerVersionRoutes.cjs");
|
|
7
5
|
const require_internalRouter = require("./internalRouter.cjs");
|
|
6
|
+
let _hot_updater_plugin_core = require("@hot-updater/plugin-core");
|
|
8
7
|
//#region src/handler.ts
|
|
9
8
|
const withPrivateNoStore = (response) => {
|
|
10
9
|
const headers = new Headers(response.headers);
|
|
@@ -54,7 +53,7 @@ const createRequestHandler = ({ api, clientPolicy, privateResponses = false, rou
|
|
|
54
53
|
return guarded ? withVary(response, clientPolicy.varyHeaders) : response;
|
|
55
54
|
} catch (error) {
|
|
56
55
|
if (error instanceof require_handlerErrors.HandlerBadRequestError) return errorResponse(error.message, 400);
|
|
57
|
-
if (error instanceof
|
|
56
|
+
if (error instanceof _hot_updater_plugin_core.HotUpdaterSchemaMigrationRequiredError) {
|
|
58
57
|
console.error(error.message);
|
|
59
58
|
return errorResponse("Service unavailable", 503);
|
|
60
59
|
}
|
|
@@ -91,7 +90,7 @@ function createHotUpdaterHandlers({ api, clientPolicy, downloadStorageObject, en
|
|
|
91
90
|
const mount = (router, admin) => (method, path, handler) => {
|
|
92
91
|
const shape = `${admin ? "admin" : "client"} ${method} ${path.replaceAll(/:[^/]+/gu, ":")}`;
|
|
93
92
|
const taken = shapes.get(shape);
|
|
94
|
-
if (taken !== void 0) throw new
|
|
93
|
+
if (taken !== void 0) throw new _hot_updater_plugin_core.HotUpdaterConfigError(`${handler} (${method} ${path}) collides with ${taken} on handlers.${admin ? "admin" : "client"}.`);
|
|
95
94
|
shapes.set(shape, handler);
|
|
96
95
|
require_internalRouter.addRoute(router, method, path, handler);
|
|
97
96
|
routes.push({
|
package/dist/handler.mjs
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { HotUpdaterSchemaMigrationRequiredError } from "./database/fence.mjs";
|
|
2
1
|
import { HotUpdaterConfigError } from "./assembly/configError.mjs";
|
|
3
2
|
import { HandlerBadRequestError } from "./handlerErrors.mjs";
|
|
4
3
|
import { ADMIN_ROUTES, createAdminRouteHandlers } from "./handlerAdminRoutes.mjs";
|
|
5
4
|
import { createReleaseCatalogRouteHandlers } from "./handlerReleaseCatalogRoutes.mjs";
|
|
6
5
|
import { createVersionRouteHandlers } from "./handlerVersionRoutes.mjs";
|
|
7
6
|
import { addRoute, createRouter, findRoute } from "./internalRouter.mjs";
|
|
7
|
+
import { HotUpdaterSchemaMigrationRequiredError } from "@hot-updater/plugin-core";
|
|
8
8
|
//#region src/handler.ts
|
|
9
9
|
const withPrivateNoStore = (response) => {
|
|
10
10
|
const headers = new Headers(response.headers);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
const require_handlerErrors = require("./handlerErrors.cjs");
|
|
2
2
|
const require_handlerParameters = require("./handlerParameters.cjs");
|
|
3
3
|
let _hot_updater_plugin_core = require("@hot-updater/plugin-core");
|
|
4
|
-
let _hot_updater_plugin_core_internal = require("@hot-updater/plugin-core/internal");
|
|
5
4
|
//#region src/handlerAdminRoutes.ts
|
|
6
5
|
const json = (body, status = 200) => Response.json(body, { status });
|
|
7
6
|
const notFound = () => json({ error: "Not found" }, 404);
|
|
@@ -24,7 +23,7 @@ const answer = async (operation) => {
|
|
|
24
23
|
code: "BUNDLE_NOT_FOUND",
|
|
25
24
|
error: error.message
|
|
26
25
|
}, 404);
|
|
27
|
-
if (error instanceof
|
|
26
|
+
if (error instanceof _hot_updater_plugin_core.DatabaseRowReferencedError) return json({
|
|
28
27
|
code: "REFERENCED",
|
|
29
28
|
error: error.message
|
|
30
29
|
}, 409);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { HandlerBadRequestError } from "./handlerErrors.mjs";
|
|
2
2
|
import { decodeMaybe, isPlatform, parseBooleanSearchParam, requireRouteParam } from "./handlerParameters.mjs";
|
|
3
|
-
import { DatabaseBundleNotFoundError, ReleaseCatalogMutationError, ReleaseManagementError } from "@hot-updater/plugin-core";
|
|
4
|
-
import { DatabaseRowReferencedError } from "@hot-updater/plugin-core/internal";
|
|
3
|
+
import { DatabaseBundleNotFoundError, DatabaseRowReferencedError, ReleaseCatalogMutationError, ReleaseManagementError } from "@hot-updater/plugin-core";
|
|
5
4
|
//#region src/handlerAdminRoutes.ts
|
|
6
5
|
const json = (body, status = 200) => Response.json(body, { status });
|
|
7
6
|
const notFound = () => json({ error: "Not found" }, 404);
|
|
@@ -3,8 +3,8 @@ const require_version = require("./version.cjs");
|
|
|
3
3
|
const HOT_UPDATER_INFRASTRUCTURE_GENERATION = 1;
|
|
4
4
|
/**
|
|
5
5
|
* `/version` on both mounts. The admin mount also lists the ids of the
|
|
6
|
-
* plugins the server runs, sorted
|
|
7
|
-
*
|
|
6
|
+
* plugins the server runs, sorted; apps never learn which plugins a server
|
|
7
|
+
* runs.
|
|
8
8
|
*/
|
|
9
9
|
const createVersionRouteHandlers = (plugins = []) => {
|
|
10
10
|
const version = {
|
|
@@ -3,8 +3,8 @@ import { HOT_UPDATER_SERVER_VERSION } from "./version.mjs";
|
|
|
3
3
|
const HOT_UPDATER_INFRASTRUCTURE_GENERATION = 1;
|
|
4
4
|
/**
|
|
5
5
|
* `/version` on both mounts. The admin mount also lists the ids of the
|
|
6
|
-
* plugins the server runs, sorted
|
|
7
|
-
*
|
|
6
|
+
* plugins the server runs, sorted; apps never learn which plugins a server
|
|
7
|
+
* runs.
|
|
8
8
|
*/
|
|
9
9
|
const createVersionRouteHandlers = (plugins = []) => {
|
|
10
10
|
const version = {
|
package/dist/index.cjs
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
-
const require_configError = require("./assembly/configError.cjs");
|
|
3
2
|
const require_version = require("./version.cjs");
|
|
4
3
|
const require_handlerVersionRoutes = require("./handlerVersionRoutes.cjs");
|
|
5
4
|
const require_createHotUpdaterCore = require("./createHotUpdaterCore.cjs");
|
|
5
|
+
const require_node = require("./node.cjs");
|
|
6
|
+
let _hot_updater_plugin_core = require("@hot-updater/plugin-core");
|
|
6
7
|
exports.HOT_UPDATER_INFRASTRUCTURE_GENERATION = require_handlerVersionRoutes.HOT_UPDATER_INFRASTRUCTURE_GENERATION;
|
|
7
8
|
exports.HOT_UPDATER_SERVER_VERSION = require_version.HOT_UPDATER_SERVER_VERSION;
|
|
8
|
-
exports
|
|
9
|
+
Object.defineProperty(exports, "HotUpdaterConfigError", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function() {
|
|
12
|
+
return _hot_updater_plugin_core.HotUpdaterConfigError;
|
|
13
|
+
}
|
|
14
|
+
});
|
|
9
15
|
exports.createHotUpdater = require_createHotUpdaterCore.createHotUpdater;
|
|
16
|
+
exports.toNodeHandler = require_node.toNodeHandler;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { HOT_UPDATER_SERVER_VERSION } from "./version.cjs";
|
|
2
1
|
import { HotUpdaterConfigError } from "./assembly/configError.cjs";
|
|
3
2
|
import "./assembly/assemblePlugins.cjs";
|
|
4
3
|
import { HotUpdaterHandler, HotUpdaterHandlers } from "./handlerTypes.cjs";
|
|
5
4
|
import "./handler.cjs";
|
|
6
|
-
import { ClientAccessPolicy, ClientAccessRule, CreateHotUpdaterOptions, HotUpdaterAPI, RuntimeHotUpdaterAPI, createHotUpdater } from "./createHotUpdaterCore.cjs";
|
|
5
|
+
import { ClientAccessPolicy, ClientAccessRule, ClientAuthProvider, ClientEndpoint, CreateHotUpdaterOptions, HotUpdaterAPI, RuntimeHotUpdaterAPI, createHotUpdater } from "./createHotUpdaterCore.cjs";
|
|
7
6
|
import { Bundle } from "./types/index.cjs";
|
|
7
|
+
import { HOT_UPDATER_SERVER_VERSION } from "./version.cjs";
|
|
8
8
|
import { HOT_UPDATER_INFRASTRUCTURE_GENERATION } from "./handlerVersionRoutes.cjs";
|
|
9
|
-
|
|
9
|
+
import { toNodeHandler } from "./node.cjs";
|
|
10
|
+
export { type Bundle, type ClientAccessPolicy, type ClientAccessRule, type ClientAuthProvider, type ClientEndpoint, type CreateHotUpdaterOptions, HOT_UPDATER_INFRASTRUCTURE_GENERATION, HOT_UPDATER_SERVER_VERSION, type HotUpdaterAPI, HotUpdaterConfigError, type HotUpdaterHandler, type HotUpdaterHandlers, type RuntimeHotUpdaterAPI, createHotUpdater, toNodeHandler };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { HOT_UPDATER_SERVER_VERSION } from "./version.mjs";
|
|
2
1
|
import { HotUpdaterConfigError } from "./assembly/configError.mjs";
|
|
3
2
|
import "./assembly/assemblePlugins.mjs";
|
|
4
3
|
import { HotUpdaterHandler, HotUpdaterHandlers } from "./handlerTypes.mjs";
|
|
5
4
|
import "./handler.mjs";
|
|
6
|
-
import { ClientAccessPolicy, ClientAccessRule, CreateHotUpdaterOptions, HotUpdaterAPI, RuntimeHotUpdaterAPI, createHotUpdater } from "./createHotUpdaterCore.mjs";
|
|
5
|
+
import { ClientAccessPolicy, ClientAccessRule, ClientAuthProvider, ClientEndpoint, CreateHotUpdaterOptions, HotUpdaterAPI, RuntimeHotUpdaterAPI, createHotUpdater } from "./createHotUpdaterCore.mjs";
|
|
7
6
|
import { Bundle } from "./types/index.mjs";
|
|
7
|
+
import { HOT_UPDATER_SERVER_VERSION } from "./version.mjs";
|
|
8
8
|
import { HOT_UPDATER_INFRASTRUCTURE_GENERATION } from "./handlerVersionRoutes.mjs";
|
|
9
|
-
|
|
9
|
+
import { toNodeHandler } from "./node.mjs";
|
|
10
|
+
export { type Bundle, type ClientAccessPolicy, type ClientAccessRule, type ClientAuthProvider, type ClientEndpoint, type CreateHotUpdaterOptions, HOT_UPDATER_INFRASTRUCTURE_GENERATION, HOT_UPDATER_SERVER_VERSION, type HotUpdaterAPI, HotUpdaterConfigError, type HotUpdaterHandler, type HotUpdaterHandlers, type RuntimeHotUpdaterAPI, createHotUpdater, toNodeHandler };
|
package/dist/index.mjs
CHANGED
|
@@ -2,4 +2,5 @@ import { HotUpdaterConfigError } from "./assembly/configError.mjs";
|
|
|
2
2
|
import { HOT_UPDATER_SERVER_VERSION } from "./version.mjs";
|
|
3
3
|
import { HOT_UPDATER_INFRASTRUCTURE_GENERATION } from "./handlerVersionRoutes.mjs";
|
|
4
4
|
import { createHotUpdater } from "./createHotUpdaterCore.mjs";
|
|
5
|
-
|
|
5
|
+
import { toNodeHandler } from "./node.mjs";
|
|
6
|
+
export { HOT_UPDATER_INFRASTRUCTURE_GENERATION, HOT_UPDATER_SERVER_VERSION, HotUpdaterConfigError, createHotUpdater, toNodeHandler };
|
package/dist/node.cjs
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const require_handlerVersionRoutes = require("./handlerVersionRoutes.cjs");
|
|
1
|
+
require("./version.cjs");
|
|
2
|
+
require("./handlerVersionRoutes.cjs");
|
|
4
3
|
//#region src/node.ts
|
|
5
4
|
/**
|
|
6
5
|
* Converts a Hot Updater handler to a Node.js-compatible middleware
|
|
@@ -8,7 +7,7 @@ const require_handlerVersionRoutes = require("./handlerVersionRoutes.cjs");
|
|
|
8
7
|
*
|
|
9
8
|
* @example
|
|
10
9
|
* ```typescript
|
|
11
|
-
* import { toNodeHandler } from "@hot-updater/server
|
|
10
|
+
* import { toNodeHandler } from "@hot-updater/server";
|
|
12
11
|
* import express from "express";
|
|
13
12
|
*
|
|
14
13
|
* const app = express();
|
|
@@ -54,6 +53,4 @@ function toNodeHandler(handler) {
|
|
|
54
53
|
};
|
|
55
54
|
}
|
|
56
55
|
//#endregion
|
|
57
|
-
exports.HOT_UPDATER_INFRASTRUCTURE_GENERATION = require_handlerVersionRoutes.HOT_UPDATER_INFRASTRUCTURE_GENERATION;
|
|
58
|
-
exports.HOT_UPDATER_SERVER_VERSION = require_version.HOT_UPDATER_SERVER_VERSION;
|
|
59
56
|
exports.toNodeHandler = toNodeHandler;
|
package/dist/node.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { HOT_UPDATER_SERVER_VERSION } from "./version.cjs";
|
|
2
1
|
import { HotUpdaterHandler } from "./handlerTypes.cjs";
|
|
2
|
+
import { HOT_UPDATER_SERVER_VERSION } from "./version.cjs";
|
|
3
3
|
import { HOT_UPDATER_INFRASTRUCTURE_GENERATION } from "./handlerVersionRoutes.cjs";
|
|
4
4
|
//#region src/node.d.ts
|
|
5
5
|
/**
|
|
@@ -8,7 +8,7 @@ import { HOT_UPDATER_INFRASTRUCTURE_GENERATION } from "./handlerVersionRoutes.cj
|
|
|
8
8
|
*
|
|
9
9
|
* @example
|
|
10
10
|
* ```typescript
|
|
11
|
-
* import { toNodeHandler } from "@hot-updater/server
|
|
11
|
+
* import { toNodeHandler } from "@hot-updater/server";
|
|
12
12
|
* import express from "express";
|
|
13
13
|
*
|
|
14
14
|
* const app = express();
|
|
@@ -28,4 +28,4 @@ import { HOT_UPDATER_INFRASTRUCTURE_GENERATION } from "./handlerVersionRoutes.cj
|
|
|
28
28
|
*/
|
|
29
29
|
declare function toNodeHandler(handler: HotUpdaterHandler): (req: any, res: any, next?: any) => Promise<void>;
|
|
30
30
|
//#endregion
|
|
31
|
-
export {
|
|
31
|
+
export { toNodeHandler };
|
package/dist/node.d.mts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { HOT_UPDATER_SERVER_VERSION } from "./version.mjs";
|
|
2
1
|
import { HotUpdaterHandler } from "./handlerTypes.mjs";
|
|
2
|
+
import { HOT_UPDATER_SERVER_VERSION } from "./version.mjs";
|
|
3
3
|
import { HOT_UPDATER_INFRASTRUCTURE_GENERATION } from "./handlerVersionRoutes.mjs";
|
|
4
4
|
//#region src/node.d.ts
|
|
5
5
|
/**
|
|
@@ -8,7 +8,7 @@ import { HOT_UPDATER_INFRASTRUCTURE_GENERATION } from "./handlerVersionRoutes.mj
|
|
|
8
8
|
*
|
|
9
9
|
* @example
|
|
10
10
|
* ```typescript
|
|
11
|
-
* import { toNodeHandler } from "@hot-updater/server
|
|
11
|
+
* import { toNodeHandler } from "@hot-updater/server";
|
|
12
12
|
* import express from "express";
|
|
13
13
|
*
|
|
14
14
|
* const app = express();
|
|
@@ -28,4 +28,4 @@ import { HOT_UPDATER_INFRASTRUCTURE_GENERATION } from "./handlerVersionRoutes.mj
|
|
|
28
28
|
*/
|
|
29
29
|
declare function toNodeHandler(handler: HotUpdaterHandler): (req: any, res: any, next?: any) => Promise<void>;
|
|
30
30
|
//#endregion
|
|
31
|
-
export {
|
|
31
|
+
export { toNodeHandler };
|
package/dist/node.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import "./version.mjs";
|
|
2
|
+
import "./handlerVersionRoutes.mjs";
|
|
3
3
|
//#region src/node.ts
|
|
4
4
|
/**
|
|
5
5
|
* Converts a Hot Updater handler to a Node.js-compatible middleware
|
|
@@ -7,7 +7,7 @@ import { HOT_UPDATER_INFRASTRUCTURE_GENERATION } from "./handlerVersionRoutes.mj
|
|
|
7
7
|
*
|
|
8
8
|
* @example
|
|
9
9
|
* ```typescript
|
|
10
|
-
* import { toNodeHandler } from "@hot-updater/server
|
|
10
|
+
* import { toNodeHandler } from "@hot-updater/server";
|
|
11
11
|
* import express from "express";
|
|
12
12
|
*
|
|
13
13
|
* const app = express();
|
|
@@ -53,4 +53,4 @@ function toNodeHandler(handler) {
|
|
|
53
53
|
};
|
|
54
54
|
}
|
|
55
55
|
//#endregion
|
|
56
|
-
export {
|
|
56
|
+
export { toNodeHandler };
|
package/dist/package.cjs
CHANGED