boneio 1.2.0.dev7__tar.gz → 1.2.0.dev8__tar.gz

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 (429) hide show
  1. {boneio-1.2.0.dev7/boneio.egg-info → boneio-1.2.0.dev8}/PKG-INFO +1 -1
  2. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/manager/manager.py +21 -0
  3. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/manager/update.py +268 -6
  4. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/messaging/mqtt.py +8 -6
  5. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/integration/homeassistant.py +1 -1
  6. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/schema/actions.yaml +4 -4
  7. boneio-1.2.0.dev8/boneio/version.py +2 -0
  8. boneio-1.2.0.dev7/boneio/webui/frontend-dist/assets/cssMode-D2_GdEHn.js → boneio-1.2.0.dev8/boneio/webui/frontend-dist/assets/cssMode-xo2BdOZm.js +1 -1
  9. boneio-1.2.0.dev7/boneio/webui/frontend-dist/assets/freemarker2-Ccev9DQ3.js → boneio-1.2.0.dev8/boneio/webui/frontend-dist/assets/freemarker2-CpF78_ZW.js +1 -1
  10. boneio-1.2.0.dev7/boneio/webui/frontend-dist/assets/handlebars-CSWuYUii.js → boneio-1.2.0.dev8/boneio/webui/frontend-dist/assets/handlebars-CTxt7dmO.js +1 -1
  11. boneio-1.2.0.dev7/boneio/webui/frontend-dist/assets/html-BeCDD7uj.js → boneio-1.2.0.dev8/boneio/webui/frontend-dist/assets/html-BU5yZ3BK.js +1 -1
  12. boneio-1.2.0.dev7/boneio/webui/frontend-dist/assets/htmlMode-Csqim4tI.js → boneio-1.2.0.dev8/boneio/webui/frontend-dist/assets/htmlMode-Bi7QBmdE.js +1 -1
  13. boneio-1.2.0.dev7/boneio/webui/frontend-dist/assets/index-C6eDye5h.js → boneio-1.2.0.dev8/boneio/webui/frontend-dist/assets/index-TnEo7N0a.js +145 -145
  14. boneio-1.2.0.dev7/boneio/webui/frontend-dist/assets/javascript-CNjo7h5s.js → boneio-1.2.0.dev8/boneio/webui/frontend-dist/assets/javascript-BTvyG1P5.js +1 -1
  15. boneio-1.2.0.dev7/boneio/webui/frontend-dist/assets/jsonMode-CrofIOf5.js → boneio-1.2.0.dev8/boneio/webui/frontend-dist/assets/jsonMode-HE9dW4cx.js +1 -1
  16. boneio-1.2.0.dev7/boneio/webui/frontend-dist/assets/liquid-DhQWiRQL.js → boneio-1.2.0.dev8/boneio/webui/frontend-dist/assets/liquid-BxuGpv1s.js +1 -1
  17. boneio-1.2.0.dev7/boneio/webui/frontend-dist/assets/mdx-B7NfGq9x.js → boneio-1.2.0.dev8/boneio/webui/frontend-dist/assets/mdx-C04Q98IR.js +1 -1
  18. boneio-1.2.0.dev7/boneio/webui/frontend-dist/assets/python-CfAzolFq.js → boneio-1.2.0.dev8/boneio/webui/frontend-dist/assets/python-CKNUIQdp.js +1 -1
  19. boneio-1.2.0.dev7/boneio/webui/frontend-dist/assets/razor-nVU9Xllg.js → boneio-1.2.0.dev8/boneio/webui/frontend-dist/assets/razor-UrUJyAuF.js +1 -1
  20. boneio-1.2.0.dev7/boneio/webui/frontend-dist/assets/tsMode-DUyiY9xo.js → boneio-1.2.0.dev8/boneio/webui/frontend-dist/assets/tsMode-AhPw7VFe.js +1 -1
  21. boneio-1.2.0.dev7/boneio/webui/frontend-dist/assets/typescript-Cz5XSgIr.js → boneio-1.2.0.dev8/boneio/webui/frontend-dist/assets/typescript-CLXQgPoF.js +1 -1
  22. boneio-1.2.0.dev7/boneio/webui/frontend-dist/assets/xml-Bf4znVSR.js → boneio-1.2.0.dev8/boneio/webui/frontend-dist/assets/xml-DZmKn2me.js +1 -1
  23. boneio-1.2.0.dev7/boneio/webui/frontend-dist/assets/yaml-KWLRG-vP.js → boneio-1.2.0.dev8/boneio/webui/frontend-dist/assets/yaml-CGKDqmHX.js +1 -1
  24. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/index.html +1 -1
  25. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/binary_sensor.schema.json +4 -4
  26. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/config.schema.json +20 -20
  27. {boneio-1.2.0.dev7/boneio/webui/schema → boneio-1.2.0.dev8/boneio/webui/frontend-dist/schem}/event.schema.json +14 -14
  28. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/modbus_devices.schema.json +2 -2
  29. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/sw.js +1 -1
  30. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/routes/update.py +44 -113
  31. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/binary_sensor.schema.json +4 -4
  32. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/config.schema.json +20 -20
  33. {boneio-1.2.0.dev7/boneio/webui/frontend-dist/schem → boneio-1.2.0.dev8/boneio/webui/schema}/event.schema.json +14 -14
  34. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/modbus_devices.schema.json +2 -2
  35. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8/boneio.egg-info}/PKG-INFO +1 -1
  36. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio.egg-info/SOURCES.txt +16 -16
  37. boneio-1.2.0.dev7/boneio/version.py +0 -2
  38. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/LICENSE +0 -0
  39. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/MANIFEST.in +0 -0
  40. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/README.md +0 -0
  41. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/__init__.py +0 -0
  42. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.2/input.yaml +0 -0
  43. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.2/output_24_16.yaml +0 -0
  44. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.2/output_32_10.yaml +0 -0
  45. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.2/output_32_5.yaml +0 -0
  46. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.2/output_cover.yaml +0 -0
  47. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.2/output_cover_mix.yaml +0 -0
  48. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.3/input.yaml +0 -0
  49. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.3/output_24_16.yaml +0 -0
  50. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.3/output_32_10.yaml +0 -0
  51. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.3/output_32_5.yaml +0 -0
  52. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.3/output_cover.yaml +0 -0
  53. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.3/output_cover_mix.yaml +0 -0
  54. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.4/input.yaml +0 -0
  55. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.4/output_24_16.yaml +0 -0
  56. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.4/output_32_10.yaml +0 -0
  57. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.4/output_32_5.yaml +0 -0
  58. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.4/output_cover.yaml +0 -0
  59. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.4/output_cover_mix.yaml +0 -0
  60. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.5/input.yaml +0 -0
  61. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.5/output_24_16.yaml +0 -0
  62. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.5/output_32_10.yaml +0 -0
  63. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.5/output_cover.yaml +0 -0
  64. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.5/output_cover_mix.yaml +0 -0
  65. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.6/input.yaml +0 -0
  66. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.6/output_24_16.yaml +0 -0
  67. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.6/output_32_10.yaml +0 -0
  68. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.6/output_cover.yaml +0 -0
  69. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.6/output_cover_mix.yaml +0 -0
  70. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.7/input.yaml +0 -0
  71. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.7/output_24_16.yaml +0 -0
  72. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.7/output_32_10.yaml +0 -0
  73. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.7/output_cover.yaml +0 -0
  74. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.7/output_cover_mix.yaml +0 -0
  75. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.8/input.yaml +0 -0
  76. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.8/output_24_16.yaml +0 -0
  77. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.8/output_32_10.yaml +0 -0
  78. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.8/output_cover.yaml +0 -0
  79. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/boards/0.8/output_cover_mix.yaml +0 -0
  80. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/bonecli.py +0 -0
  81. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/components/__init__.py +0 -0
  82. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/components/cover/__init__.py +0 -0
  83. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/components/cover/cover.py +0 -0
  84. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/components/cover/previous.py +0 -0
  85. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/components/cover/time_based.py +0 -0
  86. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/components/cover/venetian.py +0 -0
  87. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/components/group/__init__.py +0 -0
  88. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/components/group/output_group.py +0 -0
  89. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/components/input/__init__.py +0 -0
  90. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/components/input/binary_sensor.py +0 -0
  91. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/components/input/detectors.py +0 -0
  92. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/components/input/event.py +0 -0
  93. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/components/output/__init__.py +0 -0
  94. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/components/output/basic.py +0 -0
  95. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/components/output/mcp.py +0 -0
  96. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/components/output/pca.py +0 -0
  97. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/components/output/pcf.py +0 -0
  98. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/components/sensor/__init__.py +0 -0
  99. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/components/sensor/virtual_energy.py +0 -0
  100. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/const.py +0 -0
  101. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/__init__.py +0 -0
  102. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/cloud/__init__.py +0 -0
  103. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/cloud/data/__init__.py +0 -0
  104. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/cloud/data/docker-compose-cloud.yaml +0 -0
  105. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/cloud/data/docker-compose.yaml +0 -0
  106. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/cloud/data/init-certs-cloud.sh +0 -0
  107. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/cloud/registration.py +0 -0
  108. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/cloud/secrets.py +0 -0
  109. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/config/__init__.py +0 -0
  110. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/config/config_helper.py +0 -0
  111. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/config/package-lock.json +0 -0
  112. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/config/package.json +0 -0
  113. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/config/schema_converter.py +0 -0
  114. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/config/yaml_util.py +0 -0
  115. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/discovery.py +0 -0
  116. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/events/__init__.py +0 -0
  117. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/events/bus.py +0 -0
  118. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/manager/__init__.py +0 -0
  119. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/manager/covers.py +0 -0
  120. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/manager/display.py +0 -0
  121. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/manager/inputs.py +0 -0
  122. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/manager/modbus.py +0 -0
  123. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/manager/outputs.py +0 -0
  124. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/manager/remote.py +0 -0
  125. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/manager/sensors.py +0 -0
  126. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/messaging/__init__.py +0 -0
  127. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/messaging/basic.py +0 -0
  128. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/messaging/basic_mqtt.py +0 -0
  129. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/messaging/local.py +0 -0
  130. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/messaging/queue.py +0 -0
  131. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/remote/__init__.py +0 -0
  132. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/remote/base.py +0 -0
  133. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/remote/esphome.py +0 -0
  134. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/remote/mqtt.py +0 -0
  135. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/remote/wled.py +0 -0
  136. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/sensor/__init__.py +0 -0
  137. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/sensor/base.py +0 -0
  138. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/sensor/system.py +0 -0
  139. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/state/__init__.py +0 -0
  140. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/state/manager.py +0 -0
  141. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/system/__init__.py +0 -0
  142. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/system/host_data.py +0 -0
  143. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/system/monitor.py +0 -0
  144. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/utils/__init__.py +0 -0
  145. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/utils/async_updater.py +0 -0
  146. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/utils/filter.py +0 -0
  147. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/utils/font_util.py +0 -0
  148. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/utils/logger.py +0 -0
  149. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/utils/timeperiod.py +0 -0
  150. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/core/utils/util.py +0 -0
  151. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/24x16/adc.yaml +0 -0
  152. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/24x16/binary_sensor.yaml +0 -0
  153. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/24x16/config.yaml +0 -0
  154. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/24x16/event.yaml +0 -0
  155. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/24x16/mqtt.yaml +0 -0
  156. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/24x16/output24x16A.yaml +0 -0
  157. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/32x10/adc.yaml +0 -0
  158. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/32x10/binary_sensor.yaml +0 -0
  159. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/32x10/config.yaml +0 -0
  160. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/32x10/event.yaml +0 -0
  161. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/32x10/mqtt.yaml +0 -0
  162. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/32x10/output32x10A.yaml +0 -0
  163. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/__init__.py +0 -0
  164. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/cover/adc.yaml +0 -0
  165. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/cover/binary_sensor.yaml +0 -0
  166. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/cover/config.yaml +0 -0
  167. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/cover/cover.yaml +0 -0
  168. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/cover/event.yaml +0 -0
  169. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/cover/mqtt.yaml +0 -0
  170. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/cover/outputCover.yaml +0 -0
  171. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/cover_mix/adc.yaml +0 -0
  172. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/cover_mix/binary_sensor.yaml +0 -0
  173. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/cover_mix/config.yaml +0 -0
  174. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/cover_mix/cover.yaml +0 -0
  175. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/cover_mix/event.yaml +0 -0
  176. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/cover_mix/mqtt.yaml +0 -0
  177. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/cover_mix/outputCoverMix.yaml +0 -0
  178. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/different_configs/adc.yaml +0 -0
  179. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/different_configs/all_binary_sensor.yaml +0 -0
  180. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/different_configs/binary_sensor.yaml +0 -0
  181. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/different_configs/binary_sensor_v_0_7.yaml +0 -0
  182. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/different_configs/config_24_16.yaml +0 -0
  183. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/different_configs/event_all.yaml +0 -0
  184. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/different_configs/event_v_0_7.yaml +0 -0
  185. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/different_configs/led32x4A.yaml +0 -0
  186. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/different_configs/output24x16A.yaml +0 -0
  187. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/different_configs/output24x16A_v0.3.yaml +0 -0
  188. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/different_configs/output32x10A.yaml +0 -0
  189. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/example_config/different_configs/output32x5A.yaml +0 -0
  190. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/exceptions.py +0 -0
  191. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/__init__.py +0 -0
  192. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/analog/__init__.py +0 -0
  193. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/analog/adc.py +0 -0
  194. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/display/__init__.py +0 -0
  195. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/display/fonts/danube__.ttf +0 -0
  196. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/display/oled.py +0 -0
  197. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/gpio/__init__.py +0 -0
  198. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/gpio/expanders/__init__.py +0 -0
  199. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/gpio/expanders/mcp23017.py +0 -0
  200. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/gpio/expanders/pca9685.py +0 -0
  201. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/gpio/expanders/pcf8575.py +0 -0
  202. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/gpio/input/__init__.py +0 -0
  203. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/gpio/input/base.py +0 -0
  204. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/gpio/input/manager.py +0 -0
  205. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/i2c/__init__.py +0 -0
  206. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/i2c/bus.py +0 -0
  207. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/i2c/ina219.py +0 -0
  208. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/i2c/ina219_driver.py +0 -0
  209. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/i2c/mcp9808.py +0 -0
  210. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/i2c/pct2075.py +0 -0
  211. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/onewire/__init__.py +0 -0
  212. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/onewire/bus.py +0 -0
  213. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/onewire/dallas.py +0 -0
  214. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/onewire/ds2482.py +0 -0
  215. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/sensor/__init__.py +0 -0
  216. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/sensor/temperature/__init__.py +0 -0
  217. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/sensor/temperature/base.py +0 -0
  218. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/sensor/temperature/mcp9808.py +0 -0
  219. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/hardware/sensor/temperature/pct2075.py +0 -0
  220. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/integration/__init__.py +0 -0
  221. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/integration/interlock.py +0 -0
  222. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/__init__.py +0 -0
  223. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/cli.py +0 -0
  224. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/client.py +0 -0
  225. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/coordinator.py +0 -0
  226. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/devices/__init__.py +0 -0
  227. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/devices/energy_meters/le-03mw.json +0 -0
  228. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/devices/energy_meters/le-03mwct.json +0 -0
  229. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/devices/energy_meters/orno-or-we-517.json +0 -0
  230. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/devices/energy_meters/sdm120.json +0 -0
  231. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/devices/energy_meters/sdm630.json +0 -0
  232. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/devices/energy_meters/socomec_e03.json +0 -0
  233. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/devices/energy_meters/socomec_e23.json +0 -0
  234. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/devices/hvac/fujitsu-ac.json +0 -0
  235. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/devices/hvac/ventclear.json +0 -0
  236. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/devices/inverters/sofar.json +0 -0
  237. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/devices/inverters/thessla.json +0 -0
  238. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/devices/other/n4dsc08.json +0 -0
  239. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/devices/other/r4dcb08.json +0 -0
  240. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/devices/other/wanas415.json +0 -0
  241. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/devices/sensors/cwt.json +0 -0
  242. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/devices/sensors/dts1964_3f.json +0 -0
  243. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/devices/sensors/dyp-a12-ultrasonic.json +0 -0
  244. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/devices/sensors/liquid-sensor.json +0 -0
  245. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/devices/sensors/pt100.json +0 -0
  246. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/devices/sensors/sht20.json +0 -0
  247. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/devices/sensors/sht30.json +0 -0
  248. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/entities/__init__.py +0 -0
  249. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/entities/base.py +0 -0
  250. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/entities/derived/__init__.py +0 -0
  251. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/entities/derived/numeric.py +0 -0
  252. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/entities/derived/select.py +0 -0
  253. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/entities/derived/switch.py +0 -0
  254. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/entities/derived/text.py +0 -0
  255. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/entities/sensor/__init__.py +0 -0
  256. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/entities/sensor/binary.py +0 -0
  257. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/entities/sensor/numeric.py +0 -0
  258. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/entities/sensor/text.py +0 -0
  259. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/entities/writeable/__init__.py +0 -0
  260. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/entities/writeable/binary.py +0 -0
  261. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/entities/writeable/numeric.py +0 -0
  262. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/modbus/utils.py +0 -0
  263. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/models/__init__.py +0 -0
  264. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/models/actions.py +0 -0
  265. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/models/events.py +0 -0
  266. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/models/files.py +0 -0
  267. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/models/logs.py +0 -0
  268. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/models/mqtt.py +0 -0
  269. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/models/state.py +0 -0
  270. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/runner.py +0 -0
  271. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/schema/actions_sensor.yaml +0 -0
  272. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/schema/actions_switch.yaml +0 -0
  273. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/schema/filters.yaml +0 -0
  274. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/schema/filters_adc.yaml +0 -0
  275. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/schema/id.yaml +0 -0
  276. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/schema/remote_devices.yaml +0 -0
  277. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/schema/schema.yaml +0 -0
  278. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/schema/temp_unit.yaml +0 -0
  279. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/schema/update_interval.yaml +0 -0
  280. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/app.py +0 -0
  281. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/abap-CRCWOmpq.js +0 -0
  282. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/apex-DnsZk_dE.js +0 -0
  283. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/azcli-1IWB1ccx.js +0 -0
  284. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/bat-DPkNLes8.js +0 -0
  285. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/bicep-Corcdgou.js +0 -0
  286. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/cameligo-CGrWLZr3.js +0 -0
  287. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/clojure-D9WOWImG.js +0 -0
  288. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/codicon-DCmgc-ay.ttf +0 -0
  289. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/coffee-B7EJu28W.js +0 -0
  290. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/cpp-SEyurbux.js +0 -0
  291. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/csharp-BoL64M5l.js +0 -0
  292. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/csp-C46ZqvIl.js +0 -0
  293. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/css-DQU6DXDx.js +0 -0
  294. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/cypher-D84EuPTj.js +0 -0
  295. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/dart-D8lhlL1r.js +0 -0
  296. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/dockerfile-DLk6rpji.js +0 -0
  297. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/ecl-BO6FnfXk.js +0 -0
  298. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/editor.worker-B4pQIWZD.js +0 -0
  299. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/elixir-BRjLKONM.js +0 -0
  300. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/flow9-Cac8vKd7.js +0 -0
  301. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/fsharp-fd1GTHhf.js +0 -0
  302. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/go-O9LJTZXk.js +0 -0
  303. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/graphql-LQdxqEYJ.js +0 -0
  304. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/hcl-DxDQ3s82.js +0 -0
  305. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/index-CyjBlAI7.css +0 -0
  306. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/ini-BvajGCUy.js +0 -0
  307. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/java-SYsfObOQ.js +0 -0
  308. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/json.worker-aFakAbRR.js +0 -0
  309. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/julia-DQXNmw_w.js +0 -0
  310. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/kotlin-qQ0MG-9I.js +0 -0
  311. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/less-GGFNNJHn.js +0 -0
  312. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/lexon-Canl7DCW.js +0 -0
  313. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/lua-D28Ae8-K.js +0 -0
  314. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/m3-DPitgjJI.js +0 -0
  315. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/markdown-B811l8j2.js +0 -0
  316. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/mips-CdjsipkG.js +0 -0
  317. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/msdax-CYqgjx_P.js +0 -0
  318. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/mysql-BHd6q0vd.js +0 -0
  319. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/objective-c-B1aVtJYH.js +0 -0
  320. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/pascal-BhNW15KB.js +0 -0
  321. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/pascaligo-5jv8CcQD.js +0 -0
  322. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/perl-DlYyT36c.js +0 -0
  323. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/pgsql-Dy0bjov7.js +0 -0
  324. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/php-120yhfDK.js +0 -0
  325. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/pla-CjnFlu4u.js +0 -0
  326. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/postiats-CQpG440k.js +0 -0
  327. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/powerquery-DdJtto1Z.js +0 -0
  328. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/powershell-Bu_VLpJB.js +0 -0
  329. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/protobuf-IBS6jZEB.js +0 -0
  330. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/pug-kFxLfcjb.js +0 -0
  331. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/qsharp-q7JyzKFN.js +0 -0
  332. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/r-BIFz-_sK.js +0 -0
  333. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/redis-CHOsPHWR.js +0 -0
  334. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/redshift-CBifECDb.js +0 -0
  335. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/restructuredtext-CghPJEOS.js +0 -0
  336. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/ruby-CYWGW-b1.js +0 -0
  337. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/rust-DMDD0SHb.js +0 -0
  338. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/sb-BYAiYHFx.js +0 -0
  339. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/scala-Bqvq8jcR.js +0 -0
  340. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/scheme-Dhb-2j9p.js +0 -0
  341. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/scss-CTwUZ5N7.js +0 -0
  342. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/shell-CsDZo4DB.js +0 -0
  343. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/solidity-CME5AdoB.js +0 -0
  344. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/sophia-RYC1BQQz.js +0 -0
  345. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/sparql-KEyrF7De.js +0 -0
  346. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/sql-BdTr02Mf.js +0 -0
  347. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/st-C7iG7M4S.js +0 -0
  348. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/swift-D7IUmUK8.js +0 -0
  349. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/systemverilog-DgMryOEJ.js +0 -0
  350. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/tcl-PloMZuKG.js +0 -0
  351. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/twig-BfRIq3la.js +0 -0
  352. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/typespec-CzxlYoT_.js +0 -0
  353. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/vb-BwAE3J76.js +0 -0
  354. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/wgsl-B_1kOXbF.js +0 -0
  355. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/workbox-window.prod.es5-BIl4cyR9.js +0 -0
  356. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/assets/yaml.worker-DBeHcBRc.js +0 -0
  357. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/boneio-192.png +0 -0
  358. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/boneio-512.png +0 -0
  359. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/boneio.svg +0 -0
  360. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/boneio_fav.svg +0 -0
  361. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/adc.schema.json +0 -0
  362. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/areas.schema.json +0 -0
  363. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/boneio.schema.json +0 -0
  364. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/cover.schema.json +0 -0
  365. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/dallas.schema.json +0 -0
  366. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/ds2482.schema.json +0 -0
  367. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/ina219.schema.json +0 -0
  368. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/lm75.schema.json +0 -0
  369. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/logger.schema.json +0 -0
  370. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/mcp23017.schema.json +0 -0
  371. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/mcp9808.schema.json +0 -0
  372. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/modbus.schema.json +0 -0
  373. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/mqtt.schema.json +0 -0
  374. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/oled.schema.json +0 -0
  375. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/output.schema.json +0 -0
  376. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/output_group.schema.json +0 -0
  377. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/pca9685.schema.json +0 -0
  378. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/pcf8575.schema.json +0 -0
  379. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/remote_devices.schema.json +0 -0
  380. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/sensor.schema.json +0 -0
  381. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/virtual_energy_sensor.schema.json +0 -0
  382. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/schem/web.schema.json +0 -0
  383. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/frontend-dist/workbox-226dbdbf.js +0 -0
  384. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/middleware/__init__.py +0 -0
  385. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/middleware/auth.py +0 -0
  386. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/routes/__init__.py +0 -0
  387. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/routes/auth.py +0 -0
  388. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/routes/caddy.py +0 -0
  389. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/routes/config.py +0 -0
  390. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/routes/covers.py +0 -0
  391. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/routes/modbus.py +0 -0
  392. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/routes/outputs.py +0 -0
  393. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/routes/remote_devices.py +0 -0
  394. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/routes/sensors.py +0 -0
  395. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/routes/system.py +0 -0
  396. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/adc.schema.json +0 -0
  397. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/areas.schema.json +0 -0
  398. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/boneio.schema.json +0 -0
  399. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/cover.schema.json +0 -0
  400. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/dallas.schema.json +0 -0
  401. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/ds2482.schema.json +0 -0
  402. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/ina219.schema.json +0 -0
  403. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/lm75.schema.json +0 -0
  404. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/logger.schema.json +0 -0
  405. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/mcp23017.schema.json +0 -0
  406. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/mcp9808.schema.json +0 -0
  407. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/modbus.schema.json +0 -0
  408. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/mqtt.schema.json +0 -0
  409. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/oled.schema.json +0 -0
  410. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/output.schema.json +0 -0
  411. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/output_group.schema.json +0 -0
  412. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/pca9685.schema.json +0 -0
  413. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/pcf8575.schema.json +0 -0
  414. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/remote_devices.schema.json +0 -0
  415. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/sensor.schema.json +0 -0
  416. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/virtual_energy_sensor.schema.json +0 -0
  417. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/schema/web.schema.json +0 -0
  418. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/services/__init__.py +0 -0
  419. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/services/logs.py +0 -0
  420. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/web_server.py +0 -0
  421. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio/webui/websocket_manager.py +0 -0
  422. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio.egg-info/dependency_links.txt +0 -0
  423. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio.egg-info/entry_points.txt +0 -0
  424. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio.egg-info/requires.txt +0 -0
  425. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/boneio.egg-info/top_level.txt +0 -0
  426. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/pyproject.toml +0 -0
  427. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/setup.cfg +0 -0
  428. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/setup.py +0 -0
  429. {boneio-1.2.0.dev7 → boneio-1.2.0.dev8}/tests/test_py313_compatibility.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: boneio
3
- Version: 1.2.0.dev7
3
+ Version: 1.2.0.dev8
4
4
  Summary: Python App for BoneIO
5
5
  Author-email: Paweł Szafer <pszafer@gmail.com>
6
6
  License: GNU General Public License v3.0
@@ -566,6 +566,13 @@ class Manager:
566
566
  val = action_definition.get(opt_key)
567
567
  if val is not None:
568
568
  parsed_action[opt_key] = val
569
+ # Convert transition TimePeriod to float seconds
570
+ if "transition" in parsed_action:
571
+ t_val = parsed_action["transition"]
572
+ if hasattr(t_val, "total_in_seconds"):
573
+ parsed_action["transition"] = t_val.total_in_seconds
574
+ elif not isinstance(t_val, (int, float)):
575
+ parsed_action["transition"] = 0.0
569
576
  _copy_long_press_meta(parsed_action, action_definition)
570
577
  parsed_actions[click_type].append(parsed_action)
571
578
  continue
@@ -739,6 +746,20 @@ class Manager:
739
746
  output_id = action_definition.get("output_id")
740
747
  action_output = action_definition.get("action_output", "TOGGLE")
741
748
 
749
+ # Clamp transition to repeat_interval to avoid overlapping animations
750
+ transition_val = action_definition.get("transition")
751
+ if transition_val and action_definition.get("repeat"):
752
+ repeat_interval = action_definition.get("repeat_interval")
753
+ if repeat_interval:
754
+ ri_seconds = repeat_interval.total_in_seconds if hasattr(repeat_interval, "total_in_seconds") else repeat_interval / 1000.0
755
+ if transition_val > ri_seconds:
756
+ _LOGGER.debug(
757
+ "Clamping transition %.3fs to repeat_interval %.3fs",
758
+ transition_val, ri_seconds,
759
+ )
760
+ transition_val = ri_seconds
761
+ action_definition = {**action_definition, "transition": transition_val}
762
+
742
763
  if action_output == "CYCLE_COLOR":
743
764
  await self.remote_devices.cycle_color(
744
765
  device_id=remote_device_id,
@@ -6,13 +6,18 @@ and publishes the update status to Home Assistant via MQTT.
6
6
 
7
7
  from __future__ import annotations
8
8
 
9
+ import asyncio
9
10
  import json
10
11
  import logging
12
+ import os
13
+ import subprocess
14
+ from collections.abc import Callable
11
15
  from typing import TYPE_CHECKING
12
16
 
13
17
  from boneio.core.utils.async_updater import AsyncUpdater
14
18
  from boneio.core.utils.timeperiod import TimePeriod
15
19
  from boneio.version import __version__
20
+ from boneio.webui.services.logs import is_running_as_service
16
21
 
17
22
  if TYPE_CHECKING:
18
23
  from boneio.core.manager import Manager
@@ -52,6 +57,7 @@ class UpdateManager(AsyncUpdater):
52
57
  self._last_check_result: dict | None = None
53
58
  self._last_published_state: str | None = None
54
59
  self._ha_discovery_sent: bool = False
60
+ self._update_running: bool = False
55
61
 
56
62
  # Initialize AsyncUpdater (starts periodic task)
57
63
  super().__init__(manager=manager, update_interval=update_interval)
@@ -312,10 +318,16 @@ class UpdateManager(AsyncUpdater):
312
318
  """
313
319
  return self._last_check_result
314
320
 
321
+ @property
322
+ def update_running(self) -> bool:
323
+ """Whether an update is currently in progress."""
324
+ return self._update_running
325
+
315
326
  async def handle_install_command(self, payload: str) -> None:
316
327
  """Handle install command from Home Assistant.
317
328
 
318
329
  This is called when HA sends a message to the command topic.
330
+ Performs pip install of the latest version and restarts the service.
319
331
 
320
332
  Args:
321
333
  payload: MQTT payload (should be "INSTALL")
@@ -326,6 +338,14 @@ class UpdateManager(AsyncUpdater):
326
338
 
327
339
  _LOGGER.info("Received install command from Home Assistant")
328
340
 
341
+ if not is_running_as_service():
342
+ _LOGGER.warning("Update via MQTT is only available when running as a service")
343
+ return
344
+
345
+ if self._update_running:
346
+ _LOGGER.warning("Update already in progress, ignoring install command")
347
+ return
348
+
329
349
  # Check if update is available
330
350
  if not self._last_check_result:
331
351
  _LOGGER.warning("No update check result available, checking now...")
@@ -335,15 +355,257 @@ class UpdateManager(AsyncUpdater):
335
355
  _LOGGER.warning("No update available to install")
336
356
  return
337
357
 
338
- # Trigger update via existing update endpoint
339
- # Note: This requires the update API to be accessible
340
- # The actual installation is handled by /api/update endpoint
358
+ target_version = self._last_check_result.get("latest_version")
359
+
360
+ # Run update in background task to not block MQTT
361
+ asyncio.create_task(
362
+ self.perform_update(target_version=target_version)
363
+ )
364
+
365
+ async def perform_update(
366
+ self,
367
+ target_version: str | None = None,
368
+ on_progress: Callable[[int, str, str | None], None] | None = None,
369
+ ) -> None:
370
+ """Perform the actual update: pip install + restart.
371
+
372
+ This is the single update algorithm used by both MQTT (HA) and WebUI.
373
+
374
+ Handles pre-release versions by adding --pre flag.
375
+ Retries up to 3 times with 30s delay if pip install fails
376
+ (PyPI index may not have the version available immediately).
377
+
378
+ Args:
379
+ target_version: Version to install, or None for latest.
380
+ on_progress: Optional callback(progress_pct, step, log_msg).
381
+ Called at each stage so the caller can track progress.
382
+ If None, only MQTT progress is published.
383
+ """
384
+ if self._update_running:
385
+ _LOGGER.warning("Update already in progress")
386
+ return
387
+
388
+ self._update_running = True
389
+ current_version = __version__
341
390
  _LOGGER.info(
342
- "Update installation should be triggered via WebUI or API endpoint /api/update"
391
+ "Starting update from %s to %s",
392
+ current_version, target_version or "latest"
393
+ )
394
+
395
+ async def _report(progress: int, step: str, log_msg: str | None = None) -> None:
396
+ """Report progress to both MQTT and optional callback."""
397
+ await self._publish_update_progress(
398
+ current_version=current_version,
399
+ target_version=target_version,
400
+ progress=progress,
401
+ )
402
+ if on_progress:
403
+ on_progress(progress, step, log_msg)
404
+
405
+ try:
406
+ await _report(5, "Finding virtual environment...")
407
+
408
+ # Find virtual environment
409
+ possible_venv_paths = [
410
+ os.path.expanduser("~/boneio/venv"),
411
+ os.path.expanduser("~/venv"),
412
+ "/opt/boneio/venv",
413
+ ]
414
+
415
+ pip_path = None
416
+ venv_path = None
417
+ for path in possible_venv_paths:
418
+ pip_candidate = os.path.join(path, "bin", "pip")
419
+ if os.path.exists(pip_candidate):
420
+ venv_path = path
421
+ pip_path = pip_candidate
422
+ _LOGGER.info("Found venv pip at %s", pip_path)
423
+ break
424
+
425
+ if not pip_path:
426
+ _LOGGER.error("Virtual environment not found, cannot update")
427
+ await _report(0, "Failed", "Could not find virtual environment")
428
+ return
429
+
430
+ await _report(10, "Virtual environment found", f"Using venv at {venv_path}")
431
+ await _report(15, "Preparing update...", f"Current version: {current_version}")
432
+ await _report(30, "Upgrading pip...")
433
+
434
+ # Upgrade pip first
435
+ pip_upgrade = subprocess.run(
436
+ [pip_path, "install", "--upgrade", "pip"],
437
+ capture_output=True, text=True, timeout=120
438
+ )
439
+
440
+ if pip_upgrade.returncode == 0:
441
+ await _report(40, "Pip upgraded", "pip upgraded successfully")
442
+ else:
443
+ await _report(40, "Pip upgrade skipped", "pip upgrade failed, continuing...")
444
+
445
+ # Build pip install command
446
+ pip_cmd = [pip_path, "install", "--upgrade"]
447
+
448
+ # Add --pre flag for pre-release versions (dev, alpha, beta, rc)
449
+ needs_pre = False
450
+ if target_version and self._is_prerelease_version(target_version):
451
+ needs_pre = True
452
+ elif not target_version and self._is_prerelease_version(current_version):
453
+ needs_pre = True
454
+
455
+ if needs_pre:
456
+ pip_cmd.append("--pre")
457
+ await _report(42, "Using --pre flag", "Pre-release version detected")
458
+
459
+ if target_version:
460
+ pip_package = f"boneio=={target_version}"
461
+ else:
462
+ pip_package = "boneio"
463
+
464
+ pip_cmd.append(pip_package)
465
+
466
+ await _report(45, f"Downloading and installing {pip_package}...")
467
+
468
+ # Retry logic: PyPI may not have the version available immediately
469
+ max_retries = 3
470
+ retry_delay = 30 # seconds
471
+ result = None
472
+
473
+ for attempt in range(1, max_retries + 1):
474
+ await _report(
475
+ 45 + (attempt - 1) * 10,
476
+ f"Installing (attempt {attempt}/{max_retries})...",
477
+ f"Running: {' '.join(pip_cmd)}"
478
+ )
479
+
480
+ result = subprocess.run(
481
+ pip_cmd,
482
+ capture_output=True, text=True, timeout=300
483
+ )
484
+
485
+ if result.returncode == 0:
486
+ break
487
+
488
+ _LOGGER.warning(
489
+ "pip install attempt %d/%d failed: %s",
490
+ attempt, max_retries, result.stderr.strip()
491
+ )
492
+
493
+ if attempt < max_retries:
494
+ await _report(
495
+ 45 + attempt * 10,
496
+ f"Retrying in {retry_delay}s...",
497
+ f"Attempt {attempt} failed, PyPI index may not be ready"
498
+ )
499
+ await asyncio.sleep(retry_delay)
500
+
501
+ if not result or result.returncode != 0:
502
+ error_msg = result.stderr.strip() if result else "Unknown error"
503
+ _LOGGER.error(
504
+ "pip install failed after %d attempts: %s",
505
+ max_retries, error_msg
506
+ )
507
+ await _report(0, "Update failed", error_msg)
508
+ return
509
+
510
+ await _report(80, "BoneIO updated", "Package installed successfully")
511
+ await _report(85, "Verifying installation...")
512
+
513
+ # Verify installed version
514
+ version_result = subprocess.run(
515
+ [pip_path, "show", "boneio"],
516
+ capture_output=True, text=True
517
+ )
518
+ new_version = current_version
519
+ if version_result.returncode == 0:
520
+ for line in version_result.stdout.split('\n'):
521
+ if line.startswith('Version:'):
522
+ new_version = line.split(':')[1].strip()
523
+ break
524
+
525
+ _LOGGER.info(
526
+ "Update successful: %s -> %s. Restarting in 2 seconds...",
527
+ current_version, new_version
528
+ )
529
+
530
+ await _report(90, "Installation verified", f"Updated from {current_version} to {new_version}")
531
+ await _report(95, "Finalizing...")
532
+
533
+ # Publish final success state (no longer in progress)
534
+ current_version = new_version # update for final MQTT publish
535
+ await self._publish_update_progress(
536
+ current_version=new_version,
537
+ target_version=None,
538
+ progress=0,
539
+ )
540
+ if on_progress:
541
+ on_progress(100, "Update complete!", f"Restarting service in 2 seconds...")
542
+
543
+ await asyncio.sleep(2)
544
+
545
+ _LOGGER.info("Restarting BoneIO service after update...")
546
+ os._exit(0)
547
+
548
+ except subprocess.TimeoutExpired:
549
+ _LOGGER.error("Update process timed out")
550
+ await _report(0, "Timeout", "Update process timed out")
551
+ except Exception as e:
552
+ _LOGGER.error("Error during update: %s", e, exc_info=True)
553
+ await _report(0, "Error", f"Unexpected error: {e}")
554
+ finally:
555
+ self._update_running = False
556
+
557
+ @staticmethod
558
+ def _is_prerelease_version(version_str: str) -> bool:
559
+ """Check if version string is a pre-release (dev, alpha, beta, rc).
560
+
561
+ Args:
562
+ version_str: Version string to check
563
+
564
+ Returns:
565
+ True if version is a pre-release
566
+ """
567
+ ver_lower = version_str.lower()
568
+ return any(x in ver_lower for x in ['dev', 'alpha', 'beta', 'rc'])
569
+
570
+ async def _publish_update_progress(
571
+ self,
572
+ current_version: str,
573
+ target_version: str | None,
574
+ progress: int,
575
+ ) -> None:
576
+ """Publish update progress state to MQTT for HA.
577
+
578
+ HA update entity supports in_progress as:
579
+ - false/0: not updating
580
+ - true: updating (indeterminate)
581
+ - int 1-100: updating with progress percentage
582
+
583
+ Args:
584
+ current_version: Currently installed version
585
+ target_version: Version being installed (None if not updating)
586
+ progress: Update progress percentage (0 = not updating, 1-100 = in progress)
587
+ """
588
+ # HA interprets 0/false as "not updating", 1-100 as "updating with progress"
589
+ in_progress_value: int | bool = progress if progress > 0 else False
590
+
591
+ state_payload = {
592
+ "installed_version": current_version,
593
+ "latest_version": target_version or current_version,
594
+ "title": "boneIO Black Firmware",
595
+ "release_url": self._last_check_result.get("release_url", "") if self._last_check_result else "",
596
+ "release_summary": self._last_check_result.get("release_notes", "") if self._last_check_result else "",
597
+ "entity_picture": "http://boneio.eu/logo_fb_circle.png",
598
+ "in_progress": in_progress_value,
599
+ }
600
+
601
+ topic_prefix = self._manager._config_helper.topic_prefix
602
+ self._manager.send_message(
603
+ topic=f"{topic_prefix}/update/state",
604
+ payload=json.dumps(state_payload),
605
+ retain=True,
343
606
  )
344
607
 
345
- # TODO: Consider adding direct integration with update logic
346
- # For now, users should use the WebUI to trigger updates
608
+ _LOGGER.debug("Published update progress: %d%%", progress)
347
609
 
348
610
  async def send_ha_autodiscovery(self) -> None:
349
611
  """Send Home Assistant autodiscovery for Update entity."""
@@ -144,6 +144,9 @@ class MQTTClient(MessageBus):
144
144
  @override
145
145
  async def subscribe_and_listen(self, topic: str, callback: Callable[[str, str], Awaitable[None]]) -> None:
146
146
  self._mqtt_energy_listeners[topic] = callback
147
+ # Subscribe immediately if already connected
148
+ if self._connection_established:
149
+ await self.subscribe(topics=[topic])
147
150
 
148
151
  @override
149
152
  async def unsubscribe_and_stop_listen(self, topic: str) -> None:
@@ -327,12 +330,11 @@ class MQTTClient(MessageBus):
327
330
  topic=topic, payload=None, retain=True
328
331
  )
329
332
  break
330
- if message.topic.matches(f"{self._config_helper.topic_prefix}/energy/#"):
331
- callback_start = False
332
- for topic, listener_callback in self._mqtt_energy_listeners.items():
333
- if message.topic.matches(topic):
334
- await listener_callback(str(message.topic), payload)
335
- break
333
+ for topic, listener_callback in self._mqtt_energy_listeners.items():
334
+ if message.topic.matches(topic):
335
+ callback_start = False
336
+ await listener_callback(str(message.topic), payload)
337
+ break
336
338
  if callback_start:
337
339
  _LOGGER.debug(
338
340
  "Received message topic: %s, payload: %s",
@@ -35,7 +35,7 @@ from boneio.const import (
35
35
  TRIPLE,
36
36
  )
37
37
  from boneio.version import __version__
38
- from typing import Any, TypedDict, TYPE_CHECKING
38
+ from typing import Any, TYPE_CHECKING
39
39
  if TYPE_CHECKING:
40
40
  from boneio.core.config.config_helper import ConfigHelper
41
41
 
@@ -161,12 +161,12 @@ schema:
161
161
  Only for ESPHome lights with RGB support.
162
162
  Example: [255, 0, 0] for red, [0, 255, 0] for green, [0, 0, 255] for blue.
163
163
  transition:
164
- type: float
164
+ type: timeperiod
165
+ coerce: positive_time_period
165
166
  required: False
166
- default: 0.0
167
167
  meta:
168
- label: Transition Time (seconds)
169
- description: "Time in seconds to transition to the new state. Only for ESPHome lights."
168
+ label: Transition Time
169
+ description: "Time to transition to the new state. Only for ESPHome/WLED lights. Example: 500ms, 1s"
170
170
 
171
171
  # Cycle color/preset support
172
172
  colors:
@@ -0,0 +1,2 @@
1
+ # flake8: noqa
2
+ __version__ = "1.2.0dev8"
@@ -1,4 +1,4 @@
1
- import{m as et}from"./index-C6eDye5h.js";var tt=Object.defineProperty,rt=Object.getOwnPropertyDescriptor,nt=Object.getOwnPropertyNames,it=Object.prototype.hasOwnProperty,ot=(e,n,i,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of nt(n))!it.call(e,t)&&t!==i&&tt(e,t,{get:()=>n[t],enumerable:!(r=rt(n,t))||r.enumerable});return e},at=(e,n,i)=>(ot(e,n,"default"),i),d={};at(d,et);var st=120*1e3,ut=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>st&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=d.editor.createWebWorker({moduleId:"vs/language/css/cssWorker",label:this._defaults.languageId,createData:{options:this._defaults.options,languageId:this._defaults.languageId}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let n;return this._getClient().then(i=>{n=i}).then(i=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(i=>n)}},T;(function(e){function n(i){return typeof i=="string"}e.is=n})(T||(T={}));var O;(function(e){function n(i){return typeof i=="string"}e.is=n})(O||(O={}));var Y;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function n(i){return typeof i=="number"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=n})(Y||(Y={}));var M;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function n(i){return typeof i=="number"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=n})(M||(M={}));var w;(function(e){function n(r,t){return r===Number.MAX_VALUE&&(r=M.MAX_VALUE),t===Number.MAX_VALUE&&(t=M.MAX_VALUE),{line:r,character:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&a.uinteger(t.line)&&a.uinteger(t.character)}e.is=i})(w||(w={}));var h;(function(e){function n(r,t,o,s){if(a.uinteger(r)&&a.uinteger(t)&&a.uinteger(o)&&a.uinteger(s))return{start:w.create(r,t),end:w.create(o,s)};if(w.is(r)&&w.is(t))return{start:r,end:t};throw new Error(`Range#create called with invalid arguments[${r}, ${t}, ${o}, ${s}]`)}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&w.is(t.start)&&w.is(t.end)}e.is=i})(h||(h={}));var C;(function(e){function n(r,t){return{uri:r,range:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.range)&&(a.string(t.uri)||a.undefined(t.uri))}e.is=i})(C||(C={}));var Z;(function(e){function n(r,t,o,s){return{targetUri:r,targetRange:t,targetSelectionRange:o,originSelectionRange:s}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.targetRange)&&a.string(t.targetUri)&&h.is(t.targetSelectionRange)&&(h.is(t.originSelectionRange)||a.undefined(t.originSelectionRange))}e.is=i})(Z||(Z={}));var S;(function(e){function n(r,t,o,s){return{red:r,green:t,blue:o,alpha:s}}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&a.numberRange(t.red,0,1)&&a.numberRange(t.green,0,1)&&a.numberRange(t.blue,0,1)&&a.numberRange(t.alpha,0,1)}e.is=i})(S||(S={}));var K;(function(e){function n(r,t){return{range:r,color:t}}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&h.is(t.range)&&S.is(t.color)}e.is=i})(K||(K={}));var ee;(function(e){function n(r,t,o){return{label:r,textEdit:t,additionalTextEdits:o}}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&a.string(t.label)&&(a.undefined(t.textEdit)||E.is(t))&&(a.undefined(t.additionalTextEdits)||a.typedArray(t.additionalTextEdits,E.is))}e.is=i})(ee||(ee={}));var A;(function(e){e.Comment="comment",e.Imports="imports",e.Region="region"})(A||(A={}));var te;(function(e){function n(r,t,o,s,u,f){const c={startLine:r,endLine:t};return a.defined(o)&&(c.startCharacter=o),a.defined(s)&&(c.endCharacter=s),a.defined(u)&&(c.kind=u),a.defined(f)&&(c.collapsedText=f),c}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&a.uinteger(t.startLine)&&a.uinteger(t.startLine)&&(a.undefined(t.startCharacter)||a.uinteger(t.startCharacter))&&(a.undefined(t.endCharacter)||a.uinteger(t.endCharacter))&&(a.undefined(t.kind)||a.string(t.kind))}e.is=i})(te||(te={}));var U;(function(e){function n(r,t){return{location:r,message:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&C.is(t.location)&&a.string(t.message)}e.is=i})(U||(U={}));var x;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(x||(x={}));var re;(function(e){e.Unnecessary=1,e.Deprecated=2})(re||(re={}));var ne;(function(e){function n(i){const r=i;return a.objectLiteral(r)&&a.string(r.href)}e.is=n})(ne||(ne={}));var y;(function(e){function n(r,t,o,s,u,f){let c={range:r,message:t};return a.defined(o)&&(c.severity=o),a.defined(s)&&(c.code=s),a.defined(u)&&(c.source=u),a.defined(f)&&(c.relatedInformation=f),c}e.create=n;function i(r){var t;let o=r;return a.defined(o)&&h.is(o.range)&&a.string(o.message)&&(a.number(o.severity)||a.undefined(o.severity))&&(a.integer(o.code)||a.string(o.code)||a.undefined(o.code))&&(a.undefined(o.codeDescription)||a.string((t=o.codeDescription)===null||t===void 0?void 0:t.href))&&(a.string(o.source)||a.undefined(o.source))&&(a.undefined(o.relatedInformation)||a.typedArray(o.relatedInformation,U.is))}e.is=i})(y||(y={}));var I;(function(e){function n(r,t,...o){let s={title:r,command:t};return a.defined(o)&&o.length>0&&(s.arguments=o),s}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.title)&&a.string(t.command)}e.is=i})(I||(I={}));var E;(function(e){function n(o,s){return{range:o,newText:s}}e.replace=n;function i(o,s){return{range:{start:o,end:o},newText:s}}e.insert=i;function r(o){return{range:o,newText:""}}e.del=r;function t(o){const s=o;return a.objectLiteral(s)&&a.string(s.newText)&&h.is(s.range)}e.is=t})(E||(E={}));var V;(function(e){function n(r,t,o){const s={label:r};return t!==void 0&&(s.needsConfirmation=t),o!==void 0&&(s.description=o),s}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&a.string(t.label)&&(a.boolean(t.needsConfirmation)||t.needsConfirmation===void 0)&&(a.string(t.description)||t.description===void 0)}e.is=i})(V||(V={}));var L;(function(e){function n(i){const r=i;return a.string(r)}e.is=n})(L||(L={}));var ie;(function(e){function n(o,s,u){return{range:o,newText:s,annotationId:u}}e.replace=n;function i(o,s,u){return{range:{start:o,end:o},newText:s,annotationId:u}}e.insert=i;function r(o,s){return{range:o,newText:"",annotationId:s}}e.del=r;function t(o){const s=o;return E.is(s)&&(V.is(s.annotationId)||L.is(s.annotationId))}e.is=t})(ie||(ie={}));var W;(function(e){function n(r,t){return{textDocument:r,edits:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&B.is(t.textDocument)&&Array.isArray(t.edits)}e.is=i})(W||(W={}));var H;(function(e){function n(r,t,o){let s={kind:"create",uri:r};return t!==void 0&&(t.overwrite!==void 0||t.ignoreIfExists!==void 0)&&(s.options=t),o!==void 0&&(s.annotationId=o),s}e.create=n;function i(r){let t=r;return t&&t.kind==="create"&&a.string(t.uri)&&(t.options===void 0||(t.options.overwrite===void 0||a.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||a.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||L.is(t.annotationId))}e.is=i})(H||(H={}));var X;(function(e){function n(r,t,o,s){let u={kind:"rename",oldUri:r,newUri:t};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(u.options=o),s!==void 0&&(u.annotationId=s),u}e.create=n;function i(r){let t=r;return t&&t.kind==="rename"&&a.string(t.oldUri)&&a.string(t.newUri)&&(t.options===void 0||(t.options.overwrite===void 0||a.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||a.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||L.is(t.annotationId))}e.is=i})(X||(X={}));var $;(function(e){function n(r,t,o){let s={kind:"delete",uri:r};return t!==void 0&&(t.recursive!==void 0||t.ignoreIfNotExists!==void 0)&&(s.options=t),o!==void 0&&(s.annotationId=o),s}e.create=n;function i(r){let t=r;return t&&t.kind==="delete"&&a.string(t.uri)&&(t.options===void 0||(t.options.recursive===void 0||a.boolean(t.options.recursive))&&(t.options.ignoreIfNotExists===void 0||a.boolean(t.options.ignoreIfNotExists)))&&(t.annotationId===void 0||L.is(t.annotationId))}e.is=i})($||($={}));var z;(function(e){function n(i){let r=i;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(t=>a.string(t.kind)?H.is(t)||X.is(t)||$.is(t):W.is(t)))}e.is=n})(z||(z={}));var oe;(function(e){function n(r){return{uri:r}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)}e.is=i})(oe||(oe={}));var ae;(function(e){function n(r,t){return{uri:r,version:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)&&a.integer(t.version)}e.is=i})(ae||(ae={}));var B;(function(e){function n(r,t){return{uri:r,version:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)&&(t.version===null||a.integer(t.version))}e.is=i})(B||(B={}));var se;(function(e){function n(r,t,o,s){return{uri:r,languageId:t,version:o,text:s}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)&&a.string(t.languageId)&&a.integer(t.version)&&a.string(t.text)}e.is=i})(se||(se={}));var q;(function(e){e.PlainText="plaintext",e.Markdown="markdown";function n(i){const r=i;return r===e.PlainText||r===e.Markdown}e.is=n})(q||(q={}));var P;(function(e){function n(i){const r=i;return a.objectLiteral(i)&&q.is(r.kind)&&a.string(r.value)}e.is=n})(P||(P={}));var v;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(v||(v={}));var Q;(function(e){e.PlainText=1,e.Snippet=2})(Q||(Q={}));var ue;(function(e){e.Deprecated=1})(ue||(ue={}));var ce;(function(e){function n(r,t,o){return{newText:r,insert:t,replace:o}}e.create=n;function i(r){const t=r;return t&&a.string(t.newText)&&h.is(t.insert)&&h.is(t.replace)}e.is=i})(ce||(ce={}));var de;(function(e){e.asIs=1,e.adjustIndentation=2})(de||(de={}));var le;(function(e){function n(i){const r=i;return r&&(a.string(r.detail)||r.detail===void 0)&&(a.string(r.description)||r.description===void 0)}e.is=n})(le||(le={}));var fe;(function(e){function n(i){return{label:i}}e.create=n})(fe||(fe={}));var ge;(function(e){function n(i,r){return{items:i||[],isIncomplete:!!r}}e.create=n})(ge||(ge={}));var F;(function(e){function n(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}e.fromPlainText=n;function i(r){const t=r;return a.string(t)||a.objectLiteral(t)&&a.string(t.language)&&a.string(t.value)}e.is=i})(F||(F={}));var he;(function(e){function n(i){let r=i;return!!r&&a.objectLiteral(r)&&(P.is(r.contents)||F.is(r.contents)||a.typedArray(r.contents,F.is))&&(i.range===void 0||h.is(i.range))}e.is=n})(he||(he={}));var ve;(function(e){function n(i,r){return r?{label:i,documentation:r}:{label:i}}e.create=n})(ve||(ve={}));var pe;(function(e){function n(i,r,...t){let o={label:i};return a.defined(r)&&(o.documentation=r),a.defined(t)?o.parameters=t:o.parameters=[],o}e.create=n})(pe||(pe={}));var R;(function(e){e.Text=1,e.Read=2,e.Write=3})(R||(R={}));var me;(function(e){function n(i,r){let t={range:i};return a.number(r)&&(t.kind=r),t}e.create=n})(me||(me={}));var p;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(p||(p={}));var _e;(function(e){e.Deprecated=1})(_e||(_e={}));var be;(function(e){function n(i,r,t,o,s){let u={name:i,kind:r,location:{uri:o,range:t}};return s&&(u.containerName=s),u}e.create=n})(be||(be={}));var we;(function(e){function n(i,r,t,o){return o!==void 0?{name:i,kind:r,location:{uri:t,range:o}}:{name:i,kind:r,location:{uri:t}}}e.create=n})(we||(we={}));var ke;(function(e){function n(r,t,o,s,u,f){let c={name:r,detail:t,kind:o,range:s,selectionRange:u};return f!==void 0&&(c.children=f),c}e.create=n;function i(r){let t=r;return t&&a.string(t.name)&&a.number(t.kind)&&h.is(t.range)&&h.is(t.selectionRange)&&(t.detail===void 0||a.string(t.detail))&&(t.deprecated===void 0||a.boolean(t.deprecated))&&(t.children===void 0||Array.isArray(t.children))&&(t.tags===void 0||Array.isArray(t.tags))}e.is=i})(ke||(ke={}));var xe;(function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll"})(xe||(xe={}));var j;(function(e){e.Invoked=1,e.Automatic=2})(j||(j={}));var Ie;(function(e){function n(r,t,o){let s={diagnostics:r};return t!=null&&(s.only=t),o!=null&&(s.triggerKind=o),s}e.create=n;function i(r){let t=r;return a.defined(t)&&a.typedArray(t.diagnostics,y.is)&&(t.only===void 0||a.typedArray(t.only,a.string))&&(t.triggerKind===void 0||t.triggerKind===j.Invoked||t.triggerKind===j.Automatic)}e.is=i})(Ie||(Ie={}));var Ee;(function(e){function n(r,t,o){let s={title:r},u=!0;return typeof t=="string"?(u=!1,s.kind=t):I.is(t)?s.command=t:s.edit=t,u&&o!==void 0&&(s.kind=o),s}e.create=n;function i(r){let t=r;return t&&a.string(t.title)&&(t.diagnostics===void 0||a.typedArray(t.diagnostics,y.is))&&(t.kind===void 0||a.string(t.kind))&&(t.edit!==void 0||t.command!==void 0)&&(t.command===void 0||I.is(t.command))&&(t.isPreferred===void 0||a.boolean(t.isPreferred))&&(t.edit===void 0||z.is(t.edit))}e.is=i})(Ee||(Ee={}));var Le;(function(e){function n(r,t){let o={range:r};return a.defined(t)&&(o.data=t),o}e.create=n;function i(r){let t=r;return a.defined(t)&&h.is(t.range)&&(a.undefined(t.command)||I.is(t.command))}e.is=i})(Le||(Le={}));var Ae;(function(e){function n(r,t){return{tabSize:r,insertSpaces:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.uinteger(t.tabSize)&&a.boolean(t.insertSpaces)}e.is=i})(Ae||(Ae={}));var Re;(function(e){function n(r,t,o){return{range:r,target:t,data:o}}e.create=n;function i(r){let t=r;return a.defined(t)&&h.is(t.range)&&(a.undefined(t.target)||a.string(t.target))}e.is=i})(Re||(Re={}));var Pe;(function(e){function n(r,t){return{range:r,parent:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.range)&&(t.parent===void 0||e.is(t.parent))}e.is=i})(Pe||(Pe={}));var De;(function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator"})(De||(De={}));var Me;(function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary"})(Me||(Me={}));var Ce;(function(e){function n(i){const r=i;return a.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}e.is=n})(Ce||(Ce={}));var ye;(function(e){function n(r,t){return{range:r,text:t}}e.create=n;function i(r){const t=r;return t!=null&&h.is(t.range)&&a.string(t.text)}e.is=i})(ye||(ye={}));var Fe;(function(e){function n(r,t,o){return{range:r,variableName:t,caseSensitiveLookup:o}}e.create=n;function i(r){const t=r;return t!=null&&h.is(t.range)&&a.boolean(t.caseSensitiveLookup)&&(a.string(t.variableName)||t.variableName===void 0)}e.is=i})(Fe||(Fe={}));var je;(function(e){function n(r,t){return{range:r,expression:t}}e.create=n;function i(r){const t=r;return t!=null&&h.is(t.range)&&(a.string(t.expression)||t.expression===void 0)}e.is=i})(je||(je={}));var Ne;(function(e){function n(r,t){return{frameId:r,stoppedLocation:t}}e.create=n;function i(r){const t=r;return a.defined(t)&&h.is(r.stoppedLocation)}e.is=i})(Ne||(Ne={}));var G;(function(e){e.Type=1,e.Parameter=2;function n(i){return i===1||i===2}e.is=n})(G||(G={}));var J;(function(e){function n(r){return{value:r}}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&(t.tooltip===void 0||a.string(t.tooltip)||P.is(t.tooltip))&&(t.location===void 0||C.is(t.location))&&(t.command===void 0||I.is(t.command))}e.is=i})(J||(J={}));var Oe;(function(e){function n(r,t,o){const s={position:r,label:t};return o!==void 0&&(s.kind=o),s}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&w.is(t.position)&&(a.string(t.label)||a.typedArray(t.label,J.is))&&(t.kind===void 0||G.is(t.kind))&&t.textEdits===void 0||a.typedArray(t.textEdits,E.is)&&(t.tooltip===void 0||a.string(t.tooltip)||P.is(t.tooltip))&&(t.paddingLeft===void 0||a.boolean(t.paddingLeft))&&(t.paddingRight===void 0||a.boolean(t.paddingRight))}e.is=i})(Oe||(Oe={}));var Se;(function(e){function n(i){return{kind:"snippet",value:i}}e.createSnippet=n})(Se||(Se={}));var Ue;(function(e){function n(i,r,t,o){return{insertText:i,filterText:r,range:t,command:o}}e.create=n})(Ue||(Ue={}));var Ve;(function(e){function n(i){return{items:i}}e.create=n})(Ve||(Ve={}));var We;(function(e){e.Invoked=0,e.Automatic=1})(We||(We={}));var He;(function(e){function n(i,r){return{range:i,text:r}}e.create=n})(He||(He={}));var Xe;(function(e){function n(i,r){return{triggerKind:i,selectedCompletionInfo:r}}e.create=n})(Xe||(Xe={}));var $e;(function(e){function n(i){const r=i;return a.objectLiteral(r)&&O.is(r.uri)&&a.string(r.name)}e.is=n})($e||($e={}));var ze;(function(e){function n(o,s,u,f){return new ct(o,s,u,f)}e.create=n;function i(o){let s=o;return!!(a.defined(s)&&a.string(s.uri)&&(a.undefined(s.languageId)||a.string(s.languageId))&&a.uinteger(s.lineCount)&&a.func(s.getText)&&a.func(s.positionAt)&&a.func(s.offsetAt))}e.is=i;function r(o,s){let u=o.getText(),f=t(s,(g,_)=>{let b=g.range.start.line-_.range.start.line;return b===0?g.range.start.character-_.range.start.character:b}),c=u.length;for(let g=f.length-1;g>=0;g--){let _=f[g],b=o.offsetAt(_.range.start),l=o.offsetAt(_.range.end);if(l<=c)u=u.substring(0,b)+_.newText+u.substring(l,u.length);else throw new Error("Overlapping edit");c=b}return u}e.applyEdits=r;function t(o,s){if(o.length<=1)return o;const u=o.length/2|0,f=o.slice(0,u),c=o.slice(u);t(f,s),t(c,s);let g=0,_=0,b=0;for(;g<f.length&&_<c.length;)s(f[g],c[_])<=0?o[b++]=f[g++]:o[b++]=c[_++];for(;g<f.length;)o[b++]=f[g++];for(;_<c.length;)o[b++]=c[_++];return o}})(ze||(ze={}));var ct=class{constructor(e,n,i,r){this._uri=e,this._languageId=n,this._version=i,this._content=r,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(n,i)}return this._content}update(e,n){this._content=e.text,this._version=n,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],n=this._content,i=!0;for(let r=0;r<n.length;r++){i&&(e.push(r),i=!1);let t=n.charAt(r);i=t==="\r"||t===`
1
+ import{m as et}from"./index-TnEo7N0a.js";var tt=Object.defineProperty,rt=Object.getOwnPropertyDescriptor,nt=Object.getOwnPropertyNames,it=Object.prototype.hasOwnProperty,ot=(e,n,i,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let t of nt(n))!it.call(e,t)&&t!==i&&tt(e,t,{get:()=>n[t],enumerable:!(r=rt(n,t))||r.enumerable});return e},at=(e,n,i)=>(ot(e,n,"default"),i),d={};at(d,et);var st=120*1e3,ut=class{constructor(e){this._defaults=e,this._worker=null,this._client=null,this._idleCheckInterval=window.setInterval(()=>this._checkIfIdle(),30*1e3),this._lastUsedTime=0,this._configChangeListener=this._defaults.onDidChange(()=>this._stopWorker())}_stopWorker(){this._worker&&(this._worker.dispose(),this._worker=null),this._client=null}dispose(){clearInterval(this._idleCheckInterval),this._configChangeListener.dispose(),this._stopWorker()}_checkIfIdle(){if(!this._worker)return;Date.now()-this._lastUsedTime>st&&this._stopWorker()}_getClient(){return this._lastUsedTime=Date.now(),this._client||(this._worker=d.editor.createWebWorker({moduleId:"vs/language/css/cssWorker",label:this._defaults.languageId,createData:{options:this._defaults.options,languageId:this._defaults.languageId}}),this._client=this._worker.getProxy()),this._client}getLanguageServiceWorker(...e){let n;return this._getClient().then(i=>{n=i}).then(i=>{if(this._worker)return this._worker.withSyncedResources(e)}).then(i=>n)}},T;(function(e){function n(i){return typeof i=="string"}e.is=n})(T||(T={}));var O;(function(e){function n(i){return typeof i=="string"}e.is=n})(O||(O={}));var Y;(function(e){e.MIN_VALUE=-2147483648,e.MAX_VALUE=2147483647;function n(i){return typeof i=="number"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=n})(Y||(Y={}));var M;(function(e){e.MIN_VALUE=0,e.MAX_VALUE=2147483647;function n(i){return typeof i=="number"&&e.MIN_VALUE<=i&&i<=e.MAX_VALUE}e.is=n})(M||(M={}));var w;(function(e){function n(r,t){return r===Number.MAX_VALUE&&(r=M.MAX_VALUE),t===Number.MAX_VALUE&&(t=M.MAX_VALUE),{line:r,character:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&a.uinteger(t.line)&&a.uinteger(t.character)}e.is=i})(w||(w={}));var h;(function(e){function n(r,t,o,s){if(a.uinteger(r)&&a.uinteger(t)&&a.uinteger(o)&&a.uinteger(s))return{start:w.create(r,t),end:w.create(o,s)};if(w.is(r)&&w.is(t))return{start:r,end:t};throw new Error(`Range#create called with invalid arguments[${r}, ${t}, ${o}, ${s}]`)}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&w.is(t.start)&&w.is(t.end)}e.is=i})(h||(h={}));var C;(function(e){function n(r,t){return{uri:r,range:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.range)&&(a.string(t.uri)||a.undefined(t.uri))}e.is=i})(C||(C={}));var Z;(function(e){function n(r,t,o,s){return{targetUri:r,targetRange:t,targetSelectionRange:o,originSelectionRange:s}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.targetRange)&&a.string(t.targetUri)&&h.is(t.targetSelectionRange)&&(h.is(t.originSelectionRange)||a.undefined(t.originSelectionRange))}e.is=i})(Z||(Z={}));var S;(function(e){function n(r,t,o,s){return{red:r,green:t,blue:o,alpha:s}}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&a.numberRange(t.red,0,1)&&a.numberRange(t.green,0,1)&&a.numberRange(t.blue,0,1)&&a.numberRange(t.alpha,0,1)}e.is=i})(S||(S={}));var K;(function(e){function n(r,t){return{range:r,color:t}}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&h.is(t.range)&&S.is(t.color)}e.is=i})(K||(K={}));var ee;(function(e){function n(r,t,o){return{label:r,textEdit:t,additionalTextEdits:o}}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&a.string(t.label)&&(a.undefined(t.textEdit)||E.is(t))&&(a.undefined(t.additionalTextEdits)||a.typedArray(t.additionalTextEdits,E.is))}e.is=i})(ee||(ee={}));var A;(function(e){e.Comment="comment",e.Imports="imports",e.Region="region"})(A||(A={}));var te;(function(e){function n(r,t,o,s,u,f){const c={startLine:r,endLine:t};return a.defined(o)&&(c.startCharacter=o),a.defined(s)&&(c.endCharacter=s),a.defined(u)&&(c.kind=u),a.defined(f)&&(c.collapsedText=f),c}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&a.uinteger(t.startLine)&&a.uinteger(t.startLine)&&(a.undefined(t.startCharacter)||a.uinteger(t.startCharacter))&&(a.undefined(t.endCharacter)||a.uinteger(t.endCharacter))&&(a.undefined(t.kind)||a.string(t.kind))}e.is=i})(te||(te={}));var U;(function(e){function n(r,t){return{location:r,message:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&C.is(t.location)&&a.string(t.message)}e.is=i})(U||(U={}));var x;(function(e){e.Error=1,e.Warning=2,e.Information=3,e.Hint=4})(x||(x={}));var re;(function(e){e.Unnecessary=1,e.Deprecated=2})(re||(re={}));var ne;(function(e){function n(i){const r=i;return a.objectLiteral(r)&&a.string(r.href)}e.is=n})(ne||(ne={}));var y;(function(e){function n(r,t,o,s,u,f){let c={range:r,message:t};return a.defined(o)&&(c.severity=o),a.defined(s)&&(c.code=s),a.defined(u)&&(c.source=u),a.defined(f)&&(c.relatedInformation=f),c}e.create=n;function i(r){var t;let o=r;return a.defined(o)&&h.is(o.range)&&a.string(o.message)&&(a.number(o.severity)||a.undefined(o.severity))&&(a.integer(o.code)||a.string(o.code)||a.undefined(o.code))&&(a.undefined(o.codeDescription)||a.string((t=o.codeDescription)===null||t===void 0?void 0:t.href))&&(a.string(o.source)||a.undefined(o.source))&&(a.undefined(o.relatedInformation)||a.typedArray(o.relatedInformation,U.is))}e.is=i})(y||(y={}));var I;(function(e){function n(r,t,...o){let s={title:r,command:t};return a.defined(o)&&o.length>0&&(s.arguments=o),s}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.title)&&a.string(t.command)}e.is=i})(I||(I={}));var E;(function(e){function n(o,s){return{range:o,newText:s}}e.replace=n;function i(o,s){return{range:{start:o,end:o},newText:s}}e.insert=i;function r(o){return{range:o,newText:""}}e.del=r;function t(o){const s=o;return a.objectLiteral(s)&&a.string(s.newText)&&h.is(s.range)}e.is=t})(E||(E={}));var V;(function(e){function n(r,t,o){const s={label:r};return t!==void 0&&(s.needsConfirmation=t),o!==void 0&&(s.description=o),s}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&a.string(t.label)&&(a.boolean(t.needsConfirmation)||t.needsConfirmation===void 0)&&(a.string(t.description)||t.description===void 0)}e.is=i})(V||(V={}));var L;(function(e){function n(i){const r=i;return a.string(r)}e.is=n})(L||(L={}));var ie;(function(e){function n(o,s,u){return{range:o,newText:s,annotationId:u}}e.replace=n;function i(o,s,u){return{range:{start:o,end:o},newText:s,annotationId:u}}e.insert=i;function r(o,s){return{range:o,newText:"",annotationId:s}}e.del=r;function t(o){const s=o;return E.is(s)&&(V.is(s.annotationId)||L.is(s.annotationId))}e.is=t})(ie||(ie={}));var W;(function(e){function n(r,t){return{textDocument:r,edits:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&B.is(t.textDocument)&&Array.isArray(t.edits)}e.is=i})(W||(W={}));var H;(function(e){function n(r,t,o){let s={kind:"create",uri:r};return t!==void 0&&(t.overwrite!==void 0||t.ignoreIfExists!==void 0)&&(s.options=t),o!==void 0&&(s.annotationId=o),s}e.create=n;function i(r){let t=r;return t&&t.kind==="create"&&a.string(t.uri)&&(t.options===void 0||(t.options.overwrite===void 0||a.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||a.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||L.is(t.annotationId))}e.is=i})(H||(H={}));var X;(function(e){function n(r,t,o,s){let u={kind:"rename",oldUri:r,newUri:t};return o!==void 0&&(o.overwrite!==void 0||o.ignoreIfExists!==void 0)&&(u.options=o),s!==void 0&&(u.annotationId=s),u}e.create=n;function i(r){let t=r;return t&&t.kind==="rename"&&a.string(t.oldUri)&&a.string(t.newUri)&&(t.options===void 0||(t.options.overwrite===void 0||a.boolean(t.options.overwrite))&&(t.options.ignoreIfExists===void 0||a.boolean(t.options.ignoreIfExists)))&&(t.annotationId===void 0||L.is(t.annotationId))}e.is=i})(X||(X={}));var $;(function(e){function n(r,t,o){let s={kind:"delete",uri:r};return t!==void 0&&(t.recursive!==void 0||t.ignoreIfNotExists!==void 0)&&(s.options=t),o!==void 0&&(s.annotationId=o),s}e.create=n;function i(r){let t=r;return t&&t.kind==="delete"&&a.string(t.uri)&&(t.options===void 0||(t.options.recursive===void 0||a.boolean(t.options.recursive))&&(t.options.ignoreIfNotExists===void 0||a.boolean(t.options.ignoreIfNotExists)))&&(t.annotationId===void 0||L.is(t.annotationId))}e.is=i})($||($={}));var z;(function(e){function n(i){let r=i;return r&&(r.changes!==void 0||r.documentChanges!==void 0)&&(r.documentChanges===void 0||r.documentChanges.every(t=>a.string(t.kind)?H.is(t)||X.is(t)||$.is(t):W.is(t)))}e.is=n})(z||(z={}));var oe;(function(e){function n(r){return{uri:r}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)}e.is=i})(oe||(oe={}));var ae;(function(e){function n(r,t){return{uri:r,version:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)&&a.integer(t.version)}e.is=i})(ae||(ae={}));var B;(function(e){function n(r,t){return{uri:r,version:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)&&(t.version===null||a.integer(t.version))}e.is=i})(B||(B={}));var se;(function(e){function n(r,t,o,s){return{uri:r,languageId:t,version:o,text:s}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.string(t.uri)&&a.string(t.languageId)&&a.integer(t.version)&&a.string(t.text)}e.is=i})(se||(se={}));var q;(function(e){e.PlainText="plaintext",e.Markdown="markdown";function n(i){const r=i;return r===e.PlainText||r===e.Markdown}e.is=n})(q||(q={}));var P;(function(e){function n(i){const r=i;return a.objectLiteral(i)&&q.is(r.kind)&&a.string(r.value)}e.is=n})(P||(P={}));var v;(function(e){e.Text=1,e.Method=2,e.Function=3,e.Constructor=4,e.Field=5,e.Variable=6,e.Class=7,e.Interface=8,e.Module=9,e.Property=10,e.Unit=11,e.Value=12,e.Enum=13,e.Keyword=14,e.Snippet=15,e.Color=16,e.File=17,e.Reference=18,e.Folder=19,e.EnumMember=20,e.Constant=21,e.Struct=22,e.Event=23,e.Operator=24,e.TypeParameter=25})(v||(v={}));var Q;(function(e){e.PlainText=1,e.Snippet=2})(Q||(Q={}));var ue;(function(e){e.Deprecated=1})(ue||(ue={}));var ce;(function(e){function n(r,t,o){return{newText:r,insert:t,replace:o}}e.create=n;function i(r){const t=r;return t&&a.string(t.newText)&&h.is(t.insert)&&h.is(t.replace)}e.is=i})(ce||(ce={}));var de;(function(e){e.asIs=1,e.adjustIndentation=2})(de||(de={}));var le;(function(e){function n(i){const r=i;return r&&(a.string(r.detail)||r.detail===void 0)&&(a.string(r.description)||r.description===void 0)}e.is=n})(le||(le={}));var fe;(function(e){function n(i){return{label:i}}e.create=n})(fe||(fe={}));var ge;(function(e){function n(i,r){return{items:i||[],isIncomplete:!!r}}e.create=n})(ge||(ge={}));var F;(function(e){function n(r){return r.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}e.fromPlainText=n;function i(r){const t=r;return a.string(t)||a.objectLiteral(t)&&a.string(t.language)&&a.string(t.value)}e.is=i})(F||(F={}));var he;(function(e){function n(i){let r=i;return!!r&&a.objectLiteral(r)&&(P.is(r.contents)||F.is(r.contents)||a.typedArray(r.contents,F.is))&&(i.range===void 0||h.is(i.range))}e.is=n})(he||(he={}));var ve;(function(e){function n(i,r){return r?{label:i,documentation:r}:{label:i}}e.create=n})(ve||(ve={}));var pe;(function(e){function n(i,r,...t){let o={label:i};return a.defined(r)&&(o.documentation=r),a.defined(t)?o.parameters=t:o.parameters=[],o}e.create=n})(pe||(pe={}));var R;(function(e){e.Text=1,e.Read=2,e.Write=3})(R||(R={}));var me;(function(e){function n(i,r){let t={range:i};return a.number(r)&&(t.kind=r),t}e.create=n})(me||(me={}));var p;(function(e){e.File=1,e.Module=2,e.Namespace=3,e.Package=4,e.Class=5,e.Method=6,e.Property=7,e.Field=8,e.Constructor=9,e.Enum=10,e.Interface=11,e.Function=12,e.Variable=13,e.Constant=14,e.String=15,e.Number=16,e.Boolean=17,e.Array=18,e.Object=19,e.Key=20,e.Null=21,e.EnumMember=22,e.Struct=23,e.Event=24,e.Operator=25,e.TypeParameter=26})(p||(p={}));var _e;(function(e){e.Deprecated=1})(_e||(_e={}));var be;(function(e){function n(i,r,t,o,s){let u={name:i,kind:r,location:{uri:o,range:t}};return s&&(u.containerName=s),u}e.create=n})(be||(be={}));var we;(function(e){function n(i,r,t,o){return o!==void 0?{name:i,kind:r,location:{uri:t,range:o}}:{name:i,kind:r,location:{uri:t}}}e.create=n})(we||(we={}));var ke;(function(e){function n(r,t,o,s,u,f){let c={name:r,detail:t,kind:o,range:s,selectionRange:u};return f!==void 0&&(c.children=f),c}e.create=n;function i(r){let t=r;return t&&a.string(t.name)&&a.number(t.kind)&&h.is(t.range)&&h.is(t.selectionRange)&&(t.detail===void 0||a.string(t.detail))&&(t.deprecated===void 0||a.boolean(t.deprecated))&&(t.children===void 0||Array.isArray(t.children))&&(t.tags===void 0||Array.isArray(t.tags))}e.is=i})(ke||(ke={}));var xe;(function(e){e.Empty="",e.QuickFix="quickfix",e.Refactor="refactor",e.RefactorExtract="refactor.extract",e.RefactorInline="refactor.inline",e.RefactorRewrite="refactor.rewrite",e.Source="source",e.SourceOrganizeImports="source.organizeImports",e.SourceFixAll="source.fixAll"})(xe||(xe={}));var j;(function(e){e.Invoked=1,e.Automatic=2})(j||(j={}));var Ie;(function(e){function n(r,t,o){let s={diagnostics:r};return t!=null&&(s.only=t),o!=null&&(s.triggerKind=o),s}e.create=n;function i(r){let t=r;return a.defined(t)&&a.typedArray(t.diagnostics,y.is)&&(t.only===void 0||a.typedArray(t.only,a.string))&&(t.triggerKind===void 0||t.triggerKind===j.Invoked||t.triggerKind===j.Automatic)}e.is=i})(Ie||(Ie={}));var Ee;(function(e){function n(r,t,o){let s={title:r},u=!0;return typeof t=="string"?(u=!1,s.kind=t):I.is(t)?s.command=t:s.edit=t,u&&o!==void 0&&(s.kind=o),s}e.create=n;function i(r){let t=r;return t&&a.string(t.title)&&(t.diagnostics===void 0||a.typedArray(t.diagnostics,y.is))&&(t.kind===void 0||a.string(t.kind))&&(t.edit!==void 0||t.command!==void 0)&&(t.command===void 0||I.is(t.command))&&(t.isPreferred===void 0||a.boolean(t.isPreferred))&&(t.edit===void 0||z.is(t.edit))}e.is=i})(Ee||(Ee={}));var Le;(function(e){function n(r,t){let o={range:r};return a.defined(t)&&(o.data=t),o}e.create=n;function i(r){let t=r;return a.defined(t)&&h.is(t.range)&&(a.undefined(t.command)||I.is(t.command))}e.is=i})(Le||(Le={}));var Ae;(function(e){function n(r,t){return{tabSize:r,insertSpaces:t}}e.create=n;function i(r){let t=r;return a.defined(t)&&a.uinteger(t.tabSize)&&a.boolean(t.insertSpaces)}e.is=i})(Ae||(Ae={}));var Re;(function(e){function n(r,t,o){return{range:r,target:t,data:o}}e.create=n;function i(r){let t=r;return a.defined(t)&&h.is(t.range)&&(a.undefined(t.target)||a.string(t.target))}e.is=i})(Re||(Re={}));var Pe;(function(e){function n(r,t){return{range:r,parent:t}}e.create=n;function i(r){let t=r;return a.objectLiteral(t)&&h.is(t.range)&&(t.parent===void 0||e.is(t.parent))}e.is=i})(Pe||(Pe={}));var De;(function(e){e.namespace="namespace",e.type="type",e.class="class",e.enum="enum",e.interface="interface",e.struct="struct",e.typeParameter="typeParameter",e.parameter="parameter",e.variable="variable",e.property="property",e.enumMember="enumMember",e.event="event",e.function="function",e.method="method",e.macro="macro",e.keyword="keyword",e.modifier="modifier",e.comment="comment",e.string="string",e.number="number",e.regexp="regexp",e.operator="operator",e.decorator="decorator"})(De||(De={}));var Me;(function(e){e.declaration="declaration",e.definition="definition",e.readonly="readonly",e.static="static",e.deprecated="deprecated",e.abstract="abstract",e.async="async",e.modification="modification",e.documentation="documentation",e.defaultLibrary="defaultLibrary"})(Me||(Me={}));var Ce;(function(e){function n(i){const r=i;return a.objectLiteral(r)&&(r.resultId===void 0||typeof r.resultId=="string")&&Array.isArray(r.data)&&(r.data.length===0||typeof r.data[0]=="number")}e.is=n})(Ce||(Ce={}));var ye;(function(e){function n(r,t){return{range:r,text:t}}e.create=n;function i(r){const t=r;return t!=null&&h.is(t.range)&&a.string(t.text)}e.is=i})(ye||(ye={}));var Fe;(function(e){function n(r,t,o){return{range:r,variableName:t,caseSensitiveLookup:o}}e.create=n;function i(r){const t=r;return t!=null&&h.is(t.range)&&a.boolean(t.caseSensitiveLookup)&&(a.string(t.variableName)||t.variableName===void 0)}e.is=i})(Fe||(Fe={}));var je;(function(e){function n(r,t){return{range:r,expression:t}}e.create=n;function i(r){const t=r;return t!=null&&h.is(t.range)&&(a.string(t.expression)||t.expression===void 0)}e.is=i})(je||(je={}));var Ne;(function(e){function n(r,t){return{frameId:r,stoppedLocation:t}}e.create=n;function i(r){const t=r;return a.defined(t)&&h.is(r.stoppedLocation)}e.is=i})(Ne||(Ne={}));var G;(function(e){e.Type=1,e.Parameter=2;function n(i){return i===1||i===2}e.is=n})(G||(G={}));var J;(function(e){function n(r){return{value:r}}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&(t.tooltip===void 0||a.string(t.tooltip)||P.is(t.tooltip))&&(t.location===void 0||C.is(t.location))&&(t.command===void 0||I.is(t.command))}e.is=i})(J||(J={}));var Oe;(function(e){function n(r,t,o){const s={position:r,label:t};return o!==void 0&&(s.kind=o),s}e.create=n;function i(r){const t=r;return a.objectLiteral(t)&&w.is(t.position)&&(a.string(t.label)||a.typedArray(t.label,J.is))&&(t.kind===void 0||G.is(t.kind))&&t.textEdits===void 0||a.typedArray(t.textEdits,E.is)&&(t.tooltip===void 0||a.string(t.tooltip)||P.is(t.tooltip))&&(t.paddingLeft===void 0||a.boolean(t.paddingLeft))&&(t.paddingRight===void 0||a.boolean(t.paddingRight))}e.is=i})(Oe||(Oe={}));var Se;(function(e){function n(i){return{kind:"snippet",value:i}}e.createSnippet=n})(Se||(Se={}));var Ue;(function(e){function n(i,r,t,o){return{insertText:i,filterText:r,range:t,command:o}}e.create=n})(Ue||(Ue={}));var Ve;(function(e){function n(i){return{items:i}}e.create=n})(Ve||(Ve={}));var We;(function(e){e.Invoked=0,e.Automatic=1})(We||(We={}));var He;(function(e){function n(i,r){return{range:i,text:r}}e.create=n})(He||(He={}));var Xe;(function(e){function n(i,r){return{triggerKind:i,selectedCompletionInfo:r}}e.create=n})(Xe||(Xe={}));var $e;(function(e){function n(i){const r=i;return a.objectLiteral(r)&&O.is(r.uri)&&a.string(r.name)}e.is=n})($e||($e={}));var ze;(function(e){function n(o,s,u,f){return new ct(o,s,u,f)}e.create=n;function i(o){let s=o;return!!(a.defined(s)&&a.string(s.uri)&&(a.undefined(s.languageId)||a.string(s.languageId))&&a.uinteger(s.lineCount)&&a.func(s.getText)&&a.func(s.positionAt)&&a.func(s.offsetAt))}e.is=i;function r(o,s){let u=o.getText(),f=t(s,(g,_)=>{let b=g.range.start.line-_.range.start.line;return b===0?g.range.start.character-_.range.start.character:b}),c=u.length;for(let g=f.length-1;g>=0;g--){let _=f[g],b=o.offsetAt(_.range.start),l=o.offsetAt(_.range.end);if(l<=c)u=u.substring(0,b)+_.newText+u.substring(l,u.length);else throw new Error("Overlapping edit");c=b}return u}e.applyEdits=r;function t(o,s){if(o.length<=1)return o;const u=o.length/2|0,f=o.slice(0,u),c=o.slice(u);t(f,s),t(c,s);let g=0,_=0,b=0;for(;g<f.length&&_<c.length;)s(f[g],c[_])<=0?o[b++]=f[g++]:o[b++]=c[_++];for(;g<f.length;)o[b++]=f[g++];for(;_<c.length;)o[b++]=c[_++];return o}})(ze||(ze={}));var ct=class{constructor(e,n,i,r){this._uri=e,this._languageId=n,this._version=i,this._content=r,this._lineOffsets=void 0}get uri(){return this._uri}get languageId(){return this._languageId}get version(){return this._version}getText(e){if(e){let n=this.offsetAt(e.start),i=this.offsetAt(e.end);return this._content.substring(n,i)}return this._content}update(e,n){this._content=e.text,this._version=n,this._lineOffsets=void 0}getLineOffsets(){if(this._lineOffsets===void 0){let e=[],n=this._content,i=!0;for(let r=0;r<n.length;r++){i&&(e.push(r),i=!1);let t=n.charAt(r);i=t==="\r"||t===`
2
2
  `,t==="\r"&&r+1<n.length&&n.charAt(r+1)===`
3
3
  `&&r++}i&&n.length>0&&e.push(n.length),this._lineOffsets=e}return this._lineOffsets}positionAt(e){e=Math.max(Math.min(e,this._content.length),0);let n=this.getLineOffsets(),i=0,r=n.length;if(r===0)return w.create(0,e);for(;i<r;){let o=Math.floor((i+r)/2);n[o]>e?r=o:i=o+1}let t=i-1;return w.create(t,e-n[t])}offsetAt(e){let n=this.getLineOffsets();if(e.line>=n.length)return this._content.length;if(e.line<0)return 0;let i=n[e.line],r=e.line+1<n.length?n[e.line+1]:this._content.length;return Math.max(Math.min(i+e.character,r),i)}get lineCount(){return this.getLineOffsets().length}},a;(function(e){const n=Object.prototype.toString;function i(l){return typeof l<"u"}e.defined=i;function r(l){return typeof l>"u"}e.undefined=r;function t(l){return l===!0||l===!1}e.boolean=t;function o(l){return n.call(l)==="[object String]"}e.string=o;function s(l){return n.call(l)==="[object Number]"}e.number=s;function u(l,N,Ke){return n.call(l)==="[object Number]"&&N<=l&&l<=Ke}e.numberRange=u;function f(l){return n.call(l)==="[object Number]"&&-2147483648<=l&&l<=2147483647}e.integer=f;function c(l){return n.call(l)==="[object Number]"&&0<=l&&l<=2147483647}e.uinteger=c;function g(l){return n.call(l)==="[object Function]"}e.func=g;function _(l){return l!==null&&typeof l=="object"}e.objectLiteral=_;function b(l,N){return Array.isArray(l)&&l.every(N)}e.typedArray=b})(a||(a={}));var dt=class{constructor(e,n,i){this._languageId=e,this._worker=n,this._disposables=[],this._listener=Object.create(null);const r=o=>{let s=o.getLanguageId();if(s!==this._languageId)return;let u;this._listener[o.uri.toString()]=o.onDidChangeContent(()=>{window.clearTimeout(u),u=window.setTimeout(()=>this._doValidate(o.uri,s),500)}),this._doValidate(o.uri,s)},t=o=>{d.editor.setModelMarkers(o,this._languageId,[]);let s=o.uri.toString(),u=this._listener[s];u&&(u.dispose(),delete this._listener[s])};this._disposables.push(d.editor.onDidCreateModel(r)),this._disposables.push(d.editor.onWillDisposeModel(t)),this._disposables.push(d.editor.onDidChangeModelLanguage(o=>{t(o.model),r(o.model)})),this._disposables.push(i(o=>{d.editor.getModels().forEach(s=>{s.getLanguageId()===this._languageId&&(t(s),r(s))})})),this._disposables.push({dispose:()=>{d.editor.getModels().forEach(t);for(let o in this._listener)this._listener[o].dispose()}}),d.editor.getModels().forEach(r)}dispose(){this._disposables.forEach(e=>e&&e.dispose()),this._disposables.length=0}_doValidate(e,n){this._worker(e).then(i=>i.doValidation(e.toString())).then(i=>{const r=i.map(o=>ft(e,o));let t=d.editor.getModel(e);t&&t.getLanguageId()===n&&d.editor.setModelMarkers(t,n,r)}).then(void 0,i=>{console.error(i)})}};function lt(e){switch(e){case x.Error:return d.MarkerSeverity.Error;case x.Warning:return d.MarkerSeverity.Warning;case x.Information:return d.MarkerSeverity.Info;case x.Hint:return d.MarkerSeverity.Hint;default:return d.MarkerSeverity.Info}}function ft(e,n){let i=typeof n.code=="number"?String(n.code):n.code;return{severity:lt(n.severity),startLineNumber:n.range.start.line+1,startColumn:n.range.start.character+1,endLineNumber:n.range.end.line+1,endColumn:n.range.end.character+1,message:n.message,code:i,source:n.source}}var gt=class{constructor(e,n){this._worker=e,this._triggerCharacters=n}get triggerCharacters(){return this._triggerCharacters}provideCompletionItems(e,n,i,r){const t=e.uri;return this._worker(t).then(o=>o.doComplete(t.toString(),k(n))).then(o=>{if(!o)return;const s=e.getWordUntilPosition(n),u=new d.Range(n.lineNumber,s.startColumn,n.lineNumber,s.endColumn),f=o.items.map(c=>{const g={label:c.label,insertText:c.insertText||c.label,sortText:c.sortText,filterText:c.filterText,documentation:c.documentation,detail:c.detail,command:pt(c.command),range:u,kind:vt(c.kind)};return c.textEdit&&(ht(c.textEdit)?g.range={insert:m(c.textEdit.insert),replace:m(c.textEdit.replace)}:g.range=m(c.textEdit.range),g.insertText=c.textEdit.newText),c.additionalTextEdits&&(g.additionalTextEdits=c.additionalTextEdits.map(D)),c.insertTextFormat===Q.Snippet&&(g.insertTextRules=d.languages.CompletionItemInsertTextRule.InsertAsSnippet),g});return{isIncomplete:o.isIncomplete,suggestions:f}})}};function k(e){if(e)return{character:e.column-1,line:e.lineNumber-1}}function Qe(e){if(e)return{start:{line:e.startLineNumber-1,character:e.startColumn-1},end:{line:e.endLineNumber-1,character:e.endColumn-1}}}function m(e){if(e)return new d.Range(e.start.line+1,e.start.character+1,e.end.line+1,e.end.character+1)}function ht(e){return typeof e.insert<"u"&&typeof e.replace<"u"}function vt(e){const n=d.languages.CompletionItemKind;switch(e){case v.Text:return n.Text;case v.Method:return n.Method;case v.Function:return n.Function;case v.Constructor:return n.Constructor;case v.Field:return n.Field;case v.Variable:return n.Variable;case v.Class:return n.Class;case v.Interface:return n.Interface;case v.Module:return n.Module;case v.Property:return n.Property;case v.Unit:return n.Unit;case v.Value:return n.Value;case v.Enum:return n.Enum;case v.Keyword:return n.Keyword;case v.Snippet:return n.Snippet;case v.Color:return n.Color;case v.File:return n.File;case v.Reference:return n.Reference}return n.Property}function D(e){if(e)return{range:m(e.range),text:e.newText}}function pt(e){return e&&e.command==="editor.action.triggerSuggest"?{id:e.command,title:e.title,arguments:e.arguments}:void 0}var mt=class{constructor(e){this._worker=e}provideHover(e,n,i){let r=e.uri;return this._worker(r).then(t=>t.doHover(r.toString(),k(n))).then(t=>{if(t)return{range:m(t.range),contents:bt(t.contents)}})}};function _t(e){return e&&typeof e=="object"&&typeof e.kind=="string"}function Be(e){return typeof e=="string"?{value:e}:_t(e)?e.kind==="plaintext"?{value:e.value.replace(/[\\`*_{}[\]()#+\-.!]/g,"\\$&")}:{value:e.value}:{value:"```"+e.language+`
4
4
  `+e.value+"\n```\n"}}function bt(e){if(e)return Array.isArray(e)?e.map(Be):[Be(e)]}var wt=class{constructor(e){this._worker=e}provideDocumentHighlights(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.findDocumentHighlights(r.toString(),k(n))).then(t=>{if(t)return t.map(o=>({range:m(o.range),kind:kt(o.kind)}))})}};function kt(e){switch(e){case R.Read:return d.languages.DocumentHighlightKind.Read;case R.Write:return d.languages.DocumentHighlightKind.Write;case R.Text:return d.languages.DocumentHighlightKind.Text}return d.languages.DocumentHighlightKind.Text}var xt=class{constructor(e){this._worker=e}provideDefinition(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.findDefinition(r.toString(),k(n))).then(t=>{if(t)return[Ge(t)]})}};function Ge(e){return{uri:d.Uri.parse(e.uri),range:m(e.range)}}var It=class{constructor(e){this._worker=e}provideReferences(e,n,i,r){const t=e.uri;return this._worker(t).then(o=>o.findReferences(t.toString(),k(n))).then(o=>{if(o)return o.map(Ge)})}},Et=class{constructor(e){this._worker=e}provideRenameEdits(e,n,i,r){const t=e.uri;return this._worker(t).then(o=>o.doRename(t.toString(),k(n),i)).then(o=>Lt(o))}};function Lt(e){if(!e||!e.changes)return;let n=[];for(let i in e.changes){const r=d.Uri.parse(i);for(let t of e.changes[i])n.push({resource:r,versionId:void 0,textEdit:{range:m(t.range),text:t.newText}})}return{edits:n}}var At=class{constructor(e){this._worker=e}provideDocumentSymbols(e,n){const i=e.uri;return this._worker(i).then(r=>r.findDocumentSymbols(i.toString())).then(r=>{if(r)return r.map(t=>Rt(t)?Je(t):{name:t.name,detail:"",containerName:t.containerName,kind:Te(t.kind),range:m(t.location.range),selectionRange:m(t.location.range),tags:[]})})}};function Rt(e){return"children"in e}function Je(e){return{name:e.name,detail:e.detail??"",kind:Te(e.kind),range:m(e.range),selectionRange:m(e.selectionRange),tags:e.tags??[],children:(e.children??[]).map(n=>Je(n))}}function Te(e){let n=d.languages.SymbolKind;switch(e){case p.File:return n.File;case p.Module:return n.Module;case p.Namespace:return n.Namespace;case p.Package:return n.Package;case p.Class:return n.Class;case p.Method:return n.Method;case p.Property:return n.Property;case p.Field:return n.Field;case p.Constructor:return n.Constructor;case p.Enum:return n.Enum;case p.Interface:return n.Interface;case p.Function:return n.Function;case p.Variable:return n.Variable;case p.Constant:return n.Constant;case p.String:return n.String;case p.Number:return n.Number;case p.Boolean:return n.Boolean;case p.Array:return n.Array}return n.Function}var Nt=class{constructor(e){this._worker=e}provideLinks(e,n){const i=e.uri;return this._worker(i).then(r=>r.findDocumentLinks(i.toString())).then(r=>{if(r)return{links:r.map(t=>({range:m(t.range),url:t.target}))}})}},Pt=class{constructor(e){this._worker=e}provideDocumentFormattingEdits(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.format(r.toString(),null,Ye(n)).then(o=>{if(!(!o||o.length===0))return o.map(D)}))}},Dt=class{constructor(e){this._worker=e,this.canFormatMultipleRanges=!1}provideDocumentRangeFormattingEdits(e,n,i,r){const t=e.uri;return this._worker(t).then(o=>o.format(t.toString(),Qe(n),Ye(i)).then(s=>{if(!(!s||s.length===0))return s.map(D)}))}};function Ye(e){return{tabSize:e.tabSize,insertSpaces:e.insertSpaces}}var Mt=class{constructor(e){this._worker=e}provideDocumentColors(e,n){const i=e.uri;return this._worker(i).then(r=>r.findDocumentColors(i.toString())).then(r=>{if(r)return r.map(t=>({color:t.color,range:m(t.range)}))})}provideColorPresentations(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.getColorPresentations(r.toString(),n.color,Qe(n.range))).then(t=>{if(t)return t.map(o=>{let s={label:o.label};return o.textEdit&&(s.textEdit=D(o.textEdit)),o.additionalTextEdits&&(s.additionalTextEdits=o.additionalTextEdits.map(D)),s})})}},Ct=class{constructor(e){this._worker=e}provideFoldingRanges(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.getFoldingRanges(r.toString(),n)).then(t=>{if(t)return t.map(o=>{const s={start:o.startLine+1,end:o.endLine+1};return typeof o.kind<"u"&&(s.kind=yt(o.kind)),s})})}};function yt(e){switch(e){case A.Comment:return d.languages.FoldingRangeKind.Comment;case A.Imports:return d.languages.FoldingRangeKind.Imports;case A.Region:return d.languages.FoldingRangeKind.Region}}var Ft=class{constructor(e){this._worker=e}provideSelectionRanges(e,n,i){const r=e.uri;return this._worker(r).then(t=>t.getSelectionRanges(r.toString(),n.map(k))).then(t=>{if(t)return t.map(o=>{const s=[];for(;o;)s.push({range:m(o.range)}),o=o.parent;return s})})}};function Ot(e){const n=[],i=[],r=new ut(e);n.push(r);const t=(...s)=>r.getLanguageServiceWorker(...s);function o(){const{languageId:s,modeConfiguration:u}=e;Ze(i),u.completionItems&&i.push(d.languages.registerCompletionItemProvider(s,new gt(t,["/","-",":"]))),u.hovers&&i.push(d.languages.registerHoverProvider(s,new mt(t))),u.documentHighlights&&i.push(d.languages.registerDocumentHighlightProvider(s,new wt(t))),u.definitions&&i.push(d.languages.registerDefinitionProvider(s,new xt(t))),u.references&&i.push(d.languages.registerReferenceProvider(s,new It(t))),u.documentSymbols&&i.push(d.languages.registerDocumentSymbolProvider(s,new At(t))),u.rename&&i.push(d.languages.registerRenameProvider(s,new Et(t))),u.colors&&i.push(d.languages.registerColorProvider(s,new Mt(t))),u.foldingRanges&&i.push(d.languages.registerFoldingRangeProvider(s,new Ct(t))),u.diagnostics&&i.push(new dt(s,t,e.onDidChange)),u.selectionRanges&&i.push(d.languages.registerSelectionRangeProvider(s,new Ft(t))),u.documentFormattingEdits&&i.push(d.languages.registerDocumentFormattingEditProvider(s,new Pt(t))),u.documentRangeFormattingEdits&&i.push(d.languages.registerDocumentRangeFormattingEditProvider(s,new Dt(t)))}return o(),n.push(qe(i)),qe(n)}function qe(e){return{dispose:()=>Ze(e)}}function Ze(e){for(;e.length;)e.pop().dispose()}export{gt as CompletionAdapter,xt as DefinitionAdapter,dt as DiagnosticsAdapter,Mt as DocumentColorAdapter,Pt as DocumentFormattingEditProvider,wt as DocumentHighlightAdapter,Nt as DocumentLinkAdapter,Dt as DocumentRangeFormattingEditProvider,At as DocumentSymbolAdapter,Ct as FoldingRangeAdapter,mt as HoverAdapter,It as ReferenceAdapter,Et as RenameAdapter,Ft as SelectionRangeAdapter,ut as WorkerManager,k as fromPosition,Qe as fromRange,Ot as setupMode,m as toRange,D as toTextEdit};
@@ -1,3 +1,3 @@
1
- import{m as f}from"./index-C6eDye5h.js";var F=Object.defineProperty,b=Object.getOwnPropertyDescriptor,x=Object.getOwnPropertyNames,$=Object.prototype.hasOwnProperty,v=(t,n,_,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of x(n))!$.call(t,o)&&o!==_&&F(t,o,{get:()=>n[o],enumerable:!(e=b(n,o))||e.enumerable});return t},E=(t,n,_)=>(v(t,n,"default"),_),r={};E(r,f);var d=["assign","flush","ftl","return","global","import","include","break","continue","local","nested","nt","setting","stop","t","lt","rt","fallback"],s=["attempt","autoesc","autoEsc","compress","comment","escape","noescape","function","if","list","items","sep","macro","noparse","noParse","noautoesc","noAutoEsc","outputformat","switch","visit","recurse"],a={close:">",id:"angle",open:"<"},u={close:"\\]",id:"bracket",open:"\\["},D={close:"[>\\]]",id:"auto",open:"[<\\[]"},k={close:"\\}",id:"dollar",open1:"\\$",open2:"\\{"},p={close:"\\]",id:"bracket",open1:"\\[",open2:"="};function l(t){return{brackets:[["<",">"],["[","]"],["(",")"],["{","}"]],comments:{blockComment:[`${t.open}--`,`--${t.close}`]},autoCloseBefore:`
1
+ import{m as f}from"./index-TnEo7N0a.js";var F=Object.defineProperty,b=Object.getOwnPropertyDescriptor,x=Object.getOwnPropertyNames,$=Object.prototype.hasOwnProperty,v=(t,n,_,e)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of x(n))!$.call(t,o)&&o!==_&&F(t,o,{get:()=>n[o],enumerable:!(e=b(n,o))||e.enumerable});return t},E=(t,n,_)=>(v(t,n,"default"),_),r={};E(r,f);var d=["assign","flush","ftl","return","global","import","include","break","continue","local","nested","nt","setting","stop","t","lt","rt","fallback"],s=["attempt","autoesc","autoEsc","compress","comment","escape","noescape","function","if","list","items","sep","macro","noparse","noParse","noautoesc","noAutoEsc","outputformat","switch","visit","recurse"],a={close:">",id:"angle",open:"<"},u={close:"\\]",id:"bracket",open:"\\["},D={close:"[>\\]]",id:"auto",open:"[<\\[]"},k={close:"\\}",id:"dollar",open1:"\\$",open2:"\\{"},p={close:"\\]",id:"bracket",open1:"\\[",open2:"="};function l(t){return{brackets:[["<",">"],["[","]"],["(",")"],["{","}"]],comments:{blockComment:[`${t.open}--`,`--${t.close}`]},autoCloseBefore:`
2
2
  \r }]),.:;=`,autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],folding:{markers:{start:new RegExp(`${t.open}#(?:${s.join("|")})([^/${t.close}]*(?!/)${t.close})[^${t.open}]*$`),end:new RegExp(`${t.open}/#(?:${s.join("|")})[\\r\\n\\t ]*>`)}},onEnterRules:[{beforeText:new RegExp(`${t.open}#(?!(?:${d.join("|")}))([a-zA-Z_]+)([^/${t.close}]*(?!/)${t.close})[^${t.open}]*$`),afterText:new RegExp(`^${t.open}/#([a-zA-Z_]+)[\\r\\n\\t ]*${t.close}$`),action:{indentAction:r.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`${t.open}#(?!(?:${d.join("|")}))([a-zA-Z_]+)([^/${t.close}]*(?!/)${t.close})[^${t.open}]*$`),action:{indentAction:r.languages.IndentAction.Indent}}]}}function g(){return{brackets:[["<",">"],["[","]"],["(",")"],["{","}"]],autoCloseBefore:`
3
3
  \r }]),.:;=`,autoClosingPairs:[{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:'"',close:'"',notIn:["string"]},{open:"'",close:"'",notIn:["string"]}],surroundingPairs:[{open:'"',close:'"'},{open:"'",close:"'"},{open:"{",close:"}"},{open:"[",close:"]"},{open:"(",close:")"},{open:"<",close:">"}],folding:{markers:{start:new RegExp(`[<\\[]#(?:${s.join("|")})([^/>\\]]*(?!/)[>\\]])[^<\\[]*$`),end:new RegExp(`[<\\[]/#(?:${s.join("|")})[\\r\\n\\t ]*>`)}},onEnterRules:[{beforeText:new RegExp(`[<\\[]#(?!(?:${d.join("|")}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`),afterText:new RegExp("^[<\\[]/#([a-zA-Z_]+)[\\r\\n\\t ]*[>\\]]$"),action:{indentAction:r.languages.IndentAction.IndentOutdent}},{beforeText:new RegExp(`[<\\[]#(?!(?:${d.join("|")}))([a-zA-Z_]+)([^/>\\]]*(?!/)[>\\]])[^[<\\[]]*$`),action:{indentAction:r.languages.IndentAction.Indent}}]}}function i(t,n){const _=`_${t.id}_${n.id}`,e=c=>c.replace(/__id__/g,_),o=c=>{const m=c.source.replace(/__id__/g,_);return new RegExp(m,c.flags)};return{unicode:!0,includeLF:!1,start:e("default__id__"),ignoreCase:!1,defaultToken:"invalid",tokenPostfix:".freemarker2",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],[e("open__id__")]:new RegExp(t.open),[e("close__id__")]:new RegExp(t.close),[e("iOpen1__id__")]:new RegExp(n.open1),[e("iOpen2__id__")]:new RegExp(n.open2),[e("iClose__id__")]:new RegExp(n.close),[e("startTag__id__")]:o(/(@open__id__)(#)/),[e("endTag__id__")]:o(/(@open__id__)(\/#)/),[e("startOrEndTag__id__")]:o(/(@open__id__)(\/?#)/),[e("closeTag1__id__")]:o(/((?:@blank)*)(@close__id__)/),[e("closeTag2__id__")]:o(/((?:@blank)*\/?)(@close__id__)/),blank:/[ \t\n\r]/,keywords:["false","true","in","as","using"],directiveStartCloseTag1:/attempt|recover|sep|auto[eE]sc|no(?:autoe|AutoE)sc|compress|default|no[eE]scape|comment|no[pP]arse/,directiveStartCloseTag2:/else|break|continue|return|stop|flush|t|lt|rt|nt|nested|recurse|fallback|ftl/,directiveStartBlank:/if|else[iI]f|list|for[eE]ach|switch|case|assign|global|local|include|import|function|macro|transform|visit|stop|return|call|setting|output[fF]ormat|nested|recurse|escape|ftl|items/,directiveEndCloseTag1:/if|list|items|sep|recover|attempt|for[eE]ach|local|global|assign|function|macro|output[fF]ormat|auto[eE]sc|no(?:autoe|AutoE)sc|compress|transform|switch|escape|no[eE]scape/,escapedChar:/\\(?:[ntrfbgla\\'"\{=]|(?:x[0-9A-Fa-f]{1,4}))/,asciiDigit:/[0-9]/,integer:/[0-9]+/,nonEscapedIdStartChar:/[\$@-Z_a-z\u00AA\u00B5\u00BA\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u1FFF\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183-\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3006\u3031-\u3035\u303B-\u303C\u3040-\u318F\u31A0-\u31BA\u31F0-\u31FF\u3300-\u337F\u3400-\u4DB5\u4E00-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66E\uA67F-\uA697\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA78E\uA790-\uA793\uA7A0-\uA7AA\uA7F8-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8D0-\uA8D9\uA8F2-\uA8F7\uA8FB\uA900-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF-\uA9D9\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA50-\uAA59\uAA60-\uAA76\uAA7A\uAA80-\uAAAF\uAAB1\uAAB5-\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uABC0-\uABE2\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40-\uFB41\uFB43-\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]/,escapedIdChar:/\\[\-\.:#]/,idStartChar:/(?:@nonEscapedIdStartChar)|(?:@escapedIdChar)/,id:/(?:@idStartChar)(?:(?:@idStartChar)|(?:@asciiDigit))*/,specialHashKeys:/\*\*|\*|false|true|in|as|using/,namedSymbols:/&lt;=|&gt;=|\\lte|\\lt|&lt;|\\gte|\\gt|&gt;|&amp;&amp;|\\and|-&gt;|->|==|!=|\+=|-=|\*=|\/=|%=|\+\+|--|<=|&&|\|\||:|\.\.\.|\.\.\*|\.\.<|\.\.!|\?\?|=|<|\+|-|\*|\/|%|\||\.\.|\?|!|&|\.|,|;/,arrows:["->","-&gt;"],delimiters:[";",":",",","."],stringOperators:["lte","lt","gte","gt"],noParseTags:["noparse","noParse","comment"],tokenizer:{[e("default__id__")]:[{include:e("@directive_token__id__")},{include:e("@interpolation_and_text_token__id__")}],[e("fmExpression__id__.directive")]:[{include:e("@blank_and_expression_comment_token__id__")},{include:e("@directive_end_token__id__")},{include:e("@expression_token__id__")}],[e("fmExpression__id__.interpolation")]:[{include:e("@blank_and_expression_comment_token__id__")},{include:e("@expression_token__id__")},{include:e("@greater_operators_token__id__")}],[e("inParen__id__.plain")]:[{include:e("@blank_and_expression_comment_token__id__")},{include:e("@directive_end_token__id__")},{include:e("@expression_token__id__")}],[e("inParen__id__.gt")]:[{include:e("@blank_and_expression_comment_token__id__")},{include:e("@expression_token__id__")},{include:e("@greater_operators_token__id__")}],[e("noSpaceExpression__id__")]:[{include:e("@no_space_expression_end_token__id__")},{include:e("@directive_end_token__id__")},{include:e("@expression_token__id__")}],[e("unifiedCall__id__")]:[{include:e("@unified_call_token__id__")}],[e("singleString__id__")]:[{include:e("@string_single_token__id__")}],[e("doubleString__id__")]:[{include:e("@string_double_token__id__")}],[e("rawSingleString__id__")]:[{include:e("@string_single_raw_token__id__")}],[e("rawDoubleString__id__")]:[{include:e("@string_double_raw_token__id__")}],[e("expressionComment__id__")]:[{include:e("@expression_comment_token__id__")}],[e("noParse__id__")]:[{include:e("@no_parse_token__id__")}],[e("terseComment__id__")]:[{include:e("@terse_comment_token__id__")}],[e("directive_token__id__")]:[[o(/(?:@startTag__id__)(@directiveStartCloseTag1)(?:@closeTag1__id__)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{cases:{"@noParseTags":{token:"tag",next:e("@noParse__id__.$3")},"@default":{token:"tag"}}},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(?:@startTag__id__)(@directiveStartCloseTag2)(?:@closeTag2__id__)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(?:@startTag__id__)(@directiveStartBlank)(@blank)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"",next:e("@fmExpression__id__.directive")}]],[o(/(?:@endTag__id__)(@directiveEndCloseTag1)(?:@closeTag1__id__)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(@open__id__)(@)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive",next:e("@unifiedCall__id__")}]],[o(/(@open__id__)(\/@)((?:(?:@id)(?:\.(?:@id))*)?)(?:@closeTag1__id__)/),[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive"}]],[o(/(@open__id__)#--/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:{token:"comment",next:e("@terseComment__id__")}],[o(/(?:@startOrEndTag__id__)([a-zA-Z_]+)/),t.id==="auto"?{cases:{"$1==<":{token:"@rematch",switchTo:`@default_angle_${n.id}`},"$1==[":{token:"@rematch",switchTo:`@default_bracket_${n.id}`}}}:[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag.invalid",next:e("@fmExpression__id__.directive")}]]],[e("interpolation_and_text_token__id__")]:[[o(/(@iOpen1__id__)(@iOpen2__id__)/),[{token:n.id==="bracket"?"@brackets.interpolation":"delimiter.interpolation"},{token:n.id==="bracket"?"delimiter.interpolation":"@brackets.interpolation",next:e("@fmExpression__id__.interpolation")}]],[/[\$#<\[\{]|(?:@blank)+|[^\$<#\[\{\n\r\t ]+/,{token:"source"}]],[e("string_single_token__id__")]:[[/[^'\\]/,{token:"string"}],[/@escapedChar/,{token:"string.escape"}],[/'/,{token:"string",next:"@pop"}]],[e("string_double_token__id__")]:[[/[^"\\]/,{token:"string"}],[/@escapedChar/,{token:"string.escape"}],[/"/,{token:"string",next:"@pop"}]],[e("string_single_raw_token__id__")]:[[/[^']+/,{token:"string.raw"}],[/'/,{token:"string.raw",next:"@pop"}]],[e("string_double_raw_token__id__")]:[[/[^"]+/,{token:"string.raw"}],[/"/,{token:"string.raw",next:"@pop"}]],[e("expression_token__id__")]:[[/(r?)(['"])/,{cases:{"r'":[{token:"keyword"},{token:"string.raw",next:e("@rawSingleString__id__")}],'r"':[{token:"keyword"},{token:"string.raw",next:e("@rawDoubleString__id__")}],"'":[{token:"source"},{token:"string",next:e("@singleString__id__")}],'"':[{token:"source"},{token:"string",next:e("@doubleString__id__")}]}}],[/(?:@integer)(?:\.(?:@integer))?/,{cases:{"(?:@integer)":{token:"number"},"@default":{token:"number.float"}}}],[/(\.)(@blank*)(@specialHashKeys)/,[{token:"delimiter"},{token:""},{token:"identifier"}]],[/(?:@namedSymbols)/,{cases:{"@arrows":{token:"meta.arrow"},"@delimiters":{token:"delimiter"},"@default":{token:"operators"}}}],[/@id/,{cases:{"@keywords":{token:"keyword.$0"},"@stringOperators":{token:"operators"},"@default":{token:"identifier"}}}],[/[\[\]\(\)\{\}]/,{cases:{"\\[":{cases:{"$S2==gt":{token:"@brackets",next:e("@inParen__id__.gt")},"@default":{token:"@brackets",next:e("@inParen__id__.plain")}}},"\\]":{cases:{...n.id==="bracket"?{"$S2==interpolation":{token:"@brackets.interpolation",next:"@popall"}}:{},...t.id==="bracket"?{"$S2==directive":{token:"@brackets.directive",next:"@popall"}}:{},[e("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}},"\\(":{token:"@brackets",next:e("@inParen__id__.gt")},"\\)":{cases:{[e("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}},"\\{":{cases:{"$S2==gt":{token:"@brackets",next:e("@inParen__id__.gt")},"@default":{token:"@brackets",next:e("@inParen__id__.plain")}}},"\\}":{cases:{...n.id==="bracket"?{}:{"$S2==interpolation":{token:"@brackets.interpolation",next:"@popall"}},[e("$S1==inParen__id__")]:{token:"@brackets",next:"@pop"},"@default":{token:"@brackets"}}}}}],[/\$\{/,{token:"delimiter.invalid"}]],[e("blank_and_expression_comment_token__id__")]:[[/(?:@blank)+/,{token:""}],[/[<\[][#!]--/,{token:"comment",next:e("@expressionComment__id__")}]],[e("directive_end_token__id__")]:[[/>/,t.id==="bracket"?{token:"operators"}:{token:"@brackets.directive",next:"@popall"}],[o(/(\/)(@close__id__)/),[{token:"delimiter.directive"},{token:"@brackets.directive",next:"@popall"}]]],[e("greater_operators_token__id__")]:[[/>/,{token:"operators"}],[/>=/,{token:"operators"}]],[e("no_space_expression_end_token__id__")]:[[/(?:@blank)+/,{token:"",switchTo:e("@fmExpression__id__.directive")}]],[e("unified_call_token__id__")]:[[/(@id)((?:@blank)+)/,[{token:"tag"},{token:"",next:e("@fmExpression__id__.directive")}]],[o(/(@id)(\/?)(@close__id__)/),[{token:"tag"},{token:"delimiter.directive"},{token:"@brackets.directive",next:"@popall"}]],[/./,{token:"@rematch",next:e("@noSpaceExpression__id__")}]],[e("no_parse_token__id__")]:[[o(/(@open__id__)(\/#?)([a-zA-Z]+)((?:@blank)*)(@close__id__)/),{cases:{"$S2==$3":[{token:"@brackets.directive"},{token:"delimiter.directive"},{token:"tag"},{token:""},{token:"@brackets.directive",next:"@popall"}],"$S2==comment":[{token:"comment"},{token:"comment"},{token:"comment"},{token:"comment"},{token:"comment"}],"@default":[{token:"source"},{token:"source"},{token:"source"},{token:"source"},{token:"source"}]}}],[/[^<\[\-]+|[<\[\-]/,{cases:{"$S2==comment":{token:"comment"},"@default":{token:"source"}}}]],[e("expression_comment_token__id__")]:[[/--[>\]]/,{token:"comment",next:"@pop"}],[/[^\->\]]+|[>\]\-]/,{token:"comment"}]],[e("terse_comment_token__id__")]:[[o(/--(?:@close__id__)/),{token:"comment",next:"@popall"}],[/[^<\[\-]+|[<\[\-]/,{token:"comment"}]]}}}function A(t){const n=i(a,t),_=i(u,t),e=i(D,t);return{...n,..._,...e,unicode:!0,includeLF:!1,start:`default_auto_${t.id}`,ignoreCase:!1,defaultToken:"invalid",tokenPostfix:".freemarker2",brackets:[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}],tokenizer:{...n.tokenizer,..._.tokenizer,...e.tokenizer}}}var C={conf:l(a),language:i(a,k)},w={conf:l(u),language:i(u,k)},T={conf:l(a),language:i(a,p)},h={conf:l(u),language:i(u,p)},S={conf:g(),language:A(k)},P={conf:g(),language:A(p)};export{T as TagAngleInterpolationBracket,C as TagAngleInterpolationDollar,P as TagAutoInterpolationBracket,S as TagAutoInterpolationDollar,h as TagBracketInterpolationBracket,w as TagBracketInterpolationDollar};