rx-player 3.29.0-dev.2022110200 → 3.29.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.
Files changed (106) hide show
  1. package/CHANGELOG.md +2 -2
  2. package/VERSION +1 -1
  3. package/dist/_esm5.processed/compat/browser_compatibility_types.d.ts +1 -1
  4. package/dist/_esm5.processed/compat/browser_detection.js +10 -5
  5. package/dist/_esm5.processed/compat/eme/close_session.js +1 -1
  6. package/dist/_esm5.processed/compat/eme/custom_media_keys/index.d.ts +1 -1
  7. package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys_constructor.d.ts +1 -1
  8. package/dist/_esm5.processed/compat/eme/load_session.js +1 -1
  9. package/dist/_esm5.processed/compat/event_listeners.d.ts +1 -1
  10. package/dist/_esm5.processed/core/adaptive/adaptive_representation_selector.d.ts +3 -3
  11. package/dist/_esm5.processed/core/adaptive/network_analyzer.d.ts +1 -1
  12. package/dist/_esm5.processed/core/api/option_utils.d.ts +2 -2
  13. package/dist/_esm5.processed/core/api/playback_observer.d.ts +1 -1
  14. package/dist/_esm5.processed/core/api/public_api.js +2 -2
  15. package/dist/_esm5.processed/core/decrypt/attach_media_keys.js +1 -1
  16. package/dist/_esm5.processed/core/decrypt/content_decryptor.js +21 -18
  17. package/dist/_esm5.processed/core/decrypt/create_or_load_session.d.ts +1 -1
  18. package/dist/_esm5.processed/core/decrypt/create_or_load_session.js +1 -1
  19. package/dist/_esm5.processed/core/decrypt/create_session.d.ts +1 -1
  20. package/dist/_esm5.processed/core/decrypt/create_session.js +1 -1
  21. package/dist/_esm5.processed/core/decrypt/dispose_decryption_resources.js +1 -1
  22. package/dist/_esm5.processed/core/decrypt/find_key_system.d.ts +1 -1
  23. package/dist/_esm5.processed/core/decrypt/find_key_system.js +1 -1
  24. package/dist/_esm5.processed/core/decrypt/get_media_keys.js +1 -1
  25. package/dist/_esm5.processed/core/decrypt/init_media_keys.js +1 -1
  26. package/dist/_esm5.processed/core/decrypt/set_server_certificate.js +1 -1
  27. package/dist/_esm5.processed/core/decrypt/types.d.ts +1 -1
  28. package/dist/_esm5.processed/core/decrypt/utils/check_key_statuses.d.ts +1 -1
  29. package/dist/_esm5.processed/core/decrypt/utils/clean_old_loaded_sessions.js +1 -1
  30. package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.js +1 -1
  31. package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +1 -1
  32. package/dist/_esm5.processed/core/fetchers/segment/prioritized_segment_fetcher.d.ts +1 -1
  33. package/dist/_esm5.processed/core/fetchers/segment/prioritized_segment_fetcher.js +2 -1
  34. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.d.ts +1 -1
  35. package/dist/_esm5.processed/core/fetchers/segment/segment_fetcher.js +1 -1
  36. package/dist/_esm5.processed/core/fetchers/segment/task_prioritizer.d.ts +1 -1
  37. package/dist/_esm5.processed/core/fetchers/utils/schedule_request.js +1 -1
  38. package/dist/_esm5.processed/core/init/content_time_boundaries_observer.d.ts +1 -1
  39. package/dist/_esm5.processed/core/init/initial_seek_and_play.d.ts +1 -1
  40. package/dist/_esm5.processed/core/init/link_drm_and_content.d.ts +1 -1
  41. package/dist/_esm5.processed/core/init/load_on_media_source.js +5 -7
  42. package/dist/_esm5.processed/core/init/manifest_update_scheduler.d.ts +2 -2
  43. package/dist/_esm5.processed/core/init/stream_events_emitter/types.d.ts +1 -1
  44. package/dist/_esm5.processed/core/init/types.d.ts +4 -4
  45. package/dist/_esm5.processed/core/segment_buffers/garbage_collector.js +1 -1
  46. package/dist/_esm5.processed/core/segment_buffers/implementations/types.d.ts +2 -2
  47. package/dist/_esm5.processed/core/segment_buffers/segment_buffers_store.d.ts +3 -3
  48. package/dist/_esm5.processed/core/stream/orchestrator/stream_orchestrator.d.ts +2 -2
  49. package/dist/_esm5.processed/core/stream/period/get_adaptation_switch_strategy.d.ts +1 -1
  50. package/dist/_esm5.processed/core/stream/period/period_stream.d.ts +1 -1
  51. package/dist/_esm5.processed/core/stream/representation/append_segment_to_buffer.js +1 -1
  52. package/dist/_esm5.processed/core/stream/representation/downloading_queue.d.ts +3 -3
  53. package/dist/_esm5.processed/core/stream/representation/force_garbage_collection.js +2 -5
  54. package/dist/_esm5.processed/core/stream/types.d.ts +5 -5
  55. package/dist/_esm5.processed/default_config.d.ts +1 -1
  56. package/dist/_esm5.processed/errors/error_codes.d.ts +7 -7
  57. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.js +5 -5
  58. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/types.d.ts +2 -2
  59. package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/video_thumbnail_loader.js +1 -1
  60. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.d.ts +1 -1
  61. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/capabilities.d.ts +1 -1
  62. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.d.ts +1 -1
  63. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/index.d.ts +1 -1
  64. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.d.ts +1 -1
  65. package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/types.d.ts +1 -1
  66. package/dist/_esm5.processed/features/types.d.ts +10 -10
  67. package/dist/_esm5.processed/manifest/period.d.ts +1 -1
  68. package/dist/_esm5.processed/manifest/types.d.ts +1 -1
  69. package/dist/_esm5.processed/parsers/manifest/dash/common/infer_adaptation_type.d.ts +1 -1
  70. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_adaptation_sets.d.ts +1 -1
  71. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_mpd.d.ts +1 -1
  72. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_periods.d.ts +2 -2
  73. package/dist/_esm5.processed/parsers/manifest/dash/common/parse_representations.d.ts +1 -1
  74. package/dist/_esm5.processed/parsers/manifest/dash/node_parser_types.d.ts +1 -1
  75. package/dist/_esm5.processed/parsers/manifest/dash/parsers_types.d.ts +2 -2
  76. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +1 -1
  77. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.js +2 -4
  78. package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/parsers_stack.d.ts +2 -2
  79. package/dist/_esm5.processed/parsers/manifest/local/types.d.ts +2 -2
  80. package/dist/_esm5.processed/parsers/manifest/metaplaylist/metaplaylist_parser.d.ts +1 -1
  81. package/dist/_esm5.processed/parsers/manifest/types.d.ts +2 -2
  82. package/dist/_esm5.processed/parsers/texttracks/ttml/get_styling.d.ts +1 -1
  83. package/dist/_esm5.processed/parsers/texttracks/types.d.ts +2 -2
  84. package/dist/_esm5.processed/public_types.d.ts +14 -14
  85. package/dist/_esm5.processed/transports/dash/image_pipelines.js +1 -1
  86. package/dist/_esm5.processed/transports/smooth/isobmff/create_init_segment.d.ts +1 -1
  87. package/dist/_esm5.processed/transports/smooth/pipelines.js +1 -1
  88. package/dist/_esm5.processed/transports/types.d.ts +11 -11
  89. package/dist/_esm5.processed/utils/assert.d.ts +1 -1
  90. package/dist/_esm5.processed/utils/deep_merge.d.ts +2 -2
  91. package/dist/_esm5.processed/utils/event_emitter.d.ts +2 -2
  92. package/dist/_esm5.processed/utils/logger.d.ts +2 -2
  93. package/dist/_esm5.processed/utils/request/fetch.js +1 -1
  94. package/dist/_esm5.processed/utils/task_canceller.d.ts +1 -1
  95. package/dist/rx-player.js +69 -70
  96. package/dist/rx-player.min.js +1 -1
  97. package/package.json +20 -20
  98. package/sonar-project.properties +1 -1
  99. package/src/compat/browser_detection.ts +15 -5
  100. package/src/core/api/public_api.ts +2 -2
  101. package/src/core/decrypt/content_decryptor.ts +13 -15
  102. package/src/core/fetchers/segment/prioritized_segment_fetcher.ts +3 -1
  103. package/src/core/init/load_on_media_source.ts +5 -7
  104. package/src/core/stream/representation/force_garbage_collection.ts +1 -4
  105. package/src/experimental/tools/VideoThumbnailLoader/remove_buffer_around_time.ts +6 -5
  106. package/src/parsers/manifest/dash/wasm-parser/ts/generators/BaseURL.ts +2 -4
package/CHANGELOG.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Changelog
2
2
 
3
- ## v3.29.0-dev.2022110200 (2022-11-02)
3
+ ## v3.29.0 (2022-11-16)
4
4
 
5
5
  ### Features
6
6
 
@@ -12,7 +12,7 @@
12
12
 
13
13
  ### Deprecated
14
14
 
15
- - DRM: Deprecate `keySystems[].throwOnLicenseExpiration` `loadVideo` option as this boolean can be replaced with more customability by the new `keySystems[].onKeyExpiration` `loadVideo` option [#1157]
15
+ - DRM: Deprecate `keySystems[].throwOnLicenseExpiration` `loadVideo` option as this boolean can be replaced with more customizability by the new `keySystems[].onKeyExpiration` `loadVideo` option [#1157]
16
16
 
17
17
  ### Bug fixes
18
18
 
package/VERSION CHANGED
@@ -1 +1 @@
1
- 3.29.0-dev.2022110200
1
+ 3.29.0
@@ -22,7 +22,7 @@ interface ICompatMediaKeysConstructor {
22
22
  * Browser implementation of a VTTCue constructor.
23
23
  * TODO open TypeScript issue about it?
24
24
  */
25
- declare type ICompatVTTCueConstructor = new (start: number, end: number, cueText: string) => ICompatVTTCue;
25
+ type ICompatVTTCueConstructor = new (start: number, end: number, cueText: string) => ICompatVTTCue;
26
26
  /** Browser implementation for a single VTTCue. */
27
27
  interface ICompatVTTCue {
28
28
  align: string;
@@ -35,11 +35,16 @@ var isSamsungBrowser = !isNode &&
35
35
  var isTizen = !isNode &&
36
36
  /Tizen/.test(navigator.userAgent);
37
37
  var isWebOs = !isNode &&
38
- /Web0S/.test(navigator.userAgent);
39
- var isWebOs2021 = !isNode &&
40
- /WebOS.TV-2021/.test(navigator.userAgent);
41
- var isWebOs2022 = !isNode &&
42
- /WebOS.TV-2022/.test(navigator.userAgent);
38
+ navigator.userAgent.indexOf("Web0S") >= 0;
39
+ // Inspired form: http://webostv.developer.lge.com/discover/specifications/web-engine/
40
+ // Note: even that page doesn't correspond to what we've actually seen in the
41
+ // wild
42
+ var isWebOs2021 = isWebOs &&
43
+ (/[Ww]eb[O0]S.TV-2021/.test(navigator.userAgent) ||
44
+ /[Cc]hr[o0]me\/79/.test(navigator.userAgent));
45
+ var isWebOs2022 = isWebOs &&
46
+ (/[Ww]eb[O0]S.TV-2022/.test(navigator.userAgent) ||
47
+ /[Cc]hr[o0]me\/87/.test(navigator.userAgent));
43
48
  /** `true` on Safari on a PC platform (i.e. not iPhone / iPad etc.) */
44
49
  var isSafariDesktop = !isNode && (Object.prototype.toString.call(window.HTMLElement).indexOf("Constructor") >= 0 ||
45
50
  ((_b = (_a = window.safari) === null || _a === void 0 ? void 0 : _a.pushNotification) === null || _b === void 0 ? void 0 : _b.toString()) ===
@@ -28,7 +28,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
28
28
  function verb(n) { return function (v) { return step([n, v]); }; }
29
29
  function step(op) {
30
30
  if (f) throw new TypeError("Generator is already executing.");
31
- while (_) try {
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
32
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
33
  if (y = 0, t) op = [op[0] & 2, t.value];
34
34
  switch (op[0]) {
@@ -16,7 +16,7 @@
16
16
  import CustomMediaKeySystemAccess from "./../custom_key_system_access";
17
17
  import { ICustomMediaKeys, ICustomMediaKeySession } from "./types";
18
18
  /** Generic implementation of the navigator.requestMediaKeySystemAccess API. */
19
- declare type ICompatRequestMediaKeySystemAccessFn = (keyType: string, config: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess | CustomMediaKeySystemAccess>;
19
+ type ICompatRequestMediaKeySystemAccessFn = (keyType: string, config: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess | CustomMediaKeySystemAccess>;
20
20
  declare let requestMediaKeySystemAccess: ICompatRequestMediaKeySystemAccessFn | null;
21
21
  /**
22
22
  * Set the given MediaKeys on the given HTMLMediaElement.
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- declare type IWebKitMediaKeys = unknown;
16
+ type IWebKitMediaKeys = unknown;
17
17
  interface IWebKitMediaKeysConstructor {
18
18
  new (keySystem: string): IWebKitMediaKeys;
19
19
  isTypeSupported: (keyType: string) => boolean;
@@ -28,7 +28,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
28
28
  function verb(n) { return function (v) { return step([n, v]); }; }
29
29
  function step(op) {
30
30
  if (f) throw new TypeError("Generator is already executing.");
31
- while (_) try {
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
32
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
33
  if (y = 0, t) op = [op[0] & 2, t.value];
34
34
  switch (op[0]) {
@@ -26,7 +26,7 @@ export interface IEventEmitterLike {
26
26
  addEventListener: (eventName: string, handler: () => void) => void;
27
27
  removeEventListener: (eventName: string, handler: () => void) => void;
28
28
  }
29
- export declare type IEventTargetLike = HTMLElement | IEventEmitterLike | IEventEmitter<unknown>;
29
+ export type IEventTargetLike = HTMLElement | IEventEmitterLike | IEventEmitter<unknown>;
30
30
  /**
31
31
  * Returns a reference:
32
32
  * - Set to `true` when the current page is considered visible and active.
@@ -146,8 +146,8 @@ export interface IMetricsCallbackPayload {
146
146
  segment: ISegment;
147
147
  };
148
148
  }
149
- export declare type IRequestBeginCallbackPayload = IPendingRequestStoreBegin;
150
- export declare type IRequestProgressCallbackPayload = IPendingRequestStoreProgress;
149
+ export type IRequestBeginCallbackPayload = IPendingRequestStoreBegin;
150
+ export type IRequestProgressCallbackPayload = IPendingRequestStoreProgress;
151
151
  export interface IRequestEndCallbackPayload {
152
152
  /**
153
153
  * Same `id` value used to identify that request at the time the corresponding
@@ -301,7 +301,7 @@ export interface IRepresentationEstimatorArguments {
301
301
  * Type of the function returned by `createAdaptiveRepresentationSelector`,
302
302
  * allowing to estimate the most adapted `Representation`.
303
303
  */
304
- export declare type IRepresentationEstimator = (
304
+ export type IRepresentationEstimator = (
305
305
  /** Information on the content for which a Representation will be chosen */
306
306
  context: {
307
307
  manifest: Manifest;
@@ -18,7 +18,7 @@ import { IRepresentationEstimatorPlaybackObservation } from "./adaptive_represen
18
18
  import BandwidthEstimator from "./utils/bandwidth_estimator";
19
19
  import { IRequestInfo } from "./utils/pending_requests_store";
20
20
  /** Object describing the current playback conditions. */
21
- declare type IPlaybackConditionsInfo = Pick<IRepresentationEstimatorPlaybackObservation, "bufferGap" | "position" | "speed" | "duration">;
21
+ type IPlaybackConditionsInfo = Pick<IRepresentationEstimatorPlaybackObservation, "bufferGap" | "position" | "speed" | "duration">;
22
22
  /**
23
23
  * Estimate the __VERY__ recent bandwidth based on a single unfinished request.
24
24
  * Useful when the current bandwidth seemed to have fallen quickly.
@@ -16,7 +16,7 @@
16
16
  import { ISupplementaryImageTrack, ISupplementaryTextTrack } from "../../manifest";
17
17
  import { IAudioTrackPreference, IAudioTrackSwitchingMode, IConstructorOptions, IKeySystemOption, ILoadedManifestFormat, ILoadVideoOptions, IManifestLoader, INetworkConfigOption, IRepresentationFilter, ISegmentLoader, IServerSyncInfos, ITextTrackPreference, IVideoTrackPreference } from "../../public_types";
18
18
  /** Value once parsed for the `startAt` option of the `loadVideo` method. */
19
- export declare type IParsedStartAtOption = {
19
+ export type IParsedStartAtOption = {
20
20
  position: number;
21
21
  } | {
22
22
  wallClockTime: number;
@@ -104,7 +104,7 @@ interface IParsedLoadVideoOptionsHTML extends IParsedLoadVideoOptionsBase {
104
104
  * Type enumerating all possible forms for the parsed options of the RxPlayer's
105
105
  * `loadVideo` method.
106
106
  */
107
- export declare type IParsedLoadVideoOptions = IParsedLoadVideoOptionsNative | IParsedLoadVideoOptionsHTML;
107
+ export type IParsedLoadVideoOptions = IParsedLoadVideoOptionsNative | IParsedLoadVideoOptionsHTML;
108
108
  /**
109
109
  * Parse options given to the API constructor and set default options as found
110
110
  * in the config.
@@ -174,7 +174,7 @@ export default class PlaybackObserver {
174
174
  private _generateInitialObservation;
175
175
  }
176
176
  /** "Event" that triggered the playback observation. */
177
- export declare type IPlaybackObserverEventType =
177
+ export type IPlaybackObserverEventType =
178
178
  /** First playback observation automatically emitted. */
179
179
  "init" | // set once on first emit
180
180
  /** Regularly emitted playback observation when no event happened in a long time. */
@@ -87,7 +87,7 @@ var Player = /** @class */ (function (_super) {
87
87
  // Workaround to support Firefox autoplay on FF 42.
88
88
  // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1194624
89
89
  videoElement.preload = "auto";
90
- _this.version = /* PLAYER_VERSION */ "3.29.0-dev.2022110200";
90
+ _this.version = /* PLAYER_VERSION */ "3.29.0";
91
91
  _this.log = log;
92
92
  _this.state = "STOPPED";
93
93
  _this.videoElement = videoElement;
@@ -2312,5 +2312,5 @@ var Player = /** @class */ (function (_super) {
2312
2312
  };
2313
2313
  return Player;
2314
2314
  }(EventEmitter));
2315
- Player.version = /* PLAYER_VERSION */ "3.29.0-dev.2022110200";
2315
+ Player.version = /* PLAYER_VERSION */ "3.29.0";
2316
2316
  export default Player;
@@ -28,7 +28,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
28
28
  function verb(n) { return function (v) { return step([n, v]); }; }
29
29
  function step(op) {
30
30
  if (f) throw new TypeError("Generator is already executing.");
31
- while (_) try {
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
32
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
33
  if (y = 0, t) op = [op[0] & 2, t.value];
34
34
  switch (op[0]) {
@@ -54,7 +54,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
54
54
  function verb(n) { return function (v) { return step([n, v]); }; }
55
55
  function step(op) {
56
56
  if (f) throw new TypeError("Generator is already executing.");
57
- while (_) try {
57
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
58
58
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
59
59
  if (y = 0, t) op = [op[0] & 2, t.value];
60
60
  switch (op[0]) {
@@ -424,10 +424,9 @@ var ContentDecryptor = /** @class */ (function (_super) {
424
424
  sub = SessionEventsListener(mediaKeySession, options, mediaKeySystemAccess.keySystem)
425
425
  .subscribe({
426
426
  next: function (evt) {
427
- switch (evt.type) {
428
- case "warning":
429
- _this.trigger("warning", evt.value);
430
- return;
427
+ if (evt.type === "warning") {
428
+ _this.trigger("warning", evt.value);
429
+ return;
431
430
  }
432
431
  var linkedKeys = getKeyIdsLinkedToSession(initializationData, sessionInfo.record, options.singleLicensePer, sessionInfo.source === "created-session" /* MediaKeySessionLoadingType.Created */, evt.value.whitelistedKeyIds, evt.value.blacklistedKeyIds);
433
432
  sessionInfo.record.associateKeyIds(linkedKeys.whitelisted);
@@ -728,20 +727,23 @@ function updateDecipherability(manifest, whitelistedKeyIds, blacklistedKeyIds, d
728
727
  }
729
728
  var contentKIDs = representation.contentProtections.keyIds;
730
729
  if (contentKIDs !== undefined) {
731
- for (var i = 0; i < contentKIDs.length; i++) {
732
- var elt = contentKIDs[i];
733
- for (var j = 0; j < blacklistedKeyIds.length; j++) {
734
- if (areKeyIdsEqual(blacklistedKeyIds[j], elt.keyId)) {
730
+ for (var _i = 0, contentKIDs_1 = contentKIDs; _i < contentKIDs_1.length; _i++) {
731
+ var elt = contentKIDs_1[_i];
732
+ for (var _a = 0, blacklistedKeyIds_1 = blacklistedKeyIds; _a < blacklistedKeyIds_1.length; _a++) {
733
+ var blacklistedKeyId = blacklistedKeyIds_1[_a];
734
+ if (areKeyIdsEqual(blacklistedKeyId, elt.keyId)) {
735
735
  return false;
736
736
  }
737
737
  }
738
- for (var j = 0; j < whitelistedKeyIds.length; j++) {
739
- if (areKeyIdsEqual(whitelistedKeyIds[j], elt.keyId)) {
738
+ for (var _b = 0, whitelistedKeyIds_1 = whitelistedKeyIds; _b < whitelistedKeyIds_1.length; _b++) {
739
+ var whitelistedKeyId = whitelistedKeyIds_1[_b];
740
+ if (areKeyIdsEqual(whitelistedKeyId, elt.keyId)) {
740
741
  return true;
741
742
  }
742
743
  }
743
- for (var j = 0; j < delistedKeyIds.length; j++) {
744
- if (areKeyIdsEqual(delistedKeyIds[j], elt.keyId)) {
744
+ for (var _c = 0, delistedKeyIds_1 = delistedKeyIds; _c < delistedKeyIds_1.length; _c++) {
745
+ var delistedKeyId = delistedKeyIds_1[_c];
746
+ if (areKeyIdsEqual(delistedKeyId, elt.keyId)) {
745
747
  return undefined;
746
748
  }
747
749
  }
@@ -763,12 +765,12 @@ function blackListProtectionData(manifest, initData) {
763
765
  return false;
764
766
  }
765
767
  var segmentProtections = (_b = (_a = representation.contentProtections) === null || _a === void 0 ? void 0 : _a.initData) !== null && _b !== void 0 ? _b : [];
766
- var _loop_1 = function (i) {
768
+ var _loop_1 = function (protection) {
767
769
  if (initData.type === undefined ||
768
- segmentProtections[i].type === initData.type) {
770
+ protection.type === initData.type) {
769
771
  var containedInitData = initData.values.getFormattedValues()
770
772
  .every(function (undecipherableVal) {
771
- return segmentProtections[i].values.some(function (currVal) {
773
+ return protection.values.some(function (currVal) {
772
774
  return (undecipherableVal.systemId === undefined ||
773
775
  currVal.systemId === undecipherableVal.systemId) &&
774
776
  areArraysOfNumbersEqual(currVal.data, undecipherableVal.data);
@@ -779,8 +781,9 @@ function blackListProtectionData(manifest, initData) {
779
781
  }
780
782
  }
781
783
  };
782
- for (var i = 0; i < segmentProtections.length; i++) {
783
- var state_1 = _loop_1(i);
784
+ for (var _i = 0, segmentProtections_1 = segmentProtections; _i < segmentProtections_1.length; _i++) {
785
+ var protection = segmentProtections_1[_i];
786
+ var state_1 = _loop_1(protection);
784
787
  if (typeof state_1 === "object")
785
788
  return state_1.value;
786
789
  }
@@ -60,4 +60,4 @@ export interface ILoadedPersistentSessionEvent {
60
60
  value: IMediaKeySessionContext;
61
61
  }
62
62
  /** Every possible result returned by `createOrLoadSession`. */
63
- export declare type ICreateOrLoadSessionResult = ICreatedSession | ILoadedOpenSession | ILoadedPersistentSessionEvent;
63
+ export type ICreateOrLoadSessionResult = ICreatedSession | ILoadedOpenSession | ILoadedPersistentSessionEvent;
@@ -28,7 +28,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
28
28
  function verb(n) { return function (v) { return step([n, v]); }; }
29
29
  function step(op) {
30
30
  if (f) throw new TypeError("Generator is already executing.");
31
- while (_) try {
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
32
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
33
  if (y = 0, t) op = [op[0] & 2, t.value];
34
34
  switch (op[0]) {
@@ -50,4 +50,4 @@ export interface IPersistentSessionRecoveryEvent {
50
50
  keySessionRecord: KeySessionRecord;
51
51
  };
52
52
  }
53
- export declare type ICreateSessionEvent = INewSessionCreatedEvent | IPersistentSessionRecoveryEvent;
53
+ export type ICreateSessionEvent = INewSessionCreatedEvent | IPersistentSessionRecoveryEvent;
@@ -28,7 +28,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
28
28
  function verb(n) { return function (v) { return step([n, v]); }; }
29
29
  function step(op) {
30
30
  if (f) throw new TypeError("Generator is already executing.");
31
- while (_) try {
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
32
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
33
  if (y = 0, t) op = [op[0] & 2, t.value];
34
34
  switch (op[0]) {
@@ -28,7 +28,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
28
28
  function verb(n) { return function (v) { return step([n, v]); }; }
29
29
  function step(op) {
30
30
  if (f) throw new TypeError("Generator is already executing.");
31
- while (_) try {
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
32
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
33
  if (y = 0, t) op = [op[0] & 2, t.value];
34
34
  switch (op[0]) {
@@ -28,7 +28,7 @@ export interface ICreateMediaKeySystemAccessEvent {
28
28
  type: "create-media-key-system-access";
29
29
  value: IMediaKeySystemAccessInfos;
30
30
  }
31
- export declare type IFoundMediaKeySystemAccessEvent = IReuseMediaKeySystemAccessEvent | ICreateMediaKeySystemAccessEvent;
31
+ export type IFoundMediaKeySystemAccessEvent = IReuseMediaKeySystemAccessEvent | ICreateMediaKeySystemAccessEvent;
32
32
  /**
33
33
  * Try to find a compatible key system from the keySystems array given.
34
34
  *
@@ -28,7 +28,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
28
28
  function verb(n) { return function (v) { return step([n, v]); }; }
29
29
  function step(op) {
30
30
  if (f) throw new TypeError("Generator is already executing.");
31
- while (_) try {
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
32
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
33
  if (y = 0, t) op = [op[0] & 2, t.value];
34
34
  switch (op[0]) {
@@ -28,7 +28,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
28
28
  function verb(n) { return function (v) { return step([n, v]); }; }
29
29
  function step(op) {
30
30
  if (f) throw new TypeError("Generator is already executing.");
31
- while (_) try {
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
32
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
33
  if (y = 0, t) op = [op[0] & 2, t.value];
34
34
  switch (op[0]) {
@@ -28,7 +28,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
28
28
  function verb(n) { return function (v) { return step([n, v]); }; }
29
29
  function step(op) {
30
30
  if (f) throw new TypeError("Generator is already executing.");
31
- while (_) try {
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
32
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
33
  if (y = 0, t) op = [op[0] & 2, t.value];
34
34
  switch (op[0]) {
@@ -28,7 +28,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
28
28
  function verb(n) { return function (v) { return step([n, v]); }; }
29
29
  function step(op) {
30
30
  if (f) throw new TypeError("Generator is already executing.");
31
- while (_) try {
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
32
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
33
  if (y = 0, t) op = [op[0] & 2, t.value];
34
34
  switch (op[0]) {
@@ -70,7 +70,7 @@ export interface IEMEWarningEvent {
70
70
  type: "warning";
71
71
  value: IPlayerError;
72
72
  }
73
- export declare type ILicense = BufferSource | ArrayBuffer;
73
+ export type ILicense = BufferSource | ArrayBuffer;
74
74
  /** Segment protection sent by the RxPlayer to the `ContentDecryptor`. */
75
75
  export interface IContentProtection {
76
76
  /** The content linked to that segment protection data. */
@@ -33,7 +33,7 @@ export declare class DecommissionedSessionError extends Error {
33
33
  */
34
34
  constructor(reason: IPlayerError);
35
35
  }
36
- export declare type IKeyStatusesCheckingOptions = Pick<IKeySystemOption, "throwOnLicenseExpiration" | "fallbackOn" | "onKeyExpiration">;
36
+ export type IKeyStatusesCheckingOptions = Pick<IKeySystemOption, "throwOnLicenseExpiration" | "fallbackOn" | "onKeyExpiration">;
37
37
  /**
38
38
  * Look at the current key statuses in the sessions and construct the
39
39
  * appropriate warnings, whitelisted and blacklisted key ids.
@@ -28,7 +28,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
28
28
  function verb(n) { return function (v) { return step([n, v]); }; }
29
29
  function step(op) {
30
30
  if (f) throw new TypeError("Generator is already executing.");
31
- while (_) try {
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
32
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
33
  if (y = 0, t) op = [op[0] & 2, t.value];
34
34
  switch (op[0]) {
@@ -39,7 +39,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
39
39
  function verb(n) { return function (v) { return step([n, v]); }; }
40
40
  function step(op) {
41
41
  if (f) throw new TypeError("Generator is already executing.");
42
- while (_) try {
42
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
43
43
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
44
44
  if (y = 0, t) op = [op[0] & 2, t.value];
45
45
  switch (op[0]) {
@@ -28,7 +28,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
28
28
  function verb(n) { return function (v) { return step([n, v]); }; }
29
29
  function step(op) {
30
30
  if (f) throw new TypeError("Generator is already executing.");
31
- while (_) try {
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
32
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
33
  if (y = 0, t) op = [op[0] & 2, t.value];
34
34
  switch (op[0]) {
@@ -35,4 +35,4 @@ export interface IPrioritizedSegmentFetcher<TSegmentDataType> {
35
35
  updatePriority: (task: Promise<void>, priority: number) => void;
36
36
  }
37
37
  /** Callbacks awaited by `applyPrioritizerToSegmentFetcher`. */
38
- export declare type IPrioritizedSegmentFetcherCallbacks<TSegmentDataType> = ISegmentFetcherCallbacks<TSegmentDataType> & ITaskPrioritizerCallbacks;
38
+ export type IPrioritizedSegmentFetcherCallbacks<TSegmentDataType> = ISegmentFetcherCallbacks<TSegmentDataType> & ITaskPrioritizerCallbacks;
@@ -37,10 +37,11 @@ export default function applyPrioritizerToSegmentFetcher(prioritizer, fetcher) {
37
37
  * @param {Object} content - content to request
38
38
  * @param {Number} priority - priority at which the content should be requested.
39
39
  * Lower number == higher priority.
40
+ * @param {Object} callbacks
41
+ * @param {Object} cancelSignal
40
42
  * @returns {Promise}
41
43
  */
42
44
  createRequest: function (content, priority, callbacks, cancelSignal) {
43
- if (priority === void 0) { priority = 0; }
44
45
  var givenTask = function (innerCancelSignal) {
45
46
  return fetcher(content, callbacks, innerCancelSignal);
46
47
  };
@@ -42,7 +42,7 @@ export default function createSegmentFetcher<TLoadedFormat, TSegmentDataType>(bu
42
42
  * The returned Promise only gives an indication of if the request ended with
43
43
  * success or on error.
44
44
  */
45
- export declare type ISegmentFetcher<TSegmentDataType> = (
45
+ export type ISegmentFetcher<TSegmentDataType> = (
46
46
  /** Information on the segment wanted. */
47
47
  content: ISegmentLoaderContent,
48
48
  /** Callbacks the `ISegmentFetcher` will call as it loads the data. */
@@ -28,7 +28,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
28
28
  function verb(n) { return function (v) { return step([n, v]); }; }
29
29
  function step(op) {
30
30
  if (f) throw new TypeError("Generator is already executing.");
31
- while (_) try {
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
32
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
33
  if (y = 0, t) op = [op[0] & 2, t.value];
34
34
  switch (op[0]) {
@@ -92,7 +92,7 @@ export default class TaskPrioritizer<T> {
92
92
  *
93
93
  * A same task might be re-run multiple times.
94
94
  */
95
- export declare type ITaskFn<T> = (cancellationSignal: CancellationSignal) => Promise<T>;
95
+ export type ITaskFn<T> = (cancellationSignal: CancellationSignal) => Promise<T>;
96
96
  /** Options to give to the `TaskPrioritizer`. */
97
97
  export interface IPrioritizerOptions {
98
98
  /** @see IPrioritizerPrioritySteps */
@@ -28,7 +28,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
28
28
  function verb(n) { return function (v) { return step([n, v]); }; }
29
29
  function step(op) {
30
30
  if (f) throw new TypeError("Generator is already executing.");
31
- while (_) try {
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
32
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
33
  if (y = 0, t) op = [op[0] & 2, t.value];
34
34
  switch (op[0]) {
@@ -42,4 +42,4 @@ export interface IContentDurationUpdateEvent {
42
42
  /** The new theoretical duration, `undefined` if unknown, */
43
43
  value: number | undefined;
44
44
  }
45
- export declare type IContentTimeObserverPlaybackObservation = Pick<IStreamOrchestratorPlaybackObservation, "position">;
45
+ export type IContentTimeObserverPlaybackObservation = Pick<IStreamOrchestratorPlaybackObservation, "position">;
@@ -18,7 +18,7 @@ import { IReadOnlySharedReference } from "../../utils/reference";
18
18
  import { IPlaybackObservation, PlaybackObserver } from "../api";
19
19
  import { IWarningEvent } from "./types";
20
20
  /** Event emitted when trying to perform the initial `play`. */
21
- export declare type IInitialPlayEvent =
21
+ export type IInitialPlayEvent =
22
22
  /** Autoplay is not enabled, but all required steps to do so are there. */
23
23
  {
24
24
  type: "skipped";
@@ -25,7 +25,7 @@ import { IWarningEvent } from "./types";
25
25
  * @returns {Observable}
26
26
  */
27
27
  export default function linkDrmAndContent<T>(mediaElement: HTMLMediaElement, keySystems: IKeySystemOption[], contentProtections$: Observable<IContentProtection>, linkingMedia$: Observable<T>): Observable<IContentDecryptorInitEvent<T>>;
28
- export declare type IContentDecryptorInitEvent<T> = IDecryptionDisabledEvent<T> | IDecryptionReadyEvent<T> | IWarningEvent;
28
+ export type IContentDecryptorInitEvent<T> = IDecryptionDisabledEvent<T> | IDecryptionReadyEvent<T> | IWarningEvent;
29
29
  /**
30
30
  * Event emitted after deciding that no decryption logic will be launched for
31
31
  * the current content.
@@ -91,14 +91,12 @@ export default function createMediaSourceLoader(_a) {
91
91
  }));
92
92
  var contentTimeObserver = ContentTimeBoundariesObserver(manifest, lastAdaptationChange, streamObserver)
93
93
  .pipe(mergeMap(function (evt) {
94
- switch (evt.type) {
95
- case "contentDurationUpdate":
96
- log.debug("Init: Duration has to be updated.", evt.value);
97
- mediaDurationUpdater.updateKnownDuration(evt.value);
98
- return EMPTY;
99
- default:
100
- return observableOf(evt);
94
+ if (evt.type === "contentDurationUpdate") {
95
+ log.debug("Init: Duration has to be updated.", evt.value);
96
+ mediaDurationUpdater.updateKnownDuration(evt.value);
97
+ return EMPTY;
101
98
  }
99
+ return observableOf(evt);
102
100
  }));
103
101
  /**
104
102
  * Observable trying to avoid various stalling situations, emitting "stalled"
@@ -34,7 +34,7 @@ export interface IManifestUpdateSchedulerArguments {
34
34
  scheduleRefresh$: IManifestRefreshScheduler;
35
35
  }
36
36
  /** Function defined to refresh the Manifest */
37
- export declare type IManifestFetcher = (manifestURL: string | undefined, options: IManifestFetcherParserOptions) => Observable<IManifestFetcherParsedResult | IWarningEvent>;
37
+ export type IManifestFetcher = (manifestURL: string | undefined, options: IManifestFetcherParserOptions) => Observable<IManifestFetcherParsedResult | IWarningEvent>;
38
38
  /** Events sent by the `IManifestRefreshScheduler` Observable */
39
39
  export interface IManifestRefreshSchedulerEvent {
40
40
  /**
@@ -56,7 +56,7 @@ export interface IManifestRefreshSchedulerEvent {
56
56
  canUseUnsafeMode: boolean;
57
57
  }
58
58
  /** Observable to send events related to refresh requests coming from the Player. */
59
- export declare type IManifestRefreshScheduler = Observable<IManifestRefreshSchedulerEvent>;
59
+ export type IManifestRefreshScheduler = Observable<IManifestRefreshSchedulerEvent>;
60
60
  /**
61
61
  * Refresh the Manifest at the right time.
62
62
  * @param {Object} manifestUpdateSchedulerArguments
@@ -50,4 +50,4 @@ export interface IStreamEventSkipEvent {
50
50
  value: IPublicStreamEvent | IPublicNonFiniteStreamEvent;
51
51
  }
52
52
  /** Events sent by the `streamEventsEmitter`. */
53
- export declare type IStreamEvent = IStreamEventEvent | IStreamEventSkipEvent;
53
+ export type IStreamEvent = IStreamEventEvent | IStreamEventSkipEvent;
@@ -65,7 +65,7 @@ export interface IStalledEvent {
65
65
  /** The reason behind the stall */
66
66
  value: IStallingSituation;
67
67
  }
68
- export declare type IStallingSituation = "seeking" | // Rebuffering after seeking
68
+ export type IStallingSituation = "seeking" | // Rebuffering after seeking
69
69
  "not-ready" | // Rebuffering after low ready state
70
70
  "internal-seek" | // Rebuffering after a seek happened inside the player
71
71
  "buffering" | // Other rebuffering cases
@@ -87,8 +87,8 @@ export interface ILoadedEvent {
87
87
  }
88
88
  export { IRepresentationChangeEvent };
89
89
  /** Events emitted by a `MediaSourceLoader`. */
90
- export declare type IMediaSourceLoaderEvent = IStalledEvent | IUnstalledEvent | ILoadedEvent | IWarningEvent | IStreamEventEvent | IStreamEventSkipEvent | IActivePeriodChangedEvent | IPeriodStreamClearedEvent | ICompletedStreamEvent | IPeriodStreamReadyEvent | INeedsMediaSourceReload | INeedsBufferFlushEvent | IAdaptationChangeEvent | IBitrateEstimationChangeEvent | INeedsDecipherabilityFlush | IRepresentationChangeEvent | IStreamEventAddedSegment<unknown> | IEncryptionDataEncounteredEvent | IStreamManifestMightBeOutOfSync | IStreamNeedsManifestRefresh | IInbandEventsEvent;
90
+ export type IMediaSourceLoaderEvent = IStalledEvent | IUnstalledEvent | ILoadedEvent | IWarningEvent | IStreamEventEvent | IStreamEventSkipEvent | IActivePeriodChangedEvent | IPeriodStreamClearedEvent | ICompletedStreamEvent | IPeriodStreamReadyEvent | INeedsMediaSourceReload | INeedsBufferFlushEvent | IAdaptationChangeEvent | IBitrateEstimationChangeEvent | INeedsDecipherabilityFlush | IRepresentationChangeEvent | IStreamEventAddedSegment<unknown> | IEncryptionDataEncounteredEvent | IStreamManifestMightBeOutOfSync | IStreamNeedsManifestRefresh | IInbandEventsEvent;
91
91
  /** Every events emitted by the `Init` module. */
92
- export declare type IInitEvent = IManifestReadyEvent | IManifestUpdateEvent | IReloadingMediaSourceEvent | IDecipherabilityUpdateEvent | IWarningEvent | IStalledEvent | IUnstalledEvent | ILoadedEvent | IStreamEventEvent | IStreamEventSkipEvent | IActivePeriodChangedEvent | IPeriodStreamClearedEvent | ICompletedStreamEvent | IPeriodStreamReadyEvent | IAdaptationChangeEvent | IBitrateEstimationChangeEvent | IRepresentationChangeEvent | IStreamEventAddedSegment<unknown> | IInbandEventsEvent;
92
+ export type IInitEvent = IManifestReadyEvent | IManifestUpdateEvent | IReloadingMediaSourceEvent | IDecipherabilityUpdateEvent | IWarningEvent | IStalledEvent | IUnstalledEvent | ILoadedEvent | IStreamEventEvent | IStreamEventSkipEvent | IActivePeriodChangedEvent | IPeriodStreamClearedEvent | ICompletedStreamEvent | IPeriodStreamReadyEvent | IAdaptationChangeEvent | IBitrateEstimationChangeEvent | IRepresentationChangeEvent | IStreamEventAddedSegment<unknown> | IInbandEventsEvent;
93
93
  /** Events emitted by the `Init` module for directfile contents. */
94
- export declare type IDirectfileEvent = IStalledEvent | IUnstalledEvent | ILoadedEvent | IWarningEvent;
94
+ export type IDirectfileEvent = IStalledEvent | IUnstalledEvent | ILoadedEvent | IWarningEvent;
@@ -28,7 +28,7 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
28
28
  function verb(n) { return function (v) { return step([n, v]); }; }
29
29
  function step(op) {
30
30
  if (f) throw new TypeError("Generator is already executing.");
31
- while (_) try {
31
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
32
32
  if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
33
33
  if (y = 0, t) op = [op[0] & 2, t.value];
34
34
  switch (op[0]) {