@kapeta/local-cluster-service 0.24.2 → 0.25.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/.eslintrc.cjs +8 -0
- package/.github/workflows/check-license.yml +18 -0
- package/CHANGELOG.md +24 -0
- package/LICENSE +38 -21
- package/README.md +4 -0
- package/definitions.d.ts +5 -0
- package/dist/cjs/index.d.ts +4 -0
- package/dist/cjs/index.js +16 -2
- package/dist/cjs/src/RepositoryWatcher.d.ts +5 -0
- package/dist/cjs/src/RepositoryWatcher.js +27 -5
- package/dist/cjs/src/api.d.ts +4 -0
- package/dist/cjs/src/api.js +4 -0
- package/dist/cjs/src/assetManager.d.ts +5 -1
- package/dist/cjs/src/assetManager.js +4 -0
- package/dist/cjs/src/assets/routes.d.ts +4 -0
- package/dist/cjs/src/assets/routes.js +4 -0
- package/dist/cjs/src/attachments/routes.d.ts +4 -0
- package/dist/cjs/src/attachments/routes.js +4 -0
- package/dist/cjs/src/authManager.d.ts +4 -0
- package/dist/cjs/src/authManager.js +4 -0
- package/dist/cjs/src/cacheManager.d.ts +4 -0
- package/dist/cjs/src/cacheManager.js +4 -0
- package/dist/cjs/src/clusterService.d.ts +4 -0
- package/dist/cjs/src/clusterService.js +4 -0
- package/dist/cjs/src/codeGeneratorManager.d.ts +7 -3
- package/dist/cjs/src/codeGeneratorManager.js +4 -0
- package/dist/cjs/src/config/routes.d.ts +4 -0
- package/dist/cjs/src/config/routes.js +4 -0
- package/dist/cjs/src/configManager.d.ts +4 -0
- package/dist/cjs/src/configManager.js +4 -0
- package/dist/cjs/src/containerManager.d.ts +4 -0
- package/dist/cjs/src/containerManager.js +4 -0
- package/dist/cjs/src/definitionsManager.d.ts +4 -0
- package/dist/cjs/src/definitionsManager.js +4 -0
- package/dist/cjs/src/filesystem/routes.d.ts +4 -0
- package/dist/cjs/src/filesystem/routes.js +4 -0
- package/dist/cjs/src/filesystemManager.d.ts +4 -0
- package/dist/cjs/src/filesystemManager.js +4 -0
- package/dist/cjs/src/identities/routes.d.ts +4 -0
- package/dist/cjs/src/identities/routes.js +4 -0
- package/dist/cjs/src/instanceManager.d.ts +4 -0
- package/dist/cjs/src/instanceManager.js +4 -0
- package/dist/cjs/src/instances/routes.d.ts +4 -0
- package/dist/cjs/src/instances/routes.js +4 -0
- package/dist/cjs/src/middleware/cors.d.ts +4 -0
- package/dist/cjs/src/middleware/cors.js +4 -0
- package/dist/cjs/src/middleware/kapeta.d.ts +4 -0
- package/dist/cjs/src/middleware/kapeta.js +4 -0
- package/dist/cjs/src/middleware/stringBody.d.ts +4 -0
- package/dist/cjs/src/middleware/stringBody.js +4 -0
- package/dist/cjs/src/networkManager.d.ts +4 -0
- package/dist/cjs/src/networkManager.js +4 -0
- package/dist/cjs/src/operatorManager.d.ts +4 -0
- package/dist/cjs/src/operatorManager.js +4 -0
- package/dist/cjs/src/progressListener.d.ts +4 -0
- package/dist/cjs/src/progressListener.js +4 -0
- package/dist/cjs/src/providerManager.d.ts +4 -0
- package/dist/cjs/src/providerManager.js +4 -0
- package/dist/cjs/src/providers/routes.d.ts +4 -0
- package/dist/cjs/src/providers/routes.js +4 -0
- package/dist/cjs/src/proxy/routes.d.ts +4 -0
- package/dist/cjs/src/proxy/routes.js +4 -0
- package/dist/cjs/src/proxy/types/rest.d.ts +4 -0
- package/dist/cjs/src/proxy/types/rest.js +4 -0
- package/dist/cjs/src/proxy/types/web.d.ts +4 -0
- package/dist/cjs/src/proxy/types/web.js +4 -0
- package/dist/cjs/src/repositoryManager.d.ts +4 -0
- package/dist/cjs/src/repositoryManager.js +4 -0
- package/dist/cjs/src/serviceManager.d.ts +4 -0
- package/dist/cjs/src/serviceManager.js +4 -0
- package/dist/cjs/src/socketManager.d.ts +4 -0
- package/dist/cjs/src/socketManager.js +4 -0
- package/dist/cjs/src/storageService.d.ts +4 -0
- package/dist/cjs/src/storageService.js +4 -0
- package/dist/cjs/src/taskManager.d.ts +4 -0
- package/dist/cjs/src/taskManager.js +4 -0
- package/dist/cjs/src/tasks/routes.d.ts +4 -0
- package/dist/cjs/src/tasks/routes.js +4 -0
- package/dist/cjs/src/traffic/routes.d.ts +4 -0
- package/dist/cjs/src/traffic/routes.js +4 -0
- package/dist/cjs/src/types.d.ts +4 -0
- package/dist/cjs/src/types.js +4 -0
- package/dist/cjs/src/utils/BlockInstanceRunner.d.ts +4 -0
- package/dist/cjs/src/utils/BlockInstanceRunner.js +5 -1
- package/dist/cjs/src/utils/DefaultProviderInstaller.d.ts +4 -0
- package/dist/cjs/src/utils/DefaultProviderInstaller.js +4 -0
- package/dist/cjs/src/utils/LogData.d.ts +4 -0
- package/dist/cjs/src/utils/LogData.js +4 -0
- package/dist/cjs/src/utils/commandLineUtils.d.ts +5 -0
- package/dist/cjs/src/utils/commandLineUtils.js +11 -1
- package/dist/cjs/src/utils/pathTemplateParser.d.ts +4 -0
- package/dist/cjs/src/utils/pathTemplateParser.js +4 -0
- package/dist/cjs/src/utils/utils.d.ts +4 -0
- package/dist/cjs/src/utils/utils.js +4 -0
- package/dist/cjs/start.d.ts +4 -0
- package/dist/cjs/start.js +4 -0
- package/dist/cjs/test/proxy/types/rest.test.d.ts +4 -0
- package/dist/cjs/test/proxy/types/rest.test.js +4 -0
- package/dist/cjs/test/utils/pathTemplateParser.test.d.ts +4 -0
- package/dist/cjs/test/utils/pathTemplateParser.test.js +4 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.js +16 -2
- package/dist/esm/src/RepositoryWatcher.d.ts +5 -0
- package/dist/esm/src/RepositoryWatcher.js +27 -5
- package/dist/esm/src/api.d.ts +4 -0
- package/dist/esm/src/api.js +4 -0
- package/dist/esm/src/assetManager.d.ts +5 -1
- package/dist/esm/src/assetManager.js +4 -0
- package/dist/esm/src/assets/routes.d.ts +4 -0
- package/dist/esm/src/assets/routes.js +4 -0
- package/dist/esm/src/attachments/routes.d.ts +4 -0
- package/dist/esm/src/attachments/routes.js +4 -0
- package/dist/esm/src/authManager.d.ts +4 -0
- package/dist/esm/src/authManager.js +4 -0
- package/dist/esm/src/cacheManager.d.ts +4 -0
- package/dist/esm/src/cacheManager.js +4 -0
- package/dist/esm/src/clusterService.d.ts +4 -0
- package/dist/esm/src/clusterService.js +4 -0
- package/dist/esm/src/codeGeneratorManager.d.ts +7 -3
- package/dist/esm/src/codeGeneratorManager.js +4 -0
- package/dist/esm/src/config/routes.d.ts +4 -0
- package/dist/esm/src/config/routes.js +4 -0
- package/dist/esm/src/configManager.d.ts +4 -0
- package/dist/esm/src/configManager.js +4 -0
- package/dist/esm/src/containerManager.d.ts +4 -0
- package/dist/esm/src/containerManager.js +4 -0
- package/dist/esm/src/definitionsManager.d.ts +4 -0
- package/dist/esm/src/definitionsManager.js +4 -0
- package/dist/esm/src/filesystem/routes.d.ts +4 -0
- package/dist/esm/src/filesystem/routes.js +4 -0
- package/dist/esm/src/filesystemManager.d.ts +4 -0
- package/dist/esm/src/filesystemManager.js +4 -0
- package/dist/esm/src/identities/routes.d.ts +4 -0
- package/dist/esm/src/identities/routes.js +4 -0
- package/dist/esm/src/instanceManager.d.ts +4 -0
- package/dist/esm/src/instanceManager.js +4 -0
- package/dist/esm/src/instances/routes.d.ts +4 -0
- package/dist/esm/src/instances/routes.js +4 -0
- package/dist/esm/src/middleware/cors.d.ts +4 -0
- package/dist/esm/src/middleware/cors.js +4 -0
- package/dist/esm/src/middleware/kapeta.d.ts +4 -0
- package/dist/esm/src/middleware/kapeta.js +4 -0
- package/dist/esm/src/middleware/stringBody.d.ts +4 -0
- package/dist/esm/src/middleware/stringBody.js +4 -0
- package/dist/esm/src/networkManager.d.ts +4 -0
- package/dist/esm/src/networkManager.js +4 -0
- package/dist/esm/src/operatorManager.d.ts +4 -0
- package/dist/esm/src/operatorManager.js +4 -0
- package/dist/esm/src/progressListener.d.ts +4 -0
- package/dist/esm/src/progressListener.js +4 -0
- package/dist/esm/src/providerManager.d.ts +4 -0
- package/dist/esm/src/providerManager.js +4 -0
- package/dist/esm/src/providers/routes.d.ts +4 -0
- package/dist/esm/src/providers/routes.js +4 -0
- package/dist/esm/src/proxy/routes.d.ts +4 -0
- package/dist/esm/src/proxy/routes.js +4 -0
- package/dist/esm/src/proxy/types/rest.d.ts +4 -0
- package/dist/esm/src/proxy/types/rest.js +4 -0
- package/dist/esm/src/proxy/types/web.d.ts +4 -0
- package/dist/esm/src/proxy/types/web.js +4 -0
- package/dist/esm/src/repositoryManager.d.ts +4 -0
- package/dist/esm/src/repositoryManager.js +4 -0
- package/dist/esm/src/serviceManager.d.ts +4 -0
- package/dist/esm/src/serviceManager.js +4 -0
- package/dist/esm/src/socketManager.d.ts +4 -0
- package/dist/esm/src/socketManager.js +4 -0
- package/dist/esm/src/storageService.d.ts +4 -0
- package/dist/esm/src/storageService.js +4 -0
- package/dist/esm/src/taskManager.d.ts +4 -0
- package/dist/esm/src/taskManager.js +4 -0
- package/dist/esm/src/tasks/routes.d.ts +4 -0
- package/dist/esm/src/tasks/routes.js +4 -0
- package/dist/esm/src/traffic/routes.d.ts +4 -0
- package/dist/esm/src/traffic/routes.js +4 -0
- package/dist/esm/src/types.d.ts +4 -0
- package/dist/esm/src/types.js +4 -0
- package/dist/esm/src/utils/BlockInstanceRunner.d.ts +4 -0
- package/dist/esm/src/utils/BlockInstanceRunner.js +5 -1
- package/dist/esm/src/utils/DefaultProviderInstaller.d.ts +4 -0
- package/dist/esm/src/utils/DefaultProviderInstaller.js +4 -0
- package/dist/esm/src/utils/LogData.d.ts +4 -0
- package/dist/esm/src/utils/LogData.js +4 -0
- package/dist/esm/src/utils/commandLineUtils.d.ts +5 -0
- package/dist/esm/src/utils/commandLineUtils.js +11 -1
- package/dist/esm/src/utils/pathTemplateParser.d.ts +4 -0
- package/dist/esm/src/utils/pathTemplateParser.js +4 -0
- package/dist/esm/src/utils/utils.d.ts +4 -0
- package/dist/esm/src/utils/utils.js +4 -0
- package/dist/esm/start.d.ts +4 -0
- package/dist/esm/start.js +4 -0
- package/dist/esm/test/proxy/types/rest.test.d.ts +4 -0
- package/dist/esm/test/proxy/types/rest.test.js +4 -0
- package/dist/esm/test/utils/pathTemplateParser.test.d.ts +4 -0
- package/dist/esm/test/utils/pathTemplateParser.test.js +4 -0
- package/index.ts +18 -3
- package/package.json +7 -3
- package/src/RepositoryWatcher.ts +34 -13
- package/src/api.ts +5 -0
- package/src/assetManager.ts +7 -2
- package/src/assets/routes.ts +5 -0
- package/src/attachments/routes.ts +5 -0
- package/src/authManager.ts +5 -0
- package/src/cacheManager.ts +5 -0
- package/src/clusterService.ts +5 -0
- package/src/codeGeneratorManager.ts +8 -3
- package/src/config/routes.ts +5 -0
- package/src/configManager.ts +5 -0
- package/src/containerManager.ts +5 -0
- package/src/definitionsManager.ts +5 -0
- package/src/filesystem/routes.ts +5 -0
- package/src/filesystemManager.ts +5 -0
- package/src/identities/routes.ts +5 -0
- package/src/instanceManager.ts +5 -0
- package/src/instances/routes.ts +5 -0
- package/src/middleware/cors.ts +5 -0
- package/src/middleware/kapeta.ts +5 -0
- package/src/middleware/stringBody.ts +5 -0
- package/src/networkManager.ts +5 -0
- package/src/operatorManager.ts +5 -0
- package/src/progressListener.ts +5 -0
- package/src/providerManager.ts +5 -0
- package/src/providers/routes.ts +5 -0
- package/src/proxy/routes.ts +5 -0
- package/src/proxy/types/rest.ts +5 -0
- package/src/proxy/types/web.ts +5 -0
- package/src/repositoryManager.ts +5 -0
- package/src/serviceManager.ts +5 -0
- package/src/socketManager.ts +5 -0
- package/src/storageService.ts +5 -0
- package/src/taskManager.ts +5 -0
- package/src/tasks/routes.ts +5 -0
- package/src/traffic/routes.ts +5 -0
- package/src/types.ts +5 -0
- package/src/utils/BlockInstanceRunner.ts +6 -1
- package/src/utils/DefaultProviderInstaller.ts +5 -0
- package/src/utils/LogData.ts +5 -0
- package/src/utils/commandLineUtils.ts +11 -0
- package/src/utils/pathTemplateParser.ts +5 -0
- package/src/utils/utils.ts +5 -0
- package/start.ts +5 -0
- package/test/proxy/types/rest.test.ts +5 -0
- package/test/utils/pathTemplateParser.test.ts +5 -0
package/dist/esm/src/types.d.ts
CHANGED
package/dist/esm/src/types.js
CHANGED
@@ -1,4 +1,8 @@
|
|
1
1
|
"use strict";
|
2
|
+
/**
|
3
|
+
* Copyright 2023 Kapeta Inc.
|
4
|
+
* SPDX-License-Identifier: BUSL-1.1
|
5
|
+
*/
|
2
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
7
|
exports.DesiredInstanceStatus = exports.InstanceStatus = exports.InstanceOwner = exports.InstanceType = void 0;
|
4
8
|
var InstanceType;
|
@@ -1,3 +1,7 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright 2023 Kapeta Inc.
|
3
|
+
* SPDX-License-Identifier: BUSL-1.1
|
4
|
+
*/
|
1
5
|
import { DefinitionInfo } from '@kapeta/local-cluster-config';
|
2
6
|
import { KapetaURI } from '@kapeta/nodejs-utils';
|
3
7
|
import { AnyMap, BlockProcessParams, ProcessInfo, StringMap } from '../types';
|
@@ -1,4 +1,8 @@
|
|
1
1
|
"use strict";
|
2
|
+
/**
|
3
|
+
* Copyright 2023 Kapeta Inc.
|
4
|
+
* SPDX-License-Identifier: BUSL-1.1
|
5
|
+
*/
|
2
6
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
7
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
8
|
};
|
@@ -121,7 +125,7 @@ class BlockInstanceRunner {
|
|
121
125
|
const baseDir = local_cluster_config_1.default.getRepositoryAssetPath(blockInfo.handle, blockInfo.name, blockInfo.version);
|
122
126
|
if (!node_fs_1.default.existsSync(baseDir)) {
|
123
127
|
throw new Error(`Local block not registered correctly - expected symlink here: ${baseDir}.\n` +
|
124
|
-
`Make sure you've run "
|
128
|
+
`Make sure you've run "kap registry link" in your local directory to connect it to Kapeta`);
|
125
129
|
}
|
126
130
|
if (!assetVersion.definition.spec?.target?.kind) {
|
127
131
|
throw new Error('Missing target kind in block definition');
|
@@ -1,2 +1,7 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright 2023 Kapeta Inc.
|
3
|
+
* SPDX-License-Identifier: BUSL-1.1
|
4
|
+
*/
|
1
5
|
export declare function hasCLI(): Promise<boolean>;
|
2
6
|
export declare function ensureCLI(): Promise<import("../taskManager").Task<void> | null>;
|
7
|
+
export declare function ensureCLICommands(): Promise<void>;
|
@@ -1,6 +1,10 @@
|
|
1
1
|
"use strict";
|
2
|
+
/**
|
3
|
+
* Copyright 2023 Kapeta Inc.
|
4
|
+
* SPDX-License-Identifier: BUSL-1.1
|
5
|
+
*/
|
2
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.ensureCLI = exports.hasCLI = void 0;
|
7
|
+
exports.ensureCLICommands = exports.ensureCLI = exports.hasCLI = void 0;
|
4
8
|
const nodejs_process_1 = require("@kapeta/nodejs-process");
|
5
9
|
const taskManager_1 = require("../taskManager");
|
6
10
|
async function hasCLI() {
|
@@ -21,3 +25,9 @@ async function ensureCLI() {
|
|
21
25
|
});
|
22
26
|
}
|
23
27
|
exports.ensureCLI = ensureCLI;
|
28
|
+
function ensureCLICommands() {
|
29
|
+
console.log('Run `kap init` to ensure default commands are installed');
|
30
|
+
const process = (0, nodejs_process_1.spawn)('kap', ['init'], { shell: true });
|
31
|
+
return process.wait();
|
32
|
+
}
|
33
|
+
exports.ensureCLICommands = ensureCLICommands;
|
package/dist/esm/start.d.ts
CHANGED
package/dist/esm/start.js
CHANGED
@@ -1,4 +1,8 @@
|
|
1
1
|
"use strict";
|
2
|
+
/**
|
3
|
+
* Copyright 2023 Kapeta Inc.
|
4
|
+
* SPDX-License-Identifier: BUSL-1.1
|
5
|
+
*/
|
2
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
7
|
const pathTemplateParser_1 = require("../../src/utils/pathTemplateParser");
|
4
8
|
describe('pathTemplateParser', () => {
|
package/index.ts
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright 2023 Kapeta Inc.
|
3
|
+
* SPDX-License-Identifier: BUSL-1.1
|
4
|
+
*/
|
5
|
+
|
1
6
|
import { clusterService } from './src/clusterService';
|
2
7
|
import { storageService } from './src/storageService';
|
3
8
|
import { serviceManager } from './src/serviceManager';
|
@@ -21,7 +26,8 @@ import APIRoutes from './src/api';
|
|
21
26
|
import { getBindHost } from './src/utils/utils';
|
22
27
|
import request from 'request';
|
23
28
|
import { repositoryManager } from './src/repositoryManager';
|
24
|
-
import {
|
29
|
+
import { taskManager } from './src/taskManager';
|
30
|
+
import { ensureCLI, ensureCLICommands } from './src/utils/commandLineUtils';
|
25
31
|
import { defaultProviderInstaller } from './src/utils/DefaultProviderInstaller';
|
26
32
|
import { authManager } from './src/authManager';
|
27
33
|
import { codeGeneratorManager } from './src/codeGeneratorManager';
|
@@ -179,7 +185,7 @@ export default {
|
|
179
185
|
storageService.put('cluster', 'host', host);
|
180
186
|
}
|
181
187
|
|
182
|
-
return new Promise(
|
188
|
+
return new Promise((resolve, reject) => {
|
183
189
|
if (!currentServer) {
|
184
190
|
reject(new Error(`Current server wasn't set`));
|
185
191
|
return;
|
@@ -196,11 +202,20 @@ export default {
|
|
196
202
|
|
197
203
|
currentServer.listen(port, bindHost, async () => {
|
198
204
|
try {
|
199
|
-
|
205
|
+
const ensureCLITask = await ensureCLI();
|
206
|
+
if (ensureCLITask) {
|
207
|
+
await taskManager.waitFor((t) => t === ensureCLITask);
|
208
|
+
}
|
200
209
|
} catch (e: any) {
|
201
210
|
console.error('Failed to install CLI.', e);
|
202
211
|
}
|
203
212
|
|
213
|
+
try {
|
214
|
+
await ensureCLICommands();
|
215
|
+
} catch (error) {
|
216
|
+
console.error('Failed to ensure default CLI commands', error);
|
217
|
+
}
|
218
|
+
|
204
219
|
try {
|
205
220
|
// Start installation process for all default providers
|
206
221
|
await repositoryManager.ensureDefaultProviders();
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@kapeta/local-cluster-service",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.25.0",
|
4
4
|
"description": "Manages configuration, ports and service discovery for locally running Kapeta systems",
|
5
5
|
"type": "commonjs",
|
6
6
|
"exports": {
|
@@ -24,8 +24,12 @@
|
|
24
24
|
"keywords": [
|
25
25
|
"kapeta"
|
26
26
|
],
|
27
|
-
"
|
28
|
-
"
|
27
|
+
"license": "BUSL-1.1",
|
28
|
+
"author": {
|
29
|
+
"email": "engineering@kapeta.com",
|
30
|
+
"name": "Kapeta",
|
31
|
+
"url": "https://kapeta.com"
|
32
|
+
},
|
29
33
|
"bugs": {
|
30
34
|
"url": "https://github.com/kapetacom/local-cluster-service/issues"
|
31
35
|
},
|
package/src/RepositoryWatcher.ts
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright 2023 Kapeta Inc.
|
3
|
+
* SPDX-License-Identifier: BUSL-1.1
|
4
|
+
*/
|
5
|
+
|
1
6
|
import chokidar, { FSWatcher } from 'chokidar';
|
2
7
|
import ClusterConfiguration, { Definition, DefinitionInfo } from '@kapeta/local-cluster-config';
|
3
8
|
import FS from 'fs-extra';
|
@@ -9,6 +14,7 @@ import { socketManager } from './socketManager';
|
|
9
14
|
import { SourceOfChange, WatchEventName } from './types';
|
10
15
|
import { cacheManager } from './cacheManager';
|
11
16
|
import { EventEmitter } from 'node:events';
|
17
|
+
import { assetManager } from './assetManager';
|
12
18
|
|
13
19
|
interface AssetIdentity {
|
14
20
|
handle: string;
|
@@ -143,12 +149,12 @@ export class RepositoryWatcher extends EventEmitter {
|
|
143
149
|
return;
|
144
150
|
}
|
145
151
|
|
146
|
-
|
147
|
-
if (!assetIdentity) {
|
152
|
+
if (this.disabled) {
|
148
153
|
return;
|
149
154
|
}
|
150
155
|
|
151
|
-
|
156
|
+
const assetIdentity = await this.getAssetIdentity(path);
|
157
|
+
if (!assetIdentity) {
|
152
158
|
return;
|
153
159
|
}
|
154
160
|
|
@@ -170,6 +176,25 @@ export class RepositoryWatcher extends EventEmitter {
|
|
170
176
|
}
|
171
177
|
}
|
172
178
|
|
179
|
+
const repoPath = this.getRepositoryPath(assetIdentity);
|
180
|
+
|
181
|
+
if (
|
182
|
+
eventName === 'change' &&
|
183
|
+
!withinRepo &&
|
184
|
+
assetIdentity.version === 'local' &&
|
185
|
+
Path.basename(path) === 'kapeta.yml' &&
|
186
|
+
(await this.exists(path)) &&
|
187
|
+
!(await this.exists(repoPath))
|
188
|
+
) {
|
189
|
+
// This happens when a local asset is renamed
|
190
|
+
const oldPath = _.findKey(this.symbolicLinks, (link) => link === path);
|
191
|
+
if (oldPath) {
|
192
|
+
await FS.unlink(oldPath);
|
193
|
+
await assetManager.importFile(path);
|
194
|
+
return;
|
195
|
+
}
|
196
|
+
}
|
197
|
+
|
173
198
|
const sourceOfChange = this.sourceOfChange.get(path) ?? 'filesystem';
|
174
199
|
await this.checkForChange(assetIdentity, sourceOfChange);
|
175
200
|
|
@@ -177,18 +202,17 @@ export class RepositoryWatcher extends EventEmitter {
|
|
177
202
|
this.sourceOfChange.delete(path);
|
178
203
|
}
|
179
204
|
|
205
|
+
private getRepositoryPath(assetIdentity: AssetIdentity) {
|
206
|
+
return Path.join(this.baseDir, assetIdentity.handle, assetIdentity.name, assetIdentity.version);
|
207
|
+
}
|
208
|
+
|
180
209
|
private async checkForChange(assetIdentity: AssetIdentity, sourceOfChange: SourceOfChange) {
|
181
|
-
const ymlPath = Path.join(
|
182
|
-
this.baseDir,
|
183
|
-
assetIdentity.handle,
|
184
|
-
assetIdentity.name,
|
185
|
-
assetIdentity.version,
|
186
|
-
'kapeta.yml'
|
187
|
-
);
|
210
|
+
const ymlPath = Path.join(this.getRepositoryPath(assetIdentity), 'kapeta.yml');
|
188
211
|
const newDefinitions = ClusterConfiguration.getDefinitions();
|
189
212
|
const newDefinition = newDefinitions.find((d) => d.ymlPath === ymlPath);
|
190
213
|
let currentDefinition = this.allDefinitions.find((d) => d.ymlPath === ymlPath);
|
191
214
|
const ymlExists = await this.exists(ymlPath);
|
215
|
+
|
192
216
|
let type;
|
193
217
|
if (ymlExists) {
|
194
218
|
if (currentDefinition) {
|
@@ -206,9 +230,6 @@ export class RepositoryWatcher extends EventEmitter {
|
|
206
230
|
}
|
207
231
|
} else {
|
208
232
|
if (currentDefinition) {
|
209
|
-
const ref = parseKapetaUri(
|
210
|
-
`${currentDefinition.definition.metadata.name}:${currentDefinition.version}`
|
211
|
-
).id;
|
212
233
|
//Something was removed
|
213
234
|
type = 'removed';
|
214
235
|
} else {
|
package/src/api.ts
CHANGED
package/src/assetManager.ts
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright 2023 Kapeta Inc.
|
3
|
+
* SPDX-License-Identifier: BUSL-1.1
|
4
|
+
*/
|
5
|
+
|
1
6
|
import Path from 'node:path';
|
2
7
|
import FS from 'fs-extra';
|
3
8
|
import YAML from 'yaml';
|
@@ -171,7 +176,7 @@ class AssetManager {
|
|
171
176
|
return asset;
|
172
177
|
}
|
173
178
|
|
174
|
-
async updateAsset(ref: string, yaml:
|
179
|
+
async updateAsset(ref: string, yaml: Definition, sourceOfChange: SourceOfChange = 'filesystem') {
|
175
180
|
ref = normalizeKapetaUri(ref);
|
176
181
|
const asset = await this.getAsset(ref, true, false);
|
177
182
|
if (!asset) {
|
@@ -253,7 +258,7 @@ class AssetManager {
|
|
253
258
|
return await repositoryManager.ensureAsset(uri.handle, uri.name, uri.version, wait);
|
254
259
|
}
|
255
260
|
|
256
|
-
private async maybeGenerateCode(ref: string, ymlPath: string, block:
|
261
|
+
private async maybeGenerateCode(ref: string, ymlPath: string, block: Definition) {
|
257
262
|
ref = normalizeKapetaUri(ref);
|
258
263
|
if (await codeGeneratorManager.canGenerateCode(block)) {
|
259
264
|
const assetTitle = block.metadata.title ? block.metadata.title : parseKapetaUri(block.metadata.name).name;
|
package/src/assets/routes.ts
CHANGED
package/src/authManager.ts
CHANGED
package/src/cacheManager.ts
CHANGED
package/src/clusterService.ts
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright 2023 Kapeta Inc.
|
3
|
+
* SPDX-License-Identifier: BUSL-1.1
|
4
|
+
*/
|
5
|
+
|
1
6
|
import Path from 'path';
|
2
7
|
import { registry as Targets, BlockCodeGenerator, CodeWriter } from '@kapeta/codegen';
|
3
8
|
import { BlockDefinition } from '@kapeta/schemas';
|
@@ -55,7 +60,7 @@ class CodeGeneratorManager {
|
|
55
60
|
});
|
56
61
|
}
|
57
62
|
|
58
|
-
async canGenerateCode(yamlContent:
|
63
|
+
async canGenerateCode(yamlContent: Definition): Promise<boolean> {
|
59
64
|
if (!yamlContent.spec.target?.kind) {
|
60
65
|
//Not all block types have targets
|
61
66
|
return false;
|
@@ -68,7 +73,7 @@ class CodeGeneratorManager {
|
|
68
73
|
return !!(yamlContent && yamlContent.kind && blockTypeKinds.indexOf(yamlContent.kind.toLowerCase()) > -1);
|
69
74
|
}
|
70
75
|
|
71
|
-
async generate(yamlFile: string, yamlContent:
|
76
|
+
async generate(yamlFile: string, yamlContent: Definition) {
|
72
77
|
if (!yamlContent.spec.target?.kind) {
|
73
78
|
//Not all block types have targets
|
74
79
|
return;
|
@@ -87,7 +92,7 @@ class CodeGeneratorManager {
|
|
87
92
|
await this.ensureLanguageTargetInRegistry(targetAsset?.path, targetAsset?.version, targetAsset?.data);
|
88
93
|
const baseDir = Path.dirname(yamlFile);
|
89
94
|
console.log('Generating code for path: %s', baseDir);
|
90
|
-
const codeGenerator = new BlockCodeGenerator(yamlContent);
|
95
|
+
const codeGenerator = new BlockCodeGenerator(yamlContent as BlockDefinition);
|
91
96
|
|
92
97
|
const output = await codeGenerator.generate();
|
93
98
|
const writer = new CodeWriter(baseDir, {});
|
package/src/config/routes.ts
CHANGED
package/src/configManager.ts
CHANGED
package/src/containerManager.ts
CHANGED
@@ -1,3 +1,8 @@
|
|
1
|
+
/**
|
2
|
+
* Copyright 2023 Kapeta Inc.
|
3
|
+
* SPDX-License-Identifier: BUSL-1.1
|
4
|
+
*/
|
5
|
+
|
1
6
|
import ClusterConfiguration, { DefinitionInfo } from '@kapeta/local-cluster-config';
|
2
7
|
import { parseKapetaUri, normalizeKapetaUri } from '@kapeta/nodejs-utils';
|
3
8
|
import { cacheManager, doCached } from './cacheManager';
|