@brightchain/brightchain-lib 0.29.27 → 0.31.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 (409) hide show
  1. package/README.md +34 -5
  2. package/package.json +4 -4
  3. package/src/browser.d.ts +7 -0
  4. package/src/browser.d.ts.map +1 -1
  5. package/src/browser.js +21 -1
  6. package/src/browser.js.map +1 -1
  7. package/src/lib/asset/assetAccount.d.ts +66 -0
  8. package/src/lib/asset/assetAccount.d.ts.map +1 -0
  9. package/src/lib/asset/assetAccount.js +192 -0
  10. package/src/lib/asset/assetAccount.js.map +1 -0
  11. package/src/lib/asset/formatAssetAmount.d.ts +30 -0
  12. package/src/lib/asset/formatAssetAmount.d.ts.map +1 -0
  13. package/src/lib/asset/formatAssetAmount.js +54 -0
  14. package/src/lib/asset/formatAssetAmount.js.map +1 -0
  15. package/src/lib/asset/index.d.ts +11 -0
  16. package/src/lib/asset/index.d.ts.map +1 -0
  17. package/src/lib/asset/index.js +14 -0
  18. package/src/lib/asset/index.js.map +1 -0
  19. package/src/lib/asset/jouleConstants.d.ts +21 -0
  20. package/src/lib/asset/jouleConstants.d.ts.map +1 -0
  21. package/src/lib/asset/jouleConstants.js +24 -0
  22. package/src/lib/asset/jouleConstants.js.map +1 -0
  23. package/src/lib/asset/microunits.d.ts +19 -0
  24. package/src/lib/asset/microunits.d.ts.map +1 -0
  25. package/src/lib/asset/microunits.js +36 -0
  26. package/src/lib/asset/microunits.js.map +1 -0
  27. package/src/lib/constants.d.ts +5 -26
  28. package/src/lib/constants.d.ts.map +1 -1
  29. package/src/lib/constants.js +25 -2
  30. package/src/lib/constants.js.map +1 -1
  31. package/src/lib/db/collection.d.ts +1 -1
  32. package/src/lib/db/collection.d.ts.map +1 -1
  33. package/src/lib/db/collection.js +2 -1
  34. package/src/lib/db/collection.js.map +1 -1
  35. package/src/lib/db/driverBackedHeadRegistry.d.ts +42 -0
  36. package/src/lib/db/driverBackedHeadRegistry.d.ts.map +1 -0
  37. package/src/lib/db/driverBackedHeadRegistry.js +146 -0
  38. package/src/lib/db/driverBackedHeadRegistry.js.map +1 -0
  39. package/src/lib/db/headRegistryGossipTransport.d.ts +74 -0
  40. package/src/lib/db/headRegistryGossipTransport.d.ts.map +1 -0
  41. package/src/lib/db/headRegistryGossipTransport.js +153 -0
  42. package/src/lib/db/headRegistryGossipTransport.js.map +1 -0
  43. package/src/lib/db/inMemoryHeadRegistry.d.ts +9 -0
  44. package/src/lib/db/inMemoryHeadRegistry.d.ts.map +1 -1
  45. package/src/lib/db/inMemoryHeadRegistry.js +48 -0
  46. package/src/lib/db/inMemoryHeadRegistry.js.map +1 -1
  47. package/src/lib/db/inMemoryHeadRegistryDriver.d.ts +13 -0
  48. package/src/lib/db/inMemoryHeadRegistryDriver.d.ts.map +1 -0
  49. package/src/lib/db/inMemoryHeadRegistryDriver.js +24 -0
  50. package/src/lib/db/inMemoryHeadRegistryDriver.js.map +1 -0
  51. package/src/lib/db/index.d.ts +3 -0
  52. package/src/lib/db/index.d.ts.map +1 -1
  53. package/src/lib/db/index.js +3 -0
  54. package/src/lib/db/index.js.map +1 -1
  55. package/src/lib/energyAccount.d.ts +15 -62
  56. package/src/lib/energyAccount.d.ts.map +1 -1
  57. package/src/lib/energyAccount.js +20 -118
  58. package/src/lib/energyAccount.js.map +1 -1
  59. package/src/lib/enumerations/brightChainStrings.d.ts +141 -0
  60. package/src/lib/enumerations/brightChainStrings.d.ts.map +1 -1
  61. package/src/lib/enumerations/brightChainStrings.js +150 -0
  62. package/src/lib/enumerations/brightChainStrings.js.map +1 -1
  63. package/src/lib/enumerations/difficultyTier.d.ts +20 -0
  64. package/src/lib/enumerations/difficultyTier.d.ts.map +1 -0
  65. package/src/lib/enumerations/difficultyTier.js +25 -0
  66. package/src/lib/enumerations/difficultyTier.js.map +1 -0
  67. package/src/lib/enumerations/friendRequestStatus.d.ts +7 -0
  68. package/src/lib/enumerations/friendRequestStatus.d.ts.map +1 -0
  69. package/src/lib/enumerations/friendRequestStatus.js +11 -0
  70. package/src/lib/enumerations/friendRequestStatus.js.map +1 -0
  71. package/src/lib/enumerations/friendsErrorCode.d.ts +10 -0
  72. package/src/lib/enumerations/friendsErrorCode.d.ts.map +1 -0
  73. package/src/lib/enumerations/friendsErrorCode.js +14 -0
  74. package/src/lib/enumerations/friendsErrorCode.js.map +1 -0
  75. package/src/lib/enumerations/friendshipStatus.d.ts +7 -0
  76. package/src/lib/enumerations/friendshipStatus.d.ts.map +1 -0
  77. package/src/lib/enumerations/friendshipStatus.js +11 -0
  78. package/src/lib/enumerations/friendshipStatus.js.map +1 -0
  79. package/src/lib/enumerations/index.d.ts +4 -0
  80. package/src/lib/enumerations/index.d.ts.map +1 -1
  81. package/src/lib/enumerations/index.js +6 -0
  82. package/src/lib/enumerations/index.js.map +1 -1
  83. package/src/lib/errors/asset/assetUnknownError.d.ts +12 -0
  84. package/src/lib/errors/asset/assetUnknownError.d.ts.map +1 -0
  85. package/src/lib/errors/asset/assetUnknownError.js +21 -0
  86. package/src/lib/errors/asset/assetUnknownError.js.map +1 -0
  87. package/src/lib/errors/asset/index.d.ts +13 -0
  88. package/src/lib/errors/asset/index.d.ts.map +1 -0
  89. package/src/lib/errors/asset/index.js +16 -0
  90. package/src/lib/errors/asset/index.js.map +1 -0
  91. package/src/lib/errors/asset/insufficientAvailableBalanceError.d.ts +13 -0
  92. package/src/lib/errors/asset/insufficientAvailableBalanceError.d.ts.map +1 -0
  93. package/src/lib/errors/asset/insufficientAvailableBalanceError.js +25 -0
  94. package/src/lib/errors/asset/insufficientAvailableBalanceError.js.map +1 -0
  95. package/src/lib/errors/asset/invalidAmountError.d.ts +11 -0
  96. package/src/lib/errors/asset/invalidAmountError.d.ts.map +1 -0
  97. package/src/lib/errors/asset/invalidAmountError.js +20 -0
  98. package/src/lib/errors/asset/invalidAmountError.js.map +1 -0
  99. package/src/lib/errors/asset/ledgerAlreadyAttachedError.d.ts +11 -0
  100. package/src/lib/errors/asset/ledgerAlreadyAttachedError.d.ts.map +1 -0
  101. package/src/lib/errors/asset/ledgerAlreadyAttachedError.js +19 -0
  102. package/src/lib/errors/asset/ledgerAlreadyAttachedError.js.map +1 -0
  103. package/src/lib/errors/asset/mixedAssetError.d.ts +12 -0
  104. package/src/lib/errors/asset/mixedAssetError.d.ts.map +1 -0
  105. package/src/lib/errors/asset/mixedAssetError.js +22 -0
  106. package/src/lib/errors/asset/mixedAssetError.js.map +1 -0
  107. package/src/lib/errors/asset/reservationExpiredError.d.ts +13 -0
  108. package/src/lib/errors/asset/reservationExpiredError.d.ts.map +1 -0
  109. package/src/lib/errors/asset/reservationExpiredError.js +24 -0
  110. package/src/lib/errors/asset/reservationExpiredError.js.map +1 -0
  111. package/src/lib/errors/asset/reservationNotFoundError.d.ts +11 -0
  112. package/src/lib/errors/asset/reservationNotFoundError.d.ts.map +1 -0
  113. package/src/lib/errors/asset/reservationNotFoundError.js +20 -0
  114. package/src/lib/errors/asset/reservationNotFoundError.js.map +1 -0
  115. package/src/lib/errors/encryptionErrors.d.ts.map +1 -1
  116. package/src/lib/errors/encryptionErrors.js.map +1 -1
  117. package/src/lib/errors/friendsServiceError.d.ts +20 -0
  118. package/src/lib/errors/friendsServiceError.d.ts.map +1 -0
  119. package/src/lib/errors/friendsServiceError.js +48 -0
  120. package/src/lib/errors/friendsServiceError.js.map +1 -0
  121. package/src/lib/errors/index.d.ts +23 -0
  122. package/src/lib/errors/index.d.ts.map +1 -1
  123. package/src/lib/errors/index.js +29 -0
  124. package/src/lib/errors/index.js.map +1 -1
  125. package/src/lib/i18n/strings/englishUs.d.ts.map +1 -1
  126. package/src/lib/i18n/strings/englishUs.js +151 -1
  127. package/src/lib/i18n/strings/englishUs.js.map +1 -1
  128. package/src/lib/i18n/strings/french.d.ts.map +1 -1
  129. package/src/lib/i18n/strings/french.js +153 -3
  130. package/src/lib/i18n/strings/french.js.map +1 -1
  131. package/src/lib/i18n/strings/german.d.ts.map +1 -1
  132. package/src/lib/i18n/strings/german.js +151 -1
  133. package/src/lib/i18n/strings/german.js.map +1 -1
  134. package/src/lib/i18n/strings/japanese.d.ts.map +1 -1
  135. package/src/lib/i18n/strings/japanese.js +151 -1
  136. package/src/lib/i18n/strings/japanese.js.map +1 -1
  137. package/src/lib/i18n/strings/mandarin.d.ts.map +1 -1
  138. package/src/lib/i18n/strings/mandarin.js +151 -1
  139. package/src/lib/i18n/strings/mandarin.js.map +1 -1
  140. package/src/lib/i18n/strings/spanish.d.ts.map +1 -1
  141. package/src/lib/i18n/strings/spanish.js +151 -1
  142. package/src/lib/i18n/strings/spanish.js.map +1 -1
  143. package/src/lib/i18n/strings/ukrainian.d.ts.map +1 -1
  144. package/src/lib/i18n/strings/ukrainian.js +151 -1
  145. package/src/lib/i18n/strings/ukrainian.js.map +1 -1
  146. package/src/lib/index.d.ts +36 -1
  147. package/src/lib/index.d.ts.map +1 -1
  148. package/src/lib/index.js +48 -1
  149. package/src/lib/index.js.map +1 -1
  150. package/src/lib/interfaces/appSubsystemPlugin.d.ts +74 -0
  151. package/src/lib/interfaces/appSubsystemPlugin.d.ts.map +1 -0
  152. package/src/lib/interfaces/appSubsystemPlugin.js +3 -0
  153. package/src/lib/interfaces/appSubsystemPlugin.js.map +1 -0
  154. package/src/lib/interfaces/assetAccount.d.ts +91 -0
  155. package/src/lib/interfaces/assetAccount.d.ts.map +1 -0
  156. package/src/lib/interfaces/assetAccount.js +3 -0
  157. package/src/lib/interfaces/assetAccount.js.map +1 -0
  158. package/src/lib/interfaces/brightpass/vaultEntry.d.ts +38 -0
  159. package/src/lib/interfaces/brightpass/vaultEntry.d.ts.map +1 -1
  160. package/src/lib/interfaces/brightpass/vaultMetadata.d.ts +11 -0
  161. package/src/lib/interfaces/brightpass/vaultMetadata.d.ts.map +1 -1
  162. package/src/lib/interfaces/communication/chatStorageProvider.d.ts +1 -1
  163. package/src/lib/interfaces/communication/chatStorageProvider.d.ts.map +1 -1
  164. package/src/lib/interfaces/communication/index.d.ts +2 -0
  165. package/src/lib/interfaces/communication/index.d.ts.map +1 -1
  166. package/src/lib/interfaces/communication/index.js +2 -0
  167. package/src/lib/interfaces/communication/index.js.map +1 -1
  168. package/src/lib/interfaces/communication/server.d.ts +8 -0
  169. package/src/lib/interfaces/communication/server.d.ts.map +1 -1
  170. package/src/lib/interfaces/communication/serverIconConfig.d.ts +32 -0
  171. package/src/lib/interfaces/communication/serverIconConfig.d.ts.map +1 -0
  172. package/src/lib/interfaces/communication/serverIconConfig.js +35 -0
  173. package/src/lib/interfaces/communication/serverIconConfig.js.map +1 -0
  174. package/src/lib/interfaces/communication/serverIconRequest.d.ts +12 -0
  175. package/src/lib/interfaces/communication/serverIconRequest.d.ts.map +1 -0
  176. package/src/lib/interfaces/communication/serverIconRequest.js +3 -0
  177. package/src/lib/interfaces/communication/serverIconRequest.js.map +1 -0
  178. package/src/lib/interfaces/communication.d.ts +2 -0
  179. package/src/lib/interfaces/communication.d.ts.map +1 -1
  180. package/src/lib/interfaces/constants.d.ts +16 -0
  181. package/src/lib/interfaces/constants.d.ts.map +1 -1
  182. package/src/lib/interfaces/energyAccount.d.ts +13 -34
  183. package/src/lib/interfaces/energyAccount.d.ts.map +1 -1
  184. package/src/lib/interfaces/energyTransaction.d.ts +25 -6
  185. package/src/lib/interfaces/energyTransaction.d.ts.map +1 -1
  186. package/src/lib/interfaces/friends/baseFriendRequest.d.ts +13 -0
  187. package/src/lib/interfaces/friends/baseFriendRequest.d.ts.map +1 -0
  188. package/src/lib/interfaces/friends/baseFriendRequest.js +3 -0
  189. package/src/lib/interfaces/friends/baseFriendRequest.js.map +1 -0
  190. package/src/lib/interfaces/friends/baseFriendship.d.ts +11 -0
  191. package/src/lib/interfaces/friends/baseFriendship.d.ts.map +1 -0
  192. package/src/lib/interfaces/friends/baseFriendship.js +3 -0
  193. package/src/lib/interfaces/friends/baseFriendship.js.map +1 -0
  194. package/src/lib/interfaces/friends/friendsService.d.ts +32 -0
  195. package/src/lib/interfaces/friends/friendsService.d.ts.map +1 -0
  196. package/src/lib/interfaces/friends/friendsService.js +3 -0
  197. package/src/lib/interfaces/friends/friendsService.js.map +1 -0
  198. package/src/lib/interfaces/friends/friendsSuggestionProvider.d.ts +17 -0
  199. package/src/lib/interfaces/friends/friendsSuggestionProvider.d.ts.map +1 -0
  200. package/src/lib/interfaces/friends/friendsSuggestionProvider.js +3 -0
  201. package/src/lib/interfaces/friends/friendsSuggestionProvider.js.map +1 -0
  202. package/src/lib/interfaces/friends/index.d.ts +6 -0
  203. package/src/lib/interfaces/friends/index.d.ts.map +1 -0
  204. package/src/lib/interfaces/friends/index.js +3 -0
  205. package/src/lib/interfaces/friends/index.js.map +1 -0
  206. package/src/lib/interfaces/friends/pagination.d.ts +11 -0
  207. package/src/lib/interfaces/friends/pagination.d.ts.map +1 -0
  208. package/src/lib/interfaces/friends/pagination.js +3 -0
  209. package/src/lib/interfaces/friends/pagination.js.map +1 -0
  210. package/src/lib/interfaces/identity/brightChainIdentity.d.ts +29 -0
  211. package/src/lib/interfaces/identity/brightChainIdentity.d.ts.map +1 -0
  212. package/src/lib/interfaces/identity/brightChainIdentity.js +3 -0
  213. package/src/lib/interfaces/identity/brightChainIdentity.js.map +1 -0
  214. package/src/lib/interfaces/identity/index.d.ts +1 -0
  215. package/src/lib/interfaces/identity/index.d.ts.map +1 -1
  216. package/src/lib/interfaces/index.d.ts +7 -0
  217. package/src/lib/interfaces/index.d.ts.map +1 -1
  218. package/src/lib/interfaces/index.js +8 -0
  219. package/src/lib/interfaces/index.js.map +1 -1
  220. package/src/lib/interfaces/messaging/attachmentMetadata.d.ts +12 -0
  221. package/src/lib/interfaces/messaging/attachmentMetadata.d.ts.map +1 -1
  222. package/src/lib/interfaces/messaging/emailMetadata.d.ts +55 -0
  223. package/src/lib/interfaces/messaging/emailMetadata.d.ts.map +1 -1
  224. package/src/lib/interfaces/messaging/emailMetadata.js.map +1 -1
  225. package/src/lib/interfaces/pouw/challengeToken.d.ts +20 -0
  226. package/src/lib/interfaces/pouw/challengeToken.d.ts.map +1 -0
  227. package/src/lib/interfaces/pouw/challengeToken.js +3 -0
  228. package/src/lib/interfaces/pouw/challengeToken.js.map +1 -0
  229. package/src/lib/interfaces/pouw/index.d.ts +8 -0
  230. package/src/lib/interfaces/pouw/index.d.ts.map +1 -0
  231. package/src/lib/interfaces/pouw/index.js +12 -0
  232. package/src/lib/interfaces/pouw/index.js.map +1 -0
  233. package/src/lib/interfaces/pouw/pouwConfig.d.ts +91 -0
  234. package/src/lib/interfaces/pouw/pouwConfig.d.ts.map +1 -0
  235. package/src/lib/interfaces/pouw/pouwConfig.js +24 -0
  236. package/src/lib/interfaces/pouw/pouwConfig.js.map +1 -0
  237. package/src/lib/interfaces/pouw/pouwMetrics.d.ts +23 -0
  238. package/src/lib/interfaces/pouw/pouwMetrics.d.ts.map +1 -0
  239. package/src/lib/interfaces/pouw/pouwMetrics.js +3 -0
  240. package/src/lib/interfaces/pouw/pouwMetrics.js.map +1 -0
  241. package/src/lib/interfaces/pouw/workResult.d.ts +19 -0
  242. package/src/lib/interfaces/pouw/workResult.d.ts.map +1 -0
  243. package/src/lib/interfaces/pouw/workResult.js +3 -0
  244. package/src/lib/interfaces/pouw/workResult.js.map +1 -0
  245. package/src/lib/interfaces/pouw/workUnit.d.ts +48 -0
  246. package/src/lib/interfaces/pouw/workUnit.d.ts.map +1 -0
  247. package/src/lib/interfaces/pouw/workUnit.js +14 -0
  248. package/src/lib/interfaces/pouw/workUnit.js.map +1 -0
  249. package/src/lib/interfaces/responses/adminDashboardResponse.d.ts +7 -0
  250. package/src/lib/interfaces/responses/adminDashboardResponse.d.ts.map +1 -1
  251. package/src/lib/interfaces/responses/communicationResponses.d.ts +2 -0
  252. package/src/lib/interfaces/responses/communicationResponses.d.ts.map +1 -1
  253. package/src/lib/interfaces/responses/identityResponseData.d.ts +10 -0
  254. package/src/lib/interfaces/responses/identityResponseData.d.ts.map +1 -0
  255. package/src/lib/interfaces/responses/identityResponseData.js +3 -0
  256. package/src/lib/interfaces/responses/identityResponseData.js.map +1 -0
  257. package/src/lib/interfaces/responses/index.d.ts +1 -0
  258. package/src/lib/interfaces/responses/index.d.ts.map +1 -1
  259. package/src/lib/interfaces/staging/commitRequest.d.ts +28 -0
  260. package/src/lib/interfaces/staging/commitRequest.d.ts.map +1 -0
  261. package/src/lib/interfaces/staging/commitRequest.js +3 -0
  262. package/src/lib/interfaces/staging/commitRequest.js.map +1 -0
  263. package/src/lib/interfaces/staging/commitResponse.d.ts +17 -0
  264. package/src/lib/interfaces/staging/commitResponse.d.ts.map +1 -0
  265. package/src/lib/interfaces/staging/commitResponse.js +3 -0
  266. package/src/lib/interfaces/staging/commitResponse.js.map +1 -0
  267. package/src/lib/interfaces/staging/index.d.ts +7 -0
  268. package/src/lib/interfaces/staging/index.d.ts.map +1 -0
  269. package/src/lib/interfaces/staging/index.js +6 -0
  270. package/src/lib/interfaces/staging/index.js.map +1 -0
  271. package/src/lib/interfaces/staging/processingParams.d.ts +16 -0
  272. package/src/lib/interfaces/staging/processingParams.d.ts.map +1 -0
  273. package/src/lib/interfaces/staging/processingParams.js +3 -0
  274. package/src/lib/interfaces/staging/processingParams.js.map +1 -0
  275. package/src/lib/interfaces/staging/stagedFileRecord.d.ts +23 -0
  276. package/src/lib/interfaces/staging/stagedFileRecord.d.ts.map +1 -0
  277. package/src/lib/interfaces/staging/stagedFileRecord.js +3 -0
  278. package/src/lib/interfaces/staging/stagedFileRecord.js.map +1 -0
  279. package/src/lib/interfaces/staging/stagingConfig.d.ts +19 -0
  280. package/src/lib/interfaces/staging/stagingConfig.d.ts.map +1 -0
  281. package/src/lib/interfaces/staging/stagingConfig.js +11 -0
  282. package/src/lib/interfaces/staging/stagingConfig.js.map +1 -0
  283. package/src/lib/interfaces/staging/tempUploadResponse.d.ts +19 -0
  284. package/src/lib/interfaces/staging/tempUploadResponse.d.ts.map +1 -0
  285. package/src/lib/interfaces/staging/tempUploadResponse.js +3 -0
  286. package/src/lib/interfaces/staging/tempUploadResponse.js.map +1 -0
  287. package/src/lib/interfaces/storage/blockStore.d.ts +22 -4
  288. package/src/lib/interfaces/storage/blockStore.d.ts.map +1 -1
  289. package/src/lib/interfaces/storage/documentTypes.d.ts +4 -0
  290. package/src/lib/interfaces/storage/documentTypes.d.ts.map +1 -1
  291. package/src/lib/interfaces/storage/headRegistry.d.ts +38 -0
  292. package/src/lib/interfaces/storage/headRegistry.d.ts.map +1 -1
  293. package/src/lib/interfaces/storage/headRegistryDriver.d.ts +47 -0
  294. package/src/lib/interfaces/storage/headRegistryDriver.d.ts.map +1 -0
  295. package/src/lib/interfaces/storage/headRegistryDriver.js +15 -0
  296. package/src/lib/interfaces/storage/headRegistryDriver.js.map +1 -0
  297. package/src/lib/interfaces/storage/index.d.ts +1 -0
  298. package/src/lib/interfaces/storage/index.d.ts.map +1 -1
  299. package/src/lib/interfaces/storage/index.js.map +1 -1
  300. package/src/lib/joule/formatJoule.d.ts +44 -0
  301. package/src/lib/joule/formatJoule.d.ts.map +1 -0
  302. package/src/lib/joule/formatJoule.js +121 -0
  303. package/src/lib/joule/formatJoule.js.map +1 -0
  304. package/src/lib/joule/index.d.ts +10 -0
  305. package/src/lib/joule/index.d.ts.map +1 -0
  306. package/src/lib/joule/index.js +13 -0
  307. package/src/lib/joule/index.js.map +1 -0
  308. package/src/lib/joule/jouleConstants.d.ts +13 -0
  309. package/src/lib/joule/jouleConstants.d.ts.map +1 -0
  310. package/src/lib/joule/jouleConstants.js +18 -0
  311. package/src/lib/joule/jouleConstants.js.map +1 -0
  312. package/src/lib/joule/rateTable.d.ts +55 -0
  313. package/src/lib/joule/rateTable.d.ts.map +1 -0
  314. package/src/lib/joule/rateTable.js +58 -0
  315. package/src/lib/joule/rateTable.js.map +1 -0
  316. package/src/lib/joule/resourceClass.d.ts +18 -0
  317. package/src/lib/joule/resourceClass.d.ts.map +1 -0
  318. package/src/lib/joule/resourceClass.js +28 -0
  319. package/src/lib/joule/resourceClass.js.map +1 -0
  320. package/src/lib/operationCost.d.ts +12 -7
  321. package/src/lib/operationCost.d.ts.map +1 -1
  322. package/src/lib/operationCost.js +11 -4
  323. package/src/lib/operationCost.js.map +1 -1
  324. package/src/lib/pouw/computeWorkUnit.d.ts +41 -0
  325. package/src/lib/pouw/computeWorkUnit.d.ts.map +1 -0
  326. package/src/lib/pouw/computeWorkUnit.js +92 -0
  327. package/src/lib/pouw/computeWorkUnit.js.map +1 -0
  328. package/src/lib/pouw/index.d.ts +8 -0
  329. package/src/lib/pouw/index.d.ts.map +1 -0
  330. package/src/lib/pouw/index.js +12 -0
  331. package/src/lib/pouw/index.js.map +1 -0
  332. package/src/lib/serializers/index.d.ts +2 -0
  333. package/src/lib/serializers/index.d.ts.map +1 -0
  334. package/src/lib/serializers/index.js +10 -0
  335. package/src/lib/serializers/index.js.map +1 -0
  336. package/src/lib/serializers/workUnitSerializer.d.ts +39 -0
  337. package/src/lib/serializers/workUnitSerializer.d.ts.map +1 -0
  338. package/src/lib/serializers/workUnitSerializer.js +150 -0
  339. package/src/lib/serializers/workUnitSerializer.js.map +1 -0
  340. package/src/lib/services/communication/__tests__/mockChatStorageProvider.d.ts +1 -1
  341. package/src/lib/services/communication/__tests__/mockChatStorageProvider.d.ts.map +1 -1
  342. package/src/lib/services/communication/__tests__/mockChatStorageProvider.js +5 -3
  343. package/src/lib/services/communication/__tests__/mockChatStorageProvider.js.map +1 -1
  344. package/src/lib/services/communication/__tests__/mockStorageProvider.d.ts +6 -0
  345. package/src/lib/services/communication/__tests__/mockStorageProvider.d.ts.map +1 -0
  346. package/src/lib/services/communication/__tests__/mockStorageProvider.js +41 -0
  347. package/src/lib/services/communication/__tests__/mockStorageProvider.js.map +1 -0
  348. package/src/lib/services/communication/channelService.d.ts +17 -3
  349. package/src/lib/services/communication/channelService.d.ts.map +1 -1
  350. package/src/lib/services/communication/channelService.js +80 -15
  351. package/src/lib/services/communication/channelService.js.map +1 -1
  352. package/src/lib/services/communication/conversationService.d.ts +1 -1
  353. package/src/lib/services/communication/conversationService.d.ts.map +1 -1
  354. package/src/lib/services/communication/conversationService.js +34 -4
  355. package/src/lib/services/communication/conversationService.js.map +1 -1
  356. package/src/lib/services/communication/groupService.d.ts +1 -1
  357. package/src/lib/services/communication/groupService.d.ts.map +1 -1
  358. package/src/lib/services/communication/groupService.js +30 -4
  359. package/src/lib/services/communication/groupService.js.map +1 -1
  360. package/src/lib/services/communication/rehydrationHelpers.d.ts.map +1 -1
  361. package/src/lib/services/communication/rehydrationHelpers.js +1 -2
  362. package/src/lib/services/communication/rehydrationHelpers.js.map +1 -1
  363. package/src/lib/services/communication/serverService.d.ts +13 -115
  364. package/src/lib/services/communication/serverService.d.ts.map +1 -1
  365. package/src/lib/services/communication/serverService.js +93 -239
  366. package/src/lib/services/communication/serverService.js.map +1 -1
  367. package/src/lib/services/copyOnWrite.service.d.ts +110 -0
  368. package/src/lib/services/copyOnWrite.service.d.ts.map +1 -0
  369. package/src/lib/services/copyOnWrite.service.js +255 -0
  370. package/src/lib/services/copyOnWrite.service.js.map +1 -0
  371. package/src/lib/services/index.d.ts +1 -0
  372. package/src/lib/services/index.d.ts.map +1 -1
  373. package/src/lib/services/index.js +1 -0
  374. package/src/lib/services/index.js.map +1 -1
  375. package/src/lib/services/memberStore.d.ts +7 -1
  376. package/src/lib/services/memberStore.d.ts.map +1 -1
  377. package/src/lib/services/memberStore.js +57 -1
  378. package/src/lib/services/memberStore.js.map +1 -1
  379. package/src/lib/services/messaging/emailMessageService.d.ts +89 -0
  380. package/src/lib/services/messaging/emailMessageService.d.ts.map +1 -1
  381. package/src/lib/services/messaging/emailMessageService.js +207 -28
  382. package/src/lib/services/messaging/emailMessageService.js.map +1 -1
  383. package/src/lib/services/messaging/emailParser.d.ts.map +1 -1
  384. package/src/lib/services/messaging/emailParser.js +1 -0
  385. package/src/lib/services/messaging/emailParser.js.map +1 -1
  386. package/src/lib/stores/assetAccountStore.d.ts +102 -0
  387. package/src/lib/stores/assetAccountStore.d.ts.map +1 -0
  388. package/src/lib/stores/assetAccountStore.js +276 -0
  389. package/src/lib/stores/assetAccountStore.js.map +1 -0
  390. package/src/lib/stores/blockStoreAdapter.d.ts +2 -0
  391. package/src/lib/stores/blockStoreAdapter.d.ts.map +1 -1
  392. package/src/lib/stores/blockStoreAdapter.js +3 -0
  393. package/src/lib/stores/blockStoreAdapter.js.map +1 -1
  394. package/src/lib/stores/energyAccountStore.d.ts +22 -36
  395. package/src/lib/stores/energyAccountStore.d.ts.map +1 -1
  396. package/src/lib/stores/energyAccountStore.js +33 -63
  397. package/src/lib/stores/energyAccountStore.js.map +1 -1
  398. package/src/lib/stores/memoryBlockStore.d.ts +16 -1
  399. package/src/lib/stores/memoryBlockStore.d.ts.map +1 -1
  400. package/src/lib/stores/memoryBlockStore.js +42 -6
  401. package/src/lib/stores/memoryBlockStore.js.map +1 -1
  402. package/src/lib/utils/index.d.ts +6 -0
  403. package/src/lib/utils/index.d.ts.map +1 -1
  404. package/src/lib/utils/index.js +9 -0
  405. package/src/lib/utils/index.js.map +1 -1
  406. package/src/lib/utils/sortPair.d.ts +6 -0
  407. package/src/lib/utils/sortPair.d.ts.map +1 -0
  408. package/src/lib/utils/sortPair.js +11 -0
  409. package/src/lib/utils/sortPair.js.map +1 -0
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ /**
3
+ * Rate table primitives for Joule resource-credit metering.
4
+ *
5
+ * A `IRateTable` maps each `ResourceClass` to a `µJ-per-unit` price.
6
+ * All arithmetic is `bigint`; no floating-point is introduced.
7
+ *
8
+ * @see joule-resource-credits spec, Requirement 1.1, 1.6
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.BOOTSTRAP_RATE_TABLE = void 0;
12
+ exports.priceMicroJoules = priceMicroJoules;
13
+ /**
14
+ * Compute the µJ cost for `units` of resource class `cls` under `rate`.
15
+ *
16
+ * Formula: `microJoules = units * microJoulesPerUnit` (bigint, exact).
17
+ *
18
+ * @see joule-resource-credits spec, Requirement 1.6
19
+ */
20
+ function priceMicroJoules(rate, cls, units) {
21
+ return units * rate.entries[cls].microJoulesPerUnit;
22
+ }
23
+ /**
24
+ * Default bootstrap rate table (version 1).
25
+ *
26
+ * Rates are intentionally conservative placeholders; the operator quorum
27
+ * SHOULD submit a `RateTableUpdateAction` before opening to members.
28
+ *
29
+ * @see joule-resource-credits spec, Requirement 1.1
30
+ */
31
+ exports.BOOTSTRAP_RATE_TABLE = {
32
+ version: 1,
33
+ effectiveAt: 0, // overridden by bootstrap caller with actual timestamp
34
+ entries: {
35
+ compute: {
36
+ unit: 'request',
37
+ microJoulesPerUnit: 1000n, // 1 mJ per request
38
+ description: 'CPU/compute per API request',
39
+ },
40
+ storage: {
41
+ unit: 'MB-day',
42
+ microJoulesPerUnit: 100n, // 0.1 mJ per MB-day
43
+ description: 'Persistent storage per megabyte per day',
44
+ },
45
+ network: {
46
+ unit: 'MB-out',
47
+ microJoulesPerUnit: 500n, // 0.5 mJ per MB transferred out
48
+ description: 'Outbound bandwidth per megabyte',
49
+ },
50
+ proofOfWork: {
51
+ unit: 'proof',
52
+ microJoulesPerUnit: 10000n, // 10 mJ per proof submission
53
+ description: 'Proof-of-work submission cost',
54
+ },
55
+ },
56
+ signedBy: [],
57
+ };
58
+ //# sourceMappingURL=rateTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rateTable.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/joule/rateTable.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAyCH,4CAMC;AAbD;;;;;;GAMG;AACH,SAAgB,gBAAgB,CAC9B,IAAgB,EAChB,GAAkB,EAClB,KAAa;IAEb,OAAO,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,kBAAkB,CAAC;AACtD,CAAC;AAED;;;;;;;GAOG;AACU,QAAA,oBAAoB,GAAyB;IACxD,OAAO,EAAE,CAAC;IACV,WAAW,EAAE,CAAC,EAAE,uDAAuD;IACvE,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,SAAS;YACf,kBAAkB,EAAE,KAAM,EAAE,mBAAmB;YAC/C,WAAW,EAAE,6BAA6B;SAC3C;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,kBAAkB,EAAE,IAAI,EAAE,oBAAoB;YAC9C,WAAW,EAAE,yCAAyC;SACvD;QACD,OAAO,EAAE;YACP,IAAI,EAAE,QAAQ;YACd,kBAAkB,EAAE,IAAI,EAAE,gCAAgC;YAC1D,WAAW,EAAE,iCAAiC;SAC/C;QACD,WAAW,EAAE;YACX,IAAI,EAAE,OAAO;YACb,kBAAkB,EAAE,MAAO,EAAE,6BAA6B;YAC1D,WAAW,EAAE,+BAA+B;SAC7C;KACF;IACD,QAAQ,EAAE,EAAE;CACb,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Resource class taxonomy for Joule metering.
3
+ *
4
+ * v1 classes mirror the fields of `OperationCost` in `brightchain-lib`.
5
+ * Each class maps to one row in the active `IRateTable`.
6
+ *
7
+ * @see joule-resource-credits spec, Requirement 1.1
8
+ */
9
+ /** Categorical bucket consumed at a per-class rate. */
10
+ export type ResourceClass = 'compute' | 'storage' | 'network' | 'proofOfWork';
11
+ /** Exhaustive list of v1 resource classes, suitable for iteration and
12
+ * validation. Order is stable across versions. */
13
+ export declare const RESOURCE_CLASSES: readonly ResourceClass[];
14
+ /**
15
+ * Type guard that narrows an unknown string to `ResourceClass`.
16
+ */
17
+ export declare function isResourceClass(value: unknown): value is ResourceClass;
18
+ //# sourceMappingURL=resourceClass.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resourceClass.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/joule/resourceClass.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,uDAAuD;AACvD,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,SAAS,GAAG,aAAa,CAAC;AAE9E;mDACmD;AACnD,eAAO,MAAM,gBAAgB,EAAE,SAAS,aAAa,EAK3C,CAAC;AAEX;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAKtE"}
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ /**
3
+ * Resource class taxonomy for Joule metering.
4
+ *
5
+ * v1 classes mirror the fields of `OperationCost` in `brightchain-lib`.
6
+ * Each class maps to one row in the active `IRateTable`.
7
+ *
8
+ * @see joule-resource-credits spec, Requirement 1.1
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.RESOURCE_CLASSES = void 0;
12
+ exports.isResourceClass = isResourceClass;
13
+ /** Exhaustive list of v1 resource classes, suitable for iteration and
14
+ * validation. Order is stable across versions. */
15
+ exports.RESOURCE_CLASSES = [
16
+ 'compute',
17
+ 'storage',
18
+ 'network',
19
+ 'proofOfWork',
20
+ ];
21
+ /**
22
+ * Type guard that narrows an unknown string to `ResourceClass`.
23
+ */
24
+ function isResourceClass(value) {
25
+ return (typeof value === 'string' &&
26
+ exports.RESOURCE_CLASSES.includes(value));
27
+ }
28
+ //# sourceMappingURL=resourceClass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resourceClass.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/joule/resourceClass.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAiBH,0CAKC;AAjBD;mDACmD;AACtC,QAAA,gBAAgB,GAA6B;IACxD,SAAS;IACT,SAAS;IACT,SAAS;IACT,aAAa;CACL,CAAC;AAEX;;GAEG;AACH,SAAgB,eAAe,CAAC,KAAc;IAC5C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACxB,wBAAsC,CAAC,QAAQ,CAAC,KAAK,CAAC,CACxD,CAAC;AACJ,CAAC"}
@@ -1,13 +1,18 @@
1
1
  /**
2
- * Operation cost breakdown in Joules
2
+ * Operation cost breakdown in microunits (bigint).
3
3
  */
4
4
  export declare class OperationCost {
5
- readonly computation: number;
6
- readonly storage: number;
7
- readonly network: number;
8
- readonly proofOfWork: number;
9
- constructor(computation: number, storage: number, network: number, proofOfWork?: number);
10
- get totalJoules(): number;
5
+ readonly computation: bigint;
6
+ readonly storage: bigint;
7
+ readonly network: bigint;
8
+ readonly proofOfWork: bigint;
9
+ constructor(computation: bigint, storage: bigint, network: bigint, proofOfWork?: bigint);
10
+ get totalMicrojoules(): bigint;
11
+ /**
12
+ * @deprecated Alias for {@link totalMicrojoules} — retained for grep
13
+ * compatibility. Returns `bigint` microunits, not floating-point joules.
14
+ */
15
+ get totalJoules(): bigint;
11
16
  /**
12
17
  * Create zero-cost operation
13
18
  */
@@ -1 +1 @@
1
- {"version":3,"file":"operationCost.d.ts","sourceRoot":"","sources":["../../../../brightchain-lib/src/lib/operationCost.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,aAAa;aAEN,WAAW,EAAE,MAAM;aACnB,OAAO,EAAE,MAAM;aACf,OAAO,EAAE,MAAM;aACf,WAAW,EAAE,MAAM;gBAHnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,MAAU;IAGzC,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,IAAI,aAAa;IAI5B;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa;CAQzC"}
1
+ {"version":3,"file":"operationCost.d.ts","sourceRoot":"","sources":["../../../../brightchain-lib/src/lib/operationCost.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,qBAAa,aAAa;aAEN,WAAW,EAAE,MAAM;aACnB,OAAO,EAAE,MAAM;aACf,OAAO,EAAE,MAAM;aACf,WAAW,EAAE,MAAM;gBAHnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,WAAW,GAAE,MAAW;IAG1C,IAAI,gBAAgB,IAAI,MAAM,CAE7B;IAED;;;OAGG;IACH,IAAI,WAAW,IAAI,MAAM,CAExB;IAED;;OAEG;IACH,MAAM,CAAC,IAAI,IAAI,aAAa;IAI5B;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,aAAa,GAAG,aAAa;CAQzC"}
@@ -2,27 +2,34 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.OperationCost = void 0;
4
4
  /**
5
- * Operation cost breakdown in Joules
5
+ * Operation cost breakdown in microunits (bigint).
6
6
  */
7
7
  class OperationCost {
8
8
  computation;
9
9
  storage;
10
10
  network;
11
11
  proofOfWork;
12
- constructor(computation, storage, network, proofOfWork = 0) {
12
+ constructor(computation, storage, network, proofOfWork = 0n) {
13
13
  this.computation = computation;
14
14
  this.storage = storage;
15
15
  this.network = network;
16
16
  this.proofOfWork = proofOfWork;
17
17
  }
18
- get totalJoules() {
18
+ get totalMicrojoules() {
19
19
  return this.computation + this.storage + this.network + this.proofOfWork;
20
20
  }
21
+ /**
22
+ * @deprecated Alias for {@link totalMicrojoules} — retained for grep
23
+ * compatibility. Returns `bigint` microunits, not floating-point joules.
24
+ */
25
+ get totalJoules() {
26
+ return this.totalMicrojoules;
27
+ }
21
28
  /**
22
29
  * Create zero-cost operation
23
30
  */
24
31
  static zero() {
25
- return new OperationCost(0, 0, 0, 0);
32
+ return new OperationCost(0n, 0n, 0n, 0n);
26
33
  }
27
34
  /**
28
35
  * Add two operation costs
@@ -1 +1 @@
1
- {"version":3,"file":"operationCost.js","sourceRoot":"","sources":["../../../../brightchain-lib/src/lib/operationCost.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,aAAa;IAEN;IACA;IACA;IACA;IAJlB,YACkB,WAAmB,EACnB,OAAe,EACf,OAAe,EACf,cAAsB,CAAC;QAHvB,gBAAW,GAAX,WAAW,CAAQ;QACnB,YAAO,GAAP,OAAO,CAAQ;QACf,YAAO,GAAP,OAAO,CAAQ;QACf,gBAAW,GAAX,WAAW,CAAY;IACtC,CAAC;IAEJ,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;IAC3E,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI;QACT,OAAO,IAAI,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IACvC,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,KAAoB;QACtB,OAAO,IAAI,aAAa,CACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,EACpC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,EAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,EAC5B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CACrC,CAAC;IACJ,CAAC;CACF;AA9BD,sCA8BC"}
1
+ {"version":3,"file":"operationCost.js","sourceRoot":"","sources":["../../../../brightchain-lib/src/lib/operationCost.ts"],"names":[],"mappings":";;;AAAA;;GAEG;AACH,MAAa,aAAa;IAEN;IACA;IACA;IACA;IAJlB,YACkB,WAAmB,EACnB,OAAe,EACf,OAAe,EACf,cAAsB,EAAE;QAHxB,gBAAW,GAAX,WAAW,CAAQ;QACnB,YAAO,GAAP,OAAO,CAAQ;QACf,YAAO,GAAP,OAAO,CAAQ;QACf,gBAAW,GAAX,WAAW,CAAa;IACvC,CAAC;IAEJ,IAAI,gBAAgB;QAClB,OAAO,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC;IAC3E,CAAC;IAED;;;OAGG;IACH,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,gBAAgB,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,IAAI;QACT,OAAO,IAAI,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,KAAoB;QACtB,OAAO,IAAI,aAAa,CACtB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,EACpC,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,EAC5B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,EAC5B,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CACrC,CAAC;IACJ,CAAC;CACF;AAtCD,sCAsCC"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * @fileoverview Browser-safe client-side computation of PoUW work units.
3
+ *
4
+ * Accepts an IWorkUnit payload, performs the requested SHA3-512 hash operation
5
+ * (LeafHash or InteriorHash), and returns an IWorkResult with the computed
6
+ * hash, timing metadata, and the original challenge token.
7
+ *
8
+ * Uses `@noble/hashes/sha3` directly for browser compatibility.
9
+ *
10
+ * @see Requirements 7.1, 7.2, 7.3, 7.4, 7.5
11
+ */
12
+ import { IWorkResult } from '../interfaces/pouw/workResult';
13
+ import { IWorkUnit } from '../interfaces/pouw/workUnit';
14
+ /**
15
+ * Callback invoked to report computation progress.
16
+ *
17
+ * @param completed - Number of steps completed so far.
18
+ * @param total - Total number of steps in this work unit.
19
+ */
20
+ export type ProgressCallback = (completed: number, total: number) => void;
21
+ /**
22
+ * Compute a single PoUW work unit and return the result.
23
+ *
24
+ * For **LeafHash**: decodes the base64 `inputData`, computes SHA3-512, and
25
+ * returns the 128-character lowercase hex digest.
26
+ *
27
+ * For **InteriorHash**: decodes the base64 `inputData` (concatenated child
28
+ * hashes), computes SHA3-512 over the concatenation, and returns the hex
29
+ * digest.
30
+ *
31
+ * @param workUnit - The work unit to compute.
32
+ * @param onProgress - Optional callback for progress reporting.
33
+ * @returns A promise resolving to the computed IWorkResult.
34
+ *
35
+ * @throws {TranslatableBrightChainError} if the operation type is unsupported
36
+ * or the input data is not valid base64.
37
+ *
38
+ * @see Requirements 7.1, 7.2, 7.3, 7.4, 7.5
39
+ */
40
+ export declare function computeWorkUnit(workUnit: IWorkUnit, onProgress?: ProgressCallback): Promise<IWorkResult>;
41
+ //# sourceMappingURL=computeWorkUnit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeWorkUnit.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/pouw/computeWorkUnit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAMH,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAqB,MAAM,6BAA6B,CAAC;AAE3E;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AA+B1E;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,SAAS,EACnB,UAAU,CAAC,EAAE,gBAAgB,GAC5B,OAAO,CAAC,WAAW,CAAC,CAsCtB"}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Browser-safe client-side computation of PoUW work units.
4
+ *
5
+ * Accepts an IWorkUnit payload, performs the requested SHA3-512 hash operation
6
+ * (LeafHash or InteriorHash), and returns an IWorkResult with the computed
7
+ * hash, timing metadata, and the original challenge token.
8
+ *
9
+ * Uses `@noble/hashes/sha3` directly for browser compatibility.
10
+ *
11
+ * @see Requirements 7.1, 7.2, 7.3, 7.4, 7.5
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.computeWorkUnit = computeWorkUnit;
15
+ const ecies_lib_1 = require("@digitaldefiance/ecies-lib");
16
+ const sha3_1 = require("@noble/hashes/sha3");
17
+ const brightChainStrings_1 = require("../enumerations/brightChainStrings");
18
+ const translatableBrightChainError_1 = require("../errors/translatableBrightChainError");
19
+ const workUnit_1 = require("../interfaces/pouw/workUnit");
20
+ /**
21
+ * Browser-safe base64 decoder.
22
+ *
23
+ * Uses `atob` (available in browsers and Node ≥ 16 via global) with a
24
+ * manual Uint8Array conversion so we avoid depending on Node's `Buffer`.
25
+ */
26
+ function decodeBase64(base64) {
27
+ // Validate that the string is plausible base64
28
+ // Allow standard base64 characters plus padding
29
+ if (!/^[A-Za-z0-9+/]*={0,2}$/.test(base64)) {
30
+ throw new translatableBrightChainError_1.TranslatableBrightChainError(brightChainStrings_1.BrightChainStrings.Error_PoUW_ComputeWorkUnit_InvalidBase64Input);
31
+ }
32
+ try {
33
+ const binaryString = atob(base64);
34
+ const bytes = new Uint8Array(binaryString.length);
35
+ for (let i = 0; i < binaryString.length; i++) {
36
+ bytes[i] = binaryString.charCodeAt(i);
37
+ }
38
+ return bytes;
39
+ }
40
+ catch {
41
+ throw new translatableBrightChainError_1.TranslatableBrightChainError(brightChainStrings_1.BrightChainStrings.Error_PoUW_ComputeWorkUnit_InvalidBase64Input);
42
+ }
43
+ }
44
+ /**
45
+ * Compute a single PoUW work unit and return the result.
46
+ *
47
+ * For **LeafHash**: decodes the base64 `inputData`, computes SHA3-512, and
48
+ * returns the 128-character lowercase hex digest.
49
+ *
50
+ * For **InteriorHash**: decodes the base64 `inputData` (concatenated child
51
+ * hashes), computes SHA3-512 over the concatenation, and returns the hex
52
+ * digest.
53
+ *
54
+ * @param workUnit - The work unit to compute.
55
+ * @param onProgress - Optional callback for progress reporting.
56
+ * @returns A promise resolving to the computed IWorkResult.
57
+ *
58
+ * @throws {TranslatableBrightChainError} if the operation type is unsupported
59
+ * or the input data is not valid base64.
60
+ *
61
+ * @see Requirements 7.1, 7.2, 7.3, 7.4, 7.5
62
+ */
63
+ async function computeWorkUnit(workUnit, onProgress) {
64
+ const total = 1;
65
+ // Signal start of computation
66
+ onProgress?.(0, total);
67
+ const startTime = Date.now();
68
+ let resultHash;
69
+ switch (workUnit.operation) {
70
+ case workUnit_1.WorkUnitOperation.LeafHash:
71
+ case workUnit_1.WorkUnitOperation.InteriorHash: {
72
+ // Both operations follow the same pattern: decode base64 → SHA3-512 → hex
73
+ const inputBytes = decodeBase64(workUnit.inputData);
74
+ const hashBytes = (0, sha3_1.sha3_512)(inputBytes);
75
+ resultHash = (0, ecies_lib_1.uint8ArrayToHex)(hashBytes);
76
+ break;
77
+ }
78
+ default:
79
+ throw new translatableBrightChainError_1.TranslatableBrightChainError(brightChainStrings_1.BrightChainStrings.Error_PoUW_ComputeWorkUnit_InvalidOperationTemplate, { OPERATION: String(workUnit.operation) });
80
+ }
81
+ const computeTimeMs = Date.now() - startTime;
82
+ // Signal completion
83
+ onProgress?.(total, total);
84
+ return {
85
+ workUnitId: workUnit.id,
86
+ resultHash,
87
+ challengeToken: workUnit.challengeToken,
88
+ computeTimeMs,
89
+ completedAt: new Date().toISOString(),
90
+ };
91
+ }
92
+ //# sourceMappingURL=computeWorkUnit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computeWorkUnit.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/pouw/computeWorkUnit.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;AAiEH,0CAyCC;AAxGD,0DAA6D;AAC7D,6CAA8C;AAC9C,2EAAwE;AACxE,yFAAsF;AAEtF,0DAA2E;AAU3E;;;;;GAKG;AACH,SAAS,YAAY,CAAC,MAAc;IAClC,+CAA+C;IAC/C,gDAAgD;IAChD,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,2DAA4B,CACpC,uCAAkB,CAAC,6CAA6C,CACjE,CAAC;IACJ,CAAC;IAED,IAAI,CAAC;QACH,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAClD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,KAAK,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACxC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,2DAA4B,CACpC,uCAAkB,CAAC,6CAA6C,CACjE,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACI,KAAK,UAAU,eAAe,CACnC,QAAmB,EACnB,UAA6B;IAE7B,MAAM,KAAK,GAAG,CAAC,CAAC;IAEhB,8BAA8B;IAC9B,UAAU,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAEvB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,IAAI,UAAkB,CAAC;IAEvB,QAAQ,QAAQ,CAAC,SAAS,EAAE,CAAC;QAC3B,KAAK,4BAAiB,CAAC,QAAQ,CAAC;QAChC,KAAK,4BAAiB,CAAC,YAAY,CAAC,CAAC,CAAC;YACpC,0EAA0E;YAC1E,MAAM,UAAU,GAAG,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;YACpD,MAAM,SAAS,GAAG,IAAA,eAAQ,EAAC,UAAU,CAAC,CAAC;YACvC,UAAU,GAAG,IAAA,2BAAe,EAAC,SAAS,CAAC,CAAC;YACxC,MAAM;QACR,CAAC;QACD;YACE,MAAM,IAAI,2DAA4B,CACpC,uCAAkB,CAAC,mDAAmD,EACtE,EAAE,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAC1C,CAAC;IACN,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;IAE7C,oBAAoB;IACpB,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAE3B,OAAO;QACL,UAAU,EAAE,QAAQ,CAAC,EAAE;QACvB,UAAU;QACV,cAAc,EAAE,QAAQ,CAAC,cAAc;QACvC,aAAa;QACb,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @fileoverview Barrel export for the PoUW (Proof of Useful Work) client module.
3
+ *
4
+ * Exports the browser-safe `computeWorkUnit()` function and the
5
+ * `ProgressCallback` type for use by frontend consumers.
6
+ */
7
+ export { computeWorkUnit, type ProgressCallback } from './computeWorkUnit';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/pouw/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,eAAe,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview Barrel export for the PoUW (Proof of Useful Work) client module.
4
+ *
5
+ * Exports the browser-safe `computeWorkUnit()` function and the
6
+ * `ProgressCallback` type for use by frontend consumers.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.computeWorkUnit = void 0;
10
+ var computeWorkUnit_1 = require("./computeWorkUnit");
11
+ Object.defineProperty(exports, "computeWorkUnit", { enumerable: true, get: function () { return computeWorkUnit_1.computeWorkUnit; } });
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/pouw/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,qDAA2E;AAAlE,kHAAA,eAAe,OAAA"}
@@ -0,0 +1,2 @@
1
+ export { parseWorkResult, parseWorkUnit, serializeWorkResult, serializeWorkUnit, } from './workUnitSerializer';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/serializers/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,aAAa,EACb,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.serializeWorkUnit = exports.serializeWorkResult = exports.parseWorkUnit = exports.parseWorkResult = void 0;
4
+ // Serializers for PoUW (Proof of Useful Work) data structures
5
+ var workUnitSerializer_1 = require("./workUnitSerializer");
6
+ Object.defineProperty(exports, "parseWorkResult", { enumerable: true, get: function () { return workUnitSerializer_1.parseWorkResult; } });
7
+ Object.defineProperty(exports, "parseWorkUnit", { enumerable: true, get: function () { return workUnitSerializer_1.parseWorkUnit; } });
8
+ Object.defineProperty(exports, "serializeWorkResult", { enumerable: true, get: function () { return workUnitSerializer_1.serializeWorkResult; } });
9
+ Object.defineProperty(exports, "serializeWorkUnit", { enumerable: true, get: function () { return workUnitSerializer_1.serializeWorkUnit; } });
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/serializers/index.ts"],"names":[],"mappings":";;;AAAA,8DAA8D;AAC9D,2DAK8B;AAJ5B,qHAAA,eAAe,OAAA;AACf,mHAAA,aAAa,OAAA;AACb,yHAAA,mBAAmB,OAAA;AACnB,uHAAA,iBAAiB,OAAA"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @fileoverview WorkUnitSerializer — JSON round-trip serialization for
3
+ * IWorkUnit and IWorkResult payloads.
4
+ *
5
+ * Provides serialize/parse functions for transmitting work units and results
6
+ * over HTTP as JSON strings. All required fields are validated on parse with
7
+ * descriptive error messages indicating which field is invalid or missing.
8
+ *
9
+ * @see Design: Proof of Useful Work Rate Limiting — WorkUnitSerializer
10
+ * @see Requirements 15.1–15.6
11
+ */
12
+ import { IWorkResult, IWorkUnit } from '../interfaces/pouw';
13
+ /**
14
+ * Serialize an IWorkUnit to a JSON string.
15
+ *
16
+ * Since `inputData` is already base64-encoded (it's a string), this is a
17
+ * straightforward JSON.stringify. The function exists as a named entry point
18
+ * to pair with `parseWorkUnit` and to keep the serialization contract explicit.
19
+ */
20
+ export declare function serializeWorkUnit(workUnit: IWorkUnit): string;
21
+ /**
22
+ * Parse a JSON string into an IWorkUnit, validating all required fields.
23
+ *
24
+ * @throws {TranslatableBrightChainError} with a descriptive message if the JSON is malformed or
25
+ * any required field is missing or has the wrong type.
26
+ */
27
+ export declare function parseWorkUnit(json: string): IWorkUnit;
28
+ /**
29
+ * Serialize an IWorkResult to a JSON string.
30
+ */
31
+ export declare function serializeWorkResult(workResult: IWorkResult): string;
32
+ /**
33
+ * Parse a JSON string into an IWorkResult, validating all required fields.
34
+ *
35
+ * @throws {TranslatableBrightChainError} with a descriptive message if the JSON is malformed or
36
+ * any required field is missing or has the wrong type.
37
+ */
38
+ export declare function parseWorkResult(json: string): IWorkResult;
39
+ //# sourceMappingURL=workUnitSerializer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workUnitSerializer.d.ts","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/serializers/workUnitSerializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAKH,OAAO,EAAE,WAAW,EAAE,SAAS,EAAqB,MAAM,oBAAoB,CAAC;AAY/E;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,SAAS,GAAG,MAAM,CAE7D;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAyDrD;AAID;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,WAAW,GAAG,MAAM,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,CA6BzD"}
@@ -0,0 +1,150 @@
1
+ "use strict";
2
+ /**
3
+ * @fileoverview WorkUnitSerializer — JSON round-trip serialization for
4
+ * IWorkUnit and IWorkResult payloads.
5
+ *
6
+ * Provides serialize/parse functions for transmitting work units and results
7
+ * over HTTP as JSON strings. All required fields are validated on parse with
8
+ * descriptive error messages indicating which field is invalid or missing.
9
+ *
10
+ * @see Design: Proof of Useful Work Rate Limiting — WorkUnitSerializer
11
+ * @see Requirements 15.1–15.6
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.serializeWorkUnit = serializeWorkUnit;
15
+ exports.parseWorkUnit = parseWorkUnit;
16
+ exports.serializeWorkResult = serializeWorkResult;
17
+ exports.parseWorkResult = parseWorkResult;
18
+ const brightChainStrings_1 = require("../enumerations/brightChainStrings");
19
+ const difficultyTier_1 = require("../enumerations/difficultyTier");
20
+ const translatableBrightChainError_1 = require("../errors/translatableBrightChainError");
21
+ const pouw_1 = require("../interfaces/pouw");
22
+ // ── Valid enum value sets for runtime validation ────────────────────────
23
+ const VALID_WORK_UNIT_OPERATIONS = new Set(Object.values(pouw_1.WorkUnitOperation));
24
+ const VALID_DIFFICULTY_TIERS = new Set(Object.values(difficultyTier_1.DifficultyTier));
25
+ // ── WorkUnit serialization ─────────────────────────────────────────────
26
+ /**
27
+ * Serialize an IWorkUnit to a JSON string.
28
+ *
29
+ * Since `inputData` is already base64-encoded (it's a string), this is a
30
+ * straightforward JSON.stringify. The function exists as a named entry point
31
+ * to pair with `parseWorkUnit` and to keep the serialization contract explicit.
32
+ */
33
+ function serializeWorkUnit(workUnit) {
34
+ return JSON.stringify(workUnit);
35
+ }
36
+ /**
37
+ * Parse a JSON string into an IWorkUnit, validating all required fields.
38
+ *
39
+ * @throws {TranslatableBrightChainError} with a descriptive message if the JSON is malformed or
40
+ * any required field is missing or has the wrong type.
41
+ */
42
+ function parseWorkUnit(json) {
43
+ let raw;
44
+ try {
45
+ raw = JSON.parse(json);
46
+ }
47
+ catch {
48
+ throw new translatableBrightChainError_1.TranslatableBrightChainError(brightChainStrings_1.BrightChainStrings.Error_PoUW_WorkUnit_InvalidJSONTemplate, { SNIPPET: json.length > 120 ? json.slice(0, 120) + '…' : json });
49
+ }
50
+ if (typeof raw !== 'object' || raw === null || Array.isArray(raw)) {
51
+ throw new translatableBrightChainError_1.TranslatableBrightChainError(brightChainStrings_1.BrightChainStrings.Error_PoUW_WorkUnit_ExpectedObject);
52
+ }
53
+ const obj = raw;
54
+ // Required string fields
55
+ requireString(obj, 'id', 'WorkUnit');
56
+ requireString(obj, 'treeId', 'WorkUnit');
57
+ requireString(obj, 'inputData', 'WorkUnit');
58
+ requireString(obj, 'challengeToken', 'WorkUnit');
59
+ requireString(obj, 'createdAt', 'WorkUnit');
60
+ requireString(obj, 'expiresAt', 'WorkUnit');
61
+ // Required number fields
62
+ requireNumber(obj, 'treeLevel', 'WorkUnit');
63
+ requireNumber(obj, 'treeIndex', 'WorkUnit');
64
+ requireNumber(obj, 'childCount', 'WorkUnit');
65
+ // Enum: operation
66
+ requireString(obj, 'operation', 'WorkUnit');
67
+ if (!VALID_WORK_UNIT_OPERATIONS.has(obj['operation'])) {
68
+ throw new translatableBrightChainError_1.TranslatableBrightChainError(brightChainStrings_1.BrightChainStrings.Error_PoUW_WorkUnit_InvalidOperationTemplate, {
69
+ VALID_VALUES: [...VALID_WORK_UNIT_OPERATIONS].join(', '),
70
+ VALUE: String(obj['operation']),
71
+ });
72
+ }
73
+ // Enum: difficulty
74
+ requireString(obj, 'difficulty', 'WorkUnit');
75
+ if (!VALID_DIFFICULTY_TIERS.has(obj['difficulty'])) {
76
+ throw new translatableBrightChainError_1.TranslatableBrightChainError(brightChainStrings_1.BrightChainStrings.Error_PoUW_WorkUnit_InvalidDifficultyTemplate, {
77
+ VALID_VALUES: [...VALID_DIFFICULTY_TIERS].join(', '),
78
+ VALUE: String(obj['difficulty']),
79
+ });
80
+ }
81
+ return obj;
82
+ }
83
+ // ── WorkResult serialization ───────────────────────────────────────────
84
+ /**
85
+ * Serialize an IWorkResult to a JSON string.
86
+ */
87
+ function serializeWorkResult(workResult) {
88
+ return JSON.stringify(workResult);
89
+ }
90
+ /**
91
+ * Parse a JSON string into an IWorkResult, validating all required fields.
92
+ *
93
+ * @throws {TranslatableBrightChainError} with a descriptive message if the JSON is malformed or
94
+ * any required field is missing or has the wrong type.
95
+ */
96
+ function parseWorkResult(json) {
97
+ let raw;
98
+ try {
99
+ raw = JSON.parse(json);
100
+ }
101
+ catch {
102
+ throw new translatableBrightChainError_1.TranslatableBrightChainError(brightChainStrings_1.BrightChainStrings.Error_PoUW_WorkResult_InvalidJSONTemplate, { SNIPPET: json.length > 120 ? json.slice(0, 120) + '…' : json });
103
+ }
104
+ if (typeof raw !== 'object' || raw === null || Array.isArray(raw)) {
105
+ throw new translatableBrightChainError_1.TranslatableBrightChainError(brightChainStrings_1.BrightChainStrings.Error_PoUW_WorkResult_ExpectedObject);
106
+ }
107
+ const obj = raw;
108
+ // Required string fields
109
+ requireString(obj, 'workUnitId', 'WorkResult');
110
+ requireString(obj, 'resultHash', 'WorkResult');
111
+ requireString(obj, 'challengeToken', 'WorkResult');
112
+ requireString(obj, 'completedAt', 'WorkResult');
113
+ // Required number fields
114
+ requireNumber(obj, 'computeTimeMs', 'WorkResult');
115
+ return obj;
116
+ }
117
+ // ── Private validation helpers ─────────────────────────────────────────
118
+ /**
119
+ * Validate that `obj[field]` exists and is a string.
120
+ * @throws {TranslatableBrightChainError} with a descriptive message on failure.
121
+ */
122
+ function requireString(obj, field, context) {
123
+ if (!(field in obj) || obj[field] === undefined || obj[field] === null) {
124
+ throw new translatableBrightChainError_1.TranslatableBrightChainError(context === 'WorkUnit'
125
+ ? brightChainStrings_1.BrightChainStrings.Error_PoUW_WorkUnit_MissingFieldTemplate
126
+ : brightChainStrings_1.BrightChainStrings.Error_PoUW_WorkResult_MissingFieldTemplate, { FIELD: field });
127
+ }
128
+ if (typeof obj[field] !== 'string') {
129
+ throw new translatableBrightChainError_1.TranslatableBrightChainError(context === 'WorkUnit'
130
+ ? brightChainStrings_1.BrightChainStrings.Error_PoUW_WorkUnit_FieldTypeMismatchTemplate
131
+ : brightChainStrings_1.BrightChainStrings.Error_PoUW_WorkResult_FieldTypeMismatchTemplate, { FIELD: field, EXPECTED_TYPE: 'string', ACTUAL_TYPE: typeof obj[field] });
132
+ }
133
+ }
134
+ /**
135
+ * Validate that `obj[field]` exists and is a number.
136
+ * @throws {TranslatableBrightChainError} with a descriptive message on failure.
137
+ */
138
+ function requireNumber(obj, field, context) {
139
+ if (!(field in obj) || obj[field] === undefined || obj[field] === null) {
140
+ throw new translatableBrightChainError_1.TranslatableBrightChainError(context === 'WorkUnit'
141
+ ? brightChainStrings_1.BrightChainStrings.Error_PoUW_WorkUnit_MissingFieldTemplate
142
+ : brightChainStrings_1.BrightChainStrings.Error_PoUW_WorkResult_MissingFieldTemplate, { FIELD: field });
143
+ }
144
+ if (typeof obj[field] !== 'number') {
145
+ throw new translatableBrightChainError_1.TranslatableBrightChainError(context === 'WorkUnit'
146
+ ? brightChainStrings_1.BrightChainStrings.Error_PoUW_WorkUnit_FieldTypeMismatchTemplate
147
+ : brightChainStrings_1.BrightChainStrings.Error_PoUW_WorkResult_FieldTypeMismatchTemplate, { FIELD: field, EXPECTED_TYPE: 'number', ACTUAL_TYPE: typeof obj[field] });
148
+ }
149
+ }
150
+ //# sourceMappingURL=workUnitSerializer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"workUnitSerializer.js","sourceRoot":"","sources":["../../../../../brightchain-lib/src/lib/serializers/workUnitSerializer.ts"],"names":[],"mappings":"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"}
@@ -11,8 +11,8 @@
11
11
  * Requirements: all (test infrastructure)
12
12
  */
13
13
  import fc from 'fast-check';
14
+ import { IChannel, ICommunicationMessage, IConversation, IGroup, IInviteToken } from '../../../interfaces/communication';
14
15
  import { IChatCollection, IChatStorageProvider } from '../../../interfaces/communication/chatStorageProvider';
15
- import { IConversation, ICommunicationMessage, IGroup, IChannel, IInviteToken } from '../../../interfaces/communication';
16
16
  import { IServer, IServerInviteToken } from '../../../interfaces/communication/server';
17
17
  /**
18
18
  * In-memory IChatCollection backed by a plain array.
@@ -1 +1 @@
1
- {"version":3,"file":"mockChatStorageProvider.d.ts","sourceRoot":"","sources":["../../../../../../../brightchain-lib/src/lib/services/communication/__tests__/mockChatStorageProvider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mockChatStorageProvider.d.ts","sourceRoot":"","sources":["../../../../../../../brightchain-lib/src/lib/services/communication/__tests__/mockChatStorageProvider.ts"],"names":[],"mappings":"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"}