Update ava to 4.3.3

The [release notes](https://github.com/avajs/ava/releases/tag/v4.3.3)
mention compatibility with Node 18.8.
This commit is contained in:
Henry Mercer 2022-09-02 18:02:07 +01:00
parent 21530f507f
commit bea5e4b220
160 changed files with 2647 additions and 2263 deletions

18
node_modules/emittery/index.d.ts generated vendored
View file

@ -1,11 +1,11 @@
/* eslint-disable no-redeclare */
/**
Emittery accepts strings and symbols as event names.
Emittery accepts strings, symbols, and numbers as event names.
Symbol event names can be used to avoid name collisions when your classes are extended, especially for internal events.
Symbol event names are preferred given that they can be used to avoid name collisions when your classes are extended, especially for internal events.
*/
type EventName = string | symbol;
type EventName = PropertyKey;
// Helper type for turning the passed `EventData` type map into a list of string keys that don't require data alongside the event name when emitting. Uses the same trick that `Omit` does internally to filter keys by building a map of keys to keys we want to keep, and then accessing all the keys to return just the list of keys we want to keep.
type DatalessEventNames<EventData> = {
@ -14,7 +14,7 @@ type DatalessEventNames<EventData> = {
declare const listenerAdded: unique symbol;
declare const listenerRemoved: unique symbol;
type OmnipresentEventData = {[listenerAdded]: Emittery.ListenerChangedData; [listenerRemoved]: Emittery.ListenerChangedData};
type _OmnipresentEventData = {[listenerAdded]: Emittery.ListenerChangedData; [listenerRemoved]: Emittery.ListenerChangedData};
/**
Emittery can collect and log debug information.
@ -90,7 +90,7 @@ interface DebugOptions<EventData> {
(type, debugName, eventName, eventData) => {
eventData = JSON.stringify(eventData);
if (typeof eventName === 'symbol') {
if (typeof eventName === 'symbol' || typeof eventName === 'number') {
eventName = eventName.toString();
}
@ -142,7 +142,7 @@ Emittery is a strictly typed, fully async EventEmitter implementation. Event lis
import Emittery = require('emittery');
const emitter = new Emittery<
// Pass `{[eventName: <string | symbol>]: undefined | <eventArg>}` as the first type argument for events that pass data to their listeners.
// Pass `{[eventName: <string | symbol | number>]: undefined | <eventArg>}` as the first type argument for events that pass data to their listeners.
// A value of `undefined` in this map means the event listeners should expect no data, and a type other than `undefined` means the listeners will receive one argument of that type.
{
open: string,
@ -164,8 +164,8 @@ emitter.emit('other');
```
*/
declare class Emittery<
EventData = Record<string, any>, // When https://github.com/microsoft/TypeScript/issues/1863 ships, we can switch this to have an index signature including Symbols. If you want to use symbol keys right now, you need to pass an interface with those symbol keys explicitly listed.
AllEventData = EventData & OmnipresentEventData,
EventData = Record<EventName, any>,
AllEventData = EventData & _OmnipresentEventData,
DatalessEvents = DatalessEventNames<EventData>
> {
/**
@ -592,6 +592,8 @@ declare namespace Emittery {
*/
eventName?: EventName;
}
type OmnipresentEventData = _OmnipresentEventData;
}
export = Emittery;

59
node_modules/emittery/index.js generated vendored
View file

@ -6,14 +6,22 @@ const producersMap = new WeakMap();
const anyProducer = Symbol('anyProducer');
const resolvedPromise = Promise.resolve();
// Define symbols for "meta" events.
const listenerAdded = Symbol('listenerAdded');
const listenerRemoved = Symbol('listenerRemoved');
// Define a symbol that allows internal code to emit meta events, but prevents userland from doing so.
const metaEventsAllowed = Symbol('metaEventsAllowed');
let isGlobalDebugEnabled = false;
function assertEventName(eventName) {
if (typeof eventName !== 'string' && typeof eventName !== 'symbol') {
throw new TypeError('eventName must be a string or a symbol');
function assertEventName(eventName, allowMetaEvents) {
if (typeof eventName !== 'string' && typeof eventName !== 'symbol' && typeof eventName !== 'number') {
throw new TypeError('`eventName` must be a string, symbol, or number');
}
if (isMetaEvent(eventName) && allowMetaEvents !== metaEventsAllowed) {
throw new TypeError('`eventName` cannot be meta event `listenerAdded` or `listenerRemoved`');
}
}
@ -33,7 +41,7 @@ function getListeners(instance, eventName) {
}
function getEventProducers(instance, eventName) {
const key = typeof eventName === 'string' || typeof eventName === 'symbol' ? eventName : anyProducer;
const key = typeof eventName === 'string' || typeof eventName === 'symbol' || typeof eventName === 'number' ? eventName : anyProducer;
const producers = producersMap.get(instance);
if (!producers.has(key)) {
producers.set(key, new Set());
@ -147,7 +155,7 @@ function defaultMethodNamesOrAssert(methodNames) {
return methodNames;
}
const isListenerSymbol = symbol => symbol === listenerAdded || symbol === listenerRemoved;
const isMetaEvent = eventName => eventName === listenerAdded || eventName === listenerRemoved;
class Emittery {
static mixin(emitteryPropertyName, methodNames) {
@ -216,9 +224,14 @@ class Emittery {
if (!this.debug.logger) {
this.debug.logger = (type, debugName, eventName, eventData) => {
eventData = JSON.stringify(eventData);
try {
// TODO: Use https://github.com/sindresorhus/safe-stringify when the package is more mature. Just copy-paste the code.
eventData = JSON.stringify(eventData);
} catch {
eventData = `Object with the following keys failed to stringify: ${Object.keys(eventData).join(',')}`;
}
if (typeof eventName === 'symbol') {
if (typeof eventName === 'symbol' || typeof eventName === 'number') {
eventName = eventName.toString();
}
@ -240,13 +253,13 @@ class Emittery {
eventNames = Array.isArray(eventNames) ? eventNames : [eventNames];
for (const eventName of eventNames) {
assertEventName(eventName);
assertEventName(eventName, metaEventsAllowed);
getListeners(this, eventName).add(listener);
this.logIfDebugEnabled('subscribe', eventName, undefined);
if (!isListenerSymbol(eventName)) {
this.emit(listenerAdded, {eventName, listener});
if (!isMetaEvent(eventName)) {
this.emit(listenerAdded, {eventName, listener}, metaEventsAllowed);
}
}
@ -258,13 +271,13 @@ class Emittery {
eventNames = Array.isArray(eventNames) ? eventNames : [eventNames];
for (const eventName of eventNames) {
assertEventName(eventName);
assertEventName(eventName, metaEventsAllowed);
getListeners(this, eventName).delete(listener);
this.logIfDebugEnabled('unsubscribe', eventName, undefined);
if (!isListenerSymbol(eventName)) {
this.emit(listenerRemoved, {eventName, listener});
if (!isMetaEvent(eventName)) {
this.emit(listenerRemoved, {eventName, listener}, metaEventsAllowed);
}
}
}
@ -281,14 +294,14 @@ class Emittery {
events(eventNames) {
eventNames = Array.isArray(eventNames) ? eventNames : [eventNames];
for (const eventName of eventNames) {
assertEventName(eventName);
assertEventName(eventName, metaEventsAllowed);
}
return iterator(this, eventNames);
}
async emit(eventName, eventData) {
assertEventName(eventName);
async emit(eventName, eventData, allowMetaEvents) {
assertEventName(eventName, allowMetaEvents);
this.logIfDebugEnabled('emit', eventName, eventData);
@ -297,7 +310,7 @@ class Emittery {
const listeners = getListeners(this, eventName);
const anyListeners = anyMap.get(this);
const staticListeners = [...listeners];
const staticAnyListeners = isListenerSymbol(eventName) ? [] : [...anyListeners];
const staticAnyListeners = isMetaEvent(eventName) ? [] : [...anyListeners];
await resolvedPromise;
await Promise.all([
@ -314,8 +327,8 @@ class Emittery {
]);
}
async emitSerial(eventName, eventData) {
assertEventName(eventName);
async emitSerial(eventName, eventData, allowMetaEvents) {
assertEventName(eventName, allowMetaEvents);
this.logIfDebugEnabled('emitSerial', eventName, eventData);
@ -346,7 +359,7 @@ class Emittery {
this.logIfDebugEnabled('subscribeAny', undefined, undefined);
anyMap.get(this).add(listener);
this.emit(listenerAdded, {listener});
this.emit(listenerAdded, {listener}, metaEventsAllowed);
return this.offAny.bind(this, listener);
}
@ -359,7 +372,7 @@ class Emittery {
this.logIfDebugEnabled('unsubscribeAny', undefined, undefined);
this.emit(listenerRemoved, {listener});
this.emit(listenerRemoved, {listener}, metaEventsAllowed);
anyMap.get(this).delete(listener);
}
@ -369,7 +382,7 @@ class Emittery {
for (const eventName of eventNames) {
this.logIfDebugEnabled('clear', eventName, undefined);
if (typeof eventName === 'string' || typeof eventName === 'symbol') {
if (typeof eventName === 'string' || typeof eventName === 'symbol' || typeof eventName === 'number') {
getListeners(this, eventName).clear();
const producers = getEventProducers(this, eventName);
@ -409,7 +422,7 @@ class Emittery {
}
if (typeof eventName !== 'undefined') {
assertEventName(eventName);
assertEventName(eventName, metaEventsAllowed);
}
count += anyMap.get(this).size;

4
node_modules/emittery/package.json generated vendored
View file

@ -1,6 +1,6 @@
{
"name": "emittery",
"version": "0.10.0",
"version": "0.11.0",
"description": "Simple and modern async event emitter",
"license": "MIT",
"repository": "sindresorhus/emittery",
@ -53,7 +53,7 @@
"delay": "^4.3.0",
"nyc": "^15.0.0",
"p-event": "^4.1.0",
"tsd": "^0.16.0",
"tsd": "^0.19.1",
"xo": "^0.39.0"
},
"nyc": {

10
node_modules/emittery/readme.md generated vendored
View file

@ -40,9 +40,9 @@ emitter.emit(myUnicorn, '🦋'); // Will trigger printing 'Unicorns love 🦋'
### eventName
Emittery accepts strings and symbols as event names.
Emittery accepts strings, symbols, and numbers as event names.
Symbol event names can be used to avoid name collisions when your classes are extended, especially for internal events.
Symbol event names are preferred given that they can be used to avoid name collisions when your classes are extended, especially for internal events.
### isDebugEnabled
@ -89,7 +89,7 @@ Configure the new instance of Emittery.
##### debug?
Type: `objcect`
Type: `object`
Configure the debugging options for this instance.
@ -160,7 +160,7 @@ Default:
eventData = JSON.stringify(eventData);
}
if (typeof eventName === 'symbol') {
if (typeof eventName === 'symbol' || typeof eventName === 'number') {
eventName = eventName.toString();
}
@ -222,7 +222,7 @@ emitter.emit('🐶', '🍖'); // log => '🍖'
##### Custom subscribable events
Emittery exports some symbols which represent custom events that can be passed to `Emitter.on` and similar methods.
Emittery exports some symbols which represent "meta" events that can be passed to `Emitter.on` and similar methods.
- `Emittery.listenerAdded` - Fires when an event listener was added.
- `Emittery.listenerRemoved` - Fires when an event listener was removed.