@kapeta/local-cluster-service 0.6.1 → 0.7.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 (192) hide show
  1. package/.eslintrc.cjs +17 -0
  2. package/.github/workflows/main.yml +22 -22
  3. package/.prettierignore +4 -0
  4. package/.vscode/launch.json +2 -4
  5. package/CHANGELOG.md +7 -0
  6. package/definitions.d.ts +17 -35
  7. package/dist/cjs/index.d.ts +27 -0
  8. package/dist/cjs/index.js +126 -0
  9. package/dist/cjs/package.json +1 -0
  10. package/dist/cjs/src/assetManager.d.ts +31 -0
  11. package/dist/cjs/src/assetManager.js +153 -0
  12. package/dist/cjs/src/assets/routes.d.ts +3 -0
  13. package/dist/cjs/src/assets/routes.js +117 -0
  14. package/dist/cjs/src/clusterService.d.ts +40 -0
  15. package/dist/cjs/src/clusterService.js +114 -0
  16. package/dist/cjs/src/codeGeneratorManager.d.ts +8 -0
  17. package/dist/cjs/src/codeGeneratorManager.js +53 -0
  18. package/dist/cjs/src/config/routes.d.ts +3 -0
  19. package/dist/cjs/src/config/routes.js +126 -0
  20. package/dist/cjs/src/configManager.d.ts +36 -0
  21. package/dist/cjs/src/configManager.js +110 -0
  22. package/dist/cjs/src/containerManager.d.ts +89 -0
  23. package/dist/cjs/src/containerManager.js +365 -0
  24. package/dist/cjs/src/filesystem/routes.d.ts +3 -0
  25. package/dist/cjs/src/filesystem/routes.js +69 -0
  26. package/dist/cjs/src/filesystemManager.d.ts +15 -0
  27. package/dist/cjs/src/filesystemManager.js +87 -0
  28. package/dist/cjs/src/identities/routes.d.ts +3 -0
  29. package/dist/cjs/src/identities/routes.js +18 -0
  30. package/dist/cjs/src/instanceManager.d.ts +56 -0
  31. package/dist/cjs/src/instanceManager.js +424 -0
  32. package/dist/cjs/src/instances/routes.d.ts +3 -0
  33. package/dist/cjs/src/instances/routes.js +134 -0
  34. package/dist/cjs/src/middleware/cors.d.ts +2 -0
  35. package/dist/cjs/src/middleware/cors.js +10 -0
  36. package/dist/cjs/src/middleware/kapeta.d.ts +11 -0
  37. package/dist/cjs/src/middleware/kapeta.js +17 -0
  38. package/dist/cjs/src/middleware/stringBody.d.ts +5 -0
  39. package/dist/cjs/src/middleware/stringBody.js +14 -0
  40. package/dist/cjs/src/networkManager.d.ts +32 -0
  41. package/dist/cjs/src/networkManager.js +109 -0
  42. package/dist/cjs/src/operatorManager.d.ts +36 -0
  43. package/dist/cjs/src/operatorManager.js +165 -0
  44. package/dist/cjs/src/progressListener.d.ts +20 -0
  45. package/dist/cjs/src/progressListener.js +91 -0
  46. package/dist/cjs/src/providerManager.d.ts +9 -0
  47. package/dist/cjs/src/providerManager.js +51 -0
  48. package/dist/cjs/src/providers/routes.d.ts +3 -0
  49. package/dist/cjs/src/providers/routes.js +42 -0
  50. package/dist/cjs/src/proxy/routes.d.ts +3 -0
  51. package/dist/cjs/src/proxy/routes.js +111 -0
  52. package/dist/cjs/src/proxy/types/rest.d.ts +4 -0
  53. package/dist/cjs/src/proxy/types/rest.js +114 -0
  54. package/dist/cjs/src/proxy/types/web.d.ts +4 -0
  55. package/dist/cjs/src/proxy/types/web.js +53 -0
  56. package/dist/cjs/src/repositoryManager.d.ts +17 -0
  57. package/dist/cjs/src/repositoryManager.js +215 -0
  58. package/dist/cjs/src/serviceManager.d.ts +29 -0
  59. package/dist/cjs/src/serviceManager.js +99 -0
  60. package/dist/cjs/src/socketManager.d.ts +14 -0
  61. package/dist/cjs/src/socketManager.js +53 -0
  62. package/dist/cjs/src/storageService.d.ts +17 -0
  63. package/dist/cjs/src/storageService.js +74 -0
  64. package/dist/cjs/src/traffic/routes.d.ts +3 -0
  65. package/dist/cjs/src/traffic/routes.js +18 -0
  66. package/dist/cjs/src/types.d.ts +88 -0
  67. package/dist/cjs/src/types.js +2 -0
  68. package/dist/cjs/src/utils/BlockInstanceRunner.d.ts +29 -0
  69. package/dist/cjs/src/utils/BlockInstanceRunner.js +468 -0
  70. package/dist/cjs/src/utils/LogData.d.ts +19 -0
  71. package/dist/cjs/src/utils/LogData.js +43 -0
  72. package/dist/cjs/src/utils/pathTemplateParser.d.ts +26 -0
  73. package/dist/cjs/src/utils/pathTemplateParser.js +121 -0
  74. package/dist/cjs/src/utils/utils.d.ts +1 -0
  75. package/dist/cjs/src/utils/utils.js +18 -0
  76. package/dist/cjs/start.d.ts +1 -0
  77. package/dist/cjs/start.js +12 -0
  78. package/dist/esm/index.d.ts +27 -0
  79. package/dist/esm/index.js +121 -0
  80. package/dist/esm/package.json +1 -0
  81. package/dist/esm/src/assetManager.d.ts +31 -0
  82. package/{src → dist/esm/src}/assetManager.js +22 -60
  83. package/dist/esm/src/assets/routes.d.ts +3 -0
  84. package/{src → dist/esm/src}/assets/routes.js +21 -36
  85. package/dist/esm/src/clusterService.d.ts +40 -0
  86. package/{src → dist/esm/src}/clusterService.js +14 -37
  87. package/dist/esm/src/codeGeneratorManager.d.ts +8 -0
  88. package/{src → dist/esm/src}/codeGeneratorManager.js +15 -24
  89. package/dist/esm/src/config/routes.d.ts +3 -0
  90. package/{src → dist/esm/src}/config/routes.js +40 -89
  91. package/dist/esm/src/configManager.d.ts +36 -0
  92. package/{src → dist/esm/src}/configManager.js +11 -40
  93. package/dist/esm/src/containerManager.d.ts +89 -0
  94. package/{src → dist/esm/src}/containerManager.js +81 -182
  95. package/dist/esm/src/filesystem/routes.d.ts +3 -0
  96. package/dist/esm/src/filesystem/routes.js +64 -0
  97. package/dist/esm/src/filesystemManager.d.ts +15 -0
  98. package/{src → dist/esm/src}/filesystemManager.js +20 -28
  99. package/dist/esm/src/identities/routes.d.ts +3 -0
  100. package/dist/esm/src/identities/routes.js +13 -0
  101. package/dist/esm/src/instanceManager.d.ts +56 -0
  102. package/{src → dist/esm/src}/instanceManager.js +88 -179
  103. package/dist/esm/src/instances/routes.d.ts +3 -0
  104. package/{src → dist/esm/src}/instances/routes.js +31 -70
  105. package/dist/esm/src/middleware/cors.d.ts +2 -0
  106. package/{src → dist/esm/src}/middleware/cors.js +2 -3
  107. package/dist/esm/src/middleware/kapeta.d.ts +11 -0
  108. package/{src → dist/esm/src}/middleware/kapeta.js +3 -7
  109. package/dist/esm/src/middleware/stringBody.d.ts +5 -0
  110. package/{src → dist/esm/src}/middleware/stringBody.js +2 -3
  111. package/dist/esm/src/networkManager.d.ts +32 -0
  112. package/{src → dist/esm/src}/networkManager.js +16 -33
  113. package/dist/esm/src/operatorManager.d.ts +36 -0
  114. package/{src → dist/esm/src}/operatorManager.js +35 -91
  115. package/dist/esm/src/progressListener.d.ts +20 -0
  116. package/dist/esm/src/progressListener.js +88 -0
  117. package/dist/esm/src/providerManager.d.ts +9 -0
  118. package/dist/esm/src/providerManager.js +45 -0
  119. package/dist/esm/src/providers/routes.d.ts +3 -0
  120. package/{src → dist/esm/src}/providers/routes.js +10 -16
  121. package/dist/esm/src/proxy/routes.d.ts +3 -0
  122. package/dist/esm/src/proxy/routes.js +106 -0
  123. package/dist/esm/src/proxy/types/rest.d.ts +4 -0
  124. package/dist/esm/src/proxy/types/rest.js +107 -0
  125. package/dist/esm/src/proxy/types/web.d.ts +4 -0
  126. package/{src → dist/esm/src}/proxy/types/web.js +13 -35
  127. package/dist/esm/src/repositoryManager.d.ts +17 -0
  128. package/dist/esm/src/repositoryManager.js +209 -0
  129. package/dist/esm/src/serviceManager.d.ts +29 -0
  130. package/{src → dist/esm/src}/serviceManager.js +12 -42
  131. package/dist/esm/src/socketManager.d.ts +14 -0
  132. package/{src → dist/esm/src}/socketManager.js +19 -23
  133. package/dist/esm/src/storageService.d.ts +17 -0
  134. package/{src → dist/esm/src}/storageService.js +8 -27
  135. package/dist/esm/src/traffic/routes.d.ts +3 -0
  136. package/{src → dist/esm/src}/traffic/routes.js +4 -9
  137. package/dist/esm/src/types.d.ts +88 -0
  138. package/dist/esm/src/types.js +1 -0
  139. package/dist/esm/src/utils/BlockInstanceRunner.d.ts +29 -0
  140. package/{src → dist/esm/src}/utils/BlockInstanceRunner.js +137 -256
  141. package/dist/esm/src/utils/LogData.d.ts +19 -0
  142. package/{src → dist/esm/src}/utils/LogData.js +11 -22
  143. package/dist/esm/src/utils/pathTemplateParser.d.ts +26 -0
  144. package/{src → dist/esm/src}/utils/pathTemplateParser.js +21 -40
  145. package/dist/esm/src/utils/utils.d.ts +1 -0
  146. package/dist/esm/src/utils/utils.js +11 -0
  147. package/dist/esm/start.d.ts +1 -0
  148. package/dist/esm/start.js +7 -0
  149. package/index.ts +147 -0
  150. package/package.json +106 -74
  151. package/src/assetManager.ts +191 -0
  152. package/src/assets/routes.ts +132 -0
  153. package/src/clusterService.ts +134 -0
  154. package/src/codeGeneratorManager.ts +57 -0
  155. package/src/config/routes.ts +159 -0
  156. package/src/configManager.ts +148 -0
  157. package/src/containerManager.ts +466 -0
  158. package/src/filesystem/routes.ts +74 -0
  159. package/src/filesystemManager.ts +93 -0
  160. package/src/identities/routes.ts +20 -0
  161. package/src/instanceManager.ts +503 -0
  162. package/src/instances/routes.ts +164 -0
  163. package/src/middleware/cors.ts +9 -0
  164. package/src/middleware/kapeta.ts +27 -0
  165. package/src/middleware/stringBody.ts +16 -0
  166. package/src/networkManager.ts +137 -0
  167. package/src/operatorManager.ts +221 -0
  168. package/src/progressListener.ts +102 -0
  169. package/src/{providerManager.js → providerManager.ts} +15 -31
  170. package/src/providers/routes.ts +46 -0
  171. package/src/proxy/routes.ts +148 -0
  172. package/src/proxy/types/{rest.js → rest.ts} +30 -30
  173. package/src/proxy/types/web.ts +60 -0
  174. package/src/{repositoryManager.js → repositoryManager.ts} +45 -73
  175. package/src/serviceManager.ts +120 -0
  176. package/src/socketManager.ts +57 -0
  177. package/src/storageService.ts +88 -0
  178. package/src/traffic/routes.ts +18 -0
  179. package/src/types.ts +97 -0
  180. package/src/utils/BlockInstanceRunner.ts +555 -0
  181. package/src/utils/LogData.ts +47 -0
  182. package/src/utils/pathTemplateParser.ts +138 -0
  183. package/src/utils/utils.ts +12 -0
  184. package/start.ts +8 -0
  185. package/tsconfig.json +13 -0
  186. package/index.js +0 -127
  187. package/src/filesystem/routes.js +0 -74
  188. package/src/identities/routes.js +0 -19
  189. package/src/progressListener.js +0 -82
  190. package/src/proxy/routes.js +0 -126
  191. package/src/utils/utils.js +0 -13
  192. package/start.js +0 -7
@@ -1,20 +1,18 @@
1
- const Path = require("path");
2
- const FS = require("fs");
3
- const FSExtra = require('fs-extra');
4
- const storageService = require('./storageService');
1
+ import Path from 'path';
2
+ import FS from 'fs';
3
+ import FSExtra from 'fs-extra';
4
+ import { storageService } from './storageService';
5
5
  const SECTION_ID = 'filesystem';
6
6
  const PROJECT_ROOT = 'project_root';
7
-
8
7
  function isFile(path) {
9
8
  try {
10
- return FS.statSync(path).isFile()
11
- } catch (error) {
9
+ return FS.statSync(path).isFile();
10
+ }
11
+ catch (error) {
12
12
  return false;
13
13
  }
14
14
  }
15
-
16
15
  class FilesystemManager {
17
-
18
16
  async writeFile(path, data) {
19
17
  const dirName = Path.dirname(path);
20
18
  console.log('Dir name', dirName, path);
@@ -24,20 +22,18 @@ class FilesystemManager {
24
22
  }
25
23
  FS.writeFileSync(path, data);
26
24
  }
27
-
28
25
  async createFolder(path) {
29
26
  return new Promise((resolve, reject) => {
30
27
  FS.mkdir(path, (err) => {
31
28
  if (err) {
32
- err.message += ". You can only create one single folder at a time.";
29
+ err.message += '. You can only create one single folder at a time.';
33
30
  reject(err.message);
34
31
  return;
35
32
  }
36
33
  resolve();
37
- })
38
- })
34
+ });
35
+ });
39
36
  }
40
-
41
37
  async readDirectory(path) {
42
38
  return new Promise((resolve, reject) => {
43
39
  let response = [];
@@ -49,41 +45,37 @@ class FilesystemManager {
49
45
  files.forEach((file) => {
50
46
  response.push({
51
47
  path: Path.join(path, file),
52
- folder: FS.lstatSync(Path.join(path, file)).isDirectory()
53
- })
48
+ folder: FS.lstatSync(Path.join(path, file)).isDirectory(),
49
+ });
54
50
  });
55
- resolve(response)
51
+ resolve(response);
56
52
  });
57
- })
53
+ });
58
54
  }
59
-
60
55
  async readFile(path) {
61
56
  return new Promise((resolve, reject) => {
62
57
  if (!isFile(path)) {
63
- reject(new Error("The path provided is invalid.Please check that the path and file name that were provided are spelled correctly. "));
64
- } else {
58
+ reject(new Error('The path provided is invalid.Please check that the path and file name that were provided are spelled correctly. '));
59
+ }
60
+ else {
65
61
  FS.readFile(path, (err, data) => {
66
62
  if (err) {
67
63
  reject(new Error(err.message));
68
64
  return;
69
65
  }
70
- resolve(data)
66
+ resolve(data);
71
67
  });
72
68
  }
73
- })
69
+ });
74
70
  }
75
-
76
71
  getRootFolder() {
77
72
  return require('os').homedir();
78
73
  }
79
-
80
74
  getProjectRootFolder() {
81
75
  return storageService.get(SECTION_ID, PROJECT_ROOT);
82
76
  }
83
-
84
77
  setProjectRootFolder(folder) {
85
78
  storageService.put(SECTION_ID, PROJECT_ROOT, folder);
86
79
  }
87
80
  }
88
-
89
- module.exports = new FilesystemManager();
81
+ export const filesystemManager = new FilesystemManager();
@@ -0,0 +1,3 @@
1
+ /// <reference types="express" />
2
+ declare const router: import("express").Router;
3
+ export default router;
@@ -0,0 +1,13 @@
1
+ import Router from 'express-promise-router';
2
+ import { KapetaAPI } from '@kapeta/nodejs-api-client';
3
+ import { corsHandler } from '../middleware/cors';
4
+ const router = Router();
5
+ const api = new KapetaAPI();
6
+ router.use('/', corsHandler);
7
+ router.get('/current', async (req, res) => {
8
+ res.send(await api.getCurrentIdentity());
9
+ });
10
+ router.get('/:identityId/memberships', async (req, res) => {
11
+ res.send(await api.getMemberships(req.params.identityId));
12
+ });
13
+ export default router;
@@ -0,0 +1,56 @@
1
+ import { InstanceInfo, ProcessInfo } from './types';
2
+ declare class InstanceManager {
3
+ private _interval;
4
+ /**
5
+ * Contains an array of running instances that have self-registered with this
6
+ * cluster service. This is done by the Kapeta SDKs
7
+ */
8
+ private _instances;
9
+ /**
10
+ * Contains the process info for the instances started by this manager. In memory only
11
+ * so can't be relied on for knowing everything that's running.
12
+ *
13
+ */
14
+ private _processes;
15
+ constructor();
16
+ _save(): void;
17
+ _checkInstances(): Promise<void>;
18
+ _isRunning(instance: InstanceInfo): Promise<any>;
19
+ _getInstanceStatus(instance: InstanceInfo): Promise<string>;
20
+ getInstances(): InstanceInfo[];
21
+ getInstancesForPlan(systemId: string): InstanceInfo[];
22
+ /**
23
+ * Get instance information
24
+ *
25
+ * @param {string} systemId
26
+ * @param {string} instanceId
27
+ * @return {*}
28
+ */
29
+ getInstance(systemId: string, instanceId: string): InstanceInfo | undefined;
30
+ /**
31
+ *
32
+ * @param {string} systemId
33
+ * @param {string} instanceId
34
+ * @param {InstanceInfo} info
35
+ * @return {Promise<void>}
36
+ */
37
+ registerInstance(systemId: string, instanceId: string, info: Omit<InstanceInfo, 'systemId' | 'instanceId'>): Promise<void>;
38
+ setInstanceAsStopped(systemId: string, instanceId: string): void;
39
+ _emit(systemId: string, type: string, payload: any): void;
40
+ createProcessesForPlan(planRef: string): Promise<ProcessInfo[]>;
41
+ _stopInstance(instance: InstanceInfo): Promise<void>;
42
+ stopAllForPlan(planRef: string): Promise<void>;
43
+ createProcess(planRef: string, instanceId: string): Promise<ProcessInfo>;
44
+ /**
45
+ *
46
+ * @param {string} planRef
47
+ * @param {string} instanceId
48
+ * @return {ProcessInfo|null}
49
+ */
50
+ getProcessForInstance(planRef: string, instanceId: string): ProcessInfo | null;
51
+ restartIfRunning(planRef: string, instanceId: string): Promise<ProcessInfo | undefined>;
52
+ stopProcess(planRef: string, instanceId: string): Promise<void>;
53
+ stopAllProcesses(): Promise<void>;
54
+ }
55
+ export declare const instanceManager: InstanceManager;
56
+ export {};