unified-ble-manager 4.0.1 → 4.0.3

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 (286) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/MIGRATION_4.0.md +1 -1
  3. package/README.md +2 -1
  4. package/RELEASE.md +22 -6
  5. package/SBOM.cdx.json +4 -4
  6. package/THIRD_PARTY_LICENSES.json +1 -1
  7. package/docs/ELECTRON.md +1 -1
  8. package/docs/EXPO_PLUGIN.md +2 -2
  9. package/docs/GAPS.4.0.md +1 -1
  10. package/docs/GETTING_STARTED.md +4 -4
  11. package/docs/NODE.md +1 -1
  12. package/docs/PLATFORMS.md +1 -1
  13. package/docs/WEB.md +1 -1
  14. package/docs/generated/PLATFORM_SUPPORT.md +1 -1
  15. package/lib/commonjs/advanced.js +26 -8
  16. package/lib/commonjs/advanced.js.map +1 -1
  17. package/lib/commonjs/backend-contract/index.js +6 -0
  18. package/lib/commonjs/backend-contract/index.js.map +1 -1
  19. package/lib/commonjs/backend-contract/primitives.js +6 -0
  20. package/lib/commonjs/backend-contract/primitives.js.map +1 -1
  21. package/lib/commonjs/backend-contract/serializable.js +27 -2
  22. package/lib/commonjs/backend-contract/serializable.js.map +1 -1
  23. package/lib/commonjs/backends/bluez/bluez-backend-runtime.js +31 -9
  24. package/lib/commonjs/backends/bluez/bluez-backend-runtime.js.map +1 -1
  25. package/lib/commonjs/backends/bluez/bluez-backend.js +10 -0
  26. package/lib/commonjs/backends/bluez/bluez-backend.js.map +1 -1
  27. package/lib/commonjs/backends/bluez/bluez-security.js +20 -0
  28. package/lib/commonjs/backends/bluez/bluez-security.js.map +1 -1
  29. package/lib/commonjs/backends/corebluetooth/corebluetooth-backend.js +66 -22
  30. package/lib/commonjs/backends/corebluetooth/corebluetooth-backend.js.map +1 -1
  31. package/lib/commonjs/backends/corebluetooth/corebluetooth-gatt-operations.js +16 -4
  32. package/lib/commonjs/backends/corebluetooth/corebluetooth-gatt-operations.js.map +1 -1
  33. package/lib/commonjs/backends/reactnative/react-native-android-security.js +27 -3
  34. package/lib/commonjs/backends/reactnative/react-native-android-security.js.map +1 -1
  35. package/lib/commonjs/backends/winrt/winrt-backend.js +32 -36
  36. package/lib/commonjs/backends/winrt/winrt-backend.js.map +1 -1
  37. package/lib/commonjs/backends/winrt/winrt-security.js +30 -8
  38. package/lib/commonjs/backends/winrt/winrt-security.js.map +1 -1
  39. package/lib/commonjs/core/bounded-stream.js +4 -2
  40. package/lib/commonjs/core/bounded-stream.js.map +1 -1
  41. package/lib/commonjs/core/owned-bounded-stream.js +44 -0
  42. package/lib/commonjs/core/owned-bounded-stream.js.map +1 -0
  43. package/lib/commonjs/core/unified-ble-core.js +27 -6
  44. package/lib/commonjs/core/unified-ble-core.js.map +1 -1
  45. package/lib/commonjs/implementation-version.js +1 -1
  46. package/lib/commonjs/ipc/manager.js +549 -112
  47. package/lib/commonjs/ipc/manager.js.map +1 -1
  48. package/lib/commonjs/ipc/public-manager.js +7 -9
  49. package/lib/commonjs/ipc/public-manager.js.map +1 -1
  50. package/lib/commonjs/public/ble-manager.js +266 -90
  51. package/lib/commonjs/public/ble-manager.js.map +1 -1
  52. package/lib/commonjs/public/error-bridge.js +19 -0
  53. package/lib/commonjs/public/error-bridge.js.map +1 -1
  54. package/lib/commonjs/public/react-adapter-watch-inspect.js +20 -0
  55. package/lib/commonjs/public/react-adapter-watch-inspect.js.map +1 -0
  56. package/lib/commonjs/public/scan-state-budget.js +16 -0
  57. package/lib/commonjs/public/scan-state-budget.js.map +1 -0
  58. package/lib/commonjs/react.js +468 -123
  59. package/lib/commonjs/react.js.map +1 -1
  60. package/lib/commonjs/tauri/transport.js +7 -4
  61. package/lib/commonjs/tauri/transport.js.map +1 -1
  62. package/lib/commonjs/testing/deterministic/deterministic-backend-base.js +29 -10
  63. package/lib/commonjs/testing/deterministic/deterministic-backend-base.js.map +1 -1
  64. package/lib/commonjs/testing/deterministic/deterministic-security.js +39 -14
  65. package/lib/commonjs/testing/deterministic/deterministic-security.js.map +1 -1
  66. package/lib/commonjs/testing/deterministic/deterministic-test-backend-lifecycle-helpers.js +1 -1
  67. package/lib/commonjs/testing/deterministic/deterministic-test-backend-lifecycle-helpers.js.map +1 -1
  68. package/lib/commonjs/testing/deterministic/deterministic-test-backend.js +2 -4
  69. package/lib/commonjs/testing/deterministic/deterministic-test-backend.js.map +1 -1
  70. package/lib/commonjs/web/web-bluetooth-backend.js +63 -54
  71. package/lib/commonjs/web/web-bluetooth-backend.js.map +1 -1
  72. package/lib/commonjs/web/web-bluetooth-handles.js.map +1 -1
  73. package/lib/module/advanced.js +5 -0
  74. package/lib/module/advanced.js.map +1 -1
  75. package/lib/module/backend-contract/index.js +1 -1
  76. package/lib/module/backend-contract/index.js.map +1 -1
  77. package/lib/module/backend-contract/primitives.js +5 -0
  78. package/lib/module/backend-contract/primitives.js.map +1 -1
  79. package/lib/module/backend-contract/serializable.js +23 -2
  80. package/lib/module/backend-contract/serializable.js.map +1 -1
  81. package/lib/module/backends/bluez/bluez-backend-runtime.js +30 -9
  82. package/lib/module/backends/bluez/bluez-backend-runtime.js.map +1 -1
  83. package/lib/module/backends/bluez/bluez-backend.js +10 -1
  84. package/lib/module/backends/bluez/bluez-backend.js.map +1 -1
  85. package/lib/module/backends/bluez/bluez-security.js +19 -0
  86. package/lib/module/backends/bluez/bluez-security.js.map +1 -1
  87. package/lib/module/backends/corebluetooth/corebluetooth-backend.js +65 -22
  88. package/lib/module/backends/corebluetooth/corebluetooth-backend.js.map +1 -1
  89. package/lib/module/backends/corebluetooth/corebluetooth-gatt-operations.js +16 -4
  90. package/lib/module/backends/corebluetooth/corebluetooth-gatt-operations.js.map +1 -1
  91. package/lib/module/backends/reactnative/react-native-android-security.js +26 -3
  92. package/lib/module/backends/reactnative/react-native-android-security.js.map +1 -1
  93. package/lib/module/backends/winrt/winrt-backend.js +31 -36
  94. package/lib/module/backends/winrt/winrt-backend.js.map +1 -1
  95. package/lib/module/backends/winrt/winrt-security.js +29 -8
  96. package/lib/module/backends/winrt/winrt-security.js.map +1 -1
  97. package/lib/module/core/bounded-stream.js +4 -2
  98. package/lib/module/core/bounded-stream.js.map +1 -1
  99. package/lib/module/core/owned-bounded-stream.js +40 -0
  100. package/lib/module/core/owned-bounded-stream.js.map +1 -0
  101. package/lib/module/core/unified-ble-core.js +27 -6
  102. package/lib/module/core/unified-ble-core.js.map +1 -1
  103. package/lib/module/implementation-version.js +1 -1
  104. package/lib/module/ipc/manager.js +547 -112
  105. package/lib/module/ipc/manager.js.map +1 -1
  106. package/lib/module/ipc/public-manager.js +8 -10
  107. package/lib/module/ipc/public-manager.js.map +1 -1
  108. package/lib/module/public/ble-manager.js +263 -90
  109. package/lib/module/public/ble-manager.js.map +1 -1
  110. package/lib/module/public/error-bridge.js +18 -0
  111. package/lib/module/public/error-bridge.js.map +1 -1
  112. package/lib/module/public/react-adapter-watch-inspect.js +15 -0
  113. package/lib/module/public/react-adapter-watch-inspect.js.map +1 -0
  114. package/lib/module/public/scan-state-budget.js +11 -0
  115. package/lib/module/public/scan-state-budget.js.map +1 -0
  116. package/lib/module/react.js +468 -123
  117. package/lib/module/react.js.map +1 -1
  118. package/lib/module/tauri/transport.js +7 -4
  119. package/lib/module/tauri/transport.js.map +1 -1
  120. package/lib/module/testing/deterministic/deterministic-backend-base.js +28 -10
  121. package/lib/module/testing/deterministic/deterministic-backend-base.js.map +1 -1
  122. package/lib/module/testing/deterministic/deterministic-security.js +38 -14
  123. package/lib/module/testing/deterministic/deterministic-security.js.map +1 -1
  124. package/lib/module/testing/deterministic/deterministic-test-backend-lifecycle-helpers.js +1 -1
  125. package/lib/module/testing/deterministic/deterministic-test-backend-lifecycle-helpers.js.map +1 -1
  126. package/lib/module/testing/deterministic/deterministic-test-backend.js +2 -4
  127. package/lib/module/testing/deterministic/deterministic-test-backend.js.map +1 -1
  128. package/lib/module/web/web-bluetooth-backend.js +63 -54
  129. package/lib/module/web/web-bluetooth-backend.js.map +1 -1
  130. package/lib/module/web/web-bluetooth-handles.js.map +1 -1
  131. package/lib/typescript/commonjs/src/advanced.d.ts +5 -0
  132. package/lib/typescript/commonjs/src/advanced.d.ts.map +1 -1
  133. package/lib/typescript/commonjs/src/backend-contract/index.d.ts +1 -1
  134. package/lib/typescript/commonjs/src/backend-contract/index.d.ts.map +1 -1
  135. package/lib/typescript/commonjs/src/backend-contract/primitives.d.ts +2 -0
  136. package/lib/typescript/commonjs/src/backend-contract/primitives.d.ts.map +1 -1
  137. package/lib/typescript/commonjs/src/backend-contract/serializable.d.ts +4 -0
  138. package/lib/typescript/commonjs/src/backend-contract/serializable.d.ts.map +1 -1
  139. package/lib/typescript/commonjs/src/backends/bluez/bluez-backend-provider.d.ts +1 -1
  140. package/lib/typescript/commonjs/src/backends/bluez/bluez-backend-runtime.d.ts +5 -0
  141. package/lib/typescript/commonjs/src/backends/bluez/bluez-backend-runtime.d.ts.map +1 -1
  142. package/lib/typescript/commonjs/src/backends/bluez/bluez-backend.d.ts +2 -0
  143. package/lib/typescript/commonjs/src/backends/bluez/bluez-backend.d.ts.map +1 -1
  144. package/lib/typescript/commonjs/src/backends/bluez/bluez-security.d.ts +5 -0
  145. package/lib/typescript/commonjs/src/backends/bluez/bluez-security.d.ts.map +1 -1
  146. package/lib/typescript/commonjs/src/backends/corebluetooth/corebluetooth-backend.d.ts +6 -0
  147. package/lib/typescript/commonjs/src/backends/corebluetooth/corebluetooth-backend.d.ts.map +1 -1
  148. package/lib/typescript/commonjs/src/backends/corebluetooth/corebluetooth-gatt-operations.d.ts.map +1 -1
  149. package/lib/typescript/commonjs/src/backends/corebluetooth/corebluetooth-identity.d.ts +1 -1
  150. package/lib/typescript/commonjs/src/backends/reactnative/react-native-android-provider.d.ts +1 -1
  151. package/lib/typescript/commonjs/src/backends/reactnative/react-native-android-security.d.ts +5 -0
  152. package/lib/typescript/commonjs/src/backends/reactnative/react-native-android-security.d.ts.map +1 -1
  153. package/lib/typescript/commonjs/src/backends/reactnative/react-native-apple-provider.d.ts +1 -1
  154. package/lib/typescript/commonjs/src/backends/winrt/winrt-backend.d.ts +5 -0
  155. package/lib/typescript/commonjs/src/backends/winrt/winrt-backend.d.ts.map +1 -1
  156. package/lib/typescript/commonjs/src/backends/winrt/winrt-provider.d.ts +1 -1
  157. package/lib/typescript/commonjs/src/backends/winrt/winrt-security.d.ts +5 -0
  158. package/lib/typescript/commonjs/src/backends/winrt/winrt-security.d.ts.map +1 -1
  159. package/lib/typescript/commonjs/src/core/bounded-stream.d.ts +1 -0
  160. package/lib/typescript/commonjs/src/core/bounded-stream.d.ts.map +1 -1
  161. package/lib/typescript/commonjs/src/core/owned-bounded-stream.d.ts +18 -0
  162. package/lib/typescript/commonjs/src/core/owned-bounded-stream.d.ts.map +1 -0
  163. package/lib/typescript/commonjs/src/core/unified-ble-core.d.ts.map +1 -1
  164. package/lib/typescript/commonjs/src/implementation-version.d.ts +1 -1
  165. package/lib/typescript/commonjs/src/ipc/manager.d.ts +53 -4
  166. package/lib/typescript/commonjs/src/ipc/manager.d.ts.map +1 -1
  167. package/lib/typescript/commonjs/src/ipc/public-manager.d.ts.map +1 -1
  168. package/lib/typescript/commonjs/src/public/ble-manager.d.ts +18 -4
  169. package/lib/typescript/commonjs/src/public/ble-manager.d.ts.map +1 -1
  170. package/lib/typescript/commonjs/src/public/error-bridge.d.ts +6 -1
  171. package/lib/typescript/commonjs/src/public/error-bridge.d.ts.map +1 -1
  172. package/lib/typescript/commonjs/src/public/react-adapter-watch-inspect.d.ts +9 -0
  173. package/lib/typescript/commonjs/src/public/react-adapter-watch-inspect.d.ts.map +1 -0
  174. package/lib/typescript/commonjs/src/public/scan-state-budget.d.ts +15 -0
  175. package/lib/typescript/commonjs/src/public/scan-state-budget.d.ts.map +1 -0
  176. package/lib/typescript/commonjs/src/react.d.ts +1 -1
  177. package/lib/typescript/commonjs/src/react.d.ts.map +1 -1
  178. package/lib/typescript/commonjs/src/tauri/transport.d.ts.map +1 -1
  179. package/lib/typescript/commonjs/src/testing/deterministic/deterministic-backend-base.d.ts +8 -2
  180. package/lib/typescript/commonjs/src/testing/deterministic/deterministic-backend-base.d.ts.map +1 -1
  181. package/lib/typescript/commonjs/src/testing/deterministic/deterministic-security.d.ts +8 -2
  182. package/lib/typescript/commonjs/src/testing/deterministic/deterministic-security.d.ts.map +1 -1
  183. package/lib/typescript/commonjs/src/testing/deterministic/deterministic-test-backend-lifecycle-helpers.d.ts +6 -2
  184. package/lib/typescript/commonjs/src/testing/deterministic/deterministic-test-backend-lifecycle-helpers.d.ts.map +1 -1
  185. package/lib/typescript/commonjs/src/testing/deterministic/deterministic-test-backend.d.ts.map +1 -1
  186. package/lib/typescript/commonjs/src/web/web-bluetooth-backend.d.ts +4 -3
  187. package/lib/typescript/commonjs/src/web/web-bluetooth-backend.d.ts.map +1 -1
  188. package/lib/typescript/commonjs/src/web/web-bluetooth-handles.d.ts +3 -0
  189. package/lib/typescript/commonjs/src/web/web-bluetooth-handles.d.ts.map +1 -1
  190. package/lib/typescript/module/src/advanced.d.ts +5 -0
  191. package/lib/typescript/module/src/advanced.d.ts.map +1 -1
  192. package/lib/typescript/module/src/backend-contract/index.d.ts +1 -1
  193. package/lib/typescript/module/src/backend-contract/index.d.ts.map +1 -1
  194. package/lib/typescript/module/src/backend-contract/primitives.d.ts +2 -0
  195. package/lib/typescript/module/src/backend-contract/primitives.d.ts.map +1 -1
  196. package/lib/typescript/module/src/backend-contract/serializable.d.ts +4 -0
  197. package/lib/typescript/module/src/backend-contract/serializable.d.ts.map +1 -1
  198. package/lib/typescript/module/src/backends/bluez/bluez-backend-provider.d.ts +1 -1
  199. package/lib/typescript/module/src/backends/bluez/bluez-backend-runtime.d.ts +5 -0
  200. package/lib/typescript/module/src/backends/bluez/bluez-backend-runtime.d.ts.map +1 -1
  201. package/lib/typescript/module/src/backends/bluez/bluez-backend.d.ts +2 -0
  202. package/lib/typescript/module/src/backends/bluez/bluez-backend.d.ts.map +1 -1
  203. package/lib/typescript/module/src/backends/bluez/bluez-security.d.ts +5 -0
  204. package/lib/typescript/module/src/backends/bluez/bluez-security.d.ts.map +1 -1
  205. package/lib/typescript/module/src/backends/corebluetooth/corebluetooth-backend.d.ts +6 -0
  206. package/lib/typescript/module/src/backends/corebluetooth/corebluetooth-backend.d.ts.map +1 -1
  207. package/lib/typescript/module/src/backends/corebluetooth/corebluetooth-gatt-operations.d.ts.map +1 -1
  208. package/lib/typescript/module/src/backends/corebluetooth/corebluetooth-identity.d.ts +1 -1
  209. package/lib/typescript/module/src/backends/reactnative/react-native-android-provider.d.ts +1 -1
  210. package/lib/typescript/module/src/backends/reactnative/react-native-android-security.d.ts +5 -0
  211. package/lib/typescript/module/src/backends/reactnative/react-native-android-security.d.ts.map +1 -1
  212. package/lib/typescript/module/src/backends/reactnative/react-native-apple-provider.d.ts +1 -1
  213. package/lib/typescript/module/src/backends/winrt/winrt-backend.d.ts +5 -0
  214. package/lib/typescript/module/src/backends/winrt/winrt-backend.d.ts.map +1 -1
  215. package/lib/typescript/module/src/backends/winrt/winrt-provider.d.ts +1 -1
  216. package/lib/typescript/module/src/backends/winrt/winrt-security.d.ts +5 -0
  217. package/lib/typescript/module/src/backends/winrt/winrt-security.d.ts.map +1 -1
  218. package/lib/typescript/module/src/core/bounded-stream.d.ts +1 -0
  219. package/lib/typescript/module/src/core/bounded-stream.d.ts.map +1 -1
  220. package/lib/typescript/module/src/core/owned-bounded-stream.d.ts +18 -0
  221. package/lib/typescript/module/src/core/owned-bounded-stream.d.ts.map +1 -0
  222. package/lib/typescript/module/src/core/unified-ble-core.d.ts.map +1 -1
  223. package/lib/typescript/module/src/implementation-version.d.ts +1 -1
  224. package/lib/typescript/module/src/ipc/manager.d.ts +53 -4
  225. package/lib/typescript/module/src/ipc/manager.d.ts.map +1 -1
  226. package/lib/typescript/module/src/ipc/public-manager.d.ts.map +1 -1
  227. package/lib/typescript/module/src/public/ble-manager.d.ts +18 -4
  228. package/lib/typescript/module/src/public/ble-manager.d.ts.map +1 -1
  229. package/lib/typescript/module/src/public/error-bridge.d.ts +6 -1
  230. package/lib/typescript/module/src/public/error-bridge.d.ts.map +1 -1
  231. package/lib/typescript/module/src/public/react-adapter-watch-inspect.d.ts +9 -0
  232. package/lib/typescript/module/src/public/react-adapter-watch-inspect.d.ts.map +1 -0
  233. package/lib/typescript/module/src/public/scan-state-budget.d.ts +15 -0
  234. package/lib/typescript/module/src/public/scan-state-budget.d.ts.map +1 -0
  235. package/lib/typescript/module/src/react.d.ts +1 -1
  236. package/lib/typescript/module/src/react.d.ts.map +1 -1
  237. package/lib/typescript/module/src/tauri/transport.d.ts.map +1 -1
  238. package/lib/typescript/module/src/testing/deterministic/deterministic-backend-base.d.ts +8 -2
  239. package/lib/typescript/module/src/testing/deterministic/deterministic-backend-base.d.ts.map +1 -1
  240. package/lib/typescript/module/src/testing/deterministic/deterministic-security.d.ts +8 -2
  241. package/lib/typescript/module/src/testing/deterministic/deterministic-security.d.ts.map +1 -1
  242. package/lib/typescript/module/src/testing/deterministic/deterministic-test-backend-lifecycle-helpers.d.ts +6 -2
  243. package/lib/typescript/module/src/testing/deterministic/deterministic-test-backend-lifecycle-helpers.d.ts.map +1 -1
  244. package/lib/typescript/module/src/testing/deterministic/deterministic-test-backend.d.ts.map +1 -1
  245. package/lib/typescript/module/src/web/web-bluetooth-backend.d.ts +4 -3
  246. package/lib/typescript/module/src/web/web-bluetooth-backend.d.ts.map +1 -1
  247. package/lib/typescript/module/src/web/web-bluetooth-handles.d.ts +3 -0
  248. package/lib/typescript/module/src/web/web-bluetooth-handles.d.ts.map +1 -1
  249. package/native/PREBUILDS.json +5 -5
  250. package/native/electron/corebluetooth/prebuilds/darwin-arm64/unified_ble_corebluetooth.node +0 -0
  251. package/native/electron/corebluetooth/prebuilds/darwin-x64/unified_ble_corebluetooth.node +0 -0
  252. package/native/electron/winrt/prebuilds/win32-arm64/unified_ble_winrt.node +0 -0
  253. package/native/electron/winrt/prebuilds/win32-x64/unified_ble_winrt.node +0 -0
  254. package/native/tauri/Cargo.toml +3 -0
  255. package/native/tauri/src/btleplug_dispatcher.rs +561 -37
  256. package/package.json +1 -1
  257. package/src/advanced.ts +13 -0
  258. package/src/backend-contract/index.ts +1 -0
  259. package/src/backend-contract/primitives.ts +9 -0
  260. package/src/backend-contract/serializable.ts +33 -2
  261. package/src/backends/bluez/bluez-backend-runtime.ts +38 -8
  262. package/src/backends/bluez/bluez-backend.ts +16 -1
  263. package/src/backends/bluez/bluez-security.ts +30 -1
  264. package/src/backends/corebluetooth/corebluetooth-backend.ts +79 -22
  265. package/src/backends/corebluetooth/corebluetooth-gatt-operations.ts +21 -4
  266. package/src/backends/reactnative/react-native-android-security.ts +38 -2
  267. package/src/backends/winrt/winrt-backend.ts +40 -45
  268. package/src/backends/winrt/winrt-security.ts +38 -7
  269. package/src/core/bounded-stream.ts +4 -2
  270. package/src/core/owned-bounded-stream.ts +47 -0
  271. package/src/core/unified-ble-core.ts +40 -12
  272. package/src/implementation-version.ts +1 -1
  273. package/src/ipc/manager.ts +644 -141
  274. package/src/ipc/public-manager.ts +8 -3
  275. package/src/public/ble-manager.ts +350 -138
  276. package/src/public/error-bridge.ts +21 -2
  277. package/src/public/react-adapter-watch-inspect.ts +17 -0
  278. package/src/public/scan-state-budget.ts +16 -0
  279. package/src/react.ts +516 -126
  280. package/src/tauri/transport.ts +11 -4
  281. package/src/testing/deterministic/deterministic-backend-base.ts +42 -12
  282. package/src/testing/deterministic/deterministic-security.ts +58 -19
  283. package/src/testing/deterministic/deterministic-test-backend-lifecycle-helpers.ts +3 -7
  284. package/src/testing/deterministic/deterministic-test-backend.ts +2 -4
  285. package/src/web/web-bluetooth-backend.ts +73 -56
  286. package/src/web/web-bluetooth-handles.ts +3 -0
package/CHANGELOG.md CHANGED
@@ -4,6 +4,36 @@ All notable changes to `unified-ble-manager` are documented here.
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [4.0.3] - 2026-08-25
8
+
9
+ Lifecycle ownership is explicit through clone/decode, public stream close, IPC admission, Web/Tauri teardown, backend unregister/overflow native release, and React hook store/terminal cleanup. Does not retag `v4.0.2`.
10
+
11
+ ### Fixes
12
+
13
+ - Serializable clone/decode stays fail-closed; public stream close, scan stop, and IPC/Web/Tauri teardown no longer drop `release-failed` or skip native disconnect (#58, #59, #75, #60, #72, #63, #73, #76, #74, #79, #67, #77, #78).
14
+ - Adapter, security, and event-stream close/overflow keep backend ownership until native release succeeds; overflowing CoreBluetooth scan owners do not stop remaining joiners (#61, #68, #69, #70, #71).
15
+ - React adapter-state watches cannot wedge or double-own a run; `useDiscoveredPeers` is bounded and honors lost-peer events; connection and characteristic hooks leave loading with a fail-visible terminal (#62, #65, #66).
16
+
17
+ ### Release integrity
18
+
19
+ - Cut from the exact post-PR #105 `main` merge commit through the tag-driven trusted-publishing workflow.
20
+ - Intended for publication as `latest`; this does not promote backend support labels or claim physical-radio evidence.
21
+
22
+ ## [4.0.2] - 2026-08-24
23
+
24
+ Public coalesced scans no longer lose duplicate suppression after lost-peer or presence-cap churn: fingerprint deletions now decrement the retained-byte counter. IPC pre-registration buffering is globally bounded (ID/item/byte/age) with fail-visible tombstones. Connection release attempts `connection.disconnect` even when lifecycle unsubscribe rejects or returns `release-failed`, and preserves both cleanup failures. Does not retag `v4.0.1`.
25
+
26
+ ### Fixes
27
+
28
+ - Coalesced public scans keep exact fingerprint byte accounting across `reportLost` and presence eviction (#53).
29
+ - IPC pending streams for unknown IDs are aggregate-bounded; quota/TTL loss is visible when the ID later registers (#54).
30
+ - IPC connection release no longer skips physical `connection.disconnect` after a lifecycle unsubscribe failure (#56).
31
+
32
+ ### Release integrity
33
+
34
+ - Cut from the exact post-PR #57 `main` merge commit through the tag-driven trusted-publishing workflow.
35
+ - Intended for publication as `latest`; this does not promote backend support labels or claim physical-radio evidence.
36
+
7
37
  ## [4.0.1] - 2026-08-24
8
38
 
9
39
  Tauri JS transport now accepts the adapter-state snapshot the Rust plugin emits (`heard: null` on unsampled bootstrap, non-negative integer on live `adapter.state`). Extra or missing adapter-state keys stay fail-closed and are named in the decode error. Teaching docs describe the current stable 4.x install instead of RC-as-current. Does not retag `v4.0.0`.
package/MIGRATION_4.0.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  # Migrating from react-native-ble-plx
4
4
 
5
- The current package is `4.0.1`. The `4.0.0` release is a new package and a new contract. It is **not a source-compatible rename**. There is no `new BleManager()` facade, no Base64 characteristic values, and no public transaction IDs.
5
+ The current package is `4.0.3`. The `4.0.0` release is a new package and a new contract. It is **not a source-compatible rename**. There is no `new BleManager()` facade, no Base64 characteristic values, and no public transaction IDs.
6
6
 
7
7
  This page is for a React Native app that already uses `react-native-ble-plx`. Web, Electron, Node, and Tauri are new hosts — use those pages after you understand the RN rewrite.
8
8
 
package/README.md CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  It is an evolution of `react-native-ble-plx`, rewritten as a **cross-platform unified product**. One bytes-first BLE model and lifecycle semantics across hosts, with host-specific construction and ownership. The root package never picks a radio for you, and it will not quietly fall back to a simulator or a different backend.
8
8
 
9
- Install `unified-ble-manager` from npm (`4.0.1` on `latest`). The root import does not pick a radio. Package SemVer and backend support labels are independent: each radio backend stays Experimental until live-radio evidence says otherwise. See [`docs/PLATFORMS.md`](docs/PLATFORMS.md).
9
+ Install `unified-ble-manager` from npm (`4.0.3` on `latest`). The root import does not pick a radio. Package SemVer and backend support labels are independent: each radio backend stays Experimental until live-radio evidence says otherwise. See [`docs/PLATFORMS.md`](docs/PLATFORMS.md).
10
10
 
11
11
  > Sponsored by [Imagi Explain](https://imagiexplain.com) — researched, narrated whiteboard explainers from a prompt, a PDF, or your notes.
12
12
 
@@ -279,6 +279,7 @@ after disconnect, service change, or rediscovery.
279
279
  | `createElectronRendererBleManager` / `createElectronRendererBleManagerWithEnvironment` | Public renderer `BleManager` over a preload transport; the renderer never loads a radio backend |
280
280
  | `createTauriBleManager` | Zero-plumbing Tauri `BleManager`; tests use `createTauriBleManagerWithEnvironment` |
281
281
  | `createBleManagerFromProvider` | Advanced provider construction |
282
+ | `createPublicBleManagerFacade` | Projects an already-owned `/advanced` manager into the root public `BleManager`; creates no advanced manager, backend, or radio |
282
283
 
283
284
  ## Other hosts
284
285
 
package/RELEASE.md CHANGED
@@ -81,7 +81,7 @@ Active `4.0.0-rc.*` release-train candidates publish to npm `latest` so a bare `
81
81
 
82
82
  On release day, set `release_candidate` to the exact candidate required by the
83
83
  release plan. RC2, RC3, RC4, `4.0.0-rc.4.1`, and RC5 are already immutable
84
- once tagged. Stable `4.0.0` is immutable. `4.0.1` is the current train head.
84
+ once tagged. Stable `4.0.0`, `4.0.1`, and `4.0.2` are immutable. `4.0.3` is the current train head.
85
85
 
86
86
  ```sh
87
87
  release_candidate=4.0.0-rc.N
@@ -111,7 +111,23 @@ git tag -a v4.0.0 -m "v4.0.0"
111
111
 
112
112
  ## Releasing 4.0.1
113
113
 
114
- The source version is prepared on `main` before the tag. The release workflow verifies that every initial release tag points at the exact current `main` commit before publication; do not create that tag from a side branch or an older commit. Do not retag immutable `v4.0.0`.
114
+ The `v4.0.1` tag is immutable published history. Do not recreate or move it.
115
+
116
+ ```sh
117
+ git tag -a v4.0.1 -m "v4.0.1"
118
+ ```
119
+
120
+ ## Releasing 4.0.2
121
+
122
+ The `v4.0.2` tag is immutable published history. Do not recreate or move it.
123
+
124
+ ```sh
125
+ git tag -a v4.0.2 -m "v4.0.2"
126
+ ```
127
+
128
+ ## Releasing 4.0.3
129
+
130
+ The source version is prepared on `main` before the tag. The release workflow verifies that every initial release tag points at the exact current `main` commit before publication; do not create that tag from a side branch or an older commit. Do not retag immutable `v4.0.0`, `v4.0.1`, or `v4.0.2`.
115
131
 
116
132
  On release day:
117
133
 
@@ -121,12 +137,12 @@ git checkout main
121
137
  git pull --ff-only origin main
122
138
 
123
139
  test "$(git branch --show-current)" = "main"
124
- test "$(node -p "require('./package.json').version")" = "4.0.1"
140
+ test "$(node -p "require('./package.json').version")" = "4.0.3"
125
141
  git diff --exit-code
126
142
  git diff --cached --exit-code
127
143
 
128
- git tag -a v4.0.1 -m "v4.0.1"
129
- git push origin v4.0.1
144
+ git tag -a v4.0.3 -m "v4.0.3"
145
+ git push origin v4.0.3
130
146
  ```
131
147
 
132
148
  Do not push another commit to `main` between the final verification and the tag push.
@@ -181,7 +197,7 @@ Never move or recreate a published version tag to hide a failed release.
181
197
 
182
198
  - If the workflow fails **before npm publication**, fix the source on `main`, increment/version as appropriate, and create the correct new tag.
183
199
  - If npm publication succeeds but a later GitHub-release step fails, preserve the immutable npm version and rerun the workflow. The recovery path skips the current-`main` admission check and attaches the exact npm registry tarball rather than newly linked native binaries.
184
- - If a defect is discovered after `4.0.0` is published, fix it and release `4.0.1`; do not replace `4.0.0`.
200
+ - If a defect is discovered after a stable tag is published, fix it and release a new patch; do not replace the published tag.
185
201
 
186
202
  ## Prereleases after 4.0.0
187
203
 
package/SBOM.cdx.json CHANGED
@@ -6,15 +6,15 @@
6
6
  "metadata": {
7
7
  "component": {
8
8
  "type": "library",
9
- "bom-ref": "pkg:npm/unified-ble-manager@4.0.1",
9
+ "bom-ref": "pkg:npm/unified-ble-manager@4.0.3",
10
10
  "name": "unified-ble-manager",
11
- "version": "4.0.1",
11
+ "version": "4.0.3",
12
12
  "licenses": [
13
13
  {
14
14
  "expression": "Apache-2.0"
15
15
  }
16
16
  ],
17
- "purl": "pkg:npm/unified-ble-manager@4.0.1"
17
+ "purl": "pkg:npm/unified-ble-manager@4.0.3"
18
18
  },
19
19
  "properties": [
20
20
  {
@@ -537,7 +537,7 @@
537
537
  "dependsOn": []
538
538
  },
539
539
  {
540
- "ref": "pkg:npm/unified-ble-manager@4.0.1",
540
+ "ref": "pkg:npm/unified-ble-manager@4.0.3",
541
541
  "dependsOn": [
542
542
  "pkg:npm/%40tauri-apps/api@2.11.1",
543
543
  "pkg:npm/node-addon-api@8.9.0",
@@ -4,7 +4,7 @@
4
4
  "schemaVersion": "1.0.0",
5
5
  "package": {
6
6
  "name": "unified-ble-manager",
7
- "version": "4.0.1"
7
+ "version": "4.0.3"
8
8
  },
9
9
  "source": {
10
10
  "method": "pnpm-lock production graph with installed-manifest license audit",
package/docs/ELECTRON.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Main owns the radio. The renderer uses a versioned IPC client and never loads a native addon.
6
6
 
7
- The current package is `4.0.1`. The release ships Node-API v8 prebuilds covering macOS and Windows `arm64`/`x64` for both Node and modern Electron.
7
+ The current package is `4.0.3`. The release ships Node-API v8 prebuilds covering macOS and Windows `arm64`/`x64` for both Node and modern Electron.
8
8
 
9
9
  `unified-ble-manager/electron/main` and
10
10
  `unified-ble-manager/electron/renderer` are the only Electron entrypoints.
@@ -7,7 +7,7 @@ start a radio, request runtime permissions during prebuild, or prove physical
7
7
  radio/restoration reliability. Expo Go is not a supported BLE execution
8
8
  environment because it cannot contain this native module.
9
9
 
10
- Use the v2 plugin options in the published `4.0.1` package. Those options match
10
+ Use the v2 plugin options in the published `4.0.3` package. Those options match
11
11
  the schema introduced at `4.0.0-rc.4`. Expo Go cannot load this native module.
12
12
 
13
13
  ## Installation and development build
@@ -15,7 +15,7 @@ the schema introduced at `4.0.0-rc.4`. Expo Go cannot load this native module.
15
15
  Pin the package so a later `latest` bump does not change native plugin options
16
16
  without a rebuild:
17
17
 
18
- pnpm add unified-ble-manager@4.0.1
18
+ pnpm add unified-ble-manager@4.0.3
19
19
  pnpm add expo@^57.0.0 expo-dev-client
20
20
  npx expo prebuild --clean
21
21
  npx expo run:ios
package/docs/GAPS.4.0.md CHANGED
@@ -14,7 +14,7 @@ This file tracks platform code, CI, package, lab, and live-radio evidence. It do
14
14
 
15
15
  The clean-baseline contract, unified core, public manager, deterministic backend, TCK, native protocol, first-party backend implementations, host-isolated package exports, SDK/CLI, and legacy-absence gates exist in the 4.0 source. Passing deterministic, compile, ABI, or package tests are implementation proof; they do not become physical-radio support evidence unless a retained record proves the corresponding live scenario.
16
16
 
17
- `unified-ble-manager@4.0.1` is the published, immutable stable package/API. Immutable `4.0.0` remains published history. Backend support labels remain
17
+ `unified-ble-manager@4.0.3` is the published, immutable stable package/API. Immutable `4.0.0`, `4.0.1`, and `4.0.2` remain published history. Backend support labels remain
18
18
  evidence-derived. This package does not rewrite the evidence inventory: a backend remains at the support level
19
19
  justified by its records. The alpha train, including `v4.0.0-alpha.40`, remains historical implementation/release
20
20
  evidence and must not be used to claim a higher current support label than it actually proved.
@@ -4,7 +4,7 @@
4
4
 
5
5
  This page gets you to a first scan, connect, read, notify, and teardown on React Native. Other hosts are linked at the bottom. The root import does not turn Bluetooth on.
6
6
 
7
- The current package is `4.0.1`.
7
+ The current package is `4.0.3`.
8
8
 
9
9
  ## Pick a host
10
10
 
@@ -27,7 +27,7 @@ The current package is `4.0.1`.
27
27
  Pin the current package for a known native rebuild:
28
28
 
29
29
  ```sh
30
- pnpm add unified-ble-manager@4.0.1
30
+ pnpm add unified-ble-manager@4.0.3
31
31
  ```
32
32
 
33
33
  Declare Android Bluetooth permissions and the BLE hardware feature yourself,
@@ -37,10 +37,10 @@ request runtime permissions on Android 12+, add
37
37
  #### Expo / CNG v2
38
38
 
39
39
  The Expo v2 schema and `unified-ble-manager/expo` factory are in the published
40
- `4.0.1` package. Pin that exact version:
40
+ `4.0.3` package. Pin that exact version:
41
41
 
42
42
  ```sh
43
- pnpm add unified-ble-manager@4.0.1
43
+ pnpm add unified-ble-manager@4.0.3
44
44
  ```
45
45
 
46
46
  The package does not run in Expo Go.
package/docs/NODE.md CHANGED
@@ -10,7 +10,7 @@ The root import does not open an adapter. Pick one backend:
10
10
  | `unified-ble-manager/node/winrt` | Windows |
11
11
  | `unified-ble-manager/node/bluez` | Linux (needs `dbus-next@^0.10.2` in the app) |
12
12
 
13
- The current package is `4.0.1`. The release ships Node-API v8 prebuilds for macOS and Windows on `arm64` and `x64`. A normal install should not compile native code. BlueZ talks D-Bus and has no addon.
13
+ The current package is `4.0.3`. The release ships Node-API v8 prebuilds for macOS and Windows on `arm64` and `x64`. A normal install should not compile native code. BlueZ talks D-Bus and has no addon.
14
14
 
15
15
  ## One-call factories
16
16
 
package/docs/PLATFORMS.md CHANGED
@@ -8,7 +8,7 @@ This page is an evidence index, not a static compatibility matrix. An applicatio
8
8
 
9
9
  ## Package stability and backend support are separate
10
10
 
11
- `unified-ble-manager@4.0.1` is the published **stable package/API** for the 4.x contract; it is immutable. Backend support labels remain evidence-derived and independent of this SemVer. Immutable `4.0.0` remains published history.
11
+ `unified-ble-manager@4.0.3` is the published **stable package/API** for the 4.x contract; it is immutable. Backend support labels remain evidence-derived and independent of this SemVer. Immutable `4.0.0`, `4.0.1`, and `4.0.2` remain published history.
12
12
 
13
13
  This package is the portable API/semantics freeze; it does **not** mean every first-party backend is
14
14
  automatically Preview, Supported, or Reliability-qualified.
package/docs/WEB.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  Use `unified-ble-manager/web` in a secure context (HTTPS or localhost) from a user gesture. There is no background scan and no process-level restoration.
6
6
 
7
- The current package is `4.0.1`. The backend is Experimental until artifact-bound physical-hardware validation says otherwise. See [`PLATFORMS.md`](PLATFORMS.md).
7
+ The current package is `4.0.3`. The backend is Experimental until artifact-bound physical-hardware validation says otherwise. See [`PLATFORMS.md`](PLATFORMS.md).
8
8
 
9
9
  ## Create the manager
10
10
 
@@ -6,7 +6,7 @@ This page is generated by `scripts/docs/generate-platform-support.js` from valid
6
6
 
7
7
  ## Current package
8
8
 
9
- `unified-ble-manager@4.0.1`
9
+ `unified-ble-manager@4.0.3`
10
10
 
11
11
  No evidence record is bound to this exact package version and artifact. Consequently, this generated page makes no Preview, Live Preview, Supported, or Reliability-qualified platform claim for the current package.
12
12
 
@@ -6,13 +6,13 @@ Object.defineProperty(exports, "__esModule", {
6
6
  Object.defineProperty(exports, "BleManager", {
7
7
  enumerable: true,
8
8
  get: function () {
9
- return _bleManager.BleManager;
9
+ return _bleManager2.BleManager;
10
10
  }
11
11
  });
12
12
  Object.defineProperty(exports, "DEFAULT_BLE_MANAGER_OPTIONS", {
13
13
  enumerable: true,
14
14
  get: function () {
15
- return _bleManager.DEFAULT_BLE_MANAGER_OPTIONS;
15
+ return _bleManager2.DEFAULT_BLE_MANAGER_OPTIONS;
16
16
  }
17
17
  });
18
18
  Object.defineProperty(exports, "ManagerOwnershipAuthority", {
@@ -24,7 +24,7 @@ Object.defineProperty(exports, "ManagerOwnershipAuthority", {
24
24
  Object.defineProperty(exports, "attachBleBackend", {
25
25
  enumerable: true,
26
26
  get: function () {
27
- return _bleManager.attachBleBackend;
27
+ return _bleManager2.attachBleBackend;
28
28
  }
29
29
  });
30
30
  Object.defineProperty(exports, "byteLimit", {
@@ -60,19 +60,19 @@ Object.defineProperty(exports, "connectAndDiscover", {
60
60
  Object.defineProperty(exports, "createBleManager", {
61
61
  enumerable: true,
62
62
  get: function () {
63
- return _bleManager.createBleManager;
63
+ return _bleManager2.createBleManager;
64
64
  }
65
65
  });
66
66
  Object.defineProperty(exports, "createBleManagerFromBackend", {
67
67
  enumerable: true,
68
68
  get: function () {
69
- return _bleManager.createBleManagerFromBackend;
69
+ return _bleManager2.createBleManagerFromBackend;
70
70
  }
71
71
  });
72
72
  Object.defineProperty(exports, "createBleManagerFromProvider", {
73
73
  enumerable: true,
74
74
  get: function () {
75
- return _bleManager.createBleManagerFromProvider;
75
+ return _bleManager2.createBleManagerFromProvider;
76
76
  }
77
77
  });
78
78
  Object.defineProperty(exports, "createEphemeralHostIdentity", {
@@ -84,9 +84,10 @@ Object.defineProperty(exports, "createEphemeralHostIdentity", {
84
84
  Object.defineProperty(exports, "createManagerOwnershipAuthority", {
85
85
  enumerable: true,
86
86
  get: function () {
87
- return _bleManager.createManagerOwnershipAuthority;
87
+ return _bleManager2.createManagerOwnershipAuthority;
88
88
  }
89
89
  });
90
+ exports.createPublicBleManagerFacade = createPublicBleManagerFacade;
90
91
  Object.defineProperty(exports, "deadline", {
91
92
  enumerable: true,
92
93
  get: function () {
@@ -201,8 +202,9 @@ Object.defineProperty(exports, "withRequiredSecurity", {
201
202
  return _security.withRequiredSecurity;
202
203
  }
203
204
  });
205
+ var _bleManager = require("./public/ble-manager.js");
204
206
  var _primitives = require("./backend-contract/primitives.js");
205
- var _bleManager = require("./manager/ble-manager.js");
207
+ var _bleManager2 = require("./manager/ble-manager.js");
206
208
  var _managerOwnershipAuthority = require("./manager/manager-ownership-authority.js");
207
209
  var _publicHelpers = require("./manager/public-helpers.js");
208
210
  var _scanQuery = require("./public/scan-query.js");
@@ -212,4 +214,20 @@ var _operationOptions = require("./public/operation-options.js");
212
214
  var _streamPresets = require("./public/stream-presets.js");
213
215
  var _hostIdentity = require("./public/host-identity.js");
214
216
  var _security = require("./public/security.js");
217
+ // src/advanced.ts
218
+ //
219
+ // Expert entrypoint: exact deadlines, stream budgets, raw paths/receipts,
220
+ // ownership, and trace controls. Wraps the same implementation; does not fork
221
+ // behavior from the application façade.
222
+
223
+ /** Projects an already-owned advanced manager into the stable public façade. */
224
+ function createPublicBleManagerFacade(internal, now) {
225
+ return (0, _bleManager.createPublicBleManager)(internal, now);
226
+ }
227
+
228
+ // Public helpers that operate on low-level handles — advanced because they use
229
+ // branded deadlines, capacities, and portable paths. Application code should
230
+ // prefer the façade's OperationOptions/timeoutMs and StreamPreset.
231
+
232
+ // Re-export façade utilities for expert callers that need exact control.
215
233
  //# sourceMappingURL=advanced.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_primitives","require","_bleManager","_managerOwnershipAuthority","_publicHelpers","_scanQuery","_peerDirectory","_peerReference","_operationOptions","_streamPresets","_hostIdentity","_security"],"sourceRoot":"../../src","sources":["advanced.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAAA,WAAA,GAAAC,OAAA;AA4GA,IAAAC,WAAA,GAAAD,OAAA;AAoBA,IAAAE,0BAAA,GAAAF,OAAA;AAQA,IAAAG,cAAA,GAAAH,OAAA;AAwBA,IAAAI,UAAA,GAAAJ,OAAA;AAGA,IAAAK,cAAA,GAAAL,OAAA;AAEA,IAAAM,cAAA,GAAAN,OAAA;AAGA,IAAAO,iBAAA,GAAAP,OAAA;AAEA,IAAAQ,cAAA,GAAAR,OAAA;AAEA,IAAAS,aAAA,GAAAT,OAAA;AAEA,IAAAU,SAAA,GAAAV,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_bleManager","require","_primitives","_bleManager2","_managerOwnershipAuthority","_publicHelpers","_scanQuery","_peerDirectory","_peerReference","_operationOptions","_streamPresets","_hostIdentity","_security","createPublicBleManagerFacade","internal","now","createPublicBleManager"],"sourceRoot":"../../src","sources":["advanced.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAAA,WAAA,GAAAC,OAAA;AAaA,IAAAC,WAAA,GAAAD,OAAA;AA4GA,IAAAE,YAAA,GAAAF,OAAA;AAoBA,IAAAG,0BAAA,GAAAH,OAAA;AAQA,IAAAI,cAAA,GAAAJ,OAAA;AAwBA,IAAAK,UAAA,GAAAL,OAAA;AAGA,IAAAM,cAAA,GAAAN,OAAA;AAEA,IAAAO,cAAA,GAAAP,OAAA;AAGA,IAAAQ,iBAAA,GAAAR,OAAA;AAEA,IAAAS,cAAA,GAAAT,OAAA;AAEA,IAAAU,aAAA,GAAAV,OAAA;AAEA,IAAAW,SAAA,GAAAX,OAAA;AAjMA;AACA;AACA;AACA;AACA;;AAOA;AACO,SAASY,4BAA4BA,CAC1CC,QAAkD,EAClDC,GAAiB,EACU;EAC3B,OAAO,IAAAC,kCAAsB,EAACF,QAAQ,EAAEC,GAAG,CAAC;AAC9C;;AAuIA;AACA;AACA;;AAgCA","ignoreList":[]}
@@ -123,6 +123,12 @@ Object.defineProperty(exports, "createAttachmentBoundIdFactory", {
123
123
  return _primitives.createAttachmentBoundIdFactory;
124
124
  }
125
125
  });
126
+ Object.defineProperty(exports, "createAttachmentBoundPeerId", {
127
+ enumerable: true,
128
+ get: function () {
129
+ return _primitives.createAttachmentBoundPeerId;
130
+ }
131
+ });
126
132
  Object.defineProperty(exports, "createBackendOperationDispatch", {
127
133
  enumerable: true,
128
134
  get: function () {
@@ -1 +1 @@
1
- {"version":3,"names":["_backend","require","_peerReference","_capabilities","_errors","_gatt","_identity","_ipc","_operations","_primitives","_recovery","_scanPlanning"],"sourceRoot":"../../../src","sources":["backend-contract/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6EA,IAAAA,QAAA,GAAAC,OAAA;AAmBA,IAAAC,cAAA,GAAAD,OAAA;AAsBA,IAAAE,aAAA,GAAAF,OAAA;AAuBA,IAAAG,OAAA,GAAAH,OAAA;AAwBA,IAAAI,KAAA,GAAAJ,OAAA;AAyBA,IAAAK,SAAA,GAAAL,OAAA;AASA,IAAAM,IAAA,GAAAN,OAAA;AAyBA,IAAAO,WAAA,GAAAP,OAAA;AAwDA,IAAAQ,WAAA,GAAAR,OAAA;AAuCA,IAAAS,SAAA,GAAAT,OAAA;AAkBA,IAAAU,aAAA,GAAAV,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_backend","require","_peerReference","_capabilities","_errors","_gatt","_identity","_ipc","_operations","_primitives","_recovery","_scanPlanning"],"sourceRoot":"../../../src","sources":["backend-contract/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6EA,IAAAA,QAAA,GAAAC,OAAA;AAmBA,IAAAC,cAAA,GAAAD,OAAA;AAsBA,IAAAE,aAAA,GAAAF,OAAA;AAuBA,IAAAG,OAAA,GAAAH,OAAA;AAwBA,IAAAI,KAAA,GAAAJ,OAAA;AAyBA,IAAAK,SAAA,GAAAL,OAAA;AASA,IAAAM,IAAA,GAAAN,OAAA;AAyBA,IAAAO,WAAA,GAAAP,OAAA;AAwDA,IAAAQ,WAAA,GAAAR,OAAA;AAwCA,IAAAS,SAAA,GAAAT,OAAA;AAkBA,IAAAU,aAAA,GAAAV,OAAA","ignoreList":[]}
@@ -10,6 +10,7 @@ exports.byteLimit = byteLimit;
10
10
  exports.canonicalUuid = canonicalUuid;
11
11
  exports.capacity = capacity;
12
12
  exports.createAttachmentBoundIdFactory = createAttachmentBoundIdFactory;
13
+ exports.createAttachmentBoundPeerId = createAttachmentBoundPeerId;
13
14
  exports.createIpcOperationIdFactory = createIpcOperationIdFactory;
14
15
  exports.deadline = deadline;
15
16
  exports.monotonicTimestamp = monotonicTimestamp;
@@ -52,6 +53,11 @@ function attachmentScope(binding) {
52
53
  }
53
54
  return values.map(value => String(value)).join(':');
54
55
  }
56
+
57
+ /** Creates a peer identifier using the same attachment-bound scope as other runtime identifiers. */
58
+ function createAttachmentBoundPeerId(binding, value) {
59
+ return runtimeScopedOpaqueId(value, 'peer', attachmentScope(binding));
60
+ }
55
61
  function createAttachmentBoundIdFactory(binding) {
56
62
  const scope = attachmentScope(binding);
57
63
  return {
@@ -1 +1 @@
1
- {"version":3,"names":["_errors","require","assertNonEmptyString","value","label","length","Error","assertNonNegativeSafeInteger","Number","isSafeInteger","opaqueId","kind","scope","runtimeScopedOpaqueId","attachmentScope","binding","values","attachmentId","backendInstanceId","backendGeneration","adapterId","adapterGeneration","String","map","join","createAttachmentBoundIdFactory","clientId","managerId","connectionId","leaseId","scanShareToken","scanSessionId","databaseId","subscriptionId","operationCorrelation","backendOperationHandle","createIpcOperationIdFactory","ipcOperationCorrelation","ipcDispatchEpoch","rebindAttachmentBoundId","id","source","target","canonicalUuid","compact","replaceAll","toLowerCase","test","slice","byteLimit","capacity","resourceCount","monotonicTimestamp","isFinite","deadline","ownBytes","bytes","maximumBytes","byteLength","contractError","Uint8Array","version","axis","versionRange","minimum","maximum","negotiateVersion","localRange","remoteRange","assertNegotiationRange","selectedValue","Math","min","selected","range","negotiateCoreVersions","local","remote","backendContract","capabilitySchema","eventSchema","traceFormat","assertCoreVersionsAccepted","versions","offer","assertVersionAccepted","assertIpcVersionsAccepted","ipcProtocol","applicableVersionAxesEqual","left","right","negotiatedVersionEqual","nativeProtocol","snapshotApplicableVersionAxes","core","snapshotNegotiatedVersion","Object","freeze","versionRangeEqual","versionValue","snapshotVersionRange"],"sourceRoot":"../../../src","sources":["backend-contract/primitives.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_errors","require","assertNonEmptyString","value","label","length","Error","assertNonNegativeSafeInteger","Number","isSafeInteger","opaqueId","kind","scope","runtimeScopedOpaqueId","attachmentScope","binding","values","attachmentId","backendInstanceId","backendGeneration","adapterId","adapterGeneration","String","map","join","createAttachmentBoundPeerId","createAttachmentBoundIdFactory","clientId","managerId","connectionId","leaseId","scanShareToken","scanSessionId","databaseId","subscriptionId","operationCorrelation","backendOperationHandle","createIpcOperationIdFactory","ipcOperationCorrelation","ipcDispatchEpoch","rebindAttachmentBoundId","id","source","target","canonicalUuid","compact","replaceAll","toLowerCase","test","slice","byteLimit","capacity","resourceCount","monotonicTimestamp","isFinite","deadline","ownBytes","bytes","maximumBytes","byteLength","contractError","Uint8Array","version","axis","versionRange","minimum","maximum","negotiateVersion","localRange","remoteRange","assertNegotiationRange","selectedValue","Math","min","selected","range","negotiateCoreVersions","local","remote","backendContract","capabilitySchema","eventSchema","traceFormat","assertCoreVersionsAccepted","versions","offer","assertVersionAccepted","assertIpcVersionsAccepted","ipcProtocol","applicableVersionAxesEqual","left","right","negotiatedVersionEqual","nativeProtocol","snapshotApplicableVersionAxes","core","snapshotNegotiatedVersion","Object","freeze","versionRangeEqual","versionValue","snapshotVersionRange"],"sourceRoot":"../../../src","sources":["backend-contract/primitives.ts"],"mappings":"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","ignoreList":[]}
@@ -3,7 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.assertAllowedSerializableKey = assertAllowedSerializableKey;
7
+ exports.assertSafeSerializablePrototype = assertSafeSerializablePrototype;
8
+ exports.createOwnedSerializableRecord = createOwnedSerializableRecord;
6
9
  exports.serializableRecordsEqual = serializableRecordsEqual;
10
+ exports.setOwnedSerializableEntry = setOwnedSerializableEntry;
7
11
  exports.snapshotSerializableRecord = snapshotSerializableRecord;
8
12
  exports.utf8ByteLength = utf8ByteLength;
9
13
  var _errors = require("./errors.js");
@@ -11,6 +15,26 @@ var _primitives = require("./primitives.js");
11
15
  // src/backend-contract/serializable.ts
12
16
 
13
17
  const textEncoder = new TextEncoder();
18
+ const FORBIDDEN_SERIALIZABLE_KEYS = new Set(['__proto__', 'constructor', 'prototype']);
19
+ function assertAllowedSerializableKey(key, domain, operation) {
20
+ if (FORBIDDEN_SERIALIZABLE_KEYS.has(key)) {
21
+ throw (0, _errors.contractError)('protocol.malformed', domain, operation);
22
+ }
23
+ }
24
+ function assertSafeSerializablePrototype(value, domain, operation) {
25
+ const prototype = Object.getPrototypeOf(value);
26
+ if (prototype !== Object.prototype && prototype !== null) {
27
+ throw (0, _errors.contractError)('protocol.malformed', domain, operation);
28
+ }
29
+ }
30
+ function createOwnedSerializableRecord() {
31
+ const record = Object.create(null);
32
+ return record;
33
+ }
34
+ function setOwnedSerializableEntry(target, key, value, domain, operation) {
35
+ assertAllowedSerializableKey(key, domain, operation);
36
+ target[key] = value;
37
+ }
14
38
 
15
39
  /** Deep-copies a serializable record while measuring its deterministic wire-size budget. */
16
40
  function snapshotSerializableRecord(record) {
@@ -141,9 +165,10 @@ function snapshotRecord(record, activeObjects) {
141
165
  if (activeObjects.has(record)) {
142
166
  throw (0, _errors.contractError)('protocol.malformed', 'boundary', 'serializable.snapshot.cycle');
143
167
  }
168
+ assertSafeSerializablePrototype(record, 'boundary', 'serializable.snapshot.prototype');
144
169
  activeObjects.add(record);
145
170
  try {
146
- const result = {};
171
+ const result = createOwnedSerializableRecord();
147
172
  let byteLength = 2;
148
173
  let entryCount = 0;
149
174
  for (const [key, value] of Object.entries(record)) {
@@ -151,7 +176,7 @@ function snapshotRecord(record, activeObjects) {
151
176
  if (entryCount > 0) {
152
177
  byteLength += 1;
153
178
  }
154
- result[key] = valueSnapshot.value;
179
+ setOwnedSerializableEntry(result, key, valueSnapshot.value, 'boundary', 'serializable.forbidden-key');
155
180
  byteLength += quotedStringByteLength(key) + 1 + valueSnapshot.byteLength;
156
181
  entryCount += 1;
157
182
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_errors","require","_primitives","textEncoder","TextEncoder","snapshotSerializableRecord","record","activeObjects","WeakSet","snapshot","snapshotRecord","value","byteLength","utf8ByteLength","encode","serializableRecordsEqual","left","right","leftEntries","Object","entries","rightKeys","keys","length","key","leftValue","rightValue","prototype","hasOwnProperty","call","undefined","serializableValuesEqual","snapshotValue","Number","isFinite","contractError","String","quotedStringByteLength","Uint8Array","copied","ownBytes","byteLimit","isSerializableArray","has","add","items","item","itemSnapshot","push","freeze","delete","Array","isArray","index","result","entryCount","valueSnapshot","serialized","JSON","stringify"],"sourceRoot":"../../../src","sources":["backend-contract/serializable.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_errors","require","_primitives","textEncoder","TextEncoder","FORBIDDEN_SERIALIZABLE_KEYS","Set","assertAllowedSerializableKey","key","domain","operation","has","contractError","assertSafeSerializablePrototype","value","prototype","Object","getPrototypeOf","createOwnedSerializableRecord","record","create","setOwnedSerializableEntry","target","snapshotSerializableRecord","activeObjects","WeakSet","snapshot","snapshotRecord","byteLength","utf8ByteLength","encode","serializableRecordsEqual","left","right","leftEntries","entries","rightKeys","keys","length","leftValue","rightValue","hasOwnProperty","call","undefined","serializableValuesEqual","snapshotValue","Number","isFinite","String","quotedStringByteLength","Uint8Array","copied","ownBytes","byteLimit","isSerializableArray","add","items","item","itemSnapshot","push","freeze","delete","Array","isArray","index","result","entryCount","valueSnapshot","serialized","JSON","stringify"],"sourceRoot":"../../../src","sources":["backend-contract/serializable.ts"],"mappings":"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","ignoreList":[]}