@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.
- package/dist/factory.d.ts +2 -2
- package/dist/factory.d.ts.map +1 -1
- package/dist/factory.js +186 -66
- package/dist/factory.js.map +1 -1
- package/dist/modules/admin/admin.handlers.d.ts +25 -0
- package/dist/modules/admin/admin.handlers.d.ts.map +1 -0
- package/dist/modules/admin/admin.handlers.js +97 -0
- package/dist/modules/admin/admin.handlers.js.map +1 -0
- package/dist/modules/admin/admin.routes.d.ts +147 -0
- package/dist/modules/admin/admin.routes.d.ts.map +1 -0
- package/dist/modules/admin/admin.routes.js +130 -0
- package/dist/modules/admin/admin.routes.js.map +1 -0
- package/dist/modules/admin/index.d.ts +9 -0
- package/dist/modules/admin/index.d.ts.map +1 -0
- package/dist/modules/admin/index.js +19 -0
- package/dist/modules/admin/index.js.map +1 -0
- package/dist/modules/artifacts/artifacts.handlers.d.ts +18 -0
- package/dist/modules/artifacts/artifacts.handlers.d.ts.map +1 -0
- package/dist/modules/artifacts/artifacts.handlers.js +47 -0
- package/dist/modules/artifacts/artifacts.handlers.js.map +1 -0
- package/dist/modules/artifacts/artifacts.routes.d.ts +80 -0
- package/dist/modules/artifacts/artifacts.routes.d.ts.map +1 -0
- package/dist/modules/artifacts/artifacts.routes.js +79 -0
- package/dist/modules/artifacts/artifacts.routes.js.map +1 -0
- package/dist/modules/artifacts/index.d.ts +8 -0
- package/dist/modules/artifacts/index.d.ts.map +1 -0
- package/dist/modules/artifacts/index.js +14 -0
- package/dist/modules/artifacts/index.js.map +1 -0
- package/dist/modules/auth/auth.handlers.d.ts +51 -0
- package/dist/modules/auth/auth.handlers.d.ts.map +1 -0
- package/dist/modules/auth/auth.handlers.js +278 -0
- package/dist/modules/auth/auth.handlers.js.map +1 -0
- package/dist/modules/auth/auth.routes.d.ts +187 -0
- package/dist/modules/auth/auth.routes.d.ts.map +1 -0
- package/dist/modules/auth/auth.routes.js +136 -0
- package/dist/modules/auth/auth.routes.js.map +1 -0
- package/dist/modules/auth/index.d.ts +11 -0
- package/dist/modules/auth/index.d.ts.map +1 -0
- package/dist/modules/auth/index.js +34 -0
- package/dist/modules/auth/index.js.map +1 -0
- package/dist/modules/composer/composer.handlers.d.ts +3 -0
- package/dist/modules/composer/composer.handlers.d.ts.map +1 -0
- package/dist/modules/composer/composer.handlers.js +12 -0
- package/dist/modules/composer/composer.handlers.js.map +1 -0
- package/dist/modules/composer/index.d.ts +11 -0
- package/dist/modules/composer/index.d.ts.map +1 -0
- package/dist/modules/composer/index.js +40 -0
- package/dist/modules/composer/index.js.map +1 -0
- package/dist/modules/packages/index.d.ts +8 -0
- package/dist/modules/packages/index.d.ts.map +1 -0
- package/dist/modules/packages/index.js +19 -0
- package/dist/modules/packages/index.js.map +1 -0
- package/dist/modules/packages/packages.handlers.d.ts +50 -0
- package/dist/modules/packages/packages.handlers.d.ts.map +1 -0
- package/dist/modules/packages/packages.handlers.js +670 -0
- package/dist/modules/packages/packages.handlers.js.map +1 -0
- package/dist/modules/packages/packages.routes.d.ts +172 -0
- package/dist/modules/packages/packages.routes.d.ts.map +1 -0
- package/dist/modules/packages/packages.routes.js +160 -0
- package/dist/modules/packages/packages.routes.js.map +1 -0
- package/dist/modules/repositories/index.d.ts +8 -0
- package/dist/modules/repositories/index.d.ts.map +1 -0
- package/dist/modules/repositories/index.js +19 -0
- package/dist/modules/repositories/index.js.map +1 -0
- package/dist/modules/repositories/repositories.handlers.d.ts +29 -0
- package/dist/modules/repositories/repositories.handlers.d.ts.map +1 -0
- package/dist/modules/repositories/repositories.handlers.js +261 -0
- package/dist/modules/repositories/repositories.handlers.js.map +1 -0
- package/dist/modules/repositories/repositories.routes.d.ts +451 -0
- package/dist/modules/repositories/repositories.routes.d.ts.map +1 -0
- package/dist/modules/repositories/repositories.routes.js +264 -0
- package/dist/modules/repositories/repositories.routes.js.map +1 -0
- package/dist/modules/system/index.d.ts +8 -0
- package/dist/modules/system/index.d.ts.map +1 -0
- package/dist/modules/system/index.js +13 -0
- package/dist/modules/system/index.js.map +1 -0
- package/dist/modules/system/system.handlers.d.ts +9 -0
- package/dist/modules/system/system.handlers.d.ts.map +1 -0
- package/dist/modules/system/system.handlers.js +22 -0
- package/dist/modules/system/system.handlers.js.map +1 -0
- package/dist/modules/system/system.routes.d.ts +24 -0
- package/dist/modules/system/system.routes.d.ts.map +1 -0
- package/dist/modules/system/system.routes.js +27 -0
- package/dist/modules/system/system.routes.js.map +1 -0
- package/dist/modules/tokens/index.d.ts +8 -0
- package/dist/modules/tokens/index.d.ts.map +1 -0
- package/dist/modules/tokens/index.js +16 -0
- package/dist/modules/tokens/index.js.map +1 -0
- package/dist/modules/tokens/tokens.handlers.d.ts +22 -0
- package/dist/modules/tokens/tokens.handlers.d.ts.map +1 -0
- package/dist/modules/tokens/tokens.handlers.js +150 -0
- package/dist/modules/tokens/tokens.handlers.js.map +1 -0
- package/dist/modules/tokens/tokens.routes.d.ts +202 -0
- package/dist/modules/tokens/tokens.routes.d.ts.map +1 -0
- package/dist/modules/tokens/tokens.routes.js +143 -0
- package/dist/modules/tokens/tokens.routes.js.map +1 -0
- package/dist/modules/users/index.d.ts +8 -0
- package/dist/modules/users/index.d.ts.map +1 -0
- package/dist/modules/users/index.js +15 -0
- package/dist/modules/users/index.js.map +1 -0
- package/dist/modules/users/users.handlers.d.ts +6 -0
- package/dist/modules/users/users.handlers.d.ts.map +1 -0
- package/dist/modules/users/users.handlers.js +120 -0
- package/dist/modules/users/users.handlers.js.map +1 -0
- package/dist/modules/users/users.routes.d.ts +190 -0
- package/dist/modules/users/users.routes.d.ts.map +1 -0
- package/dist/modules/users/users.routes.js +132 -0
- package/dist/modules/users/users.routes.js.map +1 -0
- package/dist/routes/api/artifacts.d.ts +5 -3
- package/dist/routes/api/artifacts.d.ts.map +1 -1
- package/dist/routes/api/artifacts.js +2 -2
- package/dist/routes/api/artifacts.js.map +1 -1
- package/dist/routes/api/auth.d.ts +5 -3
- package/dist/routes/api/auth.d.ts.map +1 -1
- package/dist/routes/api/auth.js +2 -12
- package/dist/routes/api/auth.js.map +1 -1
- package/dist/routes/api/index.d.ts +1 -0
- package/dist/routes/api/index.d.ts.map +1 -1
- package/dist/routes/api/index.js +1 -0
- package/dist/routes/api/index.js.map +1 -1
- package/dist/routes/api/openapi/artifacts.d.ts +80 -0
- package/dist/routes/api/openapi/artifacts.d.ts.map +1 -0
- package/dist/routes/api/openapi/artifacts.js +73 -0
- package/dist/routes/api/openapi/artifacts.js.map +1 -0
- package/dist/routes/api/openapi/auth.d.ts +187 -0
- package/dist/routes/api/openapi/auth.d.ts.map +1 -0
- package/dist/routes/api/openapi/auth.js +135 -0
- package/dist/routes/api/openapi/auth.js.map +1 -0
- package/dist/routes/api/openapi/health.d.ts +24 -0
- package/dist/routes/api/openapi/health.d.ts.map +1 -0
- package/dist/routes/api/openapi/health.js +25 -0
- package/dist/routes/api/openapi/health.js.map +1 -0
- package/dist/routes/api/openapi/index.d.ts +10 -0
- package/dist/routes/api/openapi/index.d.ts.map +1 -0
- package/dist/routes/api/openapi/index.js +16 -0
- package/dist/routes/api/openapi/index.js.map +1 -0
- package/dist/routes/api/openapi/packages.d.ts +172 -0
- package/dist/routes/api/openapi/packages.d.ts.map +1 -0
- package/dist/routes/api/openapi/packages.js +126 -0
- package/dist/routes/api/openapi/packages.js.map +1 -0
- package/dist/routes/api/openapi/repositories.d.ts +451 -0
- package/dist/routes/api/openapi/repositories.d.ts.map +1 -0
- package/dist/routes/api/openapi/repositories.js +238 -0
- package/dist/routes/api/openapi/repositories.js.map +1 -0
- package/dist/routes/api/openapi/settings.d.ts +90 -0
- package/dist/routes/api/openapi/settings.d.ts.map +1 -0
- package/dist/routes/api/openapi/settings.js +72 -0
- package/dist/routes/api/openapi/settings.js.map +1 -0
- package/dist/routes/api/openapi/stats.d.ts +59 -0
- package/dist/routes/api/openapi/stats.d.ts.map +1 -0
- package/dist/routes/api/openapi/stats.js +53 -0
- package/dist/routes/api/openapi/stats.js.map +1 -0
- package/dist/routes/api/openapi/tokens.d.ts +202 -0
- package/dist/routes/api/openapi/tokens.d.ts.map +1 -0
- package/dist/routes/api/openapi/tokens.js +132 -0
- package/dist/routes/api/openapi/tokens.js.map +1 -0
- package/dist/routes/api/openapi/users.d.ts +190 -0
- package/dist/routes/api/openapi/users.d.ts.map +1 -0
- package/dist/routes/api/openapi/users.js +126 -0
- package/dist/routes/api/openapi/users.js.map +1 -0
- package/dist/routes/api/packages.d.ts +7 -4
- package/dist/routes/api/packages.d.ts.map +1 -1
- package/dist/routes/api/packages.js +6 -7
- package/dist/routes/api/packages.js.map +1 -1
- package/dist/routes/api/repositories.d.ts +8 -6
- package/dist/routes/api/repositories.d.ts.map +1 -1
- package/dist/routes/api/repositories.js +26 -22
- package/dist/routes/api/repositories.js.map +1 -1
- package/dist/routes/api/settings.d.ts +4 -3
- package/dist/routes/api/settings.d.ts.map +1 -1
- package/dist/routes/api/settings.js +1 -1
- package/dist/routes/api/settings.js.map +1 -1
- package/dist/routes/api/stats.d.ts +3 -3
- package/dist/routes/api/stats.d.ts.map +1 -1
- package/dist/routes/api/stats.js +1 -2
- package/dist/routes/api/stats.js.map +1 -1
- package/dist/routes/api/tokens.d.ts +6 -5
- package/dist/routes/api/tokens.d.ts.map +1 -1
- package/dist/routes/api/tokens.js +4 -7
- package/dist/routes/api/tokens.js.map +1 -1
- package/dist/routes/api/types.d.ts +17 -0
- package/dist/routes/api/types.d.ts.map +1 -0
- package/dist/routes/api/types.js +7 -0
- package/dist/routes/api/types.js.map +1 -0
- package/dist/routes/api/users.d.ts +5 -4
- package/dist/routes/api/users.d.ts.map +1 -1
- package/dist/routes/api/users.js +2 -12
- package/dist/routes/api/users.js.map +1 -1
- package/dist/routes/composer.js +1 -1
- package/dist/routes/composer.js.map +1 -1
- package/dist/routes/health.d.ts +3 -1
- package/dist/routes/health.d.ts.map +1 -1
- package/dist/routes/health.js.map +1 -1
- package/dist/utils/encryption.d.ts.map +1 -1
- package/dist/utils/encryption.js +8 -0
- package/dist/utils/encryption.js.map +1 -1
- package/package.json +3 -2
|
@@ -0,0 +1,130 @@
|
|
|
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 { statsResponseSchema, settingsResponseSchema, updatePackagistMirroringRequestSchema, errorResponseSchema } from '@package-broker/shared';
|
|
8
|
+
// Route paths are relative to module mount points
|
|
9
|
+
export const getStatsRouteDef = createRoute({
|
|
10
|
+
method: 'get',
|
|
11
|
+
path: '/',
|
|
12
|
+
summary: 'Get statistics',
|
|
13
|
+
description: 'Get dashboard statistics',
|
|
14
|
+
security: [{ Bearer: [] }],
|
|
15
|
+
responses: {
|
|
16
|
+
200: {
|
|
17
|
+
content: {
|
|
18
|
+
'application/json': {
|
|
19
|
+
schema: statsResponseSchema,
|
|
20
|
+
},
|
|
21
|
+
},
|
|
22
|
+
description: 'Statistics',
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
tags: ['Statistics'],
|
|
26
|
+
});
|
|
27
|
+
// Note: getPackageStats is kept here temporarily but should be moved to packages module
|
|
28
|
+
// For now, it will be mounted separately at /api/packages/:name/:version/stats
|
|
29
|
+
export const getPackageStatsRouteDef = createRoute({
|
|
30
|
+
method: 'get',
|
|
31
|
+
path: '/{name}/{version}/stats',
|
|
32
|
+
summary: 'Get package statistics',
|
|
33
|
+
description: 'Get download statistics for a specific package version',
|
|
34
|
+
security: [{ Bearer: [] }],
|
|
35
|
+
request: {
|
|
36
|
+
params: z.object({
|
|
37
|
+
name: z.string().openapi({
|
|
38
|
+
param: {
|
|
39
|
+
name: 'name',
|
|
40
|
+
in: 'path',
|
|
41
|
+
},
|
|
42
|
+
}),
|
|
43
|
+
version: z.string().openapi({
|
|
44
|
+
param: {
|
|
45
|
+
name: 'version',
|
|
46
|
+
in: 'path',
|
|
47
|
+
},
|
|
48
|
+
}),
|
|
49
|
+
}),
|
|
50
|
+
},
|
|
51
|
+
responses: {
|
|
52
|
+
200: {
|
|
53
|
+
content: {
|
|
54
|
+
'application/json': {
|
|
55
|
+
schema: z.object({
|
|
56
|
+
downloads: z.number(),
|
|
57
|
+
last_downloaded: z.number().nullable(),
|
|
58
|
+
}),
|
|
59
|
+
},
|
|
60
|
+
},
|
|
61
|
+
description: 'Package statistics',
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
tags: ['Statistics'],
|
|
65
|
+
});
|
|
66
|
+
export const getSettingsRouteDef = createRoute({
|
|
67
|
+
method: 'get',
|
|
68
|
+
path: '/',
|
|
69
|
+
summary: 'Get settings',
|
|
70
|
+
description: 'Get all settings including KV availability',
|
|
71
|
+
security: [{ Bearer: [] }],
|
|
72
|
+
responses: {
|
|
73
|
+
200: {
|
|
74
|
+
content: {
|
|
75
|
+
'application/json': {
|
|
76
|
+
schema: settingsResponseSchema,
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
description: 'Settings',
|
|
80
|
+
},
|
|
81
|
+
},
|
|
82
|
+
tags: ['Settings'],
|
|
83
|
+
});
|
|
84
|
+
export const updatePackagistMirroringRouteDef = createRoute({
|
|
85
|
+
method: 'put',
|
|
86
|
+
path: '/packagist-mirroring',
|
|
87
|
+
summary: 'Update Packagist mirroring',
|
|
88
|
+
description: 'Enable or disable public Packagist mirroring',
|
|
89
|
+
security: [{ Bearer: [] }],
|
|
90
|
+
request: {
|
|
91
|
+
body: {
|
|
92
|
+
content: {
|
|
93
|
+
'application/json': {
|
|
94
|
+
schema: updatePackagistMirroringRequestSchema,
|
|
95
|
+
},
|
|
96
|
+
},
|
|
97
|
+
},
|
|
98
|
+
},
|
|
99
|
+
responses: {
|
|
100
|
+
200: {
|
|
101
|
+
content: {
|
|
102
|
+
'application/json': {
|
|
103
|
+
schema: z.object({
|
|
104
|
+
packagist_mirroring_enabled: z.boolean(),
|
|
105
|
+
message: z.string(),
|
|
106
|
+
}),
|
|
107
|
+
},
|
|
108
|
+
},
|
|
109
|
+
description: 'Settings updated',
|
|
110
|
+
},
|
|
111
|
+
400: {
|
|
112
|
+
content: {
|
|
113
|
+
'application/json': {
|
|
114
|
+
schema: errorResponseSchema,
|
|
115
|
+
},
|
|
116
|
+
},
|
|
117
|
+
description: 'Invalid request',
|
|
118
|
+
},
|
|
119
|
+
503: {
|
|
120
|
+
content: {
|
|
121
|
+
'application/json': {
|
|
122
|
+
schema: errorResponseSchema,
|
|
123
|
+
},
|
|
124
|
+
},
|
|
125
|
+
description: 'KV not available',
|
|
126
|
+
},
|
|
127
|
+
},
|
|
128
|
+
tags: ['Settings'],
|
|
129
|
+
});
|
|
130
|
+
//# sourceMappingURL=admin.routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"admin.routes.js","sourceRoot":"","sources":["../../../src/modules/admin/admin.routes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { OpenAPIHono } from '@hono/zod-openapi';
|
|
2
|
+
import type { AppBindings, AppVariables } from '../../factory';
|
|
3
|
+
declare const adminModule: OpenAPIHono<{
|
|
4
|
+
Bindings: AppBindings;
|
|
5
|
+
Variables: AppVariables;
|
|
6
|
+
}, {}, "/">;
|
|
7
|
+
export { isPackagistMirroringEnabled, isPackageCachingEnabled, PACKAGIST_MIRRORING_KEY, PACKAGE_CACHING_KEY } from './admin.handlers';
|
|
8
|
+
export default adminModule;
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/admin/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAI/D,QAAA,MAAM,WAAW;cAA+B,WAAW;eAAa,YAAY;WAAK,CAAC;AAU1F,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEtI,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* PACKAGE.broker
|
|
3
|
+
* Copyright (C) 2025 Łukasz Bajsarowicz
|
|
4
|
+
* Licensed under AGPL-3.0
|
|
5
|
+
*/
|
|
6
|
+
import { OpenAPIHono } from '@hono/zod-openapi';
|
|
7
|
+
import * as routes from './admin.routes';
|
|
8
|
+
import * as handlers from './admin.handlers';
|
|
9
|
+
const adminModule = new OpenAPIHono();
|
|
10
|
+
// All routes are protected (session middleware applied in factory.ts via protectedRoutes)
|
|
11
|
+
adminModule.openapi(routes.getStatsRouteDef, handlers.getStats);
|
|
12
|
+
// Note: getPackageStats is mounted separately in factory.ts at /api/packages/:name/:version/stats
|
|
13
|
+
// adminModule.openapi(routes.getPackageStatsRouteDef, handlers.getPackageStats as any);
|
|
14
|
+
adminModule.openapi(routes.getSettingsRouteDef, handlers.getSettings);
|
|
15
|
+
adminModule.openapi(routes.updatePackagistMirroringRouteDef, handlers.updatePackagistMirroring);
|
|
16
|
+
// Re-export utility functions for use by other modules
|
|
17
|
+
export { isPackagistMirroringEnabled, isPackageCachingEnabled, PACKAGIST_MIRRORING_KEY, PACKAGE_CACHING_KEY } from './admin.handlers';
|
|
18
|
+
export default adminModule;
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/admin/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAE7C,MAAM,WAAW,GAAG,IAAI,WAAW,EAAsD,CAAC;AAE1F,0FAA0F;AAC1F,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,gBAAgB,EAAE,QAAQ,CAAC,QAAe,CAAC,CAAC;AACvE,kGAAkG;AAClG,wFAAwF;AACxF,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,QAAQ,CAAC,WAAkB,CAAC,CAAC;AAC7E,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,gCAAgC,EAAE,QAAQ,CAAC,wBAA+B,CAAC,CAAC;AAEvG,uDAAuD;AACvD,OAAO,EAAE,2BAA2B,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEtI,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { OpenAPIContext } from '../../routes/api/types';
|
|
2
|
+
import type { DatabasePort } from '../../ports';
|
|
3
|
+
import type { StorageDriver } from '../../storage/driver';
|
|
4
|
+
export interface ArtifactsRouteEnv {
|
|
5
|
+
Bindings: {
|
|
6
|
+
DB: D1Database;
|
|
7
|
+
STORAGE: StorageDriver;
|
|
8
|
+
};
|
|
9
|
+
Variables: {
|
|
10
|
+
database: DatabasePort;
|
|
11
|
+
storage: StorageDriver;
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
export declare function deleteArtifact(c: OpenAPIContext<ArtifactsRouteEnv>): Promise<Response>;
|
|
15
|
+
export declare function cleanupArtifacts(c: OpenAPIContext<ArtifactsRouteEnv, {
|
|
16
|
+
retention_days?: number;
|
|
17
|
+
}>): Promise<Response>;
|
|
18
|
+
//# sourceMappingURL=artifacts.handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts.handlers.d.ts","sourceRoot":"","sources":["../../../src/modules/artifacts/artifacts.handlers.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAIhD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE;QACR,EAAE,EAAE,UAAU,CAAC;QACf,OAAO,EAAE,aAAa,CAAC;KACxB,CAAC;IACF,SAAS,EAAE;QACT,QAAQ,EAAE,YAAY,CAAC;QACvB,OAAO,EAAE,aAAa,CAAC;KACxB,CAAC;CACH;AAED,wBAAsB,cAAc,CAAC,CAAC,EAAE,cAAc,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAgB5F;AAED,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,cAAc,CAAC,iBAAiB,EAAE;IAAE,cAAc,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CA8B3H"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* PACKAGE.broker
|
|
3
|
+
* Copyright (C) 2025 Łukasz Bajsarowicz
|
|
4
|
+
* Licensed under AGPL-3.0
|
|
5
|
+
*/
|
|
6
|
+
import { artifacts } from '../../db/schema';
|
|
7
|
+
import { eq, lt } from 'drizzle-orm';
|
|
8
|
+
import { buildStorageKey } from '../../storage/driver';
|
|
9
|
+
export async function deleteArtifact(c) {
|
|
10
|
+
const { id } = c.req.valid('param');
|
|
11
|
+
const db = c.get('database');
|
|
12
|
+
const [artifact] = await db.select().from(artifacts).where(eq(artifacts.id, id)).limit(1);
|
|
13
|
+
if (!artifact) {
|
|
14
|
+
return c.json({ error: 'Not Found', message: 'Artifact not found' }, 404);
|
|
15
|
+
}
|
|
16
|
+
const storageKey = buildStorageKey('private', artifact.repo_id, artifact.package_name, artifact.version);
|
|
17
|
+
await c.env.STORAGE.delete(storageKey);
|
|
18
|
+
await db.delete(artifacts).where(eq(artifacts.id, id));
|
|
19
|
+
return c.json({ message: 'Artifact deleted' });
|
|
20
|
+
}
|
|
21
|
+
export async function cleanupArtifacts(c) {
|
|
22
|
+
const body = c.req.valid('json');
|
|
23
|
+
const retentionDays = body.retention_days ?? 90;
|
|
24
|
+
const cutoffTimestamp = Math.floor(Date.now() / 1000) - retentionDays * 24 * 60 * 60;
|
|
25
|
+
const db = c.get('database');
|
|
26
|
+
const oldArtifacts = await db
|
|
27
|
+
.select()
|
|
28
|
+
.from(artifacts)
|
|
29
|
+
.where(lt(artifacts.last_downloaded_at, cutoffTimestamp));
|
|
30
|
+
let deletedCount = 0;
|
|
31
|
+
for (const artifact of oldArtifacts) {
|
|
32
|
+
const storageKey = buildStorageKey('private', artifact.repo_id, artifact.package_name, artifact.version);
|
|
33
|
+
try {
|
|
34
|
+
await c.env.STORAGE.delete(storageKey);
|
|
35
|
+
await db.delete(artifacts).where(eq(artifacts.id, artifact.id));
|
|
36
|
+
deletedCount++;
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
console.error(`Error deleting artifact ${artifact.id}:`, error);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return c.json({
|
|
43
|
+
message: 'Cleanup completed',
|
|
44
|
+
deleted_count: deletedCount,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=artifacts.handlers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts.handlers.js","sourceRoot":"","sources":["../../../src/modules/artifacts/artifacts.handlers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { z } from '@hono/zod-openapi';
|
|
2
|
+
export declare const deleteArtifactRouteDef: {
|
|
3
|
+
method: "delete";
|
|
4
|
+
path: "/{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(): "/:id";
|
|
43
|
+
};
|
|
44
|
+
export declare const cleanupArtifactsRouteDef: {
|
|
45
|
+
method: "post";
|
|
46
|
+
path: "/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(): "/cleanup";
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=artifacts.routes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts.routes.d.ts","sourceRoot":"","sources":["../../../src/modules/artifacts/artifacts.routes.ts"],"names":[],"mappings":"AAMA,OAAO,EAAe,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAInD,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqCjC,CAAC;AAEH,eAAO,MAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BnC,CAAC"}
|
|
@@ -0,0 +1,79 @@
|
|
|
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
|
+
// Route paths are relative to module mount at /api/artifacts
|
|
9
|
+
export const deleteArtifactRouteDef = createRoute({
|
|
10
|
+
method: 'delete',
|
|
11
|
+
path: '/{id}',
|
|
12
|
+
summary: 'Delete artifact',
|
|
13
|
+
description: 'Delete an artifact from storage and database',
|
|
14
|
+
security: [{ Bearer: [] }],
|
|
15
|
+
request: {
|
|
16
|
+
params: z.object({
|
|
17
|
+
id: z.string().openapi({
|
|
18
|
+
param: {
|
|
19
|
+
name: 'id',
|
|
20
|
+
in: 'path',
|
|
21
|
+
},
|
|
22
|
+
}),
|
|
23
|
+
}),
|
|
24
|
+
},
|
|
25
|
+
responses: {
|
|
26
|
+
200: {
|
|
27
|
+
content: {
|
|
28
|
+
'application/json': {
|
|
29
|
+
schema: z.object({
|
|
30
|
+
message: z.string(),
|
|
31
|
+
}),
|
|
32
|
+
},
|
|
33
|
+
},
|
|
34
|
+
description: 'Artifact deleted',
|
|
35
|
+
},
|
|
36
|
+
404: {
|
|
37
|
+
content: {
|
|
38
|
+
'application/json': {
|
|
39
|
+
schema: errorResponseSchema,
|
|
40
|
+
},
|
|
41
|
+
},
|
|
42
|
+
description: 'Artifact not found',
|
|
43
|
+
},
|
|
44
|
+
},
|
|
45
|
+
tags: ['Artifacts'],
|
|
46
|
+
});
|
|
47
|
+
export const cleanupArtifactsRouteDef = createRoute({
|
|
48
|
+
method: 'post',
|
|
49
|
+
path: '/cleanup',
|
|
50
|
+
summary: 'Cleanup artifacts',
|
|
51
|
+
description: 'Clean up old artifacts based on retention days',
|
|
52
|
+
security: [{ Bearer: [] }],
|
|
53
|
+
request: {
|
|
54
|
+
body: {
|
|
55
|
+
content: {
|
|
56
|
+
'application/json': {
|
|
57
|
+
schema: z.object({
|
|
58
|
+
retention_days: z.number().int().positive().default(90).optional(),
|
|
59
|
+
}),
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
},
|
|
64
|
+
responses: {
|
|
65
|
+
200: {
|
|
66
|
+
content: {
|
|
67
|
+
'application/json': {
|
|
68
|
+
schema: z.object({
|
|
69
|
+
message: z.string(),
|
|
70
|
+
deleted_count: z.number(),
|
|
71
|
+
}),
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
description: 'Cleanup completed',
|
|
75
|
+
},
|
|
76
|
+
},
|
|
77
|
+
tags: ['Artifacts'],
|
|
78
|
+
});
|
|
79
|
+
//# sourceMappingURL=artifacts.routes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"artifacts.routes.js","sourceRoot":"","sources":["../../../src/modules/artifacts/artifacts.routes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAE7D,6DAA6D;AAC7D,MAAM,CAAC,MAAM,sBAAsB,GAAG,WAAW,CAAC;IAChD,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,OAAO;IACb,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,CAAC,OAAO,CAAC;gBACrB,KAAK,EAAE;oBACL,IAAI,EAAE,IAAI;oBACV,EAAE,EAAE,MAAM;iBACX;aACF,CAAC;SACH,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,UAAU;IAChB,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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { OpenAPIHono } from '@hono/zod-openapi';
|
|
2
|
+
import type { AppBindings, AppVariables } from '../../factory';
|
|
3
|
+
declare const artifactsModule: OpenAPIHono<{
|
|
4
|
+
Bindings: AppBindings;
|
|
5
|
+
Variables: AppVariables;
|
|
6
|
+
}, {}, "/">;
|
|
7
|
+
export default artifactsModule;
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/artifacts/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAI/D,QAAA,MAAM,eAAe;cAA+B,WAAW;eAAa,YAAY;WAAK,CAAC;AAM9F,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* PACKAGE.broker
|
|
3
|
+
* Copyright (C) 2025 Łukasz Bajsarowicz
|
|
4
|
+
* Licensed under AGPL-3.0
|
|
5
|
+
*/
|
|
6
|
+
import { OpenAPIHono } from '@hono/zod-openapi';
|
|
7
|
+
import * as routes from './artifacts.routes';
|
|
8
|
+
import * as handlers from './artifacts.handlers';
|
|
9
|
+
const artifactsModule = new OpenAPIHono();
|
|
10
|
+
// All routes are protected (session middleware applied in factory.ts via protectedRoutes)
|
|
11
|
+
artifactsModule.openapi(routes.deleteArtifactRouteDef, handlers.deleteArtifact);
|
|
12
|
+
artifactsModule.openapi(routes.cleanupArtifactsRouteDef, handlers.cleanupArtifacts);
|
|
13
|
+
export default artifactsModule;
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/artifacts/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,OAAO,KAAK,MAAM,MAAM,oBAAoB,CAAC;AAC7C,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AAEjD,MAAM,eAAe,GAAG,IAAI,WAAW,EAAsD,CAAC;AAE9F,0FAA0F;AAC1F,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,sBAAsB,EAAE,QAAQ,CAAC,cAAqB,CAAC,CAAC;AACvF,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,wBAAwB,EAAE,QAAQ,CAAC,gBAAuB,CAAC,CAAC;AAE3F,eAAe,eAAe,CAAC"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { Context } from 'hono';
|
|
2
|
+
/**
|
|
3
|
+
* POST /api/auth/login
|
|
4
|
+
* Authenticate admin user and return session token
|
|
5
|
+
*/
|
|
6
|
+
export declare const loginHandler: (c: any) => Promise<Response>;
|
|
7
|
+
/**
|
|
8
|
+
* POST /api/auth/logout
|
|
9
|
+
* Invalidate session token
|
|
10
|
+
*/
|
|
11
|
+
export declare const logoutHandler: (c: any) => Promise<Response>;
|
|
12
|
+
/**
|
|
13
|
+
* GET /api/auth/me
|
|
14
|
+
* Get current authenticated user
|
|
15
|
+
*/
|
|
16
|
+
export declare const meHandler: (c: Context) => Promise<Response>;
|
|
17
|
+
/**
|
|
18
|
+
* GET /api/auth/check
|
|
19
|
+
* Check if auth is required / setup is needed
|
|
20
|
+
*/
|
|
21
|
+
export declare const checkAuthRequiredHandler: (c: any) => Promise<Response>;
|
|
22
|
+
/**
|
|
23
|
+
* POST /api/setup
|
|
24
|
+
* Create initial admin user
|
|
25
|
+
*/
|
|
26
|
+
export declare function setupHandler(c: Context): Promise<Response>;
|
|
27
|
+
/**
|
|
28
|
+
* POST /api/auth/2fa/setup
|
|
29
|
+
* Start 2FA setup flow
|
|
30
|
+
*/
|
|
31
|
+
export declare function setup2FAHandler(c: Context): Promise<Response>;
|
|
32
|
+
/**
|
|
33
|
+
* POST /api/auth/2fa/enable
|
|
34
|
+
* Confirm 2FA setup with code
|
|
35
|
+
*/
|
|
36
|
+
export declare function enable2FAHandler(c: Context): Promise<Response>;
|
|
37
|
+
/**
|
|
38
|
+
* POST /api/auth/2fa/disable
|
|
39
|
+
* Disable 2FA
|
|
40
|
+
*/
|
|
41
|
+
export declare function disable2FAHandler(c: Context): Promise<Response>;
|
|
42
|
+
/**
|
|
43
|
+
* POST /api/auth/invite/accept
|
|
44
|
+
* Accept invite and set password
|
|
45
|
+
*/
|
|
46
|
+
export declare function acceptInviteHandler(c: Context): Promise<Response>;
|
|
47
|
+
/**
|
|
48
|
+
* Middleware to verify session token
|
|
49
|
+
*/
|
|
50
|
+
export declare function sessionMiddleware(c: Context, next: () => Promise<void>): Promise<Response | void>;
|
|
51
|
+
//# sourceMappingURL=auth.handlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.handlers.d.ts","sourceRoot":"","sources":["../../../src/modules/auth/auth.handlers.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAoBpC;;;GAGG;AACH,eAAO,MAAM,YAAY,GAAU,GAAG,GAAG,KAAG,OAAO,CAAC,QAAQ,CAuE3D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,GAAU,GAAG,GAAG,KAAG,OAAO,CAAC,QAAQ,CAU5D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,SAAS,GAAU,GAAG,OAAO,KAAG,OAAO,CAAC,QAAQ,CAuB5D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,GAAU,GAAG,GAAG,KAAG,OAAO,CAAC,QAAQ,CASvE,CAAC;AAEF;;;GAGG;AACH,wBAAsB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAqChE;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAUnE;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAwBpE;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAOrE;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAuBvE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CA+BvG"}
|