@companion-module/base 1.8.0 → 1.9.0-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,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [1.8.1](https://github.com/bitfocus/companion-module-base/compare/v1.8.0...v1.8.1) (2024-07-03)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * require at least one product to be defined in manifest.schema.json ([#82](https://github.com/bitfocus/companion-module-base/issues/82)) ([7816348](https://github.com/bitfocus/companion-module-base/commit/78163482b172dddac703bea44a98f72dd43b4ca4))
9
+
3
10
  ## [1.8.0](https://github.com/bitfocus/companion-module-base/compare/v1.7.0...v1.8.0) (2024-04-26)
4
11
 
5
12
 
package/README.md CHANGED
@@ -13,7 +13,8 @@ Each version of Companion supports a limited range of versions of this library l
13
13
  | v3.0 | v1.0 - v1.4 |
14
14
  | v3.1 | v1.0 - v1.5 |
15
15
  | v3.2 | v1.0 - v1.7 |
16
- | v3.3 | v1.0 - v1.7 (unconfirmed) |
16
+ | v3.3 | v1.0 - v1.8 |
17
+ | v3.4 | v1.0 - v1.8 (unconfirmed) |
17
18
 
18
19
  ## Getting started with a new module
19
20
 
@@ -99,7 +99,8 @@
99
99
  "uniqueItems": true,
100
100
  "items": {
101
101
  "type": "string"
102
- }
102
+ },
103
+ "minItems": 1
103
104
  },
104
105
  "keywords": {
105
106
  "type": "array",
@@ -1,6 +1,5 @@
1
1
  import type { CompanionStaticUpgradeScript } from './module-api/upgrade.js';
2
2
  import type { InstanceBase } from './module-api/base.js';
3
- import '@sentry/tracing';
4
3
  export type InstanceConstructor<TConfig> = new (internal: unknown) => InstanceBase<TConfig>;
5
4
  /**
6
5
  * Setup the module for execution
@@ -1 +1 @@
1
- {"version":3,"file":"entrypoint.d.ts","sourceRoot":"","sources":["../src/entrypoint.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAIxD,OAAO,iBAAiB,CAAA;AAQxB,MAAM,MAAM,mBAAmB,CAAC,OAAO,IAAI,KAAK,QAAQ,EAAE,OAAO,KAAK,YAAY,CAAC,OAAO,CAAC,CAAA;AAe3F;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EACpC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,EACrC,cAAc,EAAE,4BAA4B,CAAC,OAAO,CAAC,EAAE,GACrD,IAAI,CAgHN"}
1
+ {"version":3,"file":"entrypoint.d.ts","sourceRoot":"","sources":["../src/entrypoint.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,yBAAyB,CAAA;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAWxD,MAAM,MAAM,mBAAmB,CAAC,OAAO,IAAI,KAAK,QAAQ,EAAE,OAAO,KAAK,YAAY,CAAC,OAAO,CAAC,CAAA;AAe3F;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EACpC,OAAO,EAAE,mBAAmB,CAAC,OAAO,CAAC,EACrC,cAAc,EAAE,4BAA4B,CAAC,OAAO,CAAC,EAAE,GACrD,IAAI,CAiHN"}
@@ -7,7 +7,6 @@ const versions_js_1 = require("./host-api/versions.js");
7
7
  const promises_1 = tslib_1.__importDefault(require("fs/promises"));
8
8
  const util_js_1 = require("./util.js");
9
9
  const node_1 = require("@sentry/node");
10
- require("@sentry/tracing");
11
10
  const ipc_wrapper_js_1 = require("./host-api/ipc-wrapper.js");
12
11
  const path_1 = tslib_1.__importDefault(require("path"));
13
12
  let hasEntrypoint = false;
@@ -91,10 +90,11 @@ function runEntrypoint(factory, upgradeScripts) {
91
90
  return event;
92
91
  },
93
92
  });
94
- (0, node_1.configureScope)((scope) => {
93
+ {
94
+ const scope = (0, node_1.getCurrentScope)();
95
95
  scope.setUser({ id: sentryUserId });
96
96
  scope.setTag('companion', sentryCompanionVersion);
97
- });
97
+ }
98
98
  }
99
99
  else {
100
100
  console.log('Sentry disabled');
@@ -1 +1 @@
1
- {"version":3,"file":"entrypoint.js","sourceRoot":"","sources":["../src/entrypoint.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entrypoint.js","sourceRoot":"","sources":["../src/entrypoint.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../../src/module-api/preset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,eAAe,CAAA;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAE3D;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC5C,0EAA0E;IAC1E,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,8DAA8D;IAC9D,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,uCAAuC;IACvC,OAAO,EAAE,qBAAqB,CAAA;IAC9B;;OAEG;IACH,KAAK,CAAC,EAAE,kCAAkC,CAAA;IAC1C;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,uCAAuC;IACvC,OAAO,EAAE,qBAAqB,CAAA;CAC9B;AAED,MAAM,MAAM,yBAAyB,GAAG,+BAA+B,GAAG,6BAA6B,CAAA;AAEvG;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC/C,8BAA8B;IAC9B,IAAI,EAAE,QAAQ,CAAA;IACd,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAA;IAChB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,uEAAuE;IACvE,KAAK,EAAE,yBAAyB,CAAA;IAChC,gEAAgE;IAChE,YAAY,CAAC,EAAE,yBAAyB,CAAA;IACxC,8BAA8B;IAC9B,OAAO,CAAC,EAAE,4BAA4B,CAAA;IACtC,kCAAkC;IAClC,SAAS,EAAE,uBAAuB,EAAE,CAAA;IACpC,KAAK,EAAE,0BAA0B,EAAE,CAAA;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC5C,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAA;IAChB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAA;CACb;AAED,MAAM,WAAW,iCAAiC;IACjD,OAAO,CAAC,EAAE,yBAAyB,CAAA;IACnC,OAAO,EAAE,qBAAqB,EAAE,CAAA;CAChC;AACD,MAAM,WAAW,yBAAyB;IACzC,YAAY,CAAC,EAAE,OAAO,CAAA;CACtB;AACD,MAAM,WAAW,0BAA0B;IAC1C,8BAA8B;IAC9B,IAAI,EAAE,qBAAqB,EAAE,CAAA;IAC7B,4BAA4B;IAC5B,EAAE,EAAE,qBAAqB,EAAE,CAAA;IAE3B,WAAW,CAAC,EAAE,qBAAqB,EAAE,CAAA;IACrC,YAAY,CAAC,EAAE,qBAAqB,EAAE,CAAA;IAEtC,CAAC,KAAK,EAAE,MAAM,GAAG,iCAAiC,GAAG,qBAAqB,EAAE,CAAA;CAC5E;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IAC1C,CAAC,EAAE,EAAE,MAAM,GAAG,+BAA+B,GAAG,6BAA6B,GAAG,SAAS,CAAA;CACzF"}
1
+ {"version":3,"file":"preset.d.ts","sourceRoot":"","sources":["../../src/module-api/preset.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kCAAkC,EAAE,MAAM,eAAe,CAAA;AACvE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AACvD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAA;AAE3D;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC5C,0EAA0E;IAC1E,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,8DAA8D;IAC9D,aAAa,CAAC,EAAE,OAAO,CAAA;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACvC,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAA;IAClB,uCAAuC;IACvC,OAAO,EAAE,qBAAqB,CAAA;IAC9B;;OAEG;IACH,KAAK,CAAC,EAAE,kCAAkC,CAAA;IAC1C;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAA;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACrC,sCAAsC;IACtC,QAAQ,EAAE,MAAM,CAAA;IAChB,wCAAwC;IACxC,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,uCAAuC;IACvC,OAAO,EAAE,qBAAqB,CAAA;CAC9B;AAED,MAAM,MAAM,yBAAyB,GAAG,+BAA+B,GAAG,6BAA6B,CAAA;AAEvG;;GAEG;AACH,MAAM,WAAW,+BAA+B;IAC/C,8BAA8B;IAC9B,IAAI,EAAE,QAAQ,CAAA;IACd,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAA;IAChB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,uEAAuE;IACvE,KAAK,EAAE,yBAAyB,CAAA;IAChC,gEAAgE;IAChE,YAAY,CAAC,EAAE,yBAAyB,CAAA;IACxC,8BAA8B;IAC9B,OAAO,CAAC,EAAE,4BAA4B,CAAA;IACtC,kCAAkC;IAClC,SAAS,EAAE,uBAAuB,EAAE,CAAA;IACpC,KAAK,EAAE,0BAA0B,EAAE,CAAA;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,6BAA6B;IAC7C,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAA;IAChB,8BAA8B;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,0BAA0B;IAC1B,IAAI,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,iCAAiC;IACjD,OAAO,CAAC,EAAE,yBAAyB,CAAA;IACnC,OAAO,EAAE,qBAAqB,EAAE,CAAA;CAChC;AACD,MAAM,WAAW,yBAAyB;IACzC,YAAY,CAAC,EAAE,OAAO,CAAA;CACtB;AACD,MAAM,WAAW,0BAA0B;IAC1C,8BAA8B;IAC9B,IAAI,EAAE,qBAAqB,EAAE,CAAA;IAC7B,4BAA4B;IAC5B,EAAE,EAAE,qBAAqB,EAAE,CAAA;IAE3B,WAAW,CAAC,EAAE,qBAAqB,EAAE,CAAA;IACrC,YAAY,CAAC,EAAE,qBAAqB,EAAE,CAAA;IAEtC,CAAC,KAAK,EAAE,MAAM,GAAG,iCAAiC,GAAG,qBAAqB,EAAE,CAAA;CAC5E;AAED;;GAEG;AACH,MAAM,WAAW,0BAA0B;IAC1C,CAAC,EAAE,EAAE,MAAM,GAAG,+BAA+B,GAAG,6BAA6B,GAAG,SAAS,CAAA;CACzF"}
@@ -46,7 +46,10 @@ export interface ModuleManifest {
46
46
  legacyIds: string[];
47
47
  runtime: ModuleManifestRuntime;
48
48
  manufacturer: string;
49
- products: string[];
49
+ /**
50
+ * @minItems 1
51
+ */
52
+ products: [string, ...string[]];
50
53
  keywords: string[];
51
54
  /**
52
55
  * If the device or software for your module supports bonjour announcements, Companion will offer an easy way to watch for these announcements.
@@ -1 +1 @@
1
- "use strict";module.exports = validate20;module.exports.default = validate20;const schema22 = {"$schema":"http://json-schema.org/draft-07/schema#","type":"object","title":"ModuleManifest","properties":{"$schema":{"type":"string"},"id":{"type":"string","description":"Unique identifier for the module"},"name":{"type":"string","description":"Name of the module"},"shortname":{"type":"string"},"description":{"type":"string","description":"Description of the module "},"version":{"type":"string","description":"Current version of the module"},"license":{"type":"string","description":"SPDX identifier for license of the module"},"repository":{"type":"string","description":"URL to the source repository"},"bugs":{"type":"string","description":"URL to bug tracker"},"maintainers":{"type":"array","description":"List of active maintiners","uniqueItems":true,"items":{"type":"object","title":"ModuleManifestMaintainer","properties":{"name":{"type":"string"},"email":{"type":"string"},"github":{"type":"string"}},"required":["name"]}},"legacyIds":{"type":"array","description":"If the module had a different unique identifier previously, then specify it here","uniqueItems":true,"items":{"type":"string"}},"runtime":{"type":"object","title":"ModuleManifestRuntime","description":"Information on how to execute the module","properties":{"type":{"type":"string","description":"Type of the module. Must be: node18"},"api":{"type":"string","description":"Which host-api does it use. In the future alternate options will be allowed","enum":["nodejs-ipc"]},"apiVersion":{"type":"string","description":"The version of the host-api used"},"entrypoint":{"type":"string","description":"Entrypoint to pass to the runtime. eg index.js"}},"required":["type","api","apiVersion","entrypoint"]},"manufacturer":{"type":"string"},"products":{"type":"array","uniqueItems":true,"items":{"type":"string"}},"keywords":{"type":"array","uniqueItems":true,"items":{"type":"string"}},"bonjourQueries":{"type":"object","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","patternProperties":{"":{"type":"object","title":"ModuleBonjourQuery","description":"","properties":{"type":{"type":"string"},"protocol":{"type":"string","enum":["tcp","udp"]},"txt":{"type":"object","description":"Match on any txt values returned in the query. This is useful to filter out devices of the same 'type' that are not supported","patternProperties":{"":{"type":"string"}},"additionalProperties":false}},"required":["type","protocol"],"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false,"required":["id","name","shortname","description","version","license","repository","bugs","maintainers","legacyIds","runtime","manufacturer","products","keywords"]};const func4 = Object.prototype.hasOwnProperty;const func0 = require("ajv/dist/runtime/equal").default;const pattern0 = new RegExp("", "u");function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data}={}){let vErrors = null;let errors = 0;if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((((((((((((((data.id === undefined) && (missing0 = "id")) || ((data.name === undefined) && (missing0 = "name"))) || ((data.shortname === undefined) && (missing0 = "shortname"))) || ((data.description === undefined) && (missing0 = "description"))) || ((data.version === undefined) && (missing0 = "version"))) || ((data.license === undefined) && (missing0 = "license"))) || ((data.repository === undefined) && (missing0 = "repository"))) || ((data.bugs === undefined) && (missing0 = "bugs"))) || ((data.maintainers === undefined) && (missing0 = "maintainers"))) || ((data.legacyIds === undefined) && (missing0 = "legacyIds"))) || ((data.runtime === undefined) && (missing0 = "runtime"))) || ((data.manufacturer === undefined) && (missing0 = "manufacturer"))) || ((data.products === undefined) && (missing0 = "products"))) || ((data.keywords === undefined) && (missing0 = "keywords"))){validate20.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(func4.call(schema22.properties, key0))){validate20.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.$schema !== undefined){const _errs2 = errors;if(typeof data.$schema !== "string"){validate20.errors = [{instancePath:instancePath+"/$schema",schemaPath:"#/properties/%24schema/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.id !== undefined){const _errs4 = errors;if(typeof data.id !== "string"){validate20.errors = [{instancePath:instancePath+"/id",schemaPath:"#/properties/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs4 === errors;}else {var valid0 = true;}if(valid0){if(data.name !== undefined){const _errs6 = errors;if(typeof data.name !== "string"){validate20.errors = [{instancePath:instancePath+"/name",schemaPath:"#/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs6 === errors;}else {var valid0 = true;}if(valid0){if(data.shortname !== undefined){const _errs8 = errors;if(typeof data.shortname !== "string"){validate20.errors = [{instancePath:instancePath+"/shortname",schemaPath:"#/properties/shortname/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs8 === errors;}else {var valid0 = true;}if(valid0){if(data.description !== undefined){const _errs10 = errors;if(typeof data.description !== "string"){validate20.errors = [{instancePath:instancePath+"/description",schemaPath:"#/properties/description/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs10 === errors;}else {var valid0 = true;}if(valid0){if(data.version !== undefined){const _errs12 = errors;if(typeof data.version !== "string"){validate20.errors = [{instancePath:instancePath+"/version",schemaPath:"#/properties/version/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs12 === errors;}else {var valid0 = true;}if(valid0){if(data.license !== undefined){const _errs14 = errors;if(typeof data.license !== "string"){validate20.errors = [{instancePath:instancePath+"/license",schemaPath:"#/properties/license/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs14 === errors;}else {var valid0 = true;}if(valid0){if(data.repository !== undefined){const _errs16 = errors;if(typeof data.repository !== "string"){validate20.errors = [{instancePath:instancePath+"/repository",schemaPath:"#/properties/repository/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs16 === errors;}else {var valid0 = true;}if(valid0){if(data.bugs !== undefined){const _errs18 = errors;if(typeof data.bugs !== "string"){validate20.errors = [{instancePath:instancePath+"/bugs",schemaPath:"#/properties/bugs/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs18 === errors;}else {var valid0 = true;}if(valid0){if(data.maintainers !== undefined){let data9 = data.maintainers;const _errs20 = errors;if(errors === _errs20){if(Array.isArray(data9)){var valid1 = true;const len0 = data9.length;for(let i0=0; i0<len0; i0++){let data10 = data9[i0];const _errs22 = errors;if(errors === _errs22){if(data10 && typeof data10 == "object" && !Array.isArray(data10)){let missing1;if((data10.name === undefined) && (missing1 = "name")){validate20.errors = [{instancePath:instancePath+"/maintainers/" + i0,schemaPath:"#/properties/maintainers/items/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {if(data10.name !== undefined){const _errs24 = errors;if(typeof data10.name !== "string"){validate20.errors = [{instancePath:instancePath+"/maintainers/" + i0+"/name",schemaPath:"#/properties/maintainers/items/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid2 = _errs24 === errors;}else {var valid2 = true;}if(valid2){if(data10.email !== undefined){const _errs26 = errors;if(typeof data10.email !== "string"){validate20.errors = [{instancePath:instancePath+"/maintainers/" + i0+"/email",schemaPath:"#/properties/maintainers/items/properties/email/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid2 = _errs26 === errors;}else {var valid2 = true;}if(valid2){if(data10.github !== undefined){const _errs28 = errors;if(typeof data10.github !== "string"){validate20.errors = [{instancePath:instancePath+"/maintainers/" + i0+"/github",schemaPath:"#/properties/maintainers/items/properties/github/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid2 = _errs28 === errors;}else {var valid2 = true;}}}}}else {validate20.errors = [{instancePath:instancePath+"/maintainers/" + i0,schemaPath:"#/properties/maintainers/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid1 = _errs22 === errors;if(!valid1){break;}}if(valid1){let i1 = data9.length;let j0;if(i1 > 1){outer0:for(;i1--;){for(j0 = i1; j0--;){if(func0(data9[i1], data9[j0])){validate20.errors = [{instancePath:instancePath+"/maintainers",schemaPath:"#/properties/maintainers/uniqueItems",keyword:"uniqueItems",params:{i: i1, j: j0},message:"must NOT have duplicate items (items ## "+j0+" and "+i1+" are identical)"}];return false;break outer0;}}}}}}else {validate20.errors = [{instancePath:instancePath+"/maintainers",schemaPath:"#/properties/maintainers/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs20 === errors;}else {var valid0 = true;}if(valid0){if(data.legacyIds !== undefined){let data14 = data.legacyIds;const _errs30 = errors;if(errors === _errs30){if(Array.isArray(data14)){var valid4 = true;const len1 = data14.length;for(let i2=0; i2<len1; i2++){const _errs32 = errors;if(typeof data14[i2] !== "string"){validate20.errors = [{instancePath:instancePath+"/legacyIds/" + i2,schemaPath:"#/properties/legacyIds/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid4 = _errs32 === errors;if(!valid4){break;}}if(valid4){let i3 = data14.length;let j1;if(i3 > 1){const indices0 = {};for(;i3--;){let item0 = data14[i3];if(typeof item0 !== "string"){continue;}if(typeof indices0[item0] == "number"){j1 = indices0[item0];validate20.errors = [{instancePath:instancePath+"/legacyIds",schemaPath:"#/properties/legacyIds/uniqueItems",keyword:"uniqueItems",params:{i: i3, j: j1},message:"must NOT have duplicate items (items ## "+j1+" and "+i3+" are identical)"}];return false;break;}indices0[item0] = i3;}}}}else {validate20.errors = [{instancePath:instancePath+"/legacyIds",schemaPath:"#/properties/legacyIds/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs30 === errors;}else {var valid0 = true;}if(valid0){if(data.runtime !== undefined){let data16 = data.runtime;const _errs34 = errors;if(errors === _errs34){if(data16 && typeof data16 == "object" && !Array.isArray(data16)){let missing2;if(((((data16.type === undefined) && (missing2 = "type")) || ((data16.api === undefined) && (missing2 = "api"))) || ((data16.apiVersion === undefined) && (missing2 = "apiVersion"))) || ((data16.entrypoint === undefined) && (missing2 = "entrypoint"))){validate20.errors = [{instancePath:instancePath+"/runtime",schemaPath:"#/properties/runtime/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {if(data16.type !== undefined){const _errs36 = errors;if(typeof data16.type !== "string"){validate20.errors = [{instancePath:instancePath+"/runtime/type",schemaPath:"#/properties/runtime/properties/type/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid6 = _errs36 === errors;}else {var valid6 = true;}if(valid6){if(data16.api !== undefined){let data18 = data16.api;const _errs38 = errors;if(typeof data18 !== "string"){validate20.errors = [{instancePath:instancePath+"/runtime/api",schemaPath:"#/properties/runtime/properties/api/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}if(!(data18 === "nodejs-ipc")){validate20.errors = [{instancePath:instancePath+"/runtime/api",schemaPath:"#/properties/runtime/properties/api/enum",keyword:"enum",params:{allowedValues: schema22.properties.runtime.properties.api.enum},message:"must be equal to one of the allowed values"}];return false;}var valid6 = _errs38 === errors;}else {var valid6 = true;}if(valid6){if(data16.apiVersion !== undefined){const _errs40 = errors;if(typeof data16.apiVersion !== "string"){validate20.errors = [{instancePath:instancePath+"/runtime/apiVersion",schemaPath:"#/properties/runtime/properties/apiVersion/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid6 = _errs40 === errors;}else {var valid6 = true;}if(valid6){if(data16.entrypoint !== undefined){const _errs42 = errors;if(typeof data16.entrypoint !== "string"){validate20.errors = [{instancePath:instancePath+"/runtime/entrypoint",schemaPath:"#/properties/runtime/properties/entrypoint/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid6 = _errs42 === errors;}else {var valid6 = true;}}}}}}else {validate20.errors = [{instancePath:instancePath+"/runtime",schemaPath:"#/properties/runtime/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs34 === errors;}else {var valid0 = true;}if(valid0){if(data.manufacturer !== undefined){const _errs44 = errors;if(typeof data.manufacturer !== "string"){validate20.errors = [{instancePath:instancePath+"/manufacturer",schemaPath:"#/properties/manufacturer/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs44 === errors;}else {var valid0 = true;}if(valid0){if(data.products !== undefined){let data22 = data.products;const _errs46 = errors;if(errors === _errs46){if(Array.isArray(data22)){var valid7 = true;const len2 = data22.length;for(let i4=0; i4<len2; i4++){const _errs48 = errors;if(typeof data22[i4] !== "string"){validate20.errors = [{instancePath:instancePath+"/products/" + i4,schemaPath:"#/properties/products/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid7 = _errs48 === errors;if(!valid7){break;}}if(valid7){let i5 = data22.length;let j2;if(i5 > 1){const indices1 = {};for(;i5--;){let item1 = data22[i5];if(typeof item1 !== "string"){continue;}if(typeof indices1[item1] == "number"){j2 = indices1[item1];validate20.errors = [{instancePath:instancePath+"/products",schemaPath:"#/properties/products/uniqueItems",keyword:"uniqueItems",params:{i: i5, j: j2},message:"must NOT have duplicate items (items ## "+j2+" and "+i5+" are identical)"}];return false;break;}indices1[item1] = i5;}}}}else {validate20.errors = [{instancePath:instancePath+"/products",schemaPath:"#/properties/products/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs46 === errors;}else {var valid0 = true;}if(valid0){if(data.keywords !== undefined){let data24 = data.keywords;const _errs50 = errors;if(errors === _errs50){if(Array.isArray(data24)){var valid9 = true;const len3 = data24.length;for(let i6=0; i6<len3; i6++){const _errs52 = errors;if(typeof data24[i6] !== "string"){validate20.errors = [{instancePath:instancePath+"/keywords/" + i6,schemaPath:"#/properties/keywords/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid9 = _errs52 === errors;if(!valid9){break;}}if(valid9){let i7 = data24.length;let j3;if(i7 > 1){const indices2 = {};for(;i7--;){let item2 = data24[i7];if(typeof item2 !== "string"){continue;}if(typeof indices2[item2] == "number"){j3 = indices2[item2];validate20.errors = [{instancePath:instancePath+"/keywords",schemaPath:"#/properties/keywords/uniqueItems",keyword:"uniqueItems",params:{i: i7, j: j3},message:"must NOT have duplicate items (items ## "+j3+" and "+i7+" are identical)"}];return false;break;}indices2[item2] = i7;}}}}else {validate20.errors = [{instancePath:instancePath+"/keywords",schemaPath:"#/properties/keywords/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs50 === errors;}else {var valid0 = true;}if(valid0){if(data.bonjourQueries !== undefined){let data26 = data.bonjourQueries;const _errs54 = errors;if(errors === _errs54){if(data26 && typeof data26 == "object" && !Array.isArray(data26)){const _errs56 = errors;for(const key1 in data26){if(!(pattern0.test(key1))){validate20.errors = [{instancePath:instancePath+"/bonjourQueries",schemaPath:"#/properties/bonjourQueries/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs56 === errors){var valid11 = true;for(const key2 in data26){if(pattern0.test(key2)){let data27 = data26[key2];const _errs57 = errors;if(errors === _errs57){if(data27 && typeof data27 == "object" && !Array.isArray(data27)){let missing3;if(((data27.type === undefined) && (missing3 = "type")) || ((data27.protocol === undefined) && (missing3 = "protocol"))){validate20.errors = [{instancePath:instancePath+"/bonjourQueries/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/bonjourQueries/patternProperties//required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"}];return false;}else {const _errs59 = errors;for(const key3 in data27){if(!(((key3 === "type") || (key3 === "protocol")) || (key3 === "txt"))){validate20.errors = [{instancePath:instancePath+"/bonjourQueries/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/bonjourQueries/patternProperties//additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs59 === errors){if(data27.type !== undefined){const _errs60 = errors;if(typeof data27.type !== "string"){validate20.errors = [{instancePath:instancePath+"/bonjourQueries/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/type",schemaPath:"#/properties/bonjourQueries/patternProperties//properties/type/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid12 = _errs60 === errors;}else {var valid12 = true;}if(valid12){if(data27.protocol !== undefined){let data29 = data27.protocol;const _errs62 = errors;if(typeof data29 !== "string"){validate20.errors = [{instancePath:instancePath+"/bonjourQueries/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/protocol",schemaPath:"#/properties/bonjourQueries/patternProperties//properties/protocol/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}if(!((data29 === "tcp") || (data29 === "udp"))){validate20.errors = [{instancePath:instancePath+"/bonjourQueries/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/protocol",schemaPath:"#/properties/bonjourQueries/patternProperties//properties/protocol/enum",keyword:"enum",params:{allowedValues: schema22.properties.bonjourQueries.patternProperties[""].properties.protocol.enum},message:"must be equal to one of the allowed values"}];return false;}var valid12 = _errs62 === errors;}else {var valid12 = true;}if(valid12){if(data27.txt !== undefined){let data30 = data27.txt;const _errs64 = errors;if(errors === _errs64){if(data30 && typeof data30 == "object" && !Array.isArray(data30)){const _errs66 = errors;for(const key4 in data30){if(!(pattern0.test(key4))){validate20.errors = [{instancePath:instancePath+"/bonjourQueries/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/txt",schemaPath:"#/properties/bonjourQueries/patternProperties//properties/txt/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key4},message:"must NOT have additional properties"}];return false;break;}}if(_errs66 === errors){var valid13 = true;for(const key5 in data30){if(pattern0.test(key5)){const _errs67 = errors;if(typeof data30[key5] !== "string"){validate20.errors = [{instancePath:instancePath+"/bonjourQueries/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/txt/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/bonjourQueries/patternProperties//properties/txt/patternProperties//type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid13 = _errs67 === errors;if(!valid13){break;}}}}}else {validate20.errors = [{instancePath:instancePath+"/bonjourQueries/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/txt",schemaPath:"#/properties/bonjourQueries/patternProperties//properties/txt/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid12 = _errs64 === errors;}else {var valid12 = true;}}}}}}else {validate20.errors = [{instancePath:instancePath+"/bonjourQueries/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/bonjourQueries/patternProperties//type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid11 = _errs57 === errors;if(!valid11){break;}}}}}else {validate20.errors = [{instancePath:instancePath+"/bonjourQueries",schemaPath:"#/properties/bonjourQueries/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs54 === errors;}else {var valid0 = true;}}}}}}}}}}}}}}}}}}}else {validate20.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate20.errors = vErrors;return errors === 0;}
1
+ "use strict";module.exports = validate20;module.exports.default = validate20;const schema22 = {"$schema":"http://json-schema.org/draft-07/schema#","type":"object","title":"ModuleManifest","properties":{"$schema":{"type":"string"},"id":{"type":"string","description":"Unique identifier for the module"},"name":{"type":"string","description":"Name of the module"},"shortname":{"type":"string"},"description":{"type":"string","description":"Description of the module "},"version":{"type":"string","description":"Current version of the module"},"license":{"type":"string","description":"SPDX identifier for license of the module"},"repository":{"type":"string","description":"URL to the source repository"},"bugs":{"type":"string","description":"URL to bug tracker"},"maintainers":{"type":"array","description":"List of active maintiners","uniqueItems":true,"items":{"type":"object","title":"ModuleManifestMaintainer","properties":{"name":{"type":"string"},"email":{"type":"string"},"github":{"type":"string"}},"required":["name"]}},"legacyIds":{"type":"array","description":"If the module had a different unique identifier previously, then specify it here","uniqueItems":true,"items":{"type":"string"}},"runtime":{"type":"object","title":"ModuleManifestRuntime","description":"Information on how to execute the module","properties":{"type":{"type":"string","description":"Type of the module. Must be: node18"},"api":{"type":"string","description":"Which host-api does it use. In the future alternate options will be allowed","enum":["nodejs-ipc"]},"apiVersion":{"type":"string","description":"The version of the host-api used"},"entrypoint":{"type":"string","description":"Entrypoint to pass to the runtime. eg index.js"}},"required":["type","api","apiVersion","entrypoint"]},"manufacturer":{"type":"string"},"products":{"type":"array","uniqueItems":true,"items":{"type":"string"},"minItems":1},"keywords":{"type":"array","uniqueItems":true,"items":{"type":"string"}},"bonjourQueries":{"type":"object","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","patternProperties":{"":{"type":"object","title":"ModuleBonjourQuery","description":"","properties":{"type":{"type":"string"},"protocol":{"type":"string","enum":["tcp","udp"]},"txt":{"type":"object","description":"Match on any txt values returned in the query. This is useful to filter out devices of the same 'type' that are not supported","patternProperties":{"":{"type":"string"}},"additionalProperties":false}},"required":["type","protocol"],"additionalProperties":false}},"additionalProperties":false}},"additionalProperties":false,"required":["id","name","shortname","description","version","license","repository","bugs","maintainers","legacyIds","runtime","manufacturer","products","keywords"]};const func4 = Object.prototype.hasOwnProperty;const func0 = require("ajv/dist/runtime/equal").default;const pattern0 = new RegExp("", "u");function validate20(data, {instancePath="", parentData, parentDataProperty, rootData=data}={}){let vErrors = null;let errors = 0;if(errors === 0){if(data && typeof data == "object" && !Array.isArray(data)){let missing0;if(((((((((((((((data.id === undefined) && (missing0 = "id")) || ((data.name === undefined) && (missing0 = "name"))) || ((data.shortname === undefined) && (missing0 = "shortname"))) || ((data.description === undefined) && (missing0 = "description"))) || ((data.version === undefined) && (missing0 = "version"))) || ((data.license === undefined) && (missing0 = "license"))) || ((data.repository === undefined) && (missing0 = "repository"))) || ((data.bugs === undefined) && (missing0 = "bugs"))) || ((data.maintainers === undefined) && (missing0 = "maintainers"))) || ((data.legacyIds === undefined) && (missing0 = "legacyIds"))) || ((data.runtime === undefined) && (missing0 = "runtime"))) || ((data.manufacturer === undefined) && (missing0 = "manufacturer"))) || ((data.products === undefined) && (missing0 = "products"))) || ((data.keywords === undefined) && (missing0 = "keywords"))){validate20.errors = [{instancePath,schemaPath:"#/required",keyword:"required",params:{missingProperty: missing0},message:"must have required property '"+missing0+"'"}];return false;}else {const _errs1 = errors;for(const key0 in data){if(!(func4.call(schema22.properties, key0))){validate20.errors = [{instancePath,schemaPath:"#/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key0},message:"must NOT have additional properties"}];return false;break;}}if(_errs1 === errors){if(data.$schema !== undefined){const _errs2 = errors;if(typeof data.$schema !== "string"){validate20.errors = [{instancePath:instancePath+"/$schema",schemaPath:"#/properties/%24schema/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs2 === errors;}else {var valid0 = true;}if(valid0){if(data.id !== undefined){const _errs4 = errors;if(typeof data.id !== "string"){validate20.errors = [{instancePath:instancePath+"/id",schemaPath:"#/properties/id/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs4 === errors;}else {var valid0 = true;}if(valid0){if(data.name !== undefined){const _errs6 = errors;if(typeof data.name !== "string"){validate20.errors = [{instancePath:instancePath+"/name",schemaPath:"#/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs6 === errors;}else {var valid0 = true;}if(valid0){if(data.shortname !== undefined){const _errs8 = errors;if(typeof data.shortname !== "string"){validate20.errors = [{instancePath:instancePath+"/shortname",schemaPath:"#/properties/shortname/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs8 === errors;}else {var valid0 = true;}if(valid0){if(data.description !== undefined){const _errs10 = errors;if(typeof data.description !== "string"){validate20.errors = [{instancePath:instancePath+"/description",schemaPath:"#/properties/description/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs10 === errors;}else {var valid0 = true;}if(valid0){if(data.version !== undefined){const _errs12 = errors;if(typeof data.version !== "string"){validate20.errors = [{instancePath:instancePath+"/version",schemaPath:"#/properties/version/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs12 === errors;}else {var valid0 = true;}if(valid0){if(data.license !== undefined){const _errs14 = errors;if(typeof data.license !== "string"){validate20.errors = [{instancePath:instancePath+"/license",schemaPath:"#/properties/license/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs14 === errors;}else {var valid0 = true;}if(valid0){if(data.repository !== undefined){const _errs16 = errors;if(typeof data.repository !== "string"){validate20.errors = [{instancePath:instancePath+"/repository",schemaPath:"#/properties/repository/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs16 === errors;}else {var valid0 = true;}if(valid0){if(data.bugs !== undefined){const _errs18 = errors;if(typeof data.bugs !== "string"){validate20.errors = [{instancePath:instancePath+"/bugs",schemaPath:"#/properties/bugs/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs18 === errors;}else {var valid0 = true;}if(valid0){if(data.maintainers !== undefined){let data9 = data.maintainers;const _errs20 = errors;if(errors === _errs20){if(Array.isArray(data9)){var valid1 = true;const len0 = data9.length;for(let i0=0; i0<len0; i0++){let data10 = data9[i0];const _errs22 = errors;if(errors === _errs22){if(data10 && typeof data10 == "object" && !Array.isArray(data10)){let missing1;if((data10.name === undefined) && (missing1 = "name")){validate20.errors = [{instancePath:instancePath+"/maintainers/" + i0,schemaPath:"#/properties/maintainers/items/required",keyword:"required",params:{missingProperty: missing1},message:"must have required property '"+missing1+"'"}];return false;}else {if(data10.name !== undefined){const _errs24 = errors;if(typeof data10.name !== "string"){validate20.errors = [{instancePath:instancePath+"/maintainers/" + i0+"/name",schemaPath:"#/properties/maintainers/items/properties/name/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid2 = _errs24 === errors;}else {var valid2 = true;}if(valid2){if(data10.email !== undefined){const _errs26 = errors;if(typeof data10.email !== "string"){validate20.errors = [{instancePath:instancePath+"/maintainers/" + i0+"/email",schemaPath:"#/properties/maintainers/items/properties/email/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid2 = _errs26 === errors;}else {var valid2 = true;}if(valid2){if(data10.github !== undefined){const _errs28 = errors;if(typeof data10.github !== "string"){validate20.errors = [{instancePath:instancePath+"/maintainers/" + i0+"/github",schemaPath:"#/properties/maintainers/items/properties/github/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid2 = _errs28 === errors;}else {var valid2 = true;}}}}}else {validate20.errors = [{instancePath:instancePath+"/maintainers/" + i0,schemaPath:"#/properties/maintainers/items/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid1 = _errs22 === errors;if(!valid1){break;}}if(valid1){let i1 = data9.length;let j0;if(i1 > 1){outer0:for(;i1--;){for(j0 = i1; j0--;){if(func0(data9[i1], data9[j0])){validate20.errors = [{instancePath:instancePath+"/maintainers",schemaPath:"#/properties/maintainers/uniqueItems",keyword:"uniqueItems",params:{i: i1, j: j0},message:"must NOT have duplicate items (items ## "+j0+" and "+i1+" are identical)"}];return false;break outer0;}}}}}}else {validate20.errors = [{instancePath:instancePath+"/maintainers",schemaPath:"#/properties/maintainers/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs20 === errors;}else {var valid0 = true;}if(valid0){if(data.legacyIds !== undefined){let data14 = data.legacyIds;const _errs30 = errors;if(errors === _errs30){if(Array.isArray(data14)){var valid4 = true;const len1 = data14.length;for(let i2=0; i2<len1; i2++){const _errs32 = errors;if(typeof data14[i2] !== "string"){validate20.errors = [{instancePath:instancePath+"/legacyIds/" + i2,schemaPath:"#/properties/legacyIds/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid4 = _errs32 === errors;if(!valid4){break;}}if(valid4){let i3 = data14.length;let j1;if(i3 > 1){const indices0 = {};for(;i3--;){let item0 = data14[i3];if(typeof item0 !== "string"){continue;}if(typeof indices0[item0] == "number"){j1 = indices0[item0];validate20.errors = [{instancePath:instancePath+"/legacyIds",schemaPath:"#/properties/legacyIds/uniqueItems",keyword:"uniqueItems",params:{i: i3, j: j1},message:"must NOT have duplicate items (items ## "+j1+" and "+i3+" are identical)"}];return false;break;}indices0[item0] = i3;}}}}else {validate20.errors = [{instancePath:instancePath+"/legacyIds",schemaPath:"#/properties/legacyIds/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs30 === errors;}else {var valid0 = true;}if(valid0){if(data.runtime !== undefined){let data16 = data.runtime;const _errs34 = errors;if(errors === _errs34){if(data16 && typeof data16 == "object" && !Array.isArray(data16)){let missing2;if(((((data16.type === undefined) && (missing2 = "type")) || ((data16.api === undefined) && (missing2 = "api"))) || ((data16.apiVersion === undefined) && (missing2 = "apiVersion"))) || ((data16.entrypoint === undefined) && (missing2 = "entrypoint"))){validate20.errors = [{instancePath:instancePath+"/runtime",schemaPath:"#/properties/runtime/required",keyword:"required",params:{missingProperty: missing2},message:"must have required property '"+missing2+"'"}];return false;}else {if(data16.type !== undefined){const _errs36 = errors;if(typeof data16.type !== "string"){validate20.errors = [{instancePath:instancePath+"/runtime/type",schemaPath:"#/properties/runtime/properties/type/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid6 = _errs36 === errors;}else {var valid6 = true;}if(valid6){if(data16.api !== undefined){let data18 = data16.api;const _errs38 = errors;if(typeof data18 !== "string"){validate20.errors = [{instancePath:instancePath+"/runtime/api",schemaPath:"#/properties/runtime/properties/api/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}if(!(data18 === "nodejs-ipc")){validate20.errors = [{instancePath:instancePath+"/runtime/api",schemaPath:"#/properties/runtime/properties/api/enum",keyword:"enum",params:{allowedValues: schema22.properties.runtime.properties.api.enum},message:"must be equal to one of the allowed values"}];return false;}var valid6 = _errs38 === errors;}else {var valid6 = true;}if(valid6){if(data16.apiVersion !== undefined){const _errs40 = errors;if(typeof data16.apiVersion !== "string"){validate20.errors = [{instancePath:instancePath+"/runtime/apiVersion",schemaPath:"#/properties/runtime/properties/apiVersion/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid6 = _errs40 === errors;}else {var valid6 = true;}if(valid6){if(data16.entrypoint !== undefined){const _errs42 = errors;if(typeof data16.entrypoint !== "string"){validate20.errors = [{instancePath:instancePath+"/runtime/entrypoint",schemaPath:"#/properties/runtime/properties/entrypoint/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid6 = _errs42 === errors;}else {var valid6 = true;}}}}}}else {validate20.errors = [{instancePath:instancePath+"/runtime",schemaPath:"#/properties/runtime/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs34 === errors;}else {var valid0 = true;}if(valid0){if(data.manufacturer !== undefined){const _errs44 = errors;if(typeof data.manufacturer !== "string"){validate20.errors = [{instancePath:instancePath+"/manufacturer",schemaPath:"#/properties/manufacturer/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid0 = _errs44 === errors;}else {var valid0 = true;}if(valid0){if(data.products !== undefined){let data22 = data.products;const _errs46 = errors;if(errors === _errs46){if(Array.isArray(data22)){if(data22.length < 1){validate20.errors = [{instancePath:instancePath+"/products",schemaPath:"#/properties/products/minItems",keyword:"minItems",params:{limit: 1},message:"must NOT have fewer than 1 items"}];return false;}else {var valid7 = true;const len2 = data22.length;for(let i4=0; i4<len2; i4++){const _errs48 = errors;if(typeof data22[i4] !== "string"){validate20.errors = [{instancePath:instancePath+"/products/" + i4,schemaPath:"#/properties/products/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid7 = _errs48 === errors;if(!valid7){break;}}if(valid7){let i5 = data22.length;let j2;if(i5 > 1){const indices1 = {};for(;i5--;){let item1 = data22[i5];if(typeof item1 !== "string"){continue;}if(typeof indices1[item1] == "number"){j2 = indices1[item1];validate20.errors = [{instancePath:instancePath+"/products",schemaPath:"#/properties/products/uniqueItems",keyword:"uniqueItems",params:{i: i5, j: j2},message:"must NOT have duplicate items (items ## "+j2+" and "+i5+" are identical)"}];return false;break;}indices1[item1] = i5;}}}}}else {validate20.errors = [{instancePath:instancePath+"/products",schemaPath:"#/properties/products/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs46 === errors;}else {var valid0 = true;}if(valid0){if(data.keywords !== undefined){let data24 = data.keywords;const _errs50 = errors;if(errors === _errs50){if(Array.isArray(data24)){var valid9 = true;const len3 = data24.length;for(let i6=0; i6<len3; i6++){const _errs52 = errors;if(typeof data24[i6] !== "string"){validate20.errors = [{instancePath:instancePath+"/keywords/" + i6,schemaPath:"#/properties/keywords/items/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid9 = _errs52 === errors;if(!valid9){break;}}if(valid9){let i7 = data24.length;let j3;if(i7 > 1){const indices2 = {};for(;i7--;){let item2 = data24[i7];if(typeof item2 !== "string"){continue;}if(typeof indices2[item2] == "number"){j3 = indices2[item2];validate20.errors = [{instancePath:instancePath+"/keywords",schemaPath:"#/properties/keywords/uniqueItems",keyword:"uniqueItems",params:{i: i7, j: j3},message:"must NOT have duplicate items (items ## "+j3+" and "+i7+" are identical)"}];return false;break;}indices2[item2] = i7;}}}}else {validate20.errors = [{instancePath:instancePath+"/keywords",schemaPath:"#/properties/keywords/type",keyword:"type",params:{type: "array"},message:"must be array"}];return false;}}var valid0 = _errs50 === errors;}else {var valid0 = true;}if(valid0){if(data.bonjourQueries !== undefined){let data26 = data.bonjourQueries;const _errs54 = errors;if(errors === _errs54){if(data26 && typeof data26 == "object" && !Array.isArray(data26)){const _errs56 = errors;for(const key1 in data26){if(!(pattern0.test(key1))){validate20.errors = [{instancePath:instancePath+"/bonjourQueries",schemaPath:"#/properties/bonjourQueries/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key1},message:"must NOT have additional properties"}];return false;break;}}if(_errs56 === errors){var valid11 = true;for(const key2 in data26){if(pattern0.test(key2)){let data27 = data26[key2];const _errs57 = errors;if(errors === _errs57){if(data27 && typeof data27 == "object" && !Array.isArray(data27)){let missing3;if(((data27.type === undefined) && (missing3 = "type")) || ((data27.protocol === undefined) && (missing3 = "protocol"))){validate20.errors = [{instancePath:instancePath+"/bonjourQueries/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/bonjourQueries/patternProperties//required",keyword:"required",params:{missingProperty: missing3},message:"must have required property '"+missing3+"'"}];return false;}else {const _errs59 = errors;for(const key3 in data27){if(!(((key3 === "type") || (key3 === "protocol")) || (key3 === "txt"))){validate20.errors = [{instancePath:instancePath+"/bonjourQueries/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/bonjourQueries/patternProperties//additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key3},message:"must NOT have additional properties"}];return false;break;}}if(_errs59 === errors){if(data27.type !== undefined){const _errs60 = errors;if(typeof data27.type !== "string"){validate20.errors = [{instancePath:instancePath+"/bonjourQueries/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/type",schemaPath:"#/properties/bonjourQueries/patternProperties//properties/type/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid12 = _errs60 === errors;}else {var valid12 = true;}if(valid12){if(data27.protocol !== undefined){let data29 = data27.protocol;const _errs62 = errors;if(typeof data29 !== "string"){validate20.errors = [{instancePath:instancePath+"/bonjourQueries/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/protocol",schemaPath:"#/properties/bonjourQueries/patternProperties//properties/protocol/type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}if(!((data29 === "tcp") || (data29 === "udp"))){validate20.errors = [{instancePath:instancePath+"/bonjourQueries/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/protocol",schemaPath:"#/properties/bonjourQueries/patternProperties//properties/protocol/enum",keyword:"enum",params:{allowedValues: schema22.properties.bonjourQueries.patternProperties[""].properties.protocol.enum},message:"must be equal to one of the allowed values"}];return false;}var valid12 = _errs62 === errors;}else {var valid12 = true;}if(valid12){if(data27.txt !== undefined){let data30 = data27.txt;const _errs64 = errors;if(errors === _errs64){if(data30 && typeof data30 == "object" && !Array.isArray(data30)){const _errs66 = errors;for(const key4 in data30){if(!(pattern0.test(key4))){validate20.errors = [{instancePath:instancePath+"/bonjourQueries/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/txt",schemaPath:"#/properties/bonjourQueries/patternProperties//properties/txt/additionalProperties",keyword:"additionalProperties",params:{additionalProperty: key4},message:"must NOT have additional properties"}];return false;break;}}if(_errs66 === errors){var valid13 = true;for(const key5 in data30){if(pattern0.test(key5)){const _errs67 = errors;if(typeof data30[key5] !== "string"){validate20.errors = [{instancePath:instancePath+"/bonjourQueries/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/txt/" + key5.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/bonjourQueries/patternProperties//properties/txt/patternProperties//type",keyword:"type",params:{type: "string"},message:"must be string"}];return false;}var valid13 = _errs67 === errors;if(!valid13){break;}}}}}else {validate20.errors = [{instancePath:instancePath+"/bonjourQueries/" + key2.replace(/~/g, "~0").replace(/\//g, "~1")+"/txt",schemaPath:"#/properties/bonjourQueries/patternProperties//properties/txt/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid12 = _errs64 === errors;}else {var valid12 = true;}}}}}}else {validate20.errors = [{instancePath:instancePath+"/bonjourQueries/" + key2.replace(/~/g, "~0").replace(/\//g, "~1"),schemaPath:"#/properties/bonjourQueries/patternProperties//type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid11 = _errs57 === errors;if(!valid11){break;}}}}}else {validate20.errors = [{instancePath:instancePath+"/bonjourQueries",schemaPath:"#/properties/bonjourQueries/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}var valid0 = _errs54 === errors;}else {var valid0 = true;}}}}}}}}}}}}}}}}}}}else {validate20.errors = [{instancePath,schemaPath:"#/type",keyword:"type",params:{type: "object"},message:"must be object"}];return false;}}validate20.errors = vErrors;return errors === 0;}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@companion-module/base",
3
- "version": "1.8.0",
3
+ "version": "1.9.0-0",
4
4
  "type": "commonjs",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -13,7 +13,7 @@
13
13
  "build:json-schema": "json2ts --input assets/manifest.schema.json --output generated/manifest.d.ts",
14
14
  "build:ajv-validator": "ajv compile -s assets/manifest.schema.json -o generated/validate_manifest.js",
15
15
  "docs:html": "typedoc --tsconfig tsconfig.build.json --entryPoints src/index.ts --excludePrivate --theme default --out docs",
16
- "lint:raw": "eslint --ext .ts --ext .js",
16
+ "lint:raw": "./node_modules/.bin/eslint --ext .ts --ext .js",
17
17
  "lint": "yarn lint:raw .",
18
18
  "unit": "jest"
19
19
  },
@@ -29,31 +29,32 @@
29
29
  "lib"
30
30
  ],
31
31
  "dependencies": {
32
- "@sentry/node": "^7.109.0",
33
- "@sentry/tracing": "^7.109.0",
34
- "ajv": "^8.12.0",
32
+ "@sentry/node": "^8.13.0",
33
+ "ajv": "^8.16.0",
35
34
  "colord": "^2.9.3",
36
35
  "ejson": "^2.2.3",
37
36
  "eventemitter3": "^4.0.7",
38
- "mimic-fn": "^3.0.0",
39
- "nanoid": "^3.3.4",
37
+ "mimic-fn": "^3.1.0",
38
+ "nanoid": "^3.3.7",
40
39
  "p-queue": "^6.6.2",
41
40
  "p-timeout": "^4.1.0",
42
- "tslib": "^2.6.2"
41
+ "tslib": "^2.6.3"
43
42
  },
44
43
  "devDependencies": {
45
- "@companion-module/tools": "^1.5.0",
44
+ "@companion-module/tools": "^1.5.1",
46
45
  "@tsconfig/node18": "^18.2.4",
47
46
  "@types/ejson": "^2.2.2",
48
47
  "@types/jest": "^29.5.12",
49
- "@types/node": "^18.19.30",
48
+ "@types/node": "^18.19.39",
50
49
  "ajv-cli": "^5.0.0",
51
50
  "jest": "^29.7.0",
52
- "jest-mock-extended": "^3.0.5",
51
+ "jest-mock-extended": "^3.0.7",
53
52
  "json-schema-to-typescript": "^13.1.2",
54
53
  "prettier": "^2.8.8",
55
- "ts-jest": "^29.1.2",
54
+ "ts-jest": "^29.1.5",
56
55
  "typedoc": "^0.25.13",
57
- "typescript": "~5.1.2"
58
- }
56
+ "typescript": "~5.1.6"
57
+ },
58
+ "packageManager": "yarn@4.3.1",
59
+ "stableVersion": "1.8.1"
59
60
  }