@switchbot/homebridge-switchbot 5.0.0-beta.98 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/.changeset/config.json +14 -0
  2. package/.github/copilot-instructions.md +39 -0
  3. package/.github/workflows/ci.yml +4 -1
  4. package/.github/workflows/manual-e2e.yml +6 -3
  5. package/.github/workflows/release.yml +64 -15
  6. package/.github/workflows/stale.yml +2 -4
  7. package/.husky/pre-push +15 -0
  8. package/CHANGELOG.md +126 -134
  9. package/MIGRATION.md +16 -6
  10. package/README.md +84 -3
  11. package/TODO.md +263 -0
  12. package/config.schema.json +229 -36
  13. package/dist/SwitchBotHAPPlatform.d.ts +133 -0
  14. package/dist/SwitchBotHAPPlatform.d.ts.map +1 -0
  15. package/dist/SwitchBotHAPPlatform.js +555 -0
  16. package/dist/SwitchBotHAPPlatform.js.map +1 -0
  17. package/dist/SwitchBotMatterPlatform.d.ts +141 -0
  18. package/dist/SwitchBotMatterPlatform.d.ts.map +1 -0
  19. package/dist/SwitchBotMatterPlatform.js +536 -0
  20. package/dist/SwitchBotMatterPlatform.js.map +1 -0
  21. package/dist/device-types.d.ts +31 -0
  22. package/dist/device-types.d.ts.map +1 -0
  23. package/dist/device-types.js +246 -0
  24. package/dist/device-types.js.map +1 -0
  25. package/dist/deviceCommandMapper.d.ts +10 -0
  26. package/dist/deviceCommandMapper.d.ts.map +1 -0
  27. package/dist/deviceCommandMapper.js +319 -0
  28. package/dist/deviceCommandMapper.js.map +1 -0
  29. package/dist/deviceFactory.d.ts +3 -2
  30. package/dist/deviceFactory.d.ts.map +1 -1
  31. package/dist/deviceFactory.js +107 -29
  32. package/dist/deviceFactory.js.map +1 -1
  33. package/dist/devices/genericDevice.d.ts +59 -37
  34. package/dist/devices/genericDevice.d.ts.map +1 -1
  35. package/dist/devices/genericDevice.js +376 -78
  36. package/dist/devices/genericDevice.js.map +1 -1
  37. package/dist/errors.d.ts +38 -0
  38. package/dist/errors.d.ts.map +1 -0
  39. package/dist/errors.js +32 -0
  40. package/dist/errors.js.map +1 -0
  41. package/dist/homebridge-ui/device-types.js +246 -0
  42. package/dist/homebridge-ui/device-types.js.map +1 -0
  43. package/dist/homebridge-ui/deviceCommandMapper.js +319 -0
  44. package/dist/homebridge-ui/deviceCommandMapper.js.map +1 -0
  45. package/dist/homebridge-ui/endpoints/config.d.ts +3 -0
  46. package/dist/homebridge-ui/endpoints/config.d.ts.map +1 -0
  47. package/dist/homebridge-ui/endpoints/config.js +90 -0
  48. package/dist/homebridge-ui/endpoints/config.js.map +1 -0
  49. package/dist/homebridge-ui/endpoints/devices.d.ts +6 -0
  50. package/dist/homebridge-ui/endpoints/devices.d.ts.map +1 -0
  51. package/dist/homebridge-ui/endpoints/devices.js +144 -0
  52. package/dist/homebridge-ui/endpoints/devices.js.map +1 -0
  53. package/dist/homebridge-ui/endpoints/discovery.d.ts +7 -0
  54. package/dist/homebridge-ui/endpoints/discovery.d.ts.map +1 -0
  55. package/dist/homebridge-ui/endpoints/discovery.js +219 -0
  56. package/dist/homebridge-ui/endpoints/discovery.js.map +1 -0
  57. package/dist/homebridge-ui/errors.js +32 -0
  58. package/dist/homebridge-ui/errors.js.map +1 -0
  59. package/dist/homebridge-ui/homebridge-ui/endpoints/config.js +90 -0
  60. package/dist/homebridge-ui/homebridge-ui/endpoints/config.js.map +1 -0
  61. package/dist/homebridge-ui/homebridge-ui/endpoints/devices.js +144 -0
  62. package/dist/homebridge-ui/homebridge-ui/endpoints/devices.js.map +1 -0
  63. package/dist/homebridge-ui/homebridge-ui/endpoints/discovery.js +219 -0
  64. package/dist/homebridge-ui/homebridge-ui/endpoints/discovery.js.map +1 -0
  65. package/dist/homebridge-ui/homebridge-ui/server.js +11 -0
  66. package/dist/homebridge-ui/homebridge-ui/server.js.map +1 -0
  67. package/dist/homebridge-ui/homebridge-ui/utils/config-parser.js +108 -0
  68. package/dist/homebridge-ui/homebridge-ui/utils/config-parser.js.map +1 -0
  69. package/dist/homebridge-ui/homebridge-ui/utils/device-migration.js +111 -0
  70. package/dist/homebridge-ui/homebridge-ui/utils/device-migration.js.map +1 -0
  71. package/dist/homebridge-ui/homebridge-ui/utils/logger.js +17 -0
  72. package/dist/homebridge-ui/homebridge-ui/utils/logger.js.map +1 -0
  73. package/dist/homebridge-ui/public/css/styles.css +483 -0
  74. package/dist/homebridge-ui/public/index.html +197 -621
  75. package/dist/homebridge-ui/public/js/advanced-settings.d.ts +3 -0
  76. package/dist/homebridge-ui/public/js/advanced-settings.d.ts.map +1 -0
  77. package/dist/homebridge-ui/public/js/advanced-settings.js +95 -0
  78. package/dist/homebridge-ui/public/js/advanced-settings.js.map +1 -0
  79. package/dist/homebridge-ui/public/js/advanced-settings.ts +94 -0
  80. package/dist/homebridge-ui/public/js/api.d.ts +66 -0
  81. package/dist/homebridge-ui/public/js/api.d.ts.map +1 -0
  82. package/dist/homebridge-ui/public/js/api.js +295 -0
  83. package/dist/homebridge-ui/public/js/api.js.map +1 -0
  84. package/dist/homebridge-ui/public/js/api.ts +355 -0
  85. package/dist/homebridge-ui/public/js/app.d.ts +2 -0
  86. package/dist/homebridge-ui/public/js/app.d.ts.map +1 -0
  87. package/dist/homebridge-ui/public/js/app.js +3722 -0
  88. package/dist/homebridge-ui/public/js/app.js.map +7 -0
  89. package/dist/homebridge-ui/public/js/app.ts +22 -0
  90. package/dist/homebridge-ui/public/js/constants.d.ts +2 -0
  91. package/dist/homebridge-ui/public/js/constants.d.ts.map +1 -0
  92. package/dist/homebridge-ui/public/js/constants.js +2 -0
  93. package/dist/homebridge-ui/public/js/constants.js.map +1 -0
  94. package/dist/homebridge-ui/public/js/constants.ts +1 -0
  95. package/dist/homebridge-ui/public/js/credentials.d.ts +3 -0
  96. package/dist/homebridge-ui/public/js/credentials.d.ts.map +1 -0
  97. package/dist/homebridge-ui/public/js/credentials.js +99 -0
  98. package/dist/homebridge-ui/public/js/credentials.js.map +1 -0
  99. package/dist/homebridge-ui/public/js/credentials.ts +105 -0
  100. package/dist/homebridge-ui/public/js/devices-delete.d.ts +3 -0
  101. package/dist/homebridge-ui/public/js/devices-delete.d.ts.map +1 -0
  102. package/dist/homebridge-ui/public/js/devices-delete.js +199 -0
  103. package/dist/homebridge-ui/public/js/devices-delete.js.map +1 -0
  104. package/dist/homebridge-ui/public/js/devices-delete.ts +227 -0
  105. package/dist/homebridge-ui/public/js/devices.d.ts +9 -0
  106. package/dist/homebridge-ui/public/js/devices.d.ts.map +1 -0
  107. package/dist/homebridge-ui/public/js/devices.js +98 -0
  108. package/dist/homebridge-ui/public/js/devices.js.map +1 -0
  109. package/dist/homebridge-ui/public/js/devices.ts +106 -0
  110. package/dist/homebridge-ui/public/js/discovery.d.ts +9 -0
  111. package/dist/homebridge-ui/public/js/discovery.d.ts.map +1 -0
  112. package/dist/homebridge-ui/public/js/discovery.js +1201 -0
  113. package/dist/homebridge-ui/public/js/discovery.js.map +1 -0
  114. package/dist/homebridge-ui/public/js/discovery.ts +1335 -0
  115. package/dist/homebridge-ui/public/js/logger.d.ts +7 -0
  116. package/dist/homebridge-ui/public/js/logger.d.ts.map +1 -0
  117. package/dist/homebridge-ui/public/js/logger.js +17 -0
  118. package/dist/homebridge-ui/public/js/logger.js.map +1 -0
  119. package/dist/homebridge-ui/public/js/logger.ts +17 -0
  120. package/dist/homebridge-ui/public/js/modal.d.ts +5 -0
  121. package/dist/homebridge-ui/public/js/modal.d.ts.map +1 -0
  122. package/dist/homebridge-ui/public/js/modal.js +35 -0
  123. package/dist/homebridge-ui/public/js/modal.js.map +1 -0
  124. package/dist/homebridge-ui/public/js/modal.ts +35 -0
  125. package/dist/homebridge-ui/public/js/modals.d.ts +15 -0
  126. package/dist/homebridge-ui/public/js/modals.d.ts.map +1 -0
  127. package/dist/homebridge-ui/public/js/modals.js +675 -0
  128. package/dist/homebridge-ui/public/js/modals.js.map +1 -0
  129. package/dist/homebridge-ui/public/js/modals.ts +765 -0
  130. package/dist/homebridge-ui/public/js/render.d.ts +71 -0
  131. package/dist/homebridge-ui/public/js/render.d.ts.map +1 -0
  132. package/dist/homebridge-ui/public/js/render.js +960 -0
  133. package/dist/homebridge-ui/public/js/render.js.map +1 -0
  134. package/dist/homebridge-ui/public/js/render.ts +1084 -0
  135. package/dist/homebridge-ui/public/js/toast.d.ts +6 -0
  136. package/dist/homebridge-ui/public/js/toast.d.ts.map +1 -0
  137. package/dist/homebridge-ui/public/js/toast.js +38 -0
  138. package/dist/homebridge-ui/public/js/toast.js.map +1 -0
  139. package/dist/homebridge-ui/public/js/toast.ts +44 -0
  140. package/dist/homebridge-ui/public/js/types.d.ts +23 -0
  141. package/dist/homebridge-ui/public/js/types.d.ts.map +1 -0
  142. package/dist/homebridge-ui/public/js/types.js +2 -0
  143. package/dist/homebridge-ui/public/js/types.js.map +1 -0
  144. package/dist/homebridge-ui/public/js/types.ts +26 -0
  145. package/dist/homebridge-ui/server.d.ts +1 -3
  146. package/dist/homebridge-ui/server.d.ts.map +1 -1
  147. package/dist/homebridge-ui/server.js +8 -450
  148. package/dist/homebridge-ui/server.js.map +1 -1
  149. package/dist/homebridge-ui/settings.js +8 -0
  150. package/dist/homebridge-ui/settings.js.map +1 -0
  151. package/dist/homebridge-ui/switchbotClient.js +247 -0
  152. package/dist/homebridge-ui/switchbotClient.js.map +1 -0
  153. package/dist/homebridge-ui/utils/config-parser.d.ts +39 -0
  154. package/dist/homebridge-ui/utils/config-parser.d.ts.map +1 -0
  155. package/dist/homebridge-ui/utils/config-parser.js +108 -0
  156. package/dist/homebridge-ui/utils/config-parser.js.map +1 -0
  157. package/dist/homebridge-ui/utils/device-migration.d.ts +35 -0
  158. package/dist/homebridge-ui/utils/device-migration.d.ts.map +1 -0
  159. package/dist/homebridge-ui/utils/device-migration.js +111 -0
  160. package/dist/homebridge-ui/utils/device-migration.js.map +1 -0
  161. package/dist/homebridge-ui/utils/logger.d.ts +7 -0
  162. package/dist/homebridge-ui/utils/logger.d.ts.map +1 -0
  163. package/dist/homebridge-ui/utils/logger.js +17 -0
  164. package/dist/homebridge-ui/utils/logger.js.map +1 -0
  165. package/dist/index.d.ts +10 -0
  166. package/dist/index.d.ts.map +1 -1
  167. package/dist/index.js +12 -2
  168. package/dist/index.js.map +1 -1
  169. package/dist/settings.d.ts +1 -0
  170. package/dist/settings.d.ts.map +1 -1
  171. package/dist/settings.js +1 -0
  172. package/dist/settings.js.map +1 -1
  173. package/dist/switchbotClient.d.ts +12 -10
  174. package/dist/switchbotClient.d.ts.map +1 -1
  175. package/dist/switchbotClient.js +156 -103
  176. package/dist/switchbotClient.js.map +1 -1
  177. package/dist/utils.d.ts +76 -1
  178. package/dist/utils.d.ts.map +1 -1
  179. package/dist/utils.js +1121 -4
  180. package/dist/utils.js.map +1 -1
  181. package/docs/assets/highlight.css +16 -2
  182. package/docs/assets/main.js +1 -1
  183. package/docs/index.html +82 -5
  184. package/docs/variables/default.html +3 -1
  185. package/eslint.config.js +9 -5
  186. package/nodemon.json +2 -2
  187. package/package.json +34 -21
  188. package/scripts/build-ui.js +37 -0
  189. package/scripts/free-dev-ports.mjs +105 -0
  190. package/scripts/generate-matter-maps.js +34 -17
  191. package/scripts/sync-device-types.mjs +31 -0
  192. package/src/SwitchBotHAPPlatform.ts +558 -0
  193. package/src/SwitchBotMatterPlatform.ts +538 -0
  194. package/src/device-types.js +246 -0
  195. package/src/device-types.js.map +1 -0
  196. package/src/device-types.ts +261 -0
  197. package/src/deviceCommandMapper.js +319 -0
  198. package/src/deviceCommandMapper.js.map +1 -0
  199. package/src/deviceCommandMapper.ts +333 -0
  200. package/src/deviceFactory.ts +125 -45
  201. package/src/devices/genericDevice.ts +411 -69
  202. package/src/errors.js +32 -0
  203. package/src/errors.js.map +1 -0
  204. package/src/errors.ts +35 -0
  205. package/src/homebridge-ui/endpoints/config.ts +110 -0
  206. package/src/homebridge-ui/endpoints/devices.ts +153 -0
  207. package/src/homebridge-ui/endpoints/discovery.ts +240 -0
  208. package/src/homebridge-ui/public/css/styles.css +483 -0
  209. package/src/homebridge-ui/public/index.html +197 -621
  210. package/src/homebridge-ui/public/js/advanced-settings.ts +94 -0
  211. package/src/homebridge-ui/public/js/api.ts +355 -0
  212. package/src/homebridge-ui/public/js/app.ts +22 -0
  213. package/src/homebridge-ui/public/js/constants.ts +1 -0
  214. package/src/homebridge-ui/public/js/credentials.ts +105 -0
  215. package/src/homebridge-ui/public/js/devices-delete.ts +227 -0
  216. package/src/homebridge-ui/public/js/devices.ts +106 -0
  217. package/src/homebridge-ui/public/js/discovery.ts +1335 -0
  218. package/src/homebridge-ui/public/js/logger.ts +17 -0
  219. package/src/homebridge-ui/public/js/modal.ts +35 -0
  220. package/src/homebridge-ui/public/js/modals.ts +765 -0
  221. package/src/homebridge-ui/public/js/render.ts +1084 -0
  222. package/src/homebridge-ui/public/js/toast.ts +44 -0
  223. package/src/homebridge-ui/public/js/types.ts +26 -0
  224. package/src/homebridge-ui/server.ts +9 -526
  225. package/src/homebridge-ui/utils/config-parser.ts +125 -0
  226. package/src/homebridge-ui/utils/device-migration.ts +144 -0
  227. package/src/homebridge-ui/utils/logger.ts +17 -0
  228. package/src/index.ts +12 -2
  229. package/src/settings.js +8 -0
  230. package/src/settings.js.map +1 -0
  231. package/src/settings.ts +2 -0
  232. package/src/switchbotClient.js +247 -0
  233. package/src/switchbotClient.js.map +1 -0
  234. package/src/switchbotClient.ts +177 -114
  235. package/src/utils.ts +1133 -5
  236. package/test/client/switchbot-client-debounce.spec.ts +35 -0
  237. package/test/client/switchbot-client-openapi.spec.ts +19 -0
  238. package/test/client/switchbotClient.spec.ts +64 -0
  239. package/test/device/device-mapping.spec.ts +23 -0
  240. package/test/device/deviceBase.spec.ts +26 -0
  241. package/test/device/deviceFactory-edge.spec.ts +15 -0
  242. package/test/device/deviceFactory.spec.ts +33 -0
  243. package/test/device/fan-swing.spec.ts +34 -0
  244. package/test/device/genericDevice-blepoll.spec.ts +47 -0
  245. package/test/device/irdevice.spec.ts +9 -0
  246. package/test/device/lock-users.spec.ts +35 -0
  247. package/test/device/matter-descriptors.spec.ts +22 -0
  248. package/test/device/matter-device-state.spec.ts +37 -0
  249. package/test/e2e/run-e2e.spec.ts +18 -19
  250. package/test/errors/errors.spec.ts +10 -0
  251. package/test/helpers/matter-harness.ts +20 -9
  252. package/test/homebridge-ui/server.spec.ts +9 -0
  253. package/test/platform/accessory-restore.spec.ts +37 -0
  254. package/test/platform/matter-childbridge.spec.ts +34 -0
  255. package/test/platform/matter-integration.spec.ts +33 -0
  256. package/test/platform/platform-edge.spec.ts +73 -0
  257. package/test/platform/platform.integration.spec.ts +34 -0
  258. package/test/utils/utils-extra.spec.ts +10 -0
  259. package/test/utils/utils.spec.ts +53 -0
  260. package/todo/TODO.md +80 -0
  261. package/tsconfig.ui.json +11 -0
  262. package/.github/npm-version-script-esm.js +0 -97
  263. package/.github/workflows/beta-release.yml +0 -52
  264. package/dist/platform.d.ts +0 -35
  265. package/dist/platform.d.ts.map +0 -1
  266. package/dist/platform.js +0 -850
  267. package/dist/platform.js.map +0 -1
  268. package/src/platform.ts +0 -867
  269. package/test/accessory-restore.spec.ts +0 -73
  270. package/test/device-mapping.spec.ts +0 -37
  271. package/test/deviceFactory.spec.ts +0 -18
  272. package/test/fan-swing.spec.ts +0 -29
  273. package/test/lock-users.spec.ts +0 -44
  274. package/test/matter-childbridge.spec.ts +0 -55
  275. package/test/matter-descriptors.spec.ts +0 -97
  276. package/test/matter-device-state.spec.ts +0 -101
  277. package/test/matter-integration.spec.ts +0 -70
  278. package/test/platform.integration.spec.ts +0 -55
  279. package/test/switchbot-client-debounce.spec.ts +0 -131
  280. package/test/switchbot-client-openapi.spec.ts +0 -56
  281. package/test/switchbotClient.spec.ts +0 -10
  282. package/test/utils.spec.ts +0 -20
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAGA,gEAAgE;AAChE,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,KAAK,EAAE,MAAM;IACb,YAAY,EAAE,MAAM;IACpB,YAAY,EAAE,MAAM;IACpB,cAAc,EAAE,MAAM;IACtB,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,MAAM;IAClB,2BAA2B,EAAE,MAAM;CAC3B,CAAA;AAEV,iDAAiD;AACjD,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC,KAAK,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;IACxB,YAAY,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE;IACtC,YAAY,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,sBAAsB,EAAE,MAAM,EAAE;IAC/F,cAAc,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE;IACnE,UAAU,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE;IACpC,QAAQ,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE;IAC/B,2BAA2B,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE;CAC9C,CAAA;AAEV,MAAM,UAAU,eAAe,CAAC,GAAoB;IAClD,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAA;IACnB,OAAO,EAAE,GAAI,GAAW,EAA2B,CAAA;AACrD,CAAC;AAED,6FAA6F;AAC7F,MAAM,UAAU,mBAAmB,CAAC,WAAgB,EAAE,cAAmB;IACvE,OAAO,MAAM,sBAAsB;QACzB,IAAI,CAAK;QACjB,YAAY,GAAQ,EAAE,MAAsB,EAAE,GAAQ;YACpD,MAAM,GAAG,GAAG,eAAe,CAAC,MAAM,CAAC,CAAA;YACnC,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,IAAI,IAAI,CAAA;YAC7C,MAAM,YAAY,GAAG,GAAG,CAAC,YAAY,IAAI,IAAI,CAAA;YAE7C,IAAI,YAAY,IAAI,YAAY,IAAI,cAAc,EAAE,CAAC;gBACnD,IAAI,CAAC,IAAI,GAAG,IAAI,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;gBAC7C,OAAO,IAAI,CAAC,IAAI,CAAA;YAClB,CAAC;YAED,kBAAkB;YAClB,IAAI,CAAC,IAAI,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;YAC1C,OAAO,IAAI,CAAC,IAAI,CAAA;QAClB,CAAC;KACF,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
@@ -13,8 +13,12 @@
13
13
  --dark-hl-5: #B5CEA8;
14
14
  --light-hl-6: #0451A5;
15
15
  --dark-hl-6: #9CDCFE;
16
- --light-hl-7: #0000FF;
17
- --dark-hl-7: #569CD6;
16
+ --light-hl-7: #A31515;
17
+ --dark-hl-7: #CE9178;
18
+ --light-hl-8: #0000FF;
19
+ --dark-hl-8: #569CD6;
20
+ --light-hl-9: #795E26;
21
+ --dark-hl-9: #DCDCAA;
18
22
  --light-code-background: #FFFFFF;
19
23
  --dark-code-background: #1E1E1E;
20
24
  }
@@ -28,6 +32,8 @@
28
32
  --hl-5: var(--light-hl-5);
29
33
  --hl-6: var(--light-hl-6);
30
34
  --hl-7: var(--light-hl-7);
35
+ --hl-8: var(--light-hl-8);
36
+ --hl-9: var(--light-hl-9);
31
37
  --code-background: var(--light-code-background);
32
38
  } }
33
39
 
@@ -40,6 +46,8 @@
40
46
  --hl-5: var(--dark-hl-5);
41
47
  --hl-6: var(--dark-hl-6);
42
48
  --hl-7: var(--dark-hl-7);
49
+ --hl-8: var(--dark-hl-8);
50
+ --hl-9: var(--dark-hl-9);
43
51
  --code-background: var(--dark-code-background);
44
52
  } }
45
53
 
@@ -52,6 +60,8 @@
52
60
  --hl-5: var(--light-hl-5);
53
61
  --hl-6: var(--light-hl-6);
54
62
  --hl-7: var(--light-hl-7);
63
+ --hl-8: var(--light-hl-8);
64
+ --hl-9: var(--light-hl-9);
55
65
  --code-background: var(--light-code-background);
56
66
  }
57
67
 
@@ -64,6 +74,8 @@
64
74
  --hl-5: var(--dark-hl-5);
65
75
  --hl-6: var(--dark-hl-6);
66
76
  --hl-7: var(--dark-hl-7);
77
+ --hl-8: var(--dark-hl-8);
78
+ --hl-9: var(--dark-hl-9);
67
79
  --code-background: var(--dark-code-background);
68
80
  }
69
81
 
@@ -75,4 +87,6 @@
75
87
  .hl-5 { color: var(--hl-5); }
76
88
  .hl-6 { color: var(--hl-6); }
77
89
  .hl-7 { color: var(--hl-7); }
90
+ .hl-8 { color: var(--hl-8); }
91
+ .hl-9 { color: var(--hl-9); }
78
92
  pre, code { background: var(--code-background); }
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  window.translations={"copy":"Copy","copied":"Copied!","normally_hidden":"This member is normally hidden due to your filter settings.","hierarchy_expand":"Expand","hierarchy_collapse":"Collapse","folder":"Folder","search_index_not_available":"The search index is not available","search_no_results_found_for_0":"No results found for {0}","kind_1":"Project","kind_2":"Module","kind_4":"Namespace","kind_8":"Enumeration","kind_16":"Enumeration Member","kind_32":"Variable","kind_64":"Function","kind_128":"Class","kind_256":"Interface","kind_512":"Constructor","kind_1024":"Property","kind_2048":"Method","kind_4096":"Call Signature","kind_8192":"Index Signature","kind_16384":"Constructor Signature","kind_32768":"Parameter","kind_65536":"Type Literal","kind_131072":"Type Parameter","kind_262144":"Accessor","kind_524288":"Get Signature","kind_1048576":"Set Signature","kind_2097152":"Type Alias","kind_4194304":"Reference","kind_8388608":"Document"};
3
3
  "use strict";(()=>{var Ke=Object.create;var he=Object.defineProperty;var Ge=Object.getOwnPropertyDescriptor;var Ze=Object.getOwnPropertyNames;var Xe=Object.getPrototypeOf,Ye=Object.prototype.hasOwnProperty;var et=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var tt=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Ze(e))!Ye.call(t,i)&&i!==n&&he(t,i,{get:()=>e[i],enumerable:!(r=Ge(e,i))||r.enumerable});return t};var nt=(t,e,n)=>(n=t!=null?Ke(Xe(t)):{},tt(e||!t||!t.__esModule?he(n,"default",{value:t,enumerable:!0}):n,t));var ye=et((me,ge)=>{(function(){var t=function(e){var n=new t.Builder;return n.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),n.searchPipeline.add(t.stemmer),e.call(n,n),n.build()};t.version="2.3.9";t.utils={},t.utils.warn=(function(e){return function(n){e.console&&console.warn&&console.warn(n)}})(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var n=Object.create(null),r=Object.keys(e),i=0;i<r.length;i++){var s=r[i],o=e[s];if(Array.isArray(o)){n[s]=o.slice();continue}if(typeof o=="string"||typeof o=="number"||typeof o=="boolean"){n[s]=o;continue}throw new TypeError("clone is not deep and does not support nested objects")}return n},t.FieldRef=function(e,n,r){this.docRef=e,this.fieldName=n,this._stringValue=r},t.FieldRef.joiner="/",t.FieldRef.fromString=function(e){var n=e.indexOf(t.FieldRef.joiner);if(n===-1)throw"malformed field ref string";var r=e.slice(0,n),i=e.slice(n+1);return new t.FieldRef(i,r,e)},t.FieldRef.prototype.toString=function(){return this._stringValue==null&&(this._stringValue=this.fieldName+t.FieldRef.joiner+this.docRef),this._stringValue};t.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var n=0;n<this.length;n++)this.elements[e[n]]=!0}else this.length=0},t.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},t.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},t.Set.prototype.contains=function(e){return!!this.elements[e]},t.Set.prototype.intersect=function(e){var n,r,i,s=[];if(e===t.Set.complete)return this;if(e===t.Set.empty)return e;this.length<e.length?(n=this,r=e):(n=e,r=this),i=Object.keys(n.elements);for(var o=0;o<i.length;o++){var a=i[o];a in r.elements&&s.push(a)}return new t.Set(s)},t.Set.prototype.union=function(e){return e===t.Set.complete?t.Set.complete:e===t.Set.empty?this:new t.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},t.idf=function(e,n){var r=0;for(var i in e)i!="_index"&&(r+=Object.keys(e[i]).length);var s=(n-r+.5)/(r+.5);return Math.log(1+Math.abs(s))},t.Token=function(e,n){this.str=e||"",this.metadata=n||{}},t.Token.prototype.toString=function(){return this.str},t.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},t.Token.prototype.clone=function(e){return e=e||function(n){return n},new t.Token(e(this.str,this.metadata),this.metadata)};t.tokenizer=function(e,n){if(e==null||e==null)return[];if(Array.isArray(e))return e.map(function(f){return new t.Token(t.utils.asString(f).toLowerCase(),t.utils.clone(n))});for(var r=e.toString().toLowerCase(),i=r.length,s=[],o=0,a=0;o<=i;o++){var c=r.charAt(o),l=o-a;if(c.match(t.tokenizer.separator)||o==i){if(l>0){var d=t.utils.clone(n)||{};d.position=[a,l],d.index=s.length,s.push(new t.Token(r.slice(a,o),d))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,n){n in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+n),e.label=n,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var n=e.label&&e.label in this.registeredFunctions;n||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index.
4
- `,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r<n;r++){for(var i=this._stack[r],s=[],o=0;o<e.length;o++){var a=i(e[o],o,e);if(!(a==null||a===""))if(Array.isArray(a))for(var c=0;c<a.length;c++)s.push(a[c]);else s.push(a)}e=s}return e},t.Pipeline.prototype.runString=function(e,n){var r=new t.Token(e,n);return this.run([r]).map(function(i){return i.toString()})},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})};t.Vector=function(e){this._magnitude=0,this.elements=e||[]},t.Vector.prototype.positionForIndex=function(e){if(this.elements.length==0)return 0;for(var n=0,r=this.elements.length/2,i=r-n,s=Math.floor(i/2),o=this.elements[s*2];i>1&&(o<e&&(n=s),o>e&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(o<e)return(s+1)*2},t.Vector.prototype.insert=function(e,n){this.upsert(e,n,function(){throw"duplicate index"})},t.Vector.prototype.upsert=function(e,n,r){this._magnitude=0;var i=this.positionForIndex(e);this.elements[i]==e?this.elements[i+1]=r(this.elements[i+1],n):this.elements.splice(i,0,e,n)},t.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,n=this.elements.length,r=1;r<n;r+=2){var i=this.elements[r];e+=i*i}return this._magnitude=Math.sqrt(e)},t.Vector.prototype.dot=function(e){for(var n=0,r=this.elements,i=e.elements,s=r.length,o=i.length,a=0,c=0,l=0,d=0;l<s&&d<o;)a=r[l],c=i[d],a<c?l+=2:a>c?d+=2:a==c&&(n+=r[l+1]*i[d+1],l+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n<this.elements.length;n+=2,r++)e[r]=this.elements[n];return e},t.Vector.prototype.toJSON=function(){return this.elements};t.stemmer=(function(){var e={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},n={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},r="[^aeiou]",i="[aeiouy]",s=r+"[^aeiouy]*",o=i+"[aeiou]*",a="^("+s+")?"+o+s,c="^("+s+")?"+o+s+"("+o+")?$",l="^("+s+")?"+o+s+o+s,d="^("+s+")?"+i,f=new RegExp(a),p=new RegExp(l),v=new RegExp(c),x=new RegExp(d),w=/^(.+?)(ss|i)es$/,m=/^(.+?)([^s])s$/,g=/^(.+?)eed$/,T=/^(.+?)(ed|ing)$/,L=/.$/,C=/(at|bl|iz)$/,O=new RegExp("([^aeiouylsz])\\1$"),j=new RegExp("^"+s+i+"[^aeiouwxy]$"),N=/^(.+?[^aeiou])y$/,q=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,W=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,B=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,z=/^(.+?)(s|t)(ion)$/,_=/^(.+?)e$/,U=/ll$/,J=new RegExp("^"+s+i+"[^aeiouwxy]$"),V=function(u){var y,P,k,h,E,Q,H;if(u.length<3)return u;if(k=u.substr(0,1),k=="y"&&(u=k.toUpperCase()+u.substr(1)),h=w,E=m,h.test(u)?u=u.replace(h,"$1$2"):E.test(u)&&(u=u.replace(E,"$1$2")),h=g,E=T,h.test(u)){var b=h.exec(u);h=f,h.test(b[1])&&(h=L,u=u.replace(h,""))}else if(E.test(u)){var b=E.exec(u);y=b[1],E=x,E.test(y)&&(u=y,E=C,Q=O,H=j,E.test(u)?u=u+"e":Q.test(u)?(h=L,u=u.replace(h,"")):H.test(u)&&(u=u+"e"))}if(h=N,h.test(u)){var b=h.exec(u);y=b[1],u=y+"i"}if(h=q,h.test(u)){var b=h.exec(u);y=b[1],P=b[2],h=f,h.test(y)&&(u=y+e[P])}if(h=W,h.test(u)){var b=h.exec(u);y=b[1],P=b[2],h=f,h.test(y)&&(u=y+n[P])}if(h=B,E=z,h.test(u)){var b=h.exec(u);y=b[1],h=p,h.test(y)&&(u=y)}else if(E.test(u)){var b=E.exec(u);y=b[1]+b[2],E=p,E.test(y)&&(u=y)}if(h=_,h.test(u)){var b=h.exec(u);y=b[1],h=p,E=v,Q=J,(h.test(y)||E.test(y)&&!Q.test(y))&&(u=y)}return h=U,E=p,h.test(u)&&E.test(u)&&(h=L,u=u.replace(h,"")),k=="y"&&(u=k.toLowerCase()+u.substr(1)),u};return function(A){return A.update(V)}})(),t.Pipeline.registerFunction(t.stemmer,"stemmer");t.generateStopWordFilter=function(e){var n=e.reduce(function(r,i){return r[i]=i,r},{});return function(r){if(r&&n[r.toString()]!==r.toString())return r}},t.stopWordFilter=t.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter");t.trimmer=function(e){return e.update(function(n){return n.replace(/^\W+/,"").replace(/\W+$/,"")})},t.Pipeline.registerFunction(t.trimmer,"trimmer");t.TokenSet=function(){this.final=!1,this.edges={},this.id=t.TokenSet._nextId,t.TokenSet._nextId+=1},t.TokenSet._nextId=1,t.TokenSet.fromArray=function(e){for(var n=new t.TokenSet.Builder,r=0,i=e.length;r<i;r++)n.insert(e[r]);return n.finish(),n.root},t.TokenSet.fromClause=function(e){return"editDistance"in e?t.TokenSet.fromFuzzyString(e.term,e.editDistance):t.TokenSet.fromString(e.term)},t.TokenSet.fromFuzzyString=function(e,n){for(var r=new t.TokenSet,i=[{node:r,editsRemaining:n,str:e}];i.length;){var s=i.pop();if(s.str.length>0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}if(s.str.length==0&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),f=s.str.charAt(1),p;f in s.node.edges?p=s.node.edges[f]:(p=new t.TokenSet,s.node.edges[f]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i<s;i++){var o=e[i],a=i==s-1;if(o=="*")n.edges[o]=n,n.final=a;else{var c=new t.TokenSet;c.final=a,n.edges[o]=c,n=c}}return r},t.TokenSet.prototype.toArray=function(){for(var e=[],n=[{prefix:"",node:this}];n.length;){var r=n.pop(),i=Object.keys(r.node.edges),s=i.length;r.node.final&&(r.prefix.charAt(0),e.push(r.prefix));for(var o=0;o<s;o++){var a=i[o];n.push({prefix:r.prefix.concat(a),node:r.node.edges[a]})}}return e},t.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",n=Object.keys(this.edges).sort(),r=n.length,i=0;i<r;i++){var s=n[i],o=this.edges[s];e=e+s+o.id}return e},t.TokenSet.prototype.intersect=function(e){for(var n=new t.TokenSet,r=void 0,i=[{qNode:e,output:n,node:this}];i.length;){r=i.pop();for(var s=Object.keys(r.qNode.edges),o=s.length,a=Object.keys(r.node.edges),c=a.length,l=0;l<o;l++)for(var d=s[l],f=0;f<c;f++){var p=a[f];if(p==d||d=="*"){var v=r.node.edges[p],x=r.qNode.edges[d],w=v.final&&x.final,m=void 0;p in r.output.edges?(m=r.output.edges[p],m.final=m.final||w):(m=new t.TokenSet,m.final=w,r.output.edges[p]=m),i.push({qNode:x,output:m,node:v})}}}return n},t.TokenSet.Builder=function(){this.previousWord="",this.root=new t.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},t.TokenSet.Builder.prototype.insert=function(e){var n,r=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var i=0;i<e.length&&i<this.previousWord.length&&e[i]==this.previousWord[i];i++)r++;this.minimize(r),this.uncheckedNodes.length==0?n=this.root:n=this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(var i=r;i<e.length;i++){var s=new t.TokenSet,o=e[i];n.edges[o]=s,this.uncheckedNodes.push({parent:n,char:o,child:s}),n=s}n.final=!0,this.previousWord=e},t.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},t.TokenSet.Builder.prototype.minimize=function(e){for(var n=this.uncheckedNodes.length-1;n>=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),c=0;c<this.fields.length;c++)i[this.fields[c]]=new t.Vector;e.call(n,n);for(var c=0;c<n.clauses.length;c++){var l=n.clauses[c],d=null,f=t.Set.empty;l.usePipeline?d=this.pipeline.runString(l.term,{fields:l.fields}):d=[l.term];for(var p=0;p<d.length;p++){var v=d[p];l.term=v;var x=t.TokenSet.fromClause(l),w=this.tokenSet.intersect(x).toArray();if(w.length===0&&l.presence===t.Query.presence.REQUIRED){for(var m=0;m<l.fields.length;m++){var g=l.fields[m];o[g]=t.Set.empty}break}for(var T=0;T<w.length;T++)for(var L=w[T],C=this.invertedIndex[L],O=C._index,m=0;m<l.fields.length;m++){var g=l.fields[m],j=C[g],N=Object.keys(j),q=L+"/"+g,W=new t.Set(N);if(l.presence==t.Query.presence.REQUIRED&&(f=f.union(W),o[g]===void 0&&(o[g]=t.Set.complete)),l.presence==t.Query.presence.PROHIBITED){a[g]===void 0&&(a[g]=t.Set.empty),a[g]=a[g].union(W);continue}if(i[g].upsert(O,l.boost,function(Ue,Je){return Ue+Je}),!s[q]){for(var B=0;B<N.length;B++){var z=N[B],_=new t.FieldRef(z,g),U=j[z],J;(J=r[_])===void 0?r[_]=new t.MatchData(L,g,U):J.add(L,g,U)}s[q]=!0}}}if(l.presence===t.Query.presence.REQUIRED)for(var m=0;m<l.fields.length;m++){var g=l.fields[m];o[g]=o[g].intersect(f)}}for(var V=t.Set.complete,A=t.Set.empty,c=0;c<this.fields.length;c++){var g=this.fields[c];o[g]&&(V=V.intersect(o[g])),a[g]&&(A=A.union(a[g]))}var u=Object.keys(r),y=[],P=Object.create(null);if(n.isNegated()){u=Object.keys(this.fieldVectors);for(var c=0;c<u.length;c++){var _=u[c],k=t.FieldRef.fromString(_);r[_]=new t.MatchData}}for(var c=0;c<u.length;c++){var k=t.FieldRef.fromString(u[c]),h=k.docRef;if(V.contains(h)&&!A.contains(h)){var E=this.fieldVectors[k],Q=i[k.fieldName].similarity(E),H;if((H=P[h])!==void 0)H.score+=Q,H.matchData.combine(r[k]);else{var b={ref:h,score:Q,matchData:r[k]};P[h]=b,y.push(b)}}}return y.sort(function(We,ze){return ze.score-We.score})},t.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map(function(r){return[r,this.invertedIndex[r]]},this),n=Object.keys(this.fieldVectors).map(function(r){return[r,this.fieldVectors[r].toJSON()]},this);return{version:t.version,fields:this.fields,fieldVectors:n,invertedIndex:e,pipeline:this.pipeline.toJSON()}},t.Index.load=function(e){var n={},r={},i=e.fieldVectors,s=Object.create(null),o=e.invertedIndex,a=new t.TokenSet.Builder,c=t.Pipeline.load(e.pipeline);e.version!=t.version&&t.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+t.version+"' does not match serialized index '"+e.version+"'");for(var l=0;l<i.length;l++){var d=i[l],f=d[0],p=d[1];r[f]=new t.Vector(p)}for(var l=0;l<o.length;l++){var d=o[l],v=d[0],x=d[1];a.insert(v),s[v]=x}return a.finish(),n.fields=e.fields,n.fieldVectors=r,n.invertedIndex=s,n.tokenSet=a.root,n.pipeline=c,new t.Index(n)};t.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=t.tokenizer,this.pipeline=new t.Pipeline,this.searchPipeline=new t.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},t.Builder.prototype.ref=function(e){this._ref=e},t.Builder.prototype.field=function(e,n){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=n||{}},t.Builder.prototype.b=function(e){e<0?this._b=0:e>1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s<i.length;s++){var o=i[s],a=this._fields[o].extractor,c=a?a(e):e[o],l=this.tokenizer(c,{fields:[o]}),d=this.pipeline.run(l),f=new t.FieldRef(r,o),p=Object.create(null);this.fieldTermFrequencies[f]=p,this.fieldLengths[f]=0,this.fieldLengths[f]+=d.length;for(var v=0;v<d.length;v++){var x=d[v];if(p[x]==null&&(p[x]=0),p[x]+=1,this.invertedIndex[x]==null){var w=Object.create(null);w._index=this.termIndex,this.termIndex+=1;for(var m=0;m<i.length;m++)w[i[m]]=Object.create(null);this.invertedIndex[x]=w}this.invertedIndex[x][o][r]==null&&(this.invertedIndex[x][o][r]=Object.create(null));for(var g=0;g<this.metadataWhitelist.length;g++){var T=this.metadataWhitelist[g],L=x.metadata[T];this.invertedIndex[x][o][r][T]==null&&(this.invertedIndex[x][o][r][T]=[]),this.invertedIndex[x][o][r][T].push(L)}}}},t.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),n=e.length,r={},i={},s=0;s<n;s++){var o=t.FieldRef.fromString(e[s]),a=o.fieldName;i[a]||(i[a]=0),i[a]+=1,r[a]||(r[a]=0),r[a]+=this.fieldLengths[o]}for(var c=Object.keys(this._fields),s=0;s<c.length;s++){var l=c[s];r[l]=r[l]/i[l]}this.averageFieldLength=r},t.Builder.prototype.createFieldVectors=function(){for(var e={},n=Object.keys(this.fieldTermFrequencies),r=n.length,i=Object.create(null),s=0;s<r;s++){for(var o=t.FieldRef.fromString(n[s]),a=o.fieldName,c=this.fieldLengths[o],l=new t.Vector,d=this.fieldTermFrequencies[o],f=Object.keys(d),p=f.length,v=this._fields[a].boost||1,x=this._documents[o.docRef].boost||1,w=0;w<p;w++){var m=f[w],g=d[m],T=this.invertedIndex[m]._index,L,C,O;i[m]===void 0?(L=t.idf(this.invertedIndex[m],this.documentCount),i[m]=L):L=i[m],C=L*((this._k1+1)*g)/(this._k1*(1-this._b+this._b*(c/this.averageFieldLength[a]))+g),C*=v,C*=x,O=Math.round(C*1e3)/1e3,l.insert(T,O)}e[o]=l}this.fieldVectors=e},t.Builder.prototype.createTokenSet=function(){this.tokenSet=t.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},t.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new t.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},t.Builder.prototype.use=function(e){var n=Array.prototype.slice.call(arguments,1);n.unshift(this),e.apply(this,n)},t.MatchData=function(e,n,r){for(var i=Object.create(null),s=Object.keys(r||{}),o=0;o<s.length;o++){var a=s[o];i[a]=r[a].slice()}this.metadata=Object.create(null),e!==void 0&&(this.metadata[e]=Object.create(null),this.metadata[e][n]=i)},t.MatchData.prototype.combine=function(e){for(var n=Object.keys(e.metadata),r=0;r<n.length;r++){var i=n[r],s=Object.keys(e.metadata[i]);this.metadata[i]==null&&(this.metadata[i]=Object.create(null));for(var o=0;o<s.length;o++){var a=s[o],c=Object.keys(e.metadata[i][a]);this.metadata[i][a]==null&&(this.metadata[i][a]=Object.create(null));for(var l=0;l<c.length;l++){var d=c[l];this.metadata[i][a][d]==null?this.metadata[i][a][d]=e.metadata[i][a][d]:this.metadata[i][a][d]=this.metadata[i][a][d].concat(e.metadata[i][a][d])}}}},t.MatchData.prototype.add=function(e,n,r){if(!(e in this.metadata)){this.metadata[e]=Object.create(null),this.metadata[e][n]=r;return}if(!(n in this.metadata[e])){this.metadata[e][n]=r;return}for(var i=Object.keys(r),s=0;s<i.length;s++){var o=i[s];o in this.metadata[e][n]?this.metadata[e][n][o]=this.metadata[e][n][o].concat(r[o]):this.metadata[e][n][o]=r[o]}},t.Query=function(e){this.clauses=[],this.allFields=e},t.Query.wildcard=new String("*"),t.Query.wildcard.NONE=0,t.Query.wildcard.LEADING=1,t.Query.wildcard.TRAILING=2,t.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},t.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=t.Query.wildcard.NONE),e.wildcard&t.Query.wildcard.LEADING&&e.term.charAt(0)!=t.Query.wildcard&&(e.term="*"+e.term),e.wildcard&t.Query.wildcard.TRAILING&&e.term.slice(-1)!=t.Query.wildcard&&(e.term=""+e.term+"*"),"presence"in e||(e.presence=t.Query.presence.OPTIONAL),this.clauses.push(e),this},t.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=t.Query.presence.PROHIBITED)return!1;return!0},t.Query.prototype.term=function(e,n){if(Array.isArray(e))return e.forEach(function(i){this.term(i,t.utils.clone(n))},this),this;var r=n||{};return r.term=e.toString(),this.clause(r),this},t.QueryParseError=function(e,n,r){this.name="QueryParseError",this.message=e,this.start=n,this.end=r},t.QueryParseError.prototype=new Error,t.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},t.QueryLexer.prototype.run=function(){for(var e=t.QueryLexer.lexText;e;)e=e(this)},t.QueryLexer.prototype.sliceString=function(){for(var e=[],n=this.start,r=this.pos,i=0;i<this.escapeCharPositions.length;i++)r=this.escapeCharPositions[i],e.push(this.str.slice(n,r)),n=r+1;return e.push(this.str.slice(n,this.pos)),this.escapeCharPositions.length=0,e.join("")},t.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},t.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},t.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos<this.length},t.QueryLexer.EOS="EOS",t.QueryLexer.FIELD="FIELD",t.QueryLexer.TERM="TERM",t.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",t.QueryLexer.BOOST="BOOST",t.QueryLexer.PRESENCE="PRESENCE",t.QueryLexer.lexField=function(e){return e.backup(),e.emit(t.QueryLexer.FIELD),e.ignore(),t.QueryLexer.lexText},t.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},(function(e,n){typeof define=="function"&&define.amd?define(n):typeof me=="object"?ge.exports=n():e.lunr=n()})(this,function(){return t})})()});var M,G={getItem(){return null},setItem(){}},K;try{K=localStorage,M=K}catch{K=G,M=G}var S={getItem:t=>M.getItem(t),setItem:(t,e)=>M.setItem(t,e),disableWritingLocalStorage(){M=G},disable(){localStorage.clear(),M=G},enable(){M=K}};window.TypeDoc||={disableWritingLocalStorage(){S.disableWritingLocalStorage()},disableLocalStorage:()=>{S.disable()},enableLocalStorage:()=>{S.enable()}};window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse",search_index_not_available:"The search index is not available",search_no_results_found_for_0:"No results found for {0}",folder:"Folder",kind_1:"Project",kind_2:"Module",kind_4:"Namespace",kind_8:"Enumeration",kind_16:"Enumeration Member",kind_32:"Variable",kind_64:"Function",kind_128:"Class",kind_256:"Interface",kind_512:"Constructor",kind_1024:"Property",kind_2048:"Method",kind_4096:"Call Signature",kind_8192:"Index Signature",kind_16384:"Constructor Signature",kind_32768:"Parameter",kind_65536:"Type Literal",kind_131072:"Type Parameter",kind_262144:"Accessor",kind_524288:"Get Signature",kind_1048576:"Set Signature",kind_2097152:"Type Alias",kind_4194304:"Reference",kind_8388608:"Document"};var pe=[];function X(t,e){pe.push({selector:e,constructor:t})}var Z=class{alwaysVisibleMember=null;constructor(){this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){pe.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!rt(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function rt(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var fe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var Ie=nt(ye(),1);async function R(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}var Y="closing",ae="tsd-overlay";function it(){let t=Math.abs(window.innerWidth-document.documentElement.clientWidth);document.body.style.overflow="hidden",document.body.style.paddingRight=`${t}px`}function st(){document.body.style.removeProperty("overflow"),document.body.style.removeProperty("padding-right")}function xe(t,e){t.addEventListener("animationend",()=>{t.classList.contains(Y)&&(t.classList.remove(Y),document.getElementById(ae)?.remove(),t.close(),st())}),t.addEventListener("cancel",n=>{n.preventDefault(),ve(t)}),e?.closeOnClick&&document.addEventListener("click",n=>{t.open&&!t.contains(n.target)&&ve(t)},!0)}function Ee(t){if(t.open)return;let e=document.createElement("div");e.id=ae,document.body.appendChild(e),t.showModal(),it()}function ve(t){if(!t.open)return;document.getElementById(ae)?.classList.add(Y),t.classList.add(Y)}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var be=document.head.appendChild(document.createElement("style"));be.dataset.for="filters";var le={};function we(t){for(let e of t.split(/\s+/))if(le.hasOwnProperty(e)&&!le[e])return!0;return!1}var ee=class extends I{key;value;constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),be.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; }
4
+ `,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");r=r+1,this._stack.splice(r,0,n)},t.Pipeline.prototype.before=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if(r==-1)throw new Error("Cannot find existingFn");this._stack.splice(r,0,n)},t.Pipeline.prototype.remove=function(e){var n=this._stack.indexOf(e);n!=-1&&this._stack.splice(n,1)},t.Pipeline.prototype.run=function(e){for(var n=this._stack.length,r=0;r<n;r++){for(var i=this._stack[r],s=[],o=0;o<e.length;o++){var a=i(e[o],o,e);if(!(a==null||a===""))if(Array.isArray(a))for(var c=0;c<a.length;c++)s.push(a[c]);else s.push(a)}e=s}return e},t.Pipeline.prototype.runString=function(e,n){var r=new t.Token(e,n);return this.run([r]).map(function(i){return i.toString()})},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})};t.Vector=function(e){this._magnitude=0,this.elements=e||[]},t.Vector.prototype.positionForIndex=function(e){if(this.elements.length==0)return 0;for(var n=0,r=this.elements.length/2,i=r-n,s=Math.floor(i/2),o=this.elements[s*2];i>1&&(o<e&&(n=s),o>e&&(r=s),o!=e);)i=r-n,s=n+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(o<e)return(s+1)*2},t.Vector.prototype.insert=function(e,n){this.upsert(e,n,function(){throw"duplicate index"})},t.Vector.prototype.upsert=function(e,n,r){this._magnitude=0;var i=this.positionForIndex(e);this.elements[i]==e?this.elements[i+1]=r(this.elements[i+1],n):this.elements.splice(i,0,e,n)},t.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,n=this.elements.length,r=1;r<n;r+=2){var i=this.elements[r];e+=i*i}return this._magnitude=Math.sqrt(e)},t.Vector.prototype.dot=function(e){for(var n=0,r=this.elements,i=e.elements,s=r.length,o=i.length,a=0,c=0,l=0,d=0;l<s&&d<o;)a=r[l],c=i[d],a<c?l+=2:a>c?d+=2:a==c&&(n+=r[l+1]*i[d+1],l+=2,d+=2);return n},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),n=1,r=0;n<this.elements.length;n+=2,r++)e[r]=this.elements[n];return e},t.Vector.prototype.toJSON=function(){return this.elements};t.stemmer=(function(){var e={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},n={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},r="[^aeiou]",i="[aeiouy]",s=r+"[^aeiouy]*",o=i+"[aeiou]*",a="^("+s+")?"+o+s,c="^("+s+")?"+o+s+"("+o+")?$",l="^("+s+")?"+o+s+o+s,d="^("+s+")?"+i,f=new RegExp(a),p=new RegExp(l),v=new RegExp(c),x=new RegExp(d),w=/^(.+?)(ss|i)es$/,m=/^(.+?)([^s])s$/,g=/^(.+?)eed$/,T=/^(.+?)(ed|ing)$/,L=/.$/,C=/(at|bl|iz)$/,O=new RegExp("([^aeiouylsz])\\1$"),j=new RegExp("^"+s+i+"[^aeiouwxy]$"),N=/^(.+?[^aeiou])y$/,q=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,W=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,B=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,z=/^(.+?)(s|t)(ion)$/,_=/^(.+?)e$/,U=/ll$/,J=new RegExp("^"+s+i+"[^aeiouwxy]$"),V=function(u){var y,P,k,h,E,Q,H;if(u.length<3)return u;if(k=u.substr(0,1),k=="y"&&(u=k.toUpperCase()+u.substr(1)),h=w,E=m,h.test(u)?u=u.replace(h,"$1$2"):E.test(u)&&(u=u.replace(E,"$1$2")),h=g,E=T,h.test(u)){var b=h.exec(u);h=f,h.test(b[1])&&(h=L,u=u.replace(h,""))}else if(E.test(u)){var b=E.exec(u);y=b[1],E=x,E.test(y)&&(u=y,E=C,Q=O,H=j,E.test(u)?u=u+"e":Q.test(u)?(h=L,u=u.replace(h,"")):H.test(u)&&(u=u+"e"))}if(h=N,h.test(u)){var b=h.exec(u);y=b[1],u=y+"i"}if(h=q,h.test(u)){var b=h.exec(u);y=b[1],P=b[2],h=f,h.test(y)&&(u=y+e[P])}if(h=W,h.test(u)){var b=h.exec(u);y=b[1],P=b[2],h=f,h.test(y)&&(u=y+n[P])}if(h=B,E=z,h.test(u)){var b=h.exec(u);y=b[1],h=p,h.test(y)&&(u=y)}else if(E.test(u)){var b=E.exec(u);y=b[1]+b[2],E=p,E.test(y)&&(u=y)}if(h=_,h.test(u)){var b=h.exec(u);y=b[1],h=p,E=v,Q=J,(h.test(y)||E.test(y)&&!Q.test(y))&&(u=y)}return h=U,E=p,h.test(u)&&E.test(u)&&(h=L,u=u.replace(h,"")),k=="y"&&(u=k.toLowerCase()+u.substr(1)),u};return function(A){return A.update(V)}})(),t.Pipeline.registerFunction(t.stemmer,"stemmer");t.generateStopWordFilter=function(e){var n=e.reduce(function(r,i){return r[i]=i,r},{});return function(r){if(r&&n[r.toString()]!==r.toString())return r}},t.stopWordFilter=t.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter");t.trimmer=function(e){return e.update(function(n){return n.replace(/^\W+/,"").replace(/\W+$/,"")})},t.Pipeline.registerFunction(t.trimmer,"trimmer");t.TokenSet=function(){this.final=!1,this.edges={},this.id=t.TokenSet._nextId,t.TokenSet._nextId+=1},t.TokenSet._nextId=1,t.TokenSet.fromArray=function(e){for(var n=new t.TokenSet.Builder,r=0,i=e.length;r<i;r++)n.insert(e[r]);return n.finish(),n.root},t.TokenSet.fromClause=function(e){return"editDistance"in e?t.TokenSet.fromFuzzyString(e.term,e.editDistance):t.TokenSet.fromString(e.term)},t.TokenSet.fromFuzzyString=function(e,n){for(var r=new t.TokenSet,i=[{node:r,editsRemaining:n,str:e}];i.length;){var s=i.pop();if(s.str.length>0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var c=s.node.edges["*"];else{var c=new t.TokenSet;s.node.edges["*"]=c}if(s.str.length==0&&(c.final=!0),i.push({node:c,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}s.str.length==1&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var d=s.str.charAt(0),f=s.str.charAt(1),p;f in s.node.edges?p=s.node.edges[f]:(p=new t.TokenSet,s.node.edges[f]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:d+s.str.slice(2)})}}}return r},t.TokenSet.fromString=function(e){for(var n=new t.TokenSet,r=n,i=0,s=e.length;i<s;i++){var o=e[i],a=i==s-1;if(o=="*")n.edges[o]=n,n.final=a;else{var c=new t.TokenSet;c.final=a,n.edges[o]=c,n=c}}return r},t.TokenSet.prototype.toArray=function(){for(var e=[],n=[{prefix:"",node:this}];n.length;){var r=n.pop(),i=Object.keys(r.node.edges),s=i.length;r.node.final&&(r.prefix.charAt(0),e.push(r.prefix));for(var o=0;o<s;o++){var a=i[o];n.push({prefix:r.prefix.concat(a),node:r.node.edges[a]})}}return e},t.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",n=Object.keys(this.edges).sort(),r=n.length,i=0;i<r;i++){var s=n[i],o=this.edges[s];e=e+s+o.id}return e},t.TokenSet.prototype.intersect=function(e){for(var n=new t.TokenSet,r=void 0,i=[{qNode:e,output:n,node:this}];i.length;){r=i.pop();for(var s=Object.keys(r.qNode.edges),o=s.length,a=Object.keys(r.node.edges),c=a.length,l=0;l<o;l++)for(var d=s[l],f=0;f<c;f++){var p=a[f];if(p==d||d=="*"){var v=r.node.edges[p],x=r.qNode.edges[d],w=v.final&&x.final,m=void 0;p in r.output.edges?(m=r.output.edges[p],m.final=m.final||w):(m=new t.TokenSet,m.final=w,r.output.edges[p]=m),i.push({qNode:x,output:m,node:v})}}}return n},t.TokenSet.Builder=function(){this.previousWord="",this.root=new t.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},t.TokenSet.Builder.prototype.insert=function(e){var n,r=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var i=0;i<e.length&&i<this.previousWord.length&&e[i]==this.previousWord[i];i++)r++;this.minimize(r),this.uncheckedNodes.length==0?n=this.root:n=this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(var i=r;i<e.length;i++){var s=new t.TokenSet,o=e[i];n.edges[o]=s,this.uncheckedNodes.push({parent:n,char:o,child:s}),n=s}n.final=!0,this.previousWord=e},t.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},t.TokenSet.Builder.prototype.minimize=function(e){for(var n=this.uncheckedNodes.length-1;n>=e;n--){var r=this.uncheckedNodes[n],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(n){var r=new t.QueryParser(e,n);r.parse()})},t.Index.prototype.query=function(e){for(var n=new t.Query(this.fields),r=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),c=0;c<this.fields.length;c++)i[this.fields[c]]=new t.Vector;e.call(n,n);for(var c=0;c<n.clauses.length;c++){var l=n.clauses[c],d=null,f=t.Set.empty;l.usePipeline?d=this.pipeline.runString(l.term,{fields:l.fields}):d=[l.term];for(var p=0;p<d.length;p++){var v=d[p];l.term=v;var x=t.TokenSet.fromClause(l),w=this.tokenSet.intersect(x).toArray();if(w.length===0&&l.presence===t.Query.presence.REQUIRED){for(var m=0;m<l.fields.length;m++){var g=l.fields[m];o[g]=t.Set.empty}break}for(var T=0;T<w.length;T++)for(var L=w[T],C=this.invertedIndex[L],O=C._index,m=0;m<l.fields.length;m++){var g=l.fields[m],j=C[g],N=Object.keys(j),q=L+"/"+g,W=new t.Set(N);if(l.presence==t.Query.presence.REQUIRED&&(f=f.union(W),o[g]===void 0&&(o[g]=t.Set.complete)),l.presence==t.Query.presence.PROHIBITED){a[g]===void 0&&(a[g]=t.Set.empty),a[g]=a[g].union(W);continue}if(i[g].upsert(O,l.boost,function(Ue,Je){return Ue+Je}),!s[q]){for(var B=0;B<N.length;B++){var z=N[B],_=new t.FieldRef(z,g),U=j[z],J;(J=r[_])===void 0?r[_]=new t.MatchData(L,g,U):J.add(L,g,U)}s[q]=!0}}}if(l.presence===t.Query.presence.REQUIRED)for(var m=0;m<l.fields.length;m++){var g=l.fields[m];o[g]=o[g].intersect(f)}}for(var V=t.Set.complete,A=t.Set.empty,c=0;c<this.fields.length;c++){var g=this.fields[c];o[g]&&(V=V.intersect(o[g])),a[g]&&(A=A.union(a[g]))}var u=Object.keys(r),y=[],P=Object.create(null);if(n.isNegated()){u=Object.keys(this.fieldVectors);for(var c=0;c<u.length;c++){var _=u[c],k=t.FieldRef.fromString(_);r[_]=new t.MatchData}}for(var c=0;c<u.length;c++){var k=t.FieldRef.fromString(u[c]),h=k.docRef;if(V.contains(h)&&!A.contains(h)){var E=this.fieldVectors[k],Q=i[k.fieldName].similarity(E),H;if((H=P[h])!==void 0)H.score+=Q,H.matchData.combine(r[k]);else{var b={ref:h,score:Q,matchData:r[k]};P[h]=b,y.push(b)}}}return y.sort(function(We,ze){return ze.score-We.score})},t.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map(function(r){return[r,this.invertedIndex[r]]},this),n=Object.keys(this.fieldVectors).map(function(r){return[r,this.fieldVectors[r].toJSON()]},this);return{version:t.version,fields:this.fields,fieldVectors:n,invertedIndex:e,pipeline:this.pipeline.toJSON()}},t.Index.load=function(e){var n={},r={},i=e.fieldVectors,s=Object.create(null),o=e.invertedIndex,a=new t.TokenSet.Builder,c=t.Pipeline.load(e.pipeline);e.version!=t.version&&t.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+t.version+"' does not match serialized index '"+e.version+"'");for(var l=0;l<i.length;l++){var d=i[l],f=d[0],p=d[1];r[f]=new t.Vector(p)}for(var l=0;l<o.length;l++){var d=o[l],v=d[0],x=d[1];a.insert(v),s[v]=x}return a.finish(),n.fields=e.fields,n.fieldVectors=r,n.invertedIndex=s,n.tokenSet=a.root,n.pipeline=c,new t.Index(n)};t.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=t.tokenizer,this.pipeline=new t.Pipeline,this.searchPipeline=new t.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},t.Builder.prototype.ref=function(e){this._ref=e},t.Builder.prototype.field=function(e,n){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=n||{}},t.Builder.prototype.b=function(e){e<0?this._b=0:e>1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,n){var r=e[this._ref],i=Object.keys(this._fields);this._documents[r]=n||{},this.documentCount+=1;for(var s=0;s<i.length;s++){var o=i[s],a=this._fields[o].extractor,c=a?a(e):e[o],l=this.tokenizer(c,{fields:[o]}),d=this.pipeline.run(l),f=new t.FieldRef(r,o),p=Object.create(null);this.fieldTermFrequencies[f]=p,this.fieldLengths[f]=0,this.fieldLengths[f]+=d.length;for(var v=0;v<d.length;v++){var x=d[v];if(p[x]==null&&(p[x]=0),p[x]+=1,this.invertedIndex[x]==null){var w=Object.create(null);w._index=this.termIndex,this.termIndex+=1;for(var m=0;m<i.length;m++)w[i[m]]=Object.create(null);this.invertedIndex[x]=w}this.invertedIndex[x][o][r]==null&&(this.invertedIndex[x][o][r]=Object.create(null));for(var g=0;g<this.metadataWhitelist.length;g++){var T=this.metadataWhitelist[g],L=x.metadata[T];this.invertedIndex[x][o][r][T]==null&&(this.invertedIndex[x][o][r][T]=[]),this.invertedIndex[x][o][r][T].push(L)}}}},t.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),n=e.length,r={},i={},s=0;s<n;s++){var o=t.FieldRef.fromString(e[s]),a=o.fieldName;i[a]||(i[a]=0),i[a]+=1,r[a]||(r[a]=0),r[a]+=this.fieldLengths[o]}for(var c=Object.keys(this._fields),s=0;s<c.length;s++){var l=c[s];r[l]=r[l]/i[l]}this.averageFieldLength=r},t.Builder.prototype.createFieldVectors=function(){for(var e={},n=Object.keys(this.fieldTermFrequencies),r=n.length,i=Object.create(null),s=0;s<r;s++){for(var o=t.FieldRef.fromString(n[s]),a=o.fieldName,c=this.fieldLengths[o],l=new t.Vector,d=this.fieldTermFrequencies[o],f=Object.keys(d),p=f.length,v=this._fields[a].boost||1,x=this._documents[o.docRef].boost||1,w=0;w<p;w++){var m=f[w],g=d[m],T=this.invertedIndex[m]._index,L,C,O;i[m]===void 0?(L=t.idf(this.invertedIndex[m],this.documentCount),i[m]=L):L=i[m],C=L*((this._k1+1)*g)/(this._k1*(1-this._b+this._b*(c/this.averageFieldLength[a]))+g),C*=v,C*=x,O=Math.round(C*1e3)/1e3,l.insert(T,O)}e[o]=l}this.fieldVectors=e},t.Builder.prototype.createTokenSet=function(){this.tokenSet=t.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},t.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new t.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},t.Builder.prototype.use=function(e){var n=Array.prototype.slice.call(arguments,1);n.unshift(this),e.apply(this,n)},t.MatchData=function(e,n,r){for(var i=Object.create(null),s=Object.keys(r||{}),o=0;o<s.length;o++){var a=s[o];i[a]=r[a].slice()}this.metadata=Object.create(null),e!==void 0&&(this.metadata[e]=Object.create(null),this.metadata[e][n]=i)},t.MatchData.prototype.combine=function(e){for(var n=Object.keys(e.metadata),r=0;r<n.length;r++){var i=n[r],s=Object.keys(e.metadata[i]);this.metadata[i]==null&&(this.metadata[i]=Object.create(null));for(var o=0;o<s.length;o++){var a=s[o],c=Object.keys(e.metadata[i][a]);this.metadata[i][a]==null&&(this.metadata[i][a]=Object.create(null));for(var l=0;l<c.length;l++){var d=c[l];this.metadata[i][a][d]==null?this.metadata[i][a][d]=e.metadata[i][a][d]:this.metadata[i][a][d]=this.metadata[i][a][d].concat(e.metadata[i][a][d])}}}},t.MatchData.prototype.add=function(e,n,r){if(!(e in this.metadata)){this.metadata[e]=Object.create(null),this.metadata[e][n]=r;return}if(!(n in this.metadata[e])){this.metadata[e][n]=r;return}for(var i=Object.keys(r),s=0;s<i.length;s++){var o=i[s];o in this.metadata[e][n]?this.metadata[e][n][o]=this.metadata[e][n][o].concat(r[o]):this.metadata[e][n][o]=r[o]}},t.Query=function(e){this.clauses=[],this.allFields=e},t.Query.wildcard=new String("*"),t.Query.wildcard.NONE=0,t.Query.wildcard.LEADING=1,t.Query.wildcard.TRAILING=2,t.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},t.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=t.Query.wildcard.NONE),e.wildcard&t.Query.wildcard.LEADING&&e.term.charAt(0)!=t.Query.wildcard&&(e.term="*"+e.term),e.wildcard&t.Query.wildcard.TRAILING&&e.term.slice(-1)!=t.Query.wildcard&&(e.term=""+e.term+"*"),"presence"in e||(e.presence=t.Query.presence.OPTIONAL),this.clauses.push(e),this},t.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=t.Query.presence.PROHIBITED)return!1;return!0},t.Query.prototype.term=function(e,n){if(Array.isArray(e))return e.forEach(function(i){this.term(i,t.utils.clone(n))},this),this;var r=n||{};return r.term=e.toString(),this.clause(r),this},t.QueryParseError=function(e,n,r){this.name="QueryParseError",this.message=e,this.start=n,this.end=r},t.QueryParseError.prototype=new Error,t.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},t.QueryLexer.prototype.run=function(){for(var e=t.QueryLexer.lexText;e;)e=e(this)},t.QueryLexer.prototype.sliceString=function(){for(var e=[],n=this.start,r=this.pos,i=0;i<this.escapeCharPositions.length;i++)r=this.escapeCharPositions[i],e.push(this.str.slice(n,r)),n=r+1;return e.push(this.str.slice(n,this.pos)),this.escapeCharPositions.length=0,e.join("")},t.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},t.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},t.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,n;do e=this.next(),n=e.charCodeAt(0);while(n>47&&n<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos<this.length},t.QueryLexer.EOS="EOS",t.QueryLexer.FIELD="FIELD",t.QueryLexer.TERM="TERM",t.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",t.QueryLexer.BOOST="BOOST",t.QueryLexer.PRESENCE="PRESENCE",t.QueryLexer.lexField=function(e){return e.backup(),e.emit(t.QueryLexer.FIELD),e.ignore(),t.QueryLexer.lexText},t.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var n=e.next();if(n==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(n.charCodeAt(0)==92){e.escapeCharacter();continue}if(n==":")return t.QueryLexer.lexField;if(n=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(n=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(n=="+"&&e.width()===1||n=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(n.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,n){this.lexer=new t.QueryLexer(e),this.query=n,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var n=e.peekLexeme();if(n!=null)switch(n.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+n.type;throw n.str.length>=1&&(r+=" with value '"+n.str+"'"),new t.QueryParseError(r,n.start,n.end)}},t.QueryParser.parsePresence=function(e){var n=e.consumeLexeme();if(n!=null){switch(n.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator'"+n.str+"'";throw new t.QueryParseError(r,n.start,n.end)}var i=e.peekLexeme();if(i==null){var r="expecting term or field, found nothing";throw new t.QueryParseError(r,n.start,n.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var r="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(r,i.start,i.end)}}},t.QueryParser.parseField=function(e){var n=e.consumeLexeme();if(n!=null){if(e.query.allFields.indexOf(n.str)==-1){var r=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+n.str+"', possible fields: "+r;throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.fields=[n.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,n.start,n.end)}if(s.type===t.QueryLexer.TERM)return t.QueryParser.parseTerm;var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}},t.QueryParser.parseTerm=function(e){var n=e.consumeLexeme();if(n!=null){e.currentClause.term=n.str.toLowerCase(),n.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(r==null){e.nextClause();return}switch(r.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+r.type+"'";throw new t.QueryParseError(i,r.start,r.end)}}},t.QueryParser.parseEditDistance=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="edit distance must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.editDistance=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var n=e.consumeLexeme();if(n!=null){var r=parseInt(n.str,10);if(isNaN(r)){var i="boost must be numeric";throw new t.QueryParseError(i,n.start,n.end)}e.currentClause.boost=r;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},(function(e,n){typeof define=="function"&&define.amd?define(n):typeof me=="object"?ge.exports=n():e.lunr=n()})(this,function(){return t})})()});var M,G={getItem(){return null},setItem(){}},K;try{K=localStorage,M=K}catch{K=G,M=G}var S={getItem:t=>M.getItem(t),setItem:(t,e)=>M.setItem(t,e),disableWritingLocalStorage(){M=G},disable(){localStorage.clear(),M=G},enable(){M=K}};window.TypeDoc||={disableWritingLocalStorage(){S.disableWritingLocalStorage()},disableLocalStorage:()=>{S.disable()},enableLocalStorage:()=>{S.enable()}};window.translations||={copy:"Copy",copied:"Copied!",normally_hidden:"This member is normally hidden due to your filter settings.",hierarchy_expand:"Expand",hierarchy_collapse:"Collapse",search_index_not_available:"The search index is not available",search_no_results_found_for_0:"No results found for {0}",folder:"Folder",kind_1:"Project",kind_2:"Module",kind_4:"Namespace",kind_8:"Enumeration",kind_16:"Enumeration Member",kind_32:"Variable",kind_64:"Function",kind_128:"Class",kind_256:"Interface",kind_512:"Constructor",kind_1024:"Property",kind_2048:"Method",kind_4096:"Call Signature",kind_8192:"Index Signature",kind_16384:"Constructor Signature",kind_32768:"Parameter",kind_65536:"Type Literal",kind_131072:"Type Parameter",kind_262144:"Accessor",kind_524288:"Get Signature",kind_1048576:"Set Signature",kind_2097152:"Type Alias",kind_4194304:"Reference",kind_8388608:"Document"};var pe=[];function X(t,e){pe.push({selector:e,constructor:t})}var Z=class{alwaysVisibleMember=null;constructor(){this.createComponents(document.body),this.ensureFocusedElementVisible(),this.listenForCodeCopies(),window.addEventListener("hashchange",()=>this.ensureFocusedElementVisible()),document.body.style.display||(this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}createComponents(e){pe.forEach(n=>{e.querySelectorAll(n.selector).forEach(r=>{r.dataset.hasInstance||(new n.constructor({el:r,app:this}),r.dataset.hasInstance=String(!0))})})}filterChanged(){this.ensureFocusedElementVisible()}showPage(){document.body.style.display&&(document.body.style.removeProperty("display"),this.ensureFocusedElementVisible(),this.updateIndexVisibility(),this.scrollToHash())}scrollToHash(){if(location.hash){let e=document.getElementById(location.hash.substring(1));if(!e)return;e.scrollIntoView({behavior:"instant",block:"start"})}}ensureActivePageVisible(){let e=document.querySelector(".tsd-navigation .current"),n=e?.parentElement;for(;n&&!n.classList.contains(".tsd-navigation");)n instanceof HTMLDetailsElement&&(n.open=!0),n=n.parentElement;if(e&&!rt(e)){let r=e.getBoundingClientRect().top-document.documentElement.clientHeight/4;document.querySelector(".site-menu").scrollTop=r,document.querySelector(".col-sidebar").scrollTop=r}}updateIndexVisibility(){let e=document.querySelector(".tsd-index-content"),n=e?.open;e&&(e.open=!0),document.querySelectorAll(".tsd-index-section").forEach(r=>{r.style.display="block";let i=Array.from(r.querySelectorAll(".tsd-index-link")).every(s=>s.offsetParent==null);r.style.display=i?"none":"block"}),e&&(e.open=n)}ensureFocusedElementVisible(){if(this.alwaysVisibleMember&&(this.alwaysVisibleMember.classList.remove("always-visible"),this.alwaysVisibleMember.firstElementChild.remove(),this.alwaysVisibleMember=null),!location.hash)return;let e=document.getElementById(location.hash.substring(1));if(!e)return;let n=e.parentElement;for(;n&&n.tagName!=="SECTION";)n=n.parentElement;if(!n)return;let r=n.offsetParent==null,i=n;for(;i!==document.body;)i instanceof HTMLDetailsElement&&(i.open=!0),i=i.parentElement;if(n.offsetParent==null){this.alwaysVisibleMember=n,n.classList.add("always-visible");let s=document.createElement("p");s.classList.add("warning"),s.textContent=window.translations.normally_hidden,n.prepend(s)}r&&e.scrollIntoView()}listenForCodeCopies(){document.querySelectorAll("pre > button").forEach(e=>{let n;e.addEventListener("click",()=>{e.previousElementSibling instanceof HTMLElement&&navigator.clipboard.writeText(e.previousElementSibling.innerText.trim()),e.textContent=window.translations.copied,e.classList.add("visible"),clearTimeout(n),n=setTimeout(()=>{e.classList.remove("visible"),n=setTimeout(()=>{e.textContent=window.translations.copy},100)},1e3)})})}};function rt(t){let e=t.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight);return!(e.bottom<0||e.top-n>=0)}var fe=(t,e=100)=>{let n;return()=>{clearTimeout(n),n=setTimeout(()=>t(),e)}};var Ie=nt(ye(),1);async function R(t){let e=Uint8Array.from(atob(t),s=>s.charCodeAt(0)),r=new Blob([e]).stream().pipeThrough(new DecompressionStream("deflate")),i=await new Response(r).text();return JSON.parse(i)}var Y="closing",ae="tsd-overlay";function it(){let t=Math.abs(window.innerWidth-document.documentElement.clientWidth);document.body.style.overflow="hidden",document.body.style.paddingRight=`${t}px`}function st(){document.body.style.removeProperty("overflow"),document.body.style.removeProperty("padding-right")}function xe(t,e){t.addEventListener("animationend",()=>{t.classList.contains(Y)&&(t.classList.remove(Y),document.getElementById(ae)?.remove(),t.close(),st())}),t.addEventListener("cancel",n=>{n.preventDefault(),ve(t)}),e?.closeOnClick&&document.addEventListener("click",n=>{t.open&&!t.contains(n.target)&&ve(t)},!0)}function Ee(t){if(t.open)return;let e=document.createElement("div");e.id=ae,document.body.appendChild(e),t.showModal(),it()}function ve(t){if(!t.open)return;document.getElementById(ae)?.classList.add(Y),t.classList.add(Y)}var I=class{el;app;constructor(e){this.el=e.el,this.app=e.app}};var be=document.head.appendChild(document.createElement("style"));be.dataset.for="filters";var le={};function we(t){for(let e of t.split(/\s+/))if(le.hasOwnProperty(e)&&!le[e])return!0;return!1}var ee=class extends I{key;value;constructor(e){super(e),this.key=`filter-${this.el.name}`,this.value=this.el.checked,this.el.addEventListener("change",()=>{this.setLocalStorage(this.el.checked)}),this.setLocalStorage(this.fromLocalStorage()),be.innerHTML+=`html:not(.${this.key}) .tsd-is-${this.el.name} { display: none; }
5
5
  `,this.app.updateIndexVisibility()}fromLocalStorage(){let e=S.getItem(this.key);return e?e==="true":this.el.checked}setLocalStorage(e){S.setItem(this.key,e.toString()),this.value=e,this.handleValueChange()}handleValueChange(){this.el.checked=this.value,document.documentElement.classList.toggle(this.key,this.value),le[`tsd-is-${this.el.name}`]=this.value,this.app.filterChanged(),this.app.updateIndexVisibility()}};var Le=0;async function Se(t,e){if(!window.searchData)return;let n=await R(window.searchData);t.data=n,t.index=Ie.Index.load(n.index),e.innerHTML=""}function _e(){let t=document.getElementById("tsd-search-trigger"),e=document.getElementById("tsd-search"),n=document.getElementById("tsd-search-input"),r=document.getElementById("tsd-search-results"),i=document.getElementById("tsd-search-script"),s=document.getElementById("tsd-search-status");if(!(t&&e&&n&&r&&i&&s))throw new Error("Search controls missing");let o={base:document.documentElement.dataset.base};o.base.endsWith("/")||(o.base+="/"),i.addEventListener("error",()=>{let a=window.translations.search_index_not_available;Pe(s,a)}),i.addEventListener("load",()=>{Se(o,s)}),Se(o,s),ot({trigger:t,searchEl:e,results:r,field:n,status:s},o)}function ot(t,e){let{field:n,results:r,searchEl:i,status:s,trigger:o}=t;xe(i,{closeOnClick:!0});function a(){Ee(i),n.setSelectionRange(0,n.value.length)}o.addEventListener("click",a),n.addEventListener("input",fe(()=>{at(r,n,s,e)},200)),n.addEventListener("keydown",l=>{if(r.childElementCount===0||l.ctrlKey||l.metaKey||l.altKey)return;let d=n.getAttribute("aria-activedescendant"),f=d?document.getElementById(d):null;if(f){let p=!1,v=!1;switch(l.key){case"Home":case"End":case"ArrowLeft":case"ArrowRight":v=!0;break;case"ArrowDown":case"ArrowUp":p=l.shiftKey;break}(p||v)&&ke(n)}if(!l.shiftKey)switch(l.key){case"Enter":f?.querySelector("a")?.click();break;case"ArrowUp":Te(r,n,f,-1),l.preventDefault();break;case"ArrowDown":Te(r,n,f,1),l.preventDefault();break}});function c(){ke(n)}n.addEventListener("change",c),n.addEventListener("blur",c),n.addEventListener("click",c),document.body.addEventListener("keydown",l=>{if(l.altKey||l.metaKey||l.shiftKey)return;let d=l.ctrlKey&&l.key==="k",f=!l.ctrlKey&&!ut()&&l.key==="/";(d||f)&&(l.preventDefault(),a())})}function at(t,e,n,r){if(!r.index||!r.data)return;t.innerHTML="",n.innerHTML="",Le+=1;let i=e.value.trim(),s;if(i){let a=i.split(" ").map(c=>c.length?`*${c}*`:"").join(" ");s=r.index.search(a).filter(({ref:c})=>{let l=r.data.rows[Number(c)].classes;return!l||!we(l)})}else s=[];if(s.length===0&&i){let a=window.translations.search_no_results_found_for_0.replace("{0}",` "<strong>${te(i)}</strong>" `);Pe(n,a);return}for(let a=0;a<s.length;a++){let c=s[a],l=r.data.rows[Number(c.ref)],d=1;l.name.toLowerCase().startsWith(i.toLowerCase())&&(d*=10/(1+Math.abs(l.name.length-i.length))),c.score*=d}s.sort((a,c)=>c.score-a.score);let o=Math.min(10,s.length);for(let a=0;a<o;a++){let c=r.data.rows[Number(s[a].ref)],d=`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" class="tsd-kind-icon" aria-label="${window.translations[`kind_${c.kind}`].replaceAll('"',"&quot;")}"><use href="#icon-${c.icon||c.kind}"></use></svg>`,f=Ce(c.name,i);globalThis.DEBUG_SEARCH_WEIGHTS&&(f+=` (score: ${s[a].score.toFixed(2)})`),c.parent&&(f=`<span class="parent">
6
6
  ${Ce(c.parent,i)}.</span>${f}`);let p=document.createElement("li");p.id=`tsd-search:${Le}-${a}`,p.role="option",p.ariaSelected="false",p.classList.value=c.classes??"";let v=document.createElement("a");v.tabIndex=-1,v.href=r.base+c.url,v.innerHTML=d+`<span class="text">${f}</span>`,p.append(v),t.appendChild(p)}}function Te(t,e,n,r){let i;if(r===1?i=n?.nextElementSibling||t.firstElementChild:i=n?.previousElementSibling||t.lastElementChild,i!==n){if(!i||i.role!=="option"){console.error("Option missing");return}i.ariaSelected="true",i.scrollIntoView({behavior:"smooth",block:"nearest"}),e.setAttribute("aria-activedescendant",i.id),n?.setAttribute("aria-selected","false")}}function ke(t){let e=t.getAttribute("aria-activedescendant");(e?document.getElementById(e):null)?.setAttribute("aria-selected","false"),t.setAttribute("aria-activedescendant","")}function Ce(t,e){if(e==="")return t;let n=t.toLocaleLowerCase(),r=e.toLocaleLowerCase(),i=[],s=0,o=n.indexOf(r);for(;o!=-1;)i.push(te(t.substring(s,o)),`<mark>${te(t.substring(o,o+r.length))}</mark>`),s=o+r.length,o=n.indexOf(r,s);return i.push(te(t.substring(s))),i.join("")}var lt={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#039;",'"':"&quot;"};function te(t){return t.replace(/[&<>"'"]/g,e=>lt[e])}function Pe(t,e){t.innerHTML=e?`<div>${e}</div>`:""}var ct=["button","checkbox","file","hidden","image","radio","range","reset","submit"];function ut(){let t=document.activeElement;return t?t.isContentEditable||t.tagName==="TEXTAREA"||t.tagName==="SEARCH"?!0:t.tagName==="INPUT"&&!ct.includes(t.type):!1}var D="mousedown",Me="mousemove",$="mouseup",ne={x:0,y:0},Qe=!1,ce=!1,dt=!1,F=!1,Oe=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(Oe?"is-mobile":"not-mobile");Oe&&"ontouchstart"in document.documentElement&&(dt=!0,D="touchstart",Me="touchmove",$="touchend");document.addEventListener(D,t=>{ce=!0,F=!1;let e=D=="touchstart"?t.targetTouches[0]:t;ne.y=e.pageY||0,ne.x=e.pageX||0});document.addEventListener(Me,t=>{if(ce&&!F){let e=D=="touchstart"?t.targetTouches[0]:t,n=ne.x-(e.pageX||0),r=ne.y-(e.pageY||0);F=Math.sqrt(n*n+r*r)>10}});document.addEventListener($,()=>{ce=!1});document.addEventListener("click",t=>{Qe&&(t.preventDefault(),t.stopImmediatePropagation(),Qe=!1)});var re=class extends I{active;className;constructor(e){super(e),this.className=this.el.dataset.toggle||"",this.el.addEventListener($,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(D,n=>this.onDocumentPointerDown(n)),document.addEventListener($,n=>this.onDocumentPointerUp(n))}setActive(e){if(this.active==e)return;this.active=e,document.documentElement.classList.toggle("has-"+this.className,e),this.el.classList.toggle("active",e);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(e){F||(this.setActive(!0),e.preventDefault())}onDocumentPointerDown(e){if(this.active){if(e.target.closest(".col-sidebar, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(e){if(!F&&this.active&&e.target.closest(".col-sidebar")){let n=e.target.closest("a");if(n){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substring(0,r.indexOf("#"))),n.href.substring(0,r.length)==r&&setTimeout(()=>this.setActive(!1),250)}}}};var ue=new Map,de=class{open;accordions=[];key;constructor(e,n){this.key=e,this.open=n}add(e){this.accordions.push(e),e.open=this.open,e.addEventListener("toggle",()=>{this.toggle(e.open)})}toggle(e){for(let n of this.accordions)n.open=e;S.setItem(this.key,e.toString())}},ie=class extends I{constructor(e){super(e);let n=this.el.querySelector("summary"),r=n.querySelector("a");r&&r.addEventListener("click",()=>{location.assign(r.href)});let i=`tsd-accordion-${n.dataset.key??n.textContent.trim().replace(/\s+/g,"-").toLowerCase()}`,s;if(ue.has(i))s=ue.get(i);else{let o=S.getItem(i),a=o?o==="true":this.el.open;s=new de(i,a),ue.set(i,s)}s.add(this.el)}};function He(t){let e=S.getItem("tsd-theme")||"os";t.value=e,Ae(e),t.addEventListener("change",()=>{S.setItem("tsd-theme",t.value),Ae(t.value)})}function Ae(t){document.documentElement.dataset.theme=t}var se;function Ne(){let t=document.getElementById("tsd-nav-script");t&&(t.addEventListener("load",Re),Re())}async function Re(){let t=document.getElementById("tsd-nav-container");if(!t||!window.navigationData)return;let e=await R(window.navigationData);se=document.documentElement.dataset.base,se.endsWith("/")||(se+="/"),t.innerHTML="";for(let n of e)Be(n,t,[]);window.app.createComponents(t),window.app.showPage(),window.app.ensureActivePageVisible()}function Be(t,e,n){let r=e.appendChild(document.createElement("li"));if(t.children){let i=[...n,t.text],s=r.appendChild(document.createElement("details"));s.className=t.class?`${t.class} tsd-accordion`:"tsd-accordion";let o=s.appendChild(document.createElement("summary"));o.className="tsd-accordion-summary",o.dataset.key=i.join("$"),o.innerHTML='<svg width="20" height="20" viewBox="0 0 24 24" fill="none"><use href="#icon-chevronDown"></use></svg>',De(t,o);let a=s.appendChild(document.createElement("div"));a.className="tsd-accordion-details";let c=a.appendChild(document.createElement("ul"));c.className="tsd-nested-navigation";for(let l of t.children)Be(l,c,i)}else De(t,r,t.class)}function De(t,e,n){if(t.path){let r=e.appendChild(document.createElement("a"));if(r.href=se+t.path,n&&(r.className=n),location.pathname===r.pathname&&!r.href.includes("#")&&(r.classList.add("current"),r.ariaCurrent="page"),t.kind){let i=window.translations[`kind_${t.kind}`].replaceAll('"',"&quot;");r.innerHTML=`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" class="tsd-kind-icon" aria-label="${i}"><use href="#icon-${t.icon||t.kind}"></use></svg>`}r.appendChild(Fe(t.text,document.createElement("span")))}else{let r=e.appendChild(document.createElement("span")),i=window.translations.folder.replaceAll('"',"&quot;");r.innerHTML=`<svg width="20" height="20" viewBox="0 0 24 24" fill="none" class="tsd-kind-icon" aria-label="${i}"><use href="#icon-folder"></use></svg>`,r.appendChild(Fe(t.text,document.createElement("span")))}}function Fe(t,e){let n=t.split(/(?<=[^A-Z])(?=[A-Z])|(?<=[A-Z])(?=[A-Z][a-z])|(?<=[_-])(?=[^_-])/);for(let r=0;r<n.length;++r)r!==0&&e.appendChild(document.createElement("wbr")),e.appendChild(document.createTextNode(n[r]));return e}var oe=document.documentElement.dataset.base;oe.endsWith("/")||(oe+="/");function $e(){document.querySelector(".tsd-full-hierarchy")?ht():document.querySelector(".tsd-hierarchy")&&pt()}function ht(){document.addEventListener("click",r=>{let i=r.target;for(;i.parentElement&&i.parentElement.tagName!="LI";)i=i.parentElement;i.dataset.dropdown&&(i.dataset.dropdown=String(i.dataset.dropdown!=="true"))});let t=new Map,e=new Set;for(let r of document.querySelectorAll(".tsd-full-hierarchy [data-refl]")){let i=r.querySelector("ul");t.has(r.dataset.refl)?e.add(r.dataset.refl):i&&t.set(r.dataset.refl,i)}for(let r of e)n(r);function n(r){let i=t.get(r).cloneNode(!0);i.querySelectorAll("[id]").forEach(s=>{s.removeAttribute("id")}),i.querySelectorAll("[data-dropdown]").forEach(s=>{s.dataset.dropdown="false"});for(let s of document.querySelectorAll(`[data-refl="${r}"]`)){let o=gt(),a=s.querySelector("ul");s.insertBefore(o,a),o.dataset.dropdown=String(!!a),a||s.appendChild(i.cloneNode(!0))}}}function pt(){let t=document.getElementById("tsd-hierarchy-script");t&&(t.addEventListener("load",Ve),Ve())}async function Ve(){let t=document.querySelector(".tsd-panel.tsd-hierarchy:has(h4 a)");if(!t||!window.hierarchyData)return;let e=+t.dataset.refl,n=await R(window.hierarchyData),r=t.querySelector("ul"),i=document.createElement("ul");if(i.classList.add("tsd-hierarchy"),ft(i,n,e),r.querySelectorAll("li").length==i.querySelectorAll("li").length)return;let s=document.createElement("span");s.classList.add("tsd-hierarchy-toggle"),s.textContent=window.translations.hierarchy_expand,t.querySelector("h4 a")?.insertAdjacentElement("afterend",s),s.insertAdjacentText("beforebegin",", "),s.addEventListener("click",()=>{s.textContent===window.translations.hierarchy_expand?(r.insertAdjacentElement("afterend",i),r.remove(),s.textContent=window.translations.hierarchy_collapse):(i.insertAdjacentElement("afterend",r),i.remove(),s.textContent=window.translations.hierarchy_expand)})}function ft(t,e,n){let r=e.roots.filter(i=>mt(e,i,n));for(let i of r)t.appendChild(je(e,i,n))}function je(t,e,n,r=new Set){if(r.has(e))return;r.add(e);let i=t.reflections[e],s=document.createElement("li");if(s.classList.add("tsd-hierarchy-item"),e===n){let o=s.appendChild(document.createElement("span"));o.textContent=i.name,o.classList.add("tsd-hierarchy-target")}else{for(let a of i.uniqueNameParents||[]){let c=t.reflections[a],l=s.appendChild(document.createElement("a"));l.textContent=c.name,l.href=oe+c.url,l.className=c.class+" tsd-signature-type",s.append(document.createTextNode("."))}let o=s.appendChild(document.createElement("a"));o.textContent=t.reflections[e].name,o.href=oe+i.url,o.className=i.class+" tsd-signature-type"}if(i.children){let o=s.appendChild(document.createElement("ul"));o.classList.add("tsd-hierarchy");for(let a of i.children){let c=je(t,a,n,r);c&&o.appendChild(c)}}return r.delete(e),s}function mt(t,e,n){if(e===n)return!0;let r=new Set,i=[t.reflections[e]];for(;i.length;){let s=i.pop();if(!r.has(s)){r.add(s);for(let o of s.children||[]){if(o===n)return!0;i.push(t.reflections[o])}}}return!1}function gt(){let t=document.createElementNS("http://www.w3.org/2000/svg","svg");return t.setAttribute("width","20"),t.setAttribute("height","20"),t.setAttribute("viewBox","0 0 24 24"),t.setAttribute("fill","none"),t.innerHTML='<use href="#icon-chevronDown"></use>',t}X(re,"a[data-toggle]");X(ie,".tsd-accordion");X(ee,".tsd-filter-item input[type=checkbox]");var qe=document.getElementById("tsd-theme");qe&&He(qe);var yt=new Z;Object.defineProperty(window,"app",{value:yt});_e();Ne();$e();"virtualKeyboard"in navigator&&(navigator.virtualKeyboard.overlaysContent=!0);})();
7
7
  /*! Bundled license information:
package/docs/index.html CHANGED
@@ -19,6 +19,27 @@
19
19
  <li>Click <strong>Install</strong></li>
20
20
  </ol>
21
21
  <h2 id="configuration" class="tsd-anchor-link">Configuration<a href="#configuration" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
22
+ <h3 id="openapi-pollingrate-advanced-settings-ui" class="tsd-anchor-link">OpenAPI Polling/Rate Advanced Settings (UI)<a href="#openapi-pollingrate-advanced-settings-ui" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
23
+ <p>You can now configure global OpenAPI polling and rate-limiting options directly from the Homebridge UI:</p>
24
+ <ul>
25
+ <li>Go to the SwitchBot plugin settings in Homebridge Config UI X.</li>
26
+ <li>Scroll to the <strong>Advanced Settings</strong> section at the bottom of the page.</li>
27
+ <li>Adjust the following options as needed:
28
+ <ul>
29
+ <li><strong>OpenAPI Polling Interval (seconds):</strong> How often to poll devices via OpenAPI for status. Default: 300 (5 min). Min: 30. Can be overridden per device.</li>
30
+ <li><strong>Enable Batched OpenAPI Polling:</strong> Poll all OpenAPI devices in a single batch at the configured interval. Devices with per-device refreshRate are excluded from the batch.</li>
31
+ <li><strong>OpenAPI Batch Polling Interval (seconds):</strong> Interval for batched OpenAPI polling. Falls back to OpenAPI Polling Interval if not set. Default: 300.</li>
32
+ <li><strong>OpenAPI Daily Request Limit:</strong> Maximum OpenAPI requests per day allowed by the plugin. Default: 10000.</li>
33
+ <li><strong>OpenAPI Reserve for Commands:</strong> Requests reserved for user actions. When remaining budget reaches this value, background polling pauses. Default: 1000.</li>
34
+ <li><strong>Reset OpenAPI Counter at Local Midnight:</strong> If true, resets the daily OpenAPI request counter at local midnight. If false, resets at UTC midnight.</li>
35
+ <li><strong>Only Allow Webhooks on Reserve:</strong> When remaining OpenAPI budget reaches the reserve, only webhooks and user commands are allowed. Background polling/discovery pauses.</li>
36
+ <li><strong>OpenAPI Batch Concurrency:</strong> Maximum number of parallel OpenAPI status calls during a batch. Default: 5.</li>
37
+ <li><strong>OpenAPI Batch Jitter (seconds):</strong> Random startup delay before the first batch to reduce synchronized spikes. Default: 0.</li>
38
+ </ul>
39
+ </li>
40
+ </ul>
41
+ <p>Click <strong>Save Advanced Settings</strong> to apply changes. These settings match the options available in <code>config.schema.json</code> and can be overridden per device.</p>
42
+ <!-- Optionally add a screenshot here -->
22
43
  <ul>
23
44
  <li>
24
45
  <h3 id="if-using-openapi-connection" class="tsd-anchor-link">If using OpenAPI Connection<a href="#if-using-openapi-connection" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
@@ -281,6 +302,15 @@ Without this step, then you will receive the following error when the swichbot p
281
302
  </li>
282
303
  </ul>
283
304
  </li>
305
+ <li><a href="https://us.switch-bot.com/products/switchbot-hub-mini-2">SwitchBot Hub Mini 2</a>
306
+ <ul>
307
+ <li>Supports OpenAPI &amp; Bluetooth Low Energy (BLE) Connections
308
+ <ul>
309
+ <li>Enables Humidity, Temperature, and Light Sensor</li>
310
+ </ul>
311
+ </li>
312
+ </ul>
313
+ </li>
284
314
  <li><a href="https://us.switch-bot.com/products/switchbot-hub-3">SwitchBot Hub 3</a>
285
315
  <ul>
286
316
  <li>Supports OpenAPI &amp; Bluetooth Low Energy (BLE) Connections
@@ -301,8 +331,34 @@ Without this step, then you will receive the following error when the swichbot p
301
331
  </ul>
302
332
  </li>
303
333
  </ul>
334
+ <h2 id="ble-encryption-support" class="tsd-anchor-link">BLE Encryption Support<a href="#ble-encryption-support" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
335
+ <h3 id="ble-encryption-key-and-key-id" class="tsd-anchor-link">BLE Encryption Key and Key ID<a href="#ble-encryption-key-and-key-id" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
336
+ <p>Some SwitchBot devices (notably newer locks, curtains, and select sensors) require a BLE encryption key and keyId for secure Bluetooth communication. This plugin supports configuring these fields for each device.</p>
337
+ <h4 id="how-to-obtain-ble-encryption-key-and-key-id" class="tsd-anchor-link">How to Obtain BLE Encryption Key and Key ID<a href="#how-to-obtain-ble-encryption-key-and-key-id" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4>
338
+ <ol>
339
+ <li><strong>Open the SwitchBot App</strong> and select your device.</li>
340
+ <li>Go to <strong>Device Settings</strong> (gear icon).</li>
341
+ <li>Tap <strong>Device Info</strong>.</li>
342
+ <li>If your device supports BLE encryption, you will see fields for <strong>Encryption Key</strong> and <strong>Key ID</strong>. (If not visible, your device may not require encryption or may need a firmware update.)</li>
343
+ <li>Copy the <strong>Encryption Key</strong> and <strong>Key ID</strong> values.</li>
344
+ </ol>
345
+ <h4 id="how-to-configure-in-homebridge" class="tsd-anchor-link">How to Configure in Homebridge<a href="#how-to-configure-in-homebridge" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4>
346
+ <p>In the Homebridge UI, when adding or editing a SwitchBot device, enter the <strong>Encryption Key</strong> and <strong>Key ID</strong> in the provided fields. These values will be securely used for BLE communication with your device.</p>
347
+ <p><strong>Example device config excerpt:</strong></p>
348
+ <pre><code class="json"><span class="hl-1">{</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;deviceId&quot;</span><span class="hl-1">: </span><span class="hl-7">&quot;E7F8A1B2C3D4&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;deviceName&quot;</span><span class="hl-1">: </span><span class="hl-7">&quot;SwitchBot Lock&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;enableBLE&quot;</span><span class="hl-1">: </span><span class="hl-8">true</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;encryptionKey&quot;</span><span class="hl-1">: </span><span class="hl-7">&quot;0123456789abcdef0123456789abcdef&quot;</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;keyId&quot;</span><span class="hl-1">: </span><span class="hl-7">&quot;01&quot;</span><br/><span class="hl-1">}</span>
349
+ </code><button type="button">Copy</button></pre>
350
+
351
+ <h4 id="which-devices-require-ble-encryption" class="tsd-anchor-link">Which Devices Require BLE Encryption?<a href="#which-devices-require-ble-encryption" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h4>
352
+ <ul>
353
+ <li>SwitchBot Lock (and Lock Pro)</li>
354
+ <li>SwitchBot Curtain 3 (and some Curtain 2 with updated firmware)</li>
355
+ <li>Some sensors and new device models (see device info in app)</li>
356
+ </ul>
357
+ <p>If you are unsure, check your device's info in the SwitchBot app. If the fields are present, copy them into the plugin config.</p>
358
+ <p><strong>Note:</strong> If you enter an incorrect key or keyId, BLE communication will fail for that device. Double-check values if you encounter connection issues.</p>
359
+ <hr>
304
360
  <h2 id="supported-ir-devices" class="tsd-anchor-link">Supported IR Devices<a href="#supported-ir-devices" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
305
- <h3 id="all-ir-devices-require-switchbot-hub-2-switchbot-hub-3-or-hub-mini" class="tsd-anchor-link"><em>(All IR Devices require <a href="https://us.switch-bot.com/products/switchbot-hub-2">SwitchBot Hub 2</a>, <a href="https://us.switch-bot.com/products/switchbot-hub-3">SwitchBot Hub 3</a>, or <a href="https://www.switch-bot.com/products/switchbot-hub-mini">Hub Mini</a>)</em><a href="#all-ir-devices-require-switchbot-hub-2-switchbot-hub-3-or-hub-mini" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
361
+ <h3 id="all-ir-devices-require-switchbot-hub-2-switchbot-hub-mini-2-switchbot-hub-3-or-hub-mini" class="tsd-anchor-link"><em>(All IR Devices require <a href="https://us.switch-bot.com/products/switchbot-hub-2">SwitchBot Hub 2</a>, <a href="https://us.switch-bot.com/products/switchbot-hub-mini-2">SwitchBot Hub Mini 2</a>, <a href="https://us.switch-bot.com/products/switchbot-hub-3">SwitchBot Hub 3</a>, or <a href="https://www.switch-bot.com/products/switchbot-hub-mini">Hub Mini</a>)</em><a href="#all-ir-devices-require-switchbot-hub-2-switchbot-hub-mini-2-switchbot-hub-3-or-hub-mini" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h3>
306
362
  <ul>
307
363
  <li>TV
308
364
  <ul>
@@ -404,13 +460,16 @@ Without this step, then you will receive the following error when the swichbot p
404
460
  <li>The batch worklist is randomized every cycle to further distribute API load.</li>
405
461
  </ul>
406
462
  <p>These controls keep API usage smooth and predictable while preserving per-device control when needed.</p>
407
- <h2 id="whats-new-in-the-v4-beta-summary" class="tsd-anchor-link">What's new in the v4 beta (summary)<a href="#whats-new-in-the-v4-beta-summary" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
463
+ <h2 id="whats-new-with-node-switchbot-v400" class="tsd-anchor-link">What's new with node-switchbot v4.0.0<a href="#whats-new-with-node-switchbot-v400" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
408
464
  <ul>
409
465
  <li>
410
466
  <p>Matter-first: when Homebridge Matter is available the plugin now prefers registering Matter accessories (with HAP fallback).</p>
411
467
  </li>
412
468
  <li>
413
- <p>Hybrid client: the plugin dynamically imports <code>node-switchbot@4</code> if available and falls back to OpenAPI when <code>openApiToken</code> is configured.</p>
469
+ <p>Hybrid client: the plugin uses <code>node-switchbot@^4.0.0</code> with BLE + OpenAPI discovery and OpenAPI fallback.</p>
470
+ </li>
471
+ <li>
472
+ <p>OpenAPI credentials: cloud discovery and cloud fallback paths require both <code>openApiToken</code> and <code>openApiSecret</code>.</p>
414
473
  </li>
415
474
  <li>
416
475
  <p>UI always served: the plugin UI is packaged into <code>dist/homebridge-ui</code> and is always served when Homebridge UI support is present; there is no platform-level opt-out.</p>
@@ -419,6 +478,9 @@ Without this step, then you will receive the following error when the swichbot p
419
478
  <p>OpenAPI hardening: OpenAPI calls have AbortController timeouts, jittered exponential backoff, per-device retry limits and cooldowns, and safe response parsing for resilient behavior.</p>
420
479
  </li>
421
480
  <li>
481
+ <p>v4 resilience enabled in discovery: plugin discovery enables retry, circuit-breaker, and connection-intelligence flags from <code>node-switchbot</code> v4.</p>
482
+ </li>
483
+ <li>
422
484
  <p>Write coalescing (debounce): command writes to the same device are coalesced by default to avoid command floods. Configure with <code>writeDebounceMs</code> (milliseconds, default 100). Set to <code>0</code> to disable coalescing.</p>
423
485
  </li>
424
486
  </ul>
@@ -432,7 +494,7 @@ Without this step, then you will receive the following error when the swichbot p
432
494
  <li><code>dailyApiResetLocalMidnight</code> (boolean, default false): if true, resets the daily counter at local midnight; when false, resets at UTC midnight.</li>
433
495
  </ul>
434
496
  <p>Example (excerpt):</p>
435
- <pre><code class="json"><span class="hl-1">{</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;options&quot;</span><span class="hl-1">: {</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;dailyApiLimit&quot;</span><span class="hl-1">: </span><span class="hl-5">10000</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;dailyApiReserveForCommands&quot;</span><span class="hl-1">: </span><span class="hl-5">1000</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;webhookOnlyOnReserve&quot;</span><span class="hl-1">: </span><span class="hl-7">false</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;dailyApiResetLocalMidnight&quot;</span><span class="hl-1">: </span><span class="hl-7">true</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">}</span>
497
+ <pre><code class="json"><span class="hl-1">{</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;options&quot;</span><span class="hl-1">: {</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;dailyApiLimit&quot;</span><span class="hl-1">: </span><span class="hl-5">10000</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;dailyApiReserveForCommands&quot;</span><span class="hl-1">: </span><span class="hl-5">1000</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;webhookOnlyOnReserve&quot;</span><span class="hl-1">: </span><span class="hl-8">false</span><span class="hl-1">,</span><br/><span class="hl-1"> </span><span class="hl-6">&quot;dailyApiResetLocalMidnight&quot;</span><span class="hl-1">: </span><span class="hl-8">true</span><br/><span class="hl-1"> }</span><br/><span class="hl-1">}</span>
436
498
  </code><button type="button">Copy</button></pre>
437
499
 
438
500
  <h2 id="switchbot-apis" class="tsd-anchor-link">SwitchBot APIs<a href="#switchbot-apis" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
@@ -444,10 +506,25 @@ Without this step, then you will receive the following error when the swichbot p
444
506
  </ul>
445
507
  </li>
446
508
  </ul>
509
+ <h2 id="development-tests" class="tsd-anchor-link">Development / Tests<a href="#development-tests" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
510
+ <ul>
511
+ <li>
512
+ <p>Run unit tests:</p>
513
+ <pre><code class="bash"><span class="hl-9">npm</span><span class="hl-1"> </span><span class="hl-7">run</span><span class="hl-1"> </span><span class="hl-7">test</span>
514
+ </code><button type="button">Copy</button></pre>
515
+
516
+ </li>
517
+ <li>
518
+ <p>Notes:</p>
519
+ <ul>
520
+ <li>Added Lock Ultra (Cloud + BLE) support with <code>node-switchbot</code> v4.</li>
521
+ </ul>
522
+ </li>
523
+ </ul>
447
524
  <h2 id="community" class="tsd-anchor-link">Community<a href="#community" aria-label="Permalink" class="tsd-anchor-icon"><svg viewBox="0 0 24 24" aria-hidden="true"><use href="assets/icons.svg#icon-anchor"></use></svg></a></h2>
448
525
  <ul>
449
526
  <li><a href="https://www.switch-bot.com/">SwitchBot (Official website)</a></li>
450
527
  <li><a href="https://www.facebook.com/SwitchBotRobot/">Facebook @SwitchBotRobot</a></li>
451
528
  <li><a href="https://twitter.com/switchbot">Twitter @SwitchBot</a></li>
452
529
  </ul>
453
- </div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#switchbothomebridge-switchbot"><span>@switchbot/homebridge-<wbr/>switchbot</span></a><ul><li><a href="#installation"><span>Installation</span></a></li><li><a href="#configuration"><span>Configuration</span></a></li><li><ul><li><a href="#if-using-openapi-connection"><span>If using <wbr/>Open<wbr/>API <wbr/>Connection</span></a></li><li><a href="#if-using-ble-connection"><span>If using <wbr/>BLE <wbr/>Connection</span></a></li></ul></li><li><a href="#troubleshooting"><span>Troubleshooting</span></a></li><li><ul><li><a href="#if-using-linux-raspberry-pi-os"><span>If using <wbr/>Linux / <wbr/>Raspberry <wbr/>Pi <wbr/>OS</span></a></li><li><a href="#if-using-macos"><span>If using <wbr/>Mac<wbr/>OS</span></a></li></ul></li><li><a href="#supported-switchbot-devices"><span>Supported <wbr/>Switch<wbr/>Bot <wbr/>Devices</span></a></li><li><a href="#supported-ir-devices"><span>Supported <wbr/>IR <wbr/>Devices</span></a></li><li><ul><li><a href="#all-ir-devices-require-switchbot-hub-2-switchbot-hub-3-or-hub-mini"><span>(<wbr/>All <wbr/>IR <wbr/>Devices require <wbr/>Switch<wbr/>Bot <wbr/>Hub 2, <wbr/>Switch<wbr/>Bot <wbr/>Hub 3, or <wbr/>Hub <wbr/>Mini)</span></a></li></ul></li><li><a href="#matter-platform"><span>Matter <wbr/>Platform</span></a></li><li><ul><li><a href="#batched-refresh-and-api-load-control"><span>Batched refresh and <wbr/>API load control</span></a></li></ul></li><li><a href="#whats-new-in-the-v4-beta-summary"><span>What&#39;s new in the v4 beta (summary)</span></a></li><li><a href="#openapi-rate-limiting-and-daily-budget"><span>Open<wbr/>API rate limiting and daily budget</span></a></li><li><a href="#switchbot-apis"><span>Switch<wbr/>Bot <wbr/>AP<wbr/>Is</span></a></li><li><a href="#community"><span>Community</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">@switchbot/homebridge-switchbot</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>
530
+ </div></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div><details open class="tsd-accordion tsd-page-navigation"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>On This Page</h3></summary><div class="tsd-accordion-details"><a href="#switchbothomebridge-switchbot"><span>@switchbot/homebridge-<wbr/>switchbot</span></a><ul><li><a href="#installation"><span>Installation</span></a></li><li><a href="#configuration"><span>Configuration</span></a></li><li><ul><li><a href="#openapi-pollingrate-advanced-settings-ui"><span>Open<wbr/>API <wbr/>Polling/<wbr/>Rate <wbr/>Advanced <wbr/>Settings (<wbr/>UI)</span></a></li><li><a href="#if-using-openapi-connection"><span>If using <wbr/>Open<wbr/>API <wbr/>Connection</span></a></li><li><a href="#if-using-ble-connection"><span>If using <wbr/>BLE <wbr/>Connection</span></a></li></ul></li><li><a href="#troubleshooting"><span>Troubleshooting</span></a></li><li><ul><li><a href="#if-using-linux-raspberry-pi-os"><span>If using <wbr/>Linux / <wbr/>Raspberry <wbr/>Pi <wbr/>OS</span></a></li><li><a href="#if-using-macos"><span>If using <wbr/>Mac<wbr/>OS</span></a></li></ul></li><li><a href="#supported-switchbot-devices"><span>Supported <wbr/>Switch<wbr/>Bot <wbr/>Devices</span></a></li><li><a href="#ble-encryption-support"><span>BLE <wbr/>Encryption <wbr/>Support</span></a></li><li><ul><li><a href="#ble-encryption-key-and-key-id"><span>BLE <wbr/>Encryption <wbr/>Key and <wbr/>Key <wbr/>ID</span></a></li><li><ul><li><a href="#how-to-obtain-ble-encryption-key-and-key-id"><span>How to <wbr/>Obtain <wbr/>BLE <wbr/>Encryption <wbr/>Key and <wbr/>Key <wbr/>ID</span></a></li><li><a href="#how-to-configure-in-homebridge"><span>How to <wbr/>Configure in <wbr/>Homebridge</span></a></li><li><a href="#which-devices-require-ble-encryption"><span>Which <wbr/>Devices <wbr/>Require <wbr/>BLE <wbr/>Encryption?</span></a></li></ul></li></ul></li><li><a href="#supported-ir-devices"><span>Supported <wbr/>IR <wbr/>Devices</span></a></li><li><ul><li><a href="#all-ir-devices-require-switchbot-hub-2-switchbot-hub-mini-2-switchbot-hub-3-or-hub-mini"><span>(<wbr/>All <wbr/>IR <wbr/>Devices require <wbr/>Switch<wbr/>Bot <wbr/>Hub 2, <wbr/>Switch<wbr/>Bot <wbr/>Hub <wbr/>Mini 2, <wbr/>Switch<wbr/>Bot <wbr/>Hub 3, or <wbr/>Hub <wbr/>Mini)</span></a></li></ul></li><li><a href="#matter-platform"><span>Matter <wbr/>Platform</span></a></li><li><ul><li><a href="#batched-refresh-and-api-load-control"><span>Batched refresh and <wbr/>API load control</span></a></li></ul></li><li><a href="#whats-new-with-node-switchbot-v400"><span>What&#39;s new with node-<wbr/>switchbot v4.0.0</span></a></li><li><a href="#openapi-rate-limiting-and-daily-budget"><span>Open<wbr/>API rate limiting and daily budget</span></a></li><li><a href="#switchbot-apis"><span>Switch<wbr/>Bot <wbr/>AP<wbr/>Is</span></a></li><li><a href="#development-tests"><span>Development / <wbr/>Tests</span></a></li><li><a href="#community"><span>Community</span></a></li></ul></div></details></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">@switchbot/homebridge-switchbot</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer></footer><div class="overlay"></div></body></html>