@twilio/mcs-client 0.5.3 → 0.6.0-rc.2

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.
@@ -31,6 +31,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
31
31
  var operationRetrier = require('@twilio/operation-retrier');
32
32
  var logger = require('../logger.js');
33
33
  var configuration = require('../configuration.js');
34
+ var cancellablePromise = require('../cancellable-promise.js');
34
35
 
35
36
  const log = logger.Logger.scope("Network");
36
37
  class Network {
@@ -45,13 +46,18 @@ class Network {
45
46
  var _a, _b;
46
47
  return ((_b = (_a = this.config.retryWhenThrottledOverride) !== null && _a !== void 0 ? _a : configuration.Configuration.retryWhenThrottledDefault) !== null && _b !== void 0 ? _b : false);
47
48
  }
48
- async executeWithRetry(request, retryWhenThrottled) {
49
- return new Promise((resolve, reject) => {
49
+ executeWithRetry(request, retryWhenThrottled) {
50
+ return new cancellablePromise.CancellablePromise(async (resolve, reject, onCancel) => {
51
+ const retrier = new operationRetrier.Retrier(this.backoffConfig());
52
+ onCancel(() => {
53
+ request.cancel();
54
+ retrier.removeAllListeners();
55
+ retrier.cancel();
56
+ });
50
57
  const codesToRetryOn = [502, 503, 504];
51
58
  if (retryWhenThrottled) {
52
59
  codesToRetryOn.push(429);
53
60
  }
54
- const retrier = new operationRetrier.Retrier(this.backoffConfig());
55
61
  retrier.on("attempt", async () => {
56
62
  try {
57
63
  const result = await request();
@@ -81,20 +87,24 @@ class Network {
81
87
  retrier.start();
82
88
  });
83
89
  }
84
- async get(url) {
85
- const headers = { "X-Twilio-Token": this.config.token };
86
- log.trace("sending GET request to ", url, " headers ", headers);
87
- try {
88
- const response = await this.executeWithRetry(() => this.transport.get(url, headers), this.retryWhenThrottled());
89
- log.trace("response", response);
90
- return response;
91
- }
92
- catch (err) {
93
- log.debug(`get() error ${err}`);
94
- throw err;
95
- }
90
+ get(url) {
91
+ return new cancellablePromise.CancellablePromise(async (resolve, reject, onCancel) => {
92
+ const headers = { "X-Twilio-Token": this.config.token };
93
+ const request = this.executeWithRetry(() => this.transport.get(url, headers), this.retryWhenThrottled());
94
+ log.trace("sending GET request to ", url, " headers ", headers);
95
+ onCancel(() => request.cancel());
96
+ try {
97
+ const response = await request;
98
+ log.trace("response", response);
99
+ resolve(response);
100
+ }
101
+ catch (err) {
102
+ log.debug(`get() error ${err}`);
103
+ reject(err);
104
+ }
105
+ });
96
106
  }
97
- async post(url, category, media, contentType, filename) {
107
+ post(url, category, media, contentType, filename) {
98
108
  const headers = {
99
109
  "X-Twilio-Token": this.config.token,
100
110
  };
@@ -111,22 +121,29 @@ class Network {
111
121
  if (filename) {
112
122
  fullUrl.searchParams.append("Filename", filename);
113
123
  }
114
- let response;
115
- log.trace(`sending POST request to ${url} with headers ${headers}`);
116
- try {
117
- response = await this.transport.post(fullUrl.href, headers, media);
118
- }
119
- catch (err) {
120
- // If global["XMLHttpRequest"] is undefined, it means that the code is
121
- // not being executed in the browser.
122
- if (global["XMLHttpRequest"] === undefined && media instanceof FormData) {
123
- throw new TypeError("Posting FormData supported only with browser engine's FormData");
124
+ return new cancellablePromise.CancellablePromise(async (resolve, reject, onCancel) => {
125
+ const request = this.transport.post(fullUrl.href, headers, media);
126
+ onCancel(() => request.cancel());
127
+ log.trace(`sending POST request to ${url} with headers ${headers}`);
128
+ let response;
129
+ try {
130
+ response = await request;
124
131
  }
125
- log.debug(`post() error ${err}`);
126
- throw err;
127
- }
128
- log.trace("response", response);
129
- return response;
132
+ catch (err) {
133
+ // If global["XMLHttpRequest"] is undefined, it means that the code is
134
+ // not being executed in the browser.
135
+ if (global["XMLHttpRequest"] === undefined &&
136
+ media instanceof FormData) {
137
+ reject(new TypeError("Posting FormData supported only with browser engine's FormData"));
138
+ return;
139
+ }
140
+ log.debug(`post() error ${err}`);
141
+ reject(err);
142
+ return;
143
+ }
144
+ log.trace("response", response);
145
+ resolve(response);
146
+ });
130
147
  }
131
148
  }
132
149
 
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sources":["../../src/services/network.ts"],"sourcesContent":["import { Retrier } from \"@twilio/operation-retrier\";\nimport { Logger } from \"../logger\";\nimport { Configuration } from \"../configuration\";\nimport { Transport } from \"./transport\";\nimport { MediaCategory } from \"../media\";\n\nconst log = Logger.scope(\"Network\");\n\nclass Network {\n private readonly config: Configuration;\n private readonly transport: Transport;\n\n constructor(config: Configuration, transport: Transport) {\n this.config = config;\n this.transport = transport;\n }\n\n private backoffConfig() {\n return Object.assign(\n Configuration.backoffConfigDefault,\n this.config.backoffConfigOverride\n );\n }\n\n private retryWhenThrottled(): boolean {\n return (\n this.config.retryWhenThrottledOverride ??\n Configuration.retryWhenThrottledDefault ??\n false\n );\n }\n\n private async executeWithRetry(\n request,\n retryWhenThrottled: boolean\n ): Promise<any> {\n return new Promise((resolve, reject) => {\n const codesToRetryOn = [502, 503, 504];\n if (retryWhenThrottled) {\n codesToRetryOn.push(429);\n }\n\n const retrier = new Retrier(this.backoffConfig());\n retrier.on(\"attempt\", async () => {\n try {\n const result = await request();\n retrier.succeeded(result);\n } catch (err) {\n if (codesToRetryOn.indexOf(err.status) > -1) {\n retrier.failed(err);\n } else if (err.message === \"Twilsock disconnected\") {\n // Ugly hack. We must make a proper exceptions for twilsock\n retrier.failed(err);\n } else {\n // Fatal error\n retrier.removeAllListeners();\n retrier.cancel();\n reject(err);\n }\n }\n });\n\n retrier.on(\"succeeded\", (result) => {\n resolve(result);\n });\n retrier.on(\"cancelled\", (err) => reject(err));\n retrier.on(\"failed\", (err) => reject(err));\n\n retrier.start();\n });\n }\n\n public async get(url: string): Promise<any> {\n const headers = { \"X-Twilio-Token\": this.config.token };\n log.trace(\"sending GET request to \", url, \" headers \", headers);\n try {\n const response = await this.executeWithRetry(\n () => this.transport.get(url, headers),\n this.retryWhenThrottled()\n );\n log.trace(\"response\", response);\n return response;\n } catch (err) {\n log.debug(`get() error ${err}`);\n throw err;\n }\n }\n\n public async post(\n url: string,\n category: MediaCategory | null,\n media: string | Buffer | Blob | FormData | Record<string, unknown>,\n contentType?: string,\n filename?: string\n ): Promise<any> {\n const headers = {\n \"X-Twilio-Token\": this.config.token,\n };\n\n if (\n (typeof FormData === \"undefined\" || !(media instanceof FormData)) &&\n contentType\n ) {\n Object.assign(headers, {\n \"Content-Type\": contentType,\n });\n }\n\n const fullUrl = new URL(url);\n if (category) {\n fullUrl.searchParams.append(\"Category\", category);\n }\n if (filename) {\n fullUrl.searchParams.append(\"Filename\", filename);\n }\n\n let response;\n log.trace(`sending POST request to ${url} with headers ${headers}`);\n try {\n response = await this.transport.post(fullUrl.href, headers, media);\n } catch (err) {\n // If global[\"XMLHttpRequest\"] is undefined, it means that the code is\n // not being executed in the browser.\n if (global[\"XMLHttpRequest\"] === undefined && media instanceof FormData) {\n throw new TypeError(\n \"Posting FormData supported only with browser engine's FormData\"\n );\n }\n log.debug(`post() error ${err}`);\n throw err;\n }\n log.trace(\"response\", response);\n return response;\n }\n}\n\nexport { Network };\n"],"names":["Logger","Configuration","Retrier"],"mappings":"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"}
1
+ {"version":3,"file":"network.js","sources":["../../src/services/network.ts"],"sourcesContent":["import { Retrier } from \"@twilio/operation-retrier\";\nimport { Logger } from \"../logger\";\nimport { Configuration } from \"../configuration\";\nimport { Transport } from \"./transport\";\nimport { MediaCategory } from \"../media\";\nimport { CancellablePromise } from \"../cancellable-promise\";\n\nconst log = Logger.scope(\"Network\");\n\nclass Network {\n private readonly config: Configuration;\n private readonly transport: Transport;\n\n constructor(config: Configuration, transport: Transport) {\n this.config = config;\n this.transport = transport;\n }\n\n private backoffConfig() {\n return Object.assign(\n Configuration.backoffConfigDefault,\n this.config.backoffConfigOverride\n );\n }\n\n private retryWhenThrottled(): boolean {\n return (\n this.config.retryWhenThrottledOverride ??\n Configuration.retryWhenThrottledDefault ??\n false\n );\n }\n\n private executeWithRetry(\n request,\n retryWhenThrottled: boolean\n ): CancellablePromise<any> {\n return new CancellablePromise(async (resolve, reject, onCancel) => {\n const retrier = new Retrier(this.backoffConfig());\n\n onCancel(() => {\n request.cancel();\n retrier.removeAllListeners();\n retrier.cancel();\n });\n\n const codesToRetryOn = [502, 503, 504];\n if (retryWhenThrottled) {\n codesToRetryOn.push(429);\n }\n\n retrier.on(\"attempt\", async () => {\n try {\n const result = await request();\n retrier.succeeded(result);\n } catch (err) {\n if (codesToRetryOn.indexOf(err.status) > -1) {\n retrier.failed(err);\n } else if (err.message === \"Twilsock disconnected\") {\n // Ugly hack. We must make a proper exceptions for twilsock\n retrier.failed(err);\n } else {\n // Fatal error\n retrier.removeAllListeners();\n retrier.cancel();\n reject(err);\n }\n }\n });\n\n retrier.on(\"succeeded\", (result) => {\n resolve(result);\n });\n retrier.on(\"cancelled\", (err) => reject(err));\n retrier.on(\"failed\", (err) => reject(err));\n\n retrier.start();\n });\n }\n\n public get(url: string): CancellablePromise<any> {\n return new CancellablePromise(async (resolve, reject, onCancel) => {\n const headers = { \"X-Twilio-Token\": this.config.token };\n const request = this.executeWithRetry(\n () => this.transport.get(url, headers),\n this.retryWhenThrottled()\n );\n log.trace(\"sending GET request to \", url, \" headers \", headers);\n\n onCancel(() => request.cancel());\n\n try {\n const response = await request;\n log.trace(\"response\", response);\n resolve(response);\n } catch (err) {\n log.debug(`get() error ${err}`);\n reject(err);\n }\n });\n }\n\n public post(\n url: string,\n category: MediaCategory | null,\n media: string | Buffer | Blob | FormData | Record<string, unknown>,\n contentType?: string,\n filename?: string\n ): CancellablePromise<any> {\n const headers = {\n \"X-Twilio-Token\": this.config.token,\n };\n\n if (\n (typeof FormData === \"undefined\" || !(media instanceof FormData)) &&\n contentType\n ) {\n Object.assign(headers, {\n \"Content-Type\": contentType,\n });\n }\n\n const fullUrl = new URL(url);\n if (category) {\n fullUrl.searchParams.append(\"Category\", category);\n }\n if (filename) {\n fullUrl.searchParams.append(\"Filename\", filename);\n }\n\n return new CancellablePromise(async (resolve, reject, onCancel) => {\n const request = this.transport.post(fullUrl.href, headers, media);\n\n onCancel(() => request.cancel());\n\n log.trace(`sending POST request to ${url} with headers ${headers}`);\n let response;\n try {\n response = await request;\n } catch (err) {\n // If global[\"XMLHttpRequest\"] is undefined, it means that the code is\n // not being executed in the browser.\n if (\n global[\"XMLHttpRequest\"] === undefined &&\n media instanceof FormData\n ) {\n reject(\n new TypeError(\n \"Posting FormData supported only with browser engine's FormData\"\n )\n );\n return;\n }\n log.debug(`post() error ${err}`);\n reject(err);\n return;\n }\n log.trace(\"response\", response);\n resolve(response);\n });\n }\n}\n\nexport { Network };\n"],"names":["Logger","Configuration","CancellablePromise","Retrier"],"mappings":"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"}
@@ -29,6 +29,7 @@ var global =
29
29
  Object.defineProperty(exports, '__esModule', { value: true });
30
30
 
31
31
  var transporterror = require('./transporterror.js');
32
+ var cancellablePromise = require('../cancellable-promise.js');
32
33
 
33
34
  // eslint-disable-next-line
34
35
  const XHR = global["XMLHttpRequest"] || {};
@@ -63,13 +64,18 @@ function extractBody(xhr) {
63
64
  * Provides generic network interface
64
65
  */
65
66
  class Transport {
66
- static async request(method, url, headers, body) {
67
- return new Promise((resolve, reject) => {
67
+ static request(method, url, headers, body) {
68
+ return new cancellablePromise.CancellablePromise((resolve, reject, onCancel) => {
68
69
  const xhr = new XHR();
70
+ let isCancelled = false;
71
+ onCancel(() => {
72
+ xhr.abort();
73
+ isCancelled = true;
74
+ });
69
75
  xhr.open(method, url, true);
70
76
  xhr.onreadystatechange = function onreadystatechange() {
71
77
  var _a;
72
- if (xhr.readyState !== 4) {
78
+ if (xhr.readyState !== 4 || isCancelled) {
73
79
  return;
74
80
  }
75
81
  const headers = parseResponseHeaders(xhr.getAllResponseHeaders());
@@ -104,13 +110,13 @@ class Transport {
104
110
  /**
105
111
  * Make a GET request by given URL
106
112
  */
107
- async get(url, headers) {
113
+ get(url, headers) {
108
114
  return Transport.request("GET", url, headers);
109
115
  }
110
116
  /**
111
117
  * Make a POST request by given URL
112
118
  */
113
- async post(url, headers, body) {
119
+ post(url, headers, body) {
114
120
  return Transport.request("POST", url, headers, body);
115
121
  }
116
122
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transport.js","sources":["../../src/services/transport.ts"],"sourcesContent":["import { TransportError } from \"./transporterror\";\n\n// eslint-disable-next-line\nconst XHR = global[\"XMLHttpRequest\"] || require(\"xmlhttprequest\").XMLHttpRequest;\n\ntype Headers = { [id: string]: string };\n\nfunction parseResponseHeaders(headerString: string): Headers {\n if (!headerString) {\n return {};\n }\n\n return headerString\n .split(\"\\u000d\\u000a\")\n .map((el) => el.split(\"\\u003a\\u0020\"))\n .filter((el) => el.length === 2 && el[1].length > 0)\n .reduce((prev, curr) => {\n prev[curr[0]] = curr[1];\n return prev;\n }, {});\n}\n\nfunction extractBody(xhr) {\n const contentType = xhr.getResponseHeader(\"Content-Type\");\n if (\n !contentType ||\n contentType.indexOf(\"application/json\") !== 0 ||\n xhr.responseText.length === 0\n ) {\n return xhr.responseText;\n }\n\n try {\n return JSON.parse(xhr.responseText);\n } catch (e) {\n return xhr.responseText;\n }\n}\n\nfunction adaptHttpResponse(response: Response) {\n try {\n response.body = JSON.parse(response.body);\n } catch (e) {} // eslint-disable-line no-empty\n return response;\n}\n\ninterface Response {\n status: any;\n headers: Headers;\n body: any;\n}\n\n/**\n * Provides generic network interface\n */\nclass Transport {\n private static async request(\n method: string,\n url: string,\n headers: Headers,\n body?\n ): Promise<Response> {\n return new Promise<Response>((resolve, reject) => {\n const xhr = new XHR();\n xhr.open(method, url, true);\n\n xhr.onreadystatechange = function onreadystatechange() {\n if (xhr.readyState !== 4) {\n return;\n }\n\n const headers = parseResponseHeaders(xhr.getAllResponseHeaders());\n const body = extractBody(xhr);\n\n if (200 <= xhr.status && xhr.status < 300) {\n resolve({ status: xhr.status, headers, body });\n } else {\n const status = xhr.statusText ?? \"NONE\";\n let bodyRepresentation;\n if (typeof body === \"string\") {\n bodyRepresentation =\n body && body.split(\"\\n\", 2).length === 1 ? body : \"\";\n } else {\n bodyRepresentation = JSON.stringify(body);\n }\n const message = `${xhr.status}: [${status}] ${bodyRepresentation}`;\n reject(\n new TransportError(message, xhr.status, body, status, headers)\n );\n }\n };\n\n for (const headerName in headers) {\n xhr.setRequestHeader(headerName, headers[headerName]);\n if (\n headerName === \"Content-Type\" &&\n headers[headerName] === \"application/json\"\n ) {\n body = JSON.stringify(body);\n }\n }\n\n xhr.send(body);\n });\n }\n\n /**\n * Make a GET request by given URL\n */\n public async get(url: string, headers: Headers): Promise<Response> {\n return Transport.request(\"GET\", url, headers);\n }\n\n /**\n * Make a POST request by given URL\n */\n public async post(url: string, headers: Headers, body?): Promise<Response> {\n return Transport.request(\"POST\", url, headers, body);\n }\n}\n\nexport { Headers, Response, Transport };\n"],"names":["TransportError"],"mappings":"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"}
1
+ {"version":3,"file":"transport.js","sources":["../../src/services/transport.ts"],"sourcesContent":["import { TransportError } from \"./transporterror\";\nimport { CancellablePromise } from \"../cancellable-promise\";\n\n// eslint-disable-next-line\nconst XHR = global[\"XMLHttpRequest\"] || require(\"xmlhttprequest\").XMLHttpRequest;\n\ntype Headers = { [id: string]: string };\n\nfunction parseResponseHeaders(headerString: string): Headers {\n if (!headerString) {\n return {};\n }\n\n return headerString\n .split(\"\\u000d\\u000a\")\n .map((el) => el.split(\"\\u003a\\u0020\"))\n .filter((el) => el.length === 2 && el[1].length > 0)\n .reduce((prev, curr) => {\n prev[curr[0]] = curr[1];\n return prev;\n }, {});\n}\n\nfunction extractBody(xhr) {\n const contentType = xhr.getResponseHeader(\"Content-Type\");\n if (\n !contentType ||\n contentType.indexOf(\"application/json\") !== 0 ||\n xhr.responseText.length === 0\n ) {\n return xhr.responseText;\n }\n\n try {\n return JSON.parse(xhr.responseText);\n } catch (e) {\n return xhr.responseText;\n }\n}\n\nfunction adaptHttpResponse(response: Response) {\n try {\n response.body = JSON.parse(response.body);\n } catch (e) {} // eslint-disable-line no-empty\n return response;\n}\n\ninterface Response {\n status: any;\n headers: Headers;\n body: any;\n}\n\n/**\n * Provides generic network interface\n */\nclass Transport {\n private static request(\n method: string,\n url: string,\n headers: Headers,\n body?\n ): CancellablePromise<Response> {\n return new CancellablePromise<Response>((resolve, reject, onCancel) => {\n const xhr = new XHR();\n let isCancelled = false;\n\n onCancel(() => {\n xhr.abort();\n isCancelled = true;\n });\n\n xhr.open(method, url, true);\n\n xhr.onreadystatechange = function onreadystatechange() {\n if (xhr.readyState !== 4 || isCancelled) {\n return;\n }\n\n const headers = parseResponseHeaders(xhr.getAllResponseHeaders());\n const body = extractBody(xhr);\n\n if (200 <= xhr.status && xhr.status < 300) {\n resolve({ status: xhr.status, headers, body });\n } else {\n const status = xhr.statusText ?? \"NONE\";\n let bodyRepresentation;\n if (typeof body === \"string\") {\n bodyRepresentation =\n body && body.split(\"\\n\", 2).length === 1 ? body : \"\";\n } else {\n bodyRepresentation = JSON.stringify(body);\n }\n const message = `${xhr.status}: [${status}] ${bodyRepresentation}`;\n reject(\n new TransportError(message, xhr.status, body, status, headers)\n );\n }\n };\n\n for (const headerName in headers) {\n xhr.setRequestHeader(headerName, headers[headerName]);\n if (\n headerName === \"Content-Type\" &&\n headers[headerName] === \"application/json\"\n ) {\n body = JSON.stringify(body);\n }\n }\n\n xhr.send(body);\n });\n }\n\n /**\n * Make a GET request by given URL\n */\n public get(url: string, headers: Headers): CancellablePromise<Response> {\n return Transport.request(\"GET\", url, headers);\n }\n\n /**\n * Make a POST request by given URL\n */\n public post(\n url: string,\n headers: Headers,\n body?\n ): CancellablePromise<Response> {\n return Transport.request(\"POST\", url, headers, body);\n }\n}\n\nexport { Headers, Response, Transport };\n"],"names":["CancellablePromise","TransportError"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transporterror.js","sources":["../../src/services/transporterror.ts"],"sourcesContent":["class TransportError extends Error {\n public readonly code: number;\n public readonly body: any;\n public readonly status: string;\n public readonly headers: any;\n\n constructor(\n message: string,\n code: number,\n body: any,\n status: string,\n headers: any\n ) {\n super(message);\n this.code = code;\n this.body = body;\n this.status = status;\n this.headers = headers;\n }\n}\n\nexport { TransportError };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAM,cAAe,SAAQ,KAAK;IAMhC,YACE,OAAe,EACf,IAAY,EACZ,IAAS,EACT,MAAc,EACd,OAAY;QAEZ,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KACxB;;;;;"}
1
+ {"version":3,"file":"transporterror.js","sources":["../../src/services/transporterror.ts"],"sourcesContent":["class TransportError extends Error {\n public readonly code: number;\n public readonly body: any;\n public readonly status: string;\n public readonly headers: any;\n\n constructor(\n message: string,\n code: number,\n body: any,\n status: string,\n headers: any\n ) {\n super(message);\n this.code = code;\n this.body = body;\n this.status = status;\n this.headers = headers;\n }\n}\n\nexport { TransportError };\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAM,cAAe,SAAQ,KAAK,CAAA;IAMhC,WACE,CAAA,OAAe,EACf,IAAY,EACZ,IAAS,EACT,MAAc,EACd,OAAY,EAAA;QAEZ,KAAK,CAAC,OAAO,CAAC,CAAC;AACf,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACrB,QAAA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;KACxB;AACF;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twilio/mcs-client",
3
- "version": "0.5.3",
3
+ "version": "0.6.0-rc.2",
4
4
  "description": "Twilio Media Content Service client library",
5
5
  "license": "MIT",
6
6
  "author": "Twilio",
@@ -33,20 +33,21 @@
33
33
  "ci": "yarn clean && yarn lint && yarn build && yarn ssri"
34
34
  },
35
35
  "dependencies": {
36
- "@babel/runtime": "^7.14.5",
37
- "@twilio/declarative-type-validator": "^0.1.11",
38
- "@twilio/operation-retrier": "^4.0.7",
36
+ "@babel/runtime": "^7.17.0",
37
+ "@twilio/declarative-type-validator": "^0.2.0-rc.0",
38
+ "@twilio/operation-retrier": "^4.0.8-rc.0",
39
39
  "core-js": "^3.17.3",
40
40
  "loglevel": "^1.7.1",
41
41
  "xmlhttprequest": "^1.8.0"
42
42
  },
43
43
  "devDependencies": {
44
- "@babel/core": "^7.14.5",
45
- "@babel/preset-env": "^7.14.5",
46
- "@babel/preset-typescript": "^7.14.5",
44
+ "@babel/core": "^7.17.0",
45
+ "@babel/plugin-transform-runtime": "^7.17.0",
46
+ "@babel/preset-env": "^7.16.11",
47
+ "@babel/preset-typescript": "^7.16.7",
47
48
  "@rollup/plugin-commonjs": "^19.0.0",
48
49
  "@rollup/plugin-json": "^4.1.0",
49
- "@rollup/plugin-node-resolve": "^13.0.0",
50
+ "@rollup/plugin-node-resolve": "^13.2.1",
50
51
  "@rollup/plugin-replace": "^3.0.0",
51
52
  "@types/express": "^4.17.7",
52
53
  "@types/jest": "^26.0.23",
@@ -69,12 +70,13 @@
69
70
  "jsdoc-strip-async-await": "^0.1.0",
70
71
  "ngrok": "^3.2.5",
71
72
  "prettier": "^2.3.0",
72
- "rollup": "^2.51.1",
73
- "rollup-plugin-polyfill-node": "^0.6.2",
73
+ "rollup": "^2.70.2",
74
+ "rollup-plugin-polyfill-node": "^0.9.0",
74
75
  "rollup-plugin-terser": "^7.0.2",
75
- "rollup-plugin-ts": "^1.4.0",
76
+ "rollup-plugin-ts": "^2.0.7",
76
77
  "ts-jest": "^27.0.2",
77
78
  "ts-node": "^8.3.0",
79
+ "tslib": "^2.4.0",
78
80
  "twilio": "^3.55.0",
79
81
  "typescript": "^4.3.2"
80
82
  },