mindoodb 0.0.24 → 0.0.32

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 (340) hide show
  1. package/README-server.md +9 -1
  2. package/README.md +5 -3
  3. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts +1 -1
  4. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.d.ts.map +1 -1
  5. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js +24 -5
  6. package/dist/appendonlystores/network/ClientNetworkContentAddressedStore.js.map +1 -1
  7. package/dist/appendonlystores/network/HttpTransport.d.ts +14 -2
  8. package/dist/appendonlystores/network/HttpTransport.d.ts.map +1 -1
  9. package/dist/appendonlystores/network/HttpTransport.js +124 -27
  10. package/dist/appendonlystores/network/HttpTransport.js.map +1 -1
  11. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts +159 -4
  12. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.d.ts.map +1 -1
  13. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js +334 -25
  14. package/dist/appendonlystores/network/ServerNetworkContentAddressedStore.js.map +1 -1
  15. package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.d.ts +9 -0
  16. package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.d.ts.map +1 -1
  17. package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.js +77 -5
  18. package/dist/browser/appendonlystores/IndexedDBContentAddressedStore.js.map +1 -1
  19. package/dist/browser/index.mjs +103 -0
  20. package/dist/core/BaseMindooDB.d.ts +662 -4
  21. package/dist/core/BaseMindooDB.d.ts.map +1 -1
  22. package/dist/core/BaseMindooDB.js +2769 -144
  23. package/dist/core/BaseMindooDB.js.map +1 -1
  24. package/dist/core/BaseMindooTenant.d.ts +192 -1
  25. package/dist/core/BaseMindooTenant.d.ts.map +1 -1
  26. package/dist/core/BaseMindooTenant.js +633 -88
  27. package/dist/core/BaseMindooTenant.js.map +1 -1
  28. package/dist/core/BaseMindooTenantDirectory.d.ts +770 -10
  29. package/dist/core/BaseMindooTenantDirectory.d.ts.map +1 -1
  30. package/dist/core/BaseMindooTenantDirectory.js +2715 -292
  31. package/dist/core/BaseMindooTenantDirectory.js.map +1 -1
  32. package/dist/core/BaseMindooTenantFactory.d.ts +2 -0
  33. package/dist/core/BaseMindooTenantFactory.d.ts.map +1 -1
  34. package/dist/core/BaseMindooTenantFactory.js +20 -0
  35. package/dist/core/BaseMindooTenantFactory.js.map +1 -1
  36. package/dist/core/accesscontrol/AccessDeniedError.d.ts +22 -0
  37. package/dist/core/accesscontrol/AccessDeniedError.d.ts.map +1 -0
  38. package/dist/core/accesscontrol/AccessDeniedError.js +28 -0
  39. package/dist/core/accesscontrol/AccessDeniedError.js.map +1 -0
  40. package/dist/core/accesscontrol/DirectoryStateNode.d.ts +220 -0
  41. package/dist/core/accesscontrol/DirectoryStateNode.d.ts.map +1 -0
  42. package/dist/core/accesscontrol/DirectoryStateNode.js +297 -0
  43. package/dist/core/accesscontrol/DirectoryStateNode.js.map +1 -0
  44. package/dist/core/accesscontrol/DirectoryTimeTravelIndex.d.ts +118 -0
  45. package/dist/core/accesscontrol/DirectoryTimeTravelIndex.d.ts.map +1 -0
  46. package/dist/core/accesscontrol/DirectoryTimeTravelIndex.js +173 -0
  47. package/dist/core/accesscontrol/DirectoryTimeTravelIndex.js.map +1 -0
  48. package/dist/core/accesscontrol/directoryProjection.d.ts +26 -0
  49. package/dist/core/accesscontrol/directoryProjection.d.ts.map +1 -0
  50. package/dist/core/accesscontrol/directoryProjection.js +174 -0
  51. package/dist/core/accesscontrol/directoryProjection.js.map +1 -0
  52. package/dist/core/accesscontrol/evaluate.d.ts +77 -0
  53. package/dist/core/accesscontrol/evaluate.d.ts.map +1 -0
  54. package/dist/core/accesscontrol/evaluate.js +206 -0
  55. package/dist/core/accesscontrol/evaluate.js.map +1 -0
  56. package/dist/core/accesscontrol/grantKeys.d.ts +113 -0
  57. package/dist/core/accesscontrol/grantKeys.d.ts.map +1 -0
  58. package/dist/core/accesscontrol/grantKeys.js +302 -0
  59. package/dist/core/accesscontrol/grantKeys.js.map +1 -0
  60. package/dist/core/accesscontrol/keyBagReconciler.d.ts +22 -0
  61. package/dist/core/accesscontrol/keyBagReconciler.d.ts.map +1 -0
  62. package/dist/core/accesscontrol/keyBagReconciler.js +3 -0
  63. package/dist/core/accesscontrol/keyBagReconciler.js.map +1 -0
  64. package/dist/core/accesscontrol/materializationGuard.d.ts +89 -0
  65. package/dist/core/accesscontrol/materializationGuard.d.ts.map +1 -0
  66. package/dist/core/accesscontrol/materializationGuard.js +69 -0
  67. package/dist/core/accesscontrol/materializationGuard.js.map +1 -0
  68. package/dist/core/accesscontrol/quarantine.d.ts +65 -0
  69. package/dist/core/accesscontrol/quarantine.d.ts.map +1 -0
  70. package/dist/core/accesscontrol/quarantine.js +79 -0
  71. package/dist/core/accesscontrol/quarantine.js.map +1 -0
  72. package/dist/core/accesscontrol/receiptValidation.d.ts +113 -0
  73. package/dist/core/accesscontrol/receiptValidation.d.ts.map +1 -0
  74. package/dist/core/accesscontrol/receiptValidation.js +142 -0
  75. package/dist/core/accesscontrol/receiptValidation.js.map +1 -0
  76. package/dist/core/accesscontrol/timestamp/Ed25519WitnessProvider.d.ts +31 -0
  77. package/dist/core/accesscontrol/timestamp/Ed25519WitnessProvider.d.ts.map +1 -0
  78. package/dist/core/accesscontrol/timestamp/Ed25519WitnessProvider.js +66 -0
  79. package/dist/core/accesscontrol/timestamp/Ed25519WitnessProvider.js.map +1 -0
  80. package/dist/core/accesscontrol/timestamp/TimestampProvider.d.ts +79 -0
  81. package/dist/core/accesscontrol/timestamp/TimestampProvider.d.ts.map +1 -0
  82. package/dist/core/accesscontrol/timestamp/TimestampProvider.js +22 -0
  83. package/dist/core/accesscontrol/timestamp/TimestampProvider.js.map +1 -0
  84. package/dist/core/accesscontrol/types.d.ts +825 -0
  85. package/dist/core/accesscontrol/types.d.ts.map +1 -0
  86. package/dist/core/accesscontrol/types.js +534 -0
  87. package/dist/core/accesscontrol/types.js.map +1 -0
  88. package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts +9 -0
  89. package/dist/core/appendonlystores/InMemoryContentAddressedStore.d.ts.map +1 -1
  90. package/dist/core/appendonlystores/InMemoryContentAddressedStore.js +54 -0
  91. package/dist/core/appendonlystores/InMemoryContentAddressedStore.js.map +1 -1
  92. package/dist/core/appendonlystores/network/AuthenticationService.d.ts +38 -2
  93. package/dist/core/appendonlystores/network/AuthenticationService.d.ts.map +1 -1
  94. package/dist/core/appendonlystores/network/AuthenticationService.js +199 -26
  95. package/dist/core/appendonlystores/network/AuthenticationService.js.map +1 -1
  96. package/dist/core/appendonlystores/network/NetworkTransport.d.ts +17 -3
  97. package/dist/core/appendonlystores/network/NetworkTransport.d.ts.map +1 -1
  98. package/dist/core/appendonlystores/network/types.d.ts +58 -4
  99. package/dist/core/appendonlystores/network/types.d.ts.map +1 -1
  100. package/dist/core/appendonlystores/network/types.js +4 -0
  101. package/dist/core/appendonlystores/network/types.js.map +1 -1
  102. package/dist/core/appendonlystores/scanUtils.d.ts +27 -0
  103. package/dist/core/appendonlystores/scanUtils.d.ts.map +1 -0
  104. package/dist/core/appendonlystores/scanUtils.js +87 -0
  105. package/dist/core/appendonlystores/scanUtils.js.map +1 -0
  106. package/dist/core/appendonlystores/types.d.ts +23 -2
  107. package/dist/core/appendonlystores/types.d.ts.map +1 -1
  108. package/dist/core/cache/CacheManager.d.ts +13 -3
  109. package/dist/core/cache/CacheManager.d.ts.map +1 -1
  110. package/dist/core/cache/CacheManager.js +7 -4
  111. package/dist/core/cache/CacheManager.js.map +1 -1
  112. package/dist/core/crypto/EntrySignature.d.ts +137 -0
  113. package/dist/core/crypto/EntrySignature.d.ts.map +1 -0
  114. package/dist/core/crypto/EntrySignature.js +210 -0
  115. package/dist/core/crypto/EntrySignature.js.map +1 -0
  116. package/dist/core/crypto/MindooDocSigner.d.ts.map +1 -1
  117. package/dist/core/crypto/MindooDocSigner.js +6 -2
  118. package/dist/core/crypto/MindooDocSigner.js.map +1 -1
  119. package/dist/core/crypto/WitnessReceipt.d.ts +137 -0
  120. package/dist/core/crypto/WitnessReceipt.d.ts.map +1 -0
  121. package/dist/core/crypto/WitnessReceipt.js +182 -0
  122. package/dist/core/crypto/WitnessReceipt.js.map +1 -0
  123. package/dist/core/crypto/encryptedFields.d.ts +27 -0
  124. package/dist/core/crypto/encryptedFields.d.ts.map +1 -0
  125. package/dist/core/crypto/encryptedFields.js +58 -0
  126. package/dist/core/crypto/encryptedFields.js.map +1 -0
  127. package/dist/core/crypto/pbkdf2Iterations.d.ts +12 -0
  128. package/dist/core/crypto/pbkdf2Iterations.d.ts.map +1 -1
  129. package/dist/core/crypto/pbkdf2Iterations.js +23 -0
  130. package/dist/core/crypto/pbkdf2Iterations.js.map +1 -1
  131. package/dist/core/crypto/privateKeyEncryption.d.ts.map +1 -1
  132. package/dist/core/crypto/privateKeyEncryption.js +3 -1
  133. package/dist/core/crypto/privateKeyEncryption.js.map +1 -1
  134. package/dist/core/databaseIdValidation.d.ts +1 -1
  135. package/dist/core/databaseIdValidation.d.ts.map +1 -1
  136. package/dist/core/databaseIdValidation.js +4 -4
  137. package/dist/core/databaseIdValidation.js.map +1 -1
  138. package/dist/core/errors.d.ts +26 -0
  139. package/dist/core/errors.d.ts.map +1 -1
  140. package/dist/core/errors.js +42 -1
  141. package/dist/core/errors.js.map +1 -1
  142. package/dist/core/expressions/builder.d.ts +102 -0
  143. package/dist/core/expressions/builder.d.ts.map +1 -0
  144. package/dist/core/expressions/builder.js +249 -0
  145. package/dist/core/expressions/builder.js.map +1 -0
  146. package/dist/core/expressions/evaluateExpression.d.ts +78 -0
  147. package/dist/core/expressions/evaluateExpression.d.ts.map +1 -0
  148. package/dist/core/expressions/evaluateExpression.js +386 -0
  149. package/dist/core/expressions/evaluateExpression.js.map +1 -0
  150. package/dist/core/expressions/formulaSource.d.ts +24 -0
  151. package/dist/core/expressions/formulaSource.d.ts.map +1 -0
  152. package/dist/core/expressions/formulaSource.js +765 -0
  153. package/dist/core/expressions/formulaSource.js.map +1 -0
  154. package/dist/core/expressions/index.d.ts +8 -0
  155. package/dist/core/expressions/index.d.ts.map +1 -0
  156. package/dist/core/expressions/index.js +46 -0
  157. package/dist/core/expressions/index.js.map +1 -0
  158. package/dist/core/expressions/metadata.d.ts +23 -0
  159. package/dist/core/expressions/metadata.d.ts.map +1 -0
  160. package/dist/core/expressions/metadata.js +191 -0
  161. package/dist/core/expressions/metadata.js.map +1 -0
  162. package/dist/core/expressions/types.d.ts +164 -0
  163. package/dist/core/expressions/types.d.ts.map +1 -0
  164. package/dist/core/expressions/types.js +3 -0
  165. package/dist/core/expressions/types.js.map +1 -0
  166. package/dist/core/extraction/types.d.ts +47 -0
  167. package/dist/core/extraction/types.d.ts.map +1 -0
  168. package/dist/core/extraction/types.js +42 -0
  169. package/dist/core/extraction/types.js.map +1 -0
  170. package/dist/core/index.d.ts +13 -3
  171. package/dist/core/index.d.ts.map +1 -1
  172. package/dist/core/index.js +113 -4
  173. package/dist/core/index.js.map +1 -1
  174. package/dist/core/indexing/createViewDataProvider.d.ts +84 -0
  175. package/dist/core/indexing/createViewDataProvider.d.ts.map +1 -0
  176. package/dist/core/indexing/createViewDataProvider.js +139 -0
  177. package/dist/core/indexing/createViewDataProvider.js.map +1 -0
  178. package/dist/core/indexing/fulltext/DocumentFullTextIndex.d.ts +180 -0
  179. package/dist/core/indexing/fulltext/DocumentFullTextIndex.d.ts.map +1 -0
  180. package/dist/core/indexing/fulltext/DocumentFullTextIndex.js +548 -0
  181. package/dist/core/indexing/fulltext/DocumentFullTextIndex.js.map +1 -0
  182. package/dist/core/indexing/fulltext/SearchEngineAdapter.d.ts +69 -0
  183. package/dist/core/indexing/fulltext/SearchEngineAdapter.d.ts.map +1 -0
  184. package/dist/core/indexing/fulltext/SearchEngineAdapter.js +183 -0
  185. package/dist/core/indexing/fulltext/SearchEngineAdapter.js.map +1 -0
  186. package/dist/core/indexing/fulltext/extractFulltextText.d.ts +34 -0
  187. package/dist/core/indexing/fulltext/extractFulltextText.d.ts.map +1 -0
  188. package/dist/core/indexing/fulltext/extractFulltextText.js +129 -0
  189. package/dist/core/indexing/fulltext/extractFulltextText.js.map +1 -0
  190. package/dist/core/indexing/fulltext/index.d.ts +5 -0
  191. package/dist/core/indexing/fulltext/index.d.ts.map +1 -0
  192. package/dist/core/indexing/fulltext/index.js +20 -0
  193. package/dist/core/indexing/fulltext/index.js.map +1 -0
  194. package/dist/core/indexing/fulltext/types.d.ts +168 -0
  195. package/dist/core/indexing/fulltext/types.d.ts.map +1 -0
  196. package/dist/core/indexing/fulltext/types.js +89 -0
  197. package/dist/core/indexing/fulltext/types.js.map +1 -0
  198. package/dist/core/indexing/summary/DocumentSummaryStore.d.ts +137 -0
  199. package/dist/core/indexing/summary/DocumentSummaryStore.d.ts.map +1 -0
  200. package/dist/core/indexing/summary/DocumentSummaryStore.js +438 -0
  201. package/dist/core/indexing/summary/DocumentSummaryStore.js.map +1 -0
  202. package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.d.ts +72 -0
  203. package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.d.ts.map +1 -0
  204. package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.js +221 -0
  205. package/dist/core/indexing/summary/SummaryVirtualViewDataProvider.js.map +1 -0
  206. package/dist/core/indexing/summary/extractSummaryFields.d.ts +75 -0
  207. package/dist/core/indexing/summary/extractSummaryFields.d.ts.map +1 -0
  208. package/dist/core/indexing/summary/extractSummaryFields.js +266 -0
  209. package/dist/core/indexing/summary/extractSummaryFields.js.map +1 -0
  210. package/dist/core/indexing/summary/index.d.ts +5 -0
  211. package/dist/core/indexing/summary/index.d.ts.map +1 -0
  212. package/dist/core/indexing/summary/index.js +23 -0
  213. package/dist/core/indexing/summary/index.js.map +1 -0
  214. package/dist/core/indexing/summary/types.d.ts +119 -0
  215. package/dist/core/indexing/summary/types.d.ts.map +1 -0
  216. package/dist/core/indexing/summary/types.js +81 -0
  217. package/dist/core/indexing/summary/types.js.map +1 -0
  218. package/dist/core/indexing/virtualviews/IVirtualViewDataProvider.d.ts +47 -1
  219. package/dist/core/indexing/virtualviews/IVirtualViewDataProvider.d.ts.map +1 -1
  220. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts +24 -8
  221. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.d.ts.map +1 -1
  222. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js +96 -41
  223. package/dist/core/indexing/virtualviews/MindooDBVirtualViewDataProvider.js.map +1 -1
  224. package/dist/core/indexing/virtualviews/ViewEntrySortKey.d.ts +2 -0
  225. package/dist/core/indexing/virtualviews/ViewEntrySortKey.d.ts.map +1 -1
  226. package/dist/core/indexing/virtualviews/ViewEntrySortKey.js +8 -3
  227. package/dist/core/indexing/virtualviews/ViewEntrySortKey.js.map +1 -1
  228. package/dist/core/indexing/virtualviews/VirtualView.d.ts +111 -5
  229. package/dist/core/indexing/virtualviews/VirtualView.d.ts.map +1 -1
  230. package/dist/core/indexing/virtualviews/VirtualView.js +266 -75
  231. package/dist/core/indexing/virtualviews/VirtualView.js.map +1 -1
  232. package/dist/core/indexing/virtualviews/VirtualViewColumn.d.ts +12 -0
  233. package/dist/core/indexing/virtualviews/VirtualViewColumn.d.ts.map +1 -1
  234. package/dist/core/indexing/virtualviews/VirtualViewColumn.js +1 -0
  235. package/dist/core/indexing/virtualviews/VirtualViewColumn.js.map +1 -1
  236. package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts +12 -0
  237. package/dist/core/indexing/virtualviews/VirtualViewEntryData.d.ts.map +1 -1
  238. package/dist/core/indexing/virtualviews/VirtualViewEntryData.js +66 -5
  239. package/dist/core/indexing/virtualviews/VirtualViewEntryData.js.map +1 -1
  240. package/dist/core/indexing/virtualviews/VirtualViewFactory.d.ts +50 -6
  241. package/dist/core/indexing/virtualviews/VirtualViewFactory.d.ts.map +1 -1
  242. package/dist/core/indexing/virtualviews/VirtualViewFactory.js +54 -12
  243. package/dist/core/indexing/virtualviews/VirtualViewFactory.js.map +1 -1
  244. package/dist/core/indexing/virtualviews/index.d.ts +3 -3
  245. package/dist/core/indexing/virtualviews/index.d.ts.map +1 -1
  246. package/dist/core/indexing/virtualviews/index.js.map +1 -1
  247. package/dist/core/indexing/virtualviews/types.d.ts +6 -0
  248. package/dist/core/indexing/virtualviews/types.d.ts.map +1 -1
  249. package/dist/core/indexing/virtualviews/types.js +11 -3
  250. package/dist/core/indexing/virtualviews/types.js.map +1 -1
  251. package/dist/core/keys/KeyBag.d.ts +25 -0
  252. package/dist/core/keys/KeyBag.d.ts.map +1 -1
  253. package/dist/core/keys/KeyBag.js +37 -1
  254. package/dist/core/keys/KeyBag.js.map +1 -1
  255. package/dist/core/query/executeQuery.d.ts +18 -0
  256. package/dist/core/query/executeQuery.d.ts.map +1 -0
  257. package/dist/core/query/executeQuery.js +313 -0
  258. package/dist/core/query/executeQuery.js.map +1 -0
  259. package/dist/core/query/index.d.ts +5 -0
  260. package/dist/core/query/index.d.ts.map +1 -0
  261. package/dist/core/query/index.js +14 -0
  262. package/dist/core/query/index.js.map +1 -0
  263. package/dist/core/query/queryLive.d.ts +27 -0
  264. package/dist/core/query/queryLive.d.ts.map +1 -0
  265. package/dist/core/query/queryLive.js +104 -0
  266. package/dist/core/query/queryLive.js.map +1 -0
  267. package/dist/core/query/queryView.d.ts +156 -0
  268. package/dist/core/query/queryView.d.ts.map +1 -0
  269. package/dist/core/query/queryView.js +266 -0
  270. package/dist/core/query/queryView.js.map +1 -0
  271. package/dist/core/query/types.d.ts +121 -0
  272. package/dist/core/query/types.d.ts.map +1 -0
  273. package/dist/core/query/types.js +18 -0
  274. package/dist/core/query/types.js.map +1 -0
  275. package/dist/core/storeEntryTime.d.ts +57 -0
  276. package/dist/core/storeEntryTime.d.ts.map +1 -0
  277. package/dist/core/storeEntryTime.js +72 -0
  278. package/dist/core/storeEntryTime.js.map +1 -0
  279. package/dist/core/types.d.ts +1371 -34
  280. package/dist/core/types.d.ts.map +1 -1
  281. package/dist/core/types.js +13 -1
  282. package/dist/core/types.js.map +1 -1
  283. package/dist/core/uri/MindooURI.d.ts +53 -1
  284. package/dist/core/uri/MindooURI.d.ts.map +1 -1
  285. package/dist/core/uri/MindooURI.js +135 -0
  286. package/dist/core/uri/MindooURI.js.map +1 -1
  287. package/dist/core/utils/urlSafety.d.ts +46 -0
  288. package/dist/core/utils/urlSafety.d.ts.map +1 -0
  289. package/dist/core/utils/urlSafety.js +144 -0
  290. package/dist/core/utils/urlSafety.js.map +1 -0
  291. package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.d.ts +14 -0
  292. package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.d.ts.map +1 -1
  293. package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.js +95 -4
  294. package/dist/node/appendonlystores/BasicOnDiskContentAddressedStore.js.map +1 -1
  295. package/dist/node/server/CapabilityMatcher.d.ts +10 -0
  296. package/dist/node/server/CapabilityMatcher.d.ts.map +1 -1
  297. package/dist/node/server/CapabilityMatcher.js +14 -2
  298. package/dist/node/server/CapabilityMatcher.js.map +1 -1
  299. package/dist/node/server/MindooDBServer.d.ts.map +1 -1
  300. package/dist/node/server/MindooDBServer.js +117 -8
  301. package/dist/node/server/MindooDBServer.js.map +1 -1
  302. package/dist/node/server/PurgedDocRegistry.d.ts +32 -0
  303. package/dist/node/server/PurgedDocRegistry.d.ts.map +1 -0
  304. package/dist/node/server/PurgedDocRegistry.js +94 -0
  305. package/dist/node/server/PurgedDocRegistry.js.map +1 -0
  306. package/dist/node/server/ServerSync.d.ts.map +1 -1
  307. package/dist/node/server/ServerSync.js +5 -2
  308. package/dist/node/server/ServerSync.js.map +1 -1
  309. package/dist/node/server/SystemAdminAuth.d.ts +10 -0
  310. package/dist/node/server/SystemAdminAuth.d.ts.map +1 -1
  311. package/dist/node/server/SystemAdminAuth.js +25 -0
  312. package/dist/node/server/SystemAdminAuth.js.map +1 -1
  313. package/dist/node/server/TenantManager.d.ts +95 -1
  314. package/dist/node/server/TenantManager.d.ts.map +1 -1
  315. package/dist/node/server/TenantManager.js +382 -15
  316. package/dist/node/server/TenantManager.js.map +1 -1
  317. package/dist/node/server/config.d.ts.map +1 -1
  318. package/dist/node/server/config.js +5 -1
  319. package/dist/node/server/config.js.map +1 -1
  320. package/dist/node/server/types.d.ts +29 -3
  321. package/dist/node/server/types.d.ts.map +1 -1
  322. package/dist/node/server/types.js +12 -0
  323. package/dist/node/server/types.js.map +1 -1
  324. package/dist/node/server/validation.d.ts +6 -0
  325. package/dist/node/server/validation.d.ts.map +1 -1
  326. package/dist/node/server/validation.js +7 -1
  327. package/dist/node/server/validation.js.map +1 -1
  328. package/package.json +4 -3
  329. package/dist/appendonlystores/BasicOnDiskContentAddressedStoreFactory.d.ts +0 -8
  330. package/dist/appendonlystores/BasicOnDiskContentAddressedStoreFactory.d.ts.map +0 -1
  331. package/dist/appendonlystores/BasicOnDiskContentAddressedStoreFactory.js +0 -16
  332. package/dist/appendonlystores/BasicOnDiskContentAddressedStoreFactory.js.map +0 -1
  333. package/dist/core/appendonlystores/BasicOnDiskContentAddressedStore.d.ts +0 -68
  334. package/dist/core/appendonlystores/BasicOnDiskContentAddressedStore.d.ts.map +0 -1
  335. package/dist/core/appendonlystores/BasicOnDiskContentAddressedStore.js +0 -659
  336. package/dist/core/appendonlystores/BasicOnDiskContentAddressedStore.js.map +0 -1
  337. package/dist/node/attachments/writeAttachmentToFile.d.ts +0 -15
  338. package/dist/node/attachments/writeAttachmentToFile.d.ts.map +0 -1
  339. package/dist/node/attachments/writeAttachmentToFile.js +0 -73
  340. package/dist/node/attachments/writeAttachmentToFile.js.map +0 -1
package/README-server.md CHANGED
@@ -627,7 +627,7 @@ Generated by `pnpm server:init`. Contains a `PrivateUserId` with encrypted priva
627
627
  "defaultStoreType": "file",
628
628
  "users": [
629
629
  {
630
- "username": "alice",
630
+ "comment": "alice",
631
631
  "signingPublicKey": "-----BEGIN PUBLIC KEY-----\n...",
632
632
  "encryptionPublicKey": "-----BEGIN PUBLIC KEY-----\n..."
633
633
  }
@@ -643,6 +643,14 @@ Generated by `pnpm server:init`. Contains a `PrivateUserId` with encrypted priva
643
643
  }
644
644
  ```
645
645
 
646
+ The `users` array is a **public-key allowlist**: each entry's identity is its
647
+ `signingPublicKey` (with the paired `encryptionPublicKey`). The cleartext
648
+ `username` from previous versions is **no longer required or used for matching** — clients may
649
+ authenticate by signing key alone, so the server never needs the name. Any
650
+ `username` field is treated as documentation only; use `comment` (or any other
651
+ extra field) for human-readable notes. Entries are matched solely by
652
+ `signingPublicKey`.
653
+
646
654
  ## Environment Variables
647
655
 
648
656
  | Variable | Required | Description |
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  **Sleep well, even if your hosting service gets hacked.** 🔒
4
4
 
5
- MindooDB is an **end-to-end encrypted, offline-first sync database**.
5
+ MindooDB is an **end-to-end encrypted, local-first sync database**.
6
6
  It lets apps collaborate and sync data without giving servers access to the contents.
7
7
 
8
8
  Even if someone has full access to your infrastructure — database dumps, backups, logs — all they get is ciphertext.
@@ -54,7 +54,7 @@ Traditional databases trust the server. If your hosting provider is compromised,
54
54
  | Feature | What It Means |
55
55
  |---------|---------------|
56
56
  | 🛡️ **End-to-End Encrypted** | Data encrypted on client before sync. Servers can't decrypt. |
57
- | 📴 **Offline-First** | Create and edit documents without network. Sync when online. |
57
+ | 📴 **Local-First** | Create and edit documents without network. Sync when online. |
58
58
  | ✍️ **Signed Changes** | Every change is digitally signed. Proves authorship, prevents tampering. |
59
59
  | 🔗 **Tamperproof History** | Append-only, cryptographically chained. Like a blockchain for your docs. |
60
60
  | 🤝 **Real-time Collaboration** | Built on [Automerge](https://automerge.org/) CRDTs. Conflicts resolve automatically. |
@@ -245,7 +245,7 @@ Append-only storage means nothing is ever deleted:
245
245
  - **Collaborative Editing**: Real-time co-editing with signed changes
246
246
  - **Secure File Sharing**: Named keys for need-to-know access
247
247
  - **Audit-Critical Systems**: Tamperproof history meets compliance requirements
248
- - **Offline-First Apps**: Full functionality without network; sync when connected
248
+ - **Local-First Apps**: Full functionality without network; sync when connected
249
249
  - **Mobile Apps**: End-to-end encrypted sync with native performance
250
250
 
251
251
  See: [Use Cases Documentation](./docs/usecases/README.md)
@@ -257,6 +257,8 @@ See: [Use Cases Documentation](./docs/usecases/README.md)
257
257
  - [Architecture Specification](./docs/specification.md) — Full technical details
258
258
  - [React Native Guide](./docs/reactnative.md) — Native Automerge setup and troubleshooting
259
259
  - [Virtual Views](./docs/virtualview.md) — Aggregations and cross-database views
260
+ - [Ad-hoc Queries & Reactive Updates](./docs/adhoc-queries.md) — Summary buffer, `db.query()`, ephemeral views, live queries and change listeners
261
+ - [Full-Text Search](./docs/fulltext-search.md) — Client-side encrypted full-text index, `db.searchText()`, the query `text` clause, attachment text extraction
260
262
  - [Data Indexing](./docs/dataindexing.md) — Incremental indexing and search integration
261
263
  - [Time Travel](./docs/timetravel.md) — Historical document retrieval and history traversal
262
264
  - [P2P Sync](./docs/p2psync.md) — Peer-to-peer synchronization
@@ -57,7 +57,7 @@ export declare class ClientNetworkContentAddressedStore implements ContentAddres
57
57
  * Store entries to the remote store.
58
58
  * The entries are pushed to the server immediately.
59
59
  */
60
- putEntries(entries: StoreEntry[]): Promise<void>;
60
+ putEntries(entries: StoreEntry[]): Promise<void | StoreEntryMetadata[]>;
61
61
  /**
62
62
  * Get entries from the remote store by their IDs.
63
63
  *
@@ -1 +1 @@
1
- {"version":3,"file":"ClientNetworkContentAddressedStore.d.ts","sourceRoot":"","sources":["../../../src/appendonlystores/network/ClientNetworkContentAddressedStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClientNetworkContentAddressedStore.d.ts","sourceRoot":"","sources":["../../../src/appendonlystores/network/ClientNetworkContentAddressedStore.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ const types_1 = require("../../core/appendonlystores/network/types");
5
5
  const RSAEncryption_1 = require("../../core/crypto/RSAEncryption");
6
6
  const logging_1 = require("../../core/logging");
7
7
  const bloom_1 = require("../../core/appendonlystores/bloom");
8
+ const receiptValidation_1 = require("../../core/accesscontrol/receiptValidation");
8
9
  /**
9
10
  * Client-side network ContentAddressedStore that forwards all operations to a remote server.
10
11
  *
@@ -81,13 +82,17 @@ class ClientNetworkContentAddressedStore {
81
82
  */
82
83
  async putEntries(entries) {
83
84
  if (entries.length === 0) {
84
- return;
85
+ return [];
85
86
  }
86
- await this.withTransparentReauth("putEntries", async () => {
87
+ return this.withTransparentReauth("putEntries", async () => {
87
88
  this.logger.debug(`Pushing ${entries.length} entries to remote`);
88
89
  const token = await this.ensureAuthenticated();
89
- await this.transport.putEntries(token, entries);
90
- this.logger.debug(`Successfully pushed ${entries.length} entries`);
90
+ // The server stamps witness receipts onto accepted entries and returns
91
+ // them so the pushing client can persist the attestation locally
92
+ // (docs/accesscontrol.md §5.3). Surface them to the sync orchestrator.
93
+ const receipts = await this.transport.putEntries(token, entries);
94
+ this.logger.debug(`Successfully pushed ${entries.length} entries (${receipts.length} receipts)`);
95
+ return receipts;
91
96
  });
92
97
  }
93
98
  /**
@@ -282,7 +287,20 @@ class ClientNetworkContentAddressedStore {
282
287
  this.capabilitiesPromise = this.withTransparentReauth("getCapabilities", async () => {
283
288
  const token = await this.ensureAuthenticated();
284
289
  if (this.transport.getCapabilities) {
285
- this.capabilitiesCache = await this.transport.getCapabilities(token);
290
+ const capabilities = await this.transport.getCapabilities(token);
291
+ // Clock-skew guard (docs/accesscontrol.md §4): if the server reports its
292
+ // time and our local clock diverges beyond tolerance, refuse to sync —
293
+ // a wrong local clock would make `createdAt`/trusted-time decisions
294
+ // unsafe. Only the clock-skew arm is enforced here (no strict mode), so
295
+ // servers that do not report `serverTime` are unaffected.
296
+ const negotiation = (0, receiptValidation_1.negotiateSync)(Date.now(), {
297
+ serverTime: capabilities.serverTime,
298
+ supportsAccessControlV1: capabilities.supportsAccessControlV1,
299
+ });
300
+ if (!negotiation.ok) {
301
+ throw new types_1.NetworkError(types_1.NetworkErrorType.SERVER_ERROR, `Refusing to sync: ${negotiation.reason}`);
302
+ }
303
+ this.capabilitiesCache = capabilities;
286
304
  return this.capabilitiesCache;
287
305
  }
288
306
  this.capabilitiesCache = {
@@ -497,6 +515,7 @@ class ClientNetworkContentAddressedStore {
497
515
  signature: enc.signature,
498
516
  originalSize: enc.originalSize,
499
517
  encryptedSize: enc.encryptedSize,
518
+ attachmentRefs: enc.attachmentRefs,
500
519
  encryptedData,
501
520
  };
502
521
  results.push(entry);
@@ -1 +1 @@
1
- {"version":3,"file":"ClientNetworkContentAddressedStore.js","sourceRoot":"","sources":["../../../src/appendonlystores/network/ClientNetworkContentAddressedStore.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClientNetworkContentAddressedStore.js","sourceRoot":"","sources":["../../../src/appendonlystores/network/ClientNetworkContentAddressedStore.ts"],"names":[],"mappings":"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"}
@@ -33,7 +33,9 @@ export declare class HttpTransport implements NetworkTransport {
33
33
  /**
34
34
  * Request a challenge string for authentication.
35
35
  */
36
- requestChallenge(username: string): Promise<string>;
36
+ requestChallenge(username?: string, options?: {
37
+ signingPublicKey?: string;
38
+ }): Promise<string>;
37
39
  /**
38
40
  * Authenticate by providing a signed challenge.
39
41
  */
@@ -71,7 +73,7 @@ export declare class HttpTransport implements NetworkTransport {
71
73
  /**
72
74
  * Push entries to the remote store.
73
75
  */
74
- putEntries(token: string, entries: StoreEntry[]): Promise<void>;
76
+ putEntries(token: string, entries: StoreEntry[]): Promise<StoreEntryMetadata[]>;
75
77
  /**
76
78
  * Check which of the provided IDs exist in the remote store.
77
79
  */
@@ -88,6 +90,16 @@ export declare class HttpTransport implements NetworkTransport {
88
90
  * Fetch with retry and exponential backoff.
89
91
  */
90
92
  private fetchWithRetry;
93
+ private static readonly MAX_REDIRECTS;
94
+ /**
95
+ * `fetch` with manual redirect handling to mitigate redirect-based SSRF
96
+ * (audit, Medium): a malicious or compromised remote could answer a
97
+ * server-initiated request with a 3xx pointing at an internal address. We
98
+ * disable automatic following (`redirect: "manual"`) and only follow a
99
+ * redirect when it stays on the SAME origin as the original request; any
100
+ * cross-origin redirect is rejected. Capped at {@link MAX_REDIRECTS} hops.
101
+ */
102
+ private safeFetch;
91
103
  private sleep;
92
104
  private parseRetryAfterMs;
93
105
  private getRemoteJsonBodyLimitBytes;
@@ -1 +1 @@
1
- {"version":3,"file":"HttpTransport.d.ts","sourceRoot":"","sources":["../../../src/appendonlystores/network/HttpTransport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HttpTransport.d.ts","sourceRoot":"","sources":["../../../src/appendonlystores/network/HttpTransport.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ exports.HttpTransport = void 0;
4
4
  const types_1 = require("../../core/appendonlystores/types");
5
5
  const types_2 = require("../../core/appendonlystores/network/types");
6
6
  const logging_1 = require("../../core/logging");
7
+ const urlSafety_1 = require("../../core/utils/urlSafety");
7
8
  /**
8
9
  * HTTP implementation of the NetworkTransport interface.
9
10
  *
@@ -52,14 +53,19 @@ class HttpTransport {
52
53
  /**
53
54
  * Request a challenge string for authentication.
54
55
  */
55
- async requestChallenge(username) {
56
- this.logger.debug(`Requesting challenge for user: ${username}`);
56
+ async requestChallenge(username, options) {
57
+ this.logger.debug(`Requesting challenge${username ? ` for user: ${username}` : " by signing key"}`);
58
+ const body = {};
59
+ if (username)
60
+ body.username = username;
61
+ if (options?.signingPublicKey)
62
+ body.signingPublicKey = options.signingPublicKey;
57
63
  const response = await this.fetchWithRetry(`${this.baseUrl}/auth/challenge`, {
58
64
  method: "POST",
59
65
  headers: {
60
66
  "Content-Type": "application/json",
61
67
  },
62
- body: JSON.stringify({ username }),
68
+ body: JSON.stringify(body),
63
69
  });
64
70
  const data = await response.json();
65
71
  if (!data.challenge) {
@@ -73,16 +79,32 @@ class HttpTransport {
73
79
  */
74
80
  async authenticate(challenge, signature) {
75
81
  this.logger.debug(`Authenticating with challenge: ${challenge}`);
76
- const response = await this.fetchWithRetry(`${this.baseUrl}/auth/authenticate`, {
77
- method: "POST",
78
- headers: {
79
- "Content-Type": "application/json",
80
- },
81
- body: JSON.stringify({
82
- challenge,
83
- signature: this.uint8ArrayToBase64(signature),
84
- }),
85
- });
82
+ let response;
83
+ try {
84
+ response = await this.fetchWithRetry(`${this.baseUrl}/auth/authenticate`, {
85
+ method: "POST",
86
+ headers: {
87
+ "Content-Type": "application/json",
88
+ },
89
+ body: JSON.stringify({
90
+ challenge,
91
+ signature: this.uint8ArrayToBase64(signature),
92
+ }),
93
+ });
94
+ }
95
+ catch (error) {
96
+ // The server now returns HTTP 401 on a failed credential check (audit,
97
+ // Low). `fetchWithRetry` surfaces that as a (non-retried) INVALID_TOKEN /
98
+ // USER_REVOKED NetworkError; map it back to a structured AuthResult so the
99
+ // caller's existing `result.success` handling keeps working.
100
+ if (error instanceof types_2.NetworkError &&
101
+ (error.type === types_2.NetworkErrorType.INVALID_TOKEN ||
102
+ error.type === types_2.NetworkErrorType.USER_REVOKED)) {
103
+ this.logger.debug(`Authentication result: failed (${error.type})`);
104
+ return { success: false, error: error.message };
105
+ }
106
+ throw error;
107
+ }
86
108
  const data = await response.json();
87
109
  this.logger.debug(`Authentication result: ${data.success ? "success" : "failed"}`);
88
110
  return {
@@ -352,15 +374,16 @@ class HttpTransport {
352
374
  async putEntries(token, entries) {
353
375
  this.logger.debug(`Pushing ${entries.length} entries`);
354
376
  if (entries.length === 0) {
355
- return;
377
+ return [];
356
378
  }
357
379
  const serializedEntries = entries.map((entry) => this.serializeEntry(entry));
358
380
  const maxBodyBytes = await this.getRemoteJsonBodyLimitBytes();
359
381
  if (maxBodyBytes) {
360
382
  this.logger.debug(`Remote JSON body limit advertised as ${maxBodyBytes} bytes`);
361
383
  }
362
- await this.pushSerializedEntries(token, serializedEntries, maxBodyBytes);
363
- this.logger.debug(`Successfully pushed ${entries.length} entries`);
384
+ const receipts = await this.pushSerializedEntries(token, serializedEntries, maxBodyBytes);
385
+ this.logger.debug(`Successfully pushed ${entries.length} entries (${receipts.length} receipts)`);
386
+ return receipts;
364
387
  }
365
388
  /**
366
389
  * Check which of the provided IDs exist in the remote store.
@@ -446,7 +469,7 @@ class HttpTransport {
446
469
  externalSignal.addEventListener('abort', onExternalAbort);
447
470
  }
448
471
  try {
449
- const response = await fetch(url, {
472
+ const response = await this.safeFetch(url, {
450
473
  ...options,
451
474
  signal: controller.signal,
452
475
  });
@@ -511,6 +534,43 @@ class HttpTransport {
511
534
  }
512
535
  throw new types_2.NetworkError(types_2.NetworkErrorType.NETWORK_ERROR, lastError?.message || "Request failed after retries");
513
536
  }
537
+ /**
538
+ * `fetch` with manual redirect handling to mitigate redirect-based SSRF
539
+ * (audit, Medium): a malicious or compromised remote could answer a
540
+ * server-initiated request with a 3xx pointing at an internal address. We
541
+ * disable automatic following (`redirect: "manual"`) and only follow a
542
+ * redirect when it stays on the SAME origin as the original request; any
543
+ * cross-origin redirect is rejected. Capped at {@link MAX_REDIRECTS} hops.
544
+ */
545
+ async safeFetch(url, init) {
546
+ let currentUrl = url;
547
+ for (let hop = 0; hop <= HttpTransport.MAX_REDIRECTS; hop++) {
548
+ const response = await fetch(currentUrl, { ...init, redirect: "manual" });
549
+ const isRedirect = response.type === "opaqueredirect" ||
550
+ (response.status >= 300 && response.status < 400);
551
+ if (!isRedirect) {
552
+ return response;
553
+ }
554
+ // Browsers return an opaque redirect with no readable Location; we cannot
555
+ // validate the target, so refuse to follow it.
556
+ const location = response.headers.get("location");
557
+ if (!location) {
558
+ throw new types_2.NetworkError(types_2.NetworkErrorType.NETWORK_ERROR, "Server returned a redirect that cannot be safely followed");
559
+ }
560
+ let nextUrl;
561
+ try {
562
+ nextUrl = new URL(location, currentUrl);
563
+ }
564
+ catch {
565
+ throw new types_2.NetworkError(types_2.NetworkErrorType.NETWORK_ERROR, `Server returned an invalid redirect target: ${location}`);
566
+ }
567
+ if (!(0, urlSafety_1.isSameOrigin)(nextUrl, new URL(currentUrl))) {
568
+ throw new types_2.NetworkError(types_2.NetworkErrorType.NETWORK_ERROR, `Refusing to follow cross-origin redirect to ${nextUrl.origin}`);
569
+ }
570
+ currentUrl = nextUrl.toString();
571
+ }
572
+ throw new types_2.NetworkError(types_2.NetworkErrorType.NETWORK_ERROR, `Too many redirects (>${HttpTransport.MAX_REDIRECTS})`);
573
+ }
514
574
  sleep(ms) {
515
575
  return new Promise(resolve => setTimeout(resolve, ms));
516
576
  }
@@ -539,7 +599,7 @@ class HttpTransport {
539
599
  const timeoutId = setTimeout(() => controller.abort(), this.config.timeout || HttpTransport.DEFAULT_TIMEOUT_MS);
540
600
  try {
541
601
  const serverInfoUrl = new URL("/.well-known/mindoodb-server-info", this.baseUrl);
542
- const response = await fetch(serverInfoUrl.toString(), {
602
+ const response = await this.safeFetch(serverInfoUrl.toString(), {
543
603
  method: "GET",
544
604
  headers: {
545
605
  Accept: "application/json",
@@ -592,23 +652,24 @@ class HttpTransport {
592
652
  }
593
653
  async pushSerializedEntries(token, serializedEntries, maxBodyBytes) {
594
654
  if (serializedEntries.length === 0) {
595
- return;
655
+ return [];
596
656
  }
597
657
  if (maxBodyBytes !== null) {
598
658
  const batches = this.partitionSerializedEntriesForMaxBodySize(serializedEntries, maxBodyBytes);
599
659
  if (batches.length > 1) {
600
660
  this.logger.debug(`Split putEntries payload into ${batches.length} batch(es) for body limit ${maxBodyBytes}`);
601
661
  }
662
+ const receipts = [];
602
663
  for (const batch of batches) {
603
- await this.sendSerializedEntriesBatch(token, batch, maxBodyBytes);
664
+ receipts.push(...await this.sendSerializedEntriesBatch(token, batch, maxBodyBytes));
604
665
  }
605
- return;
666
+ return receipts;
606
667
  }
607
- await this.sendSerializedEntriesBatch(token, serializedEntries, null);
668
+ return this.sendSerializedEntriesBatch(token, serializedEntries, null);
608
669
  }
609
670
  async sendSerializedEntriesBatch(token, serializedEntries, maxBodyBytes) {
610
671
  try {
611
- await this.postSerializedEntries(token, serializedEntries);
672
+ return await this.postSerializedEntries(token, serializedEntries);
612
673
  }
613
674
  catch (error) {
614
675
  if (error instanceof types_2.NetworkError
@@ -618,9 +679,9 @@ class HttpTransport {
618
679
  const left = serializedEntries.slice(0, midpoint);
619
680
  const right = serializedEntries.slice(midpoint);
620
681
  this.logger.warn(`putEntries batch with ${serializedEntries.length} entries exceeded remote limit; retrying as ${left.length} + ${right.length} batches.`);
621
- await this.pushSerializedEntries(token, left, maxBodyBytes);
622
- await this.pushSerializedEntries(token, right, maxBodyBytes);
623
- return;
682
+ const leftReceipts = await this.pushSerializedEntries(token, left, maxBodyBytes);
683
+ const rightReceipts = await this.pushSerializedEntries(token, right, maxBodyBytes);
684
+ return [...leftReceipts, ...rightReceipts];
624
685
  }
625
686
  throw error;
626
687
  }
@@ -657,7 +718,7 @@ class HttpTransport {
657
718
  return batches;
658
719
  }
659
720
  async postSerializedEntries(token, serializedEntries) {
660
- await this.fetchWithRetry(`${this.getSyncBasePath()}/putEntries`, {
721
+ const response = await this.fetchWithRetry(`${this.getSyncBasePath()}/putEntries`, {
661
722
  method: "POST",
662
723
  headers: {
663
724
  "Content-Type": "application/json",
@@ -669,6 +730,19 @@ class HttpTransport {
669
730
  entries: serializedEntries,
670
731
  }),
671
732
  });
733
+ // The server returns witness receipts (stamped metadata) for accepted
734
+ // entries (docs/accesscontrol.md §5.3). Older servers omit the field.
735
+ let receipts = [];
736
+ try {
737
+ const data = await response.json();
738
+ const serialized = data?.receipts ?? [];
739
+ receipts = serialized.map((e) => this.deserializeEntryMetadata(e));
740
+ }
741
+ catch {
742
+ // Non-JSON / empty body from a legacy server: no receipts to apply.
743
+ receipts = [];
744
+ }
745
+ return receipts;
672
746
  }
673
747
  measureBodyBytes(value) {
674
748
  return new TextEncoder().encode(value).length;
@@ -705,8 +779,20 @@ class HttpTransport {
705
779
  snapshotHeadHashes: metadata.snapshotHeadHashes,
706
780
  snapshotHeadEntryIds: metadata.snapshotHeadEntryIds,
707
781
  signature: this.uint8ArrayToBase64(metadata.signature),
782
+ metadataSignature: metadata.metadataSignature
783
+ ? this.uint8ArrayToBase64(metadata.metadataSignature)
784
+ : undefined,
708
785
  originalSize: metadata.originalSize,
709
786
  encryptedSize: metadata.encryptedSize,
787
+ receivedAt: metadata.receivedAt,
788
+ receivedByPublicKey: metadata.receivedByPublicKey,
789
+ receivedDateSignature: metadata.receivedDateSignature
790
+ ? this.uint8ArrayToBase64(metadata.receivedDateSignature)
791
+ : undefined,
792
+ // Signed attachment snapshot (plain JSON, no binary). Must survive the
793
+ // round-trip or metadataSignature verification fails on the receiver.
794
+ attachmentRefs: metadata.attachmentRefs,
795
+ entryVersion: metadata.entryVersion,
710
796
  };
711
797
  }
712
798
  /**
@@ -726,8 +812,18 @@ class HttpTransport {
726
812
  snapshotHeadHashes: serialized.snapshotHeadHashes,
727
813
  snapshotHeadEntryIds: serialized.snapshotHeadEntryIds,
728
814
  signature: this.base64ToUint8Array(serialized.signature),
815
+ metadataSignature: serialized.metadataSignature
816
+ ? this.base64ToUint8Array(serialized.metadataSignature)
817
+ : undefined,
729
818
  originalSize: serialized.originalSize,
730
819
  encryptedSize: serialized.encryptedSize,
820
+ receivedAt: serialized.receivedAt,
821
+ receivedByPublicKey: serialized.receivedByPublicKey,
822
+ receivedDateSignature: serialized.receivedDateSignature
823
+ ? this.base64ToUint8Array(serialized.receivedDateSignature)
824
+ : undefined,
825
+ attachmentRefs: serialized.attachmentRefs,
826
+ entryVersion: serialized.entryVersion,
731
827
  };
732
828
  }
733
829
  /**
@@ -742,4 +838,5 @@ class HttpTransport {
742
838
  }
743
839
  exports.HttpTransport = HttpTransport;
744
840
  HttpTransport.DEFAULT_TIMEOUT_MS = 120000;
841
+ HttpTransport.MAX_REDIRECTS = 3;
745
842
  //# sourceMappingURL=HttpTransport.js.map