@kapeta/local-cluster-service 0.16.8 → 0.17.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 (56) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/index.js +2 -0
  3. package/dist/cjs/src/socketManager.js +6 -0
  4. package/dist/cjs/src/utils/DefaultProviderInstaller.d.ts +11 -0
  5. package/dist/cjs/src/utils/DefaultProviderInstaller.js +129 -0
  6. package/dist/esm/index.js +64 -57
  7. package/dist/esm/src/RepositoryWatcher.js +40 -33
  8. package/dist/esm/src/api.js +14 -9
  9. package/dist/esm/src/assetManager.js +62 -56
  10. package/dist/esm/src/assets/routes.js +22 -17
  11. package/dist/esm/src/attachments/routes.js +14 -9
  12. package/dist/esm/src/cacheManager.js +13 -5
  13. package/dist/esm/src/clusterService.js +6 -3
  14. package/dist/esm/src/codeGeneratorManager.js +19 -13
  15. package/dist/esm/src/config/routes.js +30 -25
  16. package/dist/esm/src/configManager.js +29 -26
  17. package/dist/esm/src/containerManager.js +48 -39
  18. package/dist/esm/src/definitionsManager.js +15 -9
  19. package/dist/esm/src/filesystem/routes.js +21 -16
  20. package/dist/esm/src/filesystemManager.js +23 -17
  21. package/dist/esm/src/identities/routes.js +13 -8
  22. package/dist/esm/src/instanceManager.js +163 -156
  23. package/dist/esm/src/instances/routes.js +38 -33
  24. package/dist/esm/src/middleware/cors.js +5 -1
  25. package/dist/esm/src/middleware/kapeta.js +8 -4
  26. package/dist/esm/src/middleware/stringBody.js +5 -1
  27. package/dist/esm/src/networkManager.js +15 -9
  28. package/dist/esm/src/operatorManager.js +45 -39
  29. package/dist/esm/src/progressListener.js +16 -12
  30. package/dist/esm/src/providerManager.js +22 -16
  31. package/dist/esm/src/providers/routes.js +14 -9
  32. package/dist/esm/src/proxy/routes.js +26 -21
  33. package/dist/esm/src/proxy/types/rest.js +29 -22
  34. package/dist/esm/src/proxy/types/web.js +18 -11
  35. package/dist/esm/src/repositoryManager.js +28 -22
  36. package/dist/esm/src/serviceManager.js +25 -19
  37. package/dist/esm/src/socketManager.js +31 -18
  38. package/dist/esm/src/storageService.js +18 -12
  39. package/dist/esm/src/taskManager.js +12 -8
  40. package/dist/esm/src/tasks/routes.js +14 -9
  41. package/dist/esm/src/traffic/routes.js +12 -7
  42. package/dist/esm/src/types.js +11 -8
  43. package/dist/esm/src/utils/BlockInstanceRunner.js +57 -50
  44. package/dist/esm/src/utils/DefaultProviderInstaller.d.ts +11 -0
  45. package/dist/esm/src/utils/DefaultProviderInstaller.js +129 -0
  46. package/dist/esm/src/utils/LogData.js +5 -1
  47. package/dist/esm/src/utils/commandLineUtils.js +12 -7
  48. package/dist/esm/src/utils/pathTemplateParser.js +7 -2
  49. package/dist/esm/src/utils/utils.js +30 -17
  50. package/dist/esm/start.js +7 -2
  51. package/index.ts +3 -0
  52. package/package.json +10 -4
  53. package/src/instanceManager.ts +1 -1
  54. package/src/socketManager.ts +6 -0
  55. package/src/utils/DefaultProviderInstaller.ts +141 -0
  56. package/tsconfig.json +3 -2
@@ -1,15 +1,21 @@
1
- import Path from 'node:path';
2
- import FS from 'fs-extra';
3
- import YAML from 'yaml';
4
- import { codeGeneratorManager } from './codeGeneratorManager';
5
- import { ProgressListener } from './progressListener';
6
- import { parseKapetaUri } from '@kapeta/nodejs-utils';
7
- import { repositoryManager } from './repositoryManager';
8
- import { Actions } from '@kapeta/nodejs-registry-utils';
9
- import { definitionsManager } from './definitionsManager';
10
- import { normalizeKapetaUri } from './utils/utils';
11
- import { taskManager } from './taskManager';
12
- import { cacheManager } from './cacheManager';
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.assetManager = void 0;
7
+ const node_path_1 = __importDefault(require("node:path"));
8
+ const fs_extra_1 = __importDefault(require("fs-extra"));
9
+ const yaml_1 = __importDefault(require("yaml"));
10
+ const codeGeneratorManager_1 = require("./codeGeneratorManager");
11
+ const progressListener_1 = require("./progressListener");
12
+ const nodejs_utils_1 = require("@kapeta/nodejs-utils");
13
+ const repositoryManager_1 = require("./repositoryManager");
14
+ const nodejs_registry_utils_1 = require("@kapeta/nodejs-registry-utils");
15
+ const definitionsManager_1 = require("./definitionsManager");
16
+ const utils_1 = require("./utils/utils");
17
+ const taskManager_1 = require("./taskManager");
18
+ const cacheManager_1 = require("./cacheManager");
13
19
  const CACHE_TTL = 60 * 60 * 1000; // 1 hour
14
20
  const toKey = (ref) => `assetManager:asset:${ref}`;
15
21
  function enrichAsset(asset) {
@@ -44,7 +50,7 @@ class AssetManager {
44
50
  */
45
51
  getAssets(assetKinds) {
46
52
  if (!assetKinds) {
47
- const blockTypeProviders = definitionsManager.getDefinitions([
53
+ const blockTypeProviders = definitionsManager_1.definitionsManager.getDefinitions([
48
54
  'core/block-type',
49
55
  'core/block-type-operator',
50
56
  ]);
@@ -53,7 +59,7 @@ class AssetManager {
53
59
  });
54
60
  assetKinds.push('core/plan');
55
61
  }
56
- const assets = definitionsManager.getDefinitions(assetKinds);
62
+ const assets = definitionsManager_1.definitionsManager.getDefinitions(assetKinds);
57
63
  return assets.map(enrichAsset);
58
64
  }
59
65
  getPlans() {
@@ -67,51 +73,51 @@ class AssetManager {
67
73
  return asset.data;
68
74
  }
69
75
  async getAsset(ref, noCache = false, autoFetch = true) {
70
- ref = normalizeKapetaUri(ref);
76
+ ref = (0, utils_1.normalizeKapetaUri)(ref);
71
77
  const cacheKey = toKey(ref);
72
- if (!noCache && cacheManager.has(cacheKey)) {
73
- return cacheManager.get(cacheKey);
78
+ if (!noCache && cacheManager_1.cacheManager.has(cacheKey)) {
79
+ return cacheManager_1.cacheManager.get(cacheKey);
74
80
  }
75
- const uri = parseKapetaUri(ref);
81
+ const uri = (0, nodejs_utils_1.parseKapetaUri)(ref);
76
82
  if (autoFetch) {
77
- await repositoryManager.ensureAsset(uri.handle, uri.name, uri.version, true);
83
+ await repositoryManager_1.repositoryManager.ensureAsset(uri.handle, uri.name, uri.version, true);
78
84
  }
79
- let asset = definitionsManager
85
+ let asset = definitionsManager_1.definitionsManager
80
86
  .getDefinitions()
81
87
  .map(enrichAsset)
82
- .find((a) => parseKapetaUri(a.ref).equals(uri));
88
+ .find((a) => (0, nodejs_utils_1.parseKapetaUri)(a.ref).equals(uri));
83
89
  if (autoFetch && !asset) {
84
90
  throw new Error('Asset not found: ' + ref);
85
91
  }
86
92
  if (asset) {
87
- cacheManager.set(cacheKey, asset, CACHE_TTL);
93
+ cacheManager_1.cacheManager.set(cacheKey, asset, CACHE_TTL);
88
94
  }
89
95
  return asset;
90
96
  }
91
97
  async createAsset(path, yaml, sourceOfChange = 'filesystem') {
92
- if (await FS.pathExists(path)) {
98
+ if (await fs_extra_1.default.pathExists(path)) {
93
99
  throw new Error('File already exists: ' + path);
94
100
  }
95
- const dirName = Path.dirname(path);
96
- if (!(await FS.pathExists(dirName))) {
97
- await FS.mkdirp(dirName);
101
+ const dirName = node_path_1.default.dirname(path);
102
+ if (!(await fs_extra_1.default.pathExists(dirName))) {
103
+ await fs_extra_1.default.mkdirp(dirName);
98
104
  }
99
- await repositoryManager.setSourceOfChangeFor(path, sourceOfChange);
100
- await FS.writeFile(path, YAML.stringify(yaml));
105
+ await repositoryManager_1.repositoryManager.setSourceOfChangeFor(path, sourceOfChange);
106
+ await fs_extra_1.default.writeFile(path, yaml_1.default.stringify(yaml));
101
107
  const asset = await this.importFile(path);
102
108
  asset.forEach((a) => {
103
- const ref = normalizeKapetaUri(a.ref);
109
+ const ref = (0, utils_1.normalizeKapetaUri)(a.ref);
104
110
  const key = toKey(ref);
105
- cacheManager.set(key, a, CACHE_TTL);
111
+ cacheManager_1.cacheManager.set(key, a, CACHE_TTL);
106
112
  });
107
- definitionsManager.clearCache();
113
+ definitionsManager_1.definitionsManager.clearCache();
108
114
  console.log(`Created asset at: ${path}`);
109
115
  const ref = `kapeta://${yaml.metadata.name}:local`;
110
116
  this.maybeGenerateCode(ref, path, yaml);
111
117
  return asset;
112
118
  }
113
119
  async updateAsset(ref, yaml, sourceOfChange = 'filesystem') {
114
- ref = normalizeKapetaUri(ref);
120
+ ref = (0, utils_1.normalizeKapetaUri)(ref);
115
121
  const asset = await this.getAsset(ref, true, false);
116
122
  if (!asset) {
117
123
  throw new Error('Attempted to update unknown asset: ' + ref);
@@ -122,30 +128,30 @@ class AssetManager {
122
128
  if (!asset.ymlPath) {
123
129
  throw new Error('Attempted to update corrupted asset: ' + ref);
124
130
  }
125
- await repositoryManager.setSourceOfChangeFor(asset.ymlPath, sourceOfChange);
126
- await FS.writeFile(asset.ymlPath, YAML.stringify(yaml));
131
+ await repositoryManager_1.repositoryManager.setSourceOfChangeFor(asset.ymlPath, sourceOfChange);
132
+ await fs_extra_1.default.writeFile(asset.ymlPath, yaml_1.default.stringify(yaml));
127
133
  console.log(`Updated asset at: ${asset.ymlPath}`);
128
- cacheManager.remove(toKey(ref));
129
- definitionsManager.clearCache();
134
+ cacheManager_1.cacheManager.remove(toKey(ref));
135
+ definitionsManager_1.definitionsManager.clearCache();
130
136
  this.maybeGenerateCode(asset.ref, asset.ymlPath, yaml);
131
137
  }
132
138
  async importFile(filePath) {
133
139
  if (filePath.startsWith('file://')) {
134
140
  filePath = filePath.substring('file://'.length);
135
141
  }
136
- if (!(await FS.pathExists(filePath))) {
142
+ if (!(await fs_extra_1.default.pathExists(filePath))) {
137
143
  throw new Error('File not found: ' + filePath);
138
144
  }
139
- const content = await FS.readFile(filePath);
140
- const assetInfos = YAML.parseAllDocuments(content.toString()).map((doc) => doc.toJSON());
141
- await Actions.link(new ProgressListener(), Path.dirname(filePath));
145
+ const content = await fs_extra_1.default.readFile(filePath);
146
+ const assetInfos = yaml_1.default.parseAllDocuments(content.toString()).map((doc) => doc.toJSON());
147
+ await nodejs_registry_utils_1.Actions.link(new progressListener_1.ProgressListener(), node_path_1.default.dirname(filePath));
142
148
  const version = 'local';
143
- const refs = assetInfos.map((assetInfo) => normalizeKapetaUri(`kapeta://${assetInfo.metadata.name}:${version}`));
149
+ const refs = assetInfos.map((assetInfo) => (0, utils_1.normalizeKapetaUri)(`kapeta://${assetInfo.metadata.name}:${version}`));
144
150
  refs.forEach((ref) => {
145
151
  const key = toKey(ref);
146
- cacheManager.remove(key);
152
+ cacheManager_1.cacheManager.remove(key);
147
153
  });
148
- definitionsManager.clearCache();
154
+ definitionsManager_1.definitionsManager.clearCache();
149
155
  return this.getAssets().filter((a) => refs.some((ref) => compareRefs(ref, a.ref)));
150
156
  }
151
157
  async unregisterAsset(ref) {
@@ -154,28 +160,28 @@ class AssetManager {
154
160
  throw new Error('Asset does not exists: ' + ref);
155
161
  }
156
162
  const key = toKey(ref);
157
- cacheManager.remove(key);
158
- definitionsManager.clearCache();
159
- await Actions.uninstall(new ProgressListener(), [asset.ref]);
163
+ cacheManager_1.cacheManager.remove(key);
164
+ definitionsManager_1.definitionsManager.clearCache();
165
+ await nodejs_registry_utils_1.Actions.uninstall(new progressListener_1.ProgressListener(), [asset.ref]);
160
166
  }
161
167
  async installAsset(ref) {
162
168
  const asset = await this.getAsset(ref, true, false);
163
169
  if (asset) {
164
170
  throw new Error('Asset already installed: ' + ref);
165
171
  }
166
- const uri = parseKapetaUri(ref);
172
+ const uri = (0, nodejs_utils_1.parseKapetaUri)(ref);
167
173
  console.log('Installing %s', ref);
168
174
  const key = toKey(ref);
169
- cacheManager.remove(key);
170
- definitionsManager.clearCache();
171
- return await repositoryManager.ensureAsset(uri.handle, uri.name, uri.version, false);
175
+ cacheManager_1.cacheManager.remove(key);
176
+ definitionsManager_1.definitionsManager.clearCache();
177
+ return await repositoryManager_1.repositoryManager.ensureAsset(uri.handle, uri.name, uri.version, false);
172
178
  }
173
179
  maybeGenerateCode(ref, ymlPath, block) {
174
- ref = normalizeKapetaUri(ref);
175
- if (codeGeneratorManager.canGenerateCode(block)) {
176
- const assetTitle = block.metadata.title ? block.metadata.title : parseKapetaUri(block.metadata.name).name;
177
- taskManager.add(`codegen:${ref}`, async () => {
178
- await codeGeneratorManager.generate(ymlPath, block);
180
+ ref = (0, utils_1.normalizeKapetaUri)(ref);
181
+ if (codeGeneratorManager_1.codeGeneratorManager.canGenerateCode(block)) {
182
+ const assetTitle = block.metadata.title ? block.metadata.title : (0, nodejs_utils_1.parseKapetaUri)(block.metadata.name).name;
183
+ taskManager_1.taskManager.add(`codegen:${ref}`, async () => {
184
+ await codeGeneratorManager_1.codeGeneratorManager.generate(ymlPath, block);
179
185
  }, {
180
186
  name: `Generating code for ${assetTitle}`,
181
187
  });
@@ -184,4 +190,4 @@ class AssetManager {
184
190
  return false;
185
191
  }
186
192
  }
187
- export const assetManager = new AssetManager();
193
+ exports.assetManager = new AssetManager();
@@ -1,8 +1,13 @@
1
- import Router from 'express-promise-router';
2
- import YAML from 'yaml';
3
- import { assetManager } from '../assetManager';
4
- import { corsHandler } from '../middleware/cors';
5
- import { stringBody } from '../middleware/stringBody';
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const express_promise_router_1 = __importDefault(require("express-promise-router"));
7
+ const yaml_1 = __importDefault(require("yaml"));
8
+ const assetManager_1 = require("../assetManager");
9
+ const cors_1 = require("../middleware/cors");
10
+ const stringBody_1 = require("../middleware/stringBody");
6
11
  function parseBody(req) {
7
12
  switch (req.headers['content-type']) {
8
13
  case 'application/json':
@@ -14,17 +19,17 @@ function parseBody(req) {
14
19
  case 'text/yaml':
15
20
  case 'text/x-yaml':
16
21
  default:
17
- return YAML.parse(req.stringBody ?? '{}');
22
+ return yaml_1.default.parse(req.stringBody ?? '{}');
18
23
  }
19
24
  }
20
- const router = Router();
21
- router.use('/', corsHandler);
22
- router.use('/', stringBody);
25
+ const router = (0, express_promise_router_1.default)();
26
+ router.use('/', cors_1.corsHandler);
27
+ router.use('/', stringBody_1.stringBody);
23
28
  /**
24
29
  * Get all local assets available
25
30
  */
26
31
  router.get('/', (req, res) => {
27
- res.send(assetManager.getAssets([]));
32
+ res.send(assetManager_1.assetManager.getAssets([]));
28
33
  });
29
34
  /**
30
35
  * Get single asset
@@ -36,7 +41,7 @@ router.get('/read', async (req, res) => {
36
41
  }
37
42
  const ensure = req.query.ensure !== 'false';
38
43
  try {
39
- const asset = await assetManager.getAsset(req.query.ref, true, ensure);
44
+ const asset = await assetManager_1.assetManager.getAsset(req.query.ref, true, ensure);
40
45
  if (asset) {
41
46
  res.send(asset);
42
47
  }
@@ -58,7 +63,7 @@ router.post('/create', async (req, res) => {
58
63
  }
59
64
  const content = parseBody(req);
60
65
  try {
61
- const assets = await assetManager.createAsset(req.query.path, content, 'user');
66
+ const assets = await assetManager_1.assetManager.createAsset(req.query.path, content, 'user');
62
67
  res.status(200).send(assets);
63
68
  }
64
69
  catch (err) {
@@ -76,7 +81,7 @@ router.put('/update', async (req, res) => {
76
81
  }
77
82
  const content = parseBody(req);
78
83
  try {
79
- await assetManager.updateAsset(req.query.ref, content, 'user');
84
+ await assetManager_1.assetManager.updateAsset(req.query.ref, content, 'user');
80
85
  res.sendStatus(204);
81
86
  }
82
87
  catch (err) {
@@ -93,7 +98,7 @@ router.delete('/', async (req, res) => {
93
98
  return;
94
99
  }
95
100
  try {
96
- await assetManager.unregisterAsset(req.query.ref);
101
+ await assetManager_1.assetManager.unregisterAsset(req.query.ref);
97
102
  res.status(204).send();
98
103
  }
99
104
  catch (err) {
@@ -109,7 +114,7 @@ router.put('/import', async (req, res) => {
109
114
  return;
110
115
  }
111
116
  try {
112
- const assets = await assetManager.importFile(req.query.ref);
117
+ const assets = await assetManager_1.assetManager.importFile(req.query.ref);
113
118
  res.status(200).send(assets);
114
119
  }
115
120
  catch (err) {
@@ -122,7 +127,7 @@ router.put('/install', async (req, res) => {
122
127
  return;
123
128
  }
124
129
  try {
125
- const tasks = await assetManager.installAsset(req.query.ref);
130
+ const tasks = await assetManager_1.assetManager.installAsset(req.query.ref);
126
131
  const taskIds = tasks?.map((t) => t.id) ?? [];
127
132
  res.status(200).send(taskIds);
128
133
  }
@@ -130,4 +135,4 @@ router.put('/install', async (req, res) => {
130
135
  res.status(400).send({ error: err.message });
131
136
  }
132
137
  });
133
- export default router;
138
+ exports.default = router;
@@ -1,15 +1,20 @@
1
- import Router from 'express-promise-router';
2
- import { KapetaAPI } from '@kapeta/nodejs-api-client';
3
- import { corsHandler } from '../middleware/cors';
4
- import { storageService } from '../storageService';
5
- const router = Router();
6
- const api = new KapetaAPI();
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const express_promise_router_1 = __importDefault(require("express-promise-router"));
7
+ const nodejs_api_client_1 = require("@kapeta/nodejs-api-client");
8
+ const cors_1 = require("../middleware/cors");
9
+ const storageService_1 = require("../storageService");
10
+ const router = (0, express_promise_router_1.default)();
11
+ const api = new nodejs_api_client_1.KapetaAPI();
7
12
  const DEFAULT_REGISTRY_BASE = 'https://registry.kapeta.com';
8
13
  function getBaseUrl() {
9
- const endpoint = storageService.get('endpoints', 'registry', DEFAULT_REGISTRY_BASE);
14
+ const endpoint = storageService_1.storageService.get('endpoints', 'registry', DEFAULT_REGISTRY_BASE);
10
15
  return `${endpoint}/v1/registry`;
11
16
  }
12
- router.use('/', corsHandler);
17
+ router.use('/', cors_1.corsHandler);
13
18
  router.put('/:handle/:name', async (req, res) => {
14
19
  if (!api.hasToken()) {
15
20
  res.status(401).send({
@@ -60,4 +65,4 @@ router.put('/:handle/:name', async (req, res) => {
60
65
  res.status(e.status ?? 500).send(e);
61
66
  }
62
67
  });
63
- export default router;
68
+ exports.default = router;
@@ -1,7 +1,13 @@
1
- import NodeCache from 'node-cache';
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.doCached = exports.cacheManager = exports.CacheManager = void 0;
7
+ const node_cache_1 = __importDefault(require("node-cache"));
2
8
  const DEFAULT_CACHE_TTL = 60 * 1000; // 1 min
3
- export class CacheManager {
4
- cache = new NodeCache();
9
+ class CacheManager {
10
+ cache = new node_cache_1.default();
5
11
  flush() {
6
12
  this.cache.flushAll();
7
13
  }
@@ -35,5 +41,7 @@ export class CacheManager {
35
41
  }
36
42
  }
37
43
  }
38
- export const cacheManager = new CacheManager();
39
- export const doCached = (key, getter, ttl = DEFAULT_CACHE_TTL) => cacheManager.doCached(key, getter, ttl);
44
+ exports.CacheManager = CacheManager;
45
+ exports.cacheManager = new CacheManager();
46
+ const doCached = (key, getter, ttl = DEFAULT_CACHE_TTL) => exports.cacheManager.doCached(key, getter, ttl);
47
+ exports.doCached = doCached;
@@ -1,4 +1,7 @@
1
- import { normalizeKapetaUri } from './utils/utils';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.clusterService = void 0;
4
+ const utils_1 = require("./utils/utils");
2
5
  const net = require('net');
3
6
  const DEFAULT_SERVER_PORT = 35100;
4
7
  const DEFAULT_START_PORT = 40000;
@@ -106,8 +109,8 @@ class ClusterService {
106
109
  * @return {string}
107
110
  */
108
111
  getProxyPath(systemId, consumerInstanceId, consumerResourceName, portType) {
109
- systemId = normalizeKapetaUri(systemId);
112
+ systemId = (0, utils_1.normalizeKapetaUri)(systemId);
110
113
  return `/proxy/${encodeURIComponent(systemId)}/${encodeURIComponent(consumerInstanceId)}/${encodeURIComponent(consumerResourceName)}/${encodeURIComponent(portType)}/`;
111
114
  }
112
115
  }
113
- export const clusterService = new ClusterService();
116
+ exports.clusterService = new ClusterService();
@@ -1,21 +1,27 @@
1
- import Path from 'path';
2
- import { registry as Targets, BlockCodeGenerator, CodeWriter } from '@kapeta/codegen';
3
- import { definitionsManager } from './definitionsManager';
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.codeGeneratorManager = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const codegen_1 = require("@kapeta/codegen");
9
+ const definitionsManager_1 = require("./definitionsManager");
4
10
  const TARGET_KIND = 'core/language-target';
5
11
  const BLOCK_TYPE_KIND = 'core/block-type';
6
12
  class CodeGeneratorManager {
7
13
  async reload() {
8
- Targets.reset();
9
- const languageTargets = definitionsManager.getDefinitions(TARGET_KIND);
14
+ codegen_1.registry.reset();
15
+ const languageTargets = definitionsManager_1.definitionsManager.getDefinitions(TARGET_KIND);
10
16
  for (const languageTarget of languageTargets) {
11
17
  const key = `${languageTarget.definition.metadata.name}:${languageTarget.version}`;
12
18
  try {
13
19
  const target = require(languageTarget.path);
14
20
  if (target.default) {
15
- Targets.register(key, target.default);
21
+ codegen_1.registry.register(key, target.default);
16
22
  }
17
23
  else {
18
- Targets.register(key, target);
24
+ codegen_1.registry.register(key, target);
19
25
  }
20
26
  }
21
27
  catch (e) {
@@ -28,20 +34,20 @@ class CodeGeneratorManager {
28
34
  //Not all block types have targets
29
35
  return false;
30
36
  }
31
- const blockTypes = definitionsManager.getDefinitions(BLOCK_TYPE_KIND);
37
+ const blockTypes = definitionsManager_1.definitionsManager.getDefinitions(BLOCK_TYPE_KIND);
32
38
  const blockTypeKinds = blockTypes.map((blockType) => blockType.definition.metadata.name.toLowerCase() + ':' + blockType.version);
33
39
  return !!(yamlContent && yamlContent.kind && blockTypeKinds.indexOf(yamlContent.kind.toLowerCase()) > -1);
34
40
  }
35
41
  async generate(yamlFile, yamlContent) {
36
- const baseDir = Path.dirname(yamlFile);
42
+ const baseDir = path_1.default.dirname(yamlFile);
37
43
  console.log('Generating code for path: %s', baseDir);
38
- const codeGenerator = new BlockCodeGenerator(yamlContent);
44
+ const codeGenerator = new codegen_1.BlockCodeGenerator(yamlContent);
39
45
  const output = await codeGenerator.generate();
40
- const writer = new CodeWriter(baseDir, {});
46
+ const writer = new codegen_1.CodeWriter(baseDir, {});
41
47
  const assets = writer.write(output);
42
48
  await codeGenerator.postprocess(baseDir, assets);
43
49
  console.log('Code generated for path: %s', baseDir);
44
50
  }
45
51
  }
46
- export const codeGeneratorManager = new CodeGeneratorManager();
47
- codeGeneratorManager.reload();
52
+ exports.codeGeneratorManager = new CodeGeneratorManager();
53
+ exports.codeGeneratorManager.reload();
@@ -1,23 +1,28 @@
1
- import Router from 'express-promise-router';
2
- import { configManager } from '../configManager';
3
- import { serviceManager } from '../serviceManager';
4
- import { operatorManager } from '../operatorManager';
5
- import { instanceManager } from '../instanceManager';
6
- import { corsHandler } from '../middleware/cors';
7
- import { kapetaHeaders } from '../middleware/kapeta';
8
- import { stringBody } from '../middleware/stringBody';
9
- const router = Router();
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const express_promise_router_1 = __importDefault(require("express-promise-router"));
7
+ const configManager_1 = require("../configManager");
8
+ const serviceManager_1 = require("../serviceManager");
9
+ const operatorManager_1 = require("../operatorManager");
10
+ const instanceManager_1 = require("../instanceManager");
11
+ const cors_1 = require("../middleware/cors");
12
+ const kapeta_1 = require("../middleware/kapeta");
13
+ const stringBody_1 = require("../middleware/stringBody");
14
+ const router = (0, express_promise_router_1.default)();
10
15
  const SYSTEM_ID = '$plan';
11
- router.use('/', corsHandler);
12
- router.use('/', kapetaHeaders);
13
- router.use('/', stringBody);
16
+ router.use('/', cors_1.corsHandler);
17
+ router.use('/', kapeta_1.kapetaHeaders);
18
+ router.use('/', stringBody_1.stringBody);
14
19
  /**
15
20
  * Returns the full configuration for a given service.
16
21
  */
17
22
  router.get('/instance', (req, res) => {
18
23
  const config = req.kapeta.instanceId
19
- ? configManager.getConfigForSection(req.kapeta.systemId, req.kapeta.instanceId)
20
- : configManager.getConfigForSystem(req.kapeta.systemId);
24
+ ? configManager_1.configManager.getConfigForSection(req.kapeta.systemId, req.kapeta.instanceId)
25
+ : configManager_1.configManager.getConfigForSystem(req.kapeta.systemId);
21
26
  res.send(config);
22
27
  });
23
28
  /**
@@ -30,12 +35,12 @@ router.put('/instance', async (req, res) => {
30
35
  config = {};
31
36
  }
32
37
  if (req.kapeta.instanceId) {
33
- configManager.setConfigForSection(req.kapeta.systemId, req.kapeta.instanceId, config);
38
+ configManager_1.configManager.setConfigForSection(req.kapeta.systemId, req.kapeta.instanceId, config);
34
39
  //Restart the instance if it is running after config change
35
- await instanceManager.prepareForRestart(req.kapeta.systemId, req.kapeta.instanceId);
40
+ await instanceManager_1.instanceManager.prepareForRestart(req.kapeta.systemId, req.kapeta.instanceId);
36
41
  }
37
42
  else {
38
- configManager.setConfigForSystem(req.kapeta.systemId, config);
43
+ configManager_1.configManager.setConfigForSystem(req.kapeta.systemId, config);
39
44
  }
40
45
  }
41
46
  catch (err) {
@@ -49,7 +54,7 @@ router.put('/instance', async (req, res) => {
49
54
  * Returns the full configuration for a plan
50
55
  */
51
56
  router.get('/system', (req, res) => {
52
- const config = configManager.getConfigForSection(req.kapeta.systemId, SYSTEM_ID);
57
+ const config = configManager_1.configManager.getConfigForSection(req.kapeta.systemId, SYSTEM_ID);
53
58
  res.send(config);
54
59
  });
55
60
  /**
@@ -60,7 +65,7 @@ router.put('/system', (req, res) => {
60
65
  if (!config) {
61
66
  config = {};
62
67
  }
63
- configManager.setConfigForSection(req.kapeta.systemId, SYSTEM_ID, config);
68
+ configManager_1.configManager.setConfigForSection(req.kapeta.systemId, SYSTEM_ID, config);
64
69
  res.status(202).send({ ok: true });
65
70
  });
66
71
  /**
@@ -77,12 +82,12 @@ router.get('/identity', async (req, res) => {
77
82
  }
78
83
  try {
79
84
  if (!identity.systemId || !identity.instanceId) {
80
- const { systemId, instanceId } = await configManager.resolveIdentity(req.kapeta.blockRef, identity.systemId);
85
+ const { systemId, instanceId } = await configManager_1.configManager.resolveIdentity(req.kapeta.blockRef, identity.systemId);
81
86
  identity.systemId = systemId;
82
87
  identity.instanceId = instanceId;
83
88
  }
84
89
  else {
85
- await configManager.verifyIdentity(req.kapeta.blockRef, identity.systemId, identity.instanceId);
90
+ await configManager_1.configManager.verifyIdentity(req.kapeta.blockRef, identity.systemId, identity.instanceId);
86
91
  }
87
92
  res.send(identity);
88
93
  }
@@ -97,7 +102,7 @@ router.get('/identity', async (req, res) => {
97
102
  */
98
103
  router.get('/provides/:type', async (req, res) => {
99
104
  //Get service port
100
- res.send('' + (await serviceManager.ensureServicePort(req.kapeta.systemId, req.kapeta.instanceId, req.params.type)));
105
+ res.send('' + (await serviceManager_1.serviceManager.ensureServicePort(req.kapeta.systemId, req.kapeta.instanceId, req.params.type)));
101
106
  });
102
107
  /**
103
108
  * Used by services to get info for consumed operator resource.
@@ -106,7 +111,7 @@ router.get('/provides/:type', async (req, res) => {
106
111
  * assign port numbers to it etc.
107
112
  */
108
113
  router.get('/consumes/resource/:resourceType/:portType/:name', async (req, res) => {
109
- const operatorInfo = await operatorManager.getConsumerResourceInfo(req.kapeta.systemId, req.kapeta.instanceId, req.params.resourceType, req.params.portType, req.params.name, req.kapeta.environment);
114
+ const operatorInfo = await operatorManager_1.operatorManager.getConsumerResourceInfo(req.kapeta.systemId, req.kapeta.instanceId, req.params.resourceType, req.params.portType, req.params.name, req.kapeta.environment);
110
115
  res.send(operatorInfo);
111
116
  });
112
117
  /**
@@ -116,6 +121,6 @@ router.get('/consumes/resource/:resourceType/:portType/:name', async (req, res)
116
121
  * to handle clients for services that hasn't started yet.
117
122
  */
118
123
  router.get('/consumes/:resourceName/:type', (req, res) => {
119
- res.send(serviceManager.getConsumerAddress(req.kapeta.systemId, req.kapeta.instanceId, req.params.resourceName, req.params.type, req.kapeta.environment));
124
+ res.send(serviceManager_1.serviceManager.getConsumerAddress(req.kapeta.systemId, req.kapeta.instanceId, req.params.resourceName, req.params.type, req.kapeta.environment));
120
125
  });
121
- export default router;
126
+ exports.default = router;