@constructor-io/constructorio-client-javascript 2.37.0 → 2.37.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.
@@ -47,7 +47,7 @@ export interface RecommendationsRequestType extends Record<string, any> {
47
47
  }
48
48
 
49
49
  export interface RecommendationsResponseType extends Record<string, any> {
50
- results: Partial<RecommendationsResultType>;
50
+ results: Partial<RecommendationsResultType>[];
51
51
  total_num_results: number;
52
52
  pod: {
53
53
  id: string;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
3
  /* eslint-disable no-useless-escape */
4
-
5
4
  /* cspell:disable */
5
+
6
6
  module.exports = ['Googlebot\/', 'Googlebot-Mobile', 'Googlebot-Image', 'Googlebot-News', 'Googlebot-Video', 'AdsBot-Google([^-]|$)', 'AdsBot-Google-Mobile', 'Feedfetcher-Google', 'Mediapartners-Google', 'Mediapartners \\(Googlebot\\)', 'APIs-Google', 'bingbot', 'Slurp', '[wW]get', 'curl', 'LinkedInBot', 'Python-urllib', 'python-requests', 'libwww', 'httpunit', 'nutch', 'Go-http-client', 'phpcrawl', 'msnbot', 'jyxobot', 'FAST-WebCrawler', 'FAST Enterprise Crawler', 'BIGLOTRON', 'Teoma', 'convera', 'seekbot', 'Gigabot', 'Gigablast', 'exabot', 'ia_archiver', 'GingerCrawler', 'webmon ', 'HTTrack', 'grub\\.org', 'UsineNouvelleCrawler', 'antibot', 'netresearchserver', 'speedy', 'fluffy', 'bibnum\\.bnf', 'findlink', 'msrbot', 'panscient', 'yacybot', 'AISearchBot', 'ips-agent', 'tagoobot', 'MJ12bot', 'woriobot', 'yanga', 'buzzbot', 'mlbot', 'YandexBot', 'yandex\\.com\/bots', 'purebot', 'Linguee Bot', 'CyberPatrol', 'voilabot', 'Baiduspider', 'citeseerxbot', 'spbot', 'twengabot', 'postrank', 'turnitinbot', 'scribdbot', 'page2rss', 'sitebot', 'linkdex', 'Adidxbot', 'blekkobot', 'ezooms', 'dotbot', 'Mail\\.RU_Bot', 'discobot', 'heritrix', 'findthatfile', 'europarchive\\.org', 'NerdByNature\\.Bot', 'sistrix crawler', 'Ahrefs(Bot|SiteAudit)', 'fuelbot', 'CrunchBot', 'centurybot9', 'IndeedBot', 'mappydata', 'woobot', 'ZoominfoBot', 'PrivacyAwareBot', 'Multiviewbot', 'SWIMGBot', 'Grobbot', 'eright', 'Apercite', 'semanticbot', 'Aboundex', 'domaincrawler', 'wbsearchbot', 'summify', 'CCBot', 'edisterbot', 'seznambot', 'ec2linkfinder', 'gslfbot', 'aiHitBot', 'intelium_bot', 'facebookexternalhit', 'Yeti', 'RetrevoPageAnalyzer', 'lb-spider', 'Sogou', 'lssbot', 'careerbot', 'wotbox', 'wocbot', 'ichiro', 'DuckDuckBot', 'lssrocketcrawler', 'drupact', 'webcompanycrawler', 'acoonbot', 'openindexspider', 'gnam gnam spider', 'web-archive-net\\.com\\.bot', 'backlinkcrawler', 'coccoc', 'integromedb', 'content crawler spider', 'toplistbot', 'it2media-domain-crawler', 'ip-web-crawler\\.com', 'siteexplorer\\.info', 'elisabot', 'proximic', 'changedetection', 'arabot', 'WeSEE:Search', 'niki-bot', 'CrystalSemanticsBot', 'rogerbot', '360Spider', 'psbot', 'InterfaxScanBot', 'CC Metadata Scaper', 'g00g1e\\.net', 'GrapeshotCrawler', 'urlappendbot', 'brainobot', 'fr-crawler', 'binlar', 'SimpleCrawler', 'Twitterbot', 'cXensebot', 'smtbot', 'bnf\\.fr_bot', 'A6-Indexer', 'ADmantX', 'Facebot', 'OrangeBot\/', 'memorybot', 'AdvBot', 'MegaIndex', 'SemanticScholarBot', 'ltx71', 'nerdybot', 'xovibot', 'BUbiNG', 'Qwantify', 'archive\\.org_bot', 'Applebot', 'TweetmemeBot', 'crawler4j', 'findxbot', 'S[eE][mM]rushBot', 'yoozBot', 'lipperhey', 'Y!J', 'Domain Re-Animator Bot', 'AddThis', 'Screaming Frog SEO Spider', 'MetaURI', 'Scrapy', 'Livelap[bB]ot', 'OpenHoseBot', 'CapsuleChecker', 'collection@infegy\\.com', 'IstellaBot', 'DeuSu\/', 'betaBot', 'Cliqzbot\/', 'MojeekBot\/', 'netEstate NE Crawler', 'SafeSearch microdata crawler', 'Gluten Free Crawler\/', 'Sonic', 'Sysomos', 'Trove', 'deadlinkchecker', 'Slack-ImgProxy', 'Embedly', 'RankActiveLinkBot', 'iskanie', 'SafeDNSBot', 'SkypeUriPreview', 'Veoozbot', 'Slackbot', 'redditbot', 'datagnionbot', 'Google-Adwords-Instant', 'adbeat_bot', 'WhatsApp', 'contxbot', 'pinterest', 'electricmonk', 'GarlikCrawler', 'BingPreview\/', 'vebidoobot', 'FemtosearchBot', 'Yahoo Link Preview', 'MetaJobBot', 'DomainStatsBot', 'mindUpBot', 'Daum\/', 'Jugendschutzprogramm-Crawler', 'Xenu Link Sleuth', 'Pcore-HTTP', 'moatbot', 'KosmioBot', 'pingdom', 'PhantomJS', 'Gowikibot', 'PiplBot', 'Discordbot', 'TelegramBot', 'Jetslide', 'newsharecounts', 'James BOT', 'Barkrowler', 'TinEye', 'SocialRankIOBot', 'trendictionbot', 'Ocarinabot', 'epicbot', 'Primalbot', 'DuckDuckGo-Favicons-Bot', 'GnowitNewsbot', 'Leikibot', 'LinkArchiver', 'YaK\/', 'PaperLiBot', 'Digg Deeper', 'dcrawl', 'Snacktory', 'AndersPinkBot', 'Fyrebot', 'EveryoneSocialBot', 'Mediatoolkitbot', 'Luminator-robots', 'ExtLinksBot', 'SurveyBot', 'NING\/', 'okhttp', 'Nuzzel', 'omgili', 'PocketParser', 'YisouSpider', 'um-LN', 'ToutiaoSpider', 'MuckRack', "Jamie's Spider", 'AHC\/', 'NetcraftSurveyAgent', 'Laserlikebot', 'Apache-HttpClient', 'AppEngine-Google', 'Jetty', 'Upflow', 'Thinklab', 'Traackr\\.com', 'Twurly', 'Mastodon', 'http_get', 'DnyzBot', 'botify', '007ac9 Crawler', 'BehloolBot', 'BrandVerity', 'check_http', 'BDCbot', 'ZumBot', 'EZID', 'ICC-Crawler', 'ArchiveBot', '^LCC ', 'filterdb\\.iss\\.net\/crawler', 'BLP_bbot', 'BomboraBot', 'Buck\/', 'Companybook-Crawler', 'Genieo', 'magpie-crawler', 'MeltwaterNews', 'Moreover', 'newspaper\/', 'ScoutJet', '(^| )sentry\/', 'StorygizeBot', 'UptimeRobot', 'OutclicksBot', 'seoscanners', 'Hatena', 'Google Web Preview', 'MauiBot', 'AlphaBot', 'SBL-BOT', 'IAS crawler', 'adscanner', 'Netvibes', 'acapbot', 'Baidu-YunGuanCe', 'bitlybot', 'blogmuraBot', 'Bot\\.AraTurka\\.com', 'bot-pge\\.chlooe\\.com', 'BoxcarBot', 'BTWebClient', 'ContextAd Bot', 'Digincore bot', 'Disqus', 'Feedly', 'Fetch\/', 'Fever', 'Flamingo_SearchEngine', 'FlipboardProxy', 'g2reader-bot', 'imrbot', 'K7MLWCBot', 'Kemvibot', 'Landau-Media-Spider', 'linkapediabot', 'vkShare', 'Siteimprove\\.com', 'BLEXBot\/', 'DareBoost', 'ZuperlistBot\/', 'Miniflux\/', 'Feedspotbot\/', 'Diffbot\/', 'SEOkicks', 'tracemyfile', 'Nimbostratus-Bot', 'Bytespider'];
@@ -1,54 +1,49 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
6
-
7
5
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
8
-
9
6
  /* eslint-disable no-unneeded-ternary */
10
7
  var helpers = require('./helpers');
11
-
12
8
  var EventDispatcher = /*#__PURE__*/function () {
13
9
  function EventDispatcher(options) {
14
10
  var _this = this;
15
-
16
11
  (0, _classCallCheck2["default"])(this, EventDispatcher);
17
12
  this.events = [];
18
13
  this.enabled = options && options.enabled === false ? false : true; // Defaults to 'true'
19
-
20
14
  this.waitForBeacon = options && options.waitForBeacon === false ? false : true; // Defaults to 'true'
15
+
21
16
  // `enabled` is a supplied option
22
17
  // - if false, events will never be dispatched
23
18
  // `active` is a variable determining if events will be dispatched
24
19
  // - if `waitForBeacon` is set to true, `active` will be false until beacon event is received
20
+ this.active = this.enabled;
25
21
 
26
- this.active = this.enabled; // If `waitForBeacon` option is set, only enable event dispatching once event is received from beacon
27
-
22
+ // If `waitForBeacon` option is set, only enable event dispatching once event is received from beacon
28
23
  if (this.waitForBeacon) {
29
- this.active = false; // Check browser environment to determine if beacon has been loaded
30
- // - Important for the case where the beacon has loaded before client library instantiated
24
+ this.active = false;
31
25
 
26
+ // Check browser environment to determine if beacon has been loaded
27
+ // - Important for the case where the beacon has loaded before client library instantiated
32
28
  if (helpers.canUseDOM() && (window.ConstructorioAutocomplete || window.ConstructorioBeacon || window.ConstructorioTracker)) {
33
29
  if (this.enabled) {
34
30
  this.active = true;
35
31
  this.dispatchEvents();
36
32
  }
37
- } // Bind listener to beacon loaded event
38
- // - Important for the case where client library instantiated before beacon has loaded
39
-
33
+ }
40
34
 
35
+ // Bind listener to beacon loaded event
36
+ // - Important for the case where client library instantiated before beacon has loaded
41
37
  helpers.addEventListener('cio.beacon.loaded', function () {
42
38
  if (_this.enabled) {
43
39
  _this.active = true;
44
-
45
40
  _this.dispatchEvents();
46
41
  }
47
42
  });
48
43
  }
49
- } // Push event data to queue
50
-
44
+ }
51
45
 
46
+ // Push event data to queue
52
47
  (0, _createClass2["default"])(EventDispatcher, [{
53
48
  key: "queue",
54
49
  value: function queue(name, data) {
@@ -56,19 +51,19 @@ var EventDispatcher = /*#__PURE__*/function () {
56
51
  name: name,
57
52
  data: data
58
53
  });
59
-
60
54
  if (this.active) {
61
55
  this.dispatchEvents();
62
56
  }
63
- } // Dispatch all custom events within queue on `window` of supplied name with data
57
+ }
64
58
 
59
+ // Dispatch all custom events within queue on `window` of supplied name with data
65
60
  }, {
66
61
  key: "dispatchEvents",
67
62
  value: function dispatchEvents() {
68
63
  while (this.events.length) {
69
64
  var item = this.events.shift();
70
65
  var name = item.name,
71
- data = item.data;
66
+ data = item.data;
72
67
  var eventName = "cio.client.".concat(name);
73
68
  helpers.dispatchEvent(helpers.createCustomEvent(eventName, data));
74
69
  }
@@ -76,5 +71,4 @@ var EventDispatcher = /*#__PURE__*/function () {
76
71
  }]);
77
72
  return EventDispatcher;
78
73
  }();
79
-
80
74
  module.exports = EventDispatcher;
@@ -18,21 +18,20 @@
18
18
  // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
19
19
  // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20
20
  // USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+
21
22
  // Version 3.3.0
22
23
 
23
24
  /* eslint-disable */
25
+
24
26
  'use strict';
25
27
 
26
28
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
27
-
28
29
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
29
-
30
30
  var R = (typeof Reflect === "undefined" ? "undefined" : (0, _typeof2["default"])(Reflect)) === 'object' ? Reflect : null;
31
31
  var ReflectApply = R && typeof R.apply === 'function' ? R.apply : function ReflectApply(target, receiver, args) {
32
32
  return Function.prototype.apply.call(target, receiver, args);
33
33
  };
34
34
  var ReflectOwnKeys;
35
-
36
35
  if (R && typeof R.ownKeys === 'function') {
37
36
  ReflectOwnKeys = R.ownKeys;
38
37
  } else if (Object.getOwnPropertySymbols) {
@@ -44,36 +43,32 @@ if (R && typeof R.ownKeys === 'function') {
44
43
  return Object.getOwnPropertyNames(target);
45
44
  };
46
45
  }
47
-
48
46
  function ProcessEmitWarning(warning) {
49
47
  if (console && console.warn) console.warn(warning);
50
48
  }
51
-
52
49
  var NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {
53
50
  return value !== value;
54
51
  };
55
-
56
52
  function EventEmitter() {
57
53
  EventEmitter.init.call(this);
58
54
  }
59
-
60
55
  module.exports = EventEmitter;
61
- module.exports.once = once; // Backwards-compat with node 0.10.x
56
+ module.exports.once = once;
62
57
 
58
+ // Backwards-compat with node 0.10.x
63
59
  EventEmitter.EventEmitter = EventEmitter;
64
60
  EventEmitter.prototype._events = undefined;
65
61
  EventEmitter.prototype._eventsCount = 0;
66
- EventEmitter.prototype._maxListeners = undefined; // By default EventEmitters will print a warning if more than 10 listeners are
67
- // added to it. This is a useful default which helps finding memory leaks.
62
+ EventEmitter.prototype._maxListeners = undefined;
68
63
 
64
+ // By default EventEmitters will print a warning if more than 10 listeners are
65
+ // added to it. This is a useful default which helps finding memory leaks.
69
66
  var defaultMaxListeners = 10;
70
-
71
67
  function checkListener(listener) {
72
68
  if (typeof listener !== 'function') {
73
69
  throw new TypeError('The "listener" argument must be of type Function. Received type ' + (0, _typeof2["default"])(listener));
74
70
  }
75
71
  }
76
-
77
72
  Object.defineProperty(EventEmitter, 'defaultMaxListeners', {
78
73
  enumerable: true,
79
74
  get: function get() {
@@ -83,62 +78,52 @@ Object.defineProperty(EventEmitter, 'defaultMaxListeners', {
83
78
  if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {
84
79
  throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + '.');
85
80
  }
86
-
87
81
  defaultMaxListeners = arg;
88
82
  }
89
83
  });
90
-
91
84
  EventEmitter.init = function () {
92
85
  if (this._events === undefined || this._events === Object.getPrototypeOf(this)._events) {
93
86
  this._events = Object.create(null);
94
87
  this._eventsCount = 0;
95
88
  }
96
-
97
89
  this._maxListeners = this._maxListeners || undefined;
98
- }; // Obviously not all Emitters should be limited to 10. This function allows
99
- // that to be increased. Set to zero for unlimited.
100
-
90
+ };
101
91
 
92
+ // Obviously not all Emitters should be limited to 10. This function allows
93
+ // that to be increased. Set to zero for unlimited.
102
94
  EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {
103
95
  if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {
104
96
  throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n + '.');
105
97
  }
106
-
107
98
  this._maxListeners = n;
108
99
  return this;
109
100
  };
110
-
111
101
  function _getMaxListeners(that) {
112
102
  if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners;
113
103
  return that._maxListeners;
114
104
  }
115
-
116
105
  EventEmitter.prototype.getMaxListeners = function getMaxListeners() {
117
106
  return _getMaxListeners(this);
118
107
  };
119
-
120
108
  EventEmitter.prototype.emit = function emit(type) {
121
109
  var args = [];
122
-
123
110
  for (var i = 1; i < arguments.length; i++) {
124
111
  args.push(arguments[i]);
125
112
  }
126
-
127
113
  var doError = type === 'error';
128
114
  var events = this._events;
129
- if (events !== undefined) doError = doError && events.error === undefined;else if (!doError) return false; // If there is no 'error' event listener then throw.
115
+ if (events !== undefined) doError = doError && events.error === undefined;else if (!doError) return false;
130
116
 
117
+ // If there is no 'error' event listener then throw.
131
118
  if (doError) {
132
119
  var er;
133
120
  if (args.length > 0) er = args[0];
134
-
135
121
  if (er instanceof Error) {
136
122
  // Note: The comments on the `throw` lines are intentional, they show
137
123
  // up in Node's output if this results in an unhandled exception.
138
124
  throw er; // Unhandled 'error' event
139
- } // At least give some kind of context to the user
140
-
141
-
125
+ }
126
+ // At least give some kind of context to the user
142
127
  var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));
143
128
  err.context = er;
144
129
  throw err; // Unhandled 'error' event
@@ -146,28 +131,23 @@ EventEmitter.prototype.emit = function emit(type) {
146
131
 
147
132
  var handler = events[type];
148
133
  if (handler === undefined) return false;
149
-
150
134
  if (typeof handler === 'function') {
151
135
  ReflectApply(handler, this, args);
152
136
  } else {
153
137
  var len = handler.length;
154
138
  var listeners = arrayClone(handler, len);
155
-
156
139
  for (var i = 0; i < len; ++i) {
157
140
  ReflectApply(listeners[i], this, args);
158
141
  }
159
142
  }
160
-
161
143
  return true;
162
144
  };
163
-
164
145
  function _addListener(target, type, listener, prepend) {
165
146
  var m;
166
147
  var events;
167
148
  var existing;
168
149
  checkListener(listener);
169
150
  events = target._events;
170
-
171
151
  if (events === undefined) {
172
152
  events = target._events = Object.create(null);
173
153
  target._eventsCount = 0;
@@ -175,15 +155,14 @@ function _addListener(target, type, listener, prepend) {
175
155
  // To avoid recursion in the case that type === "newListener"! Before
176
156
  // adding it to the listeners, first emit "newListener".
177
157
  if (events.newListener !== undefined) {
178
- target.emit('newListener', type, listener.listener ? listener.listener : listener); // Re-assign `events` because a newListener handler could have caused the
179
- // this._events to be assigned to a new object
158
+ target.emit('newListener', type, listener.listener ? listener.listener : listener);
180
159
 
160
+ // Re-assign `events` because a newListener handler could have caused the
161
+ // this._events to be assigned to a new object
181
162
  events = target._events;
182
163
  }
183
-
184
164
  existing = events[type];
185
165
  }
186
-
187
166
  if (existing === undefined) {
188
167
  // Optimize the case of one listener. Don't need the extra array object.
189
168
  existing = events[type] = listener;
@@ -191,20 +170,20 @@ function _addListener(target, type, listener, prepend) {
191
170
  } else {
192
171
  if (typeof existing === 'function') {
193
172
  // Adding the second element, need to change to array.
194
- existing = events[type] = prepend ? [listener, existing] : [existing, listener]; // If we've already got an array, just append.
173
+ existing = events[type] = prepend ? [listener, existing] : [existing, listener];
174
+ // If we've already got an array, just append.
195
175
  } else if (prepend) {
196
176
  existing.unshift(listener);
197
177
  } else {
198
178
  existing.push(listener);
199
- } // Check for listener leak
200
-
179
+ }
201
180
 
181
+ // Check for listener leak
202
182
  m = _getMaxListeners(target);
203
-
204
183
  if (m > 0 && existing.length > m && !existing.warned) {
205
- existing.warned = true; // No error code for this since it is a Warning
184
+ existing.warned = true;
185
+ // No error code for this since it is a Warning
206
186
  // eslint-disable-next-line no-restricted-syntax
207
-
208
187
  var w = new Error('Possible EventEmitter memory leak detected. ' + existing.length + ' ' + String(type) + ' listeners ' + 'added. Use emitter.setMaxListeners() to ' + 'increase limit');
209
188
  w.name = 'MaxListenersExceededWarning';
210
189
  w.emitter = target;
@@ -213,20 +192,15 @@ function _addListener(target, type, listener, prepend) {
213
192
  ProcessEmitWarning(w);
214
193
  }
215
194
  }
216
-
217
195
  return target;
218
196
  }
219
-
220
197
  EventEmitter.prototype.addListener = function addListener(type, listener) {
221
198
  return _addListener(this, type, listener, false);
222
199
  };
223
-
224
200
  EventEmitter.prototype.on = EventEmitter.prototype.addListener;
225
-
226
201
  EventEmitter.prototype.prependListener = function prependListener(type, listener) {
227
202
  return _addListener(this, type, listener, true);
228
203
  };
229
-
230
204
  function onceWrapper() {
231
205
  if (!this.fired) {
232
206
  this.target.removeListener(this.type, this.wrapFn);
@@ -235,7 +209,6 @@ function onceWrapper() {
235
209
  return this.listener.apply(this.target, arguments);
236
210
  }
237
211
  }
238
-
239
212
  function _onceWrap(target, type, listener) {
240
213
  var state = {
241
214
  fired: false,
@@ -249,20 +222,18 @@ function _onceWrap(target, type, listener) {
249
222
  state.wrapFn = wrapped;
250
223
  return wrapped;
251
224
  }
252
-
253
225
  EventEmitter.prototype.once = function once(type, listener) {
254
226
  checkListener(listener);
255
227
  this.on(type, _onceWrap(this, type, listener));
256
228
  return this;
257
229
  };
258
-
259
230
  EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {
260
231
  checkListener(listener);
261
232
  this.prependListener(type, _onceWrap(this, type, listener));
262
233
  return this;
263
- }; // Emits a 'removeListener' event if and only if the listener was removed.
264
-
234
+ };
265
235
 
236
+ // Emits a 'removeListener' event if and only if the listener was removed.
266
237
  EventEmitter.prototype.removeListener = function removeListener(type, listener) {
267
238
  var list, events, position, i, originalListener;
268
239
  checkListener(listener);
@@ -270,7 +241,6 @@ EventEmitter.prototype.removeListener = function removeListener(type, listener)
270
241
  if (events === undefined) return this;
271
242
  list = events[type];
272
243
  if (list === undefined) return this;
273
-
274
244
  if (list === listener || list.listener === listener) {
275
245
  if (--this._eventsCount === 0) this._events = Object.create(null);else {
276
246
  delete events[type];
@@ -278,7 +248,6 @@ EventEmitter.prototype.removeListener = function removeListener(type, listener)
278
248
  }
279
249
  } else if (typeof list !== 'function') {
280
250
  position = -1;
281
-
282
251
  for (i = list.length - 1; i >= 0; i--) {
283
252
  if (list[i] === listener || list[i].listener === listener) {
284
253
  originalListener = list[i].listener;
@@ -286,7 +255,6 @@ EventEmitter.prototype.removeListener = function removeListener(type, listener)
286
255
  break;
287
256
  }
288
257
  }
289
-
290
258
  if (position < 0) return this;
291
259
  if (position === 0) list.shift();else {
292
260
  spliceOne(list, position);
@@ -294,17 +262,15 @@ EventEmitter.prototype.removeListener = function removeListener(type, listener)
294
262
  if (list.length === 1) events[type] = list[0];
295
263
  if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener);
296
264
  }
297
-
298
265
  return this;
299
266
  };
300
-
301
267
  EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
302
-
303
268
  EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {
304
269
  var listeners, events, i;
305
270
  events = this._events;
306
- if (events === undefined) return this; // not listening for removeListener, no need to emit
271
+ if (events === undefined) return this;
307
272
 
273
+ // not listening for removeListener, no need to emit
308
274
  if (events.removeListener === undefined) {
309
275
  if (arguments.length === 0) {
310
276
  this._events = Object.create(null);
@@ -312,29 +278,24 @@ EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {
312
278
  } else if (events[type] !== undefined) {
313
279
  if (--this._eventsCount === 0) this._events = Object.create(null);else delete events[type];
314
280
  }
315
-
316
281
  return this;
317
- } // emit removeListener for all listeners on all events
318
-
282
+ }
319
283
 
284
+ // emit removeListener for all listeners on all events
320
285
  if (arguments.length === 0) {
321
286
  var keys = Object.keys(events);
322
287
  var key;
323
-
324
288
  for (i = 0; i < keys.length; ++i) {
325
289
  key = keys[i];
326
290
  if (key === 'removeListener') continue;
327
291
  this.removeAllListeners(key);
328
292
  }
329
-
330
293
  this.removeAllListeners('removeListener');
331
294
  this._events = Object.create(null);
332
295
  this._eventsCount = 0;
333
296
  return this;
334
297
  }
335
-
336
298
  listeners = events[type];
337
-
338
299
  if (typeof listeners === 'function') {
339
300
  this.removeListener(type, listeners);
340
301
  } else if (listeners !== undefined) {
@@ -343,10 +304,8 @@ EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {
343
304
  this.removeListener(type, listeners[i]);
344
305
  }
345
306
  }
346
-
347
307
  return this;
348
308
  };
349
-
350
309
  function _listeners(target, type, unwrap) {
351
310
  var events = target._events;
352
311
  if (events === undefined) return [];
@@ -355,15 +314,12 @@ function _listeners(target, type, unwrap) {
355
314
  if (typeof evlistener === 'function') return unwrap ? [evlistener.listener || evlistener] : [evlistener];
356
315
  return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);
357
316
  }
358
-
359
317
  EventEmitter.prototype.listeners = function listeners(type) {
360
318
  return _listeners(this, type, true);
361
319
  };
362
-
363
320
  EventEmitter.prototype.rawListeners = function rawListeners(type) {
364
321
  return _listeners(this, type, false);
365
322
  };
366
-
367
323
  EventEmitter.listenerCount = function (emitter, type) {
368
324
  if (typeof emitter.listenerCount === 'function') {
369
325
  return emitter.listenerCount(type);
@@ -371,77 +327,58 @@ EventEmitter.listenerCount = function (emitter, type) {
371
327
  return listenerCount.call(emitter, type);
372
328
  }
373
329
  };
374
-
375
330
  EventEmitter.prototype.listenerCount = listenerCount;
376
-
377
331
  function listenerCount(type) {
378
332
  var events = this._events;
379
-
380
333
  if (events !== undefined) {
381
334
  var evlistener = events[type];
382
-
383
335
  if (typeof evlistener === 'function') {
384
336
  return 1;
385
337
  } else if (evlistener !== undefined) {
386
338
  return evlistener.length;
387
339
  }
388
340
  }
389
-
390
341
  return 0;
391
342
  }
392
-
393
343
  EventEmitter.prototype.eventNames = function eventNames() {
394
344
  return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];
395
345
  };
396
-
397
346
  function arrayClone(arr, n) {
398
347
  var copy = new Array(n);
399
-
400
348
  for (var i = 0; i < n; ++i) {
401
349
  copy[i] = arr[i];
402
350
  }
403
-
404
351
  return copy;
405
352
  }
406
-
407
353
  function spliceOne(list, index) {
408
354
  for (; index + 1 < list.length; index++) {
409
355
  list[index] = list[index + 1];
410
356
  }
411
-
412
357
  list.pop();
413
358
  }
414
-
415
359
  function unwrapListeners(arr) {
416
360
  var ret = new Array(arr.length);
417
-
418
361
  for (var i = 0; i < ret.length; ++i) {
419
362
  ret[i] = arr[i].listener || arr[i];
420
363
  }
421
-
422
364
  return ret;
423
365
  }
424
-
425
366
  function once(emitter, name) {
426
367
  return new Promise(function (resolve, reject) {
427
368
  function errorListener(err) {
428
369
  emitter.removeListener(name, resolver);
429
370
  reject(err);
430
371
  }
431
-
432
372
  function resolver() {
433
373
  if (typeof emitter.removeListener === 'function') {
434
374
  emitter.removeListener('error', errorListener);
435
375
  }
436
-
437
376
  resolve([].slice.call(arguments));
438
377
  }
439
-
440
378
  ;
441
379
  eventTargetAgnosticAddListener(emitter, name, resolver, {
442
380
  once: true
443
381
  });
444
-
445
382
  if (name !== 'error') {
446
383
  addErrorHandlerIfEventEmitter(emitter, errorListener, {
447
384
  once: true
@@ -449,13 +386,11 @@ function once(emitter, name) {
449
386
  }
450
387
  });
451
388
  }
452
-
453
389
  function addErrorHandlerIfEventEmitter(emitter, handler, flags) {
454
390
  if (typeof emitter.on === 'function') {
455
391
  eventTargetAgnosticAddListener(emitter, 'error', handler, flags);
456
392
  }
457
393
  }
458
-
459
394
  function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
460
395
  if (typeof emitter.on === 'function') {
461
396
  if (flags.once) {
@@ -472,7 +407,6 @@ function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
472
407
  if (flags.once) {
473
408
  emitter.removeEventListener(name, wrapListener);
474
409
  }
475
-
476
410
  listener(arg);
477
411
  });
478
412
  } else {