@mdbase-dev/sdk 0.0.0-stage → 0.1.0-beta.149

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 (900) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +844 -2
  3. package/dist/account-key.d.ts +176 -0
  4. package/dist/account-key.js +409 -0
  5. package/dist/account-key.js.map +1 -0
  6. package/dist/account.d.ts +11 -0
  7. package/dist/account.js +9 -0
  8. package/dist/account.js.map +1 -0
  9. package/dist/app-grant/client.d.ts +209 -0
  10. package/dist/app-grant/client.js +930 -0
  11. package/dist/app-grant/client.js.map +1 -0
  12. package/dist/app-grant/grant-store.d.ts +77 -0
  13. package/dist/app-grant/grant-store.js +201 -0
  14. package/dist/app-grant/grant-store.js.map +1 -0
  15. package/dist/app-grant/index.d.ts +11 -0
  16. package/dist/app-grant/index.js +10 -0
  17. package/dist/app-grant/index.js.map +1 -0
  18. package/dist/app-grant/native-completion.d.ts +22 -0
  19. package/dist/app-grant/native-completion.js +63 -0
  20. package/dist/app-grant/native-completion.js.map +1 -0
  21. package/dist/app-grant/people.d.ts +10 -0
  22. package/dist/app-grant/people.js +84 -0
  23. package/dist/app-grant/people.js.map +1 -0
  24. package/dist/app-grant/setup-attempt.d.ts +12 -0
  25. package/dist/app-grant/setup-attempt.js +62 -0
  26. package/dist/app-grant/setup-attempt.js.map +1 -0
  27. package/dist/app-grant/setup-producer.d.ts +31 -0
  28. package/dist/app-grant/setup-producer.js +65 -0
  29. package/dist/app-grant/setup-producer.js.map +1 -0
  30. package/dist/app-grant/setup.d.ts +11 -0
  31. package/dist/app-grant/setup.js +222 -0
  32. package/dist/app-grant/setup.js.map +1 -0
  33. package/dist/app-host/app-environment.d.ts +27 -0
  34. package/dist/app-host/app-environment.js +48 -0
  35. package/dist/app-host/app-environment.js.map +1 -0
  36. package/dist/app-host/app-origin.d.ts +7 -0
  37. package/dist/app-host/app-origin.js +49 -0
  38. package/dist/app-host/app-origin.js.map +1 -0
  39. package/dist/app-host/bases-pages.d.ts +29 -0
  40. package/dist/app-host/bases-pages.js +42 -0
  41. package/dist/app-host/bases-pages.js.map +1 -0
  42. package/dist/app-host/bases-wire.d.ts +159 -0
  43. package/dist/app-host/bases-wire.js +376 -0
  44. package/dist/app-host/bases-wire.js.map +1 -0
  45. package/dist/app-host/browser-direct-access.d.ts +18 -0
  46. package/dist/app-host/browser-direct-access.js +17 -0
  47. package/dist/app-host/browser-direct-access.js.map +1 -0
  48. package/dist/app-host/cloud-copy-bootstrap.d.ts +127 -0
  49. package/dist/app-host/cloud-copy-bootstrap.js +608 -0
  50. package/dist/app-host/cloud-copy-bootstrap.js.map +1 -0
  51. package/dist/app-host/cloud-copy-host.d.ts +248 -0
  52. package/dist/app-host/cloud-copy-host.js +1028 -0
  53. package/dist/app-host/cloud-copy-host.js.map +1 -0
  54. package/dist/app-host/cloud-copy-persistence-idb.d.ts +33 -0
  55. package/dist/app-host/cloud-copy-persistence-idb.js +255 -0
  56. package/dist/app-host/cloud-copy-persistence-idb.js.map +1 -0
  57. package/dist/app-host/cloud-copy-persistence.d.ts +57 -0
  58. package/dist/app-host/cloud-copy-persistence.js +341 -0
  59. package/dist/app-host/cloud-copy-persistence.js.map +1 -0
  60. package/dist/app-host/collection-control.d.ts +111 -0
  61. package/dist/app-host/collection-control.js +604 -0
  62. package/dist/app-host/collection-control.js.map +1 -0
  63. package/dist/app-host/collection-delete.d.ts +7 -0
  64. package/dist/app-host/collection-delete.js +54 -0
  65. package/dist/app-host/collection-delete.js.map +1 -0
  66. package/dist/app-host/collection-display-name.d.ts +2 -0
  67. package/dist/app-host/collection-display-name.js +22 -0
  68. package/dist/app-host/collection-display-name.js.map +1 -0
  69. package/dist/app-host/collection-join-ledger.d.ts +52 -0
  70. package/dist/app-host/collection-join-ledger.js +208 -0
  71. package/dist/app-host/collection-join-ledger.js.map +1 -0
  72. package/dist/app-host/collection-people.d.ts +32 -0
  73. package/dist/app-host/collection-people.js +119 -0
  74. package/dist/app-host/collection-people.js.map +1 -0
  75. package/dist/app-host/collection-readiness.d.ts +119 -0
  76. package/dist/app-host/collection-readiness.js +649 -0
  77. package/dist/app-host/collection-readiness.js.map +1 -0
  78. package/dist/app-host/collection-setup-journal.d.ts +59 -0
  79. package/dist/app-host/collection-setup-journal.js +813 -0
  80. package/dist/app-host/collection-setup-journal.js.map +1 -0
  81. package/dist/app-host/collection-setup-types.d.ts +155 -0
  82. package/dist/app-host/collection-setup-types.js +10 -0
  83. package/dist/app-host/collection-setup-types.js.map +1 -0
  84. package/dist/app-host/cp-authority.d.ts +65 -0
  85. package/dist/app-host/cp-authority.js +243 -0
  86. package/dist/app-host/cp-authority.js.map +1 -0
  87. package/dist/app-host/cp-people.d.ts +23 -0
  88. package/dist/app-host/cp-people.js +145 -0
  89. package/dist/app-host/cp-people.js.map +1 -0
  90. package/dist/app-host/cp-problem.d.ts +34 -0
  91. package/dist/app-host/cp-problem.js +114 -0
  92. package/dist/app-host/cp-problem.js.map +1 -0
  93. package/dist/app-host/device-key-custody.d.ts +51 -0
  94. package/dist/app-host/device-key-custody.js +128 -0
  95. package/dist/app-host/device-key-custody.js.map +1 -0
  96. package/dist/app-host/device-key-idb.d.ts +31 -0
  97. package/dist/app-host/device-key-idb.js +176 -0
  98. package/dist/app-host/device-key-idb.js.map +1 -0
  99. package/dist/app-host/device-key-provider.d.ts +33 -0
  100. package/dist/app-host/device-key-provider.js +181 -0
  101. package/dist/app-host/device-key-provider.js.map +1 -0
  102. package/dist/app-host/device-registration.d.ts +51 -0
  103. package/dist/app-host/device-registration.js +180 -0
  104. package/dist/app-host/device-registration.js.map +1 -0
  105. package/dist/app-host/foreground-wake.d.ts +43 -0
  106. package/dist/app-host/foreground-wake.js +113 -0
  107. package/dist/app-host/foreground-wake.js.map +1 -0
  108. package/dist/app-host/handover.d.ts +27 -0
  109. package/dist/app-host/handover.js +82 -0
  110. package/dist/app-host/handover.js.map +1 -0
  111. package/dist/app-host/http-log.d.ts +96 -0
  112. package/dist/app-host/http-log.js +609 -0
  113. package/dist/app-host/http-log.js.map +1 -0
  114. package/dist/app-host/index.d.ts +63 -0
  115. package/dist/app-host/index.js +33 -0
  116. package/dist/app-host/index.js.map +1 -0
  117. package/dist/app-host/initial-sync.d.ts +22 -0
  118. package/dist/app-host/initial-sync.js +41 -0
  119. package/dist/app-host/initial-sync.js.map +1 -0
  120. package/dist/app-host/installation-sign-in.d.ts +319 -0
  121. package/dist/app-host/installation-sign-in.js +1231 -0
  122. package/dist/app-host/installation-sign-in.js.map +1 -0
  123. package/dist/app-host/installation-store.d.ts +56 -0
  124. package/dist/app-host/installation-store.js +285 -0
  125. package/dist/app-host/installation-store.js.map +1 -0
  126. package/dist/app-host/ledger-rows.d.ts +3 -0
  127. package/dist/app-host/ledger-rows.js +23 -0
  128. package/dist/app-host/ledger-rows.js.map +1 -0
  129. package/dist/app-host/local-facade.d.ts +24 -0
  130. package/dist/app-host/local-facade.js +361 -0
  131. package/dist/app-host/local-facade.js.map +1 -0
  132. package/dist/app-host/log-pump.d.ts +124 -0
  133. package/dist/app-host/log-pump.js +326 -0
  134. package/dist/app-host/log-pump.js.map +1 -0
  135. package/dist/app-host/log-push.d.ts +90 -0
  136. package/dist/app-host/log-push.js +377 -0
  137. package/dist/app-host/log-push.js.map +1 -0
  138. package/dist/app-host/log-token-cache.d.ts +28 -0
  139. package/dist/app-host/log-token-cache.js +104 -0
  140. package/dist/app-host/log-token-cache.js.map +1 -0
  141. package/dist/app-host/native-sign-in.d.ts +27 -0
  142. package/dist/app-host/native-sign-in.js +12 -0
  143. package/dist/app-host/native-sign-in.js.map +1 -0
  144. package/dist/app-host/noise-custody.d.ts +62 -0
  145. package/dist/app-host/noise-custody.js +238 -0
  146. package/dist/app-host/noise-custody.js.map +1 -0
  147. package/dist/app-host/noise-idb.d.ts +33 -0
  148. package/dist/app-host/noise-idb.js +199 -0
  149. package/dist/app-host/noise-idb.js.map +1 -0
  150. package/dist/app-host/open-wait.d.ts +3 -0
  151. package/dist/app-host/open-wait.js +17 -0
  152. package/dist/app-host/open-wait.js.map +1 -0
  153. package/dist/app-host/opening-progress.d.ts +3 -0
  154. package/dist/app-host/opening-progress.js +5 -0
  155. package/dist/app-host/opening-progress.js.map +1 -0
  156. package/dist/app-host/owner.d.ts +103 -0
  157. package/dist/app-host/owner.js +262 -0
  158. package/dist/app-host/owner.js.map +1 -0
  159. package/dist/app-host/private-bootstrap.d.ts +78 -0
  160. package/dist/app-host/private-bootstrap.js +230 -0
  161. package/dist/app-host/private-bootstrap.js.map +1 -0
  162. package/dist/app-host/private-persistence-idb.d.ts +32 -0
  163. package/dist/app-host/private-persistence-idb.js +188 -0
  164. package/dist/app-host/private-persistence-idb.js.map +1 -0
  165. package/dist/app-host/private-persistence.d.ts +55 -0
  166. package/dist/app-host/private-persistence.js +257 -0
  167. package/dist/app-host/private-persistence.js.map +1 -0
  168. package/dist/app-host/scoped-sign-in-session.d.ts +49 -0
  169. package/dist/app-host/scoped-sign-in-session.js +243 -0
  170. package/dist/app-host/scoped-sign-in-session.js.map +1 -0
  171. package/dist/app-host/setup-engine.d.ts +14 -0
  172. package/dist/app-host/setup-engine.js +73 -0
  173. package/dist/app-host/setup-engine.js.map +1 -0
  174. package/dist/app-host/sign-out-erase.d.ts +37 -0
  175. package/dist/app-host/sign-out-erase.js +139 -0
  176. package/dist/app-host/sign-out-erase.js.map +1 -0
  177. package/dist/app-host/status.d.ts +62 -0
  178. package/dist/app-host/status.js +43 -0
  179. package/dist/app-host/status.js.map +1 -0
  180. package/dist/app-host/storage-probe.d.ts +46 -0
  181. package/dist/app-host/storage-probe.js +63 -0
  182. package/dist/app-host/storage-probe.js.map +1 -0
  183. package/dist/app-host/timer-port.d.ts +29 -0
  184. package/dist/app-host/timer-port.js +483 -0
  185. package/dist/app-host/timer-port.js.map +1 -0
  186. package/dist/app-host/wasm-runtime.d.ts +302 -0
  187. package/dist/app-host/wasm-runtime.js +1050 -0
  188. package/dist/app-host/wasm-runtime.js.map +1 -0
  189. package/dist/app-host/web-collection.d.ts +78 -0
  190. package/dist/app-host/web-collection.js +671 -0
  191. package/dist/app-host/web-collection.js.map +1 -0
  192. package/dist/app-host/web-sign-in-problem.d.ts +17 -0
  193. package/dist/app-host/web-sign-in-problem.js +59 -0
  194. package/dist/app-host/web-sign-in-problem.js.map +1 -0
  195. package/dist/app-host/web-sign-in-session.d.ts +367 -0
  196. package/dist/app-host/web-sign-in-session.js +1258 -0
  197. package/dist/app-host/web-sign-in-session.js.map +1 -0
  198. package/dist/app-storage/app-binary-index.d.ts +33 -0
  199. package/dist/app-storage/app-binary-index.js +274 -0
  200. package/dist/app-storage/app-binary-index.js.map +1 -0
  201. package/dist/app-storage/app-sqlite-index.d.ts +40 -0
  202. package/dist/app-storage/app-sqlite-index.js +102 -0
  203. package/dist/app-storage/app-sqlite-index.js.map +1 -0
  204. package/dist/app-storage/collection-sql.d.ts +39 -0
  205. package/dist/app-storage/collection-sql.js +93 -0
  206. package/dist/app-storage/collection-sql.js.map +1 -0
  207. package/dist/app-storage/index.d.ts +10 -0
  208. package/dist/app-storage/index.js +7 -0
  209. package/dist/app-storage/index.js.map +1 -0
  210. package/dist/app-storage/sqlite-index.d.ts +95 -0
  211. package/dist/app-storage/sqlite-index.js +280 -0
  212. package/dist/app-storage/sqlite-index.js.map +1 -0
  213. package/dist/application/asset-loader.d.ts +22 -0
  214. package/dist/application/asset-loader.js +130 -0
  215. package/dist/application/asset-loader.js.map +1 -0
  216. package/dist/application/asset-pins.json +24 -0
  217. package/dist/application/browser-capabilities.d.ts +48 -0
  218. package/dist/application/browser-capabilities.js +87 -0
  219. package/dist/application/browser-capabilities.js.map +1 -0
  220. package/dist/application/browser-selection.d.ts +58 -0
  221. package/dist/application/browser-selection.js +160 -0
  222. package/dist/application/browser-selection.js.map +1 -0
  223. package/dist/application/capabilities.d.ts +20 -0
  224. package/dist/application/capabilities.js +22 -0
  225. package/dist/application/capabilities.js.map +1 -0
  226. package/dist/application/collection-selection.d.ts +147 -0
  227. package/dist/application/collection-selection.js +351 -0
  228. package/dist/application/collection-selection.js.map +1 -0
  229. package/dist/application/configuration.d.ts +52 -0
  230. package/dist/application/configuration.js +568 -0
  231. package/dist/application/configuration.js.map +1 -0
  232. package/dist/application/declaration.d.ts +51 -0
  233. package/dist/application/declaration.js +100 -0
  234. package/dist/application/declaration.js.map +1 -0
  235. package/dist/application/entry.d.ts +343 -0
  236. package/dist/application/entry.js +945 -0
  237. package/dist/application/entry.js.map +1 -0
  238. package/dist/application/file-access.d.ts +55 -0
  239. package/dist/application/file-access.js +93 -0
  240. package/dist/application/file-access.js.map +1 -0
  241. package/dist/application/file-readiness.d.ts +16 -0
  242. package/dist/application/file-readiness.js +53 -0
  243. package/dist/application/file-readiness.js.map +1 -0
  244. package/dist/application/forgotten.d.ts +15 -0
  245. package/dist/application/forgotten.js +70 -0
  246. package/dist/application/forgotten.js.map +1 -0
  247. package/dist/application/front-door.d.ts +68 -0
  248. package/dist/application/front-door.js +66 -0
  249. package/dist/application/front-door.js.map +1 -0
  250. package/dist/application/local-build.d.ts +5 -0
  251. package/dist/application/local-build.js +22 -0
  252. package/dist/application/local-build.js.map +1 -0
  253. package/dist/application/manifest.d.ts +16 -0
  254. package/dist/application/manifest.js +31 -0
  255. package/dist/application/manifest.js.map +1 -0
  256. package/dist/application/native-assets.d.ts +25 -0
  257. package/dist/application/native-assets.js +29 -0
  258. package/dist/application/native-assets.js.map +1 -0
  259. package/dist/application/native-authorization-rpc.d.ts +23 -0
  260. package/dist/application/native-authorization-rpc.js +54 -0
  261. package/dist/application/native-authorization-rpc.js.map +1 -0
  262. package/dist/application/notification-readiness.d.ts +33 -0
  263. package/dist/application/notification-readiness.js +222 -0
  264. package/dist/application/notification-readiness.js.map +1 -0
  265. package/dist/application/packaged-assets.d.ts +5 -0
  266. package/dist/application/packaged-assets.js +55 -0
  267. package/dist/application/packaged-assets.js.map +1 -0
  268. package/dist/application/packaged-trust.d.ts +5 -0
  269. package/dist/application/packaged-trust.js +10 -0
  270. package/dist/application/packaged-trust.js.map +1 -0
  271. package/dist/application/people-readiness.d.ts +23 -0
  272. package/dist/application/people-readiness.js +213 -0
  273. package/dist/application/people-readiness.js.map +1 -0
  274. package/dist/application/phase.d.ts +108 -0
  275. package/dist/application/phase.js +113 -0
  276. package/dist/application/phase.js.map +1 -0
  277. package/dist/application/portal-reservation.d.ts +38 -0
  278. package/dist/application/portal-reservation.js +183 -0
  279. package/dist/application/portal-reservation.js.map +1 -0
  280. package/dist/application/private-collections.d.ts +114 -0
  281. package/dist/application/private-collections.js +415 -0
  282. package/dist/application/private-collections.js.map +1 -0
  283. package/dist/application/readiness.d.ts +59 -0
  284. package/dist/application/readiness.js +223 -0
  285. package/dist/application/readiness.js.map +1 -0
  286. package/dist/application/registration-refusal.d.ts +16 -0
  287. package/dist/application/registration-refusal.js +41 -0
  288. package/dist/application/registration-refusal.js.map +1 -0
  289. package/dist/application/registration.d.ts +26 -0
  290. package/dist/application/registration.js +372 -0
  291. package/dist/application/registration.js.map +1 -0
  292. package/dist/application/return-url.d.ts +1 -0
  293. package/dist/application/return-url.js +41 -0
  294. package/dist/application/return-url.js.map +1 -0
  295. package/dist/application/runtime.d.ts +107 -0
  296. package/dist/application/runtime.js +379 -0
  297. package/dist/application/runtime.js.map +1 -0
  298. package/dist/application/scope.d.ts +34 -0
  299. package/dist/application/scope.js +164 -0
  300. package/dist/application/scope.js.map +1 -0
  301. package/dist/application/session-hint.d.ts +21 -0
  302. package/dist/application/session-hint.js +87 -0
  303. package/dist/application/session-hint.js.map +1 -0
  304. package/dist/application/setup.d.ts +105 -0
  305. package/dist/application/setup.js +137 -0
  306. package/dist/application/setup.js.map +1 -0
  307. package/dist/application/sign-out.d.ts +17 -0
  308. package/dist/application/sign-out.js +28 -0
  309. package/dist/application/sign-out.js.map +1 -0
  310. package/dist/application/storage-scope.d.ts +8 -0
  311. package/dist/application/storage-scope.js +15 -0
  312. package/dist/application/storage-scope.js.map +1 -0
  313. package/dist/application/tabs.d.ts +98 -0
  314. package/dist/application/tabs.js +407 -0
  315. package/dist/application/tabs.js.map +1 -0
  316. package/dist/application/timer-criteria.d.ts +5 -0
  317. package/dist/application/timer-criteria.js +15 -0
  318. package/dist/application/timer-criteria.js.map +1 -0
  319. package/dist/application/ui-connections.d.ts +35 -0
  320. package/dist/application/ui-connections.js +129 -0
  321. package/dist/application/ui-connections.js.map +1 -0
  322. package/dist/application/worker-client.d.ts +59 -0
  323. package/dist/application/worker-client.js +381 -0
  324. package/dist/application/worker-client.js.map +1 -0
  325. package/dist/application/worker-host.d.ts +84 -0
  326. package/dist/application/worker-host.js +547 -0
  327. package/dist/application/worker-host.js.map +1 -0
  328. package/dist/application/worker-protocol.d.ts +40 -0
  329. package/dist/application/worker-protocol.js +83 -0
  330. package/dist/application/worker-protocol.js.map +1 -0
  331. package/dist/application/worker-session.d.ts +45 -0
  332. package/dist/application/worker-session.js +37 -0
  333. package/dist/application/worker-session.js.map +1 -0
  334. package/dist/application/worker.d.ts +1 -0
  335. package/dist/application/worker.js +34826 -0
  336. package/dist/application/worker.js.map +1 -0
  337. package/dist/attachment-wire.d.ts +15 -0
  338. package/dist/attachment-wire.js +47 -0
  339. package/dist/attachment-wire.js.map +1 -0
  340. package/dist/browser/mdbase-sdk.js +49392 -0
  341. package/dist/browser/mdbase-sdk.min.js +130 -0
  342. package/dist/browser.d.ts +4 -0
  343. package/dist/browser.js +5 -0
  344. package/dist/browser.js.map +1 -0
  345. package/dist/cbor.d.ts +52 -0
  346. package/dist/cbor.js +480 -0
  347. package/dist/cbor.js.map +1 -0
  348. package/dist/client.d.ts +656 -0
  349. package/dist/client.js +1962 -0
  350. package/dist/client.js.map +1 -0
  351. package/dist/codec.d.ts +82 -0
  352. package/dist/codec.js +388 -0
  353. package/dist/codec.js.map +1 -0
  354. package/dist/collection-availability.d.ts +34 -0
  355. package/dist/collection-availability.js +63 -0
  356. package/dist/collection-availability.js.map +1 -0
  357. package/dist/contract-query.d.ts +31 -0
  358. package/dist/contract-query.js +13 -0
  359. package/dist/contract-query.js.map +1 -0
  360. package/dist/contract-records.d.ts +51 -0
  361. package/dist/contract-records.js +14 -0
  362. package/dist/contract-records.js.map +1 -0
  363. package/dist/describe-error.d.ts +61 -0
  364. package/dist/describe-error.js +452 -0
  365. package/dist/describe-error.js.map +1 -0
  366. package/dist/errors.d.ts +65 -0
  367. package/dist/errors.js +94 -0
  368. package/dist/errors.js.map +1 -0
  369. package/dist/files.d.ts +147 -0
  370. package/dist/files.js +537 -0
  371. package/dist/files.js.map +1 -0
  372. package/dist/holds.d.ts +74 -0
  373. package/dist/holds.js +118 -0
  374. package/dist/holds.js.map +1 -0
  375. package/dist/index.d.ts +36 -0
  376. package/dist/index.js +22 -0
  377. package/dist/index.js.map +1 -0
  378. package/dist/keys.d.ts +40 -0
  379. package/dist/keys.js +181 -0
  380. package/dist/keys.js.map +1 -0
  381. package/dist/live.d.ts +38 -0
  382. package/dist/live.js +82 -0
  383. package/dist/live.js.map +1 -0
  384. package/dist/local-build.d.ts +9 -0
  385. package/dist/local-build.js +33 -0
  386. package/dist/local-build.js.map +1 -0
  387. package/dist/native/provenance.json +23 -0
  388. package/dist/native/runtime.wasm +0 -0
  389. package/dist/native/sqlite3.d.ts +5 -0
  390. package/dist/native/sqlite3.js +17392 -0
  391. package/dist/native/sqlite3.js.map +1 -0
  392. package/dist/native/sqlite3.wasm +0 -0
  393. package/dist/node.d.ts +63 -0
  394. package/dist/node.js +255 -0
  395. package/dist/node.js.map +1 -0
  396. package/dist/notifications.d.ts +95 -0
  397. package/dist/notifications.js +226 -0
  398. package/dist/notifications.js.map +1 -0
  399. package/dist/offline-shell-build.d.ts +25 -0
  400. package/dist/offline-shell-build.js +78 -0
  401. package/dist/offline-shell-build.js.map +1 -0
  402. package/dist/offline-shell-worker.d.ts +46 -0
  403. package/dist/offline-shell-worker.js +115 -0
  404. package/dist/offline-shell-worker.js.map +1 -0
  405. package/dist/people.d.ts +82 -0
  406. package/dist/people.js +199 -0
  407. package/dist/people.js.map +1 -0
  408. package/dist/presence.d.ts +21 -0
  409. package/dist/presence.js +109 -0
  410. package/dist/presence.js.map +1 -0
  411. package/dist/private-account.d.ts +197 -0
  412. package/dist/private-account.js +510 -0
  413. package/dist/private-account.js.map +1 -0
  414. package/dist/private.d.ts +55 -0
  415. package/dist/private.js +69 -0
  416. package/dist/private.js.map +1 -0
  417. package/dist/read-helpers.d.ts +32 -0
  418. package/dist/read-helpers.js +181 -0
  419. package/dist/read-helpers.js.map +1 -0
  420. package/dist/records/session.d.ts +60 -0
  421. package/dist/records/session.js +534 -0
  422. package/dist/records/session.js.map +1 -0
  423. package/dist/records/types.d.ts +76 -0
  424. package/dist/records/types.js +2 -0
  425. package/dist/records/types.js.map +1 -0
  426. package/dist/records/witness.d.ts +19 -0
  427. package/dist/records/witness.js +64 -0
  428. package/dist/records/witness.js.map +1 -0
  429. package/dist/records.d.ts +23 -0
  430. package/dist/records.js +234 -0
  431. package/dist/records.js.map +1 -0
  432. package/dist/runtime/wasm.d.ts +69 -0
  433. package/dist/runtime/wasm.js +274 -0
  434. package/dist/runtime/wasm.js.map +1 -0
  435. package/dist/runtime-wire.d.ts +71 -0
  436. package/dist/runtime-wire.js +71 -0
  437. package/dist/runtime-wire.js.map +1 -0
  438. package/dist/saved-views.d.ts +29 -0
  439. package/dist/saved-views.js +171 -0
  440. package/dist/saved-views.js.map +1 -0
  441. package/dist/semver.d.ts +22 -0
  442. package/dist/semver.js +63 -0
  443. package/dist/semver.js.map +1 -0
  444. package/dist/session.d.ts +65 -0
  445. package/dist/session.js +332 -0
  446. package/dist/session.js.map +1 -0
  447. package/dist/status.d.ts +46 -0
  448. package/dist/status.js +59 -0
  449. package/dist/status.js.map +1 -0
  450. package/dist/strength.d.ts +12 -0
  451. package/dist/strength.js +194 -0
  452. package/dist/strength.js.map +1 -0
  453. package/dist/testing/application.d.ts +59 -0
  454. package/dist/testing/application.js +230 -0
  455. package/dist/testing/application.js.map +1 -0
  456. package/dist/testing/index.d.ts +10 -0
  457. package/dist/testing/index.js +6 -0
  458. package/dist/testing/index.js.map +1 -0
  459. package/dist/testing/memory-contracts.d.ts +40 -0
  460. package/dist/testing/memory-contracts.js +127 -0
  461. package/dist/testing/memory-contracts.js.map +1 -0
  462. package/dist/testing/memory-replica.d.ts +191 -0
  463. package/dist/testing/memory-replica.js +1465 -0
  464. package/dist/testing/memory-replica.js.map +1 -0
  465. package/dist/testing/noise-server.d.ts +11 -0
  466. package/dist/testing/noise-server.js +65 -0
  467. package/dist/testing/noise-server.js.map +1 -0
  468. package/dist/testing/test-app.d.ts +93 -0
  469. package/dist/testing/test-app.js +140 -0
  470. package/dist/testing/test-app.js.map +1 -0
  471. package/dist/thin-client.d.ts +67 -0
  472. package/dist/thin-client.js +42 -0
  473. package/dist/thin-client.js.map +1 -0
  474. package/dist/timers.d.ts +158 -0
  475. package/dist/timers.js +258 -0
  476. package/dist/timers.js.map +1 -0
  477. package/dist/transport/bases-rpc.d.ts +15 -0
  478. package/dist/transport/bases-rpc.js +61 -0
  479. package/dist/transport/bases-rpc.js.map +1 -0
  480. package/dist/transport/control-route.d.ts +34 -0
  481. package/dist/transport/control-route.js +84 -0
  482. package/dist/transport/control-route.js.map +1 -0
  483. package/dist/transport/inprocess.d.ts +13 -0
  484. package/dist/transport/inprocess.js +37 -0
  485. package/dist/transport/inprocess.js.map +1 -0
  486. package/dist/transport/local-link.d.ts +53 -0
  487. package/dist/transport/local-link.js +66 -0
  488. package/dist/transport/local-link.js.map +1 -0
  489. package/dist/transport/next-relay.d.ts +64 -0
  490. package/dist/transport/next-relay.js +222 -0
  491. package/dist/transport/next-relay.js.map +1 -0
  492. package/dist/transport/noise-session.d.ts +88 -0
  493. package/dist/transport/noise-session.js +264 -0
  494. package/dist/transport/noise-session.js.map +1 -0
  495. package/dist/transport/noise.d.ts +102 -0
  496. package/dist/transport/noise.js +307 -0
  497. package/dist/transport/noise.js.map +1 -0
  498. package/dist/transport/original-session.d.ts +6 -0
  499. package/dist/transport/original-session.js +6 -0
  500. package/dist/transport/original-session.js.map +1 -0
  501. package/dist/transport/port.d.ts +67 -0
  502. package/dist/transport/port.js +184 -0
  503. package/dist/transport/port.js.map +1 -0
  504. package/dist/transport/read-fence-policy.d.ts +3 -0
  505. package/dist/transport/read-fence-policy.js +11 -0
  506. package/dist/transport/read-fence-policy.js.map +1 -0
  507. package/dist/transport/relay-close.d.ts +31 -0
  508. package/dist/transport/relay-close.js +23 -0
  509. package/dist/transport/relay-close.js.map +1 -0
  510. package/dist/transport/relay-pipe.d.ts +15 -0
  511. package/dist/transport/relay-pipe.js +190 -0
  512. package/dist/transport/relay-pipe.js.map +1 -0
  513. package/dist/transport/relay.d.ts +36 -0
  514. package/dist/transport/relay.js +45 -0
  515. package/dist/transport/relay.js.map +1 -0
  516. package/dist/type-packs.d.ts +124 -0
  517. package/dist/type-packs.js +188 -0
  518. package/dist/type-packs.js.map +1 -0
  519. package/dist/validation.d.ts +30 -0
  520. package/dist/validation.js +125 -0
  521. package/dist/validation.js.map +1 -0
  522. package/dist/values.d.ts +37 -0
  523. package/dist/values.js +133 -0
  524. package/dist/values.js.map +1 -0
  525. package/dist/view-sources.d.ts +31 -0
  526. package/dist/view-sources.js +78 -0
  527. package/dist/view-sources.js.map +1 -0
  528. package/dist/wire.d.ts +856 -0
  529. package/dist/wire.js +914 -0
  530. package/dist/wire.js.map +1 -0
  531. package/dist/witness.d.ts +7 -0
  532. package/dist/witness.js +82 -0
  533. package/dist/witness.js.map +1 -0
  534. package/dist/write-ledger.d.ts +41 -0
  535. package/dist/write-ledger.js +184 -0
  536. package/dist/write-ledger.js.map +1 -0
  537. package/node_modules/@mdbase-dev/connect-protocol/dist/application-authorization.d.ts +32 -0
  538. package/node_modules/@mdbase-dev/connect-protocol/dist/application-authorization.js +207 -0
  539. package/node_modules/@mdbase-dev/connect-protocol/dist/application-contract.d.ts +23 -0
  540. package/node_modules/@mdbase-dev/connect-protocol/dist/application-contract.js +76 -0
  541. package/node_modules/@mdbase-dev/connect-protocol/dist/application-declaration.d.ts +120 -0
  542. package/node_modules/@mdbase-dev/connect-protocol/dist/application-declaration.js +1 -0
  543. package/node_modules/@mdbase-dev/connect-protocol/dist/authorization-errors.d.ts +34 -0
  544. package/node_modules/@mdbase-dev/connect-protocol/dist/authorization-errors.js +52 -0
  545. package/node_modules/@mdbase-dev/connect-protocol/dist/capabilities.d.ts +73 -0
  546. package/node_modules/@mdbase-dev/connect-protocol/dist/capabilities.js +92 -0
  547. package/node_modules/@mdbase-dev/connect-protocol/dist/change-events.generated.d.ts +48 -0
  548. package/node_modules/@mdbase-dev/connect-protocol/dist/change-events.generated.js +18 -0
  549. package/node_modules/@mdbase-dev/connect-protocol/dist/collection-setup.d.ts +93 -0
  550. package/node_modules/@mdbase-dev/connect-protocol/dist/collection-setup.js +7 -0
  551. package/node_modules/@mdbase-dev/connect-protocol/dist/compatibility.d.ts +37 -0
  552. package/node_modules/@mdbase-dev/connect-protocol/dist/compatibility.js +65 -0
  553. package/node_modules/@mdbase-dev/connect-protocol/dist/connect-problems.generated.d.ts +1533 -0
  554. package/node_modules/@mdbase-dev/connect-protocol/dist/connect-problems.generated.js +598 -0
  555. package/node_modules/@mdbase-dev/connect-protocol/dist/files.d.ts +288 -0
  556. package/node_modules/@mdbase-dev/connect-protocol/dist/files.js +426 -0
  557. package/node_modules/@mdbase-dev/connect-protocol/dist/index.d.ts +723 -0
  558. package/node_modules/@mdbase-dev/connect-protocol/dist/index.js +104 -0
  559. package/node_modules/@mdbase-dev/connect-protocol/dist/manifest-validators.generated.d.ts +13 -0
  560. package/node_modules/@mdbase-dev/connect-protocol/dist/manifest-validators.generated.js +7940 -0
  561. package/node_modules/@mdbase-dev/connect-protocol/dist/manifest.d.ts +72 -0
  562. package/node_modules/@mdbase-dev/connect-protocol/dist/manifest.js +643 -0
  563. package/node_modules/@mdbase-dev/connect-protocol/dist/mutation-fingerprint.d.ts +6 -0
  564. package/node_modules/@mdbase-dev/connect-protocol/dist/mutation-fingerprint.js +116 -0
  565. package/node_modules/@mdbase-dev/connect-protocol/dist/next-authorization.d.ts +30 -0
  566. package/node_modules/@mdbase-dev/connect-protocol/dist/next-authorization.js +90 -0
  567. package/node_modules/@mdbase-dev/connect-protocol/dist/operations.d.ts +15 -0
  568. package/node_modules/@mdbase-dev/connect-protocol/dist/operations.js +196 -0
  569. package/node_modules/@mdbase-dev/connect-protocol/dist/people.d.ts +33 -0
  570. package/node_modules/@mdbase-dev/connect-protocol/dist/people.js +26 -0
  571. package/node_modules/@mdbase-dev/connect-protocol/dist/records.d.ts +108 -0
  572. package/node_modules/@mdbase-dev/connect-protocol/dist/records.js +3 -0
  573. package/node_modules/@mdbase-dev/connect-protocol/dist/type-packs.d.ts +154 -0
  574. package/node_modules/@mdbase-dev/connect-protocol/dist/type-packs.js +30 -0
  575. package/node_modules/@mdbase-dev/connect-protocol/package.json +49 -0
  576. package/node_modules/@mdbase-dev/connect-protocol/schemas/application-capability-catalog.v1.json +40 -0
  577. package/node_modules/@mdbase-dev/connect-protocol/schemas/application-capability-catalog.v2.json +68 -0
  578. package/node_modules/@mdbase-dev/connect-protocol/schemas/catalog.json +17 -0
  579. package/node_modules/@mdbase-dev/connect-protocol/schemas/change-events.v1.json +48 -0
  580. package/node_modules/@mdbase-dev/connect-protocol/schemas/connect-problem.v1.schema.json +5665 -0
  581. package/node_modules/@mdbase-dev/connect-protocol/schemas/connect-problems.v1.catalog.json +373 -0
  582. package/node_modules/@mdbase-dev/connect-protocol/schemas/connect-protocol.v1.schema.json +901 -0
  583. package/node_modules/@mdbase-dev/connect-protocol/schemas/data-contract.schema.json +163 -0
  584. package/node_modules/@mdbase-dev/connect-protocol/schemas/encrypted-relay.v1.schema.json +63 -0
  585. package/node_modules/@mdbase-dev/connect-protocol/schemas/encrypted-relay.v2.schema.json +63 -0
  586. package/node_modules/@mdbase-dev/connect-protocol/schemas/encrypted-relay.v3.schema.json +64 -0
  587. package/node_modules/@mdbase-dev/connect-protocol/schemas/files.v1.schema.json +551 -0
  588. package/node_modules/@mdbase-dev/connect-protocol/schemas/interop/v0.1/action-cancellation.schema.json +6 -0
  589. package/node_modules/@mdbase-dev/connect-protocol/schemas/interop/v0.1/action-invocation.schema.json +6 -0
  590. package/node_modules/@mdbase-dev/connect-protocol/schemas/interop/v0.1/action-outcome.schema.json +6 -0
  591. package/node_modules/@mdbase-dev/connect-protocol/schemas/interop/v0.1/action-provider-declaration.schema.json +6 -0
  592. package/node_modules/@mdbase-dev/connect-protocol/schemas/interop/v0.1/action-request.schema.json +6 -0
  593. package/node_modules/@mdbase-dev/connect-protocol/schemas/interop/v0.1/conformance-claim.schema.json +6 -0
  594. package/node_modules/@mdbase-dev/connect-protocol/schemas/interop/v0.1/event-source-declaration.schema.json +6 -0
  595. package/node_modules/@mdbase-dev/connect-protocol/schemas/interop/v0.1/event.schema.json +6 -0
  596. package/node_modules/@mdbase-dev/connect-protocol/schemas/interop/v0.1/profile.schema.json +456 -0
  597. package/node_modules/@mdbase-dev/connect-protocol/schemas/mdbase-app.legacy-v1.schema.json +430 -0
  598. package/node_modules/@mdbase-dev/connect-protocol/schemas/mdbase-app.schema.json +437 -0
  599. package/node_modules/@mdbase-dev/connect-protocol/schemas/mdbase-query.v0.3.schema.json +176 -0
  600. package/node_modules/@mdbase-dev/connect-protocol/schemas/next-trust.v1.schema.json +54 -0
  601. package/node_modules/@mdbase-dev/connect-protocol/schemas/notification-webhook.v1.schema.json +56 -0
  602. package/node_modules/@mdbase-dev/connect-protocol/schemas/operation-catalog.v1.json +43 -0
  603. package/node_modules/@mdbase-dev/connect-protocol/schemas/operation-mutation-classification.v1.json +554 -0
  604. package/node_modules/@mdbase-dev/connect-protocol/schemas/sync.v1.schema.json +483 -0
  605. package/node_modules/@noble/hashes/LICENSE +21 -0
  606. package/node_modules/@noble/hashes/README.md +478 -0
  607. package/node_modules/@noble/hashes/_blake.d.ts +20 -0
  608. package/node_modules/@noble/hashes/_blake.js +59 -0
  609. package/node_modules/@noble/hashes/_md.d.ts +95 -0
  610. package/node_modules/@noble/hashes/_md.js +209 -0
  611. package/node_modules/@noble/hashes/_u64.d.ts +36 -0
  612. package/node_modules/@noble/hashes/_u64.js +77 -0
  613. package/node_modules/@noble/hashes/argon2.d.ts +148 -0
  614. package/node_modules/@noble/hashes/argon2.js +577 -0
  615. package/node_modules/@noble/hashes/blake1.d.ts +162 -0
  616. package/node_modules/@noble/hashes/blake1.js +630 -0
  617. package/node_modules/@noble/hashes/blake2.d.ts +203 -0
  618. package/node_modules/@noble/hashes/blake2.js +573 -0
  619. package/node_modules/@noble/hashes/blake3.d.ts +68 -0
  620. package/node_modules/@noble/hashes/blake3.js +310 -0
  621. package/node_modules/@noble/hashes/eskdf.d.ts +91 -0
  622. package/node_modules/@noble/hashes/eskdf.js +225 -0
  623. package/node_modules/@noble/hashes/hkdf.d.ts +70 -0
  624. package/node_modules/@noble/hashes/hkdf.js +152 -0
  625. package/node_modules/@noble/hashes/hmac.d.ts +50 -0
  626. package/node_modules/@noble/hashes/hmac.js +93 -0
  627. package/node_modules/@noble/hashes/index.d.ts +1 -0
  628. package/node_modules/@noble/hashes/index.js +34 -0
  629. package/node_modules/@noble/hashes/legacy.d.ts +107 -0
  630. package/node_modules/@noble/hashes/legacy.js +348 -0
  631. package/node_modules/@noble/hashes/package.json +91 -0
  632. package/node_modules/@noble/hashes/pbkdf2.d.ts +66 -0
  633. package/node_modules/@noble/hashes/pbkdf2.js +176 -0
  634. package/node_modules/@noble/hashes/scrypt.d.ts +98 -0
  635. package/node_modules/@noble/hashes/scrypt.js +304 -0
  636. package/node_modules/@noble/hashes/sha2.d.ts +176 -0
  637. package/node_modules/@noble/hashes/sha2.js +446 -0
  638. package/node_modules/@noble/hashes/sha3-addons.d.ts +533 -0
  639. package/node_modules/@noble/hashes/sha3-addons.js +973 -0
  640. package/node_modules/@noble/hashes/sha3.d.ts +208 -0
  641. package/node_modules/@noble/hashes/sha3.js +475 -0
  642. package/node_modules/@noble/hashes/src/_blake.ts +67 -0
  643. package/node_modules/@noble/hashes/src/_md.ts +227 -0
  644. package/node_modules/@noble/hashes/src/_u64.ts +111 -0
  645. package/node_modules/@noble/hashes/src/argon2.ts +693 -0
  646. package/node_modules/@noble/hashes/src/blake1.ts +677 -0
  647. package/node_modules/@noble/hashes/src/blake2.ts +648 -0
  648. package/node_modules/@noble/hashes/src/blake3.ts +344 -0
  649. package/node_modules/@noble/hashes/src/eskdf.ts +265 -0
  650. package/node_modules/@noble/hashes/src/hkdf.ts +161 -0
  651. package/node_modules/@noble/hashes/src/hmac.ts +130 -0
  652. package/node_modules/@noble/hashes/src/index.ts +33 -0
  653. package/node_modules/@noble/hashes/src/legacy.ts +361 -0
  654. package/node_modules/@noble/hashes/src/pbkdf2.ts +219 -0
  655. package/node_modules/@noble/hashes/src/scrypt.ts +375 -0
  656. package/node_modules/@noble/hashes/src/sha2.ts +486 -0
  657. package/node_modules/@noble/hashes/src/sha3-addons.ts +1157 -0
  658. package/node_modules/@noble/hashes/src/sha3.ts +525 -0
  659. package/node_modules/@noble/hashes/src/utils.ts +978 -0
  660. package/node_modules/@noble/hashes/src/webcrypto.ts +283 -0
  661. package/node_modules/@noble/hashes/utils.d.ts +560 -0
  662. package/node_modules/@noble/hashes/utils.js +687 -0
  663. package/node_modules/@noble/hashes/webcrypto.d.ts +121 -0
  664. package/node_modules/@noble/hashes/webcrypto.js +228 -0
  665. package/node_modules/yaml/LICENSE +13 -0
  666. package/node_modules/yaml/README.md +172 -0
  667. package/node_modules/yaml/bin.mjs +11 -0
  668. package/node_modules/yaml/browser/dist/compose/compose-collection.js +88 -0
  669. package/node_modules/yaml/browser/dist/compose/compose-doc.js +43 -0
  670. package/node_modules/yaml/browser/dist/compose/compose-node.js +109 -0
  671. package/node_modules/yaml/browser/dist/compose/compose-scalar.js +86 -0
  672. package/node_modules/yaml/browser/dist/compose/composer.js +219 -0
  673. package/node_modules/yaml/browser/dist/compose/resolve-block-map.js +115 -0
  674. package/node_modules/yaml/browser/dist/compose/resolve-block-scalar.js +198 -0
  675. package/node_modules/yaml/browser/dist/compose/resolve-block-seq.js +49 -0
  676. package/node_modules/yaml/browser/dist/compose/resolve-end.js +37 -0
  677. package/node_modules/yaml/browser/dist/compose/resolve-flow-collection.js +207 -0
  678. package/node_modules/yaml/browser/dist/compose/resolve-flow-scalar.js +226 -0
  679. package/node_modules/yaml/browser/dist/compose/resolve-props.js +146 -0
  680. package/node_modules/yaml/browser/dist/compose/util-contains-newline.js +34 -0
  681. package/node_modules/yaml/browser/dist/compose/util-empty-scalar-position.js +26 -0
  682. package/node_modules/yaml/browser/dist/compose/util-flow-indent-check.js +15 -0
  683. package/node_modules/yaml/browser/dist/compose/util-map-includes.js +13 -0
  684. package/node_modules/yaml/browser/dist/doc/Document.js +335 -0
  685. package/node_modules/yaml/browser/dist/doc/anchors.js +71 -0
  686. package/node_modules/yaml/browser/dist/doc/applyReviver.js +55 -0
  687. package/node_modules/yaml/browser/dist/doc/createNode.js +88 -0
  688. package/node_modules/yaml/browser/dist/doc/directives.js +176 -0
  689. package/node_modules/yaml/browser/dist/errors.js +57 -0
  690. package/node_modules/yaml/browser/dist/index.js +17 -0
  691. package/node_modules/yaml/browser/dist/log.js +11 -0
  692. package/node_modules/yaml/browser/dist/nodes/Alias.js +118 -0
  693. package/node_modules/yaml/browser/dist/nodes/Collection.js +147 -0
  694. package/node_modules/yaml/browser/dist/nodes/Node.js +38 -0
  695. package/node_modules/yaml/browser/dist/nodes/Pair.js +36 -0
  696. package/node_modules/yaml/browser/dist/nodes/Scalar.js +24 -0
  697. package/node_modules/yaml/browser/dist/nodes/YAMLMap.js +144 -0
  698. package/node_modules/yaml/browser/dist/nodes/YAMLSeq.js +113 -0
  699. package/node_modules/yaml/browser/dist/nodes/addPairToJSMap.js +63 -0
  700. package/node_modules/yaml/browser/dist/nodes/identity.js +36 -0
  701. package/node_modules/yaml/browser/dist/nodes/toJS.js +37 -0
  702. package/node_modules/yaml/browser/dist/parse/cst-scalar.js +214 -0
  703. package/node_modules/yaml/browser/dist/parse/cst-stringify.js +61 -0
  704. package/node_modules/yaml/browser/dist/parse/cst-visit.js +97 -0
  705. package/node_modules/yaml/browser/dist/parse/cst.js +98 -0
  706. package/node_modules/yaml/browser/dist/parse/lexer.js +721 -0
  707. package/node_modules/yaml/browser/dist/parse/line-counter.js +39 -0
  708. package/node_modules/yaml/browser/dist/parse/parser.js +975 -0
  709. package/node_modules/yaml/browser/dist/public-api.js +102 -0
  710. package/node_modules/yaml/browser/dist/schema/Schema.js +37 -0
  711. package/node_modules/yaml/browser/dist/schema/common/map.js +17 -0
  712. package/node_modules/yaml/browser/dist/schema/common/null.js +15 -0
  713. package/node_modules/yaml/browser/dist/schema/common/seq.js +17 -0
  714. package/node_modules/yaml/browser/dist/schema/common/string.js +14 -0
  715. package/node_modules/yaml/browser/dist/schema/core/bool.js +19 -0
  716. package/node_modules/yaml/browser/dist/schema/core/float.js +43 -0
  717. package/node_modules/yaml/browser/dist/schema/core/int.js +38 -0
  718. package/node_modules/yaml/browser/dist/schema/core/schema.js +23 -0
  719. package/node_modules/yaml/browser/dist/schema/json/schema.js +62 -0
  720. package/node_modules/yaml/browser/dist/schema/tags.js +96 -0
  721. package/node_modules/yaml/browser/dist/schema/yaml-1.1/binary.js +58 -0
  722. package/node_modules/yaml/browser/dist/schema/yaml-1.1/bool.js +26 -0
  723. package/node_modules/yaml/browser/dist/schema/yaml-1.1/float.js +46 -0
  724. package/node_modules/yaml/browser/dist/schema/yaml-1.1/int.js +71 -0
  725. package/node_modules/yaml/browser/dist/schema/yaml-1.1/merge.js +67 -0
  726. package/node_modules/yaml/browser/dist/schema/yaml-1.1/omap.js +74 -0
  727. package/node_modules/yaml/browser/dist/schema/yaml-1.1/pairs.js +78 -0
  728. package/node_modules/yaml/browser/dist/schema/yaml-1.1/schema.js +39 -0
  729. package/node_modules/yaml/browser/dist/schema/yaml-1.1/set.js +93 -0
  730. package/node_modules/yaml/browser/dist/schema/yaml-1.1/timestamp.js +101 -0
  731. package/node_modules/yaml/browser/dist/stringify/foldFlowLines.js +146 -0
  732. package/node_modules/yaml/browser/dist/stringify/stringify.js +129 -0
  733. package/node_modules/yaml/browser/dist/stringify/stringifyCollection.js +153 -0
  734. package/node_modules/yaml/browser/dist/stringify/stringifyComment.js +20 -0
  735. package/node_modules/yaml/browser/dist/stringify/stringifyDocument.js +85 -0
  736. package/node_modules/yaml/browser/dist/stringify/stringifyNumber.js +25 -0
  737. package/node_modules/yaml/browser/dist/stringify/stringifyPair.js +150 -0
  738. package/node_modules/yaml/browser/dist/stringify/stringifyString.js +336 -0
  739. package/node_modules/yaml/browser/dist/util.js +11 -0
  740. package/node_modules/yaml/browser/dist/visit.js +233 -0
  741. package/node_modules/yaml/browser/index.js +5 -0
  742. package/node_modules/yaml/browser/package.json +3 -0
  743. package/node_modules/yaml/dist/cli.d.ts +8 -0
  744. package/node_modules/yaml/dist/cli.mjs +201 -0
  745. package/node_modules/yaml/dist/compose/compose-collection.d.ts +11 -0
  746. package/node_modules/yaml/dist/compose/compose-collection.js +90 -0
  747. package/node_modules/yaml/dist/compose/compose-doc.d.ts +7 -0
  748. package/node_modules/yaml/dist/compose/compose-doc.js +45 -0
  749. package/node_modules/yaml/dist/compose/compose-node.d.ts +29 -0
  750. package/node_modules/yaml/dist/compose/compose-node.js +112 -0
  751. package/node_modules/yaml/dist/compose/compose-scalar.d.ts +5 -0
  752. package/node_modules/yaml/dist/compose/compose-scalar.js +88 -0
  753. package/node_modules/yaml/dist/compose/composer.d.ts +63 -0
  754. package/node_modules/yaml/dist/compose/composer.js +224 -0
  755. package/node_modules/yaml/dist/compose/resolve-block-map.d.ts +6 -0
  756. package/node_modules/yaml/dist/compose/resolve-block-map.js +117 -0
  757. package/node_modules/yaml/dist/compose/resolve-block-scalar.d.ts +11 -0
  758. package/node_modules/yaml/dist/compose/resolve-block-scalar.js +200 -0
  759. package/node_modules/yaml/dist/compose/resolve-block-seq.d.ts +6 -0
  760. package/node_modules/yaml/dist/compose/resolve-block-seq.js +51 -0
  761. package/node_modules/yaml/dist/compose/resolve-end.d.ts +6 -0
  762. package/node_modules/yaml/dist/compose/resolve-end.js +39 -0
  763. package/node_modules/yaml/dist/compose/resolve-flow-collection.d.ts +7 -0
  764. package/node_modules/yaml/dist/compose/resolve-flow-collection.js +209 -0
  765. package/node_modules/yaml/dist/compose/resolve-flow-scalar.d.ts +10 -0
  766. package/node_modules/yaml/dist/compose/resolve-flow-scalar.js +228 -0
  767. package/node_modules/yaml/dist/compose/resolve-props.d.ts +23 -0
  768. package/node_modules/yaml/dist/compose/resolve-props.js +148 -0
  769. package/node_modules/yaml/dist/compose/util-contains-newline.d.ts +2 -0
  770. package/node_modules/yaml/dist/compose/util-contains-newline.js +36 -0
  771. package/node_modules/yaml/dist/compose/util-empty-scalar-position.d.ts +2 -0
  772. package/node_modules/yaml/dist/compose/util-empty-scalar-position.js +28 -0
  773. package/node_modules/yaml/dist/compose/util-flow-indent-check.d.ts +3 -0
  774. package/node_modules/yaml/dist/compose/util-flow-indent-check.js +17 -0
  775. package/node_modules/yaml/dist/compose/util-map-includes.d.ts +4 -0
  776. package/node_modules/yaml/dist/compose/util-map-includes.js +15 -0
  777. package/node_modules/yaml/dist/doc/Document.d.ts +141 -0
  778. package/node_modules/yaml/dist/doc/Document.js +337 -0
  779. package/node_modules/yaml/dist/doc/anchors.d.ts +24 -0
  780. package/node_modules/yaml/dist/doc/anchors.js +76 -0
  781. package/node_modules/yaml/dist/doc/applyReviver.d.ts +9 -0
  782. package/node_modules/yaml/dist/doc/applyReviver.js +57 -0
  783. package/node_modules/yaml/dist/doc/createNode.d.ts +17 -0
  784. package/node_modules/yaml/dist/doc/createNode.js +90 -0
  785. package/node_modules/yaml/dist/doc/directives.d.ts +49 -0
  786. package/node_modules/yaml/dist/doc/directives.js +178 -0
  787. package/node_modules/yaml/dist/errors.d.ts +21 -0
  788. package/node_modules/yaml/dist/errors.js +62 -0
  789. package/node_modules/yaml/dist/index.d.ts +25 -0
  790. package/node_modules/yaml/dist/index.js +50 -0
  791. package/node_modules/yaml/dist/log.d.ts +3 -0
  792. package/node_modules/yaml/dist/log.js +19 -0
  793. package/node_modules/yaml/dist/nodes/Alias.d.ts +29 -0
  794. package/node_modules/yaml/dist/nodes/Alias.js +120 -0
  795. package/node_modules/yaml/dist/nodes/Collection.d.ts +73 -0
  796. package/node_modules/yaml/dist/nodes/Collection.js +151 -0
  797. package/node_modules/yaml/dist/nodes/Node.d.ts +53 -0
  798. package/node_modules/yaml/dist/nodes/Node.js +40 -0
  799. package/node_modules/yaml/dist/nodes/Pair.d.ts +22 -0
  800. package/node_modules/yaml/dist/nodes/Pair.js +39 -0
  801. package/node_modules/yaml/dist/nodes/Scalar.d.ts +47 -0
  802. package/node_modules/yaml/dist/nodes/Scalar.js +27 -0
  803. package/node_modules/yaml/dist/nodes/YAMLMap.d.ts +53 -0
  804. package/node_modules/yaml/dist/nodes/YAMLMap.js +147 -0
  805. package/node_modules/yaml/dist/nodes/YAMLSeq.d.ts +60 -0
  806. package/node_modules/yaml/dist/nodes/YAMLSeq.js +115 -0
  807. package/node_modules/yaml/dist/nodes/addPairToJSMap.d.ts +4 -0
  808. package/node_modules/yaml/dist/nodes/addPairToJSMap.js +65 -0
  809. package/node_modules/yaml/dist/nodes/identity.d.ts +23 -0
  810. package/node_modules/yaml/dist/nodes/identity.js +53 -0
  811. package/node_modules/yaml/dist/nodes/toJS.d.ts +29 -0
  812. package/node_modules/yaml/dist/nodes/toJS.js +39 -0
  813. package/node_modules/yaml/dist/options.d.ts +350 -0
  814. package/node_modules/yaml/dist/parse/cst-scalar.d.ts +64 -0
  815. package/node_modules/yaml/dist/parse/cst-scalar.js +218 -0
  816. package/node_modules/yaml/dist/parse/cst-stringify.d.ts +8 -0
  817. package/node_modules/yaml/dist/parse/cst-stringify.js +63 -0
  818. package/node_modules/yaml/dist/parse/cst-visit.d.ts +39 -0
  819. package/node_modules/yaml/dist/parse/cst-visit.js +99 -0
  820. package/node_modules/yaml/dist/parse/cst.d.ts +109 -0
  821. package/node_modules/yaml/dist/parse/cst.js +112 -0
  822. package/node_modules/yaml/dist/parse/lexer.d.ts +87 -0
  823. package/node_modules/yaml/dist/parse/lexer.js +723 -0
  824. package/node_modules/yaml/dist/parse/line-counter.d.ts +22 -0
  825. package/node_modules/yaml/dist/parse/line-counter.js +41 -0
  826. package/node_modules/yaml/dist/parse/parser.d.ts +84 -0
  827. package/node_modules/yaml/dist/parse/parser.js +980 -0
  828. package/node_modules/yaml/dist/public-api.d.ts +44 -0
  829. package/node_modules/yaml/dist/public-api.js +107 -0
  830. package/node_modules/yaml/dist/schema/Schema.d.ts +17 -0
  831. package/node_modules/yaml/dist/schema/Schema.js +39 -0
  832. package/node_modules/yaml/dist/schema/common/map.d.ts +2 -0
  833. package/node_modules/yaml/dist/schema/common/map.js +19 -0
  834. package/node_modules/yaml/dist/schema/common/null.d.ts +4 -0
  835. package/node_modules/yaml/dist/schema/common/null.js +17 -0
  836. package/node_modules/yaml/dist/schema/common/seq.d.ts +2 -0
  837. package/node_modules/yaml/dist/schema/common/seq.js +19 -0
  838. package/node_modules/yaml/dist/schema/common/string.d.ts +2 -0
  839. package/node_modules/yaml/dist/schema/common/string.js +16 -0
  840. package/node_modules/yaml/dist/schema/core/bool.d.ts +4 -0
  841. package/node_modules/yaml/dist/schema/core/bool.js +21 -0
  842. package/node_modules/yaml/dist/schema/core/float.d.ts +4 -0
  843. package/node_modules/yaml/dist/schema/core/float.js +47 -0
  844. package/node_modules/yaml/dist/schema/core/int.d.ts +4 -0
  845. package/node_modules/yaml/dist/schema/core/int.js +42 -0
  846. package/node_modules/yaml/dist/schema/core/schema.d.ts +1 -0
  847. package/node_modules/yaml/dist/schema/core/schema.js +25 -0
  848. package/node_modules/yaml/dist/schema/json/schema.d.ts +2 -0
  849. package/node_modules/yaml/dist/schema/json/schema.js +64 -0
  850. package/node_modules/yaml/dist/schema/json-schema.d.ts +69 -0
  851. package/node_modules/yaml/dist/schema/tags.d.ts +48 -0
  852. package/node_modules/yaml/dist/schema/tags.js +99 -0
  853. package/node_modules/yaml/dist/schema/types.d.ts +92 -0
  854. package/node_modules/yaml/dist/schema/yaml-1.1/binary.d.ts +2 -0
  855. package/node_modules/yaml/dist/schema/yaml-1.1/binary.js +70 -0
  856. package/node_modules/yaml/dist/schema/yaml-1.1/bool.d.ts +7 -0
  857. package/node_modules/yaml/dist/schema/yaml-1.1/bool.js +29 -0
  858. package/node_modules/yaml/dist/schema/yaml-1.1/float.d.ts +4 -0
  859. package/node_modules/yaml/dist/schema/yaml-1.1/float.js +50 -0
  860. package/node_modules/yaml/dist/schema/yaml-1.1/int.d.ts +5 -0
  861. package/node_modules/yaml/dist/schema/yaml-1.1/int.js +76 -0
  862. package/node_modules/yaml/dist/schema/yaml-1.1/merge.d.ts +9 -0
  863. package/node_modules/yaml/dist/schema/yaml-1.1/merge.js +71 -0
  864. package/node_modules/yaml/dist/schema/yaml-1.1/omap.d.ts +22 -0
  865. package/node_modules/yaml/dist/schema/yaml-1.1/omap.js +77 -0
  866. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.d.ts +10 -0
  867. package/node_modules/yaml/dist/schema/yaml-1.1/pairs.js +82 -0
  868. package/node_modules/yaml/dist/schema/yaml-1.1/schema.d.ts +1 -0
  869. package/node_modules/yaml/dist/schema/yaml-1.1/schema.js +41 -0
  870. package/node_modules/yaml/dist/schema/yaml-1.1/set.d.ts +28 -0
  871. package/node_modules/yaml/dist/schema/yaml-1.1/set.js +96 -0
  872. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.d.ts +6 -0
  873. package/node_modules/yaml/dist/schema/yaml-1.1/timestamp.js +105 -0
  874. package/node_modules/yaml/dist/stringify/foldFlowLines.d.ts +34 -0
  875. package/node_modules/yaml/dist/stringify/foldFlowLines.js +151 -0
  876. package/node_modules/yaml/dist/stringify/stringify.d.ts +21 -0
  877. package/node_modules/yaml/dist/stringify/stringify.js +132 -0
  878. package/node_modules/yaml/dist/stringify/stringifyCollection.d.ts +17 -0
  879. package/node_modules/yaml/dist/stringify/stringifyCollection.js +155 -0
  880. package/node_modules/yaml/dist/stringify/stringifyComment.d.ts +10 -0
  881. package/node_modules/yaml/dist/stringify/stringifyComment.js +24 -0
  882. package/node_modules/yaml/dist/stringify/stringifyDocument.d.ts +4 -0
  883. package/node_modules/yaml/dist/stringify/stringifyDocument.js +87 -0
  884. package/node_modules/yaml/dist/stringify/stringifyNumber.d.ts +2 -0
  885. package/node_modules/yaml/dist/stringify/stringifyNumber.js +27 -0
  886. package/node_modules/yaml/dist/stringify/stringifyPair.d.ts +3 -0
  887. package/node_modules/yaml/dist/stringify/stringifyPair.js +152 -0
  888. package/node_modules/yaml/dist/stringify/stringifyString.d.ts +9 -0
  889. package/node_modules/yaml/dist/stringify/stringifyString.js +338 -0
  890. package/node_modules/yaml/dist/test-events.d.ts +4 -0
  891. package/node_modules/yaml/dist/test-events.js +134 -0
  892. package/node_modules/yaml/dist/util.d.ts +16 -0
  893. package/node_modules/yaml/dist/util.js +28 -0
  894. package/node_modules/yaml/dist/visit.d.ts +102 -0
  895. package/node_modules/yaml/dist/visit.js +236 -0
  896. package/node_modules/yaml/package.json +97 -0
  897. package/node_modules/yaml/util.js +2 -0
  898. package/package.json +108 -4
  899. package/vendor/mdbase-connect-sdk-e6e66bcd172f.json +13 -0
  900. package/vendor/mdbase-dev-connect-protocol-0.1.0-beta.145-e6e66bcd172f.tgz +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite3.js","sourceRoot":"","sources":["../../src/native/sqlite3.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AAGxD;+EAC+E;AAC/E,gFAAgF;AAChF,iFAAiF;AACjF,MAAM,UAAU,GAAuC,OAAO,CAAA,EAAE,CAAA,OAAO,CAAC,KAAK,CAAC,iBAAiB,EAAC,SAAS,EAAC,CAAC,OAAO,CAAC,CAAC,CAAC;AACrH,eAAe,UAAU,CAAC"}
Binary file
package/dist/node.d.ts ADDED
@@ -0,0 +1,63 @@
1
+ import type { Uuid } from "./wire.js";
2
+ import { KeyPair, StaticKey } from "./transport/noise.js";
3
+ import { WebSocketFactory } from "./transport/noise-session.js";
4
+ import { LocalLink } from "./transport/local-link.js";
5
+ import type { Connector } from "./transport/port.js";
6
+ /**
7
+ * The daemon's per-user state directory, as `crates/daemon` (`paths.rs`) defines it:
8
+ * - Linux: `~/.local/state/mdbase` (fixed: `XDG_STATE_HOME` is **not** honoured, so
9
+ * apps and a daemon started from different environments always agree)
10
+ * - macOS: `~/Library/Application Support/mdbase`
11
+ * - Windows: `%LOCALAPPDATA%\mdbase\state`
12
+ */
13
+ export declare function defaultDaemonStateDir(os?: NodeJS.Platform): string;
14
+ /** The daemon's replica endpoint for the current user (§12.2). */
15
+ export declare function defaultIpcPath(sid?: string, os?: NodeJS.Platform): string;
16
+ export interface DaemonIdentity {
17
+ /** The daemon's device ID (the Noise target). */
18
+ device: Uuid;
19
+ /** Its replica Noise public key. */
20
+ noisePublicKey: Uint8Array;
21
+ }
22
+ /**
23
+ * Where `daemon.json` lives: the daemon's state directory, **never** beside the socket.
24
+ * A named pipe's "directory" is `\\.\pipe\`, a namespace any local user can create
25
+ * names in, so deriving the file from the pipe path would let them supply their own
26
+ * Noise key. Throws for a location that isn't an ordinary per-user path.
27
+ */
28
+ export declare function daemonIdentityFile(stateDir: string, os?: NodeJS.Platform): string;
29
+ /**
30
+ * Read the daemon's identity, `{"device": "<uuid>", "noise_pk": "<64 hex>"}`, from
31
+ * `daemon.json` in its state directory, after checking who owns it.
32
+ */
33
+ export declare function readDaemonIdentity(stateDir?: string): Promise<DaemonIdentity>;
34
+ /**
35
+ * The localhost link (§12.4): `local-link.json` (`{port, token}`) plus the pinned
36
+ * identity from `daemon.json`, both owner-checked.
37
+ */
38
+ export declare function readLocalLink(stateDir?: string): Promise<LocalLink>;
39
+ /**
40
+ * Connect to the desktop daemon over the localhost link as the hosting session of
41
+ * `collection` (§12.4). Re-reads the link files on every reconnect (new port and token
42
+ * at each daemon start). For Obsidian, pass `webSocket` if the global one isn't used.
43
+ */
44
+ export declare function connectDaemonLocalhost(o: {
45
+ collection: Uuid;
46
+ localOnly?: boolean;
47
+ stateDir?: string;
48
+ webSocket?: WebSocketFactory;
49
+ }): Connector;
50
+ export interface IpcConnectorOptions {
51
+ collection: Uuid;
52
+ /** The app's grant, or null for the hosting app itself. */
53
+ grant: Uuid | null;
54
+ staticKey: KeyPair | StaticKey;
55
+ /** Socket or pipe path; default {@link defaultIpcPath}. */
56
+ path?: string;
57
+ /** The daemon's identity; default read from `daemon.json` in its state directory. */
58
+ daemon?: DaemonIdentity;
59
+ /** The daemon's state directory (isolated daemons); default {@link defaultDaemonStateDir}. */
60
+ stateDir?: string;
61
+ }
62
+ /** A connector to the desktop daemon over local IPC. */
63
+ export declare function ipcConnector(o: IpcConnectorOptions): Connector;
package/dist/node.js ADDED
@@ -0,0 +1,255 @@
1
+ /**
2
+ * `@mdbase-dev/sdk/node`: local IPC to the desktop daemon (`replica-client-api.md`
3
+ * §12.2). Node only (Electron main, CLIs, MCP servers, tests).
4
+ *
5
+ * - Linux: `$XDG_RUNTIME_DIR/mdbase/replica.sock`
6
+ * - macOS: `~/Library/Application Support/mdbase/replica.sock`
7
+ * - Windows: `\\.\pipe\mdbase-replica-<user SID>`
8
+ *
9
+ * Authentication is the same Noise IK handshake as remote clients, with the daemon's
10
+ * replica Noise key. Noise messages travel as `u16be(length) ‖ message`. The key comes
11
+ * from `daemon.json` in the daemon's owner-checked state directory, never from beside
12
+ * the socket or pipe, so whoever holds the endpoint name can't impersonate
13
+ * the daemon.
14
+ */
15
+ import { constants as fsConstants } from "node:fs";
16
+ import { lstat, open } from "node:fs/promises";
17
+ import { connect as netConnect } from "node:net";
18
+ import { homedir, platform } from "node:os";
19
+ import { join, win32 } from "node:path";
20
+ import { fromHex } from "./cbor.js";
21
+ import { uuidToBytes } from "./codec.js";
22
+ import { mdbaseError } from "./errors.js";
23
+ import { clientPrologue } from "./transport/noise.js";
24
+ import { noiseConnector, streamCarrier } from "./transport/noise-session.js";
25
+ import { localLinkConnector } from "./transport/local-link.js";
26
+ function env(name) {
27
+ const v = process.env[name];
28
+ return v && v.length ? v : undefined;
29
+ }
30
+ /**
31
+ * The daemon's per-user state directory, as `crates/daemon` (`paths.rs`) defines it:
32
+ * - Linux: `~/.local/state/mdbase` (fixed: `XDG_STATE_HOME` is **not** honoured, so
33
+ * apps and a daemon started from different environments always agree)
34
+ * - macOS: `~/Library/Application Support/mdbase`
35
+ * - Windows: `%LOCALAPPDATA%\mdbase\state`
36
+ */
37
+ export function defaultDaemonStateDir(os = platform()) {
38
+ switch (os) {
39
+ case "win32": {
40
+ const base = env("LOCALAPPDATA");
41
+ if (!base)
42
+ throw mdbaseError("unavailable", "LOCALAPPDATA is not set");
43
+ return win32.join(base, "mdbase", "state");
44
+ }
45
+ case "darwin":
46
+ return join(homedir(), "Library", "Application Support", "mdbase");
47
+ default:
48
+ return join(homedir(), ".local", "state", "mdbase");
49
+ }
50
+ }
51
+ /** The daemon's replica endpoint for the current user (§12.2). */
52
+ export function defaultIpcPath(sid, os = platform()) {
53
+ switch (os) {
54
+ case "win32":
55
+ if (!sid)
56
+ throw mdbaseError("invalid_request", "pass the user SID for the named pipe path");
57
+ return `\\\\.\\pipe\\mdbase-replica-${sid}`;
58
+ case "darwin":
59
+ return join(defaultDaemonStateDir(os), "replica.sock");
60
+ default: {
61
+ const run = env("XDG_RUNTIME_DIR");
62
+ return run ? join(run, "mdbase", "replica.sock") : join(defaultDaemonStateDir(os), "run", "replica.sock");
63
+ }
64
+ }
65
+ }
66
+ /**
67
+ * Where `daemon.json` lives: the daemon's state directory, **never** beside the socket.
68
+ * A named pipe's "directory" is `\\.\pipe\`, a namespace any local user can create
69
+ * names in, so deriving the file from the pipe path would let them supply their own
70
+ * Noise key. Throws for a location that isn't an ordinary per-user path.
71
+ */
72
+ export function daemonIdentityFile(stateDir, os = platform()) {
73
+ if (os === "win32") {
74
+ const norm = stateDir.replace(/\//g, "\\");
75
+ if (norm.startsWith("\\\\")) {
76
+ throw mdbaseError("invalid_request", `daemon state directory must be a local path, not ${stateDir}`, "untrusted_identity");
77
+ }
78
+ if (!win32.isAbsolute(norm))
79
+ throw mdbaseError("invalid_request", "daemon state directory must be absolute");
80
+ return win32.join(norm, "daemon.json");
81
+ }
82
+ if (!stateDir.startsWith("/"))
83
+ throw mdbaseError("invalid_request", "daemon state directory must be absolute");
84
+ return join(stateDir, "daemon.json");
85
+ }
86
+ function untrusted(p, st) {
87
+ const uid = process.getuid?.();
88
+ if (st.isSymbolicLink())
89
+ return `${p} is a symlink`;
90
+ if (uid !== undefined && st.uid !== uid)
91
+ return `${p} is owned by another user`;
92
+ if ((st.mode & 0o022) !== 0)
93
+ return `${p} is writable by group or others`;
94
+ return null;
95
+ }
96
+ function refuse(why) {
97
+ throw mdbaseError("unauthenticated", `refusing the daemon identity: ${why}`, "untrusted_identity");
98
+ }
99
+ function notRunning(p) {
100
+ throw mdbaseError("unavailable", `the mdbase daemon is not running (no ${p})`, "daemon_not_running");
101
+ }
102
+ /**
103
+ * Read the daemon's identity, `{"device": "<uuid>", "noise_pk": "<64 hex>"}`, from
104
+ * `daemon.json` in its state directory, after checking who owns it.
105
+ */
106
+ /**
107
+ * Read an owner-only JSON file from the daemon's state directory: the directory is
108
+ * `lstat`-checked, the file is opened (`O_NOFOLLOW`) and then the **opened handle** is
109
+ * checked (regular file, owned by this uid, no group/other write), so there is no
110
+ * check-then-read race.
111
+ */
112
+ async function readOwnerOnlyJson(stateDir, name) {
113
+ const file = daemonIdentityFile(stateDir).replace(/daemon\.json$/, name);
114
+ const posix = platform() !== "win32";
115
+ if (posix) {
116
+ let st;
117
+ try {
118
+ st = await lstat(stateDir);
119
+ }
120
+ catch {
121
+ notRunning(stateDir);
122
+ }
123
+ const why = untrusted(stateDir, st);
124
+ if (why)
125
+ refuse(why);
126
+ }
127
+ let fh;
128
+ try {
129
+ fh = await open(file, posix ? fsConstants.O_RDONLY | fsConstants.O_NOFOLLOW : "r");
130
+ }
131
+ catch (e) {
132
+ if (e.code === "ELOOP")
133
+ refuse(`${file} is a symlink`);
134
+ notRunning(file);
135
+ }
136
+ let raw;
137
+ try {
138
+ const st = await fh.stat();
139
+ if (!st.isFile())
140
+ refuse(`${file} is not a regular file`);
141
+ if (posix) {
142
+ const why = untrusted(file, { isSymbolicLink: () => false, uid: st.uid, mode: st.mode });
143
+ if (why)
144
+ refuse(why);
145
+ }
146
+ raw = await fh.readFile("utf8");
147
+ }
148
+ finally {
149
+ await fh.close();
150
+ }
151
+ try {
152
+ return { file, json: JSON.parse(raw) };
153
+ }
154
+ catch {
155
+ throw mdbaseError("internal", `${file} is not valid JSON`);
156
+ }
157
+ }
158
+ /**
159
+ * Read the daemon's identity, `{"device": "<uuid>", "noise_pk": "<64 hex>"}`, from
160
+ * `daemon.json` in its state directory, after checking who owns it.
161
+ */
162
+ export async function readDaemonIdentity(stateDir = defaultDaemonStateDir()) {
163
+ const { file, json: j } = await readOwnerOnlyJson(stateDir, "daemon.json");
164
+ if (j.schema_version !== undefined && j.schema_version !== 1) {
165
+ throw mdbaseError("upgrade_required", `${file} has schema_version ${j.schema_version}`);
166
+ }
167
+ if (!j.device || !j.noise_pk || !/^[0-9a-f]{64}$/.test(j.noise_pk)) {
168
+ throw mdbaseError("internal", `${file} is incomplete`);
169
+ }
170
+ return { device: j.device, noisePublicKey: fromHex(j.noise_pk) };
171
+ }
172
+ /**
173
+ * The localhost link (§12.4): `local-link.json` (`{port, token}`) plus the pinned
174
+ * identity from `daemon.json`, both owner-checked.
175
+ */
176
+ export async function readLocalLink(stateDir = defaultDaemonStateDir()) {
177
+ const id = await readDaemonIdentity(stateDir);
178
+ const { file, json: j } = await readOwnerOnlyJson(stateDir, "local-link.json");
179
+ if (!Number.isInteger(j.port) || !j.token || !/^[0-9a-f]{64}$/.test(j.token)) {
180
+ throw mdbaseError("internal", `${file} is incomplete`);
181
+ }
182
+ return { port: j.port, token: fromHex(j.token), device: id.device, noisePublicKey: id.noisePublicKey };
183
+ }
184
+ /**
185
+ * Connect to the desktop daemon over the localhost link as the hosting session of
186
+ * `collection` (§12.4). Re-reads the link files on every reconnect (new port and token
187
+ * at each daemon start). For Obsidian, pass `webSocket` if the global one isn't used.
188
+ */
189
+ export function connectDaemonLocalhost(o) {
190
+ return localLinkConnector({
191
+ collection: o.collection,
192
+ ...(o.localOnly ? { localOnly: true } : {}),
193
+ ...(o.webSocket ? { webSocket: o.webSocket } : {}),
194
+ link: () => readLocalLink(o.stateDir),
195
+ });
196
+ }
197
+ function socketStream(sock) {
198
+ const s = {
199
+ ondata: null,
200
+ onclose: null,
201
+ write: (b) => void sock.write(b),
202
+ close: () => sock.destroy(),
203
+ };
204
+ sock.on("data", (d) => s.ondata?.(new Uint8Array(d.buffer, d.byteOffset, d.byteLength)));
205
+ sock.on("close", () => s.onclose?.());
206
+ sock.on("error", (e) => s.onclose?.(e));
207
+ return s;
208
+ }
209
+ function openSocket(path, signal) {
210
+ return new Promise((resolve, reject) => {
211
+ const sock = netConnect(path);
212
+ const onAbort = () => {
213
+ sock.destroy();
214
+ reject(mdbaseError("cancelled", "connect aborted"));
215
+ };
216
+ signal?.addEventListener("abort", onAbort, { once: true });
217
+ sock.once("connect", () => {
218
+ signal?.removeEventListener("abort", onAbort);
219
+ resolve(streamCarrier(socketStream(sock)));
220
+ });
221
+ sock.once("error", (e) => {
222
+ signal?.removeEventListener("abort", onAbort);
223
+ const notRunning = e.code === "ENOENT" || e.code === "ECONNREFUSED";
224
+ reject(mdbaseError("unavailable", notRunning ? "the mdbase daemon is not running" : e.message, {
225
+ ...(notRunning ? { reason: "daemon_not_running" } : {}),
226
+ retryAfterMs: 1000,
227
+ }));
228
+ });
229
+ });
230
+ }
231
+ /** A connector to the desktop daemon over local IPC. */
232
+ export function ipcConnector(o) {
233
+ const collection = uuidToBytes(o.collection);
234
+ const grant = o.grant ? uuidToBytes(o.grant) : null;
235
+ return noiseConnector({
236
+ description: `ipc:${o.path ?? "default"}`,
237
+ staticKey: o.staticKey,
238
+ target: async () => {
239
+ const path = o.path ?? defaultIpcPath();
240
+ const daemon = o.daemon ?? (await readDaemonIdentity(o.stateDir));
241
+ const prologue = clientPrologue(collection, grant, uuidToBytes(daemon.device));
242
+ return {
243
+ prologue,
244
+ remoteStatic: daemon.noisePublicKey,
245
+ // One daemon serves many collections on one socket: the prologue goes first,
246
+ // in clear, as one `u16be(64) ‖ prologue` record so the daemon can pick the
247
+ // collection and grant (daemon interface note §3). Tampering fails the handshake.
248
+ preamble: prologue,
249
+ device: daemon.device,
250
+ openCarrier: (signal) => openSocket(path, signal),
251
+ };
252
+ },
253
+ });
254
+ }
255
+ //# sourceMappingURL=node.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node.js","sourceRoot":"","sources":["../src/node.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ export declare const MDBASE_NOTIFICATION_TYPE = "mdbase.notification";
2
+ /** The message `handleMdbaseNotificationClick` posts to the app window it focuses. */
3
+ export declare const MDBASE_NOTIFICATION_CLICK = "mdbase.notification.click";
4
+ export interface MdbaseNotificationPresentation {
5
+ title: string;
6
+ body?: string;
7
+ tag?: string;
8
+ }
9
+ /** A validated envelope. */
10
+ export interface MdbaseNotification {
11
+ version: 1;
12
+ /** Idempotency key: the same signal may be delivered more than once. */
13
+ signalId: string;
14
+ /** The app's manifest criterion id. Its meaning is the app's own. */
15
+ criterionId: string;
16
+ /** Opaque wake cursor. Never parse it. */
17
+ cursor: string;
18
+ /** Static manifest text. `null` for native data, where the OS shows the text. */
19
+ presentation: MdbaseNotificationPresentation | null;
20
+ }
21
+ export interface MdbaseNotificationClickMessage {
22
+ type: typeof MDBASE_NOTIFICATION_CLICK;
23
+ notification: MdbaseNotification;
24
+ }
25
+ export interface MdbaseNotificationDisplayOptions {
26
+ icon?: string;
27
+ badge?: string;
28
+ }
29
+ /** The parts of a `ServiceWorkerRegistration` the helpers use. */
30
+ export interface MdbaseNotificationRegistration {
31
+ readonly scope?: string;
32
+ showNotification(title: string, options?: NotificationOptions): Promise<void>;
33
+ }
34
+ /** The parts of a service-worker `PushEvent` the helpers use. */
35
+ export interface MdbasePushEvent {
36
+ readonly data: {
37
+ text(): string;
38
+ } | null;
39
+ waitUntil(promise: Promise<unknown>): void;
40
+ }
41
+ /** The parts of a service-worker `NotificationEvent` the helpers use. */
42
+ export interface MdbaseNotificationClickEvent {
43
+ readonly notification: {
44
+ readonly data: unknown;
45
+ close(): void;
46
+ };
47
+ waitUntil(promise: Promise<unknown>): void;
48
+ }
49
+ interface WindowClientLike {
50
+ readonly url: string;
51
+ focus(): Promise<unknown>;
52
+ postMessage(message: unknown): void;
53
+ }
54
+ /** The parts of a service worker's `Clients` the helpers use. */
55
+ export interface MdbaseNotificationClients {
56
+ matchAll(options: {
57
+ type: "window";
58
+ includeUncontrolled: boolean;
59
+ }): Promise<readonly WindowClientLike[]>;
60
+ openWindow(url: string): Promise<unknown>;
61
+ }
62
+ export interface HandleMdbasePushOptions extends MdbaseNotificationDisplayOptions {
63
+ /** Defaults to the service worker's own `registration`. */
64
+ registration?: MdbaseNotificationRegistration;
65
+ }
66
+ export interface HandleMdbaseNotificationClickOptions {
67
+ /** The page to open when no app window is open. Defaults to the registration scope. */
68
+ url?: string;
69
+ /** Defaults to the service worker's own `clients`. */
70
+ clients?: MdbaseNotificationClients;
71
+ /** Defaults to the service worker's own `registration.scope`. */
72
+ scope?: string;
73
+ }
74
+ /** Parse a Web Push payload: an object, a JSON string or `PushMessageData`. */
75
+ export declare function parseMdbasePush(value: unknown): MdbaseNotification;
76
+ /** Parse the string-valued data of an FCM/APNs notification (`version` "1" or 1). */
77
+ export declare function parseMdbaseNativeNotification(data: unknown): MdbaseNotification;
78
+ /** Read the envelope kept on a shown notification, or on a native tap. `null` if it is not one. */
79
+ export declare function readMdbaseNotificationData(data: unknown): MdbaseNotification | null;
80
+ /** Validate a Web Push payload and show it. Resolves with the envelope. */
81
+ export declare function showMdbaseNotification(registration: MdbaseNotificationRegistration, value: unknown, options?: MdbaseNotificationDisplayOptions): Promise<MdbaseNotification>;
82
+ /**
83
+ * A service-worker `push` handler. Returns `false` for a push that is not an
84
+ * mdbase notification, so the app can handle its own pushes. Otherwise it
85
+ * shows the notification inside `event.waitUntil` and returns `true`.
86
+ */
87
+ export declare function handleMdbasePush(event: MdbasePushEvent, options?: HandleMdbasePushOptions): boolean;
88
+ /**
89
+ * A service-worker `notificationclick` handler. Returns `false` for a
90
+ * notification that is not an mdbase one. Otherwise it closes it, focuses an
91
+ * open app window (posting `MdbaseNotificationClickMessage` to it) or opens
92
+ * `url`, and returns `true`.
93
+ */
94
+ export declare function handleMdbaseNotificationClick(event: MdbaseNotificationClickEvent, options?: HandleMdbaseNotificationClickOptions): boolean;
95
+ export {};
@@ -0,0 +1,226 @@
1
+ /**
2
+ * `@mdbase-dev/sdk/notifications`: the mdbase push delivery envelope
3
+ * (`docs/contracts/push-envelope.md`) and service-worker helpers.
4
+ *
5
+ * The envelope is opaque. It carries a dedupe key, an opaque wake cursor, the
6
+ * app's own manifest criterion id and the criterion's static presentation. It
7
+ * never carries record, timer or collection identifiers or app data. Treat the
8
+ * presentation as untrusted text and a push as a wake-up hint: on wake, the app
9
+ * reads current state through its connection.
10
+ *
11
+ * This module imports no Worker, wasm or client code, so a service worker can
12
+ * import it on its own.
13
+ */
14
+ import { MdbaseError, mdbaseError } from "./errors.js";
15
+ export const MDBASE_NOTIFICATION_TYPE = "mdbase.notification";
16
+ /** The message `handleMdbaseNotificationClick` posts to the app window it focuses. */
17
+ export const MDBASE_NOTIFICATION_CLICK = "mdbase.notification.click";
18
+ // Visible ASCII: today `tmr_` + base64url for timers; connector signals may differ.
19
+ const OPAQUE = /^[\x21-\x7e]{1,256}$/;
20
+ const CRITERION = /^[a-z0-9]+(?:[._-][a-z0-9]+)*$/;
21
+ const invalid = (message) => mdbaseError("invalid_request", message, "invalid_push_payload");
22
+ const unsupported = () => mdbaseError("upgrade_required", "The push uses an envelope version this SDK does not support.", "unsupported_push_version");
23
+ function object(value) {
24
+ if (typeof value === "string") {
25
+ try {
26
+ value = JSON.parse(value);
27
+ }
28
+ catch {
29
+ throw invalid("The push payload is not JSON.");
30
+ }
31
+ }
32
+ else if (value && typeof value === "object" && typeof value.json === "function") {
33
+ try {
34
+ value = value.json();
35
+ }
36
+ catch {
37
+ throw invalid("The push payload is not JSON.");
38
+ }
39
+ }
40
+ if (!value || typeof value !== "object" || Array.isArray(value))
41
+ throw invalid("The push payload is not an object.");
42
+ return value;
43
+ }
44
+ function text(value, min, max) {
45
+ return typeof value === "string" && value.length >= min && value.length <= max;
46
+ }
47
+ function presentation(value) {
48
+ if (!value || typeof value !== "object" || Array.isArray(value))
49
+ return null;
50
+ const p = value;
51
+ if (!text(p.title, 1, 80) || (p.body !== undefined && !text(p.body, 0, 160))
52
+ || (p.tag !== undefined && !text(p.tag, 1, 80)))
53
+ return null;
54
+ return Object.freeze({
55
+ title: p.title,
56
+ ...(typeof p.body === "string" && p.body.length ? { body: p.body } : {}),
57
+ ...(typeof p.tag === "string" ? { tag: p.tag } : {}),
58
+ });
59
+ }
60
+ function envelope(raw, version, shown) {
61
+ if (raw.type !== MDBASE_NOTIFICATION_TYPE)
62
+ throw invalid("The payload is not an mdbase notification.");
63
+ if (version !== 1) {
64
+ if (typeof version === "number" && Number.isSafeInteger(version) && version > 1)
65
+ throw unsupported();
66
+ throw invalid("The payload has no valid envelope version.");
67
+ }
68
+ if (!text(raw.signal_id, 1, 256) || !OPAQUE.test(raw.signal_id) || !text(raw.cursor, 1, 256) || !OPAQUE.test(raw.cursor)
69
+ || !text(raw.criterion_id, 1, 100) || !CRITERION.test(raw.criterion_id)) {
70
+ throw invalid("The payload is not an mdbase notification.");
71
+ }
72
+ // Unknown fields are ignored: v1 may gain optional fields.
73
+ return Object.freeze({ version: 1, signalId: raw.signal_id, criterionId: raw.criterion_id, cursor: raw.cursor, presentation: shown });
74
+ }
75
+ /** Parse a Web Push payload: an object, a JSON string or `PushMessageData`. */
76
+ export function parseMdbasePush(value) {
77
+ const raw = object(value);
78
+ const result = envelope(raw, raw.version, presentation(raw.presentation));
79
+ if (!result.presentation)
80
+ throw invalid("The push has no valid presentation.");
81
+ return result;
82
+ }
83
+ /** Parse the string-valued data of an FCM/APNs notification (`version` "1" or 1). */
84
+ export function parseMdbaseNativeNotification(data) {
85
+ if (!data || typeof data !== "object" || Array.isArray(data))
86
+ throw invalid("The native notification data is not an object.");
87
+ const raw = data;
88
+ const version = typeof raw.version === "string" && /^[1-9][0-9]{0,8}$/.test(raw.version) ? Number(raw.version) : raw.version;
89
+ return envelope(raw, version, null);
90
+ }
91
+ /** Read the envelope kept on a shown notification, or on a native tap. `null` if it is not one. */
92
+ export function readMdbaseNotificationData(data) {
93
+ try {
94
+ return parseMdbaseNativeNotification(data);
95
+ }
96
+ catch {
97
+ return null;
98
+ }
99
+ }
100
+ /** The `data` kept on a shown notification. Same shape as prod Connect builds. */
101
+ function shownData(n) {
102
+ return { type: MDBASE_NOTIFICATION_TYPE, version: n.version, signal_id: n.signalId, criterion_id: n.criterionId, cursor: n.cursor };
103
+ }
104
+ /** Validate a Web Push payload and show it. Resolves with the envelope. */
105
+ export async function showMdbaseNotification(registration, value, options = {}) {
106
+ const n = parseMdbasePush(value);
107
+ const p = n.presentation;
108
+ await registration.showNotification(p.title, {
109
+ ...(p.body ? { body: p.body } : {}),
110
+ ...(p.tag ? { tag: p.tag } : {}),
111
+ ...(options.icon ? { icon: options.icon } : {}),
112
+ ...(options.badge ? { badge: options.badge } : {}),
113
+ data: shownData(n),
114
+ });
115
+ return n;
116
+ }
117
+ function own(name) {
118
+ return globalThis[name];
119
+ }
120
+ /** The service worker's own origin (its location, else its registration scope). */
121
+ function workerOrigin(registrationScope) {
122
+ const location = globalThis.location;
123
+ if (typeof location?.origin === "string" && location.origin !== "null")
124
+ return location.origin;
125
+ try {
126
+ return registrationScope ? new URL(registrationScope).origin : null;
127
+ }
128
+ catch {
129
+ return null;
130
+ }
131
+ }
132
+ /** Click `url`/`scope` must stay on the app's own origin. Without a known
133
+ * origin only a root-relative path is accepted. */
134
+ function sameOrigin(value, origin, name) {
135
+ const reject = () => mdbaseError("invalid_request", `The notification click ${name} must be on the app's own origin.`, "click_target_cross_origin");
136
+ if (typeof value !== "string")
137
+ throw reject();
138
+ if (origin === null) {
139
+ if (!value.startsWith("/") || value.startsWith("//") || value.startsWith("/\\"))
140
+ throw reject();
141
+ return value;
142
+ }
143
+ let url;
144
+ try {
145
+ url = new URL(value, `${origin}/`);
146
+ }
147
+ catch {
148
+ throw reject();
149
+ }
150
+ if (url.origin !== origin)
151
+ throw reject();
152
+ return url.href;
153
+ }
154
+ /**
155
+ * A service-worker `push` handler. Returns `false` for a push that is not an
156
+ * mdbase notification, so the app can handle its own pushes. Otherwise it
157
+ * shows the notification inside `event.waitUntil` and returns `true`.
158
+ */
159
+ export function handleMdbasePush(event, options = {}) {
160
+ let raw;
161
+ try {
162
+ raw = object(event.data?.text() ?? null);
163
+ }
164
+ catch {
165
+ return false;
166
+ }
167
+ if (raw.type !== MDBASE_NOTIFICATION_TYPE)
168
+ return false;
169
+ const registration = options.registration ?? own("registration");
170
+ if (!registration)
171
+ throw mdbaseError("invalid_request", "No service worker registration to show the notification.", "push_registration_missing");
172
+ const display = { ...(options.icon ? { icon: options.icon } : {}), ...(options.badge ? { badge: options.badge } : {}) };
173
+ event.waitUntil((async () => {
174
+ try {
175
+ parseMdbasePush(raw);
176
+ }
177
+ catch (error) {
178
+ // Only a NEWER envelope major falls back: it still carries a displayable
179
+ // presentation, shown without data rather than a browser's generic
180
+ // "updated in the background". Malformed v1 stays rejected.
181
+ const shown = error instanceof MdbaseError && error.reason === "unsupported_push_version" ? presentation(raw.presentation) : null;
182
+ if (!shown)
183
+ throw error;
184
+ await registration.showNotification(shown.title, {
185
+ ...(shown.body ? { body: shown.body } : {}),
186
+ ...(shown.tag ? { tag: shown.tag } : {}),
187
+ ...display,
188
+ });
189
+ return null;
190
+ }
191
+ // Display failures propagate; they are not a compatibility case.
192
+ return showMdbaseNotification(registration, raw, display);
193
+ })());
194
+ return true;
195
+ }
196
+ /**
197
+ * A service-worker `notificationclick` handler. Returns `false` for a
198
+ * notification that is not an mdbase one. Otherwise it closes it, focuses an
199
+ * open app window (posting `MdbaseNotificationClickMessage` to it) or opens
200
+ * `url`, and returns `true`.
201
+ */
202
+ export function handleMdbaseNotificationClick(event, options = {}) {
203
+ const n = readMdbaseNotificationData(event.notification.data);
204
+ if (!n)
205
+ return false;
206
+ event.notification.close();
207
+ const clients = options.clients ?? own("clients");
208
+ const registrationScope = own("registration")?.scope;
209
+ const origin = workerOrigin(registrationScope);
210
+ const scope = options.scope === undefined ? registrationScope : sameOrigin(options.scope, origin, "scope");
211
+ const target = options.url === undefined ? scope ?? "/" : sameOrigin(options.url, origin, "url");
212
+ if (!clients)
213
+ return true;
214
+ event.waitUntil((async () => {
215
+ const windows = await clients.matchAll({ type: "window", includeUncontrolled: true });
216
+ const open = windows.find(client => !scope || client.url.startsWith(scope));
217
+ if (!open)
218
+ return clients.openWindow(target);
219
+ await open.focus();
220
+ const message = { type: MDBASE_NOTIFICATION_CLICK, notification: n };
221
+ open.postMessage(message);
222
+ return open;
223
+ })());
224
+ return true;
225
+ }
226
+ //# sourceMappingURL=notifications.js.map