@springfield/ham-radio-api 9.0.0 → 11.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,3 +1,25 @@
1
+ ## [11.0.0](https://gitlab.com/springfield-ham-radio/app/ham-radio-api/compare/v10.0.0...v11.0.0) (2025-04-27)
2
+
3
+
4
+ ### ⚠ BREAKING CHANGES
5
+
6
+ * move radio name and manufacturer to RadioId
7
+
8
+ ### Features
9
+
10
+ * move radio name and manufacturer to RadioId ([d84b729](https://gitlab.com/springfield-ham-radio/app/ham-radio-api/commit/d84b729366858c3972feee873a0a55661c501e00))
11
+
12
+ ## [10.0.0](https://gitlab.com/springfield-ham-radio/app/ham-radio-api/compare/v9.0.0...v10.0.0) (2025-04-27)
13
+
14
+
15
+ ### ⚠ BREAKING CHANGES
16
+
17
+ * improved Radio API
18
+
19
+ ### Features
20
+
21
+ * improved Radio API ([7c34422](https://gitlab.com/springfield-ham-radio/app/ham-radio-api/commit/7c34422a8f37ddd01ae6b630eaea5b3d1a815bcb))
22
+
1
23
  ## [9.0.0](https://gitlab.com/springfield-ham-radio/app/ham-radio-api/compare/v8.0.0...v9.0.0) (2025-04-20)
2
24
 
3
25
 
@@ -0,0 +1,4 @@
1
+ import { Brand } from 'ts-brand';
2
+ export type SpectrumPrivilegeId = Brand<string, 'spectrum-privilege-id'>;
3
+ export declare const SpectrumPrivilegeId: import("ts-brand").Brander<SpectrumPrivilegeId>;
4
+ //# sourceMappingURL=spectrum-privilege-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spectrum-privilege-id.d.ts","sourceRoot":"","sources":["../../src/branded-types/spectrum-privilege-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAQ,MAAM,UAAU,CAAC;AAEvC,MAAM,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;AACzE,eAAO,MAAM,mBAAmB,iDAA8B,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { make } from 'ts-brand';
2
+ export const SpectrumPrivilegeId = make();
3
+ //# sourceMappingURL=spectrum-privilege-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spectrum-privilege-id.js","sourceRoot":"","sources":["../../src/branded-types/spectrum-privilege-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,IAAI,EAAE,MAAM,UAAU,CAAC;AAGvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,EAAuB,CAAC","sourcesContent":["import { Brand, make } from 'ts-brand';\n\nexport type SpectrumPrivilegeId = Brand<string, 'spectrum-privilege-id'>;\nexport const SpectrumPrivilegeId = make<SpectrumPrivilegeId>();\n"]}
package/dist/index.d.ts CHANGED
@@ -1,12 +1,11 @@
1
1
  export * from './branded-types/frequency.js';
2
2
  export * from './branded-types/license-class-id.js';
3
3
  export * from './branded-types/radio-channel-id.js';
4
- export * from './branded-types/radio-id.js';
5
4
  export * from './branded-types/radio-model-id.js';
6
5
  export * from './branded-types/radio-module-id.js';
7
6
  export * from './branded-types/spectrum-band-id.js';
8
7
  export * from './branded-types/spectrum-mode-id.js';
9
- export * from './branded-types/spectrum-privlege-id.js';
8
+ export * from './branded-types/spectrum-privilege-id.js';
10
9
  export * from './branded-types/wavelength.js';
11
10
  export * from './license/class.js';
12
11
  export * from './radio/channel.js';
@@ -16,9 +15,10 @@ export * from './radio/ctcss.js';
16
15
  export * from './radio/dcs.js';
17
16
  export * from './radio/driver.js';
18
17
  export * from './radio/driver-provider.js';
18
+ export * from './radio/id.js';
19
19
  export * from './radio/memory.js';
20
- export * from './radio/model.js';
21
- export * from './radio/model-provider.js';
20
+ export * from './radio/radio.js';
21
+ export * from './radio/module.js';
22
22
  export * from './radio/program.js';
23
23
  export * from './radio/programmed-channel.js';
24
24
  export * from './radio/progress-indicator.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,+BAA+B,CAAC;AAE9C,cAAc,oBAAoB,CAAC;AAEnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,+BAA+B,CAAC;AAE9C,cAAc,oBAAoB,CAAC;AAEnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC"}
package/dist/index.js CHANGED
@@ -1,12 +1,11 @@
1
1
  export * from './branded-types/frequency.js';
2
2
  export * from './branded-types/license-class-id.js';
3
3
  export * from './branded-types/radio-channel-id.js';
4
- export * from './branded-types/radio-id.js';
5
4
  export * from './branded-types/radio-model-id.js';
6
5
  export * from './branded-types/radio-module-id.js';
7
6
  export * from './branded-types/spectrum-band-id.js';
8
7
  export * from './branded-types/spectrum-mode-id.js';
9
- export * from './branded-types/spectrum-privlege-id.js';
8
+ export * from './branded-types/spectrum-privilege-id.js';
10
9
  export * from './branded-types/wavelength.js';
11
10
  export * from './license/class.js';
12
11
  export * from './radio/channel.js';
@@ -16,9 +15,10 @@ export * from './radio/ctcss.js';
16
15
  export * from './radio/dcs.js';
17
16
  export * from './radio/driver.js';
18
17
  export * from './radio/driver-provider.js';
18
+ export * from './radio/id.js';
19
19
  export * from './radio/memory.js';
20
- export * from './radio/model.js';
21
- export * from './radio/model-provider.js';
20
+ export * from './radio/radio.js';
21
+ export * from './radio/module.js';
22
22
  export * from './radio/program.js';
23
23
  export * from './radio/programmed-channel.js';
24
24
  export * from './radio/progress-indicator.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,yCAAyC,CAAC;AACxD,cAAc,+BAA+B,CAAC;AAE9C,cAAc,oBAAoB,CAAC;AAEnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC","sourcesContent":["export * from './branded-types/frequency.js';\nexport * from './branded-types/license-class-id.js';\nexport * from './branded-types/radio-channel-id.js';\nexport * from './branded-types/radio-id.js';\nexport * from './branded-types/radio-model-id.js';\nexport * from './branded-types/radio-module-id.js';\nexport * from './branded-types/spectrum-band-id.js';\nexport * from './branded-types/spectrum-mode-id.js';\nexport * from './branded-types/spectrum-privlege-id.js';\nexport * from './branded-types/wavelength.js';\n\nexport * from './license/class.js';\n\nexport * from './radio/channel.js';\nexport * from './radio/codec.js';\nexport * from './radio/connection.js';\nexport * from './radio/ctcss.js';\nexport * from './radio/dcs.js';\nexport * from './radio/driver.js';\nexport * from './radio/driver-provider.js';\nexport * from './radio/memory.js';\nexport * from './radio/model.js';\nexport * from './radio/model-provider.js';\nexport * from './radio/program.js';\nexport * from './radio/programmed-channel.js';\nexport * from './radio/progress-indicator.js';\nexport * from './radio/schema.js';\nexport * from './radio/settings.js';\nexport * from './radio/tone.js';\n\nexport * from './spectrum/band.js';\nexport * from './spectrum/channel.js';\nexport * from './spectrum/mode.js';\nexport * from './spectrum/privilege.js';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,0CAA0C,CAAC;AACzD,cAAc,+BAA+B,CAAC;AAE9C,cAAc,oBAAoB,CAAC;AAEnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,uBAAuB,CAAC;AACtC,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC;AAClC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mBAAmB,CAAC;AAClC,cAAc,oBAAoB,CAAC;AACnC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,iBAAiB,CAAC;AAEhC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC","sourcesContent":["export * from './branded-types/frequency.js';\nexport * from './branded-types/license-class-id.js';\nexport * from './branded-types/radio-channel-id.js';\nexport * from './branded-types/radio-model-id.js';\nexport * from './branded-types/radio-module-id.js';\nexport * from './branded-types/spectrum-band-id.js';\nexport * from './branded-types/spectrum-mode-id.js';\nexport * from './branded-types/spectrum-privilege-id.js';\nexport * from './branded-types/wavelength.js';\n\nexport * from './license/class.js';\n\nexport * from './radio/channel.js';\nexport * from './radio/codec.js';\nexport * from './radio/connection.js';\nexport * from './radio/ctcss.js';\nexport * from './radio/dcs.js';\nexport * from './radio/driver.js';\nexport * from './radio/driver-provider.js';\nexport * from './radio/id.js';\nexport * from './radio/memory.js';\nexport * from './radio/radio.js';\nexport * from './radio/module.js';\nexport * from './radio/program.js';\nexport * from './radio/programmed-channel.js';\nexport * from './radio/progress-indicator.js';\nexport * from './radio/schema.js';\nexport * from './radio/settings.js';\nexport * from './radio/tone.js';\n\nexport * from './spectrum/band.js';\nexport * from './spectrum/channel.js';\nexport * from './spectrum/mode.js';\nexport * from './spectrum/privilege.js';\n"]}
@@ -1,6 +1,6 @@
1
- import { RadioModel } from './model.js';
1
+ import { RadioId } from './id.js';
2
2
  export interface RadioConnection {
3
3
  serialPortPath: string;
4
- model: RadioModel;
4
+ radio: RadioId;
5
5
  }
6
6
  //# sourceMappingURL=connection.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/radio/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,UAAU,CAAC;CACnB"}
1
+ {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/radio/connection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAElC,MAAM,WAAW,eAAe;IAC9B,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;CAChB"}
@@ -1 +1 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/radio/connection.ts"],"names":[],"mappings":"","sourcesContent":["import { RadioModel } from './model.js';\n\nexport interface RadioConnection {\n serialPortPath: string;\n model: RadioModel;\n}\n"]}
1
+ {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/radio/connection.ts"],"names":[],"mappings":"","sourcesContent":["import { RadioId } from './id.js';\n\nexport interface RadioConnection {\n serialPortPath: string;\n radio: RadioId;\n}\n"]}
@@ -0,0 +1,9 @@
1
+ import { RadioModelId } from '../branded-types/radio-model-id.js';
2
+ import { RadioModuleId } from '../branded-types/radio-module-id.js';
3
+ export interface RadioId {
4
+ module: RadioModuleId;
5
+ model: RadioModelId;
6
+ name: string;
7
+ manufacturer: string;
8
+ }
9
+ //# sourceMappingURL=id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id.d.ts","sourceRoot":"","sources":["../../src/radio/id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAEpE,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,YAAY,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"id.js","sourceRoot":"","sources":["../../src/radio/id.ts"],"names":[],"mappings":"","sourcesContent":["import { RadioModelId } from '../branded-types/radio-model-id.js';\nimport { RadioModuleId } from '../branded-types/radio-module-id.js';\n\nexport interface RadioId {\n module: RadioModuleId;\n model: RadioModelId;\n name: string;\n manufacturer: string;\n}\n"]}
@@ -1,12 +1,7 @@
1
- import { RadioModelId } from '../branded-types/radio-model-id.js';
2
1
  import { RadioModuleId } from '../branded-types/radio-module-id.js';
3
- import { RadioDriver } from './driver.js';
4
- import { RadioModel } from './model.js';
5
- import { RadioSchema } from './schema.js';
2
+ import { Radio } from './radio.js';
6
3
  export interface RadioModule {
7
4
  getId(): RadioModuleId;
8
- getModels(): RadioModel[];
9
- getSchema(model: RadioModelId): Promise<RadioSchema>;
10
- getDriver(model: RadioModelId): RadioDriver;
5
+ getRadios(): Radio[];
11
6
  }
12
7
  //# sourceMappingURL=module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/radio/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,WAAW;IAC1B,KAAK,IAAI,aAAa,CAAC;IACvB,SAAS,IAAI,UAAU,EAAE,CAAC;IAC1B,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACrD,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,WAAW,CAAC;CAC7C"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../src/radio/module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,WAAW,WAAW;IAC1B,KAAK,IAAI,aAAa,CAAC;IACvB,SAAS,IAAI,KAAK,EAAE,CAAC;CACtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/radio/module.ts"],"names":[],"mappings":"","sourcesContent":["import { RadioModelId } from '../branded-types/radio-model-id.js';\nimport { RadioModuleId } from '../branded-types/radio-module-id.js';\nimport { RadioDriver } from './driver.js';\nimport { RadioModel } from './model.js';\nimport { RadioSchema } from './schema.js';\n\nexport interface RadioModule {\n getId(): RadioModuleId;\n getModels(): RadioModel[];\n getSchema(model: RadioModelId): Promise<RadioSchema>;\n getDriver(model: RadioModelId): RadioDriver;\n}\n"]}
1
+ {"version":3,"file":"module.js","sourceRoot":"","sources":["../../src/radio/module.ts"],"names":[],"mappings":"","sourcesContent":["import { RadioModuleId } from '../branded-types/radio-module-id.js';\nimport { Radio } from './radio.js';\n\nexport interface RadioModule {\n getId(): RadioModuleId;\n getRadios(): Radio[];\n}\n"]}
@@ -1,8 +1,11 @@
1
- import { RadioId } from '../branded-types/radio-id.js';
2
- import { RadioModelId } from '../branded-types/radio-model-id.js';
1
+ import { RadioId } from './id.js';
2
+ import { RadioMemory } from './memory.js';
3
+ import { RadioProgram } from './program.js';
4
+ import { RadioSchema } from './schema.js';
3
5
  export interface Radio {
4
- id: RadioId;
5
- name: string;
6
- model: RadioModelId;
6
+ getId(): RadioId;
7
+ getSchema(): Promise<RadioSchema>;
8
+ decodeMemory(memory: RadioMemory): RadioProgram;
9
+ encodeProgram(program: RadioProgram, memory: RadioMemory): RadioMemory;
7
10
  }
8
11
  //# sourceMappingURL=radio.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"radio.d.ts","sourceRoot":"","sources":["../../src/radio/radio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,8BAA8B,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,MAAM,WAAW,KAAK;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,YAAY,CAAC;CACrB"}
1
+ {"version":3,"file":"radio.d.ts","sourceRoot":"","sources":["../../src/radio/radio.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,KAAK;IACpB,KAAK,IAAI,OAAO,CAAC;IACjB,SAAS,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC;IAClC,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,YAAY,CAAC;IAChD,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,GAAG,WAAW,CAAC;CACxE"}
@@ -1 +1 @@
1
- {"version":3,"file":"radio.js","sourceRoot":"","sources":["../../src/radio/radio.ts"],"names":[],"mappings":"","sourcesContent":["import { RadioId } from '../branded-types/radio-id.js';\nimport { RadioModelId } from '../branded-types/radio-model-id.js';\n\nexport interface Radio {\n id: RadioId;\n name: string;\n model: RadioModelId;\n}\n"]}
1
+ {"version":3,"file":"radio.js","sourceRoot":"","sources":["../../src/radio/radio.ts"],"names":[],"mappings":"","sourcesContent":["import { RadioId } from './id.js';\nimport { RadioMemory } from './memory.js';\nimport { RadioProgram } from './program.js';\nimport { RadioSchema } from './schema.js';\n\nexport interface Radio {\n getId(): RadioId;\n getSchema(): Promise<RadioSchema>;\n decodeMemory(memory: RadioMemory): RadioProgram;\n encodeProgram(program: RadioProgram, memory: RadioMemory): RadioMemory;\n}\n"]}
@@ -2,7 +2,7 @@ import { Frequency } from '../branded-types/frequency.js';
2
2
  import { LicenseClassId } from '../branded-types/license-class-id.js';
3
3
  import { SpectrumBandId } from '../branded-types/spectrum-band-id.js';
4
4
  import { SpectrumModeId } from '../branded-types/spectrum-mode-id.js';
5
- import { SpectrumPrivilegeId } from '../branded-types/spectrum-privlege-id.js';
5
+ import { SpectrumPrivilegeId } from '../branded-types/spectrum-privilege-id.js';
6
6
  export interface SpectrumPrivilege {
7
7
  id: SpectrumPrivilegeId;
8
8
  licenseClassId: LicenseClassId;
@@ -1 +1 @@
1
- {"version":3,"file":"privilege.d.ts","sourceRoot":"","sources":["../../src/spectrum/privilege.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AAE/E,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,mBAAmB,CAAC;IACxB,cAAc,EAAE,cAAc,CAAC;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,cAAc,CAAC;IACrB,cAAc,EAAE,SAAS,CAAC;IAC1B,cAAc,EAAE,SAAS,CAAC;CAC3B"}
1
+ {"version":3,"file":"privilege.d.ts","sourceRoot":"","sources":["../../src/spectrum/privilege.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAEhF,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,mBAAmB,CAAC;IACxB,cAAc,EAAE,cAAc,CAAC;IAC/B,IAAI,EAAE,cAAc,CAAC;IACrB,IAAI,EAAE,cAAc,CAAC;IACrB,cAAc,EAAE,SAAS,CAAC;IAC1B,cAAc,EAAE,SAAS,CAAC;CAC3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"privilege.js","sourceRoot":"","sources":["../../src/spectrum/privilege.ts"],"names":[],"mappings":"","sourcesContent":["import { Frequency } from '../branded-types/frequency.js';\nimport { LicenseClassId } from '../branded-types/license-class-id.js';\nimport { SpectrumBandId } from '../branded-types/spectrum-band-id.js';\nimport { SpectrumModeId } from '../branded-types/spectrum-mode-id.js';\nimport { SpectrumPrivilegeId } from '../branded-types/spectrum-privlege-id.js';\n\nexport interface SpectrumPrivilege {\n id: SpectrumPrivilegeId;\n licenseClassId: LicenseClassId;\n mode: SpectrumModeId;\n band: SpectrumBandId;\n lowerFrequency: Frequency;\n upperFrequency: Frequency;\n}\n"]}
1
+ {"version":3,"file":"privilege.js","sourceRoot":"","sources":["../../src/spectrum/privilege.ts"],"names":[],"mappings":"","sourcesContent":["import { Frequency } from '../branded-types/frequency.js';\nimport { LicenseClassId } from '../branded-types/license-class-id.js';\nimport { SpectrumBandId } from '../branded-types/spectrum-band-id.js';\nimport { SpectrumModeId } from '../branded-types/spectrum-mode-id.js';\nimport { SpectrumPrivilegeId } from '../branded-types/spectrum-privilege-id.js';\n\nexport interface SpectrumPrivilege {\n id: SpectrumPrivilegeId;\n licenseClassId: LicenseClassId;\n mode: SpectrumModeId;\n band: SpectrumBandId;\n lowerFrequency: Frequency;\n upperFrequency: Frequency;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@springfield/ham-radio-api",
3
- "version": "9.0.0",
3
+ "version": "11.0.0",
4
4
  "author": "Bryan Hunt",
5
5
  "packageManager": "yarn@4.9.1",
6
6
  "main": "dist/index.js",
package/src/index.ts CHANGED
@@ -1,12 +1,11 @@
1
1
  export * from './branded-types/frequency.js';
2
2
  export * from './branded-types/license-class-id.js';
3
3
  export * from './branded-types/radio-channel-id.js';
4
- export * from './branded-types/radio-id.js';
5
4
  export * from './branded-types/radio-model-id.js';
6
5
  export * from './branded-types/radio-module-id.js';
7
6
  export * from './branded-types/spectrum-band-id.js';
8
7
  export * from './branded-types/spectrum-mode-id.js';
9
- export * from './branded-types/spectrum-privlege-id.js';
8
+ export * from './branded-types/spectrum-privilege-id.js';
10
9
  export * from './branded-types/wavelength.js';
11
10
 
12
11
  export * from './license/class.js';
@@ -18,9 +17,10 @@ export * from './radio/ctcss.js';
18
17
  export * from './radio/dcs.js';
19
18
  export * from './radio/driver.js';
20
19
  export * from './radio/driver-provider.js';
20
+ export * from './radio/id.js';
21
21
  export * from './radio/memory.js';
22
- export * from './radio/model.js';
23
- export * from './radio/model-provider.js';
22
+ export * from './radio/radio.js';
23
+ export * from './radio/module.js';
24
24
  export * from './radio/program.js';
25
25
  export * from './radio/programmed-channel.js';
26
26
  export * from './radio/progress-indicator.js';
@@ -1,6 +1,6 @@
1
- import { RadioModel } from './model.js';
1
+ import { RadioId } from './id.js';
2
2
 
3
3
  export interface RadioConnection {
4
4
  serialPortPath: string;
5
- model: RadioModel;
5
+ radio: RadioId;
6
6
  }
@@ -0,0 +1,9 @@
1
+ import { RadioModelId } from '../branded-types/radio-model-id.js';
2
+ import { RadioModuleId } from '../branded-types/radio-module-id.js';
3
+
4
+ export interface RadioId {
5
+ module: RadioModuleId;
6
+ model: RadioModelId;
7
+ name: string;
8
+ manufacturer: string;
9
+ }
@@ -0,0 +1,7 @@
1
+ import { RadioModuleId } from '../branded-types/radio-module-id.js';
2
+ import { Radio } from './radio.js';
3
+
4
+ export interface RadioModule {
5
+ getId(): RadioModuleId;
6
+ getRadios(): Radio[];
7
+ }
@@ -1,14 +1,10 @@
1
- import { RadioModelId } from '../branded-types/radio-model-id.js';
2
- import { RadioModuleId } from '../branded-types/radio-module-id.js';
1
+ import { RadioId } from './id.js';
3
2
  import { RadioMemory } from './memory.js';
4
3
  import { RadioProgram } from './program.js';
5
4
  import { RadioSchema } from './schema.js';
6
5
 
7
- export interface RadioModel {
8
- id: RadioModelId;
9
- module: RadioModuleId;
10
- name: string;
11
- manufacturer: string;
6
+ export interface Radio {
7
+ getId(): RadioId;
12
8
  getSchema(): Promise<RadioSchema>;
13
9
  decodeMemory(memory: RadioMemory): RadioProgram;
14
10
  encodeProgram(program: RadioProgram, memory: RadioMemory): RadioMemory;
@@ -2,7 +2,7 @@ import { Frequency } from '../branded-types/frequency.js';
2
2
  import { LicenseClassId } from '../branded-types/license-class-id.js';
3
3
  import { SpectrumBandId } from '../branded-types/spectrum-band-id.js';
4
4
  import { SpectrumModeId } from '../branded-types/spectrum-mode-id.js';
5
- import { SpectrumPrivilegeId } from '../branded-types/spectrum-privlege-id.js';
5
+ import { SpectrumPrivilegeId } from '../branded-types/spectrum-privilege-id.js';
6
6
 
7
7
  export interface SpectrumPrivilege {
8
8
  id: SpectrumPrivilegeId;
@@ -1,4 +0,0 @@
1
- import { Brand, make } from 'ts-brand';
2
-
3
- export type RadioId = Brand<string, 'radio-id'>;
4
- export const RadioId = make<RadioId>();
@@ -1,7 +0,0 @@
1
- import { RadioModuleId } from '../branded-types/radio-module-id.js';
2
- import { RadioModel } from './model.js';
3
-
4
- export interface RadioModelProvider {
5
- getId(): RadioModuleId;
6
- getModels(): RadioModel[];
7
- }