@springfield/ham-radio-api 12.0.1 → 13.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.
Files changed (148) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/branded-types/frequency.d.ts +1 -1
  3. package/dist/branded-types/frequency.d.ts.map +1 -1
  4. package/dist/branded-types/frequency.js.map +1 -1
  5. package/dist/branded-types/license-class-id.d.ts +1 -1
  6. package/dist/branded-types/license-class-id.d.ts.map +1 -1
  7. package/dist/branded-types/license-class-id.js.map +1 -1
  8. package/dist/branded-types/radio-channel-id.d.ts +1 -1
  9. package/dist/branded-types/radio-channel-id.d.ts.map +1 -1
  10. package/dist/branded-types/radio-channel-id.js.map +1 -1
  11. package/dist/branded-types/radio-model-id.d.ts +1 -1
  12. package/dist/branded-types/radio-model-id.d.ts.map +1 -1
  13. package/dist/branded-types/radio-model-id.js.map +1 -1
  14. package/dist/branded-types/radio-module-id.d.ts +1 -1
  15. package/dist/branded-types/radio-module-id.d.ts.map +1 -1
  16. package/dist/branded-types/radio-module-id.js.map +1 -1
  17. package/dist/branded-types/spectrum-band-id.d.ts +1 -1
  18. package/dist/branded-types/spectrum-band-id.d.ts.map +1 -1
  19. package/dist/branded-types/spectrum-band-id.js.map +1 -1
  20. package/dist/branded-types/spectrum-mode-id.d.ts +1 -1
  21. package/dist/branded-types/spectrum-mode-id.d.ts.map +1 -1
  22. package/dist/branded-types/spectrum-mode-id.js.map +1 -1
  23. package/dist/branded-types/spectrum-privilege-id.d.ts +1 -1
  24. package/dist/branded-types/spectrum-privilege-id.d.ts.map +1 -1
  25. package/dist/branded-types/spectrum-privilege-id.js.map +1 -1
  26. package/dist/branded-types/wavelength.d.ts +1 -1
  27. package/dist/branded-types/wavelength.d.ts.map +1 -1
  28. package/dist/branded-types/wavelength.js.map +1 -1
  29. package/dist/index.d.ts +1 -0
  30. package/dist/index.d.ts.map +1 -1
  31. package/dist/index.js +1 -0
  32. package/dist/index.js.map +1 -1
  33. package/dist/license/class.d.ts +1 -1
  34. package/dist/license/class.d.ts.map +1 -1
  35. package/dist/license/class.js.map +1 -1
  36. package/dist/radio/channel.d.ts +3 -3
  37. package/dist/radio/channel.d.ts.map +1 -1
  38. package/dist/radio/channel.js.map +1 -1
  39. package/dist/radio/codec.d.ts +2 -2
  40. package/dist/radio/codec.d.ts.map +1 -1
  41. package/dist/radio/codec.js.map +1 -1
  42. package/dist/radio/connection.d.ts +1 -1
  43. package/dist/radio/connection.d.ts.map +1 -1
  44. package/dist/radio/connection.js.map +1 -1
  45. package/dist/radio/ctcss.js.map +1 -1
  46. package/dist/radio/dcs.js.map +1 -1
  47. package/dist/radio/driver-provider.d.ts +3 -3
  48. package/dist/radio/driver-provider.d.ts.map +1 -1
  49. package/dist/radio/driver-provider.js.map +1 -1
  50. package/dist/radio/driver.d.ts +3 -3
  51. package/dist/radio/driver.d.ts.map +1 -1
  52. package/dist/radio/driver.js.map +1 -1
  53. package/dist/radio/id.d.ts +2 -2
  54. package/dist/radio/id.d.ts.map +1 -1
  55. package/dist/radio/id.js.map +1 -1
  56. package/dist/radio/memory-config.d.ts +6 -0
  57. package/dist/radio/memory-config.d.ts.map +1 -0
  58. package/dist/radio/memory-config.js +2 -0
  59. package/dist/radio/memory-config.js.map +1 -0
  60. package/dist/radio/memory-segment.d.ts +1 -2
  61. package/dist/radio/memory-segment.d.ts.map +1 -1
  62. package/dist/radio/memory-segment.js.map +1 -1
  63. package/dist/radio/memory.d.ts +2 -3
  64. package/dist/radio/memory.d.ts.map +1 -1
  65. package/dist/radio/memory.js.map +1 -1
  66. package/dist/radio/module.d.ts +2 -2
  67. package/dist/radio/module.d.ts.map +1 -1
  68. package/dist/radio/module.js.map +1 -1
  69. package/dist/radio/program.d.ts +2 -2
  70. package/dist/radio/program.d.ts.map +1 -1
  71. package/dist/radio/program.js.map +1 -1
  72. package/dist/radio/programmed-channel.d.ts +2 -2
  73. package/dist/radio/programmed-channel.d.ts.map +1 -1
  74. package/dist/radio/programmed-channel.js.map +1 -1
  75. package/dist/radio/progress-indicator.js.map +1 -1
  76. package/dist/radio/radio.d.ts +6 -4
  77. package/dist/radio/radio.d.ts.map +1 -1
  78. package/dist/radio/radio.js.map +1 -1
  79. package/dist/radio/schema.d.ts +1 -1
  80. package/dist/radio/schema.d.ts.map +1 -1
  81. package/dist/radio/schema.js.map +1 -1
  82. package/dist/radio/settings.js.map +1 -1
  83. package/dist/radio/tone.d.ts +2 -2
  84. package/dist/radio/tone.d.ts.map +1 -1
  85. package/dist/radio/tone.js.map +1 -1
  86. package/dist/spectrum/band.d.ts +5 -5
  87. package/dist/spectrum/band.d.ts.map +1 -1
  88. package/dist/spectrum/band.js.map +1 -1
  89. package/dist/spectrum/channel.d.ts +1 -1
  90. package/dist/spectrum/channel.d.ts.map +1 -1
  91. package/dist/spectrum/channel.js.map +1 -1
  92. package/dist/spectrum/mode.d.ts +1 -1
  93. package/dist/spectrum/mode.d.ts.map +1 -1
  94. package/dist/spectrum/mode.js.map +1 -1
  95. package/dist/spectrum/privilege.d.ts +5 -5
  96. package/dist/spectrum/privilege.d.ts.map +1 -1
  97. package/dist/spectrum/privilege.js.map +1 -1
  98. package/package.json +5 -2
  99. package/src/branded-types/frequency.ts +1 -1
  100. package/src/branded-types/license-class-id.ts +1 -1
  101. package/src/branded-types/radio-channel-id.ts +1 -1
  102. package/src/branded-types/radio-model-id.ts +1 -1
  103. package/src/branded-types/radio-module-id.ts +1 -1
  104. package/src/branded-types/spectrum-band-id.ts +1 -1
  105. package/src/branded-types/spectrum-mode-id.ts +1 -1
  106. package/src/branded-types/spectrum-privilege-id.ts +1 -1
  107. package/src/branded-types/wavelength.ts +1 -1
  108. package/src/index.ts +1 -0
  109. package/src/license/class.ts +1 -1
  110. package/src/radio/channel.ts +3 -3
  111. package/src/radio/codec.ts +2 -2
  112. package/src/radio/connection.ts +1 -1
  113. package/src/radio/driver-provider.ts +3 -3
  114. package/src/radio/driver.ts +3 -3
  115. package/src/radio/id.ts +2 -2
  116. package/src/radio/memory-config.ts +6 -0
  117. package/src/radio/memory-segment.ts +1 -2
  118. package/src/radio/memory.ts +2 -3
  119. package/src/radio/module.ts +2 -2
  120. package/src/radio/program.ts +2 -2
  121. package/src/radio/programmed-channel.ts +2 -2
  122. package/src/radio/radio.ts +6 -4
  123. package/src/radio/schema.ts +1 -1
  124. package/src/radio/tone.ts +2 -2
  125. package/src/spectrum/band.ts +5 -5
  126. package/src/spectrum/channel.ts +1 -1
  127. package/src/spectrum/mode.ts +1 -1
  128. package/src/spectrum/privilege.ts +5 -5
  129. package/dist/brand.d.ts +0 -6
  130. package/dist/brand.d.ts.map +0 -1
  131. package/dist/brand.js +0 -2
  132. package/dist/brand.js.map +0 -1
  133. package/dist/branded-types/radio-id.d.ts +0 -4
  134. package/dist/branded-types/radio-id.d.ts.map +0 -1
  135. package/dist/branded-types/radio-id.js +0 -3
  136. package/dist/branded-types/radio-id.js.map +0 -1
  137. package/dist/branded-types/spectrum-privlege-id.d.ts +0 -4
  138. package/dist/branded-types/spectrum-privlege-id.d.ts.map +0 -1
  139. package/dist/branded-types/spectrum-privlege-id.js +0 -3
  140. package/dist/branded-types/spectrum-privlege-id.js.map +0 -1
  141. package/dist/radio/model-provider.d.ts +0 -7
  142. package/dist/radio/model-provider.d.ts.map +0 -1
  143. package/dist/radio/model-provider.js +0 -2
  144. package/dist/radio/model-provider.js.map +0 -1
  145. package/dist/radio/model.d.ts +0 -15
  146. package/dist/radio/model.d.ts.map +0 -1
  147. package/dist/radio/model.js +0 -2
  148. package/dist/radio/model.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/radio/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,YAAY,CAAC;IACpB,cAAc,EAAE,GAAG,CAAC;IACpB,aAAa,EAAE,GAAG,CAAC;CACpB"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/radio/schema.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAEvE,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,YAAY,CAAC;IACpB,cAAc,EAAE,GAAG,CAAC;IACpB,aAAa,EAAE,GAAG,CAAC;CACpB"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/radio/schema.ts"],"names":[],"mappings":"","sourcesContent":["import { RadioModelId } from '../branded-types/radio-model-id.js';\n\nexport interface RadioSchema {\n model: RadioModelId;\n settingsSchema: any;\n channelSchema: any;\n}\n"]}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/radio/schema.ts"],"names":[],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/radio/settings.ts"],"names":[],"mappings":"","sourcesContent":["export interface RadioSettings {\n [setting: string]: string | number | boolean;\n}\n"]}
1
+ {"version":3,"file":"settings.js","sourceRoot":"","sources":["../../src/radio/settings.ts"],"names":[],"mappings":""}
@@ -1,5 +1,5 @@
1
- import { CTCSS } from './ctcss.js';
2
- import { DCS } from './dcs.js';
1
+ import type { CTCSS } from './ctcss.js';
2
+ import type { DCS } from './dcs.js';
3
3
  export declare enum RadioToneType {
4
4
  CTCSS = 0,
5
5
  DCS = 1
@@ -1 +1 @@
1
- {"version":3,"file":"tone.d.ts","sourceRoot":"","sources":["../../src/radio/tone.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAE/B,oBAAY,aAAa;IACvB,KAAK,IAAA;IACL,GAAG,IAAA;CACJ;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,KAAK,GAAG,GAAG,CAAC;IAClB,IAAI,EAAE,aAAa,CAAC;CACrB"}
1
+ {"version":3,"file":"tone.d.ts","sourceRoot":"","sources":["../../src/radio/tone.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACxC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAEpC,oBAAY,aAAa;IACvB,KAAK,IAAA;IACL,GAAG,IAAA;CACJ;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,KAAK,GAAG,GAAG,CAAC;IAClB,IAAI,EAAE,aAAa,CAAC;CACrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"tone.js","sourceRoot":"","sources":["../../src/radio/tone.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,mDAAK,CAAA;IACL,+CAAG,CAAA;AACL,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB","sourcesContent":["import { CTCSS } from './ctcss.js';\nimport { DCS } from './dcs.js';\n\nexport enum RadioToneType {\n CTCSS,\n DCS,\n}\n\nexport interface RadioTone {\n tone: CTCSS | DCS;\n type: RadioToneType;\n}\n"]}
1
+ {"version":3,"file":"tone.js","sourceRoot":"","sources":["../../src/radio/tone.ts"],"names":[],"mappings":"AAGA,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,mDAAK,CAAA;IACL,+CAAG,CAAA;AACL,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB"}
@@ -1,8 +1,8 @@
1
- import { Frequency } from '../branded-types/frequency.js';
2
- import { LicenseClassId } from '../branded-types/license-class-id.js';
3
- import { SpectrumBandId } from '../branded-types/spectrum-band-id.js';
4
- import { Wavelength } from '../branded-types/wavelength.js';
5
- import { SpectrumChannel } from './channel.js';
1
+ import type { Frequency } from '../branded-types/frequency.js';
2
+ import type { LicenseClassId } from '../branded-types/license-class-id.js';
3
+ import type { SpectrumBandId } from '../branded-types/spectrum-band-id.js';
4
+ import type { SpectrumChannel } from './channel.js';
5
+ import type { Wavelength } from '../branded-types/wavelength.js';
6
6
  export interface SpectrumBand {
7
7
  id: SpectrumBandId;
8
8
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"band.d.ts","sourceRoot":"","sources":["../../src/spectrum/band.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,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,cAAc,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,SAAS,CAAC;IAC1B,cAAc,EAAE,SAAS,CAAC;IAC1B,8BAA8B,EAAE,MAAM,CAAC;IACvC,8BAA8B,EAAE,MAAM,CAAC;IACvC,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;CAC9B"}
1
+ {"version":3,"file":"band.d.ts","sourceRoot":"","sources":["../../src/spectrum/band.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gCAAgC,CAAC;AAEjE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,cAAc,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,SAAS,CAAC;IAC1B,cAAc,EAAE,SAAS,CAAC;IAC1B,8BAA8B,EAAE,MAAM,CAAC;IACvC,8BAA8B,EAAE,MAAM,CAAC;IACvC,UAAU,EAAE,cAAc,EAAE,CAAC;IAC7B,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;CAC9B"}
@@ -1 +1 @@
1
- {"version":3,"file":"band.js","sourceRoot":"","sources":["../../src/spectrum/band.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 { Wavelength } from '../branded-types/wavelength.js';\nimport { SpectrumChannel } from './channel.js';\n\nexport interface SpectrumBand {\n id: SpectrumBandId;\n name: string;\n wavelength: Wavelength;\n lowerFrequency: Frequency;\n upperFrequency: Frequency;\n frequencyDisplayBaseMultiplier: number;\n frequencyDisplayNumberDecimals: number;\n privileges: LicenseClassId[];\n channels?: SpectrumChannel[];\n}\n"]}
1
+ {"version":3,"file":"band.js","sourceRoot":"","sources":["../../src/spectrum/band.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { Frequency } from '../branded-types/frequency.js';
1
+ import type { Frequency } from '../branded-types/frequency.js';
2
2
  export interface SpectrumChannel {
3
3
  name: string;
4
4
  frequency: Frequency;
@@ -1 +1 @@
1
- {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/spectrum/channel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE1D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;CACtB"}
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../../src/spectrum/channel.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAE/D,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;CACtB"}
@@ -1 +1 @@
1
- {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/spectrum/channel.ts"],"names":[],"mappings":"","sourcesContent":["import { Frequency } from '../branded-types/frequency.js';\n\nexport interface SpectrumChannel {\n name: string;\n frequency: Frequency;\n}\n"]}
1
+ {"version":3,"file":"channel.js","sourceRoot":"","sources":["../../src/spectrum/channel.ts"],"names":[],"mappings":""}
@@ -1,4 +1,4 @@
1
- import { SpectrumModeId } from '../branded-types/spectrum-mode-id.js';
1
+ import type { SpectrumModeId } from '../branded-types/spectrum-mode-id.js';
2
2
  export interface SpectrumMode {
3
3
  id: SpectrumModeId;
4
4
  name: string;
@@ -1 +1 @@
1
- {"version":3,"file":"mode.d.ts","sourceRoot":"","sources":["../../src/spectrum/mode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAEtE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,cAAc,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd"}
1
+ {"version":3,"file":"mode.d.ts","sourceRoot":"","sources":["../../src/spectrum/mode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAE3E,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,cAAc,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -1 +1 @@
1
- {"version":3,"file":"mode.js","sourceRoot":"","sources":["../../src/spectrum/mode.ts"],"names":[],"mappings":"","sourcesContent":["import { SpectrumModeId } from '../branded-types/spectrum-mode-id.js';\n\nexport interface SpectrumMode {\n id: SpectrumModeId;\n name: string;\n}\n"]}
1
+ {"version":3,"file":"mode.js","sourceRoot":"","sources":["../../src/spectrum/mode.ts"],"names":[],"mappings":""}
@@ -1,8 +1,8 @@
1
- import { Frequency } from '../branded-types/frequency.js';
2
- import { LicenseClassId } from '../branded-types/license-class-id.js';
3
- import { SpectrumBandId } from '../branded-types/spectrum-band-id.js';
4
- import { SpectrumModeId } from '../branded-types/spectrum-mode-id.js';
5
- import { SpectrumPrivilegeId } from '../branded-types/spectrum-privilege-id.js';
1
+ import type { Frequency } from '../branded-types/frequency.js';
2
+ import type { LicenseClassId } from '../branded-types/license-class-id.js';
3
+ import type { SpectrumBandId } from '../branded-types/spectrum-band-id.js';
4
+ import type { SpectrumModeId } from '../branded-types/spectrum-mode-id.js';
5
+ import type { 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,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
+ {"version":3,"file":"privilege.d.ts","sourceRoot":"","sources":["../../src/spectrum/privilege.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,2CAA2C,CAAC;AAErF,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-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"]}
1
+ {"version":3,"file":"privilege.js","sourceRoot":"","sources":["../../src/spectrum/privilege.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@springfield/ham-radio-api",
3
- "version": "12.0.1",
3
+ "version": "13.0.0",
4
4
  "author": "Bryan Hunt",
5
- "packageManager": "yarn@4.9.1",
5
+ "packageManager": "yarn@4.9.2",
6
6
  "main": "dist/index.js",
7
7
  "type": "module",
8
8
  "types": "dist/index.d.ts",
@@ -13,6 +13,8 @@
13
13
  "scripts": {
14
14
  "build": "tsc",
15
15
  "commitlint": "commitlint --edit",
16
+ "lint": "oxlint",
17
+ "lint:fix": "oxlint --fix --fix-suggestions",
16
18
  "release": "semantic-release",
17
19
  "prepare": "husky"
18
20
  },
@@ -53,6 +55,7 @@
53
55
  "@semantic-release/git": "10.0.1",
54
56
  "@semantic-release/gitlab": "13.2.5",
55
57
  "husky": "9.1.7",
58
+ "oxlint": "^1.1.0",
56
59
  "semantic-release": "23.1.1",
57
60
  "semantic-release-yarn": "3.0.2",
58
61
  "typescript": "5.8.3"
@@ -1,4 +1,4 @@
1
- import { Brand, make } from 'ts-brand';
1
+ import { type Brand, make } from 'ts-brand';
2
2
 
3
3
  export type Frequency = Brand<number, 'frequency'>;
4
4
  export const Frequency = make<Frequency>();
@@ -1,4 +1,4 @@
1
- import { Brand, make } from 'ts-brand';
1
+ import { type Brand, make } from 'ts-brand';
2
2
 
3
3
  export type LicenseClassId = Brand<string, 'license-class-id'>;
4
4
  export const LicenseClassId = make<LicenseClassId>();
@@ -1,4 +1,4 @@
1
- import { Brand, make } from 'ts-brand';
1
+ import { type Brand, make } from 'ts-brand';
2
2
 
3
3
  export type RadioChannelId = Brand<string, 'radio-channel-id'>;
4
4
  export const RadioChannelId = make<RadioChannelId>();
@@ -1,4 +1,4 @@
1
- import { Brand, make } from 'ts-brand';
1
+ import { type Brand, make } from 'ts-brand';
2
2
 
3
3
  export type RadioModelId = Brand<string, 'radio-model-id'>;
4
4
  export const RadioModelId = make<RadioModelId>();
@@ -1,4 +1,4 @@
1
- import { Brand, make } from 'ts-brand';
1
+ import { type Brand, make } from 'ts-brand';
2
2
 
3
3
  export type RadioModuleId = Brand<string, 'radio-module-id'>;
4
4
  export const RadioModuleId = make<RadioModuleId>();
@@ -1,4 +1,4 @@
1
- import { Brand, make } from 'ts-brand';
1
+ import { type Brand, make } from 'ts-brand';
2
2
 
3
3
  export type SpectrumBandId = Brand<string, 'spectrum-band-id'>;
4
4
  export const SpectrumBandId = make<SpectrumBandId>();
@@ -1,4 +1,4 @@
1
- import { Brand, make } from 'ts-brand';
1
+ import { type Brand, make } from 'ts-brand';
2
2
 
3
3
  export type SpectrumModeId = Brand<string, 'spectrum-mode-id'>;
4
4
  export const SpectrumModeId = make<SpectrumModeId>();
@@ -1,4 +1,4 @@
1
- import { Brand, make } from 'ts-brand';
1
+ import { type Brand, make } from 'ts-brand';
2
2
 
3
3
  export type SpectrumPrivilegeId = Brand<string, 'spectrum-privilege-id'>;
4
4
  export const SpectrumPrivilegeId = make<SpectrumPrivilegeId>();
@@ -1,4 +1,4 @@
1
- import { Brand, make } from 'ts-brand';
1
+ import { type Brand, make } from 'ts-brand';
2
2
 
3
3
  export type Wavelength = Brand<number, 'wavelength'>;
4
4
  export const Wavelength = make<Wavelength>();
package/src/index.ts CHANGED
@@ -18,6 +18,7 @@ export * from './radio/dcs.js';
18
18
  export * from './radio/driver.js';
19
19
  export * from './radio/driver-provider.js';
20
20
  export * from './radio/id.js';
21
+ export * from './radio/memory-config.js';
21
22
  export * from './radio/memory-segment.js';
22
23
  export * from './radio/memory.js';
23
24
  export * from './radio/radio.js';
@@ -1,4 +1,4 @@
1
- import { LicenseClassId } from '../branded-types/license-class-id.js';
1
+ import type { LicenseClassId } from '../branded-types/license-class-id.js';
2
2
 
3
3
  export interface LicenseClass {
4
4
  id: LicenseClassId;
@@ -1,6 +1,6 @@
1
- import { Frequency } from '../branded-types/frequency.js';
2
- import { RadioChannelId } from '../branded-types/radio-channel-id.js';
3
- import { RadioTone } from './tone.js';
1
+ import type { Frequency } from '../branded-types/frequency.js';
2
+ import type { RadioChannelId } from '../branded-types/radio-channel-id.js';
3
+ import type { RadioTone } from './tone.js';
4
4
 
5
5
  export interface RadioChannel {
6
6
  id?: RadioChannelId;
@@ -1,5 +1,5 @@
1
- import { RadioMemory } from './memory.js';
2
- import { RadioProgram } from './program.js';
1
+ import type { RadioMemory } from './memory.js';
2
+ import type { RadioProgram } from './program.js';
3
3
 
4
4
  export interface RadioCodec {
5
5
  decode(memory: RadioMemory): RadioProgram;
@@ -1,4 +1,4 @@
1
- import { RadioId } from './id.js';
1
+ import type { RadioId } from './id.js';
2
2
 
3
3
  export interface RadioConnection {
4
4
  serialPortPath: string;
@@ -1,6 +1,6 @@
1
- import { RadioModelId } from '../branded-types/radio-model-id.js';
2
- import { RadioModuleId } from '../branded-types/radio-module-id.js';
3
- import { RadioDriver } from './driver.js';
1
+ import type { RadioDriver } from './driver.js';
2
+ import type { RadioModelId } from '../branded-types/radio-model-id.js';
3
+ import type { RadioModuleId } from '../branded-types/radio-module-id.js';
4
4
 
5
5
  export interface RadioDriverProvider {
6
6
  getId(): RadioModuleId;
@@ -1,7 +1,7 @@
1
- import { RadioMemory } from './memory.js';
2
- import { RadioProgressIndicator } from './progress-indicator.js';
1
+ import type { RadioMemory } from './memory.js';
2
+ import type { RadioProgressIndicator } from './progress-indicator.js';
3
3
 
4
4
  export interface RadioDriver {
5
- readRadio(serialPortPath: string, progressIndicator: RadioProgressIndicator): Promise<RadioMemory | undefined>;
5
+ readRadio(serialPortPath: string, progressIndicator: RadioProgressIndicator): Promise<RadioMemory>;
6
6
  writeRadio(serialPortPath: string, memory: RadioMemory, progressIndicator: RadioProgressIndicator): Promise<void>;
7
7
  }
package/src/radio/id.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { RadioModelId } from '../branded-types/radio-model-id.js';
2
- import { RadioModuleId } from '../branded-types/radio-module-id.js';
1
+ import type { RadioModelId } from '../branded-types/radio-model-id.js';
2
+ import type { RadioModuleId } from '../branded-types/radio-module-id.js';
3
3
 
4
4
  /**
5
5
  * A unique identifier for a radio.
@@ -0,0 +1,6 @@
1
+ import type { RadioMemorySegment } from './memory-segment.js';
2
+
3
+ export interface RadioMemoryConfig {
4
+ chunkSize: number;
5
+ segments: RadioMemorySegment[];
6
+ }
@@ -1,5 +1,4 @@
1
1
  export interface RadioMemorySegment {
2
+ endAddress: number;
2
3
  startAddress: number;
3
- length: number;
4
- data: Uint8Array;
5
4
  }
@@ -1,7 +1,6 @@
1
- import { RadioModelId } from '../branded-types/radio-model-id.js';
2
- import { RadioMemorySegment } from './memory-segment.js';
1
+ import type { RadioModelId } from '../branded-types/radio-model-id.js';
3
2
 
4
3
  export interface RadioMemory {
5
4
  radioModel: RadioModelId;
6
- contents: RadioMemorySegment[];
5
+ contents: Uint8Array[];
7
6
  }
@@ -1,5 +1,5 @@
1
- import { RadioModuleId } from '../branded-types/radio-module-id.js';
2
- import { Radio } from './radio.js';
1
+ import type { Radio } from './radio.js';
2
+ import type { RadioModuleId } from '../branded-types/radio-module-id.js';
3
3
 
4
4
  export interface RadioModule {
5
5
  getId(): RadioModuleId;
@@ -1,5 +1,5 @@
1
- import { RadioProgrammedChannel } from './programmed-channel.js';
2
- import { RadioSettings } from './settings.js';
1
+ import type { RadioProgrammedChannel } from './programmed-channel.js';
2
+ import type { RadioSettings } from './settings.js';
3
3
 
4
4
  export interface RadioProgram {
5
5
  settings: RadioSettings;
@@ -1,5 +1,5 @@
1
- import { RadioChannel } from './channel.js';
2
- import { RadioSettings } from './settings.js';
1
+ import type { RadioChannel } from './channel.js';
2
+ import type { RadioSettings } from './settings.js';
3
3
 
4
4
  export interface RadioProgrammedChannel {
5
5
  channelNumber: number;
@@ -1,11 +1,13 @@
1
- import { RadioId } from './id.js';
2
- import { RadioMemory } from './memory.js';
3
- import { RadioProgram } from './program.js';
4
- import { RadioSchema } from './schema.js';
1
+ import type { RadioId } from './id.js';
2
+ import type { RadioMemory } from './memory.js';
3
+ import type { RadioMemoryConfig } from './memory-config.js';
4
+ import type { RadioProgram } from './program.js';
5
+ import type { RadioSchema } from './schema.js';
5
6
 
6
7
  export interface Radio {
7
8
  getId(): RadioId;
8
9
  getSchema(): Promise<RadioSchema>;
10
+ getMemoryConfig(): RadioMemoryConfig;
9
11
  decodeMemory(memory: RadioMemory): RadioProgram;
10
12
  encodeProgram(program: RadioProgram, memory: RadioMemory): RadioMemory;
11
13
  }
@@ -1,4 +1,4 @@
1
- import { RadioModelId } from '../branded-types/radio-model-id.js';
1
+ import type { RadioModelId } from '../branded-types/radio-model-id.js';
2
2
 
3
3
  export interface RadioSchema {
4
4
  model: RadioModelId;
package/src/radio/tone.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { CTCSS } from './ctcss.js';
2
- import { DCS } from './dcs.js';
1
+ import type { CTCSS } from './ctcss.js';
2
+ import type { DCS } from './dcs.js';
3
3
 
4
4
  export enum RadioToneType {
5
5
  CTCSS,
@@ -1,8 +1,8 @@
1
- import { Frequency } from '../branded-types/frequency.js';
2
- import { LicenseClassId } from '../branded-types/license-class-id.js';
3
- import { SpectrumBandId } from '../branded-types/spectrum-band-id.js';
4
- import { Wavelength } from '../branded-types/wavelength.js';
5
- import { SpectrumChannel } from './channel.js';
1
+ import type { Frequency } from '../branded-types/frequency.js';
2
+ import type { LicenseClassId } from '../branded-types/license-class-id.js';
3
+ import type { SpectrumBandId } from '../branded-types/spectrum-band-id.js';
4
+ import type { SpectrumChannel } from './channel.js';
5
+ import type { Wavelength } from '../branded-types/wavelength.js';
6
6
 
7
7
  export interface SpectrumBand {
8
8
  id: SpectrumBandId;
@@ -1,4 +1,4 @@
1
- import { Frequency } from '../branded-types/frequency.js';
1
+ import type { Frequency } from '../branded-types/frequency.js';
2
2
 
3
3
  export interface SpectrumChannel {
4
4
  name: string;
@@ -1,4 +1,4 @@
1
- import { SpectrumModeId } from '../branded-types/spectrum-mode-id.js';
1
+ import type { SpectrumModeId } from '../branded-types/spectrum-mode-id.js';
2
2
 
3
3
  export interface SpectrumMode {
4
4
  id: SpectrumModeId;
@@ -1,8 +1,8 @@
1
- import { Frequency } from '../branded-types/frequency.js';
2
- import { LicenseClassId } from '../branded-types/license-class-id.js';
3
- import { SpectrumBandId } from '../branded-types/spectrum-band-id.js';
4
- import { SpectrumModeId } from '../branded-types/spectrum-mode-id.js';
5
- import { SpectrumPrivilegeId } from '../branded-types/spectrum-privilege-id.js';
1
+ import type { Frequency } from '../branded-types/frequency.js';
2
+ import type { LicenseClassId } from '../branded-types/license-class-id.js';
3
+ import type { SpectrumBandId } from '../branded-types/spectrum-band-id.js';
4
+ import type { SpectrumModeId } from '../branded-types/spectrum-mode-id.js';
5
+ import type { SpectrumPrivilegeId } from '../branded-types/spectrum-privilege-id.js';
6
6
 
7
7
  export interface SpectrumPrivilege {
8
8
  id: SpectrumPrivilegeId;
package/dist/brand.d.ts DELETED
@@ -1,6 +0,0 @@
1
- declare const brand: unique symbol;
2
- export type Brand<T, TBrand extends string> = T & {
3
- [brand]: TBrand;
4
- };
5
- export {};
6
- //# sourceMappingURL=brand.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"brand.d.ts","sourceRoot":"","sources":["../src/brand.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,KAAK,EAAE,OAAO,MAAM,CAAC;AAEnC,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,MAAM,SAAS,MAAM,IAAI,CAAC,GAAG;IAAE,CAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC"}
package/dist/brand.js DELETED
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=brand.js.map
package/dist/brand.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"brand.js","sourceRoot":"","sources":["../src/brand.ts"],"names":[],"mappings":"","sourcesContent":["declare const brand: unique symbol;\n\nexport type Brand<T, TBrand extends string> = T & { [brand]: TBrand };\n"]}
@@ -1,4 +0,0 @@
1
- import { Brand } from 'ts-brand';
2
- export type RadioId = Brand<string, 'radio-id'>;
3
- export declare const RadioId: import("ts-brand").Brander<RadioId>;
4
- //# sourceMappingURL=radio-id.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"radio-id.d.ts","sourceRoot":"","sources":["../../src/branded-types/radio-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAQ,MAAM,UAAU,CAAC;AAEvC,MAAM,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAChD,eAAO,MAAM,OAAO,qCAAkB,CAAC"}
@@ -1,3 +0,0 @@
1
- import { make } from 'ts-brand';
2
- export const RadioId = make();
3
- //# sourceMappingURL=radio-id.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"radio-id.js","sourceRoot":"","sources":["../../src/branded-types/radio-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,IAAI,EAAE,MAAM,UAAU,CAAC;AAGvC,MAAM,CAAC,MAAM,OAAO,GAAG,IAAI,EAAW,CAAC","sourcesContent":["import { Brand, make } from 'ts-brand';\n\nexport type RadioId = Brand<string, 'radio-id'>;\nexport const RadioId = make<RadioId>();\n"]}
@@ -1,4 +0,0 @@
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-privlege-id.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spectrum-privlege-id.d.ts","sourceRoot":"","sources":["../../src/branded-types/spectrum-privlege-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"}
@@ -1,3 +0,0 @@
1
- import { make } from 'ts-brand';
2
- export const SpectrumPrivilegeId = make();
3
- //# sourceMappingURL=spectrum-privlege-id.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spectrum-privlege-id.js","sourceRoot":"","sources":["../../src/branded-types/spectrum-privlege-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"]}
@@ -1,7 +0,0 @@
1
- import { RadioModuleId } from '../branded-types/radio-module-id.js';
2
- import { RadioModel } from './model.js';
3
- export interface RadioModelProvider {
4
- getId(): RadioModuleId;
5
- getModels(): RadioModel[];
6
- }
7
- //# sourceMappingURL=model-provider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-provider.d.ts","sourceRoot":"","sources":["../../src/radio/model-provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,MAAM,WAAW,kBAAkB;IACjC,KAAK,IAAI,aAAa,CAAC;IACvB,SAAS,IAAI,UAAU,EAAE,CAAC;CAC3B"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=model-provider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model-provider.js","sourceRoot":"","sources":["../../src/radio/model-provider.ts"],"names":[],"mappings":"","sourcesContent":["import { RadioModuleId } from '../branded-types/radio-module-id.js';\nimport { RadioModel } from './model.js';\n\nexport interface RadioModelProvider {\n getId(): RadioModuleId;\n getModels(): RadioModel[];\n}\n"]}
@@ -1,15 +0,0 @@
1
- import { RadioModelId } from '../branded-types/radio-model-id.js';
2
- import { RadioModuleId } from '../branded-types/radio-module-id.js';
3
- import { RadioMemory } from './memory.js';
4
- import { RadioProgram } from './program.js';
5
- import { RadioSchema } from './schema.js';
6
- export interface RadioModel {
7
- id: RadioModelId;
8
- module: RadioModuleId;
9
- name: string;
10
- manufacturer: string;
11
- getSchema(): Promise<RadioSchema>;
12
- decodeMemory(memory: RadioMemory): RadioProgram;
13
- encodeProgram(program: RadioProgram, memory: RadioMemory): RadioMemory;
14
- }
15
- //# sourceMappingURL=model.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/radio/model.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,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,YAAY,CAAC;IACjB,MAAM,EAAE,aAAa,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,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,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=model.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/radio/model.ts"],"names":[],"mappings":"","sourcesContent":["import { RadioModelId } from '../branded-types/radio-model-id.js';\nimport { RadioModuleId } from '../branded-types/radio-module-id.js';\nimport { RadioMemory } from './memory.js';\nimport { RadioProgram } from './program.js';\nimport { RadioSchema } from './schema.js';\n\nexport interface RadioModel {\n id: RadioModelId;\n module: RadioModuleId;\n name: string;\n manufacturer: string;\n getSchema(): Promise<RadioSchema>;\n decodeMemory(memory: RadioMemory): RadioProgram;\n encodeProgram(program: RadioProgram, memory: RadioMemory): RadioMemory;\n}\n"]}