zephyr-edge-contract 0.0.20 → 0.0.22

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 (46) hide show
  1. package/LICENSE +38 -38
  2. package/dist/index.d.ts +3 -1
  3. package/dist/index.js +7 -2
  4. package/dist/index.js.map +1 -1
  5. package/dist/lib/api-contract-negotiation/get-api-contract.d.ts +2 -0
  6. package/dist/lib/api-contract-negotiation/get-api-contract.js +5 -1
  7. package/dist/lib/api-contract-negotiation/get-api-contract.js.map +1 -1
  8. package/dist/lib/errors/codes.d.ts +276 -0
  9. package/dist/lib/errors/codes.js +349 -0
  10. package/dist/lib/errors/codes.js.map +1 -0
  11. package/dist/lib/errors/index.d.ts +2 -0
  12. package/dist/lib/errors/index.js +6 -0
  13. package/dist/lib/errors/index.js.map +1 -0
  14. package/dist/lib/errors/zephyr.d.ts +463 -0
  15. package/dist/lib/errors/zephyr.js +153 -0
  16. package/dist/lib/errors/zephyr.js.map +1 -0
  17. package/dist/lib/node-persist/token.js +1 -1
  18. package/dist/lib/node-persist/token.js.map +1 -1
  19. package/dist/lib/utils/clean-stack.d.ts +7 -0
  20. package/dist/lib/utils/clean-stack.js +44 -0
  21. package/dist/lib/utils/clean-stack.js.map +1 -0
  22. package/dist/lib/utils/debug.d.ts +10 -6
  23. package/dist/lib/utils/debug.js +10 -6
  24. package/dist/lib/utils/debug.js.map +1 -1
  25. package/dist/lib/utils/error-codes-messages.d.ts +19 -17
  26. package/dist/lib/utils/error-codes-messages.js +19 -17
  27. package/dist/lib/utils/error-codes-messages.js.map +1 -1
  28. package/dist/lib/utils/error-formatted-message.d.ts +1 -1
  29. package/dist/lib/utils/picocolor.d.ts +1 -0
  30. package/dist/lib/utils/picocolor.js +8 -16
  31. package/dist/lib/utils/picocolor.js.map +1 -1
  32. package/dist/lib/utils/promise.d.ts +12 -0
  33. package/dist/lib/utils/promise.js +32 -0
  34. package/dist/lib/utils/promise.js.map +1 -0
  35. package/dist/lib/utils/string.d.ts +8 -0
  36. package/dist/lib/utils/string.js +15 -0
  37. package/dist/lib/utils/string.js.map +1 -0
  38. package/dist/lib/utils/strip-ansi.d.ts +15 -0
  39. package/dist/lib/utils/strip-ansi.js +28 -0
  40. package/dist/lib/utils/strip-ansi.js.map +1 -0
  41. package/dist/lib/utils/ze-http-request.d.ts +17 -3
  42. package/dist/lib/utils/ze-http-request.js +145 -52
  43. package/dist/lib/utils/ze-http-request.js.map +1 -1
  44. package/dist/package.json +1 -1
  45. package/package.json +1 -1
  46. package/test/utils/string.test.ts +96 -0
@@ -1,63 +1,156 @@
1
1
  "use strict";
2
+ var _ZeHttpRequest_instances, _ZeHttpRequest_start, _ZeHttpRequest_url, _ZeHttpRequest_options, _ZeHttpRequest_data, _ZeHttpRequest_promise, _ZeHttpRequest_reject, _ZeHttpRequest_resolve, _ZeHttpRequest_request, _ZeHttpRequest_onRequestError, _ZeHttpRequest_onResponse, _ZeHttpRequest_handleUnknownError, _ZeHttpRequest_onResponseAsync, _ZeHttpRequest_redact;
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.request = void 0;
4
+ exports.ZeHttpRequest = void 0;
4
5
  const tslib_1 = require("tslib");
5
6
  const http = tslib_1.__importStar(require("node:http"));
6
7
  const https = tslib_1.__importStar(require("node:https"));
7
- const debug_1 = require("./debug");
8
+ const consumers_1 = require("node:stream/consumers");
9
+ const get_api_contract_1 = require("../api-contract-negotiation/get-api-contract");
10
+ const errors_1 = require("../errors");
8
11
  const token_1 = require("../node-persist/token");
12
+ const debug_1 = require("./debug");
13
+ const promise_1 = require("./promise");
9
14
  const safe_json_parse_1 = require("./safe-json-parse");
10
- const debug_2 = require("./debug");
11
- const picocolor_1 = require("./picocolor");
12
- function _redact(str) {
13
- if (!str)
14
- return '';
15
- return str.replace(/Bearer ([^"|']+)/gi, 'Bearer [REDACTED]').replace(/"?jwt"?:["|\W']{0,2}([^"|']+)(["|'])/gi, 'jwt: [REDACTED]');
16
- }
17
- function request(url, options, data) {
18
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
19
- const _https = url.protocol !== 'https:' ? http : https;
20
- return new Promise((resolve, reject) => {
21
- const req_start = Date.now();
22
- const _options_str = _redact(JSON.stringify(options));
23
- const req = _https.request(url, options !== null && options !== void 0 ? options : {}, (res) => tslib_1.__awaiter(this, void 0, void 0, function* () {
24
- if (res.statusCode === 401 || res.statusCode === 403) {
25
- yield (0, token_1.cleanTokens)();
26
- const err = new Error(`${debug_2.brightRedBgName} ${(0, picocolor_1.red)(`Error [ZE10018]: auth error, please sign in to https://app.zephyr-cloud.io then try to build again. See documentation https://docs.zephyr-cloud.io/errors/ze10018`)}`);
27
- err.stack = void 0;
28
- throw err;
29
- }
30
- const response = [];
31
- res.on('data', (d) => response.push(d));
32
- res.on('end', () => {
33
- var _a, _b, _c, _d;
34
- const _response = (_a = Buffer.concat(response)) === null || _a === void 0 ? void 0 : _a.toString();
35
- const message = _redact(`[${(options === null || options === void 0 ? void 0 : options.method) || 'GET'}][${url}]: ${Date.now() - req_start}ms` +
36
- ((data === null || data === void 0 ? void 0 : data.length) ? ` - ${(((_b = data.length) !== null && _b !== void 0 ? _b : 0) / 1024).toFixed(2)}kb` : '') +
37
- (_response ? `\n response: ${_response}` : '') +
38
- (_options_str ? `\n options: ${_options_str}` : ''));
39
- if (_response === 'Not Implemented')
40
- return reject(message);
41
- const parsed_response = (0, safe_json_parse_1.safe_json_parse)(_response);
42
- if ((typeof res.statusCode === 'number' && res.statusCode > 299) ||
43
- (typeof (parsed_response === null || parsed_response === void 0 ? void 0 : parsed_response.status) === 'number' && (parsed_response === null || parsed_response === void 0 ? void 0 : parsed_response.status) > 299)) {
44
- return reject(`${debug_2.brightRedBgName} Error from ${url}: \n ${(_c = parsed_response === null || parsed_response === void 0 ? void 0 : parsed_response.message) !== null && _c !== void 0 ? _c : _response}`);
45
- }
46
- if (url.pathname.indexOf('application/logs') === -1)
47
- (0, debug_1.ze_log)(message);
48
- resolve((_d = parsed_response) !== null && _d !== void 0 ? _d : _response);
49
- });
15
+ /** Starts a new http request */
16
+ class ZeHttpRequest {
17
+ constructor() {
18
+ _ZeHttpRequest_instances.add(this);
19
+ /** The time the request was started. */
20
+ _ZeHttpRequest_start.set(this, Date.now());
21
+ /** The URL to request. */
22
+ _ZeHttpRequest_url.set(this, void 0);
23
+ /** The options for the request. */
24
+ _ZeHttpRequest_options.set(this, void 0);
25
+ /** The data to send with the request. */
26
+ _ZeHttpRequest_data.set(this, void 0);
27
+ // private methods for resolving and rejecting the promise
28
+ _ZeHttpRequest_promise.set(this, (0, promise_1.PromiseWithResolvers)());
29
+ // promise extension
30
+ this.then = tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_promise, "f").promise.then.bind(tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_promise, "f").promise);
31
+ /** Handles the error when the request fails. */
32
+ _ZeHttpRequest_onRequestError.set(this, (cause) => {
33
+ var _a, _b;
34
+ if ('ERR_TLS_CERT_ALTNAME_INVALID' in cause) {
35
+ tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_instances, "m", _ZeHttpRequest_reject).call(this, new errors_1.ZephyrError(errors_1.ZeErrors.ERR_TLS_CERT_ALTNAME_INVALID, {
36
+ cause,
37
+ }));
38
+ return;
39
+ }
40
+ tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_instances, "m", _ZeHttpRequest_reject).call(this, new errors_1.ZephyrError(errors_1.ZeErrors.ERR_HTTP_ERROR, {
41
+ url: tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_url, "f").toString(),
42
+ method: (_b = (_a = tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_options, "f").method) === null || _a === void 0 ? void 0 : _a.toUpperCase()) !== null && _b !== void 0 ? _b : 'GET',
43
+ content: 'Could not send request',
44
+ status: '-1',
45
+ cause,
50
46
  }));
51
- req.on('error', (e) => {
52
- (0, debug_1.ze_error)('ERR_UNKNOWN', `[${(options === null || options === void 0 ? void 0 : options.method) || 'GET'}][${url}]: ${Date.now() - req_start}ms \n ${_options_str} \n ${e}`);
53
- reject(e);
54
- });
55
- if (data) {
56
- req.write(data);
57
- }
58
- req.end();
59
47
  });
60
- });
48
+ /** Handles the response from the server. */
49
+ _ZeHttpRequest_onResponse.set(this, (res) => {
50
+ tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_onResponseAsync, "f").call(this, res).catch(tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_handleUnknownError, "f"));
51
+ });
52
+ _ZeHttpRequest_handleUnknownError.set(this, (cause) => {
53
+ tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_instances, "m", _ZeHttpRequest_reject).call(this, new errors_1.ZephyrError(errors_1.ZeErrors.ERR_UNKNOWN, { message: 'Could not process provided http.IncomingMessage', cause }));
54
+ });
55
+ _ZeHttpRequest_onResponseAsync.set(this, (res) => tslib_1.__awaiter(this, void 0, void 0, function* () {
56
+ var _a, _b, _c, _d, _e;
57
+ if (res.statusCode === 401 || res.statusCode === 403) {
58
+ // Clean the tokens and throw an error
59
+ yield (0, token_1.cleanTokens)();
60
+ throw new errors_1.ZephyrError(errors_1.ZeErrors.ERR_AUTH_ERROR, { message: 'Unauthorized request' });
61
+ }
62
+ const [resOk, resErr, resText] = yield (0, promise_1.PromiseTuple)((0, consumers_1.text)(res));
63
+ if (!resOk) {
64
+ return tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_onRequestError, "f").call(this, resErr);
65
+ }
66
+ const message = tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_instances, "m", _ZeHttpRequest_redact).call(this, resText);
67
+ if (message === 'Not Implemented') {
68
+ throw new errors_1.ZephyrError(errors_1.ZeErrors.ERR_UNKNOWN, {
69
+ message: 'Not implemented yet. Please get in contact with our support.',
70
+ });
71
+ }
72
+ if (res.statusCode === undefined) {
73
+ throw new errors_1.ZephyrError(errors_1.ZeErrors.ERR_HTTP_ERROR, {
74
+ content: 'No status code found',
75
+ method: (_b = (_a = tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_options, "f").method) === null || _a === void 0 ? void 0 : _a.toUpperCase()) !== null && _b !== void 0 ? _b : 'GET',
76
+ url: tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_url, "f").toString(),
77
+ status: -1,
78
+ });
79
+ }
80
+ if (!tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_url, "f").pathname.includes('application/logs')) {
81
+ (0, debug_1.ze_log)(message);
82
+ }
83
+ // Only parses data if reply content is json
84
+ const resData = (_c = (0, safe_json_parse_1.safe_json_parse)(resText)) !== null && _c !== void 0 ? _c : resText;
85
+ if (res.statusCode >= 300) {
86
+ throw new errors_1.ZephyrError(errors_1.ZeErrors.ERR_HTTP_ERROR, {
87
+ status: res.statusCode,
88
+ url: tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_url, "f").toString(),
89
+ content: resData,
90
+ method: (_e = (_d = tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_options, "f").method) === null || _d === void 0 ? void 0 : _d.toUpperCase()) !== null && _e !== void 0 ? _e : 'GET',
91
+ });
92
+ }
93
+ tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_instances, "m", _ZeHttpRequest_resolve).call(this, resData);
94
+ }));
95
+ }
96
+ /** Creates a new http request. */
97
+ static from(urlStr, options = {}, data) {
98
+ const req = new ZeHttpRequest();
99
+ tslib_1.__classPrivateFieldSet(req, _ZeHttpRequest_data, data, "f");
100
+ tslib_1.__classPrivateFieldSet(req, _ZeHttpRequest_options, options, "f");
101
+ // Parse the url into a URL object
102
+ if (typeof urlStr === 'string') {
103
+ tslib_1.__classPrivateFieldSet(req, _ZeHttpRequest_url, new URL(urlStr), "f");
104
+ }
105
+ else if (urlStr instanceof URL) {
106
+ tslib_1.__classPrivateFieldSet(req, _ZeHttpRequest_url, urlStr, "f");
107
+ }
108
+ else {
109
+ tslib_1.__classPrivateFieldSet(req, _ZeHttpRequest_url, new URL(urlStr.path, urlStr.base), "f");
110
+ for (const [key, value] of Object.entries(urlStr.query)) {
111
+ tslib_1.__classPrivateFieldGet(req, _ZeHttpRequest_url, "f").searchParams.append(key, String(value));
112
+ }
113
+ }
114
+ const is_preview = (0, get_api_contract_1.ZE_IS_PREVIEW)();
115
+ const ze_api_endpoint_host = (0, get_api_contract_1.ZE_API_ENDPOINT_HOST)();
116
+ const zephyr_api_endpoint = (0, get_api_contract_1.ZEPHYR_API_ENDPOINT)();
117
+ // Add a query param hint in preview environments
118
+ if (is_preview && tslib_1.__classPrivateFieldGet(req, _ZeHttpRequest_url, "f").host === ze_api_endpoint_host) {
119
+ tslib_1.__classPrivateFieldGet(req, _ZeHttpRequest_url, "f").searchParams.set('api_host', zephyr_api_endpoint);
120
+ }
121
+ tslib_1.__classPrivateFieldGet(req, _ZeHttpRequest_instances, "m", _ZeHttpRequest_request).call(req);
122
+ return req;
123
+ }
124
+ /** Transforms `Promise<HttpResponse<T>>` into `Promise<T>` */
125
+ unwrap() {
126
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
127
+ const [ok, error, data] = yield this;
128
+ if (!ok) {
129
+ throw error;
130
+ }
131
+ return data;
132
+ });
133
+ }
61
134
  }
62
- exports.request = request;
135
+ exports.ZeHttpRequest = ZeHttpRequest;
136
+ _ZeHttpRequest_start = new WeakMap(), _ZeHttpRequest_url = new WeakMap(), _ZeHttpRequest_options = new WeakMap(), _ZeHttpRequest_data = new WeakMap(), _ZeHttpRequest_promise = new WeakMap(), _ZeHttpRequest_onRequestError = new WeakMap(), _ZeHttpRequest_onResponse = new WeakMap(), _ZeHttpRequest_handleUnknownError = new WeakMap(), _ZeHttpRequest_onResponseAsync = new WeakMap(), _ZeHttpRequest_instances = new WeakSet(), _ZeHttpRequest_reject = function _ZeHttpRequest_reject(error) {
137
+ tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_promise, "f").resolve([false, error]);
138
+ }, _ZeHttpRequest_resolve = function _ZeHttpRequest_resolve(data) {
139
+ tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_promise, "f").resolve([true, null, data]);
140
+ }, _ZeHttpRequest_request = function _ZeHttpRequest_request() {
141
+ var _a;
142
+ const requester = tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_url, "f").protocol === 'https:' ? https : http;
143
+ const req = requester.request(tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_url, "f"), (_a = tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_options, "f")) !== null && _a !== void 0 ? _a : {}, tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_onResponse, "f"));
144
+ req.on('error', tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_onRequestError, "f"));
145
+ req.end(tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_data, "f"));
146
+ }, _ZeHttpRequest_redact = function _ZeHttpRequest_redact(response) {
147
+ var _a, _b;
148
+ const str = [
149
+ `[${tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_options, "f").method || 'GET'}][${tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_url, "f")}]: ${Date.now() - tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_start, "f")}ms`,
150
+ ((_a = tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_data, "f")) === null || _a === void 0 ? void 0 : _a.length) ? ` - ${(((_b = tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_data, "f").length) !== null && _b !== void 0 ? _b : 0) / 1024).toFixed(2)}kb` : '',
151
+ response ? `Response: ${response}` : '',
152
+ tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_options, "f") ? `Options: ${JSON.stringify(tslib_1.__classPrivateFieldGet(this, _ZeHttpRequest_options, "f"))}` : '',
153
+ ].join('\n');
154
+ return str.replace(/Bearer ([^"|']+)/gi, 'Bearer [REDACTED]').replace(/"?jwt"?:["|\W']{0,2}([^"|']+)(["|'])/gi, 'jwt: [REDACTED]');
155
+ };
63
156
  //# sourceMappingURL=ze-http-request.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ze-http-request.js","sourceRoot":"","sources":["../../../src/lib/utils/ze-http-request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ze-http-request.js","sourceRoot":"","sources":["../../../src/lib/utils/ze-http-request.ts"],"names":[],"mappings":"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"}
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zephyr-edge-contract",
3
- "version": "0.0.20",
3
+ "version": "0.0.22",
4
4
  "license": "Apache-2.0",
5
5
  "type": "commonjs",
6
6
  "main": "dist/index.js",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zephyr-edge-contract",
3
- "version": "0.0.20",
3
+ "version": "0.0.22",
4
4
  "license": "Apache-2.0",
5
5
  "type": "commonjs",
6
6
  "main": "dist/index.js",
@@ -0,0 +1,96 @@
1
+ import { formatString } from '../../src/lib/utils/string';
2
+
3
+ const data: { str: string; params: any; expected: string }[] = [
4
+ // no defaults
5
+ {
6
+ str: 'pre {{ name }} post',
7
+ params: { name: 'A' },
8
+ expected: 'pre A post',
9
+ },
10
+ {
11
+ str: '{{ name }} post',
12
+ params: { name: 'A' },
13
+ expected: 'A post',
14
+ },
15
+ {
16
+ str: 'pre {{ name }}',
17
+ params: { name: 'A' },
18
+ expected: 'pre A',
19
+ },
20
+
21
+ // without params
22
+ {
23
+ str: 'pre {{ name }} post',
24
+ params: {},
25
+ expected: 'pre name post',
26
+ },
27
+ {
28
+ str: '{{ name }} post',
29
+ params: {},
30
+ expected: 'name post',
31
+ },
32
+ {
33
+ str: 'pre {{ name }}',
34
+ params: {},
35
+ expected: 'pre name',
36
+ },
37
+
38
+ // Default
39
+ {
40
+ str: 'pre {{ name = B }} post',
41
+ params: {},
42
+ expected: 'pre B post',
43
+ },
44
+ {
45
+ str: '{{ name = B }} post',
46
+ params: {},
47
+ expected: 'B post',
48
+ },
49
+ {
50
+ str: 'pre {{ name = B }}',
51
+ params: {},
52
+ expected: 'pre B',
53
+ },
54
+
55
+ // Default with params
56
+ {
57
+ str: 'pre {{ name = B }} post',
58
+ params: { name: 'C' },
59
+ expected: 'pre C post',
60
+ },
61
+ {
62
+ str: '{{ name = B }} post',
63
+ params: { name: 'C' },
64
+ expected: 'C post',
65
+ },
66
+ {
67
+ str: 'pre {{ name = B }}',
68
+ params: { name: 'C' },
69
+ expected: 'pre C',
70
+ },
71
+
72
+ // Default with spaces
73
+ {
74
+ str: 'pre {{ name = A B }} post',
75
+ params: {},
76
+ expected: 'pre A B post',
77
+ },
78
+ {
79
+ str: '{{ name = A B }} post',
80
+ params: {},
81
+ expected: 'A B post',
82
+ },
83
+ {
84
+ str: 'pre {{ name = A B }}',
85
+ params: {},
86
+ expected: 'pre A B',
87
+ },
88
+ ];
89
+
90
+ describe('formatString()', () => {
91
+ for (const { str, params, expected } of data) {
92
+ it(`Formats "${str}" with ${JSON.stringify(params)} to "${expected}"`, () => {
93
+ expect(formatString(str, params)).toBe(expected);
94
+ });
95
+ }
96
+ });