@microbit/microbit-connection 0.9.0-apps.alpha.15 → 0.9.0-apps.alpha.16

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 (162) hide show
  1. package/build/cjs/accelerometer-service.js.map +1 -1
  2. package/build/cjs/accelerometer.js.map +1 -1
  3. package/build/cjs/async-util.js.map +1 -1
  4. package/build/cjs/async-util.test.d.ts +1 -0
  5. package/build/cjs/async-util.test.js +20 -0
  6. package/build/cjs/async-util.test.js.map +1 -0
  7. package/build/cjs/availability.js.map +1 -1
  8. package/build/cjs/bluetooth-device-wrapper.d.ts +12 -1
  9. package/build/cjs/bluetooth-device-wrapper.js +69 -12
  10. package/build/cjs/bluetooth-device-wrapper.js.map +1 -1
  11. package/build/cjs/bluetooth-profile.d.ts +8 -0
  12. package/build/cjs/bluetooth-profile.js +6 -0
  13. package/build/cjs/bluetooth-profile.js.map +1 -1
  14. package/build/cjs/bluetooth.js +39 -5
  15. package/build/cjs/bluetooth.js.map +1 -1
  16. package/build/cjs/bluetooth.test.d.ts +1 -0
  17. package/build/cjs/bluetooth.test.js +88 -0
  18. package/build/cjs/bluetooth.test.js.map +1 -0
  19. package/build/cjs/board-id.js.map +1 -1
  20. package/build/cjs/board-serial-info.js.map +1 -1
  21. package/build/cjs/board-serial-info.test.d.ts +1 -0
  22. package/build/cjs/board-serial-info.test.js +48 -0
  23. package/build/cjs/board-serial-info.test.js.map +1 -0
  24. package/build/cjs/button-service.js.map +1 -1
  25. package/build/cjs/buttons.js.map +1 -1
  26. package/build/cjs/constants.js.map +1 -1
  27. package/build/cjs/device-bond-state.js.map +1 -1
  28. package/build/cjs/device-information-service.js.map +1 -1
  29. package/build/cjs/device.d.ts +2 -2
  30. package/build/cjs/device.js.map +1 -1
  31. package/build/cjs/dfu-service.js.map +1 -1
  32. package/build/cjs/events.js.map +1 -1
  33. package/build/cjs/events.test.d.ts +1 -0
  34. package/build/cjs/events.test.js +109 -0
  35. package/build/cjs/events.test.js.map +1 -0
  36. package/build/cjs/flashing/flashing-full.js.map +1 -1
  37. package/build/cjs/flashing/flashing-makecode.d.ts +5 -1
  38. package/build/cjs/flashing/flashing-makecode.js +5 -2
  39. package/build/cjs/flashing/flashing-makecode.js.map +1 -1
  40. package/build/cjs/flashing/flashing-makecode.test.d.ts +1 -0
  41. package/build/cjs/flashing/flashing-makecode.test.js +253 -0
  42. package/build/cjs/flashing/flashing-makecode.test.js.map +1 -0
  43. package/build/cjs/flashing/flashing-partial.d.ts +1 -0
  44. package/build/cjs/flashing/flashing-partial.js +14 -0
  45. package/build/cjs/flashing/flashing-partial.js.map +1 -1
  46. package/build/cjs/flashing/flashing-v1.js.map +1 -1
  47. package/build/cjs/flashing/nordic-dfu.js +14 -3
  48. package/build/cjs/flashing/nordic-dfu.js.map +1 -1
  49. package/build/cjs/flashing/zip.js.map +1 -1
  50. package/build/cjs/flashing/zip.test.d.ts +1 -0
  51. package/build/cjs/flashing/zip.test.js +96 -0
  52. package/build/cjs/flashing/zip.test.js.map +1 -0
  53. package/build/cjs/hex-flash-data-source.js.map +1 -1
  54. package/build/cjs/index.js.map +1 -1
  55. package/build/cjs/led-service.js.map +1 -1
  56. package/build/cjs/led.js.map +1 -1
  57. package/build/cjs/logging.js.map +1 -1
  58. package/build/cjs/magnetometer-service.js.map +1 -1
  59. package/build/cjs/magnetometer.js.map +1 -1
  60. package/build/cjs/partial-flashing-service.js.map +1 -1
  61. package/build/cjs/promise-queue.js.map +1 -1
  62. package/build/cjs/promise-queue.test.d.ts +1 -0
  63. package/build/cjs/promise-queue.test.js +68 -0
  64. package/build/cjs/promise-queue.test.js.map +1 -0
  65. package/build/cjs/serial-events.js.map +1 -1
  66. package/build/cjs/service-events.js.map +1 -1
  67. package/build/cjs/setupTests.js +8 -0
  68. package/build/cjs/setupTests.js.map +1 -1
  69. package/build/cjs/uart-service.js.map +1 -1
  70. package/build/cjs/uart.js.map +1 -1
  71. package/build/cjs/usb-device-wrapper.js.map +1 -1
  72. package/build/cjs/usb-partial-flashing-utils.js.map +1 -1
  73. package/build/cjs/usb-partial-flashing.js.map +1 -1
  74. package/build/cjs/usb-radio-bridge.js.map +1 -1
  75. package/build/cjs/usb-serial-protocol.js.map +1 -1
  76. package/build/cjs/usb.js.map +1 -1
  77. package/build/cjs/usb.test.d.ts +1 -0
  78. package/build/cjs/usb.test.js +256 -0
  79. package/build/cjs/usb.test.js.map +1 -0
  80. package/build/esm/accelerometer-service.js.map +1 -1
  81. package/build/esm/accelerometer.js.map +1 -1
  82. package/build/esm/async-util.js.map +1 -1
  83. package/build/esm/async-util.test.d.ts +1 -0
  84. package/build/esm/async-util.test.js +18 -0
  85. package/build/esm/async-util.test.js.map +1 -0
  86. package/build/esm/availability.js.map +1 -1
  87. package/build/esm/bluetooth-device-wrapper.d.ts +12 -1
  88. package/build/esm/bluetooth-device-wrapper.js +67 -11
  89. package/build/esm/bluetooth-device-wrapper.js.map +1 -1
  90. package/build/esm/bluetooth-profile.d.ts +8 -0
  91. package/build/esm/bluetooth-profile.js +6 -0
  92. package/build/esm/bluetooth-profile.js.map +1 -1
  93. package/build/esm/bluetooth.js +39 -5
  94. package/build/esm/bluetooth.js.map +1 -1
  95. package/build/esm/bluetooth.test.d.ts +1 -0
  96. package/build/esm/bluetooth.test.js +86 -0
  97. package/build/esm/bluetooth.test.js.map +1 -0
  98. package/build/esm/board-id.js.map +1 -1
  99. package/build/esm/board-serial-info.js.map +1 -1
  100. package/build/esm/board-serial-info.test.d.ts +1 -0
  101. package/build/esm/board-serial-info.test.js +46 -0
  102. package/build/esm/board-serial-info.test.js.map +1 -0
  103. package/build/esm/button-service.js.map +1 -1
  104. package/build/esm/buttons.js.map +1 -1
  105. package/build/esm/constants.js.map +1 -1
  106. package/build/esm/device-bond-state.js.map +1 -1
  107. package/build/esm/device-information-service.js.map +1 -1
  108. package/build/esm/device.d.ts +2 -2
  109. package/build/esm/device.js.map +1 -1
  110. package/build/esm/dfu-service.js.map +1 -1
  111. package/build/esm/events.js.map +1 -1
  112. package/build/esm/events.test.d.ts +1 -0
  113. package/build/esm/events.test.js +107 -0
  114. package/build/esm/events.test.js.map +1 -0
  115. package/build/esm/flashing/flashing-full.js.map +1 -1
  116. package/build/esm/flashing/flashing-makecode.d.ts +5 -1
  117. package/build/esm/flashing/flashing-makecode.js +5 -2
  118. package/build/esm/flashing/flashing-makecode.js.map +1 -1
  119. package/build/esm/flashing/flashing-makecode.test.d.ts +1 -0
  120. package/build/esm/flashing/flashing-makecode.test.js +248 -0
  121. package/build/esm/flashing/flashing-makecode.test.js.map +1 -0
  122. package/build/esm/flashing/flashing-partial.d.ts +1 -0
  123. package/build/esm/flashing/flashing-partial.js +15 -1
  124. package/build/esm/flashing/flashing-partial.js.map +1 -1
  125. package/build/esm/flashing/flashing-v1.js.map +1 -1
  126. package/build/esm/flashing/nordic-dfu.js +14 -3
  127. package/build/esm/flashing/nordic-dfu.js.map +1 -1
  128. package/build/esm/flashing/zip.js.map +1 -1
  129. package/build/esm/flashing/zip.test.d.ts +1 -0
  130. package/build/esm/flashing/zip.test.js +94 -0
  131. package/build/esm/flashing/zip.test.js.map +1 -0
  132. package/build/esm/hex-flash-data-source.js.map +1 -1
  133. package/build/esm/index.js.map +1 -1
  134. package/build/esm/led-service.js.map +1 -1
  135. package/build/esm/led.js.map +1 -1
  136. package/build/esm/logging.js.map +1 -1
  137. package/build/esm/magnetometer-service.js.map +1 -1
  138. package/build/esm/magnetometer.js.map +1 -1
  139. package/build/esm/partial-flashing-service.js.map +1 -1
  140. package/build/esm/promise-queue.js.map +1 -1
  141. package/build/esm/promise-queue.test.d.ts +1 -0
  142. package/build/esm/promise-queue.test.js +66 -0
  143. package/build/esm/promise-queue.test.js.map +1 -0
  144. package/build/esm/serial-events.js.map +1 -1
  145. package/build/esm/service-events.js.map +1 -1
  146. package/build/esm/setupTests.js +7 -0
  147. package/build/esm/setupTests.js.map +1 -1
  148. package/build/esm/uart-service.js.map +1 -1
  149. package/build/esm/uart.js.map +1 -1
  150. package/build/esm/usb-device-wrapper.js.map +1 -1
  151. package/build/esm/usb-partial-flashing-utils.js.map +1 -1
  152. package/build/esm/usb-partial-flashing.js.map +1 -1
  153. package/build/esm/usb-radio-bridge.js.map +1 -1
  154. package/build/esm/usb-serial-protocol.js.map +1 -1
  155. package/build/esm/usb.js.map +1 -1
  156. package/build/esm/usb.test.d.ts +1 -0
  157. package/build/esm/usb.test.js +254 -0
  158. package/build/esm/usb.test.js.map +1 -0
  159. package/package.json +13 -14
  160. package/LICENSE.md +0 -21
  161. package/README.md +0 -125
  162. package/typedoc.json +0 -14
@@ -1 +1 @@
1
- {"version":3,"file":"usb.js","sourceRoot":"","sources":["../../lib/usb.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usb.js","sourceRoot":"","sources":["../../src/usb.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EACL,kBAAkB,EAClB,mBAAmB,EAInB,gBAAgB,EAChB,qBAAqB,EAGrB,WAAW,EACX,cAAc,EAId,aAAa,GACd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,EAAW,cAAc,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EACL,UAAU,EAEV,eAAe,EACf,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAE5D,6CAA6C;AAC7C,gFAAgF;AAChF,MAAM,CAAC,MAAM,aAAa,GAAG,GAAY,EAAE;IACzC,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;IACtC,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;AAEjE,MAAM,CAAN,IAAY,mBAYX;AAZD,WAAY,mBAAmB;IAC7B;;;OAGG;IACH,8CAAuB,CAAA;IAEvB;;;OAGG;IACH,sDAA+B,CAAA;AACjC,CAAC,EAZW,mBAAmB,KAAnB,mBAAmB,QAY9B;AAsDD;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,CACpC,OAAyC,EACf,EAAE,CAAC,IAAI,4BAA4B,CAAC,OAAO,CAAC,CAAC;AAEzE;;GAEG;AACH,MAAM,4BACJ,SAAQ,gBAAqE;IAoF7E,YAAY,UAA2C,EAAE;QACvD,KAAK,EAAE,CAAC;QAlFV;;;;mBAA2B,gBAAgB,CAAC,oBAAoB;WAAC;QAEzD;;;;;WAAgD;QACxD;;;WAGG;QACK;;;;;WAA8B;QACtC;;WAEG;QACK;;;;;WAAmC;QAEnC;;;;mBAAuB,KAAK;WAAC;QAE7B;;;;mBAAyB,IAAI,YAAY,EAAE;WAAC;QAE5C;;;;mBAAiB,CAAC,IAAY,EAAE,EAAE;gBACxC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YACnE,CAAC;WAAC;QAEM;;;;mBAAoB,KAAK;WAAC;QAC1B;;;;mBAA2B,KAAK;WAAC;QACjC;;;;mBAA2B,GAAG,EAAE;gBACtC,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;oBAC3C,qFAAqF;oBACrF,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;oBAC7B,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,MAAM,EAAE,CAAC;wBAC5C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACnB,IAAI,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;4BACrC,IAAI,CAAC,OAAO,EAAE,CAAC;wBACjB,CAAC;oBACH,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,SAAS,EAAE,CAAC;wBAClE,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;4BACnB,IAAI,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;4BAC9C,wCAAwC;4BACxC,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;wBAClD,CAAC;6BAAM,CAAC;4BACN,IAAI,CAAC,GAAG,CAAC,qDAAqD,CAAC,CAAC;4BAChE,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;wBAC9B,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;WAAC;QAEM;;;;mBAAY,KAAK;WAAC;QAElB;;;;mBAAuB,GAAG,EAAE;gBAClC,iFAAiF;gBACjF,wEAAwE;gBACxE,0CAA0C;gBAC1C,oEAAoE;gBACpE,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;gBACtB,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC1B,0GAA0G;gBAC1G,MAAM,CAAC,gBAAgB,CACrB,OAAO,EACP,GAAG,EAAE;oBACH,MAAM,4BAA4B,GAAG,IAAI,CAAC;oBAC1C,UAAU,CAAC,GAAG,EAAE;wBACd,IAAI,IAAI,CAAC,MAAM,KAAK,gBAAgB,CAAC,SAAS,EAAE,CAAC;4BAC/C,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;4BACvB,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;gCACnC,IAAI,CAAC,mBAAmB,EAAE,CAAC;4BAC7B,CAAC;wBACH,CAAC;oBACH,CAAC,EAAE,4BAA4B,CAAC,CAAC;gBACnC,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAC;YACJ,CAAC;WAAC;QAEM;;;;;WAAiB;QACjB;;;;;WAAyC;QAEzC;;;;mBAAyC;gBAC/C,UAAU,EAAE,CAAC;aACd;WAAC;QAgSM;;;;mBAAmB,CAAC,KAAyB,EAAE,EAAE;gBACvD,IAAI,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;oBACjC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;oBAC5B,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;oBACxB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;gBACxD,CAAC;YACH,CAAC;WAAC;QAlSA,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,cAAc,EAAE,CAAC;QACvD,IAAI,CAAC,mBAAmB;YACtB,OAAO,CAAC,mBAAmB,IAAI,mBAAmB,CAAC,SAAS,CAAC;IACjE,CAAC;IAEO,GAAG,CAAC,CAAM;QAChB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC;YAClB,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,gBAAgB,CAAC,cAAc,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACnE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAC9B,kBAAkB,EAClB,IAAI,CAAC,wBAAwB,CAC9B,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,aAAa,EAAE,EAAE,CAAC;YACtC,OAAO,aAAa,CAAC;QACvB,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO;QACL,IAAI,SAAS,CAAC,GAAG,EAAE,CAAC;YAClB,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;QACzE,CAAC;QACD,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;YAClC,MAAM,CAAC,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;YACtE,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACpB,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CACjC,kBAAkB,EAClB,IAAI,CAAC,wBAAwB,CAC9B,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,gCAAgC,CAAC,gBAAmC;QAClE,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAwB;QACpC,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE;YACvC,MAAM,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC,MAAM,CAAC;QACrB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC;IACnC,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,UAAU,EAAE,eAAe,EAAE,EAAE,CAAC,cAAc,EAAE,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,KAAK,CACT,UAA2B,EAC3B,OAAqB;QAErB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,CACjC,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,OAAO,CAAC,CACxC,CAAC;YACF,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,IAAI,UAAU,EAAE,CAAC,CAAC;YAEnD,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC;YACnD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;gBACjB,IAAI,EAAE,aAAa;gBACnB,MAAM,EAAE;oBACN,SAAS;iBACV;aACF,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACrC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACxB,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CACzB,UAA2B,EAC3B,UAAwB,EAAE;QAE1B,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,IAAI,CAAC;QACxC,MAAM,QAAQ,GAAG,iBAAiB,CAChC,OAAO,CAAC,wBAAwB,IAAI,MAAM,EAC1C,OAAO,CAAC,QAAQ,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAC/B,CAAC;QAEF,IAAI,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;QACzC,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhC,IAAI,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QACtC,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,IAAI,WAAW,CAAC;gBACpB,IAAI,EAAE,qBAAqB;gBAC3B,OAAO,EAAE,uBAAuB;aACjC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;QACnD,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,IAAI,eAAe,CAClC,IAAI,CAAC,UAAU,EACf,IAAI,CAAC,OAAO,EACZ,YAAY,CACb,CAAC;QACF,IAAI,UAAU,GAAY,KAAK,CAAC;QAChC,IAAI,CAAC;YACH,IAAI,OAAO,EAAE,CAAC;gBACZ,UAAU,GAAG,MAAM,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACzD,CAAC;iBAAM,CAAC;gBACN,MAAM,QAAQ,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,QAAQ,CACN,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,YAAY,EACvE,SAAS,CACV,CAAC;YAEF,IAAI,IAAI,CAAC,eAAe,EAAE,CAAC;gBACzB,IAAI,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;gBAC5D,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;gBAC7B,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,gBAAgB,CAAC,MAAM,CAAC,CAAC;YACxD,CAAC;iBAAM,CAAC;gBACN,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;oBACnC,IAAI,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;oBAC3C,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;wBAC5B,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;wBACxC,MAAM,IAAI,CAAC,mBAAmB,EAAE,CAAC;oBACnC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB;QAC/B,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YAChD,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACzC,OAAO;YACT,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC5B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,UAAU;iBACZ,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC;iBAChC,IAAI,CAAC,GAAG,EAAE;gBACT,IAAI,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;YACjD,CAAC,CAAC;iBACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBACX,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;YAClE,CAAC,CAAC;iBACD,OAAO,CAAC,GAAG,EAAE;gBACZ,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YAC3B,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,kBAAkB;QAC9B,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE;YAChD,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC1C,OAAO;YACT,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAChD,IAAI,CAAC,kBAAkB,CAAC,aAAa,EAAE,IAAI,gBAAgB,EAAE,CAAC,CAAC;QACjE,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU,CACd,KAAe,EACf,cAAgC,gBAAgB,CAAC,YAAY;QAE7D,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAChC,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC;YAC1C,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,IAAI,CAAC,GAAG,CAAC,iCAAiC,GAAG,CAAC,CAAC,CAAC;gBAChD,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;oBACjB,IAAI,EAAE,cAAc;oBACpB,OAAO,EAAE,qBAAqB;iBAC/B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;YAC5B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;gBAC3C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;oBACjB,IAAI,EAAE,aAAa;oBACnB,OAAO,EAAE,cAAc;iBACxB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,SAA2B;QAC3C,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC;QACnC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,GAAG,CAAC,wBAAwB,GAAG,SAAS,CAAC,CAAC;QAC/C,IAAI,CAAC,kBAAkB,CACrB,QAAQ,EACR,IAAI,qBAAqB,CAAC,SAAS,EAAE,cAAc,CAAC,CACrD,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAI,CAAmB;QACrD,IAAI,CAAC;YACH,OAAO,MAAM,CAAC,EAAE,CAAC;QACnB,CAAC;QAAC,OAAO,CAAM,EAAE,CAAC;YAChB,IAAI,CAAC,YAAY,cAAc,EAAE,CAAC;gBAChC,MAAM,CAAC,CAAC;YACV,CAAC;YACD,IAAI,CAAC,YAAY,WAAW,EAAE,CAAC;gBAC7B,MAAM,CAAC,CAAC;YACV,CAAC;YAED,oCAAoC;YACpC,IAAI,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;YAC/D,IAAI,CAAC,GAAG,CACN,0GAA0G,CAC3G,CAAC;YACF,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YAEZ,gCAAgC;YAChC,oDAAoD;YACpD,0EAA0E;YAC1E,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAE5B,MAAM,QAAQ,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;YAClC,4FAA4F;YAC5F,MAAM,YAAY,GAAG,CAAC,CAAC,OAAO;gBAC5B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE;gBACjE,CAAC,CAAC,EAAE,CAAC;YAEP,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;gBACjB,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,CAAC,CAAC,IAAI,GAAG,GAAG,GAAG,YAAY;aACrC,CAAC,CAAC;YACH,MAAM,QAAQ,CAAC;QACjB,CAAC;IACH,CAAC;IAED,WAAW,CAAC,IAAY;QACtB,OAAO,IAAI,CAAC,kBAAkB,CAAC,KAAK,IAAI,EAAE;YACxC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;gBACpB,kFAAkF;gBAClF,qEAAqE;gBACrE,MAAM,cAAc,GAAG,EAAE,CAAC;gBAC1B,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,OAAO,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;oBACzC,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;oBACrD,KAAK,GAAG,GAAG,CAAC;gBACd,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,CACpC,KAAK,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,CACnD,CAAC;IACJ,CAAC;IAUD,KAAK,CAAC,WAAW;QACf,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;QACxB,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,CAAC;IACxD,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,QAA2B;QACvD,MAAM,cAAc,GAAG,QAAQ,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC9C,cAAc,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QAC3C,kBAAkB,CAAC,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAEnD,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YACpC,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACzC,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5D,MAAM,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,CAAC;QAC9D,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YAC5B,MAAM,IAAI,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC;QACpD,CAAC;aAAM,CAAC;YACN,cAAc,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACzC,MAAM,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,CAAC;QAC9D,CAAC;QACD,IAAI,IAAI,CAAC,cAAc,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACrD,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;IAC7C,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAClC,QAA0B;QAE1B,IAAI,IAAI,CAAC,mBAAmB,KAAK,mBAAmB,CAAC,aAAa,EAAE,CAAC;YACnE,MAAM,IAAI,CAAC,4BAA4B,EAAE,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;YACxC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;YACnC,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5D,MAAM,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,iHAAiH;IACzG,KAAK,CAAC,4BAA4B;QACxC,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;QAC7D,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;YAC9D,IAAI,UAAU,EAAE,CAAC;gBACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;gBACrB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;gBAC7B,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC;IAED,iHAAiH;IACzG,KAAK,CAAC,yBAAyB;QACrC,IAAI,CAAC,GAAG,CAAC,0CAA0C,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC;QAClD,IAAI,OAAO,KAAK,SAAS,EAAE,CAAC;YAC1B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAChD,kBAAkB,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,gBAAgB,IAAI,EAAE,CAAC,CACxE,CAAC;QACF,OAAO,eAAe,CAAC;IACzB,CAAC;IAEO,KAAK,CAAC,uBAAuB,CACnC,MAAiB;QAEjB,IAAI,CAAC,GAAG,CACN,6BAA6B,MAAM,CAAC,gBAAgB,IAAI,MAAM,CAAC,WAAW,EAAE,CAC7E,CAAC;QACF,IAAI,CAAC,GAAG,CAAC,kBAAkB,MAAM,CAAC,YAAY,EAAE,CAAC,CAAC;QAClD,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,EAAE,MAAM,CAAC,CAAC;QACvD,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,KAAK,CAAC,YAAY;QACxB,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,IAAI,mBAAmB,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,GAAG,MAAM,SAAS,CAAC,GAAG,CAAC,aAAa,CAAC;gBAC9C,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,OAAO,EAAE,cAAc;aACxB,CAAC,CAAC;QACL,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,IAAI,kBAAkB,EAAE,CAAC,CAAC;QAC1E,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAES,cAAc,CAAC,IAAY;QACnC,QAAQ,IAAsC,EAAE,CAAC;YAC/C,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,gEAAgE;gBAChE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;oBACtD,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC7B,CAAC;gBACD,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;gBACjC,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;IAES,KAAK,CAAC,gBAAgB,CAAC,IAAY;QAC3C,QAAQ,IAAsC,EAAE,CAAC;YAC/C,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;gBACjC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,CAAC;oBACpC,IAAI,CAAC,kBAAkB,EAAE,CAAC;gBAC5B,CAAC;gBACD,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAChC,MAAiB,EACjB,OAA0B,EAC1B,gBAAmC,EACnC,EAAE;IACF,OAAO,CACL,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;QACxD,CAAC,gBAAgB,CAAC,MAAM,KAAK,CAAC;YAC5B,gBAAgB,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CACpE,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,WAAW,GAAG,CAAC,MAAiB,EAAE,MAAuB,EAAE,EAAE;IACjE,IAAI,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,EAAE,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,EAAE,CAAC;QAC9D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,MAAM,CAAC,YAAY,IAAI,MAAM,CAAC,YAAY,KAAK,MAAM,CAAC,YAAY,EAAE,CAAC;QACvE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,oBAAoB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,oBAAoB,GAAG,CAAC,MAAiB,EAAE,MAAuB,EAAE,EAAE;IAC1E,IACE,MAAM,CAAC,SAAS,KAAK,SAAS;QAC9B,MAAM,CAAC,YAAY,KAAK,SAAS;QACjC,MAAM,CAAC,YAAY,KAAK,SAAS,EACjC,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,UAAU,EAAE,CAAC;QACtC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,eAAe,EAAE,EAAE;QAC9D,OAAO,eAAe,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YACpD,MAAM,iBAAiB,GACrB,MAAM,CAAC,SAAS,KAAK,SAAS;gBAC9B,SAAS,CAAC,cAAc,KAAK,MAAM,CAAC,SAAS,CAAC;YAChD,MAAM,oBAAoB,GACxB,MAAM,CAAC,YAAY,KAAK,SAAS;gBACjC,SAAS,CAAC,iBAAiB,KAAK,MAAM,CAAC,YAAY,CAAC;YACtD,MAAM,oBAAoB,GACxB,MAAM,CAAC,YAAY,KAAK,SAAS;gBACjC,SAAS,CAAC,iBAAiB,KAAK,MAAM,CAAC,YAAY,CAAC;YACtD,OAAO,CACL,CAAC,iBAAiB,IAAI,CAAC,oBAAoB,IAAI,CAAC,oBAAoB,CACrE,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,+BAA+B,GAAG,CAAC,CAAM,EAAE,EAAE,CACjD,IAAI,WAAW,CAAC;IACd,IAAI,EAAE,oBAAoB;IAC1B,OAAO,EAAE,CAAC,CAAC,OAAO;CACnB,CAAC,CAAC;AAEL,mCAAmC;AACnC,MAAM,aAAa,GAAG,CAAC,GAAQ,EAAe,EAAE;IAC9C,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;QAC/B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,IAAI,GAAG,YAAY,YAAY,EAAE,CAAC;QAChC,OAAO,IAAI,WAAW,CAAC;YACrB,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,GAAG,CAAC,OAAO;SACrB,CAAC,CAAC;IACL,CAAC;IAED,QAAQ,OAAO,GAAG,EAAE,CAAC;QACnB,KAAK,QAAQ;YACX,4DAA4D;YAC5D,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,OAAO,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;gBAC9C,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;YACnB,CAAC;YACD,sEAAsE;YACtE,6EAA6E;YAC7E,IAAI,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClD,uCAAuC;gBACvC,OAAO,IAAI,WAAW,CAAC;oBACrB,IAAI,EAAE,YAAY;oBAClB,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClD,OAAO,IAAI,WAAW,CAAC;oBACrB,IAAI,EAAE,oBAAoB;oBAC1B,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,2BAA2B,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBACzD,OAAO,IAAI,WAAW,CAAC;oBACrB,IAAI,EAAE,eAAe;oBACrB,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB,CAAC,CAAC;YACL,CAAC;iBAAM,IAAI,GAAG,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBAC9C,OAAO,IAAI,WAAW,CAAC;oBACrB,IAAI,EAAE,qBAAqB;oBAC3B,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB,CAAC,CAAC;YACL,CAAC;iBAAM,CAAC;gBACN,+DAA+D;gBAC/D,OAAO,+BAA+B,CAAC,GAAG,CAAC,CAAC;YAC9C,CAAC;QACH,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,0DAA0D;YAC1D,OAAO,+BAA+B,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC;QACD,OAAO,CAAC,CAAC,CAAC;YACR,OAAO,+BAA+B,CAAC,GAAG,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CACxB,wBAAgC,EAChC,QAAmE,EACnE,EAAE;IACF,IAAI,aAAa,GAAG,CAAC,CAAC,CAAC;IACvB,IAAI,SAAoC,CAAC;IACzC,OAAO,CAAC,KAAoB,EAAE,KAAyB,EAAE,EAAE;QACzD,IACE,SAAS,KAAK,KAAK;YACnB,KAAK,KAAK,SAAS;YACnB,KAAK,KAAK,CAAC;YACX,KAAK,KAAK,CAAC;YACX,KAAK,IAAI,aAAa,GAAG,wBAAwB,EACjD,CAAC;YACD,SAAS,GAAG,KAAK,CAAC;YAClB,aAAa,GAAG,KAAK,IAAI,CAAC,CAAC,CAAC;YAC5B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAC;AACJ,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,254 @@
1
+ /**
2
+ * (c) 2021, Micro:bit Educational Foundation and contributors
3
+ *
4
+ * SPDX-License-Identifier: MIT
5
+ *
6
+ * @jest-environment node
7
+ *
8
+ * Without node environment USB code fails with a buffer type check.
9
+ * It might be we could create a custom environment that was web but
10
+ * with a tweak to Buffer.
11
+ */
12
+ import { ConnectionStatus } from "./device.js";
13
+ import { applyDeviceFilters, createWebUSBConnection } from "./usb.js";
14
+ import { beforeAll, beforeEach, expect, vi, describe, it } from "vitest";
15
+ vi.mock("./usb-device-wrapper.js", () => ({
16
+ DAPWrapper: class DapWrapper {
17
+ constructor() {
18
+ Object.defineProperty(this, "startSerial", {
19
+ enumerable: true,
20
+ configurable: true,
21
+ writable: true,
22
+ value: vi.fn().mockReturnValue(Promise.resolve())
23
+ });
24
+ Object.defineProperty(this, "reconnectAsync", {
25
+ enumerable: true,
26
+ configurable: true,
27
+ writable: true,
28
+ value: vi.fn().mockResolvedValue(undefined)
29
+ });
30
+ Object.defineProperty(this, "disconnectAsync", {
31
+ enumerable: true,
32
+ configurable: true,
33
+ writable: true,
34
+ value: vi.fn().mockResolvedValue(undefined)
35
+ });
36
+ Object.defineProperty(this, "stopSerial", {
37
+ enumerable: true,
38
+ configurable: true,
39
+ writable: true,
40
+ value: vi.fn()
41
+ });
42
+ }
43
+ },
44
+ }));
45
+ const describeDeviceOnly = process.env.TEST_MODE_DEVICE
46
+ ? describe
47
+ : describe.skip;
48
+ describe("MicrobitWebUSBConnection (WebUSB unsupported)", () => {
49
+ it("checkAvailability returns unsupported when WebUSB isn't available", async () => {
50
+ vi.stubGlobal("navigator", {});
51
+ const microbit = createWebUSBConnection();
52
+ expect(await microbit.checkAvailability()).toBe("unsupported");
53
+ vi.unstubAllGlobals();
54
+ });
55
+ it("still triggers afterrequestdevice if requestDevice throws", async () => {
56
+ vi.stubGlobal("navigator", {
57
+ usb: {
58
+ requestDevice: () => {
59
+ throw new Error();
60
+ },
61
+ },
62
+ });
63
+ const microbit = createWebUSBConnection();
64
+ expect(microbit.status).toBe(ConnectionStatus.NO_AUTHORIZED_DEVICE);
65
+ const afterRequestDevice = vi.fn();
66
+ microbit.addEventListener("afterrequestdevice", afterRequestDevice);
67
+ await expect(() => microbit.connect()).rejects.toThrow();
68
+ expect(afterRequestDevice.mock.calls.length).toEqual(1);
69
+ vi.unstubAllGlobals();
70
+ });
71
+ });
72
+ describeDeviceOnly("MicrobitWebUSBConnection (WebUSB supported)", () => {
73
+ beforeAll(() => {
74
+ const usb = {
75
+ addEventListener: vi.fn(),
76
+ removeEventListener: vi.fn(),
77
+ requestDevice() {
78
+ const device = {};
79
+ return device;
80
+ },
81
+ };
82
+ // Maybe we can move this to a custom jest environment?
83
+ vi.stubGlobal("navigator", {
84
+ usb,
85
+ });
86
+ });
87
+ it("shows no device as initial status", () => {
88
+ const microbit = createWebUSBConnection();
89
+ expect(microbit.status).toBe(ConnectionStatus.NO_AUTHORIZED_DEVICE);
90
+ });
91
+ it("connects and disconnects updating status and events", async () => {
92
+ const events = [];
93
+ const connection = createWebUSBConnection();
94
+ connection.addEventListener("status", (event) => {
95
+ events.push(event.status);
96
+ });
97
+ await connection.connect();
98
+ expect(connection.status).toEqual(ConnectionStatus.CONNECTED);
99
+ expect(events).toEqual([ConnectionStatus.CONNECTED]);
100
+ // without this it breaks! something is up!
101
+ await new Promise((resolve) => setTimeout(resolve, 100));
102
+ await connection.disconnect();
103
+ connection.dispose();
104
+ expect(connection.status).toEqual(ConnectionStatus.DISCONNECTED);
105
+ expect(events).toEqual([
106
+ ConnectionStatus.CONNECTED,
107
+ ConnectionStatus.DISCONNECTED,
108
+ ]);
109
+ });
110
+ });
111
+ const mockDevice = (config) => ({
112
+ vendorId: config?.vendorId || 0x2341,
113
+ productId: config?.productId || 0x0043,
114
+ serialNumber: config?.serialNumber || "MOCK123456",
115
+ configuration: {
116
+ interfaces: config?.interfaces || [
117
+ {
118
+ alternates: [
119
+ {
120
+ alternateSetting: 0,
121
+ interfaceClass: config?.interfaceClass || 2,
122
+ interfaceSubclass: config?.interfaceSubclass || 2,
123
+ interfaceProtocol: config?.interfaceProtocol || 0,
124
+ },
125
+ ],
126
+ },
127
+ ],
128
+ },
129
+ });
130
+ const filter = {
131
+ classCode: 123,
132
+ productId: 456,
133
+ protocolCode: 789,
134
+ serialNumber: "012",
135
+ subclassCode: 345,
136
+ vendorId: 690,
137
+ };
138
+ describe("Tab visibility and PAUSED state", () => {
139
+ let visibilityState = "visible";
140
+ let visibilityListeners = [];
141
+ beforeAll(() => {
142
+ vi.stubGlobal("navigator", {
143
+ usb: {
144
+ addEventListener: vi.fn(),
145
+ removeEventListener: vi.fn(),
146
+ requestDevice: () => ({}),
147
+ },
148
+ });
149
+ vi.stubGlobal("document", {
150
+ get visibilityState() {
151
+ return visibilityState;
152
+ },
153
+ addEventListener: (_, listener) => {
154
+ visibilityListeners.push(listener);
155
+ },
156
+ removeEventListener: vi.fn(),
157
+ });
158
+ vi.stubGlobal("window", {
159
+ document,
160
+ addEventListener: vi.fn(),
161
+ removeEventListener: vi.fn(),
162
+ });
163
+ });
164
+ beforeEach(() => {
165
+ visibilityState = "visible";
166
+ visibilityListeners = [];
167
+ });
168
+ const waitForStatus = (connection, status) => new Promise((resolve) => {
169
+ if (connection.status === status) {
170
+ resolve();
171
+ return;
172
+ }
173
+ const listener = (event) => {
174
+ if (event.status === status) {
175
+ connection.removeEventListener("status", listener);
176
+ resolve();
177
+ }
178
+ };
179
+ connection.addEventListener("status", listener);
180
+ });
181
+ it("pauses when tab becomes hidden while connected", async () => {
182
+ const connection = createWebUSBConnection();
183
+ await connection.initialize();
184
+ await connection.connect();
185
+ expect(connection.status).toBe(ConnectionStatus.CONNECTED);
186
+ visibilityState = "hidden";
187
+ visibilityListeners.forEach((l) => l());
188
+ await waitForStatus(connection, ConnectionStatus.PAUSED);
189
+ expect(connection.status).toBe(ConnectionStatus.PAUSED);
190
+ });
191
+ it("reconnects when tab becomes visible while paused", async () => {
192
+ const connection = createWebUSBConnection();
193
+ await connection.initialize();
194
+ await connection.connect();
195
+ visibilityState = "hidden";
196
+ visibilityListeners.forEach((l) => l());
197
+ await waitForStatus(connection, ConnectionStatus.PAUSED);
198
+ visibilityState = "visible";
199
+ visibilityListeners.forEach((l) => l());
200
+ await waitForStatus(connection, ConnectionStatus.CONNECTED);
201
+ expect(connection.status).toBe(ConnectionStatus.CONNECTED);
202
+ });
203
+ });
204
+ describe("applyDevicesFilter", () => {
205
+ it("has no filter", () => {
206
+ const device = mockDevice();
207
+ expect(applyDeviceFilters(device, [], [])).toEqual(true);
208
+ });
209
+ it("satisfies filter", () => {
210
+ const device = mockDevice({
211
+ interfaceClass: filter.classCode,
212
+ productId: filter.productId,
213
+ interfaceProtocol: filter.protocolCode,
214
+ serialNumber: filter.serialNumber,
215
+ interfaceSubclass: filter.subclassCode,
216
+ vendorId: filter.vendorId,
217
+ });
218
+ expect(applyDeviceFilters(device, [filter], [])).toEqual(true);
219
+ });
220
+ it("does not satisfies filter", () => {
221
+ const device = mockDevice({
222
+ interfaceClass: filter.classCode,
223
+ productId: filter.productId,
224
+ interfaceProtocol: filter.protocolCode,
225
+ serialNumber: "something else",
226
+ interfaceSubclass: filter.subclassCode,
227
+ vendorId: filter.vendorId,
228
+ });
229
+ expect(applyDeviceFilters(device, [filter], [])).toEqual(false);
230
+ });
231
+ it("satisfies exclusion filter", () => {
232
+ const device = mockDevice({
233
+ interfaceClass: filter.classCode,
234
+ productId: filter.productId,
235
+ interfaceProtocol: filter.protocolCode,
236
+ serialNumber: filter.serialNumber,
237
+ interfaceSubclass: filter.subclassCode,
238
+ vendorId: filter.vendorId,
239
+ });
240
+ expect(applyDeviceFilters(device, [], [filter])).toEqual(false);
241
+ });
242
+ it("satifies filter and does not satisfy exclusion filter", () => {
243
+ const device = mockDevice({
244
+ interfaceClass: filter.classCode,
245
+ productId: filter.productId,
246
+ interfaceProtocol: filter.protocolCode,
247
+ serialNumber: filter.serialNumber,
248
+ interfaceSubclass: filter.subclassCode,
249
+ vendorId: filter.vendorId,
250
+ });
251
+ expect(applyDeviceFilters(device, [filter], [{ ...filter, serialNumber: "not satisfied" }])).toEqual(true);
252
+ });
253
+ });
254
+ //# sourceMappingURL=usb.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usb.test.js","sourceRoot":"","sources":["../../src/usb.test.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "name": "@microbit/microbit-connection",
3
- "version": "0.9.0-apps.alpha.15",
3
+ "version": "0.9.0-apps.alpha.16",
4
4
  "main": "./build/cjs/index.js",
5
5
  "module": "./build/esm/index.js",
6
6
  "types": "./build/esm/index.d.ts",
7
+ "files": [
8
+ "build"
9
+ ],
7
10
  "exports": {
8
11
  ".": {
9
12
  "import": {
@@ -17,35 +20,31 @@
17
20
  }
18
21
  },
19
22
  "scripts": {
20
- "dev": "vite",
21
23
  "build:esm": "tsc -p tsconfig.json && echo '{\"type\": \"module\"}' > build/esm/package.json",
22
24
  "build:cjs": "tsc -p tsconfig.cjs.json && echo '{\"type\": \"commonjs\"}' > build/cjs/package.json",
23
25
  "build:lib": "npm run build:esm && npm run build:cjs",
24
- "build:demo": "vite build --mode=demo",
25
- "build": "npm run build:lib && npm run build:demo",
26
+ "build": "npm run build:lib",
26
27
  "docs": "typedoc",
27
- "ci": "npm run build:lib && npm run test && npx prettier --check lib src",
28
- "test": "vitest",
29
- "preview": "vite preview"
28
+ "ci": "npm run build:lib && npm run test",
29
+ "test": "vitest"
30
30
  },
31
31
  "devDependencies": {
32
32
  "@types/node": "^20.14.10",
33
33
  "jsdom": "^24.1.0",
34
- "prettier": "3.3.2",
35
34
  "typedoc": "^0.27.6",
36
35
  "typescript": "^5.2.2",
37
- "vite": "^6.3.5",
38
36
  "vitest": "^3.2.4"
39
37
  },
40
38
  "dependencies": {
41
- "@capacitor-community/bluetooth-le": "^7.3.0",
42
- "@capacitor/core": "^7.4.4",
43
- "@capacitor/filesystem": "^7.1.6",
44
- "@microbit/capacitor-community-nordic-dfu": "^7.0.0-microbit.3",
45
39
  "@microbit/microbit-universal-hex": "^0.2.2",
46
40
  "@types/web-bluetooth": "^0.0.20",
47
- "crelt": "^1.0.6",
48
41
  "dapjs": "^2.3.0",
49
42
  "nrf-intel-hex": "^1.4.0"
43
+ },
44
+ "peerDependencies": {
45
+ "@capacitor-community/bluetooth-le": "^7.3.0",
46
+ "@capacitor/core": "^7.4.4",
47
+ "@capacitor/filesystem": "^7.1.6",
48
+ "@microbit/capacitor-community-nordic-dfu": "v7.0.0-microbit.4"
50
49
  }
51
50
  }
package/LICENSE.md DELETED
@@ -1,21 +0,0 @@
1
- MIT License
2
-
3
- Copyright (c) 2024-2025 Micro:bit Educational Foundation and contributors
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
package/README.md DELETED
@@ -1,125 +0,0 @@
1
- # micro:bit connection library
2
-
3
- <a href="https://microbit-foundation.github.io/microbit-connection/" class="typedoc-ignore">This documentation is best viewed on the documentation site rather than GitHub or NPM package site.</a>
4
-
5
- This is a JavaScript library for micro:bit connections in browsers via USB and Bluetooth.
6
-
7
- This project is a work in progress. We are extracting WebUSB and Web Bluetooth code from the [micro:bit Python Editor](https://github.com/microbit-foundation/python-editor-v3/) and other projects. The API is not stable and it's not yet recommended that third parties use this project unless they are happy to update usage as the API evolves.
8
-
9
- [Demo page](https://microbit-connection.pages.dev/) for this library.
10
-
11
- [Alpha releases are now on NPM](https://www.npmjs.com/package/@microbit/microbit-connection).
12
-
13
- [micro:bit CreateAI](https://github.com/microbit-foundation/ml-trainer/) is already using this library for WebUSB and Web Bluetooth.
14
-
15
- [This Python Editor PR](https://github.com/microbit-foundation/python-editor-v3/pull/1190) tracks updating the micro:bit Python Editor to use this library.
16
-
17
- ## Usage
18
-
19
- ### Flash a micro:bit
20
-
21
- Instantiate a WebUSB connection using {@link createWebUSBConnection} class and use it to connect to a micro:bit.
22
-
23
- ```ts
24
- import { createWebUSBConnection } from "@microbit/microbit-connection";
25
-
26
- const usb = createWebUSBConnection();
27
- const connectionStatus = await usb.connect();
28
-
29
- console.log("Connection status: ", connectionStatus);
30
- ```
31
-
32
- {@link ConnectionStatus | Connection status} is `"CONNECTED"` if connection succeeds.
33
-
34
- Flash a universal hex that supports both V1 and V2:
35
-
36
- ```ts
37
- import { createUniversalHexFlashDataSource } from "@microbit/microbit-connection";
38
-
39
- await usb.flash(createUniversalHexFlashDataSource(universalHexString), {
40
- partial: true,
41
- progress: (stage, percentage) => {
42
- console.log(stage, percentage);
43
- },
44
- });
45
- ```
46
-
47
- This code will also work for non-universal hex files so is a good default for unknown hex files.
48
-
49
- Alternatively, you can create and flash a hex for a specific micro:bit version by providing a function that takes a {@link BoardVersion} and returns a hex.
50
- This can reduce download size or help integrate with APIs that produce a hex for a particular device version.
51
- This example uses the [@microbit/microbit-fs library](https://microbit-foundation.github.io/microbit-fs/) which can return a hex based on board id.
52
-
53
- ```ts
54
- import { MicropythonFsHex, microbitBoardId } from "@microbit/microbit-fs";
55
- import { BoardId } from "@microbit/microbit-connection";
56
-
57
- const micropythonFs = new MicropythonFsHex([
58
- { hex: microPythonV1HexFile, boardId: microbitBoardId.V1 },
59
- { hex: microPythonV2HexFile, boardId: microbitBoardId.V2 },
60
- ]);
61
- // Add files to MicroPython file system here (omitted for simplicity)
62
- // Flash the device
63
- await usb.flash(
64
- async (boardVersion) => {
65
- const boardId = BoardId.forVersion(boardVersion).id;
66
- return micropythonFs.getIntelHex(boardId);
67
- },
68
- {
69
- partial: true,
70
- progress: (stage, percentage) => {
71
- console.log(stage, percentage);
72
- },
73
- },
74
- );
75
- ```
76
-
77
- For more examples of using other methods in the {@link MicrobitWebUSBConnection} class, see our [demo code](https://github.com/microbit-foundation/microbit-connection/blob/main/src/demo.ts) for our [demo site](https://microbit-connection.pages.dev/).
78
-
79
- ### Connect via Bluetooth
80
-
81
- By default, the micro:bit's Bluetooth service is not enabled. Visit our [Bluetooth tech site page](https://tech.microbit.org/bluetooth/) to download a hex file that would enable the bluetooth service.
82
-
83
- Instantiate a Bluetooth connection using {@link createWebBluetoothConnection} class and use it to connect to a micro:bit.
84
-
85
- ```ts
86
- import { createWebBluetoothConnection } from "@microbit/microbit-connection";
87
-
88
- const bluetooth = createWebBluetoothConnection();
89
- const connectionStatus = await bluetooth.connect();
90
-
91
- console.log("Connection status: ", connectionStatus);
92
- ```
93
-
94
- {@link ConnectionStatus | Connection status} is `"CONNECTED"` if connection succeeds.
95
-
96
- For more examples of using other methods in the {@link createWebBluetoothConnection} class, see our [demo code](https://github.com/microbit-foundation/microbit-connection/blob/main/src/demo.ts) for our [demo site](https://microbit-connection.pages.dev/).
97
-
98
- ## License
99
-
100
- This software is under the MIT open source license.
101
-
102
- [SPDX-License-Identifier: MIT](LICENSE)
103
-
104
- We use dependencies via the NPM registry as specified by the package.json file under common Open Source licenses.
105
-
106
- Full details of each package can be found by running `license-checker`:
107
-
108
- ```bash
109
- $ npx license-checker --direct --summary --production
110
- ```
111
-
112
- Omit the flags as desired to obtain more detail.
113
-
114
- ## Code of conduct
115
-
116
- Trust, partnership, simplicity and passion are our core values we live and
117
- breathe in our daily work life and within our projects. Our open-source
118
- projects are no exception. We have an active community which spans the globe
119
- and we welcome and encourage participation and contributions to our projects
120
- by everyone. We work to foster a positive, open, inclusive and supportive
121
- environment and trust that our community respects the micro:bit code of
122
- conduct. Please see our [code of conduct](https://microbit.org/safeguarding/)
123
- which outlines our expectations for all those that participate in our
124
- community and details on how to report any concerns and what would happen
125
- should breaches occur.
package/typedoc.json DELETED
@@ -1,14 +0,0 @@
1
- {
2
- "name": "micro:bit connection library",
3
- "navigationLinks": {
4
- "micro:bit tech site": "https://tech.microbit.org",
5
- "GitHub": "https://github.com/microbit-foundation/microbit-connection"
6
- },
7
- "entryPoints": ["./lib/index.ts"],
8
- "out": "./docs/build",
9
- "readme": "./README.md",
10
- "headings": {
11
- "readme": false
12
- },
13
- "customCss": "./docs/custom.css"
14
- }