@package-broker/core 0.7.1 → 0.8.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 (197) hide show
  1. package/dist/factory.d.ts +2 -2
  2. package/dist/factory.d.ts.map +1 -1
  3. package/dist/factory.js +186 -66
  4. package/dist/factory.js.map +1 -1
  5. package/dist/modules/admin/admin.handlers.d.ts +25 -0
  6. package/dist/modules/admin/admin.handlers.d.ts.map +1 -0
  7. package/dist/modules/admin/admin.handlers.js +97 -0
  8. package/dist/modules/admin/admin.handlers.js.map +1 -0
  9. package/dist/modules/admin/admin.routes.d.ts +147 -0
  10. package/dist/modules/admin/admin.routes.d.ts.map +1 -0
  11. package/dist/modules/admin/admin.routes.js +130 -0
  12. package/dist/modules/admin/admin.routes.js.map +1 -0
  13. package/dist/modules/admin/index.d.ts +9 -0
  14. package/dist/modules/admin/index.d.ts.map +1 -0
  15. package/dist/modules/admin/index.js +19 -0
  16. package/dist/modules/admin/index.js.map +1 -0
  17. package/dist/modules/artifacts/artifacts.handlers.d.ts +18 -0
  18. package/dist/modules/artifacts/artifacts.handlers.d.ts.map +1 -0
  19. package/dist/modules/artifacts/artifacts.handlers.js +47 -0
  20. package/dist/modules/artifacts/artifacts.handlers.js.map +1 -0
  21. package/dist/modules/artifacts/artifacts.routes.d.ts +80 -0
  22. package/dist/modules/artifacts/artifacts.routes.d.ts.map +1 -0
  23. package/dist/modules/artifacts/artifacts.routes.js +79 -0
  24. package/dist/modules/artifacts/artifacts.routes.js.map +1 -0
  25. package/dist/modules/artifacts/index.d.ts +8 -0
  26. package/dist/modules/artifacts/index.d.ts.map +1 -0
  27. package/dist/modules/artifacts/index.js +14 -0
  28. package/dist/modules/artifacts/index.js.map +1 -0
  29. package/dist/modules/auth/auth.handlers.d.ts +51 -0
  30. package/dist/modules/auth/auth.handlers.d.ts.map +1 -0
  31. package/dist/modules/auth/auth.handlers.js +278 -0
  32. package/dist/modules/auth/auth.handlers.js.map +1 -0
  33. package/dist/modules/auth/auth.routes.d.ts +187 -0
  34. package/dist/modules/auth/auth.routes.d.ts.map +1 -0
  35. package/dist/modules/auth/auth.routes.js +136 -0
  36. package/dist/modules/auth/auth.routes.js.map +1 -0
  37. package/dist/modules/auth/index.d.ts +11 -0
  38. package/dist/modules/auth/index.d.ts.map +1 -0
  39. package/dist/modules/auth/index.js +34 -0
  40. package/dist/modules/auth/index.js.map +1 -0
  41. package/dist/modules/composer/composer.handlers.d.ts +3 -0
  42. package/dist/modules/composer/composer.handlers.d.ts.map +1 -0
  43. package/dist/modules/composer/composer.handlers.js +12 -0
  44. package/dist/modules/composer/composer.handlers.js.map +1 -0
  45. package/dist/modules/composer/index.d.ts +11 -0
  46. package/dist/modules/composer/index.d.ts.map +1 -0
  47. package/dist/modules/composer/index.js +40 -0
  48. package/dist/modules/composer/index.js.map +1 -0
  49. package/dist/modules/packages/index.d.ts +8 -0
  50. package/dist/modules/packages/index.d.ts.map +1 -0
  51. package/dist/modules/packages/index.js +19 -0
  52. package/dist/modules/packages/index.js.map +1 -0
  53. package/dist/modules/packages/packages.handlers.d.ts +50 -0
  54. package/dist/modules/packages/packages.handlers.d.ts.map +1 -0
  55. package/dist/modules/packages/packages.handlers.js +670 -0
  56. package/dist/modules/packages/packages.handlers.js.map +1 -0
  57. package/dist/modules/packages/packages.routes.d.ts +172 -0
  58. package/dist/modules/packages/packages.routes.d.ts.map +1 -0
  59. package/dist/modules/packages/packages.routes.js +160 -0
  60. package/dist/modules/packages/packages.routes.js.map +1 -0
  61. package/dist/modules/repositories/index.d.ts +8 -0
  62. package/dist/modules/repositories/index.d.ts.map +1 -0
  63. package/dist/modules/repositories/index.js +19 -0
  64. package/dist/modules/repositories/index.js.map +1 -0
  65. package/dist/modules/repositories/repositories.handlers.d.ts +29 -0
  66. package/dist/modules/repositories/repositories.handlers.d.ts.map +1 -0
  67. package/dist/modules/repositories/repositories.handlers.js +261 -0
  68. package/dist/modules/repositories/repositories.handlers.js.map +1 -0
  69. package/dist/modules/repositories/repositories.routes.d.ts +451 -0
  70. package/dist/modules/repositories/repositories.routes.d.ts.map +1 -0
  71. package/dist/modules/repositories/repositories.routes.js +264 -0
  72. package/dist/modules/repositories/repositories.routes.js.map +1 -0
  73. package/dist/modules/system/index.d.ts +8 -0
  74. package/dist/modules/system/index.d.ts.map +1 -0
  75. package/dist/modules/system/index.js +13 -0
  76. package/dist/modules/system/index.js.map +1 -0
  77. package/dist/modules/system/system.handlers.d.ts +9 -0
  78. package/dist/modules/system/system.handlers.d.ts.map +1 -0
  79. package/dist/modules/system/system.handlers.js +22 -0
  80. package/dist/modules/system/system.handlers.js.map +1 -0
  81. package/dist/modules/system/system.routes.d.ts +24 -0
  82. package/dist/modules/system/system.routes.d.ts.map +1 -0
  83. package/dist/modules/system/system.routes.js +27 -0
  84. package/dist/modules/system/system.routes.js.map +1 -0
  85. package/dist/modules/tokens/index.d.ts +8 -0
  86. package/dist/modules/tokens/index.d.ts.map +1 -0
  87. package/dist/modules/tokens/index.js +16 -0
  88. package/dist/modules/tokens/index.js.map +1 -0
  89. package/dist/modules/tokens/tokens.handlers.d.ts +22 -0
  90. package/dist/modules/tokens/tokens.handlers.d.ts.map +1 -0
  91. package/dist/modules/tokens/tokens.handlers.js +150 -0
  92. package/dist/modules/tokens/tokens.handlers.js.map +1 -0
  93. package/dist/modules/tokens/tokens.routes.d.ts +202 -0
  94. package/dist/modules/tokens/tokens.routes.d.ts.map +1 -0
  95. package/dist/modules/tokens/tokens.routes.js +143 -0
  96. package/dist/modules/tokens/tokens.routes.js.map +1 -0
  97. package/dist/modules/users/index.d.ts +8 -0
  98. package/dist/modules/users/index.d.ts.map +1 -0
  99. package/dist/modules/users/index.js +15 -0
  100. package/dist/modules/users/index.js.map +1 -0
  101. package/dist/modules/users/users.handlers.d.ts +6 -0
  102. package/dist/modules/users/users.handlers.d.ts.map +1 -0
  103. package/dist/modules/users/users.handlers.js +120 -0
  104. package/dist/modules/users/users.handlers.js.map +1 -0
  105. package/dist/modules/users/users.routes.d.ts +190 -0
  106. package/dist/modules/users/users.routes.d.ts.map +1 -0
  107. package/dist/modules/users/users.routes.js +132 -0
  108. package/dist/modules/users/users.routes.js.map +1 -0
  109. package/dist/routes/api/artifacts.d.ts +5 -3
  110. package/dist/routes/api/artifacts.d.ts.map +1 -1
  111. package/dist/routes/api/artifacts.js +2 -2
  112. package/dist/routes/api/artifacts.js.map +1 -1
  113. package/dist/routes/api/auth.d.ts +5 -3
  114. package/dist/routes/api/auth.d.ts.map +1 -1
  115. package/dist/routes/api/auth.js +2 -12
  116. package/dist/routes/api/auth.js.map +1 -1
  117. package/dist/routes/api/index.d.ts +1 -0
  118. package/dist/routes/api/index.d.ts.map +1 -1
  119. package/dist/routes/api/index.js +1 -0
  120. package/dist/routes/api/index.js.map +1 -1
  121. package/dist/routes/api/openapi/artifacts.d.ts +80 -0
  122. package/dist/routes/api/openapi/artifacts.d.ts.map +1 -0
  123. package/dist/routes/api/openapi/artifacts.js +73 -0
  124. package/dist/routes/api/openapi/artifacts.js.map +1 -0
  125. package/dist/routes/api/openapi/auth.d.ts +187 -0
  126. package/dist/routes/api/openapi/auth.d.ts.map +1 -0
  127. package/dist/routes/api/openapi/auth.js +135 -0
  128. package/dist/routes/api/openapi/auth.js.map +1 -0
  129. package/dist/routes/api/openapi/health.d.ts +24 -0
  130. package/dist/routes/api/openapi/health.d.ts.map +1 -0
  131. package/dist/routes/api/openapi/health.js +25 -0
  132. package/dist/routes/api/openapi/health.js.map +1 -0
  133. package/dist/routes/api/openapi/index.d.ts +10 -0
  134. package/dist/routes/api/openapi/index.d.ts.map +1 -0
  135. package/dist/routes/api/openapi/index.js +16 -0
  136. package/dist/routes/api/openapi/index.js.map +1 -0
  137. package/dist/routes/api/openapi/packages.d.ts +172 -0
  138. package/dist/routes/api/openapi/packages.d.ts.map +1 -0
  139. package/dist/routes/api/openapi/packages.js +126 -0
  140. package/dist/routes/api/openapi/packages.js.map +1 -0
  141. package/dist/routes/api/openapi/repositories.d.ts +451 -0
  142. package/dist/routes/api/openapi/repositories.d.ts.map +1 -0
  143. package/dist/routes/api/openapi/repositories.js +238 -0
  144. package/dist/routes/api/openapi/repositories.js.map +1 -0
  145. package/dist/routes/api/openapi/settings.d.ts +90 -0
  146. package/dist/routes/api/openapi/settings.d.ts.map +1 -0
  147. package/dist/routes/api/openapi/settings.js +72 -0
  148. package/dist/routes/api/openapi/settings.js.map +1 -0
  149. package/dist/routes/api/openapi/stats.d.ts +59 -0
  150. package/dist/routes/api/openapi/stats.d.ts.map +1 -0
  151. package/dist/routes/api/openapi/stats.js +53 -0
  152. package/dist/routes/api/openapi/stats.js.map +1 -0
  153. package/dist/routes/api/openapi/tokens.d.ts +202 -0
  154. package/dist/routes/api/openapi/tokens.d.ts.map +1 -0
  155. package/dist/routes/api/openapi/tokens.js +132 -0
  156. package/dist/routes/api/openapi/tokens.js.map +1 -0
  157. package/dist/routes/api/openapi/users.d.ts +190 -0
  158. package/dist/routes/api/openapi/users.d.ts.map +1 -0
  159. package/dist/routes/api/openapi/users.js +126 -0
  160. package/dist/routes/api/openapi/users.js.map +1 -0
  161. package/dist/routes/api/packages.d.ts +7 -4
  162. package/dist/routes/api/packages.d.ts.map +1 -1
  163. package/dist/routes/api/packages.js +6 -7
  164. package/dist/routes/api/packages.js.map +1 -1
  165. package/dist/routes/api/repositories.d.ts +8 -6
  166. package/dist/routes/api/repositories.d.ts.map +1 -1
  167. package/dist/routes/api/repositories.js +26 -22
  168. package/dist/routes/api/repositories.js.map +1 -1
  169. package/dist/routes/api/settings.d.ts +4 -3
  170. package/dist/routes/api/settings.d.ts.map +1 -1
  171. package/dist/routes/api/settings.js +1 -1
  172. package/dist/routes/api/settings.js.map +1 -1
  173. package/dist/routes/api/stats.d.ts +3 -3
  174. package/dist/routes/api/stats.d.ts.map +1 -1
  175. package/dist/routes/api/stats.js +1 -2
  176. package/dist/routes/api/stats.js.map +1 -1
  177. package/dist/routes/api/tokens.d.ts +6 -5
  178. package/dist/routes/api/tokens.d.ts.map +1 -1
  179. package/dist/routes/api/tokens.js +4 -7
  180. package/dist/routes/api/tokens.js.map +1 -1
  181. package/dist/routes/api/types.d.ts +17 -0
  182. package/dist/routes/api/types.d.ts.map +1 -0
  183. package/dist/routes/api/types.js +7 -0
  184. package/dist/routes/api/types.js.map +1 -0
  185. package/dist/routes/api/users.d.ts +5 -4
  186. package/dist/routes/api/users.d.ts.map +1 -1
  187. package/dist/routes/api/users.js +2 -12
  188. package/dist/routes/api/users.js.map +1 -1
  189. package/dist/routes/composer.js +1 -1
  190. package/dist/routes/composer.js.map +1 -1
  191. package/dist/routes/health.d.ts +3 -1
  192. package/dist/routes/health.d.ts.map +1 -1
  193. package/dist/routes/health.js.map +1 -1
  194. package/dist/utils/encryption.d.ts.map +1 -1
  195. package/dist/utils/encryption.js +8 -0
  196. package/dist/utils/encryption.js.map +1 -1
  197. package/package.json +3 -2
@@ -0,0 +1,261 @@
1
+ /*
2
+ * PACKAGE.broker
3
+ * Copyright (C) 2025 Łukasz Bajsarowicz
4
+ * Licensed under AGPL-3.0
5
+ */
6
+ import { repositories } from '../../db/schema';
7
+ import { eq } from 'drizzle-orm';
8
+ import { buildAuthHeaders, COMPOSER_USER_AGENT } from '@package-broker/shared';
9
+ import { encryptCredentials, decryptCredentials } from '../../utils/encryption';
10
+ import { nanoid } from 'nanoid';
11
+ import { getAnalytics } from '../../utils/analytics';
12
+ export async function listRepositories(c) {
13
+ const db = c.get('database');
14
+ const allRepos = await db.select().from(repositories).orderBy(repositories.created_at);
15
+ const repos = allRepos.map((repo) => ({
16
+ id: repo.id,
17
+ url: repo.url,
18
+ vcs_type: repo.vcs_type,
19
+ credential_type: repo.credential_type,
20
+ composer_json_path: repo.composer_json_path,
21
+ package_filter: repo.package_filter,
22
+ status: repo.status,
23
+ error_message: repo.error_message,
24
+ last_synced_at: repo.last_synced_at,
25
+ created_at: repo.created_at,
26
+ }));
27
+ return c.json(repos);
28
+ }
29
+ export async function createRepository(c) {
30
+ const validated = c.req.valid('json');
31
+ if (!c.env.ENCRYPTION_KEY || typeof c.env.ENCRYPTION_KEY !== 'string') {
32
+ return c.json({ error: 'Internal Server Error', message: 'Server configuration error: ENCRYPTION_KEY is not set' }, 500);
33
+ }
34
+ const encryptedCredentials = await encryptCredentials(JSON.stringify(validated.auth_credentials), c.env.ENCRYPTION_KEY);
35
+ const db = c.get('database');
36
+ const repoId = nanoid();
37
+ await db.insert(repositories).values({
38
+ id: repoId,
39
+ url: validated.url,
40
+ vcs_type: validated.vcs_type,
41
+ credential_type: validated.credential_type,
42
+ auth_credentials: encryptedCredentials,
43
+ composer_json_path: validated.composer_json_path || null,
44
+ package_filter: validated.package_filter || null,
45
+ status: 'pending',
46
+ created_at: Math.floor(Date.now() / 1000),
47
+ });
48
+ const [repo] = await db.select().from(repositories).where(eq(repositories.id, repoId)).limit(1);
49
+ const analytics = getAnalytics();
50
+ const requestId = c.get('requestId');
51
+ const session = c.get('session');
52
+ analytics.trackRepositoryCreated({
53
+ requestId,
54
+ repoId,
55
+ userId: session?.userId,
56
+ });
57
+ return c.json({
58
+ id: repo.id,
59
+ url: repo.url,
60
+ vcs_type: repo.vcs_type,
61
+ credential_type: repo.credential_type,
62
+ composer_json_path: repo.composer_json_path,
63
+ package_filter: repo.package_filter,
64
+ status: repo.status,
65
+ error_message: repo.error_message,
66
+ last_synced_at: repo.last_synced_at,
67
+ created_at: repo.created_at,
68
+ }, 200);
69
+ }
70
+ export async function getRepository(c) {
71
+ const { id } = c.req.valid('param');
72
+ const db = c.get('database');
73
+ const [repo] = await db.select().from(repositories).where(eq(repositories.id, id)).limit(1);
74
+ if (!repo) {
75
+ return c.json({ error: 'Not Found', message: 'Repository not found' }, 404);
76
+ }
77
+ return c.json({
78
+ id: repo.id,
79
+ url: repo.url,
80
+ vcs_type: repo.vcs_type,
81
+ credential_type: repo.credential_type,
82
+ composer_json_path: repo.composer_json_path,
83
+ package_filter: repo.package_filter,
84
+ status: repo.status,
85
+ error_message: repo.error_message,
86
+ last_synced_at: repo.last_synced_at,
87
+ created_at: repo.created_at,
88
+ });
89
+ }
90
+ export async function deleteRepository(c) {
91
+ const { id } = c.req.valid('param');
92
+ const db = c.get('database');
93
+ if (id === 'packagist') {
94
+ return c.json({ error: 'Forbidden', message: 'The Public Packagist repository cannot be deleted' }, 403);
95
+ }
96
+ const [repo] = await db.select().from(repositories).where(eq(repositories.id, id)).limit(1);
97
+ if (!repo) {
98
+ return c.json({ error: 'Not Found', message: 'Repository not found' }, 404);
99
+ }
100
+ await db.delete(repositories).where(eq(repositories.id, id));
101
+ const analytics = getAnalytics();
102
+ const requestId = c.get('requestId');
103
+ const session = c.get('session');
104
+ analytics.trackRepositoryDeleted({
105
+ requestId,
106
+ repoId: id,
107
+ userId: session?.userId,
108
+ });
109
+ return c.json({ message: 'Repository deleted' });
110
+ }
111
+ export async function updateRepository(c) {
112
+ const { id } = c.req.valid('param');
113
+ const validated = c.req.valid('json');
114
+ if (id === 'packagist') {
115
+ return c.json({ error: 'Forbidden', message: 'The Public Packagist repository cannot be edited' }, 403);
116
+ }
117
+ const db = c.get('database');
118
+ const [existing] = await db.select().from(repositories).where(eq(repositories.id, id)).limit(1);
119
+ if (!existing) {
120
+ return c.json({ error: 'Not Found', message: 'Repository not found' }, 404);
121
+ }
122
+ const updateData = {};
123
+ if (validated.url !== undefined) {
124
+ updateData.url = validated.url;
125
+ }
126
+ if (validated.vcs_type !== undefined) {
127
+ updateData.vcs_type = validated.vcs_type;
128
+ }
129
+ if (validated.credential_type !== undefined) {
130
+ updateData.credential_type = validated.credential_type;
131
+ }
132
+ if (validated.auth_credentials !== undefined) {
133
+ if (!c.env.ENCRYPTION_KEY || typeof c.env.ENCRYPTION_KEY !== 'string') {
134
+ return c.json({ error: 'Internal Server Error', message: 'Server configuration error: ENCRYPTION_KEY is not set' }, 500);
135
+ }
136
+ updateData.auth_credentials = await encryptCredentials(JSON.stringify(validated.auth_credentials), c.env.ENCRYPTION_KEY);
137
+ }
138
+ if (validated.composer_json_path !== undefined) {
139
+ updateData.composer_json_path = validated.composer_json_path || null;
140
+ }
141
+ if (validated.package_filter !== undefined) {
142
+ updateData.package_filter = validated.package_filter || null;
143
+ }
144
+ if (Object.keys(updateData).length > 0) {
145
+ await db.update(repositories).set(updateData).where(eq(repositories.id, id));
146
+ }
147
+ const [repo] = await db.select().from(repositories).where(eq(repositories.id, id)).limit(1);
148
+ const analytics = getAnalytics();
149
+ const requestId = c.get('requestId');
150
+ const session = c.get('session');
151
+ analytics.trackRepositoryUpdated({
152
+ requestId,
153
+ repoId: id,
154
+ userId: session?.userId,
155
+ });
156
+ return c.json({
157
+ id: repo.id,
158
+ url: repo.url,
159
+ vcs_type: repo.vcs_type,
160
+ credential_type: repo.credential_type,
161
+ composer_json_path: repo.composer_json_path,
162
+ package_filter: repo.package_filter,
163
+ status: repo.status,
164
+ error_message: repo.error_message,
165
+ last_synced_at: repo.last_synced_at,
166
+ created_at: repo.created_at,
167
+ });
168
+ }
169
+ export async function verifyRepository(c) {
170
+ const { id } = c.req.valid('param');
171
+ const db = c.get('database');
172
+ const [repo] = await db.select().from(repositories).where(eq(repositories.id, id)).limit(1);
173
+ if (!repo) {
174
+ return c.json({ error: 'Not Found', message: 'Repository not found' }, 404);
175
+ }
176
+ const result = await validateRepositoryCredentials(repo, c.env.ENCRYPTION_KEY);
177
+ return c.json({
178
+ valid: result.success,
179
+ message: result.success ? 'Connection verified successfully' : result.error || 'Verification failed',
180
+ });
181
+ }
182
+ export async function syncRepositoryNow(c) {
183
+ const { id } = c.req.valid('param');
184
+ const db = c.get('database');
185
+ if (id === 'packagist') {
186
+ return c.json({ error: 'Forbidden', message: 'The Public Packagist repository cannot be tested' }, 403);
187
+ }
188
+ const [repo] = await db.select().from(repositories).where(eq(repositories.id, id)).limit(1);
189
+ if (!repo) {
190
+ return c.json({ error: 'Not Found', message: 'Repository not found' }, 404);
191
+ }
192
+ await db
193
+ .update(repositories)
194
+ .set({ status: 'syncing' })
195
+ .where(eq(repositories.id, id));
196
+ const result = await validateRepositoryCredentials(repo, c.env.ENCRYPTION_KEY);
197
+ if (!result.success) {
198
+ await db
199
+ .update(repositories)
200
+ .set({
201
+ status: 'error',
202
+ error_message: result.error || 'Connection test failed',
203
+ last_synced_at: Math.floor(Date.now() / 1000),
204
+ })
205
+ .where(eq(repositories.id, id));
206
+ return c.json({
207
+ message: 'Sync triggered',
208
+ }, 200);
209
+ }
210
+ await db
211
+ .update(repositories)
212
+ .set({
213
+ status: 'active',
214
+ error_message: null,
215
+ last_synced_at: Math.floor(Date.now() / 1000),
216
+ })
217
+ .where(eq(repositories.id, id));
218
+ if (c.env.KV) {
219
+ await c.env.KV.delete('packages:all:packages.json');
220
+ await c.env.KV.delete('packages:all:metadata');
221
+ }
222
+ return c.json({
223
+ message: 'Sync triggered',
224
+ status: 'active',
225
+ });
226
+ }
227
+ async function validateRepositoryCredentials(repo, encryptionKey) {
228
+ try {
229
+ const credentialsJson = await decryptCredentials(repo.auth_credentials, encryptionKey);
230
+ const credentials = JSON.parse(credentialsJson);
231
+ const authHeaders = buildAuthHeaders(repo.credential_type, credentials);
232
+ const baseUrl = repo.url.replace(/\/$/, '');
233
+ const packagesUrl = `${baseUrl}/packages.json`;
234
+ const response = await fetch(packagesUrl, {
235
+ headers: {
236
+ ...authHeaders,
237
+ Accept: 'application/json',
238
+ 'User-Agent': COMPOSER_USER_AGENT,
239
+ },
240
+ });
241
+ if (response.status === 401 || response.status === 403) {
242
+ return { success: false, error: 'Authentication failed. Please check your credentials.' };
243
+ }
244
+ if (response.status === 404) {
245
+ return { success: false, error: 'packages.json not found at repository URL.' };
246
+ }
247
+ if (!response.ok) {
248
+ return { success: false, error: `HTTP ${response.status}: ${response.statusText}` };
249
+ }
250
+ await response.json();
251
+ return { success: true };
252
+ }
253
+ catch (error) {
254
+ console.error('Repository validation error:', error);
255
+ return {
256
+ success: false,
257
+ error: error instanceof Error ? error.message : 'Unknown error during validation',
258
+ };
259
+ }
260
+ }
261
+ //# sourceMappingURL=repositories.handlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repositories.handlers.js","sourceRoot":"","sources":["../../../src/modules/repositories/repositories.handlers.ts"],"names":[],"mappings":"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"}