cnpmcore 4.0.2 → 4.1.0

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 (340) hide show
  1. package/README.md +5 -3
  2. package/dist/app/common/AbstractService.js +5 -9
  3. package/dist/app/common/CryptoUtil.js +9 -17
  4. package/dist/app/common/ErrorUtil.js +2 -5
  5. package/dist/app/common/FileUtil.js +22 -31
  6. package/dist/app/common/LogUtil.js +2 -5
  7. package/dist/app/common/PackageUtil.d.ts +1 -1
  8. package/dist/app/common/PackageUtil.js +27 -75
  9. package/dist/app/common/SyncUtil.js +2 -5
  10. package/dist/app/common/UserUtil.js +19 -64
  11. package/dist/app/common/adapter/BugVersionStore.d.ts +1 -1
  12. package/dist/app/common/adapter/BugVersionStore.js +6 -9
  13. package/dist/app/common/adapter/CacheAdapter.js +7 -10
  14. package/dist/app/common/adapter/NFSAdapter.js +18 -21
  15. package/dist/app/common/adapter/NPMRegistry.d.ts +1 -1
  16. package/dist/app/common/adapter/NPMRegistry.js +13 -16
  17. package/dist/app/common/adapter/binary/AbstractBinary.d.ts +2 -2
  18. package/dist/app/common/adapter/binary/AbstractBinary.js +7 -11
  19. package/dist/app/common/adapter/binary/ApiBinary.d.ts +1 -1
  20. package/dist/app/common/adapter/binary/ApiBinary.js +10 -13
  21. package/dist/app/common/adapter/binary/BucketBinary.d.ts +2 -2
  22. package/dist/app/common/adapter/binary/BucketBinary.js +14 -20
  23. package/dist/app/common/adapter/binary/ChromeForTestingBinary.d.ts +1 -1
  24. package/dist/app/common/adapter/binary/ChromeForTestingBinary.js +11 -14
  25. package/dist/app/common/adapter/binary/CypressBinary.d.ts +1 -1
  26. package/dist/app/common/adapter/binary/CypressBinary.js +9 -12
  27. package/dist/app/common/adapter/binary/EdgedriverBinary.d.ts +1 -1
  28. package/dist/app/common/adapter/binary/EdgedriverBinary.js +12 -18
  29. package/dist/app/common/adapter/binary/ElectronBinary.d.ts +3 -3
  30. package/dist/app/common/adapter/binary/ElectronBinary.js +13 -19
  31. package/dist/app/common/adapter/binary/GithubBinary.d.ts +2 -2
  32. package/dist/app/common/adapter/binary/GithubBinary.js +11 -17
  33. package/dist/app/common/adapter/binary/ImageminBinary.d.ts +2 -2
  34. package/dist/app/common/adapter/binary/ImageminBinary.js +11 -17
  35. package/dist/app/common/adapter/binary/NodeBinary.d.ts +2 -2
  36. package/dist/app/common/adapter/binary/NodeBinary.js +14 -20
  37. package/dist/app/common/adapter/binary/NodePreGypBinary.d.ts +2 -2
  38. package/dist/app/common/adapter/binary/NodePreGypBinary.js +14 -20
  39. package/dist/app/common/adapter/binary/NwjsBinary.d.ts +2 -2
  40. package/dist/app/common/adapter/binary/NwjsBinary.js +12 -18
  41. package/dist/app/common/adapter/binary/PlaywrightBinary.d.ts +1 -1
  42. package/dist/app/common/adapter/binary/PlaywrightBinary.js +13 -19
  43. package/dist/app/common/adapter/binary/PrismaBinary.d.ts +2 -2
  44. package/dist/app/common/adapter/binary/PrismaBinary.js +14 -20
  45. package/dist/app/common/adapter/binary/PuppeteerBinary.d.ts +1 -1
  46. package/dist/app/common/adapter/binary/PuppeteerBinary.js +10 -13
  47. package/dist/app/common/adapter/binary/SqlcipherBinary.d.ts +1 -1
  48. package/dist/app/common/adapter/binary/SqlcipherBinary.js +9 -12
  49. package/dist/app/common/adapter/changesStream/AbstractChangesStream.d.ts +2 -2
  50. package/dist/app/common/adapter/changesStream/AbstractChangesStream.js +7 -11
  51. package/dist/app/common/adapter/changesStream/CnpmcoreChangesStream.d.ts +2 -2
  52. package/dist/app/common/adapter/changesStream/CnpmcoreChangesStream.js +11 -14
  53. package/dist/app/common/adapter/changesStream/CnpmjsorgChangesStream.d.ts +2 -2
  54. package/dist/app/common/adapter/changesStream/CnpmjsorgChangesStream.js +11 -14
  55. package/dist/app/common/adapter/changesStream/NpmChangesStream.d.ts +2 -2
  56. package/dist/app/common/adapter/changesStream/NpmChangesStream.js +11 -14
  57. package/dist/app/common/aop/AsyncTimer.js +10 -13
  58. package/dist/app/common/constants.js +17 -20
  59. package/dist/app/common/dayjs.js +5 -10
  60. package/dist/app/common/enum/Binary.js +3 -6
  61. package/dist/app/common/enum/Hook.js +5 -8
  62. package/dist/app/common/enum/Registry.js +3 -6
  63. package/dist/app/common/enum/Task.js +5 -8
  64. package/dist/app/common/enum/User.js +5 -8
  65. package/dist/app/common/package.json +2 -1
  66. package/dist/app/common/typing.d.ts +1 -1
  67. package/dist/app/common/typing.js +1 -2
  68. package/dist/app/core/entity/Binary.d.ts +2 -2
  69. package/dist/app/core/entity/Binary.js +5 -9
  70. package/dist/app/core/entity/BugVersion.js +2 -6
  71. package/dist/app/core/entity/Change.d.ts +2 -2
  72. package/dist/app/core/entity/Change.js +5 -9
  73. package/dist/app/core/entity/Dist.d.ts +2 -2
  74. package/dist/app/core/entity/Dist.js +5 -9
  75. package/dist/app/core/entity/Entity.js +2 -6
  76. package/dist/app/core/entity/Hook.d.ts +3 -3
  77. package/dist/app/core/entity/Hook.js +7 -14
  78. package/dist/app/core/entity/HookEvent.d.ts +1 -1
  79. package/dist/app/core/entity/HookEvent.js +11 -15
  80. package/dist/app/core/entity/Package.d.ts +4 -3
  81. package/dist/app/core/entity/Package.js +14 -15
  82. package/dist/app/core/entity/PackageTag.d.ts +2 -2
  83. package/dist/app/core/entity/PackageTag.js +5 -9
  84. package/dist/app/core/entity/PackageVersion.d.ts +3 -3
  85. package/dist/app/core/entity/PackageVersion.js +7 -11
  86. package/dist/app/core/entity/PackageVersionBlock.d.ts +2 -2
  87. package/dist/app/core/entity/PackageVersionBlock.js +5 -9
  88. package/dist/app/core/entity/PackageVersionFile.d.ts +3 -3
  89. package/dist/app/core/entity/PackageVersionFile.js +5 -9
  90. package/dist/app/core/entity/PackageVersionManifest.d.ts +2 -2
  91. package/dist/app/core/entity/PackageVersionManifest.js +5 -9
  92. package/dist/app/core/entity/PaddingSemVer.js +5 -9
  93. package/dist/app/core/entity/ProxyCache.d.ts +3 -3
  94. package/dist/app/core/entity/ProxyCache.js +8 -12
  95. package/dist/app/core/entity/Registry.d.ts +3 -3
  96. package/dist/app/core/entity/Registry.js +5 -9
  97. package/dist/app/core/entity/Scope.d.ts +2 -2
  98. package/dist/app/core/entity/Scope.js +5 -9
  99. package/dist/app/core/entity/SqlRange.js +8 -12
  100. package/dist/app/core/entity/Task.d.ts +4 -4
  101. package/dist/app/core/entity/Task.js +46 -53
  102. package/dist/app/core/entity/Token.d.ts +2 -2
  103. package/dist/app/core/entity/Token.js +10 -18
  104. package/dist/app/core/entity/User.d.ts +2 -2
  105. package/dist/app/core/entity/User.js +7 -11
  106. package/dist/app/core/entity/WebauthnCredential.d.ts +2 -2
  107. package/dist/app/core/entity/WebauthnCredential.js +5 -9
  108. package/dist/app/core/event/BugVersionFixHandler.js +12 -15
  109. package/dist/app/core/event/CacheCleaner.js +39 -42
  110. package/dist/app/core/event/ChangesStream.d.ts +4 -4
  111. package/dist/app/core/event/ChangesStream.js +59 -62
  112. package/dist/app/core/event/StoreManifest.js +17 -20
  113. package/dist/app/core/event/SyncESPackage.d.ts +1 -1
  114. package/dist/app/core/event/SyncESPackage.js +22 -25
  115. package/dist/app/core/event/SyncPackageVersionFile.js +25 -28
  116. package/dist/app/core/event/index.d.ts +1 -1
  117. package/dist/app/core/event/index.js +13 -16
  118. package/dist/app/core/package.json +2 -1
  119. package/dist/app/core/service/BinarySyncerService.d.ts +7 -7
  120. package/dist/app/core/service/BinarySyncerService.js +44 -50
  121. package/dist/app/core/service/BugVersionService.d.ts +1 -1
  122. package/dist/app/core/service/BugVersionService.js +28 -34
  123. package/dist/app/core/service/CacheService.d.ts +2 -2
  124. package/dist/app/core/service/CacheService.js +15 -18
  125. package/dist/app/core/service/ChangesStreamService.d.ts +3 -3
  126. package/dist/app/core/service/ChangesStreamService.js +52 -58
  127. package/dist/app/core/service/CreateHookTriggerService.d.ts +2 -2
  128. package/dist/app/core/service/CreateHookTriggerService.js +39 -45
  129. package/dist/app/core/service/EventCorkerAdvice.js +7 -10
  130. package/dist/app/core/service/FixNoPaddingVersionService.js +14 -20
  131. package/dist/app/core/service/HomeService.d.ts +1 -1
  132. package/dist/app/core/service/HomeService.js +13 -16
  133. package/dist/app/core/service/HookManageService.d.ts +2 -2
  134. package/dist/app/core/service/HookManageService.js +20 -23
  135. package/dist/app/core/service/HookTriggerService.d.ts +3 -3
  136. package/dist/app/core/service/HookTriggerService.js +32 -35
  137. package/dist/app/core/service/PackageManagerService.d.ts +7 -7
  138. package/dist/app/core/service/PackageManagerService.js +98 -104
  139. package/dist/app/core/service/PackageSearchService.d.ts +4 -4
  140. package/dist/app/core/service/PackageSearchService.js +31 -37
  141. package/dist/app/core/service/PackageSyncerService.d.ts +6 -6
  142. package/dist/app/core/service/PackageSyncerService.js +92 -99
  143. package/dist/app/core/service/PackageVersionFileService.d.ts +4 -4
  144. package/dist/app/core/service/PackageVersionFileService.js +64 -69
  145. package/dist/app/core/service/PackageVersionService.d.ts +4 -1
  146. package/dist/app/core/service/PackageVersionService.js +41 -59
  147. package/dist/app/core/service/ProxyCacheService.d.ts +5 -6
  148. package/dist/app/core/service/ProxyCacheService.js +62 -69
  149. package/dist/app/core/service/RegistryManagerService.d.ts +3 -3
  150. package/dist/app/core/service/RegistryManagerService.js +33 -36
  151. package/dist/app/core/service/ScopeManagerService.d.ts +3 -3
  152. package/dist/app/core/service/ScopeManagerService.js +13 -16
  153. package/dist/app/core/service/TaskService.d.ts +7 -7
  154. package/dist/app/core/service/TaskService.js +28 -29
  155. package/dist/app/core/service/TokenService.d.ts +4 -4
  156. package/dist/app/core/service/TokenService.js +30 -36
  157. package/dist/app/core/service/UserService.d.ts +6 -6
  158. package/dist/app/core/service/UserService.js +43 -49
  159. package/dist/app/core/util/EntityUtil.d.ts +1 -1
  160. package/dist/app/core/util/EntityUtil.js +7 -13
  161. package/dist/app/infra/AuthAdapter.d.ts +1 -1
  162. package/dist/app/infra/AuthAdapter.js +12 -15
  163. package/dist/app/infra/NFSClientAdapter.d.ts +1 -1
  164. package/dist/app/infra/NFSClientAdapter.js +11 -17
  165. package/dist/app/infra/QueueAdapter.d.ts +1 -1
  166. package/dist/app/infra/QueueAdapter.js +9 -12
  167. package/dist/app/infra/SearchAdapter.d.ts +1 -1
  168. package/dist/app/infra/SearchAdapter.js +10 -13
  169. package/dist/app/infra/package.json +2 -1
  170. package/dist/app/port/UserRoleManager.d.ts +3 -3
  171. package/dist/app/port/UserRoleManager.js +30 -33
  172. package/dist/app/port/config.d.ts +3 -3
  173. package/dist/app/port/config.js +2 -6
  174. package/dist/app/port/controller/AbstractController.d.ts +8 -8
  175. package/dist/app/port/controller/AbstractController.js +33 -37
  176. package/dist/app/port/controller/AccessController.d.ts +1 -1
  177. package/dist/app/port/controller/AccessController.js +22 -25
  178. package/dist/app/port/controller/BinarySyncController.d.ts +2 -2
  179. package/dist/app/port/controller/BinarySyncController.js +42 -48
  180. package/dist/app/port/controller/ChangesStreamController.d.ts +1 -1
  181. package/dist/app/port/controller/ChangesStreamController.js +17 -20
  182. package/dist/app/port/controller/DownloadController.d.ts +1 -1
  183. package/dist/app/port/controller/DownloadController.js +30 -36
  184. package/dist/app/port/controller/HomeController.d.ts +2 -2
  185. package/dist/app/port/controller/HomeController.js +29 -31
  186. package/dist/app/port/controller/HookController.d.ts +5 -5
  187. package/dist/app/port/controller/HookController.js +43 -46
  188. package/dist/app/port/controller/PackageBlockController.d.ts +2 -2
  189. package/dist/app/port/controller/PackageBlockController.js +37 -40
  190. package/dist/app/port/controller/PackageSyncController.d.ts +5 -5
  191. package/dist/app/port/controller/PackageSyncController.js +64 -67
  192. package/dist/app/port/controller/PackageTagController.d.ts +1 -1
  193. package/dist/app/port/controller/PackageTagController.js +33 -36
  194. package/dist/app/port/controller/PackageVersionFileController.d.ts +1 -1
  195. package/dist/app/port/controller/PackageVersionFileController.js +56 -59
  196. package/dist/app/port/controller/ProxyCacheController.d.ts +7 -7
  197. package/dist/app/port/controller/ProxyCacheController.js +56 -58
  198. package/dist/app/port/controller/RegistryController.d.ts +7 -7
  199. package/dist/app/port/controller/RegistryController.js +57 -60
  200. package/dist/app/port/controller/ScopeController.d.ts +3 -3
  201. package/dist/app/port/controller/ScopeController.js +28 -31
  202. package/dist/app/port/controller/TokenController.d.ts +17 -17
  203. package/dist/app/port/controller/TokenController.js +52 -55
  204. package/dist/app/port/controller/UserController.d.ts +8 -8
  205. package/dist/app/port/controller/UserController.js +52 -55
  206. package/dist/app/port/controller/admin/PaddingVersionController.d.ts +1 -1
  207. package/dist/app/port/controller/admin/PaddingVersionController.js +14 -17
  208. package/dist/app/port/controller/convertor/HookConvertor.d.ts +4 -4
  209. package/dist/app/port/controller/convertor/HookConvertor.js +2 -6
  210. package/dist/app/port/controller/package/DownloadPackageVersionTar.d.ts +6 -6
  211. package/dist/app/port/controller/package/DownloadPackageVersionTar.js +69 -60
  212. package/dist/app/port/controller/package/RemovePackageVersionController.d.ts +1 -1
  213. package/dist/app/port/controller/package/RemovePackageVersionController.js +26 -29
  214. package/dist/app/port/controller/package/SavePackageVersionController.d.ts +9 -9
  215. package/dist/app/port/controller/package/SavePackageVersionController.js +57 -96
  216. package/dist/app/port/controller/package/SearchPackageController.d.ts +4 -4
  217. package/dist/app/port/controller/package/SearchPackageController.js +31 -34
  218. package/dist/app/port/controller/package/ShowPackageController.d.ts +1 -1
  219. package/dist/app/port/controller/package/ShowPackageController.js +32 -35
  220. package/dist/app/port/controller/package/ShowPackageVersionController.d.ts +2 -2
  221. package/dist/app/port/controller/package/ShowPackageVersionController.js +33 -36
  222. package/dist/app/port/controller/package/UpdatePackageController.d.ts +6 -6
  223. package/dist/app/port/controller/package/UpdatePackageController.js +25 -28
  224. package/dist/app/port/middleware/AdminAccess.js +6 -9
  225. package/dist/app/port/middleware/AlwaysAuth.js +4 -7
  226. package/dist/app/port/middleware/ErrorHandler.js +4 -7
  227. package/dist/app/port/middleware/Tracing.js +2 -5
  228. package/dist/app/port/middleware/index.js +10 -13
  229. package/dist/app/port/package.json +2 -1
  230. package/dist/app/port/schedule/ChangesStreamWorker.js +12 -15
  231. package/dist/app/port/schedule/CheckProxyCacheUpdateWorker.js +19 -21
  232. package/dist/app/port/schedule/CheckRecentlyUpdatedPackages.js +20 -23
  233. package/dist/app/port/schedule/CleanTempDir.js +23 -30
  234. package/dist/app/port/schedule/CreateSyncBinaryTask.js +13 -19
  235. package/dist/app/port/schedule/CreateTriggerHookWorker.js +18 -21
  236. package/dist/app/port/schedule/SavePackageVersionDownloadCounter.js +10 -13
  237. package/dist/app/port/schedule/SyncBinaryWorker.js +14 -17
  238. package/dist/app/port/schedule/SyncPackageWorker.js +14 -17
  239. package/dist/app/port/schedule/SyncProxyCacheWorker.js +14 -17
  240. package/dist/app/port/schedule/TaskTimeoutHandler.js +14 -17
  241. package/dist/app/port/schedule/TriggerHookWorker.js +18 -21
  242. package/dist/app/port/schedule/UpdateTotalData.js +32 -38
  243. package/dist/app/port/typebox.d.ts +73 -73
  244. package/dist/app/port/typebox.js +83 -90
  245. package/dist/app/port/webauth/WebauthController.d.ts +6 -6
  246. package/dist/app/port/webauth/WebauthController.js +91 -91
  247. package/dist/app/repository/AbstractRepository.js +4 -8
  248. package/dist/app/repository/BinaryRepository.d.ts +2 -2
  249. package/dist/app/repository/BinaryRepository.js +15 -18
  250. package/dist/app/repository/ChangeRepository.d.ts +3 -3
  251. package/dist/app/repository/ChangeRepository.js +11 -14
  252. package/dist/app/repository/DistRepository.d.ts +2 -2
  253. package/dist/app/repository/DistRepository.js +12 -15
  254. package/dist/app/repository/HookRepository.d.ts +2 -2
  255. package/dist/app/repository/HookRepository.js +14 -17
  256. package/dist/app/repository/PackageRepository.d.ts +8 -8
  257. package/dist/app/repository/PackageRepository.js +59 -62
  258. package/dist/app/repository/PackageVersionBlockRepository.d.ts +3 -3
  259. package/dist/app/repository/PackageVersionBlockRepository.js +14 -17
  260. package/dist/app/repository/PackageVersionDownloadRepository.d.ts +2 -2
  261. package/dist/app/repository/PackageVersionDownloadRepository.js +9 -12
  262. package/dist/app/repository/PackageVersionFileRepository.d.ts +2 -2
  263. package/dist/app/repository/PackageVersionFileRepository.js +19 -22
  264. package/dist/app/repository/PackageVersionRepository.d.ts +3 -3
  265. package/dist/app/repository/PackageVersionRepository.js +12 -15
  266. package/dist/app/repository/ProxyCacheRepository.d.ts +5 -5
  267. package/dist/app/repository/ProxyCacheRepository.js +16 -19
  268. package/dist/app/repository/RegistryRepository.d.ts +4 -4
  269. package/dist/app/repository/RegistryRepository.js +19 -22
  270. package/dist/app/repository/ScopeRepository.d.ts +4 -4
  271. package/dist/app/repository/ScopeRepository.js +19 -22
  272. package/dist/app/repository/SearchRepository.d.ts +1 -1
  273. package/dist/app/repository/SearchRepository.js +7 -10
  274. package/dist/app/repository/TaskRepository.d.ts +8 -8
  275. package/dist/app/repository/TaskRepository.js +31 -34
  276. package/dist/app/repository/UserRepository.d.ts +4 -4
  277. package/dist/app/repository/UserRepository.js +38 -41
  278. package/dist/app/repository/model/Binary.d.ts +1 -1
  279. package/dist/app/repository/model/Binary.js +17 -20
  280. package/dist/app/repository/model/Change.d.ts +1 -1
  281. package/dist/app/repository/model/Change.js +14 -17
  282. package/dist/app/repository/model/Dist.d.ts +1 -1
  283. package/dist/app/repository/model/Dist.js +16 -19
  284. package/dist/app/repository/model/HistoryTask.d.ts +2 -2
  285. package/dist/app/repository/model/HistoryTask.js +22 -25
  286. package/dist/app/repository/model/Hook.d.ts +2 -2
  287. package/dist/app/repository/model/Hook.js +19 -22
  288. package/dist/app/repository/model/Maintainer.d.ts +1 -1
  289. package/dist/app/repository/model/Maintainer.js +12 -15
  290. package/dist/app/repository/model/Package.d.ts +1 -1
  291. package/dist/app/repository/model/Package.js +21 -24
  292. package/dist/app/repository/model/PackageDep.d.ts +1 -1
  293. package/dist/app/repository/model/PackageDep.js +15 -18
  294. package/dist/app/repository/model/PackageTag.d.ts +1 -1
  295. package/dist/app/repository/model/PackageTag.js +14 -17
  296. package/dist/app/repository/model/PackageVersion.d.ts +1 -1
  297. package/dist/app/repository/model/PackageVersion.js +27 -30
  298. package/dist/app/repository/model/PackageVersionBlock.d.ts +1 -1
  299. package/dist/app/repository/model/PackageVersionBlock.js +14 -17
  300. package/dist/app/repository/model/PackageVersionDownload.d.ts +1 -1
  301. package/dist/app/repository/model/PackageVersionDownload.js +44 -47
  302. package/dist/app/repository/model/PackageVersionFile.d.ts +1 -1
  303. package/dist/app/repository/model/PackageVersionFile.js +19 -22
  304. package/dist/app/repository/model/PackageVersionManifest.d.ts +1 -1
  305. package/dist/app/repository/model/PackageVersionManifest.js +14 -17
  306. package/dist/app/repository/model/ProxyCache.d.ts +2 -2
  307. package/dist/app/repository/model/ProxyCache.js +15 -18
  308. package/dist/app/repository/model/Registry.d.ts +2 -2
  309. package/dist/app/repository/model/Registry.js +18 -21
  310. package/dist/app/repository/model/Scope.d.ts +1 -1
  311. package/dist/app/repository/model/Scope.js +13 -16
  312. package/dist/app/repository/model/Task.d.ts +2 -2
  313. package/dist/app/repository/model/Task.js +23 -26
  314. package/dist/app/repository/model/Token.d.ts +1 -1
  315. package/dist/app/repository/model/Token.js +23 -26
  316. package/dist/app/repository/model/TokenPackage.d.ts +1 -1
  317. package/dist/app/repository/model/TokenPackage.js +12 -15
  318. package/dist/app/repository/model/User.d.ts +1 -1
  319. package/dist/app/repository/model/User.js +18 -21
  320. package/dist/app/repository/model/WebauthnCredential.d.ts +1 -1
  321. package/dist/app/repository/model/WebauthnCredential.js +15 -18
  322. package/dist/app/repository/package.json +1 -3
  323. package/dist/app/repository/util/EntityProperty.js +6 -9
  324. package/dist/app/repository/util/ErrorUtil.js +2 -5
  325. package/dist/app/repository/util/ModelConvertor.d.ts +5 -5
  326. package/dist/app/repository/util/ModelConvertor.js +17 -24
  327. package/dist/app/repository/util/ModelConvertorUtil.js +5 -9
  328. package/dist/app/repository/util/leoric.d.ts +4 -0
  329. package/dist/app/repository/util/leoric.js +4 -0
  330. package/dist/app.d.ts +3 -3
  331. package/dist/app.js +9 -15
  332. package/dist/config/binaries.d.ts +8 -1
  333. package/dist/config/binaries.js +99 -94
  334. package/dist/config/config.default.d.ts +1 -1
  335. package/dist/config/config.default.js +69 -74
  336. package/dist/config/config.unittest.d.ts +1 -2
  337. package/dist/config/config.unittest.js +11 -16
  338. package/dist/config/database.js +20 -23
  339. package/dist/config/plugin.js +3 -5
  340. package/package.json +17 -16
@@ -1,12 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const Binary_1 = require("../app/common/enum/Binary");
1
+ import { BinaryType } from '../app/common/enum/Binary.js';
4
2
  const binaries = {
5
3
  // NwjsBinary
6
4
  nwjs: {
7
5
  category: 'nwjs',
8
6
  description: 'NW.js (previously known as node-webkit) lets you call all Node.js modules directly from DOM and enables a new way of writing applications with all Web technologies.',
9
- type: Binary_1.BinaryType.Nwjs,
7
+ type: BinaryType.Nwjs,
10
8
  repo: 'nwjs/nw.js',
11
9
  distUrl: 'https://dl.nwjs.io/',
12
10
  },
@@ -14,35 +12,35 @@ const binaries = {
14
12
  node: {
15
13
  category: 'node',
16
14
  description: 'Node.js® is a JavaScript runtime built on Chrome\'s V8 JavaScript engine.',
17
- type: Binary_1.BinaryType.Node,
15
+ type: BinaryType.Node,
18
16
  repo: 'nodejs/node',
19
17
  distUrl: 'https://nodejs.org/dist',
20
18
  },
21
19
  'node-rc': {
22
20
  category: 'node-rc',
23
21
  description: 'Node.js Release Candidate',
24
- type: Binary_1.BinaryType.Node,
22
+ type: BinaryType.Node,
25
23
  repo: 'nodejs/node',
26
24
  distUrl: 'https://nodejs.org/download/rc',
27
25
  },
28
26
  'node-nightly': {
29
27
  category: 'node-nightly',
30
28
  description: 'Node.js Nightly Build',
31
- type: Binary_1.BinaryType.Node,
29
+ type: BinaryType.Node,
32
30
  repo: 'nodejs/node',
33
31
  distUrl: 'https://nodejs.org/download/nightly',
34
32
  },
35
33
  'node-unofficial-builds': {
36
34
  category: 'node-unofficial-builds',
37
35
  description: 'Node.js unofficial-builds project https://unofficial-builds.nodejs.org/',
38
- type: Binary_1.BinaryType.Node,
36
+ type: BinaryType.Node,
39
37
  repo: 'nodejs/unofficial-builds',
40
38
  distUrl: 'https://unofficial-builds.nodejs.org/download/release',
41
39
  },
42
40
  alinode: {
43
41
  category: 'alinode',
44
42
  description: 'Node.js 性能平台(Node.js Performance Platform)是面向中大型 Node.js 应用提供性能监控、安全提醒、故障排查、性能优化等服务的整体性解决方案。凭借对 Node.js 内核深入的理解,我们提供完善的工具链和服务,协助客户主动、快速发现和定位线上问题。',
45
- type: Binary_1.BinaryType.Node,
43
+ type: BinaryType.Node,
46
44
  repo: '',
47
45
  distUrl: 'http://alinode.aliyun.com/dist/new-alinode',
48
46
  disable: true,
@@ -50,7 +48,7 @@ const binaries = {
50
48
  python: {
51
49
  category: 'python',
52
50
  description: 'The Python programming language https://www.python.org/',
53
- type: Binary_1.BinaryType.Node,
51
+ type: BinaryType.Node,
54
52
  repo: 'python/cpython',
55
53
  distUrl: 'https://www.python.org/ftp/python',
56
54
  ignoreFiles: [
@@ -65,7 +63,7 @@ const binaries = {
65
63
  cypress: {
66
64
  category: 'cypress',
67
65
  description: 'Fast, easy and reliable testing for anything that runs in a browser.',
68
- type: Binary_1.BinaryType.Cypress,
66
+ type: BinaryType.Cypress,
69
67
  repo: 'cypress-io/cypress',
70
68
  distUrl: 'https://www.cypress.io/',
71
69
  },
@@ -73,7 +71,7 @@ const binaries = {
73
71
  '@journeyapps/sqlcipher': {
74
72
  category: '@journeyapps/sqlcipher',
75
73
  description: 'SQLCipher bindings for Node',
76
- type: Binary_1.BinaryType.Sqlcipher,
74
+ type: BinaryType.Sqlcipher,
77
75
  repo: 'journeyapps/node-sqlcipher',
78
76
  distUrl: 'https://journeyapps-node-binary.s3.amazonaws.com',
79
77
  },
@@ -81,7 +79,7 @@ const binaries = {
81
79
  'chromium-browser-snapshots': {
82
80
  category: 'chromium-browser-snapshots',
83
81
  description: 'chromium-browser-snapshots sync for puppeteer',
84
- type: Binary_1.BinaryType.Puppeteer,
82
+ type: BinaryType.Puppeteer,
85
83
  repo: 'puppeteer/puppeteer',
86
84
  distUrl: 'https://chromium-browser-snapshots.storage.googleapis.com/?delimiter=/&prefix=',
87
85
  },
@@ -89,7 +87,7 @@ const binaries = {
89
87
  'chrome-for-testing': {
90
88
  category: 'chrome-for-testing',
91
89
  description: 'chrome-for-testing for puppeteer',
92
- type: Binary_1.BinaryType.ChromeForTesting,
90
+ type: BinaryType.ChromeForTesting,
93
91
  repo: 'puppeteer/puppeteer',
94
92
  distUrl: 'https://edgedl.me.gvt1.com/edgedl/chrome/chrome-for-testing/',
95
93
  },
@@ -97,42 +95,42 @@ const binaries = {
97
95
  'grpc-tools': {
98
96
  category: 'grpc-tools',
99
97
  description: 'Tools for developing with gRPC on Node.js',
100
- type: Binary_1.BinaryType.NodePreGyp,
98
+ type: BinaryType.NodePreGyp,
101
99
  repo: 'https://github.com/grpc/grpc-node/blob/master/packages/grpc-tools/',
102
100
  distUrl: 'https://node-precompiled-binaries.grpc.io',
103
101
  },
104
102
  grpc: {
105
103
  category: 'grpc',
106
104
  description: 'gRPC Library for Node',
107
- type: Binary_1.BinaryType.NodePreGyp,
105
+ type: BinaryType.NodePreGyp,
108
106
  repo: 'grpc/grpc-node',
109
107
  distUrl: 'https://node-precompiled-binaries.grpc.io',
110
108
  },
111
109
  'skia-canvas': {
112
110
  category: 'skia-canvas',
113
111
  description: 'A canvas environment for Node',
114
- type: Binary_1.BinaryType.GitHub,
112
+ type: BinaryType.GitHub,
115
113
  repo: 'samizdatco/skia-canvas',
116
114
  distUrl: 'https://github.com/samizdatco/skia-canvas/releases',
117
115
  },
118
116
  protobuf: {
119
117
  category: 'protobuf',
120
118
  description: 'Protocol Buffers - Google\'s data interchange format',
121
- type: Binary_1.BinaryType.GitHub,
119
+ type: BinaryType.GitHub,
122
120
  repo: 'protocolbuffers/protobuf',
123
121
  distUrl: 'https://github.com/protocolbuffers/protobuf/releases',
124
122
  },
125
123
  wrtc: {
126
124
  category: 'wrtc',
127
125
  description: 'node-webrtc is a Node.js Native Addon that provides bindings to WebRTC M87.',
128
- type: Binary_1.BinaryType.NodePreGyp,
126
+ type: BinaryType.NodePreGyp,
129
127
  repo: 'node-webrtc/node-webrtc',
130
128
  distUrl: 'https://node-webrtc.s3.amazonaws.com',
131
129
  },
132
130
  nodegit: {
133
131
  category: 'nodegit',
134
132
  description: 'Native Node bindings to Git.',
135
- type: Binary_1.BinaryType.NodePreGyp,
133
+ type: BinaryType.NodePreGyp,
136
134
  repo: 'nodegit/nodegit',
137
135
  distUrl: 'https://axonodegit.s3.amazonaws.com/nodegit',
138
136
  options: {
@@ -150,21 +148,21 @@ const binaries = {
150
148
  chromedriver: {
151
149
  category: 'chromedriver',
152
150
  description: 'WebDriver is an open source tool for automated testing of webapps across many browsers',
153
- type: Binary_1.BinaryType.Bucket,
151
+ type: BinaryType.Bucket,
154
152
  repo: 'https://chromedriver.chromium.org/contributing',
155
153
  distUrl: 'https://chromedriver.storage.googleapis.com/',
156
154
  },
157
155
  selenium: {
158
156
  category: 'selenium',
159
157
  description: 'Selenium automates browsers. That\'s it!',
160
- type: Binary_1.BinaryType.Bucket,
158
+ type: BinaryType.Bucket,
161
159
  repo: 'https://www.selenium.dev/',
162
160
  distUrl: 'https://selenium-release.storage.googleapis.com/',
163
161
  },
164
162
  'node-inspector': {
165
163
  category: 'node-inspector',
166
164
  description: 'Node.js debugger based on Blink Developer Tools',
167
- type: Binary_1.BinaryType.Bucket,
165
+ type: BinaryType.Bucket,
168
166
  repo: 'node-inspector/node-inspector',
169
167
  distUrl: 'https://node-inspector.s3.amazonaws.com/',
170
168
  ignoreDirs: [
@@ -174,35 +172,35 @@ const binaries = {
174
172
  fsevents: {
175
173
  category: 'fsevents',
176
174
  description: 'Native access to MacOS FSEvents in Node.js',
177
- type: Binary_1.BinaryType.Bucket,
175
+ type: BinaryType.Bucket,
178
176
  repo: 'fsevents/fsevents',
179
177
  distUrl: 'https://fsevents-binaries.s3-us-west-2.amazonaws.com/',
180
178
  },
181
179
  'tfjs-models': {
182
180
  category: 'tfjs-models',
183
181
  description: 'Pretrained models for TensorFlow.js',
184
- type: Binary_1.BinaryType.Bucket,
182
+ type: BinaryType.Bucket,
185
183
  repo: 'tensorflow/tfjs-models',
186
184
  distUrl: 'https://tfjs-models.storage.googleapis.com/',
187
185
  },
188
186
  tensorflow: {
189
187
  category: 'tensorflow',
190
188
  description: 'A WebGL accelerated JavaScript library for training and deploying ML models.',
191
- type: Binary_1.BinaryType.Bucket,
189
+ type: BinaryType.Bucket,
192
190
  repo: 'tensorflow/tfjs',
193
191
  distUrl: 'https://tensorflow.storage.googleapis.com/',
194
192
  },
195
193
  'tf-builds': {
196
194
  category: 'tf-builds',
197
195
  description: 'A WebGL accelerated JavaScript library for training and deploying ML models.',
198
- type: Binary_1.BinaryType.Bucket,
196
+ type: BinaryType.Bucket,
199
197
  repo: 'tensorflow/tfjs',
200
198
  distUrl: 'https://tf-builds.storage.googleapis.com/',
201
199
  },
202
200
  prisma: {
203
201
  category: 'prisma',
204
202
  description: 'Next-generation Node.js and TypeScript ORM https://www.prisma.io/',
205
- type: Binary_1.BinaryType.Prisma,
203
+ type: BinaryType.Prisma,
206
204
  repo: 'prisma/prisma',
207
205
  distUrl: 'https://list-binaries.prisma-orm.workers.dev/',
208
206
  },
@@ -210,7 +208,7 @@ const binaries = {
210
208
  'jpegtran-bin': {
211
209
  category: 'jpegtran-bin',
212
210
  description: 'jpegtran bin-wrapper that makes it seamlessly available as a local dependency',
213
- type: Binary_1.BinaryType.Imagemin,
211
+ type: BinaryType.Imagemin,
214
212
  repo: 'imagemin/jpegtran-bin',
215
213
  distUrl: 'https://raw.githubusercontent.com',
216
214
  options: {
@@ -235,7 +233,7 @@ const binaries = {
235
233
  'pngquant-bin': {
236
234
  category: 'pngquant-bin',
237
235
  description: 'pngquant bin-wrapper that makes it seamlessly available as a local dependency',
238
- type: Binary_1.BinaryType.Imagemin,
236
+ type: BinaryType.Imagemin,
239
237
  repo: 'imagemin/pngquant-bin',
240
238
  distUrl: 'https://raw.githubusercontent.com',
241
239
  options: {
@@ -258,7 +256,7 @@ const binaries = {
258
256
  'mozjpeg-bin': {
259
257
  category: 'mozjpeg-bin',
260
258
  description: 'mozjpeg bin-wrapper that makes it seamlessly available as a local dependency',
261
- type: Binary_1.BinaryType.Imagemin,
259
+ type: BinaryType.Imagemin,
262
260
  repo: 'imagemin/mozjpeg-bin',
263
261
  distUrl: 'https://raw.githubusercontent.com',
264
262
  options: {
@@ -284,7 +282,7 @@ const binaries = {
284
282
  'gifsicle-bin': {
285
283
  category: 'gifsicle-bin',
286
284
  description: 'gifsicle bin-wrapper that makes it seamlessly available as a local dependency',
287
- type: Binary_1.BinaryType.Imagemin,
285
+ type: BinaryType.Imagemin,
288
286
  repo: 'imagemin/gifsicle-bin',
289
287
  distUrl: 'https://raw.githubusercontent.com',
290
288
  options: {
@@ -310,7 +308,7 @@ const binaries = {
310
308
  'optipng-bin': {
311
309
  category: 'optipng-bin',
312
310
  description: 'optipng bin-wrapper that makes it seamlessly available as a local dependency',
313
- type: Binary_1.BinaryType.Imagemin,
311
+ type: BinaryType.Imagemin,
314
312
  repo: 'imagemin/optipng-bin',
315
313
  distUrl: 'https://raw.githubusercontent.com',
316
314
  options: {
@@ -336,7 +334,7 @@ const binaries = {
336
334
  'zopflipng-bin': {
337
335
  category: 'zopflipng-bin',
338
336
  description: 'zopflipng bin-wrapper that makes it seamlessly available as a local dependency',
339
- type: Binary_1.BinaryType.Imagemin,
337
+ type: BinaryType.Imagemin,
340
338
  repo: 'imagemin/zopflipng-bin',
341
339
  distUrl: 'https://raw.githubusercontent.com',
342
340
  options: {
@@ -358,7 +356,7 @@ const binaries = {
358
356
  'jpegoptim-bin': {
359
357
  category: 'jpegoptim-bin',
360
358
  description: 'jpegoptim bin-wrapper that makes it seamlessly available as a local dependency',
361
- type: Binary_1.BinaryType.Imagemin,
359
+ type: BinaryType.Imagemin,
362
360
  repo: 'imagemin/jpegoptim-bin',
363
361
  distUrl: 'https://raw.githubusercontent.com',
364
362
  options: {
@@ -380,7 +378,7 @@ const binaries = {
380
378
  'jpeg-recompress-bin': {
381
379
  category: 'jpeg-recompress-bin',
382
380
  description: 'jpeg-recompress bin-wrapper that makes it seamlessly available as a local dependency',
383
- type: Binary_1.BinaryType.Imagemin,
381
+ type: BinaryType.Imagemin,
384
382
  repo: 'imagemin/jpeg-recompress-bin',
385
383
  distUrl: 'https://raw.githubusercontent.com',
386
384
  options: {
@@ -402,7 +400,7 @@ const binaries = {
402
400
  'pngcrush-bin': {
403
401
  category: 'pngcrush-bin',
404
402
  description: 'pngcrush bin-wrapper that makes it seamlessly available as a local dependency',
405
- type: Binary_1.BinaryType.Imagemin,
403
+ type: BinaryType.Imagemin,
406
404
  repo: 'imagemin/pngcrush-bin',
407
405
  distUrl: 'https://raw.githubusercontent.com',
408
406
  options: {
@@ -424,7 +422,7 @@ const binaries = {
424
422
  'pngout-bin': {
425
423
  category: 'pngout-bin',
426
424
  description: 'pngout bin-wrapper that makes it seamlessly available as a local dependency',
427
- type: Binary_1.BinaryType.Imagemin,
425
+ type: BinaryType.Imagemin,
428
426
  repo: 'imagemin/pngout-bin',
429
427
  distUrl: 'https://raw.githubusercontent.com',
430
428
  options: {
@@ -448,7 +446,7 @@ const binaries = {
448
446
  'gif2webp-bin': {
449
447
  category: 'gif2webp-bin',
450
448
  description: 'gif2webp bin-wrapper that makes it seamlessly available as a local dependency',
451
- type: Binary_1.BinaryType.Imagemin,
449
+ type: BinaryType.Imagemin,
452
450
  repo: 'imagemin/gif2webp-bin',
453
451
  distUrl: 'https://raw.githubusercontent.com',
454
452
  options: {
@@ -469,7 +467,7 @@ const binaries = {
469
467
  'guetzli-bin': {
470
468
  category: 'guetzli-bin',
471
469
  description: 'guetzli bin-wrapper that makes it seamlessly available as a local dependency',
472
- type: Binary_1.BinaryType.Imagemin,
470
+ type: BinaryType.Imagemin,
473
471
  repo: 'imagemin/guetzli-bin',
474
472
  distUrl: 'https://raw.githubusercontent.com',
475
473
  options: {
@@ -492,7 +490,7 @@ const binaries = {
492
490
  'advpng-bin': {
493
491
  category: 'advpng-bin',
494
492
  description: 'advpng bin-wrapper that makes it seamlessly available as a local dependency',
495
- type: Binary_1.BinaryType.Imagemin,
493
+ type: BinaryType.Imagemin,
496
494
  repo: 'imagemin/advpng-bin',
497
495
  distUrl: 'https://raw.githubusercontent.com',
498
496
  options: {
@@ -513,7 +511,7 @@ const binaries = {
513
511
  'cwebp-bin': {
514
512
  category: 'cwebp-bin',
515
513
  description: 'cwebp bin-wrapper that makes it seamlessly available as a local dependency',
516
- type: Binary_1.BinaryType.Imagemin,
514
+ type: BinaryType.Imagemin,
517
515
  repo: 'imagemin/cwebp-bin',
518
516
  distUrl: 'https://raw.githubusercontent.com',
519
517
  options: {
@@ -535,7 +533,7 @@ const binaries = {
535
533
  npm: {
536
534
  category: 'npm',
537
535
  description: 'the package manager for JavaScript',
538
- type: Binary_1.BinaryType.GitHub,
536
+ type: BinaryType.GitHub,
539
537
  repo: 'npm/cli',
540
538
  distUrl: 'https://github.com/npm/cli/releases',
541
539
  options: {
@@ -545,28 +543,28 @@ const binaries = {
545
543
  xprofiler: {
546
544
  category: 'xprofiler',
547
545
  description: '🌀An addon for node.js, which supporting output performance log and real-time profiling through sampling.',
548
- type: Binary_1.BinaryType.GitHub,
546
+ type: BinaryType.GitHub,
549
547
  repo: 'X-Profiler/xprofiler',
550
548
  distUrl: 'https://github.com/X-Profiler/xprofiler/releases',
551
549
  },
552
550
  'node-sass': {
553
551
  category: 'node-sass',
554
552
  description: '🌈 Node.js bindings to libsass',
555
- type: Binary_1.BinaryType.GitHub,
553
+ type: BinaryType.GitHub,
556
554
  repo: 'sass/node-sass',
557
555
  distUrl: 'https://github.com/sass/node-sass/releases',
558
556
  },
559
557
  'sass-embedded': {
560
558
  category: 'sass-embedded',
561
559
  description: 'This is a wrapper for Dart Sass that implements the compiler side of the Embedded Sass protocol.',
562
- type: Binary_1.BinaryType.GitHub,
560
+ type: BinaryType.GitHub,
563
561
  repo: 'sass/dart-sass-embedded',
564
562
  distUrl: 'https://github.com/sass/dart-sass-embedded/releases',
565
563
  },
566
564
  electron: {
567
565
  category: 'electron',
568
566
  description: 'Build cross-platform desktop apps with JavaScript, HTML, and CSS',
569
- type: Binary_1.BinaryType.Electron,
567
+ type: BinaryType.Electron,
570
568
  repo: 'electron/electron',
571
569
  distUrl: 'https://github.com/electron/electron/releases',
572
570
  options: {
@@ -577,7 +575,7 @@ const binaries = {
577
575
  'electron-nightly': {
578
576
  category: 'electron-nightly',
579
577
  description: 'Build cross-platform desktop apps with JavaScript, HTML, and CSS',
580
- type: Binary_1.BinaryType.GitHub,
578
+ type: BinaryType.GitHub,
581
579
  repo: 'electron/nightlies',
582
580
  distUrl: 'https://github.com/electron/nightlies/releases',
583
581
  options: {
@@ -587,217 +585,217 @@ const binaries = {
587
585
  'electron-builder-binaries': {
588
586
  category: 'electron-builder-binaries',
589
587
  description: 'electron-builder downloads required tools files on demand (e.g. to code sign windows application, to make AppX).',
590
- type: Binary_1.BinaryType.GitHub,
588
+ type: BinaryType.GitHub,
591
589
  repo: 'electron-userland/electron-builder-binaries',
592
590
  distUrl: 'https://github.com/electron-userland/electron-builder-binaries/releases',
593
591
  },
594
592
  'ffmpeg-static': {
595
593
  category: 'ffmpeg-static',
596
594
  description: 'ffmpeg static binaries for Mac OSX and Linux and Windows',
597
- type: Binary_1.BinaryType.GitHub,
595
+ type: BinaryType.GitHub,
598
596
  repo: 'eugeneware/ffmpeg-static',
599
597
  distUrl: 'https://github.com/eugeneware/ffmpeg-static/releases',
600
598
  },
601
599
  nodejieba: {
602
600
  category: 'nodejieba',
603
601
  description: '"结巴"中文分词的Node.js版本',
604
- type: Binary_1.BinaryType.GitHub,
602
+ type: BinaryType.GitHub,
605
603
  repo: 'yanyiwu/nodejieba',
606
604
  distUrl: 'https://github.com/yanyiwu/nodejieba/releases',
607
605
  },
608
606
  'git-for-windows': {
609
607
  category: 'git-for-windows',
610
608
  description: 'A fork of Git containing Windows-specific patches.',
611
- type: Binary_1.BinaryType.GitHub,
609
+ type: BinaryType.GitHub,
612
610
  repo: 'git-for-windows/git',
613
611
  distUrl: 'https://github.com/git-for-windows/git/releases',
614
612
  },
615
613
  atom: {
616
614
  category: 'atom',
617
615
  description: 'The hackable text editor',
618
- type: Binary_1.BinaryType.GitHub,
616
+ type: BinaryType.GitHub,
619
617
  repo: 'atom/atom',
620
618
  distUrl: 'https://github.com/atom/atom/releases',
621
619
  },
622
620
  operadriver: {
623
621
  category: 'operadriver',
624
622
  description: 'OperaDriver for Chromium-based Opera releases',
625
- type: Binary_1.BinaryType.GitHub,
623
+ type: BinaryType.GitHub,
626
624
  repo: 'operasoftware/operachromiumdriver',
627
625
  distUrl: 'https://github.com/operasoftware/operachromiumdriver/releases',
628
626
  },
629
627
  geckodriver: {
630
628
  category: 'geckodriver',
631
629
  description: 'WebDriver for Firefox',
632
- type: Binary_1.BinaryType.GitHub,
630
+ type: BinaryType.GitHub,
633
631
  repo: 'mozilla/geckodriver',
634
632
  distUrl: 'https://github.com/mozilla/geckodriver/releases',
635
633
  },
636
634
  leveldown: {
637
635
  category: 'leveldown',
638
636
  description: 'Pure C++ Node.js LevelDB binding. An abstract-leveldown compliant store.',
639
- type: Binary_1.BinaryType.GitHub,
637
+ type: BinaryType.GitHub,
640
638
  repo: 'Level/leveldown',
641
639
  distUrl: 'https://github.com/Level/leveldown/releases',
642
640
  },
643
641
  couchbase: {
644
642
  category: 'couchbase',
645
643
  description: 'Couchbase Node.js Client Library (Official)',
646
- type: Binary_1.BinaryType.GitHub,
644
+ type: BinaryType.GitHub,
647
645
  repo: 'couchbase/couchnode',
648
646
  distUrl: 'https://github.com/couchbase/couchnode/releases',
649
647
  },
650
648
  gl: {
651
649
  category: 'gl',
652
650
  description: '🎃 Windowless WebGL for node.js',
653
- type: Binary_1.BinaryType.GitHub,
651
+ type: BinaryType.GitHub,
654
652
  repo: 'stackgl/headless-gl',
655
653
  distUrl: 'https://github.com/stackgl/headless-gl/releases',
656
654
  },
657
655
  flow: {
658
656
  category: 'flow',
659
657
  description: 'Adds static typing to JavaScript to improve developer productivity and code quality.',
660
- type: Binary_1.BinaryType.GitHub,
658
+ type: BinaryType.GitHub,
661
659
  repo: 'facebook/flow',
662
660
  distUrl: 'https://github.com/facebook/flow/releases',
663
661
  },
664
662
  robotjs: {
665
663
  category: 'robotjs',
666
664
  description: 'Node.js Desktop Automation. http://robotjs.io/',
667
- type: Binary_1.BinaryType.GitHub,
665
+ type: BinaryType.GitHub,
668
666
  repo: 'octalmage/robotjs',
669
667
  distUrl: 'https://github.com/octalmage/robotjs/releases',
670
668
  },
671
669
  poi: {
672
670
  category: 'poi',
673
671
  description: 'Scalable KanColle browser and tool. https://poi.io/',
674
- type: Binary_1.BinaryType.GitHub,
672
+ type: BinaryType.GitHub,
675
673
  repo: 'poooi/poi',
676
674
  distUrl: 'https://github.com/poooi/poi/releases',
677
675
  },
678
676
  'utf-8-validate': {
679
677
  category: 'utf-8-validate',
680
678
  description: 'Check if a buffer contains valid UTF-8',
681
- type: Binary_1.BinaryType.GitHub,
679
+ type: BinaryType.GitHub,
682
680
  repo: 'websockets/utf-8-validate',
683
681
  distUrl: 'https://github.com/websockets/utf-8-validate/releases',
684
682
  },
685
683
  minikube: {
686
684
  category: 'minikube',
687
685
  description: 'Run Kubernetes locally https://minikube.sigs.k8s.io/',
688
- type: Binary_1.BinaryType.GitHub,
686
+ type: BinaryType.GitHub,
689
687
  repo: 'kubernetes/minikube',
690
688
  distUrl: 'https://github.com/kubernetes/minikube/releases',
691
689
  },
692
690
  'sentry-cli': {
693
691
  category: 'sentry-cli',
694
692
  description: 'A command line utility to work with Sentry. https://docs.sentry.io/cli/',
695
- type: Binary_1.BinaryType.GitHub,
693
+ type: BinaryType.GitHub,
696
694
  repo: 'getsentry/sentry-cli',
697
695
  distUrl: 'https://github.com/getsentry/sentry-cli/releases',
698
696
  },
699
697
  'sharp-libvips': {
700
698
  category: 'sharp-libvips',
701
699
  description: 'Packaging scripts to prebuild libvips and its dependencies - you\'re probably looking for https://github.com/lovell/sharp',
702
- type: Binary_1.BinaryType.GitHub,
700
+ type: BinaryType.GitHub,
703
701
  repo: 'lovell/sharp-libvips',
704
702
  distUrl: 'https://github.com/lovell/sharp-libvips/releases',
705
703
  },
706
704
  sharp: {
707
705
  category: 'sharp',
708
706
  description: 'High performance Node.js image processing, the fastest module to resize JPEG, PNG, WebP, AVIF and TIFF images. Uses the libvips library. https://sharp.pixelplumbing.com/',
709
- type: Binary_1.BinaryType.GitHub,
707
+ type: BinaryType.GitHub,
710
708
  repo: 'lovell/sharp',
711
709
  distUrl: 'https://github.com/lovell/sharp/releases',
712
710
  },
713
711
  swc: {
714
712
  category: 'swc',
715
713
  description: 'swc is a super-fast compiler written in rust; producing widely-supported javascript from modern standards and typescript. https://swc.rs/',
716
- type: Binary_1.BinaryType.GitHub,
714
+ type: BinaryType.GitHub,
717
715
  repo: 'swc-project/swc',
718
716
  distUrl: 'https://github.com/swc-project/swc/releases',
719
717
  },
720
718
  'node-swc': {
721
719
  category: 'node-swc',
722
720
  description: 'Experimental repo to avoid spamming watchers, see https://github.com/swc-project/swc',
723
- type: Binary_1.BinaryType.GitHub,
721
+ type: BinaryType.GitHub,
724
722
  repo: 'swc-project/node-swc',
725
723
  distUrl: 'https://github.com/swc-project/node-swc/releases',
726
724
  },
727
725
  argon2: {
728
726
  category: 'argon2',
729
727
  description: 'Node.js bindings for Argon2 hashing algorithm',
730
- type: Binary_1.BinaryType.GitHub,
728
+ type: BinaryType.GitHub,
731
729
  repo: 'ranisalt/node-argon2',
732
730
  distUrl: 'https://github.com/ranisalt/node-argon2/releases',
733
731
  },
734
732
  iohook: {
735
733
  category: 'iohook',
736
734
  description: 'Node.js global keyboard and mouse listener.',
737
- type: Binary_1.BinaryType.GitHub,
735
+ type: BinaryType.GitHub,
738
736
  repo: 'wilix-team/iohook',
739
737
  distUrl: 'https://github.com/wilix-team/iohook/releases',
740
738
  },
741
739
  saucectl: {
742
740
  category: 'saucectl',
743
741
  description: 'A command line interface to run testrunner tests',
744
- type: Binary_1.BinaryType.GitHub,
742
+ type: BinaryType.GitHub,
745
743
  repo: 'saucelabs/saucectl',
746
744
  distUrl: 'https://github.com/saucelabs/saucectl/releases',
747
745
  },
748
746
  'node-gdal-async': {
749
747
  category: 'node-gdal-async',
750
748
  description: 'Node.js bindings for GDAL (Geospatial Data Abstraction Library) with full async support. https://mmomtchev.github.io/node-gdal-async/',
751
- type: Binary_1.BinaryType.GitHub,
749
+ type: BinaryType.GitHub,
752
750
  repo: 'mmomtchev/node-gdal-async',
753
751
  distUrl: 'https://github.com/mmomtchev/node-gdal-async/releases',
754
752
  },
755
753
  'looksgood-s2': {
756
754
  category: 'looksgood-s2',
757
755
  description: 'Node.js JavaScript & TypeScript bindings for Google S2.',
758
- type: Binary_1.BinaryType.GitHub,
756
+ type: BinaryType.GitHub,
759
757
  repo: 'looksgood/s2',
760
758
  distUrl: 'https://github.com/looksgood/s2/releases',
761
759
  },
762
760
  'ali-zeromq': {
763
761
  category: 'ali-zeromq',
764
762
  description: 'Node.js bindings for zeromq',
765
- type: Binary_1.BinaryType.GitHub,
763
+ type: BinaryType.GitHub,
766
764
  repo: 'looksgood/zeromq.js',
767
765
  distUrl: 'https://github.com/looksgood/zeromq.js/releases',
768
766
  },
769
767
  'ali-usb_ctl': {
770
768
  category: 'ali-usb_ctl',
771
769
  description: 'Node.js usb control module',
772
- type: Binary_1.BinaryType.GitHub,
770
+ type: BinaryType.GitHub,
773
771
  repo: 'looksgood/ali-usb_ctl',
774
772
  distUrl: 'https://github.com/looksgood/ali-usb_ctl/releases',
775
773
  },
776
774
  'node-re2': {
777
775
  category: 'node-re2',
778
776
  description: 'node.js bindings for RE2: fast, safe alternative to backtracking regular expression engines.',
779
- type: Binary_1.BinaryType.GitHub,
777
+ type: BinaryType.GitHub,
780
778
  repo: 'uhop/node-re2',
781
779
  distUrl: 'https://github.com/uhop/node-re2/releases',
782
780
  },
783
781
  sqlite3: {
784
782
  category: 'sqlite3',
785
783
  description: 'Asynchronous, non-blocking SQLite3 bindings for Node.js',
786
- type: Binary_1.BinaryType.GitHub,
784
+ type: BinaryType.GitHub,
787
785
  repo: 'TryGhost/node-sqlite3',
788
786
  distUrl: 'https://github.com/TryGhost/node-sqlite3/releases',
789
787
  },
790
788
  'better-sqlite3': {
791
789
  category: 'better-sqlite3',
792
790
  description: 'AsyncThe fastest and simplest library for SQLite3 in Node.js',
793
- type: Binary_1.BinaryType.GitHub,
791
+ type: BinaryType.GitHub,
794
792
  repo: 'WiseLibs/better-sqlite3',
795
793
  distUrl: 'https://github.com/WiseLibs/better-sqlite3/releases',
796
794
  },
797
795
  keytar: {
798
796
  category: 'keytar',
799
797
  description: 'Native Password Node Module',
800
- type: Binary_1.BinaryType.GitHub,
798
+ type: BinaryType.GitHub,
801
799
  repo: 'atom/node-keytar',
802
800
  distUrl: 'https://github.com/atom/node-keytar/releases',
803
801
  },
@@ -805,14 +803,14 @@ const binaries = {
805
803
  playwright: {
806
804
  category: 'playwright',
807
805
  description: 'Playwright is a framework for Web Testing and Automation.',
808
- type: Binary_1.BinaryType.Playwright,
806
+ type: BinaryType.Playwright,
809
807
  repo: 'microsoft/playwright',
810
808
  distUrl: 'https://github.com/microsoft/playwright/releases',
811
809
  },
812
810
  nydus: {
813
811
  category: 'nydus',
814
812
  description: 'the Dragonfly image service, providing fast, secure and easy access to container images.',
815
- type: Binary_1.BinaryType.GitHub,
813
+ type: BinaryType.GitHub,
816
814
  repo: 'dragonflyoss/image-service',
817
815
  distUrl: 'https://github.com/dragonflyoss/image-service/releases',
818
816
  },
@@ -820,7 +818,7 @@ const binaries = {
820
818
  // canvas@<=2.6.1 二进制需要从 node-canvas-prebuilt 下载
821
819
  category: 'node-canvas-prebuilt',
822
820
  description: 'Node canvas is a Cairo backed Canvas implementation for NodeJS.',
823
- type: Binary_1.BinaryType.GitHub,
821
+ type: BinaryType.GitHub,
824
822
  repo: 'Automattic/node-canvas',
825
823
  distUrl: 'https://github.com/Automattic/node-canvas/releases',
826
824
  },
@@ -829,7 +827,7 @@ const binaries = {
829
827
  distUrl: 'https://github.com/node-gfx/node-canvas-prebuilt/releases',
830
828
  repo: 'chearon/node-canvas-prebuilt',
831
829
  description: 'Prebuilt versions of node-canvas as a drop-in replacement',
832
- type: Binary_1.BinaryType.GitHub,
830
+ type: BinaryType.GitHub,
833
831
  options: {
834
832
  nodeArchs: {
835
833
  linux: ['x64'],
@@ -843,7 +841,7 @@ const binaries = {
843
841
  distUrl: 'https://github.com/node-gfx/node-canvas-prebuilt/releases',
844
842
  repo: 'node-gfx/node-canvas-prebuilt',
845
843
  description: 'Repo used to build binaries for node-canvas on CI',
846
- type: Binary_1.BinaryType.GitHub,
844
+ type: BinaryType.GitHub,
847
845
  options: {
848
846
  nodeArchs: {
849
847
  linux: ['x64'],
@@ -855,7 +853,7 @@ const binaries = {
855
853
  'libpg-query-node': {
856
854
  category: 'libpg-query-node',
857
855
  description: 'libpg-query is a real PostgreSQL query parser',
858
- type: Binary_1.BinaryType.NodePreGyp,
856
+ type: BinaryType.NodePreGyp,
859
857
  repo: 'pyramation/libpg-query-node',
860
858
  distUrl: 'https://supabase-public-artifacts-bucket.s3.amazonaws.com',
861
859
  options: {
@@ -865,55 +863,62 @@ const binaries = {
865
863
  'fuse-t': {
866
864
  category: 'fuse-t',
867
865
  description: 'FUSE-T is a kext-less implementation of FUSE for macOS that uses NFS v4 local server instead of a kernel extension.',
868
- type: Binary_1.BinaryType.GitHub,
866
+ type: BinaryType.GitHub,
869
867
  repo: 'macos-fuse-t/fuse-t',
870
868
  distUrl: 'https://github.com/macos-fuse-t/fuse-t/releases',
871
869
  },
872
870
  'ant-design-charts': {
873
871
  category: 'ant-design-charts',
874
872
  description: 'A React Chart Library https://ant-design-charts-next.antgroup.com/',
875
- type: Binary_1.BinaryType.GitHub,
873
+ type: BinaryType.GitHub,
876
874
  repo: 'ant-design/ant-design-charts',
877
875
  distUrl: 'https://github.com/ant-design/ant-design-charts/releases',
878
876
  },
879
877
  'pkg-fetch': {
880
878
  category: 'pkg-fetch',
881
879
  description: 'pkg-fetch provides prebuilt node binaries used by pkg. yao-pkg/pkg-fetch is currently the most actively maintained fork of vercel/pkg-fetch.',
882
- type: Binary_1.BinaryType.GitHub,
880
+ type: BinaryType.GitHub,
883
881
  repo: 'yao-pkg/pkg-fetch',
884
882
  distUrl: 'https://github.com/yao-pkg/pkg-fetch/releases',
885
883
  },
886
884
  bun: {
887
885
  category: 'bun',
888
886
  description: 'Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one',
889
- type: Binary_1.BinaryType.GitHub,
887
+ type: BinaryType.GitHub,
890
888
  repo: 'oven-sh/bun',
891
889
  distUrl: 'https://github.com/oven-sh/bun/releases',
892
890
  },
893
891
  deno: {
894
892
  category: 'deno',
895
893
  description: 'A modern runtime for JavaScript and TypeScript.',
896
- type: Binary_1.BinaryType.GitHub,
894
+ type: BinaryType.GitHub,
897
895
  repo: 'denoland/deno',
898
896
  distUrl: 'https://github.com/denoland/deno/releases',
899
897
  },
900
898
  edgedriver: {
901
899
  category: 'edgedriver',
902
900
  description: 'Microsofts\' EdgeDriver',
903
- type: Binary_1.BinaryType.Edgedriver,
901
+ type: BinaryType.Edgedriver,
904
902
  repo: 'webdriverio-community/node-edgedriver',
905
903
  distUrl: 'https://developer.microsoft.com/zh-cn/microsoft-edge/tools/webdriver/',
906
904
  },
907
905
  'homebrew-macos-cross-toolchains': {
908
906
  category: 'homebrew-macos-cross-toolchains',
909
907
  description: 'macOS cross compiler toolchains',
910
- type: Binary_1.BinaryType.GitHub,
908
+ type: BinaryType.GitHub,
911
909
  repo: 'messense/homebrew-macos-cross-toolchains',
912
910
  distUrl: 'https://github.com/messense/homebrew-macos-cross-toolchains/releases',
913
911
  },
912
+ 'node-pty-prebuilt-multiarch': {
913
+ category: 'node-pty-prebuilt-multiarch',
914
+ description: 'Prebuilt binaries for node-pty',
915
+ type: BinaryType.GitHub,
916
+ repo: 'homebridge/node-pty-prebuilt-multiarch',
917
+ distUrl: 'https://github.com/homebridge/node-pty-prebuilt-multiarch/releases',
918
+ },
914
919
  };
915
920
  const BinaryConfigMap = {
916
921
  ...binaries,
917
922
  };
918
- exports.default = BinaryConfigMap;
919
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYXJpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9jb25maWcvYmluYXJpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzREFBdUQ7QUEyQnZELE1BQU0sUUFBUSxHQUFHO0lBQ2YsYUFBYTtJQUNiLElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLFdBQVcsRUFBRSxzS0FBc0s7UUFDbkwsSUFBSSxFQUFFLG1CQUFVLENBQUMsSUFBSTtRQUNyQixJQUFJLEVBQUUsWUFBWTtRQUNsQixPQUFPLEVBQUUscUJBQXFCO0tBQy9CO0lBQ0QsYUFBYTtJQUNiLElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLFdBQVcsRUFBRSwyRUFBMkU7UUFDeEYsSUFBSSxFQUFFLG1CQUFVLENBQUMsSUFBSTtRQUNyQixJQUFJLEVBQUUsYUFBYTtRQUNuQixPQUFPLEVBQUUseUJBQXlCO0tBQ25DO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsUUFBUSxFQUFFLFNBQVM7UUFDbkIsV0FBVyxFQUFFLDJCQUEyQjtRQUN4QyxJQUFJLEVBQUUsbUJBQVUsQ0FBQyxJQUFJO1FBQ3JCLElBQUksRUFBRSxhQUFhO1FBQ25CLE9BQU8sRUFBRSxnQ0FBZ0M7S0FDMUM7SUFDRCxjQUFjLEVBQUU7UUFDZCxRQUFRLEVBQUUsY0FBYztRQUN4QixXQUFXLEVBQUUsdUJBQXVCO1FBQ3BDLElBQUksRUFBRSxtQkFBVSxDQUFDLElBQUk7UUFDckIsSUFBSSxFQUFFLGFBQWE7UUFDbkIsT0FBTyxFQUFFLHFDQUFxQztLQUMvQztJQUNELHdCQUF3QixFQUFFO1FBQ3hCLFFBQVEsRUFBRSx3QkFBd0I7UUFDbEMsV0FBVyxFQUFFLHlFQUF5RTtRQUN0RixJQUFJLEVBQUUsbUJBQVUsQ0FBQyxJQUFJO1FBQ3JCLElBQUksRUFBRSwwQkFBMEI7UUFDaEMsT0FBTyxFQUFFLHVEQUF1RDtLQUNqRTtJQUNELE9BQU8sRUFBRTtRQUNQLFFBQVEs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
923
+ export default BinaryConfigMap;
924
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYXJpZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9jb25maWcvYmluYXJpZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBMkIxRCxNQUFNLFFBQVEsR0FBRztJQUNmLGFBQWE7SUFDYixJQUFJLEVBQUU7UUFDSixRQUFRLEVBQUUsTUFBTTtRQUNoQixXQUFXLEVBQUUsc0tBQXNLO1FBQ25MLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtRQUNyQixJQUFJLEVBQUUsWUFBWTtRQUNsQixPQUFPLEVBQUUscUJBQXFCO0tBQy9CO0lBQ0QsYUFBYTtJQUNiLElBQUksRUFBRTtRQUNKLFFBQVEsRUFBRSxNQUFNO1FBQ2hCLFdBQVcsRUFBRSwyRUFBMkU7UUFDeEYsSUFBSSxFQUFFLFVBQVUsQ0FBQyxJQUFJO1FBQ3JCLElBQUksRUFBRSxhQUFhO1FBQ25CLE9BQU8sRUFBRSx5QkFBeUI7S0FDbkM7SUFDRCxTQUFTLEVBQUU7UUFDVCxRQUFRLEVBQUUsU0FBUztRQUNuQixXQUFXLEVBQUUsMkJBQTJCO1FBQ3hDLElBQUksRUFBRSxVQUFVLENBQUMsSUFBSTtRQUNyQixJQUFJLEVBQUUsYUFBYTtRQUNuQixPQUFPLEVBQUUsZ0NBQWdDO0tBQzFDO0lBQ0QsY0FBYyxFQUFFO1FBQ2QsUUFBUSxFQUFFLGNBQWM7UUFDeEIsV0FBVyxFQUFFLHVCQUF1QjtRQUNwQyxJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7UUFDckIsSUFBSSxFQUFFLGFBQWE7UUFDbkIsT0FBTyxFQUFFLHFDQUFxQztLQUMvQztJQUNELHdCQUF3QixFQUFFO1FBQ3hCLFFBQVEsRUFBRSx3QkFBd0I7UUFDbEMsV0FBVyxFQUFFLHlFQUF5RTtRQUN0RixJQUFJLEVBQUUsVUFBVSxDQUFDLElBQUk7UUFDckIsSUFBSSxFQUFFLDBCQUEwQjtRQUNoQyxPQUFPLEVBQUUsdURBQXVEO0tBQ2pFO0lB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