@fluidframework/core-interfaces 2.11.0 → 2.13.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/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @fluidframework/core-interfaces
2
2
 
3
+ ## 2.13.0
4
+
5
+ Dependency updates only.
6
+
7
+ ## 2.12.0
8
+
9
+ Dependency updates only.
10
+
3
11
  ## 2.11.0
4
12
 
5
13
  ### Minor Changes
@@ -1 +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 * @public\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(event: string, listener: (...args: any[]) => void);\n}\n\n/**\n * Base interface for error event emitters.\n * @public\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 * @sealed @public\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 *\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 *\n * interface B will now extend interface A and its events\n * @public\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 * @public\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 * @public\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 * @public\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 * @public\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\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t\t(event: infer E10, listener: (...args: infer A10) => void);\n\t\t\t\t(event: infer E11, listener: (...args: infer A11) => void);\n\t\t\t\t(event: infer E12, listener: (...args: infer A12) => void);\n\t\t\t\t(event: infer E13, listener: (...args: infer A13) => void);\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t}\n\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\t\tTransformedEvent<TThis, E9, A9> &\n\t\t\t\tTransformedEvent<TThis, E10, A10> &\n\t\t\t\tTransformedEvent<TThis, E11, A11> &\n\t\t\t\tTransformedEvent<TThis, E12, A12> &\n\t\t\t\tTransformedEvent<TThis, E13, A13>\n\t\t: TEvent extends {\n\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t\t\t(event: infer E10, listener: (...args: infer A10) => void);\n\t\t\t\t\t(event: infer E11, listener: (...args: infer A11) => void);\n\t\t\t\t\t(event: infer E12, listener: (...args: infer A12) => void);\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t}\n\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\t\t\tTransformedEvent<TThis, E9, A9> &\n\t\t\t\t\tTransformedEvent<TThis, E10, A10> &\n\t\t\t\t\tTransformedEvent<TThis, E11, A11> &\n\t\t\t\t\tTransformedEvent<TThis, E12, A12>\n\t\t\t: TEvent extends {\n\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t\t\t\t(event: infer E10, listener: (...args: infer A10) => void);\n\t\t\t\t\t\t(event: infer E11, listener: (...args: infer A11) => void);\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t}\n\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\t\t\t\tTransformedEvent<TThis, E9, A9> &\n\t\t\t\t\t\tTransformedEvent<TThis, E10, A10> &\n\t\t\t\t\t\tTransformedEvent<TThis, E11, A11>\n\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t\t\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t\t\t\t\t(event: infer E10, listener: (...args: infer A10) => void);\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t}\n\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E9, A9> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E10, A10>\n\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t\t\t\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E9, A9>\n\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E8, A8>\n\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E7, A7>\n\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E6, A6>\n\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5>\n\t\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4>\n\t\t\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3>\n\t\t\t\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2>\n\t\t\t\t\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, string, any[]>;\n"]}
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 * @public\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(event: string, listener: (...args: any[]) => void);\n}\n\n/**\n * Base interface for error event emitters.\n * @public\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 * @sealed @public\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 *\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 *\n * interface B will now extend interface A and its events\n * @public\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 * @public\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 * @public\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 * @public\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 * @public\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\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\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t\t(event: infer E10, listener: (...args: infer A10) => void);\n\t\t\t\t(event: infer E11, listener: (...args: infer A11) => void);\n\t\t\t\t(event: infer E12, listener: (...args: infer A12) => void);\n\t\t\t\t(event: infer E13, listener: (...args: infer A13) => void);\n\n\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t}\n\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\t\tTransformedEvent<TThis, E9, A9> &\n\t\t\t\tTransformedEvent<TThis, E10, A10> &\n\t\t\t\tTransformedEvent<TThis, E11, A11> &\n\t\t\t\tTransformedEvent<TThis, E12, A12> &\n\t\t\t\tTransformedEvent<TThis, E13, A13>\n\t\t: TEvent extends {\n\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t\t\t(event: infer E10, listener: (...args: infer A10) => void);\n\t\t\t\t\t(event: infer E11, listener: (...args: infer A11) => void);\n\t\t\t\t\t(event: infer E12, listener: (...args: infer A12) => void);\n\n\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t}\n\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\t\t\tTransformedEvent<TThis, E9, A9> &\n\t\t\t\t\tTransformedEvent<TThis, E10, A10> &\n\t\t\t\t\tTransformedEvent<TThis, E11, A11> &\n\t\t\t\t\tTransformedEvent<TThis, E12, A12>\n\t\t\t: TEvent extends {\n\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t\t\t\t(event: infer E10, listener: (...args: infer A10) => void);\n\t\t\t\t\t\t(event: infer E11, listener: (...args: infer A11) => void);\n\n\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t}\n\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\t\t\t\tTransformedEvent<TThis, E9, A9> &\n\t\t\t\t\t\tTransformedEvent<TThis, E10, A10> &\n\t\t\t\t\t\tTransformedEvent<TThis, E11, A11>\n\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t\t\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t\t\t\t\t(event: infer E10, listener: (...args: infer A10) => void);\n\n\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t}\n\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E9, A9> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E10, A10>\n\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t\t\t\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\n\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E9, A9>\n\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\n\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E8, A8>\n\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\n\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E7, A7>\n\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\n\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E6, A6>\n\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\n\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5>\n\t\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4>\n\t\t\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3>\n\t\t\t\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2>\n\t\t\t\t\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, string, any[]>;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"fluidLoadable.js","sourceRoot":"","sources":["../src/fluidLoadable.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH;;GAEG;AACU,QAAA,cAAc,GAAgC,gBAAgB,CAAC;AAiB5E;;GAEG;AACU,QAAA,cAAc,GAAgC,gBAAgB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { IFluidHandle } from \"./handles.js\";\n\n/**\n * @public\n */\nexport const IFluidLoadable: keyof IProvideFluidLoadable = \"IFluidLoadable\";\n\n/**\n * @public\n */\nexport interface IProvideFluidLoadable {\n\treadonly IFluidLoadable: IFluidLoadable;\n}\n/**\n * A shared FluidObject has a URL from which it can be referenced\n * @sealed @public\n */\nexport interface IFluidLoadable extends IProvideFluidLoadable {\n\t// Handle to the loadable FluidObject\n\treadonly handle: IFluidHandle;\n}\n\n/**\n * @internal\n */\nexport const IFluidRunnable: keyof IProvideFluidRunnable = \"IFluidRunnable\";\n\n/**\n * @internal\n */\nexport interface IProvideFluidRunnable {\n\treadonly IFluidRunnable: IFluidRunnable;\n}\n/**\n * @internal\n */\nexport interface IFluidRunnable {\n\t// TODO: Use `unknown` instead (API-Breaking)\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\trun(...args: any[]): Promise<void>;\n\tstop(reason?: string): void;\n}\n"]}
1
+ {"version":3,"file":"fluidLoadable.js","sourceRoot":"","sources":["../src/fluidLoadable.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAIH;;GAEG;AACU,QAAA,cAAc,GAAgC,gBAAgB,CAAC;AAiB5E;;GAEG;AACU,QAAA,cAAc,GAAgC,gBAAgB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { IFluidHandle } from \"./handles.js\";\n\n/**\n * @public\n */\nexport const IFluidLoadable: keyof IProvideFluidLoadable = \"IFluidLoadable\";\n\n/**\n * @public\n */\nexport interface IProvideFluidLoadable {\n\treadonly IFluidLoadable: IFluidLoadable;\n}\n/**\n * A shared FluidObject has a URL from which it can be referenced\n * @sealed @public\n */\nexport interface IFluidLoadable extends IProvideFluidLoadable {\n\t// Handle to the loadable FluidObject\n\treadonly handle: IFluidHandle;\n}\n\n/**\n * @internal\n */\nexport const IFluidRunnable: keyof IProvideFluidRunnable = \"IFluidRunnable\";\n\n/**\n * @internal\n */\nexport interface IProvideFluidRunnable {\n\treadonly IFluidRunnable: IFluidRunnable;\n}\n/**\n * @internal\n */\nexport interface IFluidRunnable {\n\t// TODO: Use `unknown` instead (API-Breaking)\n\n\trun(...args: any[]): Promise<void>;\n\tstop(reason?: string): void;\n}\n"]}
package/lib/events.js.map CHANGED
@@ -1 +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 * @public\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(event: string, listener: (...args: any[]) => void);\n}\n\n/**\n * Base interface for error event emitters.\n * @public\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 * @sealed @public\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 *\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 *\n * interface B will now extend interface A and its events\n * @public\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 * @public\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 * @public\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 * @public\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 * @public\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\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t\t(event: infer E10, listener: (...args: infer A10) => void);\n\t\t\t\t(event: infer E11, listener: (...args: infer A11) => void);\n\t\t\t\t(event: infer E12, listener: (...args: infer A12) => void);\n\t\t\t\t(event: infer E13, listener: (...args: infer A13) => void);\n\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t}\n\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\t\tTransformedEvent<TThis, E9, A9> &\n\t\t\t\tTransformedEvent<TThis, E10, A10> &\n\t\t\t\tTransformedEvent<TThis, E11, A11> &\n\t\t\t\tTransformedEvent<TThis, E12, A12> &\n\t\t\t\tTransformedEvent<TThis, E13, A13>\n\t\t: TEvent extends {\n\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t\t\t(event: infer E10, listener: (...args: infer A10) => void);\n\t\t\t\t\t(event: infer E11, listener: (...args: infer A11) => void);\n\t\t\t\t\t(event: infer E12, listener: (...args: infer A12) => void);\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t}\n\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\t\t\tTransformedEvent<TThis, E9, A9> &\n\t\t\t\t\tTransformedEvent<TThis, E10, A10> &\n\t\t\t\t\tTransformedEvent<TThis, E11, A11> &\n\t\t\t\t\tTransformedEvent<TThis, E12, A12>\n\t\t\t: TEvent extends {\n\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t\t\t\t(event: infer E10, listener: (...args: infer A10) => void);\n\t\t\t\t\t\t(event: infer E11, listener: (...args: infer A11) => void);\n\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t}\n\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\t\t\t\tTransformedEvent<TThis, E9, A9> &\n\t\t\t\t\t\tTransformedEvent<TThis, E10, A10> &\n\t\t\t\t\t\tTransformedEvent<TThis, E11, A11>\n\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t\t\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t\t\t\t\t(event: infer E10, listener: (...args: infer A10) => void);\n\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t}\n\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E9, A9> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E10, A10>\n\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t\t\t\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E9, A9>\n\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E8, A8>\n\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E7, A7>\n\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E6, A6>\n\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5>\n\t\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4>\n\t\t\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3>\n\t\t\t\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2>\n\t\t\t\t\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, string, any[]>;\n"]}
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 * @public\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(event: string, listener: (...args: any[]) => void);\n}\n\n/**\n * Base interface for error event emitters.\n * @public\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 * @sealed @public\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 *\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 *\n * interface B will now extend interface A and its events\n * @public\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 * @public\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 * @public\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 * @public\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 * @public\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\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\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t\t(event: infer E10, listener: (...args: infer A10) => void);\n\t\t\t\t(event: infer E11, listener: (...args: infer A11) => void);\n\t\t\t\t(event: infer E12, listener: (...args: infer A12) => void);\n\t\t\t\t(event: infer E13, listener: (...args: infer A13) => void);\n\n\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t}\n\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\t\tTransformedEvent<TThis, E9, A9> &\n\t\t\t\tTransformedEvent<TThis, E10, A10> &\n\t\t\t\tTransformedEvent<TThis, E11, A11> &\n\t\t\t\tTransformedEvent<TThis, E12, A12> &\n\t\t\t\tTransformedEvent<TThis, E13, A13>\n\t\t: TEvent extends {\n\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t\t\t(event: infer E10, listener: (...args: infer A10) => void);\n\t\t\t\t\t(event: infer E11, listener: (...args: infer A11) => void);\n\t\t\t\t\t(event: infer E12, listener: (...args: infer A12) => void);\n\n\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t}\n\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\t\t\tTransformedEvent<TThis, E9, A9> &\n\t\t\t\t\tTransformedEvent<TThis, E10, A10> &\n\t\t\t\t\tTransformedEvent<TThis, E11, A11> &\n\t\t\t\t\tTransformedEvent<TThis, E12, A12>\n\t\t\t: TEvent extends {\n\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t\t\t\t(event: infer E10, listener: (...args: infer A10) => void);\n\t\t\t\t\t\t(event: infer E11, listener: (...args: infer A11) => void);\n\n\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t}\n\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\t\t\t\tTransformedEvent<TThis, E9, A9> &\n\t\t\t\t\t\tTransformedEvent<TThis, E10, A10> &\n\t\t\t\t\t\tTransformedEvent<TThis, E11, A11>\n\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t\t\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\t\t\t\t\t\t\t(event: infer E10, listener: (...args: infer A10) => void);\n\n\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t}\n\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E9, A9> &\n\t\t\t\t\t\t\tTransformedEvent<TThis, E10, A10>\n\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\t\t\t\t\t\t\t\t(event: infer E9, listener: (...args: infer A9) => void);\n\n\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E8, A8> &\n\t\t\t\t\t\t\t\tTransformedEvent<TThis, E9, A9>\n\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\t\t\t\t\t\t\t\t\t(event: infer E8, listener: (...args: infer A8) => void);\n\n\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E7, A7> &\n\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E8, A8>\n\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\t\t\t\t\t\t\t\t\t\t(event: infer E7, listener: (...args: infer A7) => void);\n\n\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E6, A6> &\n\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E7, A7>\n\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\t\t\t\t\t\t\t\t\t\t\t(event: infer E6, listener: (...args: infer A6) => void);\n\n\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5> &\n\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E6, A6>\n\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E5, listener: (...args: infer A5) => void);\n\n\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4> &\n\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E5, A5>\n\t\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E4, listener: (...args: infer A4) => void);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3> &\n\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E4, A4>\n\t\t\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E3, listener: (...args: infer A3) => void);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2> &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E3, A3>\n\t\t\t\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E2, listener: (...args: infer A2) => void);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E1, A1> &\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, E2, A2>\n\t\t\t\t\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E1, listener: (...args: infer A1) => void);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: TEvent extends {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: infer E0, listener: (...args: infer A0) => void);\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(event: string, listener: (...args: any[]) => void);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t? TransformedEvent<TThis, E0, A0>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t: // eslint-disable-next-line @typescript-eslint/no-explicit-any\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tTransformedEvent<TThis, string, any[]>;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"fluidLoadable.js","sourceRoot":"","sources":["../src/fluidLoadable.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAgC,gBAAgB,CAAC;AAiB5E;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAgC,gBAAgB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { IFluidHandle } from \"./handles.js\";\n\n/**\n * @public\n */\nexport const IFluidLoadable: keyof IProvideFluidLoadable = \"IFluidLoadable\";\n\n/**\n * @public\n */\nexport interface IProvideFluidLoadable {\n\treadonly IFluidLoadable: IFluidLoadable;\n}\n/**\n * A shared FluidObject has a URL from which it can be referenced\n * @sealed @public\n */\nexport interface IFluidLoadable extends IProvideFluidLoadable {\n\t// Handle to the loadable FluidObject\n\treadonly handle: IFluidHandle;\n}\n\n/**\n * @internal\n */\nexport const IFluidRunnable: keyof IProvideFluidRunnable = \"IFluidRunnable\";\n\n/**\n * @internal\n */\nexport interface IProvideFluidRunnable {\n\treadonly IFluidRunnable: IFluidRunnable;\n}\n/**\n * @internal\n */\nexport interface IFluidRunnable {\n\t// TODO: Use `unknown` instead (API-Breaking)\n\t// eslint-disable-next-line @typescript-eslint/no-explicit-any\n\trun(...args: any[]): Promise<void>;\n\tstop(reason?: string): void;\n}\n"]}
1
+ {"version":3,"file":"fluidLoadable.js","sourceRoot":"","sources":["../src/fluidLoadable.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAgC,gBAAgB,CAAC;AAiB5E;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAgC,gBAAgB,CAAC","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation and contributors. All rights reserved.\n * Licensed under the MIT License.\n */\n\nimport type { IFluidHandle } from \"./handles.js\";\n\n/**\n * @public\n */\nexport const IFluidLoadable: keyof IProvideFluidLoadable = \"IFluidLoadable\";\n\n/**\n * @public\n */\nexport interface IProvideFluidLoadable {\n\treadonly IFluidLoadable: IFluidLoadable;\n}\n/**\n * A shared FluidObject has a URL from which it can be referenced\n * @sealed @public\n */\nexport interface IFluidLoadable extends IProvideFluidLoadable {\n\t// Handle to the loadable FluidObject\n\treadonly handle: IFluidHandle;\n}\n\n/**\n * @internal\n */\nexport const IFluidRunnable: keyof IProvideFluidRunnable = \"IFluidRunnable\";\n\n/**\n * @internal\n */\nexport interface IProvideFluidRunnable {\n\treadonly IFluidRunnable: IFluidRunnable;\n}\n/**\n * @internal\n */\nexport interface IFluidRunnable {\n\t// TODO: Use `unknown` instead (API-Breaking)\n\n\trun(...args: any[]): Promise<void>;\n\tstop(reason?: string): void;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluidframework/core-interfaces",
3
- "version": "2.11.0",
3
+ "version": "2.13.0",
4
4
  "description": "Fluid object interfaces",
5
5
  "homepage": "https://fluidframework.com",
6
6
  "repository": {
@@ -47,12 +47,12 @@
47
47
  "main": "lib/index.js",
48
48
  "types": "lib/public.d.ts",
49
49
  "devDependencies": {
50
- "@arethetypeswrong/cli": "^0.16.4",
50
+ "@arethetypeswrong/cli": "^0.17.1",
51
51
  "@biomejs/biome": "~1.9.3",
52
52
  "@fluid-tools/build-cli": "^0.51.0",
53
53
  "@fluidframework/build-common": "^2.0.3",
54
54
  "@fluidframework/build-tools": "^0.51.0",
55
- "@fluidframework/core-interfaces-previous": "npm:@fluidframework/core-interfaces@2.10.0",
55
+ "@fluidframework/core-interfaces-previous": "npm:@fluidframework/core-interfaces@2.12.0",
56
56
  "@fluidframework/eslint-config-fluid": "^5.6.0",
57
57
  "@microsoft/api-extractor": "7.47.8",
58
58
  "@types/node": "^18.19.0",
package/src/events.ts CHANGED
@@ -151,7 +151,7 @@ export type IEventTransformer<TThis, TEvent extends IEvent> = TEvent extends {
151
151
  (event: infer E12, listener: (...args: infer A12) => void);
152
152
  (event: infer E13, listener: (...args: infer A13) => void);
153
153
  (event: infer E14, listener: (...args: infer A14) => void);
154
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
154
+
155
155
  (event: string, listener: (...args: any[]) => void);
156
156
  }
157
157
  ? TransformedEvent<TThis, E0, A0> &
@@ -184,7 +184,7 @@ export type IEventTransformer<TThis, TEvent extends IEvent> = TEvent extends {
184
184
  (event: infer E11, listener: (...args: infer A11) => void);
185
185
  (event: infer E12, listener: (...args: infer A12) => void);
186
186
  (event: infer E13, listener: (...args: infer A13) => void);
187
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
187
+
188
188
  (event: string, listener: (...args: any[]) => void);
189
189
  }
190
190
  ? TransformedEvent<TThis, E0, A0> &
@@ -215,7 +215,7 @@ export type IEventTransformer<TThis, TEvent extends IEvent> = TEvent extends {
215
215
  (event: infer E10, listener: (...args: infer A10) => void);
216
216
  (event: infer E11, listener: (...args: infer A11) => void);
217
217
  (event: infer E12, listener: (...args: infer A12) => void);
218
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
218
+
219
219
  (event: string, listener: (...args: any[]) => void);
220
220
  }
221
221
  ? TransformedEvent<TThis, E0, A0> &
@@ -244,7 +244,7 @@ export type IEventTransformer<TThis, TEvent extends IEvent> = TEvent extends {
244
244
  (event: infer E9, listener: (...args: infer A9) => void);
245
245
  (event: infer E10, listener: (...args: infer A10) => void);
246
246
  (event: infer E11, listener: (...args: infer A11) => void);
247
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
247
+
248
248
  (event: string, listener: (...args: any[]) => void);
249
249
  }
250
250
  ? TransformedEvent<TThis, E0, A0> &
@@ -271,7 +271,7 @@ export type IEventTransformer<TThis, TEvent extends IEvent> = TEvent extends {
271
271
  (event: infer E8, listener: (...args: infer A8) => void);
272
272
  (event: infer E9, listener: (...args: infer A9) => void);
273
273
  (event: infer E10, listener: (...args: infer A10) => void);
274
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
274
+
275
275
  (event: string, listener: (...args: any[]) => void);
276
276
  }
277
277
  ? TransformedEvent<TThis, E0, A0> &
@@ -296,7 +296,7 @@ export type IEventTransformer<TThis, TEvent extends IEvent> = TEvent extends {
296
296
  (event: infer E7, listener: (...args: infer A7) => void);
297
297
  (event: infer E8, listener: (...args: infer A8) => void);
298
298
  (event: infer E9, listener: (...args: infer A9) => void);
299
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
299
+
300
300
  (event: string, listener: (...args: any[]) => void);
301
301
  }
302
302
  ? TransformedEvent<TThis, E0, A0> &
@@ -319,7 +319,7 @@ export type IEventTransformer<TThis, TEvent extends IEvent> = TEvent extends {
319
319
  (event: infer E6, listener: (...args: infer A6) => void);
320
320
  (event: infer E7, listener: (...args: infer A7) => void);
321
321
  (event: infer E8, listener: (...args: infer A8) => void);
322
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
322
+
323
323
  (event: string, listener: (...args: any[]) => void);
324
324
  }
325
325
  ? TransformedEvent<TThis, E0, A0> &
@@ -340,7 +340,7 @@ export type IEventTransformer<TThis, TEvent extends IEvent> = TEvent extends {
340
340
  (event: infer E5, listener: (...args: infer A5) => void);
341
341
  (event: infer E6, listener: (...args: infer A6) => void);
342
342
  (event: infer E7, listener: (...args: infer A7) => void);
343
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
343
+
344
344
  (event: string, listener: (...args: any[]) => void);
345
345
  }
346
346
  ? TransformedEvent<TThis, E0, A0> &
@@ -359,7 +359,7 @@ export type IEventTransformer<TThis, TEvent extends IEvent> = TEvent extends {
359
359
  (event: infer E4, listener: (...args: infer A4) => void);
360
360
  (event: infer E5, listener: (...args: infer A5) => void);
361
361
  (event: infer E6, listener: (...args: infer A6) => void);
362
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
362
+
363
363
  (event: string, listener: (...args: any[]) => void);
364
364
  }
365
365
  ? TransformedEvent<TThis, E0, A0> &
@@ -376,7 +376,7 @@ export type IEventTransformer<TThis, TEvent extends IEvent> = TEvent extends {
376
376
  (event: infer E3, listener: (...args: infer A3) => void);
377
377
  (event: infer E4, listener: (...args: infer A4) => void);
378
378
  (event: infer E5, listener: (...args: infer A5) => void);
379
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
379
+
380
380
  (event: string, listener: (...args: any[]) => void);
381
381
  }
382
382
  ? TransformedEvent<TThis, E0, A0> &
@@ -391,7 +391,7 @@ export type IEventTransformer<TThis, TEvent extends IEvent> = TEvent extends {
391
391
  (event: infer E2, listener: (...args: infer A2) => void);
392
392
  (event: infer E3, listener: (...args: infer A3) => void);
393
393
  (event: infer E4, listener: (...args: infer A4) => void);
394
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
394
+
395
395
  (event: string, listener: (...args: any[]) => void);
396
396
  }
397
397
  ? TransformedEvent<TThis, E0, A0> &
@@ -404,7 +404,7 @@ export type IEventTransformer<TThis, TEvent extends IEvent> = TEvent extends {
404
404
  (event: infer E1, listener: (...args: infer A1) => void);
405
405
  (event: infer E2, listener: (...args: infer A2) => void);
406
406
  (event: infer E3, listener: (...args: infer A3) => void);
407
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
407
+
408
408
  (event: string, listener: (...args: any[]) => void);
409
409
  }
410
410
  ? TransformedEvent<TThis, E0, A0> &
@@ -415,7 +415,7 @@ export type IEventTransformer<TThis, TEvent extends IEvent> = TEvent extends {
415
415
  (event: infer E0, listener: (...args: infer A0) => void);
416
416
  (event: infer E1, listener: (...args: infer A1) => void);
417
417
  (event: infer E2, listener: (...args: infer A2) => void);
418
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
418
+
419
419
  (event: string, listener: (...args: any[]) => void);
420
420
  }
421
421
  ? TransformedEvent<TThis, E0, A0> &
@@ -424,13 +424,13 @@ export type IEventTransformer<TThis, TEvent extends IEvent> = TEvent extends {
424
424
  : TEvent extends {
425
425
  (event: infer E0, listener: (...args: infer A0) => void);
426
426
  (event: infer E1, listener: (...args: infer A1) => void);
427
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
427
+
428
428
  (event: string, listener: (...args: any[]) => void);
429
429
  }
430
430
  ? TransformedEvent<TThis, E0, A0> & TransformedEvent<TThis, E1, A1>
431
431
  : TEvent extends {
432
432
  (event: infer E0, listener: (...args: infer A0) => void);
433
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
433
+
434
434
  (event: string, listener: (...args: any[]) => void);
435
435
  }
436
436
  ? TransformedEvent<TThis, E0, A0>
@@ -41,7 +41,7 @@ export interface IProvideFluidRunnable {
41
41
  */
42
42
  export interface IFluidRunnable {
43
43
  // TODO: Use `unknown` instead (API-Breaking)
44
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
44
+
45
45
  run(...args: any[]): Promise<void>;
46
46
  stop(reason?: string): void;
47
47
  }