@brightchain/brightchain-lib 0.14.0 → 0.15.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (571) hide show
  1. package/brightchain-lib/BROWSER_COMPAT.md +54 -0
  2. package/package.json +15 -4
  3. package/src/lib/blocks/cblBase.d.ts +16 -1
  4. package/src/lib/blocks/cblBase.d.ts.map +1 -1
  5. package/src/lib/blocks/cblBase.js +33 -4
  6. package/src/lib/blocks/cblBase.js.map +1 -1
  7. package/src/lib/blocks/extendedCbl.d.ts.map +1 -1
  8. package/src/lib/blocks/extendedCbl.js +2 -1
  9. package/src/lib/blocks/extendedCbl.js.map +1 -1
  10. package/src/lib/blocks/handle.d.ts +5 -0
  11. package/src/lib/blocks/handle.d.ts.map +1 -1
  12. package/src/lib/blocks/handle.js.map +1 -1
  13. package/src/lib/blocks/handleTuple.d.ts +9 -1
  14. package/src/lib/blocks/handleTuple.d.ts.map +1 -1
  15. package/src/lib/blocks/handleTuple.js +23 -1
  16. package/src/lib/blocks/handleTuple.js.map +1 -1
  17. package/src/lib/blocks/index.d.ts +1 -0
  18. package/src/lib/blocks/index.d.ts.map +1 -1
  19. package/src/lib/blocks/index.js +1 -0
  20. package/src/lib/blocks/index.js.map +1 -1
  21. package/src/lib/blocks/memoryTuple.d.ts +9 -2
  22. package/src/lib/blocks/memoryTuple.d.ts.map +1 -1
  23. package/src/lib/blocks/memoryTuple.js +12 -3
  24. package/src/lib/blocks/memoryTuple.js.map +1 -1
  25. package/src/lib/blocks/vcbl.d.ts +27 -0
  26. package/src/lib/blocks/vcbl.d.ts.map +1 -0
  27. package/src/lib/blocks/vcbl.js +107 -0
  28. package/src/lib/blocks/vcbl.js.map +1 -0
  29. package/src/lib/constants.d.ts +5 -1
  30. package/src/lib/constants.d.ts.map +1 -1
  31. package/src/lib/constants.js +4 -0
  32. package/src/lib/constants.js.map +1 -1
  33. package/src/lib/crypto/index.d.ts +12 -0
  34. package/src/lib/crypto/index.d.ts.map +1 -0
  35. package/src/lib/crypto/index.js +23 -0
  36. package/src/lib/crypto/index.js.map +1 -0
  37. package/src/lib/crypto/platformCrypto.d.ts +132 -0
  38. package/src/lib/crypto/platformCrypto.d.ts.map +1 -0
  39. package/src/lib/crypto/platformCrypto.js +181 -0
  40. package/src/lib/crypto/platformCrypto.js.map +1 -0
  41. package/src/lib/enumeration-translations/blockType.d.ts.map +1 -1
  42. package/src/lib/enumeration-translations/blockType.js +16 -0
  43. package/src/lib/enumeration-translations/blockType.js.map +1 -1
  44. package/src/lib/enumerations/blockType.d.ts +12 -0
  45. package/src/lib/enumerations/blockType.d.ts.map +1 -1
  46. package/src/lib/enumerations/blockType.js +14 -0
  47. package/src/lib/enumerations/blockType.js.map +1 -1
  48. package/src/lib/enumerations/brightChainStrings.d.ts +4 -0
  49. package/src/lib/enumerations/brightChainStrings.d.ts.map +1 -1
  50. package/src/lib/enumerations/brightChainStrings.js +4 -0
  51. package/src/lib/enumerations/brightChainStrings.js.map +1 -1
  52. package/src/lib/enumerations/cblErrorType.d.ts +2 -1
  53. package/src/lib/enumerations/cblErrorType.d.ts.map +1 -1
  54. package/src/lib/enumerations/cblErrorType.js +1 -0
  55. package/src/lib/enumerations/cblErrorType.js.map +1 -1
  56. package/src/lib/enumerations/communication.d.ts +57 -0
  57. package/src/lib/enumerations/communication.d.ts.map +1 -0
  58. package/src/lib/enumerations/communication.js +89 -0
  59. package/src/lib/enumerations/communication.js.map +1 -0
  60. package/src/lib/enumerations/deviceType.d.ts +15 -0
  61. package/src/lib/enumerations/deviceType.d.ts.map +1 -0
  62. package/src/lib/enumerations/deviceType.js +19 -0
  63. package/src/lib/enumerations/deviceType.js.map +1 -0
  64. package/src/lib/enumerations/handleTupleErrorType.d.ts +2 -1
  65. package/src/lib/enumerations/handleTupleErrorType.d.ts.map +1 -1
  66. package/src/lib/enumerations/handleTupleErrorType.js +1 -0
  67. package/src/lib/enumerations/handleTupleErrorType.js.map +1 -1
  68. package/src/lib/enumerations/index.d.ts +6 -0
  69. package/src/lib/enumerations/index.d.ts.map +1 -1
  70. package/src/lib/enumerations/index.js +11 -0
  71. package/src/lib/enumerations/index.js.map +1 -1
  72. package/src/lib/enumerations/paperKeyPurpose.d.ts +15 -0
  73. package/src/lib/enumerations/paperKeyPurpose.d.ts.map +1 -0
  74. package/src/lib/enumerations/paperKeyPurpose.js +19 -0
  75. package/src/lib/enumerations/paperKeyPurpose.js.map +1 -0
  76. package/src/lib/enumerations/proofPlatform.d.ts +24 -0
  77. package/src/lib/enumerations/proofPlatform.d.ts.map +1 -0
  78. package/src/lib/enumerations/proofPlatform.js +28 -0
  79. package/src/lib/enumerations/proofPlatform.js.map +1 -0
  80. package/src/lib/enumerations/readConcern.d.ts +22 -0
  81. package/src/lib/enumerations/readConcern.d.ts.map +1 -0
  82. package/src/lib/enumerations/readConcern.js +26 -0
  83. package/src/lib/enumerations/readConcern.js.map +1 -0
  84. package/src/lib/enumerations/tupleErrorType.d.ts +2 -1
  85. package/src/lib/enumerations/tupleErrorType.d.ts.map +1 -1
  86. package/src/lib/enumerations/tupleErrorType.js +1 -0
  87. package/src/lib/enumerations/tupleErrorType.js.map +1 -1
  88. package/src/lib/enumerations/verificationStatus.d.ts +17 -0
  89. package/src/lib/enumerations/verificationStatus.d.ts.map +1 -0
  90. package/src/lib/enumerations/verificationStatus.js +21 -0
  91. package/src/lib/enumerations/verificationStatus.js.map +1 -0
  92. package/src/lib/errors/blockFetchError.d.ts +51 -0
  93. package/src/lib/errors/blockFetchError.d.ts.map +1 -0
  94. package/src/lib/errors/blockFetchError.js +63 -0
  95. package/src/lib/errors/blockFetchError.js.map +1 -0
  96. package/src/lib/errors/cblError.d.ts.map +1 -1
  97. package/src/lib/errors/cblError.js +1 -0
  98. package/src/lib/errors/cblError.js.map +1 -1
  99. package/src/lib/errors/handleTupleError.d.ts +10 -1
  100. package/src/lib/errors/handleTupleError.d.ts.map +1 -1
  101. package/src/lib/errors/handleTupleError.js +10 -1
  102. package/src/lib/errors/handleTupleError.js.map +1 -1
  103. package/src/lib/errors/index.d.ts +16 -0
  104. package/src/lib/errors/index.d.ts.map +1 -1
  105. package/src/lib/errors/index.js +22 -0
  106. package/src/lib/errors/index.js.map +1 -1
  107. package/src/lib/errors/poolDeletionError.d.ts +10 -0
  108. package/src/lib/errors/poolDeletionError.d.ts.map +1 -0
  109. package/src/lib/errors/poolDeletionError.js +16 -0
  110. package/src/lib/errors/poolDeletionError.js.map +1 -0
  111. package/src/lib/errors/poolDeletionTombstoneError.d.ts +12 -0
  112. package/src/lib/errors/poolDeletionTombstoneError.d.ts.map +1 -0
  113. package/src/lib/errors/poolDeletionTombstoneError.js +18 -0
  114. package/src/lib/errors/poolDeletionTombstoneError.js.map +1 -0
  115. package/src/lib/errors/tupleError.d.ts.map +1 -1
  116. package/src/lib/errors/tupleError.js +1 -0
  117. package/src/lib/errors/tupleError.js.map +1 -1
  118. package/src/lib/i18n/i18n-setup.d.ts +1 -1
  119. package/src/lib/i18n/strings/englishUs.d.ts.map +1 -1
  120. package/src/lib/i18n/strings/englishUs.js +4 -0
  121. package/src/lib/i18n/strings/englishUs.js.map +1 -1
  122. package/src/lib/i18n/strings/french.d.ts.map +1 -1
  123. package/src/lib/i18n/strings/french.js +4 -0
  124. package/src/lib/i18n/strings/french.js.map +1 -1
  125. package/src/lib/i18n/strings/german.d.ts.map +1 -1
  126. package/src/lib/i18n/strings/german.js +4 -0
  127. package/src/lib/i18n/strings/german.js.map +1 -1
  128. package/src/lib/i18n/strings/japanese.d.ts.map +1 -1
  129. package/src/lib/i18n/strings/japanese.js +4 -0
  130. package/src/lib/i18n/strings/japanese.js.map +1 -1
  131. package/src/lib/i18n/strings/mandarin.d.ts.map +1 -1
  132. package/src/lib/i18n/strings/mandarin.js +4 -0
  133. package/src/lib/i18n/strings/mandarin.js.map +1 -1
  134. package/src/lib/i18n/strings/spanish.d.ts.map +1 -1
  135. package/src/lib/i18n/strings/spanish.js +4 -0
  136. package/src/lib/i18n/strings/spanish.js.map +1 -1
  137. package/src/lib/i18n/strings/ukrainian.d.ts.map +1 -1
  138. package/src/lib/i18n/strings/ukrainian.js +4 -0
  139. package/src/lib/i18n/strings/ukrainian.js.map +1 -1
  140. package/src/lib/index.d.ts +4 -0
  141. package/src/lib/index.d.ts.map +1 -1
  142. package/src/lib/index.js +4 -0
  143. package/src/lib/index.js.map +1 -1
  144. package/src/lib/interfaces/auth/index.d.ts +4 -0
  145. package/src/lib/interfaces/auth/index.d.ts.map +1 -0
  146. package/src/lib/interfaces/auth/index.js +8 -0
  147. package/src/lib/interfaces/auth/index.js.map +1 -0
  148. package/src/lib/interfaces/auth/nodeAuthenticator.d.ts +19 -0
  149. package/src/lib/interfaces/auth/nodeAuthenticator.d.ts.map +1 -0
  150. package/src/lib/interfaces/auth/nodeAuthenticator.js +3 -0
  151. package/src/lib/interfaces/auth/nodeAuthenticator.js.map +1 -0
  152. package/src/lib/interfaces/auth/poolAcl.d.ts +65 -0
  153. package/src/lib/interfaces/auth/poolAcl.d.ts.map +1 -0
  154. package/src/lib/interfaces/auth/poolAcl.js +52 -0
  155. package/src/lib/interfaces/auth/poolAcl.js.map +1 -0
  156. package/src/lib/interfaces/availability/availabilityService.d.ts +5 -3
  157. package/src/lib/interfaces/availability/availabilityService.d.ts.map +1 -1
  158. package/src/lib/interfaces/availability/availabilityService.js.map +1 -1
  159. package/src/lib/interfaces/availability/blockRegistry.d.ts +52 -3
  160. package/src/lib/interfaces/availability/blockRegistry.d.ts.map +1 -1
  161. package/src/lib/interfaces/availability/blockRegistry.js +1 -1
  162. package/src/lib/interfaces/availability/discoveryProtocol.d.ts +81 -3
  163. package/src/lib/interfaces/availability/discoveryProtocol.d.ts.map +1 -1
  164. package/src/lib/interfaces/availability/discoveryProtocol.js.map +1 -1
  165. package/src/lib/interfaces/availability/gossipService.d.ts +110 -6
  166. package/src/lib/interfaces/availability/gossipService.d.ts.map +1 -1
  167. package/src/lib/interfaces/availability/gossipService.js +94 -1
  168. package/src/lib/interfaces/availability/gossipService.js.map +1 -1
  169. package/src/lib/interfaces/availability/index.d.ts +1 -0
  170. package/src/lib/interfaces/availability/index.d.ts.map +1 -1
  171. package/src/lib/interfaces/availability/index.js +1 -0
  172. package/src/lib/interfaces/availability/index.js.map +1 -1
  173. package/src/lib/interfaces/availability/locationRecord.d.ts +6 -0
  174. package/src/lib/interfaces/availability/locationRecord.d.ts.map +1 -1
  175. package/src/lib/interfaces/availability/locationRecord.js +12 -0
  176. package/src/lib/interfaces/availability/locationRecord.js.map +1 -1
  177. package/src/lib/interfaces/availability/poolDeletionTombstone.d.ts +40 -0
  178. package/src/lib/interfaces/availability/poolDeletionTombstone.d.ts.map +1 -0
  179. package/src/lib/interfaces/availability/poolDeletionTombstone.js +19 -0
  180. package/src/lib/interfaces/availability/poolDeletionTombstone.js.map +1 -0
  181. package/src/lib/interfaces/availability/reconciliationService.d.ts +52 -0
  182. package/src/lib/interfaces/availability/reconciliationService.d.ts.map +1 -1
  183. package/src/lib/interfaces/availability/reconciliationService.js.map +1 -1
  184. package/src/lib/interfaces/blockCapacity.d.ts +9 -0
  185. package/src/lib/interfaces/blockCapacity.d.ts.map +1 -1
  186. package/src/lib/interfaces/blockEncryption.d.ts +4 -2
  187. package/src/lib/interfaces/blockEncryption.d.ts.map +1 -1
  188. package/src/lib/interfaces/blockFetch/blockFetchTransport.d.ts +26 -0
  189. package/src/lib/interfaces/blockFetch/blockFetchTransport.d.ts.map +1 -0
  190. package/src/lib/interfaces/blockFetch/blockFetchTransport.js +12 -0
  191. package/src/lib/interfaces/blockFetch/blockFetchTransport.js.map +1 -0
  192. package/src/lib/interfaces/blockFetch/blockFetcher.d.ts +71 -0
  193. package/src/lib/interfaces/blockFetch/blockFetcher.d.ts.map +1 -0
  194. package/src/lib/interfaces/blockFetch/blockFetcher.js +22 -0
  195. package/src/lib/interfaces/blockFetch/blockFetcher.js.map +1 -0
  196. package/src/lib/interfaces/blockFetch/enrichedQueryResult.d.ts +43 -0
  197. package/src/lib/interfaces/blockFetch/enrichedQueryResult.d.ts.map +1 -0
  198. package/src/lib/interfaces/blockFetch/enrichedQueryResult.js +13 -0
  199. package/src/lib/interfaces/blockFetch/enrichedQueryResult.js.map +1 -0
  200. package/src/lib/interfaces/blockFetch/fetchQueue.d.ts +70 -0
  201. package/src/lib/interfaces/blockFetch/fetchQueue.d.ts.map +1 -0
  202. package/src/lib/interfaces/blockFetch/fetchQueue.js +18 -0
  203. package/src/lib/interfaces/blockFetch/fetchQueue.js.map +1 -0
  204. package/src/lib/interfaces/blockFetch/index.d.ts +10 -0
  205. package/src/lib/interfaces/blockFetch/index.d.ts.map +1 -0
  206. package/src/lib/interfaces/blockFetch/index.js +13 -0
  207. package/src/lib/interfaces/blockFetch/index.js.map +1 -0
  208. package/src/lib/interfaces/blocks/index.d.ts +1 -0
  209. package/src/lib/interfaces/blocks/index.d.ts.map +1 -1
  210. package/src/lib/interfaces/blocks/vcbl.d.ts +16 -0
  211. package/src/lib/interfaces/blocks/vcbl.d.ts.map +1 -0
  212. package/src/lib/interfaces/blocks/vcbl.js +3 -0
  213. package/src/lib/interfaces/blocks/vcbl.js.map +1 -0
  214. package/src/lib/interfaces/brightpass/auditLog.d.ts +25 -0
  215. package/src/lib/interfaces/brightpass/auditLog.d.ts.map +1 -0
  216. package/src/lib/interfaces/brightpass/auditLog.js +21 -0
  217. package/src/lib/interfaces/brightpass/auditLog.js.map +1 -0
  218. package/src/lib/interfaces/brightpass/emergencyAccess.d.ts +11 -0
  219. package/src/lib/interfaces/brightpass/emergencyAccess.d.ts.map +1 -0
  220. package/src/lib/interfaces/brightpass/emergencyAccess.js +3 -0
  221. package/src/lib/interfaces/brightpass/emergencyAccess.js.map +1 -0
  222. package/src/lib/interfaces/brightpass/entryPropertyRecord.d.ts +11 -0
  223. package/src/lib/interfaces/brightpass/entryPropertyRecord.d.ts.map +1 -0
  224. package/src/lib/interfaces/brightpass/entryPropertyRecord.js +3 -0
  225. package/src/lib/interfaces/brightpass/entryPropertyRecord.js.map +1 -0
  226. package/src/lib/interfaces/brightpass/importTypes.d.ts +10 -0
  227. package/src/lib/interfaces/brightpass/importTypes.d.ts.map +1 -0
  228. package/src/lib/interfaces/brightpass/importTypes.js +3 -0
  229. package/src/lib/interfaces/brightpass/importTypes.js.map +1 -0
  230. package/src/lib/interfaces/brightpass/index.d.ts +7 -0
  231. package/src/lib/interfaces/brightpass/index.d.ts.map +1 -0
  232. package/src/lib/interfaces/brightpass/index.js +10 -0
  233. package/src/lib/interfaces/brightpass/index.js.map +1 -0
  234. package/src/lib/interfaces/brightpass/vaultEntry.d.ts +48 -0
  235. package/src/lib/interfaces/brightpass/vaultEntry.d.ts.map +1 -0
  236. package/src/lib/interfaces/brightpass/vaultEntry.js +3 -0
  237. package/src/lib/interfaces/brightpass/vaultEntry.js.map +1 -0
  238. package/src/lib/interfaces/brightpass/vaultMetadata.d.ts +34 -0
  239. package/src/lib/interfaces/brightpass/vaultMetadata.d.ts.map +1 -0
  240. package/src/lib/interfaces/brightpass/vaultMetadata.js +3 -0
  241. package/src/lib/interfaces/brightpass/vaultMetadata.js.map +1 -0
  242. package/src/lib/interfaces/clusterKeys.d.ts +4 -2
  243. package/src/lib/interfaces/clusterKeys.d.ts.map +1 -1
  244. package/src/lib/interfaces/communication.d.ts +173 -0
  245. package/src/lib/interfaces/communication.d.ts.map +1 -0
  246. package/src/lib/interfaces/communication.js +17 -0
  247. package/src/lib/interfaces/communication.js.map +1 -0
  248. package/src/lib/interfaces/communicationEvents.d.ts +168 -0
  249. package/src/lib/interfaces/communicationEvents.d.ts.map +1 -0
  250. package/src/lib/interfaces/communicationEvents.js +12 -0
  251. package/src/lib/interfaces/communicationEvents.js.map +1 -0
  252. package/src/lib/interfaces/crypto/ethereumWallet.d.ts +72 -0
  253. package/src/lib/interfaces/crypto/ethereumWallet.d.ts.map +1 -0
  254. package/src/lib/interfaces/crypto/ethereumWallet.js +12 -0
  255. package/src/lib/interfaces/crypto/ethereumWallet.js.map +1 -0
  256. package/src/lib/interfaces/crypto/gitSignature.d.ts +95 -0
  257. package/src/lib/interfaces/crypto/gitSignature.d.ts.map +1 -0
  258. package/src/lib/interfaces/crypto/gitSignature.js +12 -0
  259. package/src/lib/interfaces/crypto/gitSignature.js.map +1 -0
  260. package/src/lib/interfaces/crypto/index.d.ts +3 -0
  261. package/src/lib/interfaces/crypto/index.d.ts.map +1 -0
  262. package/src/lib/interfaces/crypto/index.js +3 -0
  263. package/src/lib/interfaces/crypto/index.js.map +1 -0
  264. package/src/lib/interfaces/dataKeyComponents.d.ts +7 -2
  265. package/src/lib/interfaces/dataKeyComponents.d.ts.map +1 -1
  266. package/src/lib/interfaces/encryptedBlockCreator.d.ts +4 -2
  267. package/src/lib/interfaces/encryptedBlockCreator.d.ts.map +1 -1
  268. package/src/lib/interfaces/events/communicationEventEmitter.d.ts +65 -0
  269. package/src/lib/interfaces/events/communicationEventEmitter.d.ts.map +1 -0
  270. package/src/lib/interfaces/events/communicationEventEmitter.js +60 -0
  271. package/src/lib/interfaces/events/communicationEventEmitter.js.map +1 -0
  272. package/src/lib/interfaces/events/index.d.ts +2 -0
  273. package/src/lib/interfaces/events/index.d.ts.map +1 -0
  274. package/src/lib/interfaces/events/index.js +5 -0
  275. package/src/lib/interfaces/events/index.js.map +1 -0
  276. package/src/lib/interfaces/failableResult.d.ts +15 -0
  277. package/src/lib/interfaces/failableResult.d.ts.map +1 -0
  278. package/src/lib/interfaces/failableResult.js +3 -0
  279. package/src/lib/interfaces/failableResult.js.map +1 -0
  280. package/src/lib/interfaces/identity/device.d.ts +59 -0
  281. package/src/lib/interfaces/identity/device.d.ts.map +1 -0
  282. package/src/lib/interfaces/identity/device.js +17 -0
  283. package/src/lib/interfaces/identity/device.js.map +1 -0
  284. package/src/lib/interfaces/identity/deviceKeyStorage.d.ts +71 -0
  285. package/src/lib/interfaces/identity/deviceKeyStorage.d.ts.map +1 -0
  286. package/src/lib/interfaces/identity/deviceKeyStorage.js +16 -0
  287. package/src/lib/interfaces/identity/deviceKeyStorage.js.map +1 -0
  288. package/src/lib/interfaces/identity/identityProof.d.ts +90 -0
  289. package/src/lib/interfaces/identity/identityProof.d.ts.map +1 -0
  290. package/src/lib/interfaces/identity/identityProof.js +18 -0
  291. package/src/lib/interfaces/identity/identityProof.js.map +1 -0
  292. package/src/lib/interfaces/identity/index.d.ts +7 -0
  293. package/src/lib/interfaces/identity/index.d.ts.map +1 -0
  294. package/src/lib/interfaces/identity/index.js +3 -0
  295. package/src/lib/interfaces/identity/index.js.map +1 -0
  296. package/src/lib/interfaces/identity/paperKey.d.ts +97 -0
  297. package/src/lib/interfaces/identity/paperKey.d.ts.map +1 -0
  298. package/src/lib/interfaces/identity/paperKey.js +17 -0
  299. package/src/lib/interfaces/identity/paperKey.js.map +1 -0
  300. package/src/lib/interfaces/identity/publicProfile.d.ts +74 -0
  301. package/src/lib/interfaces/identity/publicProfile.d.ts.map +1 -0
  302. package/src/lib/interfaces/identity/publicProfile.js +18 -0
  303. package/src/lib/interfaces/identity/publicProfile.js.map +1 -0
  304. package/src/lib/interfaces/identity/splitPaperKey.d.ts +73 -0
  305. package/src/lib/interfaces/identity/splitPaperKey.d.ts.map +1 -0
  306. package/src/lib/interfaces/identity/splitPaperKey.js +20 -0
  307. package/src/lib/interfaces/identity/splitPaperKey.js.map +1 -0
  308. package/src/lib/interfaces/index.d.ts +11 -2
  309. package/src/lib/interfaces/index.d.ts.map +1 -1
  310. package/src/lib/interfaces/index.js +12 -0
  311. package/src/lib/interfaces/index.js.map +1 -1
  312. package/src/lib/interfaces/network/node.d.ts +4 -2
  313. package/src/lib/interfaces/network/node.d.ts.map +1 -1
  314. package/src/lib/interfaces/network/nodeAdvertisement.d.ts +4 -2
  315. package/src/lib/interfaces/network/nodeAdvertisement.d.ts.map +1 -1
  316. package/src/lib/interfaces/privateVotingDerivation.d.ts +7 -2
  317. package/src/lib/interfaces/privateVotingDerivation.d.ts.map +1 -1
  318. package/src/lib/interfaces/requests/communicationRequests.d.ts +154 -0
  319. package/src/lib/interfaces/requests/communicationRequests.d.ts.map +1 -0
  320. package/src/lib/interfaces/requests/communicationRequests.js +10 -0
  321. package/src/lib/interfaces/requests/communicationRequests.js.map +1 -0
  322. package/src/lib/interfaces/requests/index.d.ts +2 -0
  323. package/src/lib/interfaces/requests/index.d.ts.map +1 -0
  324. package/src/lib/interfaces/requests/index.js +3 -0
  325. package/src/lib/interfaces/requests/index.js.map +1 -0
  326. package/src/lib/interfaces/responses/blockDataResponse.d.ts +11 -0
  327. package/src/lib/interfaces/responses/blockDataResponse.d.ts.map +1 -0
  328. package/src/lib/interfaces/responses/blockDataResponse.js +3 -0
  329. package/src/lib/interfaces/responses/blockDataResponse.js.map +1 -0
  330. package/src/lib/interfaces/responses/communicationResponses.d.ts +82 -0
  331. package/src/lib/interfaces/responses/communicationResponses.d.ts.map +1 -0
  332. package/src/lib/interfaces/responses/communicationResponses.js +17 -0
  333. package/src/lib/interfaces/responses/communicationResponses.js.map +1 -0
  334. package/src/lib/interfaces/responses/cryptoResponses.d.ts +30 -0
  335. package/src/lib/interfaces/responses/cryptoResponses.d.ts.map +1 -0
  336. package/src/lib/interfaces/responses/cryptoResponses.js +12 -0
  337. package/src/lib/interfaces/responses/cryptoResponses.js.map +1 -0
  338. package/src/lib/interfaces/responses/deviceResponses.d.ts +26 -0
  339. package/src/lib/interfaces/responses/deviceResponses.d.ts.map +1 -0
  340. package/src/lib/interfaces/responses/deviceResponses.js +15 -0
  341. package/src/lib/interfaces/responses/deviceResponses.js.map +1 -0
  342. package/src/lib/interfaces/responses/directoryResponses.d.ts +26 -0
  343. package/src/lib/interfaces/responses/directoryResponses.d.ts.map +1 -0
  344. package/src/lib/interfaces/responses/directoryResponses.js +12 -0
  345. package/src/lib/interfaces/responses/directoryResponses.js.map +1 -0
  346. package/src/lib/interfaces/responses/emailResponses.d.ts +40 -0
  347. package/src/lib/interfaces/responses/emailResponses.d.ts.map +1 -0
  348. package/src/lib/interfaces/responses/emailResponses.js +18 -0
  349. package/src/lib/interfaces/responses/emailResponses.js.map +1 -0
  350. package/src/lib/interfaces/responses/explodingMessageResponses.d.ts +42 -0
  351. package/src/lib/interfaces/responses/explodingMessageResponses.d.ts.map +1 -0
  352. package/src/lib/interfaces/responses/explodingMessageResponses.js +11 -0
  353. package/src/lib/interfaces/responses/explodingMessageResponses.js.map +1 -0
  354. package/src/lib/interfaces/responses/identityProofResponses.d.ts +33 -0
  355. package/src/lib/interfaces/responses/identityProofResponses.d.ts.map +1 -0
  356. package/src/lib/interfaces/responses/identityProofResponses.js +12 -0
  357. package/src/lib/interfaces/responses/identityProofResponses.js.map +1 -0
  358. package/src/lib/interfaces/responses/index.d.ts +3 -1
  359. package/src/lib/interfaces/responses/index.d.ts.map +1 -1
  360. package/src/lib/interfaces/sealResults.d.ts +7 -2
  361. package/src/lib/interfaces/sealResults.d.ts.map +1 -1
  362. package/src/lib/interfaces/services/fecService.d.ts +7 -5
  363. package/src/lib/interfaces/services/fecService.d.ts.map +1 -1
  364. package/src/lib/interfaces/services/fecService.js +2 -0
  365. package/src/lib/interfaces/services/fecService.js.map +1 -1
  366. package/src/lib/interfaces/singleEncryptedBlockDetails.d.ts +7 -2
  367. package/src/lib/interfaces/singleEncryptedBlockDetails.d.ts.map +1 -1
  368. package/src/lib/interfaces/storage/blockMetadata.d.ts +8 -1
  369. package/src/lib/interfaces/storage/blockMetadata.d.ts.map +1 -1
  370. package/src/lib/interfaces/storage/blockMetadata.js +3 -1
  371. package/src/lib/interfaces/storage/blockMetadata.js.map +1 -1
  372. package/src/lib/interfaces/storage/cblIndex.d.ts +141 -0
  373. package/src/lib/interfaces/storage/cblIndex.d.ts.map +1 -0
  374. package/src/lib/interfaces/storage/cblIndex.js +28 -0
  375. package/src/lib/interfaces/storage/cblIndex.js.map +1 -0
  376. package/src/lib/interfaces/storage/clientSession.d.ts +22 -0
  377. package/src/lib/interfaces/storage/clientSession.d.ts.map +1 -0
  378. package/src/lib/interfaces/storage/clientSession.js +3 -0
  379. package/src/lib/interfaces/storage/clientSession.js.map +1 -0
  380. package/src/lib/interfaces/storage/collection.d.ts +80 -0
  381. package/src/lib/interfaces/storage/collection.d.ts.map +1 -0
  382. package/src/lib/interfaces/storage/collection.js +3 -0
  383. package/src/lib/interfaces/storage/collection.js.map +1 -0
  384. package/src/lib/interfaces/storage/database.d.ts +30 -0
  385. package/src/lib/interfaces/storage/database.d.ts.map +1 -0
  386. package/src/lib/interfaces/storage/database.js +3 -0
  387. package/src/lib/interfaces/storage/database.js.map +1 -0
  388. package/src/lib/interfaces/storage/databaseLifecycleHooks.d.ts +43 -0
  389. package/src/lib/interfaces/storage/databaseLifecycleHooks.d.ts.map +1 -0
  390. package/src/lib/interfaces/storage/databaseLifecycleHooks.js +3 -0
  391. package/src/lib/interfaces/storage/databaseLifecycleHooks.js.map +1 -0
  392. package/src/lib/interfaces/storage/documentTypes.d.ts +413 -0
  393. package/src/lib/interfaces/storage/documentTypes.d.ts.map +1 -0
  394. package/src/lib/interfaces/storage/documentTypes.js +8 -0
  395. package/src/lib/interfaces/storage/documentTypes.js.map +1 -0
  396. package/src/lib/interfaces/storage/encryptedPool.d.ts +64 -0
  397. package/src/lib/interfaces/storage/encryptedPool.d.ts.map +1 -0
  398. package/src/lib/interfaces/storage/encryptedPool.js +26 -0
  399. package/src/lib/interfaces/storage/encryptedPool.js.map +1 -0
  400. package/src/lib/interfaces/storage/headRegistry.d.ts +128 -0
  401. package/src/lib/interfaces/storage/headRegistry.d.ts.map +1 -0
  402. package/src/lib/interfaces/storage/headRegistry.js +3 -0
  403. package/src/lib/interfaces/storage/headRegistry.js.map +1 -0
  404. package/src/lib/interfaces/storage/index.d.ts +14 -0
  405. package/src/lib/interfaces/storage/index.d.ts.map +1 -1
  406. package/src/lib/interfaces/storage/index.js +14 -1
  407. package/src/lib/interfaces/storage/index.js.map +1 -1
  408. package/src/lib/interfaces/storage/pooledBlockStore.d.ts +163 -0
  409. package/src/lib/interfaces/storage/pooledBlockStore.d.ts.map +1 -0
  410. package/src/lib/interfaces/storage/pooledBlockStore.js +77 -0
  411. package/src/lib/interfaces/storage/pooledBlockStore.js.map +1 -0
  412. package/src/lib/interfaces/storage/readConcernBlockStore.d.ts +47 -0
  413. package/src/lib/interfaces/storage/readConcernBlockStore.d.ts.map +1 -0
  414. package/src/lib/interfaces/storage/readConcernBlockStore.js +29 -0
  415. package/src/lib/interfaces/storage/readConcernBlockStore.js.map +1 -0
  416. package/src/lib/interfaces/symmetricEncryptionResults.d.ts +7 -5
  417. package/src/lib/interfaces/symmetricEncryptionResults.d.ts.map +1 -1
  418. package/src/lib/services/blockCapacity.service.d.ts.map +1 -1
  419. package/src/lib/services/blockCapacity.service.js +15 -0
  420. package/src/lib/services/blockCapacity.service.js.map +1 -1
  421. package/src/lib/services/brightpass/auditLogger.d.ts +41 -0
  422. package/src/lib/services/brightpass/auditLogger.d.ts.map +1 -0
  423. package/src/lib/services/brightpass/auditLogger.js +47 -0
  424. package/src/lib/services/brightpass/auditLogger.js.map +1 -0
  425. package/src/lib/services/brightpass/breachDetector.d.ts +68 -0
  426. package/src/lib/services/brightpass/breachDetector.d.ts.map +1 -0
  427. package/src/lib/services/brightpass/breachDetector.js +102 -0
  428. package/src/lib/services/brightpass/breachDetector.js.map +1 -0
  429. package/src/lib/services/brightpass/importParser.d.ts +105 -0
  430. package/src/lib/services/brightpass/importParser.d.ts.map +1 -0
  431. package/src/lib/services/brightpass/importParser.js +380 -0
  432. package/src/lib/services/brightpass/importParser.js.map +1 -0
  433. package/src/lib/services/brightpass/index.d.ts +16 -0
  434. package/src/lib/services/brightpass/index.d.ts.map +1 -0
  435. package/src/lib/services/brightpass/index.js +19 -0
  436. package/src/lib/services/brightpass/index.js.map +1 -0
  437. package/src/lib/services/brightpass/passwordGenerator.d.ts +111 -0
  438. package/src/lib/services/brightpass/passwordGenerator.d.ts.map +1 -0
  439. package/src/lib/services/brightpass/passwordGenerator.js +162 -0
  440. package/src/lib/services/brightpass/passwordGenerator.js.map +1 -0
  441. package/src/lib/services/brightpass/totpEngine.d.ts +191 -0
  442. package/src/lib/services/brightpass/totpEngine.d.ts.map +1 -0
  443. package/src/lib/services/brightpass/totpEngine.js +198 -0
  444. package/src/lib/services/brightpass/totpEngine.js.map +1 -0
  445. package/src/lib/services/brightpass/vaultKeyDerivation.d.ts +26 -0
  446. package/src/lib/services/brightpass/vaultKeyDerivation.d.ts.map +1 -0
  447. package/src/lib/services/brightpass/vaultKeyDerivation.js +42 -0
  448. package/src/lib/services/brightpass/vaultKeyDerivation.js.map +1 -0
  449. package/src/lib/services/brightpass/vaultSerializer.d.ts +14 -0
  450. package/src/lib/services/brightpass/vaultSerializer.d.ts.map +1 -0
  451. package/src/lib/services/brightpass/vaultSerializer.js +77 -0
  452. package/src/lib/services/brightpass/vaultSerializer.js.map +1 -0
  453. package/src/lib/services/cblService.d.ts +4 -2
  454. package/src/lib/services/cblService.d.ts.map +1 -1
  455. package/src/lib/services/cblService.js +8 -4
  456. package/src/lib/services/cblService.js.map +1 -1
  457. package/src/lib/services/communication/channelService.d.ts +208 -0
  458. package/src/lib/services/communication/channelService.d.ts.map +1 -0
  459. package/src/lib/services/communication/channelService.js +575 -0
  460. package/src/lib/services/communication/channelService.js.map +1 -0
  461. package/src/lib/services/communication/conversationService.d.ts +130 -0
  462. package/src/lib/services/communication/conversationService.d.ts.map +1 -0
  463. package/src/lib/services/communication/conversationService.js +279 -0
  464. package/src/lib/services/communication/conversationService.js.map +1 -0
  465. package/src/lib/services/communication/explodingMessageService.d.ts +168 -0
  466. package/src/lib/services/communication/explodingMessageService.d.ts.map +1 -0
  467. package/src/lib/services/communication/explodingMessageService.js +287 -0
  468. package/src/lib/services/communication/explodingMessageService.js.map +1 -0
  469. package/src/lib/services/communication/groupService.d.ts +165 -0
  470. package/src/lib/services/communication/groupService.d.ts.map +1 -0
  471. package/src/lib/services/communication/groupService.js +437 -0
  472. package/src/lib/services/communication/groupService.js.map +1 -0
  473. package/src/lib/services/communication/index.d.ts +16 -0
  474. package/src/lib/services/communication/index.d.ts.map +1 -0
  475. package/src/lib/services/communication/index.js +63 -0
  476. package/src/lib/services/communication/index.js.map +1 -0
  477. package/src/lib/services/communication/messageOperationsService.d.ts +81 -0
  478. package/src/lib/services/communication/messageOperationsService.d.ts.map +1 -0
  479. package/src/lib/services/communication/messageOperationsService.js +162 -0
  480. package/src/lib/services/communication/messageOperationsService.js.map +1 -0
  481. package/src/lib/services/communication/permissionService.d.ts +47 -0
  482. package/src/lib/services/communication/permissionService.d.ts.map +1 -0
  483. package/src/lib/services/communication/permissionService.js +82 -0
  484. package/src/lib/services/communication/permissionService.js.map +1 -0
  485. package/src/lib/services/communication/searchService.d.ts +30 -0
  486. package/src/lib/services/communication/searchService.d.ts.map +1 -0
  487. package/src/lib/services/communication/searchService.js +83 -0
  488. package/src/lib/services/communication/searchService.js.map +1 -0
  489. package/src/lib/services/crypto/ethereumWalletService.d.ts +159 -0
  490. package/src/lib/services/crypto/ethereumWalletService.d.ts.map +1 -0
  491. package/src/lib/services/crypto/ethereumWalletService.js +345 -0
  492. package/src/lib/services/crypto/ethereumWalletService.js.map +1 -0
  493. package/src/lib/services/crypto/gitSigningService.d.ts +145 -0
  494. package/src/lib/services/crypto/gitSigningService.d.ts.map +1 -0
  495. package/src/lib/services/crypto/gitSigningService.js +291 -0
  496. package/src/lib/services/crypto/gitSigningService.js.map +1 -0
  497. package/src/lib/services/crypto/index.d.ts +3 -0
  498. package/src/lib/services/crypto/index.d.ts.map +1 -0
  499. package/src/lib/services/crypto/index.js +6 -0
  500. package/src/lib/services/crypto/index.js.map +1 -0
  501. package/src/lib/services/identity/deviceProvisioningService.d.ts +146 -0
  502. package/src/lib/services/identity/deviceProvisioningService.d.ts.map +1 -0
  503. package/src/lib/services/identity/deviceProvisioningService.js +219 -0
  504. package/src/lib/services/identity/deviceProvisioningService.js.map +1 -0
  505. package/src/lib/services/identity/identityProofService.d.ts +139 -0
  506. package/src/lib/services/identity/identityProofService.d.ts.map +1 -0
  507. package/src/lib/services/identity/identityProofService.js +245 -0
  508. package/src/lib/services/identity/identityProofService.js.map +1 -0
  509. package/src/lib/services/identity/index.d.ts +14 -0
  510. package/src/lib/services/identity/index.d.ts.map +1 -0
  511. package/src/lib/services/identity/index.js +17 -0
  512. package/src/lib/services/identity/index.js.map +1 -0
  513. package/src/lib/services/identity/memberIdentityProofService.d.ts +179 -0
  514. package/src/lib/services/identity/memberIdentityProofService.d.ts.map +1 -0
  515. package/src/lib/services/identity/memberIdentityProofService.js +232 -0
  516. package/src/lib/services/identity/memberIdentityProofService.js.map +1 -0
  517. package/src/lib/services/identity/memberPaperKeyService.d.ts +223 -0
  518. package/src/lib/services/identity/memberPaperKeyService.d.ts.map +1 -0
  519. package/src/lib/services/identity/memberPaperKeyService.js +279 -0
  520. package/src/lib/services/identity/memberPaperKeyService.js.map +1 -0
  521. package/src/lib/services/identity/paperKeyService.d.ts +106 -0
  522. package/src/lib/services/identity/paperKeyService.d.ts.map +1 -0
  523. package/src/lib/services/identity/paperKeyService.js +161 -0
  524. package/src/lib/services/identity/paperKeyService.js.map +1 -0
  525. package/src/lib/services/identity/publicKeyDirectoryService.d.ts +210 -0
  526. package/src/lib/services/identity/publicKeyDirectoryService.d.ts.map +1 -0
  527. package/src/lib/services/identity/publicKeyDirectoryService.js +328 -0
  528. package/src/lib/services/identity/publicKeyDirectoryService.js.map +1 -0
  529. package/src/lib/services/identity/splitPaperKeyService.d.ts +92 -0
  530. package/src/lib/services/identity/splitPaperKeyService.d.ts.map +1 -0
  531. package/src/lib/services/identity/splitPaperKeyService.js +305 -0
  532. package/src/lib/services/identity/splitPaperKeyService.js.map +1 -0
  533. package/src/lib/services/index.d.ts +4 -0
  534. package/src/lib/services/index.d.ts.map +1 -1
  535. package/src/lib/services/index.js +7 -0
  536. package/src/lib/services/index.js.map +1 -1
  537. package/src/lib/services/messaging/emailMessageService.d.ts.map +1 -1
  538. package/src/lib/services/messaging/emailMessageService.js +26 -9
  539. package/src/lib/services/messaging/emailMessageService.js.map +1 -1
  540. package/src/lib/services/messaging/emailParser.d.ts +18 -0
  541. package/src/lib/services/messaging/emailParser.d.ts.map +1 -1
  542. package/src/lib/services/messaging/emailParser.js +18 -0
  543. package/src/lib/services/messaging/emailParser.js.map +1 -1
  544. package/src/lib/services/tuple.service.d.ts +27 -2
  545. package/src/lib/services/tuple.service.d.ts.map +1 -1
  546. package/src/lib/services/tuple.service.js +62 -20
  547. package/src/lib/services/tuple.service.js.map +1 -1
  548. package/src/lib/services/vcblService.d.ts +36 -0
  549. package/src/lib/services/vcblService.d.ts.map +1 -0
  550. package/src/lib/services/vcblService.js +326 -0
  551. package/src/lib/services/vcblService.js.map +1 -0
  552. package/src/lib/stores/index.d.ts +1 -0
  553. package/src/lib/stores/index.d.ts.map +1 -1
  554. package/src/lib/stores/index.js +1 -0
  555. package/src/lib/stores/index.js.map +1 -1
  556. package/src/lib/stores/pooledMemoryBlockStore.d.ts +134 -0
  557. package/src/lib/stores/pooledMemoryBlockStore.d.ts.map +1 -0
  558. package/src/lib/stores/pooledMemoryBlockStore.js +583 -0
  559. package/src/lib/stores/pooledMemoryBlockStore.js.map +1 -0
  560. package/src/lib/types/checksum.d.ts +11 -0
  561. package/src/lib/types/checksum.d.ts.map +1 -1
  562. package/src/lib/types/checksum.js +11 -0
  563. package/src/lib/types/checksum.js.map +1 -1
  564. package/src/lib/utils/index.d.ts +9 -0
  565. package/src/lib/utils/index.d.ts.map +1 -1
  566. package/src/lib/utils/index.js +12 -0
  567. package/src/lib/utils/index.js.map +1 -1
  568. package/src/lib/utils/pagination.d.ts +27 -0
  569. package/src/lib/utils/pagination.d.ts.map +1 -0
  570. package/src/lib/utils/pagination.js +38 -0
  571. package/src/lib/utils/pagination.js.map +1 -0
@@ -0,0 +1,583 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PooledMemoryBlockStore = void 0;
4
+ const sha3_1 = require("@noble/hashes/sha3");
5
+ const handle_1 = require("../blocks/handle");
6
+ const rawData_1 = require("../blocks/rawData");
7
+ const constants_1 = require("../constants");
8
+ const enumerations_1 = require("../enumerations");
9
+ const storeErrorType_1 = require("../enumerations/storeErrorType");
10
+ const poolDeletionError_1 = require("../errors/poolDeletionError");
11
+ const storeError_1 = require("../errors/storeError");
12
+ const i18n_1 = require("../i18n");
13
+ const blockMetadata_1 = require("../interfaces/storage/blockMetadata");
14
+ const pooledBlockStore_1 = require("../interfaces/storage/pooledBlockStore");
15
+ const globalServiceProvider_1 = require("../services/globalServiceProvider");
16
+ const xor_1 = require("../services/xor");
17
+ const checksum_1 = require("../types/checksum");
18
+ const xorUtils_1 = require("../utils/xorUtils");
19
+ const memoryBlockStore_1 = require("./memoryBlockStore");
20
+ /**
21
+ * In-memory implementation of IPooledBlockStore.
22
+ *
23
+ * Extends MemoryBlockStore with pool-based namespace isolation.
24
+ * Blocks are stored in a separate pool-scoped map keyed by storage keys
25
+ * (format: "${poolId}:${hash}"). Legacy IBlockStore methods delegate
26
+ * to the DEFAULT_POOL for backward compatibility.
27
+ *
28
+ * @see IPooledBlockStore for the interface definition
29
+ * @see MemoryBlockStore for the base implementation
30
+ */
31
+ class PooledMemoryBlockStore extends memoryBlockStore_1.MemoryBlockStore {
32
+ constructor(blockSize, fecService, metadataStore) {
33
+ super(blockSize, fecService, metadataStore);
34
+ /** Pool-scoped block storage: storageKey -> block data */
35
+ this.poolBlocks = new Map();
36
+ /** Per-pool statistics */
37
+ this.poolStatsMap = new Map();
38
+ }
39
+ // =========================================================================
40
+ // Pool-Scoped Block Operations
41
+ // =========================================================================
42
+ /**
43
+ * Compute the SHA3-512 hash of data and return as hex string.
44
+ */
45
+ computeHash(data) {
46
+ const hashBytes = (0, sha3_1.sha3_512)(data);
47
+ return checksum_1.Checksum.fromUint8Array(hashBytes).toHex();
48
+ }
49
+ /**
50
+ * Update pool statistics after a block is added.
51
+ */
52
+ recordPut(poolId, dataLength) {
53
+ const now = new Date();
54
+ const existing = this.poolStatsMap.get(poolId);
55
+ if (existing) {
56
+ existing.blockCount += 1;
57
+ existing.totalBytes += dataLength;
58
+ existing.lastAccessedAt = now;
59
+ }
60
+ else {
61
+ this.poolStatsMap.set(poolId, {
62
+ poolId,
63
+ blockCount: 1,
64
+ totalBytes: dataLength,
65
+ createdAt: now,
66
+ lastAccessedAt: now,
67
+ });
68
+ }
69
+ }
70
+ /**
71
+ * Update pool statistics after a block is removed.
72
+ */
73
+ recordDelete(poolId, dataLength) {
74
+ const existing = this.poolStatsMap.get(poolId);
75
+ if (existing) {
76
+ existing.blockCount -= 1;
77
+ existing.totalBytes -= dataLength;
78
+ existing.lastAccessedAt = new Date();
79
+ }
80
+ }
81
+ /**
82
+ * Touch the lastAccessedAt timestamp for a pool.
83
+ */
84
+ touchPool(poolId) {
85
+ const existing = this.poolStatsMap.get(poolId);
86
+ if (existing) {
87
+ existing.lastAccessedAt = new Date();
88
+ }
89
+ }
90
+ async hasInPool(pool, hash) {
91
+ (0, pooledBlockStore_1.validatePoolId)(pool);
92
+ const key = (0, pooledBlockStore_1.makeStorageKey)(pool, hash);
93
+ this.touchPool(pool);
94
+ return this.poolBlocks.has(key);
95
+ }
96
+ async getFromPool(pool, hash) {
97
+ (0, pooledBlockStore_1.validatePoolId)(pool);
98
+ const key = (0, pooledBlockStore_1.makeStorageKey)(pool, hash);
99
+ const data = this.poolBlocks.get(key);
100
+ if (!data) {
101
+ throw new storeError_1.StoreError(storeErrorType_1.StoreErrorType.KeyNotFound, undefined, {
102
+ KEY: `${pool}:${hash}`,
103
+ });
104
+ }
105
+ this.touchPool(pool);
106
+ return data;
107
+ }
108
+ async putInPool(pool, data, options) {
109
+ (0, pooledBlockStore_1.validatePoolId)(pool);
110
+ const hash = this.computeHash(data);
111
+ const key = (0, pooledBlockStore_1.makeStorageKey)(pool, hash);
112
+ if (this.poolBlocks.has(key)) {
113
+ // Idempotent — block already exists in this pool
114
+ this.touchPool(pool);
115
+ return hash;
116
+ }
117
+ // Store the block data
118
+ this.poolBlocks.set(key, new Uint8Array(data));
119
+ // Create metadata with poolId
120
+ const metadata = (0, blockMetadata_1.createDefaultBlockMetadata)(hash, data.length, hash, options, pool);
121
+ try {
122
+ await this.getMetadataStore().create(metadata);
123
+ }
124
+ catch {
125
+ // Metadata may already exist if the same hash was stored in another pool
126
+ // Update poolId on existing metadata
127
+ if (this.getMetadataStore().has(hash)) {
128
+ await this.getMetadataStore().update(hash, { poolId: pool });
129
+ }
130
+ }
131
+ // Update pool stats
132
+ this.recordPut(pool, data.length);
133
+ return hash;
134
+ }
135
+ async deleteFromPool(pool, hash) {
136
+ (0, pooledBlockStore_1.validatePoolId)(pool);
137
+ const key = (0, pooledBlockStore_1.makeStorageKey)(pool, hash);
138
+ const data = this.poolBlocks.get(key);
139
+ if (data) {
140
+ this.poolBlocks.delete(key);
141
+ this.recordDelete(pool, data.length);
142
+ }
143
+ }
144
+ // =========================================================================
145
+ // Pool Management
146
+ // =========================================================================
147
+ async listPools() {
148
+ const pools = [];
149
+ for (const [poolId, stats] of this.poolStatsMap) {
150
+ if (stats.blockCount > 0) {
151
+ pools.push(poolId);
152
+ }
153
+ }
154
+ return pools;
155
+ }
156
+ async *listBlocksInPool(pool, options) {
157
+ (0, pooledBlockStore_1.validatePoolId)(pool);
158
+ const prefix = pool + ':';
159
+ const limit = options?.limit;
160
+ const cursor = options?.cursor;
161
+ let pastCursor = cursor === undefined;
162
+ let yielded = 0;
163
+ for (const key of this.poolBlocks.keys()) {
164
+ if (!key.startsWith(prefix)) {
165
+ continue;
166
+ }
167
+ const { hash } = (0, pooledBlockStore_1.parseStorageKey)(key);
168
+ if (!pastCursor) {
169
+ if (hash === cursor) {
170
+ pastCursor = true;
171
+ }
172
+ continue;
173
+ }
174
+ yield hash;
175
+ yielded++;
176
+ if (limit !== undefined && yielded >= limit) {
177
+ break;
178
+ }
179
+ }
180
+ }
181
+ async getPoolStats(pool) {
182
+ (0, pooledBlockStore_1.validatePoolId)(pool);
183
+ const stats = this.poolStatsMap.get(pool);
184
+ if (!stats) {
185
+ throw new Error(`Pool "${pool}" not found: no blocks have been stored in this pool`);
186
+ }
187
+ return {
188
+ ...stats,
189
+ createdAt: new Date(stats.createdAt.getTime()),
190
+ lastAccessedAt: new Date(stats.lastAccessedAt.getTime()),
191
+ };
192
+ }
193
+ async deletePool(pool) {
194
+ (0, pooledBlockStore_1.validatePoolId)(pool);
195
+ // Pre-deletion validation
196
+ const validation = await this.validatePoolDeletion(pool);
197
+ if (!validation.safe) {
198
+ throw new poolDeletionError_1.PoolDeletionError(`Cannot delete pool "${pool}": ${validation.dependentPools.length} dependent pool(s) ` +
199
+ `reference ${validation.referencedBlocks.length} block(s). ` +
200
+ `Dependent pools: ${validation.dependentPools.join(', ')}. ` +
201
+ `Use forceDeletePool() to bypass this check.`, validation);
202
+ }
203
+ // Proceed with deletion
204
+ await this.performPoolDeletion(pool);
205
+ }
206
+ /**
207
+ * Internal deletion logic shared by deletePool (after validation) and forceDeletePool.
208
+ * Removes all blocks with the pool prefix and clears pool stats.
209
+ */
210
+ async performPoolDeletion(pool) {
211
+ const prefix = pool + ':';
212
+ const keysToDelete = [];
213
+ for (const key of this.poolBlocks.keys()) {
214
+ if (key.startsWith(prefix)) {
215
+ keysToDelete.push(key);
216
+ }
217
+ }
218
+ for (const key of keysToDelete) {
219
+ this.poolBlocks.delete(key);
220
+ }
221
+ this.poolStatsMap.delete(pool);
222
+ }
223
+ // =========================================================================
224
+ // Pool-Scoped Whitening Operations
225
+ // =========================================================================
226
+ /**
227
+ * Get random block checksums scoped to a specific pool.
228
+ * Iterates storage keys with the pool prefix and randomly selects blocks.
229
+ * @param pool - The pool to source random blocks from
230
+ * @param count - Number of random blocks requested
231
+ * @returns Array of checksums (may be fewer than count if pool has insufficient blocks)
232
+ */
233
+ async getRandomBlocksFromPool(pool, count) {
234
+ (0, pooledBlockStore_1.validatePoolId)(pool);
235
+ const poolPrefix = `${pool}:`;
236
+ const poolKeys = [];
237
+ for (const key of this.poolBlocks.keys()) {
238
+ if (key.startsWith(poolPrefix)) {
239
+ poolKeys.push(key.substring(poolPrefix.length));
240
+ }
241
+ }
242
+ const actualCount = Math.min(count, poolKeys.length);
243
+ const shuffled = [...poolKeys].sort(() => Math.random() - 0.5);
244
+ return shuffled.slice(0, actualCount).map((hex) => checksum_1.Checksum.fromHex(hex));
245
+ }
246
+ /**
247
+ * Override getRandomBlocks to use Default_Pool for backward compatibility.
248
+ * Delegates to getRandomBlocksFromPool with DEFAULT_POOL.
249
+ */
250
+ async getRandomBlocks(count) {
251
+ return this.getRandomBlocksFromPool(pooledBlockStore_1.DEFAULT_POOL, count);
252
+ }
253
+ /**
254
+ * Seed a pool with cryptographically random blocks for whitening material.
255
+ * Stub — full implementation in task 5.1.
256
+ */
257
+ async bootstrapPool(pool, blockSize, count) {
258
+ (0, pooledBlockStore_1.validatePoolId)(pool);
259
+ if (count <= 0)
260
+ return;
261
+ for (let i = 0; i < count; i++) {
262
+ const data = new Uint8Array(blockSize);
263
+ crypto.getRandomValues(data);
264
+ await this.putInPool(pool, data);
265
+ }
266
+ }
267
+ /**
268
+ * Check whether a pool can be safely deleted (no cross-pool XOR dependencies).
269
+ * Scans all other pools' blocks looking for CBL-type blocks whose addresses
270
+ * reference checksums stored in the target pool.
271
+ *
272
+ * @param pool - The pool to validate for deletion
273
+ * @returns Validation result with dependency details if unsafe
274
+ */
275
+ async validatePoolDeletion(pool) {
276
+ (0, pooledBlockStore_1.validatePoolId)(pool);
277
+ // 1. Collect all block hashes in the target pool for O(1) lookup
278
+ const targetPoolPrefix = `${pool}:`;
279
+ const targetPoolHashes = new Set();
280
+ for (const key of this.poolBlocks.keys()) {
281
+ if (key.startsWith(targetPoolPrefix)) {
282
+ const { hash } = (0, pooledBlockStore_1.parseStorageKey)(key);
283
+ targetPoolHashes.add(hash);
284
+ }
285
+ }
286
+ // If the target pool is empty, it's trivially safe to delete
287
+ if (targetPoolHashes.size === 0) {
288
+ return { safe: true, dependentPools: [], referencedBlocks: [] };
289
+ }
290
+ // 2. Get a CBLService instance from the global service provider
291
+ let cblService = null;
292
+ try {
293
+ const provider = (0, globalServiceProvider_1.getGlobalServiceProvider)();
294
+ cblService = provider.cblService;
295
+ }
296
+ catch {
297
+ // Global service provider not initialized — cannot parse CBLs.
298
+ // Return safe=true since we can't determine dependencies without the service.
299
+ return { safe: true, dependentPools: [], referencedBlocks: [] };
300
+ }
301
+ // 3. Scan all blocks in OTHER pools for CBL-type blocks
302
+ const dependentPoolsSet = new Set();
303
+ const referencedBlocksSet = new Set();
304
+ for (const [key, data] of this.poolBlocks.entries()) {
305
+ // Skip blocks in the target pool itself
306
+ if (key.startsWith(targetPoolPrefix)) {
307
+ continue;
308
+ }
309
+ // Check if this block is a structured CBL block
310
+ if (!this.isCblBlock(data)) {
311
+ continue;
312
+ }
313
+ // Extract the pool this CBL belongs to
314
+ const { poolId: otherPool } = (0, pooledBlockStore_1.parseStorageKey)(key);
315
+ // Try to parse addresses from this CBL
316
+ const addresses = this.extractCblAddresses(data, cblService);
317
+ if (addresses === null) {
318
+ continue; // Encrypted or unparseable — skip
319
+ }
320
+ // Check if any addresses reference blocks in the target pool
321
+ for (const address of addresses) {
322
+ const addressHex = address.toHex();
323
+ if (targetPoolHashes.has(addressHex)) {
324
+ dependentPoolsSet.add(otherPool);
325
+ referencedBlocksSet.add(addressHex);
326
+ }
327
+ }
328
+ }
329
+ const dependentPools = Array.from(dependentPoolsSet);
330
+ const referencedBlocks = Array.from(referencedBlocksSet);
331
+ const safe = dependentPools.length === 0;
332
+ return { safe, dependentPools, referencedBlocks };
333
+ }
334
+ /**
335
+ * Check if raw block data represents a CBL-type block.
336
+ * CBL blocks have the BrightChain magic prefix (0xBC) followed by a CBL structured type.
337
+ */
338
+ isCblBlock(data) {
339
+ if (data.length < 4) {
340
+ return false;
341
+ }
342
+ if (data[0] !== constants_1.BLOCK_HEADER.MAGIC_PREFIX) {
343
+ return false;
344
+ }
345
+ const structuredType = data[1];
346
+ return (structuredType === constants_1.StructuredBlockType.CBL ||
347
+ structuredType === constants_1.StructuredBlockType.ExtendedCBL ||
348
+ structuredType === constants_1.StructuredBlockType.MessageCBL ||
349
+ structuredType === constants_1.StructuredBlockType.SuperCBL ||
350
+ structuredType === constants_1.StructuredBlockType.VaultCBL);
351
+ }
352
+ /**
353
+ * Extract addresses from a CBL block's raw data.
354
+ * Returns null if the block is encrypted or cannot be parsed.
355
+ */
356
+ extractCblAddresses(data, cblService) {
357
+ try {
358
+ // Skip encrypted CBLs — we can't parse their addresses
359
+ if (cblService.isEncrypted(data)) {
360
+ return null;
361
+ }
362
+ // SuperCBLs store sub-CBL checksums, not data block addresses
363
+ if (cblService.isSuperCbl(data)) {
364
+ return cblService.getSuperCblSubCblChecksums(data);
365
+ }
366
+ // Regular/Extended/Message/Vault CBLs use addressDataToAddresses
367
+ return cblService.addressDataToAddresses(data);
368
+ }
369
+ catch {
370
+ // If parsing fails for any reason, skip this block
371
+ return null;
372
+ }
373
+ }
374
+ /**
375
+ * Delete a pool without checking for cross-pool dependencies.
376
+ * For administrative use only — bypasses validatePoolDeletion.
377
+ */
378
+ async forceDeletePool(pool) {
379
+ (0, pooledBlockStore_1.validatePoolId)(pool);
380
+ await this.performPoolDeletion(pool);
381
+ }
382
+ // =========================================================================
383
+ // Pool-Scoped CBL Whitening Operations
384
+ // =========================================================================
385
+ /**
386
+ * Store a CBL with XOR whitening, scoped to a specific pool.
387
+ * Both XOR component blocks are stored within the specified pool namespace.
388
+ *
389
+ * @param pool - The pool to store the whitened CBL components in
390
+ * @param cblData - The original CBL data as Uint8Array
391
+ * @param options - Optional storage options (durability, expiration, encryption flag)
392
+ * @returns Result containing block IDs, parity IDs (if any), and magnet URL
393
+ */
394
+ async storeCBLWithWhiteningInPool(pool, cblData, options) {
395
+ (0, pooledBlockStore_1.validatePoolId)(pool);
396
+ // Validate input
397
+ if (!cblData || cblData.length === 0) {
398
+ throw new storeError_1.StoreError(storeErrorType_1.StoreErrorType.BlockValidationFailed, undefined, {
399
+ ERROR: (0, i18n_1.translate)(enumerations_1.BrightChainStrings.MemoryBlockStore_CBLDataCannotBeEmpty),
400
+ });
401
+ }
402
+ // 1. Pad CBL to block size (includes length prefix)
403
+ const paddedCbl = (0, xorUtils_1.padToBlockSize)(cblData, this.blockSize);
404
+ // Validate that padded CBL fits within block size
405
+ if (paddedCbl.length > this.blockSize) {
406
+ throw new storeError_1.StoreError(storeErrorType_1.StoreErrorType.BlockValidationFailed, undefined, {
407
+ ERROR: (0, i18n_1.translate)(enumerations_1.BrightChainStrings.MemoryBlockStore_CBLDataTooLargeTemplate, {
408
+ LENGTH: paddedCbl.length,
409
+ BLOCK_SIZE: this.blockSize,
410
+ }),
411
+ });
412
+ }
413
+ // 2. Select or generate a random block from the pool for whitening
414
+ const poolRandomBlocks = await this.getRandomBlocksFromPool(pool, 1);
415
+ let randomBlock;
416
+ if (poolRandomBlocks.length > 0) {
417
+ // Use an existing block from the pool as the randomizer
418
+ const existingData = await this.getFromPool(pool, poolRandomBlocks[0].toHex());
419
+ if (existingData.length >= paddedCbl.length) {
420
+ randomBlock = existingData.slice(0, paddedCbl.length);
421
+ }
422
+ else {
423
+ // Existing block too small, generate fresh random data
424
+ randomBlock = xor_1.XorService.generateKey(paddedCbl.length);
425
+ }
426
+ }
427
+ else {
428
+ // No blocks in pool yet, generate fresh random data
429
+ randomBlock = xor_1.XorService.generateKey(paddedCbl.length);
430
+ }
431
+ // 3. XOR to create second block (CBL XOR R)
432
+ const xorResult = (0, xorUtils_1.xorArrays)(paddedCbl, randomBlock);
433
+ // Track stored blocks for rollback on failure
434
+ let block1Stored = false;
435
+ let block1Id = '';
436
+ try {
437
+ // 4. Store first block (R - the randomizer) in the pool
438
+ block1Id = await this.putInPool(pool, randomBlock, options);
439
+ block1Stored = true;
440
+ // 5. Store second block (CBL XOR R) in the pool
441
+ const block2Id = await this.putInPool(pool, xorResult, options);
442
+ // 6. Get parity block IDs if FEC redundancy was applied
443
+ let block1ParityIds;
444
+ let block2ParityIds;
445
+ const block1Meta = await this.getMetadata(block1Id);
446
+ if (block1Meta?.parityBlockIds?.length) {
447
+ block1ParityIds = block1Meta.parityBlockIds;
448
+ }
449
+ const block2Meta = await this.getMetadata(block2Id);
450
+ if (block2Meta?.parityBlockIds?.length) {
451
+ block2ParityIds = block2Meta.parityBlockIds;
452
+ }
453
+ // 7. Generate magnet URL
454
+ const magnetUrl = this.generateCBLMagnetUrl(block1Id, block2Id, this.blockSize, block1ParityIds, block2ParityIds, options?.isEncrypted);
455
+ return {
456
+ blockId1: block1Id,
457
+ blockId2: block2Id,
458
+ blockSize: this.blockSize,
459
+ magnetUrl,
460
+ block1ParityIds,
461
+ block2ParityIds,
462
+ isEncrypted: options?.isEncrypted,
463
+ };
464
+ }
465
+ catch (error) {
466
+ // Rollback: delete block1 if it was stored by us
467
+ if (block1Stored && block1Id) {
468
+ try {
469
+ await this.deleteFromPool(pool, block1Id);
470
+ }
471
+ catch {
472
+ // Ignore rollback errors
473
+ }
474
+ }
475
+ throw error;
476
+ }
477
+ }
478
+ /**
479
+ * Retrieve and reconstruct a whitened CBL from a specific pool.
480
+ * Both XOR component blocks are retrieved from the specified pool namespace.
481
+ *
482
+ * @param pool - The pool to retrieve the whitened CBL components from
483
+ * @param blockId1 - First block ID (Checksum or hex string)
484
+ * @param blockId2 - Second block ID (Checksum or hex string)
485
+ * @param block1ParityIds - Optional parity block IDs for block 1 recovery
486
+ * @param block2ParityIds - Optional parity block IDs for block 2 recovery
487
+ * @returns The original CBL data as Uint8Array
488
+ */
489
+ async retrieveCBLFromPool(pool, blockId1, blockId2, _block1ParityIds, _block2ParityIds) {
490
+ (0, pooledBlockStore_1.validatePoolId)(pool);
491
+ const b1Hex = typeof blockId1 === 'string' ? blockId1 : blockId1.toHex();
492
+ const b2Hex = typeof blockId2 === 'string' ? blockId2 : blockId2.toHex();
493
+ // 1. Retrieve first block from the pool
494
+ const hasBlock1 = await this.hasInPool(pool, b1Hex);
495
+ if (!hasBlock1) {
496
+ throw new storeError_1.StoreError(storeErrorType_1.StoreErrorType.KeyNotFound, undefined, {
497
+ KEY: `Block 1 (${b1Hex}) not found in pool "${pool}"`,
498
+ });
499
+ }
500
+ const block1Data = await this.getFromPool(pool, b1Hex);
501
+ // 2. Retrieve second block from the pool
502
+ const hasBlock2 = await this.hasInPool(pool, b2Hex);
503
+ if (!hasBlock2) {
504
+ throw new storeError_1.StoreError(storeErrorType_1.StoreErrorType.KeyNotFound, undefined, {
505
+ KEY: `Block 2 (${b2Hex}) not found in pool "${pool}"`,
506
+ });
507
+ }
508
+ const block2Data = await this.getFromPool(pool, b2Hex);
509
+ // 3. XOR to reconstruct padded CBL (order doesn't matter due to commutativity)
510
+ const reconstructedPadded = (0, xorUtils_1.xorArrays)(block1Data, block2Data);
511
+ // 4. Remove padding to get original CBL
512
+ return (0, xorUtils_1.unpadCblData)(reconstructedPadded);
513
+ }
514
+ // =========================================================================
515
+ // Legacy IBlockStore method overrides — delegate to DEFAULT_POOL
516
+ // =========================================================================
517
+ async has(key) {
518
+ const hash = typeof key === 'string' ? key : key.toHex();
519
+ return this.hasInPool(pooledBlockStore_1.DEFAULT_POOL, hash);
520
+ }
521
+ async getData(key) {
522
+ const hash = key.toHex();
523
+ const data = await this.getFromPool(pooledBlockStore_1.DEFAULT_POOL, hash);
524
+ return new rawData_1.RawDataBlock(this.blockSize, data);
525
+ }
526
+ async setData(block, options) {
527
+ await this.putInPool(pooledBlockStore_1.DEFAULT_POOL, block.data, options);
528
+ }
529
+ async deleteData(key) {
530
+ const hash = key.toHex();
531
+ await this.deleteFromPool(pooledBlockStore_1.DEFAULT_POOL, hash);
532
+ }
533
+ async put(key, data, options) {
534
+ await this.putInPool(pooledBlockStore_1.DEFAULT_POOL, data, options);
535
+ }
536
+ async delete(key) {
537
+ const hash = typeof key === 'string' ? key : key.toHex();
538
+ await this.deleteFromPool(pooledBlockStore_1.DEFAULT_POOL, hash);
539
+ }
540
+ get(key) {
541
+ const hash = typeof key === 'string' ? key : key.toHex();
542
+ const storageKey = (0, pooledBlockStore_1.makeStorageKey)(pooledBlockStore_1.DEFAULT_POOL, hash);
543
+ const data = this.poolBlocks.get(storageKey);
544
+ if (!data) {
545
+ throw new storeError_1.StoreError(storeErrorType_1.StoreErrorType.KeyNotFound, undefined, {
546
+ KEY: hash,
547
+ });
548
+ }
549
+ const checksum = typeof key === 'string' ? checksum_1.Checksum.fromHex(key) : key;
550
+ return (0, handle_1.createBlockHandle)(
551
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
552
+ rawData_1.RawDataBlock, this.blockSize, data, checksum, true, true);
553
+ }
554
+ // =========================================================================
555
+ // Metadata overrides for pool-scoped storage keys
556
+ // =========================================================================
557
+ async getMetadata(key) {
558
+ const hash = typeof key === 'string' ? key : key.toHex();
559
+ return this.getMetadataStore().get(hash);
560
+ }
561
+ async updateMetadata(key, updates) {
562
+ const hash = typeof key === 'string' ? key : key.toHex();
563
+ if (!this.getMetadataStore().has(hash)) {
564
+ throw new storeError_1.StoreError(storeErrorType_1.StoreErrorType.KeyNotFound, undefined, {
565
+ KEY: hash,
566
+ });
567
+ }
568
+ await this.getMetadataStore().update(hash, updates);
569
+ }
570
+ // =========================================================================
571
+ // Utility overrides
572
+ // =========================================================================
573
+ clear() {
574
+ super.clear();
575
+ this.poolBlocks.clear();
576
+ this.poolStatsMap.clear();
577
+ }
578
+ size() {
579
+ return this.poolBlocks.size;
580
+ }
581
+ }
582
+ exports.PooledMemoryBlockStore = PooledMemoryBlockStore;
583
+ //# sourceMappingURL=pooledMemoryBlockStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pooledMemoryBlockStore.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/stores/pooledMemoryBlockStore.ts"],"names":[],"mappings":"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"}
@@ -65,6 +65,11 @@ export declare class Checksum {
65
65
  * @returns A new Checksum instance
66
66
  * @throws ChecksumError if buffer length is not equal to SHA3_BUFFER_LENGTH
67
67
  *
68
+ * @deprecated Use `Checksum.fromUint8Array()` instead for browser compatibility.
69
+ * This method exists for backward compatibility with Node.js code that uses Buffer.
70
+ * Buffer extends Uint8Array, so `fromUint8Array()` accepts Buffer values directly.
71
+ * @platform Node.js — accepts Node.js `Buffer` type
72
+ *
68
73
  * @example
69
74
  * ```typescript
70
75
  * const buffer = Buffer.from('a'.repeat(128), 'hex'); // 64 bytes
@@ -72,6 +77,7 @@ export declare class Checksum {
72
77
  * ```
73
78
  *
74
79
  * @see Requirement 1.2
80
+ * @see Requirement 18.4 — platform-specific convenience method
75
81
  */
76
82
  static fromBuffer(buffer: Buffer): Checksum;
77
83
  /**
@@ -132,6 +138,10 @@ export declare class Checksum {
132
138
  *
133
139
  * @returns A new Buffer containing the checksum data
134
140
  *
141
+ * @deprecated Use `toUint8Array()` instead for browser compatibility.
142
+ * This method exists for backward compatibility with Node.js code that expects Buffer.
143
+ * @platform Node.js — returns Node.js `Buffer` type
144
+ *
135
145
  * @example
136
146
  * ```typescript
137
147
  * const checksum = Checksum.fromHex(hexString);
@@ -139,6 +149,7 @@ export declare class Checksum {
139
149
  * ```
140
150
  *
141
151
  * @see Requirement 1.5
152
+ * @see Requirement 18.4 — platform-specific convenience method
142
153
  */
143
154
  toBuffer(): Buffer;
144
155
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"checksum.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/types/checksum.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAQH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D;;;;;;;;;;;;;GAaG;AACH,qBAAa,QAAQ;IACnB;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAElC;;;;;;;OAOG;IACH,OAAO;IAkBP;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ;IAI3C;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,QAAQ;IAIlD;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;IA+BrC;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;IAYhC;;;;;;;;;;;;OAYG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;;;;;;;;;;;;;OAeG;IACH,YAAY,IAAI,UAAU;IAI1B;;;;;;;;;;;;OAYG;IACH,KAAK,IAAI,MAAM;IAIf;;;;;;;;;;;;;;OAcG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;;OAIG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;CACF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAE5D"}
1
+ {"version":3,"file":"checksum.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/types/checksum.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAQH,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D;;;;;;;;;;;;;GAaG;AACH,qBAAa,QAAQ;IACnB;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAa;IAElC;;;;;;;OAOG;IACH,OAAO;IAkBP;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ;IAI3C;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,UAAU,GAAG,QAAQ;IAIlD;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ;IA+BrC;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;IAYhC;;;;;;;;;;;;;;;;;OAiBG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;;;;;;;;;;;;;OAeG;IACH,YAAY,IAAI,UAAU;IAI1B;;;;;;;;;;;;OAYG;IACH,KAAK,IAAI,MAAM;IAIf;;;;;;;;;;;;;;OAcG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;;OAIG;IACH,IAAI,MAAM,IAAI,MAAM,CAEnB;CACF;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,QAAQ,CAE5D"}