@openfeature/web-sdk 0.4.14 → 0.4.16

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/README.md CHANGED
@@ -16,8 +16,8 @@
16
16
  <img alt="Specification" src="https://img.shields.io/static/v1?label=specification&message=v0.7.0&color=yellow&style=for-the-badge" />
17
17
  </a>
18
18
  <!-- x-release-please-start-version -->
19
- <a href="https://github.com/open-feature/js-sdk/releases/tag/web-sdk-v0.4.14">
20
- <img alt="Release" src="https://img.shields.io/static/v1?label=release&message=v0.4.14&color=blue&style=for-the-badge" />
19
+ <a href="https://github.com/open-feature/js-sdk/releases/tag/web-sdk-v0.4.16">
20
+ <img alt="Release" src="https://img.shields.io/static/v1?label=release&message=v0.4.16&color=blue&style=for-the-badge" />
21
21
  </a>
22
22
  <!-- x-release-please-end -->
23
23
  <br/>
package/dist/cjs/index.js CHANGED
@@ -31,374 +31,184 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
31
31
  ));
32
32
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
33
33
 
34
- // ../../node_modules/events/events.js
35
- var require_events = __commonJS({
36
- "../../node_modules/events/events.js"(exports, module2) {
34
+ // ../../node_modules/eventemitter3/index.js
35
+ var require_eventemitter3 = __commonJS({
36
+ "../../node_modules/eventemitter3/index.js"(exports, module2) {
37
37
  "use strict";
38
- var R = typeof Reflect === "object" ? Reflect : null;
39
- var ReflectApply = R && typeof R.apply === "function" ? R.apply : function ReflectApply2(target, receiver, args) {
40
- return Function.prototype.apply.call(target, receiver, args);
41
- };
42
- var ReflectOwnKeys;
43
- if (R && typeof R.ownKeys === "function") {
44
- ReflectOwnKeys = R.ownKeys;
45
- } else if (Object.getOwnPropertySymbols) {
46
- ReflectOwnKeys = function ReflectOwnKeys2(target) {
47
- return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));
48
- };
49
- } else {
50
- ReflectOwnKeys = function ReflectOwnKeys2(target) {
51
- return Object.getOwnPropertyNames(target);
52
- };
53
- }
54
- function ProcessEmitWarning(warning) {
55
- if (console && console.warn)
56
- console.warn(warning);
38
+ var has = Object.prototype.hasOwnProperty;
39
+ var prefix = "~";
40
+ function Events() {
41
+ }
42
+ if (Object.create) {
43
+ Events.prototype = /* @__PURE__ */ Object.create(null);
44
+ if (!new Events().__proto__)
45
+ prefix = false;
46
+ }
47
+ function EE(fn, context, once) {
48
+ this.fn = fn;
49
+ this.context = context;
50
+ this.once = once || false;
51
+ }
52
+ function addListener(emitter, event, fn, context, once) {
53
+ if (typeof fn !== "function") {
54
+ throw new TypeError("The listener must be a function");
55
+ }
56
+ var listener = new EE(fn, context || emitter, once), evt = prefix ? prefix + event : event;
57
+ if (!emitter._events[evt])
58
+ emitter._events[evt] = listener, emitter._eventsCount++;
59
+ else if (!emitter._events[evt].fn)
60
+ emitter._events[evt].push(listener);
61
+ else
62
+ emitter._events[evt] = [emitter._events[evt], listener];
63
+ return emitter;
64
+ }
65
+ function clearEvent(emitter, evt) {
66
+ if (--emitter._eventsCount === 0)
67
+ emitter._events = new Events();
68
+ else
69
+ delete emitter._events[evt];
57
70
  }
58
- var NumberIsNaN = Number.isNaN || function NumberIsNaN2(value) {
59
- return value !== value;
60
- };
61
71
  function EventEmitter2() {
62
- EventEmitter2.init.call(this);
72
+ this._events = new Events();
73
+ this._eventsCount = 0;
63
74
  }
64
- module2.exports = EventEmitter2;
65
- module2.exports.once = once;
66
- EventEmitter2.EventEmitter = EventEmitter2;
67
- EventEmitter2.prototype._events = void 0;
68
- EventEmitter2.prototype._eventsCount = 0;
69
- EventEmitter2.prototype._maxListeners = void 0;
70
- var defaultMaxListeners = 10;
71
- function checkListener(listener) {
72
- if (typeof listener !== "function") {
73
- throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener);
74
- }
75
- }
76
- Object.defineProperty(EventEmitter2, "defaultMaxListeners", {
77
- enumerable: true,
78
- get: function() {
79
- return defaultMaxListeners;
80
- },
81
- set: function(arg) {
82
- if (typeof arg !== "number" || arg < 0 || NumberIsNaN(arg)) {
83
- throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + ".");
84
- }
85
- defaultMaxListeners = arg;
75
+ EventEmitter2.prototype.eventNames = function eventNames() {
76
+ var names = [], events, name;
77
+ if (this._eventsCount === 0)
78
+ return names;
79
+ for (name in events = this._events) {
80
+ if (has.call(events, name))
81
+ names.push(prefix ? name.slice(1) : name);
86
82
  }
87
- });
88
- EventEmitter2.init = function() {
89
- if (this._events === void 0 || this._events === Object.getPrototypeOf(this)._events) {
90
- this._events = /* @__PURE__ */ Object.create(null);
91
- this._eventsCount = 0;
83
+ if (Object.getOwnPropertySymbols) {
84
+ return names.concat(Object.getOwnPropertySymbols(events));
92
85
  }
93
- this._maxListeners = this._maxListeners || void 0;
86
+ return names;
94
87
  };
95
- EventEmitter2.prototype.setMaxListeners = function setMaxListeners(n) {
96
- if (typeof n !== "number" || n < 0 || NumberIsNaN(n)) {
97
- throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n + ".");
88
+ EventEmitter2.prototype.listeners = function listeners(event) {
89
+ var evt = prefix ? prefix + event : event, handlers = this._events[evt];
90
+ if (!handlers)
91
+ return [];
92
+ if (handlers.fn)
93
+ return [handlers.fn];
94
+ for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {
95
+ ee[i] = handlers[i].fn;
98
96
  }
99
- this._maxListeners = n;
100
- return this;
97
+ return ee;
101
98
  };
102
- function _getMaxListeners(that) {
103
- if (that._maxListeners === void 0)
104
- return EventEmitter2.defaultMaxListeners;
105
- return that._maxListeners;
106
- }
107
- EventEmitter2.prototype.getMaxListeners = function getMaxListeners() {
108
- return _getMaxListeners(this);
99
+ EventEmitter2.prototype.listenerCount = function listenerCount(event) {
100
+ var evt = prefix ? prefix + event : event, listeners = this._events[evt];
101
+ if (!listeners)
102
+ return 0;
103
+ if (listeners.fn)
104
+ return 1;
105
+ return listeners.length;
109
106
  };
110
- EventEmitter2.prototype.emit = function emit(type) {
111
- var args = [];
112
- for (var i = 1; i < arguments.length; i++)
113
- args.push(arguments[i]);
114
- var doError = type === "error";
115
- var events = this._events;
116
- if (events !== void 0)
117
- doError = doError && events.error === void 0;
118
- else if (!doError)
107
+ EventEmitter2.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {
108
+ var evt = prefix ? prefix + event : event;
109
+ if (!this._events[evt])
119
110
  return false;
120
- if (doError) {
121
- var er;
122
- if (args.length > 0)
123
- er = args[0];
124
- if (er instanceof Error) {
125
- throw er;
111
+ var listeners = this._events[evt], len = arguments.length, args, i;
112
+ if (listeners.fn) {
113
+ if (listeners.once)
114
+ this.removeListener(event, listeners.fn, void 0, true);
115
+ switch (len) {
116
+ case 1:
117
+ return listeners.fn.call(listeners.context), true;
118
+ case 2:
119
+ return listeners.fn.call(listeners.context, a1), true;
120
+ case 3:
121
+ return listeners.fn.call(listeners.context, a1, a2), true;
122
+ case 4:
123
+ return listeners.fn.call(listeners.context, a1, a2, a3), true;
124
+ case 5:
125
+ return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;
126
+ case 6:
127
+ return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;
126
128
  }
127
- var err = new Error("Unhandled error." + (er ? " (" + er.message + ")" : ""));
128
- err.context = er;
129
- throw err;
130
- }
131
- var handler = events[type];
132
- if (handler === void 0)
133
- return false;
134
- if (typeof handler === "function") {
135
- ReflectApply(handler, this, args);
136
- } else {
137
- var len = handler.length;
138
- var listeners = arrayClone(handler, len);
139
- for (var i = 0; i < len; ++i)
140
- ReflectApply(listeners[i], this, args);
141
- }
142
- return true;
143
- };
144
- function _addListener(target, type, listener, prepend) {
145
- var m;
146
- var events;
147
- var existing;
148
- checkListener(listener);
149
- events = target._events;
150
- if (events === void 0) {
151
- events = target._events = /* @__PURE__ */ Object.create(null);
152
- target._eventsCount = 0;
153
- } else {
154
- if (events.newListener !== void 0) {
155
- target.emit(
156
- "newListener",
157
- type,
158
- listener.listener ? listener.listener : listener
159
- );
160
- events = target._events;
129
+ for (i = 1, args = new Array(len - 1); i < len; i++) {
130
+ args[i - 1] = arguments[i];
161
131
  }
162
- existing = events[type];
163
- }
164
- if (existing === void 0) {
165
- existing = events[type] = listener;
166
- ++target._eventsCount;
132
+ listeners.fn.apply(listeners.context, args);
167
133
  } else {
168
- if (typeof existing === "function") {
169
- existing = events[type] = prepend ? [listener, existing] : [existing, listener];
170
- } else if (prepend) {
171
- existing.unshift(listener);
172
- } else {
173
- existing.push(listener);
174
- }
175
- m = _getMaxListeners(target);
176
- if (m > 0 && existing.length > m && !existing.warned) {
177
- existing.warned = true;
178
- var w = new Error("Possible EventEmitter memory leak detected. " + existing.length + " " + String(type) + " listeners added. Use emitter.setMaxListeners() to increase limit");
179
- w.name = "MaxListenersExceededWarning";
180
- w.emitter = target;
181
- w.type = type;
182
- w.count = existing.length;
183
- ProcessEmitWarning(w);
134
+ var length = listeners.length, j;
135
+ for (i = 0; i < length; i++) {
136
+ if (listeners[i].once)
137
+ this.removeListener(event, listeners[i].fn, void 0, true);
138
+ switch (len) {
139
+ case 1:
140
+ listeners[i].fn.call(listeners[i].context);
141
+ break;
142
+ case 2:
143
+ listeners[i].fn.call(listeners[i].context, a1);
144
+ break;
145
+ case 3:
146
+ listeners[i].fn.call(listeners[i].context, a1, a2);
147
+ break;
148
+ case 4:
149
+ listeners[i].fn.call(listeners[i].context, a1, a2, a3);
150
+ break;
151
+ default:
152
+ if (!args)
153
+ for (j = 1, args = new Array(len - 1); j < len; j++) {
154
+ args[j - 1] = arguments[j];
155
+ }
156
+ listeners[i].fn.apply(listeners[i].context, args);
157
+ }
184
158
  }
185
159
  }
186
- return target;
187
- }
188
- EventEmitter2.prototype.addListener = function addListener(type, listener) {
189
- return _addListener(this, type, listener, false);
190
- };
191
- EventEmitter2.prototype.on = EventEmitter2.prototype.addListener;
192
- EventEmitter2.prototype.prependListener = function prependListener(type, listener) {
193
- return _addListener(this, type, listener, true);
160
+ return true;
194
161
  };
195
- function onceWrapper() {
196
- if (!this.fired) {
197
- this.target.removeListener(this.type, this.wrapFn);
198
- this.fired = true;
199
- if (arguments.length === 0)
200
- return this.listener.call(this.target);
201
- return this.listener.apply(this.target, arguments);
202
- }
203
- }
204
- function _onceWrap(target, type, listener) {
205
- var state = { fired: false, wrapFn: void 0, target, type, listener };
206
- var wrapped = onceWrapper.bind(state);
207
- wrapped.listener = listener;
208
- state.wrapFn = wrapped;
209
- return wrapped;
210
- }
211
- EventEmitter2.prototype.once = function once2(type, listener) {
212
- checkListener(listener);
213
- this.on(type, _onceWrap(this, type, listener));
214
- return this;
162
+ EventEmitter2.prototype.on = function on(event, fn, context) {
163
+ return addListener(this, event, fn, context, false);
215
164
  };
216
- EventEmitter2.prototype.prependOnceListener = function prependOnceListener(type, listener) {
217
- checkListener(listener);
218
- this.prependListener(type, _onceWrap(this, type, listener));
219
- return this;
165
+ EventEmitter2.prototype.once = function once(event, fn, context) {
166
+ return addListener(this, event, fn, context, true);
220
167
  };
221
- EventEmitter2.prototype.removeListener = function removeListener(type, listener) {
222
- var list, events, position, i, originalListener;
223
- checkListener(listener);
224
- events = this._events;
225
- if (events === void 0)
168
+ EventEmitter2.prototype.removeListener = function removeListener(event, fn, context, once) {
169
+ var evt = prefix ? prefix + event : event;
170
+ if (!this._events[evt])
226
171
  return this;
227
- list = events[type];
228
- if (list === void 0)
172
+ if (!fn) {
173
+ clearEvent(this, evt);
229
174
  return this;
230
- if (list === listener || list.listener === listener) {
231
- if (--this._eventsCount === 0)
232
- this._events = /* @__PURE__ */ Object.create(null);
233
- else {
234
- delete events[type];
235
- if (events.removeListener)
236
- this.emit("removeListener", type, list.listener || listener);
175
+ }
176
+ var listeners = this._events[evt];
177
+ if (listeners.fn) {
178
+ if (listeners.fn === fn && (!once || listeners.once) && (!context || listeners.context === context)) {
179
+ clearEvent(this, evt);
237
180
  }
238
- } else if (typeof list !== "function") {
239
- position = -1;
240
- for (i = list.length - 1; i >= 0; i--) {
241
- if (list[i] === listener || list[i].listener === listener) {
242
- originalListener = list[i].listener;
243
- position = i;
244
- break;
181
+ } else {
182
+ for (var i = 0, events = [], length = listeners.length; i < length; i++) {
183
+ if (listeners[i].fn !== fn || once && !listeners[i].once || context && listeners[i].context !== context) {
184
+ events.push(listeners[i]);
245
185
  }
246
186
  }
247
- if (position < 0)
248
- return this;
249
- if (position === 0)
250
- list.shift();
251
- else {
252
- spliceOne(list, position);
253
- }
254
- if (list.length === 1)
255
- events[type] = list[0];
256
- if (events.removeListener !== void 0)
257
- this.emit("removeListener", type, originalListener || listener);
187
+ if (events.length)
188
+ this._events[evt] = events.length === 1 ? events[0] : events;
189
+ else
190
+ clearEvent(this, evt);
258
191
  }
259
192
  return this;
260
193
  };
261
- EventEmitter2.prototype.off = EventEmitter2.prototype.removeListener;
262
- EventEmitter2.prototype.removeAllListeners = function removeAllListeners(type) {
263
- var listeners, events, i;
264
- events = this._events;
265
- if (events === void 0)
266
- return this;
267
- if (events.removeListener === void 0) {
268
- if (arguments.length === 0) {
269
- this._events = /* @__PURE__ */ Object.create(null);
270
- this._eventsCount = 0;
271
- } else if (events[type] !== void 0) {
272
- if (--this._eventsCount === 0)
273
- this._events = /* @__PURE__ */ Object.create(null);
274
- else
275
- delete events[type];
276
- }
277
- return this;
278
- }
279
- if (arguments.length === 0) {
280
- var keys = Object.keys(events);
281
- var key;
282
- for (i = 0; i < keys.length; ++i) {
283
- key = keys[i];
284
- if (key === "removeListener")
285
- continue;
286
- this.removeAllListeners(key);
287
- }
288
- this.removeAllListeners("removeListener");
289
- this._events = /* @__PURE__ */ Object.create(null);
194
+ EventEmitter2.prototype.removeAllListeners = function removeAllListeners(event) {
195
+ var evt;
196
+ if (event) {
197
+ evt = prefix ? prefix + event : event;
198
+ if (this._events[evt])
199
+ clearEvent(this, evt);
200
+ } else {
201
+ this._events = new Events();
290
202
  this._eventsCount = 0;
291
- return this;
292
- }
293
- listeners = events[type];
294
- if (typeof listeners === "function") {
295
- this.removeListener(type, listeners);
296
- } else if (listeners !== void 0) {
297
- for (i = listeners.length - 1; i >= 0; i--) {
298
- this.removeListener(type, listeners[i]);
299
- }
300
203
  }
301
204
  return this;
302
205
  };
303
- function _listeners(target, type, unwrap) {
304
- var events = target._events;
305
- if (events === void 0)
306
- return [];
307
- var evlistener = events[type];
308
- if (evlistener === void 0)
309
- return [];
310
- if (typeof evlistener === "function")
311
- return unwrap ? [evlistener.listener || evlistener] : [evlistener];
312
- return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);
313
- }
314
- EventEmitter2.prototype.listeners = function listeners(type) {
315
- return _listeners(this, type, true);
316
- };
317
- EventEmitter2.prototype.rawListeners = function rawListeners(type) {
318
- return _listeners(this, type, false);
319
- };
320
- EventEmitter2.listenerCount = function(emitter, type) {
321
- if (typeof emitter.listenerCount === "function") {
322
- return emitter.listenerCount(type);
323
- } else {
324
- return listenerCount.call(emitter, type);
325
- }
326
- };
327
- EventEmitter2.prototype.listenerCount = listenerCount;
328
- function listenerCount(type) {
329
- var events = this._events;
330
- if (events !== void 0) {
331
- var evlistener = events[type];
332
- if (typeof evlistener === "function") {
333
- return 1;
334
- } else if (evlistener !== void 0) {
335
- return evlistener.length;
336
- }
337
- }
338
- return 0;
339
- }
340
- EventEmitter2.prototype.eventNames = function eventNames() {
341
- return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];
342
- };
343
- function arrayClone(arr, n) {
344
- var copy = new Array(n);
345
- for (var i = 0; i < n; ++i)
346
- copy[i] = arr[i];
347
- return copy;
348
- }
349
- function spliceOne(list, index) {
350
- for (; index + 1 < list.length; index++)
351
- list[index] = list[index + 1];
352
- list.pop();
353
- }
354
- function unwrapListeners(arr) {
355
- var ret = new Array(arr.length);
356
- for (var i = 0; i < ret.length; ++i) {
357
- ret[i] = arr[i].listener || arr[i];
358
- }
359
- return ret;
360
- }
361
- function once(emitter, name) {
362
- return new Promise(function(resolve, reject) {
363
- function errorListener(err) {
364
- emitter.removeListener(name, resolver);
365
- reject(err);
366
- }
367
- function resolver() {
368
- if (typeof emitter.removeListener === "function") {
369
- emitter.removeListener("error", errorListener);
370
- }
371
- resolve([].slice.call(arguments));
372
- }
373
- ;
374
- eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });
375
- if (name !== "error") {
376
- addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });
377
- }
378
- });
379
- }
380
- function addErrorHandlerIfEventEmitter(emitter, handler, flags) {
381
- if (typeof emitter.on === "function") {
382
- eventTargetAgnosticAddListener(emitter, "error", handler, flags);
383
- }
384
- }
385
- function eventTargetAgnosticAddListener(emitter, name, listener, flags) {
386
- if (typeof emitter.on === "function") {
387
- if (flags.once) {
388
- emitter.once(name, listener);
389
- } else {
390
- emitter.on(name, listener);
391
- }
392
- } else if (typeof emitter.addEventListener === "function") {
393
- emitter.addEventListener(name, function wrapListener(arg) {
394
- if (flags.once) {
395
- emitter.removeEventListener(name, wrapListener);
396
- }
397
- listener(arg);
398
- });
399
- } else {
400
- throw new TypeError('The "emitter" argument must be of type EventEmitter. Received type ' + typeof emitter);
401
- }
206
+ EventEmitter2.prototype.off = EventEmitter2.prototype.removeListener;
207
+ EventEmitter2.prototype.addListener = EventEmitter2.prototype.on;
208
+ EventEmitter2.prefixed = prefix;
209
+ EventEmitter2.EventEmitter = EventEmitter2;
210
+ if ("undefined" !== typeof module2) {
211
+ module2.exports = EventEmitter2;
402
212
  }
403
213
  }
404
214
  });
@@ -425,14 +235,15 @@ var import_core6 = require("@openfeature/core");
425
235
 
426
236
  // src/events/open-feature-event-emitter.ts
427
237
  var import_core = require("@openfeature/core");
428
- var import_events = __toESM(require_events());
238
+
239
+ // ../../node_modules/eventemitter3/index.mjs
240
+ var import_index = __toESM(require_eventemitter3(), 1);
241
+
242
+ // src/events/open-feature-event-emitter.ts
429
243
  var OpenFeatureEventEmitter = class extends import_core.GenericEventEmitter {
430
- eventEmitter = new import_events.EventEmitter({ captureRejections: true });
244
+ eventEmitter = new import_index.default();
431
245
  constructor() {
432
246
  super();
433
- this.eventEmitter.on("error", (err) => {
434
- this._logger?.error("Error running event handler:", err);
435
- });
436
247
  }
437
248
  };
438
249