@springfield/ham-radio-registry 1.3.0 → 1.4.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.
@@ -1 +1 @@
1
- {"version":3,"file":"extract-catalog-metadata.d.ts","sourceRoot":"","sources":["../../src/catalog/extract-catalog-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAqB,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAUxH;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,aAAa,EACpB,MAAM,GAAE,kBAA2B,EACnC,WAAW,CAAC,EAAE,MAAM,GACnB,iBAAiB,CAkBnB"}
1
+ {"version":3,"file":"extract-catalog-metadata.d.ts","sourceRoot":"","sources":["../../src/catalog/extract-catalog-metadata.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAqB,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAWxH;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,aAAa,EACpB,MAAM,GAAE,kBAA2B,EACnC,WAAW,CAAC,EAAE,MAAM,GACnB,iBAAiB,CAmBnB"}
@@ -4,6 +4,7 @@ const DEFAULT_CAPABILITIES = {
4
4
  memoryWrite: false,
5
5
  channelProgramming: false,
6
6
  settingsProgramming: false,
7
+ liveControl: false,
7
8
  };
8
9
  /**
9
10
  * Extract lightweight catalog metadata from a hydrated radio config.
@@ -14,6 +15,7 @@ export function extractCatalogMetadata(radio, source = 'user', contentHash) {
14
15
  memoryWrite: radio.capabilities?.memoryWrite ?? DEFAULT_CAPABILITIES.memoryWrite,
15
16
  channelProgramming: radio.capabilities?.channelProgramming ?? DEFAULT_CAPABILITIES.channelProgramming,
16
17
  settingsProgramming: radio.capabilities?.settingsProgramming ?? DEFAULT_CAPABILITIES.settingsProgramming,
18
+ liveControl: radio.capabilities?.liveControl ?? DEFAULT_CAPABILITIES.liveControl,
17
19
  };
18
20
  return {
19
21
  modelId: radio.id.model,
@@ -1 +1 @@
1
- {"version":3,"file":"extract-catalog-metadata.js","sourceRoot":"","sources":["../../src/catalog/extract-catalog-metadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,oBAAoB,GAAsB;IAC9C,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,KAAK;IAClB,kBAAkB,EAAE,KAAK;IACzB,mBAAmB,EAAE,KAAK;CAC3B,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAoB,EACpB,MAAM,GAAuB,MAAM,EACnC,WAAoB;IAEpB,MAAM,YAAY,GAAsB;QACtC,UAAU,EAAE,KAAK,CAAC,YAAY,EAAE,UAAU,IAAI,oBAAoB,CAAC,UAAU;QAC7E,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,WAAW,IAAI,oBAAoB,CAAC,WAAW;QAChF,kBAAkB,EAAE,KAAK,CAAC,YAAY,EAAE,kBAAkB,IAAI,oBAAoB,CAAC,kBAAkB;QACrG,mBAAmB,EAAE,KAAK,CAAC,YAAY,EAAE,mBAAmB,IAAI,oBAAoB,CAAC,mBAAmB;KACzG,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK;QACvB,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI;QACnB,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY;QACnC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,YAAY;QACZ,MAAM;QACN,WAAW,EAAE,WAAW,IAAI,eAAe,CAAC,KAAK,CAAC;KACnD,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"extract-catalog-metadata.js","sourceRoot":"","sources":["../../src/catalog/extract-catalog-metadata.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,oBAAoB,GAAsB;IAC9C,UAAU,EAAE,KAAK;IACjB,WAAW,EAAE,KAAK;IAClB,kBAAkB,EAAE,KAAK;IACzB,mBAAmB,EAAE,KAAK;IAC1B,WAAW,EAAE,KAAK;CACnB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,sBAAsB,CACpC,KAAoB,EACpB,MAAM,GAAuB,MAAM,EACnC,WAAoB;IAEpB,MAAM,YAAY,GAAsB;QACtC,UAAU,EAAE,KAAK,CAAC,YAAY,EAAE,UAAU,IAAI,oBAAoB,CAAC,UAAU;QAC7E,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,WAAW,IAAI,oBAAoB,CAAC,WAAW;QAChF,kBAAkB,EAAE,KAAK,CAAC,YAAY,EAAE,kBAAkB,IAAI,oBAAoB,CAAC,kBAAkB;QACrG,mBAAmB,EAAE,KAAK,CAAC,YAAY,EAAE,mBAAmB,IAAI,oBAAoB,CAAC,mBAAmB;QACxG,WAAW,EAAE,KAAK,CAAC,YAAY,EAAE,WAAW,IAAI,oBAAoB,CAAC,WAAW;KACjF,CAAC;IAEF,OAAO;QACL,OAAO,EAAE,KAAK,CAAC,EAAE,CAAC,KAAK;QACvB,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI;QACnB,YAAY,EAAE,KAAK,CAAC,EAAE,CAAC,YAAY;QACnC,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,YAAY;QACZ,MAAM;QACN,WAAW,EAAE,WAAW,IAAI,eAAe,CAAC,KAAK,CAAC;KACnD,CAAC;AACJ,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export type { RadioConfigMetadata, RadioCapabilities, CodecConfig, RegistryRadio, RadioCatalogEntry, RadioCatalogSource, } from './types/radio-config.js';
1
+ export type { RadioConfigMetadata, RadioCapabilities, RadioCatConfig, CodecConfig, RegistryRadio, RadioCatalogEntry, RadioCatalogSource, } from './types/radio-config.js';
2
2
  export type { RadioModuleCatalog, RadioModuleCatalogEntry, CatalogValidationResult, } from './types/module-catalog.js';
3
3
  export type { ValidationResult } from '@springfield/ham-radio-api';
4
4
  export type { PluginModule, PluginCapabilities, SpringfieldPluginConfig, NpmPluginInfo, PluginManifest, PluginManifestConfiguration, PluginSharedComponents, PluginSecurity, } from './types/plugin-module.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAGnC,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,EACb,cAAc,EACd,2BAA2B,EAC3B,sBAAsB,EACtB,cAAc,GACf,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,mBAAmB,EACnB,iBAAiB,EACjB,cAAc,EACd,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,yBAAyB,CAAC;AAEjC,YAAY,EACV,kBAAkB,EAClB,uBAAuB,EACvB,uBAAuB,GACxB,MAAM,2BAA2B,CAAC;AAGnC,YAAY,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,YAAY,EACV,YAAY,EACZ,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,EACb,cAAc,EACd,2BAA2B,EAC3B,sBAAsB,EACtB,cAAc,GACf,MAAM,0BAA0B,CAAC;AAGlC,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA8BA,wCAAwC;AACxC,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA+BA,wCAAwC;AACxC,OAAO,EACL,kBAAkB,EAClB,sBAAsB,EACtB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EACtB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,oBAAoB,CAAC"}
@@ -18,6 +18,20 @@ export interface RadioCapabilities {
18
18
  memoryWrite: boolean;
19
19
  channelProgramming: boolean;
20
20
  settingsProgramming: boolean;
21
+ /**
22
+ * Live VFO / mode / PTT on the programming PC port.
23
+ * Independent of memory protocol: a radio may clone EEPROM and still speak CAT.
24
+ */
25
+ liveControl: boolean;
26
+ }
27
+ /**
28
+ * How live control talks on the PC port. Present when `capabilities.liveControl` is true.
29
+ */
30
+ export interface RadioCatConfig {
31
+ /** Command family, for example `kenwood`. */
32
+ protocol: string;
33
+ /** Protocol-specific dialect, for example Kenwood `th-f6` or `fm-mobile`. */
34
+ dialect?: string;
21
35
  }
22
36
  /**
23
37
  * Codec configuration
@@ -33,6 +47,7 @@ export interface CodecConfig {
33
47
  export interface RegistryRadio extends Radio {
34
48
  $schema?: string;
35
49
  capabilities: RadioCapabilities;
50
+ cat?: RadioCatConfig;
36
51
  codec?: CodecConfig;
37
52
  metadata: RadioConfigMetadata;
38
53
  }
@@ -1 +1 @@
1
- {"version":3,"file":"radio-config.d.ts","sourceRoot":"","sources":["../../src/types/radio-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,iBAAiB,CAAC;IAChC,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,iBAAiB,CAAC;IAChC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB"}
1
+ {"version":3,"file":"radio-config.d.ts","sourceRoot":"","sources":["../../src/types/radio-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,UAAU,EAAE,OAAO,CAAC;IACpB,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,mBAAmB,EAAE,OAAO,CAAC;IAC7B;;;OAGG;IACH,WAAW,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,QAAQ,GAAG,QAAQ,GAAG,WAAW,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAClC;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,KAAK;IAC1C,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,iBAAiB,CAAC;IAChC,GAAG,CAAC,EAAE,cAAc,CAAC;IACrB,KAAK,CAAC,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,mBAAmB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,CAAC;AAElE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,iBAAiB,CAAC;IAChC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;CACrB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@springfield/ham-radio-registry",
3
- "version": "1.3.0",
3
+ "version": "1.4.0",
4
4
  "author": "Bryan Hunt",
5
5
  "license": "MIT",
6
6
  "readme": "README.md",
@@ -6,6 +6,7 @@ const DEFAULT_CAPABILITIES: RadioCapabilities = {
6
6
  memoryWrite: false,
7
7
  channelProgramming: false,
8
8
  settingsProgramming: false,
9
+ liveControl: false,
9
10
  };
10
11
 
11
12
  /**
@@ -21,6 +22,7 @@ export function extractCatalogMetadata(
21
22
  memoryWrite: radio.capabilities?.memoryWrite ?? DEFAULT_CAPABILITIES.memoryWrite,
22
23
  channelProgramming: radio.capabilities?.channelProgramming ?? DEFAULT_CAPABILITIES.channelProgramming,
23
24
  settingsProgramming: radio.capabilities?.settingsProgramming ?? DEFAULT_CAPABILITIES.settingsProgramming,
25
+ liveControl: radio.capabilities?.liveControl ?? DEFAULT_CAPABILITIES.liveControl,
24
26
  };
25
27
 
26
28
  return {
package/src/index.ts CHANGED
@@ -2,6 +2,7 @@
2
2
  export type {
3
3
  RadioConfigMetadata,
4
4
  RadioCapabilities,
5
+ RadioCatConfig,
5
6
  CodecConfig,
6
7
  RegistryRadio,
7
8
  RadioCatalogEntry,
@@ -20,6 +20,21 @@ export interface RadioCapabilities {
20
20
  memoryWrite: boolean;
21
21
  channelProgramming: boolean;
22
22
  settingsProgramming: boolean;
23
+ /**
24
+ * Live VFO / mode / PTT on the programming PC port.
25
+ * Independent of memory protocol: a radio may clone EEPROM and still speak CAT.
26
+ */
27
+ liveControl: boolean;
28
+ }
29
+
30
+ /**
31
+ * How live control talks on the PC port. Present when `capabilities.liveControl` is true.
32
+ */
33
+ export interface RadioCatConfig {
34
+ /** Command family, for example `kenwood`. */
35
+ protocol: string;
36
+ /** Protocol-specific dialect, for example Kenwood `th-f6` or `fm-mobile`. */
37
+ dialect?: string;
23
38
  }
24
39
 
25
40
  /**
@@ -37,6 +52,7 @@ export interface CodecConfig {
37
52
  export interface RegistryRadio extends Radio {
38
53
  $schema?: string;
39
54
  capabilities: RadioCapabilities;
55
+ cat?: RadioCatConfig;
40
56
  codec?: CodecConfig;
41
57
  metadata: RadioConfigMetadata;
42
58
  }