zephyr-edge-contract 0.0.11 → 0.0.12
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/package.json +2 -4
- package/src/index.d.ts +2 -1
- package/src/index.js +9 -5
- package/src/index.js.map +1 -1
- package/src/lib/node-persist/partial-assets-map.d.ts +4 -0
- package/src/lib/node-persist/partial-assets-map.js +38 -0
- package/src/lib/node-persist/partial-assets-map.js.map +1 -0
- package/src/lib/node-persist/storage-keys.d.ts +1 -0
- package/src/lib/utils/ze-http-request.d.ts +3 -1
- package/src/lib/utils/ze-http-request.js +20 -7
- package/src/lib/utils/ze-http-request.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zephyr-edge-contract",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.12",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "nx build zephyr-edge-contract"
|
|
@@ -15,8 +15,6 @@
|
|
|
15
15
|
"@types/node-persist": "^3.1.8",
|
|
16
16
|
"@types/debug": "^4.1.12"
|
|
17
17
|
},
|
|
18
|
-
"type": "commonjs",
|
|
19
18
|
"main": "./src/index.js",
|
|
20
|
-
"
|
|
21
|
-
"typings": "./src/index.d.ts"
|
|
19
|
+
"type": "commonjs"
|
|
22
20
|
}
|
package/src/index.d.ts
CHANGED
|
@@ -5,8 +5,9 @@ export { ZeApplicationList } from './lib/ze-api/app-list';
|
|
|
5
5
|
export { Snapshot, SnapshotAsset } from './lib/snapshot';
|
|
6
6
|
export { ZeEnvs, ZeUploadBuildStats } from './lib/edge-api/ze-envs-request';
|
|
7
7
|
export * from './lib/zephyr-edge-contract';
|
|
8
|
-
export { saveToken, getToken, removeToken, cleanTokens, } from './lib/node-persist/token';
|
|
9
8
|
export { ZeApplicationConfig, getAppConfig, remoteAppConfig, saveAppConfig, } from './lib/node-persist/application-configuration';
|
|
9
|
+
export { getPartialAssetMap, removePartialAssetMap, savePartialAssetMap, } from './lib/node-persist/partial-assets-map';
|
|
10
|
+
export { saveToken, getToken, removeToken, cleanTokens, } from './lib/node-persist/token';
|
|
10
11
|
export { ZeWebpackPluginOptions } from './lib/plugin-options/ze-webpack-plugin-options';
|
|
11
12
|
export { ZephyrPluginOptions } from './lib/plugin-options/zephyr-plugin-options';
|
|
12
13
|
export { ZEPHYR_API_ENDPOINT, v2_api_paths, } from './lib/api-contract-negotiation/get-api-contract';
|
package/src/index.js
CHANGED
|
@@ -1,21 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.request = exports.safe_json_parse = exports.is_debug_enabled = exports.ze_error = exports.ze_log = exports.v2_api_paths = exports.ZEPHYR_API_ENDPOINT = exports.
|
|
3
|
+
exports.request = exports.safe_json_parse = exports.is_debug_enabled = exports.ze_error = exports.ze_log = exports.v2_api_paths = exports.ZEPHYR_API_ENDPOINT = exports.cleanTokens = exports.removeToken = exports.getToken = exports.saveToken = exports.savePartialAssetMap = exports.removePartialAssetMap = exports.getPartialAssetMap = exports.saveAppConfig = exports.remoteAppConfig = exports.getAppConfig = exports.createSnapshotId = exports.createFullAppName = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
var create_full_app_name_1 = require("./lib/utils/create-full-app-name");
|
|
6
6
|
Object.defineProperty(exports, "createFullAppName", { enumerable: true, get: function () { return create_full_app_name_1.createFullAppName; } });
|
|
7
7
|
var create_snapshot_id_1 = require("./lib/utils/create-snapshot-id");
|
|
8
8
|
Object.defineProperty(exports, "createSnapshotId", { enumerable: true, get: function () { return create_snapshot_id_1.createSnapshotId; } });
|
|
9
9
|
tslib_1.__exportStar(require("./lib/zephyr-edge-contract"), exports);
|
|
10
|
+
var application_configuration_1 = require("./lib/node-persist/application-configuration");
|
|
11
|
+
Object.defineProperty(exports, "getAppConfig", { enumerable: true, get: function () { return application_configuration_1.getAppConfig; } });
|
|
12
|
+
Object.defineProperty(exports, "remoteAppConfig", { enumerable: true, get: function () { return application_configuration_1.remoteAppConfig; } });
|
|
13
|
+
Object.defineProperty(exports, "saveAppConfig", { enumerable: true, get: function () { return application_configuration_1.saveAppConfig; } });
|
|
14
|
+
var partial_assets_map_1 = require("./lib/node-persist/partial-assets-map");
|
|
15
|
+
Object.defineProperty(exports, "getPartialAssetMap", { enumerable: true, get: function () { return partial_assets_map_1.getPartialAssetMap; } });
|
|
16
|
+
Object.defineProperty(exports, "removePartialAssetMap", { enumerable: true, get: function () { return partial_assets_map_1.removePartialAssetMap; } });
|
|
17
|
+
Object.defineProperty(exports, "savePartialAssetMap", { enumerable: true, get: function () { return partial_assets_map_1.savePartialAssetMap; } });
|
|
10
18
|
var token_1 = require("./lib/node-persist/token");
|
|
11
19
|
Object.defineProperty(exports, "saveToken", { enumerable: true, get: function () { return token_1.saveToken; } });
|
|
12
20
|
Object.defineProperty(exports, "getToken", { enumerable: true, get: function () { return token_1.getToken; } });
|
|
13
21
|
Object.defineProperty(exports, "removeToken", { enumerable: true, get: function () { return token_1.removeToken; } });
|
|
14
22
|
Object.defineProperty(exports, "cleanTokens", { enumerable: true, get: function () { return token_1.cleanTokens; } });
|
|
15
|
-
var application_configuration_1 = require("./lib/node-persist/application-configuration");
|
|
16
|
-
Object.defineProperty(exports, "getAppConfig", { enumerable: true, get: function () { return application_configuration_1.getAppConfig; } });
|
|
17
|
-
Object.defineProperty(exports, "remoteAppConfig", { enumerable: true, get: function () { return application_configuration_1.remoteAppConfig; } });
|
|
18
|
-
Object.defineProperty(exports, "saveAppConfig", { enumerable: true, get: function () { return application_configuration_1.saveAppConfig; } });
|
|
19
23
|
var get_api_contract_1 = require("./lib/api-contract-negotiation/get-api-contract");
|
|
20
24
|
Object.defineProperty(exports, "ZEPHYR_API_ENDPOINT", { enumerable: true, get: function () { return get_api_contract_1.ZEPHYR_API_ENDPOINT; } });
|
|
21
25
|
Object.defineProperty(exports, "v2_api_paths", { enumerable: true, get: function () { return get_api_contract_1.v2_api_paths; } });
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/zephyr-edge-contract/src/index.ts"],"names":[],"mappings":";;;;AAAA,yEAAqE;AAA5D,yHAAA,iBAAiB,OAAA;AAC1B,qEAAkE;AAAzD,sHAAA,gBAAgB,OAAA;AAOzB,qEAA2C;AAE3C,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/zephyr-edge-contract/src/index.ts"],"names":[],"mappings":";;;;AAAA,yEAAqE;AAA5D,yHAAA,iBAAiB,OAAA;AAC1B,qEAAkE;AAAzD,sHAAA,gBAAgB,OAAA;AAOzB,qEAA2C;AAE3C,0FAKsD;AAHpD,yHAAA,YAAY,OAAA;AACZ,4HAAA,eAAe,OAAA;AACf,0HAAA,aAAa,OAAA;AAGf,4EAI+C;AAH7C,wHAAA,kBAAkB,OAAA;AAClB,2HAAA,qBAAqB,OAAA;AACrB,yHAAA,mBAAmB,OAAA;AAGrB,kDAKkC;AAJhC,kGAAA,SAAS,OAAA;AACT,iGAAA,QAAQ,OAAA;AACR,oGAAA,WAAW,OAAA;AACX,oGAAA,WAAW,OAAA;AAMb,oFAGyD;AAFvD,uHAAA,mBAAmB,OAAA;AACnB,gHAAA,YAAY,OAAA;AAGd,2CAAuE;AAA9D,+FAAA,MAAM,OAAA;AAAE,iGAAA,QAAQ,OAAA;AAAE,yGAAA,gBAAgB,OAAA;AAC3C,+DAA8D;AAArD,kHAAA,eAAe,OAAA;AACxB,+DAAsD;AAA7C,0GAAA,OAAO,OAAA"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ZeBuildAssetsMap } from '../zephyr-edge-contract';
|
|
2
|
+
export declare function savePartialAssetMap(application_uid: string, partial_key: string, assetMap: ZeBuildAssetsMap): Promise<void>;
|
|
3
|
+
export declare function getPartialAssetMap(application_uid: string): Promise<ZeBuildAssetsMap | undefined>;
|
|
4
|
+
export declare function removePartialAssetMap(application_uid: string): Promise<void>;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.removePartialAssetMap = exports.getPartialAssetMap = exports.savePartialAssetMap = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const node_persist_1 = require("node-persist");
|
|
6
|
+
const node_os_1 = require("node:os");
|
|
7
|
+
const node_path_1 = require("node:path");
|
|
8
|
+
const storage_keys_1 = require("./storage-keys");
|
|
9
|
+
const storage = (0, node_persist_1.init)({
|
|
10
|
+
dir: (0, node_path_1.join)((0, node_os_1.homedir)(), storage_keys_1.ZE_PATH),
|
|
11
|
+
});
|
|
12
|
+
function get_key(application_uid) {
|
|
13
|
+
return ["ze_app_partial_asset_map" /* StorageKeys.ze_app_partial_asset_map */, application_uid].join('.');
|
|
14
|
+
}
|
|
15
|
+
function savePartialAssetMap(application_uid, partial_key, assetMap) {
|
|
16
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
17
|
+
yield storage;
|
|
18
|
+
const key = get_key(application_uid);
|
|
19
|
+
const partial_asset_map = yield (0, node_persist_1.getItem)(key);
|
|
20
|
+
void (yield (0, node_persist_1.setItem)(key, Object.assign({}, partial_asset_map || {}, { [partial_key]: assetMap })));
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
exports.savePartialAssetMap = savePartialAssetMap;
|
|
24
|
+
function getPartialAssetMap(application_uid) {
|
|
25
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
26
|
+
yield storage;
|
|
27
|
+
return (0, node_persist_1.getItem)(get_key(application_uid));
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
exports.getPartialAssetMap = getPartialAssetMap;
|
|
31
|
+
function removePartialAssetMap(application_uid) {
|
|
32
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
33
|
+
yield storage;
|
|
34
|
+
yield (0, node_persist_1.removeItem)(get_key(application_uid));
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
exports.removePartialAssetMap = removePartialAssetMap;
|
|
38
|
+
//# sourceMappingURL=partial-assets-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"partial-assets-map.js","sourceRoot":"","sources":["../../../../../../libs/zephyr-edge-contract/src/lib/node-persist/partial-assets-map.ts"],"names":[],"mappings":";;;;AAAA,+CAAkE;AAClE,qCAAkC;AAClC,yCAAiC;AACjC,iDAAsD;AAGtD,MAAM,OAAO,GAAG,IAAA,mBAAI,EAAC;IACnB,GAAG,EAAE,IAAA,gBAAI,EAAC,IAAA,iBAAO,GAAE,EAAE,sBAAO,CAAC;CAC9B,CAAC,CAAC;AAEH,SAAS,OAAO,CAAC,eAAuB;IACtC,OAAO,wEAAuC,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3E,CAAC;AAED,SAAsB,mBAAmB,CACvC,eAAuB,EACvB,WAAmB,EACnB,QAA0B;;QAE1B,MAAM,OAAO,CAAC;QACd,MAAM,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;QACrC,MAAM,iBAAiB,GAAG,MAAM,IAAA,sBAAO,EAAC,GAAG,CAAC,CAAC;QAC7C,KAAK,CAAC,MAAM,IAAA,sBAAO,EACjB,GAAG,EACH,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,iBAAiB,IAAI,EAAE,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,QAAQ,EAAE,CAAC,CACxE,CAAC,CAAC;IACL,CAAC;CAAA;AAZD,kDAYC;AAED,SAAsB,kBAAkB,CACtC,eAAuB;;QAEvB,MAAM,OAAO,CAAC;QACd,OAAO,IAAA,sBAAO,EAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;IAC3C,CAAC;CAAA;AALD,gDAKC;AAED,SAAsB,qBAAqB,CACzC,eAAuB;;QAEvB,MAAM,OAAO,CAAC;QACd,MAAM,IAAA,yBAAU,EAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;IAC7C,CAAC;CAAA;AALD,sDAKC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import type { ClientRequestArgs } from 'node:http';
|
|
3
|
-
export declare function request<T = unknown>(url: URL, options?: ClientRequestArgs, data?: unknown
|
|
3
|
+
export declare function request<T = unknown>(url: URL, options?: ClientRequestArgs, data?: unknown & {
|
|
4
|
+
length: number | undefined;
|
|
5
|
+
}): Promise<T | string>;
|
|
@@ -7,11 +7,17 @@ const https = tslib_1.__importStar(require("node:https"));
|
|
|
7
7
|
const debug_1 = require("./debug");
|
|
8
8
|
const token_1 = require("../node-persist/token");
|
|
9
9
|
const safe_json_parse_1 = require("./safe-json-parse");
|
|
10
|
+
function _redact(str) {
|
|
11
|
+
return str
|
|
12
|
+
.replace(/Bearer ([^"]+)/gi, 'Bearer [REDACTED]')
|
|
13
|
+
.replace(/jwt":"([^"]+)/gi, 'jwt":"[REDACTED]');
|
|
14
|
+
}
|
|
10
15
|
function request(url, options, data) {
|
|
11
16
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
12
17
|
const _https = url.protocol !== 'https:' ? http : https;
|
|
13
18
|
return new Promise((resolve, reject) => {
|
|
14
|
-
|
|
19
|
+
const req_start = Date.now();
|
|
20
|
+
const _options_str = _redact(JSON.stringify(options));
|
|
15
21
|
const req = _https.request(url, options !== null && options !== void 0 ? options : {}, (res) => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
16
22
|
if (res.statusCode === 401 || res.statusCode === 403) {
|
|
17
23
|
yield (0, token_1.cleanTokens)();
|
|
@@ -22,22 +28,29 @@ function request(url, options, data) {
|
|
|
22
28
|
const response = [];
|
|
23
29
|
res.on('data', (d) => response.push(d));
|
|
24
30
|
res.on('end', () => {
|
|
25
|
-
var _a, _b, _c;
|
|
31
|
+
var _a, _b, _c, _d;
|
|
26
32
|
const _response = (_a = Buffer.concat(response)) === null || _a === void 0 ? void 0 : _a.toString();
|
|
33
|
+
const message = _redact(`[${(options === null || options === void 0 ? void 0 : options.method) || 'GET'}][${url}]: ${Date.now() - req_start}ms` +
|
|
34
|
+
((data === null || data === void 0 ? void 0 : data.length)
|
|
35
|
+
? ` - ${(((_b = data.length) !== null && _b !== void 0 ? _b : 0) / 1024).toFixed(2)}kb`
|
|
36
|
+
: '') +
|
|
37
|
+
(_response ? `\n response: ${_response}` : '') +
|
|
38
|
+
((data === null || data === void 0 ? void 0 : data.length) ? `\n payload: ${data}` : '') +
|
|
39
|
+
(_options_str ? `\n options: ${_options_str}` : ''));
|
|
27
40
|
if (_response === 'Not Implemented')
|
|
28
|
-
return reject(
|
|
41
|
+
return reject(message);
|
|
29
42
|
const parsed_response = (0, safe_json_parse_1.safe_json_parse)(_response);
|
|
30
43
|
if ((typeof res.statusCode === 'number' && res.statusCode > 299) ||
|
|
31
44
|
(typeof (parsed_response === null || parsed_response === void 0 ? void 0 : parsed_response.status) === 'number' &&
|
|
32
45
|
(parsed_response === null || parsed_response === void 0 ? void 0 : parsed_response.status) > 299)) {
|
|
33
|
-
return reject(`[zephyr]: Error from ${url}: \n ${(
|
|
46
|
+
return reject(`[zephyr]: Error from ${url}: \n ${(_c = parsed_response === null || parsed_response === void 0 ? void 0 : parsed_response.message) !== null && _c !== void 0 ? _c : _response}`);
|
|
34
47
|
}
|
|
35
|
-
(0, debug_1.ze_log)(
|
|
36
|
-
resolve((
|
|
48
|
+
(0, debug_1.ze_log)(message);
|
|
49
|
+
resolve((_d = parsed_response) !== null && _d !== void 0 ? _d : _response);
|
|
37
50
|
});
|
|
38
51
|
}));
|
|
39
52
|
req.on('error', (e) => {
|
|
40
|
-
(0, debug_1.ze_error)(`[
|
|
53
|
+
(0, debug_1.ze_error)(`[${(options === null || options === void 0 ? void 0 : options.method) || 'GET'}][${url}]: ${Date.now() - req_start}ms \n ${_options_str}`, e);
|
|
41
54
|
reject(e);
|
|
42
55
|
});
|
|
43
56
|
if (data) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ze-http-request.js","sourceRoot":"","sources":["../../../../../../libs/zephyr-edge-contract/src/lib/utils/ze-http-request.ts"],"names":[],"mappings":";;;;AACA,wDAAkC;AAClC,0DAAoC;AACpC,mCAA2C;AAC3C,iDAAoD;AACpD,uDAAoD;AAEpD,SAAsB,OAAO,CAC3B,GAAQ,EACR,OAA2B,EAC3B,
|
|
1
|
+
{"version":3,"file":"ze-http-request.js","sourceRoot":"","sources":["../../../../../../libs/zephyr-edge-contract/src/lib/utils/ze-http-request.ts"],"names":[],"mappings":"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"}
|