@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,218 @@
1
+ /**
2
+ * Block Logger Module
3
+ *
4
+ * Provides structured logging for block operations in BrightChain.
5
+ * Supports configurable log levels and JSON-formatted output.
6
+ *
7
+ * @module logging/blockLogger
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { BlockLogger, LogLevel } from 'brightchain-lib';
12
+ *
13
+ * const logger = new BlockLogger();
14
+ * logger.setLevel(LogLevel.DEBUG);
15
+ *
16
+ * logger.info('encrypt', { blockId: '0x123...', blockType: 'EncryptedBlock' });
17
+ * logger.error('decrypt', new Error('Decryption failed'), { blockId: '0x456...' });
18
+ * ```
19
+ *
20
+ * @see Requirements 8.1, 8.2, 8.3, 8.4, 8.5, 8.6
21
+ */
22
+ /**
23
+ * Log levels for block operations.
24
+ * Ordered from most verbose (DEBUG) to least verbose (ERROR).
25
+ */
26
+ export declare enum LogLevel {
27
+ DEBUG = "debug",
28
+ INFO = "info",
29
+ WARN = "warn",
30
+ ERROR = "error"
31
+ }
32
+ /**
33
+ * Structured log entry for block operations.
34
+ * All entries are JSON-serializable for machine parsing.
35
+ *
36
+ * @see Requirement 8.4 - Structured JSON format
37
+ */
38
+ export interface BlockLogEntry {
39
+ /** ISO 8601 timestamp of the log entry */
40
+ timestamp: string;
41
+ /** Log level (debug, info, warn, error) */
42
+ level: LogLevel;
43
+ /** Operation being performed (e.g., 'encrypt', 'decrypt', 'validate') */
44
+ operation: string;
45
+ /** Block ID (hex-encoded checksum) - not sensitive */
46
+ blockId?: string;
47
+ /** Block type name */
48
+ blockType?: string;
49
+ /** Additional metadata (never contains sensitive data) */
50
+ metadata?: Record<string, unknown>;
51
+ /** Error information if applicable */
52
+ error?: {
53
+ /** Error class name */
54
+ type: string;
55
+ /** Error message (sanitized) */
56
+ message: string;
57
+ };
58
+ }
59
+ /**
60
+ * Interface for block logging operations.
61
+ * Implementations must ensure sensitive data is never logged.
62
+ *
63
+ * @see Requirement 8.6 - No sensitive data in logs
64
+ */
65
+ export interface IBlockLogger {
66
+ /**
67
+ * Log a debug-level message.
68
+ * @param operation - The operation being performed
69
+ * @param metadata - Optional metadata (must not contain sensitive data)
70
+ */
71
+ debug(operation: string, metadata?: Record<string, unknown>): void;
72
+ /**
73
+ * Log an info-level message.
74
+ * @param operation - The operation being performed
75
+ * @param metadata - Optional metadata (must not contain sensitive data)
76
+ */
77
+ info(operation: string, metadata?: Record<string, unknown>): void;
78
+ /**
79
+ * Log a warning-level message.
80
+ * @param operation - The operation being performed
81
+ * @param metadata - Optional metadata (must not contain sensitive data)
82
+ */
83
+ warn(operation: string, metadata?: Record<string, unknown>): void;
84
+ /**
85
+ * Log an error-level message.
86
+ * @param operation - The operation being performed
87
+ * @param error - The error that occurred
88
+ * @param metadata - Optional metadata (must not contain sensitive data)
89
+ */
90
+ error(operation: string, error: Error, metadata?: Record<string, unknown>): void;
91
+ /**
92
+ * Set the minimum log level.
93
+ * Messages below this level will be suppressed.
94
+ * @param level - The minimum log level to emit
95
+ */
96
+ setLevel(level: LogLevel): void;
97
+ /**
98
+ * Get the current log level.
99
+ * @returns The current minimum log level
100
+ */
101
+ getLevel(): LogLevel;
102
+ }
103
+ /**
104
+ * BlockLogger implementation with configurable output and log levels.
105
+ *
106
+ * Features:
107
+ * - Structured JSON log entries
108
+ * - Configurable log levels with filtering
109
+ * - Automatic sensitive data sanitization
110
+ * - Configurable output destination
111
+ *
112
+ * @see Requirements 8.4, 8.5, 8.6
113
+ *
114
+ * @example
115
+ * ```typescript
116
+ * // Create logger with custom output
117
+ * const entries: BlockLogEntry[] = [];
118
+ * const logger = new BlockLogger((entry) => entries.push(entry));
119
+ *
120
+ * // Set log level
121
+ * logger.setLevel(LogLevel.WARN);
122
+ *
123
+ * // These will be suppressed
124
+ * logger.debug('operation', { detail: 'value' });
125
+ * logger.info('operation', { detail: 'value' });
126
+ *
127
+ * // These will be logged
128
+ * logger.warn('operation', { detail: 'value' });
129
+ * logger.error('operation', new Error('Failed'), { detail: 'value' });
130
+ * ```
131
+ */
132
+ export declare class BlockLogger implements IBlockLogger {
133
+ private level;
134
+ private output;
135
+ private _silent;
136
+ /**
137
+ * Create a new BlockLogger.
138
+ * @param output - Optional custom output function. Defaults to console output.
139
+ */
140
+ constructor(output?: (entry: BlockLogEntry) => void);
141
+ /**
142
+ * Enable or disable all output (useful for tests)
143
+ */
144
+ set silent(value: boolean);
145
+ get silent(): boolean;
146
+ /**
147
+ * Set the minimum log level.
148
+ * @param level - The minimum log level to emit
149
+ */
150
+ setLevel(level: LogLevel): void;
151
+ /**
152
+ * Get the current log level.
153
+ * @returns The current minimum log level
154
+ */
155
+ getLevel(): LogLevel;
156
+ /**
157
+ * Check if a log level should be emitted based on current level setting.
158
+ * @param level - The level to check
159
+ * @returns true if the level should be emitted
160
+ */
161
+ private shouldLog;
162
+ /**
163
+ * Create a log entry with common fields.
164
+ * @param level - The log level
165
+ * @param operation - The operation being performed
166
+ * @param metadata - Optional metadata
167
+ * @returns The log entry
168
+ */
169
+ private createEntry;
170
+ /**
171
+ * Emit a log entry if the level is enabled.
172
+ * @param entry - The log entry to emit
173
+ */
174
+ private emit;
175
+ /**
176
+ * Log a debug-level message.
177
+ * @param operation - The operation being performed
178
+ * @param metadata - Optional metadata (must not contain sensitive data)
179
+ */
180
+ debug(operation: string, metadata?: Record<string, unknown>): void;
181
+ /**
182
+ * Log an info-level message.
183
+ * @param operation - The operation being performed
184
+ * @param metadata - Optional metadata (must not contain sensitive data)
185
+ */
186
+ info(operation: string, metadata?: Record<string, unknown>): void;
187
+ /**
188
+ * Log a warning-level message.
189
+ * @param operation - The operation being performed
190
+ * @param metadata - Optional metadata (must not contain sensitive data)
191
+ */
192
+ warn(operation: string, metadata?: Record<string, unknown>): void;
193
+ /**
194
+ * Log an error-level message.
195
+ * @param operation - The operation being performed
196
+ * @param error - The error that occurred
197
+ * @param metadata - Optional metadata (must not contain sensitive data)
198
+ */
199
+ error(operation: string, error: Error, metadata?: Record<string, unknown>): void;
200
+ }
201
+ /**
202
+ * Global block logger instance.
203
+ * Can be used directly or replaced with a custom logger.
204
+ */
205
+ export declare const blockLogger: BlockLogger;
206
+ /**
207
+ * Log a validation failure with error type and metadata.
208
+ * This is a convenience function for block validation operations.
209
+ *
210
+ * @param blockId - The block ID (hex-encoded checksum)
211
+ * @param blockType - The block type name
212
+ * @param error - The validation error
213
+ * @param metadata - Optional additional metadata
214
+ *
215
+ * @see Requirement 8.3 - Validation failure logging
216
+ */
217
+ export declare function logValidationFailure(blockId: string | undefined, blockType: string | undefined, error: Error, metadata?: Record<string, unknown>): void;
218
+ //# sourceMappingURL=blockLogger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blockLogger.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/logging/blockLogger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,341 @@
1
+ "use strict";
2
+ /**
3
+ * Block Logger Module
4
+ *
5
+ * Provides structured logging for block operations in BrightChain.
6
+ * Supports configurable log levels and JSON-formatted output.
7
+ *
8
+ * @module logging/blockLogger
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * import { BlockLogger, LogLevel } from 'brightchain-lib';
13
+ *
14
+ * const logger = new BlockLogger();
15
+ * logger.setLevel(LogLevel.DEBUG);
16
+ *
17
+ * logger.info('encrypt', { blockId: '0x123...', blockType: 'EncryptedBlock' });
18
+ * logger.error('decrypt', new Error('Decryption failed'), { blockId: '0x456...' });
19
+ * ```
20
+ *
21
+ * @see Requirements 8.1, 8.2, 8.3, 8.4, 8.5, 8.6
22
+ */
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ exports.blockLogger = exports.BlockLogger = exports.LogLevel = void 0;
25
+ exports.logValidationFailure = logValidationFailure;
26
+ /**
27
+ * Log levels for block operations.
28
+ * Ordered from most verbose (DEBUG) to least verbose (ERROR).
29
+ */
30
+ var LogLevel;
31
+ (function (LogLevel) {
32
+ LogLevel["DEBUG"] = "debug";
33
+ LogLevel["INFO"] = "info";
34
+ LogLevel["WARN"] = "warn";
35
+ LogLevel["ERROR"] = "error";
36
+ })(LogLevel || (exports.LogLevel = LogLevel = {}));
37
+ /**
38
+ * Numeric priority for log levels (higher = more severe).
39
+ * Used for log level filtering.
40
+ */
41
+ const LOG_LEVEL_PRIORITY = {
42
+ [LogLevel.DEBUG]: 0,
43
+ [LogLevel.INFO]: 1,
44
+ [LogLevel.WARN]: 2,
45
+ [LogLevel.ERROR]: 3,
46
+ };
47
+ /**
48
+ * Default output function that writes to console.
49
+ * @param entry - The log entry to output
50
+ */
51
+ function defaultOutput(entry) {
52
+ const json = JSON.stringify(entry);
53
+ switch (entry.level) {
54
+ case LogLevel.DEBUG:
55
+ console.debug(json);
56
+ break;
57
+ case LogLevel.INFO:
58
+ console.info(json);
59
+ break;
60
+ case LogLevel.WARN:
61
+ console.warn(json);
62
+ break;
63
+ case LogLevel.ERROR:
64
+ console.error(json);
65
+ break;
66
+ }
67
+ }
68
+ /**
69
+ * Patterns that indicate sensitive data that should never be logged.
70
+ * Used to sanitize metadata before logging.
71
+ */
72
+ const SENSITIVE_PATTERNS = [
73
+ /privateKey/i,
74
+ /secretKey/i,
75
+ /password/i,
76
+ /secret/i,
77
+ /credential/i,
78
+ /token/i,
79
+ /apiKey/i,
80
+ /encryptionKey/i,
81
+ /decryptionKey/i,
82
+ /plaintext/i,
83
+ /cleartext/i,
84
+ ];
85
+ /**
86
+ * Check if a key name indicates sensitive data.
87
+ * @param key - The key name to check
88
+ * @returns true if the key indicates sensitive data
89
+ */
90
+ function isSensitiveKey(key) {
91
+ return SENSITIVE_PATTERNS.some((pattern) => pattern.test(key));
92
+ }
93
+ /**
94
+ * Check if a value looks like a private key (long hex string in key-related context).
95
+ * @param value - The value to check
96
+ * @param key - Optional key name to check for safe fields
97
+ * @returns true if the value looks like a private key
98
+ */
99
+ function looksLikePrivateKey(value, key) {
100
+ if (typeof value !== 'string') {
101
+ return false;
102
+ }
103
+ // Known safe fields that may contain long hex strings (like checksums/block IDs)
104
+ const safeHexFields = ['blockId', 'checksum', 'id', 'hash', 'signature'];
105
+ if (key &&
106
+ safeHexFields.some((safe) => key.toLowerCase().includes(safe.toLowerCase()))) {
107
+ return false;
108
+ }
109
+ // Private keys are typically 64+ hex characters
110
+ return /^(0x)?[0-9a-fA-F]{64,}$/.test(value);
111
+ }
112
+ /**
113
+ * Sanitize metadata to remove any sensitive data.
114
+ * @param metadata - The metadata to sanitize
115
+ * @returns Sanitized metadata safe for logging
116
+ */
117
+ function sanitizeMetadata(metadata) {
118
+ if (!metadata) {
119
+ return undefined;
120
+ }
121
+ const sanitized = {};
122
+ for (const [key, value] of Object.entries(metadata)) {
123
+ // Skip sensitive keys entirely
124
+ if (isSensitiveKey(key)) {
125
+ sanitized[key] = '[REDACTED]';
126
+ continue;
127
+ }
128
+ // Check for values that look like private keys (pass key for context)
129
+ if (looksLikePrivateKey(value, key)) {
130
+ sanitized[key] = '[REDACTED]';
131
+ continue;
132
+ }
133
+ // Recursively sanitize nested objects
134
+ if (value !== null && typeof value === 'object' && !Array.isArray(value)) {
135
+ sanitized[key] = sanitizeMetadata(value);
136
+ }
137
+ else if (Array.isArray(value)) {
138
+ // Sanitize array elements
139
+ sanitized[key] = value.map((item) => {
140
+ if (looksLikePrivateKey(item)) {
141
+ return '[REDACTED]';
142
+ }
143
+ if (item !== null && typeof item === 'object') {
144
+ return sanitizeMetadata(item);
145
+ }
146
+ return item;
147
+ });
148
+ }
149
+ else {
150
+ sanitized[key] = value;
151
+ }
152
+ }
153
+ return sanitized;
154
+ }
155
+ /**
156
+ * BlockLogger implementation with configurable output and log levels.
157
+ *
158
+ * Features:
159
+ * - Structured JSON log entries
160
+ * - Configurable log levels with filtering
161
+ * - Automatic sensitive data sanitization
162
+ * - Configurable output destination
163
+ *
164
+ * @see Requirements 8.4, 8.5, 8.6
165
+ *
166
+ * @example
167
+ * ```typescript
168
+ * // Create logger with custom output
169
+ * const entries: BlockLogEntry[] = [];
170
+ * const logger = new BlockLogger((entry) => entries.push(entry));
171
+ *
172
+ * // Set log level
173
+ * logger.setLevel(LogLevel.WARN);
174
+ *
175
+ * // These will be suppressed
176
+ * logger.debug('operation', { detail: 'value' });
177
+ * logger.info('operation', { detail: 'value' });
178
+ *
179
+ * // These will be logged
180
+ * logger.warn('operation', { detail: 'value' });
181
+ * logger.error('operation', new Error('Failed'), { detail: 'value' });
182
+ * ```
183
+ */
184
+ class BlockLogger {
185
+ /**
186
+ * Create a new BlockLogger.
187
+ * @param output - Optional custom output function. Defaults to console output.
188
+ */
189
+ constructor(output) {
190
+ this.level = LogLevel.INFO;
191
+ this._silent = false;
192
+ this.output = output ?? defaultOutput;
193
+ }
194
+ /**
195
+ * Enable or disable all output (useful for tests)
196
+ */
197
+ set silent(value) {
198
+ this._silent = value;
199
+ }
200
+ get silent() {
201
+ return this._silent;
202
+ }
203
+ /**
204
+ * Set the minimum log level.
205
+ * @param level - The minimum log level to emit
206
+ */
207
+ setLevel(level) {
208
+ this.level = level;
209
+ }
210
+ /**
211
+ * Get the current log level.
212
+ * @returns The current minimum log level
213
+ */
214
+ getLevel() {
215
+ return this.level;
216
+ }
217
+ /**
218
+ * Check if a log level should be emitted based on current level setting.
219
+ * @param level - The level to check
220
+ * @returns true if the level should be emitted
221
+ */
222
+ shouldLog(level) {
223
+ return LOG_LEVEL_PRIORITY[level] >= LOG_LEVEL_PRIORITY[this.level];
224
+ }
225
+ /**
226
+ * Create a log entry with common fields.
227
+ * @param level - The log level
228
+ * @param operation - The operation being performed
229
+ * @param metadata - Optional metadata
230
+ * @returns The log entry
231
+ */
232
+ createEntry(level, operation, metadata) {
233
+ const sanitizedMetadata = sanitizeMetadata(metadata);
234
+ const entry = {
235
+ timestamp: new Date().toISOString(),
236
+ level,
237
+ operation,
238
+ };
239
+ // Extract blockId and blockType from metadata if present
240
+ if (sanitizedMetadata) {
241
+ if (typeof sanitizedMetadata['blockId'] === 'string') {
242
+ entry.blockId = sanitizedMetadata['blockId'];
243
+ delete sanitizedMetadata['blockId'];
244
+ }
245
+ if (typeof sanitizedMetadata['blockType'] === 'string') {
246
+ entry.blockType = sanitizedMetadata['blockType'];
247
+ delete sanitizedMetadata['blockType'];
248
+ }
249
+ // Only include metadata if there are remaining fields
250
+ if (Object.keys(sanitizedMetadata).length > 0) {
251
+ entry.metadata = sanitizedMetadata;
252
+ }
253
+ }
254
+ return entry;
255
+ }
256
+ /**
257
+ * Emit a log entry if the level is enabled.
258
+ * @param entry - The log entry to emit
259
+ */
260
+ emit(entry) {
261
+ // Skip output in silent mode (useful for tests)
262
+ if (this._silent)
263
+ return;
264
+ if (this.shouldLog(entry.level)) {
265
+ try {
266
+ this.output(entry);
267
+ }
268
+ catch {
269
+ // Never let logging failures affect block operations
270
+ // Silently ignore logging errors
271
+ }
272
+ }
273
+ }
274
+ /**
275
+ * Log a debug-level message.
276
+ * @param operation - The operation being performed
277
+ * @param metadata - Optional metadata (must not contain sensitive data)
278
+ */
279
+ debug(operation, metadata) {
280
+ const entry = this.createEntry(LogLevel.DEBUG, operation, metadata);
281
+ this.emit(entry);
282
+ }
283
+ /**
284
+ * Log an info-level message.
285
+ * @param operation - The operation being performed
286
+ * @param metadata - Optional metadata (must not contain sensitive data)
287
+ */
288
+ info(operation, metadata) {
289
+ const entry = this.createEntry(LogLevel.INFO, operation, metadata);
290
+ this.emit(entry);
291
+ }
292
+ /**
293
+ * Log a warning-level message.
294
+ * @param operation - The operation being performed
295
+ * @param metadata - Optional metadata (must not contain sensitive data)
296
+ */
297
+ warn(operation, metadata) {
298
+ const entry = this.createEntry(LogLevel.WARN, operation, metadata);
299
+ this.emit(entry);
300
+ }
301
+ /**
302
+ * Log an error-level message.
303
+ * @param operation - The operation being performed
304
+ * @param error - The error that occurred
305
+ * @param metadata - Optional metadata (must not contain sensitive data)
306
+ */
307
+ error(operation, error, metadata) {
308
+ const entry = this.createEntry(LogLevel.ERROR, operation, metadata);
309
+ entry.error = {
310
+ type: error.constructor.name,
311
+ message: error.message,
312
+ };
313
+ this.emit(entry);
314
+ }
315
+ }
316
+ exports.BlockLogger = BlockLogger;
317
+ /**
318
+ * Global block logger instance.
319
+ * Can be used directly or replaced with a custom logger.
320
+ */
321
+ exports.blockLogger = new BlockLogger();
322
+ /**
323
+ * Log a validation failure with error type and metadata.
324
+ * This is a convenience function for block validation operations.
325
+ *
326
+ * @param blockId - The block ID (hex-encoded checksum)
327
+ * @param blockType - The block type name
328
+ * @param error - The validation error
329
+ * @param metadata - Optional additional metadata
330
+ *
331
+ * @see Requirement 8.3 - Validation failure logging
332
+ */
333
+ function logValidationFailure(blockId, blockType, error, metadata) {
334
+ exports.blockLogger.error('validate', error, {
335
+ blockId,
336
+ blockType,
337
+ errorType: error.constructor.name,
338
+ ...metadata,
339
+ });
340
+ }
341
+ //# sourceMappingURL=blockLogger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blockLogger.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/logging/blockLogger.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;;;AA+aH,oDAYC;AAzbD;;;GAGG;AACH,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,yBAAa,CAAA;IACb,yBAAa,CAAA;IACb,2BAAe,CAAA;AACjB,CAAC,EALW,QAAQ,wBAAR,QAAQ,QAKnB;AAED;;;GAGG;AACH,MAAM,kBAAkB,GAA6B;IACnD,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;IACnB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IAClB,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;IAClB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;CACpB,CAAC;AAoFF;;;GAGG;AACH,SAAS,aAAa,CAAC,KAAoB;IACzC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACnC,QAAQ,KAAK,CAAC,KAAK,EAAE,CAAC;QACpB,KAAK,QAAQ,CAAC,KAAK;YACjB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpB,MAAM;QACR,KAAK,QAAQ,CAAC,IAAI;YAChB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,MAAM;QACR,KAAK,QAAQ,CAAC,IAAI;YAChB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACnB,MAAM;QACR,KAAK,QAAQ,CAAC,KAAK;YACjB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpB,MAAM;IACV,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,kBAAkB,GAAG;IACzB,aAAa;IACb,YAAY;IACZ,WAAW;IACX,SAAS;IACT,aAAa;IACb,QAAQ;IACR,SAAS;IACT,gBAAgB;IAChB,gBAAgB;IAChB,YAAY;IACZ,YAAY;CACb,CAAC;AAEF;;;;GAIG;AACH,SAAS,cAAc,CAAC,GAAW;IACjC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AACjE,CAAC;AAED;;;;;GAKG;AACH,SAAS,mBAAmB,CAAC,KAAc,EAAE,GAAY;IACvD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,iFAAiF;IACjF,MAAM,aAAa,GAAG,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;IACzE,IACE,GAAG;QACH,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,EAC5E,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gDAAgD;IAChD,OAAO,yBAAyB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,SAAS,gBAAgB,CACvB,QAA6C;IAE7C,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAA4B,EAAE,CAAC;IAE9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,+BAA+B;QAC/B,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,SAAS,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,sEAAsE;QACtE,IAAI,mBAAmB,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC;YACpC,SAAS,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC;YAC9B,SAAS;QACX,CAAC;QAED,sCAAsC;QACtC,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzE,SAAS,CAAC,GAAG,CAAC,GAAG,gBAAgB,CAAC,KAAgC,CAAC,CAAC;QACtE,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,0BAA0B;YAC1B,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBAClC,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC9B,OAAO,YAAY,CAAC;gBACtB,CAAC;gBACD,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC9C,OAAO,gBAAgB,CAAC,IAA+B,CAAC,CAAC;gBAC3D,CAAC;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAa,WAAW;IAKtB;;;OAGG;IACH,YAAY,MAAuC;QAR3C,UAAK,GAAa,QAAQ,CAAC,IAAI,CAAC;QAEhC,YAAO,GAAG,KAAK,CAAC;QAOtB,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,aAAa,CAAC;IACxC,CAAC;IAED;;OAEG;IACH,IAAW,MAAM,CAAC,KAAc;QAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;IACvB,CAAC;IAED,IAAW,MAAM;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED;;;OAGG;IACI,QAAQ,CAAC,KAAe;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;OAGG;IACI,QAAQ;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACK,SAAS,CAAC,KAAe;QAC/B,OAAO,kBAAkB,CAAC,KAAK,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;OAMG;IACK,WAAW,CACjB,KAAe,EACf,SAAiB,EACjB,QAAkC;QAElC,MAAM,iBAAiB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;QAErD,MAAM,KAAK,GAAkB;YAC3B,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,KAAK;YACL,SAAS;SACV,CAAC;QAEF,yDAAyD;QACzD,IAAI,iBAAiB,EAAE,CAAC;YACtB,IAAI,OAAO,iBAAiB,CAAC,SAAS,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACrD,KAAK,CAAC,OAAO,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAAC;gBAC7C,OAAO,iBAAiB,CAAC,SAAS,CAAC,CAAC;YACtC,CAAC;YACD,IAAI,OAAO,iBAAiB,CAAC,WAAW,CAAC,KAAK,QAAQ,EAAE,CAAC;gBACvD,KAAK,CAAC,SAAS,GAAG,iBAAiB,CAAC,WAAW,CAAC,CAAC;gBACjD,OAAO,iBAAiB,CAAC,WAAW,CAAC,CAAC;YACxC,CAAC;YAED,sDAAsD;YACtD,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC9C,KAAK,CAAC,QAAQ,GAAG,iBAAiB,CAAC;YACrC,CAAC;QACH,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;OAGG;IACK,IAAI,CAAC,KAAoB;QAC/B,gDAAgD;QAChD,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QAEzB,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,IAAI,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;YAAC,MAAM,CAAC;gBACP,qDAAqD;gBACrD,iCAAiC;YACnC,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,SAAiB,EAAE,QAAkC;QAChE,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACI,IAAI,CAAC,SAAiB,EAAE,QAAkC;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACI,IAAI,CAAC,SAAiB,EAAE,QAAkC;QAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACnE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACI,KAAK,CACV,SAAiB,EACjB,KAAY,EACZ,QAAkC;QAElC,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QACpE,KAAK,CAAC,KAAK,GAAG;YACZ,IAAI,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI;YAC5B,OAAO,EAAE,KAAK,CAAC,OAAO;SACvB,CAAC;QACF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACnB,CAAC;CACF;AA3JD,kCA2JC;AAED;;;GAGG;AACU,QAAA,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;AAE7C;;;;;;;;;;GAUG;AACH,SAAgB,oBAAoB,CAClC,OAA2B,EAC3B,SAA6B,EAC7B,KAAY,EACZ,QAAkC;IAElC,mBAAW,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE;QACnC,OAAO;QACP,SAAS;QACT,SAAS,EAAE,KAAK,CAAC,WAAW,CAAC,IAAI;QACjC,GAAG,QAAQ;KACZ,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Logging Module for BrightChain
3
+ *
4
+ * This module exports logging utilities for block operations.
5
+ *
6
+ * @module logging
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * import { BlockLogger, LogLevel, blockLogger } from 'brightchain-lib';
11
+ *
12
+ * // Use the global logger
13
+ * blockLogger.setLevel(LogLevel.DEBUG);
14
+ * blockLogger.info('encrypt', { blockId: '0x123...', recipientCount: 1 });
15
+ *
16
+ * // Or create a custom logger
17
+ * const customLogger = new BlockLogger((entry) => {
18
+ * // Custom output handling
19
+ * myLoggingService.log(entry);
20
+ * });
21
+ * ```
22
+ */
23
+ export * from './blockLogger';
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/logging/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,cAAc,eAAe,CAAC"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ /**
3
+ * Logging Module for BrightChain
4
+ *
5
+ * This module exports logging utilities for block operations.
6
+ *
7
+ * @module logging
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * import { BlockLogger, LogLevel, blockLogger } from 'brightchain-lib';
12
+ *
13
+ * // Use the global logger
14
+ * blockLogger.setLevel(LogLevel.DEBUG);
15
+ * blockLogger.info('encrypt', { blockId: '0x123...', recipientCount: 1 });
16
+ *
17
+ * // Or create a custom logger
18
+ * const customLogger = new BlockLogger((entry) => {
19
+ * // Custom output handling
20
+ * myLoggingService.log(entry);
21
+ * });
22
+ * ```
23
+ */
24
+ Object.defineProperty(exports, "__esModule", { value: true });
25
+ const tslib_1 = require("tslib");
26
+ tslib_1.__exportStar(require("./blockLogger"), exports);
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/logging/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;;;AAEH,wDAA8B"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Log levels for structured logging
3
+ */
4
+ export declare enum LogLevel {
5
+ Debug = "DEBUG",
6
+ Info = "INFO",
7
+ Warning = "WARNING",
8
+ Error = "ERROR"
9
+ }
10
+ /**
11
+ * Log entry structure
12
+ */
13
+ export interface LogEntry {
14
+ timestamp: Date;
15
+ level: LogLevel;
16
+ operation: string;
17
+ message: string;
18
+ metadata?: Record<string, unknown>;
19
+ error?: Error;
20
+ }
21
+ /**
22
+ * Structured logger for BrightChain operations
23
+ */
24
+ export declare class StructuredLogger {
25
+ private static instance;
26
+ private logs;
27
+ private maxLogs;
28
+ private minLevel;
29
+ private constructor();
30
+ static getInstance(): StructuredLogger;
31
+ setLevel(level: LogLevel): void;
32
+ debug(operation: string, message: string, metadata?: Record<string, unknown>): void;
33
+ info(operation: string, message: string, metadata?: Record<string, unknown>): void;
34
+ warn(operation: string, message: string, metadata?: Record<string, unknown>): void;
35
+ error(operation: string, message: string, error?: Error, metadata?: Record<string, unknown>): void;
36
+ private log;
37
+ private shouldLog;
38
+ private output;
39
+ getLogs(limit?: number): LogEntry[];
40
+ clear(): void;
41
+ }
42
+ //# sourceMappingURL=structuredLogger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structuredLogger.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/logging/structuredLogger.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,QAAQ;IAClB,KAAK,UAAU;IACf,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,KAAK,UAAU;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,IAAI,CAAC;IAChB,KAAK,EAAE,QAAQ,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmB;IAC1C,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,QAAQ,CAA2B;IAE3C,OAAO;WAEO,WAAW,IAAI,gBAAgB;IAOtC,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAI/B,KAAK,CACV,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,IAAI;IAIA,IAAI,CACT,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,IAAI;IAIA,IAAI,CACT,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,IAAI;IAIA,KAAK,CACV,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,KAAK,EACb,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,IAAI;IAOP,OAAO,CAAC,GAAG;IAyBX,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,MAAM;IAeP,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,QAAQ,EAAE;IAInC,KAAK,IAAI,IAAI;CAGrB"}