@sapphire-sh/utils 1.63.0 → 1.64.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.
- package/lib/cjs/date.d.ts +3 -0
- package/lib/cjs/date.d.ts.map +1 -0
- package/lib/cjs/date.js +37 -0
- package/lib/cjs/date.js.map +1 -0
- package/lib/cjs/download.d.ts +2 -0
- package/lib/cjs/download.d.ts.map +1 -0
- package/lib/cjs/download.js +21 -0
- package/lib/cjs/download.js.map +1 -0
- package/lib/cjs/error.d.ts +2 -0
- package/lib/cjs/error.d.ts.map +1 -0
- package/lib/cjs/error.js +6 -0
- package/lib/cjs/error.js.map +1 -0
- package/lib/cjs/fs.d.ts +2 -0
- package/lib/cjs/fs.d.ts.map +1 -0
- package/lib/cjs/fs.js +22 -0
- package/lib/cjs/fs.js.map +1 -0
- package/lib/cjs/getEnumValue.d.ts +1 -1
- package/lib/cjs/getEnumValue.d.ts.map +1 -1
- package/lib/cjs/getEnumValue.js +1 -1
- package/lib/cjs/getEnumValue.js.map +1 -1
- package/lib/cjs/http.d.ts +12 -0
- package/lib/cjs/http.d.ts.map +1 -0
- package/lib/cjs/http.js +37 -0
- package/lib/cjs/http.js.map +1 -0
- package/lib/cjs/index.d.ts +7 -0
- package/lib/cjs/index.d.ts.map +1 -1
- package/lib/cjs/index.js +16 -1
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/interceptXHR.d.ts +2 -0
- package/lib/cjs/interceptXHR.d.ts.map +1 -0
- package/lib/cjs/interceptXHR.js +23 -0
- package/lib/cjs/interceptXHR.js.map +1 -0
- package/lib/cjs/logger.d.ts.map +1 -1
- package/lib/cjs/logger.js +7 -1
- package/lib/cjs/logger.js.map +1 -1
- package/lib/cjs/node.d.ts +3 -1
- package/lib/cjs/node.d.ts.map +1 -1
- package/lib/cjs/node.js +16 -18
- package/lib/cjs/node.js.map +1 -1
- package/lib/cjs/string.d.ts +2 -0
- package/lib/cjs/string.d.ts.map +1 -0
- package/lib/cjs/string.js +13 -0
- package/lib/cjs/string.js.map +1 -0
- package/lib/cjs/waitForElement.d.ts +11 -0
- package/lib/cjs/waitForElement.d.ts.map +1 -0
- package/lib/cjs/waitForElement.js +44 -0
- package/lib/cjs/waitForElement.js.map +1 -0
- package/lib/cjs/zlib.d.ts +3 -0
- package/lib/cjs/zlib.d.ts.map +1 -0
- package/lib/cjs/zlib.js +18 -0
- package/lib/cjs/zlib.js.map +1 -0
- package/lib/date.d.ts +3 -0
- package/lib/date.d.ts.map +1 -0
- package/lib/date.js +32 -0
- package/lib/date.js.map +1 -0
- package/lib/download.d.ts +2 -0
- package/lib/download.d.ts.map +1 -0
- package/lib/download.js +14 -0
- package/lib/download.js.map +1 -0
- package/lib/error.d.ts +2 -0
- package/lib/error.d.ts.map +1 -0
- package/lib/error.js +2 -0
- package/lib/error.js.map +1 -0
- package/lib/fs.d.ts +2 -0
- package/lib/fs.d.ts.map +1 -0
- package/lib/fs.js +15 -0
- package/lib/fs.js.map +1 -0
- package/lib/getEnumValue.d.ts +1 -1
- package/lib/getEnumValue.d.ts.map +1 -1
- package/lib/getEnumValue.js +1 -1
- package/lib/getEnumValue.js.map +1 -1
- package/lib/http.d.ts +12 -0
- package/lib/http.d.ts.map +1 -0
- package/lib/http.js +32 -0
- package/lib/http.js.map +1 -0
- package/lib/index.d.ts +7 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +6 -0
- package/lib/index.js.map +1 -1
- package/lib/interceptXHR.d.ts +2 -0
- package/lib/interceptXHR.d.ts.map +1 -0
- package/lib/interceptXHR.js +19 -0
- package/lib/interceptXHR.js.map +1 -0
- package/lib/logger.d.ts.map +1 -1
- package/lib/logger.js +7 -1
- package/lib/logger.js.map +1 -1
- package/lib/node.d.ts +3 -1
- package/lib/node.d.ts.map +1 -1
- package/lib/node.js +3 -14
- package/lib/node.js.map +1 -1
- package/lib/string.d.ts +2 -0
- package/lib/string.d.ts.map +1 -0
- package/lib/string.js +9 -0
- package/lib/string.js.map +1 -0
- package/lib/waitForElement.d.ts +11 -0
- package/lib/waitForElement.d.ts.map +1 -0
- package/lib/waitForElement.js +39 -0
- package/lib/waitForElement.js.map +1 -0
- package/lib/zlib.d.ts +3 -0
- package/lib/zlib.d.ts.map +1 -0
- package/lib/zlib.js +10 -0
- package/lib/zlib.js.map +1 -0
- package/package.json +5 -4
- package/tsconfig.cjs.json +8 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../../src/date.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,GAAI,MAAM,IAAI,KAAG,MAe7C,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,IAAI,MAAM,KAAG,MAgB3C,CAAC"}
|
package/lib/cjs/date.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formatDuration = exports.toLocalISOString = void 0;
|
|
4
|
+
const toLocalISOString = (date) => {
|
|
5
|
+
const year = date.getFullYear();
|
|
6
|
+
const month = `${date.getMonth() + 1}`.padStart(2, '0');
|
|
7
|
+
const day = `${date.getDate()}`.padStart(2, '0');
|
|
8
|
+
const hours = `${date.getHours()}`.padStart(2, '0');
|
|
9
|
+
const minutes = `${date.getMinutes()}`.padStart(2, '0');
|
|
10
|
+
const seconds = `${date.getSeconds()}`.padStart(2, '0');
|
|
11
|
+
const ms = `${date.getMilliseconds()}`.padStart(3, '0');
|
|
12
|
+
const offset = date.getTimezoneOffset();
|
|
13
|
+
const sign = offset <= 0 ? '+' : '-';
|
|
14
|
+
const offsetHours = `${Math.floor(Math.abs(offset) / 60)}`.padStart(2, '0');
|
|
15
|
+
const offsetMinutes = `${Math.abs(offset) % 60}`.padStart(2, '0');
|
|
16
|
+
return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}.${ms}${sign}${offsetHours}:${offsetMinutes}`;
|
|
17
|
+
};
|
|
18
|
+
exports.toLocalISOString = toLocalISOString;
|
|
19
|
+
const formatDuration = (ms) => {
|
|
20
|
+
const totalSeconds = Math.ceil(ms / 1000);
|
|
21
|
+
const hours = Math.floor(totalSeconds / 3600);
|
|
22
|
+
const minutes = Math.floor((totalSeconds % 3600) / 60);
|
|
23
|
+
const seconds = totalSeconds % 60;
|
|
24
|
+
const parts = [];
|
|
25
|
+
if (hours > 0) {
|
|
26
|
+
parts.push(`${hours}h`);
|
|
27
|
+
}
|
|
28
|
+
if (minutes > 0) {
|
|
29
|
+
parts.push(`${minutes}m`);
|
|
30
|
+
}
|
|
31
|
+
if (seconds > 0 || parts.length === 0) {
|
|
32
|
+
parts.push(`${seconds}s`);
|
|
33
|
+
}
|
|
34
|
+
return parts.join(' ');
|
|
35
|
+
};
|
|
36
|
+
exports.formatDuration = formatDuration;
|
|
37
|
+
//# sourceMappingURL=date.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date.js","sourceRoot":"","sources":["../../src/date.ts"],"names":[],"mappings":";;;AAAO,MAAM,gBAAgB,GAAG,CAAC,IAAU,EAAU,EAAE;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACxD,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAExD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACrC,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5E,MAAM,aAAa,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAElE,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,OAAO,IAAI,OAAO,IAAI,EAAE,GAAG,IAAI,GAAG,WAAW,IAAI,aAAa,EAAE,CAAC;AAC7G,CAAC,CAAC;AAfW,QAAA,gBAAgB,oBAe3B;AAEK,MAAM,cAAc,GAAG,CAAC,EAAU,EAAU,EAAE;IACpD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,YAAY,GAAG,EAAE,CAAC;IAClC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC,CAAC;AAhBW,QAAA,cAAc,kBAgBzB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../../src/download.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,QAAQ,GACpB,KAAK,MAAM,EACX,UAAU,MAAM,EAChB,OAAO,WAAW,EAClB,kBAAyB,KACvB,OAAO,CAAC,IAAI,CAUd,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.download = void 0;
|
|
7
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
+
const http_js_1 = require("./http.js");
|
|
9
|
+
const download = async (url, filePath, init, timeoutMs = 5 * 60 * 1000) => {
|
|
10
|
+
const resp = await fetch(url, {
|
|
11
|
+
signal: AbortSignal.timeout(timeoutMs),
|
|
12
|
+
...init,
|
|
13
|
+
});
|
|
14
|
+
if (!resp.ok) {
|
|
15
|
+
throw new http_js_1.HttpError(resp.status, resp.statusText);
|
|
16
|
+
}
|
|
17
|
+
const buffer = await resp.arrayBuffer();
|
|
18
|
+
await node_fs_1.default.promises.writeFile(filePath, Buffer.from(buffer));
|
|
19
|
+
};
|
|
20
|
+
exports.download = download;
|
|
21
|
+
//# sourceMappingURL=download.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"download.js","sourceRoot":"","sources":["../../src/download.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AACzB,uCAAsC;AAE/B,MAAM,QAAQ,GAAG,KAAK,EAC5B,GAAW,EACX,QAAgB,EAChB,IAAkB,EAClB,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,EACT,EAAE;IAClB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC7B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;QACtC,GAAG,IAAI;KACP,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACd,MAAM,IAAI,mBAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IACxC,MAAM,iBAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC;AAfW,QAAA,QAAQ,YAenB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,GAAI,OAAO,KAAK,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CACC,CAAC"}
|
package/lib/cjs/error.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.serializeError = void 0;
|
|
4
|
+
const serializeError = (error) => JSON.parse(JSON.stringify(error, Object.getOwnPropertyNames(error)));
|
|
5
|
+
exports.serializeError = serializeError;
|
|
6
|
+
//# sourceMappingURL=error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../src/error.ts"],"names":[],"mappings":";;;AAAO,MAAM,cAAc,GAAG,CAAC,KAAY,EAA2B,EAAE,CACvE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AADzD,QAAA,cAAc,kBAC2C"}
|
package/lib/cjs/fs.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/fs.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAUtD,CAAC"}
|
package/lib/cjs/fs.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.mkdir = void 0;
|
|
7
|
+
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
+
const mkdir = async (path) => {
|
|
9
|
+
try {
|
|
10
|
+
await node_fs_1.default.promises.lstat(path);
|
|
11
|
+
}
|
|
12
|
+
catch (error) {
|
|
13
|
+
if (error instanceof Error && 'code' in error && error.code === 'ENOENT') {
|
|
14
|
+
await node_fs_1.default.promises.mkdir(path, { recursive: true });
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
throw error;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
exports.mkdir = mkdir;
|
|
22
|
+
//# sourceMappingURL=fs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/fs.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAyB;AAElB,MAAM,KAAK,GAAG,KAAK,EAAE,IAAY,EAAiB,EAAE;IAC1D,IAAI,CAAC;QACJ,MAAM,iBAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1E,MAAM,iBAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACP,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;AACF,CAAC,CAAC;AAVW,QAAA,KAAK,SAUhB"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const getEnumValue: <
|
|
1
|
+
export declare const getEnumValue: <TEnum extends string>(value: Record<string, TEnum>) => (input?: string) => TEnum | null;
|
|
2
2
|
//# sourceMappingURL=getEnumValue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getEnumValue.d.ts","sourceRoot":"","sources":["../../src/getEnumValue.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,GAAI,
|
|
1
|
+
{"version":3,"file":"getEnumValue.d.ts","sourceRoot":"","sources":["../../src/getEnumValue.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,GAAI,KAAK,SAAS,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAEtE,QAAQ,MAAM,KAAG,KAAK,GAAG,IACjC,CAAC"}
|
package/lib/cjs/getEnumValue.js
CHANGED
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getEnumValue = void 0;
|
|
4
4
|
const getEnumValue = (value) => {
|
|
5
5
|
const enumValues = Object.values(value);
|
|
6
|
-
return (
|
|
6
|
+
return (input) => enumValues.find((e) => e === input) ?? null;
|
|
7
7
|
};
|
|
8
8
|
exports.getEnumValue = getEnumValue;
|
|
9
9
|
//# sourceMappingURL=getEnumValue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getEnumValue.js","sourceRoot":"","sources":["../../src/getEnumValue.ts"],"names":[],"mappings":";;;AAAO,MAAM,YAAY,GAAG,
|
|
1
|
+
{"version":3,"file":"getEnumValue.js","sourceRoot":"","sources":["../../src/getEnumValue.ts"],"names":[],"mappings":";;;AAAO,MAAM,YAAY,GAAG,CAAuB,KAA4B,EAAE,EAAE;IAClF,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,CAAC,KAAc,EAAgB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC;AACtF,CAAC,CAAC;AAHW,QAAA,YAAY,gBAGvB"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare class HttpError extends Error {
|
|
2
|
+
readonly status: number;
|
|
3
|
+
constructor(status: number, statusText: string);
|
|
4
|
+
}
|
|
5
|
+
export interface FetchRetryOptions {
|
|
6
|
+
maxRetries?: number;
|
|
7
|
+
baseDelayMs?: number;
|
|
8
|
+
jitterMs?: number;
|
|
9
|
+
timeoutMs?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare const fetchWithRetry: (url: string, init?: RequestInit, retryOptions?: FetchRetryOptions) => Promise<Response>;
|
|
12
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":"AAEA,qBAAa,SAAU,SAAQ,KAAK;aAElB,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM,EAC9B,UAAU,EAAE,MAAM;CAInB;AAED,MAAM,WAAW,iBAAiB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,cAAc,GAC1B,KAAK,MAAM,EACX,OAAO,WAAW,EAClB,eAAe,iBAAiB,KAC9B,OAAO,CAAC,QAAQ,CA6BlB,CAAC"}
|
package/lib/cjs/http.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.fetchWithRetry = exports.HttpError = void 0;
|
|
4
|
+
const sleep_js_1 = require("./sleep.js");
|
|
5
|
+
class HttpError extends Error {
|
|
6
|
+
status;
|
|
7
|
+
constructor(status, statusText) {
|
|
8
|
+
super(`HTTP ${status} ${statusText}`);
|
|
9
|
+
this.status = status;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.HttpError = HttpError;
|
|
13
|
+
const fetchWithRetry = async (url, init, retryOptions) => {
|
|
14
|
+
const { maxRetries = 3, baseDelayMs = 1000, jitterMs = 500, timeoutMs = 30000 } = retryOptions ?? {};
|
|
15
|
+
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
16
|
+
const resp = await fetch(url, {
|
|
17
|
+
signal: AbortSignal.timeout(timeoutMs),
|
|
18
|
+
...init,
|
|
19
|
+
});
|
|
20
|
+
if (resp.ok) {
|
|
21
|
+
return resp;
|
|
22
|
+
}
|
|
23
|
+
const error = new HttpError(resp.status, resp.statusText);
|
|
24
|
+
const isTransient = resp.status === 429 || resp.status >= 500;
|
|
25
|
+
if (!isTransient || attempt === maxRetries) {
|
|
26
|
+
throw error;
|
|
27
|
+
}
|
|
28
|
+
const retryAfterHeader = resp.headers.get('retry-after');
|
|
29
|
+
const delay = retryAfterHeader !== null && retryAfterHeader !== ''
|
|
30
|
+
? Number.parseInt(retryAfterHeader, 10) * 1000
|
|
31
|
+
: baseDelayMs * 2 ** attempt;
|
|
32
|
+
await (0, sleep_js_1.sleep)(delay, jitterMs);
|
|
33
|
+
}
|
|
34
|
+
throw new Error('unreachable');
|
|
35
|
+
};
|
|
36
|
+
exports.fetchWithRetry = fetchWithRetry;
|
|
37
|
+
//# sourceMappingURL=http.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../../src/http.ts"],"names":[],"mappings":";;;AAAA,yCAAmC;AAEnC,MAAa,SAAU,SAAQ,KAAK;IAElB;IADjB,YACiB,MAAc,EAC9B,UAAkB;QAElB,KAAK,CAAC,QAAQ,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC;QAHtB,WAAM,GAAN,MAAM,CAAQ;IAI/B,CAAC;CACD;AAPD,8BAOC;AASM,MAAM,cAAc,GAAG,KAAK,EAClC,GAAW,EACX,IAAkB,EAClB,YAAgC,EACZ,EAAE;IACtB,MAAM,EAAE,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,IAAI,EAAE,QAAQ,GAAG,GAAG,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,YAAY,IAAI,EAAE,CAAC;IAErG,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC7B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;YACtC,GAAG,IAAI;SACP,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC;QAE9D,IAAI,CAAC,WAAW,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAC5C,MAAM,KAAK,CAAC;QACb,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACzD,MAAM,KAAK,GACV,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,KAAK,EAAE;YACnD,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,GAAG,IAAI;YAC9C,CAAC,CAAC,WAAW,GAAG,CAAC,IAAI,OAAO,CAAC;QAC/B,MAAM,IAAA,gBAAK,EAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;AAChC,CAAC,CAAC;AAjCW,QAAA,cAAc,kBAiCzB"}
|
package/lib/cjs/index.d.ts
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
|
+
export { formatDuration, toLocalISOString } from './date.js';
|
|
2
|
+
export { serializeError } from './error.js';
|
|
1
3
|
export { getEnumValue } from './getEnumValue.js';
|
|
4
|
+
export { HttpError, fetchWithRetry } from './http.js';
|
|
5
|
+
export type { FetchRetryOptions } from './http.js';
|
|
6
|
+
export { interceptXHR } from './interceptXHR.js';
|
|
2
7
|
export { isNonNullable } from './isNonNullable.js';
|
|
3
8
|
export { LogLevel, logger } from './logger.js';
|
|
4
9
|
export { notifyMattermost, notifySlack } from './notify.js';
|
|
5
10
|
export { Queue } from './queue.js';
|
|
6
11
|
export { sleep } from './sleep.js';
|
|
12
|
+
export { escapeHtml } from './string.js';
|
|
7
13
|
export { throttle } from './throttle.js';
|
|
8
14
|
export type { Last, Tail } from './types.js';
|
|
15
|
+
export { waitForElement, waitForElements } from './waitForElement.js';
|
|
9
16
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACtD,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
package/lib/cjs/index.js
CHANGED
|
@@ -1,8 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.throttle = exports.sleep = exports.Queue = exports.notifySlack = exports.notifyMattermost = exports.logger = exports.LogLevel = exports.isNonNullable = exports.getEnumValue = void 0;
|
|
3
|
+
exports.waitForElements = exports.waitForElement = exports.throttle = exports.escapeHtml = exports.sleep = exports.Queue = exports.notifySlack = exports.notifyMattermost = exports.logger = exports.LogLevel = exports.isNonNullable = exports.interceptXHR = exports.fetchWithRetry = exports.HttpError = exports.getEnumValue = exports.serializeError = exports.toLocalISOString = exports.formatDuration = void 0;
|
|
4
|
+
var date_js_1 = require("./date.js");
|
|
5
|
+
Object.defineProperty(exports, "formatDuration", { enumerable: true, get: function () { return date_js_1.formatDuration; } });
|
|
6
|
+
Object.defineProperty(exports, "toLocalISOString", { enumerable: true, get: function () { return date_js_1.toLocalISOString; } });
|
|
7
|
+
var error_js_1 = require("./error.js");
|
|
8
|
+
Object.defineProperty(exports, "serializeError", { enumerable: true, get: function () { return error_js_1.serializeError; } });
|
|
4
9
|
var getEnumValue_js_1 = require("./getEnumValue.js");
|
|
5
10
|
Object.defineProperty(exports, "getEnumValue", { enumerable: true, get: function () { return getEnumValue_js_1.getEnumValue; } });
|
|
11
|
+
var http_js_1 = require("./http.js");
|
|
12
|
+
Object.defineProperty(exports, "HttpError", { enumerable: true, get: function () { return http_js_1.HttpError; } });
|
|
13
|
+
Object.defineProperty(exports, "fetchWithRetry", { enumerable: true, get: function () { return http_js_1.fetchWithRetry; } });
|
|
14
|
+
var interceptXHR_js_1 = require("./interceptXHR.js");
|
|
15
|
+
Object.defineProperty(exports, "interceptXHR", { enumerable: true, get: function () { return interceptXHR_js_1.interceptXHR; } });
|
|
6
16
|
var isNonNullable_js_1 = require("./isNonNullable.js");
|
|
7
17
|
Object.defineProperty(exports, "isNonNullable", { enumerable: true, get: function () { return isNonNullable_js_1.isNonNullable; } });
|
|
8
18
|
var logger_js_1 = require("./logger.js");
|
|
@@ -15,6 +25,11 @@ var queue_js_1 = require("./queue.js");
|
|
|
15
25
|
Object.defineProperty(exports, "Queue", { enumerable: true, get: function () { return queue_js_1.Queue; } });
|
|
16
26
|
var sleep_js_1 = require("./sleep.js");
|
|
17
27
|
Object.defineProperty(exports, "sleep", { enumerable: true, get: function () { return sleep_js_1.sleep; } });
|
|
28
|
+
var string_js_1 = require("./string.js");
|
|
29
|
+
Object.defineProperty(exports, "escapeHtml", { enumerable: true, get: function () { return string_js_1.escapeHtml; } });
|
|
18
30
|
var throttle_js_1 = require("./throttle.js");
|
|
19
31
|
Object.defineProperty(exports, "throttle", { enumerable: true, get: function () { return throttle_js_1.throttle; } });
|
|
32
|
+
var waitForElement_js_1 = require("./waitForElement.js");
|
|
33
|
+
Object.defineProperty(exports, "waitForElement", { enumerable: true, get: function () { return waitForElement_js_1.waitForElement; } });
|
|
34
|
+
Object.defineProperty(exports, "waitForElements", { enumerable: true, get: function () { return waitForElement_js_1.waitForElements; } });
|
|
20
35
|
//# sourceMappingURL=index.js.map
|
package/lib/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AACrB,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AACtB,yCAA+C;AAAtC,qGAAA,QAAQ,OAAA;AAAE,mGAAA,MAAM,OAAA;AACzB,yCAA4D;AAAnD,6GAAA,gBAAgB,OAAA;AAAE,wGAAA,WAAW,OAAA;AACtC,uCAAmC;AAA1B,iGAAA,KAAK,OAAA;AACd,uCAAmC;AAA1B,iGAAA,KAAK,OAAA;AACd,6CAAyC;AAAhC,uGAAA,QAAQ,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,qCAA6D;AAApD,yGAAA,cAAc,OAAA;AAAE,2GAAA,gBAAgB,OAAA;AACzC,uCAA4C;AAAnC,0GAAA,cAAc,OAAA;AACvB,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AACrB,qCAAsD;AAA7C,oGAAA,SAAS,OAAA;AAAE,yGAAA,cAAc,OAAA;AAElC,qDAAiD;AAAxC,+GAAA,YAAY,OAAA;AACrB,uDAAmD;AAA1C,iHAAA,aAAa,OAAA;AACtB,yCAA+C;AAAtC,qGAAA,QAAQ,OAAA;AAAE,mGAAA,MAAM,OAAA;AACzB,yCAA4D;AAAnD,6GAAA,gBAAgB,OAAA;AAAE,wGAAA,WAAW,OAAA;AACtC,uCAAmC;AAA1B,iGAAA,KAAK,OAAA;AACd,uCAAmC;AAA1B,iGAAA,KAAK,OAAA;AACd,yCAAyC;AAAhC,uGAAA,UAAU,OAAA;AACnB,6CAAyC;AAAhC,uGAAA,QAAQ,OAAA;AAEjB,yDAAsE;AAA7D,mHAAA,cAAc,OAAA;AAAE,oHAAA,eAAe,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interceptXHR.d.ts","sourceRoot":"","sources":["../../src/interceptXHR.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,GAAG,MAAM,EAAE,SAAS,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,SAoB5F,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.interceptXHR = void 0;
|
|
4
|
+
const originalSend = XMLHttpRequest.prototype.send;
|
|
5
|
+
const interceptXHR = (pattern, handler) => {
|
|
6
|
+
XMLHttpRequest.prototype.send = function (body) {
|
|
7
|
+
this.addEventListener('load', () => {
|
|
8
|
+
if (this.status !== 200) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
const matches = typeof pattern === 'string'
|
|
12
|
+
? this.responseURL.includes(pattern)
|
|
13
|
+
: pattern.test(this.responseURL);
|
|
14
|
+
if (!matches) {
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
handler(this);
|
|
18
|
+
});
|
|
19
|
+
return originalSend.call(this, body);
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
exports.interceptXHR = interceptXHR;
|
|
23
|
+
//# sourceMappingURL=interceptXHR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interceptXHR.js","sourceRoot":"","sources":["../../src/interceptXHR.ts"],"names":[],"mappings":";;;AAAA,MAAM,YAAY,GAAG,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC;AAE5C,MAAM,YAAY,GAAG,CAAC,OAAwB,EAAE,OAAsC,EAAE,EAAE;IAChG,cAAc,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,IAAI;QAC7C,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;YAClC,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACzB,OAAO;YACR,CAAC;YAED,MAAM,OAAO,GACZ,OAAO,OAAO,KAAK,QAAQ;gBAC1B,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACpC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAEnC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO;YACR,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QACH,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC;AACH,CAAC,CAAC;AApBW,QAAA,YAAY,gBAoBvB"}
|
package/lib/cjs/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IACnB,KAAK,IAAI;IACT,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,KAAK,IAAA;CACL;AAED,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;AAgC/C,eAAO,MAAM,MAAM;qBACD,MAAM,YAAY,OAAO;oBAC1B,MAAM,YAAY,OAAO;oBACzB,MAAM,YAAY,OAAO;qBACxB,MAAM,YAAY,OAAO;sBACxB,QAAQ,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IACnB,KAAK,IAAI;IACT,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,KAAK,IAAA;CACL;AAED,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;AAgC/C,eAAO,MAAM,MAAM;qBACD,MAAM,YAAY,OAAO;oBAC1B,MAAM,YAAY,OAAO;oBACzB,MAAM,YAAY,OAAO;qBACxB,MAAM,YAAY,OAAO;sBACxB,QAAQ,GAAG,MAAM;CAkBnC,CAAC"}
|
package/lib/cjs/logger.js
CHANGED
|
@@ -41,7 +41,13 @@ exports.logger = {
|
|
|
41
41
|
error: (message, payload) => log(LogLevel.ERROR, message, payload),
|
|
42
42
|
setLevel: (level) => {
|
|
43
43
|
if (typeof level === 'string') {
|
|
44
|
-
const
|
|
44
|
+
const levelMap = {
|
|
45
|
+
DEBUG: LogLevel.DEBUG,
|
|
46
|
+
INFO: LogLevel.INFO,
|
|
47
|
+
WARN: LogLevel.WARN,
|
|
48
|
+
ERROR: LogLevel.ERROR,
|
|
49
|
+
};
|
|
50
|
+
const resolved = levelMap[level.toUpperCase()];
|
|
45
51
|
if (resolved === undefined) {
|
|
46
52
|
console.warn(`[logger] Invalid log level: "${level}", keeping current level`);
|
|
47
53
|
return;
|
package/lib/cjs/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":";;;AAAA,IAAY,QAKX;AALD,WAAY,QAAQ;IACnB,yCAAS,CAAA;IACT,uCAAI,CAAA;IACJ,uCAAI,CAAA;IACJ,yCAAK,CAAA;AACN,CAAC,EALW,QAAQ,wBAAR,QAAQ,QAKnB;AAID,MAAM,gBAAgB,GAAG,CAAC,OAAgB,EAAU,EAAE;IACrD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAC1B,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CACzG,CAAC;IACF,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,IAAI,YAAY,GAAa,QAAQ,CAAC,IAAI,CAAC;AAE3C,MAAM,GAAG,GAAG,CAAC,KAAe,EAAE,OAAe,EAAE,OAAiB,EAAE,EAAE;IACnE,IAAI,KAAK,GAAG,YAAY,EAAE,CAAC;QAC1B,OAAO;IACR,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC;IAC5D,MAAM,UAAU,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;IAEnD,IAAI,KAAK,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;SAAM,IAAI,KAAK,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,KAAK,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;AACF,CAAC,CAAC;AAEW,QAAA,MAAM,GAAG;IACrB,KAAK,EAAE,CAAC,OAAe,EAAE,OAAiB,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;IACpF,IAAI,EAAE,CAAC,OAAe,EAAE,OAAiB,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;IAClF,IAAI,EAAE,CAAC,OAAe,EAAE,OAAiB,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;IAClF,KAAK,EAAE,CAAC,OAAe,EAAE,OAAiB,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;IACpF,QAAQ,EAAE,CAAC,KAAwB,EAAE,EAAE;QACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/node.d.ts
CHANGED
package/lib/cjs/node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../src/node.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC"}
|
package/lib/cjs/node.js
CHANGED
|
@@ -1,22 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const node_fs_1 = __importDefault(require("node:fs"));
|
|
8
|
-
const mkdir = async (path) => {
|
|
9
|
-
try {
|
|
10
|
-
await node_fs_1.default.promises.lstat(path);
|
|
11
|
-
}
|
|
12
|
-
catch (error) {
|
|
13
|
-
if (error instanceof Error && 'code' in error && error.code === 'ENOENT') {
|
|
14
|
-
await node_fs_1.default.promises.mkdir(path, { recursive: true });
|
|
15
|
-
}
|
|
16
|
-
else {
|
|
17
|
-
throw error;
|
|
18
|
-
}
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
19
7
|
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
15
|
};
|
|
21
|
-
exports
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./download.js"), exports);
|
|
18
|
+
__exportStar(require("./fs.js"), exports);
|
|
19
|
+
__exportStar(require("./zlib.js"), exports);
|
|
22
20
|
//# sourceMappingURL=node.js.map
|
package/lib/cjs/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../src/node.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gDAA8B;AAC9B,0CAAwB;AACxB,4CAA0B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../../src/string.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,MAA4E,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.escapeHtml = void 0;
|
|
4
|
+
const escapeMap = {
|
|
5
|
+
'"': '"',
|
|
6
|
+
"'": ''',
|
|
7
|
+
'<': '<',
|
|
8
|
+
'>': '>',
|
|
9
|
+
'&': '&',
|
|
10
|
+
};
|
|
11
|
+
const escapeHtml = (value) => value.replaceAll(/["'<>&]/g, (match) => escapeMap[match] ?? match);
|
|
12
|
+
exports.escapeHtml = escapeHtml;
|
|
13
|
+
//# sourceMappingURL=string.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.js","sourceRoot":"","sources":["../../src/string.ts"],"names":[],"mappings":";;;AAAA,MAAM,SAAS,GAA2B;IACzC,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,OAAO;CACZ,CAAC;AAEK,MAAM,UAAU,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC;AAA3G,QAAA,UAAU,cAAiG"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const waitForElement: <T extends HTMLElement>(selector: string, options?: {
|
|
2
|
+
parent?: ParentNode;
|
|
3
|
+
timeout?: number;
|
|
4
|
+
jitter?: number;
|
|
5
|
+
}) => Promise<T[] | null>;
|
|
6
|
+
export declare const waitForElements: <T extends HTMLElement>(selector: string | string[], options?: {
|
|
7
|
+
parent?: HTMLElement;
|
|
8
|
+
timeout?: number;
|
|
9
|
+
jitter?: number;
|
|
10
|
+
}) => Promise<T[] | null>;
|
|
11
|
+
//# sourceMappingURL=waitForElement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waitForElement.d.ts","sourceRoot":"","sources":["../../src/waitForElement.ts"],"names":[],"mappings":"AA2BA,eAAO,MAAM,cAAc,GAAU,CAAC,SAAS,WAAW,EACzD,UAAU,MAAM,EAChB,UAAU;IACT,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,KACC,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAMpB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAU,CAAC,SAAS,WAAW,EAC1D,UAAU,MAAM,GAAG,MAAM,EAAE,EAC3B,UAAU;IACT,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,KACC,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAYpB,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.waitForElements = exports.waitForElement = void 0;
|
|
4
|
+
const isNonNullable_js_1 = require("./isNonNullable.js");
|
|
5
|
+
const sleep_js_1 = require("./sleep.js");
|
|
6
|
+
const poll = async (handler, options) => {
|
|
7
|
+
const { timeout = 10000, jitter = 0 } = options ?? {};
|
|
8
|
+
let elapsedTime = 0;
|
|
9
|
+
const intervalTime = 100;
|
|
10
|
+
for (;;) {
|
|
11
|
+
const result = handler();
|
|
12
|
+
if (result !== null) {
|
|
13
|
+
return result;
|
|
14
|
+
}
|
|
15
|
+
if (elapsedTime >= timeout) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
await (0, sleep_js_1.sleep)(intervalTime, jitter);
|
|
19
|
+
elapsedTime += intervalTime;
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
const waitForElement = async (selector, options) => {
|
|
23
|
+
const root = options?.parent ?? document;
|
|
24
|
+
return poll(() => {
|
|
25
|
+
const elements = root.querySelectorAll(selector);
|
|
26
|
+
return elements.length > 0 ? Array.from(elements) : null;
|
|
27
|
+
}, options);
|
|
28
|
+
};
|
|
29
|
+
exports.waitForElement = waitForElement;
|
|
30
|
+
const waitForElements = async (selector, options) => {
|
|
31
|
+
const root = options?.parent ?? document;
|
|
32
|
+
const selectors = Array.isArray(selector) ? selector : [selector];
|
|
33
|
+
return poll(() => {
|
|
34
|
+
for (const selector of selectors) {
|
|
35
|
+
const elements = root.querySelectorAll(selector);
|
|
36
|
+
if (elements.length > 0) {
|
|
37
|
+
return Array.from(elements).filter(isNonNullable_js_1.isNonNullable);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return null;
|
|
41
|
+
}, options);
|
|
42
|
+
};
|
|
43
|
+
exports.waitForElements = waitForElements;
|
|
44
|
+
//# sourceMappingURL=waitForElement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waitForElement.js","sourceRoot":"","sources":["../../src/waitForElement.ts"],"names":[],"mappings":";;;AAAA,yDAAmD;AACnD,yCAAmC;AAEnC,MAAM,IAAI,GAAG,KAAK,EACjB,OAAuB,EACvB,OAGC,EACmB,EAAE;IACtB,MAAM,EAAE,OAAO,GAAG,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IACtD,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,MAAM,YAAY,GAAG,GAAG,CAAC;IAEzB,SAAS,CAAC;QACT,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC;QACzB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,MAAM,CAAC;QACf,CAAC;QACD,IAAI,WAAW,IAAI,OAAO,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACb,CAAC;QACD,MAAM,IAAA,gBAAK,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAClC,WAAW,IAAI,YAAY,CAAC;IAC7B,CAAC;AACF,CAAC,CAAC;AAEK,MAAM,cAAc,GAAG,KAAK,EAClC,QAAgB,EAChB,OAIC,EACqB,EAAE;IACxB,MAAM,IAAI,GAAG,OAAO,EAAE,MAAM,IAAI,QAAQ,CAAC;IACzC,OAAO,IAAI,CAAC,GAAG,EAAE;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAI,QAAQ,CAAC,CAAC;QACpD,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC,EAAE,OAAO,CAAC,CAAC;AACb,CAAC,CAAC;AAbW,QAAA,cAAc,kBAazB;AAEK,MAAM,eAAe,GAAG,KAAK,EACnC,QAA2B,EAC3B,OAIC,EACqB,EAAE;IACxB,MAAM,IAAI,GAAG,OAAO,EAAE,MAAM,IAAI,QAAQ,CAAC;IACzC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAClE,OAAO,IAAI,CAAC,GAAG,EAAE;QAChB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAI,QAAQ,CAAC,CAAC;YACpD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,gCAAa,CAAC,CAAC;YACnD,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC,EAAE,OAAO,CAAC,CAAC;AACb,CAAC,CAAC;AAnBW,QAAA,eAAe,mBAmB1B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zlib.d.ts","sourceRoot":"","sources":["../../src/zlib.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,QAAQ,GAAU,CAAC,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,MAAM,CAA+C,CAAC;AAE1G,eAAO,MAAM,UAAU,GAAU,CAAC,EAAE,MAAM,MAAM,KAAG,OAAO,CAAC,CAAC,CAG3D,CAAC"}
|
package/lib/cjs/zlib.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.decompress = exports.compress = void 0;
|
|
7
|
+
const node_util_1 = require("node:util");
|
|
8
|
+
const node_zlib_1 = __importDefault(require("node:zlib"));
|
|
9
|
+
const deflate = (0, node_util_1.promisify)(node_zlib_1.default.deflate);
|
|
10
|
+
const inflate = (0, node_util_1.promisify)(node_zlib_1.default.inflate);
|
|
11
|
+
const compress = async (data) => deflate(Buffer.from(JSON.stringify(data)));
|
|
12
|
+
exports.compress = compress;
|
|
13
|
+
const decompress = async (data) => {
|
|
14
|
+
const result = await inflate(data);
|
|
15
|
+
return JSON.parse(result.toString());
|
|
16
|
+
};
|
|
17
|
+
exports.decompress = decompress;
|
|
18
|
+
//# sourceMappingURL=zlib.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zlib.js","sourceRoot":"","sources":["../../src/zlib.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAsC;AACtC,0DAA6B;AAE7B,MAAM,OAAO,GAAG,IAAA,qBAAS,EAAC,mBAAI,CAAC,OAAO,CAAC,CAAC;AACxC,MAAM,OAAO,GAAG,IAAA,qBAAS,EAAC,mBAAI,CAAC,OAAO,CAAC,CAAC;AAEjC,MAAM,QAAQ,GAAG,KAAK,EAAK,IAAO,EAAmB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAA7F,QAAA,QAAQ,YAAqF;AAEnG,MAAM,UAAU,GAAG,KAAK,EAAK,IAAY,EAAc,EAAE;IAC/D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtC,CAAC,CAAC;AAHW,QAAA,UAAU,cAGrB"}
|
package/lib/date.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date.d.ts","sourceRoot":"","sources":["../src/date.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,GAAI,MAAM,IAAI,KAAG,MAe7C,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,IAAI,MAAM,KAAG,MAgB3C,CAAC"}
|
package/lib/date.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export const toLocalISOString = (date) => {
|
|
2
|
+
const year = date.getFullYear();
|
|
3
|
+
const month = `${date.getMonth() + 1}`.padStart(2, '0');
|
|
4
|
+
const day = `${date.getDate()}`.padStart(2, '0');
|
|
5
|
+
const hours = `${date.getHours()}`.padStart(2, '0');
|
|
6
|
+
const minutes = `${date.getMinutes()}`.padStart(2, '0');
|
|
7
|
+
const seconds = `${date.getSeconds()}`.padStart(2, '0');
|
|
8
|
+
const ms = `${date.getMilliseconds()}`.padStart(3, '0');
|
|
9
|
+
const offset = date.getTimezoneOffset();
|
|
10
|
+
const sign = offset <= 0 ? '+' : '-';
|
|
11
|
+
const offsetHours = `${Math.floor(Math.abs(offset) / 60)}`.padStart(2, '0');
|
|
12
|
+
const offsetMinutes = `${Math.abs(offset) % 60}`.padStart(2, '0');
|
|
13
|
+
return `${year}-${month}-${day}T${hours}:${minutes}:${seconds}.${ms}${sign}${offsetHours}:${offsetMinutes}`;
|
|
14
|
+
};
|
|
15
|
+
export const formatDuration = (ms) => {
|
|
16
|
+
const totalSeconds = Math.ceil(ms / 1000);
|
|
17
|
+
const hours = Math.floor(totalSeconds / 3600);
|
|
18
|
+
const minutes = Math.floor((totalSeconds % 3600) / 60);
|
|
19
|
+
const seconds = totalSeconds % 60;
|
|
20
|
+
const parts = [];
|
|
21
|
+
if (hours > 0) {
|
|
22
|
+
parts.push(`${hours}h`);
|
|
23
|
+
}
|
|
24
|
+
if (minutes > 0) {
|
|
25
|
+
parts.push(`${minutes}m`);
|
|
26
|
+
}
|
|
27
|
+
if (seconds > 0 || parts.length === 0) {
|
|
28
|
+
parts.push(`${seconds}s`);
|
|
29
|
+
}
|
|
30
|
+
return parts.join(' ');
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=date.js.map
|
package/lib/date.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date.js","sourceRoot":"","sources":["../src/date.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,IAAU,EAAU,EAAE;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAChC,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACxD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACjD,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IACxD,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAExD,MAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;IACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IACrC,MAAM,WAAW,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAC5E,MAAM,aAAa,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;IAElE,OAAO,GAAG,IAAI,IAAI,KAAK,IAAI,GAAG,IAAI,KAAK,IAAI,OAAO,IAAI,OAAO,IAAI,EAAE,GAAG,IAAI,GAAG,WAAW,IAAI,aAAa,EAAE,CAAC;AAC7G,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,EAAU,EAAU,EAAE;IACpD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,YAAY,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;IACvD,MAAM,OAAO,GAAG,YAAY,GAAG,EAAE,CAAC;IAClC,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,EAAE,CAAC;QACjB,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,IAAI,OAAO,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,GAAG,CAAC,CAAC;IAC3B,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACxB,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"download.d.ts","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,QAAQ,GACpB,KAAK,MAAM,EACX,UAAU,MAAM,EAChB,OAAO,WAAW,EAClB,kBAAyB,KACvB,OAAO,CAAC,IAAI,CAUd,CAAC"}
|
package/lib/download.js
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
import { HttpError } from './http.js';
|
|
3
|
+
export const download = async (url, filePath, init, timeoutMs = 5 * 60 * 1000) => {
|
|
4
|
+
const resp = await fetch(url, {
|
|
5
|
+
signal: AbortSignal.timeout(timeoutMs),
|
|
6
|
+
...init,
|
|
7
|
+
});
|
|
8
|
+
if (!resp.ok) {
|
|
9
|
+
throw new HttpError(resp.status, resp.statusText);
|
|
10
|
+
}
|
|
11
|
+
const buffer = await resp.arrayBuffer();
|
|
12
|
+
await fs.promises.writeFile(filePath, Buffer.from(buffer));
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=download.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"download.js","sourceRoot":"","sources":["../src/download.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC5B,GAAW,EACX,QAAgB,EAChB,IAAkB,EAClB,SAAS,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,EACT,EAAE;IAClB,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC7B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;QACtC,GAAG,IAAI;KACP,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACd,MAAM,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,EAAE,CAAC;IACxC,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC5D,CAAC,CAAC"}
|
package/lib/error.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,cAAc,GAAI,OAAO,KAAK,KAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CACC,CAAC"}
|
package/lib/error.js
ADDED
package/lib/error.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,KAAY,EAA2B,EAAE,CACvE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC"}
|
package/lib/fs.d.ts
ADDED
package/lib/fs.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,KAAK,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,IAAI,CAUtD,CAAC"}
|
package/lib/fs.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import fs from 'node:fs';
|
|
2
|
+
export const mkdir = async (path) => {
|
|
3
|
+
try {
|
|
4
|
+
await fs.promises.lstat(path);
|
|
5
|
+
}
|
|
6
|
+
catch (error) {
|
|
7
|
+
if (error instanceof Error && 'code' in error && error.code === 'ENOENT') {
|
|
8
|
+
await fs.promises.mkdir(path, { recursive: true });
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
throw error;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=fs.js.map
|
package/lib/fs.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AAEzB,MAAM,CAAC,MAAM,KAAK,GAAG,KAAK,EAAE,IAAY,EAAiB,EAAE;IAC1D,IAAI,CAAC;QACJ,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,IAAI,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC1E,MAAM,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACP,MAAM,KAAK,CAAC;QACb,CAAC;IACF,CAAC;AACF,CAAC,CAAC"}
|
package/lib/getEnumValue.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const getEnumValue: <
|
|
1
|
+
export declare const getEnumValue: <TEnum extends string>(value: Record<string, TEnum>) => (input?: string) => TEnum | null;
|
|
2
2
|
//# sourceMappingURL=getEnumValue.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getEnumValue.d.ts","sourceRoot":"","sources":["../src/getEnumValue.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,GAAI,
|
|
1
|
+
{"version":3,"file":"getEnumValue.d.ts","sourceRoot":"","sources":["../src/getEnumValue.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,GAAI,KAAK,SAAS,MAAM,EAAE,OAAO,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,MAEtE,QAAQ,MAAM,KAAG,KAAK,GAAG,IACjC,CAAC"}
|
package/lib/getEnumValue.js
CHANGED
package/lib/getEnumValue.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getEnumValue.js","sourceRoot":"","sources":["../src/getEnumValue.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,
|
|
1
|
+
{"version":3,"file":"getEnumValue.js","sourceRoot":"","sources":["../src/getEnumValue.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,CAAuB,KAA4B,EAAE,EAAE;IAClF,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACxC,OAAO,CAAC,KAAc,EAAgB,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC;AACtF,CAAC,CAAC"}
|
package/lib/http.d.ts
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare class HttpError extends Error {
|
|
2
|
+
readonly status: number;
|
|
3
|
+
constructor(status: number, statusText: string);
|
|
4
|
+
}
|
|
5
|
+
export interface FetchRetryOptions {
|
|
6
|
+
maxRetries?: number;
|
|
7
|
+
baseDelayMs?: number;
|
|
8
|
+
jitterMs?: number;
|
|
9
|
+
timeoutMs?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare const fetchWithRetry: (url: string, init?: RequestInit, retryOptions?: FetchRetryOptions) => Promise<Response>;
|
|
12
|
+
//# sourceMappingURL=http.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAEA,qBAAa,SAAU,SAAQ,KAAK;aAElB,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM,EAC9B,UAAU,EAAE,MAAM;CAInB;AAED,MAAM,WAAW,iBAAiB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,cAAc,GAC1B,KAAK,MAAM,EACX,OAAO,WAAW,EAClB,eAAe,iBAAiB,KAC9B,OAAO,CAAC,QAAQ,CA6BlB,CAAC"}
|
package/lib/http.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { sleep } from './sleep.js';
|
|
2
|
+
export class HttpError extends Error {
|
|
3
|
+
status;
|
|
4
|
+
constructor(status, statusText) {
|
|
5
|
+
super(`HTTP ${status} ${statusText}`);
|
|
6
|
+
this.status = status;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export const fetchWithRetry = async (url, init, retryOptions) => {
|
|
10
|
+
const { maxRetries = 3, baseDelayMs = 1000, jitterMs = 500, timeoutMs = 30000 } = retryOptions ?? {};
|
|
11
|
+
for (let attempt = 0; attempt <= maxRetries; attempt++) {
|
|
12
|
+
const resp = await fetch(url, {
|
|
13
|
+
signal: AbortSignal.timeout(timeoutMs),
|
|
14
|
+
...init,
|
|
15
|
+
});
|
|
16
|
+
if (resp.ok) {
|
|
17
|
+
return resp;
|
|
18
|
+
}
|
|
19
|
+
const error = new HttpError(resp.status, resp.statusText);
|
|
20
|
+
const isTransient = resp.status === 429 || resp.status >= 500;
|
|
21
|
+
if (!isTransient || attempt === maxRetries) {
|
|
22
|
+
throw error;
|
|
23
|
+
}
|
|
24
|
+
const retryAfterHeader = resp.headers.get('retry-after');
|
|
25
|
+
const delay = retryAfterHeader !== null && retryAfterHeader !== ''
|
|
26
|
+
? Number.parseInt(retryAfterHeader, 10) * 1000
|
|
27
|
+
: baseDelayMs * 2 ** attempt;
|
|
28
|
+
await sleep(delay, jitterMs);
|
|
29
|
+
}
|
|
30
|
+
throw new Error('unreachable');
|
|
31
|
+
};
|
|
32
|
+
//# sourceMappingURL=http.js.map
|
package/lib/http.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,OAAO,SAAU,SAAQ,KAAK;IAElB;IADjB,YACiB,MAAc,EAC9B,UAAkB;QAElB,KAAK,CAAC,QAAQ,MAAM,IAAI,UAAU,EAAE,CAAC,CAAC;QAHtB,WAAM,GAAN,MAAM,CAAQ;IAI/B,CAAC;CACD;AASD,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAClC,GAAW,EACX,IAAkB,EAClB,YAAgC,EACZ,EAAE;IACtB,MAAM,EAAE,UAAU,GAAG,CAAC,EAAE,WAAW,GAAG,IAAI,EAAE,QAAQ,GAAG,GAAG,EAAE,SAAS,GAAG,KAAK,EAAE,GAAG,YAAY,IAAI,EAAE,CAAC;IAErG,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC7B,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC;YACtC,GAAG,IAAI;SACP,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACb,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAC1D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,CAAC;QAE9D,IAAI,CAAC,WAAW,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;YAC5C,MAAM,KAAK,CAAC;QACb,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACzD,MAAM,KAAK,GACV,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,KAAK,EAAE;YACnD,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,EAAE,EAAE,CAAC,GAAG,IAAI;YAC9C,CAAC,CAAC,WAAW,GAAG,CAAC,IAAI,OAAO,CAAC;QAC/B,MAAM,KAAK,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;AAChC,CAAC,CAAC"}
|
package/lib/index.d.ts
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
|
+
export { formatDuration, toLocalISOString } from './date.js';
|
|
2
|
+
export { serializeError } from './error.js';
|
|
1
3
|
export { getEnumValue } from './getEnumValue.js';
|
|
4
|
+
export { HttpError, fetchWithRetry } from './http.js';
|
|
5
|
+
export type { FetchRetryOptions } from './http.js';
|
|
6
|
+
export { interceptXHR } from './interceptXHR.js';
|
|
2
7
|
export { isNonNullable } from './isNonNullable.js';
|
|
3
8
|
export { LogLevel, logger } from './logger.js';
|
|
4
9
|
export { notifyMattermost, notifySlack } from './notify.js';
|
|
5
10
|
export { Queue } from './queue.js';
|
|
6
11
|
export { sleep } from './sleep.js';
|
|
12
|
+
export { escapeHtml } from './string.js';
|
|
7
13
|
export { throttle } from './throttle.js';
|
|
8
14
|
export type { Last, Tail } from './types.js';
|
|
15
|
+
export { waitForElement, waitForElements } from './waitForElement.js';
|
|
9
16
|
//# sourceMappingURL=index.d.ts.map
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACtD,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
package/lib/index.js
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
+
export { formatDuration, toLocalISOString } from './date.js';
|
|
2
|
+
export { serializeError } from './error.js';
|
|
1
3
|
export { getEnumValue } from './getEnumValue.js';
|
|
4
|
+
export { HttpError, fetchWithRetry } from './http.js';
|
|
5
|
+
export { interceptXHR } from './interceptXHR.js';
|
|
2
6
|
export { isNonNullable } from './isNonNullable.js';
|
|
3
7
|
export { LogLevel, logger } from './logger.js';
|
|
4
8
|
export { notifyMattermost, notifySlack } from './notify.js';
|
|
5
9
|
export { Queue } from './queue.js';
|
|
6
10
|
export { sleep } from './sleep.js';
|
|
11
|
+
export { escapeHtml } from './string.js';
|
|
7
12
|
export { throttle } from './throttle.js';
|
|
13
|
+
export { waitForElement, waitForElements } from './waitForElement.js';
|
|
8
14
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interceptXHR.d.ts","sourceRoot":"","sources":["../src/interceptXHR.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,GAAI,SAAS,MAAM,GAAG,MAAM,EAAE,SAAS,CAAC,GAAG,EAAE,cAAc,KAAK,IAAI,SAoB5F,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const originalSend = XMLHttpRequest.prototype.send;
|
|
2
|
+
export const interceptXHR = (pattern, handler) => {
|
|
3
|
+
XMLHttpRequest.prototype.send = function (body) {
|
|
4
|
+
this.addEventListener('load', () => {
|
|
5
|
+
if (this.status !== 200) {
|
|
6
|
+
return;
|
|
7
|
+
}
|
|
8
|
+
const matches = typeof pattern === 'string'
|
|
9
|
+
? this.responseURL.includes(pattern)
|
|
10
|
+
: pattern.test(this.responseURL);
|
|
11
|
+
if (!matches) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
handler(this);
|
|
15
|
+
});
|
|
16
|
+
return originalSend.call(this, body);
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=interceptXHR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interceptXHR.js","sourceRoot":"","sources":["../src/interceptXHR.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC;AAEnD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,OAAwB,EAAE,OAAsC,EAAE,EAAE;IAChG,cAAc,CAAC,SAAS,CAAC,IAAI,GAAG,UAAU,IAAI;QAC7C,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,GAAG,EAAE;YAClC,IAAI,IAAI,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;gBACzB,OAAO;YACR,CAAC;YAED,MAAM,OAAO,GACZ,OAAO,OAAO,KAAK,QAAQ;gBAC1B,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC;gBACpC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAEnC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACd,OAAO;YACR,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,CAAC;QACf,CAAC,CAAC,CAAC;QACH,OAAO,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC;AACH,CAAC,CAAC"}
|
package/lib/logger.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IACnB,KAAK,IAAI;IACT,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,KAAK,IAAA;CACL;AAED,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;AAgC/C,eAAO,MAAM,MAAM;qBACD,MAAM,YAAY,OAAO;oBAC1B,MAAM,YAAY,OAAO;oBACzB,MAAM,YAAY,OAAO;qBACxB,MAAM,YAAY,OAAO;sBACxB,QAAQ,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IACnB,KAAK,IAAI;IACT,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,KAAK,IAAA;CACL;AAED,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,KAAK,CAAC;AAgC/C,eAAO,MAAM,MAAM;qBACD,MAAM,YAAY,OAAO;oBAC1B,MAAM,YAAY,OAAO;oBACzB,MAAM,YAAY,OAAO;qBACxB,MAAM,YAAY,OAAO;sBACxB,QAAQ,GAAG,MAAM;CAkBnC,CAAC"}
|
package/lib/logger.js
CHANGED
|
@@ -38,7 +38,13 @@ export const logger = {
|
|
|
38
38
|
error: (message, payload) => log(LogLevel.ERROR, message, payload),
|
|
39
39
|
setLevel: (level) => {
|
|
40
40
|
if (typeof level === 'string') {
|
|
41
|
-
const
|
|
41
|
+
const levelMap = {
|
|
42
|
+
DEBUG: LogLevel.DEBUG,
|
|
43
|
+
INFO: LogLevel.INFO,
|
|
44
|
+
WARN: LogLevel.WARN,
|
|
45
|
+
ERROR: LogLevel.ERROR,
|
|
46
|
+
};
|
|
47
|
+
const resolved = levelMap[level.toUpperCase()];
|
|
42
48
|
if (resolved === undefined) {
|
|
43
49
|
console.warn(`[logger] Invalid log level: "${level}", keeping current level`);
|
|
44
50
|
return;
|
package/lib/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAKX;AALD,WAAY,QAAQ;IACnB,yCAAS,CAAA;IACT,uCAAI,CAAA;IACJ,uCAAI,CAAA;IACJ,yCAAK,CAAA;AACN,CAAC,EALW,QAAQ,KAAR,QAAQ,QAKnB;AAID,MAAM,gBAAgB,GAAG,CAAC,OAAgB,EAAU,EAAE;IACrD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAC1B,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,OAAO,CACzG,CAAC;IACF,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACvC,CAAC,CAAC;AAEF,IAAI,YAAY,GAAa,QAAQ,CAAC,IAAI,CAAC;AAE3C,MAAM,GAAG,GAAG,CAAC,KAAe,EAAE,OAAe,EAAE,OAAiB,EAAE,EAAE;IACnE,IAAI,KAAK,GAAG,YAAY,EAAE,CAAC;QAC1B,OAAO;IACR,CAAC;IAED,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC;IAC5D,MAAM,UAAU,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC1E,MAAM,MAAM,GAAG,GAAG,MAAM,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;IAEnD,IAAI,KAAK,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC9B,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;SAAM,IAAI,KAAK,KAAK,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;SAAM,IAAI,KAAK,KAAK,QAAQ,CAAC,KAAK,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACvB,CAAC;SAAM,CAAC;QACP,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,MAAM,GAAG;IACrB,KAAK,EAAE,CAAC,OAAe,EAAE,OAAiB,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;IACpF,IAAI,EAAE,CAAC,OAAe,EAAE,OAAiB,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;IAClF,IAAI,EAAE,CAAC,OAAe,EAAE,OAAiB,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC;IAClF,KAAK,EAAE,CAAC,OAAe,EAAE,OAAiB,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC;IACpF,QAAQ,EAAE,CAAC,KAAwB,EAAE,EAAE;QACtC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC/B,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"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"}
|
package/lib/node.d.ts
CHANGED
package/lib/node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC"}
|
package/lib/node.js
CHANGED
|
@@ -1,15 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
|
|
4
|
-
await fs.promises.lstat(path);
|
|
5
|
-
}
|
|
6
|
-
catch (error) {
|
|
7
|
-
if (error instanceof Error && 'code' in error && error.code === 'ENOENT') {
|
|
8
|
-
await fs.promises.mkdir(path, { recursive: true });
|
|
9
|
-
}
|
|
10
|
-
else {
|
|
11
|
-
throw error;
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
};
|
|
1
|
+
export * from './download.js';
|
|
2
|
+
export * from './fs.js';
|
|
3
|
+
export * from './zlib.js';
|
|
15
4
|
//# sourceMappingURL=node.js.map
|
package/lib/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC"}
|
package/lib/string.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.d.ts","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,UAAU,GAAI,OAAO,MAAM,KAAG,MAA4E,CAAC"}
|
package/lib/string.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string.js","sourceRoot":"","sources":["../src/string.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAA2B;IACzC,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,QAAQ;IACb,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,OAAO;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const waitForElement: <T extends HTMLElement>(selector: string, options?: {
|
|
2
|
+
parent?: ParentNode;
|
|
3
|
+
timeout?: number;
|
|
4
|
+
jitter?: number;
|
|
5
|
+
}) => Promise<T[] | null>;
|
|
6
|
+
export declare const waitForElements: <T extends HTMLElement>(selector: string | string[], options?: {
|
|
7
|
+
parent?: HTMLElement;
|
|
8
|
+
timeout?: number;
|
|
9
|
+
jitter?: number;
|
|
10
|
+
}) => Promise<T[] | null>;
|
|
11
|
+
//# sourceMappingURL=waitForElement.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waitForElement.d.ts","sourceRoot":"","sources":["../src/waitForElement.ts"],"names":[],"mappings":"AA2BA,eAAO,MAAM,cAAc,GAAU,CAAC,SAAS,WAAW,EACzD,UAAU,MAAM,EAChB,UAAU;IACT,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,KACC,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAMpB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAU,CAAC,SAAS,WAAW,EAC1D,UAAU,MAAM,GAAG,MAAM,EAAE,EAC3B,UAAU;IACT,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB,KACC,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAYpB,CAAC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { isNonNullable } from './isNonNullable.js';
|
|
2
|
+
import { sleep } from './sleep.js';
|
|
3
|
+
const poll = async (handler, options) => {
|
|
4
|
+
const { timeout = 10000, jitter = 0 } = options ?? {};
|
|
5
|
+
let elapsedTime = 0;
|
|
6
|
+
const intervalTime = 100;
|
|
7
|
+
for (;;) {
|
|
8
|
+
const result = handler();
|
|
9
|
+
if (result !== null) {
|
|
10
|
+
return result;
|
|
11
|
+
}
|
|
12
|
+
if (elapsedTime >= timeout) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
await sleep(intervalTime, jitter);
|
|
16
|
+
elapsedTime += intervalTime;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
export const waitForElement = async (selector, options) => {
|
|
20
|
+
const root = options?.parent ?? document;
|
|
21
|
+
return poll(() => {
|
|
22
|
+
const elements = root.querySelectorAll(selector);
|
|
23
|
+
return elements.length > 0 ? Array.from(elements) : null;
|
|
24
|
+
}, options);
|
|
25
|
+
};
|
|
26
|
+
export const waitForElements = async (selector, options) => {
|
|
27
|
+
const root = options?.parent ?? document;
|
|
28
|
+
const selectors = Array.isArray(selector) ? selector : [selector];
|
|
29
|
+
return poll(() => {
|
|
30
|
+
for (const selector of selectors) {
|
|
31
|
+
const elements = root.querySelectorAll(selector);
|
|
32
|
+
if (elements.length > 0) {
|
|
33
|
+
return Array.from(elements).filter(isNonNullable);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return null;
|
|
37
|
+
}, options);
|
|
38
|
+
};
|
|
39
|
+
//# sourceMappingURL=waitForElement.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"waitForElement.js","sourceRoot":"","sources":["../src/waitForElement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,IAAI,GAAG,KAAK,EACjB,OAAuB,EACvB,OAGC,EACmB,EAAE;IACtB,MAAM,EAAE,OAAO,GAAG,KAAK,EAAE,MAAM,GAAG,CAAC,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IACtD,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,MAAM,YAAY,GAAG,GAAG,CAAC;IAEzB,SAAS,CAAC;QACT,MAAM,MAAM,GAAG,OAAO,EAAE,CAAC;QACzB,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACrB,OAAO,MAAM,CAAC;QACf,CAAC;QACD,IAAI,WAAW,IAAI,OAAO,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC;QACb,CAAC;QACD,MAAM,KAAK,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QAClC,WAAW,IAAI,YAAY,CAAC;IAC7B,CAAC;AACF,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EAClC,QAAgB,EAChB,OAIC,EACqB,EAAE;IACxB,MAAM,IAAI,GAAG,OAAO,EAAE,MAAM,IAAI,QAAQ,CAAC;IACzC,OAAO,IAAI,CAAC,GAAG,EAAE;QAChB,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAI,QAAQ,CAAC,CAAC;QACpD,OAAO,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAC1D,CAAC,EAAE,OAAO,CAAC,CAAC;AACb,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EACnC,QAA2B,EAC3B,OAIC,EACqB,EAAE;IACxB,MAAM,IAAI,GAAG,OAAO,EAAE,MAAM,IAAI,QAAQ,CAAC;IACzC,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAClE,OAAO,IAAI,CAAC,GAAG,EAAE;QAChB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAI,QAAQ,CAAC,CAAC;YACpD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACzB,OAAO,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YACnD,CAAC;QACF,CAAC;QACD,OAAO,IAAI,CAAC;IACb,CAAC,EAAE,OAAO,CAAC,CAAC;AACb,CAAC,CAAC"}
|
package/lib/zlib.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zlib.d.ts","sourceRoot":"","sources":["../src/zlib.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,QAAQ,GAAU,CAAC,EAAE,MAAM,CAAC,KAAG,OAAO,CAAC,MAAM,CAA+C,CAAC;AAE1G,eAAO,MAAM,UAAU,GAAU,CAAC,EAAE,MAAM,MAAM,KAAG,OAAO,CAAC,CAAC,CAG3D,CAAC"}
|
package/lib/zlib.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { promisify } from 'node:util';
|
|
2
|
+
import zlib from 'node:zlib';
|
|
3
|
+
const deflate = promisify(zlib.deflate);
|
|
4
|
+
const inflate = promisify(zlib.inflate);
|
|
5
|
+
export const compress = async (data) => deflate(Buffer.from(JSON.stringify(data)));
|
|
6
|
+
export const decompress = async (data) => {
|
|
7
|
+
const result = await inflate(data);
|
|
8
|
+
return JSON.parse(result.toString());
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=zlib.js.map
|
package/lib/zlib.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zlib.js","sourceRoot":"","sources":["../src/zlib.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxC,MAAM,OAAO,GAAG,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAExC,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAAK,IAAO,EAAmB,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAE1G,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAAK,IAAY,EAAc,EAAE;IAC/D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;AACtC,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sapphire-sh/utils",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.64.0",
|
|
4
4
|
"description": "@sapphire-sh/utils",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -36,14 +36,15 @@
|
|
|
36
36
|
},
|
|
37
37
|
"./tsconfig": "./tsconfig.json",
|
|
38
38
|
"./tsconfig.json": "./tsconfig.json",
|
|
39
|
-
"./tsconfig.
|
|
40
|
-
"./tsconfig.
|
|
39
|
+
"./tsconfig.cjs": "./tsconfig.cjs.json",
|
|
40
|
+
"./tsconfig.cjs.json": "./tsconfig.cjs.json"
|
|
41
41
|
},
|
|
42
42
|
"files": [
|
|
43
43
|
"bin/**/*",
|
|
44
44
|
"lib/**/*",
|
|
45
45
|
"templates",
|
|
46
|
-
"tsconfig.json"
|
|
46
|
+
"tsconfig.json",
|
|
47
|
+
"tsconfig.cjs.json"
|
|
47
48
|
],
|
|
48
49
|
"scripts": {
|
|
49
50
|
"bootstrap": "node bin/sapphire-bootstrap.js",
|