@package-broker/core 0.17.4 → 0.19.5

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 (334) hide show
  1. package/dist/cache/index.d.ts +0 -1
  2. package/dist/cache/index.d.ts.map +1 -1
  3. package/dist/cache/index.js +0 -1
  4. package/dist/cache/index.js.map +1 -1
  5. package/dist/cache/memory-driver.d.ts +1 -1
  6. package/dist/cache/memory-driver.d.ts.map +1 -1
  7. package/dist/cache/memory-driver.js +4 -2
  8. package/dist/cache/memory-driver.js.map +1 -1
  9. package/dist/db/create-database.d.ts +8 -0
  10. package/dist/db/create-database.d.ts.map +1 -0
  11. package/dist/db/create-database.js +13 -0
  12. package/dist/db/create-database.js.map +1 -0
  13. package/dist/db/index.d.ts +0 -1
  14. package/dist/db/index.d.ts.map +1 -1
  15. package/dist/db/index.js +0 -1
  16. package/dist/db/index.js.map +1 -1
  17. package/dist/db/schema.d.ts +557 -0
  18. package/dist/db/schema.d.ts.map +1 -1
  19. package/dist/db/schema.js +72 -2
  20. package/dist/db/schema.js.map +1 -1
  21. package/dist/factory.d.ts.map +1 -1
  22. package/dist/factory.js +22 -2
  23. package/dist/factory.js.map +1 -1
  24. package/dist/index.d.ts +2 -1
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +2 -2
  27. package/dist/index.js.map +1 -1
  28. package/dist/jobs/processor.js +1 -1
  29. package/dist/jobs/processor.js.map +1 -1
  30. package/dist/kernel/container.d.ts +12 -0
  31. package/dist/kernel/container.d.ts.map +1 -0
  32. package/dist/kernel/container.js +43 -0
  33. package/dist/kernel/container.js.map +1 -0
  34. package/dist/kernel/events.d.ts +17 -0
  35. package/dist/kernel/events.d.ts.map +1 -0
  36. package/dist/kernel/events.js +54 -0
  37. package/dist/kernel/events.js.map +1 -0
  38. package/dist/kernel/hooks.d.ts +14 -0
  39. package/dist/kernel/hooks.d.ts.map +1 -0
  40. package/dist/kernel/hooks.js +31 -0
  41. package/dist/kernel/hooks.js.map +1 -0
  42. package/dist/kernel/index.d.ts +5 -0
  43. package/dist/kernel/index.d.ts.map +1 -0
  44. package/dist/kernel/index.js +5 -0
  45. package/dist/kernel/index.js.map +1 -0
  46. package/dist/kernel/plugin.d.ts +21 -0
  47. package/dist/kernel/plugin.d.ts.map +1 -0
  48. package/dist/kernel/plugin.js +30 -0
  49. package/dist/kernel/plugin.js.map +1 -0
  50. package/dist/middleware/auth.d.ts +2 -0
  51. package/dist/middleware/auth.d.ts.map +1 -1
  52. package/dist/middleware/auth.js +20 -5
  53. package/dist/middleware/auth.js.map +1 -1
  54. package/dist/modules/admin/admin.handlers.d.ts +1 -1
  55. package/dist/modules/admin/admin.handlers.d.ts.map +1 -1
  56. package/dist/modules/artifacts/artifacts.handlers.d.ts +1 -1
  57. package/dist/modules/artifacts/artifacts.handlers.d.ts.map +1 -1
  58. package/dist/modules/auth/auth.handlers.js +1 -1
  59. package/dist/modules/auth/auth.handlers.js.map +1 -1
  60. package/dist/modules/composer/index.d.ts.map +1 -1
  61. package/dist/modules/composer/index.js +5 -0
  62. package/dist/modules/composer/index.js.map +1 -1
  63. package/dist/modules/composer/tenant-composer.d.ts +32 -0
  64. package/dist/modules/composer/tenant-composer.d.ts.map +1 -0
  65. package/dist/modules/composer/tenant-composer.js +198 -0
  66. package/dist/modules/composer/tenant-composer.js.map +1 -0
  67. package/dist/modules/import/import.handlers.d.ts +4 -0
  68. package/dist/modules/import/import.handlers.d.ts.map +1 -0
  69. package/dist/modules/import/import.handlers.js +16 -0
  70. package/dist/modules/import/import.handlers.js.map +1 -0
  71. package/dist/{routes/api/openapi/settings.d.ts → modules/import/import.routes.d.ts} +20 -35
  72. package/dist/modules/import/import.routes.d.ts.map +1 -0
  73. package/dist/modules/import/import.routes.js +63 -0
  74. package/dist/modules/import/import.routes.js.map +1 -0
  75. package/dist/modules/import/index.d.ts +8 -0
  76. package/dist/modules/import/index.d.ts.map +1 -0
  77. package/dist/modules/import/index.js +8 -0
  78. package/dist/modules/import/index.js.map +1 -0
  79. package/dist/modules/organizations/index.d.ts +8 -0
  80. package/dist/modules/organizations/index.d.ts.map +1 -0
  81. package/dist/modules/organizations/index.js +22 -0
  82. package/dist/modules/organizations/index.js.map +1 -0
  83. package/dist/modules/organizations/organizations.handlers.d.ts +24 -0
  84. package/dist/modules/organizations/organizations.handlers.d.ts.map +1 -0
  85. package/dist/modules/organizations/organizations.handlers.js +278 -0
  86. package/dist/modules/organizations/organizations.handlers.js.map +1 -0
  87. package/dist/modules/organizations/organizations.routes.d.ts +596 -0
  88. package/dist/modules/organizations/organizations.routes.d.ts.map +1 -0
  89. package/dist/modules/organizations/organizations.routes.js +263 -0
  90. package/dist/modules/organizations/organizations.routes.js.map +1 -0
  91. package/dist/modules/packages/packages.handlers.d.ts +1 -1
  92. package/dist/modules/packages/packages.handlers.d.ts.map +1 -1
  93. package/dist/modules/packages/packages.handlers.js +3 -69
  94. package/dist/modules/packages/packages.handlers.js.map +1 -1
  95. package/dist/modules/repositories/repositories.handlers.d.ts +1 -1
  96. package/dist/modules/repositories/repositories.handlers.d.ts.map +1 -1
  97. package/dist/modules/repositories/repositories.handlers.js +74 -3
  98. package/dist/modules/repositories/repositories.handlers.js.map +1 -1
  99. package/dist/modules/repositories/repositories.routes.d.ts +12 -0
  100. package/dist/modules/repositories/repositories.routes.d.ts.map +1 -1
  101. package/dist/modules/system/index.d.ts.map +1 -1
  102. package/dist/modules/system/index.js +2 -1
  103. package/dist/modules/system/index.js.map +1 -1
  104. package/dist/modules/system/system.handlers.d.ts +11 -1
  105. package/dist/modules/system/system.handlers.d.ts.map +1 -1
  106. package/dist/modules/system/system.handlers.js +31 -1
  107. package/dist/modules/system/system.handlers.js.map +1 -1
  108. package/dist/modules/system/system.routes.d.ts +34 -4
  109. package/dist/modules/system/system.routes.d.ts.map +1 -1
  110. package/dist/modules/system/system.routes.js +21 -1
  111. package/dist/modules/system/system.routes.js.map +1 -1
  112. package/dist/modules/tenants/index.d.ts +8 -0
  113. package/dist/modules/tenants/index.d.ts.map +1 -0
  114. package/dist/modules/tenants/index.js +21 -0
  115. package/dist/modules/tenants/index.js.map +1 -0
  116. package/dist/modules/tenants/tenants.handlers.d.ts +24 -0
  117. package/dist/modules/tenants/tenants.handlers.d.ts.map +1 -0
  118. package/dist/modules/tenants/tenants.handlers.js +268 -0
  119. package/dist/modules/tenants/tenants.handlers.js.map +1 -0
  120. package/dist/modules/tenants/tenants.routes.d.ts +486 -0
  121. package/dist/modules/tenants/tenants.routes.d.ts.map +1 -0
  122. package/dist/modules/tenants/tenants.routes.js +227 -0
  123. package/dist/modules/tenants/tenants.routes.js.map +1 -0
  124. package/dist/modules/tokens/tokens.handlers.d.ts +1 -1
  125. package/dist/modules/tokens/tokens.handlers.d.ts.map +1 -1
  126. package/dist/modules/users/users.handlers.d.ts +1 -1
  127. package/dist/modules/users/users.handlers.d.ts.map +1 -1
  128. package/dist/modules/users/users.handlers.js +1 -1
  129. package/dist/modules/users/users.handlers.js.map +1 -1
  130. package/dist/plugins/security-advisories/advisory-db.d.ts +85 -0
  131. package/dist/plugins/security-advisories/advisory-db.d.ts.map +1 -0
  132. package/dist/plugins/security-advisories/advisory-db.js +161 -0
  133. package/dist/plugins/security-advisories/advisory-db.js.map +1 -0
  134. package/dist/plugins/security-advisories/advisory-service.d.ts +44 -0
  135. package/dist/plugins/security-advisories/advisory-service.d.ts.map +1 -0
  136. package/dist/plugins/security-advisories/advisory-service.js +122 -0
  137. package/dist/plugins/security-advisories/advisory-service.js.map +1 -0
  138. package/dist/plugins/security-advisories/advisory.handlers.d.ts +13 -0
  139. package/dist/plugins/security-advisories/advisory.handlers.d.ts.map +1 -0
  140. package/dist/plugins/security-advisories/advisory.handlers.js +87 -0
  141. package/dist/plugins/security-advisories/advisory.handlers.js.map +1 -0
  142. package/dist/plugins/security-advisories/advisory.module.d.ts +4 -0
  143. package/dist/plugins/security-advisories/advisory.module.d.ts.map +1 -0
  144. package/dist/plugins/security-advisories/advisory.module.js +13 -0
  145. package/dist/plugins/security-advisories/advisory.module.js.map +1 -0
  146. package/dist/plugins/security-advisories/advisory.routes.d.ts +73 -0
  147. package/dist/plugins/security-advisories/advisory.routes.d.ts.map +1 -0
  148. package/dist/plugins/security-advisories/advisory.routes.js +76 -0
  149. package/dist/plugins/security-advisories/advisory.routes.js.map +1 -0
  150. package/dist/plugins/security-advisories/index.d.ts +31 -0
  151. package/dist/plugins/security-advisories/index.d.ts.map +1 -0
  152. package/dist/plugins/security-advisories/index.js +100 -0
  153. package/dist/plugins/security-advisories/index.js.map +1 -0
  154. package/dist/ports.d.ts +39 -21
  155. package/dist/ports.d.ts.map +1 -1
  156. package/dist/queue/consumer.js +2 -2
  157. package/dist/queue/consumer.js.map +1 -1
  158. package/dist/queue/memory-driver.d.ts +3 -2
  159. package/dist/queue/memory-driver.d.ts.map +1 -1
  160. package/dist/queue/memory-driver.js.map +1 -1
  161. package/dist/routes/composer.d.ts.map +1 -1
  162. package/dist/routes/composer.js +71 -19
  163. package/dist/routes/composer.js.map +1 -1
  164. package/dist/routes/dist.d.ts.map +1 -1
  165. package/dist/routes/dist.js +26 -80
  166. package/dist/routes/dist.js.map +1 -1
  167. package/dist/routes/index.d.ts +0 -1
  168. package/dist/routes/index.d.ts.map +1 -1
  169. package/dist/routes/index.js +0 -1
  170. package/dist/routes/index.js.map +1 -1
  171. package/dist/services/GitHubOrgImporter.d.ts +21 -0
  172. package/dist/services/GitHubOrgImporter.d.ts.map +1 -0
  173. package/dist/services/GitHubOrgImporter.js +51 -0
  174. package/dist/services/GitHubOrgImporter.js.map +1 -0
  175. package/dist/services/TokenScopeService.d.ts +15 -0
  176. package/dist/services/TokenScopeService.d.ts.map +1 -0
  177. package/dist/services/TokenScopeService.js +42 -0
  178. package/dist/services/TokenScopeService.js.map +1 -0
  179. package/dist/storage/index.d.ts +0 -1
  180. package/dist/storage/index.d.ts.map +1 -1
  181. package/dist/storage/index.js +0 -1
  182. package/dist/storage/index.js.map +1 -1
  183. package/dist/sync/repository-sync.d.ts.map +1 -1
  184. package/dist/sync/repository-sync.js +35 -23
  185. package/dist/sync/repository-sync.js.map +1 -1
  186. package/dist/sync/strategies/git-ssh.d.ts +17 -0
  187. package/dist/sync/strategies/git-ssh.d.ts.map +1 -0
  188. package/dist/sync/strategies/git-ssh.js +325 -0
  189. package/dist/sync/strategies/git-ssh.js.map +1 -0
  190. package/dist/{routes/api/types.d.ts → types/openapi.d.ts} +3 -4
  191. package/dist/types/openapi.d.ts.map +1 -0
  192. package/dist/{routes/api/types.js → types/openapi.js} +1 -1
  193. package/dist/types/openapi.js.map +1 -0
  194. package/dist/utils/background.d.ts +7 -0
  195. package/dist/utils/background.d.ts.map +1 -0
  196. package/dist/utils/background.js +11 -0
  197. package/dist/utils/background.js.map +1 -0
  198. package/dist/utils/environment.d.ts +15 -0
  199. package/dist/utils/environment.d.ts.map +1 -0
  200. package/dist/utils/environment.js +38 -0
  201. package/dist/utils/environment.js.map +1 -0
  202. package/dist/utils/index.d.ts +1 -0
  203. package/dist/utils/index.d.ts.map +1 -1
  204. package/dist/utils/index.js +1 -0
  205. package/dist/utils/index.js.map +1 -1
  206. package/dist/utils/package-filter.d.ts +7 -0
  207. package/dist/utils/package-filter.d.ts.map +1 -0
  208. package/dist/utils/package-filter.js +23 -0
  209. package/dist/utils/package-filter.js.map +1 -0
  210. package/dist/utils/package-validator.d.ts +3 -3
  211. package/dist/utils/package-validator.d.ts.map +1 -1
  212. package/dist/utils/package-validator.js +4 -37
  213. package/dist/utils/package-validator.js.map +1 -1
  214. package/dist/utils/upstream-fetch.d.ts +8 -0
  215. package/dist/utils/upstream-fetch.d.ts.map +1 -1
  216. package/dist/utils/upstream-fetch.js +42 -0
  217. package/dist/utils/upstream-fetch.js.map +1 -1
  218. package/dist/utils/zip-utils.d.ts +13 -0
  219. package/dist/utils/zip-utils.d.ts.map +1 -0
  220. package/dist/utils/zip-utils.js +66 -0
  221. package/dist/utils/zip-utils.js.map +1 -0
  222. package/dist/vcs/bitbucket-provider.d.ts +19 -0
  223. package/dist/vcs/bitbucket-provider.d.ts.map +1 -0
  224. package/dist/vcs/bitbucket-provider.js +249 -0
  225. package/dist/vcs/bitbucket-provider.js.map +1 -0
  226. package/dist/vcs/github-provider.d.ts +16 -0
  227. package/dist/vcs/github-provider.d.ts.map +1 -0
  228. package/dist/vcs/github-provider.js +117 -0
  229. package/dist/vcs/github-provider.js.map +1 -0
  230. package/dist/vcs/gitlab-provider.d.ts +17 -0
  231. package/dist/vcs/gitlab-provider.d.ts.map +1 -0
  232. package/dist/vcs/gitlab-provider.js +216 -0
  233. package/dist/vcs/gitlab-provider.js.map +1 -0
  234. package/dist/vcs/index.d.ts +10 -0
  235. package/dist/vcs/index.d.ts.map +1 -0
  236. package/dist/vcs/index.js +24 -0
  237. package/dist/vcs/index.js.map +1 -0
  238. package/dist/vcs/registry.d.ts +32 -0
  239. package/dist/vcs/registry.d.ts.map +1 -0
  240. package/dist/vcs/registry.js +47 -0
  241. package/dist/vcs/registry.js.map +1 -0
  242. package/dist/workflows/package-storage.d.ts.map +1 -1
  243. package/dist/workflows/package-storage.js +3 -3
  244. package/dist/workflows/package-storage.js.map +1 -1
  245. package/package.json +11 -8
  246. package/dist/cache/kv-driver.d.ts +0 -16
  247. package/dist/cache/kv-driver.d.ts.map +0 -1
  248. package/dist/cache/kv-driver.js +0 -23
  249. package/dist/cache/kv-driver.js.map +0 -1
  250. package/dist/db/d1-driver.d.ts +0 -3
  251. package/dist/db/d1-driver.d.ts.map +0 -1
  252. package/dist/db/d1-driver.js +0 -7
  253. package/dist/db/d1-driver.js.map +0 -1
  254. package/dist/routes/api/artifacts.d.ts +0 -27
  255. package/dist/routes/api/artifacts.d.ts.map +0 -1
  256. package/dist/routes/api/artifacts.js +0 -57
  257. package/dist/routes/api/artifacts.js.map +0 -1
  258. package/dist/routes/api/auth.d.ts +0 -52
  259. package/dist/routes/api/auth.d.ts.map +0 -1
  260. package/dist/routes/api/auth.js +0 -277
  261. package/dist/routes/api/auth.js.map +0 -1
  262. package/dist/routes/api/index.d.ts +0 -10
  263. package/dist/routes/api/index.d.ts.map +0 -1
  264. package/dist/routes/api/index.js +0 -11
  265. package/dist/routes/api/index.js.map +0 -1
  266. package/dist/routes/api/openapi/artifacts.d.ts +0 -80
  267. package/dist/routes/api/openapi/artifacts.d.ts.map +0 -1
  268. package/dist/routes/api/openapi/artifacts.js +0 -73
  269. package/dist/routes/api/openapi/artifacts.js.map +0 -1
  270. package/dist/routes/api/openapi/auth.d.ts +0 -187
  271. package/dist/routes/api/openapi/auth.d.ts.map +0 -1
  272. package/dist/routes/api/openapi/auth.js +0 -135
  273. package/dist/routes/api/openapi/auth.js.map +0 -1
  274. package/dist/routes/api/openapi/health.d.ts +0 -23
  275. package/dist/routes/api/openapi/health.d.ts.map +0 -1
  276. package/dist/routes/api/openapi/health.js +0 -25
  277. package/dist/routes/api/openapi/health.js.map +0 -1
  278. package/dist/routes/api/openapi/index.d.ts +0 -10
  279. package/dist/routes/api/openapi/index.d.ts.map +0 -1
  280. package/dist/routes/api/openapi/index.js +0 -16
  281. package/dist/routes/api/openapi/index.js.map +0 -1
  282. package/dist/routes/api/openapi/packages.d.ts +0 -172
  283. package/dist/routes/api/openapi/packages.d.ts.map +0 -1
  284. package/dist/routes/api/openapi/packages.js +0 -126
  285. package/dist/routes/api/openapi/packages.js.map +0 -1
  286. package/dist/routes/api/openapi/repositories.d.ts +0 -451
  287. package/dist/routes/api/openapi/repositories.d.ts.map +0 -1
  288. package/dist/routes/api/openapi/repositories.js +0 -238
  289. package/dist/routes/api/openapi/repositories.js.map +0 -1
  290. package/dist/routes/api/openapi/settings.d.ts.map +0 -1
  291. package/dist/routes/api/openapi/settings.js +0 -72
  292. package/dist/routes/api/openapi/settings.js.map +0 -1
  293. package/dist/routes/api/openapi/stats.d.ts +0 -59
  294. package/dist/routes/api/openapi/stats.d.ts.map +0 -1
  295. package/dist/routes/api/openapi/stats.js +0 -53
  296. package/dist/routes/api/openapi/stats.js.map +0 -1
  297. package/dist/routes/api/openapi/tokens.d.ts +0 -202
  298. package/dist/routes/api/openapi/tokens.d.ts.map +0 -1
  299. package/dist/routes/api/openapi/tokens.js +0 -132
  300. package/dist/routes/api/openapi/tokens.js.map +0 -1
  301. package/dist/routes/api/openapi/users.d.ts +0 -190
  302. package/dist/routes/api/openapi/users.d.ts.map +0 -1
  303. package/dist/routes/api/openapi/users.js +0 -126
  304. package/dist/routes/api/openapi/users.js.map +0 -1
  305. package/dist/routes/api/packages.d.ts +0 -50
  306. package/dist/routes/api/packages.d.ts.map +0 -1
  307. package/dist/routes/api/packages.js +0 -708
  308. package/dist/routes/api/packages.js.map +0 -1
  309. package/dist/routes/api/repositories.d.ts +0 -58
  310. package/dist/routes/api/repositories.d.ts.map +0 -1
  311. package/dist/routes/api/repositories.js +0 -321
  312. package/dist/routes/api/repositories.js.map +0 -1
  313. package/dist/routes/api/settings.d.ts +0 -29
  314. package/dist/routes/api/settings.d.ts.map +0 -1
  315. package/dist/routes/api/settings.js +0 -81
  316. package/dist/routes/api/settings.js.map +0 -1
  317. package/dist/routes/api/stats.d.ts +0 -21
  318. package/dist/routes/api/stats.d.ts.map +0 -1
  319. package/dist/routes/api/stats.js +0 -51
  320. package/dist/routes/api/stats.js.map +0 -1
  321. package/dist/routes/api/tokens.d.ts +0 -40
  322. package/dist/routes/api/tokens.d.ts.map +0 -1
  323. package/dist/routes/api/tokens.js +0 -187
  324. package/dist/routes/api/tokens.js.map +0 -1
  325. package/dist/routes/api/types.d.ts.map +0 -1
  326. package/dist/routes/api/types.js.map +0 -1
  327. package/dist/routes/api/users.d.ts +0 -6
  328. package/dist/routes/api/users.d.ts.map +0 -1
  329. package/dist/routes/api/users.js +0 -115
  330. package/dist/routes/api/users.js.map +0 -1
  331. package/dist/storage/r2-driver.d.ts +0 -16
  332. package/dist/storage/r2-driver.d.ts.map +0 -1
  333. package/dist/storage/r2-driver.js +0 -28
  334. package/dist/storage/r2-driver.js.map +0 -1
@@ -1,277 +0,0 @@
1
- /*
2
- * PACKAGE.broker
3
- * Copyright (C) 2025 Łukasz Bajsarowicz
4
- * Licensed under AGPL-3.0
5
- */
6
- import { UserService } from '../../services/UserService';
7
- import { getAnalytics } from '../../utils/analytics';
8
- // Generate a session token
9
- function generateSessionToken() {
10
- const bytes = crypto.getRandomValues(new Uint8Array(32));
11
- return btoa(String.fromCharCode(...bytes))
12
- .replace(/\+/g, '-')
13
- .replace(/\//g, '_')
14
- .replace(/=/g, '');
15
- }
16
- /**
17
- * POST /api/auth/login
18
- * Authenticate admin user and return session token
19
- */
20
- export async function loginRoute(c) {
21
- const db = c.get('database');
22
- const userService = new UserService(db);
23
- const body = c.req.valid('json');
24
- const { email, password } = body;
25
- const user = await userService.verifyCredentials(email, password);
26
- const requestId = c.get('requestId');
27
- const analytics = getAnalytics();
28
- if (!user) {
29
- analytics.trackAuthLogin({
30
- requestId,
31
- userId: 'unknown',
32
- success: false,
33
- });
34
- return c.json({ error: 'Invalid credentials' }, 401);
35
- }
36
- // Check 2FA
37
- if (user.two_factor_enabled) {
38
- const { code } = body;
39
- if (!code) {
40
- return c.json({ error: '2FA required', code: '2fa_required' }, 403);
41
- }
42
- const isValid = await userService.validateTwoFactorLogin(user.id, code);
43
- if (!isValid) {
44
- analytics.trackAuthLogin({
45
- requestId,
46
- userId: user.id,
47
- success: false,
48
- });
49
- return c.json({ error: 'Invalid 2FA code' }, 401);
50
- }
51
- }
52
- // Generate session token
53
- const sessionToken = generateSessionToken();
54
- analytics.trackAuthLogin({
55
- requestId,
56
- userId: user.id,
57
- success: true,
58
- });
59
- // Store session in cache (expires in 24 hours)
60
- // Use injected cache driver (Node.js) or fall back to c.env.KV (Cloudflare)
61
- const cache = c.get('cache') || c.env?.KV;
62
- if (!cache) {
63
- throw new Error('No session storage available (cache driver or KV not configured)');
64
- }
65
- await cache.put(`session:${sessionToken}`, JSON.stringify({
66
- userId: user.id,
67
- email: user.email,
68
- role: user.role,
69
- createdAt: Date.now(),
70
- }), {
71
- expirationTtl: 86400, // 24 hours
72
- });
73
- return c.json({
74
- token: sessionToken,
75
- user: {
76
- id: user.id,
77
- email: user.email,
78
- role: user.role,
79
- two_factor_enabled: user.two_factor_enabled,
80
- },
81
- });
82
- }
83
- /**
84
- * POST /api/auth/logout
85
- * Invalidate session token
86
- */
87
- export async function logoutRoute(c) {
88
- const authHeader = c.req.header('Authorization');
89
- if (authHeader?.startsWith('Bearer ')) {
90
- const token = authHeader.slice(7);
91
- const cache = c.get('cache') || c.env?.KV;
92
- if (cache) {
93
- await cache.delete(`session:${token}`);
94
- }
95
- }
96
- return c.json({ message: 'Logged out' });
97
- }
98
- /**
99
- * GET /api/auth/me
100
- * Get current authenticated user
101
- */
102
- export async function meRoute(c) {
103
- const session = c.get('session');
104
- if (!session) {
105
- return c.json({ error: 'Not authenticated' }, 401);
106
- }
107
- // Refresh user data from DB to get latest status
108
- const db = c.get('database');
109
- const userService = new UserService(db);
110
- const user = await userService.findById(session.userId);
111
- if (!user) {
112
- return c.json({ error: 'User not found' }, 404);
113
- }
114
- return c.json({
115
- user: {
116
- id: user.id,
117
- email: user.email,
118
- role: user.role,
119
- two_factor_enabled: user.two_factor_enabled
120
- }
121
- });
122
- }
123
- /**
124
- * POST /api/setup
125
- * Create initial admin user
126
- */
127
- export async function setupRoute(c) {
128
- const db = c.get('database');
129
- const userService = new UserService(db);
130
- // Check if any user exists
131
- const count = await userService.count();
132
- if (count > 0) {
133
- return c.json({ error: 'Setup already completed' }, 403);
134
- }
135
- let body;
136
- try {
137
- body = await c.req.json();
138
- }
139
- catch {
140
- return c.json({ error: 'Invalid JSON' }, 400);
141
- }
142
- const { email, password } = body;
143
- if (!email || !password) {
144
- return c.json({ error: 'Email and password required' }, 400);
145
- }
146
- // Create first admin
147
- const user = await userService.create({
148
- email,
149
- password,
150
- role: 'admin'
151
- });
152
- return c.json({
153
- message: 'Setup complete',
154
- user: {
155
- id: user?.id,
156
- email: user?.email
157
- }
158
- });
159
- }
160
- /**
161
- * POST /api/auth/2fa/setup
162
- * Start 2FA setup flow
163
- */
164
- export async function setup2FARoute(c) {
165
- const db = c.get('database');
166
- const userService = new UserService(db);
167
- const session = c.get('session');
168
- // Generate new secret
169
- const secret = await userService.setupTwoFactor(session.userId);
170
- const qrCode = await userService.generateTwoFactorQrCode(session.email, secret);
171
- return c.json({ secret, qrCode });
172
- }
173
- /**
174
- * POST /api/auth/2fa/enable
175
- * Confirm 2FA setup with code
176
- */
177
- export async function enable2FARoute(c) {
178
- const db = c.get('database');
179
- const userService = new UserService(db);
180
- const session = c.get('session');
181
- let body;
182
- try {
183
- body = await c.req.json();
184
- }
185
- catch {
186
- return c.json({ error: 'Invalid JSON' }, 400);
187
- }
188
- const { secret, code } = body;
189
- if (!secret || !code) {
190
- return c.json({ error: 'Secret and code required' }, 400);
191
- }
192
- try {
193
- const recoveryCodes = await userService.enableTwoFactor(session.userId, secret, code);
194
- return c.json({ recoveryCodes });
195
- }
196
- catch (err) {
197
- return c.json({ error: err.message }, 400);
198
- }
199
- }
200
- /**
201
- * POST /api/auth/2fa/disable
202
- * Disable 2FA
203
- */
204
- export async function disable2FARoute(c) {
205
- const db = c.get('database');
206
- const userService = new UserService(db);
207
- const session = c.get('session');
208
- await userService.disableTwoFactor(session.userId);
209
- return c.json({ message: '2FA disabled' });
210
- }
211
- /**
212
- * POST /api/auth/invite/accept
213
- * Accept invite and set password
214
- */
215
- export async function acceptInviteRoute(c) {
216
- const db = c.get('database');
217
- const userService = new UserService(db);
218
- let body;
219
- try {
220
- body = await c.req.json();
221
- }
222
- catch {
223
- return c.json({ error: 'Invalid JSON' }, 400);
224
- }
225
- const { token, password } = body;
226
- if (!token || !password) {
227
- return c.json({ error: 'Token and password required' }, 400);
228
- }
229
- try {
230
- const user = await userService.acceptInvite(token, password);
231
- return c.json({ message: 'Invite accepted', user: { email: user.email } });
232
- }
233
- catch (err) {
234
- return c.json({ error: err.message }, 400);
235
- }
236
- }
237
- /**
238
- * Middleware to verify session token
239
- */
240
- export async function sessionMiddleware(c, next) {
241
- const authHeader = c.req.header('Authorization');
242
- if (!authHeader || !authHeader.startsWith('Bearer ')) {
243
- return c.json({ error: 'Unauthorized', message: 'Session token required' }, 401);
244
- }
245
- const token = authHeader.slice(7);
246
- // Check cache for session (use injected cache or fall back to c.env.KV)
247
- const cache = c.get('cache') || c.env?.KV;
248
- if (!cache) {
249
- return c.json({ error: 'Server Error', message: 'Session storage not configured' }, 500);
250
- }
251
- // Try to get session - handle both CachePort (getJson) and KV (get with 'json' type)
252
- let sessionData;
253
- if (typeof cache.getJson === 'function') {
254
- sessionData = await cache.getJson(`session:${token}`);
255
- }
256
- else {
257
- sessionData = await cache.get(`session:${token}`, 'json');
258
- }
259
- if (!sessionData) {
260
- return c.json({ error: 'Unauthorized', message: 'Invalid or expired session' }, 401);
261
- }
262
- // Attach session to context
263
- c.set('session', sessionData);
264
- return await next();
265
- }
266
- /**
267
- * Check if auth is required / setup is needed
268
- */
269
- export async function checkAuthRequired(c) {
270
- const db = c.get('database');
271
- const userService = new UserService(db);
272
- const count = await userService.count();
273
- return c.json({
274
- auth_required: count > 0,
275
- });
276
- }
277
- //# sourceMappingURL=auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/routes/api/auth.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- export * from './repositories';
2
- export * from './tokens';
3
- export * from './packages';
4
- export * from './stats';
5
- export * from './artifacts';
6
- export * from './auth';
7
- export * from './users';
8
- export * from './settings';
9
- export * from './types';
10
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/api/index.ts"],"names":[],"mappings":"AACA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
@@ -1,11 +0,0 @@
1
- // API routes exports
2
- export * from './repositories';
3
- export * from './tokens';
4
- export * from './packages';
5
- export * from './stats';
6
- export * from './artifacts';
7
- export * from './auth';
8
- export * from './users';
9
- export * from './settings';
10
- export * from './types';
11
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/routes/api/index.ts"],"names":[],"mappings":"AAAA,qBAAqB;AACrB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,SAAS,CAAC"}
@@ -1,80 +0,0 @@
1
- import { z } from '@hono/zod-openapi';
2
- export declare const deleteArtifactRouteDef: {
3
- method: "delete";
4
- path: "/artifacts/{id}";
5
- summary: string;
6
- description: string;
7
- security: {
8
- Bearer: never[];
9
- }[];
10
- request: {
11
- params: z.ZodObject<{
12
- id: z.ZodString;
13
- }, z.core.$strip>;
14
- };
15
- responses: {
16
- 200: {
17
- content: {
18
- 'application/json': {
19
- schema: z.ZodObject<{
20
- message: z.ZodString;
21
- }, z.core.$strip>;
22
- };
23
- };
24
- description: string;
25
- };
26
- 404: {
27
- content: {
28
- 'application/json': {
29
- schema: z.ZodObject<{
30
- error: z.ZodString;
31
- message: z.ZodOptional<z.ZodString>;
32
- code: z.ZodOptional<z.ZodString>;
33
- requestId: z.ZodOptional<z.ZodString>;
34
- }, z.core.$strip>;
35
- };
36
- };
37
- description: string;
38
- };
39
- };
40
- tags: string[];
41
- } & {
42
- getRoutingPath(): "/artifacts/:id";
43
- };
44
- export declare const cleanupArtifactsRouteDef: {
45
- method: "post";
46
- path: "/artifacts/cleanup";
47
- summary: string;
48
- description: string;
49
- security: {
50
- Bearer: never[];
51
- }[];
52
- request: {
53
- body: {
54
- content: {
55
- 'application/json': {
56
- schema: z.ZodObject<{
57
- retention_days: z.ZodOptional<z.ZodDefault<z.ZodNumber>>;
58
- }, z.core.$strip>;
59
- };
60
- };
61
- };
62
- };
63
- responses: {
64
- 200: {
65
- content: {
66
- 'application/json': {
67
- schema: z.ZodObject<{
68
- message: z.ZodString;
69
- deleted_count: z.ZodNumber;
70
- }, z.core.$strip>;
71
- };
72
- };
73
- description: string;
74
- };
75
- };
76
- tags: string[];
77
- } & {
78
- getRoutingPath(): "/artifacts/cleanup";
79
- };
80
- //# sourceMappingURL=artifacts.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"artifacts.d.ts","sourceRoot":"","sources":["../../../../src/routes/api/openapi/artifacts.ts"],"names":[],"mappings":"AAMA,OAAO,EAAe,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAGnD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCjC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BnC,CAAC"}
@@ -1,73 +0,0 @@
1
- /*
2
- * PACKAGE.broker
3
- * Copyright (C) 2025 Łukasz Bajsarowicz
4
- * Licensed under AGPL-3.0
5
- */
6
- import { createRoute, z } from '@hono/zod-openapi';
7
- import { errorResponseSchema } from '@package-broker/shared';
8
- export const deleteArtifactRouteDef = createRoute({
9
- method: 'delete',
10
- path: '/artifacts/{id}',
11
- summary: 'Delete artifact',
12
- description: 'Delete an artifact from storage and database',
13
- security: [{ Bearer: [] }],
14
- request: {
15
- params: z.object({
16
- id: z.string(),
17
- }),
18
- },
19
- responses: {
20
- 200: {
21
- content: {
22
- 'application/json': {
23
- schema: z.object({
24
- message: z.string(),
25
- }),
26
- },
27
- },
28
- description: 'Artifact deleted',
29
- },
30
- 404: {
31
- content: {
32
- 'application/json': {
33
- schema: errorResponseSchema,
34
- },
35
- },
36
- description: 'Artifact not found',
37
- },
38
- },
39
- tags: ['Artifacts'],
40
- });
41
- export const cleanupArtifactsRouteDef = createRoute({
42
- method: 'post',
43
- path: '/artifacts/cleanup',
44
- summary: 'Cleanup artifacts',
45
- description: 'Clean up old artifacts based on retention days',
46
- security: [{ Bearer: [] }],
47
- request: {
48
- body: {
49
- content: {
50
- 'application/json': {
51
- schema: z.object({
52
- retention_days: z.number().int().positive().default(90).optional(),
53
- }),
54
- },
55
- },
56
- },
57
- },
58
- responses: {
59
- 200: {
60
- content: {
61
- 'application/json': {
62
- schema: z.object({
63
- message: z.string(),
64
- deleted_count: z.number(),
65
- }),
66
- },
67
- },
68
- description: 'Cleanup completed',
69
- },
70
- },
71
- tags: ['Artifacts'],
72
- });
73
- //# sourceMappingURL=artifacts.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"artifacts.js","sourceRoot":"","sources":["../../../../src/routes/api/openapi/artifacts.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,MAAM,CAAC,MAAM,sBAAsB,GAAG,WAAW,CAAC;IAChD,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,iBAAiB;IAC1B,WAAW,EAAE,8CAA8C;IAC3D,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC1B,OAAO,EAAE;QACP,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;YACf,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;SACf,CAAC;KACH;IACD,SAAS,EAAE;QACT,GAAG,EAAE;YACH,OAAO,EAAE;gBACP,kBAAkB,EAAE;oBAClB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;wBACf,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;qBACpB,CAAC;iBACH;aACF;YACD,WAAW,EAAE,kBAAkB;SAChC;QACD,GAAG,EAAE;YACH,OAAO,EAAE;gBACP,kBAAkB,EAAE;oBAClB,MAAM,EAAE,mBAAmB;iBAC5B;aACF;YACD,WAAW,EAAE,oBAAoB;SAClC;KACF;IACD,IAAI,EAAE,CAAC,WAAW,CAAC;CACpB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,wBAAwB,GAAG,WAAW,CAAC;IAClD,MAAM,EAAE,MAAM;IACd,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,mBAAmB;IAC5B,WAAW,EAAE,gDAAgD;IAC7D,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IAC1B,OAAO,EAAE;QACP,IAAI,EAAE;YACJ,OAAO,EAAE;gBACP,kBAAkB,EAAE;oBAClB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;wBACf,cAAc,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;qBACnE,CAAC;iBACH;aACF;SACF;KACF;IACD,SAAS,EAAE;QACT,GAAG,EAAE;YACH,OAAO,EAAE;gBACP,kBAAkB,EAAE;oBAClB,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC;wBACf,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE;wBACnB,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE;qBAC1B,CAAC;iBACH;aACF;YACD,WAAW,EAAE,mBAAmB;SACjC;KACF;IACD,IAAI,EAAE,CAAC,WAAW,CAAC;CACpB,CAAC,CAAC"}
@@ -1,187 +0,0 @@
1
- import { z } from '@hono/zod-openapi';
2
- export declare const loginRouteDef: {
3
- method: "post";
4
- path: "/auth/login";
5
- summary: string;
6
- description: string;
7
- request: {
8
- body: {
9
- content: {
10
- 'application/json': {
11
- schema: z.ZodObject<{
12
- email: z.ZodString;
13
- password: z.ZodString;
14
- code: z.ZodOptional<z.ZodString>;
15
- }, z.core.$strip>;
16
- };
17
- };
18
- };
19
- };
20
- responses: {
21
- 200: {
22
- content: {
23
- 'application/json': {
24
- schema: z.ZodObject<{
25
- token: z.ZodString;
26
- user: z.ZodObject<{
27
- id: z.ZodString;
28
- email: z.ZodString;
29
- role: z.ZodEnum<{
30
- admin: "admin";
31
- viewer: "viewer";
32
- }>;
33
- two_factor_enabled: z.ZodBoolean;
34
- }, z.core.$strip>;
35
- }, z.core.$strip>;
36
- };
37
- };
38
- description: string;
39
- };
40
- 400: {
41
- content: {
42
- 'application/json': {
43
- schema: z.ZodObject<{
44
- error: z.ZodString;
45
- message: z.ZodOptional<z.ZodString>;
46
- code: z.ZodOptional<z.ZodString>;
47
- requestId: z.ZodOptional<z.ZodString>;
48
- }, z.core.$strip>;
49
- };
50
- };
51
- description: string;
52
- };
53
- 401: {
54
- content: {
55
- 'application/json': {
56
- schema: z.ZodObject<{
57
- error: z.ZodString;
58
- message: z.ZodOptional<z.ZodString>;
59
- code: z.ZodOptional<z.ZodString>;
60
- requestId: z.ZodOptional<z.ZodString>;
61
- }, z.core.$strip>;
62
- };
63
- };
64
- description: string;
65
- };
66
- 403: {
67
- content: {
68
- 'application/json': {
69
- schema: z.ZodObject<{
70
- error: z.ZodString;
71
- message: z.ZodOptional<z.ZodString>;
72
- requestId: z.ZodOptional<z.ZodString>;
73
- code: z.ZodString;
74
- }, z.core.$strip>;
75
- };
76
- };
77
- description: string;
78
- };
79
- };
80
- tags: string[];
81
- } & {
82
- getRoutingPath(): "/auth/login";
83
- };
84
- export declare const logoutRouteDef: {
85
- method: "post";
86
- path: "/auth/logout";
87
- summary: string;
88
- description: string;
89
- security: {
90
- Bearer: never[];
91
- }[];
92
- responses: {
93
- 200: {
94
- content: {
95
- 'application/json': {
96
- schema: z.ZodObject<{
97
- message: z.ZodString;
98
- }, z.core.$strip>;
99
- };
100
- };
101
- description: string;
102
- };
103
- };
104
- tags: string[];
105
- } & {
106
- getRoutingPath(): "/auth/logout";
107
- };
108
- export declare const meRouteDef: {
109
- method: "get";
110
- path: "/auth/me";
111
- summary: string;
112
- description: string;
113
- security: {
114
- Bearer: never[];
115
- }[];
116
- responses: {
117
- 200: {
118
- content: {
119
- 'application/json': {
120
- schema: z.ZodObject<{
121
- user: z.ZodObject<{
122
- id: z.ZodString;
123
- email: z.ZodString;
124
- role: z.ZodEnum<{
125
- admin: "admin";
126
- viewer: "viewer";
127
- }>;
128
- two_factor_enabled: z.ZodBoolean;
129
- }, z.core.$strip>;
130
- }, z.core.$strip>;
131
- };
132
- };
133
- description: string;
134
- };
135
- 401: {
136
- content: {
137
- 'application/json': {
138
- schema: z.ZodObject<{
139
- error: z.ZodString;
140
- message: z.ZodOptional<z.ZodString>;
141
- code: z.ZodOptional<z.ZodString>;
142
- requestId: z.ZodOptional<z.ZodString>;
143
- }, z.core.$strip>;
144
- };
145
- };
146
- description: string;
147
- };
148
- 404: {
149
- content: {
150
- 'application/json': {
151
- schema: z.ZodObject<{
152
- error: z.ZodString;
153
- message: z.ZodOptional<z.ZodString>;
154
- code: z.ZodOptional<z.ZodString>;
155
- requestId: z.ZodOptional<z.ZodString>;
156
- }, z.core.$strip>;
157
- };
158
- };
159
- description: string;
160
- };
161
- };
162
- tags: string[];
163
- } & {
164
- getRoutingPath(): "/auth/me";
165
- };
166
- export declare const checkAuthRequiredRouteDef: {
167
- method: "get";
168
- path: "/auth/check";
169
- summary: string;
170
- description: string;
171
- responses: {
172
- 200: {
173
- content: {
174
- 'application/json': {
175
- schema: z.ZodObject<{
176
- auth_required: z.ZodBoolean;
177
- }, z.core.$strip>;
178
- };
179
- };
180
- description: string;
181
- };
182
- };
183
- tags: string[];
184
- } & {
185
- getRoutingPath(): "/auth/check";
186
- };
187
- //# sourceMappingURL=auth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/routes/api/openapi/auth.ts"],"names":[],"mappings":"AAMA,OAAO,EAAe,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAQnD,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmDxB,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;CAmBzB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmCrB,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;CAkBpC,CAAC"}