zephyr-agent 0.0.47 → 0.0.49
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/dist/lib/auth/login.d.ts +1 -7
- package/dist/lib/auth/login.js +63 -50
- package/dist/lib/auth/login.js.map +1 -1
- package/dist/lib/build-context/ze-util-get-git-info.js +2 -2
- package/dist/lib/build-context/ze-util-get-git-info.js.map +1 -1
- package/dist/lib/edge-actions/ze-enable-snapshot-on-pages.js +2 -2
- package/dist/lib/edge-actions/ze-enable-snapshot-on-pages.js.map +1 -1
- package/dist/lib/edge-actions/ze-upload-build-stats.js +2 -2
- package/dist/lib/edge-actions/ze-upload-build-stats.js.map +1 -1
- package/dist/lib/edge-requests/get-application-configuration.d.ts +2 -0
- package/dist/lib/edge-requests/get-application-configuration.js +41 -38
- package/dist/lib/edge-requests/get-application-configuration.js.map +1 -1
- package/dist/lib/edge-requests/get-application-hash-list.js +2 -2
- package/dist/lib/edge-requests/get-application-hash-list.js.map +1 -1
- package/dist/lib/edge-requests/get-build-id.js +2 -2
- package/dist/lib/edge-requests/get-build-id.js.map +1 -1
- package/dist/lib/http/http-request.d.ts +15 -0
- package/dist/lib/http/http-request.js +116 -0
- package/dist/lib/http/http-request.js.map +1 -0
- package/dist/lib/http/upload-envs.js +4 -6
- package/dist/lib/http/upload-envs.js.map +1 -1
- package/dist/lib/http/upload-file.js +2 -2
- package/dist/lib/http/upload-file.js.map +1 -1
- package/dist/lib/http/upload-snapshot.js +5 -9
- package/dist/lib/http/upload-snapshot.js.map +1 -1
- package/dist/lib/logging/ze-log-event.js +3 -3
- package/dist/lib/logging/ze-log-event.js.map +1 -1
- package/dist/lib/node-persist/app-deploy-result-cache.js +4 -8
- package/dist/lib/node-persist/app-deploy-result-cache.js.map +1 -1
- package/dist/lib/node-persist/application-configuration.js +4 -8
- package/dist/lib/node-persist/application-configuration.js.map +1 -1
- package/dist/lib/node-persist/fs-cache.js +5 -9
- package/dist/lib/node-persist/fs-cache.js.map +1 -1
- package/dist/lib/node-persist/hash-cache.js +6 -10
- package/dist/lib/node-persist/hash-cache.js.map +1 -1
- package/dist/lib/node-persist/partial-assets-map.js +4 -8
- package/dist/lib/node-persist/partial-assets-map.js.map +1 -1
- package/dist/lib/node-persist/session-lock.d.ts +17 -0
- package/dist/lib/node-persist/session-lock.js +97 -0
- package/dist/lib/node-persist/session-lock.js.map +1 -0
- package/dist/lib/node-persist/storage-keys.d.ts +3 -2
- package/dist/lib/node-persist/storage-keys.js +14 -2
- package/dist/lib/node-persist/storage-keys.js.map +1 -1
- package/dist/lib/node-persist/storage.d.ts +1 -0
- package/dist/lib/node-persist/storage.js +13 -0
- package/dist/lib/node-persist/storage.js.map +1 -0
- package/dist/lib/node-persist/token.js +6 -10
- package/dist/lib/node-persist/token.js.map +1 -1
- package/dist/package.json +3 -1
- package/dist/zephyr-engine/index.js +12 -2
- package/dist/zephyr-engine/index.js.map +1 -1
- package/dist/zephyr-engine/resolve_remote_dependency.d.ts +2 -1
- package/dist/zephyr-engine/resolve_remote_dependency.js +7 -3
- package/dist/zephyr-engine/resolve_remote_dependency.js.map +1 -1
- package/package.json +4 -2
- package/dist/lib/http/ze-http-request.d.ts +0 -16
- package/dist/lib/http/ze-http-request.js +0 -131
- package/dist/lib/http/ze-http-request.js.map +0 -1
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseUrl = parseUrl;
|
|
4
|
+
exports.makeHttpRequest = makeHttpRequest;
|
|
5
|
+
exports.makeRequest = makeRequest;
|
|
6
|
+
exports.unwrapResponse = unwrapResponse;
|
|
7
|
+
const errors_1 = require("../errors");
|
|
8
|
+
const token_1 = require("../node-persist/token");
|
|
9
|
+
const debug_1 = require("../logging/debug");
|
|
10
|
+
const zephyr_edge_contract_1 = require("zephyr-edge-contract");
|
|
11
|
+
const fetch_with_retries_1 = require("./fetch-with-retries");
|
|
12
|
+
function applyApiHost(url) {
|
|
13
|
+
// Add a query param hint in preview environments
|
|
14
|
+
const is_preview = (0, zephyr_edge_contract_1.ZE_IS_PREVIEW)();
|
|
15
|
+
const ze_api_endpoint_host = (0, zephyr_edge_contract_1.ZE_API_ENDPOINT_HOST)();
|
|
16
|
+
const zephyr_api_endpoint = (0, zephyr_edge_contract_1.ZEPHYR_API_ENDPOINT)();
|
|
17
|
+
if (is_preview && url.host === ze_api_endpoint_host) {
|
|
18
|
+
url.searchParams.set('api_host', zephyr_api_endpoint);
|
|
19
|
+
}
|
|
20
|
+
return url;
|
|
21
|
+
}
|
|
22
|
+
/** Parses the URL string into a URL object */
|
|
23
|
+
function parseUrl(urlStr) {
|
|
24
|
+
if (typeof urlStr === 'string') {
|
|
25
|
+
return applyApiHost(new URL(urlStr));
|
|
26
|
+
}
|
|
27
|
+
else if (urlStr instanceof URL) {
|
|
28
|
+
return applyApiHost(urlStr);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
const url = new URL(urlStr.path, urlStr.base);
|
|
32
|
+
for (const [key, value] of Object.entries(urlStr.query)) {
|
|
33
|
+
url.searchParams.append(key, String(value));
|
|
34
|
+
}
|
|
35
|
+
return applyApiHost(url);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/** Creates a redacted string of the response for logging */
|
|
39
|
+
function redactResponse(url, options, data, response, startTime = Date.now()) {
|
|
40
|
+
var _a;
|
|
41
|
+
const str = [
|
|
42
|
+
`[${options.method || 'GET'}][${url}]: ${Date.now() - startTime}ms`,
|
|
43
|
+
(data === null || data === void 0 ? void 0 : data.length) ? ` - ${(((_a = data.length) !== null && _a !== void 0 ? _a : 0) / 1024).toFixed(2)}kb` : '',
|
|
44
|
+
response ? `Response: ${response}` : '',
|
|
45
|
+
options ? `Options: ${JSON.stringify(options)}` : '',
|
|
46
|
+
].join('\n');
|
|
47
|
+
return str
|
|
48
|
+
.replace(/Bearer ([^"|']+)/gi, 'Bearer [REDACTED]')
|
|
49
|
+
.replace(/"?jwt"?:["|\W']{0,2}([^"|']+)(["|'])/gi, 'jwt: [REDACTED]');
|
|
50
|
+
}
|
|
51
|
+
/** Main HTTP request function that handles the request and response */
|
|
52
|
+
async function makeHttpRequest(url, options = {}, data) {
|
|
53
|
+
var _a, _b, _c, _d, _e;
|
|
54
|
+
const startTime = Date.now();
|
|
55
|
+
try {
|
|
56
|
+
const response = await (0, fetch_with_retries_1.fetchWithRetries)(url, Object.assign(Object.assign({}, options), { body: data }));
|
|
57
|
+
const resText = await response.text();
|
|
58
|
+
if (response.status === 401) {
|
|
59
|
+
// Clean the tokens and throw an error
|
|
60
|
+
await (0, token_1.cleanTokens)();
|
|
61
|
+
throw new errors_1.ZephyrError(errors_1.ZeErrors.ERR_AUTH_ERROR, {
|
|
62
|
+
message: 'Unauthenticated request',
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
if (response.status === 403) {
|
|
66
|
+
throw new errors_1.ZephyrError(errors_1.ZeErrors.ERR_AUTH_FORBIDDEN_ERROR, {
|
|
67
|
+
message: 'Unauthorized request',
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
const message = redactResponse(url, options, data, resText, startTime);
|
|
71
|
+
if (message === 'Not Implemented') {
|
|
72
|
+
throw new errors_1.ZephyrError(errors_1.ZeErrors.ERR_UNKNOWN, {
|
|
73
|
+
message: 'Not implemented yet. Please get in contact with our support.',
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
if (response.status === undefined) {
|
|
77
|
+
throw new errors_1.ZephyrError(errors_1.ZeErrors.ERR_HTTP_ERROR, {
|
|
78
|
+
content: 'No status code found',
|
|
79
|
+
method: (_b = (_a = options.method) === null || _a === void 0 ? void 0 : _a.toUpperCase()) !== null && _b !== void 0 ? _b : 'GET',
|
|
80
|
+
url: url.toString(),
|
|
81
|
+
status: -1,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
if (!url.pathname.includes('application/logs')) {
|
|
85
|
+
(0, debug_1.ze_log)(message);
|
|
86
|
+
}
|
|
87
|
+
// Only parses data if reply content is json
|
|
88
|
+
const resData = (_c = (0, zephyr_edge_contract_1.safe_json_parse)(resText)) !== null && _c !== void 0 ? _c : resText;
|
|
89
|
+
if (response.status >= 300) {
|
|
90
|
+
throw new errors_1.ZephyrError(errors_1.ZeErrors.ERR_HTTP_ERROR, {
|
|
91
|
+
status: response.status,
|
|
92
|
+
url: url.toString(),
|
|
93
|
+
content: typeof resData === 'string' ? resData : JSON.stringify(resData),
|
|
94
|
+
method: (_e = (_d = options.method) === null || _d === void 0 ? void 0 : _d.toUpperCase()) !== null && _e !== void 0 ? _e : 'GET',
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
return [true, null, resData];
|
|
98
|
+
}
|
|
99
|
+
catch (error) {
|
|
100
|
+
return [false, error];
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/** Creates a request that returns a promise for the HTTP response */
|
|
104
|
+
function makeRequest(urlStr, options = {}, data) {
|
|
105
|
+
const url = parseUrl(urlStr);
|
|
106
|
+
return makeHttpRequest(url, options, data);
|
|
107
|
+
}
|
|
108
|
+
/** Transforms `Promise<HttpResponse<T>>` into `Promise<T>` */
|
|
109
|
+
async function unwrapResponse(response) {
|
|
110
|
+
const [ok, error, data] = await response;
|
|
111
|
+
if (!ok) {
|
|
112
|
+
throw error;
|
|
113
|
+
}
|
|
114
|
+
return data;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=http-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-request.js","sourceRoot":"","sources":["../../../src/lib/http/http-request.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.uploadEnvs = uploadEnvs;
|
|
4
4
|
const get_application_configuration_1 = require("../edge-requests/get-application-configuration");
|
|
5
5
|
const logging_1 = require("../logging");
|
|
6
|
-
const
|
|
6
|
+
const http_request_1 = require("./http-request");
|
|
7
7
|
const errors_1 = require("../errors");
|
|
8
8
|
async function uploadEnvs({ body, application_uid, logEvent, }) {
|
|
9
9
|
(0, logging_1.ze_log)(`Uploading envs to Zephyr, for ${application_uid}`);
|
|
@@ -19,11 +19,9 @@ async function uploadEnvs({ body, application_uid, logEvent, }) {
|
|
|
19
19
|
can_write_jwt: jwt,
|
|
20
20
|
},
|
|
21
21
|
};
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
query: { type: 'envs' },
|
|
26
|
-
}, options, JSON.stringify(body));
|
|
22
|
+
const url = new URL('/upload', EDGE_URL);
|
|
23
|
+
url.searchParams.append('type', 'envs');
|
|
24
|
+
const [ok, cause, data] = await (0, http_request_1.makeRequest)(url, options, JSON.stringify(body));
|
|
27
25
|
if (!ok || !data) {
|
|
28
26
|
logEvent({
|
|
29
27
|
level: 'error',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-envs.js","sourceRoot":"","sources":["../../../src/lib/http/upload-envs.ts"],"names":[],"mappings":";;AAOA,
|
|
1
|
+
{"version":3,"file":"upload-envs.js","sourceRoot":"","sources":["../../../src/lib/http/upload-envs.ts"],"names":[],"mappings":";;AAOA,gCA4CC;AAnDD,kGAA6F;AAG7F,wCAAoC;AACpC,iDAA6C;AAC7C,sCAAkD;AAE3C,KAAK,UAAU,UAAU,CAAC,EAC/B,IAAI,EACJ,eAAe,EACf,QAAQ,GAKT;IACC,IAAA,gBAAM,EAAC,iCAAiC,eAAe,EAAE,CAAC,CAAC;IAE3D,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM,IAAA,2DAA2B,EAAC;QAC1D,eAAe;KAChB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAElC,MAAM,OAAO,GAAgB;QAC3B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;YACpD,cAAc,EAAE,iCAAiC;YACjD,aAAa,EAAE,GAAG;SACnB;KACF,CAAC;IAEF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACzC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAExC,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,MAAM,IAAA,0BAAW,EACzC,GAAG,EACH,OAAO,EACP,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CACrB,CAAC;IAEF,IAAI,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACjB,QAAQ,CAAC;YACP,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,oBAAoB;YAC5B,OAAO,EAAE,sCAAsC;SAChD,CAAC,CAAC;QAEH,MAAM,IAAI,oBAAW,CAAC,iBAAQ,CAAC,iBAAiB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACpF,CAAC;AACH,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.uploadFile = uploadFile;
|
|
4
|
-
const
|
|
4
|
+
const http_request_1 = require("./http-request");
|
|
5
5
|
const errors_1 = require("../errors");
|
|
6
6
|
async function uploadFile({ hash, asset }, { EDGE_URL, jwt }) {
|
|
7
7
|
const type = 'file';
|
|
@@ -14,7 +14,7 @@ async function uploadFile({ hash, asset }, { EDGE_URL, jwt }) {
|
|
|
14
14
|
'Content-Type': 'application/octet-stream',
|
|
15
15
|
},
|
|
16
16
|
};
|
|
17
|
-
const [ok, cause] = await
|
|
17
|
+
const [ok, cause] = await (0, http_request_1.makeRequest)({
|
|
18
18
|
path: '/upload',
|
|
19
19
|
base: EDGE_URL,
|
|
20
20
|
query: { type, hash, filename: asset.path },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-file.js","sourceRoot":"","sources":["../../../src/lib/http/upload-file.ts"],"names":[],"mappings":";;AAUA,gCAgCC;AAxCD,
|
|
1
|
+
{"version":3,"file":"upload-file.js","sourceRoot":"","sources":["../../../src/lib/http/upload-file.ts"],"names":[],"mappings":";;AAUA,gCAgCC;AAxCD,iDAA6C;AAC7C,sCAAkD;AAO3C,KAAK,UAAU,UAAU,CAC9B,EAAE,IAAI,EAAE,KAAK,EAAmB,EAChC,EAAE,QAAQ,EAAE,GAAG,EAAuB;IAEtC,MAAM,IAAI,GAAG,MAAM,CAAC;IAEpB,MAAM,OAAO,GAAgB;QAC3B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE;YACpC,aAAa,EAAE,KAAK,CAAC,IAAI;YACzB,aAAa,EAAE,GAAG;YAClB,cAAc,EAAE,0BAA0B;SAC3C;KACF,CAAC;IAEF,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,0BAAW,EACnC;QACE,IAAI,EAAE,SAAS;QACf,IAAI,EAAE,QAAQ;QACd,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE;KAC5C,EACD,OAAO,EACP,KAAK,CAAC,MAAM,CACb,CAAC;IAEF,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,oBAAW,CAAC,iBAAQ,CAAC,iBAAiB,EAAE;YAChD,IAAI,EAAE,MAAM;YACZ,KAAK;SACN,CAAC,CAAC;IACL,CAAC;AACH,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.uploadSnapshot = uploadSnapshot;
|
|
4
4
|
const get_application_configuration_1 = require("../edge-requests/get-application-configuration");
|
|
5
|
-
const
|
|
5
|
+
const http_request_1 = require("./http-request");
|
|
6
6
|
const errors_1 = require("../errors");
|
|
7
7
|
const logging_1 = require("../logging");
|
|
8
8
|
async function uploadSnapshot({ body, application_uid, }) {
|
|
@@ -18,14 +18,10 @@ async function uploadSnapshot({ body, application_uid, }) {
|
|
|
18
18
|
can_write_jwt: jwt,
|
|
19
19
|
},
|
|
20
20
|
};
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
type: 'snapshot',
|
|
26
|
-
skip_assets: true,
|
|
27
|
-
},
|
|
28
|
-
}, options, json);
|
|
21
|
+
const url = new URL('/upload', EDGE_URL);
|
|
22
|
+
url.searchParams.append('type', 'snapshot');
|
|
23
|
+
url.searchParams.append('skip_assets', 'true');
|
|
24
|
+
const [ok, cause, resp] = await (0, http_request_1.makeRequest)(url, options, json);
|
|
29
25
|
if (!ok) {
|
|
30
26
|
throw new errors_1.ZephyrError(errors_1.ZeErrors.ERR_FAILED_UPLOAD, {
|
|
31
27
|
type: 'snapshot',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload-snapshot.js","sourceRoot":"","sources":["../../../src/lib/http/upload-snapshot.ts"],"names":[],"mappings":";;AAMA,
|
|
1
|
+
{"version":3,"file":"upload-snapshot.js","sourceRoot":"","sources":["../../../src/lib/http/upload-snapshot.ts"],"names":[],"mappings":";;AAMA,wCAsCC;AA3CD,kGAA6F;AAC7F,iDAA6C;AAC7C,sCAAkD;AAClD,wCAAoC;AAE7B,KAAK,UAAU,cAAc,CAAC,EACnC,IAAI,EACJ,eAAe,GAIhB;IACC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,MAAM,IAAA,2DAA2B,EAAC;QAC1D,eAAe;KAChB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAElC,MAAM,OAAO,GAAgB;QAC3B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,gBAAgB,EAAE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;YACpD,cAAc,EAAE,iCAAiC;YACjD,aAAa,EAAE,GAAG;SACnB;KACF,CAAC;IAEF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACzC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC5C,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IAE/C,MAAM,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,MAAM,IAAA,0BAAW,EAAoB,GAAG,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAEnF,IAAI,CAAC,EAAE,EAAE,CAAC;QACR,MAAM,IAAI,oBAAW,CAAC,iBAAQ,CAAC,iBAAiB,EAAE;YAChD,IAAI,EAAE,UAAU;YAChB,KAAK;SACN,CAAC,CAAC;IACL,CAAC;IAED,IAAA,gBAAM,EAAC,4BAA4B,EAAE,IAAI,CAAC,CAAC;IAE3C,OAAO,IAAI,CAAC;AACd,CAAC"}
|
|
@@ -6,7 +6,7 @@ exports.logger = logger;
|
|
|
6
6
|
const zephyr_edge_contract_1 = require("zephyr-edge-contract");
|
|
7
7
|
const get_application_configuration_1 = require("../edge-requests/get-application-configuration");
|
|
8
8
|
const errors_1 = require("../errors");
|
|
9
|
-
const
|
|
9
|
+
const http_request_1 = require("../http/http-request");
|
|
10
10
|
const token_1 = require("../node-persist/token");
|
|
11
11
|
const debug_1 = require("./debug");
|
|
12
12
|
const debug_enabled_1 = require("./debug-enabled");
|
|
@@ -69,7 +69,7 @@ function logger(props) {
|
|
|
69
69
|
}
|
|
70
70
|
// Then attempt to upload logs,
|
|
71
71
|
loadLogData()
|
|
72
|
-
.then(([config, token]) =>
|
|
72
|
+
.then(([config, token]) => void (0, http_request_1.makeRequest)(url, {
|
|
73
73
|
method: 'POST',
|
|
74
74
|
headers: {
|
|
75
75
|
Authorization: `Bearer ${token}`,
|
|
@@ -88,7 +88,7 @@ function logger(props) {
|
|
|
88
88
|
git: git,
|
|
89
89
|
message: (0, zephyr_edge_contract_1.stripAnsi)(log.message.trim()),
|
|
90
90
|
createdAt: Date.now(),
|
|
91
|
-
}))))
|
|
91
|
+
})))))
|
|
92
92
|
// This is ok to fail silently
|
|
93
93
|
.catch(() => void 0);
|
|
94
94
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ze-log-event.js","sourceRoot":"","sources":["../../../src/lib/logging/ze-log-event.ts"],"names":[],"mappings":";;;AAwDA,oCAKC;AAoBD,
|
|
1
|
+
{"version":3,"file":"ze-log-event.js","sourceRoot":"","sources":["../../../src/lib/logging/ze-log-event.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,24 +4,20 @@ exports.setAppDeployResult = setAppDeployResult;
|
|
|
4
4
|
exports.getAppDeployResult = getAppDeployResult;
|
|
5
5
|
exports.removeAppDeployResult = removeAppDeployResult;
|
|
6
6
|
const node_persist_1 = require("node-persist");
|
|
7
|
-
const
|
|
8
|
-
const node_os_1 = require("node:os");
|
|
7
|
+
const storage_1 = require("./storage");
|
|
9
8
|
const storage_keys_1 = require("./storage-keys");
|
|
10
|
-
const storage = (0, node_persist_1.init)({
|
|
11
|
-
dir: (0, node_path_1.join)((0, node_os_1.homedir)(), storage_keys_1.ZE_PATH),
|
|
12
|
-
});
|
|
13
9
|
async function setAppDeployResult(application_uid, value) {
|
|
14
|
-
await storage;
|
|
10
|
+
await storage_1.storage;
|
|
15
11
|
void (await (0, node_persist_1.setItem)(`${storage_keys_1.StorageKeys.ze_app_deploy_result}:${application_uid}`, value, {
|
|
16
12
|
ttl: 1000 * 60 * 60 * 24,
|
|
17
13
|
}));
|
|
18
14
|
}
|
|
19
15
|
async function getAppDeployResult(application_uid) {
|
|
20
|
-
await storage;
|
|
16
|
+
await storage_1.storage;
|
|
21
17
|
return (0, node_persist_1.getItem)(`${storage_keys_1.StorageKeys.ze_app_deploy_result}:${application_uid}`);
|
|
22
18
|
}
|
|
23
19
|
async function removeAppDeployResult(application_uid) {
|
|
24
|
-
await storage;
|
|
20
|
+
await storage_1.storage;
|
|
25
21
|
await (0, node_persist_1.removeItem)(`${storage_keys_1.StorageKeys.ze_app_deploy_result}:${application_uid}`);
|
|
26
22
|
}
|
|
27
23
|
//# sourceMappingURL=app-deploy-result-cache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-deploy-result-cache.js","sourceRoot":"","sources":["../../../src/lib/node-persist/app-deploy-result-cache.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"app-deploy-result-cache.js","sourceRoot":"","sources":["../../../src/lib/node-persist/app-deploy-result-cache.ts"],"names":[],"mappings":";;AAIA,gDAQC;AAED,gDAKC;AAED,sDAGC;AAxBD,+CAA4D;AAC5D,uCAAoC;AACpC,iDAA6C;AAEtC,KAAK,UAAU,kBAAkB,CACtC,eAAuB,EACvB,KAAyB;IAEzB,MAAM,iBAAO,CAAC;IACd,KAAK,CAAC,MAAM,IAAA,sBAAO,EAAC,GAAG,0BAAW,CAAC,oBAAoB,IAAI,eAAe,EAAE,EAAE,KAAK,EAAE;QACnF,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;KACzB,CAAC,CAAC,CAAC;AACN,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,eAAuB;IAEvB,MAAM,iBAAO,CAAC;IACd,OAAO,IAAA,sBAAO,EAAC,GAAG,0BAAW,CAAC,oBAAoB,IAAI,eAAe,EAAE,CAAC,CAAC;AAC3E,CAAC;AAEM,KAAK,UAAU,qBAAqB,CAAC,eAAuB;IACjE,MAAM,iBAAO,CAAC;IACd,MAAM,IAAA,yBAAU,EAAC,GAAG,0BAAW,CAAC,oBAAoB,IAAI,eAAe,EAAE,CAAC,CAAC;AAC7E,CAAC"}
|
|
@@ -4,25 +4,21 @@ exports.saveAppConfig = saveAppConfig;
|
|
|
4
4
|
exports.getAppConfig = getAppConfig;
|
|
5
5
|
exports.removeAppConfig = removeAppConfig;
|
|
6
6
|
const node_persist_1 = require("node-persist");
|
|
7
|
-
const node_os_1 = require("node:os");
|
|
8
|
-
const node_path_1 = require("node:path");
|
|
9
7
|
const storage_keys_1 = require("./storage-keys");
|
|
10
|
-
const
|
|
11
|
-
dir: (0, node_path_1.join)((0, node_os_1.homedir)(), storage_keys_1.ZE_PATH),
|
|
12
|
-
});
|
|
8
|
+
const storage_1 = require("./storage");
|
|
13
9
|
function get_key(application_uid) {
|
|
14
10
|
return [storage_keys_1.StorageKeys.ze_app_config_token, application_uid].join('.');
|
|
15
11
|
}
|
|
16
12
|
async function saveAppConfig(application_uid, json) {
|
|
17
|
-
await storage;
|
|
13
|
+
await storage_1.storage;
|
|
18
14
|
void (await (0, node_persist_1.setItem)(get_key(application_uid), json, { ttl: 5 * 60 * 1000 }));
|
|
19
15
|
}
|
|
20
16
|
async function getAppConfig(application_uid) {
|
|
21
|
-
await storage;
|
|
17
|
+
await storage_1.storage;
|
|
22
18
|
return (0, node_persist_1.getItem)(get_key(application_uid));
|
|
23
19
|
}
|
|
24
20
|
async function removeAppConfig(application_uid) {
|
|
25
|
-
await storage;
|
|
21
|
+
await storage_1.storage;
|
|
26
22
|
await (0, node_persist_1.removeItem)(get_key(application_uid));
|
|
27
23
|
}
|
|
28
24
|
//# sourceMappingURL=application-configuration.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application-configuration.js","sourceRoot":"","sources":["../../../src/lib/node-persist/application-configuration.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"application-configuration.js","sourceRoot":"","sources":["../../../src/lib/node-persist/application-configuration.ts"],"names":[],"mappings":";;AASA,sCAMC;AAED,oCAKC;AAED,0CAGC;AA3BD,+CAA4D;AAC5D,iDAA6C;AAE7C,uCAAoC;AAEpC,SAAS,OAAO,CAAC,eAAuB;IACtC,OAAO,CAAC,0BAAW,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtE,CAAC;AAEM,KAAK,UAAU,aAAa,CACjC,eAAuB,EACvB,IAAyB;IAEzB,MAAM,iBAAO,CAAC;IACd,KAAK,CAAC,MAAM,IAAA,sBAAO,EAAC,OAAO,CAAC,eAAe,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;AAC/E,CAAC;AAEM,KAAK,UAAU,YAAY,CAChC,eAAuB;IAEvB,MAAM,iBAAO,CAAC;IACd,OAAO,IAAA,sBAAO,EAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;AAC3C,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,eAAuB;IAC3D,MAAM,iBAAO,CAAC;IACd,MAAM,IAAA,yBAAU,EAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -4,22 +4,18 @@ exports.saveCache = saveCache;
|
|
|
4
4
|
exports.getCache = getCache;
|
|
5
5
|
exports.removeCache = removeCache;
|
|
6
6
|
const node_persist_1 = require("node-persist");
|
|
7
|
-
const
|
|
8
|
-
const node_os_1 = require("node:os");
|
|
7
|
+
const storage_1 = require("./storage");
|
|
9
8
|
const storage_keys_1 = require("./storage-keys");
|
|
10
|
-
const storage = (0, node_persist_1.init)({
|
|
11
|
-
dir: (0, node_path_1.join)((0, node_os_1.homedir)(), storage_keys_1.ZE_PATH),
|
|
12
|
-
});
|
|
13
9
|
async function saveCache(key, value) {
|
|
14
|
-
await storage;
|
|
15
|
-
|
|
10
|
+
await storage_1.storage;
|
|
11
|
+
await (0, node_persist_1.setItem)(`${storage_keys_1.StorageKeys.ze_fs_cache}:${key}`, value);
|
|
16
12
|
}
|
|
17
13
|
async function getCache(key) {
|
|
18
|
-
await storage;
|
|
14
|
+
await storage_1.storage;
|
|
19
15
|
return (0, node_persist_1.getItem)(`${storage_keys_1.StorageKeys.ze_fs_cache}:${key}`);
|
|
20
16
|
}
|
|
21
17
|
async function removeCache(key) {
|
|
22
|
-
await storage;
|
|
18
|
+
await storage_1.storage;
|
|
23
19
|
await (0, node_persist_1.removeItem)(`${storage_keys_1.StorageKeys.ze_fs_cache}:${key}`);
|
|
24
20
|
}
|
|
25
21
|
//# sourceMappingURL=fs-cache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs-cache.js","sourceRoot":"","sources":["../../../src/lib/node-persist/fs-cache.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"fs-cache.js","sourceRoot":"","sources":["../../../src/lib/node-persist/fs-cache.ts"],"names":[],"mappings":";;AAIA,8BAGC;AAED,4BAGC;AAED,kCAGC;AAjBD,+CAA4D;AAC5D,uCAAoC;AACpC,iDAA6C;AAEtC,KAAK,UAAU,SAAS,CAAC,GAAW,EAAE,KAAa;IACxD,MAAM,iBAAO,CAAC;IACd,MAAM,IAAA,sBAAO,EAAC,GAAG,0BAAW,CAAC,WAAW,IAAI,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;AAC5D,CAAC;AAEM,KAAK,UAAU,QAAQ,CAAC,GAAW;IACxC,MAAM,iBAAO,CAAC;IACd,OAAO,IAAA,sBAAO,EAAC,GAAG,0BAAW,CAAC,WAAW,IAAI,GAAG,EAAE,CAAC,CAAC;AACtD,CAAC;AAEM,KAAK,UAAU,WAAW,CAAC,GAAW;IAC3C,MAAM,iBAAO,CAAC;IACd,MAAM,IAAA,yBAAU,EAAC,GAAG,0BAAW,CAAC,WAAW,IAAI,GAAG,EAAE,CAAC,CAAC;AACxD,CAAC"}
|
|
@@ -4,24 +4,20 @@ exports.setAppHashCache = setAppHashCache;
|
|
|
4
4
|
exports.getAppHashCache = getAppHashCache;
|
|
5
5
|
exports.removeAppHashCache = removeAppHashCache;
|
|
6
6
|
const node_persist_1 = require("node-persist");
|
|
7
|
-
const
|
|
8
|
-
const node_os_1 = require("node:os");
|
|
7
|
+
const storage_1 = require("./storage");
|
|
9
8
|
const storage_keys_1 = require("./storage-keys");
|
|
10
|
-
const storage = (0, node_persist_1.init)({
|
|
11
|
-
dir: (0, node_path_1.join)((0, node_os_1.homedir)(), storage_keys_1.ZE_PATH),
|
|
12
|
-
});
|
|
13
9
|
async function setAppHashCache(application_uid, value) {
|
|
14
|
-
await storage;
|
|
15
|
-
|
|
10
|
+
await storage_1.storage;
|
|
11
|
+
await (0, node_persist_1.setItem)(`${storage_keys_1.StorageKeys.ze_hash_cache}:${application_uid}`, value, {
|
|
16
12
|
ttl: 1000 * 60 * 60 * 24,
|
|
17
|
-
})
|
|
13
|
+
});
|
|
18
14
|
}
|
|
19
15
|
async function getAppHashCache(application_uid) {
|
|
20
|
-
await storage;
|
|
16
|
+
await storage_1.storage;
|
|
21
17
|
return (0, node_persist_1.getItem)(`${storage_keys_1.StorageKeys.ze_hash_cache}:${application_uid}`);
|
|
22
18
|
}
|
|
23
19
|
async function removeAppHashCache(application_uid) {
|
|
24
|
-
await storage;
|
|
20
|
+
await storage_1.storage;
|
|
25
21
|
await (0, node_persist_1.removeItem)(`${storage_keys_1.StorageKeys.ze_hash_cache}:${application_uid}`);
|
|
26
22
|
}
|
|
27
23
|
//# sourceMappingURL=hash-cache.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash-cache.js","sourceRoot":"","sources":["../../../src/lib/node-persist/hash-cache.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"hash-cache.js","sourceRoot":"","sources":["../../../src/lib/node-persist/hash-cache.ts"],"names":[],"mappings":";;AAIA,0CAQC;AAED,0CAKC;AAED,gDAGC;AAxBD,+CAA4D;AAC5D,uCAAoC;AACpC,iDAA6C;AAEtC,KAAK,UAAU,eAAe,CACnC,eAAuB,EACvB,KAA2B;IAE3B,MAAM,iBAAO,CAAC;IACd,MAAM,IAAA,sBAAO,EAAC,GAAG,0BAAW,CAAC,aAAa,IAAI,eAAe,EAAE,EAAE,KAAK,EAAE;QACtE,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;KACzB,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,eAAe,CACnC,eAAuB;IAEvB,MAAM,iBAAO,CAAC;IACd,OAAO,IAAA,sBAAO,EAAC,GAAG,0BAAW,CAAC,aAAa,IAAI,eAAe,EAAE,CAAC,CAAC;AACpE,CAAC;AAEM,KAAK,UAAU,kBAAkB,CAAC,eAAuB;IAC9D,MAAM,iBAAO,CAAC;IACd,MAAM,IAAA,yBAAU,EAAC,GAAG,0BAAW,CAAC,aAAa,IAAI,eAAe,EAAE,CAAC,CAAC;AACtE,CAAC"}
|
|
@@ -4,27 +4,23 @@ exports.savePartialAssetMap = savePartialAssetMap;
|
|
|
4
4
|
exports.getPartialAssetMap = getPartialAssetMap;
|
|
5
5
|
exports.removePartialAssetMap = removePartialAssetMap;
|
|
6
6
|
const node_persist_1 = require("node-persist");
|
|
7
|
-
const
|
|
8
|
-
const node_path_1 = require("node:path");
|
|
7
|
+
const storage_1 = require("./storage");
|
|
9
8
|
const storage_keys_1 = require("./storage-keys");
|
|
10
|
-
const storage = (0, node_persist_1.init)({
|
|
11
|
-
dir: (0, node_path_1.join)((0, node_os_1.homedir)(), storage_keys_1.ZE_PATH),
|
|
12
|
-
});
|
|
13
9
|
function get_key(application_uid) {
|
|
14
10
|
return [storage_keys_1.StorageKeys.ze_app_partial_asset_map, application_uid].join('.');
|
|
15
11
|
}
|
|
16
12
|
async function savePartialAssetMap(application_uid, partial_key, assetMap) {
|
|
17
|
-
await storage;
|
|
13
|
+
await storage_1.storage;
|
|
18
14
|
const key = get_key(application_uid);
|
|
19
15
|
const partial_asset_map = await (0, node_persist_1.getItem)(key);
|
|
20
16
|
void (await (0, node_persist_1.setItem)(key, Object.assign({}, partial_asset_map || {}, { [partial_key]: assetMap })));
|
|
21
17
|
}
|
|
22
18
|
async function getPartialAssetMap(application_uid) {
|
|
23
|
-
await storage;
|
|
19
|
+
await storage_1.storage;
|
|
24
20
|
return (0, node_persist_1.getItem)(get_key(application_uid));
|
|
25
21
|
}
|
|
26
22
|
async function removePartialAssetMap(application_uid) {
|
|
27
|
-
await storage;
|
|
23
|
+
await storage_1.storage;
|
|
28
24
|
await (0, node_persist_1.removeItem)(get_key(application_uid));
|
|
29
25
|
}
|
|
30
26
|
//# sourceMappingURL=partial-assets-map.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"partial-assets-map.js","sourceRoot":"","sources":["../../../src/lib/node-persist/partial-assets-map.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"partial-assets-map.js","sourceRoot":"","sources":["../../../src/lib/node-persist/partial-assets-map.ts"],"names":[],"mappings":";;AASA,kDAYC;AAED,gDAKC;AAED,sDAGC;AAjCD,+CAA4D;AAE5D,uCAAoC;AACpC,iDAA6C;AAE7C,SAAS,OAAO,CAAC,eAAuB;IACtC,OAAO,CAAC,0BAAW,CAAC,wBAAwB,EAAE,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3E,CAAC;AAEM,KAAK,UAAU,mBAAmB,CACvC,eAAuB,EACvB,WAAmB,EACnB,QAA0B;IAE1B,MAAM,iBAAO,CAAC;IACd,MAAM,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IACrC,MAAM,iBAAiB,GAAG,MAAM,IAAA,sBAAO,EAAC,GAAG,CAAC,CAAC;IAC7C,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;AACL,CAAC;AAEM,KAAK,UAAU,kBAAkB,CACtC,eAAuB;IAEvB,MAAM,iBAAO,CAAC;IACd,OAAO,IAAA,sBAAO,EAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;AAC3C,CAAC;AAEM,KAAK,UAAU,qBAAqB,CAAC,eAAuB;IACjE,MAAM,iBAAO,CAAC;IACd,MAAM,IAAA,yBAAU,EAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC;AAC7C,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns a base64url session key to be used in a login process.
|
|
3
|
+
*
|
|
4
|
+
* This uses a sync-lock to ensure that multiple concurrent login processes uses the same
|
|
5
|
+
* session key so once the first login is completed, the other concurrent logins also get
|
|
6
|
+
* authorized without doing anything else than waiting in the same websocket room.
|
|
7
|
+
*/
|
|
8
|
+
export declare function getSessionKey(): SessionLock;
|
|
9
|
+
export interface SessionLock extends Disposable {
|
|
10
|
+
readonly owner: boolean;
|
|
11
|
+
readonly session: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Checks 4 times per second if the lock is still held by the current process and resolves
|
|
15
|
+
* when the lock is released.
|
|
16
|
+
*/
|
|
17
|
+
export declare function waitForUnlock(signal?: AbortSignal): Promise<void>;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getSessionKey = getSessionKey;
|
|
4
|
+
exports.waitForUnlock = waitForUnlock;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const node_crypto_1 = require("node:crypto");
|
|
7
|
+
const fs = tslib_1.__importStar(require("node:fs"));
|
|
8
|
+
const promises_1 = require("node:timers/promises");
|
|
9
|
+
const proper_lockfile_1 = require("proper-lockfile");
|
|
10
|
+
const auth_flags_1 = require("../auth/auth-flags");
|
|
11
|
+
const logging_1 = require("../logging");
|
|
12
|
+
const storage_keys_1 = require("./storage-keys");
|
|
13
|
+
// 72 bits of entropy is more than enough (80b to have 50% collisions)
|
|
14
|
+
const SESSION_LENGTH = 9;
|
|
15
|
+
/**
|
|
16
|
+
* Returns a base64url session key to be used in a login process.
|
|
17
|
+
*
|
|
18
|
+
* This uses a sync-lock to ensure that multiple concurrent login processes uses the same
|
|
19
|
+
* session key so once the first login is completed, the other concurrent logins also get
|
|
20
|
+
* authorized without doing anything else than waiting in the same websocket room.
|
|
21
|
+
*/
|
|
22
|
+
function getSessionKey() {
|
|
23
|
+
// crypto.randomBytes might tame some milliseconds, we generate it before locking
|
|
24
|
+
// so we don't create time for concurrency issues to happen between locking and writing
|
|
25
|
+
// the session key to file.
|
|
26
|
+
let session = (0, node_crypto_1.randomBytes)(SESSION_LENGTH);
|
|
27
|
+
const unlock = safeLockSync();
|
|
28
|
+
// Another process has the lock = concurrent login is in progress,
|
|
29
|
+
// use that session key instead
|
|
30
|
+
if (!unlock) {
|
|
31
|
+
(0, logging_1.ze_log)('Lock is already held by another process, using the same session key');
|
|
32
|
+
session = fs.readFileSync(storage_keys_1.ZE_SESSION_LOCK);
|
|
33
|
+
// A second write here helps solve any concurrency between reading and writing
|
|
34
|
+
// the session key to the lockfile. This is a rare case, but it can happen
|
|
35
|
+
if (session.length !== SESSION_LENGTH) {
|
|
36
|
+
session = fs.readFileSync(storage_keys_1.ZE_SESSION_LOCK);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
(0, logging_1.ze_log)('Lock acquired, writing session key to lockfile');
|
|
41
|
+
// read and write as array buffer
|
|
42
|
+
fs.writeFileSync(storage_keys_1.ZE_SESSION_LOCK, session, { flush: true });
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
owner: !!unlock,
|
|
46
|
+
session: session.toString('base64url'),
|
|
47
|
+
[Symbol.dispose]() {
|
|
48
|
+
// If we are the holder of the lock, unlock it and clean up the lockfile
|
|
49
|
+
unlock === null || unlock === void 0 ? void 0 : unlock();
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
/** @returns Either a function to unlock the lock or null if the lock could not be acquired */
|
|
54
|
+
function safeLockSync(createIfNotExists = true) {
|
|
55
|
+
try {
|
|
56
|
+
// The timeout to the whole login process makes sense to keep the lock for the same amount of time
|
|
57
|
+
return (0, proper_lockfile_1.lockSync)(storage_keys_1.ZE_SESSION_LOCK, { stale: auth_flags_1.DEFAULT_AUTH_COMPLETION_TIMEOUT_MS });
|
|
58
|
+
}
|
|
59
|
+
catch (error) {
|
|
60
|
+
if (error.code === 'ELOCKED') {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
// Creates the file if it does not exist
|
|
64
|
+
if (error.code === 'ENOENT' && createIfNotExists) {
|
|
65
|
+
fs.writeFileSync(storage_keys_1.ZE_SESSION_LOCK, '', 'utf8');
|
|
66
|
+
return safeLockSync(false);
|
|
67
|
+
}
|
|
68
|
+
throw error;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Checks 4 times per second if the lock is still held by the current process and resolves
|
|
73
|
+
* when the lock is released.
|
|
74
|
+
*/
|
|
75
|
+
async function waitForUnlock(signal) {
|
|
76
|
+
var _a, e_1, _b, _c;
|
|
77
|
+
try {
|
|
78
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
79
|
+
for (var _d = true, _e = tslib_1.__asyncValues((0, promises_1.setInterval)(1000 / 4, null, { ref: false, signal })), _f; _f = await _e.next(), _a = _f.done, !_a; _d = true) {
|
|
80
|
+
_c = _f.value;
|
|
81
|
+
_d = false;
|
|
82
|
+
const _ = _c;
|
|
83
|
+
// Stale works as a timeout for the loop
|
|
84
|
+
if (!(0, proper_lockfile_1.checkSync)(storage_keys_1.ZE_SESSION_LOCK, { stale: auth_flags_1.DEFAULT_AUTH_COMPLETION_TIMEOUT_MS })) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
90
|
+
finally {
|
|
91
|
+
try {
|
|
92
|
+
if (!_d && !_a && (_b = _e.return)) await _b.call(_e);
|
|
93
|
+
}
|
|
94
|
+
finally { if (e_1) throw e_1.error; }
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=session-lock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-lock.js","sourceRoot":"","sources":["../../../src/lib/node-persist/session-lock.ts"],"names":[],"mappings":";;AAkBA,sCAiCC;AA+BD,sCAQC;;AA1FD,6CAA0C;AAC1C,oDAA8B;AAC9B,mDAAmD;AACnD,qDAAsD;AACtD,mDAAwE;AACxE,wCAAoC;AACpC,iDAAiD;AAEjD,sEAAsE;AACtE,MAAM,cAAc,GAAG,CAAC,CAAC;AAEzB;;;;;;GAMG;AACH,SAAgB,aAAa;IAC3B,iFAAiF;IACjF,uFAAuF;IACvF,2BAA2B;IAC3B,IAAI,OAAO,GAAG,IAAA,yBAAW,EAAC,cAAc,CAAC,CAAC;IAE1C,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAE9B,kEAAkE;IAClE,+BAA+B;IAC/B,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAA,gBAAM,EAAC,qEAAqE,CAAC,CAAC;QAC9E,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,8BAAe,CAAC,CAAC;QAE3C,8EAA8E;QAC9E,0EAA0E;QAC1E,IAAI,OAAO,CAAC,MAAM,KAAK,cAAc,EAAE,CAAC;YACtC,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,8BAAe,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;SAAM,CAAC;QACN,IAAA,gBAAM,EAAC,gDAAgD,CAAC,CAAC;QACzD,iCAAiC;QACjC,EAAE,CAAC,aAAa,CAAC,8BAAe,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO;QACL,KAAK,EAAE,CAAC,CAAC,MAAM;QACf,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC;QACtC,CAAC,MAAM,CAAC,OAAO,CAAC;YACd,wEAAwE;YACxE,MAAM,aAAN,MAAM,uBAAN,MAAM,EAAI,CAAC;QACb,CAAC;KACF,CAAC;AACJ,CAAC;AAOD,8FAA8F;AAC9F,SAAS,YAAY,CAAC,iBAAiB,GAAG,IAAI;IAC5C,IAAI,CAAC;QACH,kGAAkG;QAClG,OAAO,IAAA,0BAAQ,EAAC,8BAAe,EAAE,EAAE,KAAK,EAAE,+CAAkC,EAAE,CAAC,CAAC;IAClF,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,wCAAwC;QACxC,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,iBAAiB,EAAE,CAAC;YACjD,EAAE,CAAC,aAAa,CAAC,8BAAe,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC;YAC9C,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;GAGG;AACI,KAAK,UAAU,aAAa,CAAC,MAAoB;;;QACtD,6DAA6D;QAC7D,KAAsB,eAAA,KAAA,sBAAA,IAAA,sBAAW,EAAC,IAAI,GAAG,CAAC,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAA,IAAA,sDAAE,CAAC;YAAtD,cAAmD;YAAnD,WAAmD;YAA9D,MAAM,CAAC,KAAA,CAAA;YAChB,wCAAwC;YACxC,IAAI,CAAC,IAAA,2BAAS,EAAC,8BAAe,EAAE,EAAE,KAAK,EAAE,+CAAkC,EAAE,CAAC,EAAE,CAAC;gBAC/E,OAAO;YACT,CAAC;QACH,CAAC;;;;;;;;;AACH,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export declare const ZE_PATH
|
|
2
|
-
export declare const
|
|
1
|
+
export declare const ZE_PATH: string;
|
|
2
|
+
export declare const ZE_SESSION_LOCK: string;
|
|
3
|
+
export declare enum StorageKeys {
|
|
3
4
|
ze_app_partial_asset_map = "ze_app_partial_asset_map",
|
|
4
5
|
ze_app_config_token = "ze-application-configuration",
|
|
5
6
|
ze_auth_token = "ze-auth-token",
|
|
@@ -1,7 +1,19 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StorageKeys = exports.ZE_PATH = void 0;
|
|
4
|
-
|
|
3
|
+
exports.StorageKeys = exports.ZE_SESSION_LOCK = exports.ZE_PATH = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const path = tslib_1.__importStar(require("node:path"));
|
|
6
|
+
const fs = tslib_1.__importStar(require("node:fs"));
|
|
7
|
+
const os = tslib_1.__importStar(require("node:os"));
|
|
8
|
+
exports.ZE_PATH = path.resolve(os.homedir(), '.zephyr');
|
|
9
|
+
exports.ZE_SESSION_LOCK = path.resolve(exports.ZE_PATH, 'session');
|
|
10
|
+
try {
|
|
11
|
+
// Ensures that the directory exists and lockfile is writable
|
|
12
|
+
fs.mkdirSync(exports.ZE_PATH, { recursive: true });
|
|
13
|
+
}
|
|
14
|
+
catch (error) {
|
|
15
|
+
console.error('error', `Could not create ~/.zephyr directory. Please check your permissions: ${error}`);
|
|
16
|
+
}
|
|
5
17
|
var StorageKeys;
|
|
6
18
|
(function (StorageKeys) {
|
|
7
19
|
StorageKeys["ze_app_partial_asset_map"] = "ze_app_partial_asset_map";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage-keys.js","sourceRoot":"","sources":["../../../src/lib/node-persist/storage-keys.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"storage-keys.js","sourceRoot":"","sources":["../../../src/lib/node-persist/storage-keys.ts"],"names":[],"mappings":";;;;AAAA,wDAAkC;AAClC,oDAA8B;AAC9B,oDAA8B;AAEjB,QAAA,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,SAAS,CAAC,CAAC;AAChD,QAAA,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,eAAO,EAAE,SAAS,CAAC,CAAC;AAEhE,IAAI,CAAC;IACH,6DAA6D;IAC7D,EAAE,CAAC,SAAS,CAAC,eAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7C,CAAC;AAAC,OAAO,KAAK,EAAE,CAAC;IACf,OAAO,CAAC,KAAK,CACX,OAAO,EACP,wEAAwE,KAAK,EAAE,CAChF,CAAC;AACJ,CAAC;AAED,IAAY,WAQX;AARD,WAAY,WAAW;IACrB,oEAAqD,CAAA;IACrD,mEAAoD,CAAA;IACpD,8CAA+B,CAAA;IAC/B,kDAAmC,CAAA;IACnC,0CAA2B,CAAA;IAC3B,8CAA+B,CAAA;IAC/B,4DAA6C,CAAA;AAC/C,CAAC,EARW,WAAW,2BAAX,WAAW,QAQtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|