@brightchain/brightchain-lib 0.8.1 → 0.10.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 (499) hide show
  1. package/brightchain-lib/BLOCK_COVERAGE_AUDIT.md +169 -0
  2. package/package.json +2 -2
  3. package/src/browser.d.ts +1 -4
  4. package/src/browser.d.ts.map +1 -1
  5. package/src/browser.js +6 -9
  6. package/src/browser.js.map +1 -1
  7. package/src/lib/blockMetadata.d.ts +10 -9
  8. package/src/lib/blockMetadata.d.ts.map +1 -1
  9. package/src/lib/blockMetadata.js +20 -36
  10. package/src/lib/blockMetadata.js.map +1 -1
  11. package/src/lib/blocks/base.d.ts +23 -0
  12. package/src/lib/blocks/base.d.ts.map +1 -1
  13. package/src/lib/blocks/base.js +33 -15
  14. package/src/lib/blocks/base.js.map +1 -1
  15. package/src/lib/blocks/cbl.d.ts +34 -1
  16. package/src/lib/blocks/cbl.d.ts.map +1 -1
  17. package/src/lib/blocks/cbl.js +36 -3
  18. package/src/lib/blocks/cbl.js.map +1 -1
  19. package/src/lib/blocks/cblBase.d.ts +45 -1
  20. package/src/lib/blocks/cblBase.d.ts.map +1 -1
  21. package/src/lib/blocks/cblBase.js +106 -52
  22. package/src/lib/blocks/cblBase.js.map +1 -1
  23. package/src/lib/blocks/encrypted.d.ts +34 -5
  24. package/src/lib/blocks/encrypted.d.ts.map +1 -1
  25. package/src/lib/blocks/encrypted.js +129 -24
  26. package/src/lib/blocks/encrypted.js.map +1 -1
  27. package/src/lib/blocks/encryptedBlockFactory.js +2 -2
  28. package/src/lib/blocks/encryptedBlockFactory.js.map +1 -1
  29. package/src/lib/blocks/ephemeral.d.ts +35 -9
  30. package/src/lib/blocks/ephemeral.d.ts.map +1 -1
  31. package/src/lib/blocks/ephemeral.js +71 -42
  32. package/src/lib/blocks/ephemeral.js.map +1 -1
  33. package/src/lib/blocks/extendedCbl.d.ts +1 -1
  34. package/src/lib/blocks/extendedCbl.d.ts.map +1 -1
  35. package/src/lib/blocks/extendedCbl.js +7 -7
  36. package/src/lib/blocks/extendedCbl.js.map +1 -1
  37. package/src/lib/blocks/handle.js +2 -2
  38. package/src/lib/blocks/handle.js.map +1 -1
  39. package/src/lib/blocks/handleTuple.js +2 -2
  40. package/src/lib/blocks/handleTuple.js.map +1 -1
  41. package/src/lib/blocks/random.d.ts +2 -1
  42. package/src/lib/blocks/random.d.ts.map +1 -1
  43. package/src/lib/blocks/random.js +7 -4
  44. package/src/lib/blocks/random.js.map +1 -1
  45. package/src/lib/blocks/rawData.d.ts +3 -1
  46. package/src/lib/blocks/rawData.d.ts.map +1 -1
  47. package/src/lib/blocks/rawData.js +31 -6
  48. package/src/lib/blocks/rawData.js.map +1 -1
  49. package/src/lib/blocks/whitened.d.ts +2 -1
  50. package/src/lib/blocks/whitened.d.ts.map +1 -1
  51. package/src/lib/blocks/whitened.js +7 -5
  52. package/src/lib/blocks/whitened.js.map +1 -1
  53. package/src/lib/config/constants.d.ts +2 -0
  54. package/src/lib/config/constants.d.ts.map +1 -0
  55. package/src/lib/config/constants.js +5 -0
  56. package/src/lib/config/constants.js.map +1 -0
  57. package/src/lib/constants.d.ts +37 -0
  58. package/src/lib/constants.d.ts.map +1 -1
  59. package/src/lib/constants.js +40 -1
  60. package/src/lib/constants.js.map +1 -1
  61. package/src/lib/cpus/index.d.ts +2 -3
  62. package/src/lib/cpus/index.d.ts.map +1 -1
  63. package/src/lib/cpus/index.js +5 -0
  64. package/src/lib/cpus/index.js.map +1 -1
  65. package/src/lib/cpus/instructionFactory.d.ts +56 -0
  66. package/src/lib/cpus/instructionFactory.d.ts.map +1 -0
  67. package/src/lib/cpus/instructionFactory.js +190 -0
  68. package/src/lib/cpus/instructionFactory.js.map +1 -0
  69. package/src/lib/cpus/instructionTables.d.ts +14 -12
  70. package/src/lib/cpus/instructionTables.d.ts.map +1 -1
  71. package/src/lib/cpus/instructionTables.js +17 -147
  72. package/src/lib/cpus/instructionTables.js.map +1 -1
  73. package/src/lib/cpus/riscvCpu.d.ts +51 -0
  74. package/src/lib/cpus/riscvCpu.d.ts.map +1 -0
  75. package/src/lib/cpus/riscvCpu.js +131 -0
  76. package/src/lib/cpus/riscvCpu.js.map +1 -0
  77. package/src/lib/documents/base/document.d.ts +1 -1
  78. package/src/lib/documents/base/document.d.ts.map +1 -1
  79. package/src/lib/documents/member/index.d.ts +2 -0
  80. package/src/lib/documents/member/index.d.ts.map +1 -1
  81. package/src/lib/documents/member/index.js +2 -0
  82. package/src/lib/documents/member/index.js.map +1 -1
  83. package/src/lib/documents/member/memberDocument.d.ts +4 -3
  84. package/src/lib/documents/member/memberDocument.d.ts.map +1 -1
  85. package/src/lib/documents/member/memberDocument.js +11 -8
  86. package/src/lib/documents/member/memberDocument.js.map +1 -1
  87. package/src/lib/documents/member/memberHydration.d.ts.map +1 -1
  88. package/src/lib/documents/member/memberHydration.js +7 -21
  89. package/src/lib/documents/member/memberHydration.js.map +1 -1
  90. package/src/lib/documents/member/memberOperational.d.ts.map +1 -1
  91. package/src/lib/documents/member/memberOperational.js +2 -2
  92. package/src/lib/documents/member/memberOperational.js.map +1 -1
  93. package/src/lib/documents/member/memberProfileDocument.d.ts +138 -0
  94. package/src/lib/documents/member/memberProfileDocument.d.ts.map +1 -0
  95. package/src/lib/documents/member/memberProfileDocument.js +326 -0
  96. package/src/lib/documents/member/memberProfileDocument.js.map +1 -0
  97. package/src/lib/documents/member/memberProfileHydration.d.ts +12 -0
  98. package/src/lib/documents/member/memberProfileHydration.d.ts.map +1 -0
  99. package/src/lib/documents/member/memberProfileHydration.js +143 -0
  100. package/src/lib/documents/member/memberProfileHydration.js.map +1 -0
  101. package/src/lib/documents/network/networkDocument.d.ts.map +1 -1
  102. package/src/lib/documents/network/networkDocument.js +4 -3
  103. package/src/lib/documents/network/networkDocument.js.map +1 -1
  104. package/src/lib/documents/quorumDocument.d.ts +3 -14
  105. package/src/lib/documents/quorumDocument.d.ts.map +1 -1
  106. package/src/lib/documents/quorumDocument.js +4 -2
  107. package/src/lib/documents/quorumDocument.js.map +1 -1
  108. package/src/lib/encryptedBlockMetadata.d.ts +13 -5
  109. package/src/lib/encryptedBlockMetadata.d.ts.map +1 -1
  110. package/src/lib/encryptedBlockMetadata.js +31 -23
  111. package/src/lib/encryptedBlockMetadata.js.map +1 -1
  112. package/src/lib/enumerations/blockSize.d.ts +2 -2
  113. package/src/lib/enumerations/blockSize.d.ts.map +1 -1
  114. package/src/lib/enumerations/blockSize.js +15 -15
  115. package/src/lib/enumerations/blockSize.js.map +1 -1
  116. package/src/lib/enumerations/{stringNames.d.ts → brightChainStrings.d.ts} +4 -3
  117. package/src/lib/enumerations/brightChainStrings.d.ts.map +1 -0
  118. package/src/lib/enumerations/brightChainStrings.js +437 -0
  119. package/src/lib/enumerations/brightChainStrings.js.map +1 -0
  120. package/src/lib/enumerations/cblErrorType.d.ts +1 -0
  121. package/src/lib/enumerations/cblErrorType.d.ts.map +1 -1
  122. package/src/lib/enumerations/cblErrorType.js +1 -0
  123. package/src/lib/enumerations/cblErrorType.js.map +1 -1
  124. package/src/lib/enumerations/index.d.ts +1 -1
  125. package/src/lib/enumerations/index.d.ts.map +1 -1
  126. package/src/lib/enumerations/index.js +1 -1
  127. package/src/lib/enumerations/index.js.map +1 -1
  128. package/src/lib/enumerations/votingDerivationErrorType.d.ts +2 -2
  129. package/src/lib/enumerations/votingDerivationErrorType.d.ts.map +1 -1
  130. package/src/lib/enumerations/votingDerivationErrorType.js +11 -11
  131. package/src/lib/enumerations/votingDerivationErrorType.js.map +1 -1
  132. package/src/lib/ephemeralBlockMetadata.d.ts +13 -8
  133. package/src/lib/ephemeralBlockMetadata.d.ts.map +1 -1
  134. package/src/lib/ephemeralBlockMetadata.js +27 -19
  135. package/src/lib/ephemeralBlockMetadata.js.map +1 -1
  136. package/src/lib/errors/block/blockAccess.d.ts +2 -2
  137. package/src/lib/errors/block/blockAccess.d.ts.map +1 -1
  138. package/src/lib/errors/block/blockAccess.js +8 -8
  139. package/src/lib/errors/block/blockAccess.js.map +1 -1
  140. package/src/lib/errors/block/blockCapacity.d.ts +2 -2
  141. package/src/lib/errors/block/blockCapacity.d.ts.map +1 -1
  142. package/src/lib/errors/block/blockCapacity.js +8 -8
  143. package/src/lib/errors/block/blockCapacity.js.map +1 -1
  144. package/src/lib/errors/block/blockError.d.ts +2 -2
  145. package/src/lib/errors/block/blockError.d.ts.map +1 -1
  146. package/src/lib/errors/block/blockError.js +16 -16
  147. package/src/lib/errors/block/blockError.js.map +1 -1
  148. package/src/lib/errors/block/blockMetadata.d.ts +2 -2
  149. package/src/lib/errors/block/blockMetadata.d.ts.map +1 -1
  150. package/src/lib/errors/block/blockMetadata.js +8 -8
  151. package/src/lib/errors/block/blockMetadata.js.map +1 -1
  152. package/src/lib/errors/block/blockValidation.d.ts +2 -2
  153. package/src/lib/errors/block/blockValidation.d.ts.map +1 -1
  154. package/src/lib/errors/block/blockValidation.js +36 -36
  155. package/src/lib/errors/block/blockValidation.js.map +1 -1
  156. package/src/lib/errors/block/cannotDecrypt.d.ts.map +1 -1
  157. package/src/lib/errors/block/cannotDecrypt.js +2 -2
  158. package/src/lib/errors/block/cannotDecrypt.js.map +1 -1
  159. package/src/lib/errors/block/cannotEncrypt.d.ts.map +1 -1
  160. package/src/lib/errors/block/cannotEncrypt.js +2 -2
  161. package/src/lib/errors/block/cannotEncrypt.js.map +1 -1
  162. package/src/lib/errors/blockServiceError.d.ts +2 -2
  163. package/src/lib/errors/blockServiceError.d.ts.map +1 -1
  164. package/src/lib/errors/blockServiceError.js +15 -15
  165. package/src/lib/errors/blockServiceError.js.map +1 -1
  166. package/src/lib/errors/bufferError.d.ts.map +1 -1
  167. package/src/lib/errors/bufferError.js +2 -2
  168. package/src/lib/errors/bufferError.js.map +1 -1
  169. package/src/lib/errors/cblError.d.ts +2 -2
  170. package/src/lib/errors/cblError.d.ts.map +1 -1
  171. package/src/lib/errors/cblError.js +37 -36
  172. package/src/lib/errors/cblError.js.map +1 -1
  173. package/src/lib/errors/checksumMismatch.js +2 -2
  174. package/src/lib/errors/checksumMismatch.js.map +1 -1
  175. package/src/lib/errors/disposed.js +2 -2
  176. package/src/lib/errors/disposed.js.map +1 -1
  177. package/src/lib/errors/document.d.ts +2 -2
  178. package/src/lib/errors/document.d.ts.map +1 -1
  179. package/src/lib/errors/document.js +5 -5
  180. package/src/lib/errors/document.js.map +1 -1
  181. package/src/lib/errors/eciesError.d.ts +2 -2
  182. package/src/lib/errors/eciesError.d.ts.map +1 -1
  183. package/src/lib/errors/eciesError.js +20 -20
  184. package/src/lib/errors/eciesError.js.map +1 -1
  185. package/src/lib/errors/extendedCblError.d.ts +2 -2
  186. package/src/lib/errors/extendedCblError.d.ts.map +1 -1
  187. package/src/lib/errors/extendedCblError.js +25 -25
  188. package/src/lib/errors/extendedCblError.js.map +1 -1
  189. package/src/lib/errors/failedToHydrate.js +2 -2
  190. package/src/lib/errors/failedToHydrate.js.map +1 -1
  191. package/src/lib/errors/failedToSerialize.js +2 -2
  192. package/src/lib/errors/failedToSerialize.js.map +1 -1
  193. package/src/lib/errors/fecError.d.ts +2 -2
  194. package/src/lib/errors/fecError.d.ts.map +1 -1
  195. package/src/lib/errors/fecError.js +19 -19
  196. package/src/lib/errors/fecError.js.map +1 -1
  197. package/src/lib/errors/handleTupleError.d.ts +2 -2
  198. package/src/lib/errors/handleTupleError.d.ts.map +1 -1
  199. package/src/lib/errors/handleTupleError.js +5 -5
  200. package/src/lib/errors/handleTupleError.js.map +1 -1
  201. package/src/lib/errors/index.d.ts +0 -6
  202. package/src/lib/errors/index.d.ts.map +1 -1
  203. package/src/lib/errors/index.js +0 -9
  204. package/src/lib/errors/index.js.map +1 -1
  205. package/src/lib/errors/invalidBlockSize.js +2 -2
  206. package/src/lib/errors/invalidBlockSize.js.map +1 -1
  207. package/src/lib/errors/invalidBlockSizeLength.js +2 -2
  208. package/src/lib/errors/invalidBlockSizeLength.js.map +1 -1
  209. package/src/lib/errors/invalidCredentials.js +2 -2
  210. package/src/lib/errors/invalidCredentials.js.map +1 -1
  211. package/src/lib/errors/invalidIDFormat.js +2 -2
  212. package/src/lib/errors/invalidIDFormat.js.map +1 -1
  213. package/src/lib/errors/invalidSessionID.js +2 -2
  214. package/src/lib/errors/invalidSessionID.js.map +1 -1
  215. package/src/lib/errors/invalidTupleCount.js +2 -2
  216. package/src/lib/errors/invalidTupleCount.js.map +1 -1
  217. package/src/lib/errors/isolatedKeyError.d.ts +2 -2
  218. package/src/lib/errors/isolatedKeyError.d.ts.map +1 -1
  219. package/src/lib/errors/isolatedKeyError.js +7 -7
  220. package/src/lib/errors/isolatedKeyError.js.map +1 -1
  221. package/src/lib/errors/memberError.d.ts +2 -2
  222. package/src/lib/errors/memberError.d.ts.map +1 -1
  223. package/src/lib/errors/memberError.js +27 -27
  224. package/src/lib/errors/memberError.js.map +1 -1
  225. package/src/lib/errors/memoryTupleError.d.ts +2 -2
  226. package/src/lib/errors/memoryTupleError.d.ts.map +1 -1
  227. package/src/lib/errors/memoryTupleError.js +7 -7
  228. package/src/lib/errors/memoryTupleError.js.map +1 -1
  229. package/src/lib/errors/metadataMismatch.js +2 -2
  230. package/src/lib/errors/metadataMismatch.js.map +1 -1
  231. package/src/lib/errors/multiEncryptedError.d.ts +2 -2
  232. package/src/lib/errors/multiEncryptedError.d.ts.map +1 -1
  233. package/src/lib/errors/multiEncryptedError.js +11 -11
  234. package/src/lib/errors/multiEncryptedError.js.map +1 -1
  235. package/src/lib/errors/notImplemented.js +2 -2
  236. package/src/lib/errors/notImplemented.js.map +1 -1
  237. package/src/lib/errors/quorumError.d.ts +2 -2
  238. package/src/lib/errors/quorumError.d.ts.map +1 -1
  239. package/src/lib/errors/quorumError.js +8 -8
  240. package/src/lib/errors/quorumError.js.map +1 -1
  241. package/src/lib/errors/sealingError.d.ts +2 -2
  242. package/src/lib/errors/sealingError.d.ts.map +1 -1
  243. package/src/lib/errors/sealingError.js +9 -9
  244. package/src/lib/errors/sealingError.js.map +1 -1
  245. package/src/lib/errors/secureStorage.d.ts +2 -2
  246. package/src/lib/errors/secureStorage.d.ts.map +1 -1
  247. package/src/lib/errors/secureStorage.js +4 -4
  248. package/src/lib/errors/secureStorage.js.map +1 -1
  249. package/src/lib/errors/storeError.d.ts +2 -2
  250. package/src/lib/errors/storeError.d.ts.map +1 -1
  251. package/src/lib/errors/storeError.js +20 -20
  252. package/src/lib/errors/storeError.js.map +1 -1
  253. package/src/lib/errors/streamError.d.ts +2 -2
  254. package/src/lib/errors/streamError.d.ts.map +1 -1
  255. package/src/lib/errors/streamError.js +8 -8
  256. package/src/lib/errors/streamError.js.map +1 -1
  257. package/src/lib/errors/symmetricError.d.ts +2 -2
  258. package/src/lib/errors/symmetricError.d.ts.map +1 -1
  259. package/src/lib/errors/symmetricError.js +3 -3
  260. package/src/lib/errors/symmetricError.js.map +1 -1
  261. package/src/lib/errors/systemKeyringError.d.ts +2 -2
  262. package/src/lib/errors/systemKeyringError.d.ts.map +1 -1
  263. package/src/lib/errors/systemKeyringError.js +4 -4
  264. package/src/lib/errors/systemKeyringError.js.map +1 -1
  265. package/src/lib/errors/tupleError.d.ts +2 -2
  266. package/src/lib/errors/tupleError.d.ts.map +1 -1
  267. package/src/lib/errors/tupleError.js +13 -13
  268. package/src/lib/errors/tupleError.js.map +1 -1
  269. package/src/lib/errors/typedError.d.ts +2 -2
  270. package/src/lib/errors/typedError.d.ts.map +1 -1
  271. package/src/lib/errors/typedWithReasonError.d.ts +3 -3
  272. package/src/lib/errors/typedWithReasonError.d.ts.map +1 -1
  273. package/src/lib/errors/typedWithReasonError.js.map +1 -1
  274. package/src/lib/errors/userNotFound.js +2 -2
  275. package/src/lib/errors/userNotFound.js.map +1 -1
  276. package/src/lib/errors/whitenedError.d.ts +2 -2
  277. package/src/lib/errors/whitenedError.d.ts.map +1 -1
  278. package/src/lib/errors/whitenedError.js +5 -5
  279. package/src/lib/errors/whitenedError.js.map +1 -1
  280. package/src/lib/factories/blockFactory.d.ts +23 -0
  281. package/src/lib/factories/blockFactory.d.ts.map +1 -0
  282. package/src/lib/factories/blockFactory.js +43 -0
  283. package/src/lib/factories/blockFactory.js.map +1 -0
  284. package/src/lib/i18n/index.d.ts +2 -2
  285. package/src/lib/i18n/index.d.ts.map +1 -1
  286. package/src/lib/i18n/index.js +2 -2
  287. package/src/lib/i18n/index.js.map +1 -1
  288. package/src/lib/index.d.ts +9 -0
  289. package/src/lib/index.d.ts.map +1 -1
  290. package/src/lib/index.js +12 -0
  291. package/src/lib/index.js.map +1 -1
  292. package/src/lib/init.d.ts +10 -0
  293. package/src/lib/init.d.ts.map +1 -1
  294. package/src/lib/init.js +24 -4
  295. package/src/lib/init.js.map +1 -1
  296. package/src/lib/interfaces/blockCapacity.d.ts +8 -0
  297. package/src/lib/interfaces/blockCapacity.d.ts.map +1 -1
  298. package/src/lib/interfaces/blocks/encrypted.d.ts +1 -1
  299. package/src/lib/interfaces/blocks/encrypted.d.ts.map +1 -1
  300. package/src/lib/interfaces/blocks/ephemeral.d.ts +4 -7
  301. package/src/lib/interfaces/blocks/ephemeral.d.ts.map +1 -1
  302. package/src/lib/interfaces/blocks/headers/index.d.ts +1 -0
  303. package/src/lib/interfaces/blocks/headers/index.d.ts.map +1 -1
  304. package/src/lib/interfaces/blocks/headers/superCblHeader.d.ts +63 -0
  305. package/src/lib/interfaces/blocks/headers/superCblHeader.d.ts.map +1 -0
  306. package/src/lib/interfaces/{storage/superCbl.js → blocks/headers/superCblHeader.js} +1 -1
  307. package/src/lib/interfaces/blocks/headers/superCblHeader.js.map +1 -0
  308. package/src/lib/interfaces/blocks/metadata/index.d.ts +0 -1
  309. package/src/lib/interfaces/blocks/metadata/index.d.ts.map +1 -1
  310. package/src/lib/interfaces/constants.d.ts +29 -0
  311. package/src/lib/interfaces/constants.d.ts.map +1 -1
  312. package/src/lib/interfaces/document/quorumDocument.d.ts +15 -0
  313. package/src/lib/interfaces/document/quorumDocument.d.ts.map +1 -0
  314. package/src/lib/interfaces/document/quorumDocument.js +3 -0
  315. package/src/lib/interfaces/document/quorumDocument.js.map +1 -0
  316. package/src/lib/interfaces/member/memberData.d.ts +2 -0
  317. package/src/lib/interfaces/member/memberData.d.ts.map +1 -1
  318. package/src/lib/interfaces/member/profileStorage.d.ts +77 -0
  319. package/src/lib/interfaces/member/profileStorage.d.ts.map +1 -0
  320. package/src/lib/interfaces/member/profileStorage.js +3 -0
  321. package/src/lib/interfaces/member/profileStorage.js.map +1 -0
  322. package/src/lib/interfaces/serviceProvider.interface.d.ts +11 -8
  323. package/src/lib/interfaces/serviceProvider.interface.d.ts.map +1 -1
  324. package/src/lib/interfaces/services/cblServices.d.ts +148 -0
  325. package/src/lib/interfaces/services/cblServices.d.ts.map +1 -0
  326. package/src/lib/interfaces/services/cblServices.js +11 -0
  327. package/src/lib/interfaces/services/cblServices.js.map +1 -0
  328. package/src/lib/interfaces/services/ephemeralBlockServices.d.ts +15 -0
  329. package/src/lib/interfaces/services/ephemeralBlockServices.d.ts.map +1 -0
  330. package/src/lib/interfaces/services/ephemeralBlockServices.js +3 -0
  331. package/src/lib/interfaces/services/ephemeralBlockServices.js.map +1 -0
  332. package/src/lib/interfaces/services/index.d.ts +1 -0
  333. package/src/lib/interfaces/services/index.d.ts.map +1 -1
  334. package/src/lib/interfaces/storage/index.d.ts +0 -1
  335. package/src/lib/interfaces/storage/index.d.ts.map +1 -1
  336. package/src/lib/logging/blockLogger.d.ts +218 -0
  337. package/src/lib/logging/blockLogger.d.ts.map +1 -0
  338. package/src/lib/logging/blockLogger.js +341 -0
  339. package/src/lib/logging/blockLogger.js.map +1 -0
  340. package/src/lib/logging/index.d.ts +24 -0
  341. package/src/lib/logging/index.d.ts.map +1 -0
  342. package/src/lib/logging/index.js +27 -0
  343. package/src/lib/logging/index.js.map +1 -0
  344. package/src/lib/logging/structuredLogger.d.ts +42 -0
  345. package/src/lib/logging/structuredLogger.d.ts.map +1 -0
  346. package/src/lib/logging/structuredLogger.js +93 -0
  347. package/src/lib/logging/structuredLogger.js.map +1 -0
  348. package/src/lib/primeTupleGeneratorStream.d.ts.map +1 -1
  349. package/src/lib/primeTupleGeneratorStream.js +4 -2
  350. package/src/lib/primeTupleGeneratorStream.js.map +1 -1
  351. package/src/lib/quorum.d.ts.map +1 -1
  352. package/src/lib/quorum.js +7 -5
  353. package/src/lib/quorum.js.map +1 -1
  354. package/src/lib/quorumDataRecord.d.ts +1 -1
  355. package/src/lib/quorumDataRecord.d.ts.map +1 -1
  356. package/src/lib/quorumDataRecord.js +5 -4
  357. package/src/lib/quorumDataRecord.js.map +1 -1
  358. package/src/lib/schemas/network/networkDocumentSchema.d.ts.map +1 -1
  359. package/src/lib/schemas/network/networkDocumentSchema.js +9 -8
  360. package/src/lib/schemas/network/networkDocumentSchema.js.map +1 -1
  361. package/src/lib/schemas/quorumDocument.d.ts +1 -1
  362. package/src/lib/schemas/quorumDocument.d.ts.map +1 -1
  363. package/src/lib/schemas/quorumDocument.js +6 -4
  364. package/src/lib/schemas/quorumDocument.js.map +1 -1
  365. package/src/lib/security/dosProtection.d.ts +13 -0
  366. package/src/lib/security/dosProtection.d.ts.map +1 -0
  367. package/src/lib/security/dosProtection.js +29 -0
  368. package/src/lib/security/dosProtection.js.map +1 -0
  369. package/src/lib/security/dosProtectionValidator.d.ts +27 -0
  370. package/src/lib/security/dosProtectionValidator.d.ts.map +1 -0
  371. package/src/lib/security/dosProtectionValidator.js +60 -0
  372. package/src/lib/security/dosProtectionValidator.js.map +1 -0
  373. package/src/lib/security/index.d.ts +12 -0
  374. package/src/lib/security/index.d.ts.map +1 -0
  375. package/src/lib/security/index.js +15 -0
  376. package/src/lib/security/index.js.map +1 -0
  377. package/src/lib/security/rateLimitTypes.d.ts +20 -0
  378. package/src/lib/security/rateLimitTypes.d.ts.map +1 -0
  379. package/src/lib/security/rateLimitTypes.js +15 -0
  380. package/src/lib/security/rateLimitTypes.js.map +1 -0
  381. package/src/lib/security/rateLimiter.d.ts +29 -0
  382. package/src/lib/security/rateLimiter.d.ts.map +1 -0
  383. package/src/lib/security/rateLimiter.js +107 -0
  384. package/src/lib/security/rateLimiter.js.map +1 -0
  385. package/src/lib/security/securityAuditLogger.d.ts +59 -0
  386. package/src/lib/security/securityAuditLogger.d.ts.map +1 -0
  387. package/src/lib/security/securityAuditLogger.js +120 -0
  388. package/src/lib/security/securityAuditLogger.js.map +1 -0
  389. package/src/lib/security/securityEvent.d.ts +45 -0
  390. package/src/lib/security/securityEvent.d.ts.map +1 -0
  391. package/src/lib/security/securityEvent.js +44 -0
  392. package/src/lib/security/securityEvent.js.map +1 -0
  393. package/src/lib/services/blockCapacity.service.d.ts.map +1 -1
  394. package/src/lib/services/blockCapacity.service.js +14 -5
  395. package/src/lib/services/blockCapacity.service.js.map +1 -1
  396. package/src/lib/services/blockFormatService.d.ts +41 -0
  397. package/src/lib/services/blockFormatService.d.ts.map +1 -0
  398. package/src/lib/services/blockFormatService.js +252 -0
  399. package/src/lib/services/blockFormatService.js.map +1 -0
  400. package/src/lib/services/blockService.d.ts +6 -0
  401. package/src/lib/services/blockService.d.ts.map +1 -1
  402. package/src/lib/services/blockService.js +130 -28
  403. package/src/lib/services/blockService.js.map +1 -1
  404. package/src/lib/services/cblService.d.ts +162 -3
  405. package/src/lib/services/cblService.d.ts.map +1 -1
  406. package/src/lib/services/cblService.js +502 -21
  407. package/src/lib/services/cblService.js.map +1 -1
  408. package/src/lib/services/globalServiceProvider.d.ts +4 -0
  409. package/src/lib/services/globalServiceProvider.d.ts.map +1 -0
  410. package/src/lib/services/globalServiceProvider.js +26 -0
  411. package/src/lib/services/globalServiceProvider.js.map +1 -0
  412. package/src/lib/services/index.d.ts +0 -2
  413. package/src/lib/services/index.d.ts.map +1 -1
  414. package/src/lib/services/index.js +0 -2
  415. package/src/lib/services/index.js.map +1 -1
  416. package/src/lib/services/member/memberCblService.d.ts.map +1 -1
  417. package/src/lib/services/member/memberCblService.js +11 -8
  418. package/src/lib/services/member/memberCblService.js.map +1 -1
  419. package/src/lib/services/memberStore.d.ts +8 -0
  420. package/src/lib/services/memberStore.d.ts.map +1 -1
  421. package/src/lib/services/memberStore.js +105 -76
  422. package/src/lib/services/memberStore.js.map +1 -1
  423. package/src/lib/services/sealing.service.d.ts +1 -1
  424. package/src/lib/services/sealing.service.d.ts.map +1 -1
  425. package/src/lib/services/sealing.service.js +4 -13
  426. package/src/lib/services/sealing.service.js.map +1 -1
  427. package/src/lib/services/service.provider.d.ts +2 -0
  428. package/src/lib/services/service.provider.d.ts.map +1 -1
  429. package/src/lib/services/service.provider.js +7 -12
  430. package/src/lib/services/service.provider.js.map +1 -1
  431. package/src/lib/services/serviceLocator.d.ts.map +1 -1
  432. package/src/lib/services/serviceLocator.js +2 -0
  433. package/src/lib/services/serviceLocator.js.map +1 -1
  434. package/src/lib/services/tuple.service.js +4 -4
  435. package/src/lib/services/tuple.service.js.map +1 -1
  436. package/src/lib/sharedTypes.d.ts +1 -22
  437. package/src/lib/sharedTypes.d.ts.map +1 -1
  438. package/src/lib/sharedTypes.js.map +1 -1
  439. package/src/lib/strings/englishUs.d.ts.map +1 -1
  440. package/src/lib/strings/englishUs.js +392 -392
  441. package/src/lib/strings/englishUs.js.map +1 -1
  442. package/src/lib/test/service.initializer.helper.d.ts +2 -1
  443. package/src/lib/test/service.initializer.helper.d.ts.map +1 -1
  444. package/src/lib/test/service.initializer.helper.js +11 -15
  445. package/src/lib/test/service.initializer.helper.js.map +1 -1
  446. package/src/lib/types/schema.d.ts +38 -0
  447. package/src/lib/types/schema.d.ts.map +1 -0
  448. package/src/lib/types/schema.js +7 -0
  449. package/src/lib/types/schema.js.map +1 -0
  450. package/src/lib/utils/constantTime.d.ts +27 -0
  451. package/src/lib/utils/constantTime.d.ts.map +1 -0
  452. package/src/lib/utils/constantTime.js +67 -0
  453. package/src/lib/utils/constantTime.js.map +1 -0
  454. package/src/lib/utils/constantTimeXor.d.ts +76 -0
  455. package/src/lib/utils/constantTimeXor.d.ts.map +1 -0
  456. package/src/lib/utils/constantTimeXor.js +122 -0
  457. package/src/lib/utils/constantTimeXor.js.map +1 -0
  458. package/src/lib/utils/dateUtils.d.ts +67 -0
  459. package/src/lib/utils/dateUtils.d.ts.map +1 -0
  460. package/src/lib/utils/dateUtils.js +136 -0
  461. package/src/lib/utils/dateUtils.js.map +1 -0
  462. package/src/lib/utils/index.d.ts +57 -0
  463. package/src/lib/utils/index.d.ts.map +1 -1
  464. package/src/lib/utils/index.js +69 -0
  465. package/src/lib/utils/index.js.map +1 -1
  466. package/src/lib/utils/typeGuards.d.ts +102 -0
  467. package/src/lib/utils/typeGuards.d.ts.map +1 -0
  468. package/src/lib/utils/typeGuards.js +244 -0
  469. package/src/lib/utils/typeGuards.js.map +1 -0
  470. package/src/lib/cpus/instructions.d.ts +0 -35
  471. package/src/lib/cpus/instructions.d.ts.map +0 -1
  472. package/src/lib/cpus/instructions.js +0 -285
  473. package/src/lib/cpus/instructions.js.map +0 -1
  474. package/src/lib/cpus/mach-o.d.ts +0 -7
  475. package/src/lib/cpus/mach-o.d.ts.map +0 -1
  476. package/src/lib/cpus/mach-o.js +0 -99
  477. package/src/lib/cpus/mach-o.js.map +0 -1
  478. package/src/lib/cpus/x86Cpu.d.ts +0 -21
  479. package/src/lib/cpus/x86Cpu.d.ts.map +0 -1
  480. package/src/lib/cpus/x86Cpu.js +0 -89
  481. package/src/lib/cpus/x86Cpu.js.map +0 -1
  482. package/src/lib/enumerations/stringNames.d.ts.map +0 -1
  483. package/src/lib/enumerations/stringNames.js +0 -436
  484. package/src/lib/enumerations/stringNames.js.map +0 -1
  485. package/src/lib/errors/superCbl.d.ts +0 -24
  486. package/src/lib/errors/superCbl.d.ts.map +0 -1
  487. package/src/lib/errors/superCbl.js +0 -43
  488. package/src/lib/errors/superCbl.js.map +0 -1
  489. package/src/lib/interfaces/storage/superCbl.d.ts +0 -102
  490. package/src/lib/interfaces/storage/superCbl.d.ts.map +0 -1
  491. package/src/lib/interfaces/storage/superCbl.js.map +0 -1
  492. package/src/lib/services/jsonCblCapacity.service.d.ts +0 -80
  493. package/src/lib/services/jsonCblCapacity.service.d.ts.map +0 -1
  494. package/src/lib/services/jsonCblCapacity.service.js +0 -147
  495. package/src/lib/services/jsonCblCapacity.service.js.map +0 -1
  496. package/src/lib/services/superCbl.service.d.ts +0 -68
  497. package/src/lib/services/superCbl.service.d.ts.map +0 -1
  498. package/src/lib/services/superCbl.service.js +0 -213
  499. package/src/lib/services/superCbl.service.js.map +0 -1
@@ -0,0 +1,252 @@
1
+ "use strict";
2
+ /**
3
+ * Block Format Detection Service
4
+ *
5
+ * This service provides functionality for detecting and validating block formats
6
+ * based on magic bytes, version, and CRC8 integrity checks.
7
+ *
8
+ * @module services/blockFormatService
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.detectBlockFormat = detectBlockFormat;
12
+ const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
13
+ const constants_1 = require("../constants");
14
+ const blockType_1 = require("../enumerations/blockType");
15
+ function detectBlockFormat(data, creatorIdLength = 16) {
16
+ const idLength = creatorIdLength;
17
+ // Check minimum length for header prefix
18
+ if (data.length < 4) {
19
+ return {
20
+ isValid: false,
21
+ blockType: blockType_1.BlockType.Unknown,
22
+ version: 0,
23
+ error: 'Data too short for structured block header (minimum 4 bytes required)',
24
+ };
25
+ }
26
+ // Check for BrightChain structured block magic prefix
27
+ if (data[0] === constants_1.BLOCK_HEADER.MAGIC_PREFIX) {
28
+ const structuredBlockType = data[1];
29
+ const version = data[2];
30
+ const storedCrc8 = data[3];
31
+ // Validate block type
32
+ const validTypes = [
33
+ constants_1.StructuredBlockType.CBL,
34
+ constants_1.StructuredBlockType.SuperCBL,
35
+ constants_1.StructuredBlockType.ExtendedCBL,
36
+ constants_1.StructuredBlockType.MessageCBL,
37
+ ];
38
+ if (!validTypes.includes(structuredBlockType)) {
39
+ return {
40
+ isValid: false,
41
+ blockType: blockType_1.BlockType.Unknown,
42
+ version,
43
+ error: `Invalid structured block type: 0x${structuredBlockType.toString(16).padStart(2, '0')}`,
44
+ isStructured: true,
45
+ };
46
+ }
47
+ // Get header end offset based on block type
48
+ const headerEnd = getHeaderEndOffset(data, structuredBlockType, version, idLength);
49
+ if (headerEnd < 0) {
50
+ return {
51
+ isValid: false,
52
+ blockType: mapStructuredToBlockType(structuredBlockType),
53
+ version,
54
+ error: 'Cannot determine header size - data may be truncated',
55
+ isStructured: true,
56
+ };
57
+ }
58
+ // Compute CRC8 over header content (after CRC8 field, before signature)
59
+ // Signature is always the last 64 bytes of the header
60
+ const signatureSize = 64; // ECDSA signature
61
+ const crcData = data.subarray(4, headerEnd - signatureSize);
62
+ const crcService = new ecies_lib_1.CrcService();
63
+ const computedCrc8Buffer = crcService.crc8(crcData);
64
+ const computedCrc8 = computedCrc8Buffer[0];
65
+ if (storedCrc8 !== computedCrc8) {
66
+ return {
67
+ isValid: false,
68
+ blockType: mapStructuredToBlockType(structuredBlockType),
69
+ version,
70
+ error: `CRC8 mismatch - header may be corrupted (expected 0x${computedCrc8.toString(16).padStart(2, '0')}, got 0x${storedCrc8.toString(16).padStart(2, '0')})`,
71
+ isStructured: true,
72
+ };
73
+ }
74
+ // Valid structured block
75
+ return {
76
+ isValid: true,
77
+ blockType: mapStructuredToBlockType(structuredBlockType),
78
+ version,
79
+ isStructured: true,
80
+ };
81
+ }
82
+ // Check if it looks like encrypted data (ECIES format)
83
+ if (data[0] === ecies_lib_1.ECIES.PUBLIC_KEY_MAGIC) {
84
+ return {
85
+ isValid: false,
86
+ blockType: blockType_1.BlockType.Unknown,
87
+ version: 0,
88
+ error: 'Data appears to be ECIES encrypted - decrypt before parsing',
89
+ isEncrypted: true,
90
+ };
91
+ }
92
+ // Unknown format - could be raw data
93
+ return {
94
+ isValid: false,
95
+ blockType: blockType_1.BlockType.Unknown,
96
+ version: 0,
97
+ error: 'Unknown block format - missing 0xBC magic prefix (may be raw data)',
98
+ };
99
+ }
100
+ /**
101
+ * Map StructuredBlockType to BlockType enum
102
+ */
103
+ function mapStructuredToBlockType(structuredType) {
104
+ switch (structuredType) {
105
+ case constants_1.StructuredBlockType.CBL:
106
+ return blockType_1.BlockType.ConstituentBlockList;
107
+ case constants_1.StructuredBlockType.ExtendedCBL:
108
+ return blockType_1.BlockType.ExtendedConstituentBlockListBlock;
109
+ case constants_1.StructuredBlockType.MessageCBL:
110
+ // MessageCBL doesn't have a direct BlockType mapping yet
111
+ // Return CBL as the base type
112
+ return blockType_1.BlockType.ConstituentBlockList;
113
+ case constants_1.StructuredBlockType.SuperCBL:
114
+ // SuperCBL doesn't have a BlockType enum value yet
115
+ // Return CBL as the base type
116
+ return blockType_1.BlockType.ConstituentBlockList;
117
+ default:
118
+ return blockType_1.BlockType.Unknown;
119
+ }
120
+ }
121
+ /**
122
+ * Get the end offset of the header based on block type and version
123
+ *
124
+ * @param data - The block data
125
+ * @param blockType - The structured block type
126
+ * @param version - The header version
127
+ * @param idLength - The creator ID length from the ID provider
128
+ * @returns The offset where the header ends, or -1 if cannot be determined
129
+ */
130
+ function getHeaderEndOffset(data, blockType, version, idLength) {
131
+ // Version check
132
+ if (version !== constants_1.BLOCK_HEADER.VERSION) {
133
+ // Unknown version - cannot determine header size
134
+ return -1;
135
+ }
136
+ // Calculate base header size dynamically using ID provider length
137
+ // Prefix(4) + CreatorId(idLength) + DateCreated(8) + AddressCount(4) + TupleSize(1) +
138
+ // OriginalDataLength(8) + OriginalChecksum(64) + IsExtendedHeader(1) + Signature(64)
139
+ const baseHeaderSize = 4 + idLength + 8 + 4 + 1 + 8 + 64 + 1 + 64;
140
+ // Minimum header check
141
+ if (data.length < baseHeaderSize) {
142
+ return -1;
143
+ }
144
+ switch (blockType) {
145
+ case constants_1.StructuredBlockType.CBL:
146
+ // Base CBL header with dynamic creator ID length
147
+ return baseHeaderSize;
148
+ case constants_1.StructuredBlockType.ExtendedCBL:
149
+ // Extended CBL has variable-length file name and MIME type
150
+ return parseExtendedHeaderEnd(data, idLength);
151
+ case constants_1.StructuredBlockType.MessageCBL:
152
+ // Message CBL has variable-length fields
153
+ return parseMessageHeaderEnd(data, idLength);
154
+ case constants_1.StructuredBlockType.SuperCBL:
155
+ // SuperCBL header structure
156
+ // Prefix(4) + CreatorId(idLength) + DateCreated(8) + SubCblCount(4) + TotalBlockCount(4) +
157
+ // Depth(2) + OriginalDataLength(8) + OriginalChecksum(64) + Signature(64)
158
+ return 4 + idLength + 8 + 4 + 4 + 2 + 8 + 64 + 64;
159
+ default:
160
+ return -1;
161
+ }
162
+ }
163
+ /**
164
+ * Parse extended CBL header to find the end offset
165
+ */
166
+ function parseExtendedHeaderEnd(data, idLength) {
167
+ try {
168
+ // Base header ends at offset where extended fields start (before signature)
169
+ // Prefix(4) + CreatorId(idLength) + DateCreated(8) + AddressCount(4) + TupleSize(1) +
170
+ // OriginalDataLength(8) + OriginalChecksum(64) + IsExtendedHeader(1)
171
+ const baseHeaderEnd = 4 + idLength + 8 + 4 + 1 + 8 + 64 + 1;
172
+ if (data.length < baseHeaderEnd + 2) {
173
+ return -1;
174
+ }
175
+ // Read file name length (2 bytes, big-endian)
176
+ const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
177
+ const fileNameLength = view.getUint16(baseHeaderEnd, false);
178
+ const fileNameEnd = baseHeaderEnd + 2 + fileNameLength;
179
+ if (data.length < fileNameEnd + 1) {
180
+ return -1;
181
+ }
182
+ // Read MIME type length (1 byte)
183
+ const mimeTypeLength = data[fileNameEnd];
184
+ const mimeTypeEnd = fileNameEnd + 1 + mimeTypeLength;
185
+ if (data.length < mimeTypeEnd + 64) {
186
+ return -1;
187
+ }
188
+ // Signature is at the end
189
+ return mimeTypeEnd + 64;
190
+ }
191
+ catch {
192
+ return -1;
193
+ }
194
+ }
195
+ /**
196
+ * Parse message CBL header to find the end offset
197
+ */
198
+ function parseMessageHeaderEnd(data, idLength) {
199
+ try {
200
+ // Base header ends at offset where message fields start
201
+ // Prefix(4) + CreatorId(idLength) + DateCreated(8) + AddressCount(4) + TupleSize(1) +
202
+ // OriginalDataLength(8) + OriginalChecksum(64) + IsExtendedHeader(1)
203
+ const baseHeaderEnd = 4 + idLength + 8 + 4 + 1 + 8 + 64 + 1;
204
+ if (data.length < baseHeaderEnd + 2) {
205
+ return -1;
206
+ }
207
+ const view = new DataView(data.buffer, data.byteOffset, data.byteLength);
208
+ let offset = baseHeaderEnd;
209
+ // Skip message type (2-byte length + content)
210
+ const messageTypeLength = view.getUint16(offset, false);
211
+ offset += 2 + messageTypeLength;
212
+ if (data.length < offset + 2) {
213
+ return -1;
214
+ }
215
+ // Skip sender ID (2-byte length + content)
216
+ const senderIdLength = view.getUint16(offset, false);
217
+ offset += 2 + senderIdLength;
218
+ if (data.length < offset + 2) {
219
+ return -1;
220
+ }
221
+ // Skip recipients (2-byte count + variable-length entries)
222
+ const recipientCount = view.getUint16(offset, false);
223
+ offset += 2;
224
+ for (let i = 0; i < recipientCount; i++) {
225
+ if (data.length < offset + 2) {
226
+ return -1;
227
+ }
228
+ const recipientLength = view.getUint16(offset, false);
229
+ offset += 2 + recipientLength;
230
+ }
231
+ if (data.length < offset + 1) {
232
+ return -1;
233
+ }
234
+ // Skip priority (1 byte)
235
+ offset += 1;
236
+ if (data.length < offset + 1) {
237
+ return -1;
238
+ }
239
+ // Skip encryption scheme (1-byte length + content)
240
+ const encryptionSchemeLength = data[offset];
241
+ offset += 1 + encryptionSchemeLength;
242
+ if (data.length < offset + 64) {
243
+ return -1;
244
+ }
245
+ // Signature is at the end
246
+ return offset + 64;
247
+ }
248
+ catch {
249
+ return -1;
250
+ }
251
+ }
252
+ //# sourceMappingURL=blockFormatService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blockFormatService.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/blockFormatService.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;AAyCH,8CAuGC;AA9ID,0DAA+D;AAC/D,4CAAiE;AACjE,yDAAsD;AAqCtD,SAAgB,iBAAiB,CAC/B,IAAgB,EAChB,kBAA0B,EAAE;IAE5B,MAAM,QAAQ,GAAG,eAAe,CAAC;IAEjC,yCAAyC;IACzC,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO;YACL,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,qBAAS,CAAC,OAAO;YAC5B,OAAO,EAAE,CAAC;YACV,KAAK,EACH,uEAAuE;SAC1E,CAAC;IACJ,CAAC;IAED,sDAAsD;IACtD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,wBAAY,CAAC,YAAY,EAAE,CAAC;QAC1C,MAAM,mBAAmB,GAAG,IAAI,CAAC,CAAC,CAAwB,CAAC;QAC3D,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QAE3B,sBAAsB;QACtB,MAAM,UAAU,GAAG;YACjB,+BAAmB,CAAC,GAAG;YACvB,+BAAmB,CAAC,QAAQ;YAC5B,+BAAmB,CAAC,WAAW;YAC/B,+BAAmB,CAAC,UAAU;SAC/B,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC;YAC9C,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,qBAAS,CAAC,OAAO;gBAC5B,OAAO;gBACP,KAAK,EAAE,oCAAoC,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE;gBAC9F,YAAY,EAAE,IAAI;aACnB,CAAC;QACJ,CAAC;QAED,4CAA4C;QAC5C,MAAM,SAAS,GAAG,kBAAkB,CAClC,IAAI,EACJ,mBAAmB,EACnB,OAAO,EACP,QAAQ,CACT,CAAC;QACF,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;YAClB,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,wBAAwB,CAAC,mBAAmB,CAAC;gBACxD,OAAO;gBACP,KAAK,EAAE,sDAAsD;gBAC7D,YAAY,EAAE,IAAI;aACnB,CAAC;QACJ,CAAC;QAED,wEAAwE;QACxE,sDAAsD;QACtD,MAAM,aAAa,GAAG,EAAE,CAAC,CAAC,kBAAkB;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,SAAS,GAAG,aAAa,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,IAAI,sBAAU,EAAE,CAAC;QACpC,MAAM,kBAAkB,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,YAAY,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAE3C,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;YAChC,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,SAAS,EAAE,wBAAwB,CAAC,mBAAmB,CAAC;gBACxD,OAAO;gBACP,KAAK,EAAE,uDAAuD,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG;gBAC9J,YAAY,EAAE,IAAI;aACnB,CAAC;QACJ,CAAC;QAED,yBAAyB;QACzB,OAAO;YACL,OAAO,EAAE,IAAI;YACb,SAAS,EAAE,wBAAwB,CAAC,mBAAmB,CAAC;YACxD,OAAO;YACP,YAAY,EAAE,IAAI;SACnB,CAAC;IACJ,CAAC;IAED,uDAAuD;IACvD,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,iBAAK,CAAC,gBAAgB,EAAE,CAAC;QACvC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,SAAS,EAAE,qBAAS,CAAC,OAAO;YAC5B,OAAO,EAAE,CAAC;YACV,KAAK,EAAE,6DAA6D;YACpE,WAAW,EAAE,IAAI;SAClB,CAAC;IACJ,CAAC;IAED,qCAAqC;IACrC,OAAO;QACL,OAAO,EAAE,KAAK;QACd,SAAS,EAAE,qBAAS,CAAC,OAAO;QAC5B,OAAO,EAAE,CAAC;QACV,KAAK,EAAE,oEAAoE;KAC5E,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,wBAAwB,CAC/B,cAAmC;IAEnC,QAAQ,cAAc,EAAE,CAAC;QACvB,KAAK,+BAAmB,CAAC,GAAG;YAC1B,OAAO,qBAAS,CAAC,oBAAoB,CAAC;QACxC,KAAK,+BAAmB,CAAC,WAAW;YAClC,OAAO,qBAAS,CAAC,iCAAiC,CAAC;QACrD,KAAK,+BAAmB,CAAC,UAAU;YACjC,yDAAyD;YACzD,8BAA8B;YAC9B,OAAO,qBAAS,CAAC,oBAAoB,CAAC;QACxC,KAAK,+BAAmB,CAAC,QAAQ;YAC/B,mDAAmD;YACnD,8BAA8B;YAC9B,OAAO,qBAAS,CAAC,oBAAoB,CAAC;QACxC;YACE,OAAO,qBAAS,CAAC,OAAO,CAAC;IAC7B,CAAC;AACH,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,kBAAkB,CACzB,IAAgB,EAChB,SAA8B,EAC9B,OAAe,EACf,QAAgB;IAEhB,gBAAgB;IAChB,IAAI,OAAO,KAAK,wBAAY,CAAC,OAAO,EAAE,CAAC;QACrC,iDAAiD;QACjD,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,kEAAkE;IAClE,sFAAsF;IACtF,qFAAqF;IACrF,MAAM,cAAc,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;IAElE,uBAAuB;IACvB,IAAI,IAAI,CAAC,MAAM,GAAG,cAAc,EAAE,CAAC;QACjC,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;IAED,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,+BAAmB,CAAC,GAAG;YAC1B,iDAAiD;YACjD,OAAO,cAAc,CAAC;QAExB,KAAK,+BAAmB,CAAC,WAAW;YAClC,2DAA2D;YAC3D,OAAO,sBAAsB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAEhD,KAAK,+BAAmB,CAAC,UAAU;YACjC,yCAAyC;YACzC,OAAO,qBAAqB,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QAE/C,KAAK,+BAAmB,CAAC,QAAQ;YAC/B,4BAA4B;YAC5B,2FAA2F;YAC3F,0EAA0E;YAC1E,OAAO,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;QAEpD;YACE,OAAO,CAAC,CAAC,CAAC;IACd,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,sBAAsB,CAAC,IAAgB,EAAE,QAAgB;IAChE,IAAI,CAAC;QACH,4EAA4E;QAC5E,sFAAsF;QACtF,qEAAqE;QACrE,MAAM,aAAa,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAE5D,IAAI,IAAI,CAAC,MAAM,GAAG,aAAa,GAAG,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;QAED,8CAA8C;QAC9C,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACzE,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;QAE5D,MAAM,WAAW,GAAG,aAAa,GAAG,CAAC,GAAG,cAAc,CAAC;QACvD,IAAI,IAAI,CAAC,MAAM,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC;YAClC,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;QAED,iCAAiC;QACjC,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QAEzC,MAAM,WAAW,GAAG,WAAW,GAAG,CAAC,GAAG,cAAc,CAAC;QACrD,IAAI,IAAI,CAAC,MAAM,GAAG,WAAW,GAAG,EAAE,EAAE,CAAC;YACnC,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;QAED,0BAA0B;QAC1B,OAAO,WAAW,GAAG,EAAE,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,qBAAqB,CAAC,IAAgB,EAAE,QAAgB;IAC/D,IAAI,CAAC;QACH,wDAAwD;QACxD,sFAAsF;QACtF,qEAAqE;QACrE,MAAM,aAAa,GAAG,CAAC,GAAG,QAAQ,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAE5D,IAAI,IAAI,CAAC,MAAM,GAAG,aAAa,GAAG,CAAC,EAAE,CAAC;YACpC,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QACzE,IAAI,MAAM,GAAG,aAAa,CAAC;QAE3B,8CAA8C;QAC9C,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACxD,MAAM,IAAI,CAAC,GAAG,iBAAiB,CAAC;QAEhC,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;QAED,2CAA2C;QAC3C,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrD,MAAM,IAAI,CAAC,GAAG,cAAc,CAAC;QAE7B,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;QAED,2DAA2D;QAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACrD,MAAM,IAAI,CAAC,CAAC;QAEZ,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC;YACxC,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC7B,OAAO,CAAC,CAAC,CAAC;YACZ,CAAC;YACD,MAAM,eAAe,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;YACtD,MAAM,IAAI,CAAC,GAAG,eAAe,CAAC;QAChC,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;QAED,yBAAyB;QACzB,MAAM,IAAI,CAAC,CAAC;QAEZ,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;QAED,mDAAmD;QACnD,MAAM,sBAAsB,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,IAAI,CAAC,GAAG,sBAAsB,CAAC;QAErC,IAAI,IAAI,CAAC,MAAM,GAAG,MAAM,GAAG,EAAE,EAAE,CAAC;YAC9B,OAAO,CAAC,CAAC,CAAC;QACZ,CAAC;QAED,0BAA0B;QAC1B,OAAO,MAAM,GAAG,EAAE,CAAC;IACrB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,CAAC,CAAC,CAAC;IACZ,CAAC;AACH,CAAC"}
@@ -10,12 +10,18 @@ import { BlockSize } from '../enumerations/blockSize';
10
10
  import { BlockType } from '../enumerations/blockType';
11
11
  import { IEncryptedBlock } from '../interfaces/blocks/encrypted';
12
12
  import { IEphemeralBlock } from '../interfaces/blocks/ephemeral';
13
+ import { LogLevel } from '../logging/blockLogger';
13
14
  import { IUniversalBlockStore } from '../interfaces/storage/universalBlockStore';
14
15
  /**
15
16
  * Browser-compatible BlockService with core functionality
16
17
  */
17
18
  export declare class BlockService<TID extends PlatformID = Uint8Array> {
18
19
  private static blockStore;
20
+ /**
21
+ * Configure the block logger level.
22
+ * @param level - The minimum log level to emit
23
+ */
24
+ static setLogLevel(level: LogLevel): void;
19
25
  static initialize(blockStore: IUniversalBlockStore): void;
20
26
  /**
21
27
  * Determine the block type from the first byte of the block data
@@ -1 +1 @@
1
- {"version":3,"file":"blockService.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/blockService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blockService.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/blockService.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,6 @@ exports.BlockService = void 0;
5
5
  const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
6
6
  const cbl_1 = require("../blocks/cbl");
7
7
  const encrypted_1 = require("../blocks/encrypted");
8
- const encryptedBlockCreator_1 = require("../blocks/encryptedBlockCreator");
9
8
  const ephemeral_1 = require("../blocks/ephemeral");
10
9
  const extendedCbl_1 = require("../blocks/extendedCbl");
11
10
  const random_1 = require("../blocks/random");
@@ -21,13 +20,21 @@ const eciesErrorType_1 = require("../enumerations/eciesErrorType");
21
20
  const block_1 = require("../errors/block");
22
21
  const blockServiceError_1 = require("../errors/blockServiceError");
23
22
  const eciesError_1 = require("../errors/eciesError");
24
- const serviceLocator_1 = require("../services/serviceLocator");
23
+ const blockLogger_1 = require("../logging/blockLogger");
24
+ const globalServiceProvider_1 = require("../services/globalServiceProvider");
25
25
  const validator_1 = require("../utils/validator");
26
26
  const xor_1 = require("./xor");
27
27
  /**
28
28
  * Browser-compatible BlockService with core functionality
29
29
  */
30
30
  class BlockService {
31
+ /**
32
+ * Configure the block logger level.
33
+ * @param level - The minimum log level to emit
34
+ */
35
+ static setLogLevel(level) {
36
+ blockLogger_1.blockLogger.setLevel(level);
37
+ }
31
38
  static initialize(blockStore) {
32
39
  BlockService.blockStore = blockStore;
33
40
  }
@@ -128,19 +135,52 @@ class BlockService {
128
135
  else if (!block.creator) {
129
136
  throw new block_1.BlockError(blockErrorType_1.BlockErrorType.CreatorRequired);
130
137
  }
138
+ // Log encryption start (never log sensitive data like keys or plaintext)
139
+ blockLogger_1.blockLogger.debug('encrypt', {
140
+ blockType: blockType_1.BlockType[newBlockType],
141
+ blockSize: block.blockSize,
142
+ recipientCount: 1,
143
+ });
131
144
  try {
132
- const encryptedArray = await serviceLocator_1.ServiceLocator.getServiceProvider().eciesService.encrypt(ecies_lib_1.EciesEncryptionTypeEnum.WithLength, (recipient ?? block.creator), block.data);
145
+ const recipientMember = recipient ?? block.creator;
146
+ const recipientPublicKey = recipientMember?.publicKey;
147
+ if (!recipientPublicKey || !recipientMember) {
148
+ throw new block_1.BlockError(blockErrorType_1.BlockErrorType.RecipientKeyRequired);
149
+ }
150
+ // Only encrypt the actual data, not the padding
151
+ // This aligns with canEncrypt() which checks lengthBeforeEncryption + overhead <= capacity
152
+ const dataToEncrypt = block.data.subarray(0, block.lengthBeforeEncryption);
153
+ const encryptedArray = await (0, globalServiceProvider_1.getGlobalServiceProvider)().eciesService.encrypt(ecies_lib_1.EciesEncryptionTypeEnum.WithLength, recipientPublicKey, dataToEncrypt);
154
+ // Get the recipient ID bytes for the header
155
+ const idProvider = (0, globalServiceProvider_1.getGlobalServiceProvider)().idProvider;
156
+ const recipientIdBytes = recipientMember.idBytes;
133
157
  // Create padded buffer filled with random data
134
158
  const finalBuffer = this.generateRandomData(block.blockSize);
135
159
  // Write the block type to the first byte
136
160
  finalBuffer[0] = blockEncryptionType_1.BlockEncryptionType.SingleRecipient;
137
- // Copy ECIES data after the block type byte
138
- finalBuffer.set(encryptedArray, ecies_lib_1.ECIES.ENCRYPTION_TYPE_SIZE);
139
- const checksum = serviceLocator_1.ServiceLocator.getServiceProvider().checksumService.calculateChecksum(finalBuffer);
140
- const result = await encryptedBlockCreator_1.EncryptedBlockCreator.create(newBlockType, blockDataType_1.BlockDataType.EncryptedData, block.blockSize, finalBuffer, checksum, recipient ?? block.creator, block.dateCreated, block.data.length);
161
+ // Write the recipient ID after the encryption type byte
162
+ finalBuffer.set(recipientIdBytes, ecies_lib_1.ECIES.ENCRYPTION_TYPE_SIZE);
163
+ // Copy ECIES data after the recipient ID
164
+ const eciesDataOffset = ecies_lib_1.ECIES.ENCRYPTION_TYPE_SIZE + idProvider.byteLength;
165
+ finalBuffer.set(encryptedArray, eciesDataOffset);
166
+ const checksum = (0, globalServiceProvider_1.getGlobalServiceProvider)().checksumService.calculateChecksum(finalBuffer);
167
+ const result = await encrypted_1.EncryptedBlock.from(newBlockType, blockDataType_1.BlockDataType.EncryptedData, block.blockSize, finalBuffer, checksum, recipientMember, block.dateCreated, block.lengthBeforeEncryption);
168
+ // Log encryption success
169
+ blockLogger_1.blockLogger.info('encrypt', {
170
+ blockId: checksum.toHex(),
171
+ blockType: blockType_1.BlockType[newBlockType],
172
+ recipientCount: 1,
173
+ success: true,
174
+ });
141
175
  return result;
142
176
  }
143
177
  catch (error) {
178
+ // Log encryption failure (never log sensitive data)
179
+ blockLogger_1.blockLogger.error('encrypt', error instanceof Error ? error : new Error(String(error)), {
180
+ blockType: blockType_1.BlockType[newBlockType],
181
+ recipientCount: 1,
182
+ success: false,
183
+ });
144
184
  // Wrap ECIES errors with context
145
185
  if (error instanceof eciesError_1.EciesError) {
146
186
  throw error;
@@ -173,13 +213,31 @@ class BlockService {
173
213
  if (!creator.privateKey) {
174
214
  throw new block_1.BlockError(blockErrorType_1.BlockErrorType.CreatorPrivateKeyRequired);
175
215
  }
216
+ // Log decryption start (never log sensitive data like keys or plaintext)
217
+ blockLogger_1.blockLogger.debug('decrypt', {
218
+ blockId: block.idChecksum.toHex(),
219
+ blockType: blockType_1.BlockType[block.blockType],
220
+ blockSize: block.blockSize,
221
+ });
176
222
  try {
177
- const decryptedArray = await serviceLocator_1.ServiceLocator.getServiceProvider().eciesService.decryptWithLengthAndHeader(creator.privateKey.idUint8Array, block.layerPayload);
178
- const checksum = serviceLocator_1.ServiceLocator.getServiceProvider().checksumService.calculateChecksum(decryptedArray);
179
- const result = await encryptedBlockCreator_1.EncryptedBlockCreator.create(newBlockType, blockDataType_1.BlockDataType.EphemeralStructuredData, block.blockSize, decryptedArray, checksum, creator, block.dateCreated, block.layerPayloadSize);
223
+ const decryptedArray = await (0, globalServiceProvider_1.getGlobalServiceProvider)().eciesService.decryptWithLengthAndHeader(creator.privateKey.idUint8Array, block.layerPayload);
224
+ const checksum = (0, globalServiceProvider_1.getGlobalServiceProvider)().checksumService.calculateChecksum(decryptedArray);
225
+ const result = await ephemeral_1.EphemeralBlock.from(newBlockType, blockDataType_1.BlockDataType.EphemeralStructuredData, block.blockSize, decryptedArray, checksum, creator, block.dateCreated, block.layerPayloadSize);
226
+ // Log decryption success
227
+ blockLogger_1.blockLogger.info('decrypt', {
228
+ blockId: block.idChecksum.toHex(),
229
+ blockType: blockType_1.BlockType[block.blockType],
230
+ success: true,
231
+ });
180
232
  return result;
181
233
  }
182
234
  catch (error) {
235
+ // Log decryption failure (never log sensitive data)
236
+ blockLogger_1.blockLogger.error('decrypt', error instanceof Error ? error : new Error(String(error)), {
237
+ blockId: block.idChecksum.toHex(),
238
+ blockType: blockType_1.BlockType[block.blockType],
239
+ success: false,
240
+ });
183
241
  // Wrap ECIES errors with context
184
242
  if (error instanceof eciesError_1.EciesError) {
185
243
  throw error;
@@ -200,17 +258,41 @@ class BlockService {
200
258
  if (!recipient.privateKey) {
201
259
  throw new eciesError_1.EciesError(eciesErrorType_1.EciesErrorType.PrivateKeyNotLoaded);
202
260
  }
203
- const multiEncryptionHeader = serviceLocator_1.ServiceLocator.getServiceProvider().eciesService.parseMultiEncryptedHeader(block.data);
204
- // Encrypted message overhead is IV + AuthTag
205
- const encryptedMessageOverhead = ecies_lib_1.ECIES.IV_SIZE + ecies_lib_1.ECIES.AUTH_TAG_SIZE;
206
- const decryptedData = await serviceLocator_1.ServiceLocator.getServiceProvider().eciesService.decryptMultipleECIEForRecipient({
207
- ...multiEncryptionHeader,
208
- encryptedMessage: block.data.subarray(multiEncryptionHeader.headerSize, multiEncryptionHeader.headerSize +
209
- multiEncryptionHeader.dataLength +
210
- encryptedMessageOverhead),
211
- }, recipient);
212
- const checksum = serviceLocator_1.ServiceLocator.getServiceProvider().checksumService.calculateChecksum(decryptedData);
213
- return ephemeral_1.EphemeralBlock.from(blockType_1.BlockType.EphemeralOwnedDataBlock, blockDataType_1.BlockDataType.EphemeralStructuredData, block.blockSize, decryptedData, checksum, recipient, block.dateCreated, multiEncryptionHeader.dataLength);
261
+ // Log multi-decryption start (never log sensitive data like keys or plaintext)
262
+ blockLogger_1.blockLogger.debug('decryptMultiple', {
263
+ blockId: block.idChecksum.toHex(),
264
+ blockType: blockType_1.BlockType[block.blockType],
265
+ blockSize: block.blockSize,
266
+ });
267
+ try {
268
+ const multiEncryptionHeader = (0, globalServiceProvider_1.getGlobalServiceProvider)().eciesService.parseMultiEncryptedHeader(block.data);
269
+ // Encrypted message overhead is IV + AuthTag
270
+ const encryptedMessageOverhead = ecies_lib_1.ECIES.IV_SIZE + ecies_lib_1.ECIES.AUTH_TAG_SIZE;
271
+ const decryptedData = await (0, globalServiceProvider_1.getGlobalServiceProvider)().eciesService.decryptMultipleECIEForRecipient({
272
+ ...multiEncryptionHeader,
273
+ encryptedMessage: block.data.subarray(multiEncryptionHeader.headerSize, multiEncryptionHeader.headerSize +
274
+ multiEncryptionHeader.dataLength +
275
+ encryptedMessageOverhead),
276
+ }, recipient);
277
+ const checksum = (0, globalServiceProvider_1.getGlobalServiceProvider)().checksumService.calculateChecksum(decryptedData);
278
+ const result = await ephemeral_1.EphemeralBlock.from(blockType_1.BlockType.EphemeralOwnedDataBlock, blockDataType_1.BlockDataType.EphemeralStructuredData, block.blockSize, decryptedData, checksum, recipient, block.dateCreated, multiEncryptionHeader.dataLength);
279
+ // Log multi-decryption success
280
+ blockLogger_1.blockLogger.info('decryptMultiple', {
281
+ blockId: block.idChecksum.toHex(),
282
+ blockType: blockType_1.BlockType[block.blockType],
283
+ success: true,
284
+ });
285
+ return result;
286
+ }
287
+ catch (error) {
288
+ // Log multi-decryption failure (never log sensitive data)
289
+ blockLogger_1.blockLogger.error('decryptMultiple', error instanceof Error ? error : new Error(String(error)), {
290
+ blockId: block.idChecksum.toHex(),
291
+ blockType: blockType_1.BlockType[block.blockType],
292
+ success: false,
293
+ });
294
+ throw error;
295
+ }
214
296
  }
215
297
  /**
216
298
  * Encrypt a block for multiple recipients using ECIES
@@ -239,9 +321,15 @@ class BlockService {
239
321
  else if (!block.creator) {
240
322
  throw new block_1.BlockError(blockErrorType_1.BlockErrorType.CreatorRequired);
241
323
  }
324
+ // Log multi-encryption start (never log sensitive data like keys or plaintext)
325
+ blockLogger_1.blockLogger.debug('encryptMultiple', {
326
+ blockType: blockType_1.BlockType[newBlockType],
327
+ blockSize: block.blockSize,
328
+ recipientCount: recipients.length,
329
+ });
242
330
  try {
243
- const encryptedMessageDetails = await serviceLocator_1.ServiceLocator.getServiceProvider().eciesService.encryptMultiple(recipients, block.data);
244
- const header = serviceLocator_1.ServiceLocator.getServiceProvider().eciesService.buildECIESMultipleRecipientHeader(encryptedMessageDetails);
331
+ const encryptedMessageDetails = await (0, globalServiceProvider_1.getGlobalServiceProvider)().eciesService.encryptMultiple(recipients, block.data);
332
+ const header = (0, globalServiceProvider_1.getGlobalServiceProvider)().eciesService.buildECIESMultipleRecipientHeader(encryptedMessageDetails);
245
333
  const paddingSize = block.blockSize -
246
334
  header.length -
247
335
  encryptedMessageDetails.encryptedMessage.length;
@@ -251,10 +339,24 @@ class BlockService {
251
339
  ...encryptedMessageDetails.encryptedMessage,
252
340
  ...padding,
253
341
  ]);
254
- const checksum = serviceLocator_1.ServiceLocator.getServiceProvider().checksumService.calculateChecksum(data);
255
- return Promise.resolve(await encrypted_1.EncryptedBlock.from(newBlockType, blockDataType_1.BlockDataType.EncryptedData, block.blockSize, data, checksum, block.creator, block.dateCreated, block.lengthBeforeEncryption, true, false));
342
+ const checksum = (0, globalServiceProvider_1.getGlobalServiceProvider)().checksumService.calculateChecksum(data);
343
+ const result = await encrypted_1.EncryptedBlock.from(newBlockType, blockDataType_1.BlockDataType.EncryptedData, block.blockSize, data, checksum, block.creator, block.dateCreated, block.lengthBeforeEncryption, true, false);
344
+ // Log multi-encryption success
345
+ blockLogger_1.blockLogger.info('encryptMultiple', {
346
+ blockId: checksum.toHex(),
347
+ blockType: blockType_1.BlockType[newBlockType],
348
+ recipientCount: recipients.length,
349
+ success: true,
350
+ });
351
+ return Promise.resolve(result);
256
352
  }
257
353
  catch (error) {
354
+ // Log multi-encryption failure (never log sensitive data)
355
+ blockLogger_1.blockLogger.error('encryptMultiple', error instanceof Error ? error : new Error(String(error)), {
356
+ blockType: blockType_1.BlockType[newBlockType],
357
+ recipientCount: recipients.length,
358
+ success: false,
359
+ });
258
360
  // Wrap ECIES errors with context
259
361
  if (error instanceof eciesError_1.EciesError) {
260
362
  throw error;
@@ -353,7 +455,7 @@ class BlockService {
353
455
  blockIdsArray.set(id.toUint8Array(), offset);
354
456
  offset += id.toUint8Array().length;
355
457
  }
356
- const header = serviceLocator_1.ServiceLocator.getServiceProvider().cblService.makeCblHeader(creator, dateCreated, blockIDs.length, fileData.length, blockIdsArray, blockSize, blockEncryptionType_1.BlockEncryptionType.None, createECBL && fileName
458
+ const header = (0, globalServiceProvider_1.getGlobalServiceProvider)().cblService.makeCblHeader(creator, dateCreated, blockIDs.length, fileData.length, blockIdsArray, blockSize, blockEncryptionType_1.BlockEncryptionType.None, createECBL && fileName
357
459
  ? { fileName, mimeType: 'application/octet-stream' }
358
460
  : undefined);
359
461
  const data = new Uint8Array(header.headerData.length + blockIdsArray.length);
@@ -385,7 +487,7 @@ class BlockService {
385
487
  offset += id.toUint8Array().length;
386
488
  }
387
489
  // Create CBL header
388
- const header = serviceLocator_1.ServiceLocator.getServiceProvider().cblService.makeCblHeader(creator, new Date(), blockIDs.length, originalDataLength, blockIdsArray, blockSize_1.BlockSize.Message, // CBL uses Message size
490
+ const header = (0, globalServiceProvider_1.getGlobalServiceProvider)().cblService.makeCblHeader(creator, new Date(), blockIDs.length, originalDataLength, blockIdsArray, blockSize_1.BlockSize.Message, // CBL uses Message size
389
491
  blockEncryptionType_1.BlockEncryptionType.None);
390
492
  // Pad data to block size
391
493
  const blockSizeBytes = blockSize_1.BlockSize.Message;
@@ -431,7 +533,7 @@ class BlockService {
431
533
  dataSlice = padded;
432
534
  }
433
535
  if (encrypt && recipient) {
434
- const encryptedData = await serviceLocator_1.ServiceLocator.getServiceProvider().eciesService.encrypt(ecies_lib_1.EciesEncryptionTypeEnum.WithLength, recipient, dataSlice);
536
+ const encryptedData = await (0, globalServiceProvider_1.getGlobalServiceProvider)().eciesService.encrypt(ecies_lib_1.EciesEncryptionTypeEnum.WithLength, recipient, dataSlice);
435
537
  chunkDatas.push(new Uint8Array(encryptedData));
436
538
  }
437
539
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"blockService.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/blockService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blockService.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/services/blockService.ts"],"names":[],"mappings":"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"}