@tx5dr/plugin-api 1.7.12 → 2.5.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 (181) hide show
  1. package/README.md +475 -17
  2. package/dist/__tests__/adif.test.js +107 -0
  3. package/dist/__tests__/adif.test.js.map +1 -1
  4. package/dist/__tests__/capability-context.test.d.ts +2 -0
  5. package/dist/__tests__/capability-context.test.d.ts.map +1 -0
  6. package/dist/__tests__/capability-context.test.js +99 -0
  7. package/dist/__tests__/capability-context.test.js.map +1 -0
  8. package/dist/__tests__/testing-utils.test.js +234 -15
  9. package/dist/__tests__/testing-utils.test.js.map +1 -1
  10. package/dist/capabilities.d.ts +38 -0
  11. package/dist/capabilities.d.ts.map +1 -0
  12. package/dist/capabilities.js +50 -0
  13. package/dist/capabilities.js.map +1 -0
  14. package/dist/compatibility.d.ts +15 -0
  15. package/dist/compatibility.d.ts.map +1 -0
  16. package/dist/compatibility.js +71 -0
  17. package/dist/compatibility.js.map +1 -0
  18. package/dist/contest-logbook-ui/assets/contest-log.css +1 -0
  19. package/dist/contest-logbook-ui/assets/contest-log.js +40 -0
  20. package/dist/contest-logbook-ui/contest-log.html +13 -0
  21. package/dist/context.d.ts +125 -54
  22. package/dist/context.d.ts.map +1 -1
  23. package/dist/definition.d.ts +98 -21
  24. package/dist/definition.d.ts.map +1 -1
  25. package/dist/definition.js +8 -1
  26. package/dist/definition.js.map +1 -1
  27. package/dist/ft8/StandardQSOPluginRuntime.d.ts +142 -0
  28. package/dist/ft8/StandardQSOPluginRuntime.d.ts.map +1 -0
  29. package/dist/ft8/StandardQSOPluginRuntime.js +1592 -0
  30. package/dist/ft8/StandardQSOPluginRuntime.js.map +1 -0
  31. package/dist/ft8/index.d.ts +22 -0
  32. package/dist/ft8/index.d.ts.map +1 -0
  33. package/dist/ft8/index.js +176 -0
  34. package/dist/ft8/index.js.map +1 -0
  35. package/dist/helpers.d.ts +417 -132
  36. package/dist/helpers.d.ts.map +1 -1
  37. package/dist/hooks.d.ts +56 -34
  38. package/dist/hooks.d.ts.map +1 -1
  39. package/dist/host-dependencies.d.ts +101 -0
  40. package/dist/host-dependencies.d.ts.map +1 -1
  41. package/dist/index.d.ts +20 -6
  42. package/dist/index.d.ts.map +1 -1
  43. package/dist/index.js +12 -1
  44. package/dist/index.js.map +1 -1
  45. package/dist/runtime.d.ts +539 -13
  46. package/dist/runtime.d.ts.map +1 -1
  47. package/dist/runtime.js +9 -1
  48. package/dist/runtime.js.map +1 -1
  49. package/dist/settings.d.ts +31 -0
  50. package/dist/settings.d.ts.map +1 -1
  51. package/dist/simulation.d.ts +60 -0
  52. package/dist/simulation.d.ts.map +1 -0
  53. package/dist/simulation.js +2 -0
  54. package/dist/simulation.js.map +1 -0
  55. package/dist/sync.d.ts +98 -6
  56. package/dist/sync.d.ts.map +1 -1
  57. package/dist/sync.js +6 -0
  58. package/dist/sync.js.map +1 -1
  59. package/dist/testing/index.d.ts +74 -12
  60. package/dist/testing/index.d.ts.map +1 -1
  61. package/dist/testing/index.js +372 -105
  62. package/dist/testing/index.js.map +1 -1
  63. package/dist/toolkit/contest/CabrilloBuilder.d.ts +7 -0
  64. package/dist/toolkit/contest/CabrilloBuilder.d.ts.map +1 -0
  65. package/dist/toolkit/contest/CabrilloBuilder.js +11 -0
  66. package/dist/toolkit/contest/CabrilloBuilder.js.map +1 -0
  67. package/dist/toolkit/contest/ContestCategorySchema.d.ts +11 -0
  68. package/dist/toolkit/contest/ContestCategorySchema.d.ts.map +1 -0
  69. package/dist/toolkit/contest/ContestCategorySchema.js +6 -0
  70. package/dist/toolkit/contest/ContestCategorySchema.js.map +1 -0
  71. package/dist/toolkit/contest/ContestLogbook.d.ts +223 -0
  72. package/dist/toolkit/contest/ContestLogbook.d.ts.map +1 -0
  73. package/dist/toolkit/contest/ContestLogbook.js +845 -0
  74. package/dist/toolkit/contest/ContestLogbook.js.map +1 -0
  75. package/dist/toolkit/contest/ContestQsoEnvelopeAdapter.d.ts +28 -0
  76. package/dist/toolkit/contest/ContestQsoEnvelopeAdapter.d.ts.map +1 -0
  77. package/dist/toolkit/contest/ContestQsoEnvelopeAdapter.js +79 -0
  78. package/dist/toolkit/contest/ContestQsoEnvelopeAdapter.js.map +1 -0
  79. package/dist/toolkit/contest/ContestQsoProjector.d.ts +12 -0
  80. package/dist/toolkit/contest/ContestQsoProjector.d.ts.map +1 -0
  81. package/dist/toolkit/contest/ContestQsoProjector.js +13 -0
  82. package/dist/toolkit/contest/ContestQsoProjector.js.map +1 -0
  83. package/dist/toolkit/contest/ContestSessionNotifier.d.ts +9 -0
  84. package/dist/toolkit/contest/ContestSessionNotifier.d.ts.map +1 -0
  85. package/dist/toolkit/contest/ContestSessionNotifier.js +13 -0
  86. package/dist/toolkit/contest/ContestSessionNotifier.js.map +1 -0
  87. package/dist/toolkit/contest/ContestSessionRepository.d.ts +21 -0
  88. package/dist/toolkit/contest/ContestSessionRepository.d.ts.map +1 -0
  89. package/dist/toolkit/contest/ContestSessionRepository.js +27 -0
  90. package/dist/toolkit/contest/ContestSessionRepository.js.map +1 -0
  91. package/dist/toolkit/contest/DefaultContestSession.d.ts +105 -0
  92. package/dist/toolkit/contest/DefaultContestSession.d.ts.map +1 -0
  93. package/dist/toolkit/contest/DefaultContestSession.js +387 -0
  94. package/dist/toolkit/contest/DefaultContestSession.js.map +1 -0
  95. package/dist/toolkit/contest/DefaultContestWorkbench.d.ts +100 -0
  96. package/dist/toolkit/contest/DefaultContestWorkbench.d.ts.map +1 -0
  97. package/dist/toolkit/contest/DefaultContestWorkbench.js +33 -0
  98. package/dist/toolkit/contest/DefaultContestWorkbench.js.map +1 -0
  99. package/dist/toolkit/contest/FT8ContestDefinition.d.ts +83 -0
  100. package/dist/toolkit/contest/FT8ContestDefinition.d.ts.map +1 -0
  101. package/dist/toolkit/contest/FT8ContestDefinition.js +167 -0
  102. package/dist/toolkit/contest/FT8ContestDefinition.js.map +1 -0
  103. package/dist/toolkit/contest/FT8ContestModules.d.ts +178 -0
  104. package/dist/toolkit/contest/FT8ContestModules.d.ts.map +1 -0
  105. package/dist/toolkit/contest/FT8ContestModules.js +247 -0
  106. package/dist/toolkit/contest/FT8ContestModules.js.map +1 -0
  107. package/dist/toolkit/contest/FT8ContestPlugin.d.ts +55 -0
  108. package/dist/toolkit/contest/FT8ContestPlugin.d.ts.map +1 -0
  109. package/dist/toolkit/contest/FT8ContestPlugin.js +322 -0
  110. package/dist/toolkit/contest/FT8ContestPlugin.js.map +1 -0
  111. package/dist/toolkit/contest/FT8ContestTestKit.d.ts +12 -0
  112. package/dist/toolkit/contest/FT8ContestTestKit.d.ts.map +1 -0
  113. package/dist/toolkit/contest/FT8ContestTestKit.js +60 -0
  114. package/dist/toolkit/contest/FT8ContestTestKit.js.map +1 -0
  115. package/dist/toolkit/contest/contest-toolkit.test.d.ts +2 -0
  116. package/dist/toolkit/contest/contest-toolkit.test.d.ts.map +1 -0
  117. package/dist/toolkit/contest/contest-toolkit.test.js +1196 -0
  118. package/dist/toolkit/contest/contest-toolkit.test.js.map +1 -0
  119. package/dist/toolkit/contest/index.d.ts +14 -0
  120. package/dist/toolkit/contest/index.d.ts.map +1 -0
  121. package/dist/toolkit/contest/index.js +14 -0
  122. package/dist/toolkit/contest/index.js.map +1 -0
  123. package/dist/toolkit/index.d.ts +3 -0
  124. package/dist/toolkit/index.d.ts.map +1 -0
  125. package/dist/toolkit/index.js +3 -0
  126. package/dist/toolkit/index.js.map +1 -0
  127. package/dist/toolkit/parallel-qso/AuthorizationLease.d.ts +15 -0
  128. package/dist/toolkit/parallel-qso/AuthorizationLease.d.ts.map +1 -0
  129. package/dist/toolkit/parallel-qso/AuthorizationLease.js +25 -0
  130. package/dist/toolkit/parallel-qso/AuthorizationLease.js.map +1 -0
  131. package/dist/toolkit/parallel-qso/BoundedCallSessionController.d.ts +40 -0
  132. package/dist/toolkit/parallel-qso/BoundedCallSessionController.d.ts.map +1 -0
  133. package/dist/toolkit/parallel-qso/BoundedCallSessionController.js +81 -0
  134. package/dist/toolkit/parallel-qso/BoundedCallSessionController.js.map +1 -0
  135. package/dist/toolkit/parallel-qso/BoundedCallSessionController.test.d.ts +2 -0
  136. package/dist/toolkit/parallel-qso/BoundedCallSessionController.test.d.ts.map +1 -0
  137. package/dist/toolkit/parallel-qso/BoundedCallSessionController.test.js +31 -0
  138. package/dist/toolkit/parallel-qso/BoundedCallSessionController.test.js.map +1 -0
  139. package/dist/toolkit/parallel-qso/CompletionTracker.d.ts +20 -0
  140. package/dist/toolkit/parallel-qso/CompletionTracker.d.ts.map +1 -0
  141. package/dist/toolkit/parallel-qso/CompletionTracker.js +20 -0
  142. package/dist/toolkit/parallel-qso/CompletionTracker.js.map +1 -0
  143. package/dist/toolkit/parallel-qso/LaneFrequencyController.d.ts +19 -0
  144. package/dist/toolkit/parallel-qso/LaneFrequencyController.d.ts.map +1 -0
  145. package/dist/toolkit/parallel-qso/LaneFrequencyController.js +23 -0
  146. package/dist/toolkit/parallel-qso/LaneFrequencyController.js.map +1 -0
  147. package/dist/toolkit/parallel-qso/ParallelQSOCoordinator.d.ts +134 -0
  148. package/dist/toolkit/parallel-qso/ParallelQSOCoordinator.d.ts.map +1 -0
  149. package/dist/toolkit/parallel-qso/ParallelQSOCoordinator.js +554 -0
  150. package/dist/toolkit/parallel-qso/ParallelQSOCoordinator.js.map +1 -0
  151. package/dist/toolkit/parallel-qso/ParallelQSOCoordinator.test.d.ts +2 -0
  152. package/dist/toolkit/parallel-qso/ParallelQSOCoordinator.test.d.ts.map +1 -0
  153. package/dist/toolkit/parallel-qso/ParallelQSOCoordinator.test.js +470 -0
  154. package/dist/toolkit/parallel-qso/ParallelQSOCoordinator.test.js.map +1 -0
  155. package/dist/toolkit/parallel-qso/PostCompletionRecoveryLease.d.ts +20 -0
  156. package/dist/toolkit/parallel-qso/PostCompletionRecoveryLease.d.ts.map +1 -0
  157. package/dist/toolkit/parallel-qso/PostCompletionRecoveryLease.js +29 -0
  158. package/dist/toolkit/parallel-qso/PostCompletionRecoveryLease.js.map +1 -0
  159. package/dist/toolkit/parallel-qso/ProtocolLane.d.ts +50 -0
  160. package/dist/toolkit/parallel-qso/ProtocolLane.d.ts.map +1 -0
  161. package/dist/toolkit/parallel-qso/ProtocolLane.js +2 -0
  162. package/dist/toolkit/parallel-qso/ProtocolLane.js.map +1 -0
  163. package/dist/toolkit/parallel-qso/controllers.test.d.ts +2 -0
  164. package/dist/toolkit/parallel-qso/controllers.test.d.ts.map +1 -0
  165. package/dist/toolkit/parallel-qso/controllers.test.js +36 -0
  166. package/dist/toolkit/parallel-qso/controllers.test.js.map +1 -0
  167. package/dist/toolkit/parallel-qso/index.d.ts +8 -0
  168. package/dist/toolkit/parallel-qso/index.d.ts.map +1 -0
  169. package/dist/toolkit/parallel-qso/index.js +8 -0
  170. package/dist/toolkit/parallel-qso/index.js.map +1 -0
  171. package/dist/utils/adif.d.ts +1 -1
  172. package/dist/utils/adif.d.ts.map +1 -1
  173. package/dist/utils/adif.js +96 -51
  174. package/dist/utils/adif.js.map +1 -1
  175. package/dist/utils/qso-text-fields.d.ts +7 -1
  176. package/dist/utils/qso-text-fields.d.ts.map +1 -1
  177. package/dist/utils/qso-text-fields.js +74 -6
  178. package/dist/utils/qso-text-fields.js.map +1 -1
  179. package/package.json +28 -6
  180. package/src/bridge.d.ts +3 -0
  181. package/tokens.css +51 -0
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEzE;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEhF;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,4DAA4D;IAC5D,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,wEAAwE;IACxE,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,6DAA6D;IAC7D,IAAI,EAAE,mBAAmB,CAAC;IAC1B,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;;;;;OAQG;IACH,MAAM,CACJ,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,IAAI,CAAC,EAAE,oBAAoB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC;IAEhD;;;OAGG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI,CAAC;IAEjC;;;;;OAKG;IACH,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,YAAY,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE,GAC1D,IAAI,CAAC;IAER;;OAEG;IACH,WAAW,IAAI,uBAAuB,CAAC;IAEvC;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC;IAE3D;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAE3C;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,gCAAgC,GAAG,IAAI,CAAC;IAE/D;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;;;OAIG;IACH,oBAAoB,CAAC,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CACnD"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD;;;;;GAKG;AACH,MAAM,MAAM,mBAAmB,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;AAEhF;;;;;;GAMG;AACH,MAAM,WAAW,sBAAsB;IACrC,kDAAkD;IAClD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+DAA+D;IAC/D,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,6EAA6E;IAC7E,YAAY,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,KAAK,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC,CAAC;IACrD,4DAA4D;IAC5D,OAAO,CAAC,EAAE,sBAAsB,CAAC;IACjC,6EAA6E;IAC7E,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,kEAAkE;IAClE,OAAO,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACnC,uEAAuE;IACvE,KAAK,CAAC,EAAE,qBAAqB,CAAC;IAC9B,kFAAkF;IAClF,OAAO,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACrC,gDAAgD;IAChD,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACjC,wEAAwE;IACxE,mBAAmB,CAAC,EAAE,qCAAqC,CAAC;IAC5D,+EAA+E;IAC/E,YAAY,CAAC,EAAE,oBAAoB,CAAC;CACrC;AAED,4EAA4E;AAC5E,MAAM,MAAM,+BAA+B,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAErH,yEAAyE;AACzE,MAAM,WAAW,gCAAgC;IAC/C,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,IAAI,EAAE,+BAA+B,CAAC;CACvC;AAED,qFAAqF;AACrF,MAAM,WAAW,qCAAqC;IACpD,8FAA8F;IAC9F,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,4EAA4E;IAC5E,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,yEAAyE;AACzE,MAAM,WAAW,gCAAgC;IAC/C,4EAA4E;IAC5E,KAAK,CAAC,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,+BAA+B,CAAA;KAAE,CAAC;IACjE,mEAAmE;IACnE,MAAM,CAAC,EAAE,gCAAgC,EAAE,CAAC;IAC5C,yFAAyF;IACzF,GAAG,CAAC,EAAE;QACJ,IAAI,EAAE,+BAA+B,CAAC;QACtC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;IACF;;;OAGG;IACH,YAAY,CAAC,EAAE,qCAAqC,EAAE,CAAC;IACvD,uEAAuE;IACvE,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,2CAA2C;IAC3C,OAAO,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC;CAC9B;AAED,4EAA4E;AAC5E,MAAM,WAAW,sCAAsC;IACrD,2FAA2F;IAC3F,IAAI,EAAE,cAAc,CAAC;IACrB,mEAAmE;IACnE,sBAAsB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACjD,oEAAoE;IACpE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,6EAA6E;AAC7E,MAAM,WAAW,kCAAkC;IACjD,4DAA4D;IAC5D,EAAE,EAAE,MAAM,CAAC;IACX,oCAAoC;IACpC,KAAK,EAAE,qCAAqC,CAAC;IAC7C,gDAAgD;IAChD,KAAK,EAAE,gCAAgC,CAAC;CACzC;AAED,uFAAuF;AACvF,MAAM,WAAW,qCAAqC;IACpD,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,2EAA2E;IAC3E,IAAI,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACpC,8DAA8D;IAC9D,OAAO,EAAE,iBAAiB,CAAC;IAC3B,yDAAyD;IACzD,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACtC,oCAAoC;IACpC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,sEAAsE;IACtE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gCAAgC,CAAC,CAAC;IAC1D,6CAA6C;IAC7C,WAAW,EAAE,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7E,6CAA6C;IAC7C,YAAY,CAAC,EAAE,sCAAsC,EAAE,CAAC;IACxD,yCAAyC;IACzC,QAAQ,CAAC,EAAE,kCAAkC,EAAE,CAAC;CACjD;AAED,kFAAkF;AAClF,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,OAAO,EAAE,KAAK,CAAC;IACf,kEAAkE;IAClE,MAAM,EAAE,MAAM,CAAC;IACf,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,8DAA8D;AAC9D,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAC1F,yDAAyD;AACzD,MAAM,MAAM,0BAA0B,GAAG,SAAS,GAAG,WAAW,GAAG,MAAM,GAAG,WAAW,CAAC;AAExF,iEAAiE;AACjE,MAAM,MAAM,mBAAmB,GAC3B;IACE,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GACD;IACE,IAAI,EAAE,QAAQ,GAAG,iBAAiB,CAAC;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEN,uEAAuE;AACvE,MAAM,WAAW,wBAAwB;IACvC,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAC;IACX,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4BAA4B;IAC5B,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,8CAA8C;IAC9C,YAAY,CAAC,EAAE,0BAA0B,CAAC;IAC1C,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,2CAA2C;IAC3C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uDAAuD;IACvD,YAAY,CAAC,EAAE;QACb,KAAK,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,wDAAwD;IACxD,KAAK,CAAC,EAAE,mBAAmB,CAAC;IAC5B,yEAAyE;IACzE,UAAU,CAAC,EAAE;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;CACtD;AAED,qFAAqF;AACrF,MAAM,WAAW,iBAAiB;IAChC,2DAA2D;IAC3D,EAAE,EAAE,MAAM,CAAC;IACX,8CAA8C;IAC9C,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;IAChD,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACzC,gEAAgE;IAChE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oEAAoE;IACpE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,qEAAqE;AACrE,MAAM,WAAW,4BAA4B;IAC3C,2CAA2C;IAC3C,KAAK,EAAE,WAAW,GAAG,OAAO,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,CAAC;IACrE,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,2EAA2E;AAC3E,MAAM,WAAW,mBAAmB;IAClC,sEAAsE;IACtE,EAAE,EAAE,MAAM,CAAC;IACX,+DAA+D;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gFAAgF;IAChF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,8EAA8E;AAC9E,MAAM,WAAW,sBAAsB;IACrC,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,YAAY,EAAE,MAAM,CAAC;IACrB,mDAAmD;IACnD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,gBAAgB,EAAE,MAAM,CAAC;IACzB,wEAAwE;IACxE,iBAAiB,EAAE,MAAM,CAAC;IAC1B,2EAA2E;IAC3E,YAAY,CAAC,EAAE,mBAAmB,EAAE,CAAC;IACrC,oDAAoD;IACpD,OAAO,CAAC,EAAE,wBAAwB,EAAE,CAAC;IACrC,mDAAmD;IACnD,UAAU,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACjC,uDAAuD;IACvD,UAAU,CAAC,EAAE,4BAA4B,CAAC;IAC1C,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mDAAmD;IACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,0DAA0D;AAC1D,MAAM,MAAM,oBAAoB,GAC5B;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,cAAc,EAAE,MAAM,CAAA;CAAE,GAC5D;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnE,8DAA8D;AAC9D,MAAM,WAAW,wBAAwB;IACvC,4DAA4D;IAC5D,MAAM,EAAE,oBAAoB,CAAC;IAC7B,8DAA8D;IAC9D,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,6FAA6F;AAC7F,MAAM,MAAM,4BAA4B,GACpC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,SAAS,GAAG,SAAS,CAAA;CAAE,GAC3F;IAAE,SAAS,EAAE,SAAS,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC;AAEjD,2EAA2E;AAC3E,MAAM,WAAW,oBAAoB;IACnC,sEAAsE;IACtE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gGAAgG;IAChG,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,sDAAsD;IACtD,cAAc,CAAC,EAAE,2BAA2B,EAAE,CAAC;IAC/C,qFAAqF;IACrF,qBAAqB,CAAC,EAAE,4BAA4B,EAAE,CAAC;IACvD,6DAA6D;IAC7D,OAAO,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9C;AAED,qFAAqF;AACrF,MAAM,WAAW,yBAAyB;IACxC,sBAAsB;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,sBAAsB,EAAE,MAAM,CAAC;CAChC;AAED,wEAAwE;AACxE,MAAM,WAAW,oBAAoB;IACnC,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;IACjB,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,yEAAyE;AACzE,MAAM,WAAW,qBAAsB,SAAQ,oBAAoB;IACjE,oCAAoC;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,kEAAkE;IAClE,iBAAiB,EAAE,IAAI,CAAC;CACzB;AAED,uEAAuE;AACvE,MAAM,MAAM,yBAAyB,GACjC,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,GACrC,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,aAAa,GAAG,OAAO,GAAG,QAAQ,GACrE,WAAW,GAAG,YAAY,GAAG,MAAM,CAAC;AAExC,2EAA2E;AAC3E,MAAM,MAAM,wBAAwB,GAAG,aAAa,GAAG,OAAO,CAAC;AAE/D,oEAAoE;AACpE,MAAM,MAAM,iBAAiB,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAExF,gEAAgE;AAChE,MAAM,MAAM,iBAAiB,GACzB,QAAQ,GAAG,OAAO,GAAG,cAAc,GAAG,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,gBAAgB,CAAC;AAEjG,+DAA+D;AAC/D,MAAM,WAAW,gBAAgB;IAC/B,kEAAkE;IAClE,OAAO,EAAE,MAAM,CAAC;IAChB,+BAA+B;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,SAAS,EAAE,OAAO,CAAC;IACnB,6DAA6D;IAC7D,YAAY,EAAE,yBAAyB,CAAC;IACxC,6CAA6C;IAC7C,IAAI,EAAE,iBAAiB,CAAC;IACxB,yDAAyD;IACzD,IAAI,EAAE,iBAAiB,CAAC;IACxB,+DAA+D;IAC/D,WAAW,CAAC,EAAE,wBAAwB,CAAC;IACvC,+DAA+D;IAC/D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,yDAAyD;IACzD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iDAAiD;IACjD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iEAAiE;IACjE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wEAAwE;IACxE,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC;IACvB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,6EAA6E;IAC7E,OAAO,CAAC,EAAE,wBAAwB,EAAE,CAAC;CACtC;AAED,8EAA8E;AAC9E,MAAM,WAAW,qBAAqB;IACpC,uEAAuE;IACvE,OAAO,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0DAA0D;IAC1D,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,4DAA4D;IAC5D,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iFAAiF;IACjF,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,mCAAmC;IACnC,IAAI,EAAE,gBAAgB,EAAE,CAAC;CAC1B;AAED,iFAAiF;AACjF,MAAM,WAAW,6BAA6B;IAC5C,+CAA+C;IAC/C,QAAQ,EAAE,QAAQ,CAAC;IACnB,iEAAiE;IACjE,MAAM,EAAE,sBAAsB,CAAC;IAC/B,wEAAwE;IACxE,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,2EAA2E;AAC3E,MAAM,WAAW,2BAA2B;IAC1C,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,gFAAgF;IAChF,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,YAAY,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE,CAAC;CAC7D;AAED,kFAAkF;AAClF,MAAM,WAAW,4BAA4B;IAC3C,sFAAsF;IACtF,OAAO,EAAE,UAAU,GAAG,WAAW,GAAG,UAAU,CAAC;IAC/C,yCAAyC;IACzC,MAAM,CAAC,EAAE,YAAY,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,qBAAqB,GAAG,cAAc,GAAG,kBAAkB,CAAC;IAC3H,8DAA8D;IAC9D,QAAQ,EAAE,qBAAqB,CAAC;IAChC,kFAAkF;IAClF,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,6EAA6E;AAC7E,MAAM,WAAW,qBAAsB,SAAQ,eAAe;IAC5D,qFAAqF;IACrF,sBAAsB,CAAC,QAAQ,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,6BAA6B,GAAG,OAAO,CAAC;IACnG,2EAA2E;IAC3E,aAAa,CAAC,OAAO,EAAE,2BAA2B,GAAG,4BAA4B,CAAC;IAClF,uFAAuF;IACvF,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,EAAE,eAAe,EAAE,MAAM,GAAG,4BAA4B,CAAC;IACpH,sEAAsE;IACtE,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,4BAA4B,CAAC;IACrF,iEAAiE;IACjE,WAAW,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,4BAA4B,CAAC;IACrF,0EAA0E;IAC1E,YAAY,CAAC,CAAC,eAAe,EAAE,MAAM,GAAG,4BAA4B,CAAC;IACrE,mDAAmD;IACnD,gBAAgB,IAAI,qBAAqB,CAAC;CAC3C;AAED,4EAA4E;AAC5E,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,IAAI,qBAAqB,CAOlG;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,6DAA6D;IAC7D,IAAI,EAAE,mBAAmB,CAAC;IAC1B,4EAA4E;IAC5E,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,mEAAmE;AACnE,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG,aAAa,CAAC;AAEjE,sEAAsE;AACtE,MAAM,WAAW,sBAAsB;IACrC,6EAA6E;IAC7E,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,MAAM,EAAE,sBAAsB,CAAC;IAC/B,iFAAiF;IACjF,YAAY,EAAE,OAAO,CAAC;IACtB,gFAAgF;IAChF,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;;;;GAKG;AACH,MAAM,MAAM,yBAAyB,GAAG,OAAO,CAAC;AAEhD,gFAAgF;AAChF,MAAM,WAAW,qCAAqC;IACpD,8CAA8C;IAC9C,sBAAsB,EAAE,MAAM,EAAE,CAAC;IACjC,6CAA6C;IAC7C,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,2CAA2C;IAC3C,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,aAAa,GAAG,WAAW,CAAC;CAC5D;AAED,4EAA4E;AAC5E,MAAM,WAAW,2BAA2B;IAC1C,mDAAmD;IACnD,MAAM,EAAE,SAAS,CAAC;IAClB,uFAAuF;IACvF,cAAc,EAAE,MAAM,CAAC;IACvB,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,iBAAiB,CAAC,EAAE,cAAc,GAAG,mBAAmB,CAAC;IACzD,4FAA4F;IAC5F,WAAW,CAAC,EACR;QAAE,IAAI,EAAE,gBAAgB,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,GAC7C;QAAE,IAAI,EAAE,oBAAoB,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACvD,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,4EAA4E;AAC5E,MAAM,WAAW,+BAA+B;IAC9C,4DAA4D;IAC5D,cAAc,EAAE,MAAM,CAAC;IACvB,2EAA2E;IAC3E,QAAQ,EAAE,MAAM,CAAC;IACjB,kFAAkF;IAClF,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6EAA6E;IAC7E,MAAM,EAAE,WAAW,GAAG,QAAQ,CAAC;IAC/B,uDAAuD;IACvD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,4DAA4D;AAC5D,MAAM,WAAW,sBAAuB,SAAQ,gBAAgB;IAC9D,kFAAkF;IAClF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iFAAiF;IACjF,aAAa,CAAC,EAAE,oBAAoB,EAAE,CAAC;IACvC,yEAAyE;IACzE,QAAQ,EAAE,uBAAuB,CAAC;IAClC,6EAA6E;IAC7E,aAAa,CAAC,EAAE,2BAA2B,CAAC;IAC5C,oEAAoE;IACpE,cAAc,CAAC,EAAE,2BAA2B,EAAE,CAAC;IAC/C,iFAAiF;IACjF,qBAAqB,CAAC,EAAE,4BAA4B,EAAE,CAAC;IACvD,0GAA0G;IAC1G,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,wEAAwE;IACxE,UAAU,IAAI,yBAAyB,CAAC;IAExC,+EAA+E;IAC/E,OAAO,CAAC,UAAU,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAErD;;;OAGG;IACH,+BAA+B,CAAC,CAAC,MAAM,EAAE,qCAAqC,GAAG,OAAO,CAAC;IAEzF;;;;;OAKG;IACH,mBAAmB,CAAC,CAAC,UAAU,EAAE,+BAA+B,GAAG,IAAI,CAAC;IAExE;;;;;;;;OAQG;IACH,MAAM,CACJ,QAAQ,EAAE,gBAAgB,EAAE,EAC5B,IAAI,EAAE,sBAAsB,GAC3B,OAAO,CAAC,sBAAsB,CAAC,GAAG,sBAAsB,CAAC;IAE5D;;;OAGG;IACH,eAAe,IAAI,MAAM,GAAG,IAAI,CAAC;IAEjC;;;;OAIG;IACH,gBAAgB,CAAC,IAAI,oBAAoB,EAAE,CAAC;IAE5C;;;;;;;OAOG;IACH,WAAW,CACT,QAAQ,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE;QAAE,OAAO,EAAE,YAAY,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE,GAC1D,OAAO,GAAG,IAAI,CAAC;IAElB;;OAEG;IACH,WAAW,IAAI,uBAAuB,CAAC;IAEvC;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,sBAAsB,CAAC,GAAG,IAAI,CAAC;IAE3D;;OAEG;IACH,QAAQ,CAAC,KAAK,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAE3C,gFAAgF;IAChF,cAAc,CAAC,CAAC,MAAM,EAAE,yBAAyB,GAAG,IAAI,CAAC;IAEzD,0EAA0E;IAC1E,YAAY,CAAC,CACX,UAAU,EAAE,wBAAwB,GACnC,oBAAoB,GAAG,IAAI,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAAC;IAEtE;;OAEG;IACH,cAAc,CAAC,MAAM,EAAE,gCAAgC,GAAG,IAAI,CAAC;IAE/D;;;;OAIG;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE7B;;;;OAIG;IACH,oBAAoB,CAAC,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAElD,mEAAmE;IACnE,wBAAwB,CAAC,CAAC,QAAQ,EAAE,qBAAqB,EAAE,GAAG,IAAI,CAAC;CACpE"}
package/dist/runtime.js CHANGED
@@ -1,2 +1,10 @@
1
- export {};
1
+ /** Runtime type guard for the optional assisted-target queue capability. */
2
+ export function isQueuedStrategyRuntime(runtime) {
3
+ const candidate = runtime;
4
+ return typeof candidate.observeDecodedMessages === 'function'
5
+ && typeof candidate.enqueueTarget === 'function'
6
+ && typeof candidate.reorderTarget === 'function'
7
+ && typeof candidate.removeTarget === 'function'
8
+ && typeof candidate.getQueueSnapshot === 'function';
9
+ }
2
10
  //# sourceMappingURL=runtime.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAqdA,4EAA4E;AAC5E,MAAM,UAAU,uBAAuB,CAAC,OAAwB;IAC9D,MAAM,SAAS,GAAG,OAAyC,CAAC;IAC5D,OAAO,OAAO,SAAS,CAAC,sBAAsB,KAAK,UAAU;WACxD,OAAO,SAAS,CAAC,aAAa,KAAK,UAAU;WAC7C,OAAO,SAAS,CAAC,aAAa,KAAK,UAAU;WAC7C,OAAO,SAAS,CAAC,YAAY,KAAK,UAAU;WAC5C,OAAO,SAAS,CAAC,gBAAgB,KAAK,UAAU,CAAC;AACxD,CAAC"}
@@ -4,33 +4,57 @@ import type { DecodeWindowSettings, NtpServerListSettings, PresetFrequency, PSKR
4
4
  * the `settings:ft8` permission.
5
5
  */
6
6
  export interface HostFT8Settings {
7
+ /** Station callsign used by the digital-mode engine. */
7
8
  myCallsign: string;
9
+ /** Station Maidenhead grid locator. */
8
10
  myGrid: string;
11
+ /** Current digital-mode dial frequency in hertz. */
9
12
  frequency: number;
13
+ /** Configured transmit power in watts. */
10
14
  transmitPower: number;
15
+ /** Whether the Host automatically answers eligible decoded calls. */
11
16
  autoReply: boolean;
17
+ /** No-progress receive/transmit cycles before the active QSO times out. */
12
18
  maxQSOTimeout: number;
13
19
  /** Set to 0 to disable the host repeated-transmission guard. */
14
20
  maxSameTransmissionCount: number;
21
+ /** Whether decoding continues while any operator is transmitting. */
15
22
  decodeWhileTransmitting: boolean;
23
+ /** Whether spectrum analysis continues while transmitting. */
16
24
  spectrumWhileTransmitting: boolean;
17
25
  }
26
+ /** Partial update accepted by `ctx.settings.ft8.update()`. */
18
27
  export type HostFT8SettingsPatch = Partial<HostFT8Settings>;
28
+ /** Current frequency preset list and whether it differs from Host defaults. */
19
29
  export interface HostFrequencyPresetsSettings {
30
+ /** Presets currently exposed by the Host. */
20
31
  presets: PresetFrequency[];
32
+ /** `true` when the current list is user- or plugin-customized. */
21
33
  isCustomized: boolean;
22
34
  }
35
+ /** Partial station metadata update accepted by the station namespace. */
23
36
  export type HostStationInfoPatch = Partial<StationInfo>;
37
+ /** Partial PSK Reporter update accepted by the PSK Reporter namespace. */
24
38
  export type HostPSKReporterSettingsPatch = Partial<PSKReporterConfig>;
39
+ /**
40
+ * Read/update pair shared by patch- or replacement-based settings namespaces.
41
+ * The concrete namespace type determines whether `update` is a partial patch or
42
+ * complete replacement. Host schema validation, normalization or persistence
43
+ * failures reject the returned Promise.
44
+ */
25
45
  export interface HostSettingsNamespace<TValue, TPatch> {
26
46
  /** Returns the current host setting value for this namespace. */
27
47
  get(): Promise<TValue>;
28
48
  /** Applies a patch or replacement value and returns the updated value. */
29
49
  update(patch: TPatch): Promise<TValue>;
30
50
  }
51
+ /** Frequency preset namespace with explicit update and reset operations. */
31
52
  export interface HostFrequencyPresetsSettingsNamespace {
53
+ /** Returns the current preset list and customization flag. */
32
54
  get(): Promise<HostFrequencyPresetsSettings>;
55
+ /** Replaces all presets and returns the normalized Host value. */
33
56
  update(presets: PresetFrequency[]): Promise<HostFrequencyPresetsSettings>;
57
+ /** Restores Host defaults and returns the resulting value. */
34
58
  reset(): Promise<HostFrequencyPresetsSettings>;
35
59
  }
36
60
  /**
@@ -40,12 +64,19 @@ export interface HostFrequencyPresetsSettingsNamespace {
40
64
  * `settings:ft8` for `ctx.settings.ft8`.
41
65
  */
42
66
  export interface HostSettingsControl {
67
+ /** FT8/FT4 engine settings. Requires `settings:ft8`. */
43
68
  readonly ft8: HostSettingsNamespace<HostFT8Settings, HostFT8SettingsPatch>;
69
+ /** Decode window configuration. Requires `settings:decode-windows`. */
44
70
  readonly decodeWindows: HostSettingsNamespace<DecodeWindowSettings, DecodeWindowSettings>;
71
+ /** Realtime audio transport configuration. Requires `settings:realtime`. */
45
72
  readonly realtime: HostSettingsNamespace<RealtimeSettings, RealtimeSettings>;
73
+ /** Frequency preset list. Requires `settings:frequency-presets`. */
46
74
  readonly frequencyPresets: HostFrequencyPresetsSettingsNamespace;
75
+ /** Public station metadata. Requires `settings:station`. */
47
76
  readonly station: HostSettingsNamespace<StationInfo, HostStationInfoPatch>;
77
+ /** PSK Reporter configuration. Requires `settings:psk-reporter`. */
48
78
  readonly pskReporter: HostSettingsNamespace<PSKReporterConfig, HostPSKReporterSettingsPatch>;
79
+ /** NTP server list. Requires `settings:ntp`. */
49
80
  readonly ntp: HostSettingsNamespace<NtpServerListSettings, UpdateNtpServerListRequest>;
50
81
  }
51
82
  //# sourceMappingURL=settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,0BAA0B,EAC3B,MAAM,kBAAkB,CAAC;AAE1B;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,EAAE,OAAO,CAAC;IACjC,yBAAyB,EAAE,OAAO,CAAC;CACpC;AAED,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAE5D,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AACxD,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEtE,MAAM,WAAW,qBAAqB,CAAC,MAAM,EAAE,MAAM;IACnD,iEAAiE;IACjE,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACvB,0EAA0E;IAC1E,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACxC;AAED,MAAM,WAAW,qCAAqC;IACpD,GAAG,IAAI,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC7C,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC1E,KAAK,IAAI,OAAO,CAAC,4BAA4B,CAAC,CAAC;CAChD;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,QAAQ,CAAC,GAAG,EAAE,qBAAqB,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;IAC3E,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;IAC1F,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAC7E,QAAQ,CAAC,gBAAgB,EAAE,qCAAqC,CAAC;IACjE,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;IAC3E,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC,iBAAiB,EAAE,4BAA4B,CAAC,CAAC;IAC7F,QAAQ,CAAC,GAAG,EAAE,qBAAqB,CAAC,qBAAqB,EAAE,0BAA0B,CAAC,CAAC;CACxF"}
1
+ {"version":3,"file":"settings.d.ts","sourceRoot":"","sources":["../src/settings.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,WAAW,EACX,0BAA0B,EAC3B,MAAM,kBAAkB,CAAC;AAE1B;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,UAAU,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,aAAa,EAAE,MAAM,CAAC;IACtB,qEAAqE;IACrE,SAAS,EAAE,OAAO,CAAC;IACnB,2EAA2E;IAC3E,aAAa,EAAE,MAAM,CAAC;IACtB,gEAAgE;IAChE,wBAAwB,EAAE,MAAM,CAAC;IACjC,qEAAqE;IACrE,uBAAuB,EAAE,OAAO,CAAC;IACjC,8DAA8D;IAC9D,yBAAyB,EAAE,OAAO,CAAC;CACpC;AAED,8DAA8D;AAC9D,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;AAE5D,+EAA+E;AAC/E,MAAM,WAAW,4BAA4B;IAC3C,6CAA6C;IAC7C,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,kEAAkE;IAClE,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,yEAAyE;AACzE,MAAM,MAAM,oBAAoB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;AACxD,0EAA0E;AAC1E,MAAM,MAAM,4BAA4B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEtE;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB,CAAC,MAAM,EAAE,MAAM;IACnD,iEAAiE;IACjE,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACvB,0EAA0E;IAC1E,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACxC;AAED,4EAA4E;AAC5E,MAAM,WAAW,qCAAqC;IACpD,8DAA8D;IAC9D,GAAG,IAAI,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC7C,kEAAkE;IAClE,MAAM,CAAC,OAAO,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;IAC1E,8DAA8D;IAC9D,KAAK,IAAI,OAAO,CAAC,4BAA4B,CAAC,CAAC;CAChD;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,wDAAwD;IACxD,QAAQ,CAAC,GAAG,EAAE,qBAAqB,CAAC,eAAe,EAAE,oBAAoB,CAAC,CAAC;IAC3E,uEAAuE;IACvE,QAAQ,CAAC,aAAa,EAAE,qBAAqB,CAAC,oBAAoB,EAAE,oBAAoB,CAAC,CAAC;IAC1F,4EAA4E;IAC5E,QAAQ,CAAC,QAAQ,EAAE,qBAAqB,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAAC;IAC7E,oEAAoE;IACpE,QAAQ,CAAC,gBAAgB,EAAE,qCAAqC,CAAC;IACjE,4DAA4D;IAC5D,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC,WAAW,EAAE,oBAAoB,CAAC,CAAC;IAC3E,oEAAoE;IACpE,QAAQ,CAAC,WAAW,EAAE,qBAAqB,CAAC,iBAAiB,EAAE,4BAA4B,CAAC,CAAC;IAC7F,gDAAgD;IAChD,QAAQ,CAAC,GAAG,EAAE,qBAAqB,CAAC,qBAAqB,EAAE,0BAA0B,CAAC,CAAC;CACxF"}
@@ -0,0 +1,60 @@
1
+ export type SimulationMode = 'FT8' | 'FT4';
2
+ /** One protocol identity that a reusable virtual RF peer may assume. */
3
+ export interface SimulationPeerIdentity {
4
+ callsign: string;
5
+ grid: string;
6
+ }
7
+ export interface SimulationScenarioChoice {
8
+ weight?: number;
9
+ reply?: string;
10
+ /** Send on the received frequency by default, or on the peer's configured frequency. */
11
+ replyFrequency?: 'received' | 'peer';
12
+ repeatLast?: boolean;
13
+ silence?: boolean;
14
+ complete?: boolean;
15
+ nextState?: string;
16
+ delayCycles?: number;
17
+ /** Move a reusable peer to another identity after applying this choice. */
18
+ advanceIdentity?: boolean;
19
+ }
20
+ export interface SimulationScenarioRule {
21
+ /** Full-message regular expression. The Host applies case-insensitive anchoring. */
22
+ pattern: string;
23
+ choices: SimulationScenarioChoice[];
24
+ }
25
+ export interface SimulationScenarioTimeoutRule {
26
+ afterReceiveCycles: number;
27
+ choices: SimulationScenarioChoice[];
28
+ }
29
+ export interface SimulationScenarioState {
30
+ rules?: SimulationScenarioRule[];
31
+ timeouts?: SimulationScenarioTimeoutRule[];
32
+ }
33
+ export interface SimulationAddressedRestartPolicy {
34
+ /**
35
+ * States whose RF peer may be reassigned to a dormant identity. Addressed
36
+ * rules must contain `{{peerCallsign}}`, and the decoded callsign must be a
37
+ * standalone message token.
38
+ */
39
+ reclaimableStates: string[];
40
+ /** Allow a choice that marked the peer complete to restart on a new addressed exchange. */
41
+ restartCompleted?: boolean;
42
+ }
43
+ /** Declarative protocol-peer state machine used only by the development simulator. */
44
+ export interface SimulationScenarioDescriptor {
45
+ id: string;
46
+ modes: SimulationMode[];
47
+ initialState: string;
48
+ /**
49
+ * Allow a completed or explicitly reclaimable peer, or a dormant pooled
50
+ * identity, to restart when an addressed message matches a global or
51
+ * initial-state rule.
52
+ */
53
+ addressedRestart?: SimulationAddressedRestartPolicy;
54
+ /** Rules evaluated before the current state's rules, for protocol messages that may interrupt any state. */
55
+ globalRules?: SimulationScenarioRule[];
56
+ /** Optional identities reused by a bounded number of configured RF peer slots. */
57
+ identityPool?: SimulationPeerIdentity[];
58
+ states: Record<string, SimulationScenarioState>;
59
+ }
60
+ //# sourceMappingURL=simulation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulation.d.ts","sourceRoot":"","sources":["../src/simulation.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,KAAK,CAAC;AAE3C,wEAAwE;AACxE,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,wBAAwB;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wFAAwF;IACxF,cAAc,CAAC,EAAE,UAAU,GAAG,MAAM,CAAC;IACrC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,oFAAoF;IACpF,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,wBAAwB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,6BAA6B;IAC5C,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,wBAAwB,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACjC,QAAQ,CAAC,EAAE,6BAA6B,EAAE,CAAC;CAC5C;AAED,MAAM,WAAW,gCAAgC;IAC/C;;;;OAIG;IACH,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,2FAA2F;IAC3F,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,sFAAsF;AACtF,MAAM,WAAW,4BAA4B;IAC3C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,gCAAgC,CAAC;IACpD,4GAA4G;IAC5G,WAAW,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACvC,kFAAkF;IAClF,YAAY,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,CAAC;CACjD"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=simulation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"simulation.js","sourceRoot":"","sources":["../src/simulation.ts"],"names":[],"mappings":""}
package/dist/sync.d.ts CHANGED
@@ -4,6 +4,8 @@
4
4
  * A utility plugin registers a sync provider via `ctx.logbookSync.register()`
5
5
  * during `onLoad`. The host manages per-callsign lifecycle, auto-upload on QSO
6
6
  * completion, and renders the provider's settings page in the sync modal.
7
+ * Registration requires a global API v2 utility with `logbook:sync`; the
8
+ * referenced settings page must use `resourceBinding: 'callsign'`.
7
9
  */
8
10
  /**
9
11
  * A logbook sync provider implements the communication logic with a single
@@ -14,10 +16,15 @@
14
16
  * its own per-callsign state (typically via `ctx.store.global` keyed by
15
17
  * callsign).
16
18
  *
17
- * The provider has full access to the logbook via `ctx.logbook` and is
18
- * responsible for querying, writing and deduplicating QSO records internally.
19
- * The host only routes user actions to provider methods — it does not read or
20
- * write QSOs on the provider's behalf.
19
+ * A typical provider declares `network`, `logbook:read`, `logbook:write` and
20
+ * `logbook:sync`. It is responsible for querying, writing and deduplicating QSO
21
+ * records internally. The host routes actions and passes narrow auto-upload
22
+ * batches; it does not invent provider-specific synchronization behavior.
23
+ *
24
+ * Every method runs inside a fresh Host invocation. Results that complete after
25
+ * unload/reload are discarded. Return structured `failures` for expected
26
+ * operational problems; reserve thrown errors for unexpected failures. Provider
27
+ * results, details and progress payloads must remain JSON-compatible.
21
28
  */
22
29
  export interface LogbookSyncProvider {
23
30
  /** Stable service identifier (e.g. 'lotw', 'qrz', 'wavelog'). */
@@ -28,7 +35,7 @@ export interface LogbookSyncProvider {
28
35
  readonly icon?: string;
29
36
  /** Optional button color hint for the frontend (HeroUI color name). */
30
37
  readonly color?: 'default' | 'primary' | 'secondary' | 'success' | 'warning' | 'danger';
31
- /** Which audience may access this provider through host runtime routes. */
38
+ /** Which audience may access Host routes for this provider. Defaults to `admin`. */
32
39
  readonly accessScope?: 'admin' | 'operator';
33
40
  /**
34
41
  * ID of the settings page declared in `PluginDefinition.ui.pages`.
@@ -44,7 +51,7 @@ export interface LogbookSyncProvider {
44
51
  * an iframe page for user input before proceeding (`pageId`).
45
52
  */
46
53
  readonly actions?: SyncAction[];
47
- /** Tests whether the external service connection is healthy. */
54
+ /** Tests credentials/connectivity and returns a user-displayable result. */
48
55
  testConnection(callsign: string): Promise<SyncTestResult>;
49
56
  /**
50
57
  * Uploads QSO records to the external service.
@@ -108,65 +115,113 @@ export interface SyncAction {
108
115
  */
109
116
  operation?: 'upload' | 'download' | 'full_sync';
110
117
  }
118
+ /** Layer that produced a synchronization failure. */
111
119
  export type SyncFailureSource = 'provider' | 'host' | 'remote' | 'network' | 'logbook';
120
+ /** User-visible synchronization operation associated with a failure. */
112
121
  export type SyncFailureOperation = 'upload' | 'download' | 'full_sync' | 'preflight' | 'test_connection';
122
+ /**
123
+ * Structured failure intended for logs and plugin UI.
124
+ *
125
+ * Construct failures with `createSyncFailure()` or `errorToSyncFailure()` so
126
+ * common credentials are redacted. Direct object construction performs no
127
+ * automatic sanitization.
128
+ */
113
129
  export interface SyncFailure {
130
+ /** Stable machine-readable code owned by the provider or Host. */
114
131
  code: string;
132
+ /** Short display message; callers constructing directly must sanitize secrets. */
115
133
  message: string;
134
+ /** Layer that produced the failure. */
116
135
  source?: SyncFailureSource;
136
+ /** Sync operation that was in progress. */
117
137
  operation?: SyncFailureOperation;
138
+ /** Provider ID when the failure crosses a shared Host surface. */
118
139
  providerId?: string;
140
+ /** Local QSO record ID for a per-record failure. */
119
141
  qsoId?: string;
142
+ /** Remote station callsign for a per-record failure. */
120
143
  qsoCallsign?: string;
144
+ /** HTTP response status when a remote request reached the server. */
121
145
  httpStatus?: number;
146
+ /** Whether retrying later without changing input may succeed. */
122
147
  retryable?: boolean;
148
+ /** Optional diagnostic detail; callers constructing directly must sanitize it. */
123
149
  detail?: string;
124
150
  }
151
+ /** Input accepted by `createSyncFailure`, including values that must be redacted. */
125
152
  export type SyncFailureInput = Omit<SyncFailure, 'message' | 'detail'> & {
126
153
  message?: string;
127
154
  detail?: string;
128
155
  secrets?: Array<string | undefined | null>;
129
156
  };
157
+ /** Best-effort redaction of explicit secrets and common credential-bearing URL/query patterns. */
130
158
  export declare function sanitizeSyncFailureText(value: unknown, secrets?: Array<string | undefined | null>): string;
159
+ /** Builds a normalized failure after sanitizing its message and detail. */
131
160
  export declare function createSyncFailure(input: SyncFailureInput): SyncFailure;
161
+ /** Converts an unknown thrown value into a normalized, sanitized failure. */
132
162
  export declare function errorToSyncFailure(error: unknown, defaults: SyncFailureInput): SyncFailure;
163
+ /** Formats one failure for compact user-facing lists. */
133
164
  export declare function failureMessage(failure: SyncFailure): string;
165
+ /** Result returned by `LogbookSyncProvider.testConnection()`. */
134
166
  export interface SyncTestResult {
167
+ /** Whether credentials and the tested remote operation succeeded. */
135
168
  success: boolean;
136
169
  /** Human-readable result description. */
137
170
  message?: string;
138
171
  /** Additional service-specific details (e.g. account info, logbook count). */
139
172
  details?: unknown;
173
+ /** Structured failures when the test did not fully succeed. */
140
174
  failures?: SyncFailure[];
141
175
  }
176
+ /** Aggregate result returned after an upload attempt. */
142
177
  export interface SyncUploadResult {
143
178
  /** Number of records submitted to the external service. */
144
179
  submitted?: number;
145
180
  /** @deprecated Upload providers should not verify by querying the external service; download sync owns confirmation. */
146
181
  verified?: number;
182
+ /** Records accepted by the remote service and committed to local sync state. */
147
183
  uploaded: number;
184
+ /** Records intentionally not submitted, for example because they were already sent. */
148
185
  skipped: number;
186
+ /** Records that could not be uploaded. */
149
187
  failed: number;
188
+ /** Structured per-record or operation failures. */
150
189
  failures?: SyncFailure[];
151
190
  }
191
+ /** Incremental upload status sent to an optional in-process progress callback. */
152
192
  export interface SyncUploadProgress {
193
+ /** Current upload pipeline phase. */
153
194
  stage: 'preparing' | 'prepared' | 'batch_uploading' | 'batch_accepted' | 'batch_failed' | 'updating_local' | 'finished';
195
+ /** Station callsign whose logbook is being synchronized. */
154
196
  callsign?: string;
197
+ /** One-based current batch number. */
155
198
  batchIndex?: number;
199
+ /** Total number of upload batches. */
156
200
  batchCount?: number;
201
+ /** QSO records represented by the current progress event. */
157
202
  qsoCount?: number;
203
+ /** Records discovered as pending upload. */
158
204
  pendingCount?: number;
205
+ /** Pending records eligible for this upload. */
159
206
  uploadableCount?: number;
207
+ /** Pending records blocked by preflight validation. */
160
208
  blockedCount?: number;
209
+ /** Records submitted to the remote service so far. */
161
210
  submitted?: number;
211
+ /** Records accepted and reflected in local sync state so far. */
162
212
  uploaded?: number;
163
213
  /** @deprecated Upload providers should not verify by querying the external service; download sync owns confirmation. */
164
214
  verified?: number;
215
+ /** Records intentionally skipped so far. */
165
216
  skipped?: number;
217
+ /** Records whose upload failed so far. */
166
218
  failed?: number;
219
+ /** Structured failures accumulated so far. */
167
220
  failureCount?: number;
221
+ /** Optional short status text for custom UIs. */
168
222
  message?: string;
169
223
  }
224
+ /** Optional range, source batch and progress callback for an upload. */
170
225
  export interface SyncUploadOptions {
171
226
  /** Distinguishes manual uploads from auto-upload triggered by QSO completion. */
172
227
  trigger?: 'manual' | 'auto';
@@ -188,6 +243,7 @@ export interface SyncUploadOptions {
188
243
  */
189
244
  records?: import('@tx5dr/contracts').QSORecord[];
190
245
  }
246
+ /** Range and inclusion rules used by an upload readiness check. */
191
247
  export interface SyncUploadPreflightOptions {
192
248
  /** Check records starting at this timestamp (epoch ms), inclusive. */
193
249
  since?: number;
@@ -196,23 +252,39 @@ export interface SyncUploadPreflightOptions {
196
252
  /** Include records already marked as uploaded/sent locally. Defaults to false. */
197
253
  includeAlreadyUploaded?: boolean;
198
254
  }
255
+ /** One actionable issue discovered before upload starts. */
199
256
  export interface SyncPreflightIssue {
257
+ /** Stable provider-owned issue code. */
200
258
  code: string;
259
+ /** Whether the issue is informational, cautionary or blocking. */
201
260
  severity: 'info' | 'warning' | 'error';
261
+ /** Short user-facing explanation. */
202
262
  message: string;
263
+ /** Optional sanitized diagnostic or remediation detail. */
203
264
  detail?: string;
265
+ /** Local QSO ID when the issue concerns one record. */
204
266
  qsoId?: string;
267
+ /** Target callsign when the issue concerns one record. */
205
268
  qsoCallsign?: string;
206
269
  }
270
+ /** Aggregate readiness result shown before an upload or full sync. */
207
271
  export interface SyncUploadPreflightResult {
272
+ /** Whether upload can start without skipping blocking records. */
208
273
  ready: boolean;
274
+ /** Records currently awaiting upload. */
209
275
  pendingCount: number;
276
+ /** Pending records that can be uploaded now. */
210
277
  uploadableCount: number;
278
+ /** Pending records blocked by validation or missing data. */
211
279
  blockedCount: number;
280
+ /** Structured issues for the operation or individual records. */
212
281
  issues?: SyncPreflightIssue[];
282
+ /** Whether the provider supports continuing with only uploadable records. */
213
283
  canSkipBlocked?: boolean;
284
+ /** Optional ordered remediation hints for the UI. */
214
285
  guidance?: string[];
215
286
  }
287
+ /** Aggregate result returned after downloading and reconciling remote data. */
216
288
  export interface SyncDownloadResult {
217
289
  /** Number of records downloaded from the external service. */
218
290
  downloaded: number;
@@ -224,25 +296,43 @@ export interface SyncDownloadResult {
224
296
  imported?: number;
225
297
  /** Number of provider request windows used to download the range. */
226
298
  windowCount?: number;
299
+ /** Structured request, parsing or per-record failures. */
227
300
  failures?: SyncFailure[];
228
301
  }
302
+ /** Incremental status sent while a provider downloads one or more windows. */
229
303
  export interface SyncDownloadProgress {
304
+ /** Current download pipeline phase. */
230
305
  stage: 'preparing' | 'window_waiting' | 'window_downloading' | 'window_retrying' | 'window_processing' | 'window_done' | 'window_failed' | 'finished';
306
+ /** Station callsign whose logbook is being synchronized. */
231
307
  callsign?: string;
308
+ /** One-based current request-window number. */
232
309
  windowIndex?: number;
310
+ /** Total request windows planned for the selected range. */
233
311
  windowCount?: number;
312
+ /** Human-readable date/time range represented by the current window. */
234
313
  range?: string;
314
+ /** Provider-mandated wait before the next request. */
235
315
  waitSeconds?: number;
316
+ /** One-based retry attempt for the current window. */
236
317
  attempt?: number;
318
+ /** Remote records returned by the current window. */
237
319
  recordCount?: number;
320
+ /** Remote records downloaded so far. */
238
321
  downloaded?: number;
322
+ /** Remote records matched to existing local QSOs so far. */
239
323
  matched?: number;
324
+ /** Existing local QSOs updated so far. */
240
325
  updated?: number;
326
+ /** New remote records imported so far. */
241
327
  imported?: number;
328
+ /** Records/windows that failed so far. */
242
329
  failed?: number;
330
+ /** Structured failures accumulated so far. */
243
331
  failureCount?: number;
332
+ /** Optional short status text for custom UIs. */
244
333
  message?: string;
245
334
  }
335
+ /** Optional date range and progress callback for a download. */
246
336
  export interface SyncDownloadOptions {
247
337
  /** Download records since this timestamp (epoch ms). */
248
338
  since?: number;
@@ -261,6 +351,8 @@ export interface LogbookSyncRegistrar {
261
351
  *
262
352
  * A single plugin may register multiple providers (e.g. one plugin
263
353
  * supporting both upload and download for different services).
354
+ * The Host unregisters every provider owned by the plugin generation during
355
+ * disable, reload or unload.
264
356
  */
265
357
  register(provider: LogbookSyncProvider): void;
266
358
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH;;;;;;;;;;;;;GAaG;AACH,MAAM,WAAW,mBAAmB;IAClC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB,+CAA+C;IAC/C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAEvB,uEAAuE;IACvE,QAAQ,CAAC,KAAK,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;IAExF,2EAA2E;IAC3E,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAE5C;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAEhC;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,EAAE,CAAC;IAEhC,gEAAgE;IAChE,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAE1D;;;;;;;;;;OAUG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEjF;;;;;OAKG;IACH,kBAAkB,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,0BAA0B,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAEhH;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAEvF,8EAA8E;IAC9E,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAExC,oEAAoE;IACpE,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;CAChD;AAID;;;;;;;GAOG;AACH,MAAM,WAAW,UAAU;IACzB,qDAAqD;IACrD,EAAE,EAAE,MAAM,CAAC;IACX,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2CAA2C;IAC3C,IAAI,CAAC,EAAE,UAAU,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,WAAW,CAAC;CACjD;AAID,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;AACvF,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,UAAU,GAAG,WAAW,GAAG,WAAW,GAAG,iBAAiB,CAAC;AAEzG,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,iBAAiB,CAAC;IAC3B,SAAS,CAAC,EAAE,oBAAoB,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,QAAQ,CAAC,GAAG;IACvE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;CAC5C,CAAC;AASF,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,OAAO,EACd,OAAO,GAAE,KAAK,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAM,GAC7C,MAAM,CAaR;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,GAAG,WAAW,CAgBtE;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,gBAAgB,GACzB,WAAW,CAab;AAED,wBAAgB,cAAc,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM,CAI3D;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,yCAAyC;IACzC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,2DAA2D;IAC3D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wHAAwH;IACxH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,EACD,WAAW,GACX,UAAU,GACV,iBAAiB,GACjB,gBAAgB,GAChB,cAAc,GACd,gBAAgB,GAChB,UAAU,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wHAAwH;IACxH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,iFAAiF;IACjF,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC5B,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,mFAAmF;IACnF,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iEAAiE;IACjE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,KAAK,IAAI,CAAC;IACpD;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,kBAAkB,EAAE,SAAS,EAAE,CAAC;CAClD;AAED,MAAM,WAAW,0BAA0B;IACzC,sEAAsE;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oEAAoE;IACpE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kFAAkF;IAClF,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAAC;IACvC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB,wDAAwD;IACxD,OAAO,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,OAAO,EAAE,MAAM,CAAC;IAChB,4EAA4E;IAC5E,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EACD,WAAW,GACX,gBAAgB,GAChB,oBAAoB,GACpB,iBAAiB,GACjB,mBAAmB,GACnB,aAAa,GACb,eAAe,GACf,UAAU,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wDAAwD;IACxD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,IAAI,CAAC;CACvD;AAID;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,GAAG,IAAI,CAAC;CAC/C"}
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
package/dist/sync.js CHANGED
@@ -4,12 +4,15 @@
4
4
  * A utility plugin registers a sync provider via `ctx.logbookSync.register()`
5
5
  * during `onLoad`. The host manages per-callsign lifecycle, auto-upload on QSO
6
6
  * completion, and renders the provider's settings page in the sync modal.
7
+ * Registration requires a global API v2 utility with `logbook:sync`; the
8
+ * referenced settings page must use `resourceBinding: 'callsign'`.
7
9
  */
8
10
  const SECRET_QUERY_PARAM_PATTERN = /([?&](?:api[_-]?key|key|password|pass|token|auth|authorization|secret|login)=)([^&#\s]+)/gi;
9
11
  const WAVELOG_STATION_INFO_KEY_PATTERN = /(\/station_info\/)([^/?#\s]+)/gi;
10
12
  function escapeRegExp(value) {
11
13
  return value.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
12
14
  }
15
+ /** Best-effort redaction of explicit secrets and common credential-bearing URL/query patterns. */
13
16
  export function sanitizeSyncFailureText(value, secrets = []) {
14
17
  let text = typeof value === 'string' ? value : String(value ?? '');
15
18
  for (const secret of secrets) {
@@ -22,6 +25,7 @@ export function sanitizeSyncFailureText(value, secrets = []) {
22
25
  .replace(SECRET_QUERY_PARAM_PATTERN, '$1[redacted]')
23
26
  .replace(WAVELOG_STATION_INFO_KEY_PATTERN, '$1[redacted]');
24
27
  }
28
+ /** Builds a normalized failure after sanitizing its message and detail. */
25
29
  export function createSyncFailure(input) {
26
30
  const secrets = input.secrets ?? [];
27
31
  const message = sanitizeSyncFailureText(input.message || input.code || 'Sync failed', secrets);
@@ -39,6 +43,7 @@ export function createSyncFailure(input) {
39
43
  detail,
40
44
  };
41
45
  }
46
+ /** Converts an unknown thrown value into a normalized, sanitized failure. */
42
47
  export function errorToSyncFailure(error, defaults) {
43
48
  const message = error instanceof Error
44
49
  ? error.message
@@ -53,6 +58,7 @@ export function errorToSyncFailure(error, defaults) {
53
58
  detail: defaults.detail ?? cause,
54
59
  });
55
60
  }
61
+ /** Formats one failure for compact user-facing lists. */
56
62
  export function failureMessage(failure) {
57
63
  const prefix = failure.qsoCallsign ? `${failure.qsoCallsign}: ` : '';
58
64
  const suffix = failure.httpStatus ? ` (HTTP ${failure.httpStatus})` : '';
package/dist/sync.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../src/sync.ts"],"names":[],"mappings":"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"}