@rc-ex/core 1.7.3 → 1.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/dist/cjs/FormData.d.ts +1 -1
  2. package/dist/cjs/FormData.js +30 -18
  3. package/dist/cjs/Rest.js +1 -1
  4. package/dist/cjs/Utils.d.ts +1 -1
  5. package/dist/cjs/Utils.js +3 -1
  6. package/dist/cjs/definitions/Attachment.d.ts +1 -1
  7. package/dist/cjs/paths/Restapi/Account/Extension/Greeting/Content/index.d.ts +1 -1
  8. package/dist/cjs/paths/Restapi/Account/Extension/MessageStore/Content/index.d.ts +1 -1
  9. package/dist/cjs/paths/Restapi/Account/Extension/ProfileImage/index.d.ts +2 -2
  10. package/dist/cjs/paths/Restapi/Account/Greeting/Content/index.d.ts +1 -1
  11. package/dist/cjs/paths/Restapi/Account/IvrPrompts/Content/index.d.ts +1 -1
  12. package/dist/cjs/paths/Restapi/Account/Recording/Content/index.d.ts +1 -1
  13. package/dist/cjs/types.d.ts +1 -1
  14. package/dist/esm/FormData.d.ts +1 -1
  15. package/dist/esm/FormData.js +30 -18
  16. package/dist/esm/Rest.js +1 -1
  17. package/dist/esm/Utils.d.ts +1 -1
  18. package/dist/esm/Utils.js +3 -1
  19. package/dist/esm/definitions/Attachment.d.ts +1 -1
  20. package/dist/esm/paths/Restapi/Account/Extension/Greeting/Content/index.d.ts +1 -1
  21. package/dist/esm/paths/Restapi/Account/Extension/MessageStore/Content/index.d.ts +1 -1
  22. package/dist/esm/paths/Restapi/Account/Extension/ProfileImage/index.d.ts +2 -2
  23. package/dist/esm/paths/Restapi/Account/Greeting/Content/index.d.ts +1 -1
  24. package/dist/esm/paths/Restapi/Account/IvrPrompts/Content/index.d.ts +1 -1
  25. package/dist/esm/paths/Restapi/Account/Recording/Content/index.d.ts +1 -1
  26. package/dist/esm/types.d.ts +1 -1
  27. package/package.json +2 -2
@@ -4,6 +4,6 @@ declare class FormData {
4
4
  files: FormFile[];
5
5
  append(formFile: FormFile): void;
6
6
  prepend(formFile: FormFile): void;
7
- getBody(): Promise<Buffer<ArrayBuffer>>;
7
+ getBody(): Promise<Uint8Array<ArrayBufferLike>>;
8
8
  }
9
9
  export default FormData;
@@ -1,13 +1,25 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.boundary = void 0;
4
- async function stream2buffer(stream) {
5
- return new Promise((resolve, reject) => {
6
- const buf = Array();
7
- stream.on("data", (chunk) => buf.push(chunk));
8
- stream.on("end", () => resolve(Buffer.concat(buf)));
9
- stream.on("error", (err) => reject(new Error(`error converting stream - ${err}`)));
10
- });
4
+ function concat(arrays) {
5
+ let totalLength = 0;
6
+ for (const arr of arrays) {
7
+ totalLength += arr.length;
8
+ }
9
+ const result = new Uint8Array(totalLength);
10
+ let offset = 0;
11
+ for (const arr of arrays) {
12
+ result.set(arr, offset);
13
+ offset += arr.length;
14
+ }
15
+ return result;
16
+ }
17
+ async function stream2Uint8Array(stream) {
18
+ const chunks = [];
19
+ for await (const chunk of stream) {
20
+ chunks.push(chunk);
21
+ }
22
+ return concat(chunks);
11
23
  }
12
24
  exports.boundary = "ad05fc42-a66d-4a94-b807-f1c91136c17b";
13
25
  class FormData {
@@ -19,35 +31,35 @@ class FormData {
19
31
  this.files.unshift(formFile);
20
32
  }
21
33
  async getBody() {
22
- let buffer = Buffer.alloc(0);
34
+ let buffer = new Uint8Array(0);
35
+ const encoder = new TextEncoder();
23
36
  for (const formFile of this.files) {
24
37
  if (buffer.length > 0) {
25
- buffer = Buffer.concat([buffer, Buffer.from("\r\n", "utf-8")]);
38
+ buffer = concat([buffer, encoder.encode("\r\n")]);
26
39
  }
27
40
  let temp = `--${exports.boundary}\r\n`;
28
41
  temp += `Content-Type: ${formFile.contentType}\r\n`;
29
42
  temp +=
30
43
  `Content-Disposition: form-data; name="${formFile.name}"; filename="${formFile.filename}"\r\n\r\n`;
31
- buffer = Buffer.concat([buffer, Buffer.from(temp, "utf-8")]);
44
+ buffer = concat([buffer, encoder.encode(temp)]);
32
45
  let fileBuffer;
33
46
  if (typeof formFile.content === "string") {
34
- fileBuffer = Buffer.from(formFile.content, "utf-8");
47
+ fileBuffer = encoder.encode(formFile.content);
35
48
  }
36
- else if (Buffer.isBuffer(formFile.content)) {
49
+ else if (formFile.content instanceof Uint8Array) {
37
50
  fileBuffer = formFile.content;
38
51
  }
39
52
  else if (formFile.content instanceof Blob) {
40
- fileBuffer = Buffer.from(await formFile.content.arrayBuffer());
53
+ fileBuffer = new Uint8Array(await formFile.content.arrayBuffer());
41
54
  }
42
55
  else {
43
- // NodeJS.ReadableStream
44
- fileBuffer = await stream2buffer(formFile.content);
56
+ fileBuffer = await stream2Uint8Array(formFile.content);
45
57
  }
46
- buffer = Buffer.concat([buffer, fileBuffer]);
58
+ buffer = concat([buffer, fileBuffer]);
47
59
  }
48
- return Buffer.concat([
60
+ return concat([
49
61
  buffer,
50
- Buffer.from(`\r\n--${exports.boundary}--\r\n`, "utf8"),
62
+ encoder.encode(`\r\n--${exports.boundary}--\r\n`),
51
63
  ]);
52
64
  }
53
65
  }
package/dist/cjs/Rest.js CHANGED
@@ -35,7 +35,7 @@ class Rest {
35
35
  },
36
36
  });
37
37
  this.httpClient.interceptors.request.use((config) => {
38
- if (Buffer.isBuffer(config.data)) {
38
+ if (config.data instanceof Uint8Array) {
39
39
  return {
40
40
  ...config,
41
41
  headers: {
@@ -2,6 +2,6 @@ import type { RestResponse } from "./types.js";
2
2
  declare class Utils {
3
3
  static formatTraffic(r: RestResponse): string;
4
4
  static isAttachment(obj: {}): boolean;
5
- static getFormData(...objects: {}[]): Promise<Buffer>;
5
+ static getFormData(...objects: {}[]): Promise<Uint8Array>;
6
6
  }
7
7
  export default Utils;
package/dist/cjs/Utils.js CHANGED
@@ -22,7 +22,9 @@ class Utils {
22
22
  baseURL: r.config.baseURL,
23
23
  url: r.config.url,
24
24
  params: r.config.params,
25
- data: Buffer.isBuffer(r.config.data) ? "<Buffer>" : r.config.data,
25
+ data: r.config.data instanceof Uint8Array
26
+ ? "<Binary>"
27
+ : r.config.data,
26
28
  headers: r.config.headers,
27
29
  }, null, 2)}
28
30
  `;
@@ -10,7 +10,7 @@ interface Attachment {
10
10
  * Binary content of the file
11
11
  * Required
12
12
  */
13
- content?: string | Buffer | Blob | NodeJS.ReadableStream;
13
+ content?: string | Uint8Array | Blob | AsyncIterable<Uint8Array>;
14
14
  /**
15
15
  * Content type of the file, such as "image/png"
16
16
  */
@@ -15,6 +15,6 @@ declare class Index {
15
15
  * Rate Limit Group: Heavy
16
16
  * App Permission: ReadAccounts
17
17
  */
18
- get(queryParams?: ReadGreetingContentParameters, restRequestConfig?: RestRequestConfig): Promise<Buffer>;
18
+ get(queryParams?: ReadGreetingContentParameters, restRequestConfig?: RestRequestConfig): Promise<Uint8Array>;
19
19
  }
20
20
  export default Index;
@@ -18,6 +18,6 @@ declare class Index {
18
18
  * Rate Limit Group: Medium
19
19
  * App Permission: ReadMessages
20
20
  */
21
- get(queryParams?: ReadMessageContentParameters, restRequestConfig?: RestRequestConfig): Promise<Buffer>;
21
+ get(queryParams?: ReadMessageContentParameters, restRequestConfig?: RestRequestConfig): Promise<Uint8Array>;
22
22
  }
23
23
  export default Index;
@@ -17,7 +17,7 @@ declare class Index {
17
17
  * App Permission: ReadAccounts
18
18
  * User Permission: ReadExtensions
19
19
  */
20
- list(restRequestConfig?: RestRequestConfig): Promise<Buffer>;
20
+ list(restRequestConfig?: RestRequestConfig): Promise<Uint8Array>;
21
21
  /**
22
22
  * Uploads the extension profile image.
23
23
  *
@@ -58,6 +58,6 @@ declare class Index {
58
58
  * Rate Limit Group: Medium
59
59
  * App Permission: ReadAccounts
60
60
  */
61
- get(queryParams?: ReadScaledProfileImageParameters, restRequestConfig?: RestRequestConfig): Promise<Buffer>;
61
+ get(queryParams?: ReadScaledProfileImageParameters, restRequestConfig?: RestRequestConfig): Promise<Uint8Array>;
62
62
  }
63
63
  export default Index;
@@ -15,6 +15,6 @@ declare class Index {
15
15
  * Rate Limit Group: Heavy
16
16
  * App Permission: ReadAccounts
17
17
  */
18
- get(queryParams?: ReadAccountGreetingContentParameters, restRequestConfig?: RestRequestConfig): Promise<Buffer>;
18
+ get(queryParams?: ReadAccountGreetingContentParameters, restRequestConfig?: RestRequestConfig): Promise<Uint8Array>;
19
19
  }
20
20
  export default Index;
@@ -15,6 +15,6 @@ declare class Index {
15
15
  * Rate Limit Group: Heavy
16
16
  * App Permission: ReadAccounts
17
17
  */
18
- get(queryParams?: ReadIVRPromptContentParameters, restRequestConfig?: RestRequestConfig): Promise<Buffer>;
18
+ get(queryParams?: ReadIVRPromptContentParameters, restRequestConfig?: RestRequestConfig): Promise<Uint8Array>;
19
19
  }
20
20
  export default Index;
@@ -15,6 +15,6 @@ declare class Index {
15
15
  * Rate Limit Group: Heavy
16
16
  * App Permission: ReadCallRecording
17
17
  */
18
- get(queryParams?: ReadCallRecordingContentParameters, restRequestConfig?: RestRequestConfig): Promise<Buffer>;
18
+ get(queryParams?: ReadCallRecordingContentParameters, restRequestConfig?: RestRequestConfig): Promise<Uint8Array>;
19
19
  }
20
20
  export default Index;
@@ -26,5 +26,5 @@ export interface FormFile {
26
26
  name: string;
27
27
  filename: string;
28
28
  contentType: string;
29
- content: string | Buffer | Blob | NodeJS.ReadableStream;
29
+ content: string | Uint8Array | Blob | AsyncIterable<Uint8Array>;
30
30
  }
@@ -4,6 +4,6 @@ declare class FormData {
4
4
  files: FormFile[];
5
5
  append(formFile: FormFile): void;
6
6
  prepend(formFile: FormFile): void;
7
- getBody(): Promise<Buffer<ArrayBuffer>>;
7
+ getBody(): Promise<Uint8Array<ArrayBufferLike>>;
8
8
  }
9
9
  export default FormData;
@@ -1,10 +1,22 @@
1
- async function stream2buffer(stream) {
2
- return new Promise((resolve, reject) => {
3
- const buf = Array();
4
- stream.on("data", (chunk) => buf.push(chunk));
5
- stream.on("end", () => resolve(Buffer.concat(buf)));
6
- stream.on("error", (err) => reject(new Error(`error converting stream - ${err}`)));
7
- });
1
+ function concat(arrays) {
2
+ let totalLength = 0;
3
+ for (const arr of arrays) {
4
+ totalLength += arr.length;
5
+ }
6
+ const result = new Uint8Array(totalLength);
7
+ let offset = 0;
8
+ for (const arr of arrays) {
9
+ result.set(arr, offset);
10
+ offset += arr.length;
11
+ }
12
+ return result;
13
+ }
14
+ async function stream2Uint8Array(stream) {
15
+ const chunks = [];
16
+ for await (const chunk of stream) {
17
+ chunks.push(chunk);
18
+ }
19
+ return concat(chunks);
8
20
  }
9
21
  export const boundary = "ad05fc42-a66d-4a94-b807-f1c91136c17b";
10
22
  class FormData {
@@ -16,35 +28,35 @@ class FormData {
16
28
  this.files.unshift(formFile);
17
29
  }
18
30
  async getBody() {
19
- let buffer = Buffer.alloc(0);
31
+ let buffer = new Uint8Array(0);
32
+ const encoder = new TextEncoder();
20
33
  for (const formFile of this.files) {
21
34
  if (buffer.length > 0) {
22
- buffer = Buffer.concat([buffer, Buffer.from("\r\n", "utf-8")]);
35
+ buffer = concat([buffer, encoder.encode("\r\n")]);
23
36
  }
24
37
  let temp = `--${boundary}\r\n`;
25
38
  temp += `Content-Type: ${formFile.contentType}\r\n`;
26
39
  temp +=
27
40
  `Content-Disposition: form-data; name="${formFile.name}"; filename="${formFile.filename}"\r\n\r\n`;
28
- buffer = Buffer.concat([buffer, Buffer.from(temp, "utf-8")]);
41
+ buffer = concat([buffer, encoder.encode(temp)]);
29
42
  let fileBuffer;
30
43
  if (typeof formFile.content === "string") {
31
- fileBuffer = Buffer.from(formFile.content, "utf-8");
44
+ fileBuffer = encoder.encode(formFile.content);
32
45
  }
33
- else if (Buffer.isBuffer(formFile.content)) {
46
+ else if (formFile.content instanceof Uint8Array) {
34
47
  fileBuffer = formFile.content;
35
48
  }
36
49
  else if (formFile.content instanceof Blob) {
37
- fileBuffer = Buffer.from(await formFile.content.arrayBuffer());
50
+ fileBuffer = new Uint8Array(await formFile.content.arrayBuffer());
38
51
  }
39
52
  else {
40
- // NodeJS.ReadableStream
41
- fileBuffer = await stream2buffer(formFile.content);
53
+ fileBuffer = await stream2Uint8Array(formFile.content);
42
54
  }
43
- buffer = Buffer.concat([buffer, fileBuffer]);
55
+ buffer = concat([buffer, fileBuffer]);
44
56
  }
45
- return Buffer.concat([
57
+ return concat([
46
58
  buffer,
47
- Buffer.from(`\r\n--${boundary}--\r\n`, "utf8"),
59
+ encoder.encode(`\r\n--${boundary}--\r\n`),
48
60
  ]);
49
61
  }
50
62
  }
package/dist/esm/Rest.js CHANGED
@@ -30,7 +30,7 @@ export default class Rest {
30
30
  },
31
31
  });
32
32
  this.httpClient.interceptors.request.use((config) => {
33
- if (Buffer.isBuffer(config.data)) {
33
+ if (config.data instanceof Uint8Array) {
34
34
  return {
35
35
  ...config,
36
36
  headers: {
@@ -2,6 +2,6 @@ import type { RestResponse } from "./types.js";
2
2
  declare class Utils {
3
3
  static formatTraffic(r: RestResponse): string;
4
4
  static isAttachment(obj: {}): boolean;
5
- static getFormData(...objects: {}[]): Promise<Buffer>;
5
+ static getFormData(...objects: {}[]): Promise<Uint8Array>;
6
6
  }
7
7
  export default Utils;
package/dist/esm/Utils.js CHANGED
@@ -17,7 +17,9 @@ class Utils {
17
17
  baseURL: r.config.baseURL,
18
18
  url: r.config.url,
19
19
  params: r.config.params,
20
- data: Buffer.isBuffer(r.config.data) ? "<Buffer>" : r.config.data,
20
+ data: r.config.data instanceof Uint8Array
21
+ ? "<Binary>"
22
+ : r.config.data,
21
23
  headers: r.config.headers,
22
24
  }, null, 2)}
23
25
  `;
@@ -10,7 +10,7 @@ interface Attachment {
10
10
  * Binary content of the file
11
11
  * Required
12
12
  */
13
- content?: string | Buffer | Blob | NodeJS.ReadableStream;
13
+ content?: string | Uint8Array | Blob | AsyncIterable<Uint8Array>;
14
14
  /**
15
15
  * Content type of the file, such as "image/png"
16
16
  */
@@ -15,6 +15,6 @@ declare class Index {
15
15
  * Rate Limit Group: Heavy
16
16
  * App Permission: ReadAccounts
17
17
  */
18
- get(queryParams?: ReadGreetingContentParameters, restRequestConfig?: RestRequestConfig): Promise<Buffer>;
18
+ get(queryParams?: ReadGreetingContentParameters, restRequestConfig?: RestRequestConfig): Promise<Uint8Array>;
19
19
  }
20
20
  export default Index;
@@ -18,6 +18,6 @@ declare class Index {
18
18
  * Rate Limit Group: Medium
19
19
  * App Permission: ReadMessages
20
20
  */
21
- get(queryParams?: ReadMessageContentParameters, restRequestConfig?: RestRequestConfig): Promise<Buffer>;
21
+ get(queryParams?: ReadMessageContentParameters, restRequestConfig?: RestRequestConfig): Promise<Uint8Array>;
22
22
  }
23
23
  export default Index;
@@ -17,7 +17,7 @@ declare class Index {
17
17
  * App Permission: ReadAccounts
18
18
  * User Permission: ReadExtensions
19
19
  */
20
- list(restRequestConfig?: RestRequestConfig): Promise<Buffer>;
20
+ list(restRequestConfig?: RestRequestConfig): Promise<Uint8Array>;
21
21
  /**
22
22
  * Uploads the extension profile image.
23
23
  *
@@ -58,6 +58,6 @@ declare class Index {
58
58
  * Rate Limit Group: Medium
59
59
  * App Permission: ReadAccounts
60
60
  */
61
- get(queryParams?: ReadScaledProfileImageParameters, restRequestConfig?: RestRequestConfig): Promise<Buffer>;
61
+ get(queryParams?: ReadScaledProfileImageParameters, restRequestConfig?: RestRequestConfig): Promise<Uint8Array>;
62
62
  }
63
63
  export default Index;
@@ -15,6 +15,6 @@ declare class Index {
15
15
  * Rate Limit Group: Heavy
16
16
  * App Permission: ReadAccounts
17
17
  */
18
- get(queryParams?: ReadAccountGreetingContentParameters, restRequestConfig?: RestRequestConfig): Promise<Buffer>;
18
+ get(queryParams?: ReadAccountGreetingContentParameters, restRequestConfig?: RestRequestConfig): Promise<Uint8Array>;
19
19
  }
20
20
  export default Index;
@@ -15,6 +15,6 @@ declare class Index {
15
15
  * Rate Limit Group: Heavy
16
16
  * App Permission: ReadAccounts
17
17
  */
18
- get(queryParams?: ReadIVRPromptContentParameters, restRequestConfig?: RestRequestConfig): Promise<Buffer>;
18
+ get(queryParams?: ReadIVRPromptContentParameters, restRequestConfig?: RestRequestConfig): Promise<Uint8Array>;
19
19
  }
20
20
  export default Index;
@@ -15,6 +15,6 @@ declare class Index {
15
15
  * Rate Limit Group: Heavy
16
16
  * App Permission: ReadCallRecording
17
17
  */
18
- get(queryParams?: ReadCallRecordingContentParameters, restRequestConfig?: RestRequestConfig): Promise<Buffer>;
18
+ get(queryParams?: ReadCallRecordingContentParameters, restRequestConfig?: RestRequestConfig): Promise<Uint8Array>;
19
19
  }
20
20
  export default Index;
@@ -26,5 +26,5 @@ export interface FormFile {
26
26
  name: string;
27
27
  filename: string;
28
28
  contentType: string;
29
- content: string | Buffer | Blob | NodeJS.ReadableStream;
29
+ content: string | Uint8Array | Blob | AsyncIterable<Uint8Array>;
30
30
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rc-ex/core",
3
- "version": "1.7.3",
3
+ "version": "1.7.4",
4
4
  "description": "Core for ringcentral-extensible project",
5
5
  "author": "Tyler Liu <tyler.liu@ringcentral.com>",
6
6
  "homepage": "https://github.com/ringcentral/ringcentral-extensible/tree/master/packages/core",
@@ -50,5 +50,5 @@
50
50
  "scripts": {
51
51
  "build": "tsc -p tsconfig.esm.json && tsc -p tsconfig.cjs.json"
52
52
  },
53
- "gitHead": "905766db00ac10e703740401b2ef2f56c6f07287"
53
+ "gitHead": "65f0436e7fb7dc2ff652da766e6b99378a841fce"
54
54
  }