@twilio/conversations 2.4.1-rc.0 → 2.4.1-rc.1

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/dist/media.js CHANGED
@@ -203,18 +203,22 @@ class Media {
203
203
  getContentTemporaryUrl() {
204
204
  return new mcsClient.CancellablePromise(async (resolve, reject, onCancel) => {
205
205
  var _a;
206
- const fetchMediaRequest = this._fetchMcsMedia();
206
+ const fetchMediaRequest = this.mcsMedia
207
+ ? undefined
208
+ : this._fetchMcsMedia();
207
209
  let contentUrlRequest = (_a = this.mcsMedia) === null || _a === void 0 ? void 0 : _a.getContentUrl();
208
210
  onCancel(() => {
209
- fetchMediaRequest.cancel();
211
+ if (fetchMediaRequest) {
212
+ fetchMediaRequest.cancel();
213
+ }
210
214
  if (contentUrlRequest) {
211
215
  contentUrlRequest.cancel();
212
216
  }
213
217
  });
214
218
  try {
215
- if (!this.mcsMedia) {
219
+ if (!contentUrlRequest) {
216
220
  const mcsMedia = await fetchMediaRequest;
217
- contentUrlRequest = mcsMedia.getContentUrl();
221
+ contentUrlRequest = mcsMedia === null || mcsMedia === void 0 ? void 0 : mcsMedia.getContentUrl();
218
222
  }
219
223
  resolve(contentUrlRequest ? await contentUrlRequest : null);
220
224
  }
@@ -225,28 +229,26 @@ class Media {
225
229
  }
226
230
  _fetchMcsMedia() {
227
231
  return new mcsClient.CancellablePromise(async (resolve, reject, onCancel) => {
232
+ if (this.services.mcsClient === null) {
233
+ reject(new Error("Media Content Service is unavailable"));
234
+ }
228
235
  const request = this.services.mcsClient.get(this.state.sid);
229
- if (this.services.mcsClient) {
230
- onCancel(() => request.cancel());
231
- try {
232
- this.mcsMedia = await request;
233
- resolve(this.mcsMedia);
234
- }
235
- catch (e) {
236
- reject(e);
237
- }
238
- return;
236
+ onCancel(() => request.cancel());
237
+ try {
238
+ this.mcsMedia = await request;
239
+ this.state = this.mcsMedia._state();
240
+ resolve(this.mcsMedia);
241
+ }
242
+ catch (e) {
243
+ reject(e);
239
244
  }
240
- reject(new Error("Media Content Service is unavailable"));
241
245
  });
242
246
  }
243
247
  /**
244
248
  * @internal
245
249
  */
246
250
  _state() {
247
- return this.mcsMedia
248
- ? this.mcsMedia._state()
249
- : this.state;
251
+ return this.state;
250
252
  }
251
253
  }
252
254
 
package/dist/media.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"media.js","sources":["../src/media.ts"],"sourcesContent":["import {\n McsClient,\n McsMedia,\n MediaCategory as McsMediaCategory,\n CancellablePromise,\n} from \"@twilio/mcs-client\";\n\n/**\n * Category of media. Possible values are as follows:\n * * `'media'`\n * * `'body'`\n * * `'history'`\n */\ntype MediaCategory = McsMediaCategory;\n\ninterface MediaState {\n sid: string;\n category: MediaCategory;\n filename: string | null;\n contentType: string;\n size: number;\n}\n\ninterface MediaServices {\n mcsClient: McsClient;\n}\n\n/**\n * Represents a media information for a message in a conversation.\n */\nclass Media {\n private state: MediaState;\n private services: MediaServices;\n private mcsMedia: McsMedia | null = null;\n\n /**\n * @internal\n */\n constructor(data: MediaState | McsMedia, services: MediaServices) {\n this.services = services;\n\n if (data instanceof McsMedia) {\n this.mcsMedia = data as McsMedia;\n }\n\n this.state = {\n sid: data.sid,\n category: data.category,\n filename: data.filename ?? null,\n contentType: data.contentType,\n size: data.size,\n };\n }\n\n /**\n * Server-assigned unique identifier for the media.\n */\n public get sid(): string {\n return this.state.sid;\n }\n\n /**\n * File name. Null if absent.\n */\n public get filename(): string | null {\n return this.state.filename;\n }\n\n /**\n * Content type of the media.\n */\n public get contentType(): string {\n return this.state.contentType;\n }\n\n /**\n * Size of the media in bytes.\n */\n public get size(): number {\n return this.state.size;\n }\n\n /**\n * Media category, can be one of the {@link MediaCategory} values.\n */\n public get category(): MediaCategory {\n return this.state.category;\n }\n\n /**\n * Returns the direct content URL for the media.\n *\n * This URL is impermanent, it will expire in several minutes and cannot be cached.\n * If the URL becomes expired, you need to request a new one.\n * Each call to this function produces a new temporary URL.\n */\n public getContentTemporaryUrl(): CancellablePromise<string | null> {\n return new CancellablePromise(async (resolve, reject, onCancel) => {\n const fetchMediaRequest = this._fetchMcsMedia();\n let contentUrlRequest = this.mcsMedia?.getContentUrl();\n\n onCancel(() => {\n fetchMediaRequest.cancel();\n if (contentUrlRequest) {\n contentUrlRequest.cancel();\n }\n });\n\n try {\n if (!this.mcsMedia) {\n const mcsMedia = await fetchMediaRequest;\n contentUrlRequest = mcsMedia.getContentUrl();\n }\n resolve(contentUrlRequest ? await contentUrlRequest : null);\n } catch (e) {\n reject(e);\n }\n });\n }\n\n private _fetchMcsMedia(): CancellablePromise<McsMedia> {\n return new CancellablePromise(async (resolve, reject, onCancel) => {\n const request = this.services.mcsClient.get(this.state.sid);\n if (this.services.mcsClient) {\n onCancel(() => request.cancel());\n\n try {\n this.mcsMedia = await request;\n resolve(this.mcsMedia);\n } catch (e) {\n reject(e);\n }\n return;\n }\n\n reject(new Error(\"Media Content Service is unavailable\"));\n });\n }\n\n /**\n * @internal\n */\n _state(): Record<string, unknown> {\n return this.mcsMedia\n ? this.mcsMedia._state()\n : (this.state as unknown as Record<string, unknown>);\n }\n}\n\nexport { Media, MediaState, MediaServices, MediaCategory };\n"],"names":["McsMedia","CancellablePromise"],"mappings":"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"}
1
+ {"version":3,"file":"media.js","sources":["../src/media.ts"],"sourcesContent":["import {\n McsClient,\n McsMedia,\n McsMediaCategory,\n McsMediaState,\n CancellablePromise,\n} from \"@twilio/mcs-client\";\n\n/**\n * Category of media. Possible values are as follows:\n * * `'media'`\n * * `'body'`\n * * `'history'`\n */\ntype MediaCategory = McsMediaCategory;\n\ninterface MediaServices {\n mcsClient: McsClient;\n}\n\n/**\n * Represents a media information for a message in a conversation.\n */\nclass Media {\n private state: McsMediaState;\n private services: MediaServices;\n private mcsMedia: McsMedia | null = null;\n\n /**\n * @internal\n */\n constructor(data: McsMediaState | McsMedia, services: MediaServices) {\n this.services = services;\n\n if (data instanceof McsMedia) {\n this.mcsMedia = data as McsMedia;\n }\n\n this.state = {\n sid: data.sid,\n category: data.category,\n filename: data.filename ?? null,\n contentType: data.contentType,\n size: data.size,\n };\n }\n\n /**\n * Server-assigned unique identifier for the media.\n */\n public get sid(): string {\n return this.state.sid;\n }\n\n /**\n * File name. Null if absent.\n */\n public get filename(): string | null {\n return this.state.filename;\n }\n\n /**\n * Content type of the media.\n */\n public get contentType(): string {\n return this.state.contentType;\n }\n\n /**\n * Size of the media in bytes.\n */\n public get size(): number {\n return this.state.size;\n }\n\n /**\n * Media category, can be one of the {@link MediaCategory} values.\n */\n public get category(): MediaCategory {\n return this.state.category;\n }\n\n /**\n * Returns the direct content URL for the media.\n *\n * This URL is impermanent, it will expire in several minutes and cannot be cached.\n * If the URL becomes expired, you need to request a new one.\n * Each call to this function produces a new temporary URL.\n */\n public getContentTemporaryUrl(): CancellablePromise<string | null> {\n return new CancellablePromise(async (resolve, reject, onCancel) => {\n const fetchMediaRequest = this.mcsMedia\n ? undefined\n : this._fetchMcsMedia();\n let contentUrlRequest = this.mcsMedia?.getContentUrl();\n\n onCancel(() => {\n if (fetchMediaRequest) {\n fetchMediaRequest.cancel();\n }\n if (contentUrlRequest) {\n contentUrlRequest.cancel();\n }\n });\n\n try {\n if (!contentUrlRequest) {\n const mcsMedia = await fetchMediaRequest;\n contentUrlRequest = mcsMedia?.getContentUrl();\n }\n resolve(contentUrlRequest ? await contentUrlRequest : null);\n } catch (e) {\n reject(e);\n }\n });\n }\n\n private _fetchMcsMedia(): CancellablePromise<McsMedia> {\n return new CancellablePromise(async (resolve, reject, onCancel) => {\n if (this.services.mcsClient === null) {\n reject(new Error(\"Media Content Service is unavailable\"));\n }\n\n const request = this.services.mcsClient.get(this.state.sid);\n onCancel(() => request.cancel());\n\n try {\n this.mcsMedia = await request;\n this.state = this.mcsMedia._state();\n resolve(this.mcsMedia);\n } catch (e) {\n reject(e);\n }\n });\n }\n\n /**\n * @internal\n */\n _state(): McsMediaState {\n return this.state;\n }\n}\n\nexport { Media, MediaServices, MediaCategory };\n"],"names":["McsMedia","CancellablePromise"],"mappings":"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"}
@@ -139,7 +139,7 @@ var global =
139
139
 
140
140
  Object.defineProperty(exports, '__esModule', { value: true });
141
141
 
142
- var version = "2.4.1-rc.0";
142
+ var version = "2.4.1-rc.1";
143
143
 
144
144
  exports.version = version;
145
145
  //# sourceMappingURL=package.json.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@twilio/conversations",
3
- "version": "2.4.1-rc.0",
3
+ "version": "2.4.1-rc.1",
4
4
  "description": "Twilio Conversations client library",
5
5
  "main": "./builds/lib.js",
6
6
  "browser": "./builds/browser.js",
@@ -38,7 +38,7 @@
38
38
  "@babel/runtime": "^7.17.0",
39
39
  "@twilio/declarative-type-validator": "^0.2.6-rc.0",
40
40
  "@twilio/deprecation-decorator": "^0.2.4-rc.0",
41
- "@twilio/mcs-client": "^0.6.6-rc.0",
41
+ "@twilio/mcs-client": "^0.6.6-rc.1",
42
42
  "@twilio/notifications": "^2.0.5-rc.0",
43
43
  "@twilio/operation-retrier": "^4.0.14-rc.0",
44
44
  "@twilio/replay-event-emitter": "^0.3.6-rc.0",