@activeledger/activeutilities 4.5.17 → 4.6.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.
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"AA8BA,UAAU,aAAa;IAErB,IAAI,EAAE,OAAO,CAAC;CACf;AAiBD,eAAO,MAAM,sBAAsB,QAAS,CAAC;AA+B7C,eAAO,MAAM,kBAAkB;;;;;;CAS9B,CAAC;AAiBF,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"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"AA8BA,UAAU,aAAa;IAErB,IAAI,EAAE,OAAO,CAAC;CACf;AAiBD,eAAO,MAAM,sBAAsB,QAAS,CAAC;AA+B7C,eAAO,MAAM,kBAAkB;;;;;;CAS9B,CAAC;AAqCF,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;CA8I1B"}
package/es/request.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { ActiveGZip } from "./gzip";
2
- import { request, setGlobalDispatcher, Agent } from "undici";
2
+ import { setGlobalDispatcher, getGlobalDispatcher, Agent } from "undici";
3
3
  const GZIP_MIN_BYTES = 1024;
4
4
  export const SERVER_IDLE_TIMEOUT_MS = 10_000;
5
5
  const CLIENT_IDLE_TIMEOUT_MS = 4_000;
@@ -11,62 +11,115 @@ export const DISPATCHER_OPTIONS = {
11
11
  keepAliveMaxTimeout: CLIENT_IDLE_TIMEOUT_MS,
12
12
  };
13
13
  setGlobalDispatcher(new Agent(DISPATCHER_OPTIONS));
14
+ function rawHeader(headers, name) {
15
+ if (!headers)
16
+ return undefined;
17
+ for (let i = 0; i < headers.length - 1; i += 2) {
18
+ if (String(headers[i]).toLowerCase() === name)
19
+ return String(headers[i + 1]);
20
+ }
21
+ return undefined;
22
+ }
14
23
  export class ActiveRequest {
15
24
  static async send(reqUrl, type, header, data, enableGZip = false, timeout = 300) {
16
25
  timeout = timeout * 1000;
17
- const options = {
18
- method: type.toUpperCase(),
19
- headers: {},
20
- headersTimeout: timeout,
21
- bodyTimeout: timeout,
22
- };
26
+ const headers = {};
23
27
  if (enableGZip) {
24
- options.headers["Accept-Encoding"] = "gzip";
28
+ headers["Accept-Encoding"] = "gzip";
25
29
  }
26
30
  let bundled = false;
27
31
  if (header) {
28
32
  for (let i = header.length; i--;) {
29
33
  const [name, value] = header[i].split(":");
30
- options.headers[name] = value;
34
+ headers[name] = value;
31
35
  if (!bundled && name == "X-Bundle") {
32
36
  bundled = true;
33
37
  }
34
38
  }
35
39
  }
36
- if (data && (options.method == "POST" || options.method == "PUT")) {
40
+ const method = type.toUpperCase();
41
+ let body;
42
+ if (data && (method == "POST" || method == "PUT")) {
37
43
  if (typeof data === "object") {
38
44
  data = Buffer.from(JSON.stringify(data), "utf8");
39
- options.headers["content-type"] = "application/json";
45
+ headers["content-type"] = "application/json";
40
46
  }
41
47
  if (enableGZip && data.length >= GZIP_MIN_BYTES) {
42
48
  data = await ActiveGZip.gzip(data);
43
- options.headers["content-encoding"] = "gzip";
49
+ headers["content-encoding"] = "gzip";
44
50
  }
45
- options.body = data;
51
+ body = data;
46
52
  }
53
+ let origin;
54
+ let path;
47
55
  try {
48
- const { headers, body, statusCode } = await request(reqUrl, options);
49
- try {
50
- if (headers["content-encoding"]?.includes("gzip")) {
51
- const data = await ActiveGZip.ungzip(Buffer.from(await body.arrayBuffer()));
52
- return { data: JSON.parse(data.toString()) };
53
- }
54
- else {
55
- return { data: await body.json() };
56
- }
57
- }
58
- catch (e) {
59
- return { data: null };
60
- }
56
+ const parsed = new URL(reqUrl);
57
+ origin = parsed.origin;
58
+ path = parsed.pathname + parsed.search;
61
59
  }
62
- catch (e) {
63
- if (!bundled) {
64
- return { data: null };
65
- }
66
- else {
67
- return { data: null };
68
- }
60
+ catch {
61
+ return { data: null };
69
62
  }
63
+ return new Promise((resolve) => {
64
+ const chunks = [];
65
+ let encoding;
66
+ let settled = false;
67
+ const done = (value) => {
68
+ if (settled)
69
+ return;
70
+ settled = true;
71
+ resolve(value);
72
+ };
73
+ getGlobalDispatcher().dispatch({
74
+ origin,
75
+ path,
76
+ method: method,
77
+ headers,
78
+ body,
79
+ headersTimeout: timeout,
80
+ bodyTimeout: timeout,
81
+ }, {
82
+ onConnect: () => { },
83
+ onHeaders: (_statusCode, rawHeaders) => {
84
+ encoding = rawHeader(rawHeaders, "content-encoding");
85
+ return true;
86
+ },
87
+ onData: (chunk) => {
88
+ chunks.push(chunk);
89
+ return true;
90
+ },
91
+ onComplete: () => {
92
+ const raw = chunks.length === 1 ? chunks[0] : Buffer.concat(chunks);
93
+ if (encoding?.includes("gzip")) {
94
+ ActiveGZip.ungzip(raw)
95
+ .then((plain) => {
96
+ try {
97
+ done({ data: JSON.parse(plain.toString()) });
98
+ }
99
+ catch {
100
+ done({ data: null });
101
+ }
102
+ })
103
+ .catch(() => done({ data: null }));
104
+ return;
105
+ }
106
+ try {
107
+ done({ data: JSON.parse(raw.toString()) });
108
+ }
109
+ catch {
110
+ done({ data: null });
111
+ }
112
+ },
113
+ onError: () => {
114
+ if (!bundled) {
115
+ done({ data: null });
116
+ }
117
+ else {
118
+ done({ data: null });
119
+ }
120
+ },
121
+ });
122
+ });
70
123
  }
71
124
  }
72
125
  //# 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":"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"}
1
+ {"version":3,"file":"request.js","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"AA8BA,UAAU,aAAa;IAErB,IAAI,EAAE,OAAO,CAAC;CACf;AAiBD,eAAO,MAAM,sBAAsB,QAAS,CAAC;AA+B7C,eAAO,MAAM,kBAAkB;;;;;;CAS9B,CAAC;AAiBF,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"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/request.ts"],"names":[],"mappings":"AA8BA,UAAU,aAAa;IAErB,IAAI,EAAE,OAAO,CAAC;CACf;AAiBD,eAAO,MAAM,sBAAsB,QAAS,CAAC;AA+B7C,eAAO,MAAM,kBAAkB;;;;;;CAS9B,CAAC;AAqCF,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;CA8I1B"}
package/lib/request.js CHANGED
@@ -14,62 +14,115 @@ exports.DISPATCHER_OPTIONS = {
14
14
  keepAliveMaxTimeout: CLIENT_IDLE_TIMEOUT_MS,
15
15
  };
16
16
  (0, undici_1.setGlobalDispatcher)(new undici_1.Agent(exports.DISPATCHER_OPTIONS));
17
+ function rawHeader(headers, name) {
18
+ if (!headers)
19
+ return undefined;
20
+ for (let i = 0; i < headers.length - 1; i += 2) {
21
+ if (String(headers[i]).toLowerCase() === name)
22
+ return String(headers[i + 1]);
23
+ }
24
+ return undefined;
25
+ }
17
26
  class ActiveRequest {
18
27
  static async send(reqUrl, type, header, data, enableGZip = false, timeout = 300) {
19
28
  timeout = timeout * 1000;
20
- const options = {
21
- method: type.toUpperCase(),
22
- headers: {},
23
- headersTimeout: timeout,
24
- bodyTimeout: timeout,
25
- };
29
+ const headers = {};
26
30
  if (enableGZip) {
27
- options.headers["Accept-Encoding"] = "gzip";
31
+ headers["Accept-Encoding"] = "gzip";
28
32
  }
29
33
  let bundled = false;
30
34
  if (header) {
31
35
  for (let i = header.length; i--;) {
32
36
  const [name, value] = header[i].split(":");
33
- options.headers[name] = value;
37
+ headers[name] = value;
34
38
  if (!bundled && name == "X-Bundle") {
35
39
  bundled = true;
36
40
  }
37
41
  }
38
42
  }
39
- if (data && (options.method == "POST" || options.method == "PUT")) {
43
+ const method = type.toUpperCase();
44
+ let body;
45
+ if (data && (method == "POST" || method == "PUT")) {
40
46
  if (typeof data === "object") {
41
47
  data = Buffer.from(JSON.stringify(data), "utf8");
42
- options.headers["content-type"] = "application/json";
48
+ headers["content-type"] = "application/json";
43
49
  }
44
50
  if (enableGZip && data.length >= GZIP_MIN_BYTES) {
45
51
  data = await gzip_1.ActiveGZip.gzip(data);
46
- options.headers["content-encoding"] = "gzip";
52
+ headers["content-encoding"] = "gzip";
47
53
  }
48
- options.body = data;
54
+ body = data;
49
55
  }
56
+ let origin;
57
+ let path;
50
58
  try {
51
- const { headers, body, statusCode } = await (0, undici_1.request)(reqUrl, options);
52
- try {
53
- if (headers["content-encoding"]?.includes("gzip")) {
54
- const data = await gzip_1.ActiveGZip.ungzip(Buffer.from(await body.arrayBuffer()));
55
- return { data: JSON.parse(data.toString()) };
56
- }
57
- else {
58
- return { data: await body.json() };
59
- }
60
- }
61
- catch (e) {
62
- return { data: null };
63
- }
59
+ const parsed = new URL(reqUrl);
60
+ origin = parsed.origin;
61
+ path = parsed.pathname + parsed.search;
64
62
  }
65
- catch (e) {
66
- if (!bundled) {
67
- return { data: null };
68
- }
69
- else {
70
- return { data: null };
71
- }
63
+ catch {
64
+ return { data: null };
72
65
  }
66
+ return new Promise((resolve) => {
67
+ const chunks = [];
68
+ let encoding;
69
+ let settled = false;
70
+ const done = (value) => {
71
+ if (settled)
72
+ return;
73
+ settled = true;
74
+ resolve(value);
75
+ };
76
+ (0, undici_1.getGlobalDispatcher)().dispatch({
77
+ origin,
78
+ path,
79
+ method: method,
80
+ headers,
81
+ body,
82
+ headersTimeout: timeout,
83
+ bodyTimeout: timeout,
84
+ }, {
85
+ onConnect: () => { },
86
+ onHeaders: (_statusCode, rawHeaders) => {
87
+ encoding = rawHeader(rawHeaders, "content-encoding");
88
+ return true;
89
+ },
90
+ onData: (chunk) => {
91
+ chunks.push(chunk);
92
+ return true;
93
+ },
94
+ onComplete: () => {
95
+ const raw = chunks.length === 1 ? chunks[0] : Buffer.concat(chunks);
96
+ if (encoding?.includes("gzip")) {
97
+ gzip_1.ActiveGZip.ungzip(raw)
98
+ .then((plain) => {
99
+ try {
100
+ done({ data: JSON.parse(plain.toString()) });
101
+ }
102
+ catch {
103
+ done({ data: null });
104
+ }
105
+ })
106
+ .catch(() => done({ data: null }));
107
+ return;
108
+ }
109
+ try {
110
+ done({ data: JSON.parse(raw.toString()) });
111
+ }
112
+ catch {
113
+ done({ data: null });
114
+ }
115
+ },
116
+ onError: () => {
117
+ if (!bundled) {
118
+ done({ data: null });
119
+ }
120
+ else {
121
+ done({ data: null });
122
+ }
123
+ },
124
+ });
125
+ });
73
126
  }
74
127
  }
75
128
  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,9 @@
1
1
  {
2
2
  "name": "@activeledger/activeutilities",
3
- "version": "4.5.17",
3
+ "version": "4.6.0",
4
+ "engines": {
5
+ "node": ">=20.18.1"
6
+ },
4
7
  "description": "This package manages shared classes between Activeledger and Activetoolkits",
5
8
  "publishConfig": {
6
9
  "access": "public"
@@ -47,6 +50,6 @@
47
50
  "module": "./es/index.js",
48
51
  "dependencies": {
49
52
  "msgpackr": "^2.0.1",
50
- "undici": "^6.28.0"
53
+ "undici": "^7.29.1"
51
54
  }
52
55
  }