@activeledger/activeutilities 2.13.5 → 4.3.3

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/es/clone.d.ts ADDED
@@ -0,0 +1,17 @@
1
+ /// <reference types="node" />
2
+ export declare const COMPRESSION_THRESHOLD = 2048;
3
+ export interface SerializationOptions {
4
+ enableCompression?: boolean;
5
+ }
6
+ export declare const DEFAULT_SERIALIZATION_OPTIONS: SerializationOptions;
7
+ export declare enum SerializationType {
8
+ Uncompressed = 0,
9
+ Gzip = 1
10
+ }
11
+ export declare class ActiveClone {
12
+ static clone<T>(obj: T): T;
13
+ static serialize<T>(obj: T, options?: SerializationOptions): Promise<Buffer>;
14
+ private static prefixFlag;
15
+ static deserialize<T>(buffer: Buffer): Promise<T>;
16
+ }
17
+ //# sourceMappingURL=clone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clone.d.ts","sourceRoot":"","sources":["../src/clone.ts"],"names":[],"mappings":";AAgCA,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,6BAA6B,EAAE,oBAE3C,CAAC;AAEF,oBAAY,iBAAiB;IAC3B,YAAY,IAAO;IACnB,IAAI,IAAO;CACZ;AAQD,qBAAa,WAAW;WASR,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;WAab,SAAS,CAAC,CAAC,EAC7B,GAAG,EAAE,CAAC,EACN,OAAO,GAAE,oBAAoD,GAC5D,OAAO,CAAC,MAAM,CAAC;IAqBlB,OAAO,CAAC,MAAM,CAAC,UAAU;WAeL,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CA6B/D"}
package/es/clone.js ADDED
@@ -0,0 +1,58 @@
1
+ import { serialize, deserialize } from "v8";
2
+ import { Packr } from "msgpackr";
3
+ import { ActiveGZip } from "./gzip";
4
+ const packr = new Packr({
5
+ useRecords: true,
6
+ structuredClone: true,
7
+ });
8
+ export const COMPRESSION_THRESHOLD = 2048;
9
+ export const DEFAULT_SERIALIZATION_OPTIONS = {
10
+ enableCompression: true,
11
+ };
12
+ export var SerializationType;
13
+ (function (SerializationType) {
14
+ SerializationType[SerializationType["Uncompressed"] = 0] = "Uncompressed";
15
+ SerializationType[SerializationType["Gzip"] = 1] = "Gzip";
16
+ })(SerializationType || (SerializationType = {}));
17
+ export class ActiveClone {
18
+ static clone(obj) {
19
+ return deserialize(serialize(obj));
20
+ }
21
+ static async serialize(obj, options = DEFAULT_SERIALIZATION_OPTIONS) {
22
+ const binary = packr.pack(obj);
23
+ if (options.enableCompression && binary.length > COMPRESSION_THRESHOLD) {
24
+ const compressed = await ActiveGZip.gzip(binary);
25
+ return this.prefixFlag(SerializationType.Gzip, compressed);
26
+ }
27
+ return this.prefixFlag(SerializationType.Uncompressed, binary);
28
+ }
29
+ static prefixFlag(flag, data) {
30
+ const result = Buffer.allocUnsafe(data.length + 1);
31
+ result[0] = flag;
32
+ data.copy(result, 1);
33
+ return result;
34
+ }
35
+ static async deserialize(buffer) {
36
+ if (buffer.length > 0 && buffer[0] === 255) {
37
+ try {
38
+ return deserialize(buffer);
39
+ }
40
+ catch (err) {
41
+ throw err;
42
+ }
43
+ }
44
+ if (buffer.length > 0 && (buffer[0] === SerializationType.Uncompressed || buffer[0] === SerializationType.Gzip)) {
45
+ let data = buffer.slice(1);
46
+ if (buffer[0] === SerializationType.Gzip) {
47
+ data = await ActiveGZip.ungzip(data);
48
+ }
49
+ try {
50
+ return packr.unpack(data);
51
+ }
52
+ catch {
53
+ }
54
+ }
55
+ return JSON.parse(buffer.toString());
56
+ }
57
+ }
58
+ //# sourceMappingURL=clone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clone.js","sourceRoot":"","sources":["../src/clone.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC;IACtB,UAAU,EAAE,IAAI;IAChB,eAAe,EAAE,IAAI;CACtB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAM1C,MAAM,CAAC,MAAM,6BAA6B,GAAyB;IACjE,iBAAiB,EAAE,IAAI;CACxB,CAAC;AAEF,MAAM,CAAN,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,yEAAmB,CAAA;IACnB,yDAAW,CAAA;AACb,CAAC,EAHW,iBAAiB,KAAjB,iBAAiB,QAG5B;AAQD,MAAM,OAAO,WAAW;IASf,MAAM,CAAC,KAAK,CAAI,GAAM;QAC3B,OAAO,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;IAWM,MAAM,CAAC,KAAK,CAAC,SAAS,CAC3B,GAAM,EACN,UAAgC,6BAA6B;QAE7D,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE/B,IAAI,OAAO,CAAC,iBAAiB,IAAI,MAAM,CAAC,MAAM,GAAG,qBAAqB,EAAE;YACtE,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SAC5D;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAYO,MAAM,CAAC,UAAU,CAAC,IAAuB,EAAE,IAAY;QAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,MAAM,CAAC;IAChB,CAAC;IAUM,MAAM,CAAC,KAAK,CAAC,WAAW,CAAI,MAAc;QAE/C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC1C,IAAI;gBACF,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;aAC5B;YAAC,OAAO,GAAG,EAAE;gBACZ,MAAM,GAAG,CAAC;aACX;SACF;QAGD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,IAAI,CAAC,EAAE;YAC7G,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAG3B,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,IAAI,EAAE;gBACtC,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aACxC;YAED,IAAI;gBACA,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAC7B;YAAC,MAAM;aAEP;SACJ;QAGD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvC,CAAC;CACF"}
package/es/frame.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ /// <reference types="node" />
2
+ export declare class ActiveFrame {
3
+ private static peek;
4
+ static read(chunks: Buffer[], bufferLength: number): {
5
+ item: Buffer;
6
+ remaining: Buffer;
7
+ consumed: number;
8
+ } | null;
9
+ }
10
+ //# sourceMappingURL=frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../src/frame.ts"],"names":[],"mappings":";AA6BA,qBAAa,WAAW;IAatB,OAAO,CAAC,MAAM,CAAC,IAAI;WAqBL,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAuBzH"}
package/es/frame.js ADDED
@@ -0,0 +1,31 @@
1
+ export class ActiveFrame {
2
+ static peek(chunks, n) {
3
+ if (chunks.length > 0 && chunks[0].length >= n) {
4
+ return chunks[0];
5
+ }
6
+ let total = 0;
7
+ let end = 0;
8
+ while (end < chunks.length && total < n) {
9
+ total += chunks[end].length;
10
+ end++;
11
+ }
12
+ return Buffer.concat(chunks.slice(0, end));
13
+ }
14
+ static read(chunks, bufferLength) {
15
+ if (bufferLength < 4)
16
+ return null;
17
+ const length = this.peek(chunks, 4).readUInt32BE(0);
18
+ if (bufferLength < 4 + length) {
19
+ return null;
20
+ }
21
+ const fullBuffer = Buffer.concat(chunks);
22
+ const item = fullBuffer.slice(4, 4 + length);
23
+ const remaining = fullBuffer.slice(4 + length);
24
+ return {
25
+ item,
26
+ remaining,
27
+ consumed: 4 + length,
28
+ };
29
+ }
30
+ }
31
+ //# sourceMappingURL=frame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame.js","sourceRoot":"","sources":["../src/frame.ts"],"names":[],"mappings":"AA6BA,MAAM,OAAO,WAAW;IAad,MAAM,CAAC,IAAI,CAAC,MAAgB,EAAE,CAAS;QAC7C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;YAC9C,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;SAClB;QACD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,OAAO,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC,EAAE;YACvC,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;YAC5B,GAAG,EAAE,CAAC;SACP;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;IAUM,MAAM,CAAC,IAAI,CAAC,MAAgB,EAAE,YAAoB;QACvD,IAAI,YAAY,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAElC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAEpD,IAAI,YAAY,GAAG,CAAC,GAAG,MAAM,EAAE;YAM7B,OAAO,IAAI,CAAC;SACb;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;QAC/C,OAAO;YACL,IAAI;YACJ,SAAS;YACT,QAAQ,EAAE,CAAC,GAAG,MAAM;SACrB,CAAC;IACJ,CAAC;CACF"}
package/es/gzip.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  export declare class ActiveGZip {
3
- static gzip(data: string | Buffer): Promise<Buffer>;
4
- static ungzip(data: Buffer): Promise<Buffer>;
3
+ static gzip: (data: string | Buffer) => Promise<Buffer>;
4
+ static ungzip: (data: Buffer) => Promise<Buffer>;
5
5
  }
6
6
  //# sourceMappingURL=gzip.d.ts.map
package/es/gzip.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"gzip.d.ts","sourceRoot":"","sources":["../src/gzip.ts"],"names":[],"mappings":";AA+BA,qBAAa,UAAU;WASP,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;WAoB5C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAWpD"}
1
+ {"version":3,"file":"gzip.d.ts","sourceRoot":"","sources":["../src/gzip.ts"],"names":[],"mappings":";AAgCA,qBAAa,UAAU;IAItB,OAAc,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAwB;IAKtF,OAAc,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAA0B;CACjF"}
package/es/gzip.js CHANGED
@@ -1,28 +1,7 @@
1
1
  import * as zlib from "zlib";
2
+ import { promisify } from "util";
2
3
  export class ActiveGZip {
3
- static gzip(data) {
4
- return new Promise((resolve, reject) => {
5
- zlib.gzip(data, (error, data) => {
6
- if (!error) {
7
- resolve(data);
8
- }
9
- else {
10
- reject(error);
11
- }
12
- });
13
- });
14
- }
15
- static ungzip(data) {
16
- return new Promise((resolve, reject) => {
17
- zlib.gunzip(data, (error, data) => {
18
- if (!error) {
19
- resolve(data);
20
- }
21
- else {
22
- reject(error);
23
- }
24
- });
25
- });
26
- }
4
+ static gzip = promisify(zlib.gzip);
5
+ static ungzip = promisify(zlib.gunzip);
27
6
  }
28
7
  //# sourceMappingURL=gzip.js.map
package/es/gzip.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"gzip.js","sourceRoot":"","sources":["../src/gzip.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAQ7B,MAAM,OAAO,UAAU;IASd,MAAM,CAAC,IAAI,CAAC,IAAqB;QACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBAC9B,IAAI,CAAC,KAAK,EAAE;oBACV,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;qBAAM;oBACL,MAAM,CAAC,KAAK,CAAC,CAAC;iBACf;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAUM,MAAM,CAAC,MAAM,CAAC,IAAY;QAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBAChC,IAAI,CAAC,KAAK,EAAE;oBACV,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;qBAAM;oBACL,MAAM,CAAC,KAAK,CAAC,CAAC;iBACf;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"gzip.js","sourceRoot":"","sources":["../src/gzip.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAQjC,MAAM,OAAO,UAAU;IAIf,MAAM,CAAC,IAAI,GAA+C,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAK/E,MAAM,CAAC,MAAM,GAAsC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC"}
package/es/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  import { ActiveRequest } from "./request";
2
2
  import { ActiveGZip } from "./gzip";
3
- export { ActiveRequest, ActiveGZip };
3
+ import { ActiveClone } from "./clone";
4
+ export { ActiveRequest, ActiveGZip, ActiveClone, ActiveFrame };
5
+ import { ActiveFrame } from "./frame";
4
6
  //# sourceMappingURL=index.d.ts.map
package/es/index.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
package/es/index.js CHANGED
@@ -1,4 +1,6 @@
1
1
  import { ActiveRequest } from "./request";
2
2
  import { ActiveGZip } from "./gzip";
3
- export { ActiveRequest, ActiveGZip };
3
+ import { ActiveClone } from "./clone";
4
+ export { ActiveRequest, ActiveGZip, ActiveClone, ActiveFrame };
5
+ import { ActiveFrame } from "./frame";
4
6
  //# sourceMappingURL=index.js.map
package/es/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
package/es/request.d.ts CHANGED
@@ -1,9 +1,8 @@
1
1
  interface IHTTPResponse {
2
- raw: string;
3
- data?: unknown;
2
+ data: unknown;
4
3
  }
5
4
  export declare class ActiveRequest {
6
- static send(reqUrl: string, type: string, header?: string[], data?: any, enableGZip?: boolean): Promise<IHTTPResponse>;
5
+ static send(reqUrl: string, type: string, header?: string[], data?: any, enableGZip?: boolean, timeout?: number): Promise<IHTTPResponse>;
7
6
  }
8
7
  export {};
9
8
  //# sourceMappingURL=request.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"AAiCA,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAQD,qBAAa,aAAa;WAaV,IAAI,CAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,IAAI,CAAC,EAAE,GAAG,EACV,UAAU,GAAE,OAAe,GAC1B,OAAO,CAAC,aAAa,CAAC;CAgK1B"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"AA8BA,UAAU,aAAa;IAErB,IAAI,EAAE,OAAO,CAAC;CACf;AAwBD,qBAAa,aAAa;WACJ,IAAI,CACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,IAAI,CAAC,EAAE,GAAG,EACV,UAAU,GAAE,OAAe,EAC3B,OAAO,GAAE,MAAY,GACpB,OAAO,CAAC,aAAa,CAAC;CA0F1B"}
package/es/request.js CHANGED
@@ -1,117 +1,68 @@
1
- import * as http from "http";
2
- import * as https from "https";
3
- import * as url from "url";
4
1
  import { ActiveGZip } from "./gzip";
2
+ import { request, setGlobalDispatcher, Agent } from "undici";
3
+ const GZIP_MIN_BYTES = 1024;
4
+ setGlobalDispatcher(new Agent({
5
+ connect: {
6
+ rejectUnauthorized: false,
7
+ },
8
+ keepAliveTimeout: 30000,
9
+ }));
5
10
  export class ActiveRequest {
6
- static send(reqUrl, type, header, data, enableGZip = false) {
7
- return new Promise(async (resolve, reject) => {
8
- const urlParsed = url.parse(reqUrl, false);
9
- const lib = reqUrl.startsWith("https") ? https : http;
10
- let options = {
11
- hostname: urlParsed.hostname,
12
- path: urlParsed.path,
13
- port: urlParsed.port,
14
- method: type.toUpperCase(),
15
- headers: {},
16
- };
17
- if (enableGZip) {
18
- options.headers["Accept-Encoding"] = "gzip";
19
- }
20
- if (header) {
21
- let i = header.length;
22
- while (i--) {
23
- const [name, value] = header[i].split(":");
24
- options.headers[name] = value;
11
+ static async send(reqUrl, type, header, data, enableGZip = false, timeout = 300) {
12
+ timeout = timeout * 1000;
13
+ const options = {
14
+ method: type.toUpperCase(),
15
+ headers: {},
16
+ headersTimeout: timeout,
17
+ bodyTimeout: timeout,
18
+ };
19
+ if (enableGZip) {
20
+ options.headers["Accept-Encoding"] = "gzip";
21
+ }
22
+ let bundled = false;
23
+ if (header) {
24
+ for (let i = header.length; i--;) {
25
+ const [name, value] = header[i].split(":");
26
+ options.headers[name] = value;
27
+ if (!bundled && name == "X-Bundle") {
28
+ bundled = true;
25
29
  }
26
30
  }
27
- if (data && (options.method == "POST" || options.method == "PUT")) {
28
- if (typeof data === "object") {
29
- data = Buffer.from(JSON.stringify(data), "utf8");
30
- options.headers["Content-Type"] = "application/json";
31
- }
32
- if (enableGZip) {
33
- data = await ActiveGZip.gzip(data);
34
- options.headers["Content-Encoding"] = "gzip";
35
- }
36
- options.headers["Content-Length"] = data.length;
31
+ }
32
+ if (data && (options.method == "POST" || options.method == "PUT")) {
33
+ if (typeof data === "object") {
34
+ data = Buffer.from(JSON.stringify(data), "utf8");
35
+ options.headers["content-type"] = "application/json";
36
+ }
37
+ if (enableGZip && data.length >= GZIP_MIN_BYTES) {
38
+ data = await ActiveGZip.gzip(data);
39
+ options.headers["content-encoding"] = "gzip";
37
40
  }
38
- const request = lib.request(options, (response) => {
39
- const body = [];
40
- const heartBeats = ["\0", "\n"];
41
- response.on("data", (chunk) => {
42
- if (chunk.length > 1 || !heartBeats.includes(chunk.toString())) {
43
- body.push(chunk);
44
- }
45
- });
46
- response.on("end", async () => {
47
- var _a;
48
- if (body.length) {
49
- try {
50
- const bodyBuffer = Buffer.concat(body);
51
- let gdata;
52
- if (response.headers["content-encoding"] == "gzip") {
53
- gdata = await ActiveGZip.ungzip(bodyBuffer);
54
- }
55
- let raw = (gdata || bodyBuffer).toString();
56
- if (response.statusCode &&
57
- (response.statusCode < 200 || response.statusCode > 299)) {
58
- throw {
59
- name: "ActiveError",
60
- message: `URL Request Failed : ${reqUrl} - ${response.statusCode}`,
61
- body: raw,
62
- stack: new Error().stack,
63
- };
64
- }
65
- if (((_a = response.headers["content-type"]) === null || _a === void 0 ? void 0 : _a.indexOf("application/json")) !== -1) {
66
- return resolve({
67
- raw,
68
- data: JSON.parse(raw),
69
- });
70
- }
71
- else {
72
- return resolve({
73
- raw,
74
- });
75
- }
76
- }
77
- catch (error) {
78
- if (error.name && error.message) {
79
- return reject(error);
80
- }
81
- else {
82
- return reject(new Error("Failed to parse body"));
83
- }
84
- }
85
- }
86
- else {
87
- if (response.statusCode &&
88
- (response.statusCode < 200 || response.statusCode > 299)) {
89
- return reject({
90
- name: "ActiveError",
91
- message: `URL Request Failed : ${reqUrl} - ${response.statusCode}`,
92
- body: "",
93
- stack: new Error().stack,
94
- });
95
- }
96
- return resolve({ raw: "" });
97
- }
98
- });
99
- });
100
- request.on("error", (err) => {
101
- if (request.reusedSocket && err.code === "ECONNRESET") {
102
- this.send(reqUrl, type, header, data, enableGZip)
103
- .then((r) => resolve(r))
104
- .catch((e) => reject(e));
41
+ options.body = data;
42
+ }
43
+ try {
44
+ const { headers, body, statusCode } = await request(reqUrl, options);
45
+ try {
46
+ if (headers["content-encoding"]?.includes("gzip")) {
47
+ const data = await ActiveGZip.ungzip(Buffer.from(await body.arrayBuffer()));
48
+ return { data: JSON.parse(data.toString()) };
105
49
  }
106
50
  else {
107
- reject(err);
51
+ return { data: await body.json() };
108
52
  }
109
- });
110
- if (data && (options.method == "POST" || options.method == "PUT")) {
111
- request.write(data);
112
53
  }
113
- request.end();
114
- });
54
+ catch (e) {
55
+ return { data: null };
56
+ }
57
+ }
58
+ catch (e) {
59
+ if (!bundled) {
60
+ return { data: null };
61
+ }
62
+ else {
63
+ return { data: null };
64
+ }
65
+ }
115
66
  }
116
67
  }
117
68
  //# sourceMappingURL=request.js.map
package/es/request.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"AAuBA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,GAAG,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAkBpC,MAAM,OAAO,aAAa;IAajB,MAAM,CAAC,IAAI,CAChB,MAAc,EACd,IAAY,EACZ,MAAiB,EACjB,IAAU,EACV,aAAsB,KAAK;QAG3B,OAAO,IAAI,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;YAE3C,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YAG3C,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YAGtD,IAAI,OAAO,GAAyB;gBAClC,QAAQ,EAAE,SAAS,CAAC,QAAQ;gBAC5B,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,IAAI,EAAE,SAAS,CAAC,IAAI;gBACpB,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE;gBAC1B,OAAO,EAAE,EAAE;aACZ,CAAC;YAGF,IAAI,UAAU,EAAE;gBACb,OAAO,CAAC,OAAe,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC;aACtD;YAGD,IAAI,MAAM,EAAE;gBACV,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;gBACtB,OAAO,CAAC,EAAE,EAAE;oBAEV,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAE1C,OAAO,CAAC,OAAe,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC;iBACxC;aACF;YAGD,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE;gBAEjE,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;oBAC5B,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;oBAChD,OAAO,CAAC,OAAe,CAAC,cAAc,CAAC,GAAG,kBAAkB,CAAC;iBAC/D;gBAGD,IAAI,UAAU,EAAE;oBAEd,IAAI,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;oBAClC,OAAO,CAAC,OAAe,CAAC,kBAAkB,CAAC,GAAG,MAAM,CAAC;iBACvD;gBAGA,OAAO,CAAC,OAAe,CAAC,gBAAgB,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;aAC1D;YAGD,MAAM,OAAO,GAAwB,GAAW,CAAC,OAAO,CACtD,OAAO,EACP,CAAC,QAA8B,EAAE,EAAE;gBAEjC,MAAM,IAAI,GAAa,EAAE,CAAC;gBAG1B,MAAM,UAAU,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAGhC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;oBAEpC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,EAAE;wBAC9D,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBAClB;gBACH,CAAC,CAAC,CAAC;gBAGH,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE;;oBAC5B,IAAI,IAAI,CAAC,MAAM,EAAE;wBAEf,IAAI;4BACF,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;4BAEvC,IAAI,KAAK,CAAC;4BACV,IAAI,QAAQ,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,MAAM,EAAE;gCAClD,KAAK,GAAG,MAAM,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;6BAC7C;4BAGD,IAAI,GAAG,GAAG,CAAC,KAAK,IAAI,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;4BAE3C,IACE,QAAQ,CAAC,UAAU;gCACnB,CAAC,QAAQ,CAAC,UAAU,GAAG,GAAG,IAAI,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC,EACxD;gCACA,MAAM;oCACJ,IAAI,EAAE,aAAa;oCACnB,OAAO,EAAE,wBAAwB,MAAM,MAAM,QAAQ,CAAC,UAAU,EAAE;oCAClE,IAAI,EAAE,GAAG;oCACT,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK;iCACzB,CAAC;6BACH;4BAGD,IACE,CAAA,MAAA,QAAQ,CAAC,OAAO,CAAC,cAAc,CAAC,0CAAE,OAAO,CACvC,kBAAkB,CACnB,MAAK,CAAC,CAAC,EACR;gCACA,OAAO,OAAO,CAAC;oCACb,GAAG;oCACH,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;iCACtB,CAAC,CAAC;6BACJ;iCAAM;gCACL,OAAO,OAAO,CAAC;oCACb,GAAG;iCACJ,CAAC,CAAC;6BACJ;yBACF;wBAAC,OAAO,KAAK,EAAE;4BACd,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE;gCAC/B,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;6BACtB;iCAAM;gCACL,OAAO,MAAM,CAAC,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;6BAClD;yBACF;qBACF;yBAAM;wBAEL,IACE,QAAQ,CAAC,UAAU;4BACnB,CAAC,QAAQ,CAAC,UAAU,GAAG,GAAG,IAAI,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC,EACxD;4BACA,OAAO,MAAM,CAAC;gCACZ,IAAI,EAAE,aAAa;gCACnB,OAAO,EAAE,wBAAwB,MAAM,MAAM,QAAQ,CAAC,UAAU,EAAE;gCAClE,IAAI,EAAE,EAAE;gCACR,KAAK,EAAE,IAAI,KAAK,EAAE,CAAC,KAAK;6BACzB,CAAC,CAAC;yBACJ;wBACD,OAAO,OAAO,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;qBAC7B;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YAEF,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAA0B,EAAE,EAAE;gBACjD,IAAI,OAAO,CAAC,YAAY,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY,EAAE;oBAErD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC;yBAC9C,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;yBACvB,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC5B;qBAAM;oBACL,MAAM,CAAC,GAAG,CAAC,CAAC;iBACb;YACH,CAAC,CAAC,CAAC;YAGH,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,MAAM,IAAI,OAAO,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE;gBAEjE,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;aACrB;YAGD,OAAO,CAAC,GAAG,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"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"}
package/lib/clone.d.ts ADDED
@@ -0,0 +1,17 @@
1
+ /// <reference types="node" />
2
+ export declare const COMPRESSION_THRESHOLD = 2048;
3
+ export interface SerializationOptions {
4
+ enableCompression?: boolean;
5
+ }
6
+ export declare const DEFAULT_SERIALIZATION_OPTIONS: SerializationOptions;
7
+ export declare enum SerializationType {
8
+ Uncompressed = 0,
9
+ Gzip = 1
10
+ }
11
+ export declare class ActiveClone {
12
+ static clone<T>(obj: T): T;
13
+ static serialize<T>(obj: T, options?: SerializationOptions): Promise<Buffer>;
14
+ private static prefixFlag;
15
+ static deserialize<T>(buffer: Buffer): Promise<T>;
16
+ }
17
+ //# sourceMappingURL=clone.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clone.d.ts","sourceRoot":"","sources":["../src/clone.ts"],"names":[],"mappings":";AAgCA,eAAO,MAAM,qBAAqB,OAAO,CAAC;AAE1C,MAAM,WAAW,oBAAoB;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,eAAO,MAAM,6BAA6B,EAAE,oBAE3C,CAAC;AAEF,oBAAY,iBAAiB;IAC3B,YAAY,IAAO;IACnB,IAAI,IAAO;CACZ;AAQD,qBAAa,WAAW;WASR,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC;WAab,SAAS,CAAC,CAAC,EAC7B,GAAG,EAAE,CAAC,EACN,OAAO,GAAE,oBAAoD,GAC5D,OAAO,CAAC,MAAM,CAAC;IAqBlB,OAAO,CAAC,MAAM,CAAC,UAAU;WAeL,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;CA6B/D"}
package/lib/clone.js ADDED
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ActiveClone = exports.SerializationType = exports.DEFAULT_SERIALIZATION_OPTIONS = exports.COMPRESSION_THRESHOLD = void 0;
4
+ const v8_1 = require("v8");
5
+ const msgpackr_1 = require("msgpackr");
6
+ const gzip_1 = require("./gzip");
7
+ const packr = new msgpackr_1.Packr({
8
+ useRecords: true,
9
+ structuredClone: true,
10
+ });
11
+ exports.COMPRESSION_THRESHOLD = 2048;
12
+ exports.DEFAULT_SERIALIZATION_OPTIONS = {
13
+ enableCompression: true,
14
+ };
15
+ var SerializationType;
16
+ (function (SerializationType) {
17
+ SerializationType[SerializationType["Uncompressed"] = 0] = "Uncompressed";
18
+ SerializationType[SerializationType["Gzip"] = 1] = "Gzip";
19
+ })(SerializationType = exports.SerializationType || (exports.SerializationType = {}));
20
+ class ActiveClone {
21
+ static clone(obj) {
22
+ return (0, v8_1.deserialize)((0, v8_1.serialize)(obj));
23
+ }
24
+ static async serialize(obj, options = exports.DEFAULT_SERIALIZATION_OPTIONS) {
25
+ const binary = packr.pack(obj);
26
+ if (options.enableCompression && binary.length > exports.COMPRESSION_THRESHOLD) {
27
+ const compressed = await gzip_1.ActiveGZip.gzip(binary);
28
+ return this.prefixFlag(SerializationType.Gzip, compressed);
29
+ }
30
+ return this.prefixFlag(SerializationType.Uncompressed, binary);
31
+ }
32
+ static prefixFlag(flag, data) {
33
+ const result = Buffer.allocUnsafe(data.length + 1);
34
+ result[0] = flag;
35
+ data.copy(result, 1);
36
+ return result;
37
+ }
38
+ static async deserialize(buffer) {
39
+ if (buffer.length > 0 && buffer[0] === 255) {
40
+ try {
41
+ return (0, v8_1.deserialize)(buffer);
42
+ }
43
+ catch (err) {
44
+ throw err;
45
+ }
46
+ }
47
+ if (buffer.length > 0 && (buffer[0] === SerializationType.Uncompressed || buffer[0] === SerializationType.Gzip)) {
48
+ let data = buffer.slice(1);
49
+ if (buffer[0] === SerializationType.Gzip) {
50
+ data = await gzip_1.ActiveGZip.ungzip(data);
51
+ }
52
+ try {
53
+ return packr.unpack(data);
54
+ }
55
+ catch {
56
+ }
57
+ }
58
+ return JSON.parse(buffer.toString());
59
+ }
60
+ }
61
+ exports.ActiveClone = ActiveClone;
62
+ //# sourceMappingURL=clone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clone.js","sourceRoot":"","sources":["../src/clone.ts"],"names":[],"mappings":";;;AAuBA,2BAA4C;AAC5C,uCAAiC;AACjC,iCAAoC;AAEpC,MAAM,KAAK,GAAG,IAAI,gBAAK,CAAC;IACtB,UAAU,EAAE,IAAI;IAChB,eAAe,EAAE,IAAI;CACtB,CAAC,CAAC;AAEU,QAAA,qBAAqB,GAAG,IAAI,CAAC;AAM7B,QAAA,6BAA6B,GAAyB;IACjE,iBAAiB,EAAE,IAAI;CACxB,CAAC;AAEF,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,yEAAmB,CAAA;IACnB,yDAAW,CAAA;AACb,CAAC,EAHW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAG5B;AAQD,MAAa,WAAW;IASf,MAAM,CAAC,KAAK,CAAI,GAAM;QAC3B,OAAO,IAAA,gBAAW,EAAC,IAAA,cAAS,EAAC,GAAG,CAAC,CAAC,CAAC;IACrC,CAAC;IAWM,MAAM,CAAC,KAAK,CAAC,SAAS,CAC3B,GAAM,EACN,UAAgC,qCAA6B;QAE7D,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAE/B,IAAI,OAAO,CAAC,iBAAiB,IAAI,MAAM,CAAC,MAAM,GAAG,6BAAqB,EAAE;YACtE,MAAM,UAAU,GAAG,MAAM,iBAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjD,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SAC5D;QAED,OAAO,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACjE,CAAC;IAYO,MAAM,CAAC,UAAU,CAAC,IAAuB,EAAE,IAAY;QAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QACrB,OAAO,MAAM,CAAC;IAChB,CAAC;IAUM,MAAM,CAAC,KAAK,CAAC,WAAW,CAAI,MAAc;QAE/C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;YAC1C,IAAI;gBACF,OAAO,IAAA,gBAAW,EAAC,MAAM,CAAC,CAAC;aAC5B;YAAC,OAAO,GAAG,EAAE;gBACZ,MAAM,GAAG,CAAC;aACX;SACF;QAGD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,IAAI,CAAC,EAAE;YAC7G,IAAI,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAG3B,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,iBAAiB,CAAC,IAAI,EAAE;gBACtC,IAAI,GAAG,MAAM,iBAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aACxC;YAED,IAAI;gBACA,OAAO,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;aAC7B;YAAC,MAAM;aAEP;SACJ;QAGD,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvC,CAAC;CACF;AA1FD,kCA0FC"}
package/lib/frame.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ /// <reference types="node" />
2
+ export declare class ActiveFrame {
3
+ private static peek;
4
+ static read(chunks: Buffer[], bufferLength: number): {
5
+ item: Buffer;
6
+ remaining: Buffer;
7
+ consumed: number;
8
+ } | null;
9
+ }
10
+ //# sourceMappingURL=frame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame.d.ts","sourceRoot":"","sources":["../src/frame.ts"],"names":[],"mappings":";AA6BA,qBAAa,WAAW;IAatB,OAAO,CAAC,MAAM,CAAC,IAAI;WAqBL,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;CAuBzH"}
package/lib/frame.js ADDED
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ActiveFrame = void 0;
4
+ class ActiveFrame {
5
+ static peek(chunks, n) {
6
+ if (chunks.length > 0 && chunks[0].length >= n) {
7
+ return chunks[0];
8
+ }
9
+ let total = 0;
10
+ let end = 0;
11
+ while (end < chunks.length && total < n) {
12
+ total += chunks[end].length;
13
+ end++;
14
+ }
15
+ return Buffer.concat(chunks.slice(0, end));
16
+ }
17
+ static read(chunks, bufferLength) {
18
+ if (bufferLength < 4)
19
+ return null;
20
+ const length = this.peek(chunks, 4).readUInt32BE(0);
21
+ if (bufferLength < 4 + length) {
22
+ return null;
23
+ }
24
+ const fullBuffer = Buffer.concat(chunks);
25
+ const item = fullBuffer.slice(4, 4 + length);
26
+ const remaining = fullBuffer.slice(4 + length);
27
+ return {
28
+ item,
29
+ remaining,
30
+ consumed: 4 + length,
31
+ };
32
+ }
33
+ }
34
+ exports.ActiveFrame = ActiveFrame;
35
+ //# sourceMappingURL=frame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frame.js","sourceRoot":"","sources":["../src/frame.ts"],"names":[],"mappings":";;;AA6BA,MAAa,WAAW;IAad,MAAM,CAAC,IAAI,CAAC,MAAgB,EAAE,CAAS;QAC7C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;YAC9C,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;SAClB;QACD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,IAAI,GAAG,GAAG,CAAC,CAAC;QACZ,OAAO,GAAG,GAAG,MAAM,CAAC,MAAM,IAAI,KAAK,GAAG,CAAC,EAAE;YACvC,KAAK,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;YAC5B,GAAG,EAAE,CAAC;SACP;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC;IAUM,MAAM,CAAC,IAAI,CAAC,MAAgB,EAAE,YAAoB;QACvD,IAAI,YAAY,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC;QAElC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;QAEpD,IAAI,YAAY,GAAG,CAAC,GAAG,MAAM,EAAE;YAM7B,OAAO,IAAI,CAAC;SACb;QAED,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;QAC/C,OAAO;YACL,IAAI;YACJ,SAAS;YACT,QAAQ,EAAE,CAAC,GAAG,MAAM;SACrB,CAAC;IACJ,CAAC;CACF;AAzDD,kCAyDC"}
package/lib/gzip.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /// <reference types="node" />
2
2
  export declare class ActiveGZip {
3
- static gzip(data: string | Buffer): Promise<Buffer>;
4
- static ungzip(data: Buffer): Promise<Buffer>;
3
+ static gzip: (data: string | Buffer) => Promise<Buffer>;
4
+ static ungzip: (data: Buffer) => Promise<Buffer>;
5
5
  }
6
6
  //# sourceMappingURL=gzip.d.ts.map
package/lib/gzip.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"gzip.d.ts","sourceRoot":"","sources":["../src/gzip.ts"],"names":[],"mappings":";AA+BA,qBAAa,UAAU;WASP,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;WAoB5C,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAWpD"}
1
+ {"version":3,"file":"gzip.d.ts","sourceRoot":"","sources":["../src/gzip.ts"],"names":[],"mappings":";AAgCA,qBAAa,UAAU;IAItB,OAAc,IAAI,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAwB;IAKtF,OAAc,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAA0B;CACjF"}
package/lib/gzip.js CHANGED
@@ -2,31 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ActiveGZip = void 0;
4
4
  const zlib = require("zlib");
5
+ const util_1 = require("util");
5
6
  class ActiveGZip {
6
- static gzip(data) {
7
- return new Promise((resolve, reject) => {
8
- zlib.gzip(data, (error, data) => {
9
- if (!error) {
10
- resolve(data);
11
- }
12
- else {
13
- reject(error);
14
- }
15
- });
16
- });
17
- }
18
- static ungzip(data) {
19
- return new Promise((resolve, reject) => {
20
- zlib.gunzip(data, (error, data) => {
21
- if (!error) {
22
- resolve(data);
23
- }
24
- else {
25
- reject(error);
26
- }
27
- });
28
- });
29
- }
7
+ static gzip = (0, util_1.promisify)(zlib.gzip);
8
+ static ungzip = (0, util_1.promisify)(zlib.gunzip);
30
9
  }
31
10
  exports.ActiveGZip = ActiveGZip;
32
11
  //# sourceMappingURL=gzip.js.map
package/lib/gzip.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"gzip.js","sourceRoot":"","sources":["../src/gzip.ts"],"names":[],"mappings":";;;AAuBA,6BAA6B;AAQ7B,MAAa,UAAU;IASd,MAAM,CAAC,IAAI,CAAC,IAAqB;QACtC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBAC9B,IAAI,CAAC,KAAK,EAAE;oBACV,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;qBAAM;oBACL,MAAM,CAAC,KAAK,CAAC,CAAC;iBACf;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAUM,MAAM,CAAC,MAAM,CAAC,IAAY;QAC/B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBAChC,IAAI,CAAC,KAAK,EAAE;oBACV,OAAO,CAAC,IAAI,CAAC,CAAC;iBACf;qBAAM;oBACL,MAAM,CAAC,KAAK,CAAC,CAAC;iBACf;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAxCD,gCAwCC"}
1
+ {"version":3,"file":"gzip.js","sourceRoot":"","sources":["../src/gzip.ts"],"names":[],"mappings":";;;AAuBA,6BAA6B;AAC7B,+BAAiC;AAQjC,MAAa,UAAU;IAIf,MAAM,CAAC,IAAI,GAA+C,IAAA,gBAAS,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAK/E,MAAM,CAAC,MAAM,GAAsC,IAAA,gBAAS,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;;AATlF,gCAUC"}
package/lib/index.d.ts CHANGED
@@ -1,4 +1,6 @@
1
1
  import { ActiveRequest } from "./request";
2
2
  import { ActiveGZip } from "./gzip";
3
- export { ActiveRequest, ActiveGZip };
3
+ import { ActiveClone } from "./clone";
4
+ export { ActiveRequest, ActiveGZip, ActiveClone, ActiveFrame };
5
+ import { ActiveFrame } from "./frame";
4
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC"}
package/lib/index.js CHANGED
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ActiveGZip = exports.ActiveRequest = void 0;
3
+ exports.ActiveFrame = exports.ActiveClone = exports.ActiveGZip = exports.ActiveRequest = void 0;
4
4
  const request_1 = require("./request");
5
5
  Object.defineProperty(exports, "ActiveRequest", { enumerable: true, get: function () { return request_1.ActiveRequest; } });
6
6
  const gzip_1 = require("./gzip");
7
7
  Object.defineProperty(exports, "ActiveGZip", { enumerable: true, get: function () { return gzip_1.ActiveGZip; } });
8
+ const clone_1 = require("./clone");
9
+ Object.defineProperty(exports, "ActiveClone", { enumerable: true, get: function () { return clone_1.ActiveClone; } });
10
+ const frame_1 = require("./frame");
11
+ Object.defineProperty(exports, "ActiveFrame", { enumerable: true, get: function () { return frame_1.ActiveFrame; } });
8
12
  //# 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":";;;AAuBA,uCAA0C;AAEjC,8FAFA,uBAAa,OAEA;AADtB,iCAAoC;AACZ,2FADf,iBAAU,OACe"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAuBA,uCAA0C;AAGjC,8FAHA,uBAAa,OAGA;AAFtB,iCAAoC;AAEZ,2FAFf,iBAAU,OAEe;AADlC,mCAAsC;AACF,4FAD3B,mBAAW,OAC2B;AAC/C,mCAAsC;AADW,4FACxC,mBAAW,OADwC"}
package/lib/request.d.ts CHANGED
@@ -1,9 +1,8 @@
1
1
  interface IHTTPResponse {
2
- raw: string;
3
- data?: unknown;
2
+ data: unknown;
4
3
  }
5
4
  export declare class ActiveRequest {
6
- static send(reqUrl: string, type: string, header?: string[], data?: any, enableGZip?: boolean): Promise<IHTTPResponse>;
5
+ static send(reqUrl: string, type: string, header?: string[], data?: any, enableGZip?: boolean, timeout?: number): Promise<IHTTPResponse>;
7
6
  }
8
7
  export {};
9
8
  //# sourceMappingURL=request.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"AAiCA,UAAU,aAAa;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAQD,qBAAa,aAAa;WAaV,IAAI,CAChB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,IAAI,CAAC,EAAE,GAAG,EACV,UAAU,GAAE,OAAe,GAC1B,OAAO,CAAC,aAAa,CAAC;CAgK1B"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"AA8BA,UAAU,aAAa;IAErB,IAAI,EAAE,OAAO,CAAC;CACf;AAwBD,qBAAa,aAAa;WACJ,IAAI,CACtB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,EAAE,EACjB,IAAI,CAAC,EAAE,GAAG,EACV,UAAU,GAAE,OAAe,EAC3B,OAAO,GAAE,MAAY,GACpB,OAAO,CAAC,aAAa,CAAC;CA0F1B"}
package/lib/request.js CHANGED
@@ -1,120 +1,71 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ActiveRequest = void 0;
4
- const http = require("http");
5
- const https = require("https");
6
- const url = require("url");
7
4
  const gzip_1 = require("./gzip");
5
+ const undici_1 = require("undici");
6
+ const GZIP_MIN_BYTES = 1024;
7
+ (0, undici_1.setGlobalDispatcher)(new undici_1.Agent({
8
+ connect: {
9
+ rejectUnauthorized: false,
10
+ },
11
+ keepAliveTimeout: 30000,
12
+ }));
8
13
  class ActiveRequest {
9
- static send(reqUrl, type, header, data, enableGZip = false) {
10
- return new Promise(async (resolve, reject) => {
11
- const urlParsed = url.parse(reqUrl, false);
12
- const lib = reqUrl.startsWith("https") ? https : http;
13
- let options = {
14
- hostname: urlParsed.hostname,
15
- path: urlParsed.path,
16
- port: urlParsed.port,
17
- method: type.toUpperCase(),
18
- headers: {},
19
- };
20
- if (enableGZip) {
21
- options.headers["Accept-Encoding"] = "gzip";
22
- }
23
- if (header) {
24
- let i = header.length;
25
- while (i--) {
26
- const [name, value] = header[i].split(":");
27
- options.headers[name] = value;
14
+ static async send(reqUrl, type, header, data, enableGZip = false, timeout = 300) {
15
+ timeout = timeout * 1000;
16
+ const options = {
17
+ method: type.toUpperCase(),
18
+ headers: {},
19
+ headersTimeout: timeout,
20
+ bodyTimeout: timeout,
21
+ };
22
+ if (enableGZip) {
23
+ options.headers["Accept-Encoding"] = "gzip";
24
+ }
25
+ let bundled = false;
26
+ if (header) {
27
+ for (let i = header.length; i--;) {
28
+ const [name, value] = header[i].split(":");
29
+ options.headers[name] = value;
30
+ if (!bundled && name == "X-Bundle") {
31
+ bundled = true;
28
32
  }
29
33
  }
30
- if (data && (options.method == "POST" || options.method == "PUT")) {
31
- if (typeof data === "object") {
32
- data = Buffer.from(JSON.stringify(data), "utf8");
33
- options.headers["Content-Type"] = "application/json";
34
- }
35
- if (enableGZip) {
36
- data = await gzip_1.ActiveGZip.gzip(data);
37
- options.headers["Content-Encoding"] = "gzip";
38
- }
39
- options.headers["Content-Length"] = data.length;
34
+ }
35
+ if (data && (options.method == "POST" || options.method == "PUT")) {
36
+ if (typeof data === "object") {
37
+ data = Buffer.from(JSON.stringify(data), "utf8");
38
+ options.headers["content-type"] = "application/json";
39
+ }
40
+ if (enableGZip && data.length >= GZIP_MIN_BYTES) {
41
+ data = await gzip_1.ActiveGZip.gzip(data);
42
+ options.headers["content-encoding"] = "gzip";
40
43
  }
41
- const request = lib.request(options, (response) => {
42
- const body = [];
43
- const heartBeats = ["\0", "\n"];
44
- response.on("data", (chunk) => {
45
- if (chunk.length > 1 || !heartBeats.includes(chunk.toString())) {
46
- body.push(chunk);
47
- }
48
- });
49
- response.on("end", async () => {
50
- var _a;
51
- if (body.length) {
52
- try {
53
- const bodyBuffer = Buffer.concat(body);
54
- let gdata;
55
- if (response.headers["content-encoding"] == "gzip") {
56
- gdata = await gzip_1.ActiveGZip.ungzip(bodyBuffer);
57
- }
58
- let raw = (gdata || bodyBuffer).toString();
59
- if (response.statusCode &&
60
- (response.statusCode < 200 || response.statusCode > 299)) {
61
- throw {
62
- name: "ActiveError",
63
- message: `URL Request Failed : ${reqUrl} - ${response.statusCode}`,
64
- body: raw,
65
- stack: new Error().stack,
66
- };
67
- }
68
- if (((_a = response.headers["content-type"]) === null || _a === void 0 ? void 0 : _a.indexOf("application/json")) !== -1) {
69
- return resolve({
70
- raw,
71
- data: JSON.parse(raw),
72
- });
73
- }
74
- else {
75
- return resolve({
76
- raw,
77
- });
78
- }
79
- }
80
- catch (error) {
81
- if (error.name && error.message) {
82
- return reject(error);
83
- }
84
- else {
85
- return reject(new Error("Failed to parse body"));
86
- }
87
- }
88
- }
89
- else {
90
- if (response.statusCode &&
91
- (response.statusCode < 200 || response.statusCode > 299)) {
92
- return reject({
93
- name: "ActiveError",
94
- message: `URL Request Failed : ${reqUrl} - ${response.statusCode}`,
95
- body: "",
96
- stack: new Error().stack,
97
- });
98
- }
99
- return resolve({ raw: "" });
100
- }
101
- });
102
- });
103
- request.on("error", (err) => {
104
- if (request.reusedSocket && err.code === "ECONNRESET") {
105
- this.send(reqUrl, type, header, data, enableGZip)
106
- .then((r) => resolve(r))
107
- .catch((e) => reject(e));
44
+ options.body = data;
45
+ }
46
+ try {
47
+ const { headers, body, statusCode } = await (0, undici_1.request)(reqUrl, options);
48
+ try {
49
+ if (headers["content-encoding"]?.includes("gzip")) {
50
+ const data = await gzip_1.ActiveGZip.ungzip(Buffer.from(await body.arrayBuffer()));
51
+ return { data: JSON.parse(data.toString()) };
108
52
  }
109
53
  else {
110
- reject(err);
54
+ return { data: await body.json() };
111
55
  }
112
- });
113
- if (data && (options.method == "POST" || options.method == "PUT")) {
114
- request.write(data);
115
56
  }
116
- request.end();
117
- });
57
+ catch (e) {
58
+ return { data: null };
59
+ }
60
+ }
61
+ catch (e) {
62
+ if (!bundled) {
63
+ return { data: null };
64
+ }
65
+ else {
66
+ return { data: null };
67
+ }
68
+ }
118
69
  }
119
70
  }
120
71
  exports.ActiveRequest = ActiveRequest;
@@ -1 +1 @@
1
- {"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@activeledger/activeutilities",
3
- "version": "2.13.5",
3
+ "version": "4.3.3",
4
4
  "description": "This package manages shared classes between Activeledger and Activetoolkits",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -45,5 +45,9 @@
45
45
  "types": "./lib/index.d.ts",
46
46
  "jsnext:main": "./es/index.js",
47
47
  "module": "./es/index.js",
48
- "gitHead": "cdc4e768cef4d172886253fb01d210cceb301d0b"
48
+ "dependencies": {
49
+ "msgpackr": "^2.0.1",
50
+ "undici": "6.18.2"
51
+ },
52
+ "gitHead": "a999042fae25fdf0bc5779b9ff2823a05d186e61"
49
53
  }