@kapeta/local-cluster-service 0.23.0 → 0.24.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/CHANGELOG.md +7 -0
- package/dist/cjs/src/assets/routes.js +23 -0
- package/dist/cjs/src/definitionsManager.d.ts +1 -0
- package/dist/cjs/src/definitionsManager.js +7 -0
- package/dist/esm/src/assets/routes.js +23 -0
- package/dist/esm/src/definitionsManager.d.ts +1 -0
- package/dist/esm/src/definitionsManager.js +7 -0
- package/package.json +1 -1
- package/src/assets/routes.ts +24 -0
- package/src/definitionsManager.ts +8 -0
package/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
# [0.24.0](https://github.com/kapetacom/local-cluster-service/compare/v0.23.0...v0.24.0) (2023-10-27)
|
2
|
+
|
3
|
+
|
4
|
+
### Features
|
5
|
+
|
6
|
+
* Add endpoint for getting all installed versions for asset ([#90](https://github.com/kapetacom/local-cluster-service/issues/90)) ([fc593ba](https://github.com/kapetacom/local-cluster-service/commit/fc593babec99a7a67d6b6855c93546eb6cadd461))
|
7
|
+
|
1
8
|
# [0.23.0](https://github.com/kapetacom/local-cluster-service/compare/v0.22.2...v0.23.0) (2023-10-24)
|
2
9
|
|
3
10
|
|
@@ -8,6 +8,7 @@ const yaml_1 = __importDefault(require("yaml"));
|
|
8
8
|
const assetManager_1 = require("../assetManager");
|
9
9
|
const cors_1 = require("../middleware/cors");
|
10
10
|
const stringBody_1 = require("../middleware/stringBody");
|
11
|
+
const definitionsManager_1 = require("../definitionsManager");
|
11
12
|
function parseBody(req) {
|
12
13
|
switch (req.headers['content-type']) {
|
13
14
|
case 'application/json':
|
@@ -53,6 +54,28 @@ router.get('/read', async (req, res) => {
|
|
53
54
|
res.status(400).send({ error: err.message });
|
54
55
|
}
|
55
56
|
});
|
57
|
+
/**
|
58
|
+
* Get all versions for asset name
|
59
|
+
*/
|
60
|
+
router.get('/versions', async (req, res) => {
|
61
|
+
if (!req.query.ref) {
|
62
|
+
res.status(400).send({ error: 'Query parameter "ref" is missing' });
|
63
|
+
return;
|
64
|
+
}
|
65
|
+
const ensure = req.query.ensure !== 'false';
|
66
|
+
try {
|
67
|
+
const versions = await definitionsManager_1.definitionsManager.getVersions(req.query.ref);
|
68
|
+
if (versions) {
|
69
|
+
res.send(versions);
|
70
|
+
}
|
71
|
+
else {
|
72
|
+
res.status(404).send({ error: 'Asset not found' });
|
73
|
+
}
|
74
|
+
}
|
75
|
+
catch (err) {
|
76
|
+
res.status(400).send({ error: err.message });
|
77
|
+
}
|
78
|
+
});
|
56
79
|
/**
|
57
80
|
* Creates a new local file and registers it as an asset
|
58
81
|
*/
|
@@ -7,6 +7,7 @@ declare class DefinitionsManager {
|
|
7
7
|
exists(ref: string): Promise<boolean>;
|
8
8
|
getProviderDefinitions(): Promise<DefinitionInfo[]>;
|
9
9
|
getDefinition(ref: string): Promise<DefinitionInfo | undefined>;
|
10
|
+
getVersions(assetName: string): Promise<DefinitionInfo[]>;
|
10
11
|
clearCache(): void;
|
11
12
|
}
|
12
13
|
export declare const definitionsManager: DefinitionsManager;
|
@@ -132,6 +132,13 @@ class DefinitionsManager {
|
|
132
132
|
return (0, nodejs_utils_1.parseKapetaUri)(`${d.definition.metadata.name}:${d.version}`).id === uri.id;
|
133
133
|
});
|
134
134
|
}
|
135
|
+
async getVersions(assetName) {
|
136
|
+
const uri = (0, nodejs_utils_1.parseKapetaUri)(assetName);
|
137
|
+
const definitions = await this.getDefinitions();
|
138
|
+
return definitions.filter((d) => {
|
139
|
+
return d.definition.metadata.name === uri.fullName;
|
140
|
+
});
|
141
|
+
}
|
135
142
|
clearCache() {
|
136
143
|
cacheManager_1.cacheManager.removePrefix('definitionsManager:');
|
137
144
|
}
|
@@ -8,6 +8,7 @@ const yaml_1 = __importDefault(require("yaml"));
|
|
8
8
|
const assetManager_1 = require("../assetManager");
|
9
9
|
const cors_1 = require("../middleware/cors");
|
10
10
|
const stringBody_1 = require("../middleware/stringBody");
|
11
|
+
const definitionsManager_1 = require("../definitionsManager");
|
11
12
|
function parseBody(req) {
|
12
13
|
switch (req.headers['content-type']) {
|
13
14
|
case 'application/json':
|
@@ -53,6 +54,28 @@ router.get('/read', async (req, res) => {
|
|
53
54
|
res.status(400).send({ error: err.message });
|
54
55
|
}
|
55
56
|
});
|
57
|
+
/**
|
58
|
+
* Get all versions for asset name
|
59
|
+
*/
|
60
|
+
router.get('/versions', async (req, res) => {
|
61
|
+
if (!req.query.ref) {
|
62
|
+
res.status(400).send({ error: 'Query parameter "ref" is missing' });
|
63
|
+
return;
|
64
|
+
}
|
65
|
+
const ensure = req.query.ensure !== 'false';
|
66
|
+
try {
|
67
|
+
const versions = await definitionsManager_1.definitionsManager.getVersions(req.query.ref);
|
68
|
+
if (versions) {
|
69
|
+
res.send(versions);
|
70
|
+
}
|
71
|
+
else {
|
72
|
+
res.status(404).send({ error: 'Asset not found' });
|
73
|
+
}
|
74
|
+
}
|
75
|
+
catch (err) {
|
76
|
+
res.status(400).send({ error: err.message });
|
77
|
+
}
|
78
|
+
});
|
56
79
|
/**
|
57
80
|
* Creates a new local file and registers it as an asset
|
58
81
|
*/
|
@@ -7,6 +7,7 @@ declare class DefinitionsManager {
|
|
7
7
|
exists(ref: string): Promise<boolean>;
|
8
8
|
getProviderDefinitions(): Promise<DefinitionInfo[]>;
|
9
9
|
getDefinition(ref: string): Promise<DefinitionInfo | undefined>;
|
10
|
+
getVersions(assetName: string): Promise<DefinitionInfo[]>;
|
10
11
|
clearCache(): void;
|
11
12
|
}
|
12
13
|
export declare const definitionsManager: DefinitionsManager;
|
@@ -132,6 +132,13 @@ class DefinitionsManager {
|
|
132
132
|
return (0, nodejs_utils_1.parseKapetaUri)(`${d.definition.metadata.name}:${d.version}`).id === uri.id;
|
133
133
|
});
|
134
134
|
}
|
135
|
+
async getVersions(assetName) {
|
136
|
+
const uri = (0, nodejs_utils_1.parseKapetaUri)(assetName);
|
137
|
+
const definitions = await this.getDefinitions();
|
138
|
+
return definitions.filter((d) => {
|
139
|
+
return d.definition.metadata.name === uri.fullName;
|
140
|
+
});
|
141
|
+
}
|
135
142
|
clearCache() {
|
136
143
|
cacheManager_1.cacheManager.removePrefix('definitionsManager:');
|
137
144
|
}
|
package/package.json
CHANGED
package/src/assets/routes.ts
CHANGED
@@ -6,6 +6,7 @@ import { assetManager } from '../assetManager';
|
|
6
6
|
import { corsHandler } from '../middleware/cors';
|
7
7
|
|
8
8
|
import { stringBody, StringBodyRequest } from '../middleware/stringBody';
|
9
|
+
import { definitionsManager } from '../definitionsManager';
|
9
10
|
|
10
11
|
function parseBody(req: StringBodyRequest) {
|
11
12
|
switch (req.headers['content-type']) {
|
@@ -58,6 +59,29 @@ router.get('/read', async (req: Request, res: Response) => {
|
|
58
59
|
}
|
59
60
|
});
|
60
61
|
|
62
|
+
/**
|
63
|
+
* Get all versions for asset name
|
64
|
+
*/
|
65
|
+
router.get('/versions', async (req: Request, res: Response) => {
|
66
|
+
if (!req.query.ref) {
|
67
|
+
res.status(400).send({ error: 'Query parameter "ref" is missing' });
|
68
|
+
return;
|
69
|
+
}
|
70
|
+
|
71
|
+
const ensure = req.query.ensure !== 'false';
|
72
|
+
|
73
|
+
try {
|
74
|
+
const versions = await definitionsManager.getVersions(req.query.ref as string);
|
75
|
+
if (versions) {
|
76
|
+
res.send(versions);
|
77
|
+
} else {
|
78
|
+
res.status(404).send({ error: 'Asset not found' });
|
79
|
+
}
|
80
|
+
} catch (err: any) {
|
81
|
+
res.status(400).send({ error: err.message });
|
82
|
+
}
|
83
|
+
});
|
84
|
+
|
61
85
|
/**
|
62
86
|
* Creates a new local file and registers it as an asset
|
63
87
|
*/
|
@@ -165,6 +165,14 @@ class DefinitionsManager {
|
|
165
165
|
});
|
166
166
|
}
|
167
167
|
|
168
|
+
public async getVersions(assetName: string) {
|
169
|
+
const uri = parseKapetaUri(assetName);
|
170
|
+
const definitions = await this.getDefinitions();
|
171
|
+
return definitions.filter((d) => {
|
172
|
+
return d.definition.metadata.name === uri.fullName;
|
173
|
+
});
|
174
|
+
}
|
175
|
+
|
168
176
|
public clearCache() {
|
169
177
|
cacheManager.removePrefix('definitionsManager:');
|
170
178
|
}
|