@hot-updater/server 1.0.0-rc.2 → 1.0.0-rc.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (328) hide show
  1. package/LICENSE +12 -14
  2. package/dist/adapters/drizzle.cjs +32 -75
  3. package/dist/adapters/drizzle.d.cts +13 -5
  4. package/dist/adapters/drizzle.d.mts +13 -5
  5. package/dist/adapters/drizzle.mjs +32 -77
  6. package/dist/adapters/drizzleExecutor.cjs +114 -0
  7. package/dist/adapters/drizzleExecutor.d.cts +9 -0
  8. package/dist/adapters/drizzleExecutor.d.mts +9 -0
  9. package/dist/adapters/drizzleExecutor.mjs +112 -0
  10. package/dist/adapters/kysely.cjs +22 -31
  11. package/dist/adapters/kysely.d.cts +10 -6
  12. package/dist/adapters/kysely.d.mts +10 -6
  13. package/dist/adapters/kysely.mjs +23 -33
  14. package/dist/adapters/kyselyExecutor.cjs +32 -0
  15. package/dist/adapters/kyselyExecutor.d.cts +11 -0
  16. package/dist/adapters/kyselyExecutor.d.mts +11 -0
  17. package/dist/adapters/kyselyExecutor.mjs +32 -0
  18. package/dist/adapters/mongodb.cjs +18 -54
  19. package/dist/adapters/mongodb.d.cts +10 -5
  20. package/dist/adapters/mongodb.d.mts +10 -5
  21. package/dist/adapters/mongodb.mjs +19 -56
  22. package/dist/adapters/mongodbAdapter.cjs +192 -0
  23. package/dist/adapters/mongodbAdapter.d.cts +9 -0
  24. package/dist/adapters/mongodbAdapter.d.mts +9 -0
  25. package/dist/adapters/mongodbAdapter.mjs +191 -0
  26. package/dist/adapters/prisma.cjs +35 -267
  27. package/dist/adapters/prisma.d.cts +12 -7
  28. package/dist/adapters/prisma.d.mts +12 -7
  29. package/dist/adapters/prisma.mjs +36 -268
  30. package/dist/adapters/prismaExecutor.cjs +63 -0
  31. package/dist/adapters/prismaExecutor.mjs +63 -0
  32. package/dist/adapters/sqlProviders.cjs +14 -0
  33. package/dist/adapters/sqlProviders.mjs +14 -0
  34. package/dist/assembly/assemblePlugins.cjs +144 -0
  35. package/dist/assembly/assemblePlugins.d.cts +5 -0
  36. package/dist/assembly/assemblePlugins.d.mts +5 -0
  37. package/dist/assembly/assemblePlugins.mjs +139 -0
  38. package/dist/assembly/clientPlugins.cjs +88 -0
  39. package/dist/assembly/clientPlugins.mjs +88 -0
  40. package/dist/assembly/configError.d.cts +2 -0
  41. package/dist/assembly/configError.d.mts +2 -0
  42. package/dist/assembly/configError.mjs +2 -0
  43. package/dist/core/api.cjs +51 -0
  44. package/dist/core/api.d.cts +54 -0
  45. package/dist/core/api.d.mts +54 -0
  46. package/dist/core/api.mjs +51 -0
  47. package/dist/core/baseCandidates.cjs +28 -0
  48. package/dist/core/baseCandidates.mjs +28 -0
  49. package/dist/core/operations.cjs +351 -0
  50. package/dist/core/operations.mjs +351 -0
  51. package/dist/core/reads.cjs +273 -0
  52. package/dist/core/reads.d.cts +9 -0
  53. package/dist/core/reads.d.mts +9 -0
  54. package/dist/core/reads.mjs +267 -0
  55. package/dist/core/releases.cjs +193 -0
  56. package/dist/core/releases.mjs +190 -0
  57. package/dist/core/writes.cjs +96 -0
  58. package/dist/core/writes.mjs +91 -0
  59. package/dist/createHotUpdaterCore.cjs +72 -91
  60. package/dist/createHotUpdaterCore.d.cts +106 -38
  61. package/dist/createHotUpdaterCore.d.mts +106 -38
  62. package/dist/createHotUpdaterCore.mjs +74 -89
  63. package/dist/db/engineDrizzleSchema.cjs +53 -0
  64. package/dist/db/engineDrizzleSchema.mjs +53 -0
  65. package/dist/db/enginePrismaSchema.cjs +84 -0
  66. package/dist/db/enginePrismaSchema.d.cts +5 -0
  67. package/dist/db/enginePrismaSchema.d.mts +5 -0
  68. package/dist/db/enginePrismaSchema.mjs +83 -0
  69. package/dist/db/releaseCatalog.cjs +24 -47
  70. package/dist/db/releaseCatalog.mjs +20 -44
  71. package/dist/db/updateArtifacts.cjs +43 -72
  72. package/dist/db/updateArtifacts.mjs +40 -69
  73. package/dist/handler.cjs +59 -43
  74. package/dist/handler.d.cts +3 -5
  75. package/dist/handler.d.mts +3 -5
  76. package/dist/handler.mjs +61 -43
  77. package/dist/handlerAdminRoutes.cjs +374 -0
  78. package/dist/handlerAdminRoutes.mjs +372 -0
  79. package/dist/handlerParameters.cjs +6 -11
  80. package/dist/handlerParameters.mjs +6 -10
  81. package/dist/handlerReleaseCatalogRoutes.cjs +32 -15
  82. package/dist/handlerReleaseCatalogRoutes.mjs +32 -15
  83. package/dist/handlerTypes.d.cts +2 -55
  84. package/dist/handlerTypes.d.mts +2 -55
  85. package/dist/handlerVersionRoutes.cjs +20 -4
  86. package/dist/handlerVersionRoutes.mjs +20 -4
  87. package/dist/index.cjs +9 -9
  88. package/dist/index.d.cts +8 -9
  89. package/dist/index.d.mts +8 -9
  90. package/dist/index.mjs +3 -4
  91. package/dist/node.cjs +3 -6
  92. package/dist/node.d.cts +2 -2
  93. package/dist/node.d.mts +2 -2
  94. package/dist/node.mjs +4 -4
  95. package/dist/package.cjs +1 -1
  96. package/dist/package.mjs +1 -1
  97. package/dist/plugins/api-keys/index.cjs +9 -0
  98. package/dist/plugins/api-keys/index.d.cts +1 -0
  99. package/dist/plugins/api-keys/index.d.mts +1 -0
  100. package/dist/plugins/api-keys/index.mjs +2 -0
  101. package/dist/plugins/definePlugin.d.cts +2 -0
  102. package/dist/plugins/definePlugin.d.mts +2 -0
  103. package/dist/plugins/insights/index.cjs +9 -0
  104. package/dist/plugins/insights/index.d.cts +1 -0
  105. package/dist/plugins/insights/index.d.mts +1 -0
  106. package/dist/plugins/insights/index.mjs +2 -0
  107. package/dist/plugins/official.cjs +30 -0
  108. package/dist/plugins/official.mjs +29 -0
  109. package/dist/storageAccess.cjs +13 -10
  110. package/dist/storageAccess.mjs +13 -10
  111. package/dist/types/index.d.cts +2 -28
  112. package/dist/types/index.d.mts +2 -28
  113. package/package.json +26 -14
  114. package/dist/_virtual/_rolldown/runtime.cjs +0 -23
  115. package/dist/adapters/databaseConstraintErrors.cjs +0 -22
  116. package/dist/adapters/databaseConstraintErrors.mjs +0 -21
  117. package/dist/adapters/databasePluginUtils.cjs +0 -116
  118. package/dist/adapters/databasePluginUtils.mjs +0 -106
  119. package/dist/adapters/drizzleCrud.cjs +0 -311
  120. package/dist/adapters/drizzleCrud.mjs +0 -308
  121. package/dist/adapters/drizzleLazyDB.cjs +0 -106
  122. package/dist/adapters/drizzleLazyDB.mjs +0 -106
  123. package/dist/adapters/drizzleQuery.cjs +0 -69
  124. package/dist/adapters/drizzleQuery.mjs +0 -69
  125. package/dist/adapters/insightsTransaction.cjs +0 -22
  126. package/dist/adapters/insightsTransaction.mjs +0 -22
  127. package/dist/adapters/kyselyCrud.cjs +0 -305
  128. package/dist/adapters/kyselyCrud.mjs +0 -304
  129. package/dist/adapters/kyselyQuery.cjs +0 -56
  130. package/dist/adapters/kyselyQuery.mjs +0 -56
  131. package/dist/adapters/mongodbCollections.cjs +0 -38
  132. package/dist/adapters/mongodbCollections.mjs +0 -32
  133. package/dist/adapters/mongodbQuery.cjs +0 -94
  134. package/dist/adapters/mongodbQuery.mjs +0 -86
  135. package/dist/adapters/mongodbReads.cjs +0 -210
  136. package/dist/adapters/mongodbReads.mjs +0 -210
  137. package/dist/adapters/mongodbWrites.cjs +0 -148
  138. package/dist/adapters/mongodbWrites.mjs +0 -148
  139. package/dist/adapters/prismaQuery.cjs +0 -57
  140. package/dist/adapters/prismaQuery.mjs +0 -56
  141. package/dist/adapters/prismaRows.cjs +0 -219
  142. package/dist/adapters/prismaRows.mjs +0 -209
  143. package/dist/apiKeys.cjs +0 -143
  144. package/dist/apiKeys.d.cts +0 -49
  145. package/dist/apiKeys.d.mts +0 -49
  146. package/dist/apiKeys.mjs +0 -133
  147. package/dist/db/createBundleDiff.cjs +0 -144
  148. package/dist/db/createBundleDiff.d.cts +0 -16
  149. package/dist/db/createBundleDiff.d.mts +0 -16
  150. package/dist/db/createBundleDiff.mjs +0 -141
  151. package/dist/db/databasePluginCore.cjs +0 -137
  152. package/dist/db/databasePluginCore.mjs +0 -137
  153. package/dist/db/fixedMigrator.cjs +0 -79
  154. package/dist/db/fixedMigrator.mjs +0 -78
  155. package/dist/db/fixedMigratorMongo.cjs +0 -321
  156. package/dist/db/fixedMigratorMongo.mjs +0 -321
  157. package/dist/db/fixedMigratorShared.cjs +0 -23
  158. package/dist/db/fixedMigratorShared.mjs +0 -18
  159. package/dist/db/index.cjs +0 -27
  160. package/dist/db/index.d.cts +0 -12
  161. package/dist/db/index.d.mts +0 -12
  162. package/dist/db/index.mjs +0 -22
  163. package/dist/db/mongoMigrationExecution.cjs +0 -11
  164. package/dist/db/mongoMigrationExecution.mjs +0 -11
  165. package/dist/db/releaseCatalog.d.cts +0 -16
  166. package/dist/db/releaseCatalog.d.mts +0 -16
  167. package/dist/db/schema/insightsCollation.cjs +0 -14
  168. package/dist/db/schema/insightsCollation.mjs +0 -14
  169. package/dist/db/schema/mongodb.cjs +0 -25
  170. package/dist/db/schema/mongodb.mjs +0 -25
  171. package/dist/db/schema/registry.cjs +0 -21
  172. package/dist/db/schema/registry.mjs +0 -17
  173. package/dist/db/schema/sql.cjs +0 -105
  174. package/dist/db/schema/sql.mjs +0 -97
  175. package/dist/db/schema/sqlOperations.cjs +0 -27
  176. package/dist/db/schema/sqlOperations.mjs +0 -26
  177. package/dist/db/schemaGenerators.cjs +0 -275
  178. package/dist/db/schemaGenerators.mjs +0 -273
  179. package/dist/db/schemaReadiness.cjs +0 -26
  180. package/dist/db/schemaReadiness.d.cts +0 -9
  181. package/dist/db/schemaReadiness.d.mts +0 -9
  182. package/dist/db/schemaReadiness.mjs +0 -25
  183. package/dist/db/sqlMigrationExecution.cjs +0 -67
  184. package/dist/db/sqlMigrationExecution.mjs +0 -67
  185. package/dist/db/types.cjs +0 -22
  186. package/dist/db/types.d.cts +0 -118
  187. package/dist/db/types.d.mts +0 -118
  188. package/dist/db/types.mjs +0 -19
  189. package/dist/handlerBundleRoutes.cjs +0 -155
  190. package/dist/handlerBundleRoutes.mjs +0 -155
  191. package/dist/handlerReleaseManagementRoutes.cjs +0 -124
  192. package/dist/handlerReleaseManagementRoutes.mjs +0 -124
  193. package/dist/insights/domain.d.cts +0 -89
  194. package/dist/insights/domain.d.mts +0 -89
  195. package/dist/insights/errors.cjs +0 -15
  196. package/dist/insights/errors.mjs +0 -14
  197. package/dist/insights/eventInput.cjs +0 -155
  198. package/dist/insights/eventInput.mjs +0 -153
  199. package/dist/insights/provider.cjs +0 -314
  200. package/dist/insights/provider.d.cts +0 -6
  201. package/dist/insights/provider.d.mts +0 -6
  202. package/dist/insights/provider.mjs +0 -314
  203. package/dist/insights/queryInput.cjs +0 -93
  204. package/dist/insights/queryInput.mjs +0 -91
  205. package/dist/insights/routes.cjs +0 -58
  206. package/dist/insights/routes.mjs +0 -56
  207. package/dist/insights/types.d.cts +0 -32
  208. package/dist/insights/types.d.mts +0 -32
  209. package/dist/schema/dsl.cjs +0 -103
  210. package/dist/schema/dsl.mjs +0 -87
  211. package/dist/schema/index.cjs +0 -20
  212. package/dist/schema/index.mjs +0 -7
  213. package/dist/schema/settings.cjs +0 -9
  214. package/dist/schema/settings.mjs +0 -9
  215. package/dist/schema/types.cjs +0 -8
  216. package/dist/schema/types.mjs +0 -6
  217. package/dist/schema/v1_0_0.cjs +0 -406
  218. package/dist/schema/v1_0_0.mjs +0 -398
  219. package/src/adapters/databaseConstraintErrors.ts +0 -25
  220. package/src/adapters/databasePluginTestDatabase.ts +0 -120
  221. package/src/adapters/databasePluginUtils.spec.ts +0 -29
  222. package/src/adapters/databasePluginUtils.ts +0 -214
  223. package/src/adapters/drizzle.spec.ts +0 -336
  224. package/src/adapters/drizzle.ts +0 -162
  225. package/src/adapters/drizzleCrud.ts +0 -571
  226. package/src/adapters/drizzleLazyDB.ts +0 -271
  227. package/src/adapters/drizzleQuery.ts +0 -164
  228. package/src/adapters/insightsTransaction.ts +0 -32
  229. package/src/adapters/kysely.spec.ts +0 -174
  230. package/src/adapters/kysely.ts +0 -110
  231. package/src/adapters/kyselyCrud.ts +0 -709
  232. package/src/adapters/kyselyQuery.ts +0 -128
  233. package/src/adapters/mongodb.integration.spec.ts +0 -210
  234. package/src/adapters/mongodb.spec.ts +0 -209
  235. package/src/adapters/mongodb.ts +0 -138
  236. package/src/adapters/mongodbCollections.ts +0 -67
  237. package/src/adapters/mongodbQuery.ts +0 -255
  238. package/src/adapters/mongodbReads.ts +0 -380
  239. package/src/adapters/mongodbRows.spec.ts +0 -64
  240. package/src/adapters/mongodbRows.ts +0 -118
  241. package/src/adapters/mongodbTestClient.ts +0 -377
  242. package/src/adapters/mongodbTestFilter.ts +0 -169
  243. package/src/adapters/mongodbWrites.ts +0 -287
  244. package/src/adapters/prisma.spec.ts +0 -293
  245. package/src/adapters/prisma.ts +0 -565
  246. package/src/adapters/prismaQuery.ts +0 -129
  247. package/src/adapters/prismaRows.spec.ts +0 -98
  248. package/src/adapters/prismaRows.ts +0 -337
  249. package/src/adapters/prismaTestClient.ts +0 -413
  250. package/src/apiKeys.integration.spec.ts +0 -192
  251. package/src/apiKeys.spec.ts +0 -162
  252. package/src/apiKeys.ts +0 -220
  253. package/src/calculatePagination.ts +0 -34
  254. package/src/createHotUpdaterCore.ts +0 -246
  255. package/src/db/bundleRows.spec.ts +0 -164
  256. package/src/db/bundleRows.ts +0 -10
  257. package/src/db/createBundleDiff.spec.ts +0 -450
  258. package/src/db/createBundleDiff.ts +0 -364
  259. package/src/db/databasePluginCore.spec.ts +0 -62
  260. package/src/db/databasePluginCore.testFixtures.ts +0 -76
  261. package/src/db/databasePluginCore.ts +0 -185
  262. package/src/db/databasePluginUpdateCheck.bench.ts +0 -110
  263. package/src/db/fixedMigrator.spec.ts +0 -296
  264. package/src/db/fixedMigrator.ts +0 -147
  265. package/src/db/fixedMigratorMongo.spec.ts +0 -239
  266. package/src/db/fixedMigratorMongo.ts +0 -425
  267. package/src/db/fixedMigratorShared.ts +0 -36
  268. package/src/db/hotUpdaterSchema.ts +0 -5
  269. package/src/db/index.spec.ts +0 -1269
  270. package/src/db/index.ts +0 -47
  271. package/src/db/mongoMigrationExecution.ts +0 -23
  272. package/src/db/node-sqlite.d.ts +0 -25
  273. package/src/db/releaseCatalog.ts +0 -148
  274. package/src/db/schema/definitions.ts +0 -1
  275. package/src/db/schema/insightsCollation.ts +0 -21
  276. package/src/db/schema/mongodb.ts +0 -40
  277. package/src/db/schema/registry.ts +0 -55
  278. package/src/db/schema/sql.ts +0 -244
  279. package/src/db/schema/sqlOperations.ts +0 -63
  280. package/src/db/schema/types.ts +0 -1
  281. package/src/db/schemaGenerators.ts +0 -494
  282. package/src/db/schemaReadiness.ts +0 -34
  283. package/src/db/sqlMigrationExecution.spec.ts +0 -65
  284. package/src/db/sqlMigrationExecution.ts +0 -108
  285. package/src/db/types.spec.ts +0 -63
  286. package/src/db/types.ts +0 -228
  287. package/src/db/updateArtifacts.spec.ts +0 -359
  288. package/src/db/updateArtifacts.ts +0 -541
  289. package/src/handler-standalone.integration.spec.ts +0 -528
  290. package/src/handler.spec.ts +0 -190
  291. package/src/handler.testFixtures.ts +0 -30
  292. package/src/handler.ts +0 -245
  293. package/src/handlerAuth.integration.spec.ts +0 -33
  294. package/src/handlerBundleRoutes.ts +0 -259
  295. package/src/handlerErrors.ts +0 -7
  296. package/src/handlerManagement.spec.ts +0 -262
  297. package/src/handlerParameters.ts +0 -105
  298. package/src/handlerReleaseCatalogRoutes.ts +0 -154
  299. package/src/handlerReleaseManagementRoutes.ts +0 -213
  300. package/src/handlerTypes.ts +0 -96
  301. package/src/handlerVersionRoutes.ts +0 -12
  302. package/src/index.ts +0 -30
  303. package/src/insights/domain.ts +0 -103
  304. package/src/insights/errors.ts +0 -11
  305. package/src/insights/eventInput.ts +0 -225
  306. package/src/insights/insights.integration.spec.ts +0 -381
  307. package/src/insights/provider.spec.ts +0 -385
  308. package/src/insights/provider.ts +0 -591
  309. package/src/insights/queryInput.ts +0 -141
  310. package/src/insights/routes.ts +0 -104
  311. package/src/insights/types.ts +0 -55
  312. package/src/internalRouter.ts +0 -104
  313. package/src/node.spec.ts +0 -119
  314. package/src/node.ts +0 -111
  315. package/src/releaseCatalogRoutes.integration.spec.ts +0 -238
  316. package/src/runtime.spec.ts +0 -194
  317. package/src/runtime.testFixtures.ts +0 -71
  318. package/src/schema/dsl-all-versions.spec.ts +0 -37
  319. package/src/schema/dsl.ts +0 -187
  320. package/src/schema/index.ts +0 -10
  321. package/src/schema/settings.ts +0 -15
  322. package/src/schema/types.ts +0 -79
  323. package/src/schema/v1_0_0.spec.ts +0 -220
  324. package/src/schema/v1_0_0.ts +0 -529
  325. package/src/storageAccess.spec.ts +0 -152
  326. package/src/storageAccess.ts +0 -141
  327. package/src/types/index.ts +0 -34
  328. package/src/version.ts +0 -3
@@ -1,406 +0,0 @@
1
- const require_types = require("./types.cjs");
2
- const require_dsl = require("./dsl.cjs");
3
- const require_settings = require("./settings.cjs");
4
- //#region src/schema/v1_0_0.ts
5
- const channelIdentityCollations = {
6
- mysql: "utf8mb4_bin",
7
- mssql: "Latin1_General_100_BIN2_SC",
8
- sqlite: "binary"
9
- };
10
- const catalogKeyCollations = {
11
- mysql: "ascii_bin",
12
- mssql: "Latin1_General_100_BIN2",
13
- sqlite: "binary"
14
- };
15
- const channelsV100 = require_dsl.table("channels", {
16
- id: require_dsl.idColumn("id", require_dsl.varchar(255)).collate(channelIdentityCollations),
17
- name: require_dsl.column("name", require_dsl.varchar(255)).collate(channelIdentityCollations)
18
- }, {
19
- indexes: [require_dsl.uniqueIndex("channels_name_key", ["name"])],
20
- checks: [require_dsl.check({
21
- name: "channels_id_length_check",
22
- expression: "char_length(id) between 1 and 255",
23
- providerExpressions: {
24
- mssql: "len(id collate Latin1_General_100_BIN2_SC + N'#') - 1 between 1 and 255",
25
- sqlite: "length(id) between 1 and 255"
26
- },
27
- sqliteInline: true
28
- }), require_dsl.check({
29
- name: "channels_name_length_check",
30
- expression: "char_length(name) between 1 and 255",
31
- providerExpressions: {
32
- mssql: "len(name collate Latin1_General_100_BIN2_SC + N'#') - 1 between 1 and 255",
33
- sqlite: "length(name) between 1 and 255"
34
- },
35
- sqliteInline: true
36
- })]
37
- });
38
- const bundlePatchesV100 = require_dsl.table("bundle_patches", {
39
- id: require_dsl.idColumn("id", require_dsl.varchar(255)),
40
- bundle_id: require_dsl.uuid("bundle_id"),
41
- base_bundle_id: require_dsl.uuid("base_bundle_id"),
42
- base_file_hash: require_dsl.column("base_file_hash", "string"),
43
- patch_file_hash: require_dsl.column("patch_file_hash", "string"),
44
- patch_storage_uri: require_dsl.column("patch_storage_uri", "string"),
45
- byte_size: require_dsl.float("byte_size"),
46
- order_index: require_dsl.integer("order_index").defaultTo(0)
47
- }, {
48
- indexes: [require_dsl.index("bundle_patches_bundle_id_idx", ["bundle_id"]), require_dsl.index("bundle_patches_base_bundle_id_idx", ["base_bundle_id"])],
49
- foreignKeys: [require_dsl.foreignKey("bundle_patches_bundle_id_fk", ["bundle_id"], "bundles", ["id"]), require_dsl.foreignKey("bundle_patches_base_bundle_id_fk", ["base_bundle_id"], "bundles", ["id"])],
50
- relations: [require_dsl.relation({
51
- name: "bundle",
52
- fieldName: "patches",
53
- targetFieldName: "bundle",
54
- relationName: "bundle_patches_bundles_patches",
55
- columns: ["bundle_id"],
56
- referencedTable: "bundles",
57
- referencedColumns: ["id"]
58
- }), require_dsl.relation({
59
- name: "baseBundle",
60
- fieldName: "baseForPatches",
61
- targetFieldName: "baseBundle",
62
- relationName: "bundle_patches_bundles_baseForPatches",
63
- columns: ["base_bundle_id"],
64
- referencedTable: "bundles",
65
- referencedColumns: ["id"]
66
- })],
67
- checks: [require_dsl.check({
68
- name: "bundle_patches_byte_size_check",
69
- expression: "byte_size >= 0 and byte_size <= 9007199254740991",
70
- sqliteInline: true
71
- })]
72
- });
73
- const apiKeysV100 = require_dsl.table("api_keys", {
74
- id: require_dsl.idColumn("id", require_dsl.varchar(255)),
75
- hash: require_dsl.stringColumn("hash"),
76
- name: require_dsl.stringColumn("name"),
77
- prefix: require_dsl.stringColumn("prefix"),
78
- role: require_dsl.stringColumn("role"),
79
- created_at_ms: require_dsl.float("created_at_ms"),
80
- revoked_at_ms: require_dsl.float("revoked_at_ms").nullable()
81
- }, {
82
- indexes: [require_dsl.uniqueIndex("api_keys_hash_key", ["hash"]), require_dsl.index("api_keys_created_at_idx", ["created_at_ms", "id"])],
83
- checks: [
84
- require_dsl.check({
85
- name: "api_keys_role_check",
86
- expression: "role = 'client'",
87
- sqliteInline: true
88
- }),
89
- require_dsl.check({
90
- name: "api_keys_created_at_check",
91
- expression: "created_at_ms >= 0",
92
- sqliteInline: true
93
- }),
94
- require_dsl.check({
95
- name: "api_keys_revoked_at_check",
96
- expression: "revoked_at_ms is null or revoked_at_ms >= 0",
97
- sqliteInline: true
98
- })
99
- ]
100
- });
101
- const bundlesV100 = require_dsl.table("bundles", {
102
- id: require_dsl.idColumn("id", "uuid"),
103
- platform: require_dsl.stringColumn("platform"),
104
- file_hash: require_dsl.stringColumn("file_hash"),
105
- git_commit_hash: require_dsl.stringColumn("git_commit_hash").nullable(),
106
- storage_uri: require_dsl.stringColumn("storage_uri"),
107
- archive_byte_size: require_dsl.float("archive_byte_size"),
108
- metadata: require_dsl.json("metadata").defaultTo({}),
109
- manifest_storage_uri: require_dsl.stringColumn("manifest_storage_uri").nullable(),
110
- manifest_file_hash: require_dsl.stringColumn("manifest_file_hash").nullable(),
111
- asset_base_storage_uri: require_dsl.stringColumn("asset_base_storage_uri").nullable()
112
- }, {
113
- indexes: [require_dsl.index("bundles_platform_idx", ["platform"], ["mongodb"])],
114
- checks: [require_dsl.check({
115
- name: "bundles_archive_byte_size_check",
116
- expression: "archive_byte_size >= 0 and archive_byte_size <= 9007199254740991",
117
- sqliteInline: true
118
- })]
119
- });
120
- const releasesV100 = require_dsl.table("releases", {
121
- id: require_dsl.idColumn("id", "uuid"),
122
- revision: require_dsl.integer("revision"),
123
- scope_key: require_dsl.column("scope_key", require_dsl.varchar(2048)).collate(catalogKeyCollations),
124
- channel_id: require_dsl.column("channel_id", require_dsl.varchar(255)).collate(channelIdentityCollations),
125
- platform: require_dsl.stringColumn("platform"),
126
- kind: require_dsl.stringColumn("kind"),
127
- bundle_id: require_dsl.column("bundle_id", "uuid").nullable(),
128
- strategy: require_dsl.stringColumn("strategy"),
129
- target_app_version: require_dsl.stringColumn("target_app_version").nullable(),
130
- fingerprint_hash: require_dsl.stringColumn("fingerprint_hash").nullable(),
131
- enabled: require_dsl.bool("enabled"),
132
- should_force_update: require_dsl.bool("should_force_update"),
133
- message: require_dsl.stringColumn("message").nullable(),
134
- rollout_cohort_count: require_dsl.integer("rollout_cohort_count").defaultTo(1e3),
135
- target_cohorts: require_dsl.json("target_cohorts").defaultTo([]),
136
- operation: require_dsl.stringColumn("operation"),
137
- source_release_id: require_dsl.column("source_release_id", "uuid").nullable(),
138
- created_at_ms: require_dsl.float("created_at_ms"),
139
- updated_at_ms: require_dsl.float("updated_at_ms")
140
- }, {
141
- indexes: [
142
- require_dsl.index("releases_scope_order_idx", ["scope_key", "id"]),
143
- require_dsl.index("releases_channel_platform_order_idx", [
144
- "channel_id",
145
- "platform",
146
- "id"
147
- ]),
148
- require_dsl.index("releases_bundle_id_idx", ["bundle_id"]),
149
- require_dsl.index("releases_fingerprint_hash_idx", ["fingerprint_hash"]),
150
- require_dsl.index("releases_enabled_idx", ["enabled"])
151
- ],
152
- checks: [
153
- require_dsl.check({
154
- name: "releases_revision_check",
155
- expression: "revision >= 1",
156
- sqliteInline: true
157
- }),
158
- require_dsl.check({
159
- name: "releases_kind_bundle_check",
160
- expression: "(kind = 'BUNDLE' and bundle_id is not null) or (kind = 'EMBEDDED' and bundle_id is null)",
161
- sqliteInline: true
162
- }),
163
- require_dsl.check({
164
- name: "releases_strategy_target_check",
165
- expression: "(strategy = 'APP_VERSION' and target_app_version is not null and fingerprint_hash is null) or (strategy = 'FINGERPRINT' and target_app_version is null and fingerprint_hash is not null)",
166
- sqliteInline: true
167
- }),
168
- require_dsl.check({
169
- name: "releases_rollout_cohort_count_check",
170
- expression: "rollout_cohort_count >= 0 and rollout_cohort_count <= 1000",
171
- sqliteInline: true
172
- }),
173
- require_dsl.check({
174
- name: "releases_operation_check",
175
- expression: "operation in ('DEPLOY', 'PROMOTE', 'ROLLBACK')",
176
- sqliteInline: true
177
- })
178
- ],
179
- foreignKeys: [
180
- require_dsl.foreignKey("releases_channel_id_fk", ["channel_id"], "channels", ["id"], { onDelete: "restrict" }),
181
- require_dsl.foreignKey("releases_bundle_id_fk", ["bundle_id"], "bundles", ["id"], { onDelete: "restrict" }),
182
- require_dsl.foreignKey("releases_source_release_id_fk", ["source_release_id"], "releases", ["id"], { onDelete: "set null" })
183
- ],
184
- relations: [
185
- require_dsl.relation({
186
- name: "channelRecord",
187
- fieldName: "releases",
188
- targetFieldName: "channelRecord",
189
- relationName: "releases_channels",
190
- columns: ["channel_id"],
191
- referencedTable: "channels",
192
- referencedColumns: ["id"]
193
- }),
194
- require_dsl.relation({
195
- name: "bundle",
196
- fieldName: "releases",
197
- targetFieldName: "bundle",
198
- relationName: "releases_bundles",
199
- columns: ["bundle_id"],
200
- referencedTable: "bundles",
201
- referencedColumns: ["id"]
202
- }),
203
- require_dsl.relation({
204
- name: "sourceRelease",
205
- fieldName: "derivedReleases",
206
- targetFieldName: "sourceRelease",
207
- relationName: "releases_source_release",
208
- columns: ["source_release_id"],
209
- referencedTable: "releases",
210
- referencedColumns: ["id"]
211
- })
212
- ]
213
- });
214
- const releaseCatalogsV100 = require_dsl.table("release_catalogs", {
215
- scope_key: require_dsl.idColumn("scope_key", require_dsl.varchar(2048)).collate(catalogKeyCollations),
216
- catalog_id: require_dsl.column("catalog_id", require_dsl.varchar(255)),
217
- strategy: require_dsl.stringColumn("strategy"),
218
- channel_id: require_dsl.column("channel_id", require_dsl.varchar(255)).collate(channelIdentityCollations),
219
- channel_key: require_dsl.column("channel_key", require_dsl.varchar(1400)).collate(catalogKeyCollations),
220
- platform: require_dsl.stringColumn("platform"),
221
- fingerprint_hash: require_dsl.stringColumn("fingerprint_hash").nullable(),
222
- generation: require_dsl.float("generation"),
223
- payload: require_dsl.largeString("payload"),
224
- catalog_hash: require_dsl.column("catalog_hash", require_dsl.varchar(71)),
225
- byte_size: require_dsl.integer("byte_size"),
226
- is_tombstone: require_dsl.bool("is_tombstone"),
227
- updated_at_ms: require_dsl.float("updated_at_ms")
228
- }, {
229
- indexes: [require_dsl.index("release_catalogs_channel_idx", ["channel_id"])],
230
- checks: [
231
- require_dsl.check({
232
- name: "release_catalogs_strategy_target_check",
233
- expression: "(strategy = 'APP_VERSION' and fingerprint_hash is null) or (strategy = 'FINGERPRINT' and fingerprint_hash is not null)",
234
- sqliteInline: true
235
- }),
236
- require_dsl.check({
237
- name: "release_catalogs_generation_check",
238
- expression: "generation >= 1 and generation <= 9007199254740991",
239
- sqliteInline: true
240
- }),
241
- require_dsl.check({
242
- name: "release_catalogs_byte_size_check",
243
- expression: "byte_size >= 0 and byte_size <= 262144",
244
- sqliteInline: true
245
- })
246
- ],
247
- foreignKeys: [require_dsl.foreignKey("release_catalogs_channel_id_fk", ["channel_id"], "channels", ["id"], { onDelete: "restrict" })],
248
- relations: [require_dsl.relation({
249
- name: "channelRecord",
250
- fieldName: "releaseCatalogs",
251
- targetFieldName: "channelRecord",
252
- relationName: "release_catalogs_channels",
253
- columns: ["channel_id"],
254
- referencedTable: "channels",
255
- referencedColumns: ["id"]
256
- })]
257
- });
258
- const insightsTextCollations = {
259
- postgresql: "\"C\"",
260
- mysql: "utf8mb4_0900_bin"
261
- };
262
- const insightsProviders = [
263
- "postgresql",
264
- "mysql",
265
- "sqlite",
266
- "cockroachdb",
267
- "mongodb"
268
- ];
269
- const bundleEventsV100 = require_dsl.table("bundle_events", {
270
- id: require_dsl.idColumn("id", "uuid"),
271
- type: require_dsl.column("type", require_dsl.varchar(32)),
272
- install_id: require_dsl.column("install_id", require_dsl.varchar(255)).collate(insightsTextCollations),
273
- user_id: require_dsl.column("user_id", require_dsl.varchar(255)).collate(insightsTextCollations).nullable(),
274
- username: require_dsl.stringColumn("username").nullable(),
275
- from_release_id: require_dsl.uuid("from_release_id").nullable(),
276
- from_bundle_id: require_dsl.uuid("from_bundle_id").nullable(),
277
- to_release_id: require_dsl.uuid("to_release_id").nullable(),
278
- to_bundle_id: require_dsl.uuid("to_bundle_id"),
279
- platform: require_dsl.stringColumn("platform").collate(insightsTextCollations),
280
- app_version: require_dsl.stringColumn("app_version"),
281
- channel: require_dsl.stringColumn("channel").collate(insightsTextCollations),
282
- cohort: require_dsl.stringColumn("cohort"),
283
- update_strategy: require_dsl.stringColumn("update_strategy").nullable(),
284
- fingerprint_hash: require_dsl.stringColumn("fingerprint_hash").nullable(),
285
- sdk_version: require_dsl.stringColumn("sdk_version").nullable(),
286
- received_at_ms: require_dsl.float("received_at_ms")
287
- }, {
288
- indexes: [
289
- require_dsl.index("bundle_events_received_at_idx", ["received_at_ms", "id"]),
290
- require_dsl.index("bundle_events_install_idx", [
291
- "install_id",
292
- "type",
293
- "received_at_ms",
294
- "id"
295
- ]),
296
- require_dsl.index("bundle_events_from_bundle_idx", [
297
- "type",
298
- "platform",
299
- "channel",
300
- "from_bundle_id",
301
- "received_at_ms",
302
- "id"
303
- ], insightsProviders),
304
- require_dsl.index("bundle_events_to_bundle_idx", [
305
- "type",
306
- "platform",
307
- "channel",
308
- "to_bundle_id",
309
- "received_at_ms",
310
- "id"
311
- ], insightsProviders)
312
- ],
313
- checks: [
314
- require_dsl.check({
315
- name: "bundle_events_type_check",
316
- expression: "type in ('UPDATE_APPLIED', 'RECOVERED', 'RELEASE_ADOPTED', 'UNCHANGED')",
317
- sqliteInline: true
318
- }),
319
- require_dsl.check({
320
- name: "bundle_events_platform_check",
321
- expression: "platform in ('ios', 'android')",
322
- sqliteInline: true
323
- }),
324
- require_dsl.check({
325
- name: "bundle_events_shape_check",
326
- expression: "((type in ('UPDATE_APPLIED', 'RECOVERED', 'RELEASE_ADOPTED')) and from_bundle_id is not null and update_strategy is not null and update_strategy in ('fingerprint', 'appVersion')) or (type = 'UNCHANGED' and from_bundle_id is null and update_strategy is null)",
327
- sqliteInline: true
328
- }),
329
- require_dsl.check({
330
- name: "bundle_events_received_at_check",
331
- expression: "received_at_ms >= 0",
332
- sqliteInline: true
333
- })
334
- ]
335
- });
336
- const bundleInstallationsV100 = require_dsl.table("bundle_installations", {
337
- install_id: require_dsl.idColumn("install_id", require_dsl.varchar(255)).collate(insightsTextCollations),
338
- id: require_dsl.uuid("id"),
339
- user_id: require_dsl.column("user_id", require_dsl.varchar(255)).collate(insightsTextCollations).nullable(),
340
- username: require_dsl.stringColumn("username").nullable(),
341
- to_bundle_id: require_dsl.uuid("to_bundle_id"),
342
- type: require_dsl.column("type", require_dsl.varchar(32)),
343
- platform: require_dsl.stringColumn("platform").collate(insightsTextCollations),
344
- app_version: require_dsl.stringColumn("app_version"),
345
- channel: require_dsl.stringColumn("channel").collate(insightsTextCollations),
346
- cohort: require_dsl.stringColumn("cohort"),
347
- received_at_ms: require_dsl.float("received_at_ms")
348
- }, {
349
- indexes: [
350
- require_dsl.index("bundle_installations_user_id_idx", ["user_id", "install_id"]),
351
- require_dsl.index("bundle_installations_received_at_idx", ["received_at_ms"]),
352
- require_dsl.index("bundle_installations_scope_idx", [
353
- "platform",
354
- "channel",
355
- "received_at_ms"
356
- ], insightsProviders),
357
- require_dsl.index("bundle_installations_bundle_idx", [
358
- "platform",
359
- "channel",
360
- "to_bundle_id",
361
- "received_at_ms"
362
- ], insightsProviders)
363
- ],
364
- checks: [
365
- require_dsl.check({
366
- name: "bundle_installations_type_check",
367
- expression: "type in ('UPDATE_APPLIED', 'RECOVERED', 'RELEASE_ADOPTED', 'UNCHANGED')",
368
- sqliteInline: true
369
- }),
370
- require_dsl.check({
371
- name: "bundle_installations_platform_check",
372
- expression: "platform in ('ios', 'android')",
373
- sqliteInline: true
374
- }),
375
- require_dsl.check({
376
- name: "bundle_installations_received_at_check",
377
- expression: "received_at_ms >= 0",
378
- sqliteInline: true
379
- })
380
- ]
381
- });
382
- const v1_0_0 = require_dsl.schema({
383
- version: "1.0.0",
384
- settingsTable: require_types.HOT_UPDATER_SETTINGS_TABLE,
385
- tables: [
386
- channelsV100,
387
- bundlesV100,
388
- bundlePatchesV100,
389
- releasesV100,
390
- releaseCatalogsV100,
391
- bundleEventsV100,
392
- bundleInstallationsV100,
393
- apiKeysV100,
394
- require_settings.createSettingsTable("1.0.0")
395
- ]
396
- });
397
- //#endregion
398
- exports.apiKeysV100 = apiKeysV100;
399
- exports.bundleEventsV100 = bundleEventsV100;
400
- exports.bundleInstallationsV100 = bundleInstallationsV100;
401
- exports.bundlePatchesV100 = bundlePatchesV100;
402
- exports.bundlesV100 = bundlesV100;
403
- exports.channelsV100 = channelsV100;
404
- exports.releaseCatalogsV100 = releaseCatalogsV100;
405
- exports.releasesV100 = releasesV100;
406
- exports.v1_0_0 = v1_0_0;