@companion-module/base 1.99.0-0-nightly-feat-split-api-20251221-153951-fa12995 → 1.99.0-nightly-feat-graphics-overhaul-20251222-140818-911eb31

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.
Files changed (126) hide show
  1. package/README.md +11 -12
  2. package/dist/common/json-value.d.ts +1 -0
  3. package/dist/common/json-value.d.ts.map +1 -0
  4. package/dist/common/osc.d.ts +1 -0
  5. package/dist/common/osc.d.ts.map +1 -0
  6. package/dist/entrypoint.d.ts +1 -9
  7. package/dist/entrypoint.d.ts.map +1 -0
  8. package/dist/entrypoint.js +122 -4
  9. package/dist/entrypoint.js.map +1 -1
  10. package/dist/helpers/index.d.ts +1 -0
  11. package/dist/helpers/index.d.ts.map +1 -0
  12. package/dist/helpers/tcp.d.ts +1 -0
  13. package/dist/helpers/tcp.d.ts.map +1 -0
  14. package/dist/helpers/telnet.d.ts +1 -0
  15. package/dist/helpers/telnet.d.ts.map +1 -0
  16. package/dist/helpers/udp.d.ts +1 -0
  17. package/dist/helpers/udp.d.ts.map +1 -0
  18. package/dist/host-api/api.d.ts +402 -0
  19. package/dist/host-api/api.d.ts.map +1 -0
  20. package/dist/host-api/{context.js → api.js} +1 -6
  21. package/dist/host-api/api.js.map +1 -0
  22. package/dist/host-api/ipc-wrapper.d.ts +37 -0
  23. package/dist/host-api/ipc-wrapper.d.ts.map +1 -0
  24. package/dist/host-api/ipc-wrapper.js +128 -0
  25. package/dist/host-api/ipc-wrapper.js.map +1 -0
  26. package/dist/host-api/versions.d.ts +12 -0
  27. package/dist/host-api/versions.d.ts.map +1 -0
  28. package/dist/host-api/versions.js +5 -0
  29. package/dist/host-api/versions.js.map +1 -0
  30. package/dist/index.d.ts +8 -0
  31. package/dist/index.d.ts.map +1 -0
  32. package/dist/index.js +22 -0
  33. package/dist/index.js.map +1 -0
  34. package/dist/instance-base.d.ts +1 -0
  35. package/dist/instance-base.d.ts.map +1 -0
  36. package/dist/internal/actions.d.ts +16 -0
  37. package/dist/internal/actions.d.ts.map +1 -0
  38. package/dist/internal/actions.js +223 -0
  39. package/dist/internal/actions.js.map +1 -0
  40. package/dist/internal/base.d.ts +11 -0
  41. package/dist/internal/base.d.ts.map +1 -0
  42. package/dist/internal/base.js +39 -0
  43. package/dist/internal/base.js.map +1 -0
  44. package/dist/internal/feedback.d.ts +20 -0
  45. package/dist/internal/feedback.d.ts.map +1 -0
  46. package/dist/internal/feedback.js +307 -0
  47. package/dist/internal/feedback.js.map +1 -0
  48. package/dist/internal/upgrade.d.ts +15 -0
  49. package/dist/internal/upgrade.d.ts.map +1 -0
  50. package/dist/internal/upgrade.js +174 -0
  51. package/dist/internal/upgrade.js.map +1 -0
  52. package/dist/manifest.d.ts +1 -0
  53. package/dist/manifest.d.ts.map +1 -0
  54. package/dist/module-api/action.d.ts +1 -0
  55. package/dist/module-api/action.d.ts.map +1 -0
  56. package/dist/module-api/base.d.ts +23 -3
  57. package/dist/module-api/base.d.ts.map +1 -0
  58. package/dist/module-api/base.js +338 -47
  59. package/dist/module-api/base.js.map +1 -1
  60. package/dist/module-api/common.d.ts +1 -0
  61. package/dist/module-api/common.d.ts.map +1 -0
  62. package/dist/module-api/config.d.ts +1 -0
  63. package/dist/module-api/config.d.ts.map +1 -0
  64. package/dist/module-api/enums.d.ts +2 -0
  65. package/dist/module-api/enums.d.ts.map +1 -0
  66. package/dist/module-api/enums.js.map +1 -1
  67. package/dist/module-api/feedback.d.ts +1 -0
  68. package/dist/module-api/feedback.d.ts.map +1 -0
  69. package/dist/module-api/graphics-composite.d.ts +11 -0
  70. package/dist/module-api/graphics-composite.d.ts.map +1 -0
  71. package/dist/module-api/graphics-composite.js +3 -0
  72. package/dist/module-api/graphics-composite.js.map +1 -0
  73. package/dist/module-api/graphics.d.ts +83 -0
  74. package/dist/module-api/graphics.d.ts.map +1 -0
  75. package/dist/module-api/graphics.js +12 -0
  76. package/dist/module-api/graphics.js.map +1 -0
  77. package/dist/module-api/http.d.ts +1 -0
  78. package/dist/module-api/http.d.ts.map +1 -0
  79. package/dist/module-api/index.d.ts +3 -0
  80. package/dist/module-api/index.d.ts.map +1 -0
  81. package/dist/module-api/index.js +2 -0
  82. package/dist/module-api/index.js.map +1 -1
  83. package/dist/module-api/input.d.ts +1 -0
  84. package/dist/module-api/input.d.ts.map +1 -0
  85. package/dist/module-api/preset.d.ts +49 -1
  86. package/dist/module-api/preset.d.ts.map +1 -0
  87. package/dist/module-api/shared-udp-socket.d.ts +4 -2
  88. package/dist/module-api/shared-udp-socket.d.ts.map +1 -0
  89. package/dist/module-api/shared-udp-socket.js +15 -13
  90. package/dist/module-api/shared-udp-socket.js.map +1 -1
  91. package/dist/module-api/style.d.ts +1 -0
  92. package/dist/module-api/style.d.ts.map +1 -0
  93. package/dist/module-api/upgrade.d.ts +1 -0
  94. package/dist/module-api/upgrade.d.ts.map +1 -0
  95. package/dist/module-api/variable.d.ts +1 -0
  96. package/dist/module-api/variable.d.ts.map +1 -0
  97. package/dist/util.d.ts +1 -0
  98. package/dist/util.d.ts.map +1 -0
  99. package/lib/debounce-fn/index.d.ts +83 -0
  100. package/lib/debounce-fn/index.js +78 -0
  101. package/lib/debounce-fn/license +9 -0
  102. package/lib/debounce-fn/readme.md +64 -0
  103. package/package.json +35 -6
  104. package/dist/__mocks__/net.d.ts +0 -30
  105. package/dist/__mocks__/net.js +0 -108
  106. package/dist/__mocks__/net.js.map +0 -1
  107. package/dist/__mocks__/util.d.ts +0 -8
  108. package/dist/__mocks__/util.js +0 -44
  109. package/dist/__mocks__/util.js.map +0 -1
  110. package/dist/helpers/__tests__/tcp.spec.d.ts +0 -1
  111. package/dist/helpers/__tests__/tcp.spec.js +0 -210
  112. package/dist/helpers/__tests__/tcp.spec.js.map +0 -1
  113. package/dist/helpers/__tests__/udp.spec.d.ts +0 -1
  114. package/dist/helpers/__tests__/udp.spec.js +0 -200
  115. package/dist/helpers/__tests__/udp.spec.js.map +0 -1
  116. package/dist/host-api/context.d.ts +0 -59
  117. package/dist/host-api/context.js.map +0 -1
  118. package/dist/logging.d.ts +0 -20
  119. package/dist/logging.js +0 -25
  120. package/dist/logging.js.map +0 -1
  121. package/dist/main.d.ts +0 -8
  122. package/dist/main.js +0 -14
  123. package/dist/main.js.map +0 -1
  124. package/dist/module-api/__tests__/shared-udp-socket.spec.d.ts +0 -1
  125. package/dist/module-api/__tests__/shared-udp-socket.spec.js +0 -272
  126. package/dist/module-api/__tests__/shared-udp-socket.spec.js.map +0 -1
@@ -0,0 +1,83 @@
1
+ export type ExpressionOrValue<T> = {
2
+ value: T;
3
+ isExpression: false;
4
+ } | {
5
+ value: string;
6
+ isExpression: true;
7
+ };
8
+ /**
9
+ * The type of a button graphics element as stored in places where it can be edited
10
+ */
11
+ export type SomeButtonGraphicsElement = ButtonGraphicsGroupElement | ButtonGraphicsCompositeElement | ButtonGraphicsTextElement | ButtonGraphicsImageElement | ButtonGraphicsBoxElement | ButtonGraphicsLineElement;
12
+ export interface ButtonGraphicsElementBase {
13
+ id?: string;
14
+ name?: string;
15
+ enabled?: ExpressionOrValue<boolean>;
16
+ opacity?: ExpressionOrValue<number>;
17
+ }
18
+ export interface ButtonGraphicsDrawBounds {
19
+ x?: ExpressionOrValue<number>;
20
+ y?: ExpressionOrValue<number>;
21
+ width?: ExpressionOrValue<number>;
22
+ height?: ExpressionOrValue<number>;
23
+ }
24
+ export interface ButtonGraphicsCanvasElement {
25
+ decoration?: ExpressionOrValue<ButtonGraphicsDecorationType>;
26
+ }
27
+ export declare enum ButtonGraphicsDecorationType {
28
+ FollowDefault = "default",
29
+ TopBar = "topbar",
30
+ Border = "border",
31
+ None = "none"
32
+ }
33
+ export interface ButtonGraphicsGroupElement extends ButtonGraphicsElementBase, ButtonGraphicsDrawBounds {
34
+ type: 'group';
35
+ children: SomeButtonGraphicsElement[];
36
+ }
37
+ export interface ButtonGraphicsCompositeElement<TOptions = Record<string, any>> extends ButtonGraphicsElementBase, ButtonGraphicsDrawBounds {
38
+ type: 'composite';
39
+ elementId: string;
40
+ /**
41
+ * Custom elements have options defined by their composite definition
42
+ */
43
+ options: {
44
+ [key in keyof TOptions]?: ExpressionOrValue<TOptions[key]>;
45
+ };
46
+ }
47
+ export type HorizontalAlignment = 'left' | 'center' | 'right';
48
+ export type VerticalAlignment = 'top' | 'center' | 'bottom';
49
+ export type LineOrientation = 'inside' | 'center' | 'outside';
50
+ export type ImageFillMode = 'crop' | 'fill' | 'fit' | 'fit_or_shrink';
51
+ export interface ButtonGraphicsTextElement extends ButtonGraphicsElementBase, ButtonGraphicsDrawBounds {
52
+ type: 'text';
53
+ text: ExpressionOrValue<string>;
54
+ fontsize?: ExpressionOrValue<'auto' | number>;
55
+ color?: ExpressionOrValue<number>;
56
+ halign?: ExpressionOrValue<HorizontalAlignment>;
57
+ valign?: ExpressionOrValue<VerticalAlignment>;
58
+ outlineColor?: ExpressionOrValue<number>;
59
+ }
60
+ export interface ButtonGraphicsImageElement extends ButtonGraphicsElementBase, ButtonGraphicsDrawBounds {
61
+ type: 'image';
62
+ base64Image: ExpressionOrValue<string | null>;
63
+ halign?: ExpressionOrValue<HorizontalAlignment>;
64
+ valign?: ExpressionOrValue<VerticalAlignment>;
65
+ fillMode?: ExpressionOrValue<ImageFillMode>;
66
+ }
67
+ export interface ButtonGraphicsBorderProperties {
68
+ borderWidth?: ExpressionOrValue<number>;
69
+ borderColor?: ExpressionOrValue<number>;
70
+ borderPosition?: ExpressionOrValue<LineOrientation>;
71
+ }
72
+ export interface ButtonGraphicsBoxElement extends ButtonGraphicsElementBase, ButtonGraphicsDrawBounds, ButtonGraphicsBorderProperties {
73
+ type: 'box';
74
+ color?: ExpressionOrValue<number>;
75
+ }
76
+ export interface ButtonGraphicsLineElement extends ButtonGraphicsElementBase, ButtonGraphicsBorderProperties {
77
+ type: 'line';
78
+ fromX?: ExpressionOrValue<number>;
79
+ fromY?: ExpressionOrValue<number>;
80
+ toX?: ExpressionOrValue<number>;
81
+ toY?: ExpressionOrValue<number>;
82
+ }
83
+ //# sourceMappingURL=graphics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphics.d.ts","sourceRoot":"","sources":["../../src/module-api/graphics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ButtonGraphicsDecorationType = void 0;
4
+ var ButtonGraphicsDecorationType;
5
+ (function (ButtonGraphicsDecorationType) {
6
+ ButtonGraphicsDecorationType["FollowDefault"] = "default";
7
+ ButtonGraphicsDecorationType["TopBar"] = "topbar";
8
+ // BottomBar = 'bottombar', // Future
9
+ ButtonGraphicsDecorationType["Border"] = "border";
10
+ ButtonGraphicsDecorationType["None"] = "none";
11
+ })(ButtonGraphicsDecorationType || (exports.ButtonGraphicsDecorationType = ButtonGraphicsDecorationType = {}));
12
+ //# sourceMappingURL=graphics.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphics.js","sourceRoot":"","sources":["../../src/module-api/graphics.ts"],"names":[],"mappings":";;;AAwCA,IAAY,4BAMX;AAND,WAAY,4BAA4B;IACvC,yDAAyB,CAAA;IACzB,iDAAiB,CAAA;IACjB,qCAAqC;IACrC,iDAAiB,CAAA;IACjB,6CAAa,CAAA;AACd,CAAC,EANW,4BAA4B,4CAA5B,4BAA4B,QAMvC"}
@@ -14,3 +14,4 @@ export interface CompanionHTTPResponse {
14
14
  headers?: Record<string, any>;
15
15
  body?: string;
16
16
  }
17
+ //# sourceMappingURL=http.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../../src/module-api/http.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,oBAAoB;IACpC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,QAAQ,EAAE,MAAM,CAAA;IAChB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,WAAW,EAAE,MAAM,CAAA;IACnB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAC7B;AAED,MAAM,WAAW,qBAAqB;IACrC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAA;CACb"}
@@ -5,9 +5,12 @@ export * from './config.js';
5
5
  export * from './enums.js';
6
6
  export * from './feedback.js';
7
7
  export * from './http.js';
8
+ export * from './graphics.js';
9
+ export * from './graphics-composite.js';
8
10
  export * from './input.js';
9
11
  export * from './preset.js';
10
12
  export { SharedUdpSocket, SharedUdpSocketEvents, SharedUdpSocketMessageCallback, SharedUdpSocketOptions, } from './shared-udp-socket.js';
11
13
  export * from './style.js';
12
14
  export * from './upgrade.js';
13
15
  export * from './variable.js';
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/module-api/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAA;AAC3B,cAAc,WAAW,CAAA;AACzB,cAAc,aAAa,CAAA;AAC3B,cAAc,aAAa,CAAA;AAC3B,cAAc,YAAY,CAAA;AAC1B,cAAc,eAAe,CAAA;AAC7B,cAAc,WAAW,CAAA;AACzB,cAAc,eAAe,CAAA;AAC7B,cAAc,yBAAyB,CAAA;AACvC,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,OAAO,EACN,eAAe,EACf,qBAAqB,EACrB,8BAA8B,EAC9B,sBAAsB,GACtB,MAAM,wBAAwB,CAAA;AAC/B,cAAc,YAAY,CAAA;AAC1B,cAAc,cAAc,CAAA;AAC5B,cAAc,eAAe,CAAA"}
@@ -8,6 +8,8 @@ tslib_1.__exportStar(require("./config.js"), exports);
8
8
  tslib_1.__exportStar(require("./enums.js"), exports);
9
9
  tslib_1.__exportStar(require("./feedback.js"), exports);
10
10
  tslib_1.__exportStar(require("./http.js"), exports);
11
+ tslib_1.__exportStar(require("./graphics.js"), exports);
12
+ tslib_1.__exportStar(require("./graphics-composite.js"), exports);
11
13
  tslib_1.__exportStar(require("./input.js"), exports);
12
14
  tslib_1.__exportStar(require("./preset.js"), exports);
13
15
  tslib_1.__exportStar(require("./style.js"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/module-api/index.ts"],"names":[],"mappings":";;;AAAA,sDAA2B;AAC3B,oDAAyB;AACzB,sDAA2B;AAC3B,sDAA2B;AAC3B,qDAA0B;AAC1B,wDAA6B;AAC7B,oDAAyB;AACzB,qDAA0B;AAC1B,sDAA2B;AAO3B,qDAA0B;AAC1B,uDAA4B;AAC5B,wDAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/module-api/index.ts"],"names":[],"mappings":";;;AAAA,sDAA2B;AAC3B,oDAAyB;AACzB,sDAA2B;AAC3B,sDAA2B;AAC3B,qDAA0B;AAC1B,wDAA6B;AAC7B,oDAAyB;AACzB,wDAA6B;AAC7B,kEAAuC;AACvC,qDAA0B;AAC1B,sDAA2B;AAO3B,qDAA0B;AAC1B,uDAA4B;AAC5B,wDAA6B"}
@@ -389,3 +389,4 @@ export interface CompanionInputFieldSecret extends CompanionInputFieldBase {
389
389
  */
390
390
  regex?: string;
391
391
  }
392
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../src/module-api/input.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import type { CompanionFeedbackButtonStyleResult } from './feedback.js';
2
+ import type { ButtonGraphicsCanvasElement, ExpressionOrValue, SomeButtonGraphicsElement } from './graphics.js';
2
3
  import type { CompanionOptionValues } from './input.js';
3
4
  import type { CompanionButtonStyleProps } from './style.js';
4
5
  /**
@@ -34,6 +35,33 @@ export interface CompanionPresetFeedback {
34
35
  */
35
36
  headline?: string;
36
37
  }
38
+ /**
39
+ * The configuration of an feedback in a preset
40
+ */
41
+ export interface CompanionPresetLayeredFeedback {
42
+ /** The id of the feedback definition */
43
+ feedbackId: string;
44
+ /** The option values for the action */
45
+ options: CompanionOptionValues;
46
+ /**
47
+ * Element styles to override when this feedback is active
48
+ */
49
+ styleOverrides: CompanionPresetFeedbackStyleOverride[];
50
+ /**
51
+ * If a boolean feedback, invert the value of the feedback
52
+ */
53
+ isInverted?: boolean;
54
+ /**
55
+ * User editable description/comment for the feedback.
56
+ * Intended to descibe the purpose/intent of the feedback.
57
+ */
58
+ headline?: string;
59
+ }
60
+ export interface CompanionPresetFeedbackStyleOverride {
61
+ elementId: string;
62
+ elementProperty: string;
63
+ override: ExpressionOrValue<any>;
64
+ }
37
65
  /**
38
66
  * The configuration of an action in a preset
39
67
  */
@@ -71,6 +99,25 @@ export interface CompanionButtonPresetDefinition {
71
99
  feedbacks: CompanionPresetFeedback[];
72
100
  steps: CompanionButtonStepActions[];
73
101
  }
102
+ /**
103
+ * The definition of a press button preset
104
+ */
105
+ export interface CompanionLayeredButtonPresetDefinition {
106
+ /** The type of this preset */
107
+ type: 'layered-button';
108
+ /** The category of this preset, for grouping */
109
+ category: string;
110
+ /** The name of this preset */
111
+ name: string;
112
+ /** The drawing elements for this preset, this will be copied to the button */
113
+ elements: SomeButtonGraphicsElement[];
114
+ canvas?: ButtonGraphicsCanvasElement;
115
+ /** Options for this preset */
116
+ options?: CompanionButtonPresetOptions;
117
+ /** The feedbacks on the button */
118
+ feedbacks: CompanionPresetLayeredFeedback[];
119
+ steps: CompanionButtonStepActions[];
120
+ }
74
121
  /**
75
122
  * The definition of a text preset
76
123
  */
@@ -106,5 +153,6 @@ export interface CompanionButtonStepActions {
106
153
  * The definitions of a group of feedbacks
107
154
  */
108
155
  export interface CompanionPresetDefinitions {
109
- [id: string]: CompanionButtonPresetDefinition | CompanionTextPresetDefinition | undefined;
156
+ [id: string]: CompanionButtonPresetDefinition | CompanionLayeredButtonPresetDefinition | CompanionTextPresetDefinition | undefined;
110
157
  }
158
+ //# sourceMappingURL=preset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../../src/module-api/preset.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import type { RemoteInfo } from 'dgram';
2
+ import type { SharedUdpSocketMessage, ModuleToHostEventsV0SharedSocket, HostToModuleEventsV0SharedSocket } from '../host-api/api.js';
3
+ import type { IpcWrapper } from '../host-api/ipc-wrapper.js';
2
4
  import EventEmitter from 'eventemitter3';
3
- import type { InstanceSharedUdpSocketContext, SharedUdpSocketMessage } from '../host-api/context.js';
4
5
  export interface SharedUdpSocketEvents {
5
6
  error: [err: Error];
6
7
  listening: [];
@@ -48,7 +49,7 @@ export declare class SharedUdpSocketImpl extends EventEmitter<SharedUdpSocketEve
48
49
  get handleId(): string | undefined;
49
50
  get portNumber(): number | undefined;
50
51
  private get boundState();
51
- constructor(context: InstanceSharedUdpSocketContext, options: SharedUdpSocketOptions);
52
+ constructor(ipcWrapper: IpcWrapper<ModuleToHostEventsV0SharedSocket, HostToModuleEventsV0SharedSocket>, moduleUdpSockets: Map<string, SharedUdpSocketImpl>, options: SharedUdpSocketOptions);
52
53
  bind(port: number, _address?: string, callback?: () => void): void;
53
54
  close(callback?: () => void): void;
54
55
  send(bufferOrList: string | Buffer | DataView | number[], port: number, address: string, callback?: () => void): void;
@@ -56,3 +57,4 @@ export declare class SharedUdpSocketImpl extends EventEmitter<SharedUdpSocketEve
56
57
  receiveSocketMessage(message: SharedUdpSocketMessage): void;
57
58
  receiveSocketError(error: Error): void;
58
59
  }
60
+ //# sourceMappingURL=shared-udp-socket.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared-udp-socket.d.ts","sourceRoot":"","sources":["../../src/module-api/shared-udp-socket.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AACvC,OAAO,KAAK,EACX,sBAAsB,EACtB,gCAAgC,EAChC,gCAAgC,EAChC,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAC5D,OAAO,YAAY,MAAM,eAAe,CAAA;AAGxC,MAAM,WAAW,qBAAqB;IAErC,KAAK,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;IAEnB,SAAS,EAAE,EAAE,CAAA;IAEb,KAAK,EAAE,EAAE,CAAA;IAET,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,CAAA;CACzC;AAED,MAAM,WAAW,eAAgB,SAAQ,YAAY,CAAC,qBAAqB,CAAC;IAG3E;;;;;OAKG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;IAEjE;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI,CAAA;IAElC;;;;;;OAMG;IACH,IAAI,CACH,YAAY,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,EACxD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,IAAI,GACnB,IAAI,CAAA;IACP;;;;;;;;OAQG;IACH,IAAI,CACH,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,EAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,IAAI,GACnB,IAAI,CAAA;CACP;AAED,MAAM,WAAW,sBAAsB;IACtC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAA;CACrB;AAED,MAAM,MAAM,8BAA8B,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,KAAK,IAAI,CAAA;AAOzF,qBAAa,mBAAoB,SAAQ,YAAY,CAAC,qBAAqB,CAAE,YAAW,eAAe;;IAKtG,IAAW,QAAQ,IAAI,MAAM,GAAG,SAAS,CAExC;IACD,IAAW,UAAU,IAAI,MAAM,GAAG,SAAS,CAE1C;IAED,OAAO,KAAK,UAAU,GAMrB;gBAKA,UAAU,EAAE,UAAU,CAAC,gCAAgC,EAAE,gCAAgC,CAAC,EAC1F,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,EAClD,OAAO,EAAE,sBAAsB;IAShC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAwClE,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IAuClC,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,IAAI,GAAG,IAAI;IACrH,IAAI,CACH,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,QAAQ,EAClC,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,IAAI,GACnB,IAAI;IAoEP,oBAAoB,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI;IAO3D,kBAAkB,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;CAYtC"}
@@ -5,7 +5,8 @@ const tslib_1 = require("tslib");
5
5
  const eventemitter3_1 = tslib_1.__importDefault(require("eventemitter3"));
6
6
  const util_js_1 = require("../util.js");
7
7
  class SharedUdpSocketImpl extends eventemitter3_1.default {
8
- #context;
8
+ #ipcWrapper;
9
+ #moduleUdpSockets;
9
10
  #options;
10
11
  get handleId() {
11
12
  return this.boundState?.handleId;
@@ -22,9 +23,10 @@ class SharedUdpSocketImpl extends eventemitter3_1.default {
22
23
  }
23
24
  }
24
25
  #state = 'pending';
25
- constructor(context, options) {
26
+ constructor(ipcWrapper, moduleUdpSockets, options) {
26
27
  super();
27
- this.#context = context;
28
+ this.#ipcWrapper = ipcWrapper;
29
+ this.#moduleUdpSockets = moduleUdpSockets;
28
30
  this.#options = { ...options };
29
31
  }
30
32
  bind(port, _address, callback) {
@@ -46,15 +48,15 @@ class SharedUdpSocketImpl extends eventemitter3_1.default {
46
48
  this.#state = 'binding';
47
49
  if (callback)
48
50
  this.on('listening', callback);
49
- this.#context
50
- .sharedUdpSocketJoin({
51
+ this.#ipcWrapper
52
+ .sendWithCb('sharedUdpSocketJoin', {
51
53
  family: this.#options.type,
52
54
  portNumber: port,
53
55
  // Future: use address?
54
56
  })
55
57
  .then((handleId) => {
56
58
  this.#state = { portNumber: port, handleId };
57
- this.#context.sharedUdpSocketHandlers.set(handleId, this);
59
+ this.#moduleUdpSockets.set(handleId, this);
58
60
  this.emit('listening');
59
61
  }, (err) => {
60
62
  this.#state = 'closed';
@@ -83,15 +85,15 @@ class SharedUdpSocketImpl extends eventemitter3_1.default {
83
85
  this.#state = 'closed';
84
86
  if (callback)
85
87
  this.on('close', callback);
86
- this.#context
87
- .sharedUdpSocketLeave({
88
+ this.#ipcWrapper
89
+ .sendWithCb('sharedUdpSocketLeave', {
88
90
  handleId: handleId,
89
91
  })
90
92
  .then(() => {
91
- this.#context.sharedUdpSocketHandlers.delete(handleId);
93
+ this.#moduleUdpSockets.delete(handleId);
92
94
  this.emit('close');
93
95
  }, (err) => {
94
- this.#context.sharedUdpSocketHandlers.delete(handleId);
96
+ this.#moduleUdpSockets.delete(handleId);
95
97
  this.emit('error', err instanceof Error ? err : new Error(err));
96
98
  })
97
99
  .catch(() => null); // Make sure any errors in user code don't cause a crash
@@ -137,8 +139,8 @@ class SharedUdpSocketImpl extends eventemitter3_1.default {
137
139
  #sendInner(buffer, port, address, callback) {
138
140
  if (!this.#state || typeof this.#state !== 'object')
139
141
  throw new Error('Socket is not open');
140
- this.#context
141
- .sharedUdpSocketSend({
142
+ this.#ipcWrapper
143
+ .sendWithCb('sharedUdpSocketSend', {
142
144
  handleId: this.#state.handleId,
143
145
  message: buffer,
144
146
  address: address,
@@ -163,7 +165,7 @@ class SharedUdpSocketImpl extends eventemitter3_1.default {
163
165
  this.#state = 'fatalError';
164
166
  const boundState = this.boundState;
165
167
  if (boundState)
166
- this.#context.sharedUdpSocketHandlers.delete(boundState.handleId);
168
+ this.#moduleUdpSockets.delete(boundState.handleId);
167
169
  try {
168
170
  this.emit('error', error);
169
171
  }
@@ -1 +1 @@
1
- {"version":3,"file":"shared-udp-socket.js","sourceRoot":"","sources":["../../src/module-api/shared-udp-socket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"shared-udp-socket.js","sourceRoot":"","sources":["../../src/module-api/shared-udp-socket.ts"],"names":[],"mappings":"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"}
@@ -17,3 +17,4 @@ export interface CompanionButtonStyleProps {
17
17
  png64?: string;
18
18
  show_topbar?: boolean;
19
19
  }
20
+ //# sourceMappingURL=style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"style.d.ts","sourceRoot":"","sources":["../../src/module-api/style.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,kBAAkB,GAC3B,UAAU,GACV,YAAY,GACZ,WAAW,GACX,aAAa,GACb,eAAe,GACf,cAAc,GACd,aAAa,GACb,eAAe,GACf,cAAc,CAAA;AAEjB,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAA;AAExF;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACzC,IAAI,EAAE,MAAM,CAAA;IACZ;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,IAAI,EAAE,iBAAiB,CAAA;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,kBAAkB,CAAA;IAC9B,YAAY,CAAC,EAAE,kBAAkB,CAAA;IACjC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,OAAO,CAAA;CACrB"}
@@ -115,3 +115,4 @@ export declare function CreateConvertToBooleanFeedbackUpgradeScript<TConfig = un
115
115
  * @param upgradeMap The feedbacks to upgrade and the id of the option to convert
116
116
  */
117
117
  export declare function CreateUseBuiltinInvertForFeedbacksUpgradeScript<TConfig = unknown>(upgradeMap: Record<string, string>): CompanionStaticUpgradeScript<TConfig>;
118
+ //# sourceMappingURL=upgrade.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/module-api/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,eAAe,CAAA;AACvE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE/C,+CAA+C;AAC/C,MAAM,WAAW,uBAAuB,CAAC,OAAO;IAC/C;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAA;CACzC;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS;IACzE;;OAEG;IACH,MAAM,EAAE,OAAO,GAAG,IAAI,CAAA;IACtB;;OAEG;IACH,OAAO,EAAE,QAAQ,GAAG,IAAI,CAAA;IACxB;;OAEG;IACH,OAAO,EAAE,wBAAwB,EAAE,CAAA;IACnC;;OAEG;IACH,SAAS,EAAE,0BAA0B,EAAE,CAAA;CACvC;AAED;;GAEG;AACH,MAAM,WAAW,4BAA4B,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS;IAC1E;;OAEG;IACH,aAAa,EAAE,OAAO,GAAG,IAAI,CAAA;IAC7B;;OAEG;IACH,cAAc,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAA;IAChC;;OAEG;IACH,cAAc,EAAE,wBAAwB,EAAE,CAAA;IAC1C;;OAEG;IACH,gBAAgB,EAAE,0BAA0B,EAAE,CAAA;CAC9C;AAED;;GAEG;AACH,MAAM,MAAM,4BAA4B,CAAC,OAAO,EAAE,QAAQ,GAAG,SAAS,IAAI,CACzE,OAAO,EAAE,uBAAuB,CAAC,OAAO,CAAC,EACzC,KAAK,EAAE,2BAA2B,CAAC,OAAO,EAAE,QAAQ,CAAC,KACjD,4BAA4B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;AAEpD;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACxC,oCAAoC;IACpC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,oDAAoD;IACpD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAE1B,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,+CAA+C;IAC/C,OAAO,EAAE,aAAa,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IAC1C,sCAAsC;IACtC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,sDAAsD;IACtD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAA;IAE1B,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,iDAAiD;IACjD,OAAO,EAAE,aAAa,CAAA;IAEtB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC,kCAAkC,CAAC,CAAA;IAEnD;;;OAGG;IACH,UAAU,EAAE,OAAO,CAAA;CACnB;AAED;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,4BAA4B,CAAC,GAAG,CAK/D,CAAA;AAEF;;GAEG;AACH,MAAM,WAAW,oCAAoC;IACpD,CAAC,WAAW,EAAE,MAAM,GACjB,IAAI,GACJ;QAEA,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,GAAG,cAAc,GAAG,OAAO,CAAA;KACnG,GACD,SAAS,CAAA;CACZ;AAED;;;;GAIG;AACH,wBAAgB,2CAA2C,CAAC,OAAO,GAAG,OAAO,EAC5E,UAAU,EAAE,oCAAoC,GAC9C,4BAA4B,CAAC,OAAO,EAAE,GAAG,CAAC,CAwC5C;AAED;;;;GAIG;AACH,wBAAgB,+CAA+C,CAAC,OAAO,GAAG,OAAO,EAChF,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,4BAA4B,CAAC,OAAO,CAAC,CAiCvC"}
@@ -15,3 +15,4 @@ export interface CompanionVariableValues {
15
15
  * The value of a variable
16
16
  */
17
17
  export type CompanionVariableValue = string | number | boolean;
18
+ //# sourceMappingURL=variable.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"variable.d.ts","sourceRoot":"","sources":["../../src/module-api/variable.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC3C,UAAU,EAAE,MAAM,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;CACZ;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC,CAAC,UAAU,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS,CAAA;CACxD;AAED;;GAEG;AACH,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA"}
package/dist/util.d.ts CHANGED
@@ -94,3 +94,4 @@ export declare function substituteEscapeCharacters(msg: string): string;
94
94
  export type OptionsObject = {
95
95
  [key: string]: InputValue | undefined;
96
96
  };
97
+ //# sourceMappingURL=util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAU,MAAM,QAAQ,CAAA;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAA;AAEvD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,CAElC;AAED,wCAAwC;AACxC,wBAAgB,WAAW,CAAC,IAAI,EAAE,KAAK,GAAG,IAAI,CAE7C;AAED,MAAM,WAAW,aAAa;IAC7B,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,EAAE,MAAM,CAAA;IACT,CAAC,CAAC,EAAE,MAAM,CAAA;CACV;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAM9E;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,aAAa,CAiC9D;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI1D;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAI1D;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAIvD;AAED;;;GAGG;AACH,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI;KACxB,CAAC,IAAI,MAAM,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,SAAS,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS;CAC3F,CAAA;AAED;;;GAGG;AAEH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAczD;AAED;;;GAGG;AAEH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAc9D;AAED,MAAM,MAAM,aAAa,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAA;CAAE,CAAA"}
@@ -0,0 +1,83 @@
1
+ declare namespace debounceFn {
2
+ interface Options {
3
+ /**
4
+ Time to wait until the `input` function is called.
5
+
6
+ @default 0
7
+ */
8
+ readonly wait?: number
9
+
10
+ /**
11
+ Maximum time to wait until the `input` function is called.
12
+ Only applies when after is true.
13
+ Disabled when 0
14
+
15
+ @default 0
16
+ */
17
+ readonly maxWait?: number
18
+
19
+ /**
20
+ Trigger the function on the leading edge of the `wait` interval.
21
+
22
+ For example, this can be useful for preventing accidental double-clicks on a "submit" button from firing a second time.
23
+
24
+ @default false
25
+ */
26
+ readonly before?: boolean
27
+
28
+ /**
29
+ Trigger the function on the trailing edge of the `wait` interval.
30
+
31
+ @default true
32
+ */
33
+ readonly after?: boolean
34
+ }
35
+
36
+ interface BeforeOptions extends Options {
37
+ readonly before: true
38
+ }
39
+
40
+ interface NoBeforeNoAfterOptions extends Options {
41
+ readonly after: false
42
+ readonly before?: false
43
+ }
44
+
45
+ interface DebouncedFunction<ArgumentsType extends unknown[], ReturnType> {
46
+ (...arguments: ArgumentsType): ReturnType
47
+ cancel(): void
48
+ }
49
+ }
50
+
51
+ /**
52
+ [Debounce](https://davidwalsh.name/javascript-debounce-function) a function.
53
+
54
+ @param input - Function to debounce.
55
+ @returns A debounced function that delays calling the `input` function until after `wait` milliseconds have elapsed since the last time the debounced function was called.
56
+
57
+ It comes with a `.cancel()` method to cancel any scheduled `input` function calls.
58
+
59
+ @example
60
+ ```
61
+ import debounceFn = require('debounce-fn');
62
+
63
+ window.onresize = debounceFn(() => {
64
+ // Do something on window resize
65
+ }, {wait: 100});
66
+ ```
67
+ */
68
+ declare function debounceFn<ArgumentsType extends unknown[], ReturnType>(
69
+ input: (...arguments: ArgumentsType) => ReturnType,
70
+ options: debounceFn.BeforeOptions,
71
+ ): debounceFn.DebouncedFunction<ArgumentsType, ReturnType>
72
+
73
+ declare function debounceFn<ArgumentsType extends unknown[], ReturnType>(
74
+ input: (...arguments: ArgumentsType) => ReturnType,
75
+ options: debounceFn.NoBeforeNoAfterOptions,
76
+ ): debounceFn.DebouncedFunction<ArgumentsType, undefined>
77
+
78
+ declare function debounceFn<ArgumentsType extends unknown[], ReturnType>(
79
+ input: (...arguments: ArgumentsType) => ReturnType,
80
+ options?: debounceFn.Options,
81
+ ): debounceFn.DebouncedFunction<ArgumentsType, ReturnType | undefined>
82
+
83
+ export = debounceFn
@@ -0,0 +1,78 @@
1
+ 'use strict'
2
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
3
+ const mimicFn = require('mimic-fn')
4
+
5
+ module.exports = (inputFunction, options = {}) => {
6
+ if (typeof inputFunction !== 'function') {
7
+ throw new TypeError(`Expected the first argument to be a function, got \`${typeof inputFunction}\``)
8
+ }
9
+
10
+ const { wait = 0, maxWait = 0, before = false, after = true } = options
11
+
12
+ if (!before && !after) {
13
+ throw new Error("Both `before` and `after` are false, function wouldn't be called.")
14
+ }
15
+
16
+ let timeout
17
+ let maxTimeout
18
+ let result
19
+
20
+ const debouncedFunction = function (...arguments_) {
21
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
22
+ const context = this
23
+
24
+ const later = () => {
25
+ timeout = undefined
26
+
27
+ if (maxTimeout) {
28
+ clearTimeout(maxTimeout)
29
+ maxTimeout = undefined
30
+ }
31
+
32
+ if (after) {
33
+ result = inputFunction.apply(context, arguments_)
34
+ }
35
+ }
36
+
37
+ const maxLater = () => {
38
+ maxTimeout = undefined
39
+
40
+ if (timeout) {
41
+ clearTimeout(timeout)
42
+ timeout = undefined
43
+ }
44
+
45
+ result = inputFunction.apply(context, arguments_)
46
+ }
47
+
48
+ const shouldCallNow = before && !timeout
49
+ clearTimeout(timeout)
50
+ timeout = setTimeout(later, wait)
51
+
52
+ if (maxWait > 0 && !maxTimeout && after) {
53
+ maxTimeout = setTimeout(maxLater, maxWait)
54
+ }
55
+
56
+ if (shouldCallNow) {
57
+ result = inputFunction.apply(context, arguments_)
58
+ }
59
+
60
+ return result
61
+ }
62
+
63
+ mimicFn(debouncedFunction, inputFunction)
64
+
65
+ debouncedFunction.cancel = () => {
66
+ if (timeout) {
67
+ clearTimeout(timeout)
68
+ timeout = undefined
69
+ }
70
+
71
+ if (maxTimeout) {
72
+ clearTimeout(maxTimeout)
73
+ maxTimeout = undefined
74
+ }
75
+ }
76
+
77
+ return debouncedFunction
78
+ }
@@ -0,0 +1,9 @@
1
+ MIT License
2
+
3
+ Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (https://sindresorhus.com)
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
6
+
7
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.