@fluidframework/core-interfaces 2.0.0-internal.6.1.0 → 2.0.0-internal.6.2.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.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,iDAKyB;AAJxB,+GAAA,cAAc,OAAA;AAEd,+GAAA,cAAc,OAAA;AAIf,+FAA+F;AAC/F,qDAAqD;AACrD,8EAA8E;AAC9E,6CAMuB;AADtB,2GAAA,YAAY,OAAA;AAGb,qCAKmB;AAJlB,8GAAA,mBAAmB,OAAA;AAEnB,uGAAA,YAAY,OAAA;AAIb,+CASwB;AANvB,8GAAA,cAAc,OAAA;AAGd,kHAAA,kBAAkB,OAAA;AAClB,yHAAA,yBAAyB,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport {\n\tIFluidLoadable,\n\tIProvideFluidLoadable,\n\tIFluidRunnable,\n\tIProvideFluidRunnable,\n} from \"./fluidLoadable\";\n\n// Typescript forgets the index signature when customers augment IRequestHeader if we export *.\n// So we export the explicit members as a workaround:\n// https://github.com/microsoft/TypeScript/issues/18877#issuecomment-476921038\nexport {\n\tIRequest,\n\tIRequestHeader,\n\tIResponse,\n\tIProvideFluidRouter,\n\tIFluidRouter,\n} from \"./fluidRouter\";\n\nexport {\n\tIFluidHandleContext,\n\tIProvideFluidHandleContext,\n\tIFluidHandle,\n\tIProvideFluidHandle,\n} from \"./handles\";\n\nexport {\n\tIFluidPackageEnvironment,\n\tIFluidPackage,\n\tisFluidPackage,\n\tIFluidCodeDetailsConfig,\n\tIFluidCodeDetails,\n\tisFluidCodeDetails,\n\tIFluidCodeDetailsComparer,\n\tIProvideFluidCodeDetailsComparer,\n} from \"./fluidPackage\";\n\nexport { FluidObjectProviderKeys, FluidObject, FluidObjectKeys } from \"./provider\";\nexport type { IDisposable } from \"./disposable\";\nexport type {\n\tILoggingError,\n\tITaggedTelemetryPropertyType,\n\tITelemetryBaseEvent,\n\tITelemetryBaseLogger,\n\tITelemetryErrorEvent,\n\tITelemetryGenericEvent,\n\tITelemetryLogger,\n\tITelemetryPerformanceEvent,\n\tITelemetryProperties,\n\tTelemetryEventCategory,\n\tTelemetryEventPropertyType,\n} from \"./logger\";\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH,iCAMiB;AALhB,wGAAA,eAAe,OAAA;AAkBhB,iDAKyB;AAJxB,+GAAA,cAAc,OAAA;AAEd,+GAAA,cAAc,OAAA;AAIf,+CASwB;AANvB,8GAAA,cAAc,OAAA;AAGd,kHAAA,kBAAkB,OAAA;AAClB,yHAAA,yBAAyB,OAAA;AAI1B,+FAA+F;AAC/F,qDAAqD;AACrD,8EAA8E;AAC9E,6CAMuB;AADtB,2GAAA,YAAY,OAAA;AAGb,qCAKmB;AAJlB,8GAAA,mBAAmB,OAAA;AAEnB,uGAAA,YAAY,OAAA","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nexport type { IDisposable } from \"./disposable\";\n\nexport {\n\tFluidErrorTypes,\n\tIErrorBase,\n\tIGenericError,\n\tIUsageError,\n\tIThrottlingWarning,\n} from \"./error\";\n\nexport type {\n\tExtendEventProvider,\n\tIErrorEvent,\n\tIEvent,\n\tIEventProvider,\n\tIEventThisPlaceHolder,\n\tIEventTransformer,\n\tReplaceIEventThisPlaceHolder,\n\tTransformedEvent,\n} from \"./events\";\n\nexport {\n\tIFluidLoadable,\n\tIProvideFluidLoadable,\n\tIFluidRunnable,\n\tIProvideFluidRunnable,\n} from \"./fluidLoadable\";\n\nexport {\n\tIFluidPackageEnvironment,\n\tIFluidPackage,\n\tisFluidPackage,\n\tIFluidCodeDetailsConfig,\n\tIFluidCodeDetails,\n\tisFluidCodeDetails,\n\tIFluidCodeDetailsComparer,\n\tIProvideFluidCodeDetailsComparer,\n} from \"./fluidPackage\";\n\n// Typescript forgets the index signature when customers augment IRequestHeader if we export *.\n// So we export the explicit members as a workaround:\n// https://github.com/microsoft/TypeScript/issues/18877#issuecomment-476921038\nexport {\n\tIRequest,\n\tIRequestHeader,\n\tIResponse,\n\tIProvideFluidRouter,\n\tIFluidRouter,\n} from \"./fluidRouter\";\n\nexport {\n\tIFluidHandleContext,\n\tIProvideFluidHandleContext,\n\tIFluidHandle,\n\tIProvideFluidHandle,\n} from \"./handles\";\n\nexport type {\n\tILoggingError,\n\tITaggedTelemetryPropertyType,\n\tITelemetryBaseEvent,\n\tITelemetryBaseLogger,\n\tITelemetryErrorEvent,\n\tITelemetryGenericEvent,\n\tITelemetryLogger,\n\tITelemetryPerformanceEvent,\n\tITelemetryProperties,\n\tTelemetryEventCategory,\n\tTelemetryEventPropertyType,\n} from \"./logger\";\nexport { LogLevel } from \"./logger\";\nexport { FluidObjectProviderKeys, FluidObject, FluidObjectKeys } from \"./provider\";\n"]}
package/dist/logger.d.ts CHANGED
@@ -39,12 +39,21 @@ export interface ITelemetryBaseEvent extends ITelemetryProperties {
39
39
  category: string;
40
40
  eventName: string;
41
41
  }
42
+ /**
43
+ * Enum to specify a level to the log to filter out logs based on the level.
44
+ */
45
+ export declare const enum LogLevel {
46
+ verbose = 0,
47
+ default = 10,
48
+ error = 20
49
+ }
42
50
  /**
43
51
  * Interface to output telemetry events.
44
52
  * Implemented by hosting app / loader
45
53
  */
46
54
  export interface ITelemetryBaseLogger {
47
- send(event: ITelemetryBaseEvent): void;
55
+ send(event: ITelemetryBaseEvent, logLevel?: LogLevel): void;
56
+ minLogLevel?: LogLevel;
48
57
  }
49
58
  /**
50
59
  * Informational (non-error) telemetry event
@@ -87,23 +96,28 @@ export interface ITelemetryLogger extends ITelemetryBaseLogger {
87
96
  * Actual implementation that sends telemetry event
88
97
  * Implemented by derived classes
89
98
  * @param event - Telemetry event to send over
99
+ * @param logLevel - optional level of the log.
90
100
  */
91
- send(event: ITelemetryBaseEvent): void;
101
+ send(event: ITelemetryBaseEvent, logLevel?: LogLevel): void;
92
102
  /**
93
103
  * Send information telemetry event
94
104
  * @param event - Event to send
95
105
  * @param error - optional error object to log
106
+ * @param logLevel - optional level of the log.
96
107
  */
97
- sendTelemetryEvent(event: ITelemetryGenericEvent, error?: any): void;
108
+ sendTelemetryEvent(event: ITelemetryGenericEvent, error?: any, logLevel?: LogLevel.verbose | LogLevel.default): void;
98
109
  /**
99
110
  * Send error telemetry event
100
111
  * @param event - Event to send
112
+ * @param error - optional error object to log
101
113
  */
102
114
  sendErrorEvent(event: ITelemetryErrorEvent, error?: any): void;
103
115
  /**
104
116
  * Send performance telemetry event
105
117
  * @param event - Event to send
118
+ * @param error - optional error object to log
119
+ * @param logLevel - optional level of the log.
106
120
  */
107
- sendPerformanceEvent(event: ITelemetryPerformanceEvent, error?: any): void;
121
+ sendPerformanceEvent(event: ITelemetryPerformanceEvent, error?: any, logLevel?: LogLevel.verbose | LogLevel.default): void;
108
122
  }
109
123
  //# sourceMappingURL=logger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,oBAAY,sBAAsB,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;AAEzE;;;;;;GAMG;AACH,oBAAY,0BAA0B,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAE/E;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC5C,KAAK,EAAE,0BAA0B,CAAC;IAClC,GAAG,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,CAAC,KAAK,EAAE,MAAM,GAAG,0BAA0B,GAAG,4BAA4B,CAAC;CAC3E;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACpC,IAAI,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;CACvC;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IACjE,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC3C;;OAEG;IACH,sBAAsB,IAAI,oBAAoB,CAAC;CAC/C;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAiB,SAAQ,oBAAoB;IAC7D;;;;OAIG;IACH,IAAI,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEvC;;;;OAIG;IAEH,kBAAkB,CAAC,KAAK,EAAE,sBAAsB,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAErE;;;OAGG;IAEH,cAAc,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAE/D;;;OAGG;IAEH,oBAAoB,CAAC,KAAK,EAAE,0BAA0B,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;CAC3E"}
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH;;GAEG;AACH,oBAAY,sBAAsB,GAAG,SAAS,GAAG,OAAO,GAAG,aAAa,CAAC;AAEzE;;;;;;GAMG;AACH,oBAAY,0BAA0B,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC;AAE/E;;;;GAIG;AACH,MAAM,WAAW,4BAA4B;IAC5C,KAAK,EAAE,0BAA0B,CAAC;IAClC,GAAG,EAAE,MAAM,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACpC,CAAC,KAAK,EAAE,MAAM,GAAG,0BAA0B,GAAG,4BAA4B,CAAC;CAC3E;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAoB,SAAQ,oBAAoB;IAChE,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,0BAAkB,QAAQ;IACzB,OAAO,IAAI;IACX,OAAO,KAAK;IACZ,KAAK,KAAK;CACV;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAoB;IACpC,IAAI,CAAC,KAAK,EAAE,mBAAmB,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAE5D,WAAW,CAAC,EAAE,QAAQ,CAAC;CACvB;AAED;;;GAGG;AACH,MAAM,WAAW,sBAAuB,SAAQ,oBAAoB;IACnE,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CAClC;AAED;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IACjE,SAAS,EAAE,MAAM,CAAC;CAClB;AAED;;;GAGG;AACH,MAAM,WAAW,0BAA2B,SAAQ,sBAAsB;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC3C;;OAEG;IACH,sBAAsB,IAAI,oBAAoB,CAAC;CAC/C;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAiB,SAAQ,oBAAoB;IAC7D;;;;;OAKG;IACH,IAAI,CAAC,KAAK,EAAE,mBAAmB,EAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC;IAE5D;;;;;OAKG;IAEH,kBAAkB,CACjB,KAAK,EAAE,sBAAsB,EAC7B,KAAK,CAAC,EAAE,GAAG,EACX,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,GAC5C,IAAI,CAAC;IAER;;;;OAIG;IAEH,cAAc,CAAC,KAAK,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC;IAE/D;;;;;OAKG;IAEH,oBAAoB,CACnB,KAAK,EAAE,0BAA0B,EACjC,KAAK,CAAC,EAAE,GAAG,EACX,QAAQ,CAAC,EAAE,QAAQ,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,GAC5C,IAAI,CAAC;CACR"}
@@ -1 +1 @@
1
- {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Examples of known categories, however category can be any string for extensibility.\n */\nexport type TelemetryEventCategory = \"generic\" | \"error\" | \"performance\";\n\n/**\n * Property types that can be logged.\n *\n * @remarks Logging entire objects is considered extremely dangerous from a telemetry point of view because people can\n * easily add fields to objects that shouldn't be logged and not realize it's going to be logged.\n * General best practice is to explicitly log the fields you care about from objects.\n */\nexport type TelemetryEventPropertyType = string | number | boolean | undefined;\n\n/**\n * A property to be logged to telemetry containing both the value and a tag. Tags are generic strings that can be used\n * to mark pieces of information that should be organized or handled differently by loggers in various first or third\n * party scenarios. For example, tags are used to mark data that should not be stored in logs for privacy reasons.\n */\nexport interface ITaggedTelemetryPropertyType {\n\tvalue: TelemetryEventPropertyType;\n\ttag: string;\n}\n\n/**\n * JSON-serializable properties, which will be logged with telemetry.\n */\nexport interface ITelemetryProperties {\n\t[index: string]: TelemetryEventPropertyType | ITaggedTelemetryPropertyType;\n}\n\n/**\n * Base interface for logging telemetry statements.\n * Can contain any number of properties that get serialized as json payload.\n * @param category - category of the event, like \"error\", \"performance\", \"generic\", etc.\n * @param eventName - name of the event.\n */\nexport interface ITelemetryBaseEvent extends ITelemetryProperties {\n\tcategory: string;\n\teventName: string;\n}\n\n/**\n * Interface to output telemetry events.\n * Implemented by hosting app / loader\n */\nexport interface ITelemetryBaseLogger {\n\tsend(event: ITelemetryBaseEvent): void;\n}\n\n/**\n * Informational (non-error) telemetry event\n * Maps to category = \"generic\"\n */\nexport interface ITelemetryGenericEvent extends ITelemetryProperties {\n\teventName: string;\n\tcategory?: TelemetryEventCategory;\n}\n\n/**\n * Error telemetry event.\n * Maps to category = \"error\"\n */\nexport interface ITelemetryErrorEvent extends ITelemetryProperties {\n\teventName: string;\n}\n\n/**\n * Performance telemetry event.\n * Maps to category = \"performance\"\n */\nexport interface ITelemetryPerformanceEvent extends ITelemetryGenericEvent {\n\tduration?: number; // Duration of event (optional)\n}\n\n/**\n * An error object that supports exporting its properties to be logged to telemetry\n */\nexport interface ILoggingError extends Error {\n\t/**\n\t * Return all properties from this object that should be logged to telemetry\n\t */\n\tgetTelemetryProperties(): ITelemetryProperties;\n}\n\n/**\n * ITelemetryLogger interface contains various helper telemetry methods,\n * encoding in one place schemas for various types of Fluid telemetry events.\n * Creates sub-logger that appends properties to all events\n */\nexport interface ITelemetryLogger extends ITelemetryBaseLogger {\n\t/**\n\t * Actual implementation that sends telemetry event\n\t * Implemented by derived classes\n\t * @param event - Telemetry event to send over\n\t */\n\tsend(event: ITelemetryBaseEvent): void;\n\n\t/**\n\t * Send information telemetry event\n\t * @param event - Event to send\n\t * @param error - optional error object to log\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tsendTelemetryEvent(event: ITelemetryGenericEvent, error?: any): void;\n\n\t/**\n\t * Send error telemetry event\n\t * @param event - Event to send\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tsendErrorEvent(event: ITelemetryErrorEvent, error?: any): void;\n\n\t/**\n\t * Send performance telemetry event\n\t * @param event - Event to send\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tsendPerformanceEvent(event: ITelemetryPerformanceEvent, error?: any): void;\n}\n"]}
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/logger.ts"],"names":[],"mappings":";AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Examples of known categories, however category can be any string for extensibility.\n */\nexport type TelemetryEventCategory = \"generic\" | \"error\" | \"performance\";\n\n/**\n * Property types that can be logged.\n *\n * @remarks Logging entire objects is considered extremely dangerous from a telemetry point of view because people can\n * easily add fields to objects that shouldn't be logged and not realize it's going to be logged.\n * General best practice is to explicitly log the fields you care about from objects.\n */\nexport type TelemetryEventPropertyType = string | number | boolean | undefined;\n\n/**\n * A property to be logged to telemetry containing both the value and a tag. Tags are generic strings that can be used\n * to mark pieces of information that should be organized or handled differently by loggers in various first or third\n * party scenarios. For example, tags are used to mark data that should not be stored in logs for privacy reasons.\n */\nexport interface ITaggedTelemetryPropertyType {\n\tvalue: TelemetryEventPropertyType;\n\ttag: string;\n}\n\n/**\n * JSON-serializable properties, which will be logged with telemetry.\n */\nexport interface ITelemetryProperties {\n\t[index: string]: TelemetryEventPropertyType | ITaggedTelemetryPropertyType;\n}\n\n/**\n * Base interface for logging telemetry statements.\n * Can contain any number of properties that get serialized as json payload.\n * @param category - category of the event, like \"error\", \"performance\", \"generic\", etc.\n * @param eventName - name of the event.\n */\nexport interface ITelemetryBaseEvent extends ITelemetryProperties {\n\tcategory: string;\n\teventName: string;\n}\n\n/**\n * Enum to specify a level to the log to filter out logs based on the level.\n */\nexport const enum LogLevel {\n\tverbose = 0, // To log any verbose event for example when you are debugging something.\n\tdefault = 10, // Default log level\n\terror = 20, // To log errors.\n}\n\n/**\n * Interface to output telemetry events.\n * Implemented by hosting app / loader\n */\nexport interface ITelemetryBaseLogger {\n\tsend(event: ITelemetryBaseEvent, logLevel?: LogLevel): void;\n\n\tminLogLevel?: LogLevel;\n}\n\n/**\n * Informational (non-error) telemetry event\n * Maps to category = \"generic\"\n */\nexport interface ITelemetryGenericEvent extends ITelemetryProperties {\n\teventName: string;\n\tcategory?: TelemetryEventCategory;\n}\n\n/**\n * Error telemetry event.\n * Maps to category = \"error\"\n */\nexport interface ITelemetryErrorEvent extends ITelemetryProperties {\n\teventName: string;\n}\n\n/**\n * Performance telemetry event.\n * Maps to category = \"performance\"\n */\nexport interface ITelemetryPerformanceEvent extends ITelemetryGenericEvent {\n\tduration?: number; // Duration of event (optional)\n}\n\n/**\n * An error object that supports exporting its properties to be logged to telemetry\n */\nexport interface ILoggingError extends Error {\n\t/**\n\t * Return all properties from this object that should be logged to telemetry\n\t */\n\tgetTelemetryProperties(): ITelemetryProperties;\n}\n\n/**\n * ITelemetryLogger interface contains various helper telemetry methods,\n * encoding in one place schemas for various types of Fluid telemetry events.\n * Creates sub-logger that appends properties to all events\n */\nexport interface ITelemetryLogger extends ITelemetryBaseLogger {\n\t/**\n\t * Actual implementation that sends telemetry event\n\t * Implemented by derived classes\n\t * @param event - Telemetry event to send over\n\t * @param logLevel - optional level of the log.\n\t */\n\tsend(event: ITelemetryBaseEvent, logLevel?: LogLevel): void;\n\n\t/**\n\t * Send information telemetry event\n\t * @param event - Event to send\n\t * @param error - optional error object to log\n\t * @param logLevel - optional level of the log.\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tsendTelemetryEvent(\n\t\tevent: ITelemetryGenericEvent,\n\t\terror?: any,\n\t\tlogLevel?: LogLevel.verbose | LogLevel.default,\n\t): void;\n\n\t/**\n\t * Send error telemetry event\n\t * @param event - Event to send\n\t * @param error - optional error object to log\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tsendErrorEvent(event: ITelemetryErrorEvent, error?: any): void;\n\n\t/**\n\t * Send performance telemetry event\n\t * @param event - Event to send\n\t * @param error - optional error object to log\n\t * @param logLevel - optional level of the log.\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\tsendPerformanceEvent(\n\t\tevent: ITelemetryPerformanceEvent,\n\t\terror?: any,\n\t\tlogLevel?: LogLevel.verbose | LogLevel.default,\n\t): void;\n}\n"]}
package/lib/error.d.ts ADDED
@@ -0,0 +1,105 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ import { ITelemetryProperties } from "./index";
6
+ /**
7
+ * Error types the Fluid Framework may report.
8
+ */
9
+ export declare const FluidErrorTypes: {
10
+ /**
11
+ * Some error, most likely an exception caught by runtime and propagated to container as critical error
12
+ */
13
+ readonly genericError: "genericError";
14
+ /**
15
+ * Throttling error from server. Server is busy and is asking not to reconnect for some time
16
+ */
17
+ readonly throttlingError: "throttlingError";
18
+ /**
19
+ * Data loss error detected by Container / DeltaManager. Likely points to storage issue.
20
+ */
21
+ readonly dataCorruptionError: "dataCorruptionError";
22
+ /**
23
+ * Error encountered when processing an operation. May correlate with data corruption.
24
+ */
25
+ readonly dataProcessingError: "dataProcessingError";
26
+ /**
27
+ * Error indicating an API is being used improperly resulting in an invalid operation.
28
+ */
29
+ readonly usageError: "usageError";
30
+ };
31
+ export declare type FluidErrorTypes = typeof FluidErrorTypes[keyof typeof FluidErrorTypes];
32
+ /**
33
+ * Base interface for all errors and warnings emitted the container.
34
+ *
35
+ * @remarks
36
+ *
37
+ * We are in the process of unifying error types across layers of the Framework. For now we have only migrated
38
+ * those from container-definitions. Once fully migrated, this will be a base interface for all errors and
39
+ * warnings emitted by the Fluid Framework. Currently only the container layer is using IErrorBase.
40
+ * Runtime and others will follow soon.
41
+ */
42
+ export interface IErrorBase extends Partial<Error> {
43
+ /**
44
+ * A type tag differentiating kinds of errors emitted by the container.
45
+ *
46
+ * @see See {@link FluidErrorTypes#genericError} for some common examples.
47
+ * - container
48
+ * - runtime
49
+ * - drivers
50
+ */
51
+ readonly errorType: string;
52
+ /**
53
+ * See {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error | Error.message}
54
+ *
55
+ * @remarks
56
+ *
57
+ * Privacy Note - This is a freeform string that we may not control in all cases (e.g. a dependency throws an error)
58
+ * If there are known cases where this contains privacy-sensitive data it will be tagged and included in the result
59
+ * of getTelemetryProperties. When logging, consider fetching it that way rather than straight from this field.
60
+ */
61
+ readonly message: string;
62
+ /**
63
+ * See {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/name | Error.name}
64
+ */
65
+ readonly name?: string;
66
+ /**
67
+ * See {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/stack | Error.stack}
68
+ */
69
+ readonly stack?: string;
70
+ /**
71
+ * Returns all properties of this error object that are either safe to log
72
+ * or not explicitly tagged as containing privacy-sensitive data.
73
+ */
74
+ getTelemetryProperties?(): ITelemetryProperties;
75
+ }
76
+ /**
77
+ * Generic wrapper for an unrecognized/uncategorized error object
78
+ */
79
+ export interface IGenericError extends IErrorBase {
80
+ /**
81
+ * {@inheritDoc IErrorBase.errorType}
82
+ */
83
+ readonly errorType: typeof FluidErrorTypes.genericError;
84
+ error?: any;
85
+ }
86
+ /**
87
+ * Error indicating an API is being used improperly resulting in an invalid operation.
88
+ */
89
+ export interface IUsageError extends IErrorBase {
90
+ /**
91
+ * {@inheritDoc IErrorBase.errorType}
92
+ */
93
+ readonly errorType: typeof FluidErrorTypes.usageError;
94
+ }
95
+ /**
96
+ * Warning emitted when requests to storage are being throttled
97
+ */
98
+ export interface IThrottlingWarning extends IErrorBase {
99
+ /**
100
+ * {@inheritDoc IErrorBase.errorType}
101
+ */
102
+ readonly errorType: typeof FluidErrorTypes.throttlingError;
103
+ readonly retryAfterSeconds: number;
104
+ }
105
+ //# sourceMappingURL=error.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAE/C;;GAEG;AACH,eAAO,MAAM,eAAe;IAC3B;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;CAEM,CAAC;AACX,oBAAY,eAAe,GAAG,OAAO,eAAe,CAAC,MAAM,OAAO,eAAe,CAAC,CAAC;AAEnF;;;;;;;;;GASG;AACH,MAAM,WAAW,UAAW,SAAQ,OAAO,CAAC,KAAK,CAAC;IACjD;;;;;;;OAOG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,sBAAsB,CAAC,IAAI,oBAAoB,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,UAAU;IAChD;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,eAAe,CAAC,YAAY,CAAC;IACxD,KAAK,CAAC,EAAE,GAAG,CAAC;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,UAAU;IAC9C;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,eAAe,CAAC,UAAU,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACrD;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,OAAO,eAAe,CAAC,eAAe,CAAC;IAC3D,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC;CACnC"}
package/lib/error.js ADDED
@@ -0,0 +1,30 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ /**
6
+ * Error types the Fluid Framework may report.
7
+ */
8
+ export const FluidErrorTypes = {
9
+ /**
10
+ * Some error, most likely an exception caught by runtime and propagated to container as critical error
11
+ */
12
+ genericError: "genericError",
13
+ /**
14
+ * Throttling error from server. Server is busy and is asking not to reconnect for some time
15
+ */
16
+ throttlingError: "throttlingError",
17
+ /**
18
+ * Data loss error detected by Container / DeltaManager. Likely points to storage issue.
19
+ */
20
+ dataCorruptionError: "dataCorruptionError",
21
+ /**
22
+ * Error encountered when processing an operation. May correlate with data corruption.
23
+ */
24
+ dataProcessingError: "dataProcessingError",
25
+ /**
26
+ * Error indicating an API is being used improperly resulting in an invalid operation.
27
+ */
28
+ usageError: "usageError",
29
+ };
30
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../src/error.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG;IAC9B;;OAEG;IACH,YAAY,EAAE,cAAc;IAE5B;;OAEG;IACH,eAAe,EAAE,iBAAiB;IAElC;;OAEG;IACH,mBAAmB,EAAE,qBAAqB;IAE1C;;OAEG;IACH,mBAAmB,EAAE,qBAAqB;IAE1C;;OAEG;IACH,UAAU,EAAE,YAAY;CACf,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport { ITelemetryProperties } from \"./index\";\n\n/**\n * Error types the Fluid Framework may report.\n */\nexport const FluidErrorTypes = {\n\t/**\n\t * Some error, most likely an exception caught by runtime and propagated to container as critical error\n\t */\n\tgenericError: \"genericError\",\n\n\t/**\n\t * Throttling error from server. Server is busy and is asking not to reconnect for some time\n\t */\n\tthrottlingError: \"throttlingError\",\n\n\t/**\n\t * Data loss error detected by Container / DeltaManager. Likely points to storage issue.\n\t */\n\tdataCorruptionError: \"dataCorruptionError\",\n\n\t/**\n\t * Error encountered when processing an operation. May correlate with data corruption.\n\t */\n\tdataProcessingError: \"dataProcessingError\",\n\n\t/**\n\t * Error indicating an API is being used improperly resulting in an invalid operation.\n\t */\n\tusageError: \"usageError\",\n} as const;\nexport type FluidErrorTypes = typeof FluidErrorTypes[keyof typeof FluidErrorTypes];\n\n/**\n * Base interface for all errors and warnings emitted the container.\n *\n * @remarks\n *\n * We are in the process of unifying error types across layers of the Framework. For now we have only migrated\n * those from container-definitions. Once fully migrated, this will be a base interface for all errors and\n * warnings emitted by the Fluid Framework. Currently only the container layer is using IErrorBase.\n * Runtime and others will follow soon.\n */\nexport interface IErrorBase extends Partial<Error> {\n\t/**\n\t * A type tag differentiating kinds of errors emitted by the container.\n\t *\n\t * @see See {@link FluidErrorTypes#genericError} for some common examples.\n\t * - container\n\t * - runtime\n\t * - drivers\n\t */\n\treadonly errorType: string;\n\n\t/**\n\t * See {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error | Error.message}\n\t *\n\t * @remarks\n\t *\n\t * Privacy Note - This is a freeform string that we may not control in all cases (e.g. a dependency throws an error)\n\t * If there are known cases where this contains privacy-sensitive data it will be tagged and included in the result\n\t * of getTelemetryProperties. When logging, consider fetching it that way rather than straight from this field.\n\t */\n\treadonly message: string;\n\n\t/**\n\t * See {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/name | Error.name}\n\t */\n\treadonly name?: string;\n\n\t/**\n\t * See {@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error/stack | Error.stack}\n\t */\n\treadonly stack?: string;\n\t/**\n\t * Returns all properties of this error object that are either safe to log\n\t * or not explicitly tagged as containing privacy-sensitive data.\n\t */\n\tgetTelemetryProperties?(): ITelemetryProperties;\n}\n\n/**\n * Generic wrapper for an unrecognized/uncategorized error object\n */\nexport interface IGenericError extends IErrorBase {\n\t/**\n\t * {@inheritDoc IErrorBase.errorType}\n\t */\n\treadonly errorType: typeof FluidErrorTypes.genericError;\n\terror?: any;\n}\n\n/**\n * Error indicating an API is being used improperly resulting in an invalid operation.\n */\nexport interface IUsageError extends IErrorBase {\n\t/**\n\t * {@inheritDoc IErrorBase.errorType}\n\t */\n\treadonly errorType: typeof FluidErrorTypes.usageError;\n}\n\n/**\n * Warning emitted when requests to storage are being throttled\n */\nexport interface IThrottlingWarning extends IErrorBase {\n\t/**\n\t * {@inheritDoc IErrorBase.errorType}\n\t */\n\treadonly errorType: typeof FluidErrorTypes.throttlingError;\n\treadonly retryAfterSeconds: number;\n}\n"]}
@@ -0,0 +1,249 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ /**
6
+ * Base interface for event emitters.
7
+ */
8
+ export interface IEvent {
9
+ /**
10
+ * Base event emitter signature.
11
+ *
12
+ * @remarks The event emitter polyfill and the node event emitter have different event types:
13
+ * `string | symbol` vs. `string | number`.
14
+ *
15
+ * So for our typing we'll contrain to string, that way we work with both.
16
+ *
17
+ * @eventProperty
18
+ */
19
+ (event: string, listener: (...args: any[]) => void): any;
20
+ }
21
+ /**
22
+ * Base interface for error event emitters.
23
+ */
24
+ export interface IErrorEvent extends IEvent {
25
+ /**
26
+ * Base error event emitter signature.
27
+ *
28
+ * @eventProperty
29
+ */
30
+ (event: "error", listener: (message: any) => void): any;
31
+ }
32
+ /**
33
+ * Base interface for event providers.
34
+ */
35
+ export interface IEventProvider<TEvent extends IEvent> {
36
+ /**
37
+ * Registers a callback to be invoked when the corresponding event is triggered.
38
+ */
39
+ readonly on: IEventTransformer<this, TEvent>;
40
+ /**
41
+ * Registers a callback to be invoked the first time (after registration) the corresponding event is triggered.
42
+ */
43
+ readonly once: IEventTransformer<this, TEvent>;
44
+ /**
45
+ * Removes the corresponding event if it has been registered.
46
+ */
47
+ readonly off: IEventTransformer<this, TEvent>;
48
+ }
49
+ /**
50
+ * Allows an interface to extend interfaces that already extend an {@link IEventProvider}.
51
+ *
52
+ * @example
53
+ * ``` typescript
54
+ * interface AEvents extends IEvent{
55
+ * (event: "a-event",listener: (a: number)=>void);
56
+ * }
57
+ * interface A extends IEventProvider<AEvents>{
58
+ * a: object;
59
+ * }
60
+ *
61
+ * interface BEvents extends IEvent{
62
+ * (event: "b-event",listener: (b: string)=>void);
63
+ * }
64
+ * interface B extends ExtendEventProvider<AEvents, A, BEvents>{
65
+ * b: boolean;
66
+ * };
67
+ * ```
68
+ * interface B will now extend interface A and its events
69
+ *
70
+ */
71
+ export declare type ExtendEventProvider<TBaseEvent extends IEvent, TBase extends IEventProvider<TBaseEvent>, TEvent extends TBaseEvent> = Omit<Omit<Omit<TBase, "on">, "once">, "off"> & IEventProvider<TBaseEvent> & IEventProvider<TEvent>;
72
+ /**
73
+ * The placeholder type that should be used instead of `this` in events.
74
+ */
75
+ export declare type IEventThisPlaceHolder = {
76
+ thisPlaceHolder: "thisPlaceHolder";
77
+ };
78
+ /**
79
+ * Does the type replacement by changing types of {@link IEventThisPlaceHolder} to `TThis`
80
+ */
81
+ export declare type ReplaceIEventThisPlaceHolder<L extends any[], TThis> = L extends any[] ? {
82
+ [K in keyof L]: L[K] extends IEventThisPlaceHolder ? TThis : L[K];
83
+ } : L;
84
+ /**
85
+ * Transforms the event overload by replacing {@link IEventThisPlaceHolder} with `TThis` in the event listener
86
+ * arguments and having the overload return `TTHis` as well
87
+ */
88
+ export declare type TransformedEvent<TThis, E, A extends any[]> = (event: E, listener: (...args: ReplaceIEventThisPlaceHolder<A, TThis>) => void) => TThis;
89
+ /**
90
+ * This type is a conditional type for transforming all the overloads provided in `TEvent`.
91
+ *
92
+ * @remarks
93
+ * Due to limitations of the TypeScript typing system, we need to handle each number of overload individually.
94
+ * It currently supports the max of 15 event overloads which is more than we use anywhere.
95
+ * At more than 15 overloads we start to hit {@link https://github.com/microsoft/TypeScript/issues/37209 | TS2589}.
96
+ * If we need to move beyond 15 we should evaluate using a mapped type pattern like `{"event":(listenerArgs)=>void}`
97
+ */
98
+ export declare type IEventTransformer<TThis, TEvent extends IEvent> = TEvent extends {
99
+ (event: infer E0, listener: (...args: infer A0) => void): any;
100
+ (event: infer E1, listener: (...args: infer A1) => void): any;
101
+ (event: infer E2, listener: (...args: infer A2) => void): any;
102
+ (event: infer E3, listener: (...args: infer A3) => void): any;
103
+ (event: infer E4, listener: (...args: infer A4) => void): any;
104
+ (event: infer E5, listener: (...args: infer A5) => void): any;
105
+ (event: infer E6, listener: (...args: infer A6) => void): any;
106
+ (event: infer E7, listener: (...args: infer A7) => void): any;
107
+ (event: infer E8, listener: (...args: infer A8) => void): any;
108
+ (event: infer E9, listener: (...args: infer A9) => void): any;
109
+ (event: infer E10, listener: (...args: infer A10) => void): any;
110
+ (event: infer E11, listener: (...args: infer A11) => void): any;
111
+ (event: infer E12, listener: (...args: infer A12) => void): any;
112
+ (event: infer E13, listener: (...args: infer A13) => void): any;
113
+ (event: infer E14, listener: (...args: infer A14) => void): any;
114
+ (event: string, listener: (...args: any[]) => void): any;
115
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> & TransformedEvent<TThis, E8, A8> & TransformedEvent<TThis, E9, A9> & TransformedEvent<TThis, E10, A10> & TransformedEvent<TThis, E11, A11> & TransformedEvent<TThis, E12, A12> & TransformedEvent<TThis, E13, A13> & TransformedEvent<TThis, E14, A14> : TEvent extends {
116
+ (event: infer E0, listener: (...args: infer A0) => void): any;
117
+ (event: infer E1, listener: (...args: infer A1) => void): any;
118
+ (event: infer E2, listener: (...args: infer A2) => void): any;
119
+ (event: infer E3, listener: (...args: infer A3) => void): any;
120
+ (event: infer E4, listener: (...args: infer A4) => void): any;
121
+ (event: infer E5, listener: (...args: infer A5) => void): any;
122
+ (event: infer E6, listener: (...args: infer A6) => void): any;
123
+ (event: infer E7, listener: (...args: infer A7) => void): any;
124
+ (event: infer E8, listener: (...args: infer A8) => void): any;
125
+ (event: infer E9, listener: (...args: infer A9) => void): any;
126
+ (event: infer E10, listener: (...args: infer A10) => void): any;
127
+ (event: infer E11, listener: (...args: infer A11) => void): any;
128
+ (event: infer E12, listener: (...args: infer A12) => void): any;
129
+ (event: infer E13, listener: (...args: infer A13) => void): any;
130
+ (event: string, listener: (...args: any[]) => void): any;
131
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> & TransformedEvent<TThis, E8, A8> & TransformedEvent<TThis, E9, A9> & TransformedEvent<TThis, E10, A10> & TransformedEvent<TThis, E11, A11> & TransformedEvent<TThis, E12, A12> & TransformedEvent<TThis, E13, A13> : TEvent extends {
132
+ (event: infer E0, listener: (...args: infer A0) => void): any;
133
+ (event: infer E1, listener: (...args: infer A1) => void): any;
134
+ (event: infer E2, listener: (...args: infer A2) => void): any;
135
+ (event: infer E3, listener: (...args: infer A3) => void): any;
136
+ (event: infer E4, listener: (...args: infer A4) => void): any;
137
+ (event: infer E5, listener: (...args: infer A5) => void): any;
138
+ (event: infer E6, listener: (...args: infer A6) => void): any;
139
+ (event: infer E7, listener: (...args: infer A7) => void): any;
140
+ (event: infer E8, listener: (...args: infer A8) => void): any;
141
+ (event: infer E9, listener: (...args: infer A9) => void): any;
142
+ (event: infer E10, listener: (...args: infer A10) => void): any;
143
+ (event: infer E11, listener: (...args: infer A11) => void): any;
144
+ (event: infer E12, listener: (...args: infer A12) => void): any;
145
+ (event: string, listener: (...args: any[]) => void): any;
146
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> & TransformedEvent<TThis, E8, A8> & TransformedEvent<TThis, E9, A9> & TransformedEvent<TThis, E10, A10> & TransformedEvent<TThis, E11, A11> & TransformedEvent<TThis, E12, A12> : TEvent extends {
147
+ (event: infer E0, listener: (...args: infer A0) => void): any;
148
+ (event: infer E1, listener: (...args: infer A1) => void): any;
149
+ (event: infer E2, listener: (...args: infer A2) => void): any;
150
+ (event: infer E3, listener: (...args: infer A3) => void): any;
151
+ (event: infer E4, listener: (...args: infer A4) => void): any;
152
+ (event: infer E5, listener: (...args: infer A5) => void): any;
153
+ (event: infer E6, listener: (...args: infer A6) => void): any;
154
+ (event: infer E7, listener: (...args: infer A7) => void): any;
155
+ (event: infer E8, listener: (...args: infer A8) => void): any;
156
+ (event: infer E9, listener: (...args: infer A9) => void): any;
157
+ (event: infer E10, listener: (...args: infer A10) => void): any;
158
+ (event: infer E11, listener: (...args: infer A11) => void): any;
159
+ (event: string, listener: (...args: any[]) => void): any;
160
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> & TransformedEvent<TThis, E8, A8> & TransformedEvent<TThis, E9, A9> & TransformedEvent<TThis, E10, A10> & TransformedEvent<TThis, E11, A11> : TEvent extends {
161
+ (event: infer E0, listener: (...args: infer A0) => void): any;
162
+ (event: infer E1, listener: (...args: infer A1) => void): any;
163
+ (event: infer E2, listener: (...args: infer A2) => void): any;
164
+ (event: infer E3, listener: (...args: infer A3) => void): any;
165
+ (event: infer E4, listener: (...args: infer A4) => void): any;
166
+ (event: infer E5, listener: (...args: infer A5) => void): any;
167
+ (event: infer E6, listener: (...args: infer A6) => void): any;
168
+ (event: infer E7, listener: (...args: infer A7) => void): any;
169
+ (event: infer E8, listener: (...args: infer A8) => void): any;
170
+ (event: infer E9, listener: (...args: infer A9) => void): any;
171
+ (event: infer E10, listener: (...args: infer A10) => void): any;
172
+ (event: string, listener: (...args: any[]) => void): any;
173
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> & TransformedEvent<TThis, E8, A8> & TransformedEvent<TThis, E9, A9> & TransformedEvent<TThis, E10, A10> : TEvent extends {
174
+ (event: infer E0, listener: (...args: infer A0) => void): any;
175
+ (event: infer E1, listener: (...args: infer A1) => void): any;
176
+ (event: infer E2, listener: (...args: infer A2) => void): any;
177
+ (event: infer E3, listener: (...args: infer A3) => void): any;
178
+ (event: infer E4, listener: (...args: infer A4) => void): any;
179
+ (event: infer E5, listener: (...args: infer A5) => void): any;
180
+ (event: infer E6, listener: (...args: infer A6) => void): any;
181
+ (event: infer E7, listener: (...args: infer A7) => void): any;
182
+ (event: infer E8, listener: (...args: infer A8) => void): any;
183
+ (event: infer E9, listener: (...args: infer A9) => void): any;
184
+ (event: string, listener: (...args: any[]) => void): any;
185
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> & TransformedEvent<TThis, E8, A8> & TransformedEvent<TThis, E9, A9> : TEvent extends {
186
+ (event: infer E0, listener: (...args: infer A0) => void): any;
187
+ (event: infer E1, listener: (...args: infer A1) => void): any;
188
+ (event: infer E2, listener: (...args: infer A2) => void): any;
189
+ (event: infer E3, listener: (...args: infer A3) => void): any;
190
+ (event: infer E4, listener: (...args: infer A4) => void): any;
191
+ (event: infer E5, listener: (...args: infer A5) => void): any;
192
+ (event: infer E6, listener: (...args: infer A6) => void): any;
193
+ (event: infer E7, listener: (...args: infer A7) => void): any;
194
+ (event: infer E8, listener: (...args: infer A8) => void): any;
195
+ (event: string, listener: (...args: any[]) => void): any;
196
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> & TransformedEvent<TThis, E8, A8> : TEvent extends {
197
+ (event: infer E0, listener: (...args: infer A0) => void): any;
198
+ (event: infer E1, listener: (...args: infer A1) => void): any;
199
+ (event: infer E2, listener: (...args: infer A2) => void): any;
200
+ (event: infer E3, listener: (...args: infer A3) => void): any;
201
+ (event: infer E4, listener: (...args: infer A4) => void): any;
202
+ (event: infer E5, listener: (...args: infer A5) => void): any;
203
+ (event: infer E6, listener: (...args: infer A6) => void): any;
204
+ (event: infer E7, listener: (...args: infer A7) => void): any;
205
+ (event: string, listener: (...args: any[]) => void): any;
206
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> & TransformedEvent<TThis, E7, A7> : TEvent extends {
207
+ (event: infer E0, listener: (...args: infer A0) => void): any;
208
+ (event: infer E1, listener: (...args: infer A1) => void): any;
209
+ (event: infer E2, listener: (...args: infer A2) => void): any;
210
+ (event: infer E3, listener: (...args: infer A3) => void): any;
211
+ (event: infer E4, listener: (...args: infer A4) => void): any;
212
+ (event: infer E5, listener: (...args: infer A5) => void): any;
213
+ (event: infer E6, listener: (...args: infer A6) => void): any;
214
+ (event: string, listener: (...args: any[]) => void): any;
215
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> & TransformedEvent<TThis, E6, A6> : TEvent extends {
216
+ (event: infer E0, listener: (...args: infer A0) => void): any;
217
+ (event: infer E1, listener: (...args: infer A1) => void): any;
218
+ (event: infer E2, listener: (...args: infer A2) => void): any;
219
+ (event: infer E3, listener: (...args: infer A3) => void): any;
220
+ (event: infer E4, listener: (...args: infer A4) => void): any;
221
+ (event: infer E5, listener: (...args: infer A5) => void): any;
222
+ (event: string, listener: (...args: any[]) => void): any;
223
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> & TransformedEvent<TThis, E5, A5> : TEvent extends {
224
+ (event: infer E0, listener: (...args: infer A0) => void): any;
225
+ (event: infer E1, listener: (...args: infer A1) => void): any;
226
+ (event: infer E2, listener: (...args: infer A2) => void): any;
227
+ (event: infer E3, listener: (...args: infer A3) => void): any;
228
+ (event: infer E4, listener: (...args: infer A4) => void): any;
229
+ (event: string, listener: (...args: any[]) => void): any;
230
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> & TransformedEvent<TThis, E4, A4> : TEvent extends {
231
+ (event: infer E0, listener: (...args: infer A0) => void): any;
232
+ (event: infer E1, listener: (...args: infer A1) => void): any;
233
+ (event: infer E2, listener: (...args: infer A2) => void): any;
234
+ (event: infer E3, listener: (...args: infer A3) => void): any;
235
+ (event: string, listener: (...args: any[]) => void): any;
236
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> & TransformedEvent<TThis, E3, A3> : TEvent extends {
237
+ (event: infer E0, listener: (...args: infer A0) => void): any;
238
+ (event: infer E1, listener: (...args: infer A1) => void): any;
239
+ (event: infer E2, listener: (...args: infer A2) => void): any;
240
+ (event: string, listener: (...args: any[]) => void): any;
241
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> & TransformedEvent<TThis, E2, A2> : TEvent extends {
242
+ (event: infer E0, listener: (...args: infer A0) => void): any;
243
+ (event: infer E1, listener: (...args: infer A1) => void): any;
244
+ (event: string, listener: (...args: any[]) => void): any;
245
+ } ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1> : TEvent extends {
246
+ (event: infer E0, listener: (...args: infer A0) => void): any;
247
+ (event: string, listener: (...args: any[]) => void): any;
248
+ } ? TransformedEvent<TThis, E0, A0> : TransformedEvent<TThis, string, any[]>;
249
+ //# sourceMappingURL=events.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"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"}
package/lib/events.js ADDED
@@ -0,0 +1,6 @@
1
+ /*!
2
+ * Copyright (c) Microsoft Corporation and contributors. All rights reserved.
3
+ * Licensed under the MIT License.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;;GAGG","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\n/**\n * Base interface for event emitters.\n */\nexport interface IEvent {\n\t/**\n\t * Base event emitter signature.\n\t *\n\t * @remarks The event emitter polyfill and the node event emitter have different event types:\n\t * `string | symbol` vs. `string | number`.\n\t *\n\t * So for our typing we'll contrain to string, that way we work with both.\n\t *\n\t * @eventProperty\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t(event: string, listener: (...args: any[]) => void);\n}\n\n/**\n * Base interface for error event emitters.\n */\nexport interface IErrorEvent extends IEvent {\n\t/**\n\t * Base error event emitter signature.\n\t *\n\t * @eventProperty\n\t */\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t(event: \"error\", listener: (message: any) => void);\n}\n\n/**\n * Base interface for event providers.\n */\nexport interface IEventProvider<TEvent extends IEvent> {\n\t/**\n\t * Registers a callback to be invoked when the corresponding event is triggered.\n\t */\n\treadonly on: IEventTransformer<this, TEvent>;\n\n\t/**\n\t * Registers a callback to be invoked the first time (after registration) the corresponding event is triggered.\n\t */\n\treadonly once: IEventTransformer<this, TEvent>;\n\n\t/**\n\t * Removes the corresponding event if it has been registered.\n\t */\n\treadonly off: IEventTransformer<this, TEvent>;\n}\n\n/**\n * Allows an interface to extend interfaces that already extend an {@link IEventProvider}.\n *\n * @example\n * ``` typescript\n * interface AEvents extends IEvent{\n * (event: \"a-event\",listener: (a: number)=>void);\n * }\n * interface A extends IEventProvider<AEvents>{\n * a: object;\n * }\n *\n * interface BEvents extends IEvent{\n * (event: \"b-event\",listener: (b: string)=>void);\n * }\n * interface B extends ExtendEventProvider<AEvents, A, BEvents>{\n * b: boolean;\n * };\n * ```\n * interface B will now extend interface A and its events\n *\n */\nexport type ExtendEventProvider<\n\tTBaseEvent extends IEvent,\n\tTBase extends IEventProvider<TBaseEvent>,\n\tTEvent extends TBaseEvent,\n> = Omit<Omit<Omit<TBase, \"on\">, \"once\">, \"off\"> &\n\tIEventProvider<TBaseEvent> &\n\tIEventProvider<TEvent>;\n\n// These types handle replacing IEventThisPlaceHolder with `this`, so we can\n// support polymorphic `this`. For instance if an event wanted to be:\n// (event: \"some-event\", listener:(target: this)=>void)\n//\n// it should be written as\n// (event: \"some-event\", listener:(target: IEventThisPlaceHolder)=>void)\n//\n// and IEventThisPlaceHolder will be replaced with this.\n// This is all consumers of these types need to know.\n\n/**\n * The placeholder type that should be used instead of `this` in events.\n */\n// eslint-disable-next-line @typescript-eslint/consistent-type-definitions\nexport type IEventThisPlaceHolder = { thisPlaceHolder: \"thisPlaceHolder\" };\n\n/**\n * Does the type replacement by changing types of {@link IEventThisPlaceHolder} to `TThis`\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type ReplaceIEventThisPlaceHolder<L extends any[], TThis> = L extends any[]\n\t? { [K in keyof L]: L[K] extends IEventThisPlaceHolder ? TThis : L[K] }\n\t: L;\n\n/**\n * Transforms the event overload by replacing {@link IEventThisPlaceHolder} with `TThis` in the event listener\n * arguments and having the overload return `TTHis` as well\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type TransformedEvent<TThis, E, A extends any[]> = (\n\tevent: E,\n\tlistener: (...args: ReplaceIEventThisPlaceHolder<A, TThis>) => void,\n) => TThis;\n\n/**\n * This type is a conditional type for transforming all the overloads provided in `TEvent`.\n *\n * @remarks\n * Due to limitations of the TypeScript typing system, we need to handle each number of overload individually.\n * It currently supports the max of 15 event overloads which is more than we use anywhere.\n * At more than 15 overloads we start to hit {@link https://github.com/microsoft/TypeScript/issues/37209 | TS2589}.\n * If we need to move beyond 15 we should evaluate using a mapped type pattern like `{\"event\":(listenerArgs)=>void}`\n */\nexport type IEventTransformer<TThis, TEvent extends IEvent> = TEvent extends {\n\t(event: infer E0, listener: (...args: infer A0) => void);\n\t(event: infer E1, listener: (...args: infer A1) => void);\n\t(event: infer E2, listener: (...args: infer A2) => void);\n\t(event: infer E3, listener: (...args: infer A3) => void);\n\t(event: infer E4, listener: (...args: infer A4) => void);\n\t(event: infer E5, listener: (...args: infer A5) => void);\n\t(event: infer E6, listener: (...args: infer A6) => void);\n\t(event: infer E7, listener: (...args: infer A7) => void);\n\t(event: infer E8, listener: (...args: infer A8) => void);\n\t(event: infer E9, listener: (...args: infer A9) => void);\n\t(event: infer E10, listener: (...args: infer A10) => void);\n\t(event: infer E11, listener: (...args: infer A11) => void);\n\t(event: infer E12, listener: (...args: infer A12) => void);\n\t(event: infer E13, listener: (...args: infer A13) => void);\n\t(event: infer E14, listener: (...args: infer A14) => void);\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t(event: string, listener: (...args: any[]) => void);\n}\n\t? TransformedEvent<TThis, E0, A0> &\n\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\tTransformedEvent<TThis, E9, A9> &\n\t\t\tTransformedEvent<TThis, E10, A10> &\n\t\t\tTransformedEvent<TThis, E11, A11> &\n\t\t\tTransformedEvent<TThis, E12, A12> &\n\t\t\tTransformedEvent<TThis, E13, A13> &\n\t\t\tTransformedEvent<TThis, E14, A14>\n\t: TEvent extends {\n\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t(event: infer E10, listener: (...args: infer A10) => void);\n\t\t\t(event: infer E11, listener: (...args: infer A11) => void);\n\t\t\t(event: infer E12, listener: (...args: infer A12) => void);\n\t\t\t(event: infer E13, listener: (...args: infer A13) => void);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t(event: string, listener: (...args: any[]) => void);\n\t }\n\t? TransformedEvent<TThis, E0, A0> &\n\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\tTransformedEvent<TThis, E9, A9> &\n\t\t\tTransformedEvent<TThis, E10, A10> &\n\t\t\tTransformedEvent<TThis, E11, A11> &\n\t\t\tTransformedEvent<TThis, E12, A12> &\n\t\t\tTransformedEvent<TThis, E13, A13>\n\t: TEvent extends {\n\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t(event: infer E10, listener: (...args: infer A10) => void);\n\t\t\t(event: infer E11, listener: (...args: infer A11) => void);\n\t\t\t(event: infer E12, listener: (...args: infer A12) => void);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t(event: string, listener: (...args: any[]) => void);\n\t }\n\t? TransformedEvent<TThis, E0, A0> &\n\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\tTransformedEvent<TThis, E9, A9> &\n\t\t\tTransformedEvent<TThis, E10, A10> &\n\t\t\tTransformedEvent<TThis, E11, A11> &\n\t\t\tTransformedEvent<TThis, E12, A12>\n\t: TEvent extends {\n\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t(event: infer E10, listener: (...args: infer A10) => void);\n\t\t\t(event: infer E11, listener: (...args: infer A11) => void);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t(event: string, listener: (...args: any[]) => void);\n\t }\n\t? TransformedEvent<TThis, E0, A0> &\n\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\tTransformedEvent<TThis, E9, A9> &\n\t\t\tTransformedEvent<TThis, E10, A10> &\n\t\t\tTransformedEvent<TThis, E11, A11>\n\t: TEvent extends {\n\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t(event: infer E10, listener: (...args: infer A10) => void);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t(event: string, listener: (...args: any[]) => void);\n\t }\n\t? TransformedEvent<TThis, E0, A0> &\n\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\tTransformedEvent<TThis, E9, A9> &\n\t\t\tTransformedEvent<TThis, E10, A10>\n\t: TEvent extends {\n\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t(event: string, listener: (...args: any[]) => void);\n\t }\n\t? TransformedEvent<TThis, E0, A0> &\n\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\tTransformedEvent<TThis, E9, A9>\n\t: TEvent extends {\n\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t(event: string, listener: (...args: any[]) => void);\n\t }\n\t? TransformedEvent<TThis, E0, A0> &\n\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\tTransformedEvent<TThis, E8, A8>\n\t: TEvent extends {\n\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t(event: string, listener: (...args: any[]) => void);\n\t }\n\t? TransformedEvent<TThis, E0, A0> &\n\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\tTransformedEvent<TThis, E7, A7>\n\t: TEvent extends {\n\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t(event: string, listener: (...args: any[]) => void);\n\t }\n\t? TransformedEvent<TThis, E0, A0> &\n\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\tTransformedEvent<TThis, E6, A6>\n\t: TEvent extends {\n\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t(event: string, listener: (...args: any[]) => void);\n\t }\n\t? TransformedEvent<TThis, E0, A0> &\n\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\tTransformedEvent<TThis, E5, A5>\n\t: TEvent extends {\n\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t(event: string, listener: (...args: any[]) => void);\n\t }\n\t? TransformedEvent<TThis, E0, A0> &\n\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\tTransformedEvent<TThis, E4, A4>\n\t: TEvent extends {\n\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t(event: string, listener: (...args: any[]) => void);\n\t }\n\t? TransformedEvent<TThis, E0, A0> &\n\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\tTransformedEvent<TThis, E3, A3>\n\t: TEvent extends {\n\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t(event: string, listener: (...args: any[]) => void);\n\t }\n\t? TransformedEvent<TThis, E0, A0> &\n\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\tTransformedEvent<TThis, E2, A2>\n\t: TEvent extends {\n\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t(event: string, listener: (...args: any[]) => void);\n\t }\n\t? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1>\n\t: TEvent extends {\n\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t(event: string, listener: (...args: any[]) => void);\n\t }\n\t? TransformedEvent<TThis, E0, A0>\n\t: // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t TransformedEvent<TThis, string, any[]>;\n"]}