@companion-module/base 2.2.0 → 2.2.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.2.1](https://github.com/bitfocus/companion-module-base/compare/companion-module-base-v2.2.0...companion-module-base-v2.2.1) (2026-10-09)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * add sanitizeVariable util function ([#278](https://github.com/bitfocus/companion-module-base/issues/278)) ([3fb7bdb](https://github.com/bitfocus/companion-module-base/commit/3fb7bdbd99ad29ef4644d0701615ab2ccca5c178))
9
+ * allow rotation on composite elements ([45ea03a](https://github.com/bitfocus/companion-module-base/commit/45ea03ae3173b5314fee1859eabb1f247c2075f6))
10
+
3
11
  ## [2.2.0](https://github.com/bitfocus/companion-module-base/compare/companion-module-base-v2.1.3...companion-module-base-v2.2.0) (2026-10-01)
4
12
 
5
13
 
@@ -2,82 +2,86 @@
2
2
  "$schema": "https://json-schema.org/draft/2020-12/schema",
3
3
  "$id": "/assets/manifest.schema.json",
4
4
  "title": "ModuleManifest",
5
- "type": "object",
6
- "properties": {
7
- "$schema": { "type": "string" },
8
- "type": { "type": "string", "enum": ["connection"], "description": "Type of module. Must be: connection" },
9
- "id": {
10
- "type": "string",
11
- "pattern": "^((?!companion-module-your-module-name)[\\s\\S])*$",
12
- "description": "Unique identifier for the module"
13
- },
14
- "name": {
15
- "type": "string",
16
- "pattern": "^((?!companion-module-your-module-name)[\\s\\S])*$",
17
- "description": "Name of the module"
18
- },
19
- "shortname": { "type": "string", "pattern": "^((?!module-shortname)[\\s\\S])*$" },
20
- "description": {
21
- "type": "string",
22
- "pattern": "^((?!A short one line description of your module)[\\s\\S])*$",
23
- "description": "Description of the module"
24
- },
25
- "version": { "type": "string", "description": "Current version of the module" },
26
- "isPrerelease": { "description": "Is this a pre-release version", "type": "boolean" },
27
- "license": { "type": "string", "description": "SPDX identifier for license of the module" },
28
- "repository": { "type": "string", "description": "URL to the source repository" },
29
- "bugs": { "type": "string", "description": "URL to bug tracker" },
30
- "maintainers": {
31
- "type": "array",
32
- "items": { "$ref": "#/$defs/ModuleManifestMaintainer" },
33
- "uniqueItems": true,
34
- "description": "List of active maintainers"
35
- },
36
- "legacyIds": {
37
- "type": "array",
38
- "items": { "type": "string" },
39
- "uniqueItems": true,
40
- "description": "If the module had a different unique identifier previously, then specify it here"
41
- },
42
- "runtime": { "$ref": "#/$defs/ModuleManifestRuntime" },
43
- "manufacturer": { "type": "string", "pattern": "^((?!Your company)[\\s\\S])*$" },
44
- "products": {
45
- "minItems": 1,
46
- "type": "array",
47
- "items": { "type": "string", "pattern": "^((?!Your product)[\\s\\S])*$" },
48
- "uniqueItems": true
49
- },
50
- "keywords": { "type": "array", "items": { "type": "string" }, "uniqueItems": true },
51
- "bonjourQueries": {
52
- "description": "If the device or software for your module supports bonjour announcements, Companion will offer an easy way to watch for these announcements.\nEach query you define must have a matching config field of type 'bonjour-device' with the same name",
53
- "type": "object",
54
- "propertyNames": { "type": "string" },
55
- "additionalProperties": {
56
- "anyOf": [
57
- { "$ref": "#/$defs/ModuleBonjourQuery" },
58
- { "type": "array", "items": { "$ref": "#/$defs/ModuleBonjourQuery" } }
59
- ]
60
- }
61
- }
62
- },
63
- "required": [
64
- "type",
65
- "id",
66
- "name",
67
- "shortname",
68
- "description",
69
- "version",
70
- "license",
71
- "repository",
72
- "bugs",
73
- "maintainers",
74
- "legacyIds",
75
- "runtime",
76
- "manufacturer",
77
- "products",
78
- "keywords"
79
- ],
5
+ "$ref": "#/$defs/ModuleManifest",
80
6
  "$defs": {
7
+ "ModuleManifest": {
8
+ "type": "object",
9
+ "properties": {
10
+ "$schema": { "type": "string" },
11
+ "type": { "type": "string", "enum": ["connection"], "description": "Type of module. Must be: connection" },
12
+ "id": {
13
+ "type": "string",
14
+ "pattern": "^((?!companion-module-your-module-name)[\\s\\S])*$",
15
+ "description": "Unique identifier for the module"
16
+ },
17
+ "name": {
18
+ "type": "string",
19
+ "pattern": "^((?!companion-module-your-module-name)[\\s\\S])*$",
20
+ "description": "Name of the module"
21
+ },
22
+ "shortname": { "type": "string", "pattern": "^((?!module-shortname)[\\s\\S])*$" },
23
+ "description": {
24
+ "type": "string",
25
+ "pattern": "^((?!A short one line description of your module)[\\s\\S])*$",
26
+ "description": "Description of the module"
27
+ },
28
+ "version": { "type": "string", "description": "Current version of the module" },
29
+ "isPrerelease": { "description": "Is this a pre-release version", "type": "boolean" },
30
+ "license": { "type": "string", "description": "SPDX identifier for license of the module" },
31
+ "repository": { "type": "string", "description": "URL to the source repository" },
32
+ "bugs": { "type": "string", "description": "URL to bug tracker" },
33
+ "maintainers": {
34
+ "type": "array",
35
+ "items": { "$ref": "#/$defs/ModuleManifestMaintainer" },
36
+ "uniqueItems": true,
37
+ "description": "List of active maintainers"
38
+ },
39
+ "legacyIds": {
40
+ "type": "array",
41
+ "items": { "type": "string" },
42
+ "uniqueItems": true,
43
+ "description": "If the module had a different unique identifier previously, then specify it here"
44
+ },
45
+ "runtime": { "$ref": "#/$defs/ModuleManifestRuntime" },
46
+ "manufacturer": { "type": "string", "pattern": "^((?!Your company)[\\s\\S])*$" },
47
+ "products": {
48
+ "minItems": 1,
49
+ "type": "array",
50
+ "items": { "type": "string", "pattern": "^((?!Your product)[\\s\\S])*$" },
51
+ "uniqueItems": true
52
+ },
53
+ "keywords": { "type": "array", "items": { "type": "string" }, "uniqueItems": true },
54
+ "bonjourQueries": {
55
+ "description": "If the device or software for your module supports bonjour announcements, Companion will offer an easy way to watch for these announcements.\nEach query you define must have a matching config field of type 'bonjour-device' with the same name",
56
+ "type": "object",
57
+ "propertyNames": { "type": "string" },
58
+ "additionalProperties": {
59
+ "anyOf": [
60
+ { "$ref": "#/$defs/ModuleBonjourQuery" },
61
+ { "type": "array", "items": { "$ref": "#/$defs/ModuleBonjourQuery" } }
62
+ ]
63
+ }
64
+ }
65
+ },
66
+ "required": [
67
+ "type",
68
+ "id",
69
+ "name",
70
+ "shortname",
71
+ "description",
72
+ "version",
73
+ "license",
74
+ "repository",
75
+ "bugs",
76
+ "maintainers",
77
+ "legacyIds",
78
+ "runtime",
79
+ "manufacturer",
80
+ "products",
81
+ "keywords"
82
+ ],
83
+ "title": "ModuleManifest"
84
+ },
81
85
  "ModuleManifestMaintainer": {
82
86
  "type": "object",
83
87
  "properties": {
@@ -44,6 +44,9 @@ export interface ButtonGraphicsDrawBounds {
44
44
  width?: CompanionGraphicsElementValue<number>;
45
45
  height?: CompanionGraphicsElementValue<number>;
46
46
  }
47
+ export interface ButtonGraphicsRotationProperties {
48
+ rotation?: CompanionGraphicsElementValue<number>;
49
+ }
47
50
  export interface ButtonGraphicsCanvasElement {
48
51
  decoration?: CompanionGraphicsElementValue<ButtonGraphicsDecorationType>;
49
52
  showStatusIcons?: CompanionGraphicsElementValue<ButtonGraphicsShowStatusIcons>;
@@ -59,13 +62,12 @@ export declare enum ButtonGraphicsShowStatusIcons {
59
62
  ShowAll = "all",
60
63
  None = "none"
61
64
  }
62
- export interface ButtonGraphicsGroupElement<TCompositeElements extends CompanionCompositeElementSchemas | undefined = CompanionCompositeElementSchemas> extends ButtonGraphicsElementBase, ButtonGraphicsDrawBounds {
65
+ export interface ButtonGraphicsGroupElement<TCompositeElements extends CompanionCompositeElementSchemas | undefined = CompanionCompositeElementSchemas> extends ButtonGraphicsElementBase, ButtonGraphicsDrawBounds, ButtonGraphicsRotationProperties {
63
66
  type: 'group';
64
- rotation?: CompanionGraphicsElementValue<number>;
65
67
  squareCoords?: CompanionGraphicsElementValue<boolean>;
66
68
  children: SomeButtonGraphicsElement<TCompositeElements>[];
67
69
  }
68
- export type ButtonGraphicsCompositeElement<TCompositeElements extends CompanionCompositeElementSchemas | undefined = CompanionCompositeElementSchemas> = ButtonGraphicsElementBase & ButtonGraphicsDrawBounds & {
70
+ export type ButtonGraphicsCompositeElement<TCompositeElements extends CompanionCompositeElementSchemas | undefined = CompanionCompositeElementSchemas> = ButtonGraphicsElementBase & ButtonGraphicsDrawBounds & ButtonGraphicsRotationProperties & {
69
71
  [K in keyof Extract<TCompositeElements, CompanionCompositeElementSchemas>]: {
70
72
  type: 'composite';
71
73
  elementId: K;
@@ -82,9 +84,8 @@ export type ImageFillMode = 'crop' | 'fill' | 'fit';
82
84
  export type ButtonGraphicsFontFamily = 'companion-sans' | 'companion-mono';
83
85
  export type ButtonGraphicsFontWeight = 'normal' | 'bold';
84
86
  export type ButtonGraphicsTextStyle = 'italic' | 'underline' | 'strikethrough';
85
- export interface ButtonGraphicsTextElement extends ButtonGraphicsElementBase, ButtonGraphicsDrawBounds {
87
+ export interface ButtonGraphicsTextElement extends ButtonGraphicsElementBase, ButtonGraphicsDrawBounds, ButtonGraphicsRotationProperties {
86
88
  type: 'text';
87
- rotation?: CompanionGraphicsElementValue<number>;
88
89
  text: CompanionGraphicsElementValue<string>;
89
90
  fontsize?: CompanionGraphicsElementValue<number>;
90
91
  fontsizeAllowShrink?: CompanionGraphicsElementValue<boolean>;
@@ -96,9 +97,8 @@ export interface ButtonGraphicsTextElement extends ButtonGraphicsElementBase, Bu
96
97
  valign?: CompanionGraphicsElementValue<VerticalAlignment>;
97
98
  outlineColor?: CompanionGraphicsElementValue<CompanionColorValue>;
98
99
  }
99
- export interface ButtonGraphicsImageElement extends ButtonGraphicsElementBase, ButtonGraphicsDrawBounds {
100
+ export interface ButtonGraphicsImageElement extends ButtonGraphicsElementBase, ButtonGraphicsDrawBounds, ButtonGraphicsRotationProperties {
100
101
  type: 'image';
101
- rotation?: CompanionGraphicsElementValue<number>;
102
102
  base64Image: CompanionGraphicsElementValue<string | null>;
103
103
  halign?: CompanionGraphicsElementValue<HorizontalAlignment>;
104
104
  valign?: CompanionGraphicsElementValue<VerticalAlignment>;
@@ -109,9 +109,8 @@ export interface ButtonGraphicsBorderProperties {
109
109
  borderColor?: CompanionGraphicsElementValue<CompanionColorValue>;
110
110
  borderPosition?: CompanionGraphicsElementValue<LineOrientation>;
111
111
  }
112
- export interface ButtonGraphicsBoxElement extends ButtonGraphicsElementBase, ButtonGraphicsDrawBounds, ButtonGraphicsBorderProperties {
112
+ export interface ButtonGraphicsBoxElement extends ButtonGraphicsElementBase, ButtonGraphicsDrawBounds, ButtonGraphicsRotationProperties, ButtonGraphicsBorderProperties {
113
113
  type: 'box';
114
- rotation?: CompanionGraphicsElementValue<number>;
115
114
  color?: CompanionGraphicsElementValue<CompanionColorValue>;
116
115
  cornerRadius?: CompanionGraphicsElementValue<number>;
117
116
  }
@@ -138,9 +137,8 @@ export interface ButtonGraphicsGaugeStop {
138
137
  color: CompanionGraphicsElementValue<CompanionColorValue>;
139
138
  gradient: CompanionGraphicsElementValue<boolean>;
140
139
  }
141
- export interface ButtonGraphicsGaugeElement extends ButtonGraphicsElementBase, ButtonGraphicsDrawBounds {
140
+ export interface ButtonGraphicsGaugeElement extends ButtonGraphicsElementBase, ButtonGraphicsDrawBounds, ButtonGraphicsRotationProperties {
142
141
  type: 'gauge';
143
- rotation?: CompanionGraphicsElementValue<number>;
144
142
  value?: CompanionGraphicsElementValue<number>;
145
143
  min?: CompanionGraphicsElementValue<number>;
146
144
  max?: CompanionGraphicsElementValue<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"graphics.d.ts","sourceRoot":"","sources":["../../src/module-api/graphics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graphics.d.ts","sourceRoot":"","sources":["../../src/module-api/graphics.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"graphics.js","sourceRoot":"","sources":["../../src/module-api/graphics.ts"],"names":[],"mappings":"AA8EA,MAAM,CAAN,IAAY,4BAMX;AAND,WAAY,4BAA4B;IACvC,yDAAyB,CAAA;IACzB,iDAAiB,CAAA;IACjB,qCAAqC;IACrC,iDAAiB,CAAA;IACjB,6CAAa,CAAA;AACd,CAAC,EANW,4BAA4B,KAA5B,4BAA4B,QAMvC;AAED,MAAM,CAAN,IAAY,6BAIX;AAJD,WAAY,6BAA6B;IACxC,0DAAyB,CAAA;IACzB,gDAAe,CAAA;IACf,8CAAa,CAAA;AACd,CAAC,EAJW,6BAA6B,KAA7B,6BAA6B,QAIxC"}
1
+ {"version":3,"file":"graphics.js","sourceRoot":"","sources":["../../src/module-api/graphics.ts"],"names":[],"mappings":"AAmFA,MAAM,CAAN,IAAY,4BAMX;AAND,WAAY,4BAA4B;IACvC,yDAAyB,CAAA;IACzB,iDAAiB,CAAA;IACjB,qCAAqC;IACrC,iDAAiB,CAAA;IACjB,6CAAa,CAAA;AACd,CAAC,EANW,4BAA4B,KAA5B,4BAA4B,QAMvC;AAED,MAAM,CAAN,IAAY,6BAIX;AAJD,WAAY,6BAA6B;IACxC,0DAAyB,CAAA;IACzB,gDAAe,CAAA;IACf,8CAAa,CAAA;AACd,CAAC,EAJW,6BAA6B,KAA7B,6BAA6B,QAIxC"}
package/dist/util.d.ts CHANGED
@@ -94,4 +94,8 @@ export declare function parseEscapeCharacters(msg: string): string;
94
94
  * Ie during a learn callback, or as a variable
95
95
  */
96
96
  export declare function substituteEscapeCharacters(msg: string): string;
97
+ /**
98
+ * Sanitize an ID to ensure compliance with Companion ID constraints, and optionally provide module devs the capability to replace characters.
99
+ */
100
+ export declare function sanitizeVariable(id: string, replacements?: Record<string, string>): string;
97
101
  //# sourceMappingURL=util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAA;AAE/D;;;;;;;;;;;;;;;;;;;;;;;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;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAA;AAEpD;;;GAGG;AAEH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAczD;AAED;;;GAGG;AAEH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAc9D"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAU,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,QAAQ,CAAA;AAE/D;;;;;;;;;;;;;;;;;;;;;;;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;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAA;AAEpD;;;GAGG;AAEH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAczD;AAED;;;GAGG;AAEH,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAc9D;AAED;;GAEG;AAEH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,YAAY,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,GAAG,MAAM,CAQ9F"}
package/dist/util.js CHANGED
@@ -163,4 +163,14 @@ export function substituteEscapeCharacters(msg) {
163
163
  .replaceAll('\x03', '\\x03');
164
164
  return message;
165
165
  }
166
+ /**
167
+ * Sanitize an ID to ensure compliance with Companion ID constraints, and optionally provide module devs the capability to replace characters.
168
+ */
169
+ export function sanitizeVariable(id, replacements = {}) {
170
+ let result = id;
171
+ for (const [character, replacement] of Object.entries(replacements)) {
172
+ result = result.split(character).join(replacement);
173
+ }
174
+ return result.replace(/[^a-zA-Z0-9-_.!]/g, '');
175
+ }
166
176
  //# sourceMappingURL=util.js.map
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkC,MAAM,QAAQ,CAAA;AAE/D;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,MAAM,UAAU,OAAO,CAAI,CAAI;IAC9B,OAAO,CAAC,CAAA;AACT,CAAC;AAED,wCAAwC;AACxC,MAAM,UAAU,WAAW,CAAC,IAAW;IACtC,gBAAgB;AACjB,CAAC;AASD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,UAAU,CAAC,CAAS,EAAE,CAAS,EAAE,CAAS,EAAE,CAAU;IACrE,IAAI,WAAW,GAAW,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAA;IAC7E,IAAI,CAAC,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QACxC,WAAW,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA,CAAC,sCAAsC;IAC5F,CAAC;IACD,OAAO,WAAW,CAAA;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAsB;IAC9C,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,KAAK,GAAG,QAAQ,EAAE,CAAC;YACtB,OAAO;gBACN,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI;gBACvB,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI;gBACtB,CAAC,EAAE,KAAK,GAAG,IAAI;gBACf,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,GAAG;aACvC,CAAA;QACF,CAAC;aAAM,CAAC;YACP,OAAO;gBACN,CAAC,EAAE,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI;gBACvB,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI;gBACtB,CAAC,EAAE,KAAK,GAAG,IAAI;gBACf,CAAC,EAAE,CAAC;aACJ,CAAA;QACF,CAAC;IACF,CAAC;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QACjE,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAA;QACjC,OAAO;YACN,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,CAAC,EAAE,GAAG,CAAC,CAAC;SACR,CAAA;IACF,CAAC;SAAM,CAAC;QACP,OAAO;YACN,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;SACJ,CAAA;IACF,CAAC;AACF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAsB;IAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAA;IAC1E,OAAO,GAAG,CAAA;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAsB;IAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAA;IAC1E,OAAO,GAAG,CAAA;AACX,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAsB;IAC9C,MAAM,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAC3B,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,CAAA;IAC1E,OAAO,GAAG,CAAA;AACX,CAAC;AAeD;;;GAGG;AAEH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAChD,MAAM,OAAO,GAAG,GAAG;SACjB,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC;SACvB,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC;SACvB,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC;SACvB,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC;SACvB,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC;SACvB,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC;SACvB,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC;SACxB,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;SAC3B,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;SAC3B,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC;SAC3B,UAAU,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC7B,OAAO,OAAO,CAAA;AACf,CAAC;AAED;;;GAGG;AAEH,MAAM,UAAU,0BAA0B,CAAC,GAAW;IACrD,MAAM,OAAO,GAAG,GAAG;SACjB,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;SACvB,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;SACvB,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;SACvB,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;SACvB,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;SACvB,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC;SACvB,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC;SACxB,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;SAC3B,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;SAC3B,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;SAC3B,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAC7B,OAAO,OAAO,CAAA;AACf,CAAC;AAED;;GAEG;AAEH,MAAM,UAAU,gBAAgB,CAAC,EAAU,EAAE,eAAuC,EAAE;IACrF,IAAI,MAAM,GAAG,EAAE,CAAA;IAEf,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QACrE,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;IACnD,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAA;AAC/C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@companion-module/base",
3
- "version": "2.2.0",
3
+ "version": "2.2.1",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "license": "MIT",
@@ -38,8 +38,8 @@
38
38
  "lib"
39
39
  ],
40
40
  "dependencies": {
41
- "colord": "^2.9.4",
42
- "zod": "^4.4.3"
41
+ "colord": "^2.10.0",
42
+ "zod": "^4.6.5"
43
43
  },
44
44
  "devDependencies": {
45
45
  "type-testing": "^0.2.0"