@kapeta/local-cluster-service 0.16.5 → 0.16.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/src/containerManager.js +4 -1
- package/dist/cjs/src/providerManager.d.ts +1 -2
- package/dist/cjs/src/providerManager.js +26 -4
- package/dist/esm/index.js +1 -0
- package/dist/esm/src/containerManager.js +4 -1
- package/dist/esm/src/providerManager.d.ts +1 -2
- package/dist/esm/src/providerManager.js +27 -5
- package/index.ts +1 -0
- package/package.json +1 -1
- package/src/containerManager.ts +4 -1
- package/src/providerManager.ts +32 -11
package/CHANGELOG.md
CHANGED
@@ -1,3 +1,17 @@
|
|
1
|
+
## [0.16.7](https://github.com/kapetacom/local-cluster-service/compare/v0.16.6...v0.16.7) (2023-08-24)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* Load JS from provider endpoints if not available locally ([#63](https://github.com/kapetacom/local-cluster-service/issues/63)) ([83c7cb4](https://github.com/kapetacom/local-cluster-service/commit/83c7cb4a176a2b23ee5bf5e8a312e8a64abd9ea6))
|
7
|
+
|
8
|
+
## [0.16.6](https://github.com/kapetacom/local-cluster-service/compare/v0.16.5...v0.16.6) (2023-08-21)
|
9
|
+
|
10
|
+
|
11
|
+
### Bug Fixes
|
12
|
+
|
13
|
+
* Add timeout when testing docker ([#62](https://github.com/kapetacom/local-cluster-service/issues/62)) ([c6e373e](https://github.com/kapetacom/local-cluster-service/commit/c6e373eab81f466b5a4fd8dbd9ca9f085f9b91de))
|
14
|
+
|
1
15
|
## [0.16.5](https://github.com/kapetacom/local-cluster-service/compare/v0.16.4...v0.16.5) (2023-08-14)
|
2
16
|
|
3
17
|
|
package/dist/cjs/index.js
CHANGED
@@ -62,7 +62,10 @@ class ContainerManager {
|
|
62
62
|
];
|
63
63
|
for (const opts of connectOptions) {
|
64
64
|
try {
|
65
|
-
const client = new node_docker_api_1.Docker(
|
65
|
+
const client = new node_docker_api_1.Docker({
|
66
|
+
...opts,
|
67
|
+
timeout: 10000,
|
68
|
+
});
|
66
69
|
await client.ping();
|
67
70
|
this._docker = client;
|
68
71
|
const versionInfo = await client.version();
|
@@ -1,7 +1,6 @@
|
|
1
|
-
/// <reference types="node" />
|
2
1
|
declare class ProviderManager {
|
3
2
|
getWebProviders(): import("@kapeta/local-cluster-config").DefinitionInfo[];
|
4
|
-
getProviderWebJS(handle: string, name: string, version: string, sourceMap?: boolean): Promise<
|
3
|
+
getProviderWebJS(handle: string, name: string, version: string, sourceMap?: boolean): Promise<unknown>;
|
5
4
|
}
|
6
5
|
export declare const providerManager: ProviderManager;
|
7
6
|
export {};
|
@@ -6,9 +6,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.providerManager = void 0;
|
7
7
|
const path_1 = __importDefault(require("path"));
|
8
8
|
const fs_extra_1 = __importDefault(require("fs-extra"));
|
9
|
-
const repositoryManager_1 = require("./repositoryManager");
|
10
9
|
const definitionsManager_1 = require("./definitionsManager");
|
11
10
|
const cacheManager_1 = require("./cacheManager");
|
11
|
+
const request_1 = __importDefault(require("request"));
|
12
|
+
const PROVIDER_FILE_BASE = 'https://providers.kapeta.com/files';
|
12
13
|
class ProviderManager {
|
13
14
|
getWebProviders() {
|
14
15
|
return definitionsManager_1.definitionsManager.getProviderDefinitions().filter((providerDefinition) => providerDefinition.hasWeb);
|
@@ -18,10 +19,9 @@ class ProviderManager {
|
|
18
19
|
const id = `${handle}/${name}/${version}/web.js${sourceMap ? '.map' : ''}`;
|
19
20
|
const cacheKey = `provider:web:${id}`;
|
20
21
|
const file = cacheManager_1.cacheManager.get(cacheKey);
|
21
|
-
if (file && await fs_extra_1.default.pathExists(file)) {
|
22
|
+
if (file && (await fs_extra_1.default.pathExists(file))) {
|
22
23
|
return fs_extra_1.default.readFile(file, 'utf8');
|
23
24
|
}
|
24
|
-
await repositoryManager_1.repositoryManager.ensureAsset(handle, name, version, true);
|
25
25
|
const installedProvider = this.getWebProviders().find((providerDefinition) => {
|
26
26
|
return providerDefinition.definition.metadata.name === fullName && providerDefinition.version === version;
|
27
27
|
});
|
@@ -33,7 +33,28 @@ class ProviderManager {
|
|
33
33
|
return fs_extra_1.default.readFile(path);
|
34
34
|
}
|
35
35
|
}
|
36
|
-
|
36
|
+
if (version === 'local') {
|
37
|
+
return null;
|
38
|
+
}
|
39
|
+
const url = `${PROVIDER_FILE_BASE}/${id}`;
|
40
|
+
return new Promise((resolve, reject) => {
|
41
|
+
console.log('Loading provider from %s', url);
|
42
|
+
request_1.default.get(url, (error, response, body) => {
|
43
|
+
if (error) {
|
44
|
+
reject(error);
|
45
|
+
return;
|
46
|
+
}
|
47
|
+
if (response.statusCode === 404) {
|
48
|
+
resolve(null);
|
49
|
+
return;
|
50
|
+
}
|
51
|
+
if (response.statusCode !== 200) {
|
52
|
+
reject(new Error(`Failed to load provider from ${url}: ${body}`));
|
53
|
+
return;
|
54
|
+
}
|
55
|
+
resolve(body);
|
56
|
+
});
|
57
|
+
});
|
37
58
|
}
|
38
59
|
}
|
39
60
|
const providerDefinitions = definitionsManager_1.definitionsManager.getProviderDefinitions();
|
@@ -43,6 +64,7 @@ if (providerDefinitions.length > 0) {
|
|
43
64
|
console.log(' - %s[%s:%s]', providerDefinition.definition.kind, providerDefinition.definition.metadata.name, providerDefinition.version);
|
44
65
|
console.log(' from %s', providerDefinition.path);
|
45
66
|
});
|
67
|
+
console.log('##');
|
46
68
|
}
|
47
69
|
else {
|
48
70
|
console.log('## No providers found ##');
|
package/dist/esm/index.js
CHANGED
@@ -56,7 +56,10 @@ class ContainerManager {
|
|
56
56
|
];
|
57
57
|
for (const opts of connectOptions) {
|
58
58
|
try {
|
59
|
-
const client = new Docker(
|
59
|
+
const client = new Docker({
|
60
|
+
...opts,
|
61
|
+
timeout: 10000,
|
62
|
+
});
|
60
63
|
await client.ping();
|
61
64
|
this._docker = client;
|
62
65
|
const versionInfo = await client.version();
|
@@ -1,7 +1,6 @@
|
|
1
|
-
/// <reference types="node" />
|
2
1
|
declare class ProviderManager {
|
3
2
|
getWebProviders(): import("@kapeta/local-cluster-config").DefinitionInfo[];
|
4
|
-
getProviderWebJS(handle: string, name: string, version: string, sourceMap?: boolean): Promise<
|
3
|
+
getProviderWebJS(handle: string, name: string, version: string, sourceMap?: boolean): Promise<unknown>;
|
5
4
|
}
|
6
5
|
export declare const providerManager: ProviderManager;
|
7
6
|
export {};
|
@@ -1,8 +1,9 @@
|
|
1
1
|
import Path from 'path';
|
2
2
|
import FSExtra from 'fs-extra';
|
3
|
-
import { repositoryManager } from './repositoryManager';
|
4
3
|
import { definitionsManager } from './definitionsManager';
|
5
|
-
import { cacheManager } from
|
4
|
+
import { cacheManager } from './cacheManager';
|
5
|
+
import request from 'request';
|
6
|
+
const PROVIDER_FILE_BASE = 'https://providers.kapeta.com/files';
|
6
7
|
class ProviderManager {
|
7
8
|
getWebProviders() {
|
8
9
|
return definitionsManager.getProviderDefinitions().filter((providerDefinition) => providerDefinition.hasWeb);
|
@@ -12,10 +13,9 @@ class ProviderManager {
|
|
12
13
|
const id = `${handle}/${name}/${version}/web.js${sourceMap ? '.map' : ''}`;
|
13
14
|
const cacheKey = `provider:web:${id}`;
|
14
15
|
const file = cacheManager.get(cacheKey);
|
15
|
-
if (file && await FSExtra.pathExists(file)) {
|
16
|
+
if (file && (await FSExtra.pathExists(file))) {
|
16
17
|
return FSExtra.readFile(file, 'utf8');
|
17
18
|
}
|
18
|
-
await repositoryManager.ensureAsset(handle, name, version, true);
|
19
19
|
const installedProvider = this.getWebProviders().find((providerDefinition) => {
|
20
20
|
return providerDefinition.definition.metadata.name === fullName && providerDefinition.version === version;
|
21
21
|
});
|
@@ -27,7 +27,28 @@ class ProviderManager {
|
|
27
27
|
return FSExtra.readFile(path);
|
28
28
|
}
|
29
29
|
}
|
30
|
-
|
30
|
+
if (version === 'local') {
|
31
|
+
return null;
|
32
|
+
}
|
33
|
+
const url = `${PROVIDER_FILE_BASE}/${id}`;
|
34
|
+
return new Promise((resolve, reject) => {
|
35
|
+
console.log('Loading provider from %s', url);
|
36
|
+
request.get(url, (error, response, body) => {
|
37
|
+
if (error) {
|
38
|
+
reject(error);
|
39
|
+
return;
|
40
|
+
}
|
41
|
+
if (response.statusCode === 404) {
|
42
|
+
resolve(null);
|
43
|
+
return;
|
44
|
+
}
|
45
|
+
if (response.statusCode !== 200) {
|
46
|
+
reject(new Error(`Failed to load provider from ${url}: ${body}`));
|
47
|
+
return;
|
48
|
+
}
|
49
|
+
resolve(body);
|
50
|
+
});
|
51
|
+
});
|
31
52
|
}
|
32
53
|
}
|
33
54
|
const providerDefinitions = definitionsManager.getProviderDefinitions();
|
@@ -37,6 +58,7 @@ if (providerDefinitions.length > 0) {
|
|
37
58
|
console.log(' - %s[%s:%s]', providerDefinition.definition.kind, providerDefinition.definition.metadata.name, providerDefinition.version);
|
38
59
|
console.log(' from %s', providerDefinition.path);
|
39
60
|
});
|
61
|
+
console.log('##');
|
40
62
|
}
|
41
63
|
else {
|
42
64
|
console.log('## No providers found ##');
|
package/index.ts
CHANGED
package/package.json
CHANGED
package/src/containerManager.ts
CHANGED
@@ -110,7 +110,10 @@ class ContainerManager {
|
|
110
110
|
];
|
111
111
|
for (const opts of connectOptions) {
|
112
112
|
try {
|
113
|
-
const client = new Docker(
|
113
|
+
const client = new Docker({
|
114
|
+
...opts,
|
115
|
+
timeout: 10000,
|
116
|
+
});
|
114
117
|
await client.ping();
|
115
118
|
this._docker = client;
|
116
119
|
const versionInfo: any = await client.version();
|
package/src/providerManager.ts
CHANGED
@@ -1,14 +1,12 @@
|
|
1
1
|
import Path from 'path';
|
2
2
|
import FSExtra from 'fs-extra';
|
3
|
-
import { repositoryManager } from './repositoryManager';
|
4
|
-
import ClusterConfiguration from '@kapeta/local-cluster-config';
|
5
|
-
import { StringMap } from './types';
|
6
3
|
import { definitionsManager } from './definitionsManager';
|
7
|
-
import {cacheManager} from
|
8
|
-
|
9
|
-
class ProviderManager {
|
4
|
+
import { cacheManager } from './cacheManager';
|
5
|
+
import request from 'request';
|
10
6
|
|
7
|
+
const PROVIDER_FILE_BASE = 'https://providers.kapeta.com/files';
|
11
8
|
|
9
|
+
class ProviderManager {
|
12
10
|
getWebProviders() {
|
13
11
|
return definitionsManager.getProviderDefinitions().filter((providerDefinition) => providerDefinition.hasWeb);
|
14
12
|
}
|
@@ -20,12 +18,10 @@ class ProviderManager {
|
|
20
18
|
const cacheKey = `provider:web:${id}`;
|
21
19
|
|
22
20
|
const file = cacheManager.get<string>(cacheKey);
|
23
|
-
if (file && await FSExtra.pathExists(file)) {
|
21
|
+
if (file && (await FSExtra.pathExists(file))) {
|
24
22
|
return FSExtra.readFile(file, 'utf8');
|
25
23
|
}
|
26
24
|
|
27
|
-
await repositoryManager.ensureAsset(handle, name, version, true);
|
28
|
-
|
29
25
|
const installedProvider = this.getWebProviders().find((providerDefinition) => {
|
30
26
|
return providerDefinition.definition.metadata.name === fullName && providerDefinition.version === version;
|
31
27
|
});
|
@@ -34,12 +30,36 @@ class ProviderManager {
|
|
34
30
|
//Check locally installed providers
|
35
31
|
const path = Path.join(installedProvider.path, 'web', handle, `${name}.js${sourceMap ? '.map' : ''}`);
|
36
32
|
if (await FSExtra.pathExists(path)) {
|
37
|
-
cacheManager.set(cacheKey, path, 24* 60 * 60 * 1000);
|
33
|
+
cacheManager.set(cacheKey, path, 24 * 60 * 60 * 1000);
|
38
34
|
return FSExtra.readFile(path);
|
39
35
|
}
|
40
36
|
}
|
41
37
|
|
42
|
-
|
38
|
+
if (version === 'local') {
|
39
|
+
return null;
|
40
|
+
}
|
41
|
+
|
42
|
+
const url = `${PROVIDER_FILE_BASE}/${id}`;
|
43
|
+
return new Promise((resolve, reject) => {
|
44
|
+
console.log('Loading provider from %s', url);
|
45
|
+
request.get(url, (error, response, body) => {
|
46
|
+
if (error) {
|
47
|
+
reject(error);
|
48
|
+
return;
|
49
|
+
}
|
50
|
+
if (response.statusCode === 404) {
|
51
|
+
resolve(null);
|
52
|
+
return;
|
53
|
+
}
|
54
|
+
|
55
|
+
if (response.statusCode !== 200) {
|
56
|
+
reject(new Error(`Failed to load provider from ${url}: ${body}`));
|
57
|
+
return;
|
58
|
+
}
|
59
|
+
|
60
|
+
resolve(body);
|
61
|
+
});
|
62
|
+
});
|
43
63
|
}
|
44
64
|
}
|
45
65
|
|
@@ -56,6 +76,7 @@ if (providerDefinitions.length > 0) {
|
|
56
76
|
);
|
57
77
|
console.log(' from %s', providerDefinition.path);
|
58
78
|
});
|
79
|
+
console.log('##');
|
59
80
|
} else {
|
60
81
|
console.log('## No providers found ##');
|
61
82
|
}
|