@hot-updater/server 1.0.0-rc.1 → 1.0.0-rc.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_rolldown/runtime.cjs +1 -1
- package/dist/adapters/drizzle.cjs +35 -69
- package/dist/adapters/drizzle.d.cts +13 -6
- package/dist/adapters/drizzle.d.mts +13 -6
- package/dist/adapters/drizzle.mjs +34 -69
- package/dist/adapters/drizzleExecutor.cjs +114 -0
- package/dist/adapters/drizzleExecutor.d.cts +9 -0
- package/dist/adapters/drizzleExecutor.d.mts +9 -0
- package/dist/adapters/drizzleExecutor.mjs +112 -0
- package/dist/adapters/kysely.cjs +25 -31
- package/dist/adapters/kysely.d.cts +10 -7
- package/dist/adapters/kysely.d.mts +10 -7
- package/dist/adapters/kysely.mjs +25 -31
- package/dist/adapters/kyselyExecutor.cjs +32 -0
- package/dist/adapters/kyselyExecutor.d.cts +12 -0
- package/dist/adapters/kyselyExecutor.d.mts +12 -0
- package/dist/adapters/kyselyExecutor.mjs +32 -0
- package/dist/adapters/mongodb.cjs +28 -27
- package/dist/adapters/mongodb.d.cts +10 -5
- package/dist/adapters/mongodb.d.mts +10 -5
- package/dist/adapters/mongodb.mjs +28 -27
- package/dist/adapters/mongodbAdapter.cjs +174 -0
- package/dist/adapters/mongodbAdapter.d.cts +9 -0
- package/dist/adapters/mongodbAdapter.d.mts +9 -0
- package/dist/adapters/mongodbAdapter.mjs +173 -0
- package/dist/adapters/prisma.cjs +38 -220
- package/dist/adapters/prisma.d.cts +12 -8
- package/dist/adapters/prisma.d.mts +12 -8
- package/dist/adapters/prisma.mjs +38 -219
- package/dist/adapters/prismaExecutor.cjs +64 -0
- package/dist/adapters/prismaExecutor.mjs +64 -0
- package/dist/adapters/sqlProviders.cjs +9 -0
- package/dist/adapters/sqlProviders.mjs +9 -0
- package/dist/apiKeys.cjs +8 -8
- package/dist/apiKeys.d.cts +1 -24
- package/dist/apiKeys.d.mts +1 -24
- package/dist/apiKeys.mjs +5 -9
- package/dist/assembly/assemblePlugins.cjs +147 -0
- package/dist/assembly/assemblePlugins.d.cts +12 -0
- package/dist/assembly/assemblePlugins.d.mts +12 -0
- package/dist/assembly/assemblePlugins.mjs +146 -0
- package/dist/assembly/databasePlugins.cjs +23 -0
- package/dist/assembly/databasePlugins.d.cts +43 -0
- package/dist/assembly/databasePlugins.d.mts +43 -0
- package/dist/assembly/databasePlugins.mjs +22 -0
- package/dist/core/api.cjs +91 -0
- package/dist/core/api.d.cts +65 -0
- package/dist/core/api.d.mts +65 -0
- package/dist/core/api.mjs +87 -0
- package/dist/core/baseCandidates.cjs +71 -0
- package/dist/core/baseCandidates.d.cts +17 -0
- package/dist/core/baseCandidates.d.mts +17 -0
- package/dist/core/baseCandidates.mjs +69 -0
- package/dist/core/operations.cjs +350 -0
- package/dist/core/operations.mjs +350 -0
- package/dist/core/reads.cjs +273 -0
- package/dist/core/reads.d.cts +48 -0
- package/dist/core/reads.d.mts +48 -0
- package/dist/core/reads.mjs +267 -0
- package/dist/core/releases.cjs +193 -0
- package/dist/core/releases.mjs +190 -0
- package/dist/core/schema.cjs +279 -0
- package/dist/core/schema.d.cts +307 -0
- package/dist/core/schema.d.mts +307 -0
- package/dist/core/schema.mjs +277 -0
- package/dist/core/writes.cjs +96 -0
- package/dist/core/writes.mjs +91 -0
- package/dist/createHotUpdaterCore.cjs +61 -63
- package/dist/createHotUpdaterCore.d.cts +53 -45
- package/dist/createHotUpdaterCore.d.mts +53 -45
- package/dist/createHotUpdaterCore.mjs +61 -63
- package/dist/database/cursor.cjs +44 -0
- package/dist/database/cursor.d.cts +7 -0
- package/dist/database/cursor.d.mts +7 -0
- package/dist/database/cursor.mjs +40 -0
- package/dist/database/database.cjs +44 -0
- package/dist/database/database.d.cts +123 -0
- package/dist/database/database.d.mts +123 -0
- package/dist/database/database.mjs +44 -0
- package/dist/database/definitions.d.cts +68 -0
- package/dist/database/definitions.d.mts +68 -0
- package/dist/database/engine.cjs +37 -0
- package/dist/database/engine.d.cts +40 -0
- package/dist/database/engine.d.mts +40 -0
- package/dist/database/engine.mjs +37 -0
- package/dist/database/engineAggregates.cjs +115 -0
- package/dist/database/engineAggregates.mjs +112 -0
- package/dist/database/engineReads.cjs +180 -0
- package/dist/database/engineReads.d.cts +35 -0
- package/dist/database/engineReads.d.mts +35 -0
- package/dist/database/engineReads.mjs +179 -0
- package/dist/database/engineTransaction.cjs +403 -0
- package/dist/database/engineTransaction.d.cts +26 -0
- package/dist/database/engineTransaction.d.mts +26 -0
- package/dist/database/engineTransaction.mjs +402 -0
- package/dist/database/errors.cjs +27 -0
- package/dist/database/errors.d.cts +21 -0
- package/dist/database/errors.d.mts +21 -0
- package/dist/database/errors.mjs +24 -0
- package/dist/database/fence.cjs +124 -0
- package/dist/database/fence.d.cts +42 -0
- package/dist/database/fence.d.mts +42 -0
- package/dist/database/fence.mjs +116 -0
- package/dist/database/index.cjs +127 -0
- package/dist/database/index.d.cts +17 -0
- package/dist/database/index.d.mts +17 -0
- package/dist/database/index.mjs +15 -0
- package/dist/database/kv/kvAdapter.cjs +273 -0
- package/dist/database/kv/kvAdapter.d.cts +101 -0
- package/dist/database/kv/kvAdapter.d.mts +101 -0
- package/dist/database/kv/kvAdapter.mjs +272 -0
- package/dist/database/resolveSchema.cjs +196 -0
- package/dist/database/resolveSchema.d.cts +42 -0
- package/dist/database/resolveSchema.d.mts +42 -0
- package/dist/database/resolveSchema.mjs +193 -0
- package/dist/database/schema.cjs +21 -0
- package/dist/database/schema.d.cts +61 -0
- package/dist/database/schema.d.mts +61 -0
- package/dist/database/schema.mjs +20 -0
- package/dist/database/sql/sqlAdapter.cjs +282 -0
- package/dist/database/sql/sqlAdapter.d.cts +46 -0
- package/dist/database/sql/sqlAdapter.d.mts +46 -0
- package/dist/database/sql/sqlAdapter.mjs +279 -0
- package/dist/database/sql/sqlSchema.cjs +115 -0
- package/dist/database/sql/sqlSchema.d.cts +8 -0
- package/dist/database/sql/sqlSchema.d.mts +8 -0
- package/dist/database/sql/sqlSchema.mjs +111 -0
- package/dist/db/builtInDatabase.cjs +104 -0
- package/dist/db/builtInDatabase.d.cts +38 -0
- package/dist/db/builtInDatabase.d.mts +38 -0
- package/dist/db/builtInDatabase.mjs +97 -0
- package/dist/db/createBundleDiff.cjs +6 -6
- package/dist/db/createBundleDiff.d.cts +4 -7
- package/dist/db/createBundleDiff.d.mts +4 -7
- package/dist/db/createBundleDiff.mjs +5 -5
- package/dist/db/engineDrizzleSchema.cjs +54 -0
- package/dist/db/engineDrizzleSchema.mjs +54 -0
- package/dist/db/engineMigrator.cjs +53 -0
- package/dist/db/engineMigrator.mjs +53 -0
- package/dist/db/enginePrismaSchema.cjs +85 -0
- package/dist/db/enginePrismaSchema.d.cts +5 -0
- package/dist/db/enginePrismaSchema.d.mts +5 -0
- package/dist/db/enginePrismaSchema.mjs +84 -0
- package/dist/db/engineSql.cjs +26 -0
- package/dist/db/engineSql.d.cts +17 -0
- package/dist/db/engineSql.d.mts +17 -0
- package/dist/db/engineSql.mjs +25 -0
- package/dist/db/engineSqlMigrator.cjs +66 -0
- package/dist/db/engineSqlMigrator.mjs +66 -0
- package/dist/db/fixedMigratorShared.cjs +0 -11
- package/dist/db/fixedMigratorShared.mjs +1 -8
- package/dist/db/index.cjs +23 -8
- package/dist/db/index.d.cts +10 -4
- package/dist/db/index.d.mts +10 -4
- package/dist/db/index.mjs +16 -8
- package/dist/db/releaseCatalog.cjs +20 -44
- package/dist/db/releaseCatalog.d.cts +2 -3
- package/dist/db/releaseCatalog.d.mts +2 -3
- package/dist/db/releaseCatalog.mjs +20 -44
- package/dist/db/schemaSettings.cjs +63 -0
- package/dist/db/schemaSettings.d.cts +12 -0
- package/dist/db/schemaSettings.d.mts +12 -0
- package/dist/db/schemaSettings.mjs +62 -0
- package/dist/db/settingsMigrator.cjs +92 -0
- package/dist/db/settingsMigrator.mjs +89 -0
- package/dist/db/types.cjs +3 -12
- package/dist/db/types.d.cts +26 -69
- package/dist/db/types.d.mts +26 -69
- package/dist/db/types.mjs +2 -11
- package/dist/db/updateArtifacts.cjs +38 -68
- package/dist/db/updateArtifacts.mjs +40 -69
- package/dist/handler.cjs +72 -43
- package/dist/handler.d.cts +3 -6
- package/dist/handler.d.mts +3 -6
- package/dist/handler.mjs +73 -43
- package/dist/handlerAdminRoutes.cjs +375 -0
- package/dist/handlerAdminRoutes.mjs +373 -0
- package/dist/handlerParameters.cjs +6 -11
- package/dist/handlerParameters.mjs +6 -10
- package/dist/handlerReleaseCatalogRoutes.cjs +11 -14
- package/dist/handlerReleaseCatalogRoutes.mjs +11 -13
- package/dist/handlerTypes.d.cts +2 -56
- package/dist/handlerTypes.d.mts +2 -56
- package/dist/handlerVersionRoutes.cjs +20 -4
- package/dist/handlerVersionRoutes.d.cts +1 -0
- package/dist/handlerVersionRoutes.d.mts +1 -0
- package/dist/handlerVersionRoutes.mjs +20 -4
- package/dist/index.cjs +4 -7
- package/dist/index.d.cts +10 -9
- package/dist/index.d.mts +10 -9
- package/dist/index.mjs +4 -4
- package/dist/insights/domain.d.cts +53 -70
- package/dist/insights/domain.d.mts +53 -70
- package/dist/insights/errors.cjs +35 -8
- package/dist/insights/errors.mjs +35 -8
- package/dist/insights/eventInput.cjs +64 -24
- package/dist/insights/eventInput.mjs +63 -25
- package/dist/insights/provider.cjs +356 -0
- package/dist/insights/provider.d.cts +6 -0
- package/dist/insights/provider.d.mts +6 -0
- package/dist/insights/provider.mjs +355 -0
- package/dist/insights/queryInput.cjs +78 -43
- package/dist/insights/queryInput.mjs +76 -40
- package/dist/insights/routes.cjs +94 -34
- package/dist/insights/routes.mjs +93 -35
- package/dist/insights/types.d.cts +27 -12
- package/dist/insights/types.d.mts +27 -12
- package/dist/node.d.cts +1 -2
- package/dist/node.d.mts +1 -2
- package/dist/package.cjs +1 -1
- package/dist/package.mjs +1 -1
- package/dist/plugins/api-keys/index.cjs +50 -0
- package/dist/plugins/api-keys/index.d.cts +85 -0
- package/dist/plugins/api-keys/index.d.mts +85 -0
- package/dist/plugins/api-keys/index.mjs +47 -0
- package/dist/plugins/api-keys/model.cjs +58 -0
- package/dist/plugins/api-keys/model.d.cts +8 -0
- package/dist/plugins/api-keys/model.d.mts +8 -0
- package/dist/plugins/api-keys/model.mjs +58 -0
- package/dist/plugins/api-keys/schema.cjs +38 -0
- package/dist/plugins/api-keys/schema.d.cts +44 -0
- package/dist/plugins/api-keys/schema.d.mts +44 -0
- package/dist/plugins/api-keys/schema.mjs +39 -0
- package/dist/plugins/builtIn.cjs +7 -0
- package/dist/plugins/builtIn.mjs +6 -0
- package/dist/plugins/definePlugin.cjs +5 -0
- package/dist/plugins/definePlugin.d.cts +73 -0
- package/dist/plugins/definePlugin.d.mts +73 -0
- package/dist/plugins/definePlugin.mjs +5 -0
- package/dist/plugins/index.cjs +17 -0
- package/dist/plugins/index.d.cts +9 -0
- package/dist/plugins/index.d.mts +9 -0
- package/dist/plugins/index.mjs +7 -0
- package/dist/plugins/insights/index.cjs +48 -0
- package/dist/plugins/insights/index.d.cts +295 -0
- package/dist/plugins/insights/index.d.mts +295 -0
- package/dist/plugins/insights/index.mjs +44 -0
- package/dist/plugins/insights/model.cjs +17 -0
- package/dist/plugins/insights/model.d.cts +10 -0
- package/dist/plugins/insights/model.d.mts +10 -0
- package/dist/plugins/insights/model.mjs +17 -0
- package/dist/plugins/insights/reads.cjs +471 -0
- package/dist/plugins/insights/reads.mjs +466 -0
- package/dist/plugins/insights/recordEvent.cjs +135 -0
- package/dist/plugins/insights/recordEvent.d.cts +13 -0
- package/dist/plugins/insights/recordEvent.d.mts +13 -0
- package/dist/plugins/insights/recordEvent.mjs +132 -0
- package/dist/plugins/insights/schema.cjs +347 -0
- package/dist/plugins/insights/schema.d.cts +258 -0
- package/dist/plugins/insights/schema.d.mts +258 -0
- package/dist/plugins/insights/schema.mjs +344 -0
- package/dist/storageAccess.cjs +0 -1
- package/dist/types/index.d.cts +2 -29
- package/dist/types/index.d.mts +2 -29
- package/package.json +30 -7
- package/src/adapters/drizzle.conformance.integration.spec.ts +34 -0
- package/src/adapters/drizzle.readBudgets.integration.spec.ts +41 -0
- package/src/adapters/drizzle.spec.ts +277 -208
- package/src/adapters/drizzle.ts +48 -128
- package/src/adapters/drizzleExecutor.ts +166 -0
- package/src/adapters/kysely.conformance.integration.spec.ts +36 -0
- package/src/adapters/kysely.readBudgets.integration.spec.ts +42 -0
- package/src/adapters/kysely.spec.ts +212 -117
- package/src/adapters/kysely.ts +32 -87
- package/src/adapters/kyselyExecutor.ts +53 -0
- package/src/adapters/mongodb.integration.spec.ts +180 -0
- package/src/adapters/mongodb.readBudgets.integration.spec.ts +61 -0
- package/src/adapters/mongodb.ts +36 -65
- package/src/adapters/mongodbAdapter.ts +293 -0
- package/src/adapters/prisma.conformance.integration.spec.ts +36 -0
- package/src/adapters/prisma.integration.spec.ts +138 -0
- package/src/adapters/prisma.readBudgets.integration.spec.ts +40 -0
- package/src/adapters/prisma.spec.ts +226 -173
- package/src/adapters/prisma.ts +60 -451
- package/src/adapters/prismaExecutor.ts +107 -0
- package/src/adapters/prismaTestClients.ts +175 -0
- package/src/adapters/sqlProviders.ts +14 -0
- package/src/apiKeys.integration.spec.ts +19 -119
- package/src/apiKeys.spec.ts +39 -35
- package/src/apiKeys.ts +2 -8
- package/src/assembly/assemblePlugins.ts +269 -0
- package/src/assembly/assembly.spec.ts +325 -0
- package/src/assembly/assembly.types.spec.ts +155 -0
- package/src/assembly/builtInRoutes.spec.ts +213 -0
- package/src/assembly/databasePlugins.spec.ts +71 -0
- package/src/assembly/databasePlugins.ts +96 -0
- package/src/core/api.ts +139 -0
- package/src/core/baseCandidates.spec.ts +378 -0
- package/src/core/baseCandidates.ts +136 -0
- package/src/core/index.ts +44 -0
- package/src/core/operations.spec.ts +415 -0
- package/src/core/operations.ts +551 -0
- package/src/core/reads.spec.ts +300 -0
- package/src/core/reads.ts +417 -0
- package/src/core/releases.spec.ts +308 -0
- package/src/core/releases.ts +345 -0
- package/src/core/schema.ts +173 -0
- package/src/core/writes.ts +160 -0
- package/src/createHotUpdaterCore.ts +191 -167
- package/src/database/cursor.ts +65 -0
- package/src/database/database.ts +335 -0
- package/src/database/database.types.spec.ts +135 -0
- package/src/database/definitions.ts +72 -0
- package/src/database/engine.ts +62 -0
- package/src/database/engineAggregates.spec.ts +539 -0
- package/src/database/engineAggregates.ts +193 -0
- package/src/database/engineReads.spec.ts +219 -0
- package/src/database/engineReads.ts +302 -0
- package/src/database/engineTransaction.spec.ts +710 -0
- package/src/database/engineTransaction.ts +588 -0
- package/src/database/errors.ts +30 -0
- package/src/database/fence.spec.ts +223 -0
- package/src/database/fence.ts +171 -0
- package/src/database/index.ts +154 -0
- package/src/database/kv/kvAdapter.conformance.integration.spec.ts +17 -0
- package/src/database/kv/kvAdapter.readBudgets.integration.spec.ts +17 -0
- package/src/database/kv/kvAdapter.spec.ts +468 -0
- package/src/database/kv/kvAdapter.ts +450 -0
- package/src/database/kv/kvTestStore.ts +91 -0
- package/src/database/memory.readBudgets.integration.spec.ts +13 -0
- package/src/database/resolveSchema.spec.ts +230 -0
- package/src/database/resolveSchema.ts +372 -0
- package/src/database/schema.ts +169 -0
- package/src/database/schema.types.spec.ts +94 -0
- package/src/database/sql/docker-compose.yml +36 -0
- package/src/database/sql/sqlAdapter.integration.spec.ts +148 -0
- package/src/database/sql/sqlAdapter.readBudgets.integration.spec.ts +109 -0
- package/src/database/sql/sqlAdapter.spec.ts +255 -0
- package/src/database/sql/sqlAdapter.ts +532 -0
- package/src/database/sql/sqlSchema.ts +205 -0
- package/src/database/sql/sqlTestExecutors.ts +183 -0
- package/src/databaseTestSuite.spec.ts +39 -0
- package/src/db/builtInDatabase.ts +149 -0
- package/src/db/bundleRows.spec.ts +3 -3
- package/src/db/createBundleDiff.spec.ts +43 -29
- package/src/db/createBundleDiff.ts +13 -7
- package/src/db/engineDrizzleSchema.ts +72 -0
- package/src/db/engineMigrator.ts +105 -0
- package/src/db/enginePrismaSchema.ts +147 -0
- package/src/db/engineSql.spec.ts +129 -0
- package/src/db/engineSql.ts +48 -0
- package/src/db/engineSqlMigrator.ts +116 -0
- package/src/db/fixedMigratorShared.ts +1 -20
- package/src/db/index.spec.ts +116 -824
- package/src/db/index.ts +43 -14
- package/src/db/pluginTables.spec.ts +218 -0
- package/src/db/releaseCatalog.ts +48 -90
- package/src/db/schemaSettings.ts +104 -0
- package/src/db/settingsMigrator.spec.ts +65 -0
- package/src/db/settingsMigrator.ts +152 -0
- package/src/db/types.ts +25 -165
- package/src/db/updateArtifacts.spec.ts +170 -294
- package/src/db/updateArtifacts.ts +74 -142
- package/src/db/updateCheck.bench.ts +47 -0
- package/src/handler-standalone.integration.spec.ts +204 -412
- package/src/handler.spec.ts +134 -51
- package/src/handler.testFixtures.ts +14 -19
- package/src/handler.ts +163 -75
- package/src/handlerAdminRoutes.spec.ts +183 -0
- package/src/handlerAdminRoutes.ts +536 -0
- package/src/handlerAuth.integration.spec.ts +3 -3
- package/src/handlerManagement.spec.ts +136 -196
- package/src/handlerReleaseCatalogRoutes.ts +15 -17
- package/src/handlerTypes.ts +3 -80
- package/src/handlerVersionRoutes.ts +20 -7
- package/src/index.ts +7 -14
- package/src/insights/domain.ts +56 -77
- package/src/insights/errors.spec.ts +48 -0
- package/src/insights/errors.ts +50 -6
- package/src/insights/eventInput.ts +80 -27
- package/src/insights/insights.integration.spec.ts +525 -44
- package/src/insights/provider.spec.ts +574 -0
- package/src/insights/provider.ts +667 -0
- package/src/insights/queryInput.ts +113 -73
- package/src/insights/routes.ts +125 -69
- package/src/insights/types.ts +47 -36
- package/src/lintRules.spec.ts +76 -0
- package/src/plugins/api-keys/apiKeysPlugin.spec.ts +172 -0
- package/src/plugins/api-keys/index.ts +66 -0
- package/src/plugins/api-keys/model.ts +69 -0
- package/src/plugins/api-keys/schema.ts +22 -0
- package/src/plugins/builtIn.ts +5 -0
- package/src/plugins/definePlugin.ts +100 -0
- package/src/plugins/index.ts +55 -0
- package/src/plugins/insights/index.ts +86 -0
- package/src/plugins/insights/insightsRollout.integration.spec.ts +187 -0
- package/src/plugins/insights/model.spec.ts +66 -0
- package/src/plugins/insights/model.ts +19 -0
- package/src/plugins/insights/reads.spec.ts +725 -0
- package/src/plugins/insights/reads.ts +707 -0
- package/src/plugins/insights/recordEvent.spec.ts +443 -0
- package/src/plugins/insights/recordEvent.ts +238 -0
- package/src/plugins/insights/schema.ts +229 -0
- package/src/plugins/pluginTestHarness.spec.ts +56 -0
- package/src/readBudgets.testFixtures.ts +15 -0
- package/src/releaseCatalogRoutes.integration.spec.ts +47 -92
- package/src/runtime.spec.ts +91 -77
- package/src/runtime.testFixtures.ts +28 -44
- package/src/runtimeBundles.integration.spec.ts +112 -0
- package/src/testUtilsMutation.integration.spec.ts +215 -0
- package/src/testUtilsPackage.integration.spec.ts +176 -0
- package/src/types/index.ts +0 -32
- package/dist/adapters/databaseConstraintErrors.cjs +0 -23
- package/dist/adapters/databaseConstraintErrors.mjs +0 -21
- package/dist/adapters/databasePluginUtils.cjs +0 -117
- package/dist/adapters/databasePluginUtils.mjs +0 -106
- package/dist/adapters/drizzleCrud.cjs +0 -250
- package/dist/adapters/drizzleCrud.mjs +0 -249
- package/dist/adapters/drizzleLazyDB.cjs +0 -101
- package/dist/adapters/drizzleLazyDB.mjs +0 -101
- package/dist/adapters/drizzleQuery.cjs +0 -68
- package/dist/adapters/drizzleQuery.mjs +0 -67
- package/dist/adapters/kyselyCrud.cjs +0 -254
- package/dist/adapters/kyselyCrud.mjs +0 -253
- package/dist/adapters/kyselyQuery.cjs +0 -56
- package/dist/adapters/kyselyQuery.mjs +0 -55
- package/dist/adapters/mongodbCollections.cjs +0 -36
- package/dist/adapters/mongodbCollections.mjs +0 -30
- package/dist/adapters/mongodbQuery.cjs +0 -77
- package/dist/adapters/mongodbQuery.mjs +0 -70
- package/dist/adapters/mongodbReads.cjs +0 -148
- package/dist/adapters/mongodbReads.mjs +0 -147
- package/dist/adapters/mongodbWrites.cjs +0 -134
- package/dist/adapters/mongodbWrites.mjs +0 -133
- package/dist/adapters/prismaQuery.cjs +0 -58
- package/dist/adapters/prismaQuery.mjs +0 -56
- package/dist/adapters/prismaRows.cjs +0 -198
- package/dist/adapters/prismaRows.mjs +0 -188
- package/dist/db/databasePluginCore.cjs +0 -138
- package/dist/db/databasePluginCore.mjs +0 -137
- package/dist/db/fixedMigrator.cjs +0 -79
- package/dist/db/fixedMigrator.mjs +0 -78
- package/dist/db/fixedMigratorMongo.cjs +0 -319
- package/dist/db/fixedMigratorMongo.mjs +0 -319
- package/dist/db/mongoMigrationExecution.cjs +0 -11
- package/dist/db/mongoMigrationExecution.mjs +0 -11
- package/dist/db/schema/mongodb.cjs +0 -25
- package/dist/db/schema/mongodb.mjs +0 -25
- package/dist/db/schema/registry.cjs +0 -21
- package/dist/db/schema/registry.mjs +0 -17
- package/dist/db/schema/sql.cjs +0 -101
- package/dist/db/schema/sql.mjs +0 -97
- package/dist/db/schema/sqlOperations.cjs +0 -27
- package/dist/db/schema/sqlOperations.mjs +0 -26
- package/dist/db/schemaGenerators.cjs +0 -256
- package/dist/db/schemaGenerators.mjs +0 -254
- package/dist/db/schemaReadiness.cjs +0 -24
- package/dist/db/schemaReadiness.d.cts +0 -8
- package/dist/db/schemaReadiness.d.mts +0 -8
- package/dist/db/schemaReadiness.mjs +0 -23
- package/dist/db/sqlMigrationExecution.cjs +0 -67
- package/dist/db/sqlMigrationExecution.mjs +0 -66
- package/dist/handlerBundleRoutes.cjs +0 -155
- package/dist/handlerBundleRoutes.mjs +0 -155
- package/dist/handlerReleaseManagementRoutes.cjs +0 -125
- package/dist/handlerReleaseManagementRoutes.mjs +0 -124
- package/dist/insights/bounded/activeOverview.cjs +0 -87
- package/dist/insights/bounded/activeOverview.mjs +0 -85
- package/dist/insights/bounded/installationSearch.cjs +0 -42
- package/dist/insights/bounded/installationSearch.mjs +0 -42
- package/dist/insights/bounded/persistence.cjs +0 -39
- package/dist/insights/bounded/persistence.mjs +0 -38
- package/dist/insights/bounded/provider.cjs +0 -170
- package/dist/insights/bounded/provider.d.cts +0 -7
- package/dist/insights/bounded/provider.d.mts +0 -7
- package/dist/insights/bounded/provider.mjs +0 -170
- package/dist/insights/bounded/scan.cjs +0 -144
- package/dist/insights/bounded/scan.mjs +0 -138
- package/dist/insights/persistence.d.cts +0 -6
- package/dist/insights/persistence.d.mts +0 -6
- package/dist/schema/dsl.cjs +0 -103
- package/dist/schema/dsl.mjs +0 -87
- package/dist/schema/index.cjs +0 -6
- package/dist/schema/index.mjs +0 -7
- package/dist/schema/settings.cjs +0 -9
- package/dist/schema/settings.mjs +0 -9
- package/dist/schema/types.cjs +0 -8
- package/dist/schema/types.mjs +0 -6
- package/dist/schema/v1_0_0.cjs +0 -364
- package/dist/schema/v1_0_0.mjs +0 -357
- package/src/adapters/databaseConstraintErrors.ts +0 -25
- package/src/adapters/databasePluginTestDatabase.ts +0 -106
- package/src/adapters/databasePluginUtils.spec.ts +0 -29
- package/src/adapters/databasePluginUtils.ts +0 -214
- package/src/adapters/drizzleCrud.ts +0 -419
- package/src/adapters/drizzleLazyDB.ts +0 -257
- package/src/adapters/drizzleQuery.ts +0 -164
- package/src/adapters/kyselyCrud.ts +0 -588
- package/src/adapters/kyselyQuery.ts +0 -128
- package/src/adapters/mongodb.spec.ts +0 -141
- package/src/adapters/mongodbCollections.ts +0 -62
- package/src/adapters/mongodbQuery.ts +0 -226
- package/src/adapters/mongodbReads.ts +0 -311
- package/src/adapters/mongodbRows.spec.ts +0 -64
- package/src/adapters/mongodbRows.ts +0 -118
- package/src/adapters/mongodbTestClient.ts +0 -342
- package/src/adapters/mongodbTestFilter.ts +0 -166
- package/src/adapters/mongodbWrites.ts +0 -260
- package/src/adapters/prismaQuery.ts +0 -129
- package/src/adapters/prismaRows.spec.ts +0 -98
- package/src/adapters/prismaRows.ts +0 -301
- package/src/adapters/prismaTestClient.ts +0 -396
- package/src/calculatePagination.ts +0 -34
- package/src/db/databasePluginCore.spec.ts +0 -62
- package/src/db/databasePluginCore.testFixtures.ts +0 -76
- package/src/db/databasePluginCore.ts +0 -185
- package/src/db/databasePluginUpdateCheck.bench.ts +0 -107
- package/src/db/fixedMigrator.spec.ts +0 -231
- package/src/db/fixedMigrator.ts +0 -147
- package/src/db/fixedMigratorMongo.spec.ts +0 -192
- package/src/db/fixedMigratorMongo.ts +0 -425
- package/src/db/hotUpdaterSchema.ts +0 -5
- package/src/db/mongoMigrationExecution.ts +0 -23
- package/src/db/schema/definitions.ts +0 -1
- package/src/db/schema/mongodb.ts +0 -40
- package/src/db/schema/registry.ts +0 -55
- package/src/db/schema/sql.ts +0 -241
- package/src/db/schema/sqlOperations.ts +0 -63
- package/src/db/schema/types.ts +0 -1
- package/src/db/schemaGenerators.ts +0 -466
- package/src/db/schemaReadiness.ts +0 -34
- package/src/db/sqlMigrationExecution.spec.ts +0 -65
- package/src/db/sqlMigrationExecution.ts +0 -108
- package/src/db/types.spec.ts +0 -55
- package/src/handlerBundleRoutes.ts +0 -259
- package/src/handlerReleaseManagementRoutes.ts +0 -213
- package/src/insights/bounded/activeOverview.spec.ts +0 -189
- package/src/insights/bounded/activeOverview.ts +0 -148
- package/src/insights/bounded/installationSearch.spec.ts +0 -130
- package/src/insights/bounded/installationSearch.ts +0 -69
- package/src/insights/bounded/persistence.ts +0 -43
- package/src/insights/bounded/provider.spec.ts +0 -219
- package/src/insights/bounded/provider.ts +0 -229
- package/src/insights/bounded/scan.ts +0 -235
- package/src/insights/persistence.ts +0 -10
- package/src/schema/dsl-all-versions.spec.ts +0 -35
- package/src/schema/dsl.ts +0 -187
- package/src/schema/index.ts +0 -10
- package/src/schema/settings.ts +0 -15
- package/src/schema/types.ts +0 -79
- package/src/schema/v1_0_0.spec.ts +0 -146
- package/src/schema/v1_0_0.ts +0 -465
package/dist/handlerTypes.d.mts
CHANGED
|
@@ -1,63 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { PaginatedResult } from "./types/index.mjs";
|
|
3
|
-
import { ChannelDeleteInput, ChannelDeleteResult, ChannelInsertInput, ChannelInsertResult, ChannelRow, DatabaseBundleQueryOptions, DatabaseCommit, DatabaseCommitResult, ReleaseCatalogMutationPreflight, ReleaseCatalogMutationResult, ReleaseCatalogRebuildResult, ReleaseCatalogRow, ReleasePolicyPatch, ReleaseRow } from "@hot-updater/plugin-core";
|
|
4
|
-
import { ArtifactInfo, Bundle as Bundle$1, ReleaseCatalog } from "@hot-updater/core";
|
|
5
|
-
|
|
1
|
+
import "./core/api.mjs";
|
|
6
2
|
//#region src/handlerTypes.d.ts
|
|
7
|
-
interface HandlerAPI {
|
|
8
|
-
getReleaseCatalog?: (input: ReleaseCatalogRequest) => Promise<ReleaseCatalog | null>;
|
|
9
|
-
getArtifactInfo?: (targetBundleId: string, currentBundleId: string) => Promise<ArtifactInfo | null>;
|
|
10
|
-
getReleaseById?: (id: string) => Promise<ReleaseRow | null>;
|
|
11
|
-
getReleasesByScope?: (input: {
|
|
12
|
-
readonly scopeKey: string;
|
|
13
|
-
readonly afterReleaseId?: string;
|
|
14
|
-
readonly limit: number;
|
|
15
|
-
}) => Promise<readonly ReleaseRow[]>;
|
|
16
|
-
getReleases?: (input: {
|
|
17
|
-
readonly afterReleaseId?: string;
|
|
18
|
-
readonly beforeReleaseId?: string;
|
|
19
|
-
readonly bundleId?: string;
|
|
20
|
-
readonly channelId?: string;
|
|
21
|
-
readonly enabled?: boolean;
|
|
22
|
-
readonly platform?: "ios" | "android";
|
|
23
|
-
readonly targetAppVersion?: string;
|
|
24
|
-
readonly limit: number;
|
|
25
|
-
}) => Promise<readonly ReleaseRow[]>;
|
|
26
|
-
getReleaseCatalogByScopeKey?: (scopeKey: string) => Promise<ReleaseCatalogRow | null>;
|
|
27
|
-
getReleaseCatalogs?: (input: {
|
|
28
|
-
readonly afterScopeKey?: string;
|
|
29
|
-
readonly limit: number;
|
|
30
|
-
}) => Promise<readonly ReleaseCatalogRow[]>;
|
|
31
|
-
updateReleasePolicy?: (input: {
|
|
32
|
-
readonly expectedRevision?: number;
|
|
33
|
-
readonly patch: ReleasePolicyPatch;
|
|
34
|
-
readonly releaseId: string;
|
|
35
|
-
}) => Promise<ReleaseCatalogMutationResult>;
|
|
36
|
-
preflightReleasePolicy?: (input: {
|
|
37
|
-
readonly expectedRevision?: number;
|
|
38
|
-
readonly patch: ReleasePolicyPatch;
|
|
39
|
-
readonly releaseId: string;
|
|
40
|
-
}) => Promise<ReleaseCatalogMutationPreflight>;
|
|
41
|
-
deleteRelease?: (input: {
|
|
42
|
-
readonly expectedRevision?: number;
|
|
43
|
-
readonly releaseId: string;
|
|
44
|
-
}) => Promise<ReleaseCatalogMutationResult>;
|
|
45
|
-
rebuildReleaseCatalog?: (scopeKey: string) => Promise<ReleaseCatalogRebuildResult>;
|
|
46
|
-
commitDatabase?: (input: DatabaseCommit) => Promise<DatabaseCommitResult>;
|
|
47
|
-
getBundleById: (id: string) => Promise<Bundle$1 | null>;
|
|
48
|
-
getBundles: (options: DatabaseBundleQueryOptions) => Promise<PaginatedResult>;
|
|
49
|
-
insertBundle: (bundle: Bundle$1) => Promise<void>;
|
|
50
|
-
insertBundles?: (bundles: readonly Bundle$1[]) => Promise<void>;
|
|
51
|
-
updateBundleById: (bundleId: string, bundle: Partial<Bundle$1>) => Promise<void>;
|
|
52
|
-
deleteBundleById: (bundleId: string) => Promise<void>;
|
|
53
|
-
getChannels: () => Promise<readonly ChannelRow[]>;
|
|
54
|
-
insertChannel: (input: ChannelInsertInput) => Promise<ChannelInsertResult>;
|
|
55
|
-
deleteChannel: (input: ChannelDeleteInput) => Promise<ChannelDeleteResult>;
|
|
56
|
-
}
|
|
57
3
|
type HotUpdaterHandler = (request: Request) => Promise<Response>;
|
|
58
4
|
interface HotUpdaterHandlers {
|
|
59
5
|
readonly client: HotUpdaterHandler;
|
|
60
6
|
readonly admin: HotUpdaterHandler;
|
|
61
7
|
}
|
|
62
8
|
//#endregion
|
|
63
|
-
export {
|
|
9
|
+
export { HotUpdaterHandler, HotUpdaterHandlers };
|
|
@@ -1,10 +1,26 @@
|
|
|
1
1
|
const require_version = require("./version.cjs");
|
|
2
2
|
//#region src/handlerVersionRoutes.ts
|
|
3
3
|
const HOT_UPDATER_INFRASTRUCTURE_GENERATION = 1;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
/**
|
|
5
|
+
* `/version` on both mounts. The admin mount also lists the ids of the
|
|
6
|
+
* plugins the server runs, sorted, so a console shows only the features they
|
|
7
|
+
* serve; apps never learn which plugins a server runs.
|
|
8
|
+
*/
|
|
9
|
+
const createVersionRouteHandlers = (plugins = []) => {
|
|
10
|
+
const version = {
|
|
11
|
+
adminProtocol: 2,
|
|
12
|
+
infrastructureGeneration: 1,
|
|
13
|
+
version: require_version.HOT_UPDATER_SERVER_VERSION
|
|
14
|
+
};
|
|
15
|
+
const adminVersion = {
|
|
16
|
+
...version,
|
|
17
|
+
plugins: [...plugins].sort()
|
|
18
|
+
};
|
|
19
|
+
return {
|
|
20
|
+
version: async () => Response.json(version),
|
|
21
|
+
adminVersion: async () => Response.json(adminVersion)
|
|
22
|
+
};
|
|
23
|
+
};
|
|
8
24
|
//#endregion
|
|
9
25
|
exports.HOT_UPDATER_INFRASTRUCTURE_GENERATION = HOT_UPDATER_INFRASTRUCTURE_GENERATION;
|
|
10
26
|
exports.createVersionRouteHandlers = createVersionRouteHandlers;
|
|
@@ -1,9 +1,25 @@
|
|
|
1
1
|
import { HOT_UPDATER_SERVER_VERSION } from "./version.mjs";
|
|
2
2
|
//#region src/handlerVersionRoutes.ts
|
|
3
3
|
const HOT_UPDATER_INFRASTRUCTURE_GENERATION = 1;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
/**
|
|
5
|
+
* `/version` on both mounts. The admin mount also lists the ids of the
|
|
6
|
+
* plugins the server runs, sorted, so a console shows only the features they
|
|
7
|
+
* serve; apps never learn which plugins a server runs.
|
|
8
|
+
*/
|
|
9
|
+
const createVersionRouteHandlers = (plugins = []) => {
|
|
10
|
+
const version = {
|
|
11
|
+
adminProtocol: 2,
|
|
12
|
+
infrastructureGeneration: 1,
|
|
13
|
+
version: HOT_UPDATER_SERVER_VERSION
|
|
14
|
+
};
|
|
15
|
+
const adminVersion = {
|
|
16
|
+
...version,
|
|
17
|
+
plugins: [...plugins].sort()
|
|
18
|
+
};
|
|
19
|
+
return {
|
|
20
|
+
version: async () => Response.json(version),
|
|
21
|
+
adminVersion: async () => Response.json(adminVersion)
|
|
22
|
+
};
|
|
23
|
+
};
|
|
8
24
|
//#endregion
|
|
9
25
|
export { HOT_UPDATER_INFRASTRUCTURE_GENERATION, createVersionRouteHandlers };
|
package/dist/index.cjs
CHANGED
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_provider = require("./insights/provider.cjs");
|
|
3
|
+
const require_apiKeys = require("./apiKeys.cjs");
|
|
4
|
+
const require_assemblePlugins = require("./assembly/assemblePlugins.cjs");
|
|
2
5
|
const require_version = require("./version.cjs");
|
|
3
6
|
const require_handlerVersionRoutes = require("./handlerVersionRoutes.cjs");
|
|
4
|
-
const require_handler = require("./handler.cjs");
|
|
5
|
-
const require_provider = require("./insights/bounded/provider.cjs");
|
|
6
|
-
const require_apiKeys = require("./apiKeys.cjs");
|
|
7
7
|
const require_createHotUpdaterCore = require("./createHotUpdaterCore.cjs");
|
|
8
8
|
exports.API_KEY_HEADER_NAME = require_apiKeys.API_KEY_HEADER_NAME;
|
|
9
9
|
exports.HOT_UPDATER_INFRASTRUCTURE_GENERATION = require_handlerVersionRoutes.HOT_UPDATER_INFRASTRUCTURE_GENERATION;
|
|
10
10
|
exports.HOT_UPDATER_SERVER_VERSION = require_version.HOT_UPDATER_SERVER_VERSION;
|
|
11
|
-
exports.
|
|
12
|
-
exports.createHandlers = require_handler.createHandlers;
|
|
11
|
+
exports.HotUpdaterConfigError = require_assemblePlugins.HotUpdaterConfigError;
|
|
13
12
|
exports.createHotUpdater = require_createHotUpdaterCore.createHotUpdater;
|
|
14
13
|
exports.createInsightsProvider = require_provider.createInsightsProvider;
|
|
15
|
-
exports.provisionApiKey = require_apiKeys.provisionApiKey;
|
|
16
|
-
exports.registerApiKey = require_apiKeys.registerApiKey;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { API_KEY_HEADER_NAME, ApiKeyManagementAPI, ApiKeyMetadata, CreatedApiKey, createApiKey, provisionApiKey, registerApiKey } from "./apiKeys.cjs";
|
|
2
|
-
import { HandlerAPI, HotUpdaterHandler, HotUpdaterHandlers } from "./handlerTypes.cjs";
|
|
3
|
-
import { ActiveInstallationInput, ActiveInstallationOverview, ActiveInstallationWindow, BundleEventInsightsResult, BundleEventInsightsWindow, BundleEventOverview, BundleEventSummary, BundleEventSummaryByBundle, CreateBundleEventRequest, CreateBundleEventRequestBase, InsightsCohortPoint, InsightsSeriesPoint, InstallationHistoryRow, InstallationSearchRow, OffsetPaginationResult } from "./insights/domain.cjs";
|
|
4
|
-
import { InsightsProvider } from "./insights/types.cjs";
|
|
5
|
-
import { createHandlers } from "./handler.cjs";
|
|
6
|
-
import { ClientAccessPolicy, CreateHotUpdaterOptions, HotUpdaterAPI, RuntimeHotUpdaterAPI, createHotUpdater } from "./createHotUpdaterCore.cjs";
|
|
7
|
-
import { Bundle, ChannelsResponse, DataResponse, Paginated, PaginatedResult, PaginationInfo, PaginationOptions } from "./types/index.cjs";
|
|
8
1
|
import { HOT_UPDATER_SERVER_VERSION } from "./version.cjs";
|
|
9
|
-
import {
|
|
2
|
+
import { HotUpdaterConfigError } from "./assembly/assemblePlugins.cjs";
|
|
3
|
+
import { HotUpdaterHandler, HotUpdaterHandlers } from "./handlerTypes.cjs";
|
|
4
|
+
import "./handler.cjs";
|
|
5
|
+
import { ActiveInstallationWindow, CreateBundleEventRequest, CreateBundleEventRequestBase, CursorPage, EventCursorPage, EventHistoryRow, InsightsBundleSelection, InsightsCountMeasurement, InsightsScope, InstallationHistoryRow, InstallationRow, ReportingOverview } from "./insights/domain.cjs";
|
|
6
|
+
import { InsightsEventPageInput, InsightsInstallationEventPageInput, InsightsProvider, InsightsUserInstallationPageInput } from "./insights/types.cjs";
|
|
7
|
+
import { createInsightsProvider } from "./insights/provider.cjs";
|
|
8
|
+
import { API_KEY_HEADER_NAME, ApiKeyManagementAPI, ApiKeyMetadata, CreatedApiKey } from "./apiKeys.cjs";
|
|
9
|
+
import { ClientAccessPolicy, ClientAccessRule, CreateHotUpdaterOptions, HotUpdaterAPI, RemovedClientAccess, RuntimeHotUpdaterAPI, createHotUpdater } from "./createHotUpdaterCore.cjs";
|
|
10
|
+
import { Bundle } from "./types/index.cjs";
|
|
10
11
|
import { HOT_UPDATER_INFRASTRUCTURE_GENERATION } from "./handlerVersionRoutes.cjs";
|
|
11
|
-
export { API_KEY_HEADER_NAME,
|
|
12
|
+
export { API_KEY_HEADER_NAME, type ActiveInstallationWindow, type ApiKeyManagementAPI, type ApiKeyMetadata, type Bundle, type ClientAccessPolicy, type ClientAccessRule, type CreateBundleEventRequest, type CreateBundleEventRequestBase, type CreateHotUpdaterOptions, type CreatedApiKey, type CursorPage, type EventCursorPage, type EventHistoryRow, HOT_UPDATER_INFRASTRUCTURE_GENERATION, HOT_UPDATER_SERVER_VERSION, type HotUpdaterAPI, HotUpdaterConfigError, type HotUpdaterHandler, type HotUpdaterHandlers, type InsightsBundleSelection, type InsightsCountMeasurement, type InsightsEventPageInput, type InsightsInstallationEventPageInput, type InsightsProvider, type InsightsScope, type InsightsUserInstallationPageInput, type InstallationHistoryRow, type InstallationRow, type RemovedClientAccess, type ReportingOverview, type RuntimeHotUpdaterAPI, createHotUpdater, createInsightsProvider };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
import { API_KEY_HEADER_NAME, ApiKeyManagementAPI, ApiKeyMetadata, CreatedApiKey, createApiKey, provisionApiKey, registerApiKey } from "./apiKeys.mjs";
|
|
2
|
-
import { HandlerAPI, HotUpdaterHandler, HotUpdaterHandlers } from "./handlerTypes.mjs";
|
|
3
|
-
import { ActiveInstallationInput, ActiveInstallationOverview, ActiveInstallationWindow, BundleEventInsightsResult, BundleEventInsightsWindow, BundleEventOverview, BundleEventSummary, BundleEventSummaryByBundle, CreateBundleEventRequest, CreateBundleEventRequestBase, InsightsCohortPoint, InsightsSeriesPoint, InstallationHistoryRow, InstallationSearchRow, OffsetPaginationResult } from "./insights/domain.mjs";
|
|
4
|
-
import { InsightsProvider } from "./insights/types.mjs";
|
|
5
|
-
import { createHandlers } from "./handler.mjs";
|
|
6
|
-
import { ClientAccessPolicy, CreateHotUpdaterOptions, HotUpdaterAPI, RuntimeHotUpdaterAPI, createHotUpdater } from "./createHotUpdaterCore.mjs";
|
|
7
|
-
import { Bundle, ChannelsResponse, DataResponse, Paginated, PaginatedResult, PaginationInfo, PaginationOptions } from "./types/index.mjs";
|
|
8
1
|
import { HOT_UPDATER_SERVER_VERSION } from "./version.mjs";
|
|
9
|
-
import {
|
|
2
|
+
import { HotUpdaterConfigError } from "./assembly/assemblePlugins.mjs";
|
|
3
|
+
import { HotUpdaterHandler, HotUpdaterHandlers } from "./handlerTypes.mjs";
|
|
4
|
+
import "./handler.mjs";
|
|
5
|
+
import { ActiveInstallationWindow, CreateBundleEventRequest, CreateBundleEventRequestBase, CursorPage, EventCursorPage, EventHistoryRow, InsightsBundleSelection, InsightsCountMeasurement, InsightsScope, InstallationHistoryRow, InstallationRow, ReportingOverview } from "./insights/domain.mjs";
|
|
6
|
+
import { InsightsEventPageInput, InsightsInstallationEventPageInput, InsightsProvider, InsightsUserInstallationPageInput } from "./insights/types.mjs";
|
|
7
|
+
import { createInsightsProvider } from "./insights/provider.mjs";
|
|
8
|
+
import { API_KEY_HEADER_NAME, ApiKeyManagementAPI, ApiKeyMetadata, CreatedApiKey } from "./apiKeys.mjs";
|
|
9
|
+
import { ClientAccessPolicy, ClientAccessRule, CreateHotUpdaterOptions, HotUpdaterAPI, RemovedClientAccess, RuntimeHotUpdaterAPI, createHotUpdater } from "./createHotUpdaterCore.mjs";
|
|
10
|
+
import { Bundle } from "./types/index.mjs";
|
|
10
11
|
import { HOT_UPDATER_INFRASTRUCTURE_GENERATION } from "./handlerVersionRoutes.mjs";
|
|
11
|
-
export { API_KEY_HEADER_NAME,
|
|
12
|
+
export { API_KEY_HEADER_NAME, type ActiveInstallationWindow, type ApiKeyManagementAPI, type ApiKeyMetadata, type Bundle, type ClientAccessPolicy, type ClientAccessRule, type CreateBundleEventRequest, type CreateBundleEventRequestBase, type CreateHotUpdaterOptions, type CreatedApiKey, type CursorPage, type EventCursorPage, type EventHistoryRow, HOT_UPDATER_INFRASTRUCTURE_GENERATION, HOT_UPDATER_SERVER_VERSION, type HotUpdaterAPI, HotUpdaterConfigError, type HotUpdaterHandler, type HotUpdaterHandlers, type InsightsBundleSelection, type InsightsCountMeasurement, type InsightsEventPageInput, type InsightsInstallationEventPageInput, type InsightsProvider, type InsightsScope, type InsightsUserInstallationPageInput, type InstallationHistoryRow, type InstallationRow, type RemovedClientAccess, type ReportingOverview, type RuntimeHotUpdaterAPI, createHotUpdater, createInsightsProvider };
|
package/dist/index.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { createInsightsProvider } from "./insights/provider.mjs";
|
|
2
|
+
import { API_KEY_HEADER_NAME } from "./apiKeys.mjs";
|
|
3
|
+
import { HotUpdaterConfigError } from "./assembly/assemblePlugins.mjs";
|
|
1
4
|
import { HOT_UPDATER_SERVER_VERSION } from "./version.mjs";
|
|
2
5
|
import { HOT_UPDATER_INFRASTRUCTURE_GENERATION } from "./handlerVersionRoutes.mjs";
|
|
3
|
-
import { createHandlers } from "./handler.mjs";
|
|
4
|
-
import { createInsightsProvider } from "./insights/bounded/provider.mjs";
|
|
5
|
-
import { API_KEY_HEADER_NAME, createApiKey, provisionApiKey, registerApiKey } from "./apiKeys.mjs";
|
|
6
6
|
import { createHotUpdater } from "./createHotUpdaterCore.mjs";
|
|
7
|
-
export { API_KEY_HEADER_NAME, HOT_UPDATER_INFRASTRUCTURE_GENERATION, HOT_UPDATER_SERVER_VERSION,
|
|
7
|
+
export { API_KEY_HEADER_NAME, HOT_UPDATER_INFRASTRUCTURE_GENERATION, HOT_UPDATER_SERVER_VERSION, HotUpdaterConfigError, createHotUpdater, createInsightsProvider };
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
//#region src/insights/domain.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* The body of `POST /events`. Fields the server does not know are ignored, so
|
|
4
|
+
* a newer client's report still records on an older server.
|
|
5
|
+
*/
|
|
2
6
|
type CreateBundleEventRequestBase = {
|
|
7
|
+
/**
|
|
8
|
+
* The report's idempotency key: a canonical lowercase UUIDv7 that the
|
|
9
|
+
* client creates once per report and repeats on every retry. The server
|
|
10
|
+
* stores the report under it, so a retried report counts once, and a
|
|
11
|
+
* report under an ID already stored changes nothing. Without it, the
|
|
12
|
+
* server creates the ID, and a retry counts as another report.
|
|
13
|
+
*/
|
|
14
|
+
readonly eventId?: string;
|
|
3
15
|
readonly installId: string;
|
|
4
16
|
readonly toBundleId: string;
|
|
5
17
|
readonly userId?: string;
|
|
@@ -14,15 +26,7 @@ type CreateBundleEventRequestBase = {
|
|
|
14
26
|
readonly toReleaseId: string | null;
|
|
15
27
|
};
|
|
16
28
|
type CreateBundleEventRequest = (CreateBundleEventRequestBase & {
|
|
17
|
-
readonly type: "UPDATE_APPLIED";
|
|
18
|
-
readonly fromBundleId: string;
|
|
19
|
-
readonly updateStrategy: "fingerprint" | "appVersion";
|
|
20
|
-
}) | (CreateBundleEventRequestBase & {
|
|
21
|
-
readonly type: "RECOVERED";
|
|
22
|
-
readonly fromBundleId: string;
|
|
23
|
-
readonly updateStrategy: "fingerprint" | "appVersion";
|
|
24
|
-
}) | (CreateBundleEventRequestBase & {
|
|
25
|
-
readonly type: "RELEASE_ADOPTED";
|
|
29
|
+
readonly type: "UPDATE_DOWNLOADED" | "UPDATE_APPLIED" | "RECOVERED";
|
|
26
30
|
readonly fromBundleId: string;
|
|
27
31
|
readonly updateStrategy: "fingerprint" | "appVersion";
|
|
28
32
|
}) | (CreateBundleEventRequestBase & {
|
|
@@ -30,92 +34,71 @@ type CreateBundleEventRequest = (CreateBundleEventRequestBase & {
|
|
|
30
34
|
readonly fromBundleId: null;
|
|
31
35
|
readonly updateStrategy: null;
|
|
32
36
|
});
|
|
33
|
-
type BundleEventSummary = {
|
|
34
|
-
readonly installed: number;
|
|
35
|
-
readonly recovered: number;
|
|
36
|
-
};
|
|
37
|
-
type BundleEventSummaryByBundle = BundleEventSummary & {
|
|
38
|
-
readonly bundleId: string;
|
|
39
|
-
};
|
|
40
|
-
type BundleEventInsightsWindow = "24h" | "7d" | "30d" | "all";
|
|
41
37
|
type ActiveInstallationWindow = "24h" | "7d" | "30d";
|
|
42
|
-
type
|
|
38
|
+
type EventHistoryRow = {
|
|
39
|
+
readonly id: string;
|
|
43
40
|
readonly installId: string;
|
|
41
|
+
readonly type: "UPDATE_DOWNLOADED" | "UPDATE_APPLIED" | "RECOVERED" | "UNCHANGED";
|
|
42
|
+
readonly fromBundleId: string | null;
|
|
43
|
+
readonly toBundleId: string;
|
|
44
44
|
readonly username: string | null;
|
|
45
45
|
readonly userId: string | null;
|
|
46
|
-
readonly lastKnownBundleId: string;
|
|
47
|
-
readonly latestStatus: "UPDATE_APPLIED" | "RECOVERED" | "RELEASE_ADOPTED" | "UNCHANGED";
|
|
48
46
|
readonly platform: "ios" | "android";
|
|
49
47
|
readonly appVersion: string;
|
|
50
48
|
readonly channel: string;
|
|
51
49
|
readonly cohort: string;
|
|
52
50
|
readonly receivedAtMs: number;
|
|
53
51
|
};
|
|
54
|
-
type InstallationHistoryRow = {
|
|
55
|
-
readonly
|
|
56
|
-
readonly type: "UPDATE_APPLIED" | "RECOVERED";
|
|
52
|
+
type InstallationHistoryRow = EventHistoryRow & {
|
|
53
|
+
readonly type: "UPDATE_DOWNLOADED" | "UPDATE_APPLIED" | "RECOVERED";
|
|
57
54
|
readonly fromBundleId: string;
|
|
58
|
-
|
|
55
|
+
};
|
|
56
|
+
type InstallationRow = {
|
|
57
|
+
readonly installId: string;
|
|
59
58
|
readonly username: string | null;
|
|
60
59
|
readonly userId: string | null;
|
|
60
|
+
readonly lastKnownBundleId: string;
|
|
61
|
+
readonly pendingBundleId: string | null;
|
|
62
|
+
readonly pendingReleaseId: string | null;
|
|
63
|
+
readonly latestStatus: EventHistoryRow["type"];
|
|
61
64
|
readonly platform: "ios" | "android";
|
|
62
65
|
readonly appVersion: string;
|
|
63
66
|
readonly channel: string;
|
|
64
67
|
readonly cohort: string;
|
|
65
68
|
readonly receivedAtMs: number;
|
|
66
69
|
};
|
|
67
|
-
type
|
|
68
|
-
readonly data: readonly
|
|
69
|
-
readonly
|
|
70
|
-
readonly total: number;
|
|
71
|
-
readonly limit: number;
|
|
72
|
-
readonly offset: number;
|
|
73
|
-
};
|
|
70
|
+
type CursorPage<T> = {
|
|
71
|
+
readonly data: readonly T[];
|
|
72
|
+
readonly nextCursor: string | null;
|
|
74
73
|
};
|
|
75
|
-
type
|
|
76
|
-
readonly
|
|
77
|
-
readonly value: number;
|
|
74
|
+
type EventCursorPage<T extends EventHistoryRow> = CursorPage<T> & {
|
|
75
|
+
readonly beforeReceivedAtMs: number;
|
|
78
76
|
};
|
|
79
|
-
type
|
|
80
|
-
readonly
|
|
81
|
-
readonly
|
|
77
|
+
type InsightsScope = {
|
|
78
|
+
readonly platform: "ios" | "android";
|
|
79
|
+
readonly channel: string;
|
|
82
80
|
};
|
|
83
|
-
type
|
|
84
|
-
readonly
|
|
85
|
-
readonly
|
|
86
|
-
readonly installed: readonly InsightsSeriesPoint[];
|
|
87
|
-
readonly recovered: readonly InsightsSeriesPoint[];
|
|
88
|
-
};
|
|
89
|
-
readonly cohorts: {
|
|
90
|
-
readonly installed: readonly InsightsCohortPoint[];
|
|
91
|
-
readonly recovered: readonly InsightsCohortPoint[];
|
|
92
|
-
};
|
|
93
|
-
readonly recentEvents: OffsetPaginationResult<InstallationHistoryRow>;
|
|
81
|
+
type InsightsBundleSelection = InsightsScope & {
|
|
82
|
+
readonly bundleId: string;
|
|
83
|
+
readonly outcome: "downloaded" | "applied" | "recovered" | "unchanged";
|
|
94
84
|
};
|
|
95
|
-
type
|
|
96
|
-
readonly
|
|
97
|
-
readonly
|
|
98
|
-
readonly bundleId: string;
|
|
99
|
-
readonly installations: number;
|
|
100
|
-
}[];
|
|
85
|
+
type InsightsCountMeasurement = {
|
|
86
|
+
readonly count: number;
|
|
87
|
+
readonly measuredAtMs: number;
|
|
101
88
|
};
|
|
102
|
-
type
|
|
103
|
-
readonly asOfMs: number;
|
|
89
|
+
type ReportingOverview = InsightsScope & {
|
|
104
90
|
readonly window: ActiveInstallationWindow;
|
|
105
|
-
readonly
|
|
106
|
-
readonly
|
|
107
|
-
readonly
|
|
91
|
+
readonly sinceMs: number;
|
|
92
|
+
readonly beforeReceivedAtMs: number;
|
|
93
|
+
readonly reportingInstallations: InsightsCountMeasurement;
|
|
94
|
+
readonly bundle?: {
|
|
108
95
|
readonly bundleId: string;
|
|
109
|
-
readonly
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
readonly
|
|
113
|
-
readonly
|
|
114
|
-
}
|
|
115
|
-
};
|
|
116
|
-
type ActiveInstallationInput = {
|
|
117
|
-
readonly window: ActiveInstallationWindow;
|
|
118
|
-
readonly userId?: string;
|
|
96
|
+
readonly reportingInstallations: InsightsCountMeasurement;
|
|
97
|
+
readonly downloadedReports: InsightsCountMeasurement;
|
|
98
|
+
readonly appliedReports: InsightsCountMeasurement;
|
|
99
|
+
readonly recoveredReports: InsightsCountMeasurement;
|
|
100
|
+
readonly unchangedReports: InsightsCountMeasurement;
|
|
101
|
+
};
|
|
119
102
|
};
|
|
120
103
|
//#endregion
|
|
121
|
-
export {
|
|
104
|
+
export { ActiveInstallationWindow, CreateBundleEventRequest, CreateBundleEventRequestBase, CursorPage, EventCursorPage, EventHistoryRow, InsightsBundleSelection, InsightsCountMeasurement, InsightsScope, InstallationHistoryRow, InstallationRow, ReportingOverview };
|
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
//#region src/insights/domain.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* The body of `POST /events`. Fields the server does not know are ignored, so
|
|
4
|
+
* a newer client's report still records on an older server.
|
|
5
|
+
*/
|
|
2
6
|
type CreateBundleEventRequestBase = {
|
|
7
|
+
/**
|
|
8
|
+
* The report's idempotency key: a canonical lowercase UUIDv7 that the
|
|
9
|
+
* client creates once per report and repeats on every retry. The server
|
|
10
|
+
* stores the report under it, so a retried report counts once, and a
|
|
11
|
+
* report under an ID already stored changes nothing. Without it, the
|
|
12
|
+
* server creates the ID, and a retry counts as another report.
|
|
13
|
+
*/
|
|
14
|
+
readonly eventId?: string;
|
|
3
15
|
readonly installId: string;
|
|
4
16
|
readonly toBundleId: string;
|
|
5
17
|
readonly userId?: string;
|
|
@@ -14,15 +26,7 @@ type CreateBundleEventRequestBase = {
|
|
|
14
26
|
readonly toReleaseId: string | null;
|
|
15
27
|
};
|
|
16
28
|
type CreateBundleEventRequest = (CreateBundleEventRequestBase & {
|
|
17
|
-
readonly type: "UPDATE_APPLIED";
|
|
18
|
-
readonly fromBundleId: string;
|
|
19
|
-
readonly updateStrategy: "fingerprint" | "appVersion";
|
|
20
|
-
}) | (CreateBundleEventRequestBase & {
|
|
21
|
-
readonly type: "RECOVERED";
|
|
22
|
-
readonly fromBundleId: string;
|
|
23
|
-
readonly updateStrategy: "fingerprint" | "appVersion";
|
|
24
|
-
}) | (CreateBundleEventRequestBase & {
|
|
25
|
-
readonly type: "RELEASE_ADOPTED";
|
|
29
|
+
readonly type: "UPDATE_DOWNLOADED" | "UPDATE_APPLIED" | "RECOVERED";
|
|
26
30
|
readonly fromBundleId: string;
|
|
27
31
|
readonly updateStrategy: "fingerprint" | "appVersion";
|
|
28
32
|
}) | (CreateBundleEventRequestBase & {
|
|
@@ -30,92 +34,71 @@ type CreateBundleEventRequest = (CreateBundleEventRequestBase & {
|
|
|
30
34
|
readonly fromBundleId: null;
|
|
31
35
|
readonly updateStrategy: null;
|
|
32
36
|
});
|
|
33
|
-
type BundleEventSummary = {
|
|
34
|
-
readonly installed: number;
|
|
35
|
-
readonly recovered: number;
|
|
36
|
-
};
|
|
37
|
-
type BundleEventSummaryByBundle = BundleEventSummary & {
|
|
38
|
-
readonly bundleId: string;
|
|
39
|
-
};
|
|
40
|
-
type BundleEventInsightsWindow = "24h" | "7d" | "30d" | "all";
|
|
41
37
|
type ActiveInstallationWindow = "24h" | "7d" | "30d";
|
|
42
|
-
type
|
|
38
|
+
type EventHistoryRow = {
|
|
39
|
+
readonly id: string;
|
|
43
40
|
readonly installId: string;
|
|
41
|
+
readonly type: "UPDATE_DOWNLOADED" | "UPDATE_APPLIED" | "RECOVERED" | "UNCHANGED";
|
|
42
|
+
readonly fromBundleId: string | null;
|
|
43
|
+
readonly toBundleId: string;
|
|
44
44
|
readonly username: string | null;
|
|
45
45
|
readonly userId: string | null;
|
|
46
|
-
readonly lastKnownBundleId: string;
|
|
47
|
-
readonly latestStatus: "UPDATE_APPLIED" | "RECOVERED" | "RELEASE_ADOPTED" | "UNCHANGED";
|
|
48
46
|
readonly platform: "ios" | "android";
|
|
49
47
|
readonly appVersion: string;
|
|
50
48
|
readonly channel: string;
|
|
51
49
|
readonly cohort: string;
|
|
52
50
|
readonly receivedAtMs: number;
|
|
53
51
|
};
|
|
54
|
-
type InstallationHistoryRow = {
|
|
55
|
-
readonly
|
|
56
|
-
readonly type: "UPDATE_APPLIED" | "RECOVERED";
|
|
52
|
+
type InstallationHistoryRow = EventHistoryRow & {
|
|
53
|
+
readonly type: "UPDATE_DOWNLOADED" | "UPDATE_APPLIED" | "RECOVERED";
|
|
57
54
|
readonly fromBundleId: string;
|
|
58
|
-
|
|
55
|
+
};
|
|
56
|
+
type InstallationRow = {
|
|
57
|
+
readonly installId: string;
|
|
59
58
|
readonly username: string | null;
|
|
60
59
|
readonly userId: string | null;
|
|
60
|
+
readonly lastKnownBundleId: string;
|
|
61
|
+
readonly pendingBundleId: string | null;
|
|
62
|
+
readonly pendingReleaseId: string | null;
|
|
63
|
+
readonly latestStatus: EventHistoryRow["type"];
|
|
61
64
|
readonly platform: "ios" | "android";
|
|
62
65
|
readonly appVersion: string;
|
|
63
66
|
readonly channel: string;
|
|
64
67
|
readonly cohort: string;
|
|
65
68
|
readonly receivedAtMs: number;
|
|
66
69
|
};
|
|
67
|
-
type
|
|
68
|
-
readonly data: readonly
|
|
69
|
-
readonly
|
|
70
|
-
readonly total: number;
|
|
71
|
-
readonly limit: number;
|
|
72
|
-
readonly offset: number;
|
|
73
|
-
};
|
|
70
|
+
type CursorPage<T> = {
|
|
71
|
+
readonly data: readonly T[];
|
|
72
|
+
readonly nextCursor: string | null;
|
|
74
73
|
};
|
|
75
|
-
type
|
|
76
|
-
readonly
|
|
77
|
-
readonly value: number;
|
|
74
|
+
type EventCursorPage<T extends EventHistoryRow> = CursorPage<T> & {
|
|
75
|
+
readonly beforeReceivedAtMs: number;
|
|
78
76
|
};
|
|
79
|
-
type
|
|
80
|
-
readonly
|
|
81
|
-
readonly
|
|
77
|
+
type InsightsScope = {
|
|
78
|
+
readonly platform: "ios" | "android";
|
|
79
|
+
readonly channel: string;
|
|
82
80
|
};
|
|
83
|
-
type
|
|
84
|
-
readonly
|
|
85
|
-
readonly
|
|
86
|
-
readonly installed: readonly InsightsSeriesPoint[];
|
|
87
|
-
readonly recovered: readonly InsightsSeriesPoint[];
|
|
88
|
-
};
|
|
89
|
-
readonly cohorts: {
|
|
90
|
-
readonly installed: readonly InsightsCohortPoint[];
|
|
91
|
-
readonly recovered: readonly InsightsCohortPoint[];
|
|
92
|
-
};
|
|
93
|
-
readonly recentEvents: OffsetPaginationResult<InstallationHistoryRow>;
|
|
81
|
+
type InsightsBundleSelection = InsightsScope & {
|
|
82
|
+
readonly bundleId: string;
|
|
83
|
+
readonly outcome: "downloaded" | "applied" | "recovered" | "unchanged";
|
|
94
84
|
};
|
|
95
|
-
type
|
|
96
|
-
readonly
|
|
97
|
-
readonly
|
|
98
|
-
readonly bundleId: string;
|
|
99
|
-
readonly installations: number;
|
|
100
|
-
}[];
|
|
85
|
+
type InsightsCountMeasurement = {
|
|
86
|
+
readonly count: number;
|
|
87
|
+
readonly measuredAtMs: number;
|
|
101
88
|
};
|
|
102
|
-
type
|
|
103
|
-
readonly asOfMs: number;
|
|
89
|
+
type ReportingOverview = InsightsScope & {
|
|
104
90
|
readonly window: ActiveInstallationWindow;
|
|
105
|
-
readonly
|
|
106
|
-
readonly
|
|
107
|
-
readonly
|
|
91
|
+
readonly sinceMs: number;
|
|
92
|
+
readonly beforeReceivedAtMs: number;
|
|
93
|
+
readonly reportingInstallations: InsightsCountMeasurement;
|
|
94
|
+
readonly bundle?: {
|
|
108
95
|
readonly bundleId: string;
|
|
109
|
-
readonly
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
readonly
|
|
113
|
-
readonly
|
|
114
|
-
}
|
|
115
|
-
};
|
|
116
|
-
type ActiveInstallationInput = {
|
|
117
|
-
readonly window: ActiveInstallationWindow;
|
|
118
|
-
readonly userId?: string;
|
|
96
|
+
readonly reportingInstallations: InsightsCountMeasurement;
|
|
97
|
+
readonly downloadedReports: InsightsCountMeasurement;
|
|
98
|
+
readonly appliedReports: InsightsCountMeasurement;
|
|
99
|
+
readonly recoveredReports: InsightsCountMeasurement;
|
|
100
|
+
readonly unchangedReports: InsightsCountMeasurement;
|
|
101
|
+
};
|
|
119
102
|
};
|
|
120
103
|
//#endregion
|
|
121
|
-
export {
|
|
104
|
+
export { ActiveInstallationWindow, CreateBundleEventRequest, CreateBundleEventRequestBase, CursorPage, EventCursorPage, EventHistoryRow, InsightsBundleSelection, InsightsCountMeasurement, InsightsScope, InstallationHistoryRow, InstallationRow, ReportingOverview };
|
package/dist/insights/errors.cjs
CHANGED
|
@@ -1,22 +1,49 @@
|
|
|
1
|
+
const require_errors = require("../database/errors.cjs");
|
|
1
2
|
//#region src/insights/errors.ts
|
|
2
|
-
var InsightsScanLimitExceededError = class extends Error {
|
|
3
|
-
constructor(limit) {
|
|
4
|
-
super(`Insights event scan exceeded ${limit} rows.`);
|
|
5
|
-
this.limit = limit;
|
|
6
|
-
this.name = "InsightsScanLimitExceededError";
|
|
7
|
-
}
|
|
8
|
-
};
|
|
9
3
|
var InsightsBadRequestError = class extends Error {
|
|
10
4
|
name = "InsightsBadRequestError";
|
|
11
5
|
};
|
|
12
6
|
var InsightsPayloadTooLargeError = class extends Error {
|
|
7
|
+
maximumBytes;
|
|
13
8
|
name = "InsightsPayloadTooLargeError";
|
|
14
9
|
constructor(maximumBytes) {
|
|
15
10
|
super(`Event payload exceeds ${maximumBytes} bytes`);
|
|
16
11
|
this.maximumBytes = maximumBytes;
|
|
17
12
|
}
|
|
18
13
|
};
|
|
14
|
+
/** Error names the AWS SDKs give a throttled request, as their retry strategy classifies them. */
|
|
15
|
+
const THROTTLING_NAMES = /* @__PURE__ */ new Set([
|
|
16
|
+
"ProvisionedThroughputExceededException",
|
|
17
|
+
"RequestLimitExceeded",
|
|
18
|
+
"RequestThrottled",
|
|
19
|
+
"RequestThrottledException",
|
|
20
|
+
"SlowDown",
|
|
21
|
+
"ThrottledException",
|
|
22
|
+
"Throttling",
|
|
23
|
+
"ThrottlingException",
|
|
24
|
+
"TooManyRequestsException"
|
|
25
|
+
]);
|
|
26
|
+
/** gRPC's RESOURCE_EXHAUSTED, the status Firestore throttles a request with. */
|
|
27
|
+
const RESOURCE_EXHAUSTED = 8;
|
|
28
|
+
/**
|
|
29
|
+
* Whether the database is busy rather than broken, so the same request can
|
|
30
|
+
* succeed later: a transaction ran out of retries, or the backend throttled
|
|
31
|
+
* a request. Writes already retry transient failures, throttled ones
|
|
32
|
+
* included, until the budget runs out. A throttled read throws the backend's
|
|
33
|
+
* own error, so it is recognized by what the backends call it: a name the
|
|
34
|
+
* AWS SDKs retry as throttling, HTTP 429, or gRPC's RESOURCE_EXHAUSTED.
|
|
35
|
+
*/
|
|
36
|
+
const isDatabaseBusyError = (error) => {
|
|
37
|
+
if (error instanceof require_errors.DatabaseConflictError) return true;
|
|
38
|
+
if (typeof error !== "object" || error === null) return false;
|
|
39
|
+
const { name, code, message, status, statusCode, $metadata } = error;
|
|
40
|
+
return typeof name === "string" && THROTTLING_NAMES.has(name) || [
|
|
41
|
+
status,
|
|
42
|
+
statusCode,
|
|
43
|
+
$metadata?.httpStatusCode
|
|
44
|
+
].includes(429) || code === RESOURCE_EXHAUSTED && typeof message === "string" && message.includes("RESOURCE_EXHAUSTED");
|
|
45
|
+
};
|
|
19
46
|
//#endregion
|
|
20
47
|
exports.InsightsBadRequestError = InsightsBadRequestError;
|
|
21
48
|
exports.InsightsPayloadTooLargeError = InsightsPayloadTooLargeError;
|
|
22
|
-
exports.
|
|
49
|
+
exports.isDatabaseBusyError = isDatabaseBusyError;
|