@kapeta/local-cluster-service 0.16.8 → 0.18.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 (96) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/cjs/index.js +6 -2
  3. package/dist/cjs/src/assetManager.d.ts +2 -2
  4. package/dist/cjs/src/assetManager.js +16 -16
  5. package/dist/cjs/src/assets/routes.js +2 -2
  6. package/dist/cjs/src/authManager.d.ts +12 -0
  7. package/dist/cjs/src/authManager.js +60 -0
  8. package/dist/cjs/src/codeGeneratorManager.d.ts +1 -1
  9. package/dist/cjs/src/codeGeneratorManager.js +3 -3
  10. package/dist/cjs/src/configManager.js +2 -2
  11. package/dist/cjs/src/definitionsManager.d.ts +7 -6
  12. package/dist/cjs/src/definitionsManager.js +102 -18
  13. package/dist/cjs/src/instanceManager.d.ts +1 -1
  14. package/dist/cjs/src/instanceManager.js +4 -4
  15. package/dist/cjs/src/instances/routes.js +2 -2
  16. package/dist/cjs/src/operatorManager.d.ts +1 -1
  17. package/dist/cjs/src/operatorManager.js +7 -9
  18. package/dist/cjs/src/providerManager.d.ts +2 -1
  19. package/dist/cjs/src/providerManager.js +23 -15
  20. package/dist/cjs/src/repositoryManager.d.ts +2 -2
  21. package/dist/cjs/src/repositoryManager.js +8 -9
  22. package/dist/cjs/src/socketManager.js +6 -0
  23. package/dist/cjs/src/utils/BlockInstanceRunner.js +6 -8
  24. package/dist/cjs/src/utils/DefaultProviderInstaller.d.ts +11 -0
  25. package/dist/cjs/src/utils/DefaultProviderInstaller.js +129 -0
  26. package/dist/esm/index.js +67 -58
  27. package/dist/esm/src/RepositoryWatcher.js +40 -33
  28. package/dist/esm/src/api.js +14 -9
  29. package/dist/esm/src/assetManager.d.ts +2 -2
  30. package/dist/esm/src/assetManager.js +73 -67
  31. package/dist/esm/src/assets/routes.js +23 -18
  32. package/dist/esm/src/attachments/routes.js +14 -9
  33. package/dist/esm/src/authManager.d.ts +12 -0
  34. package/dist/esm/src/authManager.js +60 -0
  35. package/dist/esm/src/cacheManager.js +13 -5
  36. package/dist/esm/src/clusterService.js +6 -3
  37. package/dist/esm/src/codeGeneratorManager.d.ts +1 -1
  38. package/dist/esm/src/codeGeneratorManager.js +20 -14
  39. package/dist/esm/src/config/routes.js +30 -25
  40. package/dist/esm/src/configManager.js +29 -26
  41. package/dist/esm/src/containerManager.js +48 -39
  42. package/dist/esm/src/definitionsManager.d.ts +7 -6
  43. package/dist/esm/src/definitionsManager.js +114 -24
  44. package/dist/esm/src/filesystem/routes.js +21 -16
  45. package/dist/esm/src/filesystemManager.js +23 -17
  46. package/dist/esm/src/identities/routes.js +13 -8
  47. package/dist/esm/src/instanceManager.d.ts +1 -1
  48. package/dist/esm/src/instanceManager.js +165 -158
  49. package/dist/esm/src/instances/routes.js +39 -34
  50. package/dist/esm/src/middleware/cors.js +5 -1
  51. package/dist/esm/src/middleware/kapeta.js +8 -4
  52. package/dist/esm/src/middleware/stringBody.js +5 -1
  53. package/dist/esm/src/networkManager.js +15 -9
  54. package/dist/esm/src/operatorManager.d.ts +1 -1
  55. package/dist/esm/src/operatorManager.js +48 -44
  56. package/dist/esm/src/progressListener.js +16 -12
  57. package/dist/esm/src/providerManager.d.ts +2 -1
  58. package/dist/esm/src/providerManager.js +43 -29
  59. package/dist/esm/src/providers/routes.js +14 -9
  60. package/dist/esm/src/proxy/routes.js +26 -21
  61. package/dist/esm/src/proxy/types/rest.js +29 -22
  62. package/dist/esm/src/proxy/types/web.js +18 -11
  63. package/dist/esm/src/repositoryManager.d.ts +2 -2
  64. package/dist/esm/src/repositoryManager.js +33 -28
  65. package/dist/esm/src/serviceManager.js +25 -19
  66. package/dist/esm/src/socketManager.js +31 -18
  67. package/dist/esm/src/storageService.js +18 -12
  68. package/dist/esm/src/taskManager.js +12 -8
  69. package/dist/esm/src/tasks/routes.js +14 -9
  70. package/dist/esm/src/traffic/routes.js +12 -7
  71. package/dist/esm/src/types.js +11 -8
  72. package/dist/esm/src/utils/BlockInstanceRunner.js +60 -55
  73. package/dist/esm/src/utils/DefaultProviderInstaller.d.ts +11 -0
  74. package/dist/esm/src/utils/DefaultProviderInstaller.js +129 -0
  75. package/dist/esm/src/utils/LogData.js +5 -1
  76. package/dist/esm/src/utils/commandLineUtils.js +12 -7
  77. package/dist/esm/src/utils/pathTemplateParser.js +7 -2
  78. package/dist/esm/src/utils/utils.js +30 -17
  79. package/dist/esm/start.js +7 -2
  80. package/index.ts +7 -2
  81. package/package.json +10 -4
  82. package/src/assetManager.ts +18 -16
  83. package/src/assets/routes.ts +2 -2
  84. package/src/authManager.ts +62 -0
  85. package/src/codeGeneratorManager.ts +3 -3
  86. package/src/configManager.ts +2 -2
  87. package/src/definitionsManager.ts +132 -17
  88. package/src/instanceManager.ts +5 -5
  89. package/src/instances/routes.ts +2 -2
  90. package/src/operatorManager.ts +7 -12
  91. package/src/providerManager.ts +27 -19
  92. package/src/repositoryManager.ts +8 -11
  93. package/src/socketManager.ts +6 -0
  94. package/src/utils/BlockInstanceRunner.ts +6 -8
  95. package/src/utils/DefaultProviderInstaller.ts +141 -0
  96. package/tsconfig.json +3 -2
@@ -1,37 +1,42 @@
1
- import Router from 'express-promise-router';
2
- import { instanceManager } from '../instanceManager';
3
- import { serviceManager } from '../serviceManager';
4
- import { corsHandler } from '../middleware/cors';
5
- import { kapetaHeaders } from '../middleware/kapeta';
6
- import { stringBody } from '../middleware/stringBody';
7
- import { DesiredInstanceStatus, InstanceOwner, InstanceType } from '../types';
8
- import { Task } from '../taskManager';
9
- const router = Router();
10
- router.use('/', corsHandler);
11
- router.use('/', kapetaHeaders);
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 instanceManager_1 = require("../instanceManager");
8
+ const serviceManager_1 = require("../serviceManager");
9
+ const cors_1 = require("../middleware/cors");
10
+ const kapeta_1 = require("../middleware/kapeta");
11
+ const stringBody_1 = require("../middleware/stringBody");
12
+ const types_1 = require("../types");
13
+ const taskManager_1 = require("../taskManager");
14
+ const router = (0, express_promise_router_1.default)();
15
+ router.use('/', cors_1.corsHandler);
16
+ router.use('/', kapeta_1.kapetaHeaders);
12
17
  /**
13
18
  * Get all instances
14
19
  */
15
20
  router.get('/', (req, res) => {
16
- res.send(instanceManager.getInstances());
21
+ res.send(instanceManager_1.instanceManager.getInstances());
17
22
  });
18
23
  /**
19
24
  * Get all instances
20
25
  */
21
- router.get('/:systemId/instances', (req, res) => {
22
- res.send(instanceManager.getInstancesForPlan(req.params.systemId));
26
+ router.get('/:systemId/instances', async (req, res) => {
27
+ res.send(await instanceManager_1.instanceManager.getInstancesForPlan(req.params.systemId));
23
28
  });
24
29
  /**
25
30
  * Get single instance in a plan
26
31
  */
27
32
  router.get('/:systemId/instances/:instanceId', (req, res) => {
28
- res.send(instanceManager.getInstance(req.params.systemId, req.params.instanceId));
33
+ res.send(instanceManager_1.instanceManager.getInstance(req.params.systemId, req.params.instanceId));
29
34
  });
30
35
  /**
31
36
  * Start all instances in a plan
32
37
  */
33
38
  router.post('/:systemId/start', async (req, res) => {
34
- const task = await instanceManager.startAllForPlan(req.params.systemId);
39
+ const task = await instanceManager_1.instanceManager.startAllForPlan(req.params.systemId);
35
40
  res.status(202).send({
36
41
  ok: true,
37
42
  taskId: task.id,
@@ -41,7 +46,7 @@ router.post('/:systemId/start', async (req, res) => {
41
46
  * Stop all instances in plan
42
47
  */
43
48
  router.post('/:systemId/stop', async (req, res) => {
44
- const task = instanceManager.stopAllForPlan(req.params.systemId);
49
+ const task = instanceManager_1.instanceManager.stopAllForPlan(req.params.systemId);
45
50
  res.status(202).send({
46
51
  ok: true,
47
52
  taskId: task.id,
@@ -51,8 +56,8 @@ router.post('/:systemId/stop', async (req, res) => {
51
56
  * Start single instance in a plan
52
57
  */
53
58
  router.post('/:systemId/:instanceId/start', async (req, res) => {
54
- const result = await instanceManager.start(req.params.systemId, req.params.instanceId);
55
- if (result instanceof Task) {
59
+ const result = await instanceManager_1.instanceManager.start(req.params.systemId, req.params.instanceId);
60
+ if (result instanceof taskManager_1.Task) {
56
61
  res.status(202).send({
57
62
  ok: true,
58
63
  taskId: result.id,
@@ -70,20 +75,20 @@ router.post('/:systemId/:instanceId/start', async (req, res) => {
70
75
  * Stop single instance in a plan
71
76
  */
72
77
  router.post('/:systemId/:instanceId/stop', async (req, res) => {
73
- await instanceManager.stop(req.params.systemId, req.params.instanceId);
78
+ await instanceManager_1.instanceManager.stop(req.params.systemId, req.params.instanceId);
74
79
  res.status(202).send({ ok: true });
75
80
  });
76
81
  /**
77
82
  * Get logs for instance in a plan
78
83
  */
79
84
  router.get('/:systemId/:instanceId/logs', async (req, res) => {
80
- const instanceInfo = instanceManager.getInstance(req.params.systemId, req.params.instanceId);
85
+ const instanceInfo = instanceManager_1.instanceManager.getInstance(req.params.systemId, req.params.instanceId);
81
86
  if (!instanceInfo) {
82
87
  res.status(404).send({ ok: false });
83
88
  return;
84
89
  }
85
90
  try {
86
- const logs = await instanceManager.getLogs(req.params.systemId, req.params.instanceId);
91
+ const logs = await instanceManager_1.instanceManager.getLogs(req.params.systemId, req.params.instanceId);
87
92
  res.status(200).send({
88
93
  logs,
89
94
  });
@@ -96,7 +101,7 @@ router.get('/:systemId/:instanceId/logs', async (req, res) => {
96
101
  * Get public address for instance in a plan if available
97
102
  */
98
103
  router.get('/:systemId/:instanceId/address/public', (req, res) => {
99
- const instance = instanceManager.getInstance(req.params.systemId, req.params.instanceId);
104
+ const instance = instanceManager_1.instanceManager.getInstance(req.params.systemId, req.params.instanceId);
100
105
  if (!instance) {
101
106
  res.status(404).send({ ok: false });
102
107
  return;
@@ -111,9 +116,9 @@ router.get('/:systemId/:instanceId/address/public', (req, res) => {
111
116
  * Get public address for particular resource on instance in a plan if available
112
117
  */
113
118
  router.get('/:systemId/:instanceId/provider/:portType/:resourceName/address/public', (req, res) => {
114
- res.send(serviceManager.getConsumerAddress(req.params.systemId, req.params.instanceId, req.params.resourceName, req.params.portType, req.kapeta?.environment));
119
+ res.send(serviceManager_1.serviceManager.getConsumerAddress(req.params.systemId, req.params.instanceId, req.params.resourceName, req.params.portType, req.kapeta?.environment));
115
120
  });
116
- router.use('/', stringBody);
121
+ router.use('/', stringBody_1.stringBody);
117
122
  router.use('/', (req, res, next) => {
118
123
  if (!req.kapeta.blockRef) {
119
124
  res.status(400).send({ error: 'Missing X-Kapeta-Block header.' });
@@ -128,22 +133,22 @@ router.put('/', async (req, res) => {
128
133
  let instance = req.stringBody ? JSON.parse(req.stringBody) : null;
129
134
  if (req.kapeta.environment === 'docker') {
130
135
  //A bit hacky but we want to avoid overwriting the docker PID with a process PID
131
- const oldInstance = instanceManager.getInstance(req.kapeta.systemId, req.kapeta.instanceId);
136
+ const oldInstance = instanceManager_1.instanceManager.getInstance(req.kapeta.systemId, req.kapeta.instanceId);
132
137
  if (oldInstance) {
133
138
  instance.pid = oldInstance.pid;
134
139
  instance.desiredStatus = oldInstance.desiredStatus;
135
140
  }
136
- instance.type = InstanceType.DOCKER;
137
- instance.owner = InstanceOwner.INTERNAL;
141
+ instance.type = types_1.InstanceType.DOCKER;
142
+ instance.owner = types_1.InstanceOwner.INTERNAL;
138
143
  }
139
144
  else {
140
145
  // Coming from user starting the instance outside of kapeta
141
- instance.type = InstanceType.LOCAL;
142
- instance.owner = InstanceOwner.EXTERNAL;
143
- instance.desiredStatus = DesiredInstanceStatus.EXTERNAL;
146
+ instance.type = types_1.InstanceType.LOCAL;
147
+ instance.owner = types_1.InstanceOwner.EXTERNAL;
148
+ instance.desiredStatus = types_1.DesiredInstanceStatus.EXTERNAL;
144
149
  }
145
150
  try {
146
- await instanceManager.registerInstanceFromSDK(req.kapeta.systemId, req.kapeta.instanceId, instance);
151
+ await instanceManager_1.instanceManager.registerInstanceFromSDK(req.kapeta.systemId, req.kapeta.instanceId, instance);
147
152
  res.status(202).send({ ok: true });
148
153
  }
149
154
  catch (e) {
@@ -154,7 +159,7 @@ router.put('/', async (req, res) => {
154
159
  * Delete instance
155
160
  */
156
161
  router.delete('/', async (req, res) => {
157
- await instanceManager.markAsStopped(req.kapeta.systemId, req.kapeta.instanceId);
162
+ await instanceManager_1.instanceManager.markAsStopped(req.kapeta.systemId, req.kapeta.instanceId);
158
163
  res.status(202).send({ ok: true });
159
164
  });
160
- export default router;
165
+ exports.default = router;
@@ -1,6 +1,10 @@
1
- export function corsHandler(req, res, next) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.corsHandler = void 0;
4
+ function corsHandler(req, res, next) {
2
5
  res.set('Access-Control-Allow-Origin', req.headers.origin);
3
6
  res.set('Access-Control-Allow-Methods', 'GET, PUT, POST, DELETE, HEAD, PATCH');
4
7
  res.set('Access-Control-Allow-Headers', '*');
5
8
  next();
6
9
  }
10
+ exports.corsHandler = corsHandler;
@@ -1,14 +1,17 @@
1
- import { normalizeKapetaUri } from '../utils/utils';
2
- export function kapetaHeaders(req, res, next) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.kapetaHeaders = void 0;
4
+ const utils_1 = require("../utils/utils");
5
+ function kapetaHeaders(req, res, next) {
3
6
  let blockRef = req.headers['x-kapeta-block'];
4
7
  let systemId = req.headers['x-kapeta-system'];
5
8
  let instanceId = req.headers['x-kapeta-instance'];
6
9
  let environment = req.headers['x-kapeta-environment'];
7
10
  if (blockRef) {
8
- blockRef = normalizeKapetaUri(blockRef);
11
+ blockRef = (0, utils_1.normalizeKapetaUri)(blockRef);
9
12
  }
10
13
  if (systemId) {
11
- systemId = normalizeKapetaUri(systemId);
14
+ systemId = (0, utils_1.normalizeKapetaUri)(systemId);
12
15
  }
13
16
  req.kapeta = {
14
17
  blockRef,
@@ -18,3 +21,4 @@ export function kapetaHeaders(req, res, next) {
18
21
  };
19
22
  next();
20
23
  }
24
+ exports.kapetaHeaders = kapetaHeaders;
@@ -1,4 +1,7 @@
1
- export function stringBody(req, res, next) {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.stringBody = void 0;
4
+ function stringBody(req, res, next) {
2
5
  // push the data to body
3
6
  const body = [];
4
7
  req.on('data', (chunk) => {
@@ -8,3 +11,4 @@ export function stringBody(req, res, next) {
8
11
  next();
9
12
  });
10
13
  }
14
+ exports.stringBody = stringBody;
@@ -1,5 +1,11 @@
1
- import uuid from 'node-uuid';
2
- import { normalizeKapetaUri } from './utils/utils';
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.networkManager = void 0;
7
+ const node_uuid_1 = __importDefault(require("node-uuid"));
8
+ const utils_1 = require("./utils/utils");
3
9
  class NetworkManager {
4
10
  _connections;
5
11
  _sources;
@@ -18,7 +24,7 @@ class NetworkManager {
18
24
  this._targets = {};
19
25
  }
20
26
  _ensureSystem(systemId) {
21
- systemId = normalizeKapetaUri(systemId);
27
+ systemId = (0, utils_1.normalizeKapetaUri)(systemId);
22
28
  if (!this._connections[systemId]) {
23
29
  this._connections[systemId] = {};
24
30
  }
@@ -30,7 +36,7 @@ class NetworkManager {
30
36
  }
31
37
  }
32
38
  _ensureConnection(systemId, connectionId) {
33
- systemId = normalizeKapetaUri(systemId);
39
+ systemId = (0, utils_1.normalizeKapetaUri)(systemId);
34
40
  this._ensureSystem(systemId);
35
41
  if (!this._connections[systemId][connectionId]) {
36
42
  this._connections[systemId][connectionId] = [];
@@ -38,7 +44,7 @@ class NetworkManager {
38
44
  return this._connections[systemId][connectionId];
39
45
  }
40
46
  _ensureSource(systemId, sourceBlockInstanceId) {
41
- systemId = normalizeKapetaUri(systemId);
47
+ systemId = (0, utils_1.normalizeKapetaUri)(systemId);
42
48
  this._ensureSystem(systemId);
43
49
  if (!this._sources[systemId][sourceBlockInstanceId]) {
44
50
  this._sources[systemId][sourceBlockInstanceId] = [];
@@ -46,7 +52,7 @@ class NetworkManager {
46
52
  return this._sources[systemId][sourceBlockInstanceId];
47
53
  }
48
54
  _ensureTarget(systemId, targetBlockInstanceId) {
49
- systemId = normalizeKapetaUri(systemId);
55
+ systemId = (0, utils_1.normalizeKapetaUri)(systemId);
50
56
  this._ensureSystem(systemId);
51
57
  if (!this._targets[systemId][targetBlockInstanceId]) {
52
58
  this._targets[systemId][targetBlockInstanceId] = [];
@@ -54,7 +60,7 @@ class NetworkManager {
54
60
  return this._targets[systemId][targetBlockInstanceId];
55
61
  }
56
62
  addRequest(systemId, connection, request, consumerMethodId, providerMethodId) {
57
- systemId = normalizeKapetaUri(systemId);
63
+ systemId = (0, utils_1.normalizeKapetaUri)(systemId);
58
64
  const traffic = new Traffic(connection, request, consumerMethodId, providerMethodId);
59
65
  this._ensureConnection(systemId, traffic.connectionId).push(traffic);
60
66
  this._ensureSource(systemId, connection.provider.blockId).push(traffic);
@@ -82,7 +88,7 @@ class Traffic {
82
88
  error;
83
89
  response;
84
90
  constructor(connection, request, consumerMethodId, providerMethodId) {
85
- this.id = uuid.v4();
91
+ this.id = node_uuid_1.default.v4();
86
92
  this.connectionId = NetworkManager.toConnectionId(connection);
87
93
  this.consumerMethodId = consumerMethodId;
88
94
  this.providerMethodId = providerMethodId;
@@ -106,4 +112,4 @@ class Traffic {
106
112
  this.response = response;
107
113
  }
108
114
  }
109
- export const networkManager = new NetworkManager();
115
+ exports.networkManager = new NetworkManager();
@@ -21,7 +21,7 @@ declare class OperatorManager {
21
21
  * @param {string} version
22
22
  * @return {Operator}
23
23
  */
24
- getOperator(resourceType: string, version: string): Operator;
24
+ getOperator(resourceType: string, version: string): Promise<Operator>;
25
25
  /**
26
26
  * Get information about a specific consumed resource
27
27
  */
@@ -1,16 +1,23 @@
1
- import Path from 'path';
2
- import md5 from 'md5';
3
- import { parseKapetaUri } from '@kapeta/nodejs-utils';
4
- import { serviceManager } from './serviceManager';
5
- import { storageService } from './storageService';
6
- import { CONTAINER_LABEL_PORT_PREFIX, ContainerInfo, containerManager } from './containerManager';
7
- import FSExtra from 'fs-extra';
8
- import { definitionsManager } from './definitionsManager';
9
- import { getBindHost, normalizeKapetaUri } from './utils/utils';
10
- import _ from 'lodash';
11
- import AsyncLock from 'async-lock';
12
- import { taskManager } from './taskManager';
13
- export const KIND_OPERATOR = 'core/resource-type-operator';
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.operatorManager = exports.KIND_OPERATOR = void 0;
7
+ const path_1 = __importDefault(require("path"));
8
+ const md5_1 = __importDefault(require("md5"));
9
+ const nodejs_utils_1 = require("@kapeta/nodejs-utils");
10
+ const serviceManager_1 = require("./serviceManager");
11
+ const storageService_1 = require("./storageService");
12
+ const containerManager_1 = require("./containerManager");
13
+ const fs_extra_1 = __importDefault(require("fs-extra"));
14
+ const definitionsManager_1 = require("./definitionsManager");
15
+ const utils_1 = require("./utils/utils");
16
+ const lodash_1 = __importDefault(require("lodash"));
17
+ const async_lock_1 = __importDefault(require("async-lock"));
18
+ const taskManager_1 = require("./taskManager");
19
+ exports.KIND_OPERATOR = 'core/resource-type-operator';
20
+ const KIND_PLAN = 'core/plan';
14
21
  class Operator {
15
22
  _data;
16
23
  constructor(data) {
@@ -28,13 +35,13 @@ class Operator {
28
35
  }
29
36
  class OperatorManager {
30
37
  _mountDir;
31
- operatorLock = new AsyncLock();
38
+ operatorLock = new async_lock_1.default();
32
39
  constructor() {
33
- this._mountDir = Path.join(storageService.getKapetaBasedir(), 'mounts');
34
- FSExtra.mkdirpSync(this._mountDir);
40
+ this._mountDir = path_1.default.join(storageService_1.storageService.getKapetaBasedir(), 'mounts');
41
+ fs_extra_1.default.mkdirpSync(this._mountDir);
35
42
  }
36
43
  _getMountPoint(operatorType, mountName) {
37
- return Path.join(this._mountDir, operatorType, mountName);
44
+ return path_1.default.join(this._mountDir, operatorType, mountName);
38
45
  }
39
46
  /**
40
47
  * Get operator definition for resource type
@@ -43,8 +50,8 @@ class OperatorManager {
43
50
  * @param {string} version
44
51
  * @return {Operator}
45
52
  */
46
- getOperator(resourceType, version) {
47
- const operators = definitionsManager.getDefinitions(KIND_OPERATOR);
53
+ async getOperator(resourceType, version) {
54
+ const operators = await definitionsManager_1.definitionsManager.getDefinitions(exports.KIND_OPERATOR);
48
55
  const operator = operators.find((operator) => operator.definition &&
49
56
  operator.definition.metadata &&
50
57
  operator.definition.metadata.name &&
@@ -62,9 +69,9 @@ class OperatorManager {
62
69
  * Get information about a specific consumed resource
63
70
  */
64
71
  async getConsumerResourceInfo(systemId, fromServiceId, resourceType, portType, name, environment) {
65
- systemId = normalizeKapetaUri(systemId);
66
- const plans = definitionsManager.getDefinitions('core/plan');
67
- const planUri = parseKapetaUri(systemId);
72
+ systemId = (0, utils_1.normalizeKapetaUri)(systemId);
73
+ const plans = await definitionsManager_1.definitionsManager.getDefinitions(KIND_PLAN);
74
+ const planUri = (0, nodejs_utils_1.parseKapetaUri)(systemId);
68
75
  const currentPlan = plans.find((plan) => plan.definition.metadata.name === planUri.fullName && plan.version === planUri.version);
69
76
  if (!currentPlan) {
70
77
  throw new Error(`Unknown plan: ${systemId}`);
@@ -73,10 +80,7 @@ class OperatorManager {
73
80
  if (!currentInstance) {
74
81
  throw new Error(`Unknown instance: ${fromServiceId} in plan ${systemId}`);
75
82
  }
76
- const blockUri = parseKapetaUri(currentInstance.block.ref);
77
- const blockDefinition = definitionsManager
78
- .getDefinitions()
79
- .find((definition) => definition.version === blockUri.version && definition.definition.metadata.name === blockUri.fullName);
83
+ const blockDefinition = await definitionsManager_1.definitionsManager.getDefinition(currentInstance.block.ref);
80
84
  if (!blockDefinition) {
81
85
  throw new Error(`Unknown block: ${currentInstance.block.ref} in plan ${systemId}`);
82
86
  }
@@ -84,8 +88,8 @@ class OperatorManager {
84
88
  if (!blockResource) {
85
89
  throw new Error(`Unknown resource: ${name} in block ${currentInstance.block.ref} in plan ${systemId}`);
86
90
  }
87
- const kindUri = parseKapetaUri(blockResource.kind);
88
- const operator = this.getOperator(resourceType, kindUri.version);
91
+ const kindUri = (0, nodejs_utils_1.parseKapetaUri)(blockResource.kind);
92
+ const operator = await this.getOperator(resourceType, kindUri.version);
89
93
  const credentials = operator.getCredentials();
90
94
  const container = await this.ensureResource(systemId, resourceType, kindUri.version);
91
95
  const portInfo = await container.getPort(portType);
@@ -113,10 +117,10 @@ class OperatorManager {
113
117
  * @return {Promise<ContainerInfo>}
114
118
  */
115
119
  async ensureResource(systemId, resourceType, version) {
116
- systemId = normalizeKapetaUri(systemId);
120
+ systemId = (0, utils_1.normalizeKapetaUri)(systemId);
117
121
  const key = `${systemId}#${resourceType}:${version}`;
118
122
  return await this.operatorLock.acquire(key, async () => {
119
- const operator = this.getOperator(resourceType, version);
123
+ const operator = await this.getOperator(resourceType, version);
120
124
  const operatorData = operator.getLocalData();
121
125
  const portTypes = Object.keys(operatorData.ports);
122
126
  portTypes.sort();
@@ -124,7 +128,7 @@ class OperatorManager {
124
128
  for (let i = 0; i < portTypes.length; i++) {
125
129
  const portType = portTypes[i];
126
130
  let containerPortInfo = operatorData.ports[portType];
127
- const hostPort = await serviceManager.ensureServicePort(systemId, resourceType, portType);
131
+ const hostPort = await serviceManager_1.serviceManager.ensureServicePort(systemId, resourceType, portType);
128
132
  if (typeof containerPortInfo === 'number' || typeof containerPortInfo === 'string') {
129
133
  containerPortInfo = { port: containerPortInfo, type: 'tcp' };
130
134
  }
@@ -137,18 +141,18 @@ class OperatorManager {
137
141
  hostPort,
138
142
  };
139
143
  }
140
- const mounts = await containerManager.createMounts(systemId, resourceType, operatorData.mounts);
144
+ const mounts = await containerManager_1.containerManager.createMounts(systemId, resourceType, operatorData.mounts);
141
145
  const nameParts = [systemId, resourceType.toLowerCase(), version];
142
- const containerName = `kapeta-resource-${md5(nameParts.join('_'))}`;
146
+ const containerName = `kapeta-resource-${(0, md5_1.default)(nameParts.join('_'))}`;
143
147
  const PortBindings = {};
144
148
  const Env = [];
145
149
  const Labels = {
146
150
  kapeta: 'true',
147
151
  };
148
152
  const operatorMetadata = operator.getDefinitionInfo().definition.metadata;
149
- const bindHost = getBindHost();
153
+ const bindHost = (0, utils_1.getBindHost)();
150
154
  const ExposedPorts = {};
151
- _.forEach(ports, (portInfo, containerPort) => {
155
+ lodash_1.default.forEach(ports, (portInfo, containerPort) => {
152
156
  ExposedPorts['' + containerPort] = {};
153
157
  PortBindings['' + containerPort] = [
154
158
  {
@@ -156,18 +160,18 @@ class OperatorManager {
156
160
  HostIp: bindHost,
157
161
  },
158
162
  ];
159
- Labels[CONTAINER_LABEL_PORT_PREFIX + portInfo.hostPort] = portInfo.type;
163
+ Labels[containerManager_1.CONTAINER_LABEL_PORT_PREFIX + portInfo.hostPort] = portInfo.type;
160
164
  });
161
- const Mounts = containerManager.toDockerMounts(mounts);
162
- _.forEach(operatorData.env, (value, name) => {
165
+ const Mounts = containerManager_1.containerManager.toDockerMounts(mounts);
166
+ lodash_1.default.forEach(operatorData.env, (value, name) => {
163
167
  Env.push(name + '=' + value);
164
168
  });
165
- const task = taskManager.add(`operator:ensure:${key}`, async () => {
169
+ const task = taskManager_1.taskManager.add(`operator:ensure:${key}`, async () => {
166
170
  let HealthCheck = undefined;
167
171
  if (operatorData.health) {
168
- HealthCheck = containerManager.toDockerHealth(operatorData.health);
172
+ HealthCheck = containerManager_1.containerManager.toDockerHealth(operatorData.health);
169
173
  }
170
- const container = await containerManager.ensureContainer({
174
+ const container = await containerManager_1.containerManager.ensureContainer({
171
175
  name: containerName,
172
176
  Image: operatorData.image,
173
177
  Hostname: containerName + '.kapeta',
@@ -181,8 +185,8 @@ class OperatorManager {
181
185
  Mounts,
182
186
  },
183
187
  });
184
- await containerManager.waitForReady(container);
185
- return new ContainerInfo(container);
188
+ await containerManager_1.containerManager.waitForReady(container);
189
+ return new containerManager_1.ContainerInfo(container);
186
190
  }, {
187
191
  name: `Ensuring ${operatorMetadata.title ?? operatorMetadata.name}`,
188
192
  systemId,
@@ -191,4 +195,4 @@ class OperatorManager {
191
195
  });
192
196
  }
193
197
  }
194
- export const operatorManager = new OperatorManager();
198
+ exports.operatorManager = new OperatorManager();
@@ -1,7 +1,10 @@
1
- import { spawn } from '@kapeta/nodejs-process';
2
- import { socketManager } from './socketManager';
3
- import { format } from 'node:util';
4
- export class ProgressListener {
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProgressListener = void 0;
4
+ const nodejs_process_1 = require("@kapeta/nodejs-process");
5
+ const socketManager_1 = require("./socketManager");
6
+ const node_util_1 = require("node:util");
7
+ class ProgressListener {
5
8
  systemId;
6
9
  instanceId;
7
10
  constructor(systemId, instanceId) {
@@ -15,21 +18,21 @@ export class ProgressListener {
15
18
  time: Date.now(),
16
19
  };
17
20
  if (this.systemId && this.instanceId) {
18
- socketManager.emitInstanceLog(this.systemId, this.instanceId, logEntry);
21
+ socketManager_1.socketManager.emitInstanceLog(this.systemId, this.instanceId, logEntry);
19
22
  return;
20
23
  }
21
24
  if (this.systemId) {
22
- socketManager.emitSystemLog(this.systemId, logEntry);
25
+ socketManager_1.socketManager.emitSystemLog(this.systemId, logEntry);
23
26
  return;
24
27
  }
25
- socketManager.emitGlobalLog(logEntry);
28
+ socketManager_1.socketManager.emitGlobalLog(logEntry);
26
29
  }
27
30
  run(command, directory) {
28
31
  this.info(`Running command "${command}"`);
29
32
  return new Promise(async (resolve, reject) => {
30
33
  try {
31
34
  const chunks = [];
32
- const child = spawn(command, [], {
35
+ const child = (0, nodejs_process_1.spawn)(command, [], {
33
36
  cwd: directory ? directory : process.cwd(),
34
37
  shell: true,
35
38
  });
@@ -89,26 +92,27 @@ export class ProgressListener {
89
92
  }
90
93
  error(msg, ...args) {
91
94
  this.emitLog({
92
- message: format(msg, args),
95
+ message: (0, node_util_1.format)(msg, args),
93
96
  level: 'ERROR',
94
97
  });
95
98
  }
96
99
  warn(msg, ...args) {
97
100
  this.emitLog({
98
- message: format(msg, args),
101
+ message: (0, node_util_1.format)(msg, args),
99
102
  level: 'WARN',
100
103
  });
101
104
  }
102
105
  info(msg, ...args) {
103
106
  this.emitLog({
104
- message: format(msg, args),
107
+ message: (0, node_util_1.format)(msg, args),
105
108
  level: 'INFO',
106
109
  });
107
110
  }
108
111
  debug(msg, ...args) {
109
112
  this.emitLog({
110
- message: format(msg, args),
113
+ message: (0, node_util_1.format)(msg, args),
111
114
  level: 'DEBUG',
112
115
  });
113
116
  }
114
117
  }
118
+ exports.ProgressListener = ProgressListener;
@@ -1,5 +1,6 @@
1
+ import { DefinitionInfo } from '@kapeta/local-cluster-config';
1
2
  declare class ProviderManager {
2
- getWebProviders(): import("@kapeta/local-cluster-config").DefinitionInfo[];
3
+ getWebProviders(): Promise<DefinitionInfo[]>;
3
4
  getProviderWebJS(handle: string, name: string, version: string, sourceMap?: boolean): Promise<unknown>;
4
5
  }
5
6
  export declare const providerManager: ProviderManager;