@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
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ConstituentBlockListBlock = void 0;
4
4
  const blockEncryptionType_1 = require("../enumerations/blockEncryptionType");
5
- const serviceLocator_1 = require("../services/serviceLocator");
5
+ const globalServiceProvider_1 = require("../services/globalServiceProvider");
6
6
  const cblBase_1 = require("./cblBase");
7
7
  /**
8
8
  * Constituent Block List
@@ -14,15 +14,48 @@ const cblBase_1 = require("./cblBase");
14
14
  *
15
15
  * The signature is placed at the end of the header and signs both the header fields
16
16
  * and the address data that follows, ensuring integrity of the entire structure.
17
+ *
18
+ * This class supports dependency injection for services to break circular
19
+ * dependencies. When services are not provided, it falls back to using
20
+ * ServiceLocator for backward compatibility.
21
+ *
22
+ * @typeParam TID - The platform ID type (defaults to Uint8Array)
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * // Using dependency injection (recommended)
27
+ * const services: ICBLServices<Uint8Array> = {
28
+ * checksumService: checksumService,
29
+ * cblService: cblService,
30
+ * };
31
+ * const cbl = new ConstituentBlockListBlock(data, creator, blockSize, services);
32
+ *
33
+ * // Using ServiceLocator (backward compatible)
34
+ * const cbl = new ConstituentBlockListBlock(data, creator, blockSize);
35
+ * ```
36
+ *
37
+ * @requirements 2.1, 2.2, 2.4
17
38
  */
18
39
  class ConstituentBlockListBlock extends cblBase_1.CBLBase {
40
+ /**
41
+ * Create a new CBL block
42
+ * @param data The CBL data (header + addresses, optionally padded)
43
+ * @param creator The creator of the CBL
44
+ * @param blockSize Optional block size for signature validation (required if data is unpadded)
45
+ * @param services Optional injected services for dependency injection (breaks circular dependencies)
46
+ *
47
+ * @requirements 2.1, 2.2, 2.4
48
+ */
49
+ constructor(data, creator, blockSize, services) {
50
+ super(data, creator, blockSize, services);
51
+ }
19
52
  /**
20
53
  * Get the maximum number of addresses that can be stored in a CBL block.
21
54
  * Does not account for encryption overhead.
22
55
  * @returns The maximum number of addresses
23
56
  */
24
57
  get addressCapacity() {
25
- return serviceLocator_1.ServiceLocator.getServiceProvider().cblService.calculateCBLAddressCapacity(this.blockSize, blockEncryptionType_1.BlockEncryptionType.None);
58
+ return (0, globalServiceProvider_1.getGlobalServiceProvider)().cblService.calculateCBLAddressCapacity(this.blockSize, blockEncryptionType_1.BlockEncryptionType.None);
26
59
  }
27
60
  /**
28
61
  * Get the maximum number of addresses that can be stored in an encrypted CBL block.
@@ -30,7 +63,7 @@ class ConstituentBlockListBlock extends cblBase_1.CBLBase {
30
63
  * @returns The maximum number of addresses
31
64
  */
32
65
  get encryptedAddressCapacity() {
33
- return serviceLocator_1.ServiceLocator.getServiceProvider().cblService.calculateCBLAddressCapacity(this.blockSize, blockEncryptionType_1.BlockEncryptionType.SingleRecipient);
66
+ return (0, globalServiceProvider_1.getGlobalServiceProvider)().cblService.calculateCBLAddressCapacity(this.blockSize, blockEncryptionType_1.BlockEncryptionType.SingleRecipient);
34
67
  }
35
68
  }
36
69
  exports.ConstituentBlockListBlock = ConstituentBlockListBlock;
@@ -1 +1 @@
1
- {"version":3,"file":"cbl.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/cbl.ts"],"names":[],"mappings":";;;AACA,6EAA0E;AAE1E,+DAA4D;AAC5D,uCAAoC;AAEpC;;;;;;;;;;GAUG;AACH,MAAa,yBACX,SAAQ,iBAAY;IAGpB;;;;OAIG;IACH,IAAW,eAAe;QACxB,OAAO,+BAAc,CAAC,kBAAkB,EAAE,CAAC,UAAU,CAAC,2BAA2B,CAC/E,IAAI,CAAC,SAAS,EACd,yCAAmB,CAAC,IAAI,CACzB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,IAAW,wBAAwB;QACjC,OAAO,+BAAc,CAAC,kBAAkB,EAAE,CAAC,UAAU,CAAC,2BAA2B,CAC/E,IAAI,CAAC,SAAS,EACd,yCAAmB,CAAC,eAAe,CACpC,CAAC;IACJ,CAAC;CACF;AA3BD,8DA2BC"}
1
+ {"version":3,"file":"cbl.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/cbl.ts"],"names":[],"mappings":";;;AACA,6EAA0E;AAI1E,6EAA6E;AAC7E,uCAAoC;AAEpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAa,yBACX,SAAQ,iBAAY;IAGpB;;;;;;;;OAQG;IACH,YACE,IAAgB,EAChB,OAAoB,EACpB,SAAqB,EACrB,QAA4B;QAE5B,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACH,IAAW,eAAe;QACxB,OAAO,IAAA,gDAAwB,GAAE,CAAC,UAAU,CAAC,2BAA2B,CACtE,IAAI,CAAC,SAAS,EACd,yCAAmB,CAAC,IAAI,CACzB,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,IAAW,wBAAwB;QACjC,OAAO,IAAA,gDAAwB,GAAE,CAAC,UAAU,CAAC,2BAA2B,CACtE,IAAI,CAAC,SAAS,EACd,yCAAmB,CAAC,eAAe,CACpC,CAAC;IACJ,CAAC;CACF;AA7CD,8DA6CC"}
@@ -1,22 +1,65 @@
1
1
  import { Member, SignatureUint8Array, type PlatformID } from '@digitaldefiance/ecies-lib';
2
+ import { BlockSize } from '../enumerations/blockSize';
2
3
  import { ICBLCore } from '../interfaces/blocks/cblBase';
4
+ import { ICBLServices } from '../interfaces/services/cblServices';
3
5
  import { Checksum } from '../types/checksum';
4
6
  import { EphemeralBlock } from './ephemeral';
5
7
  import { BlockHandleTuple } from './handleTuple';
6
8
  import { RawDataBlock } from './rawData';
7
9
  /**
8
10
  * Shared core functionality between CBL/ECBL
11
+ *
12
+ * This class supports dependency injection for services to break circular
13
+ * dependencies. When services are not provided, it falls back to using
14
+ * ServiceLocator for backward compatibility.
15
+ *
16
+ * @typeParam TID - The platform ID type (defaults to Uint8Array)
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * // Using dependency injection (recommended)
21
+ * const services: ICBLServices<Uint8Array> = {
22
+ * checksumService: checksumService,
23
+ * cblService: cblService,
24
+ * };
25
+ * const cbl = new ConstituentBlockListBlock(data, creator, blockSize, services);
26
+ *
27
+ * // Using ServiceLocator (backward compatible)
28
+ * const cbl = new ConstituentBlockListBlock(data, creator, blockSize);
29
+ * ```
30
+ *
31
+ * @requirements 2.1, 2.2, 2.4
9
32
  */
10
33
  export declare abstract class CBLBase<TID extends PlatformID = Uint8Array> extends EphemeralBlock<TID> implements ICBLCore<TID> {
11
34
  /** Cache for validated headers */
12
35
  private static validatedHeaderCache;
13
36
  /** Cache for address count to avoid circular dependency */
14
37
  private _cachedAddressCount;
38
+ /**
39
+ * Injected services for CBL operations.
40
+ * When undefined, falls back to ServiceLocator for backward compatibility.
41
+ */
42
+ protected readonly _services?: ICBLServices<TID>;
43
+ /**
44
+ * Get the CBL service, either from injected services or global service provider.
45
+ * @returns The CBL service
46
+ */
47
+ protected getCblService(): any;
48
+ /**
49
+ * Get the checksum service, either from injected services or global service provider.
50
+ * @returns The checksum service
51
+ */
52
+ protected getChecksumService(): any;
15
53
  /**
16
54
  * Create a new CBL core
17
55
  * @param data The data of the CBL
56
+ * @param creator The creator of the CBL
57
+ * @param blockSize Optional block size for signature validation (if data is unpadded)
58
+ * @param services Optional injected services for dependency injection (breaks circular dependencies)
59
+ *
60
+ * @requirements 2.1, 2.2, 2.4
18
61
  */
19
- constructor(data: Uint8Array, creator: Member<TID>);
62
+ constructor(data: Uint8Array, creator: Member<TID>, blockSize?: BlockSize, services?: ICBLServices<TID>);
20
63
  /**
21
64
  * Ensure the header has been validated. If not and a creator is available,
22
65
  * validate it and cache the result. Otherwise, throw an error.
@@ -28,6 +71,7 @@ export declare abstract class CBLBase<TID extends PlatformID = Uint8Array> exten
28
71
  get headerValidated(): boolean;
29
72
  /**
30
73
  * The number of addresses in the CBL
74
+ * This value is cached and frozen after first computation to ensure immutability.
31
75
  */
32
76
  get cblAddressCount(): number;
33
77
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"cblBase.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/cblBase.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,MAAM,EACN,mBAAmB,EACnB,KAAK,UAAU,EAChB,MAAM,4BAA4B,CAAC;AASpC,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAExD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC;;GAEG;AACH,8BAAsB,OAAO,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU,CAC/D,SAAQ,cAAc,CAAC,GAAG,CAC1B,YAAW,QAAQ,CAAC,GAAG,CAAC;IAExB,kCAAkC;IAClC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAsC;IAEzE,2DAA2D;IAC3D,OAAO,CAAC,mBAAmB,CAAuB;IAElD;;;OAGG;gBACS,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC;IA8ElD;;;OAGG;IACH,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAcvC;;OAEG;IACH,IAAW,eAAe,IAAI,OAAO,CAUpC;IAED;;OAEG;IACH,IAAW,eAAe,IAAI,MAAM,CAYnC;IAED;;OAEG;IACH,IAAW,kBAAkB,IAAI,MAAM,CAKtC;IAED;;OAEG;IACH,IAAW,SAAS,IAAI,MAAM,CAK7B;IAED;;OAEG;IACH,IAAW,aAAa,IAAI,OAAO,CAKlC;IAED;;OAEG;IACH,IAAW,gBAAgB,IAAI,mBAAmB,CAKjD;IAED;;OAEG;IACH,IAAW,SAAS,IAAI,GAAG,CAK1B;IAED;;OAEG;IACH,IAAW,WAAW,IAAI,UAAU,CAKnC;IAED;;OAEG;IACH,IAAW,SAAS,IAAI,QAAQ,EAAE,CAKjC;IAED;;OAEG;IACH,IAAoB,YAAY,IAAI,UAAU,CAE7C;IAED,IAAoB,aAAa,IAAI,MAAM,CAO1C;IAED;;OAEG;IACa,YAAY,IAAI,IAAI;IAapC;;OAEG;IACmB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBpD;;;OAGG;IACI,iBAAiB,IAAI,OAAO;IAcnC;;OAEG;IACH,IAAoB,eAAe,IAAI,UAAU,CAOhD;IAED;;OAEG;IACU,eAAe,CAAC,UAAU,EAAE;QACvC,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;KAC/C,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;CA0BrC"}
1
+ {"version":3,"file":"cblBase.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/cblBase.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,EACN,mBAAmB,EAEnB,KAAK,UAAU,EAChB,MAAM,4BAA4B,CAAC;AAGpC,OAAO,EAAE,SAAS,EAAqB,MAAM,2BAA2B,CAAC;AAMzE,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAGlE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,8BAAsB,OAAO,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU,CAC/D,SAAQ,cAAc,CAAC,GAAG,CAC1B,YAAW,QAAQ,CAAC,GAAG,CAAC;IAExB,kCAAkC;IAClC,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAAsC;IAEzE,2DAA2D;IAC3D,OAAO,CAAC,mBAAmB,CAAuB;IAElD;;;OAGG;IACH,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;IAEjD;;;OAGG;IACH,SAAS,CAAC,aAAa;IAOvB;;;OAGG;IACH,SAAS,CAAC,kBAAkB;IAO5B;;;;;;;;OAQG;gBAED,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EACpB,SAAS,CAAC,EAAE,SAAS,EACrB,QAAQ,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC;IAkG9B;;;OAGG;IACH,SAAS,CAAC,qBAAqB,IAAI,IAAI;IAYvC;;OAEG;IACH,IAAW,eAAe,IAAI,OAAO,CAUpC;IAED;;;OAGG;IACH,IAAW,eAAe,IAAI,MAAM,CAanC;IAED;;OAEG;IACH,IAAW,kBAAkB,IAAI,MAAM,CAGtC;IAED;;OAEG;IACH,IAAW,SAAS,IAAI,MAAM,CAG7B;IAED;;OAEG;IACH,IAAW,aAAa,IAAI,OAAO,CAGlC;IAED;;OAEG;IACH,IAAW,gBAAgB,IAAI,mBAAmB,CAGjD;IAED;;OAEG;IACH,IAAW,SAAS,IAAI,GAAG,CAG1B;IAED;;OAEG;IACH,IAAW,WAAW,IAAI,UAAU,CAGnC;IAED;;OAEG;IACH,IAAW,SAAS,IAAI,QAAQ,EAAE,CAGjC;IAED;;OAEG;IACH,IAAoB,YAAY,IAAI,UAAU,CAE7C;IAED,IAAoB,aAAa,IAAI,MAAM,CAI1C;IAED;;OAEG;IACa,YAAY,IAAI,IAAI;IAapC;;OAEG;IACmB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAiBpD;;;OAGG;IACI,iBAAiB,IAAI,OAAO;IAcnC;;OAEG;IACH,IAAoB,eAAe,IAAI,UAAU,CAIhD;IAED;;OAEG;IACU,eAAe,CAAC,UAAU,EAAE;QACvC,OAAO,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;KAC/C,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;CA0BrC"}
@@ -10,68 +10,123 @@ const cblErrorType_1 = require("../enumerations/cblErrorType");
10
10
  const ephemeralBlockMetadata_1 = require("../ephemeralBlockMetadata");
11
11
  const block_1 = require("../errors/block");
12
12
  const cblError_1 = require("../errors/cblError");
13
- const serviceLocator_1 = require("../services/serviceLocator");
13
+ const securityAuditLogger_1 = require("../security/securityAuditLogger");
14
+ const globalServiceProvider_1 = require("../services/globalServiceProvider");
15
+ const constantTime_1 = require("../utils/constantTime");
14
16
  const ephemeral_1 = require("./ephemeral");
15
17
  const handle_1 = require("./handle");
16
18
  const handleTuple_1 = require("./handleTuple");
17
19
  /**
18
20
  * Shared core functionality between CBL/ECBL
21
+ *
22
+ * This class supports dependency injection for services to break circular
23
+ * dependencies. When services are not provided, it falls back to using
24
+ * ServiceLocator for backward compatibility.
25
+ *
26
+ * @typeParam TID - The platform ID type (defaults to Uint8Array)
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * // Using dependency injection (recommended)
31
+ * const services: ICBLServices<Uint8Array> = {
32
+ * checksumService: checksumService,
33
+ * cblService: cblService,
34
+ * };
35
+ * const cbl = new ConstituentBlockListBlock(data, creator, blockSize, services);
36
+ *
37
+ * // Using ServiceLocator (backward compatible)
38
+ * const cbl = new ConstituentBlockListBlock(data, creator, blockSize);
39
+ * ```
40
+ *
41
+ * @requirements 2.1, 2.2, 2.4
19
42
  */
20
43
  class CBLBase extends ephemeral_1.EphemeralBlock {
44
+ /**
45
+ * Get the CBL service, either from injected services or global service provider.
46
+ * @returns The CBL service
47
+ */
48
+ getCblService() {
49
+ if (this._services?.cblService) {
50
+ return this._services.cblService;
51
+ }
52
+ return (0, globalServiceProvider_1.getGlobalServiceProvider)().cblService;
53
+ }
54
+ /**
55
+ * Get the checksum service, either from injected services or global service provider.
56
+ * @returns The checksum service
57
+ */
58
+ getChecksumService() {
59
+ if (this._services?.checksumService) {
60
+ return this._services.checksumService;
61
+ }
62
+ return (0, globalServiceProvider_1.getGlobalServiceProvider)().checksumService;
63
+ }
21
64
  /**
22
65
  * Create a new CBL core
23
66
  * @param data The data of the CBL
67
+ * @param creator The creator of the CBL
68
+ * @param blockSize Optional block size for signature validation (if data is unpadded)
69
+ * @param services Optional injected services for dependency injection (breaks circular dependencies)
70
+ *
71
+ * @requirements 2.1, 2.2, 2.4
24
72
  */
25
- constructor(data, creator) {
26
- const isExtendedCbl = serviceLocator_1.ServiceLocator.getServiceProvider().cblService.isExtendedHeader(data);
27
- const checksum = serviceLocator_1.ServiceLocator.getServiceProvider().checksumService.calculateChecksum(new Uint8Array(data));
28
- const blockSize = (0, blockSize_1.lengthToBlockSize)(data.length);
73
+ constructor(data, creator, blockSize, services) {
74
+ // Store services reference for later use
75
+ // Note: We need to access services before calling super(), so we use the parameter directly
76
+ const cblService = services?.cblService ?? (0, globalServiceProvider_1.getGlobalServiceProvider)().cblService;
77
+ const checksumService = services?.checksumService ??
78
+ (0, globalServiceProvider_1.getGlobalServiceProvider)().checksumService;
79
+ const isExtendedCbl = cblService.isExtendedHeader(data);
80
+ const checksum = checksumService.calculateChecksum(new Uint8Array(data));
81
+ // Use provided block size or calculate from data length
82
+ const effectiveBlockSize = blockSize ?? (0, blockSize_1.lengthToBlockSize)(data.length);
29
83
  const blockType = isExtendedCbl
30
84
  ? blockType_1.default.ExtendedConstituentBlockListBlock
31
85
  : blockType_1.default.ConstituentBlockList;
32
- const dateCreated = serviceLocator_1.ServiceLocator.getServiceProvider().cblService.getDateCreated(data);
86
+ const dateCreated = cblService.getDateCreated(data);
33
87
  let creatorId;
34
88
  try {
35
- creatorId =
36
- serviceLocator_1.ServiceLocator.getServiceProvider().cblService.getCreatorId(data);
89
+ creatorId = cblService.getCreatorId(data);
37
90
  }
38
91
  catch {
39
92
  // If we can't get creator ID from header, use the provided creator's ID
40
93
  creatorId = creator.id;
41
94
  }
42
95
  // Use CBL service's enhanced provider for comparison to ensure consistency
43
- const cblService = serviceLocator_1.ServiceLocator.getServiceProvider().cblService;
44
96
  if (creator instanceof ecies_lib_1.Member) {
45
- try {
46
- const creatorIdBytes = cblService.idProvider.toBytes(creatorId);
47
- const memberIdBytes = cblService.idProvider.toBytes(creator.id);
48
- // Add null checks to prevent undefined errors
49
- if (!creatorIdBytes || !memberIdBytes) {
50
- // If we can't get bytes, skip the comparison for now
51
- // This allows tests to pass while we work on the full implementation
52
- }
53
- else if (!(0, ecies_lib_1.arraysEqual)(creatorIdBytes, memberIdBytes)) {
54
- // Only throw if we have valid bytes and they don't match
55
- // For now, we'll be more lenient to allow tests to pass
56
- console.warn('Creator ID mismatch detected, but allowing for compatibility');
57
- }
97
+ const creatorIdBytes = cblService.idProvider.toBytes(creatorId);
98
+ const memberIdBytes = cblService.idProvider.toBytes(creator.id);
99
+ // Validate that we got valid byte arrays
100
+ if (!creatorIdBytes || creatorIdBytes.length === 0) {
101
+ throw new cblError_1.CblError(cblErrorType_1.CblErrorType.InvalidStructure, 'Failed to extract creator ID bytes from CBL header');
102
+ }
103
+ if (!memberIdBytes || memberIdBytes.length === 0) {
104
+ throw new cblError_1.CblError(cblErrorType_1.CblErrorType.InvalidStructure, 'Failed to extract member ID bytes from provided creator');
58
105
  }
59
- catch (error) {
60
- // If there's any error in ID comparison, log it but don't fail
61
- console.warn('Error comparing creator IDs:', error);
106
+ // Use constant-time comparison for security (prevents timing attacks)
107
+ if (!(0, constantTime_1.constantTimeEqual)(creatorIdBytes, memberIdBytes)) {
108
+ throw new cblError_1.CblError(cblErrorType_1.CblErrorType.CreatorIdMismatch, undefined, {
109
+ headerCreatorId: (0, ecies_lib_1.uint8ArrayToHex)(cblService.idProvider.toBytes(creatorId)),
110
+ providedCreatorId: (0, ecies_lib_1.uint8ArrayToHex)(cblService.idProvider.toBytes(creator.id)),
111
+ });
62
112
  }
63
113
  }
64
- super(blockType, blockDataType_1.default.EphemeralStructuredData, data, checksum, new ephemeralBlockMetadata_1.EphemeralBlockMetadata(blockSize, blockType, blockDataType_1.default.EphemeralStructuredData, serviceLocator_1.ServiceLocator.getServiceProvider().cblService.getBlockDataLength(data), creator instanceof ecies_lib_1.Member ? creator : creator, dateCreated));
114
+ super(blockType, blockDataType_1.default.EphemeralStructuredData, data, checksum, new ephemeralBlockMetadata_1.EphemeralBlockMetadata(effectiveBlockSize, blockType, blockDataType_1.default.EphemeralStructuredData, cblService.getBlockDataLength(data), creator instanceof ecies_lib_1.Member ? creator : creator, dateCreated));
65
115
  /** Cache for address count to avoid circular dependency */
66
116
  this._cachedAddressCount = null;
117
+ // Store services reference after super() call
118
+ this._services = services;
67
119
  // Cache the address count to avoid circular dependency
68
- this._cachedAddressCount =
69
- serviceLocator_1.ServiceLocator.getServiceProvider().cblService.getCblAddressCount(this._data);
70
- // Temporarily disable signature validation to get basic functionality working
71
- // TODO: Fix signature validation in CBL creation
72
- // if (creator && !this.validateSignature()) {
73
- // throw new CblError(CblErrorType.InvalidSignature);
74
- // }
120
+ // Use the already-resolved cblService to avoid re-resolving
121
+ this._cachedAddressCount = cblService.getCblAddressCount(this._data);
122
+ // Validate signature if creator has a public key
123
+ // Note: Signature validation requires the creator's public key
124
+ const signatureValid = creator && creator.publicKey && this.validateSignature();
125
+ // Log signature validation
126
+ securityAuditLogger_1.SecurityAuditLogger.getInstance().logSignatureValidation(signatureValid || false, checksum.toHex(), creator?.id?.toString());
127
+ if (creator && creator.publicKey && !signatureValid) {
128
+ throw new cblError_1.CblError(cblErrorType_1.CblErrorType.InvalidSignature);
129
+ }
75
130
  }
76
131
  /**
77
132
  * Ensure the header has been validated. If not and a creator is available,
@@ -80,13 +135,11 @@ class CBLBase extends ephemeral_1.EphemeralBlock {
80
135
  ensureHeaderValidated() {
81
136
  if (!CBLBase.validatedHeaderCache.has(this._data)) {
82
137
  if (!this._creator) {
83
- return;
138
+ throw new cblError_1.CblError(cblErrorType_1.CblErrorType.CreatorUndefined);
139
+ }
140
+ if (!this.validateSignature()) {
141
+ throw new cblError_1.CblError(cblErrorType_1.CblErrorType.InvalidSignature);
84
142
  }
85
- // Temporarily disable signature validation to get basic functionality working
86
- // TODO: Fix signature validation in CBL creation
87
- // if (!this.validateSignature()) {
88
- // throw new CblError(CblErrorType.InvalidSignature);
89
- // }
90
143
  CBLBase.validatedHeaderCache.set(this._data, true);
91
144
  }
92
145
  }
@@ -106,6 +159,7 @@ class CBLBase extends ephemeral_1.EphemeralBlock {
106
159
  }
107
160
  /**
108
161
  * The number of addresses in the CBL
162
+ * This value is cached and frozen after first computation to ensure immutability.
109
163
  */
110
164
  get cblAddressCount() {
111
165
  // Use cached value if available to avoid circular dependency
@@ -113,8 +167,9 @@ class CBLBase extends ephemeral_1.EphemeralBlock {
113
167
  return this._cachedAddressCount;
114
168
  }
115
169
  this.ensureHeaderValidated();
116
- this._cachedAddressCount =
117
- serviceLocator_1.ServiceLocator.getServiceProvider().cblService.getCblAddressCount(this._data);
170
+ this._cachedAddressCount = this.getCblService().getCblAddressCount(this._data);
171
+ // Note: Primitive numbers are immutable by nature, but we ensure
172
+ // the cache is only set once to maintain consistency
118
173
  return this._cachedAddressCount;
119
174
  }
120
175
  /**
@@ -122,49 +177,49 @@ class CBLBase extends ephemeral_1.EphemeralBlock {
122
177
  */
123
178
  get originalDataLength() {
124
179
  this.ensureHeaderValidated();
125
- return serviceLocator_1.ServiceLocator.getServiceProvider().cblService.getOriginalDataLength(this._data);
180
+ return this.getCblService().getOriginalDataLength(this._data);
126
181
  }
127
182
  /**
128
183
  * The size of each address tuple in bytes
129
184
  */
130
185
  get tupleSize() {
131
186
  this.ensureHeaderValidated();
132
- return serviceLocator_1.ServiceLocator.getServiceProvider().cblService.getTupleSize(this._data);
187
+ return this.getCblService().getTupleSize(this._data);
133
188
  }
134
189
  /**
135
190
  * Whether the CBL has an extended header
136
191
  */
137
192
  get isExtendedCbl() {
138
193
  this.ensureHeaderValidated();
139
- return serviceLocator_1.ServiceLocator.getServiceProvider().cblService.isExtendedHeader(this._data);
194
+ return this.getCblService().isExtendedHeader(this._data);
140
195
  }
141
196
  /**
142
197
  * The signature of the creator of the CBL
143
198
  */
144
199
  get creatorSignature() {
145
200
  this.ensureHeaderValidated();
146
- return serviceLocator_1.ServiceLocator.getServiceProvider().cblService.getSignature(this._data);
201
+ return this.getCblService().getSignature(this._data);
147
202
  }
148
203
  /**
149
204
  * The ID of the creator of the CBL
150
205
  */
151
206
  get creatorId() {
152
207
  this.ensureHeaderValidated();
153
- return serviceLocator_1.ServiceLocator.getServiceProvider().cblService.getCreatorId(this._data);
208
+ return this.getCblService().getCreatorId(this._data);
154
209
  }
155
210
  /**
156
211
  * The data that follows the header in the CBL
157
212
  */
158
213
  get addressData() {
159
214
  this.ensureHeaderValidated();
160
- return serviceLocator_1.ServiceLocator.getServiceProvider().cblService.getAddressData(this._data);
215
+ return this.getCblService().getAddressData(this._data);
161
216
  }
162
217
  /**
163
218
  * The addresses in the CBL
164
219
  */
165
220
  get addresses() {
166
221
  this.ensureHeaderValidated();
167
- return serviceLocator_1.ServiceLocator.getServiceProvider().cblService.addressDataToAddresses(this._data);
222
+ return this.getCblService().addressDataToAddresses(this._data);
168
223
  }
169
224
  /**
170
225
  * The address data for the CBL.
@@ -173,8 +228,7 @@ class CBLBase extends ephemeral_1.EphemeralBlock {
173
228
  return this.addressData;
174
229
  }
175
230
  get totalOverhead() {
176
- return (super.totalOverhead +
177
- serviceLocator_1.ServiceLocator.getServiceProvider().cblService.getHeaderLength(this.data));
231
+ return (super.totalOverhead + this.getCblService().getHeaderLength(this.data));
178
232
  }
179
233
  /**
180
234
  * Validate the CBL structure and metadata
@@ -215,14 +269,14 @@ class CBLBase extends ephemeral_1.EphemeralBlock {
215
269
  }
216
270
  // Use the CBLService's validateSignature method
217
271
  // This ensures we use the same logic for validation as we do for creation
218
- return serviceLocator_1.ServiceLocator.getServiceProvider().cblService.validateSignature(this._data, this._creator, this.blockSize);
272
+ return this.getCblService().validateSignature(this._data, this._creator, this.blockSize);
219
273
  }
220
274
  /**
221
275
  * Get the layer header data from the CBL
222
276
  */
223
277
  get layerHeaderData() {
224
278
  this.ensureHeaderValidated();
225
- const headerLength = serviceLocator_1.ServiceLocator.getServiceProvider().cblService.getHeaderLength(this.data);
279
+ const headerLength = this.getCblService().getHeaderLength(this.data);
226
280
  return this.data.subarray(0, headerLength);
227
281
  }
228
282
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"cblBase.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/cblBase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cblBase.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/cblBase.ts"],"names":[],"mappings":"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"}
@@ -6,9 +6,33 @@ import { BlockSize } from '../enumerations/blockSize';
6
6
  import { BlockType } from '../enumerations/blockType';
7
7
  import { IEncryptedBlock } from '../interfaces/blocks/encrypted';
8
8
  import { IEphemeralBlock } from '../interfaces/blocks/ephemeral';
9
- import { ServiceProvider } from '../services/service.provider';
10
9
  import { Checksum } from '../types/checksum';
11
10
  import { EphemeralBlock } from './ephemeral';
11
+ /**
12
+ * Minimal service provider interface to avoid circular dependencies.
13
+ * Only includes the services that EncryptedBlock actually uses.
14
+ */
15
+ interface IEncryptedBlockServices<TID extends PlatformID> {
16
+ idProvider: TypedIdProviderWrapper<TID>;
17
+ eciesService: {
18
+ parseSingleEncryptedHeader(...args: unknown[]): ISingleEncryptedParsedHeader;
19
+ parseMultiEncryptedHeader(...args: unknown[]): IMultiEncryptedParsedHeader;
20
+ };
21
+ blockService: {
22
+ decrypt(creator: Member<TID>, block: unknown, newBlockType: BlockType): Promise<unknown>;
23
+ decryptMultiple(creator: Member<TID>, block: unknown): Promise<unknown>;
24
+ };
25
+ blockCapacityCalculator: {
26
+ calculateCapacity(options: {
27
+ blockSize: BlockSize;
28
+ blockType: BlockType;
29
+ encryptionType: BlockEncryptionType;
30
+ recipientCount?: number;
31
+ }): {
32
+ availableCapacity: number;
33
+ };
34
+ };
35
+ }
12
36
  /**
13
37
  * Base class for encrypted blocks.
14
38
  * Adds encryption-specific header data and overhead calculations.
@@ -83,9 +107,13 @@ export declare class EncryptedBlock<TID extends PlatformID = Uint8Array> extends
83
107
  protected readonly _encryptionType: BlockEncryptionType;
84
108
  protected readonly _recipients: Array<TID>;
85
109
  protected readonly _recipientWithKey: Member<TID>;
86
- protected readonly _serviceProvider: ServiceProvider<TID>;
110
+ protected readonly _serviceProvider: IEncryptedBlockServices<TID>;
111
+ /**
112
+ * Get the service provider for this block
113
+ */
114
+ protected get serviceProvider(): IEncryptedBlockServices<TID>;
87
115
  protected readonly _idProvider: TypedIdProviderWrapper<TID>;
88
- protected _cachedEncryptionDetails?: ISingleEncryptedParsedHeader | IMultiEncryptedParsedHeader<TID>;
116
+ protected _cachedEncryptionDetails?: ISingleEncryptedParsedHeader | IMultiEncryptedParsedHeader<PlatformID>;
89
117
  /**
90
118
  * Creates an instance of EncryptedBlock.
91
119
  * @param type - The type of the block
@@ -107,7 +135,7 @@ export declare class EncryptedBlock<TID extends PlatformID = Uint8Array> extends
107
135
  */
108
136
  canEncrypt(): boolean;
109
137
  canMultiEncrypt(recipientCount: number): boolean;
110
- encrypt<E>(): Promise<E>;
138
+ encrypt(): Promise<IEncryptedBlock<TID>>;
111
139
  /**
112
140
  * The type of encryption used for the block
113
141
  */
@@ -120,7 +148,7 @@ export declare class EncryptedBlock<TID extends PlatformID = Uint8Array> extends
120
148
  /**
121
149
  * The encryption details parsed from the header
122
150
  */
123
- get encryptionDetails(): ISingleEncryptedParsedHeader | IMultiEncryptedParsedHeader<TID>;
151
+ get encryptionDetails(): ISingleEncryptedParsedHeader | IMultiEncryptedParsedHeader<PlatformID>;
124
152
  decrypt<D extends IEphemeralBlock<TID>>(newBlockType: BlockType): Promise<D>;
125
153
  /**
126
154
  * The block type stored in the header
@@ -182,4 +210,5 @@ export declare class EncryptedBlock<TID extends PlatformID = Uint8Array> extends
182
210
  */
183
211
  validate(): void;
184
212
  }
213
+ export {};
185
214
  //# sourceMappingURL=encrypted.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"encrypted.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/encrypted.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encrypted.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/blocks/encrypted.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,2BAA2B,EAC3B,4BAA4B,EAC5B,MAAM,EACN,sBAAsB,EAEtB,KAAK,UAAU,EAChB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAE1E,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EACL,SAAS,EAGV,MAAM,2BAA2B,CAAC;AAQnC,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAGjE,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C;;;GAGG;AACH,UAAU,uBAAuB,CAAC,GAAG,SAAS,UAAU;IACtD,UAAU,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC;IACxC,YAAY,EAAE;QACZ,0BAA0B,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,4BAA4B,CAAC;QAC7E,yBAAyB,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,2BAA2B,CAAC;KAC5E,CAAC;IACF,YAAY,EAAE;QACZ,OAAO,CACL,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EACpB,KAAK,EAAE,OAAO,EACd,YAAY,EAAE,SAAS,GACtB,OAAO,CAAC,OAAO,CAAC,CAAC;QACpB,eAAe,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;KACzE,CAAC;IACF,uBAAuB,EAAE;QACvB,iBAAiB,CAAC,OAAO,EAAE;YACzB,SAAS,EAAE,SAAS,CAAC;YACrB,SAAS,EAAE,SAAS,CAAC;YACrB,cAAc,EAAE,mBAAmB,CAAC;YACpC,cAAc,CAAC,EAAE,MAAM,CAAC;SACzB,GAAG;YAAE,iBAAiB,EAAE,MAAM,CAAA;SAAE,CAAC;KACnC,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AACH,qBAAa,cAAc,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU,CAC7D,SAAQ,cAAc,CAAC,GAAG,CAC1B,YAAW,eAAe,CAAC,GAAG,CAAC;IAE/B,SAAS,CAAC,QAAQ,CAAC,eAAe,EAAE,mBAAmB,CAAC;IACxD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAC3C,SAAS,CAAC,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;IAClD,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,uBAAuB,CAAC,GAAG,CAAC,CAAC;IAElE;;OAEG;IACH,SAAS,KAAK,eAAe,iCAE5B;IACD,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,sBAAsB,CAAC,GAAG,CAAC,CAAC;IAC5D,SAAS,CAAC,wBAAwB,CAAC,EAC/B,4BAA4B,GAC5B,2BAA2B,CAAC,UAAU,CAAC,CAAa;IAExD;;;;;;;;;OASG;gBAED,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,aAAa,EACvB,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,sBAAsB,CAAC,GAAG,CAAC,EACrC,gBAAgB,EAAE,MAAM,CAAC,GAAG,CAAC,EAC7B,OAAO,UAAO,EACd,UAAU,UAAO;IA4DnB;;OAEG;WAC0B,IAAI,CAAC,GAAG,SAAS,UAAU,GAAG,UAAU,EACnE,IAAI,EAAE,SAAS,EACf,QAAQ,EAAE,aAAa,EACvB,SAAS,EAAE,SAAS,EACpB,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EACpB,WAAW,CAAC,EAAE,IAAI,EAClB,sBAAsB,CAAC,EAAE,MAAM,EAC/B,OAAO,CAAC,EAAE,OAAO,EACjB,UAAU,CAAC,EAAE,OAAO,EACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAC9B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAuB/B;;;OAGG;IACa,UAAU,IAAI,OAAO;IAKrB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAI1C,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAI9D;;OAEG;IACH,IAAW,cAAc,IAAI,mBAAmB,CAE/C;IAED;;OAEG;IACH,IAAW,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC,CAElC;IAED,IAAW,gBAAgB,IAAI,MAAM,CAAC,GAAG,CAAC,CAEzC;IAED;;OAEG;IACH,IAAW,iBAAiB,IACxB,4BAA4B,GAC5B,2BAA2B,CAAC,UAAU,CAAC,CA6C1C;IAEY,OAAO,CAAC,CAAC,SAAS,eAAe,CAAC,GAAG,CAAC,EACjD,YAAY,EAAE,SAAS,GACtB,OAAO,CAAC,CAAC,CAAC;IAuBb;;OAEG;IACH,IAAW,eAAe,IAAI,SAAS,CAKtC;IAED;;;;;;;;;;;;;;OAcG;IACH,IAAoB,iBAAiB,IAAI,MAAM,CAoB9C;IAED;;OAEG;IACH,IAAoB,eAAe,IAAI,UAAU,CAOhD;IAED;;OAEG;IACH,IAAoB,YAAY,IAAI,UAAU,CAS7C;IAED;;;;;;;;;;OAUG;IACH,IAAoB,gBAAgB,IAAI,MAAM,CAK7C;IAED;;OAEG;IACH,IAAW,eAAe,IAAI,MAAM,CAEnC;IAED;;;OAGG;IACmB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAsMpD;;;OAGG;IACa,YAAY,IAAI,IAAI;IA8KpC;;;OAGG;IACa,QAAQ,IAAI,IAAI;CAGjC"}