@companion-module/host 1.0.3 → 1.1.1

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 (48) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/dist/context.d.ts +10 -2
  3. package/dist/context.d.ts.map +1 -1
  4. package/dist/instance.d.ts +32 -7
  5. package/dist/instance.d.ts.map +1 -1
  6. package/dist/instance.js +53 -12
  7. package/dist/instance.js.map +1 -1
  8. package/dist/internal/actions.d.ts +5 -4
  9. package/dist/internal/actions.d.ts.map +1 -1
  10. package/dist/internal/actions.js +72 -20
  11. package/dist/internal/actions.js.map +1 -1
  12. package/dist/internal/composite-elements.d.ts +3 -0
  13. package/dist/internal/composite-elements.d.ts.map +1 -0
  14. package/dist/internal/composite-elements.js +44 -0
  15. package/dist/internal/composite-elements.js.map +1 -0
  16. package/dist/internal/feedback.d.ts +4 -3
  17. package/dist/internal/feedback.d.ts.map +1 -1
  18. package/dist/internal/feedback.js +102 -19
  19. package/dist/internal/feedback.js.map +1 -1
  20. package/dist/internal/presets.d.ts +4 -1
  21. package/dist/internal/presets.d.ts.map +1 -1
  22. package/dist/internal/presets.js +344 -57
  23. package/dist/internal/presets.js.map +1 -1
  24. package/dist/internal/upgrade.d.ts +1 -1
  25. package/dist/internal/upgrade.d.ts.map +1 -1
  26. package/dist/internal/upgrade.js +4 -1
  27. package/dist/internal/upgrade.js.map +1 -1
  28. package/dist/internal/util.d.ts +13 -1
  29. package/dist/internal/util.d.ts.map +1 -1
  30. package/dist/internal/util.js +24 -0
  31. package/dist/internal/util.js.map +1 -1
  32. package/dist/main.d.ts +1 -0
  33. package/dist/main.d.ts.map +1 -1
  34. package/dist/main.js +1 -0
  35. package/dist/main.js.map +1 -1
  36. package/dist/schema/common.d.ts +11 -0
  37. package/dist/schema/common.d.ts.map +1 -0
  38. package/dist/schema/common.js +13 -0
  39. package/dist/schema/common.js.map +1 -0
  40. package/dist/schema/elements.d.ts +4 -0
  41. package/dist/schema/elements.d.ts.map +1 -0
  42. package/dist/schema/elements.js +170 -0
  43. package/dist/schema/elements.js.map +1 -0
  44. package/dist/schema/options.d.ts +116 -0
  45. package/dist/schema/options.d.ts.map +1 -0
  46. package/dist/schema/options.js +92 -0
  47. package/dist/schema/options.js.map +1 -0
  48. package/package.json +6 -4
@@ -0,0 +1,44 @@
1
+ import { z } from 'zod';
2
+ import { createModuleLogger, } from '@companion-module/base';
3
+ import { elementSchema } from '../schema/elements.js';
4
+ import { inputFieldSchema } from '../schema/options.js';
5
+ import { BANNED_PROPS } from './util.js';
6
+ const logger = createModuleLogger('CompositeElementDefinitionsManager');
7
+ const definitionSchema = z.object({
8
+ type: z.literal('composite'),
9
+ name: z.string().min(1),
10
+ sortName: z.string().min(1).optional(),
11
+ description: z.string().optional(),
12
+ options: z.array(inputFieldSchema),
13
+ elements: z.array(elementSchema),
14
+ });
15
+ true;
16
+ export function sanitiseCompositeElementDefinitions(definitions) {
17
+ const result = {};
18
+ const bannedIds = [];
19
+ const invalidSchema = [];
20
+ for (const [id, defn] of Object.entries(definitions)) {
21
+ if (BANNED_PROPS.has(id)) {
22
+ bannedIds.push(id);
23
+ continue;
24
+ }
25
+ if (!defn || typeof defn !== 'object') {
26
+ invalidSchema.push(id);
27
+ continue;
28
+ }
29
+ const parsed = definitionSchema.safeParse(defn);
30
+ if (!parsed.success) {
31
+ invalidSchema.push(id);
32
+ continue;
33
+ }
34
+ result[id] = parsed.data;
35
+ }
36
+ if (bannedIds.length > 0) {
37
+ logger.warn(`The following composite element definitions use a reserved id: ${bannedIds.sort().join(', ')}`);
38
+ }
39
+ if (invalidSchema.length > 0) {
40
+ logger.warn(`The following composite element definitions failed to validate against the schema: ${invalidSchema.sort().join(', ')}`);
41
+ }
42
+ return result;
43
+ }
44
+ //# sourceMappingURL=composite-elements.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"composite-elements.js","sourceRoot":"","sources":["../../src/internal/composite-elements.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,EACN,kBAAkB,GAGlB,MAAM,wBAAwB,CAAA;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,MAAM,MAAM,GAAG,kBAAkB,CAAC,oCAAoC,CAAC,CAAA;AAEvE,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC;IAC5B,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACtC,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC;IAClC,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC;CAChC,CAAkE,CAAA;AACnE,IAAqG,CAAA;AAErG,MAAM,UAAU,mCAAmC,CAClD,WAA8D;IAE9D,MAAM,MAAM,GAAsD,EAAE,CAAA;IAEpE,MAAM,SAAS,GAAa,EAAE,CAAA;IAC9B,MAAM,aAAa,GAAa,EAAE,CAAA;IAElC,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACtD,IAAI,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC1B,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAClB,SAAQ;QACT,CAAC;QAED,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACvC,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACtB,SAAQ;QACT,CAAC;QAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC/C,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACrB,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YACtB,SAAQ;QACT,CAAC;QAED,MAAM,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAA;IACzB,CAAC;IAED,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,kEAAkE,SAAS,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC7G,CAAC;IACD,IAAI,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CACV,sFAAsF,aAAa,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACvH,CAAA;IACF,CAAC;IAED,OAAO,MAAM,CAAA;AACd,CAAC"}
@@ -1,12 +1,13 @@
1
- import { type CompanionFeedbackDefinitions, type CompanionOptionValues } from '@companion-module/base';
1
+ import { type CompanionFeedbackDefinition, type CompanionFeedbackDefinitions, type CompanionOptionValues } from '@companion-module/base';
2
2
  import type { FeedbackInstance, HostFeedbackDefinition, HostFeedbackValue } from '../context.js';
3
3
  export declare class FeedbackManager {
4
4
  #private;
5
- constructor(setFeedbackDefinitions: (feedbacks: HostFeedbackDefinition[]) => void, updateFeedbackValues: (values: HostFeedbackValue[]) => void);
5
+ constructor(setFeedbackDefinitions: (feedbacks: HostFeedbackDefinition[]) => void, updateFeedbackValues: (values: HostFeedbackValue[]) => void, moduleApiVersion: string);
6
6
  getDefinitionIds(): string[];
7
+ getDefinition(id: string): CompanionFeedbackDefinition | undefined;
7
8
  getInstanceIds(): string[];
8
9
  handleUpdateFeedbacks(feedbacks: Record<string, FeedbackInstance | null | undefined>): void;
9
- handleLearnFeedback(feedback: FeedbackInstance): Promise<{
10
+ handleLearnFeedback(feedback: FeedbackInstance, signal: AbortSignal): Promise<{
10
11
  options: CompanionOptionValues | undefined;
11
12
  }>;
12
13
  setFeedbackDefinitions(feedbacks: CompanionFeedbackDefinitions): void;
@@ -1 +1 @@
1
- {"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../src/internal/feedback.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,KAAK,4BAA4B,EAEjC,KAAK,qBAAqB,EAI1B,MAAM,wBAAwB,CAAA;AAG/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AA4BhG,qBAAa,eAAe;;gBAe1B,sBAAsB,EAAE,CAAC,SAAS,EAAE,sBAAsB,EAAE,KAAK,IAAI,EACrE,oBAAoB,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,IAAI;IAMrD,gBAAgB,IAAI,MAAM,EAAE;IAG5B,cAAc,IAAI,MAAM,EAAE;IAI1B,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,IAAI;IA2CrF,mBAAmB,CAC/B,QAAQ,EAAE,gBAAgB,GACxB,OAAO,CAAC;QAAE,OAAO,EAAE,qBAAqB,GAAG,SAAS,CAAA;KAAE,CAAC;IAiJ1D,sBAAsB,CAAC,SAAS,EAAE,4BAA4B,GAAG,IAAI;IAuErE,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI;IAuBpD,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI;IAO/C,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI;CAmBjD"}
1
+ {"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../src/internal/feedback.ts"],"names":[],"mappings":"AAEA,OAAO,EAMN,KAAK,2BAA2B,EAChC,KAAK,4BAA4B,EAGjC,KAAK,qBAAqB,EAE1B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAA;AAqChG,qBAAa,eAAe;;gBAgB1B,sBAAsB,EAAE,CAAC,SAAS,EAAE,sBAAsB,EAAE,KAAK,IAAI,EACrE,oBAAoB,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,KAAK,IAAI,EAC3D,gBAAgB,EAAE,MAAM;IAOlB,gBAAgB,IAAI,MAAM,EAAE;IAI5B,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,2BAA2B,GAAG,SAAS;IAIlE,cAAc,IAAI,MAAM,EAAE;IAI1B,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,CAAC,GAAG,IAAI;IA8CrF,mBAAmB,CAC/B,QAAQ,EAAE,gBAAgB,EAC1B,MAAM,EAAE,WAAW,GACjB,OAAO,CAAC;QAAE,OAAO,EAAE,qBAAqB,GAAG,SAAS,CAAA;KAAE,CAAC;IAoM1D,sBAAsB,CAAC,SAAS,EAAE,4BAA4B,GAAG,IAAI;IAqGrE,cAAc,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,GAAG,IAAI;IAuBpD,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI;IAO/C,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,IAAI;CAsBjD"}
@@ -1,7 +1,7 @@
1
- import { assertNever, createModuleLogger, } from '@companion-module/base';
2
- import { BANNED_PROPS } from './util.js';
3
1
  import debounceFn from 'debounce-fn';
4
- import { hasAnyOldIsVisibleFunctions, hasAnyOldRequiredProperties } from './util.js';
2
+ import semver from 'semver';
3
+ import { assertNever, createModuleLogger, } from '@companion-module/base';
4
+ import { BANNED_PROPS, filterDuplicateOptionIds, hasAnyOldIsVisibleFunctions, hasAnyOldRequiredProperties, } from './util.js';
5
5
  function convertFeedbackInstanceToEvent(type, feedback, includePrevious) {
6
6
  return {
7
7
  type: type,
@@ -16,19 +16,24 @@ export class FeedbackManager {
16
16
  #logger = createModuleLogger('FeedbackManager');
17
17
  #setFeedbackDefinitions;
18
18
  #updateFeedbackValues;
19
+ #moduleApiVersion;
19
20
  #feedbackDefinitions = new Map();
20
21
  #feedbackInstances = new Map();
21
22
  // Feedback values waiting to be sent
22
23
  #pendingFeedbackValues = new Map();
23
24
  // Feedbacks currently being checked
24
25
  #feedbacksBeingChecked = new Map();
25
- constructor(setFeedbackDefinitions, updateFeedbackValues) {
26
+ constructor(setFeedbackDefinitions, updateFeedbackValues, moduleApiVersion) {
26
27
  this.#setFeedbackDefinitions = setFeedbackDefinitions;
27
28
  this.#updateFeedbackValues = updateFeedbackValues;
29
+ this.#moduleApiVersion = moduleApiVersion;
28
30
  }
29
31
  getDefinitionIds() {
30
32
  return this.#feedbackDefinitions.keys().toArray();
31
33
  }
34
+ getDefinition(id) {
35
+ return this.#feedbackDefinitions.get(id);
36
+ }
32
37
  getInstanceIds() {
33
38
  return this.#feedbackInstances.keys().toArray();
34
39
  }
@@ -40,6 +45,8 @@ export class FeedbackManager {
40
45
  }
41
46
  const existing = this.#feedbackInstances.get(id);
42
47
  if (existing && !feedback) {
48
+ // The feedback is being removed; abort any in-progress check as its result is no longer wanted
49
+ this.#abortFeedbackCheck(id);
43
50
  // Call unsubscribe
44
51
  const definition = this.#feedbackDefinitions.get(existing.feedbackId);
45
52
  if (definition?.unsubscribe) {
@@ -67,23 +74,49 @@ export class FeedbackManager {
67
74
  }
68
75
  }
69
76
  }
70
- async handleLearnFeedback(feedback) {
77
+ async handleLearnFeedback(feedback, signal) {
71
78
  const definition = this.#feedbackDefinitions.get(feedback.feedbackId);
72
79
  if (definition && definition.learn) {
73
80
  const context = {
74
81
  type: 'feedback',
82
+ signal,
75
83
  };
76
- const newOptions = await definition.learn({
77
- id: feedback.id,
78
- feedbackId: feedback.feedbackId,
79
- controlId: feedback.controlId,
80
- options: feedback.options,
81
- previousOptions: null,
82
- type: definition.type,
83
- }, context);
84
- return {
85
- options: newOptions,
86
- };
84
+ if (signal.aborted) {
85
+ // The learn was aborted, return undefined options as a signal of this
86
+ return {
87
+ options: undefined,
88
+ };
89
+ }
90
+ try {
91
+ const newOptions = await definition.learn({
92
+ id: feedback.id,
93
+ feedbackId: feedback.feedbackId,
94
+ controlId: feedback.controlId,
95
+ options: feedback.options,
96
+ previousOptions: null,
97
+ type: definition.type,
98
+ }, context);
99
+ if (signal.aborted) {
100
+ // The learn was aborted, return undefined options as a signal of this
101
+ return {
102
+ options: undefined,
103
+ };
104
+ }
105
+ return {
106
+ options: newOptions,
107
+ };
108
+ }
109
+ catch (e) {
110
+ if (signal.aborted) {
111
+ // The learn was aborted, return undefined options as a signal of this
112
+ return {
113
+ options: undefined,
114
+ };
115
+ }
116
+ else {
117
+ throw e;
118
+ }
119
+ }
87
120
  }
88
121
  else {
89
122
  // Not supported
@@ -92,19 +125,34 @@ export class FeedbackManager {
92
125
  };
93
126
  }
94
127
  }
95
- #triggerCheckFeedback(id) {
128
+ /**
129
+ * Abort any in-progress check for a feedback, because its result is no longer wanted
130
+ * (e.g. the feedback is being removed or unsubscribed). We don't wait for the run to settle.
131
+ * This ignores the `abortable` starvation guard, which only concerns rechecks.
132
+ */
133
+ #abortFeedbackCheck(id) {
134
+ this.#feedbacksBeingChecked.get(id)?.abortController.abort();
135
+ }
136
+ #triggerCheckFeedback(id, abortable = true) {
96
137
  const existingRecheck = this.#feedbacksBeingChecked.get(id);
97
138
  if (existingRecheck) {
98
139
  // Already being checked
99
140
  existingRecheck.needsRecheck = true;
141
+ // Ask the in-flight run to abort, so a cooperative callback can bail early.
142
+ // If the run is not abortable (starvation guard, see below), leave it to complete.
143
+ if (existingRecheck.abortable)
144
+ existingRecheck.abortController.abort();
100
145
  return;
101
146
  }
102
147
  const feedback0 = this.#feedbackInstances.get(id);
103
148
  if (!feedback0)
104
149
  return;
105
150
  const feedback = feedback0;
151
+ const abortController = new AbortController();
106
152
  const feedbackCheckStatus = {
107
153
  needsRecheck: false,
154
+ abortController,
155
+ abortable,
108
156
  };
109
157
  // mark it as being checked
110
158
  this.#feedbacksBeingChecked.set(id, feedbackCheckStatus);
@@ -116,6 +164,7 @@ export class FeedbackManager {
116
164
  if (definition) {
117
165
  const context = {
118
166
  type: 'feedback',
167
+ signal: abortController.signal,
119
168
  };
120
169
  switch (definition.type) {
121
170
  case 'boolean':
@@ -154,6 +203,10 @@ export class FeedbackManager {
154
203
  this.#sendFeedbackValues();
155
204
  })
156
205
  .catch((e) => {
206
+ // If the run was aborted, a recheck is already queued; swallow the error as the callback
207
+ // bailing on abort is expected and its result is being discarded anyway.
208
+ if (abortController.signal.aborted)
209
+ return;
157
210
  this.#logger.error(`Feedback check failed: ${JSON.stringify(feedback)} - ${e?.message ?? e} ${e?.stack}`);
158
211
  })
159
212
  .finally(() => {
@@ -161,8 +214,13 @@ export class FeedbackManager {
161
214
  this.#feedbacksBeingChecked.delete(id);
162
215
  // If queued, trigger a check
163
216
  if (feedbackCheckStatus.needsRecheck) {
217
+ // Starvation guard: if this run was aborted, force the next run to run to completion
218
+ // (non-abortable). Without this, a slow feedback rechecked faster than it completes
219
+ // (e.g. a cooperative 2s callback aborted every 1s) would be aborted forever and never
220
+ // emit a value. Forcing the next run to finish bounds the worst case to ~2 durations.
221
+ const nextAbortable = !abortController.signal.aborted;
164
222
  setImmediate(() => {
165
- this.#triggerCheckFeedback(id);
223
+ this.#triggerCheckFeedback(id, nextAbortable);
166
224
  });
167
225
  }
168
226
  });
@@ -188,19 +246,30 @@ export class FeedbackManager {
188
246
  const definitionsWithOldIsVisible = [];
189
247
  const definitionsWithOldRequiredProperties = [];
190
248
  const definitionSubscriptionMentionsChangeStyle = [];
249
+ const definitionsMissingAffectedProperties = [];
250
+ const definitionsWithDuplicateOptionIds = [];
251
+ const validModuleApiVersion = semver.valid(this.#moduleApiVersion, { loose: true });
252
+ const checkAffectedProperties = validModuleApiVersion !== null && semver.gte(validModuleApiVersion, '2.1.0-0', { loose: true });
191
253
  for (const [feedbackId, feedback] of Object.entries(feedbacks)) {
192
254
  if (!feedback)
193
255
  continue;
194
256
  if (BANNED_PROPS.has(feedbackId))
195
257
  throw new Error(`Feedback id "${feedbackId}" is a reserved word`);
258
+ if (feedbackId.startsWith('internal:'))
259
+ throw new Error(`Feedback id "${feedbackId}" uses the reserved "internal:" prefix`);
260
+ // Remove any options which reuse the same id, keeping only the first usage of each
261
+ const { options: filteredOptions, duplicateIds } = filterDuplicateOptionIds(feedback.options ?? []);
262
+ if (duplicateIds.length > 0)
263
+ definitionsWithDuplicateOptionIds.push(`${feedbackId} (${duplicateIds.sort().join(', ')})`);
196
264
  hostFeedbacks.push({
197
265
  id: feedbackId,
198
266
  name: feedback.name,
199
267
  sortName: feedback.sortName,
200
268
  description: feedback.description,
201
- options: feedback.options,
269
+ options: filteredOptions,
202
270
  type: feedback.type,
203
271
  defaultStyle: feedback.type === 'boolean' ? feedback.defaultStyle : undefined,
272
+ affectedProperties: feedback.type === 'advanced' ? feedback.affectedProperties : undefined,
204
273
  hasLearn: !!feedback.learn,
205
274
  learnTimeout: feedback.learnTimeout,
206
275
  showInvert: feedback.type === 'boolean' ? feedback.showInvert : false,
@@ -216,6 +285,8 @@ export class FeedbackManager {
216
285
  definitionsWithOldRequiredProperties.push(feedbackId);
217
286
  if (typeof feedback.description === 'string' && feedback.description.match(/change style/))
218
287
  definitionSubscriptionMentionsChangeStyle.push(feedbackId);
288
+ if (checkAffectedProperties && feedback.type === 'advanced' && !Array.isArray(feedback.affectedProperties))
289
+ definitionsMissingAffectedProperties.push(feedbackId);
219
290
  }
220
291
  this.#setFeedbackDefinitions(hostFeedbacks);
221
292
  if (definitionsWithSubscribeMethod.length > 0) {
@@ -238,6 +309,16 @@ export class FeedbackManager {
238
309
  .sort()
239
310
  .join(', ')}`);
240
311
  }
312
+ if (definitionsMissingAffectedProperties.length > 0) {
313
+ this.#logger.warn(`The following advanced feedback definitions are missing an array for affectedProperties. This should be set to the list of style properties the feedback will affect: ${definitionsMissingAffectedProperties
314
+ .sort()
315
+ .join(', ')}`);
316
+ }
317
+ if (definitionsWithDuplicateOptionIds.length > 0) {
318
+ this.#logger.warn(`The following feedback definitions have options which reuse the same id. Each option id must be unique within a definition, or they will overwrite each other. The definitions: ${definitionsWithDuplicateOptionIds
319
+ .sort()
320
+ .join(', ')}`);
321
+ }
241
322
  }
242
323
  checkFeedbacks(feedbackTypes) {
243
324
  if (feedbackTypes) {
@@ -270,6 +351,8 @@ export class FeedbackManager {
270
351
  if (feedbackIdSet.size)
271
352
  feedbacks = feedbacks.filter((fb) => feedbackIdSet.has(fb.feedbackId));
272
353
  for (const fb of feedbacks) {
354
+ // Abort any in-progress check as its result is no longer wanted
355
+ this.#abortFeedbackCheck(fb.id);
273
356
  const def = this.#feedbackDefinitions.get(fb.feedbackId);
274
357
  if (def && def.unsubscribe) {
275
358
  const context = {
@@ -1 +1 @@
1
- {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/internal/feedback.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/internal/feedback.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,8 @@
1
1
  import { type CompanionPresetDefinitions, type CompanionPresetSection } from '@companion-module/base';
2
2
  import type { ActionManager } from './actions.js';
3
3
  import type { FeedbackManager } from './feedback.js';
4
- export declare function validatePresetDefinitions(actionsManager: ActionManager, feedbacksManager: FeedbackManager, structure: CompanionPresetSection<any>[], presets: CompanionPresetDefinitions<any>): void;
4
+ export declare function sanitisePresetDefinitions(actionsManager: ActionManager, feedbacksManager: FeedbackManager, structure: CompanionPresetSection<any>[], presets: CompanionPresetDefinitions<any>, moduleApiVersion: string): {
5
+ structure: CompanionPresetSection<any>[];
6
+ presets: CompanionPresetDefinitions<any>;
7
+ };
5
8
  //# sourceMappingURL=presets.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/internal/presets.ts"],"names":[],"mappings":"AAAA,OAAO,EAEN,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC3B,MAAM,wBAAwB,CAAA;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AAIpD,wBAAgB,yBAAyB,CACxC,cAAc,EAAE,aAAa,EAC7B,gBAAgB,EAAE,eAAe,EACjC,SAAS,EAAE,sBAAsB,CAAC,GAAG,CAAC,EAAE,EACxC,OAAO,EAAE,0BAA0B,CAAC,GAAG,CAAC,GACtC,IAAI,CA2JN"}
1
+ {"version":3,"file":"presets.d.ts","sourceRoot":"","sources":["../../src/internal/presets.ts"],"names":[],"mappings":"AAEA,OAAO,EAIN,KAAK,0BAA0B,EAC/B,KAAK,sBAAsB,EAC3B,MAAM,wBAAwB,CAAA;AAE/B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AACjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAA;AA2CpD,wBAAgB,yBAAyB,CACxC,cAAc,EAAE,aAAa,EAC7B,gBAAgB,EAAE,eAAe,EACjC,SAAS,EAAE,sBAAsB,CAAC,GAAG,CAAC,EAAE,EACxC,OAAO,EAAE,0BAA0B,CAAC,GAAG,CAAC,EACxC,gBAAgB,EAAE,MAAM,GACtB;IACF,SAAS,EAAE,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAA;IACxC,OAAO,EAAE,0BAA0B,CAAC,GAAG,CAAC,CAAA;CACxC,CAyaA"}