@hot-updater/server 1.0.0-rc.14 → 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.
Files changed (514) hide show
  1. package/dist/adapters/drizzle.cjs +35 -74
  2. package/dist/adapters/drizzle.d.cts +13 -5
  3. package/dist/adapters/drizzle.d.mts +13 -5
  4. package/dist/adapters/drizzle.mjs +34 -75
  5. package/dist/adapters/drizzleExecutor.cjs +114 -0
  6. package/dist/adapters/drizzleExecutor.d.cts +9 -0
  7. package/dist/adapters/drizzleExecutor.d.mts +9 -0
  8. package/dist/adapters/drizzleExecutor.mjs +112 -0
  9. package/dist/adapters/kysely.cjs +25 -31
  10. package/dist/adapters/kysely.d.cts +10 -6
  11. package/dist/adapters/kysely.d.mts +10 -6
  12. package/dist/adapters/kysely.mjs +25 -32
  13. package/dist/adapters/kyselyExecutor.cjs +32 -0
  14. package/dist/adapters/kyselyExecutor.d.cts +12 -0
  15. package/dist/adapters/kyselyExecutor.d.mts +12 -0
  16. package/dist/adapters/kyselyExecutor.mjs +32 -0
  17. package/dist/adapters/mongodb.cjs +28 -62
  18. package/dist/adapters/mongodb.d.cts +10 -5
  19. package/dist/adapters/mongodb.d.mts +10 -5
  20. package/dist/adapters/mongodb.mjs +28 -63
  21. package/dist/adapters/mongodbAdapter.cjs +174 -0
  22. package/dist/adapters/mongodbAdapter.d.cts +9 -0
  23. package/dist/adapters/mongodbAdapter.d.mts +9 -0
  24. package/dist/adapters/mongodbAdapter.mjs +173 -0
  25. package/dist/adapters/prisma.cjs +38 -257
  26. package/dist/adapters/prisma.d.cts +12 -7
  27. package/dist/adapters/prisma.d.mts +12 -7
  28. package/dist/adapters/prisma.mjs +38 -257
  29. package/dist/adapters/prismaExecutor.cjs +64 -0
  30. package/dist/adapters/prismaExecutor.mjs +64 -0
  31. package/dist/adapters/sqlProviders.cjs +9 -0
  32. package/dist/adapters/sqlProviders.mjs +9 -0
  33. package/dist/apiKeys.cjs +2 -6
  34. package/dist/apiKeys.d.cts +1 -23
  35. package/dist/apiKeys.d.mts +1 -23
  36. package/dist/apiKeys.mjs +2 -6
  37. package/dist/assembly/assemblePlugins.cjs +147 -0
  38. package/dist/assembly/assemblePlugins.d.cts +12 -0
  39. package/dist/assembly/assemblePlugins.d.mts +12 -0
  40. package/dist/assembly/assemblePlugins.mjs +146 -0
  41. package/dist/assembly/databasePlugins.cjs +23 -0
  42. package/dist/assembly/databasePlugins.d.cts +43 -0
  43. package/dist/assembly/databasePlugins.d.mts +43 -0
  44. package/dist/assembly/databasePlugins.mjs +22 -0
  45. package/dist/core/api.cjs +91 -0
  46. package/dist/core/api.d.cts +65 -0
  47. package/dist/core/api.d.mts +65 -0
  48. package/dist/core/api.mjs +87 -0
  49. package/dist/core/baseCandidates.cjs +71 -0
  50. package/dist/core/baseCandidates.d.cts +17 -0
  51. package/dist/core/baseCandidates.d.mts +17 -0
  52. package/dist/core/baseCandidates.mjs +69 -0
  53. package/dist/core/operations.cjs +350 -0
  54. package/dist/core/operations.mjs +350 -0
  55. package/dist/core/reads.cjs +273 -0
  56. package/dist/core/reads.d.cts +48 -0
  57. package/dist/core/reads.d.mts +48 -0
  58. package/dist/core/reads.mjs +267 -0
  59. package/dist/core/releases.cjs +193 -0
  60. package/dist/core/releases.mjs +190 -0
  61. package/dist/core/schema.cjs +279 -0
  62. package/dist/core/schema.d.cts +307 -0
  63. package/dist/core/schema.d.mts +307 -0
  64. package/dist/core/schema.mjs +277 -0
  65. package/dist/core/writes.cjs +96 -0
  66. package/dist/core/writes.mjs +91 -0
  67. package/dist/createHotUpdaterCore.cjs +58 -75
  68. package/dist/createHotUpdaterCore.d.cts +52 -44
  69. package/dist/createHotUpdaterCore.d.mts +52 -44
  70. package/dist/createHotUpdaterCore.mjs +59 -75
  71. package/dist/database/cursor.cjs +44 -0
  72. package/dist/database/cursor.d.cts +7 -0
  73. package/dist/database/cursor.d.mts +7 -0
  74. package/dist/database/cursor.mjs +40 -0
  75. package/dist/database/database.cjs +44 -0
  76. package/dist/database/database.d.cts +123 -0
  77. package/dist/database/database.d.mts +123 -0
  78. package/dist/database/database.mjs +44 -0
  79. package/dist/database/definitions.d.cts +68 -0
  80. package/dist/database/definitions.d.mts +68 -0
  81. package/dist/database/engine.cjs +37 -0
  82. package/dist/database/engine.d.cts +40 -0
  83. package/dist/database/engine.d.mts +40 -0
  84. package/dist/database/engine.mjs +37 -0
  85. package/dist/database/engineAggregates.cjs +115 -0
  86. package/dist/database/engineAggregates.mjs +112 -0
  87. package/dist/database/engineReads.cjs +180 -0
  88. package/dist/database/engineReads.d.cts +35 -0
  89. package/dist/database/engineReads.d.mts +35 -0
  90. package/dist/database/engineReads.mjs +179 -0
  91. package/dist/database/engineTransaction.cjs +403 -0
  92. package/dist/database/engineTransaction.d.cts +26 -0
  93. package/dist/database/engineTransaction.d.mts +26 -0
  94. package/dist/database/engineTransaction.mjs +402 -0
  95. package/dist/database/errors.cjs +27 -0
  96. package/dist/database/errors.d.cts +21 -0
  97. package/dist/database/errors.d.mts +21 -0
  98. package/dist/database/errors.mjs +24 -0
  99. package/dist/database/fence.cjs +124 -0
  100. package/dist/database/fence.d.cts +42 -0
  101. package/dist/database/fence.d.mts +42 -0
  102. package/dist/database/fence.mjs +116 -0
  103. package/dist/database/index.cjs +127 -0
  104. package/dist/database/index.d.cts +17 -0
  105. package/dist/database/index.d.mts +17 -0
  106. package/dist/database/index.mjs +15 -0
  107. package/dist/database/kv/kvAdapter.cjs +273 -0
  108. package/dist/database/kv/kvAdapter.d.cts +101 -0
  109. package/dist/database/kv/kvAdapter.d.mts +101 -0
  110. package/dist/database/kv/kvAdapter.mjs +272 -0
  111. package/dist/database/resolveSchema.cjs +196 -0
  112. package/dist/database/resolveSchema.d.cts +42 -0
  113. package/dist/database/resolveSchema.d.mts +42 -0
  114. package/dist/database/resolveSchema.mjs +193 -0
  115. package/dist/database/schema.cjs +21 -0
  116. package/dist/database/schema.d.cts +61 -0
  117. package/dist/database/schema.d.mts +61 -0
  118. package/dist/database/schema.mjs +20 -0
  119. package/dist/database/sql/sqlAdapter.cjs +282 -0
  120. package/dist/database/sql/sqlAdapter.d.cts +46 -0
  121. package/dist/database/sql/sqlAdapter.d.mts +46 -0
  122. package/dist/database/sql/sqlAdapter.mjs +279 -0
  123. package/dist/database/sql/sqlSchema.cjs +115 -0
  124. package/dist/database/sql/sqlSchema.d.cts +8 -0
  125. package/dist/database/sql/sqlSchema.d.mts +8 -0
  126. package/dist/database/sql/sqlSchema.mjs +111 -0
  127. package/dist/db/builtInDatabase.cjs +104 -0
  128. package/dist/db/builtInDatabase.d.cts +38 -0
  129. package/dist/db/builtInDatabase.d.mts +38 -0
  130. package/dist/db/builtInDatabase.mjs +97 -0
  131. package/dist/db/createBundleDiff.cjs +4 -4
  132. package/dist/db/createBundleDiff.d.cts +3 -2
  133. package/dist/db/createBundleDiff.d.mts +3 -2
  134. package/dist/db/createBundleDiff.mjs +5 -5
  135. package/dist/db/engineDrizzleSchema.cjs +54 -0
  136. package/dist/db/engineDrizzleSchema.mjs +54 -0
  137. package/dist/db/engineMigrator.cjs +53 -0
  138. package/dist/db/engineMigrator.mjs +53 -0
  139. package/dist/db/enginePrismaSchema.cjs +85 -0
  140. package/dist/db/enginePrismaSchema.d.cts +5 -0
  141. package/dist/db/enginePrismaSchema.d.mts +5 -0
  142. package/dist/db/enginePrismaSchema.mjs +84 -0
  143. package/dist/db/engineSql.cjs +26 -0
  144. package/dist/db/engineSql.d.cts +17 -0
  145. package/dist/db/engineSql.d.mts +17 -0
  146. package/dist/db/engineSql.mjs +25 -0
  147. package/dist/db/engineSqlMigrator.cjs +66 -0
  148. package/dist/db/engineSqlMigrator.mjs +66 -0
  149. package/dist/db/fixedMigratorShared.cjs +0 -11
  150. package/dist/db/fixedMigratorShared.mjs +1 -8
  151. package/dist/db/index.cjs +23 -8
  152. package/dist/db/index.d.cts +10 -3
  153. package/dist/db/index.d.mts +10 -3
  154. package/dist/db/index.mjs +16 -8
  155. package/dist/db/releaseCatalog.cjs +20 -43
  156. package/dist/db/releaseCatalog.d.cts +2 -2
  157. package/dist/db/releaseCatalog.d.mts +2 -2
  158. package/dist/db/releaseCatalog.mjs +20 -44
  159. package/dist/db/schemaSettings.cjs +63 -0
  160. package/dist/db/schemaSettings.d.cts +12 -0
  161. package/dist/db/schemaSettings.d.mts +12 -0
  162. package/dist/db/schemaSettings.mjs +62 -0
  163. package/dist/db/settingsMigrator.cjs +92 -0
  164. package/dist/db/settingsMigrator.mjs +89 -0
  165. package/dist/db/types.cjs +1 -12
  166. package/dist/db/types.d.cts +26 -66
  167. package/dist/db/types.d.mts +26 -66
  168. package/dist/db/types.mjs +2 -11
  169. package/dist/db/updateArtifacts.cjs +38 -67
  170. package/dist/db/updateArtifacts.mjs +40 -69
  171. package/dist/handler.cjs +72 -43
  172. package/dist/handler.d.cts +3 -5
  173. package/dist/handler.d.mts +3 -5
  174. package/dist/handler.mjs +73 -43
  175. package/dist/handlerAdminRoutes.cjs +375 -0
  176. package/dist/handlerAdminRoutes.mjs +373 -0
  177. package/dist/handlerParameters.cjs +6 -11
  178. package/dist/handlerParameters.mjs +6 -10
  179. package/dist/handlerReleaseCatalogRoutes.cjs +11 -13
  180. package/dist/handlerReleaseCatalogRoutes.mjs +11 -13
  181. package/dist/handlerTypes.d.cts +2 -55
  182. package/dist/handlerTypes.d.mts +2 -55
  183. package/dist/handlerVersionRoutes.cjs +20 -4
  184. package/dist/handlerVersionRoutes.mjs +20 -4
  185. package/dist/index.cjs +4 -7
  186. package/dist/index.d.cts +8 -7
  187. package/dist/index.d.mts +8 -7
  188. package/dist/index.mjs +4 -4
  189. package/dist/insights/domain.d.cts +12 -0
  190. package/dist/insights/domain.d.mts +12 -0
  191. package/dist/insights/errors.cjs +34 -0
  192. package/dist/insights/errors.mjs +34 -1
  193. package/dist/insights/eventInput.cjs +14 -19
  194. package/dist/insights/eventInput.mjs +15 -20
  195. package/dist/insights/provider.cjs +47 -23
  196. package/dist/insights/provider.mjs +47 -24
  197. package/dist/insights/routes.cjs +79 -14
  198. package/dist/insights/routes.mjs +77 -14
  199. package/dist/node.d.cts +1 -1
  200. package/dist/node.d.mts +1 -1
  201. package/dist/package.cjs +1 -1
  202. package/dist/package.mjs +1 -1
  203. package/dist/plugins/api-keys/index.cjs +50 -0
  204. package/dist/plugins/api-keys/index.d.cts +85 -0
  205. package/dist/plugins/api-keys/index.d.mts +85 -0
  206. package/dist/plugins/api-keys/index.mjs +47 -0
  207. package/dist/plugins/api-keys/model.cjs +58 -0
  208. package/dist/plugins/api-keys/model.d.cts +8 -0
  209. package/dist/plugins/api-keys/model.d.mts +8 -0
  210. package/dist/plugins/api-keys/model.mjs +58 -0
  211. package/dist/plugins/api-keys/schema.cjs +38 -0
  212. package/dist/plugins/api-keys/schema.d.cts +44 -0
  213. package/dist/plugins/api-keys/schema.d.mts +44 -0
  214. package/dist/plugins/api-keys/schema.mjs +39 -0
  215. package/dist/plugins/builtIn.cjs +7 -0
  216. package/dist/plugins/builtIn.mjs +6 -0
  217. package/dist/plugins/definePlugin.cjs +5 -0
  218. package/dist/plugins/definePlugin.d.cts +73 -0
  219. package/dist/plugins/definePlugin.d.mts +73 -0
  220. package/dist/plugins/definePlugin.mjs +5 -0
  221. package/dist/plugins/index.cjs +17 -0
  222. package/dist/plugins/index.d.cts +9 -0
  223. package/dist/plugins/index.d.mts +9 -0
  224. package/dist/plugins/index.mjs +7 -0
  225. package/dist/plugins/insights/index.cjs +48 -0
  226. package/dist/plugins/insights/index.d.cts +295 -0
  227. package/dist/plugins/insights/index.d.mts +295 -0
  228. package/dist/plugins/insights/index.mjs +44 -0
  229. package/dist/plugins/insights/model.cjs +17 -0
  230. package/dist/plugins/insights/model.d.cts +10 -0
  231. package/dist/plugins/insights/model.d.mts +10 -0
  232. package/dist/plugins/insights/model.mjs +17 -0
  233. package/dist/plugins/insights/reads.cjs +471 -0
  234. package/dist/plugins/insights/reads.mjs +466 -0
  235. package/dist/plugins/insights/recordEvent.cjs +135 -0
  236. package/dist/plugins/insights/recordEvent.d.cts +13 -0
  237. package/dist/plugins/insights/recordEvent.d.mts +13 -0
  238. package/dist/plugins/insights/recordEvent.mjs +132 -0
  239. package/dist/plugins/insights/schema.cjs +347 -0
  240. package/dist/plugins/insights/schema.d.cts +258 -0
  241. package/dist/plugins/insights/schema.d.mts +258 -0
  242. package/dist/plugins/insights/schema.mjs +344 -0
  243. package/dist/types/index.d.cts +2 -28
  244. package/dist/types/index.d.mts +2 -28
  245. package/package.json +28 -5
  246. package/src/adapters/drizzle.conformance.integration.spec.ts +34 -0
  247. package/src/adapters/drizzle.readBudgets.integration.spec.ts +41 -0
  248. package/src/adapters/drizzle.spec.ts +270 -399
  249. package/src/adapters/drizzle.ts +48 -140
  250. package/src/adapters/drizzleExecutor.ts +166 -0
  251. package/src/adapters/kysely.conformance.integration.spec.ts +36 -0
  252. package/src/adapters/kysely.readBudgets.integration.spec.ts +42 -0
  253. package/src/adapters/kysely.spec.ts +204 -171
  254. package/src/adapters/kysely.ts +32 -93
  255. package/src/adapters/kyselyExecutor.ts +53 -0
  256. package/src/adapters/mongodb.integration.spec.ts +143 -446
  257. package/src/adapters/mongodb.readBudgets.integration.spec.ts +61 -0
  258. package/src/adapters/mongodb.ts +36 -123
  259. package/src/adapters/mongodbAdapter.ts +293 -0
  260. package/src/adapters/prisma.conformance.integration.spec.ts +36 -0
  261. package/src/adapters/prisma.integration.spec.ts +138 -0
  262. package/src/adapters/prisma.readBudgets.integration.spec.ts +40 -0
  263. package/src/adapters/prisma.spec.ts +216 -433
  264. package/src/adapters/prisma.ts +60 -524
  265. package/src/adapters/prismaExecutor.ts +107 -0
  266. package/src/adapters/prismaTestClients.ts +175 -0
  267. package/src/adapters/sqlProviders.ts +14 -0
  268. package/src/apiKeys.integration.spec.ts +19 -119
  269. package/src/apiKeys.spec.ts +39 -35
  270. package/src/apiKeys.ts +2 -8
  271. package/src/assembly/assemblePlugins.ts +269 -0
  272. package/src/assembly/assembly.spec.ts +325 -0
  273. package/src/assembly/assembly.types.spec.ts +155 -0
  274. package/src/assembly/builtInRoutes.spec.ts +213 -0
  275. package/src/assembly/databasePlugins.spec.ts +71 -0
  276. package/src/assembly/databasePlugins.ts +96 -0
  277. package/src/core/api.ts +139 -0
  278. package/src/core/baseCandidates.spec.ts +378 -0
  279. package/src/core/baseCandidates.ts +136 -0
  280. package/src/core/index.ts +44 -0
  281. package/src/core/operations.spec.ts +415 -0
  282. package/src/core/operations.ts +551 -0
  283. package/src/core/reads.spec.ts +300 -0
  284. package/src/core/reads.ts +417 -0
  285. package/src/core/releases.spec.ts +308 -0
  286. package/src/core/releases.ts +345 -0
  287. package/src/core/schema.ts +173 -0
  288. package/src/core/writes.ts +160 -0
  289. package/src/createHotUpdaterCore.ts +191 -181
  290. package/src/database/cursor.ts +65 -0
  291. package/src/database/database.ts +335 -0
  292. package/src/database/database.types.spec.ts +135 -0
  293. package/src/database/definitions.ts +72 -0
  294. package/src/database/engine.ts +62 -0
  295. package/src/database/engineAggregates.spec.ts +539 -0
  296. package/src/database/engineAggregates.ts +193 -0
  297. package/src/database/engineReads.spec.ts +219 -0
  298. package/src/database/engineReads.ts +302 -0
  299. package/src/database/engineTransaction.spec.ts +710 -0
  300. package/src/database/engineTransaction.ts +588 -0
  301. package/src/database/errors.ts +30 -0
  302. package/src/database/fence.spec.ts +223 -0
  303. package/src/database/fence.ts +171 -0
  304. package/src/database/index.ts +154 -0
  305. package/src/database/kv/kvAdapter.conformance.integration.spec.ts +17 -0
  306. package/src/database/kv/kvAdapter.readBudgets.integration.spec.ts +17 -0
  307. package/src/database/kv/kvAdapter.spec.ts +468 -0
  308. package/src/database/kv/kvAdapter.ts +450 -0
  309. package/src/database/kv/kvTestStore.ts +91 -0
  310. package/src/database/memory.readBudgets.integration.spec.ts +13 -0
  311. package/src/database/resolveSchema.spec.ts +230 -0
  312. package/src/database/resolveSchema.ts +372 -0
  313. package/src/database/schema.ts +169 -0
  314. package/src/database/schema.types.spec.ts +94 -0
  315. package/src/database/sql/docker-compose.yml +36 -0
  316. package/src/database/sql/sqlAdapter.integration.spec.ts +148 -0
  317. package/src/database/sql/sqlAdapter.readBudgets.integration.spec.ts +109 -0
  318. package/src/database/sql/sqlAdapter.spec.ts +255 -0
  319. package/src/database/sql/sqlAdapter.ts +532 -0
  320. package/src/database/sql/sqlSchema.ts +205 -0
  321. package/src/database/sql/sqlTestExecutors.ts +183 -0
  322. package/src/databaseTestSuite.spec.ts +39 -0
  323. package/src/db/builtInDatabase.ts +149 -0
  324. package/src/db/bundleRows.spec.ts +3 -3
  325. package/src/db/createBundleDiff.spec.ts +43 -29
  326. package/src/db/createBundleDiff.ts +13 -7
  327. package/src/db/engineDrizzleSchema.ts +72 -0
  328. package/src/db/engineMigrator.ts +105 -0
  329. package/src/db/enginePrismaSchema.ts +147 -0
  330. package/src/db/engineSql.spec.ts +129 -0
  331. package/src/db/engineSql.ts +48 -0
  332. package/src/db/engineSqlMigrator.ts +116 -0
  333. package/src/db/fixedMigratorShared.ts +1 -20
  334. package/src/db/index.spec.ts +116 -829
  335. package/src/db/index.ts +43 -14
  336. package/src/db/pluginTables.spec.ts +218 -0
  337. package/src/db/releaseCatalog.ts +48 -90
  338. package/src/db/schemaSettings.ts +104 -0
  339. package/src/db/settingsMigrator.spec.ts +65 -0
  340. package/src/db/settingsMigrator.ts +152 -0
  341. package/src/db/types.ts +25 -171
  342. package/src/db/updateArtifacts.spec.ts +170 -294
  343. package/src/db/updateArtifacts.ts +74 -142
  344. package/src/db/updateCheck.bench.ts +47 -0
  345. package/src/handler-standalone.integration.spec.ts +204 -410
  346. package/src/handler.spec.ts +134 -51
  347. package/src/handler.testFixtures.ts +14 -19
  348. package/src/handler.ts +163 -75
  349. package/src/handlerAdminRoutes.spec.ts +183 -0
  350. package/src/handlerAdminRoutes.ts +536 -0
  351. package/src/handlerAuth.integration.spec.ts +3 -3
  352. package/src/handlerManagement.spec.ts +136 -196
  353. package/src/handlerReleaseCatalogRoutes.ts +15 -17
  354. package/src/handlerTypes.ts +3 -80
  355. package/src/handlerVersionRoutes.ts +20 -7
  356. package/src/index.ts +5 -12
  357. package/src/insights/domain.ts +12 -0
  358. package/src/insights/errors.spec.ts +48 -0
  359. package/src/insights/errors.ts +51 -0
  360. package/src/insights/eventInput.ts +27 -24
  361. package/src/insights/insights.integration.spec.ts +228 -78
  362. package/src/insights/provider.spec.ts +203 -25
  363. package/src/insights/provider.ts +88 -32
  364. package/src/insights/routes.ts +95 -20
  365. package/src/lintRules.spec.ts +76 -0
  366. package/src/plugins/api-keys/apiKeysPlugin.spec.ts +172 -0
  367. package/src/plugins/api-keys/index.ts +66 -0
  368. package/src/plugins/api-keys/model.ts +69 -0
  369. package/src/plugins/api-keys/schema.ts +22 -0
  370. package/src/plugins/builtIn.ts +5 -0
  371. package/src/plugins/definePlugin.ts +100 -0
  372. package/src/plugins/index.ts +55 -0
  373. package/src/plugins/insights/index.ts +86 -0
  374. package/src/plugins/insights/insightsRollout.integration.spec.ts +187 -0
  375. package/src/plugins/insights/model.spec.ts +66 -0
  376. package/src/plugins/insights/model.ts +19 -0
  377. package/src/plugins/insights/reads.spec.ts +725 -0
  378. package/src/plugins/insights/reads.ts +707 -0
  379. package/src/plugins/insights/recordEvent.spec.ts +443 -0
  380. package/src/plugins/insights/recordEvent.ts +238 -0
  381. package/src/plugins/insights/schema.ts +229 -0
  382. package/src/plugins/pluginTestHarness.spec.ts +56 -0
  383. package/src/readBudgets.testFixtures.ts +15 -0
  384. package/src/releaseCatalogRoutes.integration.spec.ts +47 -92
  385. package/src/runtime.spec.ts +91 -77
  386. package/src/runtime.testFixtures.ts +28 -44
  387. package/src/runtimeBundles.integration.spec.ts +112 -0
  388. package/src/testUtilsMutation.integration.spec.ts +215 -0
  389. package/src/testUtilsPackage.integration.spec.ts +176 -0
  390. package/src/types/index.ts +0 -32
  391. package/dist/adapters/databaseConstraintErrors.cjs +0 -22
  392. package/dist/adapters/databaseConstraintErrors.mjs +0 -21
  393. package/dist/adapters/databasePluginUtils.cjs +0 -130
  394. package/dist/adapters/databasePluginUtils.mjs +0 -118
  395. package/dist/adapters/drizzleCrud.cjs +0 -340
  396. package/dist/adapters/drizzleCrud.mjs +0 -337
  397. package/dist/adapters/drizzleLazyDB.cjs +0 -103
  398. package/dist/adapters/drizzleLazyDB.mjs +0 -103
  399. package/dist/adapters/drizzleQuery.cjs +0 -69
  400. package/dist/adapters/drizzleQuery.mjs +0 -69
  401. package/dist/adapters/kyselyCrud.cjs +0 -293
  402. package/dist/adapters/kyselyCrud.mjs +0 -292
  403. package/dist/adapters/kyselyQuery.cjs +0 -56
  404. package/dist/adapters/kyselyQuery.mjs +0 -56
  405. package/dist/adapters/mongodbCollections.cjs +0 -38
  406. package/dist/adapters/mongodbCollections.mjs +0 -32
  407. package/dist/adapters/mongodbQuery.cjs +0 -90
  408. package/dist/adapters/mongodbQuery.mjs +0 -83
  409. package/dist/adapters/mongodbReads.cjs +0 -206
  410. package/dist/adapters/mongodbReads.mjs +0 -206
  411. package/dist/adapters/mongodbWrites.cjs +0 -133
  412. package/dist/adapters/mongodbWrites.mjs +0 -133
  413. package/dist/adapters/prismaInsights.cjs +0 -99
  414. package/dist/adapters/prismaInsights.mjs +0 -97
  415. package/dist/adapters/prismaQuery.cjs +0 -57
  416. package/dist/adapters/prismaQuery.mjs +0 -56
  417. package/dist/adapters/prismaRows.cjs +0 -197
  418. package/dist/adapters/prismaRows.mjs +0 -188
  419. package/dist/db/databasePluginCore.cjs +0 -137
  420. package/dist/db/databasePluginCore.mjs +0 -137
  421. package/dist/db/fixedMigrator.cjs +0 -79
  422. package/dist/db/fixedMigrator.mjs +0 -78
  423. package/dist/db/fixedMigratorMongo.cjs +0 -321
  424. package/dist/db/fixedMigratorMongo.mjs +0 -321
  425. package/dist/db/mongoMigrationExecution.cjs +0 -11
  426. package/dist/db/mongoMigrationExecution.mjs +0 -11
  427. package/dist/db/schema/insightsCollation.cjs +0 -14
  428. package/dist/db/schema/insightsCollation.mjs +0 -14
  429. package/dist/db/schema/mongodb.cjs +0 -25
  430. package/dist/db/schema/mongodb.mjs +0 -25
  431. package/dist/db/schema/registry.cjs +0 -21
  432. package/dist/db/schema/registry.mjs +0 -17
  433. package/dist/db/schema/sql.cjs +0 -105
  434. package/dist/db/schema/sql.mjs +0 -97
  435. package/dist/db/schema/sqlOperations.cjs +0 -27
  436. package/dist/db/schema/sqlOperations.mjs +0 -26
  437. package/dist/db/schemaGenerators.cjs +0 -276
  438. package/dist/db/schemaGenerators.mjs +0 -274
  439. package/dist/db/schemaReadiness.cjs +0 -26
  440. package/dist/db/schemaReadiness.d.cts +0 -9
  441. package/dist/db/schemaReadiness.d.mts +0 -9
  442. package/dist/db/schemaReadiness.mjs +0 -25
  443. package/dist/db/sqlMigrationExecution.cjs +0 -67
  444. package/dist/db/sqlMigrationExecution.mjs +0 -67
  445. package/dist/handlerBundleRoutes.cjs +0 -155
  446. package/dist/handlerBundleRoutes.mjs +0 -155
  447. package/dist/handlerReleaseManagementRoutes.cjs +0 -124
  448. package/dist/handlerReleaseManagementRoutes.mjs +0 -124
  449. package/dist/schema/dsl.cjs +0 -103
  450. package/dist/schema/dsl.mjs +0 -87
  451. package/dist/schema/index.cjs +0 -20
  452. package/dist/schema/index.mjs +0 -7
  453. package/dist/schema/settings.cjs +0 -9
  454. package/dist/schema/settings.mjs +0 -9
  455. package/dist/schema/types.cjs +0 -8
  456. package/dist/schema/types.mjs +0 -6
  457. package/dist/schema/v1_0_0.cjs +0 -393
  458. package/dist/schema/v1_0_0.mjs +0 -385
  459. package/src/adapters/databaseConstraintErrors.ts +0 -25
  460. package/src/adapters/databasePluginTestDatabase.ts +0 -116
  461. package/src/adapters/databasePluginUtils.spec.ts +0 -29
  462. package/src/adapters/databasePluginUtils.ts +0 -238
  463. package/src/adapters/drizzleCrud.ts +0 -610
  464. package/src/adapters/drizzleLazyDB.ts +0 -284
  465. package/src/adapters/drizzleQuery.ts +0 -164
  466. package/src/adapters/kyselyCrud.ts +0 -696
  467. package/src/adapters/kyselyInsights.spec.ts +0 -168
  468. package/src/adapters/kyselyQuery.ts +0 -128
  469. package/src/adapters/mongodb.spec.ts +0 -230
  470. package/src/adapters/mongodbCollections.ts +0 -78
  471. package/src/adapters/mongodbQuery.ts +0 -245
  472. package/src/adapters/mongodbReads.ts +0 -387
  473. package/src/adapters/mongodbRows.spec.ts +0 -64
  474. package/src/adapters/mongodbRows.ts +0 -118
  475. package/src/adapters/mongodbTestClient.ts +0 -443
  476. package/src/adapters/mongodbTestFilter.ts +0 -170
  477. package/src/adapters/mongodbWrites.ts +0 -261
  478. package/src/adapters/prismaInsights.ts +0 -190
  479. package/src/adapters/prismaQuery.ts +0 -129
  480. package/src/adapters/prismaRows.spec.ts +0 -98
  481. package/src/adapters/prismaRows.ts +0 -308
  482. package/src/adapters/prismaTestClient.ts +0 -478
  483. package/src/calculatePagination.ts +0 -34
  484. package/src/db/databasePluginCore.spec.ts +0 -62
  485. package/src/db/databasePluginCore.testFixtures.ts +0 -76
  486. package/src/db/databasePluginCore.ts +0 -185
  487. package/src/db/databasePluginUpdateCheck.bench.ts +0 -117
  488. package/src/db/fixedMigrator.spec.ts +0 -294
  489. package/src/db/fixedMigrator.ts +0 -147
  490. package/src/db/fixedMigratorMongo.spec.ts +0 -253
  491. package/src/db/fixedMigratorMongo.ts +0 -425
  492. package/src/db/hotUpdaterSchema.ts +0 -5
  493. package/src/db/mongoMigrationExecution.ts +0 -23
  494. package/src/db/schema/definitions.ts +0 -1
  495. package/src/db/schema/insightsCollation.ts +0 -21
  496. package/src/db/schema/mongodb.ts +0 -40
  497. package/src/db/schema/registry.ts +0 -55
  498. package/src/db/schema/sql.ts +0 -244
  499. package/src/db/schema/sqlOperations.ts +0 -63
  500. package/src/db/schema/types.ts +0 -1
  501. package/src/db/schemaGenerators.ts +0 -495
  502. package/src/db/schemaReadiness.ts +0 -34
  503. package/src/db/sqlMigrationExecution.spec.ts +0 -65
  504. package/src/db/sqlMigrationExecution.ts +0 -108
  505. package/src/db/types.spec.ts +0 -63
  506. package/src/handlerBundleRoutes.ts +0 -259
  507. package/src/handlerReleaseManagementRoutes.ts +0 -213
  508. package/src/schema/dsl-all-versions.spec.ts +0 -35
  509. package/src/schema/dsl.ts +0 -187
  510. package/src/schema/index.ts +0 -10
  511. package/src/schema/settings.ts +0 -15
  512. package/src/schema/types.ts +0 -79
  513. package/src/schema/v1_0_0.spec.ts +0 -220
  514. package/src/schema/v1_0_0.ts +0 -511
@@ -1,188 +0,0 @@
1
- import { isDatabaseBundleEventMetadata, isDatabaseMetadataObject } from "@hot-updater/plugin-core";
2
- //#region src/adapters/prismaRows.ts
3
- var PrismaAdapterError = class extends Error {
4
- reason;
5
- name = "PrismaAdapterError";
6
- constructor(reason) {
7
- super(`Invalid Prisma plugin state: ${reason}`);
8
- this.reason = reason;
9
- }
10
- };
11
- const isRecord = (value) => typeof value === "object" && value !== null;
12
- const hasDelegateMethods = (value) => isRecord(value) && typeof value["count"] === "function" && typeof value["create"] === "function" && typeof value["deleteMany"] === "function" && typeof value["findFirst"] === "function" && typeof value["findMany"] === "function" && typeof value["update"] === "function" && typeof value["upsert"] === "function";
13
- const modelDelegates = {
14
- bundles: "bundles",
15
- bundle_patches: "bundle_patches",
16
- bundle_events: "bundle_events",
17
- channels: "channels",
18
- api_keys: "api_keys",
19
- releases: "releases",
20
- release_catalogs: "release_catalogs"
21
- };
22
- const getPrismaDelegate = (client, model) => {
23
- const delegate = Object.entries(client).find(([key]) => key === modelDelegates[model])?.[1];
24
- if (delegate === void 0) throw new PrismaAdapterError(`missing model delegate "${model}"`);
25
- if (!hasDelegateMethods(delegate)) throw new PrismaAdapterError(`invalid model delegate "${model}"`);
26
- return delegate;
27
- };
28
- const readString = (row, field) => {
29
- const value = row[field];
30
- if (typeof value !== "string") throw new PrismaAdapterError(`expected string field "${field}"`);
31
- return value;
32
- };
33
- const readNullableString = (row, field) => {
34
- const value = row[field];
35
- if (value === null) return null;
36
- if (typeof value !== "string") throw new PrismaAdapterError(`expected nullable string field "${field}"`);
37
- return value;
38
- };
39
- const readByteSize = (row, field) => {
40
- const value = row[field];
41
- if (typeof value !== "number" || !Number.isSafeInteger(value) || value < 0) throw new PrismaAdapterError(`expected byte-size field "${field}"`);
42
- return value;
43
- };
44
- const parsePrismaBundleRow = (value) => {
45
- if (!isRecord(value)) throw new PrismaAdapterError("invalid bundle row");
46
- const platform = value["platform"];
47
- if (platform !== "android" && platform !== "ios") throw new PrismaAdapterError("expected platform \"android\" or \"ios\"");
48
- const metadata = value["metadata"];
49
- if (!isDatabaseMetadataObject(metadata)) throw new PrismaAdapterError("invalid metadata field");
50
- return {
51
- id: readString(value, "id"),
52
- platform,
53
- file_hash: readString(value, "file_hash"),
54
- git_commit_hash: readNullableString(value, "git_commit_hash"),
55
- storage_uri: readString(value, "storage_uri"),
56
- archive_byte_size: readByteSize(value, "archive_byte_size"),
57
- metadata,
58
- manifest_storage_uri: readNullableString(value, "manifest_storage_uri"),
59
- manifest_file_hash: readNullableString(value, "manifest_file_hash"),
60
- asset_base_storage_uri: readNullableString(value, "asset_base_storage_uri")
61
- };
62
- };
63
- const parsePrismaChannelRow = (value) => {
64
- if (!isRecord(value)) throw new PrismaAdapterError("invalid channel row");
65
- return {
66
- id: readString(value, "id"),
67
- name: readString(value, "name")
68
- };
69
- };
70
- const parsePrismaPatchRow = (value) => {
71
- if (!isRecord(value)) throw new PrismaAdapterError("invalid patch row");
72
- const orderIndex = value["order_index"];
73
- if (typeof orderIndex !== "number") throw new PrismaAdapterError("invalid patch order_index field");
74
- return {
75
- id: readString(value, "id"),
76
- bundle_id: readString(value, "bundle_id"),
77
- base_bundle_id: readString(value, "base_bundle_id"),
78
- base_file_hash: readString(value, "base_file_hash"),
79
- patch_file_hash: readString(value, "patch_file_hash"),
80
- patch_storage_uri: readString(value, "patch_storage_uri"),
81
- byte_size: readByteSize(value, "byte_size"),
82
- order_index: orderIndex
83
- };
84
- };
85
- const readNumber = (row, field) => {
86
- const value = row[field];
87
- if (typeof value !== "number" || !Number.isFinite(value)) throw new PrismaAdapterError(`expected number field "${field}"`);
88
- return value;
89
- };
90
- const parsePrismaBundleEventRow = (value) => {
91
- if (!isRecord(value)) throw new PrismaAdapterError("invalid event row");
92
- const type = readString(value, "type");
93
- const platform = readString(value, "platform");
94
- const fromBundleId = readNullableString(value, "from_bundle_id");
95
- const storedMetadata = value["metadata"];
96
- const metadata = typeof storedMetadata === "string" ? JSON.parse(storedMetadata) : storedMetadata;
97
- if (!isDatabaseBundleEventMetadata(metadata)) throw new PrismaAdapterError("invalid event metadata");
98
- const updateStrategy = metadata.update_strategy;
99
- if (platform !== "ios" && platform !== "android" || !((type === "UPDATE_DOWNLOADED" || type === "UPDATE_APPLIED" || type === "RECOVERED") && typeof fromBundleId === "string" && (updateStrategy === "fingerprint" || updateStrategy === "appVersion") || type === "UNCHANGED" && fromBundleId === null && updateStrategy === null)) throw new PrismaAdapterError("invalid event shape");
100
- return {
101
- id: readString(value, "id"),
102
- type,
103
- install_id: readString(value, "install_id"),
104
- user_id: readNullableString(value, "user_id"),
105
- from_release_id: readNullableString(value, "from_release_id"),
106
- from_bundle_id: fromBundleId,
107
- to_release_id: readNullableString(value, "to_release_id"),
108
- to_bundle_id: readString(value, "to_bundle_id"),
109
- platform,
110
- app_version: readString(value, "app_version"),
111
- channel: readString(value, "channel"),
112
- metadata,
113
- received_at_ms: readNumber(value, "received_at_ms")
114
- };
115
- };
116
- const parsePrismaApiKeyRow = (value) => {
117
- if (!isRecord(value)) throw new PrismaAdapterError("invalid API key row");
118
- const role = readString(value, "role");
119
- if (role !== "client") throw new PrismaAdapterError("invalid API key role");
120
- const revokedAt = value["revoked_at_ms"];
121
- return {
122
- id: readString(value, "id"),
123
- hash: readString(value, "hash"),
124
- name: readString(value, "name"),
125
- prefix: readString(value, "prefix"),
126
- role,
127
- created_at_ms: readNumber(value, "created_at_ms"),
128
- revoked_at_ms: revokedAt === null ? null : readNumber(value, "revoked_at_ms")
129
- };
130
- };
131
- const parsePrismaReleaseRow = (value) => {
132
- if (!isRecord(value)) throw new PrismaAdapterError("invalid Release row");
133
- const platform = readString(value, "platform");
134
- const kind = readString(value, "kind");
135
- const strategy = readString(value, "strategy");
136
- const operation = readString(value, "operation");
137
- const targetCohorts = value["target_cohorts"];
138
- if (platform !== "ios" && platform !== "android" || kind !== "BUNDLE" && kind !== "EMBEDDED" || strategy !== "APP_VERSION" && strategy !== "FINGERPRINT" || operation !== "DEPLOY" && operation !== "PROMOTE" && operation !== "ROLLBACK" || !Array.isArray(targetCohorts) || !targetCohorts.every((cohort) => typeof cohort === "string")) throw new PrismaAdapterError("invalid Release fields");
139
- const enabled = value["enabled"];
140
- const shouldForceUpdate = value["should_force_update"];
141
- if (typeof enabled !== "boolean" || typeof shouldForceUpdate !== "boolean") throw new PrismaAdapterError("invalid Release policy fields");
142
- return {
143
- bundle_id: readNullableString(value, "bundle_id"),
144
- channel_id: readString(value, "channel_id"),
145
- created_at_ms: readNumber(value, "created_at_ms"),
146
- enabled,
147
- fingerprint_hash: readNullableString(value, "fingerprint_hash"),
148
- id: readString(value, "id"),
149
- kind,
150
- message: readNullableString(value, "message"),
151
- operation,
152
- platform,
153
- revision: readNumber(value, "revision"),
154
- rollout_cohort_count: readNumber(value, "rollout_cohort_count"),
155
- scope_key: readString(value, "scope_key"),
156
- should_force_update: shouldForceUpdate,
157
- source_release_id: readNullableString(value, "source_release_id"),
158
- strategy,
159
- target_app_version: readNullableString(value, "target_app_version"),
160
- target_cohorts: targetCohorts,
161
- updated_at_ms: readNumber(value, "updated_at_ms")
162
- };
163
- };
164
- const parsePrismaReleaseCatalogRow = (value) => {
165
- if (!isRecord(value)) throw new PrismaAdapterError("invalid catalog row");
166
- const platform = readString(value, "platform");
167
- const strategy = readString(value, "strategy");
168
- const isTombstone = value["is_tombstone"];
169
- if (platform !== "ios" && platform !== "android" || strategy !== "APP_VERSION" && strategy !== "FINGERPRINT" || typeof isTombstone !== "boolean") throw new PrismaAdapterError("invalid catalog fields");
170
- return {
171
- catalog_id: readString(value, "catalog_id"),
172
- byte_size: readNumber(value, "byte_size"),
173
- catalog_hash: readString(value, "catalog_hash"),
174
- channel_id: readString(value, "channel_id"),
175
- channel_key: readString(value, "channel_key"),
176
- fingerprint_hash: readNullableString(value, "fingerprint_hash"),
177
- generation: readNumber(value, "generation"),
178
- is_tombstone: isTombstone,
179
- payload: readString(value, "payload"),
180
- platform,
181
- scope_key: readString(value, "scope_key"),
182
- strategy,
183
- updated_at_ms: readNumber(value, "updated_at_ms")
184
- };
185
- };
186
- const parsePrismaRows = (rows, parse) => rows.map(parse);
187
- //#endregion
188
- export { PrismaAdapterError, getPrismaDelegate, parsePrismaApiKeyRow, parsePrismaBundleEventRow, parsePrismaBundleRow, parsePrismaChannelRow, parsePrismaPatchRow, parsePrismaReleaseCatalogRow, parsePrismaReleaseRow, parsePrismaRows };
@@ -1,137 +0,0 @@
1
- const require_releaseCatalog = require("./releaseCatalog.cjs");
2
- let _hot_updater_plugin_core = require("@hot-updater/plugin-core");
3
- let _hot_updater_core = require("@hot-updater/core");
4
- //#region src/db/databasePluginCore.ts
5
- function createDatabasePluginCore(database, resolveFileUrl, options) {
6
- const client = (0, _hot_updater_plugin_core.createDatabaseClient)(database);
7
- const beforeOperation = options?.beforeOperation;
8
- const getReleaseCatalog = require_releaseCatalog.createReleaseCatalogReader(database);
9
- const getArtifact = require_releaseCatalog.createArtifactResolver({
10
- database,
11
- readStorageText: options?.readStorageText,
12
- resolveFileUrl
13
- });
14
- return {
15
- api: {
16
- async getBundleById(id) {
17
- await beforeOperation?.();
18
- return client.getBundleById(id);
19
- },
20
- async getReleaseCatalog(input) {
21
- await beforeOperation?.();
22
- return getReleaseCatalog(input);
23
- },
24
- async getArtifactInfo(targetBundleId, currentBundleId) {
25
- await beforeOperation?.();
26
- return getArtifact(targetBundleId, currentBundleId);
27
- },
28
- async getReleaseById(id) {
29
- await beforeOperation?.();
30
- return database.models.releases.findById(id);
31
- },
32
- async getReleasesByScope(input) {
33
- await beforeOperation?.();
34
- return database.models.releases.findManyByScope({
35
- ...input,
36
- consistency: "strong"
37
- });
38
- },
39
- async getReleases(input) {
40
- await beforeOperation?.();
41
- return database.models.releases.findMany(input);
42
- },
43
- async getReleaseCatalogByScopeKey(scopeKey) {
44
- await beforeOperation?.();
45
- return database.models.releaseCatalogs.findByScopeKey(scopeKey);
46
- },
47
- async getReleaseCatalogs(input) {
48
- await beforeOperation?.();
49
- return database.models.releaseCatalogs.findMany(input);
50
- },
51
- async updateReleasePolicy(input) {
52
- await beforeOperation?.();
53
- return (0, _hot_updater_plugin_core.updateReleasePolicy)({
54
- database,
55
- ...input
56
- });
57
- },
58
- async preflightReleasePolicy(input) {
59
- await beforeOperation?.();
60
- return (0, _hot_updater_plugin_core.preflightReleasePolicy)({
61
- database,
62
- ...input
63
- });
64
- },
65
- async deleteRelease(input) {
66
- await beforeOperation?.();
67
- return (0, _hot_updater_plugin_core.deleteRelease)({
68
- database,
69
- ...input
70
- });
71
- },
72
- async rebuildReleaseCatalog(scopeKey) {
73
- await beforeOperation?.();
74
- const catalog = await database.models.releaseCatalogs.findByScopeKey(scopeKey);
75
- if (catalog === null) throw new Error(`Release catalog "${scopeKey}" was not found.`);
76
- return (0, _hot_updater_plugin_core.rebuildReleaseCatalog)({
77
- database,
78
- scope: {
79
- channelId: catalog.channel_id,
80
- channelName: (0, _hot_updater_core.decodeChannelKey)(catalog.channel_key),
81
- fingerprintHash: catalog.fingerprint_hash,
82
- platform: catalog.platform,
83
- scopeKey: catalog.scope_key,
84
- strategy: catalog.strategy
85
- }
86
- });
87
- },
88
- async commitDatabase(input) {
89
- await beforeOperation?.();
90
- return database.commit(input);
91
- },
92
- async getChannels() {
93
- await beforeOperation?.();
94
- return client.getChannels();
95
- },
96
- async insertChannel(input) {
97
- await beforeOperation?.();
98
- return database.models.channels.insert(input);
99
- },
100
- async deleteChannel(input) {
101
- await beforeOperation?.();
102
- return database.models.channels.delete(input);
103
- },
104
- async getBundles(options) {
105
- await beforeOperation?.();
106
- return client.getBundles(options);
107
- },
108
- async insertBundle(bundle) {
109
- await beforeOperation?.();
110
- await client.insertBundle(bundle);
111
- },
112
- async insertBundles(bundles) {
113
- await beforeOperation?.();
114
- await client.mutate(async (transaction) => {
115
- for (const bundle of bundles) await transaction.insertBundle(bundle);
116
- });
117
- },
118
- async updateBundleById(bundleId, update) {
119
- await beforeOperation?.();
120
- await client.updateBundleById(bundleId, update);
121
- },
122
- async deleteBundleById(bundleId) {
123
- await beforeOperation?.();
124
- await client.deleteBundleById(bundleId);
125
- }
126
- },
127
- adapterName: database.name,
128
- createMigrator: () => {
129
- throw new Error("createMigrator is only available for Kysely/MongoDB database plugins.");
130
- },
131
- generateSchema: () => {
132
- throw new Error("generateSchema is only available for Drizzle/Prisma database plugins.");
133
- }
134
- };
135
- }
136
- //#endregion
137
- exports.createDatabasePluginCore = createDatabasePluginCore;
@@ -1,137 +0,0 @@
1
- import { createArtifactResolver, createReleaseCatalogReader } from "./releaseCatalog.mjs";
2
- import { createDatabaseClient, deleteRelease, preflightReleasePolicy, rebuildReleaseCatalog, updateReleasePolicy } from "@hot-updater/plugin-core";
3
- import { decodeChannelKey } from "@hot-updater/core";
4
- //#region src/db/databasePluginCore.ts
5
- function createDatabasePluginCore(database, resolveFileUrl, options) {
6
- const client = createDatabaseClient(database);
7
- const beforeOperation = options?.beforeOperation;
8
- const getReleaseCatalog = createReleaseCatalogReader(database);
9
- const getArtifact = createArtifactResolver({
10
- database,
11
- readStorageText: options?.readStorageText,
12
- resolveFileUrl
13
- });
14
- return {
15
- api: {
16
- async getBundleById(id) {
17
- await beforeOperation?.();
18
- return client.getBundleById(id);
19
- },
20
- async getReleaseCatalog(input) {
21
- await beforeOperation?.();
22
- return getReleaseCatalog(input);
23
- },
24
- async getArtifactInfo(targetBundleId, currentBundleId) {
25
- await beforeOperation?.();
26
- return getArtifact(targetBundleId, currentBundleId);
27
- },
28
- async getReleaseById(id) {
29
- await beforeOperation?.();
30
- return database.models.releases.findById(id);
31
- },
32
- async getReleasesByScope(input) {
33
- await beforeOperation?.();
34
- return database.models.releases.findManyByScope({
35
- ...input,
36
- consistency: "strong"
37
- });
38
- },
39
- async getReleases(input) {
40
- await beforeOperation?.();
41
- return database.models.releases.findMany(input);
42
- },
43
- async getReleaseCatalogByScopeKey(scopeKey) {
44
- await beforeOperation?.();
45
- return database.models.releaseCatalogs.findByScopeKey(scopeKey);
46
- },
47
- async getReleaseCatalogs(input) {
48
- await beforeOperation?.();
49
- return database.models.releaseCatalogs.findMany(input);
50
- },
51
- async updateReleasePolicy(input) {
52
- await beforeOperation?.();
53
- return updateReleasePolicy({
54
- database,
55
- ...input
56
- });
57
- },
58
- async preflightReleasePolicy(input) {
59
- await beforeOperation?.();
60
- return preflightReleasePolicy({
61
- database,
62
- ...input
63
- });
64
- },
65
- async deleteRelease(input) {
66
- await beforeOperation?.();
67
- return deleteRelease({
68
- database,
69
- ...input
70
- });
71
- },
72
- async rebuildReleaseCatalog(scopeKey) {
73
- await beforeOperation?.();
74
- const catalog = await database.models.releaseCatalogs.findByScopeKey(scopeKey);
75
- if (catalog === null) throw new Error(`Release catalog "${scopeKey}" was not found.`);
76
- return rebuildReleaseCatalog({
77
- database,
78
- scope: {
79
- channelId: catalog.channel_id,
80
- channelName: decodeChannelKey(catalog.channel_key),
81
- fingerprintHash: catalog.fingerprint_hash,
82
- platform: catalog.platform,
83
- scopeKey: catalog.scope_key,
84
- strategy: catalog.strategy
85
- }
86
- });
87
- },
88
- async commitDatabase(input) {
89
- await beforeOperation?.();
90
- return database.commit(input);
91
- },
92
- async getChannels() {
93
- await beforeOperation?.();
94
- return client.getChannels();
95
- },
96
- async insertChannel(input) {
97
- await beforeOperation?.();
98
- return database.models.channels.insert(input);
99
- },
100
- async deleteChannel(input) {
101
- await beforeOperation?.();
102
- return database.models.channels.delete(input);
103
- },
104
- async getBundles(options) {
105
- await beforeOperation?.();
106
- return client.getBundles(options);
107
- },
108
- async insertBundle(bundle) {
109
- await beforeOperation?.();
110
- await client.insertBundle(bundle);
111
- },
112
- async insertBundles(bundles) {
113
- await beforeOperation?.();
114
- await client.mutate(async (transaction) => {
115
- for (const bundle of bundles) await transaction.insertBundle(bundle);
116
- });
117
- },
118
- async updateBundleById(bundleId, update) {
119
- await beforeOperation?.();
120
- await client.updateBundleById(bundleId, update);
121
- },
122
- async deleteBundleById(bundleId) {
123
- await beforeOperation?.();
124
- await client.deleteBundleById(bundleId);
125
- }
126
- },
127
- adapterName: database.name,
128
- createMigrator: () => {
129
- throw new Error("createMigrator is only available for Kysely/MongoDB database plugins.");
130
- },
131
- generateSchema: () => {
132
- throw new Error("generateSchema is only available for Drizzle/Prisma database plugins.");
133
- }
134
- };
135
- }
136
- //#endregion
137
- export { createDatabasePluginCore };
@@ -1,79 +0,0 @@
1
- const require_types = require("../schema/types.cjs");
2
- const require_fixedMigratorShared = require("./fixedMigratorShared.cjs");
3
- const require_sql = require("./schema/sql.cjs");
4
- const require_sqlOperations = require("./schema/sqlOperations.cjs");
5
- const require_sqlMigrationExecution = require("./sqlMigrationExecution.cjs");
6
- const require_fixedMigratorMongo = require("./fixedMigratorMongo.cjs");
7
- let kysely = require("kysely");
8
- //#region src/db/fixedMigrator.ts
9
- const isMissingSettingsTableError = (error) => {
10
- if (!(error instanceof Error)) return false;
11
- const message = error.message.toLowerCase();
12
- return message.includes("private_hot_updater_settings") && (message.includes("does not exist") || message.includes("no such table") || message.includes("doesn't exist") || message.includes("not found"));
13
- };
14
- const createKyselyMigrator = ({ db, provider, relationMode = "foreign-keys" }) => {
15
- const getSetting = async (key) => {
16
- try {
17
- const row = (await kysely.sql`select ${kysely.sql.ref("value")} from ${kysely.sql.table(require_types.HOT_UPDATER_SETTINGS_TABLE)} where ${kysely.sql.ref("key")} = ${key} limit 1`.execute(db)).rows[0];
18
- if (!row) return void 0;
19
- if (typeof row.value !== "string") throw new Error(`Invalid Hot Updater schema setting: ${key}`);
20
- return row.value;
21
- } catch (error) {
22
- if (!isMissingSettingsTableError(error)) throw error;
23
- return;
24
- }
25
- };
26
- const getCoreVersion = () => getSetting(require_types.HOT_UPDATER_CORE_SCHEMA_KEY);
27
- const getSchemaVersions = async () => {
28
- return {
29
- coreVersion: await getCoreVersion(),
30
- legacyCoreVersion: require_fixedMigratorShared.inferLegacyCoreSchemaVersion(await getSetting("version"))
31
- };
32
- };
33
- const getVersion = async () => {
34
- const { coreVersion, legacyCoreVersion } = await getSchemaVersions();
35
- return coreVersion ?? legacyCoreVersion;
36
- };
37
- const makeResult = async (options = {}) => {
38
- require_fixedMigratorShared.assertSupportedMigrationMode(options);
39
- const { coreVersion, legacyCoreVersion } = await getSchemaVersions();
40
- if (require_fixedMigratorShared.isCurrentSchemaVersion(coreVersion)) return require_fixedMigratorShared.getEmptyMigrationResult();
41
- require_fixedMigratorShared.assertCurrentOrEmptySchemaVersion(coreVersion ?? legacyCoreVersion);
42
- const settingsStatement = require_sqlOperations.getSettingsInsertSql(provider);
43
- const settingsOperation = options.updateSettings === false ? void 0 : {
44
- type: "custom",
45
- sql: settingsStatement
46
- };
47
- const statements = [...require_sql.createTableSql(provider, relationMode), settingsStatement];
48
- return {
49
- operations: require_sqlOperations.createSqlCreateOperations(provider, relationMode, settingsOperation),
50
- getSQL: () => statements.map((statement) => `${statement};`).join("\n\n"),
51
- execute: () => require_sqlMigrationExecution.executeMigrationStatements({
52
- db,
53
- provider,
54
- statements
55
- })
56
- };
57
- };
58
- return {
59
- getVersion,
60
- getNameVariants: async () => void 0,
61
- next: async () => {
62
- const { coreVersion } = await getSchemaVersions();
63
- return require_fixedMigratorShared.isCurrentSchemaVersion(coreVersion) ? void 0 : { version: require_types.HOT_UPDATER_SCHEMA_VERSION };
64
- },
65
- previous: async () => void 0,
66
- up: makeResult,
67
- down: async () => {
68
- throw new Error("No previous schema to migrate to.");
69
- },
70
- migrateTo: async (version, options) => {
71
- if (version !== "1.0.0") throw new Error(`Invalid version ${version}`);
72
- return makeResult(options);
73
- },
74
- migrateToLatest: makeResult
75
- };
76
- };
77
- //#endregion
78
- exports.createKyselyMigrator = createKyselyMigrator;
79
- exports.createMongoMigrator = require_fixedMigratorMongo.createMongoMigrator;
@@ -1,78 +0,0 @@
1
- import { HOT_UPDATER_CORE_SCHEMA_KEY, HOT_UPDATER_SCHEMA_VERSION, HOT_UPDATER_SETTINGS_TABLE } from "../schema/types.mjs";
2
- import { assertCurrentOrEmptySchemaVersion, assertSupportedMigrationMode, getEmptyMigrationResult, inferLegacyCoreSchemaVersion, isCurrentSchemaVersion } from "./fixedMigratorShared.mjs";
3
- import { createTableSql } from "./schema/sql.mjs";
4
- import { createSqlCreateOperations, getSettingsInsertSql } from "./schema/sqlOperations.mjs";
5
- import { executeMigrationStatements } from "./sqlMigrationExecution.mjs";
6
- import { createMongoMigrator } from "./fixedMigratorMongo.mjs";
7
- import { sql } from "kysely";
8
- //#region src/db/fixedMigrator.ts
9
- const isMissingSettingsTableError = (error) => {
10
- if (!(error instanceof Error)) return false;
11
- const message = error.message.toLowerCase();
12
- return message.includes("private_hot_updater_settings") && (message.includes("does not exist") || message.includes("no such table") || message.includes("doesn't exist") || message.includes("not found"));
13
- };
14
- const createKyselyMigrator = ({ db, provider, relationMode = "foreign-keys" }) => {
15
- const getSetting = async (key) => {
16
- try {
17
- const row = (await sql`select ${sql.ref("value")} from ${sql.table(HOT_UPDATER_SETTINGS_TABLE)} where ${sql.ref("key")} = ${key} limit 1`.execute(db)).rows[0];
18
- if (!row) return void 0;
19
- if (typeof row.value !== "string") throw new Error(`Invalid Hot Updater schema setting: ${key}`);
20
- return row.value;
21
- } catch (error) {
22
- if (!isMissingSettingsTableError(error)) throw error;
23
- return;
24
- }
25
- };
26
- const getCoreVersion = () => getSetting(HOT_UPDATER_CORE_SCHEMA_KEY);
27
- const getSchemaVersions = async () => {
28
- return {
29
- coreVersion: await getCoreVersion(),
30
- legacyCoreVersion: inferLegacyCoreSchemaVersion(await getSetting("version"))
31
- };
32
- };
33
- const getVersion = async () => {
34
- const { coreVersion, legacyCoreVersion } = await getSchemaVersions();
35
- return coreVersion ?? legacyCoreVersion;
36
- };
37
- const makeResult = async (options = {}) => {
38
- assertSupportedMigrationMode(options);
39
- const { coreVersion, legacyCoreVersion } = await getSchemaVersions();
40
- if (isCurrentSchemaVersion(coreVersion)) return getEmptyMigrationResult();
41
- assertCurrentOrEmptySchemaVersion(coreVersion ?? legacyCoreVersion);
42
- const settingsStatement = getSettingsInsertSql(provider);
43
- const settingsOperation = options.updateSettings === false ? void 0 : {
44
- type: "custom",
45
- sql: settingsStatement
46
- };
47
- const statements = [...createTableSql(provider, relationMode), settingsStatement];
48
- return {
49
- operations: createSqlCreateOperations(provider, relationMode, settingsOperation),
50
- getSQL: () => statements.map((statement) => `${statement};`).join("\n\n"),
51
- execute: () => executeMigrationStatements({
52
- db,
53
- provider,
54
- statements
55
- })
56
- };
57
- };
58
- return {
59
- getVersion,
60
- getNameVariants: async () => void 0,
61
- next: async () => {
62
- const { coreVersion } = await getSchemaVersions();
63
- return isCurrentSchemaVersion(coreVersion) ? void 0 : { version: HOT_UPDATER_SCHEMA_VERSION };
64
- },
65
- previous: async () => void 0,
66
- up: makeResult,
67
- down: async () => {
68
- throw new Error("No previous schema to migrate to.");
69
- },
70
- migrateTo: async (version, options) => {
71
- if (version !== "1.0.0") throw new Error(`Invalid version ${version}`);
72
- return makeResult(options);
73
- },
74
- migrateToLatest: makeResult
75
- };
76
- };
77
- //#endregion
78
- export { createKyselyMigrator, createMongoMigrator };